67 lines
2.2 KiB
Bash
Executable file
67 lines
2.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
generate_pass() { echo $(head -c 32 /dev/urandom | base64 | tr -d "=/+"); }
|
|
|
|
mkdir -p certs
|
|
if [ ! -f "certs/3m.pem" ]; then
|
|
openssl genrsa -out certs/3m.pem 2048
|
|
openssl rsa -in certs/3m.pem -pubout -out certs/3m.pub
|
|
fi
|
|
if [ ! -f "certs/grumble.pem" ]; then
|
|
openssl genrsa -out certs/grumble.pem 2048
|
|
openssl rsa -in certs/grumble.pem -pubout -out certs/grumble.pub
|
|
fi
|
|
|
|
envp() {
|
|
if [ -z "${!1}" ]; then
|
|
read -p "$2: " INPUT
|
|
echo "$1='$INPUT'" >> .env
|
|
export "$1=$INPUT"
|
|
fi
|
|
}
|
|
|
|
envgen() {
|
|
if [ -z "${!1}" ]; then
|
|
echo "$1='$2'" >> .env
|
|
export "$1='$2'"
|
|
fi
|
|
}
|
|
|
|
if [ -f ".env" ]; then
|
|
source .env
|
|
fi
|
|
|
|
|
|
envgen MYSQL_PASSWORD $(generate_pass)
|
|
envgen MINIO_ROOT_PASSWORD $(generate_pass)
|
|
envgen COTURN_PASSWORD $(generate_pass)
|
|
envgen MINIO_ROOT_USER "threem"
|
|
|
|
envp ERGO__NETWORK__NAME "What's the overall name of the network? No spaces or special characters (e.g. 'CEF')"
|
|
envp DOMAIN "What is your domain? Omit HTTP/HTTPS (e.g. 'cef.icu')"
|
|
envgen ERGO__SERVER__NAME $DOMAIN
|
|
envgen ERGO__DATASTORE__MYSQL__PASSWORD $MYSQL_PASSWORD
|
|
envgen THREEM_DBURL "mysql+mysqldb://root:$MYSQL_PASSWORD@mariadb/ergo_ext"
|
|
|
|
envp HOST_DOMAIN "What is the domain of your Minio configuration (e.g. 'i.cef.icu')"
|
|
envgen THREEM_MINIO_EXTERNAL_ADDR $HOST_DOMAIN
|
|
envp ERGO__SERVER__IP_CLOAKING__NETNAME "What do you want the fake TLD of a cloaked IP to be? (e.g. 'cef')"
|
|
envp ERGO__SERVER__OVERRIDE_SERVICES_HOSTNAME "What do you want the vhost of IRC services to be (e.g. 'cef.operative')"
|
|
|
|
envp VIDEO_DOMAIN "What is the domain of the video server? It MUST not be behind cloudflare (e.g. video.cef.icu)"
|
|
envgen MTX_WEBRTCADDITIONALHOSTS "$VIDEO_DOMAIN"
|
|
|
|
envgen VITE_IRC_WEBSOCKET "wss://$DOMAIN/chat"
|
|
envgen VITE_3M_ADDRESS "https://$DOMAIN/3m"
|
|
envgen VITE_HOSTING_ADDRESS "https://$HOST_DOMAIN"
|
|
|
|
envgen IMAGOR_SECRET $(generate_pass)
|
|
envgen IMAGOR_URL "https://$HOST_DOMAIN/embed/"
|
|
|
|
envgen THREEM_MEDIAMTX_API "http://mediamtx:9997"
|
|
envgen THREEM_MEDIAMTX_RTSP "mediamtx:8554"
|
|
envgen ERGO__CEF__IMAGOR__URL "https://$HOST_DOMAIN/embed/"
|
|
envgen ERGO__CEF__IMAGOR__SECRET "$IMAGOR_SECRET"
|
|
envgen VITE_VOICE_ADDRESS "wss://$DOMAIN/voice"
|
|
|
|
echo "Have you set up Minio? If not, run ./setup-minio.sh"
|