87 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
		
		
			
		
	
	
			87 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| 
								 | 
							
								# Adapted from https://github.com/tobybatch/kimai2/blob/799a534b8d93d18a2d10573457936a31052ce8e0/compose/docker-compose.fpm.prod.yml
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								version: "3.5"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								services:
							 | 
						||
| 
								 | 
							
								  nginx:
							 | 
						||
| 
								 | 
							
								    container_name: kimai-proxy
							 | 
						||
| 
								 | 
							
								    image: tobybatch/nginx-fpm-reverse-proxy:latest
							 | 
						||
| 
								 | 
							
								    ports:
							 | 
						||
| 
								 | 
							
								      - ${APP_PORT}:80
							 | 
						||
| 
								 | 
							
								    volumes:
							 | 
						||
| 
								 | 
							
								      - ${APP_DATA_DIR}/data/public:/opt/kimai/public:ro
							 | 
						||
| 
								 | 
							
								    restart: unless-stopped
							 | 
						||
| 
								 | 
							
								    depends_on:
							 | 
						||
| 
								 | 
							
								      - kimai
							 | 
						||
| 
								 | 
							
								    healthcheck:
							 | 
						||
| 
								 | 
							
								      test: wget --spider http://kimai-proxy/health || exit 1
							 | 
						||
| 
								 | 
							
								      interval: 20s
							 | 
						||
| 
								 | 
							
								      start_period: 10s
							 | 
						||
| 
								 | 
							
								      timeout: 10s
							 | 
						||
| 
								 | 
							
								      retries: 3
							 | 
						||
| 
								 | 
							
								    networks:
							 | 
						||
| 
								 | 
							
								      - tipi_main_network
							 | 
						||
| 
								 | 
							
								    labels:
							 | 
						||
| 
								 | 
							
								      # Main
							 | 
						||
| 
								 | 
							
								      traefik.enable: true
							 | 
						||
| 
								 | 
							
								      traefik.http.middlewares.kimai-proxy-web-redirect.redirectscheme.scheme: https
							 | 
						||
| 
								 | 
							
								      traefik.http.services.kimai-proxy.loadbalancer.server.port: 80
							 | 
						||
| 
								 | 
							
								      # Web
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-insecure.rule: Host(`${APP_DOMAIN}`)
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-insecure.entrypoints: web
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-insecure.service: kimai-proxy
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-insecure.middlewares: kimai-proxy-web-redirect
							 | 
						||
| 
								 | 
							
								      # Websecure
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy.rule: Host(`${APP_DOMAIN}`)
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy.entrypoints: websecure
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy.service: kimai-proxy
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy.tls.certresolver: myresolver
							 | 
						||
| 
								 | 
							
								      # Local domain
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-local-insecure.rule: Host(`kimai.${LOCAL_DOMAIN}`)
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-local-insecure.entrypoints: web
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-local-insecure.service: kimai-proxy
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-local-insecure.middlewares: kimai-proxy-web-redirect
							 | 
						||
| 
								 | 
							
								      # Local domain secure
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-local.rule: Host(`kimai-proxy.${LOCAL_DOMAIN}`)
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-local.entrypoints: websecure
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-local.service: kimai-proxy
							 | 
						||
| 
								 | 
							
								      traefik.http.routers.kimai-proxy-local.tls: true
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  kimai:
							 | 
						||
| 
								 | 
							
								    container_name: kimai
							 | 
						||
| 
								 | 
							
								    image: kimai/kimai2:fpm-2.1.0-prod
							 | 
						||
| 
								 | 
							
								    environment:
							 | 
						||
| 
								 | 
							
								      - ADMINMAIL=${KIMAI_ADMINMAIL}
							 | 
						||
| 
								 | 
							
								      - ADMINPASS=${KIMAI_ADMINPASS}
							 | 
						||
| 
								 | 
							
								      - "DATABASE_URL=mysql://kimai:${KIMAI_DATABASE_PASSWORD}@kimai-sqldb/kimai?charset=utf8&serverVersion=5.7"
							 | 
						||
| 
								 | 
							
								      - TRUSTED_HOSTS=kimai-proxy,localhost,127.0.0.1
							 | 
						||
| 
								 | 
							
								    volumes:
							 | 
						||
| 
								 | 
							
								      - ${APP_DATA_DIR}/data/public:/opt/kimai/public
							 | 
						||
| 
								 | 
							
								      - ${APP_DATA_DIR}/data/var:/opt/kimai/var
							 | 
						||
| 
								 | 
							
								      # - ./ldap.conf:/etc/openldap/ldap.conf:z
							 | 
						||
| 
								 | 
							
								      # - ./ROOT-CA.pem:/etc/ssl/certs/ROOT-CA.pem:z
							 | 
						||
| 
								 | 
							
								    restart: unless-stopped
							 | 
						||
| 
								 | 
							
								    networks:
							 | 
						||
| 
								 | 
							
								      - tipi_main_network
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  sqldb:
							 | 
						||
| 
								 | 
							
								    container_name: kimai-sqldb
							 | 
						||
| 
								 | 
							
								    image: mysql:5.7
							 | 
						||
| 
								 | 
							
								    environment:
							 | 
						||
| 
								 | 
							
								      - MYSQL_DATABASE=kimai
							 | 
						||
| 
								 | 
							
								      - MYSQL_USER=kimai
							 | 
						||
| 
								 | 
							
								      - MYSQL_PASSWORD=${KIMAI_DATABASE_PASSWORD}
							 | 
						||
| 
								 | 
							
								      - MYSQL_ROOT_PASSWORD=${KIMAI_DATABASE_ROOT_PASSWORD}
							 | 
						||
| 
								 | 
							
								    volumes:
							 | 
						||
| 
								 | 
							
								        - ${APP_DATA_DIR}/data/mysql:/var/lib/mysql
							 | 
						||
| 
								 | 
							
								    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:
							 | 
						||
| 
								 | 
							
								      - tipi_main_network
							 |