SUPERBRAIN DEPLOY

一行命令,部署到公网

把这个页面链接发给你的 AI 助手,让它自动完成所有配置

$ rsync ./dist/ deploy@43.133.21.26:/var/www/my-project/ && ssh deploy@43.133.21.26 "deploy my-project"

3 步快速开始

只需 3 步,你的 AI 助手就能自动帮你把网站发布到公网

1

获取密钥

向 Michael 索要 deploy_key 文件(ED25519 SSH 私钥),保存后设置正确权限:

mkdir -p ~/.ssh
# 将 deploy_key 文件内容保存到 ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key

这是受限密钥,只能用于网站部署(上传文件 + 配置 Nginx),无法访问服务器上的其他资源。

核心步骤
2

安装 AI 技能

将下方的技能文件保存到指定路径,你的 AI 就能自动帮你部署网站。

保存路径:~/.claude/skills/deploy-to-web/SKILL.md

mkdir -p ~/.claude/skills/deploy-to-web
# 然后将下方技能文件内容保存到 ~/.claude/skills/deploy-to-web/SKILL.md

完整技能文件内容见第二部分 ↓

3

告诉 AI 部署

直接在对话框里告诉你的 AI 助手:

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

AI 会自动:上传文件 → 配置 Nginx → 申请 SSL 证书 → 返回公网链接 https://my-project.superbrain-ai.com

技能文件内容

将以下全部内容保存到 ~/.claude/skills/deploy-to-web/SKILL.md

~/.claude/skills/deploy-to-web/SKILL.md
---
name: deploy-to-web
description: 将内容部署为公网可访问的网页。触发词:部署到公网、上线让别人看到、发布网页、做个页面部署上去、让其他人看到、deploy。支持 Markdown、HTML、项目目录、口头描述。
---

# deploy-to-web — 内容发布到公网

将任何内容转化为公网可访问的静态网页,部署到 SuperBrain 共享服务器。

## 不适用场景(勿触发)

- 安装/配置本地开发工具、CLI 工具
- 部署后端服务、API 服务器、数据库
- 本地项目的构建/运行(`npm run dev`、`docker compose up`)
- 用户说"部署"但上下文是本地环境配置,不是发布到公网给别人看

## 前提条件

- SSH 密钥:`~/.ssh/deploy_key`(权限 600)
- 无需任何第三方账号、无需云平台凭证

验证连接:
```bash
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no deploy@43.133.21.26 "echo OK"
```

## ⚠️ 关键规则(必须严格遵守)

1. **部署前必须确认**:一次性向用户确认【风格】【网址】【服务器】三项,给出推荐值,等用户说"好"后再继续。**绝对不能跳过确认直接部署。**
2. **风格默认浅色底**:除非用户明确要求深色,否则推荐浅色风格。
3. **deploy 用户是受限账户**:只能执行 `rsync`(上传到 /var/www/)、`deploy`(配置 Nginx)、`list`(查看项目)、`echo OK`(测试连接)。不要尝试其他命令。
4. **项目名格式**:只能 `[a-z0-9-]`,不以 `-` 开头结尾。

## 工作流

### Step 1:确认输入

收集:
- **内容源**:文件路径、项目目录、或内容描述
- **项目名**:用于子域名(如 `my-project` → `my-project.superbrain-ai.com`)

### Step 2:确认部署方案(⚠️ 必须等用户确认)

展示以下内容,等用户确认或修改:

```
部署方案确认:

📐 风格: <推荐风格>(默认浅色底)
   可选:暖页 · 瑞士秩序 · 森林呼吸 · 黑曜石 · 午夜编辑 · 包豪斯
   预览:https://warmpage.superbrain-ai.com

🌐 网址: https://<项目名>.superbrain-ai.com

🖥️ 服务器: 日本 Tokyo(默认)
   也可选:新加坡 · 上海(同一个 deploy_key,无需额外配置)

以上 OK 吗?可以直接说"好",或告诉我要改哪项。
```

**风格推荐逻辑**(默认偏浅色底):
- 项目介绍、公益 → 暖页 warmpage(暖白 #FAF9F7)
- 正式文档、报告 → 瑞士秩序 swiss(纯白)
- 教育、阅读 → 森林呼吸 forest(象牙 #f5f0e8)
- 产品、工具 → 包豪斯 bauhaus(浅灰 #f8f8f6)
- 技术文档(用户明确要求深色时) → 黑曜石 obsidian
- 深度长文(用户明确要求深色时) → 午夜编辑 editorial

### Step 3:生成页面

根据内容类型处理:

#### Markdown 文件 / 口头描述
1. 根据选定风格,生成独立 HTML 页面(CSS 全部内联,无外部依赖)
2. 输出到 `/tmp/deploy-to-web-<项目名>/index.html`

#### HTML 文件或目录
- 直接使用。如有 `package.json` 含 `build` 脚本则先构建。

### Step 4:部署到服务器

可用服务器(共用同一个 deploy_key):

| 代号 | 地区 | IP | SSH 端口 |
|------|------|------|----------|
| japan(默认) | 日本 Tokyo | 43.133.21.26 | 22 |
| singapore | 新加坡 | 101.32.248.235 | 799 |
| shanghai | 上海 | 122.51.84.148 | 799 |

```bash
# 1. 上传文件
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 <项目名>"
```

### Step 5:验证并返回

```bash
curl -sI https://<项目名>.superbrain-ai.com | head -3
```

**标准输出**:
```
已部署到公网 ✓

公网地址: https://<项目名>.superbrain-ai.com
使用风格: <中文名>
服务器: <地区>
```

## 风格参考

| 代号 | 中文名 | 底色 | 强调色 | 适用场景 |
|------|--------|------|--------|----------|
| warmpage | 暖页 | 暖白 #FAF9F7 | 珊瑚 #E07A5F | 项目介绍、公益 |
| swiss | 瑞士秩序 | 纯白 | 瑞士红 #e63329 | 正式文档、报告 |
| forest | 森林呼吸 | 象牙 #f5f0e8 | 森绿 #4a7c59 | 教育、阅读 |
| bauhaus | 包豪斯 | 浅灰 #f8f8f6 | 橙红 #e05a20 | 产品、工具 |
| obsidian | 黑曜石 | 深色 #0e0e10 | 紫色 #7c6af7 | 技术文档 |
| editorial | 午夜编辑 | 碳黑 #111 | 金色 #c9a96e | 深度长文 |

## 错误处理

| 问题 | 处理 |
|------|------|
| deploy_key 不存在 | 提示向 Michael 索要 |
| SSH 连接失败 | 检查端口(日本 22,新加坡/上海 799) |
| 项目名含非法字符 | 自动转换:空格→连字符,大写→小写,去特殊字符 |
| SSL 未生效 | 等 30-60 秒后重试 |
| 命令被拒绝 | deploy 用户只允许 rsync/deploy/list/echo,不要尝试其他命令 |

可用服务器

三台服务器共用同一个 deploy_key,AI 根据需求自动选择

推荐
🇯🇵

日本 Tokyo

IP 43.133.21.26
SSH 端口 22
适用场景 通用部署,通配符 DNS 直接生效
🇸🇬

新加坡

IP 101.32.248.235
SSH 端口 799
适用场景 东南亚访问优化
🇨🇳

上海

IP 122.51.84.148
SSH 端口 799
适用场景 国内访问(需 ICP 备案后才能用自定义域名)

可用风格

告诉 AI 你想要的风格,它会生成对应样式的页面

默认
#FAF9F7 + #E07A5F
暖页 warmpage
项目介绍、公益、通用
#ffffff + #e63329
瑞士秩序 swiss
正式文档、报告
#f5f0e8 + #4a7c59
森林呼吸 forest
教育、阅读
#f8f8f6 + #e05a20
包豪斯 bauhaus
产品、工具
#0e0e10 + #7c6af7
黑曜石 obsidian
技术文档(深色)
#111111 + #c9a96e
午夜编辑 editorial
深度长文(深色)

常见问题

遇到问题?这里可能有答案

没有 deploy_key 怎么办? +
联系 Michael 获取。这是一个受限密钥,只能用于网站部署(上传文件 + 配置 Nginx),无法访问服务器上的其他资源。获取后保存到 ~/.ssh/deploy_key 并执行 chmod 600 ~/.ssh/deploy_key
如何更新已部署的网站? +
直接告诉 AI "帮我更新 my-project 的页面",或重新执行 rsync 上传即可。文件会自动覆盖,Nginx 和 SSL 无需重新配置。
我能访问服务器上的其他文件吗? +
不能。deploy 用户是受限账户,只能在 /var/www/ 下操作,允许的命令仅限于:rsync、deploy、list、echo OK。无法访问服务器上的其他资源。
选哪个服务器? +
默认用日本。日本服务器已配置通配符 DNS(*.superbrain-ai.com),部署后无需等待 DNS 传播即可访问。如果目标用户主要在国内且域名已 ICP 备案,可以选上海。东南亚用户访问优先选新加坡。
AI 技能装到哪里? +
将技能文件保存到 ~/.claude/skills/deploy-to-web/SKILL.md。这是 Claude Code 的全局 skills 目录,安装后在任何项目中都可以使用。先执行 mkdir -p ~/.claude/skills/deploy-to-web 创建目录,再将上方技能文件内容粘贴保存即可。