diff --git a/hosts/Anton/default.nix b/hosts/Anton/default.nix index 0d6c148..db34138 100644 --- a/hosts/Anton/default.nix +++ b/hosts/Anton/default.nix @@ -14,11 +14,19 @@ ./minecraft.nix ./nfs.nix ./radicale.nix - ./syncthing.nix ../../modules/common ../../modules/server ]; + common.syncthing = { + enable = true; + devices = { + Lenni = { id = "XS6NR2Q-DHVB5G4-P43CHWR-TVBIY5A-FCIS7CU-S5UVNZA-5YPJYST-2EO2GAG"; }; + Puenktchen = { id = "VP3YVIM-JNSZTXV-7AS7FA2-3W5QKH6-XOWXX7N-STUR4JR-PR6SPCV-HJZMAAN"; }; + Damin = { id = "HAGKFGG-EMCPKHG-Y7V2ACJ-DJVAIIA-A6TNGTQ-VWPB3F5-PES673W-W2YBJAD"; }; + }; + }; + } diff --git a/hosts/Anton/syncthing.nix b/hosts/Anton/syncthing.nix deleted file mode 100644 index a959065..0000000 --- a/hosts/Anton/syncthing.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ ... }: -{ - services.syncthing = { - enable = true; - dataDir = "/mnt/data/services/syncthing/data"; - configDir = "/mnt/data/services/syncthing/config"; - overrideDevices = true; - overrideFolders = true; - openDefaultPorts = true; - guiAddress = "0.0.0.0:8384"; - settings = { - gui = { - user = "willifan"; - password = "temppassword"; - }; - devices = { - Lenni = { id = "XS6NR2Q-DHVB5G4-P43CHWR-TVBIY5A-FCIS7CU-S5UVNZA-5YPJYST-2EO2GAG"; }; - Puenktchen = { id = "VP3YVIM-JNSZTXV-7AS7FA2-3W5QKH6-XOWXX7N-STUR4JR-PR6SPCV-HJZMAAN"; }; - Damin = { id = "HAGKFGG-EMCPKHG-Y7V2ACJ-DJVAIIA-A6TNGTQ-VWPB3F5-PES673W-W2YBJAD"; }; - }; - folders = { - "Documents" = { - id = "jtl6g-qjmwo"; - path = "/mnt/data/services/syncthing/data/Documents"; - devices = [ "Lenni" "Puenktchen" ]; - }; - "Enpass" = { - id = "ciksm-xsw4m"; - path = "/mnt/data/services/syncthing/data/Enpass"; - devices = [ "Lenni" "Puenktchen" "Damin" ]; - }; - "Pictures" = { - id = "po4qj-q9t0t"; - path = "/mnt/data/services/syncthing/data/Pictures"; - devices = [ "Lenni" "Puenktchen" ]; - }; - "Videos" = { - id = "4wqf5-xasng"; - path = "/mnt/data/services/syncthing/data/Videos"; - devices = [ "Lenni" "Puenktchen" ]; - }; - "Notes" = { - id = "oc61n-iewgj"; - path = "/mnt/data/services/syncthing/data/Notes"; - devices = [ "Lenni" "Puenktchen" ]; - }; - "Music" = { - id = "xxh8a-3y2tq"; - path = "/mnt/data/services/syncthing/data/Music"; - devices = [ "Lenni" "Puenktchen" ]; - }; - }; - }; - }; -} diff --git a/hosts/Lenni/default.nix b/hosts/Lenni/default.nix index 7c7c9db..183df04 100644 --- a/hosts/Lenni/default.nix +++ b/hosts/Lenni/default.nix @@ -3,9 +3,16 @@ imports = [ ./hardware-configuration.nix #./disko.nix - ./syncthing.nix ../../modules/common ../../modules/desktop ]; + + common.syncthing = { + enable = true; + devices = { + Anton = { id = "WCDBADD-UPKCACI-X2YJOIO-5QC44PL-DBCR6TS-ADVQV33-HSMF32O-FOKMKAU"; }; + }; + }; + } diff --git a/hosts/Lenni/syncthing.nix b/hosts/Lenni/syncthing.nix deleted file mode 100644 index c975529..0000000 --- a/hosts/Lenni/syncthing.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ ... }: -{ - services.syncthing = { - enable = true; - user = "willifan"; - dataDir = "/mnt/data"; - configDir = "/mnt/data/.config/syncthing"; - overrideDevices = true; - overrideFolders = true; - settings = { - gui = { - user = "willifan"; - password = "temppassword"; - }; - devices = { - Anton = { id = "WCDBADD-UPKCACI-X2YJOIO-5QC44PL-DBCR6TS-ADVQV33-HSMF32O-FOKMKAU"; }; - }; - folders = { - "Documents" = { - id = "jtl6g-qjmwo"; - path = "/mnt/data/Documents"; - devices = [ "Anton" ]; - }; - "Enpass" = { - id = "ciksm-xsw4m"; - path = "/mnt/data/Enpass"; - devices = [ "Anton" ]; - }; - "Pictures" = { - id = "po4qj-q9t0t"; - path = "/mnt/data/Pictures"; - devices = [ "Anton" ]; - }; - "Videos" = { - id = "4wqf5-xasng"; - path = "/mnt/data/Videos"; - devices = [ "Anton" ]; - }; - "Notes" = { - id = "oc61n-iewgj"; - path = "/mnt/data/Notes"; - devices = [ "Anton" ]; - }; - "Music" = { - id = "xxh8a-3y2tq"; - path = "/mnt/data/Music"; - devices = [ "Anton" ]; - }; - }; - }; - }; -} diff --git a/hosts/Puenktchen/default.nix b/hosts/Puenktchen/default.nix index fdbc42e..a6d8a42 100644 --- a/hosts/Puenktchen/default.nix +++ b/hosts/Puenktchen/default.nix @@ -9,4 +9,11 @@ ]; + common.syncthing = { + enable = true; + devices = { + Anton = { id = "WCDBADD-UPKCACI-X2YJOIO-5QC44PL-DBCR6TS-ADVQV33-HSMF32O-FOKMKAU"; }; + }; + }; + } diff --git a/hosts/Puenktchen/syncthing.nix b/hosts/Puenktchen/syncthing.nix deleted file mode 100644 index c975529..0000000 --- a/hosts/Puenktchen/syncthing.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ ... }: -{ - services.syncthing = { - enable = true; - user = "willifan"; - dataDir = "/mnt/data"; - configDir = "/mnt/data/.config/syncthing"; - overrideDevices = true; - overrideFolders = true; - settings = { - gui = { - user = "willifan"; - password = "temppassword"; - }; - devices = { - Anton = { id = "WCDBADD-UPKCACI-X2YJOIO-5QC44PL-DBCR6TS-ADVQV33-HSMF32O-FOKMKAU"; }; - }; - folders = { - "Documents" = { - id = "jtl6g-qjmwo"; - path = "/mnt/data/Documents"; - devices = [ "Anton" ]; - }; - "Enpass" = { - id = "ciksm-xsw4m"; - path = "/mnt/data/Enpass"; - devices = [ "Anton" ]; - }; - "Pictures" = { - id = "po4qj-q9t0t"; - path = "/mnt/data/Pictures"; - devices = [ "Anton" ]; - }; - "Videos" = { - id = "4wqf5-xasng"; - path = "/mnt/data/Videos"; - devices = [ "Anton" ]; - }; - "Notes" = { - id = "oc61n-iewgj"; - path = "/mnt/data/Notes"; - devices = [ "Anton" ]; - }; - "Music" = { - id = "xxh8a-3y2tq"; - path = "/mnt/data/Music"; - devices = [ "Anton" ]; - }; - }; - }; - }; -} diff --git a/modules/common/default.nix b/modules/common/default.nix index 4f736fc..8591c16 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -7,6 +7,7 @@ ./mimetype.nix ./optimise.nix ./sops.nix + ./syncthing.nix ]; networking = { diff --git a/modules/common/syncthing.nix b/modules/common/syncthing.nix index 6059665..1156b16 100644 --- a/modules/common/syncthing.nix +++ b/modules/common/syncthing.nix @@ -1,12 +1,27 @@ -{ lib, config, ... }: +{ lib, types, config, ... }: +let + deviceList = builtins.attrNames config.common.syncthing.devices; +in { - options.common.syncthing = { - enable = lib.mkEnableOption; + + options = { + common.syncthing = { + + enable = lib.mkEnableOption "enable syncthing"; + + devices = lib.mkOption { + type = lib.types.attrsOf (lib.types.submodule { + + options.id = lib.mkOption { type = lib.types.str; }; + + }); + + }; + }; }; - #devices.*.id; - + config.services.syncthing = lib.mkIf config.common.syncthing.enable { - enable = lib.mkDefault false; + enable = lib.mkDefault true; user = lib.mkDefault "willifan"; dataDir = lib.mkDefault "/mnt/data"; configDir = lib.mkDefault "/mnt/data/.config/syncthing"; @@ -17,39 +32,37 @@ user = lib.mkDefault "willifan"; password = lib.mkDefault "temppassword"; }; - devices = { - Anton = { id = "WCDBADD-UPKCACI-X2YJOIO-5QC44PL-DBCR6TS-ADVQV33-HSMF32O-FOKMKAU"; }; - }; + devices = config.common.syncthing.devices; folders = lib.mkDefault { "Documents" = { id = "jtl6g-qjmwo"; path = "/mnt/data/Documents"; - devices = [ ]; + devices = deviceList; }; "Enpass" = lib.mkDefault { id = "ciksm-xsw4m"; path = "/mnt/data/Enpass"; - devices = [ ]; + devices = deviceList; }; "Pictures" = lib.mkDefault { id = "po4qj-q9t0t"; path = "/mnt/data/Pictures"; - devices = [ ]; + devices = deviceList; }; "Videos" = lib.mkDefault { id = "4wqf5-xasng"; path = "/mnt/data/Videos"; - devices = [ ]; + devices = deviceList; }; "Notes" = lib.mkDefault { id = "oc61n-iewgj"; path = "/mnt/data/Notes"; - devices = [ ]; + devices = deviceList; }; "Music" = lib.mkDefault { id = "xxh8a-3y2tq"; path = "/mnt/data/Music"; - devices = [ ]; + devices = deviceList; }; }; };