deployment/stacks/mealie.yml

86 lines
1.8 KiB
YAML

version: '3.4'
services:
frontend:
image: 'hkotel/mealie:frontend-v1.0.0beta-4'
deploy:
mode: 'replicated'
replicas: 1
placement:
constraints:
- 'node.labels.class.mealie==true'
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.mealie-frontend.rule=Host(`cook.rustybever.be`)'
- 'traefik.http.routers.mealie-frontend.tls=true'
- 'traefik.http.routers.mealie-frontend.tls.certresolver=letsEncrypt'
- 'traefik.http.services.mealie-frontend.loadbalancer.server.port=3000'
environment:
API_URL: 'http://api:9000'
ALLOW_SIGNUP: 'false'
networks:
- 'default'
- 'public'
volumes:
- 'data:/app/data'
api:
image: 'hkotel/mealie:api-v1.0.0beta-4'
deploy:
mode: 'replicated'
replicas: 1
placement:
constraints:
- 'node.labels.class.mealie==true'
environment:
# Server
PUID: 22
PGID: 22
BASE_URL: 'https://cook.rustybever.be'
TZ: 'Europe/Brussels'
# Database
DB_ENGINE: 'postgres'
POSTGRES_SERVER: 'db'
POSTGRES_PORT: 5432
POSTGRES_DB: 'mealie'
POSTGRES_USER: 'mealie'
POSTGRES_PASSWORD: 'mealie'
# Other
ALLOW_SIGNUP: 'false'
DEFAULT_EMAIL:
MAX_WORKERS: 1
WEB_CONCURRENCY: 1
volumes:
- 'data:/app/data'
db:
image: 'postgres:14.5'
restart: 'always'
deploy:
mode: 'replicated'
replicas: 1
placement:
constraints:
- 'node.labels.class.mealie==true'
environment:
POSTGRES_USER: 'mealie'
POSTGRES_PASSWORD: 'mealie'
volumes:
- 'db-data:/var/lib/postgresql/data'
networks:
public:
external: true
volumes:
data:
db-data: