# xiangqin landing page

单页 HTML + Tailwind CDN 静态站。部署到阿里云 OSS + CDN，域名 `https://xiangqin.agentaily.com/`。

## 本地预览

直接浏览器打开：

```bash
open ~/xiangqin/landing/index.html
```

或本地起 server（避免浏览器 file:// 某些限制）：

```bash
cd ~/xiangqin/landing
python3 -m http.server 8000
# → http://localhost:8000/
```

## 文件

- `index.html` —— 单页 landing 全部内容
- `deploy.sh` —— 部署脚本（uploads to OSS）
- `README.md` —— 本文件

## 首次部署（一次性 setup，老板在阿里云 console 操作）

### 1. OSS 桶

阿里云控制台 → OSS → 创建 Bucket：
- Bucket 名称：`agentaily-xiangqin-landing`
- 地域：**华东1（杭州）** `cn-hangzhou`
- 存储类型：标准存储
- 读写权限：**公共读**（静态网站托管必须）
- 同城冗余：关（省钱）
- 版本控制：关

### 2. OSS 静态网站托管

OSS Bucket → 「数据处理」→「静态页面」→ 启用：
- 默认首页：`index.html`
- 404 页：`index.html`（可选，SPA 风格）

### 3. 自定义域名绑定

阿里云 DNS 控制台 → `agentaily.com` → 添加 CNAME：
- 主机记录：`xiangqin`
- 记录类型：`CNAME`
- 记录值：`agentaily-xiangqin-landing.oss-cn-hangzhou.aliyuncs.com`
- TTL：600

然后 OSS Bucket → 「数据处理」→「域名管理」→ 绑定域名：
- 域名：`xiangqin.agentaily.com`
- 证书：**阿里云免费 SSL 证书**（自动申请 + 续期）
- 开启 HTTPS + 强制 HTTPS

### 4. CDN 加速（可选，国内快 2-10 倍）

阿里云 CDN 控制台 → 添加域名：
- 加速域名：`xiangqin.agentaily.com`
- 业务类型：图片小文件
- 源站类型：OSS 域名 `agentaily-xiangqin-landing.oss-cn-hangzhou.aliyuncs.com`
- HTTPS：开
- 回源协议：跟随 or HTTPS

CDN 接管后，`xiangqin.agentaily.com` 的 CNAME 改成 CDN 给的 `<code>.alicdn.com`。

### 5. 创建发布凭证（RAM 子账号）

阿里云 RAM 控制台 → 用户 → 创建用户：
- 名称：`xiangqin-landing-publisher`
- 访问方式：仅 AccessKey（不用密码登录）

权限策略（最小权限）：

```json
{
  "Version": "1",
  "Statement": [{
    "Effect": "Allow",
    "Action": ["oss:PutObject", "oss:GetObject"],
    "Resource": [
      "acs:oss:*:*:agentaily-xiangqin-landing",
      "acs:oss:*:*:agentaily-xiangqin-landing/*"
    ]
  }, {
    "Effect": "Allow",
    "Action": ["cdn:RefreshObjectCaches"],
    "Resource": "*"
  }]
}
```

保存 AK + SK 到 vault：

```bash
vault credential add aliyun-landing-publisher
# kind: ak_sk
# values: access_key_id / access_key_secret
# account_ref: aliyun/landing-publisher
```

### 6. 项目根 vault.json 声明依赖

在 `~/xiangqin/vault.json` 的 `credentials` 里加：

```json
"aliyun-landing-publisher": {
  "slug": "aliyun-landing-publisher",
  "fields": ["access_key_id", "access_key_secret"],
  "purpose": "landing page 发布到 OSS + 刷 CDN"
}
```

然后：

```bash
cd ~/xiangqin && vault install
```

## 日常发布流程

改 `index.html` → 本地预览 → 跑 deploy：

```bash
cd ~/xiangqin/landing
./deploy.sh
```

## 设计决策记录

详见 [brain/decisions/2026-04-24-legal-docs-distribution.md](../brain/decisions/2026-04-24-legal-docs-distribution.md) 的 Landing 部分（域名为何选 `xiangqin.agentaily.com`、托管为何不用 Cloudflare）。

## 技术栈选型

- **HTML + Tailwind CSS CDN** —— 零构建，一个 index.html 搞定
- **不用 SSG / SPA 框架**（Astro / Next.js）—— 单页内容，不值得引构建依赖
- **字体**：Noto Sans SC（中文）+ JetBrains Mono（代码）from Google Fonts
- **未来升级路径**：如果内容多到需要多页 / i18n / blog → 换 Astro
