Mealie/docker-compose.yml
2025-11-23 17:23:56 +00:00

81 lines
2 KiB
YAML

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: