b3b5aa3f54 | ||
---|---|---|
.. | ||
fastd | ||
grafana/provisioning | ||
meshviewer | ||
meshviewer-collector | ||
renderer | ||
yanic | ||
.env.example | ||
.gitignore | ||
README.md | ||
docker-compose.yaml |
README.md
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.