Files
FacereDataset/docs/infra.md
Zhang Jiahao 1a67df44ba Add docs/infra.md: dev1 (广州) 部署记录
Why:
- Phase 0.5 要求的基础设施文档落地。机器已部署好,记录机器规格、
  SSH 约定、仓库位置、依赖装法、凭据管理规则、环境变量、长跑与日志
  策略、磁盘应急阈值,方便后续自己或新协作者快速接手。
- 严格不包含任何凭据值(token / cookie / 密码),只写事件与结构。

Deployment notes:
- GIT_LFS_SKIP_SMUDGE=1 克隆:省带宽和磁盘(本地仓库 32MB 而非 535MB+),
  历史 LFS 对象按需 pull
- uv 走清华镜像 + only-system python 3.10:sync 秒完成,避免下载独立 Python
- ~/.secrets/ mode 700 就绪

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 23:36:21 +08:00

95 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 基础设施 / 运行环境
**不含任何凭据值**。Token、密码、cookie 只存 dev1 的 `~/.secrets/`
## 机器
| 属性 | 值 |
|---|---|
| 名字 | **dev1** |
| 供应商 / 可用区 | 腾讯云,广州 |
| OS | Ubuntu 22.04 LTS (jammy) |
| CPU / RAM | 4 核 / 3.3 GiB+ 4 GiB swap |
| 磁盘 | 40 GB`/dev/vda2`ext4部署后用 12 GB可用约 27 GB |
| 用户 | `ubuntu` |
| apt 镜像 | `mirrors.tencentyun.com`(默认) |
## SSH
本地 `~/.ssh/config``Host dev1` 别名;密钥 `~/.ssh/GuangZhou.pem`mode 600。只允许 key 登录,密码登录关闭。
## 仓库位置
```
~/repo/FacereDataset/
```
- clone 时用 `GIT_LFS_SKIP_SMUDGE=1` 省流LFS 对象只在真正需要核对历史数据时 `git lfs pull <path>`,平时不拉)
- `git lfs install --skip-smudge` 已配,后续 `git pull` 也不会自动拉 blob
- origin remote 带 Gitea tokentoken 值见 `~/.claude/.../memory/reference_gitea.md`,服务器上直接存在 `.git/config` 里)
## 已装工具
| 工具 | 版本 | 装法 |
|---|---|---|
| git | 2.34.1 | apt系统自带 |
| git-lfs | 3.0.2 | `apt install git-lfs` |
| jq | 1.6 | apt |
| uv | 0.11.7 | `curl -LsSf https://astral.sh/uv/install.sh \| sh``~/.local/bin/uv` |
| python | 3.10.12 | apt系统自带`pyproject.toml` 要求 `>=3.10` |
`~/.local/bin` 已加入 `~/.bashrc``PATH`
## 凭据目录
```
~/.secrets/ mode 700
├── oshwhub-cookies.txt # Netscape 格式Charles 从浏览器导出)
└── ...
```
**规则(重申)**
- 不入 git、不入日志、不入 metadata.json、不打 echo
- 换号 / 重登事件写到 `docs/secrets.md`(仅事件日期与事由,不含值)
- 文件权限 600目录 700
## Python 依赖 / 网络
- `uv sync` 用清华 pypi 镜像加速:`export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple`
- 默认用系统 Python 3.10`UV_PYTHON_PREFERENCE=only-system`
- 这两个 env var 建议加到 `~/.bashrc` 或 profile
```bash
# 建议追加到 ~/.bashrc
export PATH="$HOME/.local/bin:$PATH"
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
export UV_PYTHON_PREFERENCE=only-system
```
## 长跑 / 调度
- 当前:手动 `tmux new -s crawl` 里跑,断开不受影响
- 后续:爬虫跑稳后套 `systemd timer`(每周增量),配置位置 `/etc/systemd/system/facere-crawl.{service,timer}`
## 日志
- 爬虫 stdout/stderr 落 `~/logs/<site>-<YYYYMMDD>.log``~/logs/` 目录首次运行前创建)
- `~/logs/` 不纳入 git
- 超过 30 天用 `logrotate`(待配)
## 磁盘应急策略
当前阈值(需配 cron 告警):
| 使用率 | 动作 |
|---|---|
| 70% | 邮件告警 |
| 85% | 停新批次爬取;只做增量 |
| 95% | 停一切爬取;人工介入 |
## 变更历史
| 日期 | 变更 |
|---|---|
| 2026-04-23 | dev1 首次部署apt install git-lfs jq / 装 uv / clone 仓库skip LFS smudge/ 创建 `~/.secrets/` / `uv sync` 通过 |