Files
home/Projects/kompose/docs/content/1.index.md
2025-10-09 00:41:34 +02:00

4.2 KiB

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

User Guide

Stack Reference

  • All Stacks - Detailed documentation for each stack

Reference