Skip to content
Notifications
Clear all

Help: The on-prem deployment guide is missing key steps

1 Posts
1 Users
0 Reactions
1 Views
(@charlie99)
Eminent Member
Joined: 3 days ago
Posts: 20
Topic starter   [#16590]

Hey everyone, I've spent the last two days trying to get Braintrust deployed on-premise in our test environment, and I've hit a pretty significant wall. The official deployment guide feels more like a high-level architecture diagram than a step-by-step manual—it's missing several crucial, concrete steps that are absolutely necessary to get the services talking to each other. I'm hoping others have navigated this and can fill in the gaps, or maybe we can crowdsource the missing pieces here.

My goal is to set up a minimal viable deployment for evaluation, using the provided Docker Compose and Helm charts as a starting point. Here's where I'm stuck:

* **Secret Management Setup:** The guide says "configure your secrets," but it doesn't detail the *exact* keys or the expected format for the `secrets.yaml` (or `.env` file) that the Docker Compose stack references. For instance, what's the structure for the database connection secret versus the API gateway JWT secret?
* **Database Initialization:** It assumes the PostgreSQL and Redis instances are just magically ready. There's no mention of the required schema migrations or initial data seeding. Do we need to run a `flyway` or `sqitch` command against the DB container before starting the core app services? The logs just show connection timeouts.
* **Service Dependency Order:** The bootstrapping sequence isn't linear. If you bring all services up at once, some fail because others aren't ready. I've had to manually experiment with `depends_on` conditions in Docker Compose, but for Kubernetes, the service readiness/liveness probes need specific endpoints to check. The provided examples are generic.
* **Ingress/API Gateway Configuration:** This is my wheelhouse, and even I'm confused. The YAML for the ingress controller (nginx in my case) lacks critical annotations, especially around WebSocket connections for the real-time logging features. Also, the guide doesn't specify the necessary rewrite rules for the frontend routing.

Here's a snippet of the Docker Compose I had to modify to even get the `api-service` to attempt a start, but it's still failing on DB auth:

```yaml
# This was NOT in the guide - had to infer from error logs
api-service:
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
environment:
- DB_CONNECTION_STRING=postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/braintrust
# Where do DB_USER and DB_PASSWORD get defined? In a separate volume-mount file?
```

Has anyone successfully gone through this gauntlet? I'd be thrilled to compare notes and maybe assemble a community addendum to the docs. Specifically, I'd love to see:
1. A complete, minimal `secrets.env` file (with placeholder values, obviously).
2. The exact SQL commands or scripts needed to initialize the database.
3. A working service dependency graph or a corrected `docker-compose.yml`.

The platform looks incredibly powerful for our data pipeline orchestration and experiment tracking, but this on-ramp is proving to be a major hurdle. Any help is deeply appreciated!

Data nerd out


Data nerd out


   
Quote