服务器设置
在启动 sh0 之前,你只需做两件事:设置服务器主机名并将 DNS 指向它。sh0 处理其余所有事务。
从干净的服务器开始
sh0 设计为在全新服务器上安装。它自动管理 Docker、Caddy 和所有网络配置。使用干净的服务器可以避免与 80 和 443 端口上现有服务的冲突。
Note
你不需要手动安装 Docker 或 Caddy。以 root 身份运行
sh0 serve 时,它会检测缺失的依赖并自动安装。设置主机名
将服务器的主机名设置为与 sh0 控制台使用的域名匹配。这确保 SSL 证书和反向代理路由正常工作。
# Set the hostname (replace with your actual domain)
sudo hostnamectl set-hostname panel.example.com然后更新 /etc/hosts,使服务器能解析自己的主机名:
# Add this line (use your server's public IP)
203.0.113.10 panel.example.com验证主机名已设置:
hostname -f
# Should output: panel.example.com配置 DNS
在你的 DNS 提供商(Cloudflare、Namecheap、Route 53 等)中,创建两条指向服务器 IP 地址的 A 记录:
| 类型 | 名称 | 值 | 用途 |
|---|---|---|---|
| A | panel.example.com | 你的服务器 IP | sh0 控制台 |
| A (wildcard) | *.example.com | 你的服务器 IP | 已部署的应用自动获得子域名 |
通配符 DNS
通配符记录(
*.example.com)让 sh0 自动为每个已部署的应用分配子域名(如 myapp.example.com)。没有它,你需要为每个应用手动创建 DNS 记录。启动 sh0
主机名和 DNS 配置完成后,使用域名启动 sh0:
sh0 serve --panel-domain panel.example.com --base-domain example.com首次运行时,sh0 将:
- 检测并安装 Docker Engine(如果缺失)
- 检测并安装 Caddy(反向代理)(如果缺失)
- 初始化数据库并生成加密密钥
- 在 9000 端口启动控制台
- 通过 Let's Encrypt 配置 SSL 证书
Note
DNS 传播可能需要几分钟。如果 SSL 配置在首次尝试时失败,请稍等片刻并重启 sh0。Caddy 会自动重试。
sh0 自动安装的内容
在 Linux 上以 root 身份运行时,sh0 serve 会自动配置以下依赖(如果尚未安装):
| 依赖 | 安装方式 | 用途 |
|---|---|---|
| Docker Engine | get.docker.com | 已部署应用的容器运行时 |
| Caddy | 官方 APT 仓库或二进制下载 | 自动 SSL 的反向代理 |
你也可以在不启动服务器的情况下运行配置检查:
sh0 setup