Railway

Deploy Inngest (with protected dashboard)

Inngest self-hosted with nginx proxy to password-protect the dashboard

Deploy Inngest (with protected dashboard)

Just deployed

/var/lib/postgresql/data

InngestRedis

redis:8.2.1

Just deployed

/data

Just deployed

inngest-nginx-basic-auth

shaezzy/inngest-nginx-basic-auth

Just deployed

Deploy and Host Inngest on Railway

Inngest is a durable execution platform that lets you write reliable background jobs, scheduled functions, and event-driven workflows in your existing codebase — with zero infrastructure to manage.

About Hosting Inngest

Self-hosting Inngest gives you full control over your execution environment and data. This template deploys Inngest alongside an nginx proxy that password-protects the Inngest dashboard, which would otherwise be not protected if public networking is used. All API traffic (event ingestion, function registration, run management) bypasses the password and is secured by Inngest's own event keys and signing keys, so your apps and SDKs continue to work normally.

Common Use Cases

  • Running background jobs and scheduled tasks in a self-hosted environment
  • Building event-driven workflows across multiple services
  • Replacing ad-hoc queues and cron jobs with reliable durable functions

Dependencies for Inngest Hosting

  • PostgreSQL — stores function run history and event data
  • Redis — powers the queue and run state

Deployment Dependencies

Implementation Details

Once deployed, configure the Inngest SDK in your app with the following environment variables:

# Point the SDK at Inngest — use private networking if your app is on Railway
INNGEST_BASE_URL=http://${{inngest.RAILWAY_PRIVATE_DOMAIN}}:${{inngest.INNGEST_PORT}}
# Required by the Inngest SDK to verify requests
INNGEST_SIGNING_KEY=${{inngest.INNGEST_SIGNING_KEY}}
INNGEST_EVENT_KEY=${{inngest.INNGEST_EVENT_KEY}}

Setup

INNGEST_SERVE_ORIGIN

The URL of your app's Inngest serve endpoint — the route where you mount the Inngest handler (typically /api/inngest). Inngest calls this URL to trigger your functions. If your app is deployed on Railway, use private networking to keep traffic internal and reduce costs:

http://${{your-app.RAILWAY_PRIVATE_DOMAIN}}:${{your-app.PORT}}/api/inngest

Alternatively, you can skip this variable and register your app manually through the Inngest dashboard after deploying — navigate to the Apps section and add your serve URL there.

DASHBOARD_USERNAME and DASHBOARD_PASSWORD

Auto-generated credentials for the Inngest dashboard. Find them in the inngest-nginx-basic-auth service variables and update them if desired before deploying.

Accessing Inngest from your app

Set INNGEST_BASE_URL in your app to point at Inngest. Use private networking wherever possible to reduce costs. Private networking (recommended if your app is on Railway):

http://${{inngest.RAILWAY_PRIVATE_DOMAIN}}:${{inngest.INNGEST_PORT}}

e.g. http://inngest.railway.internal:8288 Public networking (for apps outside Railway):

https://inngest-nginx-basic-auth-template.up.railway.app

You can reference the event key and signing key directly from the Inngest service variables:

INNGEST_SIGNING_KEY=${{inngest.INNGEST_SIGNING_KEY}}
INNGEST_EVENT_KEY=${{inngest.INNGEST_EVENT_KEY}}

The dashboard is always available at your nginx public URL (e.g. https://inngest-nginx-basic-auth-template.up.railway.app) behind the username and password you configured.

Why Deploy Inngest on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it. By deploying Inngest on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
caring-vibrancy
Deploy and Host caring-vibrancy with Railway

View Template
Flask WebSocket Chat
Single file, realtime multi-user websocket chat using flask-socketio

Clement Ochieng
View Template
all-star-fashion-template
Deploy and Host all-star-fashion-template with Railway

Mai Thành Duy An