70 lines
2.4 KiB
YAML
70 lines
2.4 KiB
YAML
services:
|
|
mealie:
|
|
image: ghcr.io/mealie-recipes/mealie:latest
|
|
container_name: mealie
|
|
restart: unless-stopped
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 1500M
|
|
volumes:
|
|
- /srv/docker/mealie/mealie-data:/app/data/
|
|
environment:
|
|
# --- General ---
|
|
BASE_URL: https://${SERVICE_NAME}.${DOMAIN_NAME}
|
|
ALLOW_SIGNUP: "false"
|
|
PUID: 1000
|
|
PGID: 1000
|
|
TZ: America/Chicago
|
|
API_DOCS: "false"
|
|
LOG_LEVEL: info
|
|
DAILY_SCHEDULE_TIME: "03:15"
|
|
TOKEN_TIME: 168
|
|
# --- Security ---
|
|
SECURITY_MAX_LOGIN_ATTEMPTS: 5
|
|
SECURITY_USER_LOCKOUT_TIME: 24
|
|
# --- Database ---
|
|
SQLITE_MIGRATE_JOURNAL_WAL: "true"
|
|
# --- Email ---
|
|
SMTP_HOST: ${SMTP_HOST}
|
|
SMTP_PORT: ${SMTP_PORT}
|
|
SMTP_FROM_NAME: ${SERVICE_NAME} ${DOMAIN_NAME}
|
|
SMTP_FROM_EMAIL: ${SMTP_FROM_EMAIL}
|
|
SMTP_AUTH_STRATEGY: TLS
|
|
SMTP_USER: ${SMTP_USER}
|
|
SMTP_PASSWORD: ${SMTP_PASSWORD}
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:9000/api/app/about"]
|
|
interval: 60s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 60s
|
|
networks:
|
|
- traefik_network
|
|
labels:
|
|
### Auto create icon on Flame dashboard
|
|
- flame.type=application
|
|
- flame.name=${SERVICE_NAME}
|
|
- flame.url=https://${SERVICE_NAME}.${DOMAIN_NAME}
|
|
- flame.icon=https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/mealie.png
|
|
### Traefik Labels
|
|
- traefik.enable=true
|
|
- traefik.http.routers.${SERVICE_NAME}-https.tls=true
|
|
- traefik.http.routers.${SERVICE_NAME}-https.tls.certresolver=cloudflare
|
|
- traefik.http.routers.${SERVICE_NAME}-https.entrypoints=websecure
|
|
- traefik.http.routers.${SERVICE_NAME}-https.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
|
|
- traefik.http.services.${SERVICE_NAME}.loadbalancer.server.port=9000
|
|
### Monitor with uptime-kuma
|
|
- kuma.monitoring.group.name=Docker Containers
|
|
- kuma.${SERVICE_NAME}.docker.parent_name=monitoring
|
|
- kuma.${SERVICE_NAME}.docker.name=${SERVICE_NAME}
|
|
- kuma.${SERVICE_NAME}.docker.type=docker
|
|
- kuma.${SERVICE_NAME}.docker.docker_container=${SERVICE_NAME}
|
|
- kuma.${SERVICE_NAME}.docker.docker_host=1
|
|
- 'kuma.${SERVICE_NAME}.docker.tag_names=[{"name": "docker_tag"}]'
|
|
|
|
networks:
|
|
traefik_network:
|
|
external: true |