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.