forked from wangziqi/gongxue-base
docs: add current handoff status
This commit is contained in:
@@ -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。
|
||||
|
||||
Reference in New Issue
Block a user