Self-hosting Aurix
The engine is open source — run it yourself, or mix self-hosted nodes with Aurix Cloud.
The same code#
Aurix Cloud runs the public aurix-server from github.com/aurix-voice/aurix (AGPL-3.0, commercial licences available). Everything a cell does — registry, channels, mixing, moderation, analytics — is in that repository, with its own documentation for operators: configuration, scaling, TURN, recording storage, Kubernetes charts and the full REST/WebSocket/AURX references.
- Getting started (engine docs)
- Operations: scaling, Redis, Postgres, observability
- API reference: REST, WebSocket, AURX media protocol
- Helm chart and Docker images
When to pick which#
| Self-hosted | Aurix Cloud BYOC | Aurix Cloud | |
|---|---|---|---|
| Media nodes | yours | yours | ours |
| Registry, console, billing, on-call | yours | ours | ours |
| Cost | infrastructure + your time | $39 / node / month | per node-hour or per plan |
| Data residency | anywhere | where your nodes are | EU |
Moving between them is a token endpoint change: the SDKs and your backend code are identical. A BYOC node is simply aurix-server plus a small agent.
Migrating a self-hosted deployment#
Create a project, point your token endpoint at the cell with the new key, and roll clients — tokens carry the endpoint, so nothing is hard-coded in builds. Channel ids are per project; ad-hoc channels by name recreate themselves.
What you give up#
Running the engine yourself means running everything a cell does: Postgres and Redis for the registry, TURN, certificates, the node fleet, upgrades, backups and on-call. There is no console, no usage page, no spending limit, no webhooks for capacity events and no billing — you build or skip them. The SDKs, the token endpoint and the channel model are exactly the same, so moving later in either direction is a configuration change.
Cost, honestly#
A single self-hosted node on a small ARM VM costs a few euros a month at any provider and carries a few hundred participants — cheaper than any plan if your time is free. The crossover is operational: once you want a second region, a second node for failover, upgrades without downtime or someone to call at 3 am, the $39 per node-month of your infrastructure or the $0.05–0.30 per node-hour of Cloud nodes buys the registry, console, metering, autoscale and the ladder.
Minimal self-hosted setup#
docker run -d --name aurix --network host \
-e AURIX__AUTH__ADMIN_BOOTSTRAP_TOKEN=$(openssl rand -hex 24) \
ghcr.io/aurix-voice/aurix-server:1.13.0 # + Postgres and Redis, see the engine quick start
aurix admin setup --email [email protected] --display-name Root --bootstrap-token-file … # first operator
aurix app create --name MyGame --key-out mygame.api-key # the SDK keyThe exact environment variables (AURIX__… mirrors the config file), ports (8080 API, 8081 WebSocket, 10000/udp media, 4443/udp WebTransport, 3478 TURN) and the CLI flow are in the engine's quick start. Mint tokens against your own node's /v1/tokens with that key; the SDKs do not know or care whether the endpoint is a cell or your box. The engine repository's operations docs cover Helm, scaling across nodes, Redis/Postgres sizing and observability.