Docker Compose
Docker Compose lets you run Breadcrumb on any machine with Docker installed - a VPS, a cloud instance, or your own hardware.
Prerequisites
- Docker and Docker Compose installed
- Git installed
Setup
Clone the repository
git clone https://github.com/joshuaKnauber/breadcrumb.git
cd breadcrumbConfigure environment variables
cp services/server/.env.example services/server/.envOpen services/server/.env and update the following values:
# Generate a random secret for authentication
BETTER_AUTH_SECRET=your-random-secret-here
# Set this to the public URL where you'll access Breadcrumb
APP_BASE_URL=https://your-domain.com
# Use the Docker service names for database connections
DATABASE_URL=postgres://postgres:postgres@postgres:5432/breadcrumb
CLICKHOUSE_URL=http://clickhouse:8123
CLICKHOUSE_DB=breadcrumb
# Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
ENCRYPTION_KEY=your-generated-key
# Production settings
PORT=3100
NODE_ENV=productionChange the default Postgres password in both your .env and docker-compose.prod.yml for production deployments.
ClickHouse sandbox user
Breadcrumb uses a dedicated ClickHouse user with row-level security to isolate user-provided SQL queries. The sandbox user, role, and row policies are created automatically by the server on first startup.
If you're using the provided Docker Compose setup, this works out of the box — the required custom_settings_prefixes configuration is mounted automatically.
If you're connecting to an external ClickHouse instance, you need to add the following to your ClickHouse server config (e.g. config.d/custom.xml):
<clickhouse>
<custom_settings_prefixes>SQL_</custom_settings_prefixes>
</clickhouse>The ClickHouse user specified by CLICKHOUSE_USER must have permission to create roles, users, and row policies (this is the default for the default user).
You can override the sandbox credentials in your .env:
CLICKHOUSE_SANDBOX_USER=breadcrumb_sandbox
CLICKHOUSE_SANDBOX_PASSWORD=breadcrumb_sandbox_localStart the services
The repo includes a docker-compose.prod.yml with healthchecks and restart policies preconfigured.
docker compose -f docker-compose.prod.yml up -d --buildBreadcrumb will be available at http://your-server-ip:3100.
Updating
Pull the latest changes and rebuild:
git pull
docker compose -f docker-compose.prod.yml up -d --buildNext Steps
Create your account
Open the dashboard and sign up.
Create a project and get an API key
Set up a project in the dashboard, then grab an API key from project settings.
Start tracing
Follow the quick start to connect the SDK. Set baseUrl to your instance URL.