Docker-Mealie/docker-compose.yml

118 lines
3.0 KiB
YAML

name: mealie
services:
mealie:
#image: ghcr.io/mealie-recipes/mealie:v2.5.0
image: ghcr.io/mealie-recipes/mealie:latest
container_name: mealie
depends_on:
db_pg17:
condition: service_healthy
deploy:
resources:
limits:
memory: 1000M
restart: unless-stopped
volumes:
- data:/app/data/
networks:
- internal
- proxy
environment:
# Not working with secrets right now
POSTGRES_DB: ${DATABASE}
POSTGRES_USER: ${DATABASE_USER}
POSTGRES_PASSWORD: ${DATABASE_PASS}
# Backend ENV Variables
DB_ENGINE: postgres
POSTGRES_SERVER: db_pg17
POSTGRES_PORT: 5432
ALLOW_SIGNUP: False
TZ: Europe/Berlin
SMTP_PORT: 587
SMTP_FROM_NAME: Mealie
SMTP_AUTH_STRATEGY: TLS
OIDC_AUTH_ENABLED: True
OIDC_SIGNUP_ENABLED: True
OIDC_AUTO_REDIRECT: True
OIDC_REMEMBER_ME: True
OIDC_USER_CLAIM: email
OIDC_NAME_CLAIM: name
secrets:
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
- BASE_URL
- SMTP_HOST
- SMTP_FROM_EMAIL
- SMTP_USER
- SMTP_PASSWORD
- OIDC_CONFIGURATION_URL
- OIDC_CLIENT_ID
- OIDC_CLIENT_SECRET
- OIDC_USER_GROUP
- OIDC_ADMIN_GROUP
db_pg17:
image: postgres:17
container_name: mealie_db_pg17
restart: unless-stopped
healthcheck:
test: [ "CMD-SHELL", "pg_isready -d `cat $$POSTGRES_DB_FILE` -U `cat $$POSTGRES_USER_FILE`" ]
start_period: 20s
interval: 30s
retries: 5
timeout: 5s
volumes:
- db_pg17:/var/lib/postgresql/data
networks:
- internal
environment:
- POSTGRES_DB_FILE=/run/secrets/POSTGRES_DB
- POSTGRES_USER_FILE=/run/secrets/POSTGRES_USER
- POSTGRES_PASSWORD_FILE=/run/secrets/POSTGRES_PASSWORD
secrets:
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
volumes:
data:
name: mealie_data
db_pg17:
name: mealie_db_pg17
networks:
internal:
name: internal-mealie
proxy:
name: proxy-mealie
external: true
secrets:
POSTGRES_DB:
file: /srv/docker/secrets/mealie/db/name.txt
POSTGRES_USER:
file: /srv/docker/secrets/mealie/db/user.txt
POSTGRES_PASSWORD:
file: /srv/docker/secrets/mealie/db/pass.key
BASE_URL:
file: /srv/docker/secrets/mealie/base_url.txt
SMTP_FROM_EMAIL:
file: /srv/docker/secrets/mealie/mail_from.txt
SMTP_HOST:
file: /srv/docker/secrets/mail/host.txt
SMTP_USER:
file: /srv/docker/secrets/mail/user.txt
SMTP_PASSWORD:
file: /srv/docker/secrets/mail/pass.key
OIDC_CONFIGURATION_URL:
file: /srv/docker/secrets/mealie/oidc/url.txt
OIDC_CLIENT_ID:
file: /srv/docker/secrets/mealie/oidc/client_id.txt
OIDC_CLIENT_SECRET:
file: /srv/docker/secrets/mealie/oidc/client_secret.key
OIDC_USER_GROUP:
file: /srv/docker/secrets/mealie/oidc/group_user.txt
OIDC_ADMIN_GROUP:
file: /srv/docker/secrets/mealie/oidc/group_admin.txt