refactored interactive section into one script
This commit is contained in:
+31
-40
@@ -11,51 +11,41 @@ OUTPUT_FILE="${ROOT_DIR}/compose.yaml"
|
||||
|
||||
require_file "$TEMPLATE_FILE" "Compose template"
|
||||
|
||||
log_info "Configuring optional services..."
|
||||
log_info "Generating compose.yaml based on .env configuration..."
|
||||
|
||||
read -r -p "Enable LiveKit RTC Stack? (Used for Element call) (Y/n) [Y]: " LIVEKIT_INPUT
|
||||
LIVEKIT_INPUT="${LIVEKIT_INPUT:-Y}"
|
||||
if [[ "$LIVEKIT_INPUT" =~ ^[Yy]$ ]]; then
|
||||
INCLUDE_LIVEKIT=true
|
||||
LIVEKIT_KEY=$(openssl rand -hex 16)
|
||||
LIVEKIT_SECRET=$(openssl rand -hex 32)
|
||||
cat >> "$ENV_FILE" <<EOF
|
||||
LIVEKIT_FQDN="rtc.${DOMAIN}"
|
||||
JWT_FQDN="jwt.${DOMAIN}"
|
||||
LIVEKIT_API_KEY="${LIVEKIT_KEY}"
|
||||
LIVEKIT_API_SECRET="${LIVEKIT_SECRET}"
|
||||
LIVEKIT_UDP_RANGE="10000-20000"
|
||||
EOF
|
||||
# Read configuration from .env
|
||||
# Defaults: LiveKit=off, WebApp=None, Proxy=Traefik
|
||||
INCLUDE_LIVEKIT="${INCLUDE_LIVEKIT:-false}"
|
||||
WEBAPP="${WEBAPP:-NONE}"
|
||||
PROXY="${PROXY:-TRAEFIK}"
|
||||
|
||||
# Determine inclusion flags based on single-value variables
|
||||
if [[ "$WEBAPP" == "ELEMENT" ]]; then
|
||||
INCLUDE_ELEMENT="true"
|
||||
INCLUDE_CINNY="false"
|
||||
INCLUDE_FLUFFY="false"
|
||||
elif [[ "$WEBAPP" == "CINNY" ]]; then
|
||||
INCLUDE_ELEMENT="false"
|
||||
INCLUDE_CINNY="true"
|
||||
INCLUDE_FLUFFY="false"
|
||||
elif [[ "$WEBAPP" == "FLUFFY" ]]; then
|
||||
INCLUDE_ELEMENT="false"
|
||||
INCLUDE_CINNY="false"
|
||||
INCLUDE_FLUFFY="true"
|
||||
else
|
||||
INCLUDE_LIVEKIT=false
|
||||
INCLUDE_ELEMENT="false"
|
||||
INCLUDE_CINNY="false"
|
||||
INCLUDE_FLUFFY="false"
|
||||
fi
|
||||
write_state LIVEKIT "$INCLUDE_LIVEKIT"
|
||||
|
||||
echo "Select Web Client: 1) Element 2) Cinny 3) FluffyChat 4) None"
|
||||
read -r -p "Default [1]: " WEB_APP_INPUT
|
||||
WEB_APP_INPUT="${WEB_APP_INPUT:-1}"
|
||||
case "$WEB_APP_INPUT" in
|
||||
1) INCLUDE_ELEMENT=true; INCLUDE_CINNY=false; INCLUDE_FLUFFY=false; write_state "APP" "ELEMENT" ;;
|
||||
2) INCLUDE_ELEMENT=false; INCLUDE_CINNY=true; INCLUDE_FLUFFY=false; write_state "APP" "CINNY" ;;
|
||||
3) INCLUDE_ELEMENT=false; INCLUDE_CINNY=false; INCLUDE_FLUFFY=true; write_state "APP" "FLUFFY" ;;
|
||||
*) INCLUDE_ELEMENT=false; INCLUDE_CINNY=false; INCLUDE_FLUFFY=false; write_state "APP" "NONE" ;;
|
||||
esac
|
||||
if [[ "$PROXY" == "NGINX" ]]; then
|
||||
INCLUDE_NGINX="true"
|
||||
INCLUDE_TRAEFIK="false"
|
||||
else
|
||||
INCLUDE_NGINX="false"
|
||||
INCLUDE_TRAEFIK="true"
|
||||
fi
|
||||
|
||||
echo "Select Reverse Proxy: 1) Traefik 2) nginx"
|
||||
read -r -p "Default [1]: " PROXY_INPUT
|
||||
PROXY_INPUT="${PROXY_INPUT:-1}"
|
||||
case "$PROXY_INPUT" in
|
||||
2)
|
||||
INCLUDE_NGINX=true
|
||||
INCLUDE_TRAEFIK=false
|
||||
write_state "PROXY" "NGINX"
|
||||
;;
|
||||
*)
|
||||
INCLUDE_NGINX=false
|
||||
INCLUDE_TRAEFIK=true
|
||||
write_state "PROXY" "TRAEFIK"
|
||||
;;
|
||||
esac
|
||||
cp "$TEMPLATE_FILE" "$OUTPUT_FILE"
|
||||
|
||||
toggle_block "$OUTPUT_FILE" "# \[LIVEKIT_START\]" "# \[LIVEKIT_END\]" "$INCLUDE_LIVEKIT"
|
||||
@@ -65,6 +55,7 @@ toggle_block "$OUTPUT_FILE" "# \[FLUFFYCHAT_START\]" "# \[FLUFFYCHAT_END\]" "$IN
|
||||
toggle_block "$OUTPUT_FILE" "# \[NGINX_START\]" "# \[NGINX_END\]" "$INCLUDE_NGINX"
|
||||
toggle_block "$OUTPUT_FILE" "# \[TRAEFIK_START\]" "# \[TRAEFIK_END\]" "$INCLUDE_TRAEFIK"
|
||||
|
||||
# Handle Traefik Labels
|
||||
if [[ "$INCLUDE_TRAEFIK" == "true" ]]; then
|
||||
sed -i "/# \[TRAEFIK_LABELS_START\]/d; /# \[TRAEFIK_LABELS_END\]/d" "$OUTPUT_FILE"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user