GUIDES

Self-hosting EERRAA

EERRAA is open source and built to be owned, not rented. Run the whole thing yourself, on your own box, for free.

The shape of an install

A running EERRAA is three pieces: a Postgres database with the pgvector extension, the backend API, and the web app. That is it. Postgres holds your data and the knowledge-base vectors, the backend runs the agent and serves the widget and the public API, and the web container serves the console and the marketing site.

FieldTypeDescription
Postgres + pgvectordatabaseStores projects, sessions, encrypted keys and creds, and the embedding vectors for RAG.
backendcontainerThe agent runtime, public /v1 API, and the widget script at /static/widget.js.
webcontainerThe admin console and the public site.

Environment

Configuration is a handful of env vars. Two are load-bearing and must be set before you start:

FieldTypeDescription
DATABASE_URLrequiredstringPostgres connection string, pointing at a database with the pgvector extension enabled.
ENCRYPTION_KEYrequiredstringThe Fernet key used to encrypt model keys and the per-user vault at rest. Generate it once and keep it safe.
Model keysper projectProvider keys are added per project in the console, not in server env. See the model keys guide.
Treat ENCRYPTION_KEY like a root secret. It decrypts every stored model key and vault credential. If you lose it, those secrets cannot be recovered; if it leaks, rotate it and re-enter your keys.

Run it with Docker

The commands below are illustrative. Bring up Postgres, point the backend and web containers at it, and set the two env vars. A compose file wires all three together in one up.

bash
# generate a Fernet key once, keep it safe
export ENCRYPTION_KEY="$(python -c 'from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())')"
export DATABASE_URL="postgresql://eerraa:secret@db:5432/eerraa"

# bring up postgres + backend + web
docker compose up -d

# tail the logs
docker compose logs -f backend

Once the containers are healthy, open the console, create your org and first project, add a model key, and embed the widget. From there it is the same product as the hosted one.

html
<script
  src="https://your-host/static/widget.js"
  data-api-key="era_your_project_key"
  data-title="Assistant"
></script>

Self-hosting is free

There is no license fee to run EERRAA yourself. Point it at your own Postgres, bring your own model key, and the whole platform runs on your infrastructure with unlimited projects. You pay your cloud provider and your model provider, and nobody else.

Want SAML SSO, a DPA, an SLA, or a security review on top of a self-hosted deployment? That is the Enterprise tier. Talk to us and we will set it up.