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:
- When you
stackmark adda project, StackMark scans docker-compose.yml for port mappings - It allocates unique external ports starting from 9000
- When you
stackmark start, it creates a temporary override file - 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 | ✅ | ❌ | ❌ |