Skip to content

Introduction

Composia is a self-hosted service manager built around service definitions, a single control plane, and one or more execution agents.

What is Composia?

Composia enables you to:

  • Manage Docker Compose services - Use familiar Docker Compose YAML files to define services
  • Multi-node deployment - Deploy services to multiple nodes (agents)
  • Centralized control - Manage all services and nodes through a single control plane
  • Real-time monitoring - View service status, logs, and resource usage

Core Concepts

Service Definitions

Composia uses composia-meta.yaml files to define service metadata, combined with standard docker-compose.yaml files:

yaml
# composia-meta.yaml
name: my-service
description: My awesome service
version: "1.0"

Control Plane

The control plane is the brain of Composia, responsible for:

  • Configuration management: Loading service definitions from Git repositories
  • State aggregation: Collecting status information from all agents
  • Task scheduling: Assigning deployment tasks to appropriate agents
  • API services: Providing Web UI and external integration interfaces

Execution Agents

Agents run on actual Docker hosts and are responsible for:

  • Heartbeat communication: Regularly reporting status to the control plane
  • Task execution: Executing deployment, stop, restart, and other operations
  • Log collection: Collecting and forwarding container logs
  • Resource monitoring: Monitoring host and container resource usage

Technology Stack

  • Backend: Go 1.25+
  • Frontend: SvelteKit + Bun
  • Runtime: Docker Compose
  • Database: SQLite
  • Communication: ConnectRPC

License

Composia is released under the AGPL-3.0 open source license.

Released under the AGPL-3.0 License.