version: "3.9" services: mealie: # image: ghcr.io/mealie-recipes/mealie:v2.7.1 image: ghcr.io/mealie-recipes/mealie:latest container_name: mealie restart: always networks: - traefik - internal volumes: - ./mealie-data:/app/data environment: # Backend settings ALLOW_SIGNUP: "false" PUID: 1000 PGID: 1000 TZ: Europe/Ljubljana BASE_URL: https://mealie.rozic-dev.com # Database DB_ENGINE: postgres POSTGRES_USER: mealie POSTGRES_PASSWORD: mealie POSTGRES_SERVER: postgres POSTGRES_PORT: 5432 POSTGRES_DB: mealie depends_on: postgres: condition: service_healthy # ----------------------------- # Traefik Reverse Proxy Labels # ----------------------------- labels: - "traefik.enable=true" - "traefik.http.routers.mealie.rule=Host(`mealie.rozic-dev.com`) && PathPrefix(`/`)" - "traefik.http.routers.mealie.entrypoints=websecure" - "traefik.http.routers.mealie.tls.certresolver=letsencrypt" - "traefik.http.routers.mealie.tls=true" - "traefik.http.services.mealie.loadbalancer.server.port=9000" # optional headers - "traefik.http.middlewares.mealie-headers.headers.stsSeconds=31536000" - "traefik.http.middlewares.mealie-headers.headers.forceSTSHeader=true" - "traefik.http.routers.mealie.middlewares=mealie-headers" postgres: image: postgres:15 container_name: mealie-postgres restart: always networks: - internal environment: POSTGRES_DB: mealie POSTGRES_USER: mealie POSTGRES_PASSWORD: mealie volumes: - ./mealie-pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "mealie"] interval: 30s timeout: 10s retries: 5 # ------------------ # NETWORKS & VOLUMES # ------------------ networks: traefik: external: true name: traefik_default # IMPORTANT internal: driver: bridge volumes: mealie-data: mealie-pgdata: