Getting started
Quickstart
Bring up Metroflow locally with Docker Compose, verify the API is healthy, and connect your first dbt + Snowflake sources. Production Kubernetes deployment is covered at the end.
Prerequisites
Metroflow runs entirely in containers. You need a machine with enough headroom for the API, crawler, graph store, and workspace UI.
- Docker 24+ with Docker Compose v2 (
docker compose) - 4 GB RAM minimum (8 GB recommended if syncing large dbt projects)
- Git to clone the open-source repository
- Optional: Snowflake or Postgres credentials for your first connector sync
Tip: Metroflow works with free-tier Snowflake trials and local Postgres; no paid warehouse required to validate the setup.
Install with Docker Compose
Five steps from empty directory to a live workspace. Each step includes the exact commands to run.
-
Clone the repository
Pull the latest stable branch from GitHub. All services are defined in the root
docker-compose.yml.$git clone https://github.com/metroflow/metroflow.git$cd metroflow -
Configure environment variables
Copy the example env file and set secrets. At minimum, generate a
METROFLOW_SECRET_KEYand confirm the database URL.$cp .env.example .env# Edit .env: required keys:METROFLOW_SECRET_KEY=your-random-32-char-secretMETROFLOW_DATABASE_URL=postgresql://metroflow:metroflow@db:5432/metroflowMETROFLOW_PUBLIC_URL=http://localhost:4200Warning: Never commit
.envto version control. Use your secrets manager or CI variables in production deployments. -
Start all services
Docker Compose pulls images and starts the API, crawler, graph database, and workspace UI. First boot may take 2–3 minutes while images download.
$docker compose up -d✓ metroflow-api running✓ metroflow-crawler running✓ metroflow-ui running✓ metroflow-db running -
Open the workspace
Navigate to the workspace UI in your browser. Sign in with the default admin credentials from
.env, then change the password on first login.http://localhost:4200 -
Connect your first source
In the workspace, open Settings → Connectors → Add source. Pick dbt and Snowflake (or Postgres for a zero-credential trial), paste credentials, and trigger an initial sync.
What just started?
Compose launches four core services that work together out of the box:
metroflow-api: REST API on port8080metroflow-crawler: Metadata ingestion workersmetroflow-ui: Workspace at:4200metroflow-db: Graph and catalog persistence
Verify installation
Confirm the API is reachable and all dependent services report healthy before connecting sources.
You can also tail crawler logs to watch the first sync after adding a connector:
Connect your first source
The fastest path to a populated graph is dbt + Snowflake. Metroflow reads your manifest and warehouse metadata, then links models to tables automatically.
1. Add Snowflake
In the workspace connector wizard, select Snowflake and provide read-only credentials. Metroflow ingests information_schema metadata only.
2. Add dbt
Point Metroflow at your dbt project directory or CI artifact. It parses manifest.json and catalog.json to build model-level lineage.
3. Run initial sync
Trigger a manual sync from the connector detail page or via the API. Within a few minutes you should see tables, models, and ref edges in the graph explorer.
Tip: Start with a single dbt package and one Snowflake database. Expand connector scope after you confirm lineage looks correct.
Kubernetes (optional)
For production, use the official Helm chart. It mirrors the Compose topology with configurable replicas, ingress, and external Postgres.
See Deployment for ingress, TLS, external secrets, and horizontal scaling guidance.
Next steps
Your control plane is live. Continue with these guides to expand coverage and automate workflows.
Add more connectors
Airflow, Dagster, BigQuery, Supabase, and 35+ additional sources.
Connectors → ProductExplore the workspace
Graph navigation, impact analysis, and stack-aware AI agents.
Workspace guide → DevelopersAutomate with the API
Lineage queries, connector sync, and agent endpoints for CI/CD.
API reference → SecurityAuthentication
API tokens, SSO, and role-based access for production rollouts.
Auth guide →