#!/bin/bash export $(grep -v '^#' .env | xargs) FRONTEND_PORT=${FRONTEND_PORT:-3000} BACKEND_PORT=${BACKEND_PORT:-5000} KC_CLIENT_ID=${KC_CLIENT_ID:-labdev} KC_HOST=${KC_HOST:-https://login.hangman-lab.top} KC_REALM=${KC_REALM:-Hangman-Lab} FRONTEND_HOST=${FRONTEND_HOST:-http://localhost:$FRONTEND_PORT} BACKEND_HOST=${BACKEND_HOST:-http://localhost:$BACKEND_PORT} cat < HangmanLab.Frontend/public/config.json { "BACKEND_HOST": "$BACKEND_HOST", "FRONTEND_HOST": "$FRONTEND_HOST", "KC_CLIENT_ID": "$KC_CLIENT_ID", "OIDC_CONFIG": { "authority": "$KC_HOST/realms/$KC_REALM", "client_id": "$KC_CLIENT_ID", "redirect_uri": "$FRONTEND_HOST/callback", "post_logout_redirect_uri": "$FRONTEND_HOST", "response_type": "code", "scope": "openid profile email roles", "popup_redirect_uri": "$FRONTEND_HOST/popup_callback", "silent_redirect_uri": "$FRONTEND_HOST/silent_callback" } } EOL echo "✅ config.json Generated" echo "🚀 Launch React dev server (port: $FRONTEND_PORT)" ( cd HangmanLab.Frontend || exit npm install npm start ) & echo "🚀 Launch Flask dev server (port: $BACKEND_PORT)" ( cd HangmanLab.Backend || exit pip install -r requirements.txt export FLASK_APP=app.py export FLASK_ENV=development export FLASK_RUN_PORT=$BACKEND_PORT export FLASK_RUN_HOST=0.0.0.0 flask run ) wait