DevStack is a terminal-based Docker environment manager for backend developers. It helps create, run, inspect, and export local development infrastructure without manually writing Docker commands or Docker Compose files.
The project is written in Go and uses Cobra for the CLI, Bubble Tea for interactive terminal UI, Lip Gloss for styling, Viper for configuration, and Docker CLI through an internal runtime abstraction.
- Interactive searchable service selector
- Docker installation, engine, Compose, and Podman detection
- Built-in service catalog for databases, brokers, observability tools, local cloud services, gateways, caches, and developer utilities
- Ready-made stack templates
devstack.ymlenvironment persistence- Secure credential generation
- Automatic local port allocation
- Docker image detection and pull-on-demand
- Docker network, volume, and container management
- Health, stats, logs, and connection details
- Docker Compose and application configuration export
- Runtime abstraction designed for a future Docker SDK or Podman backend
- Go 1.25 or newer
- Docker CLI
- Docker Engine or Docker Desktop
- Docker Compose plugin
Podman detection is included for future runtime support.
go build -o devstack .Optionally move the binary somewhere on your PATH:
mv devstack /usr/local/bin/devstackCreate an environment from a template:
devstack init --name ecommerce --template spring-boot-starterStart the environment:
devstack upInspect services and connection details:
devstack inspectExport Docker Compose and app configuration:
devstack export --dir ./devstack-exportStop services:
devstack downRun DevStack with no subcommand:
devstackThe interactive terminal UI checks Docker status, then opens a searchable multi-select service picker.
Controls:
SPACEselects or deselects a service/searches servicesENTERcontinuesqquits
devstack
devstack init
devstack up
devstack down
devstack stop
devstack restart
devstack remove
devstack logs
devstack connect
devstack inspect
devstack stats
devstack list
devstack cleanup
devstack update
devstack export
devstack doctor
devstack version
devstack templates
devstack search
devstack help
List available templates:
devstack templatesIncluded templates:
spring-boot-startermicroservicesnode-apisearch-platformauthenticationcloud-developmentai-developmentdeveloper-essentialsobservability
Use a template:
devstack init --template developer-essentialsdevstack search redis
devstack search kafka
devstack search observabilityDevStack persists environments in devstack.yml.
Example:
name: ecommerce
network: devstack_ecommerce
createdWith: devstack
services:
postgres:
version: "17"
enabled: true
ports:
postgres: 5432
credentials:
username: postgres
database: app
password: generated_password
redis:
version: "8"
enabled: true
ports:
redis: 6379
credentials:
password: generated_passwordUse a custom config path:
devstack --config ./infra/devstack.yml updevstack export generates:
docker-compose.ymldocker-compose.override.yml.envapplication.ymlapplication.propertiesappsettings.jsonREADME.mddevstack.yml
Generated files use the actual ports and credentials from the resolved environment.
Run tests:
go test ./...Build:
go build ./...Run doctor:
go run . doctorThe codebase is organized around clean boundaries:
cmd/Cobra command wiringinternal/app/orchestration and use casesinternal/engine/Docker runtime interface and Docker CLI implementationinternal/services/service catalog, metadata, resolution, credentials, renderinginternal/config/environment persistenceinternal/generator/Compose and app config exportinternal/templates/reusable stack templatesinternal/ui/Bubble Tea terminal UIinternal/ports/local port allocationinternal/terminal/terminal table renderinginternal/utils/shared utility helpers
DevStack is a production-oriented first version. It includes the full CLI surface, real Docker CLI integration, environment persistence, export generation, and an extensible service catalog. Some advanced service-specific orchestration, deep health checks, and Docker SDK/Podman backends are planned future enhancements.