#!/bin/bash echo "Welcome to the Docker Installer:" echo "" echo "1. The installer will update all Repos" apt update echo "2. The installer will install CURL and GIT" apt install curl git -y echo "3. The installer will install Docker and Docker Compose" apt install docker docker-compose -y echo "4. The installer will clone the Docker-Compose Repository" HOME_DIR=/opt/odc if [ -d $HOME_DIR/docker-compose ] then cd /$HOME_DIR/docker-compose git add . git stash git pull else mkdir /opt/odc && cd /opt/odc git clone https://git.h2-invent.com/datenschutzcenter/docker-compose.git cd docker-compose fi echo "5. The installer will setup all scripts, so you can docker-compose up" echo "" 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"