把你的网站发布到公网

把这份文档的链接发给你的 AI 助手(Claude Code / Cursor),它会自动帮你完成环境配置和部署。

快速开始

你只需要告诉 AI 一句话:

帮我把 XXX 部署到公网

AI 会自动读取本文档,完成以下所有步骤,最终返回一个可访问的公网链接。

环境准备(AI 自动完成)

1. 获取部署密钥

向 Michael 索要 deploy_key 文件(ED25519 SSH 私钥),保存到:

mkdir -p ~/.ssh
# 将 deploy_key 文件内容保存到 ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
这是一个受限密钥,只能用于网站部署(上传文件 + 配置 Nginx),无法访问服务器上的其他资源

2. 验证连接

ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no deploy@43.133.21.26 "echo OK"

如果返回 OK,说明连接成功。

部署方式

方式 1:直接告诉 AI 部署(推荐)

请帮我把 ./dist 目录部署到公网,项目名叫 my-project

AI 会自动完成:

  1. 上传文件到服务器
  2. 配置 Nginx 反向代理
  3. 申请 Let's Encrypt SSL 证书
  4. 返回公网链接 https://my-project.superbrain-ai.com

方式 2:手动命令

# 1. 上传文件(默认日本服务器)
rsync -avz -e "ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no" \
  ./dist/ deploy@43.133.21.26:/var/www/my-project/

# 2. 配置 Nginx + SSL
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no deploy@43.133.21.26 \
  "deploy my-project"

可用服务器

三台服务器共用同一个 deploy_key,AI 根据需求选择,默认使用日本。

Singapore 东南亚
新加坡
IP:101.32.248.235
SSH 端口:799
用户名:deploy
东南亚访问优化,需额外配置 DNS
Shanghai 国内
上海
IP:122.51.84.148
SSH 端口:799
用户名:deploy
国内访问(需 ICP 备案后才能用自定义域名)

AI 自动化部署指令

<HOST><PORT> 替换为对应服务器的 IP 和端口(默认:43.133.21.26 端口 22):

# 1. 上传文件(rsync 到 /var/www/<项目名>/)
rsync -avz --delete \
  -e "ssh -i ~/.ssh/deploy_key -p <PORT> -o StrictHostKeyChecking=no" \
  <本地目录>/ deploy@<HOST>:/var/www/<项目名>/

# 2. 配置 Nginx + SSL(服务器自动完成)
ssh -i ~/.ssh/deploy_key -p <PORT> -o StrictHostKeyChecking=no \
  deploy@<HOST> "deploy <项目名>"

# 3. 验证部署
curl -sI --resolve "<项目名>.superbrain-ai.com:443:<HOST>" \
  "https://<项目名>.superbrain-ai.com" | head -3

快捷参考:各服务器完整命令

日本(默认,推荐):

rsync -avz --delete -e "ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no" \
  <本地目录>/ deploy@43.133.21.26:/var/www/<项目名>/
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no deploy@43.133.21.26 "deploy <项目名>"

新加坡:

rsync -avz --delete -e "ssh -i ~/.ssh/deploy_key -p 799 -o StrictHostKeyChecking=no" \
  <本地目录>/ deploy@101.32.248.235:/var/www/<项目名>/
ssh -i ~/.ssh/deploy_key -p 799 -o StrictHostKeyChecking=no deploy@101.32.248.235 "deploy <项目名>"

上海:

rsync -avz --delete -e "ssh -i ~/.ssh/deploy_key -p 799 -o StrictHostKeyChecking=no" \
  <本地目录>/ deploy@122.51.84.148:/var/www/<项目名>/
ssh -i ~/.ssh/deploy_key -p 799 -o StrictHostKeyChecking=no deploy@122.51.84.148 "deploy <项目名>"

DNS 说明

  • 已配置通配符 *.superbrain-ai.com → 日本服务器(43.133.21.26)
  • 部署到日本服务器后,自动可通过 https://<项目名>.superbrain-ai.com 访问
  • 部署到新加坡或上海时,需要额外配置 DNS 记录(联系 Michael)
  • 如果 DNS 未生效,用 --resolve 参数直接测试

deploy 用户权限说明

此密钥登录的是受限的 deploy 用户,只允许以下操作:

操作 命令 说明
上传文件 rsync ... deploy@server:/var/www/<项目名>/ 只能写入 /var/www/
部署配置 ssh deploy@server "deploy <项目名>" 自动配置 Nginx + SSL
查看项目 ssh deploy@server "list" 列出已部署的项目
连接测试 ssh deploy@server "echo OK" 验证连接
不允许:读取系统文件、访问其他用户目录、执行任意命令、端口转发。

注意事项

  • SSH Key 文件权限必须是 600
  • 项目名只能包含小写字母、数字、连字符(如 my-project
  • 不需要注册任何第三方账号
  • SSL 证书由 Let's Encrypt 自动签发和续期
  • 微信可正常分享 superbrain-ai.com 域名的链接

常见问题

没有 deploy_key 怎么办?
联系 Michael 获取。
DNS 没生效怎么办?
--resolve 参数直接测试,或等几分钟 DNS 传播。日本服务器有通配符 DNS,通常无需等待。
如何更新已部署的网站?
重新执行 rsync 上传即可,文件会自动覆盖。Nginx 和 SSL 无需重新配置。
同一个项目名会冲突吗?
同名会覆盖。请使用有辨识度的项目名。
我能访问服务器上的其他文件吗?
不能。deploy 用户是受限账户,只能在 /var/www/ 下操作,无法访问服务器上的其他资源。
选哪个服务器?
默认用日本。如果目标用户主要在国内且域名已备案,可以选上海。