Documentation

Self-hosting

Run Allomi yourself with Docker Compose.

Allomi is open source (MIT). The code you run is the code of the cloud: same images, same database, same API.

git clone https://github.com/allomi-ai/allomi
cd allomi
cp .env.example .env
# fill in .env (see below), then:
docker compose -f docker-compose.selfhost.yml up -d

What runs

ServiceRole
postgresPostgres 16: data and job queue (pg-boss).
migrateApplies database migrations, then stops.
apiREST API, sessions, API keys, webhooks, remote MCP (port 3001).
voiceBridge between the phone network (Twilio) and the voice model (port 3002).
workerThe assistant brain, memory, scheduler, webhook delivery, connectors.
webThis website and the app.

The images are published as ghcr.io/allomi-ai/*. Pin a version with ALLOMI_VERSION.

What you need

  • A server with Docker (one small VM is enough).
  • A public HTTPS URL for the voice service (VOICE_PUBLIC_URL): Twilio connects to it. Put a reverse proxy such as Caddy in front, or use a tunnel while testing.
  • A Twilio account (numbers, media streams, optional Verify for SMS login codes) and an OpenAI API key for the real-time voice.
  • A model for the assistant's reasoning, configured with ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN.
  • Optional: Stripe (billing, off when unset), Resend (e-mails).

Every variable is documented in .env.example. Generate the sealing key that encrypts stored secrets with openssl rand -base64 32 and keep it safe: without it, connector keys cannot be read again.

Backups and updates

Back up the postgres-data volume (a daily pg_dump is enough). To update, change ALLOMI_VERSION, run docker compose pull then up -d: the migrate service applies new migrations first.