2023-02-07 18:24:28 +01:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: let
|
2022-11-10 16:29:37 +01:00
|
|
|
passwords = import ../../variables/passwords.crypt.nix;
|
|
|
|
|
|
|
|
libdecsync = pkgs.python3Packages.buildPythonPackage rec {
|
|
|
|
pname = "libdecsync";
|
|
|
|
version = "2.2.1";
|
|
|
|
|
|
|
|
src = pkgs.python3Packages.fetchPypi {
|
|
|
|
inherit pname version;
|
|
|
|
hash = "sha256-Mukjzjumv9VL+A0maU0K/SliWrgeRjAeiEdN5a83G0I=";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
radicale-storage-decsync = pkgs.python3Packages.buildPythonPackage rec {
|
|
|
|
pname = "radicale_storage_decsync";
|
|
|
|
version = "2.1.0";
|
|
|
|
|
|
|
|
src = pkgs.python3Packages.fetchPypi {
|
|
|
|
inherit pname version;
|
|
|
|
hash = "sha256-X+0MT5o2PjsKxca5EDI+rYyQDmUtbRoELDr6e4YXKCg=";
|
|
|
|
};
|
|
|
|
|
2023-02-07 18:24:28 +01:00
|
|
|
buildInputs = [pkgs.radicale];
|
|
|
|
propagatedBuildInputs = [libdecsync pkgs.python3Packages.setuptools];
|
2022-11-10 16:29:37 +01:00
|
|
|
};
|
|
|
|
radicale-decsync = pkgs.radicale.overrideAttrs (old: {
|
2023-02-07 18:24:28 +01:00
|
|
|
propagatedBuildInputs =
|
|
|
|
old.propagatedBuildInputs
|
|
|
|
++ [radicale-storage-decsync];
|
2022-11-10 16:29:37 +01:00
|
|
|
});
|
|
|
|
radicale-config = pkgs.writeText "radicale-config" ''
|
|
|
|
[auth]
|
|
|
|
type = htpasswd
|
|
|
|
htpasswd_filename = ${
|
|
|
|
pkgs.writeText "radicale" ''
|
|
|
|
radicale:${passwords.users.radicale}
|
|
|
|
''
|
|
|
|
}
|
|
|
|
htpasswd_encryption = bcrypt
|
|
|
|
|
|
|
|
[storage]
|
|
|
|
type = radicale_storage_decsync
|
|
|
|
filesystem_folder = ${config.xdg.dataHome}/radicale
|
|
|
|
decsync_dir = ${config.xdg.dataHome}/decsync
|
|
|
|
'';
|
|
|
|
in {
|
|
|
|
systemd.user.services.radicale = {
|
|
|
|
Unit.Description = "Radicale with DecSync";
|
|
|
|
Service = {
|
|
|
|
ExecStart = "${radicale-decsync}/bin/radicale -C ${radicale-config}";
|
|
|
|
Restart = "on-failure";
|
|
|
|
};
|
2023-02-07 18:24:28 +01:00
|
|
|
Install.WantedBy = ["default.target"];
|
2022-11-10 16:29:37 +01:00
|
|
|
};
|
|
|
|
}
|