From 9f886e22d47c0d200eaaaf7c9a2d34c0d73a2634 Mon Sep 17 00:00:00 2001 From: jasmine Date: Sun, 16 Jun 2024 23:08:01 +0800 Subject: [PATCH] Setup mealie container --- nixos/viridian/containers/default.nix | 1 + nixos/viridian/containers/mealie.nix | 48 +++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 nixos/viridian/containers/mealie.nix diff --git a/nixos/viridian/containers/default.nix b/nixos/viridian/containers/default.nix index 835b260..8eb55e8 100644 --- a/nixos/viridian/containers/default.nix +++ b/nixos/viridian/containers/default.nix @@ -11,6 +11,7 @@ ./radarr.nix ./recyclarr.nix ./sonarr.nix + ./mealie.nix ./microbin ]; virtualisation.oci-containers.backend = "docker"; diff --git a/nixos/viridian/containers/mealie.nix b/nixos/viridian/containers/mealie.nix new file mode 100644 index 0000000..3eba75a --- /dev/null +++ b/nixos/viridian/containers/mealie.nix @@ -0,0 +1,48 @@ +{ ... }: +let + port = "9925"; +in +{ + virtualisation.oci-containers.containers = { + mealie = { + autoStart = true; + image = "ghcr.io/mealie-recipes/mealie:v1.8.0"; + ports = [ + "${port}:9000" + ]; + volumes = [ + "/srv/containers/mealie:/app/data/" + ]; + environment = { + ALLOW_SIGNUP = "false"; + PUID = "1000"; + PGID = "100"; + TZ = "Australia/Perth"; + MAX_WORKERS = "1"; + WEB_CONCURRENCY = "1"; + BASE_URL = "https://mealie.kanto.dev"; + }; + }; + }; + + services.traefik.dynamicConfigOptions.http.routers = { + mealie = { + rule = "Host(`mealie.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "internal" + ]; + service = "mealie"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + mealie.loadBalancer.servers = [ + { url = "http://127.0.0.1:${port}"; } + ]; + }; + +} +