app-store/apps/kimai/docker-compose.yml
Tyler W 756a752eee
feat: add Kimai (#1390)
* feat: add Kimai

* fix: address code review comments

* fix: adjust hardcoded app port
2023-10-24 20:19:18 +03:00

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