Docs refreshed for Astervis v1 — now covering AI call analytics. What’s new
Astervis Docsv1.0
Installation

System Requirements

What your server needs before installing Astervis.

Astervis installs directly onto your PBX server — there's no separate appliance and nothing to provision in the cloud. The installer is a single binary that checks the server for you and aborts early if anything is missing. This page lists exactly what it looks for, so you can confirm a server fits before you start.

Astervis is on-premise only. Your call records and recordings never leave the server. The one exception is AI analysis, which is optional — when you enable it, only the audio of a finished call is sent to Google Gemini for transcription and scoring. See AI & Privacy.

Supported platforms

The installer detects your operating system from /etc/os-release (and the Go runtime on FreeBSD), then adapts package management and service control to match. These platforms are supported:

PlatformNotes
UbuntuDetected via ID=ubuntu.
DebianDetected via ID=debian (or a Debian-like ID_LIKE).
CentOSRHEL-family package management.
RHELIncludes redhat.
Sangoma LinuxThe FreePBX appliance OS. Resolves an underlying Debian or RHEL/CentOS base for packages.
FreeBSDUses rc.d services instead of systemd.

Both amd64 and arm64 architectures are supported. Most product container images are pinned to linux/amd64, so amd64 is the smoothest path.

A PBX is required

Astervis is an analytics and AI layer for an existing Asterisk-based phone system — it reads your Call Detail Records and recordings, it doesn't place calls. The installer auto-detects your PBX and refuses to install if none is found ("No PBX system detected"). These are recognised automatically:

FreePBX

The most common deployment. CDR database credentials are auto-detected.

Sangoma PBX

The commercial FreePBX appliance — full support.

Issabel

Auto-detected.

VitalPBX

Auto-detected.

Elastix

Auto-detected.

Generic Asterisk

Supported — you'll be prompted for the MySQL CDR credentials manually.

Hardware

Astervis runs comfortably on modest hardware. The minimums below are hard floors — the installer's system check aborts if any of them isn't met. The recommended figures are non-blocking and surface as warnings.

ResourceMinimum (enforced)RecommendedChecked where
RAM2 GB4 GBTotal system memory.
CPU1 core2 coresLogical cores.
Free disk15 GBThe Docker data-root partition (not /).

Why the floor is so low. Astervis used to need 4 GB because its change-data-capture pipeline ran on Debezium plus a Redpanda broker — roughly 640 MB of RAM by themselves. That pair was replaced by litcdc, a single ~10–25 MiB Rust binary that reads the MySQL binlog directly. CDC memory dropped from ~640 MB to ~30 MB, and the whole stack now sits around 0.6 GB at rest — which is why the practical minimum fell to 2 GB.

A few details are worth knowing before you size a box:

  • Disk is measured on the Docker partition, not /. The installer reads docker info for the data root (falling back to /var/lib/docker). On Sangoma's LVM layout, /var often lives on a separate, smaller volume — that's the one that needs the 15 GB. Budget roughly 8 GB for container images plus 5 GB of runtime headroom; the rest grows with your CDR history.
  • One core works, two is smoother. On a single core the CDC backfill of your historical cdr table is CPU-bound and runs slower. You'll get a warning, not an error.
  • The memory check rounds MiB up to GB, so a "3.8 GiB" 4 GB box isn't undercounted.

Software

You don't need to pre-install anything except the operating system and your PBX. The installer takes care of the rest.

RequirementDetail
DockerInstalled automatically if missing. Compose v2 (docker compose) is preferred; legacy v1 docker-compose is also accepted.
Root accessRequired. install, upgrade, serve and uninstall all check that you're running as root (euid 0).
InternetRequired. Verified with an HTTPS request to the Docker registry. No connectivity is a hard error — the images can't be pulled and the AI gateway can't be reached.
MySQL / MariaDBYour existing PBX CDR database. Credentials are auto-detected where possible, or prompted for. Never blocks the install.

Run the installer as root. The one-line bootstrap and the install command will call sudo themselves where needed, but the install wizard expects a root euid and will exit otherwise.

Network and ports

Astervis is deliberately quiet on the network. After installation, exactly one port is open to the outside world.

PortScopePurpose
8443ExternalThe only externally-exposed port. nginx serves the product UI over HTTPS at https://<domain-or-IP>:8443.
3306Local onlyYour PBX MySQL/MariaDB. litcdc reads it over the host bridge — it is not exposed to the internet.
5432, 6380, 5555, 6464, 18088127.0.0.1 onlyTimescaleDB, Redis, the backend, the admin app, and litcdc. Bound to loopback; never reachable externally.

So the firewall picture is simple: allow inbound 8443, and allow outbound HTTPS (443) so the server can pull images and — if you use AI — reach the AI gateway. Nothing else needs to be opened.

Astervis reaches your PBX database through host.docker.internal (Docker's route to the host), so on most servers no firewall change is needed for MySQL. On heavily hardened hosts (CIS / banking / native-nftables), the installer auto-applies the bridge and sysctl fixes that let containers reach the host's MySQL on 3306 — see Troubleshooting.

AI needs recordings on the server

The analytics platform works on Call Detail Records alone. The AI features — transcription, QA scoring, sentiment and category analysis, semantic search — work on the audio of each call, so they only apply to calls that were actually recorded.

Astervis mounts your recordings read-only from the standard Asterisk path (/var/spool/asterisk/monitor) into the backend and queue containers. If a call has no recording on disk — for example because your retention policy already rotated it off — there's nothing for the AI to analyse, and that call is simply skipped. To get the most out of AI, make sure recording is enabled in your PBX and that recordings live on disk long enough to be processed.

AI is optional and metered under a separate license tier. You can run the full analytics product without it. See AI Call Analytics for what each call produces.

Pre-install checklist

Run through this before launching the installer. Each item maps to something the system check verifies in Step 1 of the wizard.

Root access to the server

You can log in as root. The installer requires it and will exit otherwise.

A supported OS

Ubuntu, Debian, CentOS, RHEL, Sangoma Linux, or FreeBSD — on amd64 or arm64.

A running PBX

Asterisk-based: FreePBX, Sangoma PBX, Issabel, VitalPBX, Elastix, or generic Asterisk. The installer aborts if it can't detect one.

Enough resources

At least 2 GB RAM, 1 CPU core, and 15 GB free on the Docker data partition (4 GB RAM and 2 cores recommended).

Outbound internet

The server can reach the internet over HTTPS to pull images and validate the license.

Port 8443 free and reachable

Nothing else is bound to 8443, and your firewall allows it inbound.

A license key

Your key starts with AST-, e.g. AST-XXXX-XXXX-XXXX-XXXX.... Have it ready — the wizard will ask for it, or you can pass it with --license.

Recordings on disk (for AI only)

If you plan to use AI, confirm call recording is enabled and recordings are retained long enough to be analysed.

When all of these are true, you're ready to install.

Last updated on

On this page