diff --git a/HangmanLab.Backend b/HangmanLab.Backend index 6626fac..fa855bc 160000 --- a/HangmanLab.Backend +++ b/HangmanLab.Backend @@ -1 +1 @@ -Subproject commit 6626fac4520bfb162e7eba8738dd4f3f83792b4e +Subproject commit fa855bc7bb9972ed66922863051bc9598b95348a diff --git a/HangmanLab.Frontend b/HangmanLab.Frontend index 09338a2..947b59e 160000 --- a/HangmanLab.Frontend +++ b/HangmanLab.Frontend @@ -1 +1 @@ -Subproject commit 09338a26834efa63886946b4b2f4304f8b581211 +Subproject commit 947b59e3eac569c7663de6a89a5b4cd093290515 diff --git a/dev_build.sh b/dev_build.sh new file mode 100644 index 0000000..fdaa2a9 --- /dev/null +++ b/dev_build.sh @@ -0,0 +1,52 @@ +#!/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