关键点:
PUBLIC_ORIGIN必须设置为最终用户访问的公网地址(例如https://teable.example.com,末尾不要带/)- 我们强烈建议 默认使用 HTTPS + 证书(生产环境不要把 Teable 裸奔在 HTTP 上)
- 如果使用了 WebSocket(实时协作/通知等场景),反向代理需要透传
Upgrade/Connection相关头
推荐:HTTPS(默认/生产必选)
我们建议把 HTTPS 当作默认方案:对外只开放 443(80 仅用于跳转到 443,或用于 ACME 签发证书挑战)。 下面是一个“推荐生产写法”的完整示例(HTTPS + WebSocket + HTTP→HTTPS 跳转)。请按你的证书路径与域名替换:证书获取/续期
- Let’s Encrypt(推荐):可用 Certbot / acme.sh 自动签发与续期
- 面板类工具:如 Nginx Proxy Manager 也能在 UI 中申请并自动续期证书
示例 1:最简 location /(适合快速上手)
说明:这是 仅 HTTP 的简化示例,适合内网/临时验证;生产环境请优先使用上面的 HTTPS 推荐配置。如果你想快速跑通 HTTP,可以用下面这个最小可用示例(包含 WebSocket 必要配置):
Docker 场景提示
- Nginx 跑在宿主机,Teable 跑在容器里:一般用
proxy_pass http://127.0.0.1:3000;(前提是你把3000:3000暴露到宿主机) - Nginx 和 Teable 都在同一个 Docker 网络:可以用容器名/服务名直连,例如
proxy_pass http://teable:3000;
常见坑
- 不要做 path rewrite:例如
rewrite/rewrite-target之类可能破坏 Teable 内部路由(除非你非常清楚自己在做什么)。 PUBLIC_ORIGIN一定要对:它影响导入/上传、跳转链接、回调等生成的完整 URL。
可视化管理:Nginx Proxy Manager(NPM)
如果你不想手写 Nginx 配置,可以用图形化工具来管理域名、证书和反向代理,例如:- Nginx Proxy Manager(NPM):常见于 Docker 场景,UI 里创建 Proxy Host 即可
- 创建 Proxy Host:
Domain Names填teable.example.com,Scheme选http,Forward Hostname / IP填127.0.0.1(或 Docker 网络里的teable),Forward Port填3000 - 开启 WebSocket 支持:在 Proxy Host 的高级/选项里启用 WebSocket(不同版本 UI 文案略有差异)
- 签发/绑定证书:在 SSL 相关页面选择/申请 Let’s Encrypt,并勾选强制 HTTPS(可选)
- 别忘了 Teable 的环境变量:把
PUBLIC_ORIGIN设置为最终访问地址(例如https://teable.example.com)