Alles, was Sie im Alltag brauchen, steht in der Weboberfläche. Der Befehl phonix dient der Automatisierung, der Wiederherstellung und Servicearbeiten. Er läuft auf der Anlage selbst, als root:

  • Gerät: per SSH anmelden (einschalten unter System → Grundeinstellungen).
  • LXC-/Incus-/Proxmox-Container: pct enter <id>, incus exec pbx -- sh oder lxc-attach -n pbx.
  • OCI-Container: docker exec -it phonix phonix <befehl>.

phonix --help listet alle Befehle, phonix <befehl> --help die Optionen eines Befehls, phonix --version gibt die Version aus. -v macht die Ausgabe ausführlicher.

Befehle, die die Konfiguration ändern (config import, legacy import), schreiben nur in die Datenbank – wie das Speichern einer Seite in der Weboberfläche. Führen Sie danach phonix apply aus, um die Änderungen zu aktivieren.

Administratoren: phonix user

phonix user list                       # Administratoren mit Rolle und letzter Anmeldung
phonix user add alice                  # anlegen; fragt nach dem Passwort
phonix user passwd admin               # neues Passwort setzen; fragt danach
phonix user passwd admin --must-change # ... und Änderung bei der nächsten Anmeldung erzwingen
phonix user delete alice

Ohne Angabe gilt der Benutzername admin. --password <pw> übergibt das Passwort auf der Kommandozeile, statt danach zu fragen (es landet dann in der Shell-Historie). Passwörter brauchen mindestens 8 Zeichen.

API-Tokens: phonix token

phonix token create monitoring --read-only          # gibt das Token (phx_...) einmalig aus
phonix token create crm --allow-calls --expires-days 365
phonix token list                                    # ID, Name, Präfix, Zugriff, Status, Besitzer, letzte Nutzung, Gültigkeit
phonix token disable 3
phonix token enable 3
phonix token delete 3
Option (create)Bedeutung
--user <name>Administrator, dem das Token gehört (Standard admin).
--read-onlyNur GET-Anfragen und lesende MCP-Werkzeuge.
--allow-callsDarf Anrufe tätigen (Click-to-Call), auch zusammen mit --read-only.
--expires-days <n>Gültigkeit in Tagen; ohne die Option läuft das Token nicht ab.

Das Token selbst wird nur einmal angezeigt. Siehe REST-API und MCP und Erweitert → API-Tokens.

Konfiguration übernehmen: phonix apply

phonix apply bewirkt dasselbe wie Änderungen übernehmen in der Weboberfläche: Es erzeugt alle Konfigurationsdateien, schreibt die geänderten und lädt die betroffenen Dienste neu. Dabei gibt es jede geschriebene Datei und jede Neuladeaktion aus.

OptionBedeutung
--forceAlle Dateien neu schreiben und alles neu laden, auch wenn sich nichts geändert hat. Nützlich nach einer Reparatur von Hand.
--jsonErgebnis als JSON ausgeben.
--bootNur die Dateien schreiben, ohne neu zu laden (beim Systemstart verwendet).

phonix generate <verzeichnis> erzeugt alle Konfigurationsdateien in einem Verzeichnis, ohne etwas zu aktivieren – zum Ansehen.

Backups: phonix backup

phonix backup create                          # nach /data/backups/phonix-backup-<datum>-<zeit>.tar.zst
phonix backup create /tmp/pbx.tar.zst         # in eine Datei Ihrer Wahl
phonix backup restore /tmp/pbx.tar.zst --dry-run
phonix backup restore /tmp/pbx.tar.zst

Die Anlage behält die 10 neuesten Backups in /data/backups. Eine Wiederherstellung übernimmt die Konfiguration sofort. Standardmäßig bleiben dabei die aktuellen Netzwerk-, Firewall- und SSH-Einstellungen erhalten, damit die Anlage erreichbar bleibt.

Option (restore)Bedeutung
--dry-runDatei nur prüfen und ihren Inhalt anzeigen.
--restore-networkAuch die Netzwerk-, Firewall- und SSH-Einstellungen aus dem Backup übernehmen.
--keep-usersDie aktuellen Administratoren und API-Tokens behalten.
--keep-certificateDas aktuelle TLS-Zertifikat und die ACME-Einstellungen behalten.

Siehe auch System → Backup/Wiederherstellung.

Konfiguration als JSON: phonix config

phonix config export pbx.json        # ohne Dateiname oder mit "-" auf die Standardausgabe
phonix config import pbx.json --dry-run
phonix config import pbx.json        # danach: phonix apply
phonix config schema                 # JSON-Schema der Datei

config.json enthält die gesamte Konfiguration (Einstellungen, Telefone, Provider, Wählplan, Benutzer, Medienliste) samt aller Passwörter und PINs; schützen Sie die Datei entsprechend. Anders als ein Backup enthält sie keine Mediendateien und kein Zertifikat. import - liest von der Standardeingabe.

AskoziaPBX-config.xml: phonix legacy

phonix legacy import config.xml --dry-run     # nur Bericht
phonix legacy import config.xml               # Konfiguration ersetzen (vorher Backup)
phonix legacy import config.xml --merge       # mit der Konfiguration zusammenführen
phonix legacy export config.xml

Der Import gibt seinen Bericht aus. Siehe Umstieg von AskoziaPBX.

Zertifikat: phonix cert

phonix cert renew beantragt oder erneuert das ACME-Zertifikat (Let’s Encrypt), wenn es fällig ist; --force beantragt in jedem Fall ein neues. Der Befehl läuft automatisch einmal täglich. Die Einstellungen stehen unter Erweitert → Zertifikat.

Weitere Befehle

BefehlZweck
phonix tuiDas Konsolenmenü starten.
phonix bannerDie Konsolenmeldung mit den Adressen der Anlage ausgeben.
phonix update checkDie neueste Version unter der URL für Update-Informationen von System → Firmware abfragen und ausgeben, ob eine neuere Version verfügbar ist. Mit --auto geschieht nichts, solange Automatisch prüfen aus ist (für den täglichen Lauf).
phonix update install <Datei>Ein Update-Paket prüfen und installieren, wie das Hochladen unter System → Firmware; die Seite zeigt den Fortschritt ebenfalls an. Die Datei muss unter /data liegen. Danach neu starten, um die neue Version zu starten. Nur eine neuere Version als die laufende wird angenommen; mit --force auch dieselbe oder eine ältere (Wiederherstellung, Testversionen).
phonix healthcheckPrüfen, ob Weboberfläche und Asterisk antworten; Exit-Code 0, wenn alles in Ordnung ist. --mark-good bestätigt den gebooteten Update-Slot.
phonix migrateDatenbankschema anlegen oder aktualisieren. Läuft beim Systemstart automatisch.
phonix firstbootDie Datenpartition initialisieren. Läuft beim ersten Start automatisch.
phonix web, phonix monitorDie Webanwendung und der Sicherheitsmonitor; werden von den Systemdiensten gestartet, nicht von Hand.