Skip to main content

Overview

This guide will have you running Mimir AIP on your local machine in minutes using Docker Compose. You’ll get the orchestrator API and web frontend up and running — perfect for exploring the platform, testing MCP integration, and building your first pipelines.
Worker jobs (pipeline execution, ML training, inference, digital twin sync) require Kubernetes. For full functionality, see the Installation Guide for Kubernetes deployment.

Prerequisites

Before you begin, ensure you have:
  • Docker (20.10 or later)
  • Docker Compose (2.0 or later)
  • Git (for cloning the repository)
Verify your Docker installation with docker --version and docker compose version

Installation Steps

1

Clone the Repository

Clone the Mimir AIP repository from GitHub:
git clone https://github.com/mimir-aip/mimir-aip-go
cd mimir-aip-go
2

Start the Services

Use Docker Compose to build and start the orchestrator and frontend:
docker compose up --build
Docker Compose will:
  • Build the orchestrator image from cmd/orchestrator/Dockerfile
  • Build the frontend image from frontend/Dockerfile
  • Create a persistent volume for the SQLite database
  • Start both services with health checks
  • Create a bridge network for inter-service communication
Wait for the health checks to pass. You’ll see output like:
mimir-orchestrator  | INFO: Server listening on :8080
mimir-frontend      | INFO: Frontend server started on :3000
3

Access the Services

Once both services are healthy, access them at:
ServiceURLDescription
Web Frontendhttp://localhost:3000React UI for managing projects, pipelines, models, and more
Orchestrator APIhttp://localhost:8080REST API with OpenAPI documentation
MCP SSE Endpointhttp://localhost:8080/mcp/sseServer-Sent Events endpoint for AI agent integration
Open http://localhost:3000 in your browser to explore the web interface

Verify Installation

Check that the orchestrator is running correctly:
curl http://localhost:8080/health
You should receive:
{
  "status": "healthy",
  "timestamp": "2026-03-01T12:34:56Z"
}

Configuration

The Docker Compose setup uses the following default configuration:
docker-compose.yaml
services:
  orchestrator:
    environment:
      - ENVIRONMENT=production
      - LOG_LEVEL=info
      - PORT=8080
      - STORAGE_DIR=/app/data
      - MIN_WORKERS=1
      - MAX_WORKERS=10
      - QUEUE_THRESHOLD=5
    ports:
      - "8080:8080"
    volumes:
      - orchestrator-data:/app/data

  frontend:
    environment:
      - PORT=3000
      - API_URL=http://orchestrator:8080
    ports:
      - "3000:3000"
VariableDefaultDescription
ENVIRONMENTproductionRuntime environment (production or development)
LOG_LEVELinfoLog verbosity (debug, info, warn, error)
PORT8080Orchestrator HTTP port
STORAGE_DIR/app/dataDirectory for SQLite database and file storage
MIN_WORKERS1Minimum concurrent worker jobs (Kubernetes only)
MAX_WORKERS10Maximum concurrent worker jobs (Kubernetes only)
QUEUE_THRESHOLD5Queued tasks before spinning up additional workers

Customizing Configuration

To modify the configuration, edit docker-compose.yaml and restart:
# Stop the services
docker compose down

# Edit docker-compose.yaml (e.g., set LOG_LEVEL=debug)

# Restart with new configuration
docker compose up

Next Steps

Create Your First Project

Learn how to create projects and organize your pipelines, models, and ontologies

Build a Pipeline

Design and execute data ingestion and processing pipelines

Connect an AI Agent

Integrate Mimir AIP with Claude Code or other MCP clients

Deploy to Kubernetes

Install on Kubernetes for full worker support and production deployment

Stopping and Cleanup

Stop Services

To stop the running containers without removing data:
docker compose stop
Restart with:
docker compose start

Full Cleanup

To stop and remove containers, networks, and volumes:
# Stop and remove containers and networks (preserves data volume)
docker compose down

# Stop and remove everything including the data volume
docker compose down -v
Using docker compose down -v will delete your SQLite database and all stored data. This action cannot be undone.

Troubleshooting

If ports 8080 or 3000 are already in use, modify the port mappings in docker-compose.yaml:
services:
  orchestrator:
    ports:
      - "8081:8080"  # Use 8081 on host instead
  frontend:
    ports:
      - "3001:3000"  # Use 3001 on host instead
Remember to update the frontend’s API_URL if you change the orchestrator port.
Check the container logs:
docker compose logs orchestrator
docker compose logs frontend
Common issues:
  • Orchestrator database initialization errors
  • Frontend unable to reach orchestrator (check API_URL)
  • Insufficient disk space for volumes
If the Docker build fails:
# Clean up and rebuild from scratch
docker compose down
docker compose build --no-cache
docker compose up
If you encounter permission errors with the data volume:
# On Linux, ensure Docker has permission to create volumes
sudo chown -R $USER:$USER ~/.local/share/docker/volumes/
For production deployments, worker functionality, and multi-cluster support, see the Kubernetes Installation Guide.

Build docs developers (and LLMs) love