Dev Setup
This guide covers setting up a local development environment for contributing to Laminar.
Repositories
Laminar consists of three repositories:
| Repository | Description |
|---|---|
| laminar | Core stream processing engine (Rust) - API, Controller, Worker |
| laminar-frontend | Web UI (Next.js), documentation site, CLI tools |
| laminar-infra | Infrastructure configs - Docker Compose, Kubernetes, Helm charts, monitoring |
git clone https://github.com/e6data/laminar.git
git clone https://github.com/e6data/laminar-frontend.git
git clone https://github.com/e6data/laminar-infra.gitPrerequisites
For Backend Development (laminar)
-
Rust (latest stable)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -
Build tools and Task (macOS)
brew install cmake protobuf go-task -
Docker
brew install --cask docker -
Optional (only for CDC/Debezium features)
brew install openjdk@17 maven
For Frontend Development (laminar-frontend)
- Node.js 22+
- npm 9+
Local Services
Start the required infrastructure services (PostgreSQL, GreptimeDB, Grafana, Vector):
cd laminar/setup
task up| Service | Port | Description |
|---|---|---|
| PostgreSQL | 5432 | Metadata storage |
| GreptimeDB | 4000-4003 | Metrics and logs |
| Grafana | 3001 | Dashboards |
| Vector | - | Log collection |
To stop services:
task down # Stop services
task delete # Remove volumes (clean slate)Pre-Commit Hooks
We use TruffleHog to prevent accidental commits of secrets and credentials.
Setup
Install the required tools:
brew install pre-commit trufflehogActivate the pre-commit hook:
cd laminar # or any repo with .pre-commit-config.yaml
pre-commit installUsage
The hook runs automatically on every commit, scanning staged files for secrets. If a secret is detected, the commit will be blocked.
To manually scan all files:
pre-commit run trufflehog --all-filesNext Steps
- Backend Development - Build and run the Laminar engine
- Frontend Development - Console and Product apps