
Deploy Novu on Your Own Server
Open Source Notification Infrastructure For Developers
Want to deploy Novu on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.
What is Novu?
Novu is a fully functional real-time notification center for your web and react apps. The only open-source notifications infrastructure that manages multi-channel content, scheduled notifications, digest engine, user preferences, and delivers Email, SMS, Push and Chat notifications using a single API.
Self-Host Novu
Follow these steps to deploy on your own server.
Install Docker
Skip this step if Docker is already installed on your server.
curl -fsSL https://get.docker.com | sh
Configure
Customize the settings below. Defaults work for most cases.
Application
Redis
MongoDB
General
Security
Privacy
API
Networking
S3
Deploy
Copy the configuration and run it on your server.
services:
novu:
image: ghcr.io/novuhq/novu/web:0.8.0
environment:
REACT_APP_API_URL: http://novu-api.your-domain.com
REACT_APP_DOCKER_HOSTED_ENV: "true"
REACT_APP_ENVIRONMENT: prod
REACT_APP_WIDGET_EMBED_PATH: http://novu-embed.your-domain.com/embed.umd.min.js
depends_on:
- novu-api
novu-api:
image: ghcr.io/novuhq/novu/api:0.8.0
environment:
API_ROOT_URL: http://novu-api.your-domain.com
AWS_ACCESS_KEY_ID: test
AWS_SECRET_ACCESS_KEY: test
DISABLE_USER_REGISTRATION: "false"
FRONT_BASE_URL: http://novu.your-domain.com
JWT_SECRET: 67852d50df15d7411f46ac2628d78bf2
MONGO_URL: mongodb://novu-db/novu
NODE_ENV: prod
PORT: "3000"
REDIS_DB_INDEX: "2"
REDIS_HOST: novu-cache
REDIS_PORT: "6379"
S3_BUCKET_NAME: novu-local
S3_LOCAL_STACK: http://localhost:4566
S3_REGION: us-east-1
SENTRY_DSN: ""
STORE_ENCRYPTION_KEY: 169583bb25ec0498b712868b8e364fad
depends_on:
- novu-db
- novu-cache
novu-cache:
image: redis:7.0.5
novu-db:
image: mongo:6.0.2
environment:
PGID: "1000"
PUID: "1000"
volumes:
- novu-db:/data/db
novu-embed:
image: ghcr.io/novuhq/novu/embed:0.8.0
environment:
WIDGET_URL: http://novu-widget.your-domain.com
depends_on:
- novu-widget
novu-widget:
image: ghcr.io/novuhq/novu/widget:0.8.0
environment:
REACT_APP_API_URL: http://novu-api.your-domain.com
REACT_APP_ENVIRONMENT: prod
REACT_APP_WS_URL: http://novu-ws.your-domain.com
depends_on:
- novu-api
- novu
novu-ws:
image: ghcr.io/novuhq/novu/ws:0.8.0
environment:
JWT_SECRET: 67852d50df15d7411f46ac2628d78bf2
MONGO_URL: mongodb://novu-db/novu
NODE_ENV: prod
PORT: "3002"
REDIS_HOST: novu-cache
REDIS_PORT: "6379"
depends_on:
- novu-db
- novu-cache
volumes:
novu-db: {}
Then run:
docker compose up -d
Access
Once started, access your app at http://localhost:80
Why Self-Host Novu?
Full Data Ownership
Your data stays on your servers. No third-party access.
No Monthly Fees
Pay only for your server. No per-seat or usage charges.
Complete Control
Customize, backup, and scale on your own terms.
Privacy & Compliance
Meet GDPR, HIPAA, or internal security requirements.
Technical Details
Docker Image
${NOVU_IMAGE_URL}/web:${NOVU_IMAGE_VERSION}Official Docs
docs.novu.coWant to go faster?
Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.
Install on any Linux server:
sh -c "$(curl -sSL https://get.senate.sh)"