#!/bin/bash # ============================================ # Switchboard Core - Backend Launcher # ============================================ # Runs as an nginx entrypoint.d hook. # Starts the Go backend in the background # before nginx begins accepting connections. # ============================================ set -e echo "🔀 Starting Switchboard Core backend..." # Launch Go backend in background (from /app so migrations are found) cd /app /usr/local/bin/switchboard & BACKEND_PID=$! # Wait for backend to be ready (max 10s) for i in $(seq 1 20); do if wget -q --spider http://localhost:${PORT:-8080}${BASE_PATH}/health 2>/dev/null; then echo "✅ Backend ready (PID ${BACKEND_PID})" exit 0 fi sleep 0.5 done echo "❌ Backend failed to start within 10s" exit 1