diff --git a/hosts/freun-dev/secrets.nix b/hosts/freun-dev/secrets.nix index 1397952..de9ee98 100644 --- a/hosts/freun-dev/secrets.nix +++ b/hosts/freun-dev/secrets.nix @@ -12,6 +12,7 @@ "donetick" "dnote" "octodns" + "mealie" ] ) // { smtp-password = { diff --git a/hosts/freun-dev/services.nix b/hosts/freun-dev/services.nix index 48be501..b062d83 100644 --- a/hosts/freun-dev/services.nix +++ b/hosts/freun-dev/services.nix @@ -176,5 +176,17 @@ in subdomain = "dns"; port = 3006; }; + + mealie = { + enable = true; + subdomain = "cook"; + credentialsFile = secrets.mealie.path; + settings = { + SMTP_HOST = smtp.host; + SMTP_FROM_EMAIL = smtp.from; + SMTP_USER = smtp.username; + SMTP_PORT = smtp.port; + }; + }; }; } diff --git a/modules/services/default.nix b/modules/services/default.nix index ad002da..0a3a229 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -19,5 +19,6 @@ ./dnote.nix ./octodns.nix ./adguardhome.nix + ./mealie.nix ]; } diff --git a/modules/services/mealie.nix b/modules/services/mealie.nix new file mode 100644 index 0000000..3e251f7 --- /dev/null +++ b/modules/services/mealie.nix @@ -0,0 +1,35 @@ +{ lib, config, ... }: +let + cfg = config.services.mealie; + fqdn = "${cfg.subdomain}.${config.networking.domain}"; +in +{ + options.services.mealie = { + subdomain = lib.mkOption { + type = lib.types.str; + }; + }; + + config = lib.mkIf cfg.enable { + services = { + mealie.settings = { + BASE_URL = "https://${fqdn}"; + ALLOW_SIGNUP = true; + DB_ENGINE = "postgres"; + POSTGRES_URL_OVERRIDE = "postgresql://mealie:@mealie?host=/var/run/postgresql"; + SMTP_FROM_NAME = "Mealie"; + }; + + webserver.vHosts.${fqdn}.locations."/".proxyPort = cfg.port; + + postgresql = { + enable = lib.mkDefault true; + ensureDatabases = [ "mealie" ]; + ensureUsers = [{ + name = "mealie"; + ensureDBOwnership = true; + }]; + }; + }; + }; +} diff --git a/secrets/mealie.age b/secrets/mealie.age new file mode 100644 index 0000000..da7c3b6 --- /dev/null +++ b/secrets/mealie.age @@ -0,0 +1,10 @@ +age-encryption.org/v1 +-> ssh-ed25519 osOCZA aSrfC3yY3hUP30pc7bxAeOQsI+oY5TlWLn5fRTEi0ns +1HWv0ZLTvzxP9+dE4Kvn2uCeqV9GF9isURPaVtVxelI +-> ssh-ed25519 DFiohQ BuD0HhnHWUVrykPxwJZ1kPMAUEEbcxQxs0rKTsiR8nE +nCT+Dh7rTh6EP5c/cBmE9DEFbl2oU3m0TPQv8jZKwuc +-> ssh-ed25519 PT7ffg pAoyCa+x5wME4MrcI4fLsdy7t8DdzxtViM3b1UJyjQA +ei7ZxGgqqa3mk5ZBrMFBPHN8Gvk5j1IxWuirX2mYGAI +--- K2ECMTGRrhkYrsBkcO7z+gl3tdsGLUwtj4QjZ4zdkUc +Mf}|F"<'j]zInCp_CNnbt"214WaMq5O-c,=~ys?6ω8x-hnqf)=O@8N,"ar8= o +%B(- `Ƶ1!|T7b~^qyf8R«VEgkⅬYn#W-\y }/*|Û.|qZ]io{x~w7U\`*V \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 1371c8c..8fec0a0 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -20,4 +20,5 @@ in "donetick.age".publicKeys = users ++ [ freun-dev ]; "dnote.age".publicKeys = users ++ [ freun-dev ]; "octodns.age".publicKeys = users ++ [ freun-dev ]; + "mealie.age".publicKeys = users ++ [ freun-dev ]; }