docker-infrastruktur/mapserver
Michael Wyraz b3b5aa3f54 Improve dashboard 2021-11-29 17:13:10 +01:00
..
fastd Yanic 2021-11-14 14:32:29 +01:00
grafana/provisioning Improve dashboard 2021-11-29 17:13:10 +01:00
meshviewer meshviewer 2021-11-14 14:33:18 +01:00
meshviewer-collector Traefik, Meshkit-collector, PNG-Renderer 2021-11-17 00:49:39 +01:00
renderer Better charts + grafana dashboard 2021-11-19 23:11:59 +01:00
yanic Traefik, Meshkit-collector, PNG-Renderer 2021-11-17 00:49:39 +01:00
.env.example Traefik, Meshkit-collector, PNG-Renderer 2021-11-17 00:49:39 +01:00
.gitignore Traefik, Meshkit-collector, PNG-Renderer 2021-11-17 00:49:39 +01:00
README.md Better charts + grafana dashboard 2021-11-19 23:11:59 +01:00
docker-compose.yaml Better charts + grafana dashboard 2021-11-19 23:11:59 +01:00

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_PEERn_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.