Documentation

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 packages
Frontend
React Vue Svelte React Native Web Components Headless & theming Real-time
Backend API
Authentication Templates Trigger & status Contacts & preferences
More
Self-hosting Reference

The 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.

SDK source on GitHub →