workspace/projects/trading-platform/scripts/start-all.sh
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 10:44:23 -06:00

166 lines
5.8 KiB
Bash
Executable File

#!/bin/bash
#
# OrbiQuant IA - Start All Services
# Starts all required services for the trading platform
#
set -e
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
BOLD='\033[1m'
# Project root
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
echo -e "${BOLD}"
echo "╔══════════════════════════════════════════════════════════╗"
echo "║ OrbiQuant IA - Service Launcher ║"
echo "╚══════════════════════════════════════════════════════════╝"
echo -e "${NC}"
# Function to check if a port is in use
check_port() {
local port=$1
if lsof -Pi :$port -sTCP:LISTEN -t >/dev/null 2>&1; then
return 0
else
return 1
fi
}
# Function to wait for a service
wait_for_service() {
local name=$1
local url=$2
local max_attempts=30
echo -ne "${BLUE}Waiting for $name...${NC}"
for i in $(seq 1 $max_attempts); do
if curl -s "$url" >/dev/null 2>&1; then
echo -e " ${GREEN}${NC}"
return 0
fi
echo -n "."
sleep 1
done
echo -e " ${RED}✗ (timeout)${NC}"
return 1
}
# Parse arguments
MODE=${1:-"dev"} # dev or docker
echo -e "${YELLOW}Mode: ${MODE}${NC}\n"
if [ "$MODE" == "docker" ]; then
# Docker Compose mode
echo -e "${BLUE}Starting services with Docker Compose...${NC}\n"
cd "$PROJECT_ROOT"
# Start infrastructure first
echo -e "${YELLOW}Starting infrastructure (PostgreSQL, Redis, Ollama)...${NC}"
docker-compose -f docker-compose.services.yml up -d postgres redis ollama
sleep 5
# Start Python services
echo -e "${YELLOW}Starting Python services...${NC}"
docker-compose -f docker-compose.services.yml up -d ml-engine llm-agent trading-agents
sleep 5
# Start Node.js services
echo -e "${YELLOW}Starting Node.js services...${NC}"
docker-compose -f docker-compose.services.yml up -d backend frontend
echo -e "\n${GREEN}All services started!${NC}"
docker-compose -f docker-compose.services.yml ps
else
# Development mode - separate terminals
echo -e "${BLUE}Development mode - Starting services in background...${NC}\n"
# Check if tmux is available
if command -v tmux &> /dev/null; then
SESSION="orbiquant"
# Kill existing session if any
tmux kill-session -t $SESSION 2>/dev/null || true
# Create new session
tmux new-session -d -s $SESSION -n "services"
# Window 1: Infrastructure
tmux send-keys -t $SESSION "cd $PROJECT_ROOT && docker-compose -f docker-compose.services.yml up postgres redis ollama" C-m
# Window 2: ML Engine
tmux new-window -t $SESSION -n "ml-engine"
tmux send-keys -t $SESSION "cd $PROJECT_ROOT/apps/ml-engine && source venv/bin/activate 2>/dev/null; pip install -r requirements.txt -q && uvicorn src.api.main:app --reload --port 8001" C-m
# Window 3: LLM Agent
tmux new-window -t $SESSION -n "llm-agent"
tmux send-keys -t $SESSION "cd $PROJECT_ROOT/apps/llm-agent && source venv/bin/activate 2>/dev/null; pip install -r requirements.txt -q && uvicorn src.main:app --reload --port 8003" C-m
# Window 4: Trading Agents
tmux new-window -t $SESSION -n "trading-agents"
tmux send-keys -t $SESSION "cd $PROJECT_ROOT/apps/trading-agents && source venv/bin/activate 2>/dev/null; pip install -r requirements.txt -q && uvicorn src.api.main:app --reload --port 8004" C-m
# Window 5: Backend
tmux new-window -t $SESSION -n "backend"
tmux send-keys -t $SESSION "cd $PROJECT_ROOT/apps/backend && npm install && npm run dev" C-m
# Window 6: Frontend
tmux new-window -t $SESSION -n "frontend"
tmux send-keys -t $SESSION "cd $PROJECT_ROOT/apps/frontend && npm install && npm run dev" C-m
echo -e "${GREEN}Services started in tmux session: $SESSION${NC}"
echo -e "${YELLOW}To attach: tmux attach -t $SESSION${NC}"
echo -e "${YELLOW}To switch windows: Ctrl+B then number (0-5)${NC}"
else
# No tmux - print manual instructions
echo -e "${YELLOW}tmux not found. Please start services manually:${NC}\n"
echo -e "${BOLD}Terminal 1 - Infrastructure:${NC}"
echo " docker-compose -f docker-compose.services.yml up postgres redis ollama"
echo -e "\n${BOLD}Terminal 2 - ML Engine:${NC}"
echo " cd apps/ml-engine && uvicorn src.api.main:app --reload --port 8001"
echo -e "\n${BOLD}Terminal 3 - LLM Agent:${NC}"
echo " cd apps/llm-agent && uvicorn src.main:app --reload --port 8003"
echo -e "\n${BOLD}Terminal 4 - Trading Agents:${NC}"
echo " cd apps/trading-agents && uvicorn src.api.main:app --reload --port 8004"
echo -e "\n${BOLD}Terminal 5 - Backend:${NC}"
echo " cd apps/backend && npm run dev"
echo -e "\n${BOLD}Terminal 6 - Frontend:${NC}"
echo " cd apps/frontend && npm run dev"
fi
fi
echo -e "\n${BOLD}Service URLs:${NC}"
echo " Frontend: http://localhost:5173"
echo " Backend API: http://localhost:3000"
echo " ML Engine: http://localhost:8001"
echo " LLM Agent: http://localhost:8003"
echo " Trading Agents: http://localhost:8004"
echo " Ollama: http://localhost:11434"
echo -e "\n${BOLD}Quick Commands:${NC}"
echo " Test integration: python scripts/test_integration.py"
echo " Pull Llama 3: docker exec orbiquant-ollama ollama pull llama3:8b"
echo " View logs: docker-compose -f docker-compose.services.yml logs -f [service]"
echo -e "\n${GREEN}Ready!${NC}"