diff --git a/README.md b/README.md index 5434ec1..7fbedf3 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ pnpm exec playwright install chromium 1. 宿主机 nginx 处理 `80/443` 和 TLS 2. `docker compose up -d --build` 启动 `app + media + worker + db` 3. nginx 将 `/` 转发到宿主机 `127.0.0.1:3002 -> app:3000`,`/media/` 转发到 `127.0.0.1:8081 -> media:8081` +4. 如需绕过 nginx 直连调试,也可通过公网 4 位端口访问主站:`http://te.hao.work:8302/` 详细步骤见: diff --git a/docker-compose.yml b/docker-compose.yml index 97927ee..95e5625 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -49,6 +49,7 @@ services: NODE_ENV: production ports: - "127.0.0.1:3002:3000" + - "8302:3000" volumes: - app-data:/data/app depends_on: diff --git a/docs/deploy.md b/docs/deploy.md index 8442b37..a6cbb95 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -6,6 +6,7 @@ - `db` 容器:MySQL 8,数据持久化到 `db-data` - `migrate` 容器:一次性执行 Drizzle 迁移,成功后退出 - `app` 容器:Node 应用,端口 `3000` +- 宿主机公开调试端口:`8302 -> app:3000` - `media` 容器:Go 媒体服务,端口 `8081` - `worker` 容器:Go 媒体归档 worker,共享媒体卷 - `app-data` 卷:上传视频等本地文件存储 @@ -51,8 +52,14 @@ systemctl reload nginx ## Health checks - `curl http://127.0.0.1:3002/api/trpc/auth.me` +- `curl http://te.hao.work:8302/` - `curl http://127.0.0.1:8081/media/health` +## External access links + +- 主站 HTTPS:`https://te.hao.work/` +- 主站公网 4 位端口直连:`http://te.hao.work:8302/` + ## Persistent data 媒体数据默认位于 Docker volume `media-data` 下,目录结构: diff --git a/docs/verified-features.md b/docs/verified-features.md index 9e382e5..ab22127 100644 --- a/docs/verified-features.md +++ b/docs/verified-features.md @@ -13,6 +13,7 @@ | 项目 | 验证方式 | 状态 | |------|----------|------| | `https://te.hao.work/` HTTPS 访问 | `curl -I https://te.hao.work/` | 通过 | +| `http://te.hao.work:8302/` 4 位端口访问 | `curl -I http://te.hao.work:8302/` | 通过 | | 站点 TLS 证书 | Let’s Encrypt ECDSA 证书已签发并由宿主机 nginx 加载 | 通过 | | 生产首页、登录页、录制页浏览器打开 | Playwright 访问 `https://te.hao.work/`、`/login`、`/recorder` | 通过 | | 生产前端运行时异常检查 | Playwright `pageerror` / `console.error` 检查 | 通过 |