Deploy Novu | Open-Source Notifications Infrastructure, Knock & OneSignal Alternative
Railway

Deploy Novu | Open-Source Notifications Infrastructure, Knock & OneSignal Alternative

Self Host Novu. Email, SMS, push, in-app, Slack, Teams & more channels

Deploy Novu | Open-Source Notifications Infrastructure, Knock & OneSignal Alternative

Just deployed

MongoDB

mongo:8.0

Just deployed

/data/db

Just deployed

Just deployed

Just deployed

/data

Just deployed

Novu logo

Deploy and Host Novu on Railway

Deploy Novu on Railway to get a fully self-hosted notification infrastructure with a unified API for email, SMS, push, in-app, and chat notifications. Self-host Novu on Railway and own your notification data while integrating with providers like SendGrid, Twilio, Firebase Cloud Messaging, Slack, and Microsoft Teams.

This Railway template pre-configures six services — Novu API (ghcr.io/novuhq/novu/api:3.15.0), Novu Worker, Novu WebSocket server, Novu Dashboard, MongoDB for data persistence, and Redis for queue management and caching — all wired together with proper cross-service references so you can start building notification workflows immediately.

Novu Railway architecture

Getting Started with Novu on Railway

After deployment completes, open the Novu Dashboard URL in your browser. You'll be prompted to create your first account with an email and password (social login is not available in self-hosted mode). Once signed in, create an organization and you'll land on the main dashboard.

Navigate to Integrations in the sidebar to connect your first delivery provider — for example, add your SendGrid API key for email or Twilio credentials for SMS. Then head to Workflows to create your first notification workflow. Select a trigger event, add channel steps (email, in-app, SMS, push, or chat), and configure the content template for each.

Test your workflow by triggering it via the API or using the built-in test panel. The Worker service processes the notification queue in the background while the WebSocket server delivers real-time in-app notifications to connected clients.

Novu dashboard screenshot

About Hosting Novu

Novu is an open-source notification infrastructure platform (MIT license) that provides a unified API and visual dashboard for managing multi-channel notifications. It solves the problem of building and maintaining notification systems from scratch — routing logic, template management, subscriber preferences, delivery tracking, and retry handling.

Key features:

  • Multi-channel delivery — email, SMS, push, in-app inbox, Slack, Teams, Discord, WhatsApp
  • Visual workflow editor — drag-and-drop notification flow builder with conditions, delays, and digest
  • In-app notification center — embeddable React/Angular/Vue inbox component
  • Subscriber preference management — users control which channels they receive notifications on
  • Content management — template editor with variable interpolation and i18n support
  • Delivery observability — track notification status, delivery rates, and failures

The architecture consists of an API server handling REST endpoints, a Worker service processing the notification queue asynchronously, a WebSocket server for real-time in-app delivery, and a Dashboard SPA for visual management.

Why Deploy Novu on Railway

  • One-click deploy with MongoDB, Redis, and all Novu services pre-wired
  • Full data ownership — notifications, templates, and subscriber data stay on your infrastructure
  • No per-notification pricing — pay only for Railway compute, not per message sent
  • Scale Worker replicas independently for high-throughput notification processing
  • Private networking between services for secure internal communication

Common Use Cases for Self-Hosted Novu

  • SaaS product notifications — transactional emails, in-app alerts, and digest summaries for your application users
  • DevOps alerting — route infrastructure alerts to Slack, email, and PagerDuty with priority-based workflows
  • E-commerce order updates — order confirmation, shipping, and delivery notifications across email and SMS
  • Multi-tenant platforms — isolated notification workflows per tenant with subscriber preference management

Dependencies for Novu on Railway

  • Novu APIghcr.io/novuhq/novu/api:3.15.0 — REST API server
  • Novu Workerghcr.io/novuhq/novu/worker:3.15.0 — background job processor
  • Novu WSghcr.io/novuhq/novu/ws:3.15.0 — WebSocket server for real-time delivery
  • Novu Dashboardghcr.io/novuhq/novu/dashboard:3.15.0 — web management UI
  • MongoDBmongo:8.0 — primary data store (Railway-managed)
  • Redisredis:8.2.1 — queue management and caching (Railway-managed)

Environment Variables Reference

VariableServiceDescription
JWT_SECRETAPI, WSSigning key for authentication tokens
STORE_ENCRYPTION_KEYAPI, WorkerEncrypts provider credentials (32 chars)
NOVU_SECRET_KEYAPIInternal API secret
MONGO_URLAPI, Worker, WSMongoDB connection string
REDIS_HOSTAPI, Worker, WSRedis hostname for queues and cache
VITE_API_HOSTNAMEDashboardAPI URL for frontend requests
VITE_WEBSOCKET_HOSTNAMEDashboardWebSocket URL for real-time updates
STEP_RESOLVER_DISPATCH_URLAPIStep resolver callback URL

Deployment Dependencies

Hardware Requirements for Self-Hosting Novu

ResourceMinimumRecommended
CPU2 vCPU4 vCPU
RAM4 GB (all services combined)8 GB
Storage10 GB (MongoDB data)20 GB
RuntimeDocker 20+Docker 24+ with Compose v2

Self-Hosting Novu with Docker Compose

Clone the repository and start with Docker Compose:

git clone https://github.com/novuhq/novu.git
cd novu/docker/community
cp .env.example .env
# Edit .env — set JWT_SECRET, STORE_ENCRYPTION_KEY, NOVU_SECRET_KEY
docker compose up -d

Or run individual services with Docker:

docker run -d --name novu-api \
  -e NODE_ENV=production \
  -e PORT=3000 \
  -e JWT_SECRET=$(openssl rand -hex 32) \
  -e STORE_ENCRYPTION_KEY=$(openssl rand -hex 16) \
  -e MONGO_URL=mongodb://user:pass@mongo:27017/novu-db?authSource=admin \
  -e REDIS_HOST=redis \
  -e REDIS_PORT=6379 \
  -e IS_SELF_HOSTED=true \
  -p 3000:3000 \
  ghcr.io/novuhq/novu/api:3.15.0

How Much Does Novu Cost to Self-Host?

Novu is fully open-source under the MIT license. Self-hosting is free — you pay only for infrastructure. On Railway, expect approximately $5–15/month for a low-traffic deployment across all six services. Novu Cloud offers managed hosting starting at $30/month for 30k notification runs if you prefer not to self-host. Enterprise features like SAML SSO and audit logs require a commercial license.

Novu vs Knock vs OneSignal

FeatureNovuKnockOneSignal
Open sourceYes (MIT)NoNo
Self-hostingYesNoNo
Multi-channelEmail, SMS, Push, In-App, ChatEmail, SMS, Push, In-App, ChatPush, Email, SMS
Visual workflow editorYesYesLimited
In-app inbox componentYes (React, Angular, Vue)YesNo
PricingFree (self-host) / $30/mo cloudFree tier, usage-basedFree tier, usage-based

Novu is the only fully open-source option with self-hosting support, making it ideal for teams that need data ownership or have compliance requirements.

FAQ

What is Novu and why self-host it? Novu is an open-source notification infrastructure platform that provides a unified API for sending notifications across email, SMS, push, in-app, and chat channels. Self-hosting gives you full control over notification data, no per-message pricing, and the ability to customize the platform.

What does this Railway template deploy for Novu? This template deploys six services: the Novu API server (REST endpoints), a background Worker (queue processing), a WebSocket server (real-time in-app notifications), the Dashboard web UI, MongoDB for data storage, and Redis for queuing and caching. All services are pre-configured with cross-service references.

Why does Novu need MongoDB and Redis on Railway? MongoDB stores all persistent data — notification templates, subscriber profiles, workflow definitions, and delivery logs. Redis handles the notification processing queue (ensuring reliable async delivery) and provides caching for frequently accessed data like workflow configurations.

How do I connect email providers like SendGrid to self-hosted Novu? After deploying, open the Dashboard, navigate to Integrations, and add your provider credentials (e.g., SendGrid API key, Twilio SID/token). Novu supports 50+ providers across email, SMS, push, and chat channels. No code changes needed — configure everything through the UI.

Can I scale Novu Worker replicas independently on Railway? Yes. The Worker service processes notifications asynchronously from the Redis queue. You can increase its replica count in Railway's service settings without affecting the API or Dashboard. This is useful for high-throughput notification workloads.

Does self-hosted Novu support the in-app inbox component? Yes. The WebSocket server (Novu-WS) handles real-time delivery to the embeddable inbox component. Install @novu/react (or Angular/Vue equivalent) in your frontend app and connect it to your self-hosted WS endpoint.


Template Content

More templates in this category

View Template
N8N Main + Worker
Deploy and Host N8N with Inactive worker.

jakemerson
View Template
Postgres Backup
Cron-based PostgreSQL backup to bucket storage

Railway Templates
View Template
Prefect [Updated Apr ’26]
Prefect [Apr ’26] (ETL & Automation alternative to Airflow) Self Host

shinyduo