18 lines
1004 B
Bash
Executable File
18 lines
1004 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Start (or restart) the MODELBEAST server headless on port 8777.
|
|
# NOTE: exactly ONE uvicorn worker (no --workers). The in-process asyncio job
|
|
# queue + the single shared SQLite connection require a single worker; adding
|
|
# workers would fork the queue and corrupt job state. Do not "optimize" this.
|
|
# On first run the owner account + one-time password print to data/server.log.
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
mkdir -p data # gitignored — absent on a fresh checkout
|
|
lsof -ti:8777 | xargs kill 2>/dev/null || true
|
|
sleep 1
|
|
nohup /opt/homebrew/bin/uv run uvicorn server.main:app --host 0.0.0.0 --port 8777 \
|
|
> data/server.log 2>&1 &
|
|
sleep 2
|
|
curl -sf -o /dev/null http://localhost:8777/api/health \
|
|
&& echo "MODELBEAST up: http://$( /Applications/Tailscale.app/Contents/MacOS/Tailscale ip -4 2>/dev/null || echo localhost):8777 (log: data/server.log)" \
|
|
|| { echo "FAILED to start — tail data/server.log:"; tail -20 data/server.log; exit 1; }
|