networks: proxy: external: true kimai: name: kimai external: false volumes: kimai: name: kimai kimai-db: name: kimai-db services: kimai: image: kimai/kimai2:fpm container_name: kimai hostname: kimai restart: unless-stopped environment: ADMINMAIL: ${ADMIN_USER} ADMINPASS: ${ADMIN_PASS} DATABASE_URL: mysql://${DB_USER}:${DB_PASS}@kimai-db/${DB_NAME}?charset=utf8&serverVersion=8.1.0 TRUSTED_HOSTS: kimai.lan,kimai-web,localhost,127.0.0.1 APP_SECRET: ${APP_SECRET} depends_on: - kimai-db networks: - kimai volumes: - kimai:/opt/kimai/public kimai-web: image: nginx:alpine container_name: kimai-web hostname: kimai-web restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.kimai.entrypoints=web" - "traefik.http.routers.kimai.rule=Host(`kimai.lan`)" - "traefik.http.services.kimai.loadbalancer.server.port=80" depends_on: - kimai networks: - proxy - kimai volumes: - kimai:/opt/kimai/public:ro - ${PWD}/kimai.conf:/etc/nginx/conf.d/default.conf kimai-db: image: mysql:8 container_name: kimai-db hostname: kimai-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${DB_PASS} MYSQL_USER: ${DB_USER} MYSQL_PASSWORD: ${DB_PASS} MYSQL_DATABASE: ${DB_NAME} volumes: - kimai-db:/var/lib/mysql networks: - kimai healthcheck: test: [ "CMD-SHELL", "mysqladmin ping -u$${DB_USER} -p$$(DB_PASS)" ]