docker/Readme.md
Docker is the easiest way to get started with self-hosted Novu. For production-style self-hosting, see Deploy with Docker. For Kubernetes deployments, see Helm or Kustomize.
The docker/local/ compose file is for local development dependencies only — it does not start the Novu API, Worker, WebSocket, or Dashboard services.
You need the following installed in your system:
From the repo root:
docker compose -f docker/local/docker-compose.yml up -d
This starts MongoDB, Redis, and LocalStack.
Follow the Run Novu in local machine guide:
npm run setup:project
pnpm dev:portless
The Dashboard dev server runs at http://127.0.0.1:4201 by default.
docker compose -f docker/local/docker-compose.yml up -d
If you only need specific services (for example, to avoid port conflicts):
docker compose -f docker/local/docker-compose.yml up -d redis
While we provide example secrets for getting started, you should NEVER deploy your Novu setup using the defaults provided.
Update the .env files under apps/ with your own secrets. In particular, these are required:
JWT_SECRET: used by the API to generate JWT keysSTORE_ENCRYPTION_KEY: used to encrypt/decrypt provider credentials (32 characters)Redis TLS can be configured by adding the following variables to the .env file:
REDIS_TLS={"servername":"localhost"}REDIS_CACHE_SERVICE_TLS={"servername":"localhost"}To keep the setup simple, we made some choices that may not be optimal for production:
We strongly recommend that you decouple your database before deploying.