5.1 KiB
5.1 KiB
Inngest
Inngest 是一个开源的持久化工作流引擎,用于构建可靠的应用程序。它提供事件驱动的函数,支持自动重试、调度、扇出以及内置的监控和调试仪表板。
服务
inngest:Inngest 服务器,包含 API、仪表板和 Connect WebSocket 网关(端口 8288、8289)postgres:PostgreSQL 数据库,用于数据持久化redis:Redis,用于队列和运行状态管理
快速开始
# 复制环境配置文件
copy .env.example .env
# 启动所有服务
docker compose up -d
启动后,通过 http://localhost:8288 访问 Inngest 仪表板。
环境变量
| 变量名 | 说明 | 默认值 |
|---|---|---|
GLOBAL_REGISTRY |
全局镜像仓库前缀 | "" |
INNGEST_VERSION |
Inngest 镜像版本 | v1.16.3 |
INNGEST_EVENT_KEY |
事件提交认证密钥(十六进制字符串) | deadbeef... |
INNGEST_SIGNING_KEY |
服务器与应用间的签名密钥(十六进制字符串) | 01234567... |
INNGEST_LOG_LEVEL |
日志级别(trace、debug、info、warn、error) | info |
INNGEST_PORT_OVERRIDE |
API 和仪表板的主机端口 | 8288 |
INNGEST_GATEWAY_PORT_OVERRIDE |
Connect WebSocket 网关的主机端口 | 8289 |
INNGEST_PG_VERSION |
PostgreSQL 镜像版本 | 17.6-alpine |
INNGEST_PG_USER |
PostgreSQL 用户名 | inngest |
INNGEST_PG_PASSWORD |
PostgreSQL 密码 | inngest |
INNGEST_PG_DB |
PostgreSQL 数据库名 | inngest |
INNGEST_REDIS_VERSION |
Redis 镜像版本 | 7.4-alpine |
TZ |
时区 | UTC |
INNGEST_CPU_LIMIT |
Inngest CPU 限制 | 1.00 |
INNGEST_CPU_RESERVATION |
Inngest CPU 预留 | 0.50 |
INNGEST_MEMORY_LIMIT |
Inngest 内存限制 | 512M |
INNGEST_MEMORY_RESERVATION |
Inngest 内存预留 | 256M |
INNGEST_PG_CPU_LIMIT |
PostgreSQL CPU 限制 | 0.50 |
INNGEST_PG_CPU_RESERVATION |
PostgreSQL CPU 预留 | 0.25 |
INNGEST_PG_MEMORY_LIMIT |
PostgreSQL 内存限制 | 256M |
INNGEST_PG_MEMORY_RESERVATION |
PostgreSQL 内存预留 | 128M |
INNGEST_REDIS_CPU_LIMIT |
Redis CPU 限制 | 0.50 |
INNGEST_REDIS_CPU_RESERVATION |
Redis CPU 预留 | 0.25 |
INNGEST_REDIS_MEMORY_LIMIT |
Redis 内存限制 | 128M |
INNGEST_REDIS_MEMORY_RESERVATION |
Redis 内存预留 | 64M |
请根据实际需求修改 .env 文件。
卷
inngest_pg_data:用于存储 PostgreSQL 数据的命名卷inngest_redis_data:用于存储 Redis 数据的命名卷
配置 Inngest SDK
要将你的应用连接到自托管的 Inngest 服务器,请在应用中设置以下环境变量:
INNGEST_EVENT_KEY=<你的事件密钥>
INNGEST_SIGNING_KEY=<你的签名密钥>
INNGEST_DEV=0
INNGEST_BASE_URL=http://<inngest_host>:8288
例如,对于 Node.js 应用:
INNGEST_EVENT_KEY=deadbeefcafebabe0123456789abcdef \
INNGEST_SIGNING_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \
INNGEST_DEV=0 \
INNGEST_BASE_URL=http://localhost:8288 \
node ./server.js
安全提示
- 生产环境使用前请务必更改默认密钥。 事件密钥和签名密钥必须是偶数位的有效十六进制字符串。可使用
openssl rand -hex 32生成安全密钥。 - 生产环境部署前请在
.env中更改默认的 PostgreSQL 密码。 - Inngest 镜像支持
amd64和arm64架构。 - 生产环境建议使用 TLS/SSL 终止(例如通过反向代理)。
参考链接
许可证
Inngest 采用 Elastic License 2.0(ELv2) 发布,部分组件采用 Apache-2.0 许可。