Kimai ist eine webbasierte Anwendung zur Zeiterfassung, die sich für eine Nutzung durch mehrere Benutzer eignet. Sie kann von Freiberuflern, Unternehmen und Organisationen eingesetzt werden. Mit Kimai ist es möglich, Zeiten zu erfassen, Berichte zu erstellen, Rechnungen zu generieren und weitere Funktionen zu nutzen.
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- TRAEFIK V2 + 3 – REVERSE-PROXY MIT CROWDSEC IM STACK EINRICHTEN
2. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/kimai
3. Compose Datei anlegen
nano /opt/containers/kimai/compose.yml
Inhalt
services:
sqldb:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=kimai
- MYSQL_USER=kimaiuser
- MYSQL_PASSWORD=kimaipassword
- MYSQL_ROOT_PASSWORD=sicheresPassword
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:
- default
kimai:
image: kimai/kimai2:apache
volumes:
- ./data:/opt/kimai/var/data
environment:
- ADMINMAIL=deine@email.de
- ADMINPASS=sicheresPassword
- DATABASE_URL=mysql://kimaiuser:kimaipassword@sqldb/kimai
- TRUSTED_HOSTS=traefik,nginx,localhost,127.0.0.1,kimai,kimai.deinedomain.de
- APP_ENV=prod
restart: unless-stopped
networks:
- default
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.kimai.entrypoints=websecure"
- "traefik.http.routers.kimai.rule=Host(`kimai.deinedomain.de`)"
- "traefik.http.routers.kimai.middlewares=default@file"
- "traefik.http.routers.kimai.tls=true"
- "traefik.http.routers.kimai.tls.certresolver=http_resolver"
- "traefik.http.routers.kimai.service=kimai"
- "traefik.http.services.kimai.loadbalancer.server.port=8001"
- "traefik.docker.network=proxy"
networks:
proxy:
external: true
volumes:
data:
mysql:
Noch anzupassen:
- MYSQL_PASSWORD=kimaipassword
- MYSQL_ROOT_PASSWORD=sicheresPassword
- ADMINMAIL=deine@email.de
- ADMINPASS=sicheresPassword
- DATABASE_URL=mysql://kimaiuser:kimaipassword@sqldb/kimai <- selbes Password wie oben
- TRUSTED_HOSTS=kimai.deinedomain.de
- Eure Traefik URL: Host(
kimai.deinedomain.de)
4. Kimai starten
Nun starten wir den Container mittels folgendem Befehl:
docker compose -f /opt/containers/kimai/compose.yml up -d
Sobald der Container ausgerollt ist könnt ihr nun eure Domain aufrufen. Beim ersten Start braucht der Container ca. 1 Minuten.
Ruft nun im Browser die gewählte Domain auf und dann solltet ihr folgendes sehen.

Melde dich mit deiner Emailadresse und Passwort an und schon kannst du Kimai nutzen.
Für Produktionszwecke würde ich die stark empfehlen die Dokumentation zu lesen. Es lässt sich auch super als PWA auf dem Smartphone nutzen.
Die angebotenen Apps sowohl für Android oder iOS fand ich persönlich jetzt nicht so brauchbar.
Quelle:
https://www.kimai.org/documentation

Hallo und vielen Dank für diese ordentliche Anleitung. Eine kleine Frage hätte ich aber dazu – beim Lesen auf der Kimai Webseite im Bereich der Docker Konfiguration ist mir aufgefallen, dass dort aktuell mysql 8.3 verwendet wird und hier 5.7 – gibt es da einen Grund für?