# 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