Skip to content

av1155/Dockitect

Repository files navigation

Dockitect — Design your homelab. Export the stack.

CI License: MIT

Draw your topology on a canvas, then export deterministic docker-compose.yml you can run anywhere. Import existing Compose to visualize and fix conflicts. Self-hosted, beautiful, and fast.

  • Creation paths: Wizard, Blank Canvas, or Start with YAML
  • Dual‑mode Canvas ↔ YAML editor (upcoming) — follows the deterministic exporter
  • Personal Library (planned prototype; future SQLite‑backed migration)

Screenshots

Network topology
Service details panel
Network details panel
Mobile layout and dark mode

✨ Why Dockitect?

Homelabs grow messy: scattered docker-compose.yml files, port collisions, no single source of truth. Dockitect bridges design ↔ code:

Designer‑first, not a deployment tool. Dockitect does not talk to the Docker socket. Export YAML and deploy with your preferred tools.

  • Visual canvas for hosts, networks, and services (React Flow)
  • Import Compose → see your lab as a graph
  • Export deterministic YAML (clean diffs, perfect for Git)
  • Catch conflicts before docker compose up -d
  • Appliance templates (Jellyfin, Uptime Kuma, Immich, etc.)

Features

  • Import Docker Compose files - Upload and visualize your existing compose files
  • Visual Canvas - Interactive node-based visualization with React Flow
  • Network Topology - See connections between services and networks with styled edges
  • Interactive Nodes - Click nodes to view full service/network details
  • Details Panel - Comprehensive view of environment variables, volumes, ports, and networks
  • Canvas Controls - Fit view, export as PNG, auto-layout functionality
  • Dark Mode - Full dark mode support with theme toggle
  • Accessibility - WCAG 2.2 AA compliant with keyboard navigation

🎯 Key Features (MVP Roadmap)

  • Repository setup with CI/CD pipeline
  • Next.js monorepo structure
  • TypeScript strict mode + ESLint + Prettier
  • React Flow canvas with Zustand state management
  • Blueprint v0 schema with Zod validation (34 tests)
  • Compose v2.x parser → Blueprint (23 tests, 6 fixtures)
  • Canvas editor with Host / Network / Service nodes
  • File upload UI for Compose import (4 E2E tests)
  • Export Blueprint → stable docker-compose.yml
  • Port/volume/name conflict detection
  • 5+ appliance templates (drag-and-drop)
  • SQLite persistence for blueprints
  • Light/dark theme

See roadmap.md for full plan.


🚀 Quickstart

Development

git clone https://github.com/av1155/Dockitect.git
cd Dockitect
pnpm install
pnpm dev

Visit http://localhost:3000

Docker (Coming Soon)

docker run -d -p 3000:3000 \
  -v $(pwd)/dockitect-data:/data \
  ghcr.io/av1155/dockitect:latest

📁 Project Structure

apps/web/              # Next.js app (UI, API)
packages/
  schema/              # Blueprint Zod schema
  importer/            # Compose → Blueprint parser
  exporter/            # Blueprint → Compose generator
templates/appliances/  # Pre-built service templates
docs/                  # Documentation
  product/             # Roadmap, MVP spec, checklist
  tech/                # Architecture, ADRs
  how-to/              # User guides

🛠️ Tech Stack

Frontend:

Backend:

  • Zod (Schema validation)
  • Prisma (Database ORM)
  • SQLite (Persistence)

Tooling:


🤝 Contributing

We welcome contributions! Please read CONTRIBUTING.md for:

  • Development setup
  • Code style guide
  • Testing requirements
  • Pull request process

📄 License

MIT License — use freely, commercially or personally.


🗺️ Roadmap

Current phase: Now entering P2 – MVP Exporter (Blueprint → Compose v2.x) 🚧 (P1 complete). Next: P2a (Designer entry points & Library foundations) → P3a (Dual‑mode Canvas ↔ YAML editor). See roadmap for sequencing.

Completed:

  • P0: Repository & Project Setup
  • P1.1: Blueprint v0 Schema (34 tests)
  • P1.2: Compose v2.x Parser (23 tests, 18 fixtures)
  • P1.3: File Upload UI Component (WCAG 2.2 AA compliant)
  • P1.4: Canvas Rendering with Dark Mode (11 E2E tests)

Next up:

  • P2: MVP Exporter (Blueprint → Compose v2.x)
  • P3: Conflict Detection & Validation

See docs/product/roadmap.md for details and timeline.


📬 Support


Built with ❤️ for the selfhosted community

About

Design homelab topologies on a canvas. Import Compose v2, visualize & lint conflicts, then export deterministic docker-compose.yml.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors