Desktop Mode
Run Laminar locally using Docker Compose.
Prerequisites
Quick Start
cd laminar-infra/desktop
# Login to ECR
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 792306802931.dkr.ecr.us-east-1.amazonaws.com
# Copy and configure environment variables
cp .env.example .env
# Edit .env with your values (see Configuration section below)
# Start services
task upServices
| Service | Description |
|---|---|
| NGINX | Reverse proxy (routes all traffic) |
| Laminar Backend | API, controller, compiler |
| Laminar Console | Main UI |
| Laminar Product | Marketing site |
| PostgreSQL | Metadata database |
| GrepTimeDB | Time-series DB for logs/metrics |
| Grafana | Observability dashboards |
| Vector | Log pipeline |
Access URLs
All services are accessed through NGINX at http://localhost:
| URL | Description |
|---|---|
| http://localhost/console | Laminar Console (Main UI) |
| http://localhost/api/ | Laminar API |
| http://localhost/grafana/ | Grafana dashboards |
| http://localhost/ | Product/Marketing site |
Default credentials for Grafana and PostgreSQL: laminar / laminar
Commands
Run from the laminar-infra/desktop directory:
task up # Start all services
task down # Stop services
task delete # Stop and remove containers
task restart # Restart all services
task status # Show container status
task logs # View logs (all services)
task logs -- laminar-backend # View specific service logsConfiguration
Environment Variables (.env)
Copy .env.example to .env and configure the following:
# Image versions (defaults to 'latest' if not set)
LAMINAR_BACKEND_IMAGE_VERSION=
LAMINAR_CONSOLE_IMAGE_VERSION=
LAMINAR_PRODUCT_IMAGE_VERSION=
# PostgreSQL (defaults work out of the box)
POSTGRES_USER=laminar
POSTGRES_PASSWORD=laminar
POSTGRES_DB=laminar
# Auth Configuration (required for console login)
# Generate with: openssl rand -base64 32
AUTH_SECRET=your-generated-secret
AUTH_URL=http://localhost
# Google OAuth (required for console login)
# Create credentials at: https://console.cloud.google.com/apis/credentials
# Add redirect URI: http://localhost/console/api/auth/callback/google
AUTH_GOOGLE_ID=your-google-client-id
AUTH_GOOGLE_SECRET=your-google-client-secretLaminar Config (laminar.toml)
The laminar.toml file configures the Laminar backend services. Default settings work for local development. Key sections:
[api]- HTTP API server (port 8000)[controller]- Pipeline controller (port 8001)[compiler]- UDF compiler (port 8002)[database.postgres]- Database connection[pipeline]- Pipeline runtime settings