关于 enter-services
用于维护 Pollinations enter 和生成服务的仓库技能,面向工程师说明环境、暂存环境测试、部署流程和令牌管理安全要求。
主要功能
- 01说明生产与暂存环境架构
- 02指导暂存环境部署与测试
- 03解释 Worker 密钥和令牌轮换
- 04介绍生产部署安全要求
适用场景
- 01在暂存环境测试服务变更
- 02部署暂存环境 Worker
- 03检查环境配置和密钥
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ pollinations/ pollinations --skill enter-services安装后在 Claude Code 中输入/enter-services确认已加载。
附带文件.gitignoretoken-rotation.md
详细介绍
要求
使用此技能之前,请确保具备以下条件:
- sops:
brew install sops(用于解密机密) - Wrangler:
npm install -g wrangler - Node.js:
brew install node
必须在 pollinations 仓库根目录运行。
架构概览
| 环境 | 网关(Cloudflare Worker) | 生成 |
|---|---|---|
| 生产环境 | enter.pollinations.ai | gen.pollinations.ai Worker |
| 预发布环境 | staging.enter.pollinations.ai | staging.gen.pollinations.ai Worker |
原来的 enter-services / enter-services-staging EC2 主机
(text-pollinations.service、image-pollinations.service)已停用;
文本和图像生成现在都在 gen.pollinations.ai Worker 内运行。原先运行在
enter-services 上的 Discord 机器人现已迁移至 monitoring-agents
EC2 主机——请参阅 apps/discord-bot-family/README.md 和
operations/infrastructure/gpu/GPU_INSTANCES.md。
部署 Cloudflare Worker(enter.pollinations.ai)
生产环境只能通过 GitHub Actions 部署(从 production 分支触发
Deploy / Cloudflare production),切勿在本地机器上运行
wrangler deploy --env production。请参阅 AGENTS.md
中的“Cloudflare 生产环境部署安全”。
预发布环境通过 Deploy / Cloudflare staging 工作流部署
(workflow_dispatch:选择分支和 service)。该工作流会先运行
migrate:staging,然后运行 deploy:staging。勾选 push_secrets,还可将
secrets/staging.vars.json 推送至 Workers;新增或更改的值必须先通过
Secret Mutation Safety 审批(见 AGENTS.md),才能合并。按服务执行时,
同样的 npm 脚本也可在本地运行:
cd enter.pollinations.ai
npm run deploy:staging # staging only
运行 wrangler secret list --env staging,查看 Worker 当前的配置。详情:
token-rotation.md。
在预发布环境测试
- 测试令牌:
enter.pollinations.ai/.testingtokens中的ENTER_API_TOKEN_STAGING。如果身份验证失败,在归咎于部署之前,先在enter.pollinations.ai中运行npm run check-tokens;令牌可能会过期,即使文件没有变化。 - 在预发布环境中,通过
owner/name模型 ID 调用 Agent,与生产环境相同。 - 低成本只读检查:
wrangler d1 migrations list DB --remote --env staging、wrangler secret list --env staging和 dispatch 命名空间列表。
Wrangler 配置
wrangler.toml 包含环境配置:
| 环境 | 路由 | 服务 URL |
|---|---|---|
production | enter.pollinations.ai | gen.pollinations.ai |
staging | staging.enter.pollinations.ai | staging.gen.pollinations.ai |
local | localhost:3000 | 本地开发 |
令牌轮换
内部信任边界令牌(PLN_ENTER_TOKEN、PLN_GPU_TOKEN、Tinybird
令牌、SOPS 接收方):请参阅 token-rotation.md,了解清单、
轮换机制、部署路径和回滚方式。
OAuth 客户端说明
这些是构建针对 enter 的第三方 OAuth 客户端时记录的说明,均注明了日期。 依赖这些说明前,请先检查当前源码。
- Open WebUI 0.11.x(2026-09): 仅在距离
expires_at不足 5 分钟时刷新令牌, 不会因模型调用返回 401 而刷新。刷新失败会删除其oauth_session行,但用户仍保持登录状态,因此对用户而言,刷新失败和 API 密钥被撤销看起来没有区别(下次模型调用时返回 401)。若要实现自我恢复:设置较短的expires_in,以触发刷新,并对每个仍有效的账户都从刷新端点返回 200。 apikey表: 在shared/db/better-auth.ts中,所有者字段是referenceId,而不是userId。在类型检查较宽松的代码中,row.userId可以通过编译,但运行时会在createApiKey中失败,并返回具有误导性的“Unauthorized or invalid session”。测试线上环境之前,请对新增且涉及此表的文件运行tsc。
说明
- 生产环境会在推送到
production分支时部署 - 预发布环境通过
Deploy / Cloudflare staging工作流(手动触发)部署,也可以通过各服务的npm run deploy:staging部署 - 合并到生产环境前,务必先在预发布环境进行测试
enter.pollinations.ai处理身份验证和计费;生成请求由gen.pollinations.aiWorker 提供服务