version: "3.9" volumes: kimai-scheidle: name: kimai-scheidle kimai-scheidle-db: name: kimai-scheidle-db networks: proxy: external: true kimai-scheidle: name: kimai-scheidle external: false services: kimai-scheidle: image: kimai/kimai2:fpm container_name: kimai-scheidle hostname: kimai-scheidle restart: unless-stopped environment: ADMINMAIL: ${ADMIN_USER} ADMINPASS: ${ADMIN_PASS} DATABASE_URL: mysql://${DB_USER}:${DB_PASS}@kimai-scheidle-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-scheidle-db networks: - kimai-scheidle volumes: - kimai-scheidle:/opt/kimai/public kimai-scheidle-web: image: nginx:alpine container_name: kimai-scheidle-web hostname: kimai-scheidle-web restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.kimai-scheidle.rule=Host(`scheidle.ri-st.de`)" - "traefik.http.routers.kimai-scheidle.entrypoints=web" - "traefik.http.routers.kimai-scheidle.middlewares=kimai-scheidle" - "traefik.http.middlewares.kimai-scheidle.redirectscheme.scheme=https" - "traefik.http.routers.kimai-scheidle-secure.rule=Host(`scheidle.ri-st.de`)" - "traefik.http.routers.kimai-scheidle-secure.entrypoints=websecure" - "traefik.http.routers.kimai-scheidle-secure.tls=true" - "traefik.http.routers.kimai-scheidle-secure.tls.certresolver=cs" - "traefik.http.routers.kimai-scheidle-secure.service=hkimai-scheidle-secure" - "traefik.http.services.kimai-scheidle-secure.loadbalancer.server.port=80" depends_on: - kimai-scheidle networks: - proxy - kimai-scheidle volumes: - kimai-scheidle:/opt/kimai/public:ro - ${PWD}/kimai.conf:/etc/nginx/conf.d/default.conf kimai-scheidle-db: image: mysql:8 container_name: kimai-scheidle-db hostname: kimai-scheidle-db command: --default-authentication-plugin=mysql_native_password restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${DB_PASS} MYSQL_USER: ${DB_USER} MYSQL_PASSWORD: ${DB_PASS} MYSQL_DATABASE: ${DB_NAME} volumes: - kimai-scheidle-db:/var/lib/mysql networks: - kimai-scheidle healthcheck: test: ["CMD-SHELL", "mysqladmin ping -u$${DB_USER} -p$$(DB_PASS)"]