wekan/compose.yml

89 lines
2.2 KiB
YAML

version: '3.8'
services:
db:
image: mongo:4.4
command: mongod --logpath /dev/null --oplogSize 128 --quiet
volumes:
- wekan-db:/data/db
networks:
- internal
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
interval: 30s
timeout: 10s
retries: 10
start_period: 1m
deploy:
labels:
backupbot.backup: "true"
backupbot.backup.pre-hook: "mkdir /tmp/backup/ && mongodump --archive=/tmp/backup/wekan.db"
backupbot.backup.post-hook: "rm -rf /tmp/backup"
backupbot.backup.path: "/tmp/backup/"
app:
image: quay.io/wekan/wekan:v5.97
environment:
- MONGO_URL
- DOMAIN
- ROOT_URL
- DEBUG
- OAUTH2_ENABLED
- OAUTH2_LOGIN_STYLE
- OAUTH2_CLIENT_ID
- OAUTH2_SECRET
- OAUTH2_SERVER_URL
- OAUTH2_AUTH_ENDPOINT
- OAUTH2_USERINFO_ENDPOINT
- OAUTH2_TOKEN_ENDPOINT
- OAUTH2_REQUEST_PERMISSIONS
- OAUTH2_ID_MAP
- OAUTH2_USERNAME_MAP
- OAUTH2_FULLNAME_MAP
- OAUTH2_EMAIL_MAP
- PASSWORD_LOGIN_ENABLED
- MAIL_URL
- MAIL_FROM
- WITH_API
- RICHER_CARD_COMMENT_EDITOR
networks:
- internal
- proxy
depends_on:
- db
healthcheck:
test: node /build/healthcheck.js # no curl for healthcheck in wekan container
interval: 30s
timeout: 10s
retries: 10
start_period: 1m
configs:
- source: healthcheck_js
target: /build/healthcheck.js
mode: 0555
deploy:
update_config:
failure_action: rollback
order: start-first
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=8080"
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "coop-cloud.${STACK_NAME}.app.version=1.0.0+v5.97"
volumes:
wekan-db:
networks:
proxy:
external: true
internal:
configs:
healthcheck_js:
name: ${STACK_NAME}_healthcheck_js
file: healthcheck.js