The fastest way to get started is to clone the public exulu-example repository. It ships the recommended project layout, Docker Compose files, and start scripts, so you can skip the scaffolding steps below and go straight to configuration.
@exulu/backend is published to the public npm registry. No token or .npmrc configuration is required. This page walks you through installing it, setting up a TypeScript project that builds with tsup, and running the optional Python environment for document processing.
Prerequisites
-
Node.js 22.18.0 exactly. The package includes a
preinstallscript that exits with an error if the version does not match. Use nvm to pin it: -
TypeScript
^5.8.3— a peer dependency. Install it in your project:
Install the package
preinstall check runs immediately. If Node.js is not exactly 22.18.0, the install exits with:
What you get
@exulu/backend ships:
- Dual CJS/ESM output —
dist/index.mjs(ESM) anddist/index.js(CommonJS-resolution entry point), with bundled TypeScript declarations atdist/index.d.ts. - Auto-loaded
.env— the package prependsimport "dotenv/config"(ESM) orrequire("dotenv/config")(CJS) to every emitted bundle chunk, so your.envfile is loaded before any module-scope code runs. No manual dotenv call is needed in your entry files. - CLI binaries —
npx @exulu/backend setup-python(Python environment setup) andnpx @exulu/backend exulu-start-whisper(Whisper transcription server).
Project scaffold
The recommended structure uses tsup with two entry points: one for the HTTP server and one for the background worker. This mirrors the container split in production deployments.Install build tooling
tsup.config.ts
package.json scripts
Recommended file layout
Python environment (document processing)
If your deployment uses document knowledge processing (PDF, DOCX, and other office formats ingested into contexts), run the one-time Python setup:ee/python/.venv and installs the required Python packages, including docling, transformers, and the LiteLLM proxy dependencies. The process takes several minutes on first run.
Python setup is only needed for knowledge processing features. You can skip it if you do not ingest documents into contexts.
Next steps
Once installation is complete, go to Getting started to initializeExuluApp, wire up the server and worker entry points, and run your first boot.
For deployment, see Self-hosting.