Veer15's picture
chore: deploy distributed systems debug environment
b641d3d verified
#!/usr/bin/env bash
set -euo pipefail
export APP_ROOT="${APP_ROOT:-/home/user/app}"
export MESH_ROOT="${MESH_ROOT:-/mesh}"
mkdir -p /tmp
redis-server --daemonize yes --logfile /tmp/redis.log --port 6379
until redis-cli ping >/dev/null; do sleep 0.2; done
rm -f /tmp/*.pid /tmp/*.log /tmp/worker_restart_count /tmp/consumer_stall_count /tmp/current_task
printf '0' > /tmp/worker_restart_count
printf '0' > /tmp/consumer_stall_count
cat > "${MESH_ROOT}/registry.json" <<'EOF'
{
"services": {
"auth": {"host": "localhost", "port": 3001, "protocol": "http"},
"redis": {"host": "localhost", "port": 6379, "protocol": "tcp"},
"worker": {"host": "localhost", "port": null, "protocol": "internal"}
}
}
EOF
: > /tmp/gateway.log
: > /tmp/auth.log
: > /tmp/worker.log
: > /tmp/job_gen.log
bun run "${APP_ROOT}/mesh/gateway/index.ts" >> /tmp/gateway.log &
echo $! > /tmp/gateway.pid
bun run "${APP_ROOT}/mesh/auth/index.ts" >> /tmp/auth.log &
echo $! > /tmp/auth.pid
bun run "${APP_ROOT}/mesh/worker/index.ts" >> /tmp/worker.log &
echo $! > /tmp/worker.pid
bun run "${APP_ROOT}/mesh/worker/job_generator.ts" >> /tmp/job_gen.log &
echo $! > /tmp/job_generator.pid
for _ in $(seq 1 45); do
if curl -sf http://localhost:3000/health >/dev/null && curl -sf http://localhost:3001/health >/dev/null; then
break
fi
sleep 1
done
exec uvicorn server.api:app --host 0.0.0.0 --port 8000