55 lines
1.4 KiB
Bash
Executable file
55 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=== Fast Restart: botserver only (keeps infra running) ==="
|
|
|
|
# Only kill the app services, keep infra (postgres, valkey, minio, vault, zitadel) running
|
|
pkill -f "botserver --noconsole" || true
|
|
pkill -f "botmodels" || true
|
|
|
|
# Clean app logs only
|
|
rm -f botserver.log botmodels.log
|
|
|
|
# Build botserver (incremental, should be fast)
|
|
cargo build -p botserver
|
|
|
|
# Start botmodels if not running
|
|
if ! pgrep -f "botmodels" > /dev/null; then
|
|
echo "Starting botmodels..."
|
|
cd botmodels
|
|
source venv/bin/activate
|
|
uvicorn src.main:app --host 0.0.0.0 --port 8085 > ../botmodels.log 2>&1 &
|
|
echo " botmodels PID: $!"
|
|
cd ..
|
|
|
|
# Wait for botmodels
|
|
for i in $(seq 1 15); do
|
|
if curl -s http://localhost:8085/api/health > /dev/null 2>&1; then
|
|
echo " botmodels ready"
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
else
|
|
echo " botmodels already running"
|
|
fi
|
|
|
|
# Start botserver
|
|
echo "Starting botserver..."
|
|
BOTMODELS_HOST="http://localhost:8085" BOTMODELS_API_KEY="starter" RUST_LOG=info \
|
|
./target/debug/botserver --noconsole > botserver.log 2>&1 &
|
|
echo " botserver PID: $!"
|
|
|
|
# Wait for botserver health with timeout
|
|
echo "Waiting for botserver..."
|
|
for i in $(seq 1 10); do
|
|
if curl -sf http://localhost:8080/health > /dev/null 2>&1; then
|
|
echo "✅ botserver ready"
|
|
exit 0
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
echo "❌ botserver failed to start - check botserver.log"
|
|
tail -20 botserver.log
|
|
exit 1
|