Files
compose-files/mealie/mealie.yaml
admin 26eedf0e3d
ci/woodpecker/push/woodpecker Pipeline was canceled
refactor(mealie): move to folder-based layout
2026-06-30 23:34:14 -07:00

72 lines
2.0 KiB
YAML

services:
mealie-v1:
image: ghcr.io/mealie-recipes/mealie:latest
hostname: food
networks:
- traefik_backend
- postgresql_db-backend
volumes:
- /volume1/docker/Mealie/app/data:/app/data/
environment:
# Set Backend ENV Variables Here
- ALLOW_SIGNUP=true
- PUID=1000
- PGID=1000
- TZ=America/Anchorage
- MAX_WORKERS=1
- WEB_CONCURRENCY=1
- BASE_URL=https://food.${DOMAIN}
# Database Settings
- DB_ENGINE=postgres
- POSTGRES_USER=mealie
- POSTGRES_PASSWORD_FILE=/run/secrets/mealie_db_password
- POSTGRES_SERVER=${POSTGRES_HOST}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_DB=mealie-v1
#LDAP Settings
- LDAP_AUTH_ENABLED=TRUE
- LDAP_SERVER_URL=ldap://${LDAP_HOST}
- LDAP_TLS_INSECURE=TRUE
- LDAP_ENABLE_STARTTLS=TRUE
- LDAP_BASE_DN=${LDAP_BASE_DN}
- LDAP_QUERY_BIND=${LDAP_QUERY_BIND}
- LDAP_QUERY_PASSWORD_FILE=/run/secrets/mealie_ldap_query_password
- LDAP_ADMIN_FILTER=(memberOf=${LDAP_ADMIN_GROUP})
- LDAP_ID_ATTRIBUTE=sAMAccountName
- LDAP_NAME_ATTRIBUTE=displayName
- LDAP_MAIL_ATTRIBUTE=mail
secrets:
- mealie_db_password
- mealie_ldap_query_password
restart: always
deploy:
labels:
- traefik.enable=true
- traefik.http.routers.mealie.rule=Host(`food.${DOMAIN}`)
- traefik.http.routers.mealie.tls=true
- traefik.http.routers.mealie.tls.certresolver=letsencrypt
- traefik.http.routers.mealie.entrypoints=websecure
- traefik.http.services.mealie.loadbalancer.server.port=9000
- traefik.swarm.network=traefik_backend
- traefik.http.routers.mealie.middlewares=crowdsec@file #auth
- autoheal=true
resources:
limits:
cpus: '2' # Limit to 0.5 CPU core
memory: 512M
secrets:
mealie_db_password:
external: true
mealie_ldap_query_password:
external: true
networks:
postgresql_db-backend:
external: true
traefik_backend:
external: true