mcpField
E
enter-services

enter-services

github.com/pollinationsクラウド・DevOps5.3k68 回インストール今日更新
リポジトリ

enter-services について

Pollinations の enter サービスと生成サービスを扱うためのリポジトリスキルです。エンジニア向けに環境、ステージングテスト、デプロイ手順、トークン管理の安全策を説明します。

主な機能

  1. 01本番環境とステージング環境の構成説明
  2. 02ステージングへのデプロイとテストの案内
  3. 03Worker のシークレットとトークンローテーションの説明
  4. 04本番デプロイの安全策の説明

活用シーン

  1. 01ステージングでのサービス変更テスト
  2. 02ステージング Worker のデプロイ
  3. 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.aigen.pollinations.ai Worker
ステージングstaging.enter.pollinations.aistaging.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 Production Deployment Safety」を参照してください。

ステージング環境へのデプロイは、Deploy / Cloudflare staging ワークフロー (workflow_dispatch:ブランチと service を選択)経由で行います。最初に migrate:staging を実行し、その後 deploy:staging を実行します。 Workers に secrets/staging.vars.json もプッシュするには、push_secrets に チェックを入れてください。新規または変更された値をマージする前に、 Secret Mutation Safety の承認(AGENTS.md)が必要です。同じ npm スクリプトは、 サービスごとにローカルでも実行できます。

cd enter.pollinations.ai
npm run deploy:staging   # staging only

Worker に設定されている内容は、wrangler secret list --env staging で確認できます。詳細: token-rotation.md。

ステージング環境でのテスト

  • テスト用トークン:enter.pollinations.ai/.testingtokens 内の ENTER_API_TOKEN_STAGING。認証に失敗した場合、デプロイを疑う前に enter.pollinations.ai で npm run check-tokens を実行してください。ファイルに変更がなくても、トークンの有効期限が切れることがあります。
  • ステージング環境でエージェントを呼び出す際のモデル ID は、本番環境と同じく owner/name です。
  • 負荷の低い読み取り専用の確認:wrangler d1 migrations list DB --remote --env staging、wrangler secret list --env staging、およびディスパッチのネームスペース一覧。

Wrangler の設定

wrangler.toml には環境設定が含まれています。

環境ルートサービス URL
productionenter.pollinations.aigen.pollinations.ai
stagingstaging.enter.pollinations.aistaging.gen.pollinations.ai
locallocalhost: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 では、所有者フィールドは userId ではなく referenceId です。型付けが緩いコードでは row.userId がコンパイルを通過しますが、実行時には createApiKey から誤解を招く「Unauthorized or invalid session」エラーが返されます。このテーブルを扱う新しいファイルは、本番環境でテストする前に tsc を実行してください。

注意事項

  • 本番環境はproductionブランチへのプッシュ時にデプロイされます
  • ステージング環境はDeploy / Cloudflare stagingワークフロー(手動実行)またはサービスごとのnpm run deploy:stagingでデプロイされます
  • 本番環境にマージする前に、必ずステージング環境でテストしてください
  • enter.pollinations.aiは認証と課金を処理し、生成リクエストはgen.pollinations.ai Workerが処理します

コメント