NovalinkIn dev

Documentation

Self-hosting Novalink

Updated September 17, 2026

Novalink is two services and a database: a FastAPI backend that validates and executes graphs, a Next.js editor, and Postgres. Everything below runs locally.

Requirements

  • Docker, for Postgres 17
  • Python 3.14 (what Novalink is developed on)
  • Node.js 20.9 or newer
  • A Supabase project for sign-in (the free tier works)
  • An Anthropic API key, only if you want agent nodes

Start the database

The compose file starts Postgres on port 5433 with two databases: novalink for development and novalink_test for the test suite.

repo root
docker compose up -d

Run the API

backend/
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python -c "from app.security.crypto import generate_key; print(generate_key())"
alembic upgrade head
uvicorn app.main:app --port 8000

Set these in backend/.env:

  • FERNET_KEY: the key printed above. Credential storage refuses to encrypt without it.
  • SUPABASE_URL: your project URL. The API verifies Supabase access tokens against the project's public signing keys, so no secret is needed.
  • ANTHROPIC_API_KEY: optional, enables Generate with AI.
  • ALLOW_PRIVATE_NETWORK: leave false unless HTTP nodes must reach local services.

Interactive API docs are served at http://localhost:8000/docs.

Run the editor

frontend/
npm install
npm run dev

Create frontend/.env.local with NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY. In development, requests to /api are rewritten to the API on port 8000, so no CORS setup is needed.

Configure Supabase sign-in

In your Supabase project, open Authentication, then URL Configuration. Set the Site URL to where the editor runs and add /auth/callback on that origin to the redirect URLs. Email confirmation and Google sign-in both return through that route.

Run a graph without the editor

Graphs also run straight from a JSON file, which is the fastest loop when working on the engine:

backend/
python scripts/run_graph.py examples/basic.json

Build it on the canvas

Create a free account and run your first workflow in the browser, or run Novalink on your own machine.