# Kimai - Időkövetés és projektmenedzsment # Domain: ${SUBDOMAIN}.${DOMAIN} # Database: mariadb # RAM: ~100M (mem_limit: 384M) | Pi-compatible: Yes # # Environment variables: # DOMAIN - Your domain (e.g., demo-felhom.eu) # DB_PASSWORD - Adatbázis jelszó (auto-generated) # ADMIN_EMAIL - Admin email # ADMIN_PASSWORD - Admin jelszó (auto-generated) services: kimai: image: kimai/kimai2:apache-2.25.0 container_name: kimai restart: unless-stopped depends_on: kimai-db: condition: service_healthy environment: - TZ=Europe/Budapest - DATABASE_URL=mysql://kimai:${DB_PASSWORD}@kimai-db:3306/kimai?charset=utf8mb4&serverVersion=11.6.2-MariaDB - ADMINMAIL=${ADMIN_EMAIL:-admin@example.com} - ADMINPASS=${ADMIN_PASSWORD} volumes: - kimai_var:/opt/kimai/var networks: - traefik-public - kimai-internal deploy: resources: limits: memory: 384M healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8001"] interval: 30s timeout: 5s retries: 3 start_period: 30s labels: - "traefik.enable=true" - "traefik.http.routers.kimai.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)" - "traefik.http.routers.kimai.entrypoints=websecure" - "traefik.http.routers.kimai.tls=true" - "traefik.http.routers.kimai.tls.certresolver=letsencrypt" - "traefik.http.services.kimai.loadbalancer.server.port=8001" kimai-db: image: mariadb:11.6 container_name: kimai-db restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=${DB_PASSWORD} - MYSQL_DATABASE=kimai - MYSQL_USER=kimai - MYSQL_PASSWORD=${DB_PASSWORD} - TZ=Europe/Budapest volumes: - kimai_db_data:/var/lib/mysql networks: - kimai-internal deploy: resources: limits: memory: 256M healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 5 start_period: 20s volumes: kimai_db_data: kimai_var: networks: traefik-public: external: true kimai-internal: