Open Source Tool

Local services for development

Run multiple local services in parallel without port conflicts. Perfect for multi-project development environments.

Key Features

Parallel Service Instances

Run multiple instances of the same service with different versions simultaneously.

No Port Conflicts

Access services via unique DNS names, avoiding port conflicts entirely.

Data Persistence

Ensure your data persists between container restarts with automatic volume management.

Get Started

Install Compartment and start managing your local services for development. Compatible with macOS, Linux, and Windows (via WSL2).

Download Binary

Download pre-built binaries from GitHub Releases

Docker Required

Ensure Docker is installed and running on your system.

Verify Installation

Run compartment check to verify your setup.

DNS Configuration

Configure DNS resolution to access services via their container names.

Start devdns

Run compartment start devdns to enable DNS resolution for containers.

macOS Resolver

Install docker-mac-net-connect Create /etc/resolver/container file with following content:

nameserver 127.0.0.1

Linux Network

Add network interface config to /etc/network/interfaces with DNS settings:

auto p3p1
iface p3p1 inet dhcp
dns-search container
dns-nameservers 127.0.0.1

Example Usage

Start multiple PostgreSQL versions for testing database migrations across different versions, all running simultaneously without conflicts.

# Start PostgreSQL 15 for legacy project
compartment -n legacy.db start postgresql 15

# Start PostgreSQL 17 for new project
compartment -n newapp.db start postgresql 17

# Add Redis for caching
compartment -n newapp.cache start redis 8

# Check what's running
compartment status legacy.db
compartment status newapp.db

# Access via DNS (with devdns)
psql -h legacy.db.container -U postgres
psql -h newapp.db.container -U postgres