为生产环境而生
从裸机服务器到上线应用所需的一切——自动化、安全、快速。
4 种部署方式
Git 仓库、Docker 镜像、文件上传或 170 个一键模板
19 种技术栈自动检测
Node.js、Python、Go、Rust、PHP、Java、.NET 和 12 种以上框架
蓝绿部署
零停机部署,健康检查失败时自动回滚
自动 SSL 配置
Let's Encrypt 证书为每个域名自动配置和续期
实时构建日志
通过 WebSocket 流式传输实时查看构建和部署日志,逐行显示
部署通知
结果发送到 Slack、Discord、Telegram、邮件或自定义 Webhooks
5 步工作流
01
安装 sh0
一条命令。30 秒。任意已安装 Docker 的 Linux 服务器。
$ curl -fsSL https://get.sh0.dev | bash
正在下载 sh0 v1.6.0 linux-x64 版本...
校验和验证通过。OK
sh0 已安装到 /usr/local/bin/sh0
02
启动平台
运行 sh0 serve。控制面板、API 和反向代理即时启动。
$ sh0 serve
sh0 v1.6.0 启动中...
Dashboard: http://your-server:9000
API: http://your-server:9000/api/v1
Default: [email protected] / sh0-change-me!
03
创建技术栈
技术栈是相关服务的逻辑分组——前端、后端、数据库。
04
部署您的应用
四种部署方式:
Git 仓库
连接 GitHub、GitLab 或 Bitbucket。推送时通过 Webhook 集成自动部署。
Docker 镜像
直接拉取任何公共或私有 Docker 镜像。无需构建步骤。
文件上传
上传项目的 ZIP 或 TAR 包。sh0 自动检测技术栈并构建。
170 个模板
一键部署 WordPress、PostgreSQL、Redis、Ghost、Gitea 等 163 种以上。
Docker Compose
粘贴或上传 docker-compose.yml。服务按依赖顺序部署。
sh0.yaml IaC
声明式基础设施即代码。定义应用、数据库、域名和定时任务。
05
上线
将您的域名指向服务器。sh0 自动处理 SSL。
# 指向您的域名
A record: myapp.com -> 203.0.113.1
# sh0 自动配置 SSL
已为 myapp.com 签发 SSL 证书
应用已上线 https://myapp.com
部署过程中发生了什么
Git 克隆
技术栈检测
健康检查
Docker 构建
蓝绿切换
SSL + 路由
从 git push 到在线 URL——全程自动化,零停机
一切所需
实时监控
每 10 秒采集 CPU、内存和网络指标。告警阈值自动触发 5 个渠道的通知。
浏览器内终端
直接从控制面板 SSH 进入任何容器。完整终端仿真,通过 WebSocket 使用 xterm.js。
加密环境变量
环境变量使用 AES-256-GCM 加密。构建时和运行时分离。RBAC 强制访问控制。
域名 & SSL
添加自定义域名,自动配置 SSL,上传自定义证书。支持正则匹配的 URL 重定向。
自动备份
按计划任务进行数据库和卷备份。AES-256-GCM 加密。13 种存储提供商目标。
自动扩缩
CPU 和内存阈值规则。1-10 副本,可配置冷却时间。轮询、最少连接或随机负载均衡。
传统方式
- x 用 YAML 编写 CI/CD 流水线
- x 构建 Docker 镜像并推送到镜像仓库
- x SSH 到服务器,docker pull,重启服务
- x 手动配置 nginx 虚拟主机
- x 配置 certbot 获取 SSL 证书
- x 每次部署都有停机时间
sh0 的方式
- 推送代码,sh0 自动构建并部署
- 在您的服务器上构建,无需镜像仓库
- 控制面板、CLI 或 API——无需 SSH
- Caddy 自动为每个域名配置路由
- SSL 证书即时配置
- 蓝绿部署,零停机
常见问题
部署需要多长时间? +
通常 30-90 秒,取决于应用的构建时间。sh0 实时流式传输构建日志,您可以逐步查看。初次构建后,得益于 Docker 层缓存,后续部署会更快。
部署失败会怎样? +
sh0 使用蓝绿部署。新版本在旧版本旁边构建并进行健康检查。如果健康检查失败,旧版本继续运行,您会立即收到通知。零停机,无需手动回滚。
可以从私有仓库部署吗? +
可以。sh0 支持 GitHub、GitLab 和 Bitbucket 的部署令牌、个人访问令牌和 SSH 密钥。所有凭证均使用 AES-256-GCM 静态加密。
sh0 支持 monorepo 吗? +
可以。为仓库中的每个应用配置根目录。sh0 会检测该目录中的技术栈,且仅在相关文件更改时重新构建。