Spaces:
Running
Running
| set -e | |
| # Create data directories | |
| mkdir -p "$GMAS_DATA_DIR/agents" "$GMAS_DATA_DIR/graphs" "$GMAS_DATA_DIR/runs" | |
| # Create nginx temp directories | |
| mkdir -p /tmp/nginx/body /tmp/nginx/proxy /tmp/nginx/fastcgi /tmp/nginx/uwsgi /tmp/nginx/scgi | |
| # Start uvicorn in the background | |
| uvicorn backend.main:app \ | |
| --host 127.0.0.1 \ | |
| --port 8000 \ | |
| --workers "${GMAS_WORKERS:-1}" & | |
| UVICORN_PID=$! | |
| # Start nginx in the foreground (use full config, not sites-enabled) | |
| nginx -c /etc/nginx/sites-available/default -g "daemon off;" & | |
| NGINX_PID=$! | |
| # Forward signals to both processes | |
| trap 'kill $UVICORN_PID $NGINX_PID 2>/dev/null; wait' TERM INT | |
| # Wait for either process to exit; if one dies, stop the other | |
| wait -n $UVICORN_PID $NGINX_PID | |
| kill $UVICORN_PID $NGINX_PID 2>/dev/null || true | |
| wait | |