Iter Iter

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

Dashboard
:10096
React Web UI
Auth Server
:10089
Identity & Access
Agent Server
:10092
API Gateway
Hosts Server
:10095
Model Routing
ChromaDB
:10090
Vector Store
MCP Tools
:10097
Tool Server
Operator
:10094
Pipeline Engine
Executor
:10093
Command Runner
Vision Server
:10091
OCR + VLM
LLM Hosts
Ollama
Local Models
Voice Server
:10098
Whisper STT

Service details

:10089

Auth Server

Dedicated identity and access management. JWT authentication, multi-tenant organizations, teams, role-based access control, and audit logging.

:10092

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.

:10094

Operator

Runs the multi-phase orchestration pipeline. Connects directly to LLM hosts for streaming. Manages the auto-start operator loop, run registry, and watchdog.

:10093

Executor

Stateless command and file execution sandbox. Process isolation for safety. Shared filesystem via Docker volumes.

:10096

Dashboard

React web UI. Full project management, orchestration monitoring, file browsing, and LLM chat.

:10095

Hosts Server

Centralized LLM host management. Discovers models across Ollama hosts and resolves routing for capabilities.

:10097

MCP Tools

MCP tool server for development workflows. Provides file search, code search, git operations, web lookup, vision, and screenshot tools.

:10098

Voice Server

Streaming speech-to-text with faster-whisper + Silero VAD. WebSocket endpoint for real-time transcription from the mobile app.

:10091

Vision Server

PaddleOCR text extraction, vision-language model analysis (qwen2.5vl), Playwright screenshot capture, and structured data extraction from images.

:10090

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.

Run the full stack locally

git clone, make up, done.