尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

用 Docker Compose 在群晖/飞牛 NAS 上部署 Cursor 文档 AI 大模型:TaoToken 统一 Key 接入 OpenAI API 的配置方案

发布时间:2026/9/24 17:30:44

资讯中心
01
ARTICLE

用 Docker Compose 在群晖/飞牛 NAS 上部署 Cursor 文档 AI 大模型:TaoToken 统一 Key 接入 OpenAI API 的配置方案

用 Docker Compose 在群晖/飞牛 NAS 上部署 Cursor 文档 AI 大模型:TaoToken 统一 Key 接入 OpenAI API 的配置方案
1. 为什么要在 NAS 上折腾 Cursor 文档 AI 大模型很多用群晖、飞牛 NAS 的朋友手里其实有一台 7×24 小时开机的“小服务器”但平时只拿来存照片、跑下载、做备份算力闲置得厉害。与此同时写代码时又离不开 AI 补全和对话Cursor 编辑器内置的 AI 确实好用可订阅费用对个人开发者来说不算便宜。于是就有了一个思路把 Cursor 官网文档页面里那个“询问 AI”的能力通过 Docker Compose 部署到 NAS 上转成标准的 OpenAI API 接口这样任何支持 OpenAI 格式的工具都能连过来用。这个方案的核心价值在于三点第一NAS 常年在线部署一次就能长期提供服务不用每次开电脑第二对外暴露的是标准 OpenAI APICherry Studio、Kilo Code、Continue 这类工具都能直接接入学习成本几乎为零第三通过 TaoToken 统一 Key 和 API 通道来管理调用入口把模型访问收敛到一个可控的网关后续换模型、加配额、看用量都方便。适合谁有群晖或飞牛 NAS、会一点 Docker、想低成本体验多模型对话的开发者。下面我把整套 docker-compose.yml、config.toml 骨架、环境变量和 curl 验证步骤完整写出来你可以直接复制跟做。2. TaoToken 前置准备统一 Key 与 API 通道在动手写 Compose 之前先把“入口”理清楚。这个项目本身是一个 OpenAI 兼容的服务端它需要一个上游模型通道来真正完成推理。我试过直接把各种 Key 散落在不同工具里时间一长根本记不清哪个工具用了哪个 Key所以更推荐用 TaoToken 做统一入口所有工具都指向同一个 API 地址Key 也只维护一份。你需要先拿到两样东西一个是 API Key一个是接入地址。Key 在控制台的 API Keys 页面创建地址统一用https://taotoken.net/api。注意这个地址是 API 根路径实际调用时拼上/v1/chat/completions就是完整的 OpenAI 兼容端点。如果你后面要长期跑编码类 Agent可以顺带了解下 Coding Plan它更适合高频、长会话的场景只是偶尔对话验证模型用模型对话页面就够。注意Key 只创建一次就妥善保存页面关闭后通常不再完整显示。不要把它写进会提交到 Git 的配置文件里用环境变量或.env文件隔离。这一步做完你手里应该有TAOTOKEN_API_KEY你的密钥和TAOTOKEN_BASE_URLhttps://taotoken.net/api。接下来所有配置都围绕这两个值展开。3. 可复制的 docker-compose.yml 与 config.toml 骨架群晖和飞牛 NAS 都自带 Docker群晖叫 Container ManagerCompose 的写法基本一致。先在 NAS 上建一个目录比如/volume1/docker/cursor-ai把下面两个文件放进去。3.1 docker-compose.ymlservices: cursor-ai: image: ghcr.io/jhhgiyv/cursorweb2api:latest container_name: cursor-ai restart: unless-stopped network_mode: bridge ports: - 8000:8000 env_file: - .env environment: - TZAsia/Shanghai - API_KEY${LOCAL_API_KEY} - FP${BROWSER_FP} - MODELSanthropic/claude-sonnet-4.5,google/gemini-2.5-flash,openai/gpt-5-nano - TIMEOUT60 - MAX_RETRIES2 - ENABLE_FUNCTION_CALLINGfalse - TRUNCATION_CONTINUEfalse - UPSTREAM_BASE_URL${TAOTOKEN_BASE_URL} - UPSTREAM_API_KEY${TAOTOKEN_API_KEY}这里的关键点API_KEY是你本地服务的鉴权密钥随便生成一串随机值别用默认的aaaUPSTREAM_BASE_URL和UPSTREAM_API_KEY指向 TaoToken让服务把请求转发到统一通道。MODELS用逗号分隔按你实际需要的模型填。3.2 .env 文件LOCAL_API_KEYsk-local-换成你的随机串 BROWSER_FP你的浏览器指纹base64 TAOTOKEN_BASE_URLhttps://taotoken.net/api TAOTOKEN_API_KEY你的TaoToken密钥3.3 config.toml 骨架有些工具比如部分 CLI 客户端习惯用 TOML 配置这里给一份骨架方便你对接[provider] name taotoken base_url https://taotoken.net/api/v1 api_key 你的TaoToken密钥 [model] default anthropic/claude-sonnet-4.5 fallback google/gemini-2.5-flash [request] timeout 60 max_retries 2 stream truebase_url记得带上/v1这是 OpenAI 兼容接口的惯例。default和fallback按你MODELS里列出的标识填。3.4 浏览器指纹怎么拿这个项目需要一个浏览器指纹作为环境变量。在浏览器控制台执行下面这段把输出的 base64 字符串填到.env的BROWSER_FPfunction getBrowserFingerprint() { const canvas document.createElement(canvas); const gl canvas.getContext(webgl) || canvas.getContext(experimental-webgl); let vendor , renderer ; if (gl) { const info gl.getExtension(WEBGL_debug_renderer_info); if (info) { vendor gl.getParameter(info.UNMASKED_VENDOR_WEBGL) || ; renderer gl.getParameter(info.UNMASKED_RENDERER_WEBGL) || ; } } const fp { UNMASKED_VENDOR_WEBGL: vendor, UNMASKED_RENDERER_WEBGL: renderer, userAgent: navigator.userAgent }; return btoa(JSON.stringify(fp)); } console.log(getBrowserFingerprint());拿到后粘贴进.env注意不要有多余换行。4. 启动服务并用 curl 验证 OpenAI API 调用文件准备好后在 NAS 的 SSH 里进入目录执行cd /volume1/docker/cursor-ai docker compose up -d docker compose logs -f cursor-ai看到服务监听 8000 端口、没有报错就说明起来了。接着用 curl 验证这一步是判断“到底通没通”的关键curl http://127.0.0.1:8000/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-local-换成你的随机串 \ -d { model: anthropic/claude-sonnet-4.5, messages: [{role: user, content: 你好请用一句话介绍你自己}], stream: false }如果返回 JSON 里带choices和message.content说明整条链路通了本地服务 → TaoToken 统一通道 → 模型返回。想测流式就把stream改成true会看到逐块返回的数据。局域网内其他设备把127.0.0.1换成 NAS 的 IP 即可比如http://192.168.1.10:8000/v1/chat/completions。在 Cherry Studio 或 Kilo Code 里接入时基础 URL 填http://NAS的IP:8000/v1Key 填你本地的LOCAL_API_KEY模型名填MODELS里的标识。这样 NAS 就成了你家里的 AI 网关手机、平板、笔记本都能连。5. 本篇常见错排查部署过程里最容易卡在几个地方我按出现频率列一下。容器起来但 curl 超时先docker compose logs看有没有上游连接错误。多半是UPSTREAM_BASE_URL写错注意不要漏掉/api也不要多加/v1转发逻辑里会拼。另外确认 NAS 能正常访问外网。返回 401 或鉴权失败检查两处 Key。本地请求头里的 Bearer 必须是LOCAL_API_KEY上游的TAOTOKEN_API_KEY要填对。两者别搞混一个是进门钥匙一个是出门通行证。模型名报 not foundMODELS里的标识必须和请求体里的model完全一致大小写、斜杠都不能差。改完MODELS要docker compose up -d重建容器才生效。指纹相关报错BROWSER_FP必须是合法 base64粘贴时别带引号或空格。如果换了浏览器或系统更新指纹可能失效重新生成一次即可。端口冲突群晖上 8000 可能被别的套件占用把ports左边改成18000:8000访问时用 18000。提示排障时优先看日志再逐段验证。先确认本地服务活着再确认上游通道通最后才怀疑模型名。这个顺序能省很多时间。6. 长期使用与接入建议跑通之后建议把 NAS 上的这个服务当成基础设施来维护。第一给容器配好restart: unless-stoppedNAS 重启后自动拉起第二.env文件权限收紧别让其他账户读到 Key第三定期docker compose pull更新镜像模型列表和兼容性会随项目迭代变化。如果你后面要把它接进编码工作流比如让 Agent 长时间跑任务建议走 Coding Plan 那条线配额和稳定性更适合高频场景只是日常问答和验证用模型对话就够了。所有接入细节和参数说明官方文档里写得更全遇到拿不准的配置先去接入文档核对一遍。把 Key 和地址统一到 TaoToken 之后你会发现换工具、加设备都只是改一个 base_url 的事NAS 这台“闲置算力”才算真正用起来了。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。