Features

Everything you need to manage multiple Docker stacks efficiently.

🔌 Automatic Port Allocation

No more port conflicts! StackMark automatically assigns unique ports to each stack starting from 9000.

How it works:

  1. When you stackmark add a project, StackMark scans docker-compose.yml for port mappings
  2. It allocates unique external ports starting from 9000
  3. When you stackmark start, it creates a temporary override file
  4. Your original docker-compose.yml is never modified
Example
Original docker-compose.yml:
nginx: 80:80
db: 3306:3306
StackMark allocates:
nginx: localhost:9003 → container:80
db: localhost:9004 → container:3306

📊 Interactive Dashboard

Real-time TUI with auto-refresh showing all your stacks, their status, and running containers.

stackmark dash
🐳 StackMark Dashboard
──────────────────────────────────────
myapp running
→ http://localhost:9003
Other: db:9004, redis:9005
api-project running
→ http://localhost:9010
○ other-stack stopped
Press q to quit • Auto-refresh: 2s

🎯 Smart Auto-Detection

Run commands from any project directory - StackMark automatically detects which stack you're working with.

terminal
$ cd ~/Dev/myapp
$ stackmark start # Starts myapp
$ stackmark logs -f # Shows myapp logs
$ stackmark status # Shows myapp status

🌐 Hosts Management

Sync local domains to /etc/hosts with a single command.

terminal
$ stackmark add myapp --domain myapp.local
$ sudo stackmark hosts sync
Added: 127.0.0.1 myapp.local

Comparison

Feature StackMark Docker Compose Portainer
CLI-first
Auto Port Allocation
Project Templates
Multi-stack Dashboard
Auto-detection
Hosts Sync