Komponenten

Damit das System lÀuft, spielen mehrere unabhÀngige Systeme zusammen. Jedes davon hat eigene Zugriffs- und Berechtigungsmechanismen.

System WofĂŒr
GitHub Quellcode, Pull Requests
Jenkins Build & Deployment
InfluxDB Zentrale Datenbank fĂŒr Logs und GerĂ€tezustĂ€nde
Grafana Visualisierung der Daten aus InfluxDB
ChurchTools Kalender/Raumbuchungen, Login fĂŒr Grafana
HomematicIP Steuerung und Zustand der Heizungen
Server Hostet alle Komponenten außer ChurchTools

GitHub #

Der Code liegt in der CGHH-GitHub-Organisation. Zugriff auf das Repository kann bei Bedarf vergeben werden. Das Projekt lĂ€uft mit Node.js und wird ĂŒber ein Dockerfile in ein Container-Image gepackt — das ĂŒbernimmt Jenkins.

Jenkins #

FĂŒr Jenkins wird ein eigener Account benötigt. Damit erhĂ€lt man Zugriff auf die Build-Pipelines der einzelnen Branches. Die Pipeline selbst sollte nicht direkt in Jenkins angepasst werden — die eigentlichen Pipeline-Anweisungen liegen im Repository (Jenkinsfile) und werden von dort geladen.

InfluxDB #

FĂŒr InfluxDB wird in der Regel kein eigener Account vergeben. Es ist die zentrale Datenbank fĂŒr sĂ€mtliche Logs und GerĂ€tezustĂ€nde und benötigt von niemandem eine manuelle Anpassung. ZusĂ€tzliche Buckets können bei Bedarf von den Administrator:innen angelegt werden.

Grafana #

FĂŒr Grafana können die ChurchTools-Zugangsdaten verwendet werden. Voraussetzung dafĂŒr ist die Mitgliedschaft in der ChurchTools-Gruppe grafana-admin oder hausverwaltungs-team.

ChurchTools #

Zugriff auf die relevanten Kalender/Ressourcen in ChurchTools erfolgt ĂŒber einen eigenen technischen Nutzer, mit dem das System die Raumbuchungen ausliest. Fragen zu ChurchTools-ZugĂ€ngen gehen an die Verwaltung.

HomematicIP #

Das System, ĂŒber das die Zieltemperatur gesetzt wird und aus dem der aktuelle GerĂ€tezustand kommt. Der Zugriff erfolgt ĂŒber Access-Tokens, siehe Entwicklung fĂŒr die Erzeugung eines eigenen Tokens fĂŒr die lokale Entwicklung.

Server #

Der Server, auf dem alle Komponenten außer ChurchTools laufen, ist ein vServer. Ein direkter Zugriff auf den Server ist fĂŒr die normale Entwicklung nicht nötig — der Container wird ĂŒber das Jenkinsfile automatisch auf diesem Server deployt, inklusive der nötigen Konfiguration. Konfigurationsdateien und weitere Volumes liegen ebenfalls auf dem Server und werden, wie im Jenkinsfile festgelegt, in den Container eingebunden.