Checkpoint: v4.0 media service, compose deploy, and verified docs

这个提交包含在:
cryptocommuniums-afk
2026-03-14 21:45:31 +08:00
父节点 27083d5af9
当前提交 d5431aee0e
修改 41 个文件,包含 4056 行新增883 行删除

60
docs/deploy.md 普通文件
查看文件

@@ -0,0 +1,60 @@
# Deployment Guide
## Topology
- 宿主机 nginx负责 `te.hao.work` 的 TLS、反向代理与大文件上传入口
- `app` 容器Node 应用,端口 `3000`
- `media` 容器Go 媒体服务,端口 `8081`
- `worker` 容器Go 媒体归档 worker,共享媒体卷
- `media-data` 卷:录制片段、会话状态、归档成片
## Required files
- `.env`
- `docker-compose.yml`
- `deploy/nginx.te.hao.work.conf`
## Startup
```bash
cp .env.example .env
docker compose up -d --build
```
## nginx
`deploy/nginx.te.hao.work.conf` 放到宿主机 nginx 站点目录,确认:
- `ssl_certificate`
- `ssl_certificate_key`
- `proxy_pass http://127.0.0.1:3000` 对应前端与业务 API
- `proxy_pass http://127.0.0.1:8081` 对应媒体服务
启用后重载 nginx
```bash
nginx -t
systemctl reload nginx
```
## Health checks
- `curl http://127.0.0.1:3000/api/trpc/auth.me`
- `curl http://127.0.0.1:8081/media/health`
## Persistent data
媒体数据默认位于 Docker volume `media-data` 下,目录结构:
- `sessions/<session_id>/session.json`
- `sessions/<session_id>/segments/*.webm`
- `public/sessions/<session_id>/recording.webm`
- `public/sessions/<session_id>/recording.mp4`
## Rollback
1. 保留 `.env``media-data`
2. 回退 Git 版本
3. 重新执行 `docker compose up -d --build`
如果只需停止录制链路,可单独关闭 `media``worker`,主站业务仍可继续运行。