Files
production-infra/kimai-scheidle/docker-compose.yaml
2024-02-23 19:29:41 +01:00

78 lines
2.3 KiB
YAML

version: "3.9"
volumes:
kimai-scheidle:
name: scheidle
kimai-scheidle-db:
name: scheidle-db
networks:
proxy:
external: true
kimai-scheidle:
name: kimai-scheidle
external: false
services:
scheidle-app :
image: kimai/kimai2:fpm
container_name: scheidle
hostname: 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:
- scheidle-db
networks:
- scheidle
volumes:
- scheidle:/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
networks:
- proxy
- scheidle
volumes:
- scheidle:/opt/kimai/public:ro
- ${PWD}/kimai.conf:/etc/nginx/conf.d/default.conf
kimai-scheidle-db:
image: mysql:8
container_name: scheidle-db
hostname: scheidle-db
command: --default-authentication-plugin=mysql_native_password
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)"]