Docker Installation

Run MUXI anywhere with containers

Deploy MUXI Server using Docker for easy setup, consistent environments, and simple scaling. Perfect for development, CI/CD, and production deployments.

Quick Start

docker run -d \
  --name muxi-server \
  -p 7890:7890 \
  -v muxi-data:/data \
  ghcr.io/muxi-ai/server:latest

Docker Compose

Create docker-compose.yml:

version: '3.8'

services:
  muxi-server:
    image: ghcr.io/muxi-ai/server:latest
    ports:
      - "7890:7890"
    volumes:
      - muxi-data:/data
      - ./formations:/formations
    environment:
      - MUXI_AUTH_ENABLED=true
    restart: unless-stopped

volumes:
  muxi-data:

Start:

docker compose up -d

Environment Variables

Variable Default Description
MUXI_PORT 7890 Server port
MUXI_AUTH_ENABLED true Enable authentication
MUXI_LOG_LEVEL info Log level

Volume Mounts

Path Purpose
/data Server data and state
/formations Formation files
/etc/muxi Configuration

Initialize Credentials

docker exec muxi-server muxi-server init

Retrieve generated credentials:

docker exec muxi-server cat /etc/muxi/server/config.yaml

Deploy a Formation

# Copy formation to container
docker cp my-formation muxi-server:/formations/

# Or mount formations directory in docker-compose.yml

View Logs

docker logs -f muxi-server

Health Check

curl http://localhost:7890/health

Production Docker Compose

version: '3.8'

services:
  muxi-server:
    image: ghcr.io/muxi-ai/server:latest
    ports:
      - "7890:7890"
    volumes:
      - muxi-data:/data
      - ./config:/etc/muxi:ro
      - ./formations:/formations:ro
    environment:
      - MUXI_AUTH_ENABLED=true
      - MUXI_LOG_LEVEL=info
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:7890/health"]
      interval: 30s
      timeout: 10s
      retries: 3
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G

volumes:
  muxi-data:

Next Steps