4.2 KiB
Executable File
title, description
| title | description |
|---|---|
| Introduction to Kompose | Learn about Kompose, your Docker Compose Symphony Conductor for managing multiple stacks with style and grace. |
Kompose is a powerful Bash orchestration tool for managing multiple Docker Compose stacks with style and grace. Think of it as a conductor for your Docker symphony - each stack plays its part, and Kompose makes sure they're all in harmony.
Kompose is a powerful Bash orchestration tool for managing multiple Docker Compose stacks with style and grace. Think of it as a conductor for your Docker symphony - each stack plays its part, and Kompose makes sure they're all in harmony.
Why Kompose?
:icon{name="lucide:target"} One Command to Rule Them All - Manage dozens of stacks with a single command :icon{name="lucide:refresh-cw"} Database Wizardry - Export, import, and clean up PostgreSQL databases like a boss :icon{name="lucide:tent"} Hook System - Extend functionality with custom pre/post operation hooks :icon{name="lucide:globe"} Network Maestro - Smart network management with CLI overrides :icon{name="lucide:lock-keyhole"} Environment Juggler - Override any environment variable on the fly :icon{name="lucide:palette"} Beautiful Output - Color-coded logs and status indicators :icon{name="lucide:flask-conical"} Dry-Run Mode - Test changes before applying them
:icon{name="lucide:music"} Stack Management
- Pattern-based selection: Target stacks with globs, comma-separated lists, or wildcards
- Bulk operations: Execute commands across multiple stacks simultaneously
- Status monitoring: Visual feedback with color-coded success/failure indicators
- Smart filtering: Include/exclude stacks with flexible pattern matching
:icon{name="lucide:hard-drive"} Database Operations
- Automated backups: Export PostgreSQL databases with timestamped dumps
- Smart imports: Auto-detect latest dumps or specify exact files
- Drop & recreate: Safe database import with connection termination
- Cleanup utilities: Keep only the latest dumps, remove old backups
- Hook integration: Custom pre/post operations for each database action
:icon{name="lucide:git-branch"} Extensibility
- Custom hooks: Define
pre_db_export,post_db_export,pre_db_import,post_db_import - Stack-specific logic: Each stack can have unique operational requirements
- Environment access: Hooks inherit all environment variables
- Dry-run aware: Test hook execution without side effects
:icon{name="lucide:globe"} Network Management
- Unified network: All stacks communicate on a single Docker network
- CLI overrides: Change network on-the-fly without editing configs
- Traefik integration: Seamless reverse proxy setup with proper network awareness
- Multi-network support: Special stacks can have additional internal networks
:icon{name="lucide:wrench"} Environment Control
- Global overrides: Set environment variables via CLI flags
- Layered configs: Root
.env+ stack.env+ CLI overrides - Precedence rules: CLI > Stack > Root configuration hierarchy
- Real-time changes: No need to edit files for temporary overrides
Quick Start
# Start all stacks
./kompose.sh "*" up -d
# View logs from specific stacks
./kompose.sh "blog,news" logs -f
# Export all databases
./kompose.sh "*" db:export
# Override network for staging
./kompose.sh --network staging "*" up -d
Documentation Sections
Getting Started
- Installation Guide - Set up Kompose on your system
- Quick Start - Get up and running in minutes
User Guide
- Stack Management - Managing multiple stacks
- Database Operations - Backup and restore databases
- Hooks System - Extend with custom hooks
- Configuration - Configure Kompose and stacks
- Network Architecture - Understanding networking
- Troubleshooting - Common issues and solutions
Stack Reference
- All Stacks - Detailed documentation for each stack
Reference
- CLI Reference - Complete command reference
- Environment Variables - All configuration options