mirror of
https://github.com/coleam00/Archon.git
synced 2025-12-24 02:39:17 -05:00
The New Archon (Beta) - The Operating System for AI Coding Assistants!
This commit is contained in:
126
docker-compose.yml
Normal file
126
docker-compose.yml
Normal file
@@ -0,0 +1,126 @@
|
||||
services:
|
||||
# Server Service (FastAPI + Socket.IO + Crawling)
|
||||
archon-server:
|
||||
build:
|
||||
context: ./python
|
||||
dockerfile: Dockerfile.server
|
||||
args:
|
||||
BUILDKIT_INLINE_CACHE: 1
|
||||
ARCHON_SERVER_PORT: ${ARCHON_SERVER_PORT:-8181}
|
||||
container_name: Archon-Server
|
||||
ports:
|
||||
- "${ARCHON_SERVER_PORT:-8181}:${ARCHON_SERVER_PORT:-8181}"
|
||||
environment:
|
||||
- SUPABASE_URL=${SUPABASE_URL}
|
||||
- SUPABASE_SERVICE_KEY=${SUPABASE_SERVICE_KEY}
|
||||
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
|
||||
- LOGFIRE_TOKEN=${LOGFIRE_TOKEN:-}
|
||||
- SERVICE_DISCOVERY_MODE=docker_compose
|
||||
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
||||
- ARCHON_SERVER_PORT=${ARCHON_SERVER_PORT:-8181}
|
||||
- ARCHON_MCP_PORT=${ARCHON_MCP_PORT:-8051}
|
||||
- ARCHON_AGENTS_PORT=${ARCHON_AGENTS_PORT:-8052}
|
||||
networks:
|
||||
- app-network
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock # Docker socket for MCP container control
|
||||
- ./python/src:/app/src # Mount source code for hot reload
|
||||
- ./python/tests:/app/tests # Mount tests for UI test execution
|
||||
command: ["python", "-m", "uvicorn", "src.server.main:socket_app", "--host", "0.0.0.0", "--port", "${ARCHON_SERVER_PORT:-8181}", "--reload"]
|
||||
healthcheck:
|
||||
test: ["CMD", "sh", "-c", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:${ARCHON_SERVER_PORT:-8181}/health')\""]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
# Lightweight MCP Server Service (HTTP-based)
|
||||
archon-mcp:
|
||||
build:
|
||||
context: ./python
|
||||
dockerfile: Dockerfile.mcp
|
||||
args:
|
||||
BUILDKIT_INLINE_CACHE: 1
|
||||
ARCHON_MCP_PORT: ${ARCHON_MCP_PORT:-8051}
|
||||
container_name: Archon-MCP
|
||||
ports:
|
||||
- "${ARCHON_MCP_PORT:-8051}:${ARCHON_MCP_PORT:-8051}"
|
||||
environment:
|
||||
- SUPABASE_URL=${SUPABASE_URL}
|
||||
- SUPABASE_SERVICE_KEY=${SUPABASE_SERVICE_KEY}
|
||||
- LOGFIRE_TOKEN=${LOGFIRE_TOKEN:-}
|
||||
- SERVICE_DISCOVERY_MODE=docker_compose
|
||||
- TRANSPORT=sse
|
||||
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
||||
# MCP needs to know where to find other services
|
||||
- API_SERVICE_URL=http://archon-server:${ARCHON_SERVER_PORT:-8181}
|
||||
- AGENTS_SERVICE_URL=http://archon-agents:${ARCHON_AGENTS_PORT:-8052}
|
||||
- ARCHON_MCP_PORT=${ARCHON_MCP_PORT:-8051}
|
||||
- ARCHON_SERVER_PORT=${ARCHON_SERVER_PORT:-8181}
|
||||
- ARCHON_AGENTS_PORT=${ARCHON_AGENTS_PORT:-8052}
|
||||
networks:
|
||||
- app-network
|
||||
depends_on:
|
||||
- archon-server
|
||||
- archon-agents
|
||||
healthcheck:
|
||||
test: ["CMD", "sh", "-c", "python -c \"import socket; s=socket.socket(); s.connect(('localhost', ${ARCHON_MCP_PORT:-8051})); s.close()\""]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 60s # Give dependencies time to start
|
||||
|
||||
# AI Agents Service (ML/Reranking)
|
||||
archon-agents:
|
||||
build:
|
||||
context: ./python
|
||||
dockerfile: Dockerfile.agents
|
||||
args:
|
||||
BUILDKIT_INLINE_CACHE: 1
|
||||
ARCHON_AGENTS_PORT: ${ARCHON_AGENTS_PORT:-8052}
|
||||
container_name: Archon-Agents
|
||||
ports:
|
||||
- "${ARCHON_AGENTS_PORT:-8052}:${ARCHON_AGENTS_PORT:-8052}"
|
||||
environment:
|
||||
- SUPABASE_URL=${SUPABASE_URL}
|
||||
- SUPABASE_SERVICE_KEY=${SUPABASE_SERVICE_KEY}
|
||||
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
|
||||
- LOGFIRE_TOKEN=${LOGFIRE_TOKEN:-}
|
||||
- SERVICE_DISCOVERY_MODE=docker_compose
|
||||
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
||||
- ARCHON_AGENTS_PORT=${ARCHON_AGENTS_PORT:-8052}
|
||||
networks:
|
||||
- app-network
|
||||
healthcheck:
|
||||
test: ["CMD", "sh", "-c", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:${ARCHON_AGENTS_PORT:-8052}/health')\""]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
# Frontend
|
||||
frontend:
|
||||
build: ./archon-ui-main
|
||||
container_name: Archon-UI
|
||||
ports:
|
||||
- "${ARCHON_UI_PORT:-3737}:5173"
|
||||
environment:
|
||||
- VITE_API_URL=http://${HOST:-localhost}:${ARCHON_SERVER_PORT:-8181}
|
||||
- ARCHON_SERVER_PORT=${ARCHON_SERVER_PORT:-8181}
|
||||
- HOST=${HOST:-localhost}
|
||||
networks:
|
||||
- app-network
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:5173"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
volumes:
|
||||
- ./archon-ui-main/src:/app/src
|
||||
- ./archon-ui-main/public:/app/public
|
||||
depends_on:
|
||||
- archon-server
|
||||
|
||||
networks:
|
||||
app-network:
|
||||
driver: bridge
|
||||
Reference in New Issue
Block a user