The open-source workspace for matters, documents, clients, and deadlines.
Quickstart · What it does · Self-hosting · Development · Community
Kourti Legal is software, not legal advice. AI-generated content can be inaccurate and must be reviewed by a qualified professional before it is relied upon or shared.
Run the complete local stack—React app, Node API, and PostgreSQL—with Docker:
git clone https://github.com/boyeesu/Kourti.git
cd Kourti
cp .env.example .env
cp backend-node/.env.example backend-node/.env
docker compose up --buildOpen localhost:8080. The API health check is available at localhost:4000/health.
The supplied defaults are for a local machine only. Before any public
deployment, use AUTH_MODE=custom, strong distinct JWT secrets, TLS,
restricted CORS origins, a production database, and persistent object storage.
| Workspace | Intelligence | Operations |
|---|---|---|
| Matters, clients, documents, contracts, tasks, calendars, invoices, and a client portal | AI-assisted drafting, review, comparison, risk extraction, and legal-workflow automation | Role-based access, audit-focused admin, notifications, SSO, payments, and team management |
Kourti is built with React/Vite, TypeScript, Node/Express, PostgreSQL, and Docker Compose. Optional integrations include AI providers, Resend, S3-compatible storage, ClamAV, SSO, and Paystack.
Kourti can run behind a TLS reverse proxy with PostgreSQL and persistent storage. Operators are responsible for access control, backups, key management, updates, and applicable professional, privacy, and data-residency obligations.
Requirements: Node.js 22+, npm, and PostgreSQL 16+.
# frontend
npm ci
npm run dev
# in another terminal: backend
cd backend-node
cp .env.example .env
npm ci
npm run devSet DATABASE_URL in backend-node/.env to a local PostgreSQL instance. The
backend bootstraps its schema in development; see APPLY_MIGRATIONS.md.
Run the checks before opening a pull request:
npm test
npm run lint
npm run build
cd backend-node && npm run build.env.examplecontains browser-safe Vite configuration only.backend-node/.env.exampledocuments database, auth, AI, email, storage, payment, and server-side security settings.- Never put a secret in a
VITE_*value: Vite embeds it in the browser bundle. - Do not point a local environment at a production database.
| Contribute | Get help | Report security | Project decisions |
|---|---|---|---|
| CONTRIBUTING.md | SUPPORT.md | SECURITY.md | GOVERNANCE.md |
Please also read the Code of Conduct, AI Policy, and third-party notices.
Kourti Legal source code is released under the MIT License. The Kourti name and logos are not licensed for use as your own brand; see TRADEMARKS.md.
