72 lines
2.4 KiB
YAML
72 lines
2.4 KiB
YAML
version: "3.8"
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|
|
name: traefik_default
|
|
app:
|
|
driver: bridge
|
|
|
|
services:
|
|
db:
|
|
image: mariadb:10
|
|
command:
|
|
- --character-set-server=utf8mb4
|
|
- --collation-server=utf8mb4_unicode_ci
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: supersecret
|
|
MYSQL_DATABASE: vikunja
|
|
MYSQL_USER: vikunja
|
|
MYSQL_PASSWORD: changeme
|
|
volumes:
|
|
- ./db:/var/lib/mysql
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -u$${MYSQL_USER} -p$${MYSQL_PASSWORD} || exit 1"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 20
|
|
start_period: 30s
|
|
restart: unless-stopped
|
|
networks:
|
|
- app
|
|
|
|
vikunja:
|
|
image: vikunja/vikunja:0.24.6
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
VIKUNJA_SERVICE_PUBLICURL: https://vikunja.rozic-dev.com
|
|
VIKUNJA_DATABASE_TYPE: mysql
|
|
VIKUNJA_DATABASE_HOST: db
|
|
VIKUNJA_DATABASE_DATABASE: vikunja
|
|
VIKUNJA_DATABASE_USER: vikunja
|
|
VIKUNJA_DATABASE_PASSWORD: changeme
|
|
VIKUNJA_SERVICE_JWTSECRET: "replace-with-a-long-random-secret"
|
|
VIKUNJA_SERVICE_ENABLEREGISTRATION: "false"
|
|
# ports:
|
|
# - "3456:3456" # Not needed when using Traefik
|
|
volumes:
|
|
- ./files:/app/vikunja/files
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=traefik_default
|
|
- traefik.http.routers.vikunja.rule=Host(`vikunja.rozic-dev.com`)
|
|
- traefik.http.routers.vikunja.entrypoints=websecure
|
|
- traefik.http.routers.vikunja.tls=true
|
|
- traefik.http.routers.vikunja.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.vikunja.service=vikunja
|
|
- traefik.http.services.vikunja.loadbalancer.server.scheme=http
|
|
- traefik.http.services.vikunja.loadbalancer.server.port=3456
|
|
- traefik.http.middlewares.vikunja-compress.compress=true
|
|
- traefik.http.middlewares.vikunja-headers.headers.stsSeconds=31536000
|
|
- traefik.http.middlewares.vikunja-headers.headers.stsIncludeSubdomains=true
|
|
- traefik.http.middlewares.vikunja-headers.headers.stsPreload=true
|
|
- traefik.http.middlewares.vikunja-headers.headers.contentTypeNosniff=true
|
|
- traefik.http.middlewares.vikunja-headers.headers.browserXssFilter=true
|
|
- traefik.http.routers.vikunja.middlewares=vikunja-compress,vikunja-headers
|
|
restart: unless-stopped
|
|
networks:
|
|
- app
|
|
- traefik
|