Files
cfw-autumn/scripts/setup/agent-services.sh
SirTenzin 640ea69abc fix: install java in bootstrap, fail fast if ElasticMQ never ready
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-04-17 17:05:31 +00:00

51 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
log() { echo "[agent-services] $*"; }
# --- 1. Start postgresql, redis, clickhouse ---
log "Starting system services"
sudo service postgresql start >/dev/null 2>&1 || true
sudo service redis-server start >/dev/null 2>&1 || true
sudo service clickhouse-server start >/dev/null 2>&1 || true
# --- 2. ElasticMQ ---
if ! pgrep -f 'elasticmq.*\.jar' >/dev/null 2>&1; then
log "Starting ElasticMQ on :9324"
sudo mkdir -p /var/log/autumn && sudo chmod 0777 /var/log/autumn
nohup java \
-Dconfig.file=/opt/elasticmq/elasticmq.conf \
-jar /opt/elasticmq/elasticmq.jar \
>/var/log/autumn/elasticmq.log 2>&1 &
disown || true
log "Waiting for ElasticMQ to be ready"
ELASTICMQ_READY=0
for i in $(seq 1 30); do
if curl -sf -o /dev/null 'http://localhost:9324/?Action=ListQueues&Version=2012-11-05'; then
ELASTICMQ_READY=1
break
fi
sleep 0.5
done
if [ "$ELASTICMQ_READY" -eq 0 ]; then
echo "[agent-services] ERROR: ElasticMQ did not become ready after 15s. Check /var/log/autumn/elasticmq.log" >&2
exit 1
fi
fi
# --- 3. Ensure Postgres DB exists ---
DB_NAME="autumn"
sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'" 2>/dev/null \
| grep -q 1 || sudo -u postgres createdb "$DB_NAME"
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'postgres';" >/dev/null 2>&1 || true
# --- 4. Write env files (no-op if server/.env already exists) ---
bun scripts/setup/writeAgentEnv.ts
# --- 5. DB migrations ---
log "Running migrations"
bun db:generate >/dev/null 2>&1 || true
bun db:migrate
log "All services ready"