36 lines
1,010 B
Nix
36 lines
1,010 B
Nix
{
|
|
config,
|
|
lib,
|
|
syncthingConfiguration,
|
|
...
|
|
}: let
|
|
mountDir = "/mnt/sync";
|
|
configDir = "/etc/syncthing";
|
|
in {
|
|
config = lib.mkMerge [
|
|
{
|
|
systemd = lib.mkIf config.services.syncthing.enable {
|
|
tmpfiles.rules = [
|
|
"A ${mountDir} - - - - u:syncthing:rwX,g:syncthing:rwX,o::-"
|
|
"d ${mountDir} 2755 syncthing syncthing -"
|
|
"d ${config.services.syncthing.dataDir} 775 syncthing syncthing -"
|
|
"d ${config.services.syncthing.configDir} 755 syncthing syncthing -"
|
|
];
|
|
};
|
|
}
|
|
(lib.mkIf config.services.syncthing.enable (lib.mkMerge [
|
|
{
|
|
services.syncthing = {
|
|
user = "syncthing";
|
|
group = "syncthing";
|
|
dataDir = "${mountDir}/default";
|
|
configDir = configDir;
|
|
overrideDevices = true;
|
|
overrideFolders = true;
|
|
configuration = syncthingConfiguration;
|
|
deviceName = config.networking.hostName;
|
|
};
|
|
}
|
|
]))
|
|
];
|
|
}
|