diff --git a/modules/nixos/options.nix b/modules/nixos/options.nix index 45932c0..7e930b9 100644 --- a/modules/nixos/options.nix +++ b/modules/nixos/options.nix @@ -143,6 +143,7 @@ syncthing.enable = lib.mkEnableOption "syncthing"; jellyfin.enable = lib.mkEnableOption "jellyfin"; mailserver.enable = lib.mkEnableOption "mailserver"; + firefox-syncserver.enable = lib.mkEnableOption "firefox-syncserver"; vaultwarden.enable = lib.mkEnableOption "vaultwarden"; nginx.enable = lib.mkEnableOption "nginx"; ollama.enable = lib.mkEnableOption "ollama"; diff --git a/modules/nixos/services/default.nix b/modules/nixos/services/default.nix index bf63669..175a34c 100644 --- a/modules/nixos/services/default.nix +++ b/modules/nixos/services/default.nix @@ -6,6 +6,7 @@ ./cloudflared.nix ./ollama.nix ./openssh.nix + ./firefox-syncserver.nix ./forgejo.nix ./glance.nix ./hydra.nix diff --git a/modules/nixos/services/firefox-syncserver.nix b/modules/nixos/services/firefox-syncserver.nix new file mode 100644 index 0000000..83f809f --- /dev/null +++ b/modules/nixos/services/firefox-syncserver.nix @@ -0,0 +1,48 @@ +{config, lib, ...}: + +{ + config = lib.mkMerge [ + (lib.mkIf config.osbmModules.services.firefox-syncserver.enable { + services.firefox-syncserver = { + enable = true; + settings.port = 5000; + }; + }) + + # firefox-syncserver and nginx + (lib.mkIf + (config.osbmModules.services.nginx.enable && config.osbmModules.services.firefox-syncserver.enable) + { + services.nginx.virtualHosts."firefox.osbm.dev" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:${toString config.services.firefox-syncserver.settings.port}"; + }; + }; + } + ) + + # impermanence and firefox-syncserver + (lib.mkIf + ( + config.osbmModules.services.firefox-syncserver.enable + && config.osbmModules.hardware.disko.zfs.root.impermanenceRoot + ) + { + systemd.services.firefox-syncserver.serviceConfig.ReadWritePaths = [ "/var/lib/firefox-syncserver" ]; + + environment.persistence."/persist" = { + directories = [ + { + directory = "/var/lib/firefox-syncserver"; + user = config.systemd.services.firefox-syncserver.serviceConfig.User; + group = config.systemd.services.firefox-syncserver.serviceConfig.Group; + mode = "0750"; + } + ]; + }; + } + ) + ]; +} \ No newline at end of file