9055a6aa0b
Campaign 7 catalog sweep. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nn3VgQk9iwEGgyx6QJ2NvE
66 lines
2.1 KiB
YAML
66 lines
2.1 KiB
YAML
# Mealie - Recipe Manager & Meal Planner
|
|
# Domain: ${SUBDOMAIN}.${DOMAIN}
|
|
# Database: None (SQLite, built-in)
|
|
# RAM: ~200MB (mem_limit: 1000M) | Pi-compatible: Yes (arm64 only)
|
|
#
|
|
# Environment variables:
|
|
# DOMAIN - Your domain (e.g., demo-felhom.eu)
|
|
#
|
|
# Storage layout:
|
|
# Recipe data/images → mealie_data (named volume, NVMe — moderate size)
|
|
#
|
|
# First-time setup:
|
|
# Default login: changeme@example.com / MyPassword
|
|
# Change immediately after first login!
|
|
|
|
services:
|
|
mealie:
|
|
image: ghcr.io/mealie-recipes/mealie:v3.20.1
|
|
container_name: mealie
|
|
restart: unless-stopped
|
|
environment:
|
|
- ALLOW_SIGNUP=false
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Europe/Budapest
|
|
- MAX_WORKERS=1
|
|
- WEB_CONCURRENCY=1
|
|
- BASE_URL=https://${SUBDOMAIN}.${DOMAIN}
|
|
# App-email (managed relay). Injected by the controller only when app-email is on
|
|
# (global + per-app); empty SMTP_HOST = Mealie mail stays disabled. Mealie has no
|
|
# accept-invalid-cert option, so the relay uses plaintext (NONE) to the on-box shim —
|
|
# the spike-validated mode. See .felhom.yml smtp_mapping.
|
|
- SMTP_HOST=${SMTP_HOST:-}
|
|
- SMTP_PORT=${SMTP_PORT:-25}
|
|
- SMTP_AUTH_STRATEGY=${SMTP_AUTH_STRATEGY:-NONE}
|
|
- SMTP_FROM_NAME=${SMTP_FROM_NAME:-}
|
|
- SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL:-}
|
|
volumes:
|
|
- mealie_data:/app/data/
|
|
networks:
|
|
- traefik-public
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 1000M
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "python3 -c \"import socket; s=socket.create_connection(('127.0.0.1',9000),2); s.close()\""]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 60s
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.mealie.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
|
|
- "traefik.http.routers.mealie.entrypoints=websecure"
|
|
- "traefik.http.routers.mealie.tls=true"
|
|
- "traefik.http.routers.mealie.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.mealie.loadbalancer.server.port=9000"
|
|
|
|
volumes:
|
|
mealie_data:
|
|
|
|
networks:
|
|
traefik-public:
|
|
external: true
|