Skip to main content
A private region runs the voice path, AppBridge and the hosted Autopilot on your machine, so calls, recordings and provider keys never leave it. Its only link to Fonoster is one outbound connection. You install it with the Ansible playbook in the release archive (fonoster/ansible), from an inventory you keep.

Before you begin

You need:
  • A private region created in the dashboard (Settings → Region) and its install token.
  • A Debian or Ubuntu machine you can reach over SSH as root, with SIP (5060) and the RTP ranges open.
  • ansible-core 2.21 on the machine you run the playbook from.
  • DNS records sip.<your domain> and *.sip.<your domain> pointing at the region’s machine.
  • Keys for the speech and LLM providers the region’s agents use.

Install

1

Download the release

2

Run the install command

The dashboard shows this command with your token in place of <token>:
Before the last two lines, edit inventory/region.yml: your machine’s address (ansible_host), region_sip_domain, and one fonoster_region.secrets entry per provider. Add each provider key to the vault the same way as the token, for example:
The region’s own passwords and keys are generated on the machine the first time and kept there.The first playbook line is the plan: it shows what would change and changes nothing. The second applies it: it installs Docker, enrolls the region with the token (once), stores the provider keys in the region’s secret store and starts the region.
3

Check the region

The region shows Connected in the dashboard within a minute.

Upgrade

Download the new release and run the playbook from its ansible folder with the same inventory. The playbook installs the release it ships in. A run with a used token changes nothing: the region is already enrolled.

Moving from the cell install

A region installed from ops/rebuild/cell keeps its enrollment and secrets: they live in the region and secrets volumes, which the new install uses under the same project name. Its database, MinIO and records volumes have other names, so you move them. On the region’s machine, with COMPOSE_PROJECT_NAME=fonoster-cell in the inventory’s fonoster_env:
Copy /root/records.pem to /var/lib/fonoster/keys/records.pem before the first apply, so records signed before the move still verify (the region’s appbridge.yaml keeps the kid cell-records-1). Apply the playbook, then restore the database and copy the two data volumes:
Keep the old folder until the region shows Connected.

Without Ansible

The playbook runs these commands in the release’s fonoster folder, which you can also run yourself:
The Helm chart in the repository (ops/rebuild/helm) is unsupported.