From 1a656c304c2845f7d2222bf051100805461cfa01 Mon Sep 17 00:00:00 2001 From: chris Date: Tue, 6 Feb 2024 17:07:35 +0100 Subject: [PATCH] Add kimai stack for Scheidle. --- kimai-scheidle/.env | 8 ++++ kimai-scheidle/docker-compose.yaml | 70 ++++++++++++++++++++++++++++++ kimai-scheidle/kimai.conf | 25 +++++++++++ 3 files changed, 103 insertions(+) create mode 100644 kimai-scheidle/.env create mode 100644 kimai-scheidle/docker-compose.yaml create mode 100644 kimai-scheidle/kimai.conf diff --git a/kimai-scheidle/.env b/kimai-scheidle/.env new file mode 100644 index 0000000..3e8782f --- /dev/null +++ b/kimai-scheidle/.env @@ -0,0 +1,8 @@ +ADMIN_USER=SAdmin +ADMIN_PASS=paE76zrCZfhA6Fbx1MUM + +APP_SECRET=gwot394*Gt + +DB_USER=kimai +DB_NAME=kimai +DB_PASS=xXW5dnQoMpAmdXrQgUgU \ No newline at end of file diff --git a/kimai-scheidle/docker-compose.yaml b/kimai-scheidle/docker-compose.yaml new file mode 100644 index 0000000..c1b484d --- /dev/null +++ b/kimai-scheidle/docker-compose.yaml @@ -0,0 +1,70 @@ +version: "3.9" + +volumes: + kimai: + name: kimai-scheidle + kimai-db: + name: kimai-scheidle-db + +networks: + proxy: + external: true + kimai: + name: kimai-scheidle + external: false + +services: + kimai: + image: kimai/kimai2:fpm + container_name: kimai-scheidle + hostname: kimai-scheidle + restart: unless-stopped + environment: + ADMINMAIL: ${ADMIN_USER} + ADMINPASS: ${ADMIN_PASS} + DATABASE_URL: mysql://${DB_USER}:${DB_PASS}@kimai-scheidle-db/${DB_NAME}?charset=utf8&serverVersion=8.1.0 + TRUSTED_HOSTS: kimai.lan,kimai-web,localhost,127.0.0.1 + APP_SECRET: ${APP_SECRET} + depends_on: + - kimai-scheidle-db + networks: + - kimai-scheidle + volumes: + - kimai-scheidle:/opt/kimai/public + + kimai-web: + image: nginx:alpine + container_name: kimai-scheidle-web + hostname: kimai-scheidle-web + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.http.routers.kimai-scheidle.entrypoints=web" + - "traefik.http.routers.kimai-scheidle.rule=Host(`scheidle.ri-st.de`)" + - "traefik.http.services.kimai-scheidle.loadbalancer.server.port=80" + depends_on: + - kimai-scheidle + networks: + - proxy + - kimai-scheidle + volumes: + - kimai-scheidle:/opt/kimai/public:ro + - ${PWD}/kimai.conf:/etc/nginx/conf.d/default.conf + + kimai-db: + image: mysql:8 + container_name: kimai-scheidle-db + hostname: kimai-scheidle-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-scheidle-db:/var/lib/mysql + networks: + - kimai-scheidle + healthcheck: + test: ["CMD-SHELL", "mysqladmin ping -u$${DB_USER} -p$$(DB_PASS)"] diff --git a/kimai-scheidle/kimai.conf b/kimai-scheidle/kimai.conf new file mode 100644 index 0000000..7acd675 --- /dev/null +++ b/kimai-scheidle/kimai.conf @@ -0,0 +1,25 @@ +server { + listen 80; + index index.php; + server_name scheidle.ri-st.de; + 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; + } +} \ No newline at end of file