文档 / 入门 / 简介

简介

sh0 是一个自托管部署平台,将所需的一切打包进单个二进制文件。无需 YAML 清单、无需容器编排复杂性——只需推送代码即可运行。

什么是 sh0?

sh0 是你安装在自己服务器上的部署平台。它处理应用的整个生命周期——从将源代码构建为容器、配置自动 SSL 的反向代理、到监控运行时间和管理备份。

与需要云账户和月费订阅的传统 PaaS 方案不同,sh0 完全运行在你控制的基础设施上。一台每月 5 美元的 VPS 就足以开始,平台随你的需求增长而扩展。

sh0 适合谁?
想要托管平台便利性又不想放弃基础设施控制权的开发者、代理机构和团队。如果你曾手动部署 Docker 容器并希望有一个控制台,sh0 就是为你准备的。

单二进制文件架构

整个 sh0 平台以单个编译的 Rust 二进制文件发布。除 Docker 外没有运行时依赖——不需要 Node.js、Python、Java 或外部数据库。控制台、API 服务器、反向代理管理器、构建系统和监控引擎全部编译到一个可执行文件中。

Architecture diagram showing the sh0 binary containing the API server, Svelte dashboard, Caddy proxy manager, Docker orchestrator, and SQLite database

这种架构意味着安装只需几秒、更新只需替换一个文件,并且生产环境中很少有可能出故障的组件。

核心组件

组件技术角色
核心引擎Rust + AxumAPI 服务器、构建编排、部署逻辑
反向代理CaddyHTTPS 终止、自动 Let's Encrypt、路由
容器运行时Docker Engine构建镜像、运行容器、网络管理
数据库SQLite配置、部署历史、指标存储
控制台Svelte 5 + SvelteKit嵌入在二进制文件中的 Web UI,通过 9000 端口提供服务

它替代了什么

sh0 旨在消除拼凑多个工具来在自己的服务器上部署应用的需要。以下是使用 sh0 前后典型自托管设置的对比:

不使用 sh0

  • -- 每个应用手动执行 Docker 命令
  • -- 需要维护 Nginx/Traefik 配置文件
  • -- 用于 SSL 续期的 Certbot cron 任务
  • -- 每个项目的自定义 CI/CD 流水线
  • -- 独立的监控和告警工具
  • -- 手动备份脚本

使用 sh0

  • + 一个二进制文件,一条命令安装
  • + 自动反向代理配置
  • + 通过 Let's Encrypt 自动配置 SSL
  • + 内置 Git 推送即部署
  • + 内置监控、指标和告警
  • + 定时备份到 S3/R2

工作原理

当你运行 sh0 serve 时,二进制文件会启动以下几个子系统:

  1. API 服务器 -- Axum HTTP 服务器监听 9000 端口,同时提供控制台和 REST API。
  2. Caddy 管理器 -- sh0 启动并管理一个 Caddy 实例作为子进程,在你添加域名时动态更新其配置。
  3. Docker 客户端 -- 通过 Unix socket 与 Docker Engine 通信,用于构建镜像、创建容器和管理网络。
  4. 后台工作进程 -- 处理计划任务,如备份执行、健康检查、SSL 证书续期和指标收集。
Diagram showing the request flow: user browser connects to Caddy on port 80/443, which routes to Docker containers, while the dashboard on port 9000 communicates with the sh0 API

核心功能

Git 推送即部署

连接 Git 仓库,每次推送时自动部署。支持 GitHub、GitLab、Bitbucket 和任何 Git URL。

170+ 模板

一键部署热门技术栈——WordPress、PostgreSQL、Redis、Ghost、Plausible 等。

自动 SSL

每个域名都获得免费的 Let's Encrypt 证书,由 Caddy 自动配置和续期。

蓝绿部署

零停机部署和即时回滚。旧版本保持运行直到新版本通过健康检查。

数据库管理

配置 PostgreSQL、MySQL、MariaDB、MongoDB 或 Redis,支持自动备份和连接字符串注入。

多服务器

通过添加远程节点扩展到单台服务器之外。sh0 通过 SSH 隧道在服务器群组间部署容器。

部署流程

以下是使用 sh0 部署应用时的流程:

Deployment Pipeline
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)
Note
sh0 自动检测项目的技术栈(Node.js、Python、Go、Rust、PHP、Ruby、静态站点等)并生成优化的 Dockerfile。你也可以提供自己的 Dockerfile 或 Docker Compose 文件。

下一步

准备好开始了吗?按照安装指南在一分钟内在服务器上运行 sh0。