Initial commit: breakpilot-core - Shared Infrastructure
Docker Compose with 24+ services: - PostgreSQL (PostGIS), Valkey, MinIO, Qdrant - Vault (PKI/TLS), Nginx (Reverse Proxy) - Backend Core API, Consent Service, Billing Service - RAG Service, Embedding Service - Gitea, Woodpecker CI/CD - Night Scheduler, Health Aggregator - Jitsi (Web/XMPP/JVB/Jicofo), Mailpit Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
84
scripts/start-all.sh
Normal file
84
scripts/start-all.sh
Normal file
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
# =========================================================
|
||||
# BreakPilot — Start All Projects
|
||||
# =========================================================
|
||||
# Usage: ./start-all.sh [--core-only] [--no-compliance]
|
||||
# =========================================================
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||
LEHRER_ROOT="$(dirname "$PROJECT_ROOT")/breakpilot-lehrer"
|
||||
COMPLIANCE_ROOT="$(dirname "$PROJECT_ROOT")/breakpilot-compliance"
|
||||
|
||||
DOCKER="/usr/local/bin/docker"
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${GREEN}=========================================${NC}"
|
||||
echo -e "${GREEN} BreakPilot — Starting All Projects${NC}"
|
||||
echo -e "${GREEN}=========================================${NC}"
|
||||
|
||||
# Phase 1: Core
|
||||
echo -e "\n${YELLOW}[1/3] Starting Core Infrastructure...${NC}"
|
||||
$DOCKER compose -f "$PROJECT_ROOT/docker-compose.yml" up -d
|
||||
echo -e "${GREEN}Core started. Waiting for health check...${NC}"
|
||||
|
||||
# Wait for health aggregator
|
||||
MAX_WAIT=120
|
||||
WAITED=0
|
||||
until curl -sf http://127.0.0.1:8099/health > /dev/null 2>&1; do
|
||||
sleep 5
|
||||
WAITED=$((WAITED + 5))
|
||||
if [ $WAITED -ge $MAX_WAIT ]; then
|
||||
echo -e "${RED}Core health check timeout after ${MAX_WAIT}s${NC}"
|
||||
echo "Check: $DOCKER compose -f $PROJECT_ROOT/docker-compose.yml logs"
|
||||
exit 1
|
||||
fi
|
||||
echo " Waiting for core... (${WAITED}s/${MAX_WAIT}s)"
|
||||
done
|
||||
echo -e "${GREEN}Core is healthy!${NC}"
|
||||
|
||||
if [ "$1" = "--core-only" ]; then
|
||||
echo -e "\n${GREEN}Done (core-only mode).${NC}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Phase 2: Lehrer
|
||||
if [ -f "$LEHRER_ROOT/docker-compose.yml" ]; then
|
||||
echo -e "\n${YELLOW}[2/3] Starting Lehrer Platform...${NC}"
|
||||
$DOCKER compose -f "$LEHRER_ROOT/docker-compose.yml" up -d
|
||||
echo -e "${GREEN}Lehrer platform started.${NC}"
|
||||
else
|
||||
echo -e "\n${YELLOW}[2/3] Skipping Lehrer (not found: $LEHRER_ROOT)${NC}"
|
||||
fi
|
||||
|
||||
# Phase 3: Compliance
|
||||
if [ "$1" = "--no-compliance" ]; then
|
||||
echo -e "\n${YELLOW}[3/3] Skipping Compliance (--no-compliance flag)${NC}"
|
||||
elif [ -f "$COMPLIANCE_ROOT/docker-compose.yml" ]; then
|
||||
echo -e "\n${YELLOW}[3/3] Starting Compliance Platform...${NC}"
|
||||
$DOCKER compose -f "$COMPLIANCE_ROOT/docker-compose.yml" up -d
|
||||
echo -e "${GREEN}Compliance platform started.${NC}"
|
||||
else
|
||||
echo -e "\n${YELLOW}[3/3] Skipping Compliance (not found: $COMPLIANCE_ROOT)${NC}"
|
||||
fi
|
||||
|
||||
echo -e "\n${GREEN}=========================================${NC}"
|
||||
echo -e "${GREEN} All Projects Started!${NC}"
|
||||
echo -e "${GREEN}=========================================${NC}"
|
||||
echo ""
|
||||
echo "URLs:"
|
||||
echo " Core Health: http://macmini:8099/health"
|
||||
echo " Studio v2: https://macmini/"
|
||||
echo " Admin Lehrer: https://macmini:3002/"
|
||||
echo " Admin Compliance: https://macmini:3007/"
|
||||
echo " Backend Core: https://macmini:8000/"
|
||||
echo " Backend Lehrer: https://macmini:8001/"
|
||||
echo " Backend Compliance:https://macmini:8002/"
|
||||
echo " RAG Service: https://macmini:8097/"
|
||||
Reference in New Issue
Block a user