Docker-Mealie/docker-compose.yml

118 lines
3.0 KiB
YAML

name: mealie
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v2.8.0
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:
POSTGRES_DB_FILE: /run/secrets/db_name
POSTGRES_USER_FILE: /run/secrets/db_user
POSTGRES_PASSWORD_FILE: /run/secrets/db_pass
DB_ENGINE: postgres
POSTGRES_SERVER: db_pg17
POSTGRES_PORT: 5432
ALLOW_SIGNUP: False
TZ: Europe/Berlin
SMTP_HOST_FILE: /run/secrets/smtp_host
SMTP_PORT: 587
SMTP_USER_FILE: /run/secrets/smtp_user
SMTP_PASSWORD_FILE: /run/secrets/smtp_pass
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
OIDC_USER_GROUP: mealie_user
OIDC_ADMIN_GROUP: mealie_admin
OIDC_CLIENT_SECRET_FILE: /run/secrets/oidc_client_secret
OIDC_CLIENT_ID_FILE: /run/secrets/oidc_client_id
OIDC_CONFIGURATION_URL_FILE: /run/secrets/oidc_url
secrets:
- db_name
- db_user
- db_pass
- BASE_URL
- smtp_host
- SMTP_FROM_EMAIL
- smtp_user
- smtp_pass
- oidc_url
- oidc_client_id
- oidc_client_secret
db_pg17:
image: postgres:17.4
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/db_name
- POSTGRES_USER_FILE=/run/secrets/db_user
- POSTGRES_PASSWORD_FILE=/run/secrets/POSTGRES_PASSWORD
secrets:
- db_name
- db_user
- db_pass
volumes:
data:
name: mealie_data
db_pg17:
name: mealie_db_pg17
networks:
internal:
name: internal-mealie
proxy:
name: proxy-mealie
external: true
secrets:
db_name:
file: /srv/docker/secrets/mealie/db/name.txt
db_user:
file: /srv/docker/secrets/mealie/db/user.txt
db_pass:
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_pass:
file: /srv/docker/secrets/mail/pass.key
oidc_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