Familienkalender mit MagicMirror
Einen Familienkalender erstellen kann eine Herausforderung sein. Ich habe das komplizierteste Setup gewählt.
Komponenten
Zu den Komponenten:
MagicMirror
MagicMirror ist eine Software um Tagesinformationen hinter einem Spiegel darzustellen. Ich nutze ein RaspberryPI, welcher am TV hängt um unseren Familienkalender anzeigt.
Vdirsyncer
Als Familie sind mehrere Kalender im Einsatz. Damit diese immer aktuell sind, habe ich eine Software gewählt, welche alle 15min
eine Kopie zieht und als *.ics ablegt. Dazu nutze ich Vdirsyncer - dieser Container läuft mit einem Cron-Task und zieht
nach definierten Regeln die Kalender in *.ics Dateien.
Kuberenetes
MagicMirror kann auf dem RaspberryPI direkt laufen. Das Setup hatte ich ursprünglich auch so. Doch gab es immer wiedermal ein hick-up vom Raspberry und das wiederherstellen, war dann doch Mühsam. Zudem wollte ich, dass der Kalender auch im Netz sonst im Familiennetz zur Verfügung steht.
Setup
Was ist nun so kompliziert an diesem Setup? - Ich habe wohl das komplizierteste K8s-Deployment erstellt. In meinem Pod laufen zwei Container und sieben
initContainers. Weshalb?! - Ich musste den MagicMirror mit Plugins bestücken und Daten kopieren.
Plugins installieren
Ein Beispiel. Dieser Init-Container lädt das Plugin MMM-CalendarExt3 herunter - der nächste Container installiert es.
initContainers:
- name: git-calendar-ext-3
image: alpine/git
args:
- clone
- '--'
- 'https://github.com/MMRIZE/MMM-CalendarExt3.git'
- '/opt/magic_mirror/modules/MMM-CalendarExt3'
volumeMounts:
- mountPath: /opt/magic_mirror/modules
subPath: modules
name: magic-mirror
- name: npm-install-calendar-ext-3
image: node
args:
- npm
- install
- '--prefix'
- '/opt/magic_mirror/modules/MMM-CalendarExt3'
volumeMounts:
- mountPath: /opt/magic_mirror/modules
subPath: modules
name: magic-mirror
Alternative
Die Alternative ist, dass ich meinen Container mit MagicMirror selber baue. Doch da ich bisher noch keine interne Registry für Images erstellt habe, will ich das momentan so laufen lassen.