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-core2.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 Before the last two lines, edit 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.
<token>: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:3
Check the region
The region shows Connected in the dashboard within a minute.
Upgrade
Download the new release and run the playbook from itsansible 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 fromops/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:
/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:
Without Ansible
The playbook runs these commands in the release’sfonoster folder, which you can also run
yourself:
ops/rebuild/helm) is unsupported.