增加可选frpc内网穿透部署配置

- 在 Docker Compose 中新增 frpc 可选服务,默认不启动,仅在 --profile frpc 启用时运行。

- 新增 docker/frpc/frpc.toml 模板,按前端、后端 API/WebSocket、MinIO 三个端口提供 TCP 映射示例。

- 在 frpc.toml 中用 # XXXX 标注 frps 地址、端口、token 和远端映射端口等需要按环境修改的配置。

- 更新 README,补充内置 frpc 与 frpc/frps + NPM 公网域名部署流程、启动命令和日志查看命令。
This commit is contained in:
2026-05-07 22:23:41 +08:00
parent b5413066a0
commit 8b4aa609c8
3 changed files with 124 additions and 0 deletions

View File

@@ -250,6 +250,68 @@ seg-minio.example.com -> MinIO 图片/帧图/缩略图
内网部署机器 9000 -> 公网服务器本机 19000 -> NPM: seg-minio.example.com
```
### 可选:使用部署包内置 frpc
部署包已经包含可选 frpc 容器配置,默认不会启动。需要使用时,先编辑:
```text
docker/frpc/frpc.toml
```
文件中用 `# XXXX` 标出的地方需要按你的 frps 服务端配置修改:
```toml
# XXXX 公网 frps 服务器地址
serverAddr = "XX.XX.XX.XX"
# XXXX 公网 frps 服务端口,必须与 frps 的 bindPort 一致
serverPort = 7000
# XXXX 必须替换为 frps 服务端配置中的 token
auth.token = "XXXXX"
```
默认模板已经配置了三个 TCP 代理:
```text
seg-frontend: 内部 frontend:80 -> 远端 13000
seg-backend: 内部 backend:8000 -> 远端 18000
seg-minio: 内部 minio:9000 -> 远端 19000
```
frpc 容器和系统服务在同一个 Docker Compose 网络里,所以 `localIP` 推荐保持为 `frontend``backend``minio` 这些服务名;如果改成宿主机或其他内网 IP也可以按你的实际网络调整。
启用内置 frpc 的 CPU 版启动命令:
```bash
docker compose --profile frpc up -d --build
```
启用内置 frpc 的 GPU 版启动命令:
```bash
docker compose --profile frpc -f docker-compose.yml -f docker-compose.gpu.yml up -d --build
```
只重启 frpc
```bash
docker compose --profile frpc up -d frpc
```
查看 frpc 日志:
```bash
docker compose --profile frpc logs -f frpc
```
不带 `--profile frpc` 的普通启动命令不会启动 frpc
```bash
docker compose up -d
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d
```
NPM 中配置三个 Proxy Host
```text

View File

@@ -126,6 +126,23 @@ services:
backend:
condition: service_healthy
frpc:
image: snowdreamtech/frpc:latest
container_name: seg-frpc
restart: unless-stopped
profiles:
- frpc
command: ["-c", "/etc/frp/frpc.toml"]
volumes:
- ./docker/frpc/frpc.toml:/etc/frp/frpc.toml:ro
depends_on:
backend:
condition: service_healthy
frontend:
condition: service_started
minio:
condition: service_healthy
volumes:
postgres-data:
minio-data:

45
docker/frpc/frpc.toml Normal file
View File

@@ -0,0 +1,45 @@
# frpc template for Seg_Server_Docker.
# This file is not used by default. Enable it with the Docker Compose "frpc" profile
# after replacing every "# XXXX" placeholder below.
# 基础连接配置
# XXXX 公网 frps 服务器地址,例如 "1.2.3.4" 或 "frps.example.com"
serverAddr = "XX.XX.XX.XX"
# XXXX 公网 frps 服务端口,必须与 frps 的 bindPort 一致
serverPort = 7000
# 权限验证 - 必须与服务端一致
auth.method = "token"
# XXXX 必须替换为 frps 服务端配置中的 token
auth.token = "XXXXX"
# 传输配置优化
transport.poolCount = 5
transport.heartbeatTimeout = -1
# --- 映射前端访问端口 ---
# XXXX NPM 可反代公网服务器本机 remotePort 13000 到 seg.example.com
[[proxies]]
name = "seg-frontend"
type = "tcp"
localIP = "frontend"
localPort = 80
remotePort = 13000
# --- 映射后端 API + WebSocket 端口 ---
# XXXX NPM 可反代公网服务器本机 remotePort 18000 到 seg-api.example.com并开启 WebSocket Support
[[proxies]]
name = "seg-backend"
type = "tcp"
localIP = "backend"
localPort = 8000
remotePort = 18000
# --- 映射 MinIO 图片/帧图/缩略图端口 ---
# XXXX NPM 可反代公网服务器本机 remotePort 19000 到 seg-minio.example.com
[[proxies]]
name = "seg-minio"
type = "tcp"
localIP = "minio"
localPort = 9000
remotePort = 19000