aboutsummaryrefslogtreecommitdiff
path: root/modules/storage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/storage/default.nix6
-rw-r--r--modules/storage/syncthing.nix44
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;
+ };
+ };
+ };
+ };
+}