Self-hosting
The same image the hosted product runs, pointed at your own Postgres and your own network.
All documentation
Getting started
Overview Quickstart SDK packagesFrontend
React Vue Svelte React Native Web Components Headless & theming Real-timeBackend API
Authentication Templates Trigger & status Contacts & preferencesMore
Self-hosting ReferenceThe same image, on your own infrastructure
Elaan is self-hostable. One image serves the hosted product and on-prem alike, with config flags selecting which features are offered; nothing about the data model changes between them. Self-hosted installs run entirely in your own infrastructure: your own Postgres, your own transport credentials, your own network.
Point the SDK's apiBase at your own host; everything else in these docs is identical.
<ElaanProvider apiBase="https://elaan.internal.example.com/v1" tokenProvider={tokenProvider}>
What differs from the hosted product
- Real-time SSE is on. Self-hosted deployments serve the inbox stream directly, so the polling fallback is not needed. See Real-time.
- Single tenant. The install is claimed by the first sign-up; later public sign-ups are refused. Inviting teammates into that one account is unaffected, which is how an on-prem install grows.
- The console is served by the app. There is no separate static host to deploy.
- Bring your own transports. Email and push both go through credentials you configure; there is no platform default sender.
Multi-tenancy is not a hosted-only feature that gets switched off. Every query is account-scoped in both profiles; the single-tenant flag only closes public registration.
Running it
The deployment guide, the compose file and the full configuration reference live in the repository. Start there for the environment variables, the migration step, and the worker services that drain the delivery queues.