#!/bin/bash echo "Welcome to the Docker Installer:" echo "" echo "" echo "1. The installer will update all Repos" apt update echo "" echo "2. The installer will install CURL and GIT" apt install curl git -y echo "" echo "3. The installer will clone the Docker-Compose Repository" HOME_DIR=/opt/jitsi-admin if [ -d $HOME_DIR ] then cd $HOME_DIR git add . && git stash && git pull else mkdir $HOME_DIR && cd $HOME_DIR git clone https://git.h2-invent.com/meetling/docker-compose.git . fi FILE=docker.conf if [ -f "$FILE" ]; then source $FILE else touch $FILE KEYCLOAK_PW=$(date +%s | sha256sum | base64 | head -c 32) JITSI_ADMIN_PW=$(date +%s | sha256sum | base64 | head -c 32) MERCURE_JWT_SECRET=$(date +%s | sha256sum | base64 | head -c 32) KEYCLOAK_ADMIN_PW=$(date +%s | sha256sum | base64 | head -c 32) NEW_UUID=$(date +%s | sha256sum | base64 | head -c 32) echo "KEYCLOAK_PW=$KEYCLOAK_PW" >> $FILE echo "JITSI_ADMIN_PW=$JITSI_ADMIN_PW" >> $FILE echo "MERCURE_JWT_SECRET=$MERCURE_JWT_SECRET" >> $FILE echo "KEYCLOAK_ADMIN_PW=$KEYCLOAK_ADMIN_PW" >> $FILE echo "NEW_UUID=$NEW_UUID" >> $FILE source $FILE fi ENVIRONMENT=${ENVIRONMENT:=prod} read -p "Enter the environment dev/prod[$ENVIRONMENT]: " input ENVIRONMENT=${input:=$ENVIRONMENT} sed -i '/ENVIRONMENT/d' $FILE echo "ENVIRONMENT=$ENVIRONMENT" >> $FILE 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 jitsi-admin with no protocoll (no http/https) [$PUBLIC_URL]: " input PUBLIC_URL=${input:=$PUBLIC_URL} sed -i '/PUBLIC_URL/d' $FILE echo "PUBLIC_URL=$PUBLIC_URL" >> $FILE default_language=${default_language:=en} read -p "Which language you want to set as default allowed values: [de, en, fr, es, vi, zh, ru, ja, pt]: [$default_language] " input default_language=${input:=$default_language} sed -i '/default_language/d' $FILE echo "default_language=$default_language" >> $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 "" cp .templates/realm-export.json keycloak/realm-export.json sed -i "s||$NEW_UUID|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 "" cp .templates/init-userdb.sql mysql-initdb/init-userdb.sql sed -i "s||$JITSI_ADMIN_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 "" touch .env touch .env.custom if [ -f .env.local ]; then rm .env.local fi cat < .env.local APP_SCHEME='$HTTP_METHOD' MAILER_DSN='null://null' DATABASE_URL='mysql://jitsiadmin:$JITSI_ADMIN_PW@db-ja:3306/jitsiadmin' laF_baseUrl='$HTTP_METHOD://$PUBLIC_URL' VICH_BASE='$HTTP_METHOD://$PUBLIC_URL' GIT_VERSION=1.0.12 PUBLIC_URL='$PUBLIC_URL' OAUTH_KEYCLOAK_CLIENT_SECRET=$NEW_UUID OAUTH_KEYCLOAK_SERVER='$HTTP_METHOD://$PUBLIC_URL/keycloak' OAUTH_KEYCLOAK_CLIENT_ID=jitsiadmin OAUTH_KEYCLOAK_REALM=jitsiadmin registerEmailAdress='notification@jitsi-admin.local' DEFAULT_LANGUAGE=$default_language MERCURE_URL='http://websocket-ja:3000/.well-known/mercure' MERCURE_PUBLIC_URL='$HTTP_METHOD://$PUBLIC_URL' WEBSOCKET_SECRET=$MERCURE_JWT_SECRET KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN_PASSWORD=$KEYCLOAK_ADMIN_PW KC_DB=mariadb KC_DB_USERNAME=keycloak KC_DB_PASSWORD=$KEYCLOAK_PW KC_DB_URL='jdbc:mariadb://db-ja:3306/keycloak' KC_HOSTNAME_URL='$HTTP_METHOD://$PUBLIC_URL/keycloak' KC_HOSTNAME_PATH='$HTTP_METHOD://$PUBLIC_URL/keycloak' KC_HOSTNAME_ADMIN_URL='$HTTP_METHOD://$PUBLIC_URL/keycloak' KC_HTTP_RELATIVE_PATH=/keycloak KC_PROXY=passthrough EOL echo ".env.local Datei wurde erfolgreich erstellt." echo ------------------------------------------------------------ echo --------- 3. Build Docker Compose File --------------------- echo ------------------------------------------------------------ echo "" cp .docker-compose.$HTTP_METHOD.yml docker-compose.yml sed -i "s||$PUBLIC_URL|g" docker-compose.yml sed -i "s||$HOST_IP|g" docker-compose.yml RED='\033[0;31m' NC='\033[0m' # No Color printf "After running docker-compose up -d, you can follow the following results" printf "Browse to ${RED}%s://%s${NC} and visit your own jitsi-admin\n" $HTTP_METHOD $PUBLIC_URL printf "To change any keycloak setting browse to${RED} %s://%s${NC}/keycloak (dev-environment: %s://keycloak.%s) and there the username is: admin and the password: %s\n" $HTTP_METHOD $PUBLIC_URL $HTTP_METHOD $PUBLIC_URL $KEYCLOAK_ADMIN_PW printf "Any settings and password can be found in the ${RED}docker.conf${NC} file\n" printf "To find your loadbalancer go to ${RED}%s://traefik.%s${NC} and enter the user: test and the password: test\n" $HTTP_METHOD $PUBLIC_URL printf "Have fun with your jitsi-admin and give us a star on github. https://github.com/H2-invent/jitsi-admin\n"