diff options
Diffstat (limited to '')
| -rw-r--r-- | modules/storage/default.nix | 6 | ||||
| -rw-r--r-- | modules/storage/syncthing.nix | 44 |
2 files changed, 50 insertions, 0 deletions
diff --git a/modules/storage/default.nix b/modules/storage/default.nix new file mode 100644 index 0000000..22bd2ff --- /dev/null +++ b/modules/storage/default.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + imports = [ + ./syncthing.nix + ]; +} diff --git a/modules/storage/syncthing.nix b/modules/storage/syncthing.nix new file mode 100644 index 0000000..5291182 --- /dev/null +++ b/modules/storage/syncthing.nix @@ -0,0 +1,44 @@ +{ lib, ... }: +let + settings = import ../../settings.nix { inherit lib; }; + group = "syncthing"; +in +{ + systemd.tmpfiles.rules = [ + "d ${settings.syncthing.baseDir} 0770 - ${group} - -" + "d ${settings.syncthing.photosDir} 0770 - ${group} - -" + ]; + users.groups.${group} = { }; + users.users.bacchus.extraGroups = [ group ]; + + networking.firewall.allowedTCPPorts = [ settings.network.ports.syncthing ]; + + services.syncthing = { + enable = true; + user = "bacchus"; + group = group; + dataDir = settings.syncthing.baseDir; + guiAddress = "0.0.0.0:${toString settings.network.ports.syncthing}"; + overrideFolders = true; + + settings = { + folders = { + artemis-photos = { + label = "Photos"; + path = settings.syncthing.photosDir; + }; + }; + + options.urAccepted = -1; + + extraOptions = { + gui = { + enabled = true; + theme = "black"; + user = settings.syncthing.username; + password = settings.syncthing.password; + }; + }; + }; + }; +} |
