seho
v0.2.1
Published
A CLI tool for managing self-hosted services
Maintainers
Readme
seho
CLI tool for managing self-hosted services with Docker. Organize services in workspaces, manage secrets securely, and generate docker-compose files automatically.
Concepts
seho is a type-safe template engine for Docker that generates docker-compose files automatically, preventing common configuration mistakes. It organizes your self-hosted services using a workspace-based architecture where a workspace contains multiple products (applications like Outline or Redis), each grouping related Docker services together.
The template system enables creating reusable product templates that can be shared and deployed instantly. With seho add <product-name>, you can add a pre-configured product and have it running in minutes without touching configuration files or compromising security. Secrets (passwords, API keys) are automatically encrypted with RSA/AES, variables allow per-environment customization, and views compute complex configurations dynamically from templates.
Under the hood, seho validates all configurations at build time, catching errors before deployment—similar to how TypeScript prevents runtime errors in JavaScript. This type-safe layer over Docker handles the configuration complexity so you can focus on deploying services rather than debugging YAML syntax errors.
Installation
npm install -g seho
# or
bun install -g sehoQuick Start
# 1. Create a new workspace (interactive prompts for name, description, version, author)
seho setup
cd <workspace-name>
# 2. Create a new product (interactive prompts for name, description, version, author)
seho new product
# 3. Configure secrets, variables, and endpoints interactively
seho bootstrap
# 4. Generate configuration files and prepare environment
seho prepare
# 5. Verify everything is ready (optional)
seho ready
# 6. Start all services
seho startConfiguration
Workspace: workspace.yaml - Define products and namespaces
Product: products/*/ - Contains:
manifest.yaml- Metadataservices.yaml- Docker servicesenvironment.yaml- Secrets, variables, viewsstorage.yaml- Storage volumesconfig.yaml- Custom config filesendpoints.yaml- Public endpoints
Requirements
- Node.js >= 18.0.0
- Docker & Docker Compose
License
MIT
