文档 / 入门 / 服务器设置

服务器设置

在启动 sh0 之前,你只需做两件事:设置服务器主机名并将 DNS 指向它。sh0 处理其余所有事务。

从干净的服务器开始

sh0 设计为在全新服务器上安装。它自动管理 Docker、Caddy 和所有网络配置。使用干净的服务器可以避免与 80 和 443 端口上现有服务的冲突。

Note
你不需要手动安装 Docker 或 Caddy。以 root 身份运行 sh0 serve 时,它会检测缺失的依赖并自动安装。

设置主机名

将服务器的主机名设置为与 sh0 控制台使用的域名匹配。这确保 SSL 证书和反向代理路由正常工作。

Terminal
# Set the hostname (replace with your actual domain)
sudo hostnamectl set-hostname panel.example.com

然后更新 /etc/hosts,使服务器能解析自己的主机名:

/etc/hosts
# Add this line (use your server's public IP)
203.0.113.10    panel.example.com

验证主机名已设置:

Terminal
hostname -f
# Should output: panel.example.com

配置 DNS

在你的 DNS 提供商(Cloudflare、Namecheap、Route 53 等)中,创建两条指向服务器 IP 地址的 A 记录:

类型名称值用途
Apanel.example.com你的服务器 IPsh0 控制台
A (wildcard)*.example.com你的服务器 IP已部署的应用自动获得子域名
通配符 DNS
通配符记录(*.example.com)让 sh0 自动为每个已部署的应用分配子域名(如 myapp.example.com)。没有它,你需要为每个应用手动创建 DNS 记录。

启动 sh0

主机名和 DNS 配置完成后,使用域名启动 sh0:

Terminal
sh0 serve --panel-domain panel.example.com --base-domain example.com

首次运行时,sh0 将:

  1. 检测并安装 Docker Engine(如果缺失)
  2. 检测并安装 Caddy(反向代理)(如果缺失)
  3. 初始化数据库并生成加密密钥
  4. 在 9000 端口启动控制台
  5. 通过 Let's Encrypt 配置 SSL 证书
Note
DNS 传播可能需要几分钟。如果 SSL 配置在首次尝试时失败,请稍等片刻并重启 sh0。Caddy 会自动重试。

sh0 自动安装的内容

在 Linux 上以 root 身份运行时,sh0 serve 会自动配置以下依赖(如果尚未安装):

依赖安装方式用途
Docker Engineget.docker.com已部署应用的容器运行时
Caddy官方 APT 仓库或二进制下载自动 SSL 的反向代理

你也可以在不启动服务器的情况下运行配置检查:

Terminal
sh0 setup