docs: add current handoff status

This commit is contained in:
Codex
2026-07-02 09:54:01 +08:00
parent f54421fb96
commit 1d6f0f54ac
3 changed files with 154 additions and 3 deletions

View File

@@ -145,6 +145,86 @@ NPM_FETCH_TIMEOUT=300000
Taro H5 构建存在 webpack asset size warning这是前端包体优化事项不影响当前部署继续进行。后续可做拆包、按需加载和 KaTeX 字体裁剪。
## 服务器接管和故障恢复
2026-07-02 最新接管状态:
- Gitea `main` 已包含旧题库视觉对齐版本,最新提交应至少是 `f54421f`
- 服务器仓库仍在 `/opt/tiku-saas/repo`,归属用户应为 `deploy:deploy`
- 生产 API 已能启动,`https://api.tjszsb.com/api/tenant/resolve?host=app.tjszsb.com` 已返回 `master` 租户。
- Supabase self-hosted 运行在 `/opt/tiku-saas/supabase-project`Kong 通过 Nginx 暴露到 `https://supabase.tjszsb.com`
- 线上 H5 公开配置文件在 `/srv/tiku-saas/www/*/runtime-config.json`,密钥只允许放 `supabasePublishableKey` 这类公开 key。
接管服务器时先做只读检查:
```bash
cd /opt/tiku-saas/repo
sudo -u deploy git status --short
sudo -u deploy git log -3 --oneline
sudo -u deploy git remote -v
systemctl status tiku-api --no-pager -l
systemctl status tiku-worker --no-pager -l
docker compose -f /opt/tiku-saas/supabase-project/docker-compose.yml ps
```
Gitea SSH 使用 `2222` 端口,推荐服务器 `deploy` 用户的 remote 使用完整 SSH URL
```bash
sudo -u deploy git -C /opt/tiku-saas/repo remote set-url origin ssh://git@git.gongxue100.com:2222/chenhaogxjy/tiku-supabase.git
sudo -u deploy ssh -o BatchMode=yes -T -p 2222 git@git.gongxue100.com
sudo -u deploy git -C /opt/tiku-saas/repo pull origin main
```
也可以写 `/home/deploy/.ssh/config`,但必须包含 `Port 2222`
```sshconfig
Host git.gongxue100.com
HostName git.gongxue100.com
User git
Port 2222
IdentityFile /home/deploy/.ssh/tiku_saas_deploy
IdentitiesOnly yes
```
如果 Taro 构建长时间没有输出,先判断它是真在编译还是已经卡死。构建中的 Taro/webpack 可能会有一段时间安静,但如果 `dist` 目录大小和最近修改时间 30 秒以上都不变,就按卡住处理:
```bash
ps -eo pid,ppid,user,stat,etime,%cpu,%mem,cmd | grep -E 'npm|node|taro|webpack' | grep -v grep
du -sh /opt/tiku-saas/repo/apps/taro/dist/h5-student
sleep 30
du -sh /opt/tiku-saas/repo/apps/taro/dist/h5-student
find /opt/tiku-saas/repo/apps/taro/dist/h5-student -type f -mmin -5 | head -20
```
确认卡住后,先在原终端 `Ctrl+C`。如果仍有残留 Taro 构建进程,再只结束这条构建链路,不要杀生产 API、Supabase 或其它 Node 服务:
```bash
ps -eo pid,ppid,user,stat,etime,%cpu,%mem,cmd | grep -E 'npm run build:taro|taro build --type h5|webpack' | grep -v grep
kill <pid>
sleep 3
kill -9 <pid>
```
然后清理单端产物并带 CI/内存参数重跑。先单独跑学生端,成功后再跑另外两端:
```bash
cd /opt/tiku-saas/repo
rm -rf apps/taro/dist/h5-student
sudo -u deploy env CI=1 NODE_OPTIONS="--max-old-space-size=4096" npm run build:taro:h5:student
rm -rf apps/taro/dist/h5-tenant-admin apps/taro/dist/h5-platform-admin
sudo -u deploy env CI=1 NODE_OPTIONS="--max-old-space-size=4096" npm run build:taro:h5:tenant
sudo -u deploy env CI=1 NODE_OPTIONS="--max-old-space-size=4096" npm run build:taro:h5:platform
```
三端构建成功后再发布:
```bash
sudo -u deploy /opt/tiku-saas/bin/deploy.sh
```
如果只是想接管代码开发,不要从服务器 `apps/taro/dist``/srv/tiku-saas/www` 拷贝产物;它们只是发布结果,源码以 Gitea `main` 为准。
## 首次安装
1. 安装基础组件Docker、Docker Compose、Node.js 20+、Nginx、Certbot、Git、rsync、flock。