你基本会落在下面三种形态之一:
无论你选哪种形态,下面这组参数是最核心的:
| Flag / Env | 说明 |
|---|---|
--bind / PROXY_BIND |
服务监听地址 |
--port / PROXY_PORT |
服务监听端口 |
--db-path / PROXY_DB_PATH |
SQLite 数据库路径 |
--static-dir / WEB_STATIC_DIR |
前端静态资源目录 |
--upstream / TAVILY_UPSTREAM |
Tavily MCP 上游地址 |
TAVILY_USAGE_BASE |
Tavily HTTP / usage 上游基地址 |
然后你还需要再补一类“管理员访问策略”:
DEV_OPEN_ADMIN=true:只适合本地/临时验证仓库根目录自带的 docker-compose.yml
会直接启动 Hikari:
这个 compose 文件已经帮你做了:
0.0.0.0:8787tavily-hikari-data volume/srv/app/data/tavily_proxy.dbghcr.io/ivanli-cn/tavily-hikari:latest但它不会帮你自动提供管理员入口,所以第一次上线前还要补一层:
DEV_OPEN_ADMIN=trueexamples/forwardauth-caddy生产环境通常建议把 Tavily Hikari 部署在可信网关后面,由网关负责 TLS 终止与管理员身份头注入。
仓库现成样例在:
直接启动:
这个示例会拉起:
auth-mock,负责模拟 ForwardAuthupstream-mock,负责模拟 Tavily 上游默认行为:
GET /health 公开可访问Remote-Email、Remote-Name 转发给 HikariRemote-Email=admin@example.com 视为管理员如果你想先验证网关链路,而不是马上连真实 Tavily 与真实 SSO,这个示例就是最短路径。
如果你没有独立的 ForwardAuth 网关,可以直接开启内置管理员登录。
推荐做法:
部署要点:
ADMIN_AUTH_BUILTIN_PASSWORD_HASH,不要长期保留明文密码Secure/health 返回 200/admin 或调通 /api/keys/api/tavily/search 或 /mcp需要长期保留的数据核心就是 SQLite 文件:
/srv/app/data/tavily_proxy.dbHikari 支持在转发上游时清洗或重写敏感请求头。
它会重点处理这些事:
Forwarded、X-Forwarded-*、Via、CF-* 等链路暴露头Origin、Refererforwarded_headers 与 dropped_headers,方便排障设计背景与更细的匿名策略说明,见:
典型暴露面包括:
/admin 管理端/api/tavily/* 给 HTTP 客户端用/mcp 给 MCP 流量用主运行时产物是容器镜像:
ghcr.io/ivanli-cn/tavily-hikari:<tag>
它内含前端静态资源。公开 docs-site 与 Storybook 则通过 GitHub Pages 单独发布。
如果你部署后卡在管理员入口、数据库持久化或上游 502,继续看 FAQ 与排障。