docker/kimai/docker-compose-traefik.yml
2026-01-11 11:52:52 +01:00

53 lines
1.5 KiB
YAML

# Note: Kimai doesn't support passwords longer then 60 digits.
services:
kimai-db:
image: mysql:8.3
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_DATABASE=${DATABASE_NAME}
- MYSQL_USER=${DATABASE_USER}
- MYSQL_PASSWORD=${DATABASE_PASSWORD}
- MYSQL_ROOT_PASSWORD=${DATABASE_ROOT_PASSWORD}
command: --default-storage-engine innodb
restart: unless-stopped
healthcheck:
test: mysqladmin -p$$MYSQL_ROOT_PASSWORD ping -h localhost
interval: 20s
start_period: 10s
timeout: 10s
retries: 3
networks:
- kimai
kimai-app:
image: kimai/kimai2:apache
volumes:
- ./data:/opt/kimai/var/data
- ./plugins:/opt/kimai/var/plugins
#ports:
# - 8001:8001
environment:
- ADMINMAIL=${ADMIN_EMAIL}
- ADMINPASS=${ADMIN_PASSWORD}
- "DATABASE_URL=mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@kimai-db/${DATABASE_NAME}?charset=utf8mb4&serverVersion=8.3.0"
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.kimai.entrypoints=web, websecure"
- "traefik.http.routers.kimai.rule=Host(`${TRAEFIK_DOMAIN}`)"
- "traefik.http.routers.kimai.tls=true"
- "traefik.http.routers.kimai.tls.certresolver=cloudflare"
- "traefik.docker.network=traefik_default"
- "traefik.http.services.kimai.loadbalancer.server.port=8001"
networks:
- traefik
- kimai
networks:
kimai:
external: false
traefik:
name: traefik_default
external: true