Debu provides first-class support for Docker Compose, making it easy to manage multi-container applications.
- ๐ Auto-detection - Automatically finds compose files in current directory
- ๐ Service Overview - View all services with status and ports
- ๐ฎ Interactive Management - Up, down, restart, logs, build
- โ Validation - Check compose file syntax
- ๐ Per-Service Actions - Manage individual services
cd your-project-with-compose-file
bun run dev composeDebu will:
- Detect
docker-compose.yml(or variants) - Show all services with their status
- Provide interactive menu for actions
Debu looks for these files (in order):
docker-compose.ymldocker-compose.yamlcompose.ymlcompose.yaml
Starts all services defined in the compose file.
Options:
- Build images before starting
- Force recreate containers
- Remove orphaned containers
# Interactive
bun run dev compose โ Up
# With options
Select: Build images โ
Select: Force recreate โStops and removes all containers.
Options:
- Remove volumes (
โ ๏ธ deletes data!)
bun run dev compose โ Down
Remove volumes? NoRestart all services or a specific service.
bun run dev compose โ Restart
Restart: [All services] or [specific service]View logs from all services or a specific service.
Options:
- Follow logs (live tail)
- View specific service only
bun run dev compose โ Logs
View logs for: [All services]
Follow logs? YesPull latest images for all services.
bun run dev compose โ Pull
# Downloads latest versionsBuild or rebuild services.
bun run dev compose โ Build
Build: [All services] or [specific service]Check compose file syntax and structure.
bun run dev compose โ Validate
โ Compose file is validversion: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=development
- DB_HOST=postgres
depends_on:
- postgres
- redis
postgres:
image: postgres:15-alpine
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=secret
- POSTGRES_DB=myapp
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis-data:/data
volumes:
pgdata:
redis-data:When you open a compose project, Debu shows:
๐ my-app
Services (3):
STATUS SERVICE STATE PORTS
โถ๏ธ web running 0.0.0.0:3000โ3000
โถ๏ธ postgres running 0.0.0.0:5432โ5432
โถ๏ธ redis running 0.0.0.0:6379โ6379
# Start your stack
cd project
bun run dev compose โ Up
# Make code changes...
# Rebuild and restart
bun run dev compose โ Build โ web
bun run dev compose โ Restart โ web
# View logs
bun run dev compose โ Logs โ web โ Follow
# Stop everything
bun run dev compose โ Down# View logs for specific service
bun run dev compose โ Logs โ postgres
# Restart problematic service
bun run dev compose โ Restart โ postgres
# Check if compose file is valid
bun run dev compose โ Validate# New team member clones repo
git clone project
cd project
# Start entire stack
bun run dev compose โ Up
# Everything runs!services:
web:
environment:
- DB_PASSWORD=${DB_PASSWORD}Create .env file:
DB_PASSWORD=secret123
services:
postgres:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5services:
web:
depends_on:
postgres:
condition: service_healthyUse named volumes for data persistence:
volumes:
pgdata:
redis-data:Isolate services with custom networks:
networks:
frontend:
backend:
services:
web:
networks:
- frontend
- backend
postgres:
networks:
- backendMake sure you're in the directory with the compose file:
ls docker-compose.yml # Should exist
bun run dev composeCheck logs:
bun run dev compose โ Logs โ [service]Validate compose file:
bun run dev compose โ ValidateIf ports are already in use, modify your compose file:
ports:
- "5433:5432" # Use different host portMake sure you're using named volumes:
volumes:
- pgdata:/var/lib/postgresql/data # Named volume
volumes:
pgdata: # Define volumeYou can combine Compose with Templates:
- Start with Compose - Use compose for your main app
- Add services via Templates - Add one-off services like mailhog
- Save working setup - Export containers as templates
Example:
# Start main app with compose
bun run dev compose โ Up
# Add email testing
bun run dev templates โ Run โ mailhog
# Now you have app + mailhog runningIf you have multiple compose files:
bun run dev compose
# Select which file to use# docker-compose.yml (base)
services:
web:
image: myapp
# docker-compose.override.yml (dev)
services:
web:
environment:
- DEBUG=trueDocker Compose automatically merges these files.
When in compose view:
โ/โ- Navigate optionsEnter- Select actionSpace- Toggle checkboxesCtrl+C- Cancel/Exit
- Learn about Templates for single-container setups
- See PRODUCT.md for full feature roadmap
- Check README.md for installation and basics