#!/bin/bash echo Welcome to the Docker Installer: FILE=env.local if [ -f "$FILE" ]; then source $FILE else touch $FILE KEYCLOAK_PW=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) ODC_DB_PW=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) KEYCLOAK_ADMIN_PW=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) OAUTH_KEYCLOAK_CLIENT_ID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) echo "KEYCLOAK_PW=$KEYCLOAK_PW" >> $FILE echo "KEYCLOAK_ADMIN_PW=$KEYCLOAK_ADMIN_PW" >> $FILE echo "OAUTH_KEYCLOAK_CLIENT_ID=$OAUTH_KEYCLOAK_CLIENT_ID" >> $FILE echo "ODC_DB_PW=$ODC_DB_PW" >> $FILE source $FILE fi HTTP_METHOD=${HTTP_METHOD:=http} read -p "Enter http/https for testing on local environment ALWAYS use http [$HTTP_METHOD]: " input HTTP_METHOD=${input:=$HTTP_METHOD} sed -i '/HTTP_METHOD/d' $FILE echo "HTTP_METHOD=$HTTP_METHOD" >> $FILE PUBLIC_URL=${PUBLIC_URL:=dev.domain.de} read -p "Enter the url you want to enter the open-datenschutzcenter without http://, https:// or ports [$PUBLIC_URL]: " input PUBLIC_URL=${input:=$PUBLIC_URL} sed -i '/PUBLIC_URL/d' $FILE echo "PUBLIC_URL=$PUBLIC_URL" >> $FILE HOST_IP=$(ip a | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -n 1) echo ------------------------------------------------------------ echo --- 1. Build the Keycloak ---------------------------------- echo ------------------------------------------------------------ echo "" sed -i "s||$OAUTH_KEYCLOAK_CLIENT_ID|g" keycloak/realm-export.json sed -i "s||$HTTP_METHOD://$PUBLIC_URL|g" keycloak/realm-export.json echo ------------------------------------------------------------ echo ------ 2. Build Mysql Init DB ------------------------------ echo ------------------------------------------------------------ echo "" sed -i "s||$ODC_DB_PW|g" mysql-initdb/init-userdb.sql sed -i "s||$KEYCLOAK_PW|g" mysql-initdb/init-userdb.sql echo ------------------------------------------------------------ echo --------- 3. Build Docker Compose File --------------------- echo ------------------------------------------------------------ echo "" cp docker-compose.$HTTP_METHOD.yml docker-compose.yml sed -i "s||$KEYCLOAK_ADMIN_PW|g" docker-compose.yml sed -i "s||$KEYCLOAK_PW|g" docker-compose.yml sed -i "s||$OAUTH_KEYCLOAK_CLIENT_ID|g" docker-compose.yml sed -i "s||$PUBLIC_URL|g" docker-compose.yml sed -i "s||$HTTP_METHOD|g" docker-compose.yml sed -i "s||$ODC_DB_PW|g" docker-compose.yml sed -i "s||$HOST_IP|g" docker-compose.yml echo ------------------------------------------------------------ echo ------------ 4. Remove Setup Script ------------------------ echo ------------------------------------------------------------ echo "" rm setup.sh echo "" echo "" echo ------------------------------------------------------------ echo FINALY: Select and SPrepare tart Docker Compose ------------ echo ------------------------------------------------------------ echo "" echo "DOCKER COMPOSE" echo "run 'docker-compose up --detach' to start the containers" echo "" echo "IMPORTANT" echo "1. Wait for at least 10 Minutes for the containers to be up and healthy" echo "2. Backup ALL Volumes and most important the DB and secretStorage"