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:
| Platform | Notes |
|---|---|
| Ubuntu | Detected via ID=ubuntu. |
| Debian | Detected via ID=debian (or a Debian-like ID_LIKE). |
| CentOS | RHEL-family package management. |
| RHEL | Includes redhat. |
| Sangoma Linux | The FreePBX appliance OS. Resolves an underlying Debian or RHEL/CentOS base for packages. |
| FreeBSD | Uses 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.
| Resource | Minimum (enforced) | Recommended | Checked where |
|---|---|---|---|
| RAM | 2 GB | 4 GB | Total system memory. |
| CPU | 1 core | 2 cores | Logical cores. |
| Free disk | 15 GB | — | The 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 readsdocker infofor the data root (falling back to/var/lib/docker). On Sangoma's LVM layout,/varoften 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
cdrtable 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.
| Requirement | Detail |
|---|---|
| Docker | Installed automatically if missing. Compose v2 (docker compose) is preferred; legacy v1 docker-compose is also accepted. |
| Root access | Required. install, upgrade, serve and uninstall all check that you're running as root (euid 0). |
| Internet | Required. 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 / MariaDB | Your 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.
| Port | Scope | Purpose |
|---|---|---|
| 8443 | External | The only externally-exposed port. nginx serves the product UI over HTTPS at https://<domain-or-IP>:8443. |
| 3306 | Local only | Your PBX MySQL/MariaDB. litcdc reads it over the host bridge — it is not exposed to the internet. |
| 5432, 6380, 5555, 6464, 18088 | 127.0.0.1 only | TimescaleDB, 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