首次部署
在五分钟内在 sh0 上部署你的第一个应用。本指南将带你完成每个步骤,从创建堆栈到看到应用上线。
概述
在 sh0 上部署应用遵循一个简单的流程:
- 创建堆栈 -- 堆栈将相关服务组合在一起(如应用及其数据库)。
- 添加应用 -- 将 sh0 指向 Git 仓库或选择模板。
- 配置域名 -- 分配域名或使用默认的
*.sh0.app子域名。 - 部署 -- sh0 自动构建并启动你的应用。
- 验证 -- 访问你的应用并确认一切正常。
Tip
在本指南中,我们将从公共 Git 仓库部署一个简单的 Node.js 应用。你可以使用自己的项目跟随操作,也可以使用我们的示例仓库。
第一步:创建堆栈
堆栈是 sh0 中的顶级组织单元。可以将堆栈理解为一个项目文件夹,将应用与其相关服务(数据库、缓存、工作进程)组合在一起。
- 在控制台中,点击右上角的 新建堆栈 按钮。
- 为堆栈输入名称(例如
my-first-app)。 - 可选地添加描述以便日后识别堆栈。
- 点击 创建堆栈。
New Stack dialog with a name field showing 'my-first-app', a description field, and a Create Stack button
新堆栈出现在堆栈列表中。点击它可打开堆栈详情视图,在这里你将添加第一个应用。
Empty stack detail view with an 'Add App' button prominently displayed in the center, plus tabs for Apps, Environment, Settings
第二步:添加应用
在堆栈内,点击 添加应用。你可以从 Git 仓库、Docker 镜像或预构建模板进行部署。
从 Git 仓库
最常见的部署方式。提供 Git URL,sh0 处理其余事务:
- 选择 Git 仓库 作为来源。
- 输入仓库 URL。本示例使用我们的演示应用: Repository URL
https://github.com/sh0-dev/demo-node-app - 选择要部署的分支(默认为
main)。 - sh0 自动检测项目技术栈(Node.js、Python、Go 等)并选择适当的构建配置。
- 点击 添加应用。
Add App form showing Git Repository selected, with a URL field containing a GitHub URL, branch selector set to 'main', and auto-detected stack showing 'Node.js'
私有仓库
对于私有仓库,你需要先连接 Git 提供商。前往 设置 > Git 提供商 链接你的 GitHub、GitLab 或 Bitbucket 账户。或者,你可以添加部署用 SSH 密钥。
从模板
如果你想部署热门应用而无需编写任何代码,请使用模板:
- 选择 模板 作为来源。
- 浏览或搜索模板库(170+ 个选项,包括 WordPress、Ghost、Plausible、Uptime Kuma 等)。
- 点击模板查看其详情——所需资源、包含的服务和默认配置。
- 点击 部署模板。
Template gallery showing a grid of application templates with icons, names, and descriptions -- WordPress, PostgreSQL, Redis, Ghost, Plausible, Uptime Kuma visible
第三步:配置域名
每个应用都需要域名才能访问。sh0 提供两个选项:
默认子域名
sh0 自动分配类似 my-first-app.sh0.app 的子域名。无需 DNS 配置——非常适合测试。
自定义域名
使用你自己的域名(例如 app.yourdomain.com)。需要添加指向服务器 IP 的 A 记录。SSL 自动配置。
要为应用配置域名:
- 在应用设置中,前往 域名 选项卡。
- 点击 添加域名。
- 输入域名(或保留默认的
.sh0.app子域名)。 - 如果使用自定义域名,请在 DNS 提供商处添加指向服务器 IP 地址的 A 记录。
- 点击 保存。sh0 将自动配置 SSL 证书。
Domain configuration tab showing a domain input field, DNS instructions with the server IP, and an SSL status indicator showing 'Certificate Active'
第四步:部署
应用配置完成后,就可以部署了。点击 部署 按钮。sh0 将执行以下操作:
- 克隆 Git 仓库(或拉取 Docker 镜像)
- 检测项目技术栈并生成 Dockerfile
- 构建容器镜像
- 启动新容器并运行健康检查
- 配置反向代理以路由流量
- 将部署标记为上线
Deployment progress view showing a real-time build log with steps: Cloning repository, Detecting stack (Node.js 20), Building image, Starting container, Running health check, Configuring proxy -- each with a green checkmark
你可以实时查看构建日志。典型的 Node.js 应用部署需要 30-90 秒,取决于依赖项大小。
构建缓存
sh0 在构建之间缓存 Docker 层。后续部署速度显著加快,因为只需重新构建更改的层。缓存的 Node.js 构建通常在 15 秒内完成。
Build log showing detailed output: npm install progress, dependency tree, build output, and final container start confirmation
第五步:验证
部署完成后,你的应用即已上线。验证其运行状态:
- 点击应用概览中显示的域名链接,在新标签页中打开应用。
- 检查应用状态指示器——应显示绿色的 运行中 标记。
- 在 部署 选项卡中查看部署条目以了解完整历史。
App overview page showing status 'Running' with a green badge, the domain link, resource usage (CPU, memory), uptime, and deployment history below
你也可以通过命令行验证:
curl -I https://my-first-app.sh0.appHTTP/2 200
content-type: text/html; charset=utf-8
server: Caddy
x-powered-by: sh0 DNS 传播
如果你使用自定义域名,DNS 更改可能需要最长 24 小时在全球传播,但大多数更新在几分钟内完成。等待期间可使用默认的
.sh0.app 子域名立即访问。下一步
恭喜——你的第一个应用已部署。以下是一些建议的后续步骤: