diff options
author | Lyndon Sanche <lsanche@lyndeno.ca> | 2021-12-24 15:04:39 -0700 |
---|---|---|
committer | Lyndon Sanche <lsanche@lyndeno.ca> | 2021-12-29 08:35:41 -0700 |
commit | c7008f8fdf49f1133c7d8d5524649d9ef239712d (patch) | |
tree | d3dfc8e729eb9b3bd694dd76a1a3cf02a4c30a27 /nixos/modules/services/backup | |
parent | 9c49aab2d21083b536c17ccb36a096ed68f34ac4 (diff) | |
download | nixpkgs-c7008f8fdf49f1133c7d8d5524649d9ef239712d.tar nixpkgs-c7008f8fdf49f1133c7d8d5524649d9ef239712d.tar.gz nixpkgs-c7008f8fdf49f1133c7d8d5524649d9ef239712d.tar.bz2 nixpkgs-c7008f8fdf49f1133c7d8d5524649d9ef239712d.tar.lz nixpkgs-c7008f8fdf49f1133c7d8d5524649d9ef239712d.tar.xz nixpkgs-c7008f8fdf49f1133c7d8d5524649d9ef239712d.tar.zst nixpkgs-c7008f8fdf49f1133c7d8d5524649d9ef239712d.zip |
nixos/duplicati: Add dataDir to service
Other services such as minecraft-server and plex allow configuration of the dataDir option, allowing the files stored by each service to be in a custom location. Co-authored-by: Aaron Andersen <aaron@fosslib.net>
Diffstat (limited to 'nixos/modules/services/backup')
-rw-r--r-- | nixos/modules/services/backup/duplicati.nix | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/nixos/modules/services/backup/duplicati.nix b/nixos/modules/services/backup/duplicati.nix index cf5aebdecd2..97864c44691 100644 --- a/nixos/modules/services/backup/duplicati.nix +++ b/nixos/modules/services/backup/duplicati.nix @@ -18,6 +18,20 @@ in ''; }; + dataDir = mkOption { + type = types.str; + default = "/var/lib/duplicati"; + description = '' + The directory where Duplicati stores its data files. + + <note><para> + If left as the default value this directory will automatically be created + before the Duplicati server starts, otherwise you are responsible for ensuring + the directory exists with appropriate ownership and permissions. + </para></note> + ''; + }; + interface = mkOption { default = "127.0.0.1"; type = types.str; @@ -45,20 +59,23 @@ in description = "Duplicati backup"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - serviceConfig = { - User = cfg.user; - Group = "duplicati"; - StateDirectory = "duplicati"; - ExecStart = "${pkgs.duplicati}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=/var/lib/duplicati"; - Restart = "on-failure"; - }; + serviceConfig = mkMerge [ + { + User = cfg.user; + Group = "duplicati"; + ExecStart = "${pkgs.duplicati}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=${cfg.dataDir}"; + Restart = "on-failure"; + } + (mkIf (cfg.dataDir == "/var/lib/duplicati") { + StateDirectory = "duplicati"; + }) + ]; }; users.users = lib.optionalAttrs (cfg.user == "duplicati") { duplicati = { uid = config.ids.uids.duplicati; - home = "/var/lib/duplicati"; - createHome = true; + home = cfg.dataDir; group = "duplicati"; }; }; |