Running Locally - UpstandPlatform/OpenRive GitHub Wiki
OpenRive runs on your computer as a Bun + Next.js app. Nothing is sent anywhere, and there is no login.
-
Bun 1.4 or newer — install with
curl -fsSL https://bun.sh/install | bash, or on Windowspowershell -c "irm bun.sh/install.ps1 | iex" - Any modern browser (Chrome, Edge, Firefox, Safari)
- Windows, macOS or Linux
Check your version with bun --version. No separate Node.js install is needed.
git clone https://github.com/UpstandPlatform/OpenRive.git
cd OpenRivebun installThis also copies the Rive WASM runtime into apps/web/public/rive/, so the editor works offline.
bun run devbun run build
bun run start # or: bun run cli serveOpen http://localhost:3000.
On first start OpenRive creates:
- a user called Admin, which you can rename on the Users page
- a Welcome to OpenRive project with the interactive logo
OpenRive stores everything in PostgreSQL through Drizzle ORM.
-
No setup needed locally. Without
DATABASE_URL, OpenRive runs an embedded PostgreSQL (PGlite) insidedata/pgdata. Migrations are applied automatically at startup. -
A real server is one variable away:
bun run db:up # starts PostgreSQL in Docker DATABASE_URL=postgres://openrive:openrive@localhost:5432/openrive bun run dev
Back your work up by copying the data/ folder (embedded) or with pg_dump (server). See Storage.
The embedded database belongs to one process at a time. Stop the dev server before running
bun run cliagainst the same data folder, or point the CLI elsewhere with--data/--db.
apps/web the editor (Next.js app: UI + REST API)
apps/cli the openrive command (terminal UI) and the MCP server
apps/desktop the desktop app (Electrobun)
packages/rive the .riv format and editing core
packages/db Drizzle schema, migrations and queries
packages/shared zod schemas, types and configuration
packages/ui shared React components
data/ your projects (embedded database)
bun run cli serve --port 4000 # another port
bun run cli serve --host 0.0.0.0 # reachable from your networkIf other people can reach the server, set
OPENRIVE_ACCESS_TOKEN, because the app has no login. See Self-hosting.
bun link
openrive # interactive terminal UI
openrive --helpSee CLI.
git pull
bun install
bun run buildMigrations run on the next start; your data is kept.
This page is generated from docs/running-locally.md. Suggest an edit.