This repository has been archived on 2024-05-11. You can view files and clone it, but cannot push or open issues or pull requests.
docker-infrastruktur/mapserver/README.md

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.