diff --git a/start.sh b/start.sh new file mode 100755 index 000000000..d1273dde0 --- /dev/null +++ b/start.sh @@ -0,0 +1,108 @@ +#!/bin/bash + +# TCKRTUIYO Start Script +# Usage: +# ./start.sh v1 - Start v1 (Flask) server +# ./start.sh v2 - Start v2 (Vite) server +# ./start.sh v1 v2 - Start both servers +# ./start.sh v2 --expose - Expose v2 to network (0.0.0.0) +# ./start.sh v1 v2 --expose 192.168.1.100 - Expose both to specific IP + +V1_PORT=8080 +V2_PORT=5173 +V1_HOST="127.0.0.1" +V2_HOST="127.0.0.1" +V1_PID="" +V2_PID="" + +cleanup() { + echo "" + echo "Shutting down servers..." + [ -n "$V1_PID" ] && kill $V1_PID 2>/dev/null + [ -n "$V2_PID" ] && kill $V2_PID 2>/dev/null + exit 0 +} + +trap cleanup SIGINT SIGTERM + +start_v1=false +start_v2=false +expose_all=false +expose_ip="" + +# Parse arguments +for arg in "$@"; do + case $arg in + v1) + start_v1=true + ;; + v2) + start_v2=true + ;; + --expose) + expose_all=true + ;; + *) + # If it's an IP address, use it + if [[ "$arg" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + expose_ip="$arg" + fi + ;; + esac +done + +# Set hosts based on expose flag +if [ "$expose_all" = true ]; then + if [ -n "$expose_ip" ]; then + V1_HOST="$expose_ip" + V2_HOST="$expose_ip" + else + V1_HOST="0.0.0.0" + V2_HOST="0.0.0.0" + fi +fi + +start_v1_server() { + echo "Starting v1 (Flask) on $V1_HOST:$V1_PORT..." + cd "$(dirname "$0")" + python3 src/app.py & + V1_PID=$! +} + +start_v2_server() { + echo "Starting v2 (Vite) on $V2_HOST:$V2_PORT..." + cd "$(dirname "$0")/v2" + + if [ "$V2_HOST" = "0.0.0.0" ]; then + npm run dev -- --host & + else + npm run dev & + fi + V2_PID=$! +} + +# Default: show usage +if [ $# -eq 0 ]; then + echo "Usage: $0 [v1|v2] [--expose [IP]]" + echo "" + echo "Examples:" + echo " $0 v1 # Start v1 only (localhost)" + echo " $0 v2 # Start v2 only (localhost)" + echo " $0 v1 v2 # Start both v1 and v2" + echo " $0 v2 --expose # Start v2 exposed to all (0.0.0.0)" + echo " $0 v1 v2 --expose 192.168.1.100 # Expose both to specific IP" + exit 1 +fi + +[ "$start_v1" = true ] && start_v1_server +[ "$start_v2" = true ] && start_v2_server + +echo "" +echo "Servers running:" +[ "$start_v1" = true ] && echo " - v1: http://$V1_HOST:$V1_PORT" +[ "$start_v2" = true ] && echo " - v2: http://$V2_HOST:$V2_PORT" +echo "" +echo "Press Ctrl+C to stop all servers" + +# Wait for any process to exit +wait