48 lines
1 KiB
Nix
48 lines
1 KiB
Nix
{...}: let
|
|
port = "9925";
|
|
in {
|
|
virtualisation.oci-containers.containers = {
|
|
mealie = {
|
|
autoStart = true;
|
|
image = "ghcr.io/mealie-recipes/mealie:v1.9.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";
|
|
SECURITY_MAX_LOGIN_ATTEMPTS = "3";
|
|
SECRURITY_USER_LOCKOUT_TIME = "72";
|
|
};
|
|
};
|
|
};
|
|
|
|
services.traefik.dynamicConfigOptions.http.routers = {
|
|
mealie = {
|
|
rule = "Host(`mealie.kanto.dev`)";
|
|
entryPoints = [
|
|
"websecure"
|
|
];
|
|
middlewares = [
|
|
"crowdsec"
|
|
"geoblock"
|
|
];
|
|
service = "mealie";
|
|
};
|
|
};
|
|
|
|
services.traefik.dynamicConfigOptions.http.services = {
|
|
mealie.loadBalancer.servers = [
|
|
{url = "http://127.0.0.1:${port}";}
|
|
];
|
|
};
|
|
}
|