diff --git a/hosts/dell-laptop/default.nix b/hosts/dell-laptop/default.nix index f30fd02..70357ab 100644 --- a/hosts/dell-laptop/default.nix +++ b/hosts/dell-laptop/default.nix @@ -27,6 +27,7 @@ optimization.mode = "powersave"; doas.enable = false; printing.enable = true; + syncthing.enable = true; }; boot.kernelPackages = pkgs.linuxPackages_latest; diff --git a/hosts/seb-desktop/default.nix b/hosts/seb-desktop/default.nix index ffedb88..1d11a50 100644 --- a/hosts/seb-desktop/default.nix +++ b/hosts/seb-desktop/default.nix @@ -29,6 +29,7 @@ comma.enable = true; sops.enable = true; printing.enable = true; + syncthing.enable = true; }; boot.kernelPackages = pkgs.linuxPackages_latest; diff --git a/modules/system/default.nix b/modules/system/default.nix index dc67ade..8428df7 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -16,5 +16,6 @@ ./sound.nix ./boot-loader.nix ./printing.nix + ./syncthing.nix ]; } diff --git a/modules/system/syncthing.nix b/modules/system/syncthing.nix new file mode 100644 index 0000000..4d112fc --- /dev/null +++ b/modules/system/syncthing.nix @@ -0,0 +1,60 @@ +{ + config, + lib, + ... +}: { + options.myConfig.syncthing.enable = lib.mkEnableOption ""; + + config = lib.mkIf config.myConfig.syncthing.enable { + services.syncthing = { + enable = true; + + user = "seb"; + group = "users"; + dataDir = "/home/seb"; + + overrideDevices = true; + overrideFolders = true; + + settings = { + devices = { + seb-desktop.id = "DIPH5BN-N2XV57S-23W63KD-UZOZ3UI-RB24QRJ-VVPD4YM-ZMFZIXN-GPX4YA4"; + dell-laptop.id = "GUXHL6J-J2HWYNN-7JZJ5CN-6LPYGJD-H7GYRLQ-ORZ4PJJ-5K4WT7I-MELMIQO"; + }; + + folders = let + devices = ["seb-desktop" "dell-laptop"]; + versioning = { + type = "staggered"; + params = { + cleanInterval = "3600"; # 1 hour in seconds + maxAge = "15552000"; # 180 days in seconds + }; + }; + ignorePerms = false; + in { + Documents = { + path = "/home/seb/Documents"; + inherit devices versioning ignorePerms; + }; + Downloads = { + path = "/home/seb/Downloads"; + inherit devices versioning ignorePerms; + }; + Pictures = { + path = "/home/seb/Pictures"; + inherit devices versioning ignorePerms; + }; + Music = { + path = "/home/seb/Music"; + inherit devices versioning ignorePerms; + }; + Videos = { + path = "/home/seb/Videos"; + inherit devices versioning ignorePerms; + }; + }; + }; + }; + }; +}