Deliver kimai as complete stack.

This commit is contained in:
2022-02-22 14:13:24 +01:00
parent dc591f98fe
commit 9d7ccb3ee0
5 changed files with 83 additions and 53 deletions

9
kimai/.env Normal file
View File

@@ -0,0 +1,9 @@
ADMIN_USER=christiansteinle@arcor.de
ADMIN_PASS=ZovJdPamHwSNCGTcOPDb
APP_SECRET=gwot394*Gt
DB_USER=kimai
DB_NAME=kimai
DB_PASS=xXW5dnQoMpAmdXrQgUgU

74
kimai/docker-compose.yaml Normal file
View File

@@ -0,0 +1,74 @@
version: "3.9"
volumes:
kimai:
name: kimai
kimai-var:
name: kimai-var
kimai-db:
name: kimai-db
networks:
proxy:
external: true
kimai:
name: kimai
external: false
services:
kimai:
image: kimai/kimai2
container_name: kimai
hostname: kimai
restart: unless-stopped
environment:
ADMINMAIL: ${ADMIN_USER}
ADMINPASS: ${ADMIN_PASS}
DATABASE_URL: mysql://${DB_USER}:${DB_PASS}@kimai-db/${DB_NAME}
TRUSTED_HOSTS: kimai.lan
APP_SECRET: ${APP_SECRET}
depends_on:
- kimai-db
networks:
- kimai
volumes:
- kimai:/opt/kimai/public
- kimai-var:/opt/kimai/var
kimai-web:
image: nginx:alpine
container_name: kimai-web
hostname: kimai-web
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.kimai.entrypoints=web"
- "traefik.http.routers.kimai.rule=Host(`kimai.lan`)"
- "traefik.http.services.kimai.loadbalancer.server.port=80"
depends_on:
- kimai
networks:
- proxy
- kimai
volumes:
- kimai:/opt/kimai/public:ro
- ${PWD}/kimai.conf:/etc/nginx/conf.d/default.conf
kimai-db:
image: mysql:8
container_name: kimai-db
hostname: kimai-db
command: --default-authentication-plugin=mysql_native_password
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASS}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASS}
MYSQL_DATABASE: ${DB_NAME}
volumes:
- kimai-db:/var/lib/mysql
networks:
- kimai
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -u$${DB_USER} -p$$(DB_PASS)"]

25
kimai/kimai.conf Normal file
View File

@@ -0,0 +1,25 @@
server {
listen 80;
index index.php;
server_name kimai.lan;
root /opt/kimai/public;
# cache static asset files
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
log_not_found off;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass kimai:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
}