diff --git a/flake.nix b/flake.nix index dafd871..77e559c 100644 --- a/flake.nix +++ b/flake.nix @@ -139,6 +139,7 @@ photos = "photos.${baseName}"; postgresql = "pg.${baseName}"; prometheus = "prom.${baseName}"; + recipes = "cooking.${baseName}"; secrets = "vault.${baseName}"; smtp = "smtp.purelymail.com"; status = "status.${baseName}"; diff --git a/platforms/nixos/modules/nmasur/presets/services/mealie.nix b/platforms/nixos/modules/nmasur/presets/services/mealie.nix new file mode 100644 index 0000000..bcd65ac --- /dev/null +++ b/platforms/nixos/modules/nmasur/presets/services/mealie.nix @@ -0,0 +1,40 @@ +{ config, lib, ... }: + +let + inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.mealie; +in + +{ + + options.nmasur.presets.services.mealie.enable = lib.mkEnableOption "mealie recipe manager"; + config = lib.mkIf cfg.enable { + + services.mealie = { + enable = true; + port = 9099; + database.createLocally = true; + listenAddress = "127.0.0.1"; + }; + + nmasur.presets.services.caddy.routes = [ + { + match = [ { host = [ hostnames.recipes ]; } ]; + handle = [ + { + handler = "reverse_proxy"; + upstreams = [ { dial = "localhost:${builtins.toString config.services.mealie.port}"; } ]; + } + ]; + } + ]; + + # Configure Cloudflare DNS to point to this machine + services.cloudflare-dyndns.domains = [ hostnames.recipes ]; + + # Point localhost to the local domain + networking.hosts."127.0.0.1" = [ hostnames.recipes ]; + + }; + +} diff --git a/platforms/nixos/modules/nmasur/profiles/communications.nix b/platforms/nixos/modules/nmasur/profiles/communications.nix index 5a5c557..adb12a7 100644 --- a/platforms/nixos/modules/nmasur/profiles/communications.nix +++ b/platforms/nixos/modules/nmasur/profiles/communications.nix @@ -30,6 +30,7 @@ in karakeep.enable = lib.mkDefault true; litestream.enable = lib.mkDefault true; mathesar.enable = lib.mkDefault true; + mealie.enable = lib.mkDefault true; minecraft-server.enable = lib.mkDefault false; n8n.enable = lib.mkDefault true; nix-autoupgrade.enable = lib.mkDefault true; # On by default for communications