61 行
1.4 KiB
Markdown
61 行
1.4 KiB
Markdown
# 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`,主站业务仍可继续运行。
|