Installation
Use this guide for a clean-machine Community Edition setup.
Option A — File mode (recommended, no Docker)
The fastest path. No database, no Docker, no environment variables. Data lives in browser IndexedDB.
Requirements: Node.js 20+ and pnpm only.
# 1. Clone and install
git clone <repo>
cd lenserfight
pnpm install
# 2. Create .env.local
echo 'DATA_SOURCE=file' > .env.local
# 3. Start the app — boots in under 30 seconds
pnpm nx run web:serveOpen http://localhost:3000. You are logged in automatically as Local Dev — no sign-up screen.
- All data (lenses, workflows, agents) persists in browser IndexedDB across reloads.
- File uploads are stored as blobs in IndexedDB; blob URLs are browser-session-scoped.
- Some production features (notifications, reactions, analytics) return empty stubs and log warnings.
See Local File Storage Tutorial for a detailed walkthrough.
Option B — Full Supabase setup
Use this path for full multi-user functionality, RLS-enforced data isolation, and production media uploads.
Prerequisites
- Node.js 20+
pnpm- Docker Desktop running
- Supabase CLI available on your machine
pnpmis the canonical package manager for this repository.
Install dependencies
From the repository root:
pnpm install --frozen-lockfileStart local services
pnpm supabase start
pnpm supabase:db:resetIf local Supabase gets into a bad state, use:
pnpm supabase:local:recoverConfigure environment
# Copy the example and set the Supabase backend
cp .env.example .env.local
# Edit .env.local: set DATA_SOURCE=supabase and fill in SUPABASE_URL / SUPABASE_ANON_KEYRun the web app
pnpm nx run web:serveThe web app runs at http://localhost:3000 by default.
Optional: run the docs site
pnpm nx run docs:serveThe docs site runs at http://localhost:3002 by default.
Supported execution paths in this beta
- workflow creation and execution from the web app
- local BYOK for documented providers where the browser path exists
- platform-credit execution where already wired
lf run execfor direct prompt/model runs
Important limitations
- cloud BYOK workflow execution depends on the platform executor and is not a self-host guarantee in this repo
lf run submit,lf run vote,lf run full, andlf run replayare not launch-ready automation paths- public battles, benchmark UI, and enterprise surfaces are outside Community Edition scope
Clean-machine checklist
File mode (Option A)
- clone the repo
- run
pnpm install - create
.env.localwithDATA_SOURCE=file - run
pnpm nx run web:serve - open the app — you are signed in automatically as Local Dev
- create a lens and confirm it persists after reload
Supabase mode (Option B)
- clone the repo
- run
pnpm install --frozen-lockfile - run
pnpm supabase start - run
pnpm supabase:db:reset - configure
.env.localwith Supabase credentials andDATA_SOURCE=supabase - run
pnpm nx run web:serve - open the app and create a lens
- create a workflow
- execute the workflow and confirm status updates appear
Verify the setup
Use the smallest relevant checks:
pnpm nx run docs:build
pnpm nx run cli:buildFor the full database walkthrough, see Local Database Setup.
Related guides
- Local File Storage Tutorial — start without Docker
- Quickstart
- Overview
- Development Setup
- How to Contribute