Manual Setup
Method 2: Manual Setup with Docker Compose
If you prefer to set up manually with Docker, follow these steps:
We'll start with creating a workspace to store the configs, scripts, and certificates
Compose file
Download the compose file from here
Nebula Lighthouse
Each client in our application acts as a Nebula node, requiring a Lighthouse node for certificate management. The Lighthouse generates and manages certificates for all nodes in the network.
Our docker setup creates a debian container running start-lighthouse.sh
, which downloads the appropriate Nebula binary and generates certificates in the certs
folder. This folder is mounted to the Go backend for signing client certificates during signup.
For technical details about the data flow, see our documentation here.
Create the following directory structure and files:
You can download these using
Environment Variables
Finally, create a .env
file with the following environment variables:
Replace the values for Google's client ID and secret from earlier step.
To generate a random secret for auth you can use the below bash command
Now that we have all the prerequisites in place, we can start the application:
If everything succeeded, you should be able to see the below files
To test the backend, you can visit the below link and if everything is successful you should be redirected to Google's Sign in Page.

This setup also has an in-memory tracing enabled which is good enough for debugging in dev environments.
You can visit the below link to see the traces
And for our previous login test, the traces are visible.
For a more comprehensive monitoring, check the prod setup using Clickhouse here