diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7b359bc --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.5" +services: + kimai: + container_name: kimai + image: kimai/kimai2:${KIMAI_VERSION:-apache} + restart: unless-stopped + ports: + - ${KIMAI_HOST_IP_ADDRESS:-127.0.0.1}:${KIMAI_HOST_PORT:-8001}:8001 + environment: + ADMINMAIL: ${KIMAI_ADMIN_MAIL:-admin@kimai.local} + ADMINPASS: ${KIMAI_ADMIN_PASSWORD:-password} + DB_TYPE: mysql + DB_HOST: ${KIMAI_DB_HOST:?err} + DB_PORT: ${KIMAI_DB_PORT:?err} + DB_BASE: ${KIMAI_DB_NAME:?err} + DB_USER: ${KIMAI_DB_USER:?err} + DB_PASS: ${KIMAI_DB_PASSWORD:?err} + TRUSTED_HOSTS: localhost,127.0.0.1 diff --git a/setup b/setup new file mode 100755 index 0000000..ee50441 --- /dev/null +++ b/setup @@ -0,0 +1,78 @@ +#!/bin/bash + +echo "####################################################################" +echo "# docker_kimai_setup_script #" +echo "# Dennis Buchhorn - bucde@b-eit.de #" +echo "####################################################################" +echo "# WARNING: password is plain text input! #" +echo "# #" +echo "# Config will be saved in '.env' file. #" +echo "# (everything in plain text, even the password) #" +#echo "# #" +echo "####################################################################" +echo "" + +CONFIG_EXISTS="false" +KEEP_CONFIG="" + +KIMAI_VERSION="" +KIMAI_HOST_IP_ADDRESS="" +KIMAI_HOST_PORT="" +KIMAI_ADMIN_MAIL="" +KIMAI_ADMIN_PASSWORD="" +KIMAI_DB_HOST="" +KIMAI_DB_PORT="" +KIMAI_DB_NAME="" +KIMAI_DB_USER="" +KIMAI_DB_PASSWORD="" + +if [ -f ".env" ]; then + CONFIG_EXISTS="true" + read -p "Config file '.env' already exists! Would you like to use this? (y/n)" KEEP_CONFIG +fi + +if [ $CONFIG_EXISTS == "false" ] || [ $KEEP_CONFIG == "n" ]; then + read -p "Enter kimai version which should be used: " KIMAI_VERSION + read -p "Enter host (vm) ip address on which kimai should be accessible: " KIMAI_HOST_IP_ADDRESS + read -p "Enter host (vm) port on which kimai should be accessible: " KIMAI_HOST_PORT + read -p "Enter admin mail address for kimai: " KIMAI_ADMIN_MAIL + read -p "Enter admin password for kimai: " KIMAI_ADMIN_PASSWORD + read -p "Enter database host for kimai: " KIMAI_DB_HOST + read -p "Enter database port for kimai: " KIMAI_DB_PORT + read -p "Enter database name for kimai: " KIMAI_DB_NAME + read -p "Enter database user name for kimai: " KIMAI_DB_USER + read -p "Enter database user password for kimai: " KIMAI_DB_PASSWORD + + rm -f .env + touch .env + echo "KIMAI_VERSION="$KIMAI_VERSION >> .env + echo "KIMAI_HOST_IP_ADDRESS="$KIMAI_HOST_IP_ADDRESS >> .env + echo "KIMAI_HOST_PORT="$KIMAI_HOST_PORT >> .env + echo "KIMAI_ADMIN_MAIL="$KIMAI_ADMIN_MAIL >> .env + echo "KIMAI_ADMIN_PASSWORD="$KIMAI_ADMIN_PASSWORD >> .env + echo "KIMAI_DB_HOST="$KIMAI_DB_HOST >> .env + echo "KIMAI_DB_PORT="$KIMAI_DB_PORT >> .env + echo "KIMAI_DB_NAME="$KIMAI_DB_NAME >> .env + echo "KIMAI_DB_USER="$KIMAI_DB_USER >> .env + echo "KIMAI_DB_PASSWORD="$KIMAI_DB_PASSWORD >> .env + + echo "Config file '.env' created!" +else + echo "Use existing config file '.env'!" +fi + +read -p "Should the config file '.env' be deleted after creating the container? (y/n)" DELETE_CONFIG + +docker-compose up -d + +echo "Wait a few seconds for the container to spin up ..." + +sleep 5 + +if [ $DELETE_CONFIG == "y" ]; then + rm -f .env + + echo "Config file '.env' deleted!" +fi + +echo "Done!"