From 74362da06d615b8a571a6c95e7324695c17514ee Mon Sep 17 00:00:00 2001 From: "Dejan R." Date: Sun, 23 Nov 2025 17:23:56 +0000 Subject: [PATCH] first commit --- docker-compose.yml | 80 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d4a252b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,80 @@ +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: