Zum Inhalt

Installation

Dieses Kapitel beschreibt, wie Sie Fonaria auf einem Linux-Server installieren und die Weboberfläche zum ersten Mal öffnen.

Voraussetzungen

Server

  • Ein Linux-Server, zum Beispiel Debian oder Ubuntu, physisch oder als virtuelle Maschine.
  • Docker mit dem Compose-Plugin (docker compose).
  • Eine feste IP-Adresse im lokalen Netz. Telefone melden sich unter dieser Adresse an. Ändert sie sich, finden die Telefone die Anlage nicht mehr.
  • Zugang als root oder ein Benutzer mit sudo.

Ist Docker noch nicht installiert, geht das auf den meisten Systemen so:

curl -fsSL https://get.docker.com | sh

Ports

Fonaria braucht folgende Ports auf dem Server. Eine Firewall auf dem Server muss sie zulassen.

Port Protokoll Wofür
8080 (änderbar) TCP Weboberfläche und Desktop-Client
5060 UDP und TCP SIP: Anmeldung der Telefone und der Amtsleitung
5061 TCP SIP über TLS (verschlüsselt)
8089 TCP WebSocket (WSS) für das Softphone im Desktop-Client
10000–10200 UDP Sprachdaten (RTP), je Gespräch zwei Ports

Die SIP-Ports, den WebSocket-Port und den RTP-Bereich können Sie später in der Weboberfläche ändern (Einstellungen → Anlage). Den Port der Weboberfläche legen Sie bei der Installation fest.

Asterisk im Host-Netz

Asterisk läuft direkt im Netz des Servers, ohne Weiterleitung durch Docker. Die Steuerschnittstellen von Asterisk sind von außen nicht erreichbar. Offen sind nur SIP, TLS, der WebSocket, der RTP-Bereich und die Weboberfläche.

Installieren

Melden Sie sich am Server an und führen Sie einen einzigen Befehl aus:

curl -fsSL https://download.example.de/install.sh | sudo bash

Das Skript erledigt Folgendes:

  1. Es prüft, ob Docker und Docker Compose vorhanden sind. Fehlt etwas, bricht es mit einem Hinweis ab.
  2. Es liest die aktuelle Version vom Download-Server.
  3. Es lädt das Installationspaket und prüft die Prüfsumme. Stimmt sie nicht, bricht es ab.
  4. Es entpackt Fonaria nach /opt/fonaria.
  5. Es startet setup.sh mit dem Update-Server. Das Setup
    • legt die Konfigurationsdatei .env an,
    • erzeugt alle internen Passwörter (Datenbank, Asterisk) zufällig,
    • lädt die fertigen Programm-Abbilder und startet die Container,
    • nennt am Ende die Adresse für den Browser.

Am Ende steht zum Beispiel:

Fertig. Weiter im Browser:  http://192.168.1.10:8080
Dort startet der Einrichtungsassistent.

Installation anpassen

Zwei Einstellungen können Sie vor dem Start mitgeben:

Variable Bedeutung Vorgabe
FONARIA_WEB_PORT Port der Weboberfläche 8080
FONARIA_ZIEL Installationsverzeichnis /opt/fonaria

Beispiel mit Port 80:

curl -fsSL https://download.example.de/install.sh | sudo FONARIA_WEB_PORT=80 bash

Die Datei .env nicht ändern

In /opt/fonaria/.env stehen die internen Passwörter. Die Datenbank wurde beim ersten Start mit genau diesen Werten angelegt. Ändern Sie sie nicht. Ein erneuter Aufruf von setup.sh lässt eine vorhandene .env unangetastet.

Ist Fonaria in /opt/fonaria schon eingerichtet, bricht das Installationsskript ab. Neue Versionen spielen Sie über die Weboberfläche ein (siehe Updates und Sicherung).

Port der Weboberfläche später ändern

Der Web-Port ist die einzige Einstellung, die nicht in der Weboberfläche steht. Ändern Sie ihn in /opt/fonaria/.env (Zeile WEB_PORT=) und starten Sie danach die Container neu:

cd /opt/fonaria
sudo docker compose up -d

Die Weboberfläche zum ersten Mal öffnen

Öffnen Sie im Browser die Adresse, die das Setup genannt hat, etwa http://192.168.1.10:8080.

Beim ersten Aufruf startet der Einrichtungsassistent. Dort legen Sie Firma, Administrator, Nummernraum und Öffnungszeiten fest. Das beschreibt das nächste Kapitel: Einrichtungsassistent.

Meldet die Anmeldeseite „Die Anlage antwortet noch nicht“, startet sie noch. Die Seite versucht es alle paar Sekunden von selbst. Dauert es länger als zwei Minuten, sehen Sie auf dem Server nach:

cd /opt/fonaria
sudo docker compose logs backend

Router und NAT

Steht ein Router zwischen der Anlage und dem Internet (der Normalfall im Büro), muss Asterisk die öffentliche Adresse dieses Routers kennen. Sonst schreibt Asterisk seine private IP in jedes Gespräch nach draußen, und über die Amtsleitung hört keine Seite etwas.

So tragen Sie die Adresse ein:

  1. Öffnen Sie Einstellungen und dort den Reiter Anlage.
  2. Im Abschnitt Router und NAT klicken Sie neben Öffentliche Adresse auf Erkennen. Die Anlage fragt per STUN, unter welcher IPv4-Adresse sie im Internet erscheint, und trägt sie ein.
  3. Klicken Sie auf Speichern.

Haben Sie keine feste öffentliche IP, tragen Sie stattdessen einen DynDNS-Namen ein. Die Anlage prüft ihn alle fünf Minuten. Zeigt er auf eine neue IP, startet Asterisk neu. Der Name muss auch im lokalen Netz auf die öffentliche IP zeigen.

Asterisk-Neustart

Wenn Sie Adresse oder Ports unter Einstellungen → Anlage speichern, startet Asterisk neu. Laufende Gespräche werden dabei getrennt. Die Oberfläche fragt vorher nach.

Muss ich Ports am Router weiterleiten?

  • Für die Amtsleitung meist nicht. Die Anlage meldet sich selbst beim Anbieter an und hält die Verbindung offen. Wichtig ist nur die richtige öffentliche Adresse.
  • Für Telefone außer Haus ja. Sollen sich Telefone oder Softphones von unterwegs anmelden, leiten Sie am Router SIP (5060 UDP/TCP), TLS (5061), den WebSocket (8089) und den RTP-Bereich (10000–10200 UDP) an den Server weiter. Hängt die Anlage hinter zwei Routern, auf beiden.
  • Ohne eigene öffentliche IPv4 (DS-Lite, CGNAT) erreichen Telefone von außen die Anlage nur per VPN. Die Amtsleitung funktioniert trotzdem.

Netze, die als „drinnen“ gelten, erkennt die Anlage selbst: die privaten Bereiche (10/8, 172.16/12, 192.168/16) und jedes Netz, an dem der Server direkt hängt. Ein weiterer Standort über VPN gehört in das Feld Weitere lokale Netze, ein Netz je Zeile, zum Beispiel 10.8.0.0/24.

Softphone unterwegs (TURN)

In Mobilfunk- und Hotelnetzen findet das Softphone oft keinen Weg für den Ton: Das Gespräch steht, aber es ist still. Dafür können Sie unter Einstellungen → Anlage → Softphone unterwegs einen TURN-Server mit Benutzer und Passwort eintragen. Jedes Softphone bekommt diese Zugangsdaten. Verwenden Sie deshalb einen eigenen TURN-Zugang nur für die Anlage.

Weitere Einstellungen

Unter Einstellungen finden Sie außerdem:

  • Allgemein: Firmenname, Landesvorwahl (ohne führende Nullen, etwa 49) und Ortsvorwahl (etwa 441). Die Vorwahlen nutzt die Anlage, um Rufnummern umzurechnen und Felder vorzubelegen.
  • Anlage: Hostname oder IP der Anlage, SIP-Ports, RTP-Bereich, Router und NAT, TURN.
  • E-Mail: Mailserver für Benachrichtigungen und Faxweiterleitung. Tragen Sie Server, Verschlüsselung, Port, Benutzername, Passwort und Absender ein. Mit Testnachricht prüfen Sie die Einstellungen, bevor Sie speichern. Ohne Mailserver verschickt die Anlage keine E-Mails.

Zugang verloren?

Wer das Administratorpasswort vergessen hat, setzt es auf dem Server zurück:

cd /opt/fonaria
sudo docker compose exec backend python -m app.cli admins
sudo docker compose exec backend python -m app.cli passwort admin

Der erste Befehl zeigt alle Administratoren mit Benutzernamen. Der zweite erzeugt ein neues Passwort für den Benutzer admin und zeigt es einmal an. Bei der nächsten Anmeldung verlangt die Oberfläche ein eigenes Passwort.

Weitere Schalter für den zweiten Befehl:

Schalter Wirkung
--eingeben Passwort selbst eintippen statt erzeugen (mindestens 10 Zeichen)
--aktivieren Ein deaktiviertes Konto wieder einschalten
--admin Dem Konto Administratorrechte geben