2021-10-17 16:03:03 +00:00
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
|
|
db:
|
|
|
|
image: mongo:4.4
|
2022-01-31 11:19:01 +00:00
|
|
|
command: mongod --logpath /dev/null --oplogSize 128 --quiet
|
2021-10-17 16:03:03 +00:00
|
|
|
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:
|
2021-11-16 17:06:27 +00:00
|
|
|
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/"
|
2021-10-17 16:03:03 +00:00
|
|
|
|
|
|
|
app:
|
2022-03-16 10:52:55 +00:00
|
|
|
image: yksflip/wekan:v6.12.1
|
2021-10-17 16:03:03 +00:00
|
|
|
environment:
|
|
|
|
- MONGO_URL
|
|
|
|
- DOMAIN
|
|
|
|
- ROOT_URL
|
|
|
|
- DEBUG
|
2022-03-02 13:28:08 +00:00
|
|
|
- MAIL_URL
|
|
|
|
- MAIL_FROM
|
|
|
|
- WITH_API
|
|
|
|
- RICHER_CARD_COMMENT_EDITOR
|
|
|
|
- CORS
|
|
|
|
- CORS_ALLOW_HEADERS
|
|
|
|
- CORS_EXPOSE_HEADERS
|
|
|
|
- PASSWORD_LOGIN_ENABLED
|
2021-10-17 16:03:03 +00:00
|
|
|
- OAUTH2_ENABLED
|
|
|
|
- OAUTH2_LOGIN_STYLE
|
|
|
|
- OAUTH2_CLIENT_ID
|
2022-01-31 16:11:39 +00:00
|
|
|
- OAUTH2_SECRET_FILE=/run/secrets/oauth2_secret
|
2021-10-17 16:03:03 +00:00
|
|
|
- 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
|
2022-03-02 13:28:08 +00:00
|
|
|
- DEFAULT_AUTHENTICATION_METHOD
|
|
|
|
- PROPAGATE_OIDC_DATA
|
2021-10-17 16:03:03 +00:00
|
|
|
networks:
|
|
|
|
- internal
|
|
|
|
- proxy
|
|
|
|
depends_on:
|
|
|
|
- db
|
2022-01-31 15:34:15 +00:00
|
|
|
healthcheck:
|
|
|
|
test: node /build/healthcheck.js # no curl for healthcheck in wekan container
|
2021-10-17 16:03:03 +00:00
|
|
|
interval: 30s
|
|
|
|
timeout: 10s
|
|
|
|
retries: 10
|
|
|
|
start_period: 1m
|
2022-01-31 16:07:29 +00:00
|
|
|
secrets:
|
|
|
|
- oauth2_secret
|
2021-10-17 16:03:03 +00:00
|
|
|
configs:
|
|
|
|
- source: healthcheck_js
|
|
|
|
target: /build/healthcheck.js
|
|
|
|
mode: 0555
|
2022-01-31 15:48:51 +00:00
|
|
|
- source: entrypoint
|
|
|
|
target: /home/wekan/app/docker-entrypoint.sh
|
|
|
|
mode: 0555
|
|
|
|
entrypoint: /home/wekan/app/docker-entrypoint.sh
|
2021-10-17 16:03:03 +00:00
|
|
|
deploy:
|
|
|
|
update_config:
|
|
|
|
failure_action: rollback
|
|
|
|
order: start-first
|
|
|
|
labels:
|
|
|
|
- "traefik.enable=true"
|
|
|
|
- "traefik.docker.network=proxy"
|
2022-01-13 16:25:41 +00:00
|
|
|
- "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}"
|
2022-03-16 10:52:55 +00:00
|
|
|
- "coop-cloud.${STACK_NAME}.version=0.4.0+v6.12"
|
2021-10-17 16:03:03 +00:00
|
|
|
|
|
|
|
volumes:
|
|
|
|
wekan-db:
|
2022-01-31 11:19:01 +00:00
|
|
|
|
2021-10-17 16:03:03 +00:00
|
|
|
networks:
|
|
|
|
proxy:
|
|
|
|
external: true
|
|
|
|
internal:
|
|
|
|
|
|
|
|
configs:
|
|
|
|
healthcheck_js:
|
|
|
|
name: ${STACK_NAME}_healthcheck_js
|
|
|
|
file: healthcheck.js
|
2022-01-31 15:48:51 +00:00
|
|
|
entrypoint:
|
|
|
|
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
|
|
|
|
file: entrypoint.sh.tmpl
|
|
|
|
template_driver: golang
|
|
|
|
|
|
|
|
secrets:
|
|
|
|
oauth2_secret:
|
|
|
|
name: ${STACK_NAME}_oauth2_secret_${SECRET_OAUTH2_SECRET_VERSION}
|
2022-02-04 12:35:46 +00:00
|
|
|
external: true
|