docker/Readme.md
Docker is the easiest way to get started with self-hosted Novu, however if you want to set up the system on docker for local development look here or if you want to deploy Novu to Kubernetes using Helm check here or using Kustomize check here.
You need the following installed in your system:
Clone the Novu repo and enter the docker directory locally:
# Get the code
git clone https://github.com/novuhq/novu
# Go to the docker folder
cd novu/docker
# Copy the example env file
cp .env.example ./local/.env
# Start Novu
docker-compose -f ./local/docker-compose.yml up
Now visit http://127.0.0.1:4200 to start using Novu.
For local development, you'll typically need to run all dependency services:
# Start all dependency services (recommended)
docker-compose -f docker/local/docker-compose.yml up -d
If you only need specific services running (for development or resource management), you can start individual services by specifying their names. This is particularly useful when you already have some services running locally on your system and want to avoid port conflicts or resource duplication:
# Run only ClickHouse
docker-compose -f docker/local/docker-compose.yml up -d clickhouse
While we provide you with some example secrets for getting started, you should NEVER deploy your Novu setup using the defaults provided.
Update the .env file with your own secrets. In particular, these are required:
JWT_SECRET: used by the API to generate JWT keysRedis TLS can be configured by adding the following variables to the .env file and specifying the necessary properties inside:
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.