diff --git a/options/services.nix b/options/services.nix index 7a14828..41e260e 100644 --- a/options/services.nix +++ b/options/services.nix @@ -1,6 +1,6 @@ { lib, ... }: let - inherit (lib) mkEnableOption; + inherit (lib) mkEnableOption mkOption types; in { options.profile.services = { @@ -10,5 +10,6 @@ in kavita.enable = mkEnableOption "kavita"; samba.enable = mkEnableOption "samba"; nextcloud.enable = mkEnableOption "nextcloud"; + syncthing.enable = mkEnableOption "syncthing"; }; } diff --git a/profiles/homeserver.nix b/profiles/homeserver.nix index eb6a956..2336851 100644 --- a/profiles/homeserver.nix +++ b/profiles/homeserver.nix @@ -34,6 +34,7 @@ kavita.enable = true; samba.enable = true; nextcloud.enable = true; + syncthing.enable = true; }; }; } diff --git a/system/services/default.nix b/system/services/default.nix index ce6cefa..d05793e 100644 --- a/system/services/default.nix +++ b/system/services/default.nix @@ -6,5 +6,6 @@ ./forgejo.nix ./samba.nix ./nextcloud.nix + ./syncthing.nix ]; } diff --git a/system/services/syncthing.nix b/system/services/syncthing.nix new file mode 100644 index 0000000..30aa639 --- /dev/null +++ b/system/services/syncthing.nix @@ -0,0 +1,22 @@ +{ config, lib, ... }: +let + cfg = config.profile.services.syncthing; + inherit (lib) mkIf; +in +{ + config = mkIf cfg.enable { + services.caddy.virtualHosts."syncthing.tigor.web.id".extraConfig = '' + reverse_proxy 0.0.0.0:8384 + ''; + services.syncthing = { + enable = true; + settings = { + options.urAccepted = 1; # Allow anonymous usage reporting. + }; + overrideFolders = false; + overrideDevices = false; + openDefaultPorts = true; + guiAddress = "0.0.0.0:8384"; + }; + }; +}