This section outlines the necessary steps to run Dittofeed with docker compose.

First, clone Dittofeed’s github repository.

git clone [email protected]:dittofeed/dittofeed.git
cd dittofeed

Next create a local .env file.

touch .env

Dittofeed has dependencies on Postgres, and Clickhouse, with an optional Kafka dependency.

Populate this .env file with the following values, substituting placeholder values with your own. Dittofeed will work without these overrides, but it is recommended that you substitute your own credentials.

.env
# Used to generate links to the dashboard e.g. for unsubscribe links. Should not
# include the /dashboard suffix.
DASHBOARD_URL="https://my-dittofeed-dashboard.com"
# Used to issue requests to the api from the dashboard. Should not include the
# /api suffix. Can be the same as the DASHBOARD_URL.
DASHBOARD_API_BASE="https://my-dittofeed-api.com"
DATABASE_USER=my-postgres-user
DATABASE_PASSWORD=my-postgres-password
CLICKHOUSE_USER=my-clickhouse-user
CLICKHOUSE_PASSWORD=my-clickhouse-password
PASSWORD=password
SECRET_KEY=GEGL1RHjFVOxIO80Dp8+ODlZPOjm2IDBJB/UunHlf3c=

See our documentation on Authentication Modes for instructions on how to generate a new SECRET_KEY.

Finally, start Dittofeed’s services.

docker compose -f docker-compose.lite.yaml up -d

The above command will start Postgres and Clickhouse. You may decide to use a third party vendor for these data stores. In that case, you should disable the corresponding services in the docker-compose.prod.yaml file.