added docker compose

This commit is contained in:
Dejan R. 2025-11-29 19:03:21 +00:00
commit c612802a56

71
docker-compose.yml Normal file
View file

@ -0,0 +1,71 @@
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