modelbeast/scripts/serve.sh
MODELBEAST a4facbacd9 serve.sh: mkdir -p data before logging (fresh-checkout fix for new nodes)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 11:51:29 +10:00

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; }