Skip to content

Installation (development)

import { Aside } from ‘@astrojs/starlight/components’;

This guide is for local development and for anyone who wants to evaluate Orimora without Docker. Production deployment is covered in Deployment.

RequirementVersion
Node.js22 LTS or 24
YarnClassic (v1) or Berry — repo uses yarn in scripts
PostgreSQL16+
Redis7+

Optional but recommended: direnv or a tool to load .env per project.

Terminal window
git clone https://github.com/defcon1702/orimora.git orimora
cd orimora
yarn install

Create an empty PostgreSQL database and ensure Redis is reachable:

Terminal window
# Example: create DB (adjust user/host as needed)
createdb knowledgebase
# Redis — default local URL is usually sufficient
redis-cli ping # → PONG

Copy the template and edit values:

Terminal window
cp .env.example .env

Minimum for a working dev server:

VariablePurpose
DATABASE_URLpostgresql://user:password@localhost:5432/knowledgebase
REDIS_URLredis://localhost:6379
APP_URLPublic base URL of the app — use http://localhost:5173 in Vite dev mode
SESSION_SECRET64 hex chars — node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
MAGIC_LINK_SECRETSame length as above (separate value)
LLM_ENCRYPTION_KEY64 hex chars — required even if you disable AI; encrypts stored LLM API keys

Leave SMTP_HOST empty if you do not need magic-link email in dev (you can use OAuth or seed users depending on your setup).

Schema changes are applied with Drizzle:

Terminal window
yarn db:migrate

Run this after every pull if the repository includes new migration files.

Terminal window
yarn dev

Then open APP_URL in the browser (default Vite: http://localhost:5173). Complete the onboarding flow to create your workspace.

Terminal window
curl -s http://localhost:5173/api/health

You should get a JSON payload indicating the service is healthy.

Real-time editing uses a WebSocket upgrade on the same origin as the app (path /collab). In development this is handled by the Vite plugin; ensure nothing blocks WebSockets to your dev URL.

If you configure COLLAB_SECRET, the collab endpoint expects it — see .env.example.

SymptomWhat to check
DATABASE_URL connection refusedPostgres running? Host/port/user match?
Redis errors on startupREDIS_URL correct? redis-cli ping
Migrations failSame DATABASE_URL as the running app; user has DDL rights
Magic link never arrivesConfigure SMTP or use Google/OIDC sign-in
401 on /api/v1/*Use Authorization: Bearer kb_... with an API key from Settings → Developers