Spaces:
Running
Running
| set -e | |
| # Matrix Designer (the brain) — internal HTTP service the control plane calls to design the | |
| # blueprints/batches. Best-effort: if it fails to boot, the control plane falls back to its | |
| # deterministic generator, so the app still works. Bound to localhost; never public. | |
| export MATRIX_DESIGNER_PORT="${MATRIX_DESIGNER_PORT:-8077}" | |
| export MATRIX_DESIGNER_URL="${MATRIX_DESIGNER_URL:-http://127.0.0.1:${MATRIX_DESIGNER_PORT}}" | |
| if python -c "import matrix_designer" 2>/dev/null; then | |
| echo "-> starting Matrix Designer service on 127.0.0.1:${MATRIX_DESIGNER_PORT}" | |
| ( cd /tmp && python -m matrix_designer.service ) & | |
| else | |
| echo "-> Matrix Designer not installed; control plane will use the deterministic generator" | |
| fi | |
| # Backend (internal, same-origin target of the Next.js /api/builder rewrite). | |
| python -m uvicorn app.main:app --host 127.0.0.1 --port 8000 --proxy-headers & | |
| # Frontend (public). Next standalone honors PORT/HOSTNAME. | |
| cd /app/web | |
| export PORT="${PORT:-7860}" HOSTNAME=0.0.0.0 | |
| exec node server.js | |