Docker Compose

How to run Hook0 locally with Docker Compose for development purposes


Do not run this in production!

This Docker Compose setup is provided for testing or development purposes. Most things in there are not secure and use default passwords.

If you need to run Hook0 in production, you can subscribe to our managed SaaS instance on, or do a manual setup.

Run Docker Compose

Ensure you have cloned our repository and have a working Docker installation.

Then, you just have to run:

docker compose -f self-hosted/docker/docker-compose.yaml up --build --detach


This will build a lot a things on the first launch, it can take a while!

Create a User and an Organization

Once everything is up, the easiest way to get going is to hit the registration endpoint:

curl http://localhost:8081/api/v1/register -XPOST -H 'Content-Type: application/json' -d '{
  "email": "...",
  "first_name": "...",
  "last_name": "...",
  "organization_name": "...",
  "password": "..."

Once this is done, you can open http://localhost:8001 and login!


Our Docker Compose will create/use the following Docker volumes:

  • postgres-data: Hook0 database (/var/lib/postgresql/data)
  • postgres-keycloak-data: Keycloak database (/var/lib/postgresql/data)
  • keycloak-keys: a few values that need to be passed from Keycloak to our API; you will no lose actual data if you delete this volume, it is rebuilt every time you start the system