Files

Inngest

English | 中文

Inngest is an open-source durable workflow engine for building reliable applications. It provides event-driven functions with automatic retries, scheduling, fan-out, and a built-in dashboard for monitoring and debugging.

Services

  • inngest: Inngest server with API, Dashboard, and Connect WebSocket gateway (ports 8288, 8289)
  • postgres: PostgreSQL database for persistence
  • redis: Redis for queue and run state management

Quick Start

# Copy environment file
cp .env.example .env

# Start all services
docker compose up -d

After startup, access the Inngest Dashboard at http://localhost:8288.

Environment Variables

Variable Name Description Default Value
GLOBAL_REGISTRY Global registry prefix for all images ""
INNGEST_VERSION Inngest image version v1.16.3
INNGEST_EVENT_KEY Event key for authenticating event submissions (hex) deadbeef...
INNGEST_SIGNING_KEY Signing key for server-app communication (hex) 01234567...
INNGEST_LOG_LEVEL Log level (trace, debug, info, warn, error) info
INNGEST_PORT_OVERRIDE Host port for API and Dashboard 8288
INNGEST_GATEWAY_PORT_OVERRIDE Host port for Connect WebSocket gateway 8289
INNGEST_PG_VERSION PostgreSQL image version 17.6-alpine
INNGEST_PG_USER PostgreSQL username inngest
INNGEST_PG_PASSWORD PostgreSQL password inngest
INNGEST_PG_DB PostgreSQL database name inngest
INNGEST_REDIS_VERSION Redis image version 7.4-alpine
TZ Timezone UTC
INNGEST_CPU_LIMIT CPU limit for Inngest 1.00
INNGEST_CPU_RESERVATION CPU reservation for Inngest 0.50
INNGEST_MEMORY_LIMIT Memory limit for Inngest 512M
INNGEST_MEMORY_RESERVATION Memory reservation for Inngest 256M
INNGEST_PG_CPU_LIMIT CPU limit for PostgreSQL 0.50
INNGEST_PG_CPU_RESERVATION CPU reservation for PostgreSQL 0.25
INNGEST_PG_MEMORY_LIMIT Memory limit for PostgreSQL 256M
INNGEST_PG_MEMORY_RESERVATION Memory reservation for PostgreSQL 128M
INNGEST_REDIS_CPU_LIMIT CPU limit for Redis 0.50
INNGEST_REDIS_CPU_RESERVATION CPU reservation for Redis 0.25
INNGEST_REDIS_MEMORY_LIMIT Memory limit for Redis 128M
INNGEST_REDIS_MEMORY_RESERVATION Memory reservation for Redis 64M

Please modify the .env file as needed for your use case.

Volumes

  • inngest_pg_data: Named volume for PostgreSQL data
  • inngest_redis_data: Named volume for Redis data

Configuring Inngest SDKs

To connect your application to a self-hosted Inngest server, set the following environment variables in your app:

INNGEST_EVENT_KEY=<your_event_key>
INNGEST_SIGNING_KEY=<your_signing_key>
INNGEST_DEV=0
INNGEST_BASE_URL=http://<inngest_host>:8288

For example, with a Node.js app:

INNGEST_EVENT_KEY=deadbeefcafebabe0123456789abcdef \
INNGEST_SIGNING_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \
INNGEST_DEV=0 \
INNGEST_BASE_URL=http://localhost:8288 \
node ./server.js

Security Notes

  • Change default keys before production use. The event key and signing key must be valid hex strings with an even number of characters. Generate secure keys with openssl rand -hex 32.
  • Change the default PostgreSQL password in .env before production deployment.
  • The Inngest image supports both amd64 and arm64 architectures.
  • Consider using TLS/SSL termination (e.g., via a reverse proxy) for production deployments.

References

License

Inngest is source-available under the Elastic License 2.0 (ELv2) with some components under Apache-2.0.