diff --git a/modules/nixos/bundles/server.nix b/modules/nixos/bundles/server.nix index 0cbc9e9..1aa12e4 100644 --- a/modules/nixos/bundles/server.nix +++ b/modules/nixos/bundles/server.nix @@ -18,6 +18,7 @@ "kavita" "libretranslate" "lidarr" + "mealie" "miniflux" "ntfy-sh" "nzbget" diff --git a/modules/nixos/features/homepage-dashboard.nix b/modules/nixos/features/homepage-dashboard.nix index 694ad77..3516600 100644 --- a/modules/nixos/features/homepage-dashboard.nix +++ b/modules/nixos/features/homepage-dashboard.nix @@ -27,6 +27,7 @@ let "jellyfin" "kavita-api" "lidarr" + "mealie" "miniflux" "nzbget" "paperless" @@ -202,6 +203,20 @@ in siteMonitor = "https://couchdb.fi33.buzz/_utils/"; }; } + { + Mealie = { + description = "Recipe manager and meal planner"; + icon = "mealie.svg"; + href = "https://mealie.fi33.buzz/"; + siteMonitor = "https://mealie.fi33.buzz/"; + widget = { + type = "mealie"; + url = "https://mealie.fi33.buzz/"; + version = 2; + key = "@mealie@"; + }; + }; + } { ntfy = { description = "Send push notifications using PUT/POST"; diff --git a/modules/nixos/features/mealie.nix b/modules/nixos/features/mealie.nix new file mode 100644 index 0000000..368ee09 --- /dev/null +++ b/modules/nixos/features/mealie.nix @@ -0,0 +1,56 @@ +{ + config, + ... +}: +let + port = 5026; + certloc = "/var/lib/acme/fi33.buzz"; + hostname = "mealie.fi33.buzz"; + url = "https://${hostname}"; +in +{ + services = { + mealie = { + enable = true; + inherit port; + settings = { + TZ = "Australia/Melbourne"; + ALLOW_SIGNUP = "false"; + }; + }; + + gatus.settings.endpoints = [ + { + name = "Mealie"; + group = "Private Services"; + inherit url; + interval = "5m"; + conditions = [ + "[STATUS] == 200" + "[CONNECTED] == true" + "[RESPONSE_TIME] < 500" + ]; + alerts = [ { type = "ntfy"; } ]; + } + ]; + + # borgmatic.settings = { + # source_directories = [ ]; + # postgresql_databases = [ + # { + # name = "mealie"; + # hostname = "localhost"; + # username = "root"; + # password = "{credential systemd borgmatic-pg}"; + # } + # ]; + # }; + + caddy.virtualHosts.${hostname}.extraConfig = '' + reverse_proxy localhost:${toString port} + tls ${certloc}/cert.pem ${certloc}/key.pem { + protocols tls1.3 + } + ''; + }; +} diff --git a/secrets/mealie.age b/secrets/mealie.age new file mode 100644 index 0000000..e15d891 Binary files /dev/null and b/secrets/mealie.age differ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 8909f33..ac60688 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -27,6 +27,7 @@ in "kavita-api.age".publicKeys = users; "kavita.age".publicKeys = users; "lidarr.age".publicKeys = users; + "mealie.age".publicKeys = users; "miniflux-creds.age".publicKeys = users; "ntfy.age".publicKeys = users; "nzbget.age".publicKeys = users;