Introduction
sh0 is a self-hosted deployment platform that packages everything you need into a single binary. No YAML manifests, no container orchestration complexity -- just push your code and it runs.
What is sh0?
sh0 is a deployment platform you install on your own server. It handles the entire lifecycle of your applications -- from building source code into containers, to configuring reverse proxies with automatic SSL, to monitoring uptime and managing backups.
Unlike traditional PaaS solutions that require cloud accounts and monthly subscriptions, sh0 runs entirely on infrastructure you control. A single $5/month VPS is enough to get started, and the platform scales with you as your needs grow.
Single Binary Architecture
The entire sh0 platform ships as a single compiled Rust binary. There are no runtime dependencies beyond Docker -- no Node.js, no Python, no Java, no external databases to provision. The dashboard, API server, reverse proxy manager, build system, and monitoring engine are all compiled into one executable.
This architecture means installation takes seconds, updates are a single file swap, and there are very few moving parts that can break in production.
Core Components
| Component | Technology | Role |
|---|---|---|
| Core Engine | Rust + Axum | API server, build orchestration, deployment logic |
| Reverse Proxy | Caddy | HTTPS termination, automatic Let's Encrypt, routing |
| Container Runtime | Docker Engine | Building images, running containers, networking |
| Database | SQLite | Configuration, deployment history, metrics storage |
| Dashboard | Svelte 5 + SvelteKit | Web UI embedded in the binary, served on port 9000 |
What It Replaces
sh0 is designed to eliminate the need for cobbling together multiple tools to deploy applications on your own server. Here is what a typical self-hosted setup looks like before and after sh0:
Without sh0
- -- Manual Docker commands per app
- -- Nginx/Traefik config files to maintain
- -- Certbot cron jobs for SSL renewal
- -- Custom CI/CD pipelines for each project
- -- Separate monitoring and alerting tools
- -- Manual backup scripts
With sh0
- + One binary, one command to install
- + Automatic reverse proxy configuration
- + Automatic SSL via Let's Encrypt
- + Git push to deploy, built in
- + Monitoring, metrics, and alerts included
- + Scheduled backups to S3/R2
How It Works
When you run sh0 serve, the binary starts several subsystems:
- API Server -- An Axum HTTP server listens on port 9000, serving both the dashboard and the REST API.
- Caddy Manager -- sh0 launches and manages a Caddy instance as a child process, dynamically updating its configuration as you add domains.
- Docker Client -- Communicates with the Docker Engine via the Unix socket to build images, create containers, and manage networks.
- Background Workers -- Handles scheduled tasks like backup execution, health checks, SSL certificate renewal, and metric collection.
Key Features
Git Push to Deploy
Connect a Git repository and deploy on every push. Supports GitHub, GitLab, Bitbucket, and any Git URL.
170+ Templates
One-click deployment for popular stacks -- WordPress, PostgreSQL, Redis, Ghost, Plausible, and more.
Automatic SSL
Every domain gets a free Let's Encrypt certificate, automatically provisioned and renewed by Caddy.
Blue-Green Deploys
Zero-downtime deployments with instant rollback. The old version stays running until the new one is healthy.
Database Management
Provision PostgreSQL, MySQL, MariaDB, MongoDB, or Redis with automated backups and connection string injection.
Multi-Server
Scale beyond a single server by adding remote nodes. sh0 deploys containers across your fleet via SSH tunnels.
Deployment Flow
Here is what happens when you deploy an application with sh0:
1. Source Code -- Git clone or image pull
2. Stack Detection -- Auto-detect language and framework
3. Build -- Generate Dockerfile, build container image
4. Health Check -- Verify the new container starts and responds
5. Route -- Update Caddy reverse proxy configuration
6. Live -- Traffic flows to the new container
7. Cleanup -- Remove old container (kept for rollback)Next Steps
Ready to get started? Follow the installation guide to get sh0 running on your server in under a minute.