The most advanced open-source visual Docker Compose architect.
Production-grade parser. Spec-compliant. Multi-file support. Real-time visualization.

Compoviz is the only Docker Compose tool that combines a production-grade, spec-compliant parser with real-time visual architecture mapping. Built for DevOps engineers who need to understand, debug, and architect complex multi-service applications.
Built from the ground up to support the full Docker Compose Specification v3+:
include directive with circular dependency detectionextends with spec-compliant merge strategies ${VAR:-default}, ${VAR:?required}, ${VAR?error} syntax.env file parsing and mergingTechnical Highlight: Modular architecture with dedicated resolvers (Path, Extends, Variable, Include, Profile) orchestrated through a multi-stage pipeline. All parsing errors are gracefully handled with detailed diagnostic information.
Transform YAML into professional architecture diagrams instantly:
depends_on conditions (healthy, started, completed) shown as labeled edgesAnalyze multiple compose files side-by-side:
Visual builder with full spec compliance:
Ctrl+Z / Ctrl+Y shortcutsBrowse and visualize production-ready Docker Compose configurations directly from Docker's official awesome-compose repository — 40+ real-world stacks available on-demand:
build: directives automatically resolve their base images from Dockerfiles, so you see what's actually running (e.g., python:3.11-slim instead of just "build")Latest Release: Spec-Compliant Parser & Multi-File Support
This major update introduces a production-grade Docker Compose parser that rivals CLI tools:
${VAR:-default}, ${VAR:?required} syntax.env filesPerformance: 50 services parsed in ~25ms | 100% passing tests | Zero linting errors
Try Compoviz instantly in your browser (no installation required):
The easiest way to self-host Compoviz. No Node.js required!
Docker Run:
docker run -d -p 8080:80 ghcr.io/adavesik/compoviz:latest
# Access at http://localhost:8080
Docker Compose:
# Create project directory
mkdir compoviz && cd compoviz
# Download compose file
wget https://raw.githubusercontent.com/adavesik/compoviz/refs/heads/main/compose/docker-compose.yml
# Deploy
docker compose up -d
# Access at http://localhost:8080
Prerequisites:
git clone https://github.com/adavesik/compoviz.git && cd compoviz
Docker Compose:
docker compose up -d
Docker CLI:
docker build -t compoviz-dev .
docker run -d -p 8080:80 --name compoviz-dev compoviz-dev
Prerequisites: - Node.js v18 or higher - npm
Setup:
git clone https://github.com/adavesik/compoviz.git
cd compoviz
npm install
npm run dev
Optional - Disable Vercel Analytics:
cp .env.example .env
Access at http://localhost:5173
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 18 + Vite | Modern UI with fast HMR |
| Styling | Tailwind CSS | Custom dark theme with design system |
| Diagrams | Mermaid.js | Enhanced architecture visualization |
| Visual Editor | React Flow | Drag-and-drop node-based editor |
| Parsing | Custom Parser + js-yaml | Spec-compliant Docker Compose parsing |
| State Management | React Context + Custom Hooks | useCompose, useMultiProject, useHistory |
| Worker Threads | Web Workers | Non-blocking async parsing |
| Testing | Vitest | 200+ tests with real-world fixtures |
| Command | Description | Underlying Command |
|---|---|---|
npm run dev |
Start Vite dev server (hot reload) | vite |
npm run build |
Build production bundle | vite build |
npm run preview |
Preview production build | vite preview |
npm run lint |
Lint codebase | eslint . |
npm test |
Run all tests (CI mode) | vitest run |
npm run test:watch |
Run tests in watch mode | vitest |
npm run test:ui |
Run interactive test UI | vitest --ui |
npm run docker:dev |
Build & start container | docker compose up |
npm run docker:dev -- -d |
Build & start (detached) | docker compose up -d |
npm run docker:restart |
Restart running container | docker compose restart |
npm run docker:rebuild |
Rebuild image and start | docker compose up --build |
npm run docker:down |
Stop and remove containers | docker compose down |
npm run docker:clean |
Full cleanup (containers + images) | docker compose down --rmi local --volumes |
YAML Input → Parse → Includes → Extends → Variables → Profiles → Output
│ │ │ │ │
│ │ │ │ └─ Filter by active profiles
│ │ │ └─ Interpolate ${VAR:-default}
│ │ └─ Resolve service inheritance
│ └─ Merge multi-file includes
└─ Parse raw YAML with js-yaml
${VAR} syntax supportRun tests:
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:ui # Interactive UI
We welcome contributions! Whether it's bug reports, feature requests, or code contributions, your input helps make Compoviz better.
git checkout -b feature/AmazingFeaturenpm test and npm run lintgit commit -m 'feat: add AmazingFeature' (follow Conventional Commits)git push origin feature/AmazingFeatureDistributed under the MIT License. See LICENSE for more information.
Built with ❤️ for the Docker Community
Making Docker Compose architecture beautiful, one diagram at a time.
$ claude mcp add compoviz \
-- python -m otcore.mcp_server <graph>