volumes: scheidle-app: name: scheidle-app scheidle-db: name: scheidle-db networks: proxy: external: true scheidle: name: scheidle external: false services: scheidle-app: image: kimai/kimai2:fpm container_name: scheidle-app hostname: scheidle-app restart: unless-stopped environment: ADMINMAIL: ${ADMIN_USER} ADMINPASS: ${ADMIN_PASS} DATABASE_URL: mysql://${DB_USER}:${DB_PASS}@scheidle-db/${DB_NAME}?charset=utf8&serverVersion=8.1.0 APP_SECRET: ${APP_SECRET} depends_on: - scheidle-db networks: - scheidle volumes: - scheidle-app:/opt/kimai/public scheidle-web: image: nginx:alpine container_name: scheidle-web hostname: 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=kimai-scheidle-secure" - "traefik.http.services.kimai-scheidle-secure.loadbalancer.server.port=80" depends_on: - scheidle-app networks: - proxy - scheidle volumes: - scheidle-app:/opt/kimai/public:ro - ${PWD}/kimai.conf:/etc/nginx/conf.d/default.conf scheidle-db: image: mysql:8 container_name: scheidle-db hostname: scheidle-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS} MYSQL_USER: ${DB_USER} MYSQL_PASSWORD: ${DB_PASS} MYSQL_DATABASE: ${DB_NAME} volumes: - scheidle-db:/var/lib/mysql networks: - scheidle healthcheck: test: ["CMD-SHELL", "mysqladmin ping -u$${DB_USER} -p$$(DB_PASS)"]