60 lines
2.6 KiB
Markdown
60 lines
2.6 KiB
Markdown
# Ein vollständiger Kartenserver für Freifunk-Leipzig
|
|
|
|
## Architektur
|
|
|
|
### fastd
|
|
|
|
Der fastd-Container verbindet sich mit ein oder mehreren peers im
|
|
Freifunk-Netz uvia fastd und startet batman-adv, um das peering herzustellen.. Über diese Verbindung können IPV6-Broadcasts der Knoten empfangen werden, über die die Kartendaten zusammengestellt werden.
|
|
|
|
Umgebungsvariablen:
|
|
|
|
* FASTD_MTU (benötigt): MTU der fastd-Verbindung
|
|
* FASTD_PEER1_NAME (default: peer1): Name des ersten peers
|
|
* FASTD_PEER1_REMOTE (benötigt): Remote-Adresse des Peers in fastd Syntax, z.B. `"gluon20162a61.leipzig.freifunk.net" port 1006`
|
|
* FASTD_PEER1_KEY (benötigt): öffentlicher Schlüssel des Peers
|
|
* FASTD_PEER`n`_NAME (optional): weitere Peers (fortlaufend numeriert)
|
|
* FASTD_LOG_LEVEL (default: info)
|
|
* IPV6_PREFIX (optional): Prefix für radvd, nötig um hosts im Netz über ihre nicht-link-lokale IPv6 anzupingen. z.B. `fdef:ffc0:7030::/64`
|
|
|
|
### yanic
|
|
|
|
Yanic ist ein Client für respondd und verantwortlich, Knoten-Broadcasts einzusammeln und daraus die Knoten-Daten für die Karte zu generieren. Der Container verwendet das Netzwerk von "fastd", um Zugang zum Feifunk-Netz zu bekommen.
|
|
|
|
Die generierten Daten werden auf ein Volume geschrieben, welches vom Meshviewer-Kartenserver aus zugäglich ist.
|
|
|
|
Umgebungsvariablen:
|
|
|
|
* keine
|
|
|
|
### meshviewer-collector
|
|
|
|
Ein kleines Programm (https://github.com/genofire/meshviewer-collector), welches weitere Karten einsammelt und an Yanic weiterleitet. Wird verwendet, um Libremesh-Nodes in die Karte einzubinden.
|
|
|
|
Umgebungsvariablen:
|
|
|
|
* keine
|
|
* TODO: externe Node-Quellen konfigurierbar machen
|
|
|
|
### meshviewer
|
|
|
|
Der Meshviewer-Container stellt die Meshviewer-Anwendung aus https://git.dezentrale.cloud/Freifunk-Leipzig/meshviewer/src/branch/ffle sowie die zugehörigen Meshviewer-Daten bereit.
|
|
|
|
### victoriametrics
|
|
|
|
VictoriaMetrics ist eine Prometheus-kompatible, hoch performante Zeitreihen-Datenbank, welche das InfluxDB Protokoll unterstützt. Sie kommt zur Speicherung der Knoten-Metriken zum Einsatz.
|
|
|
|
### grafana
|
|
|
|
Grafana wird zur Visualisierung der Knoten-Metriken verwendet. Dabei werden die Datenquelle und die Dashboards automatisch beim Start provisioniert.
|
|
|
|
Umgebungsvariablen:
|
|
|
|
* GF_SECURITY_ADMIN_USER: initialier Admin-Benutzer für Grafana
|
|
* GF_SECURITY_ADMIN_PASSWORD: initiales Admin-Passwort (sollte beim ersten Login unbedingt geändert werden!)
|
|
|
|
### renderer / renderer-proxy
|
|
|
|
Da Grafana Bilder sehr langsam rendert, wird prometheus-png als Renderer eingesetzt. Die Charts werden direkt aus den Victoriametrics-Daten erzeugt. Vor dem Renderer ist NGinx als Proxy, um die URLs mit den PromQL-Queries korrekt zusammenzubauen.
|
|
|