Skip to main content
toorow runs on your own stack — you bring your own accounts and credentials, and nothing is hardcoded to the maintainers’ project. This guide gets a local server (and, optionally, the full platform) running.

Prerequisites

  • Git
  • Python 3.12 and uv
  • Node.js 22+ and pnpm 9.xcorepack enable is the simplest route
  • Docker Desktop / Engine with Compose — only needed for the full local platform

1. Clone and install

2. Run the MCP server

The Python process reads environment variables directly — it does not load the root .env automatically. For a minimal local server the defaults are enough (auth, workers, scheduling and alerts are disabled unless explicitly enabled):
Set an alternate port with PORT:
The MCP endpoint is http://localhost:8000/mcp.

3. Admin console (optional)

The server mounts the built administration console when ui/admin/dist/ exists:
For local UI development with hot reload:

4. Full local platform (Docker)

The full stack (Nango + both PostgreSQL databases) runs in Docker. Copy the local infrastructure template and replace every placeholder secret:
Generate the required 256-bit Nango encryption key and set it as NANGO_ENCRYPTION_KEY in infra/nango/.env:
Start Nango and both databases:
Apply the application migrations in numeric order:
Local host ports:
Never run docker compose down -v unless deleting all local platform and Nango data is intentional. See infra/nango/README.md for Google OAuth registration and integration testing.

5. Local data pipeline (no cloud needed)

The seeded DuckDB/dbt loop works without any cloud credentials:

Next steps

Add a connector

Extend toorow with your own ingestion module.

Deploy on your own stack

Provision BigQuery, Cloud Run and OAuth for a hosted instance.