feat(mealie): install #134

Merged
wi11-holdsworth merged 2 commits from 111 into main 2026-03-07 16:43:38 +11:00
5 changed files with 73 additions and 0 deletions

View file

@ -18,6 +18,7 @@
"kavita" "kavita"
"libretranslate" "libretranslate"
"lidarr" "lidarr"
"mealie"
"miniflux" "miniflux"
"ntfy-sh" "ntfy-sh"
"nzbget" "nzbget"

View file

@ -27,6 +27,7 @@ let
"jellyfin" "jellyfin"
"kavita-api" "kavita-api"
"lidarr" "lidarr"
"mealie"
"miniflux" "miniflux"
"nzbget" "nzbget"
"paperless" "paperless"
@ -202,6 +203,20 @@ in
siteMonitor = "https://couchdb.fi33.buzz/_utils/"; 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 = { ntfy = {
description = "Send push notifications using PUT/POST"; description = "Send push notifications using PUT/POST";

View file

@ -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 = "Private Services";
group = "";
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
}
'';
};
}

BIN
secrets/mealie.age Normal file

Binary file not shown.

View file

@ -27,6 +27,7 @@ in
"kavita-api.age".publicKeys = users; "kavita-api.age".publicKeys = users;
"kavita.age".publicKeys = users; "kavita.age".publicKeys = users;
"lidarr.age".publicKeys = users; "lidarr.age".publicKeys = users;
"mealie.age".publicKeys = users;
"miniflux-creds.age".publicKeys = users; "miniflux-creds.age".publicKeys = users;
"ntfy.age".publicKeys = users; "ntfy.age".publicKeys = users;
"nzbget.age".publicKeys = users; "nzbget.age".publicKeys = users;