Microservice Architecture
10 Docker containers on a private bridge network. Each service has one job. Shared filesystem for zero-latency file access. Docker Compose for one-command deployment.
Service topology
Service details
Auth Server
Dedicated identity and access management. JWT authentication, multi-tenant organizations, teams, role-based access control, and audit logging.
Agent Server
API gateway and source of truth for project state. The dashboard talks only to this service. Handles prompt generation, review logic, model routing, and proxies orchestration to the operator.
Operator
Runs the multi-phase orchestration pipeline. Connects directly to LLM hosts for streaming. Manages the auto-start operator loop, run registry, and watchdog.
Executor
Stateless command and file execution sandbox. Process isolation for safety. Shared filesystem via Docker volumes.
Dashboard
React web UI. Full project management, orchestration monitoring, file browsing, and LLM chat.
Hosts Server
Centralized LLM host management. Discovers models across Ollama hosts and resolves routing for capabilities.
MCP Tools
MCP tool server for development workflows. Provides file search, code search, git operations, web lookup, vision, and screenshot tools.
Voice Server
Streaming speech-to-text with faster-whisper + Silero VAD. WebSocket endpoint for real-time transcription from the mobile app.
Vision Server
PaddleOCR text extraction, vision-language model analysis (qwen2.5vl), Playwright screenshot capture, and structured data extraction from images.
ChromaDB
Vector store for RAG. Semantic search across project files, memory, and error patterns using nomic-embed-text embeddings.
Port allocation
The Iter stack owns ports 10090-10098.
| Port | Service |
|---|---|
| 10089 | Auth Server |
| 10090 | ChromaDB |
| 10091 | Vision Server |
| 10092 | Agent Server |
| 10093 | Executor |
| 10094 | Operator |
| 10095 | Hosts Server |
| 10096 | Dashboard |
| 10097 | MCP Tools |
| 10098 | Voice Server |
Communication patterns
Dashboard → Agent Server
Standard HTTP REST. The dashboard never talks to executor or operator directly.
Agent Server → Operator
Transparent proxy for orchestration. SSE streams are passthrough-proxied.
Operator → Executor
HTTP REST for command and file execution. Stateless - no session state.
Operator → LLM Hosts
Direct HTTP to Ollama hosts. Streaming responses with structured output.
Shared Filesystem
All backend services mount the same Docker volumes. Operator reads files directly - no HTTP round-trip.
Operator → Agent Server
Callback for state CRUD: read project state, update request status, save to disk.
Dashboard → Auth Server
JWT login, token refresh, and user profile. Agent Server validates tokens via shared secret.
One-command deployment
Docker Compose manages the entire stack.
Docker Compose
Single YAML file defines all 10 services.
Hot Reload
All services reload on code changes during development.
Makefile
Convenience targets for build, restart, logs, and shell access.