# Mealie - Recipe Manager & Meal Planner # Domain: recipes.{{DOMAIN}} # Database: None (SQLite, built-in) # RAM: ~200MB | Pi-compatible: Yes (arm64 only) # # Environment variables (set in Portainer): # (none required for basic usage) # SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD - for email features (optional) # # 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.10.2 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://recipes.{{DOMAIN}} volumes: - mealie_data:/app/data/ networks: - traefik-public deploy: resources: limits: memory: 1000M healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://localhost:9000/"] interval: 30s timeout: 5s retries: 3 start_period: 30s labels: - "traefik.enable=true" - "traefik.http.routers.mealie.rule=Host(`recipes.{{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