セルフホスト型 Inngest — 信頼性の高いバックグラウンドジョブと AI ワークフローのための永続実行エンジン。PostgreSQL と Redis 付き。
Zeabur
Zeabur
ZeaburInngest はオープンソースの永続実行エンジンで、信頼性の高いバックグラウンドジョブ、スケジュール関数、AI ワークフローをリトライ・並行制御・可観測性付きで構築できます。
このテンプレートは PostgreSQL(状態保存)と Redis(キューとキャッシュ)を含むセルフホスト型 Inngest インスタンスをワンクリックでデプロイします。
| サービス | ポート | 用途 |
|---|---|---|
| Inngest Dashboard & API | 8288 (HTTP) | UI、イベント受信、REST API |
| Inngest Connect Gateway | 8289 (HTTP/WSS) | SDK ワーカー用 WebSocket ゲートウェイ |
| PostgreSQL | 5432 | 永続状態ストレージ |
| Redis | 6379 | キューとキャッシュ |
2つの16進数文字列が必要です(偶数桁、0-9 と a-f のみ):
openssl rand -hex 16
1つを Event Key、もう1つを Signing Key として使用してください。
Inngest self-hosted は設計上、Dashboard UI や GraphQL API に認証を適用しません。ソースコードは SDK 関連エンドポイントにのみ signing key 検証を適用します:
| エンドポイント | 保護 |
|---|---|
| Dashboard UI | ❌ 公開 |
GraphQL API(/v0/gql) | ❌ 公開 — 誰でもすべての app・関数・イベントを照会可能 |
イベント送信(/e/*) | ✅ Event Key が必要 |
SDK Sync(/fn/register) | ✅ Signing Key が必要 |
| Connect WebSocket | ✅ Signing Key が必要 |
推奨: Dashboardドメインを公開しないでください。VPN、IPホワイトリスト、またはHTTP Basic Auth プロキシの後ろに配置してください。SDK ワーカーの接続のためにConnect Gatewayドメイン(ポート8289)は公開が必要です。
const inngest = new Inngest({
id: "my-app",
baseUrl: "https://YOUR_DOMAIN",
eventKey: "YOUR_EVENT_KEY",
signingKey: "YOUR_SIGNING_KEY",
});
Connect モード(WebSocket ワーカー)の場合は、Connect ドメインを gatewayUrl に指定してください:
// ⚠️ `triggers`(複数配列)を使用してください。`trigger`(単数)は使用しないでください
const myFn = inngest.createFunction(
{ id: "my-fn", triggers: [{ event: "my/event" }] },
async ({ event, step }) => { /* ... */ }
);
await connect({
apps: [{ client: inngest, functions: [myFn] }],
gatewayUrl: "wss://YOUR_CONNECT_DOMAIN/v0/connect",
});
注意: 関数定義には必ず
triggers: [...](複数配列)を使用してください。trigger:(単数)を使用するとトリガーが空になり、関数が実行されません。
Inngest は Apache 2.0 ライセンスでオープンソース公開されています。