Back to Novu

Get the code

docker/Readme.md

3.15.02.5 KB
Original Source

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.

Before you begin

You need the following installed in your system:

Quick Start

Get the code

Clone the Novu repo and enter the docker directory locally:

sh
# 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.

Managing services

Running all services

For local development, you'll typically need to run all dependency services:

sh
# Start all dependency services (recommended)
docker-compose -f docker/local/docker-compose.yml up -d

Running specific services

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:

sh
# Run only ClickHouse
docker-compose -f docker/local/docker-compose.yml up -d clickhouse

Securing your setup

While we provide you with some example secrets for getting started, you should NEVER deploy your Novu setup using the defaults provided.

Update Secrets

Update the .env file with your own secrets. In particular, these are required:

  • JWT_SECRET: used by the API to generate JWT keys

Redis config

Redis 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"}

Configuration

To keep the setup simple, we made some choices that may not be optimal for production:

  • the database is in the same machine as the servers
  • the storage uses the filesystem backend instead of S3

We strongly recommend that you decouple your database before deploying.

Next steps