diff --git a/hosts/freun.dev/secrets.nix b/hosts/freun.dev/secrets.nix index b307c78..985e32f 100644 --- a/hosts/freun.dev/secrets.nix +++ b/hosts/freun.dev/secrets.nix @@ -6,6 +6,7 @@ "gotosocial" "hastebin-tokens" "immich" + "readeck" "storage-box-credentials" "vaultwarden" ] diff --git a/hosts/freun.dev/services.nix b/hosts/freun.dev/services.nix index c13ff87..5e77a7a 100644 --- a/hosts/freun.dev/services.nix +++ b/hosts/freun.dev/services.nix @@ -105,6 +105,18 @@ in enable = true; subdomain = "bin"; }; - }; + readeck = { + enable = true; + subdomain = "read"; + settings.email = { + host = smtp.host; + port = smtp.port; + username = smtp.username; + encryption = "starttls"; + from = smtp.from; + from_noreply = smtp.from; + }; + }; + }; } diff --git a/modules/services/default.nix b/modules/services/default.nix index 9bad03f..175bd3a 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -14,5 +14,6 @@ ./gotosocial.nix ./hastebin.nix ./workout-sync.nix + ./readeck.nix ]; } diff --git a/modules/services/readeck.nix b/modules/services/readeck.nix new file mode 100644 index 0000000..5103a18 --- /dev/null +++ b/modules/services/readeck.nix @@ -0,0 +1,38 @@ +{ lib, inputs, config, pkgs, ... }: +let + cfg = config.services.readeck; + secrets = config.age.secrets; + fqdn = "${cfg.subdomain}.${config.networking.domain}"; + pkgsUnstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}; +in +{ + imports = [ + "${inputs.nixpkgs-unstable}/nixos/modules/services/web-apps/readeck.nix" + ]; + + options.services.readeck = { + subdomain = lib.mkOption { + type = lib.types.str; + }; + }; + + config = lib.mkIf cfg.enable { + services.readeck = { + package = pkgsUnstable.readeck; + environmentFile = secrets.readeck.path; + settings = { + server.port = lib.mkDefault 8090; + }; + }; + + modules.services.webserver = { + enable = lib.mkDefault true; + vHosts.${fqdn} = { + proxyBuffering = false; + locations."/" = { + proxyPort = cfg.settings.server.port; + }; + }; + }; + }; +} diff --git a/secrets/readeck.age b/secrets/readeck.age new file mode 100644 index 0000000..f3ee5ce Binary files /dev/null and b/secrets/readeck.age differ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 874f265..4b8cbc5 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -16,4 +16,5 @@ in "storage-box-credentials.age".publicKeys = users ++ [ freun-dev ]; "vaultwarden.age".publicKeys = users ++ [ freun-dev ]; "smtp-password.age".publicKeys = users ++ [ freun-dev ]; + "readeck.age".publicKeys = users ++ [ freun-dev ]; }