(wg. "Jessie-Client" aktualisiert 2015-08-05)

Anleitung zur Installation von tabula.info

Es müssen ein Webserver (der tabulaserver) sowie mehrere Clients in Betrieb genommen werden

Webserver:

Info für s_pdf

s_pdf kann bis zu vier Vertretungspläne ("aktuell" und "kommend" - jeweils für "Schüler" und "Lehrer") anzeigen, man kann ihm aber mehr zur Verfügung stellen. Standardmäßig lädt man die Dateien unter Management hoch. Dabei werden die Dateien unter /opt/tabula.info/cgi-bin/scripts/tmp/upload/ abgelegt. Von dort verarbeitet sie das s_pdf_convert.sh-Skript, da dieser Pfad standardmäßig im Parameter s_pdf_filesource festgelegt ist (als relativer Pfad ab dem tmp-Verzeichnis). Will man stattdessen die Dateien von einer Freigabe auf einem Server oder dem Stundenplanerrechner holen, so muss man dafür sorgen, dass die Freigabe auf dem Linuxserver gemountet ist und den entsprechenden (ggf. absoluten) Pfad dann als s_pdf_filesource eintragen.

s_pdf_convert.sh versucht folgende Dateien zu finden (der erste Treffer in dieser Reihenfolge zählt - es wird dann keine andere Variante mehr gesucht):

Variante 1: Im Stil 2013-01-13_S.pdf (für Schüleranzeigen) mit korrespondierenden Dateien 2013-01-13_L.pdf für Lehreranzeigen. Wird keine Lehrerdatei hochgeladen, so wird die Schülerdatei auch dafür verwendet.
Alternativ im Stil 2013-01-13.pdf für einheitliche Anzeigen.
Genommen werden die nächstbesten Tage, also heute und morgen bzw. die folgenden bis zwei Tage gefunden sind (max 3 Wochen im voraus).
Bei Variante 1 kann man dem Programm auch z.B. für 5 Tage die Pläne zur Verfügung stellen und es werden immer der aktuelle und der kommende angezeigt ohne weiteren Eingriff!
Vorsicht: Nehmen Sie nicht das oben genannte Datum, sondern z.B. das morgige, denn für vergangene Daten wird die Datei nicht mehr konvertiert (ohne Fehlermeldung).

Variante 2: vplanaktuell_S.pdf, vplanaktuell_L.pdf, vplankommend_S.pdf, vplankommend_L.pdf. Ersatz der _L Dateien wie oben.

Variante 3: vplanaktuell.pdf, vplankommend.pdf für alle Anzeigen.

Umfang: Jeder einzelne Plan im PDF-Format darf 1-3 Seiten lang sein. Um die sinnvolle Anzeige kümmert sich das System dann. Zum Testen können Sie beliebige PDF-Dateien (mit geeigneten Dateinamen) probieren.

Schriften: Eingebettete Bilder und Schriften (z.B. beim Format pdf/a) werden berücksichtigt und angezeigt.

Info für s_html

Crontab

Als root muss man die systemweite crontab ergänzen, damit das konfigurierte Skript regelmäßig aufgerufen wird. Gibt es sicher kein automatisch arbeitendes Skript, so kann man den Punkt überspringen. Benötigt wird es z.B. sicher für s_pdf zum Konvertieren der PDF-Dateien.
Dazu fügt man nach dem Aufruf von

    sudo nano /etc/crontab

eine neue Zeile (die untere) hinzu:

# m  h  dom  mon  dow  user       command
*/5  *  *    *    *    www-data   /opt/tabula.info/cgi-bin/scripts/script_dispatcher.sh

Den Erfolg kann man als Admin unter Clients & Status überprüfen.

Sollte das Skript nicht arbeiten, so empfiehlt sich ein Wechsel zum User www-data, Aufruf der bash und dann der Versuch das Skript direkt aufzurufen. Ewaige Fehlermeldungen helfen dann.


Client (tabulaclient):

Prinzipiell kann jeder Rechner, der einen Browser im Fullscreen-Modus betreibt, als Client dienen. Empfehlenswert ist aber eine abgespeckte Betriebssysteminstallation, die möglichst keinen Schaden nehmen kann. Dafür bieten sich LiveCDs an. Unter download ist eine solche als Datei verfügbar:

Wird die heruntergeladene Datei auf CD gebrannt, so kann ein Rechner auch ohne Festplatte von dieser booten und startet schließlich einen Browser, der eine index.html aufruft, welche standardmäßig http://tabulaserver in einem 100%-Frame anzeigt.

Um das System aufrechtzuerhalten wird durch eine bash-Endlosschleife der Browser automatisch neu gestartet falls er abstürzt.

Die genannte index.html ruft außerdem alle 6 Minuten die Startseite des tabulaservers wieder neu auf, um zwischenzeitliche Netzwerkprobleme oder Serverneustarts zu überbrücken.

Am einfachsten testet man so eine iso-Datei mit Virtualbox, und gibt dem virtuellen Rechner die Datei als virtuelle CD.

Bei Problemen: Mit md5sum kann man auch eine Prüfsumme der iso-Datei bilden und mit der entsprechenden Datei aus dem Downloadverzeichnis vergleichen.

Mit den Ubuntubordmitteln (Startmedium erstellen) kann man die Datei auch auf einen USB-Stick übertragen, von dem man danach bei geeignetem BIOS booten kann. Die Betriebssystemversionen muss ungefähr passen: Gute Erfahrungen wurden mit Ubuntu 11.10 und 12.04 gemacht.


Ergänzungen:

dd if=/dev/sdb of=/dev/sda BS=1M 
In diesem Fall sollte der Stick als /dev/sdb und die Festplatte als /dev/sda erkannt worden sein. Das geht direkt vom tabulaclient-system aus, wenn man als Administrator arbeitet.

RaspberryPi oder anderer Linuxrechner als Client

RasPi2 ist definit schnell genug!

Debian-Jessie-Client, der nur einen Browser startet

Es soll keine Desktopumgebung geladen werden - der Verzicht auf einen Window-Manager erschwert aber das Maximieren beliebiger Programme. Daher wird das leichtgewichtige Fluxbox verwendet. Wegen seiner Leistungsfähigkeit wird der Browser Chromium gewählt. Die verwendete Software ist über die Debian-Repositories zu installieren.

Vorgehen:
Quellen:

Eigene Anpassungen

!! Nachdem niemand in den letzten Jahren individuelle Anpassungen gemacht hat, werden die entsprechenden Modulfunktionen in den zukünftigen Versionen entfernt!!

Der größte Aufwand für eine erfolgreiche Nutzung kann die Anpassung an das Vertretungsprogramm sein, dessen Ausgaben angezeigt werden sollen. Gleichzeitg verspricht dies aber die perfekte Anpassung an die eigenen Wünsche - man kann hier seine Programmierfähigkeiten gezielt einbringen. Am KGA wird der Turboplaner von Haneke verwendet. Der passende Import ist programmiert (z.B. mit dynamischem Verkleinern vergangener Stunden, Kürzen von Vornamen, welche für Eindeutigkeit nicht nötig sind, Zusammenfassen aufeinanderfolgender identischer Stunden, Zusammenfassen von bis zu 5 Tagen mit wenigen Vertretungen auf einer Seite usw.). Wer die entsprechende Zeit mitbringt kann natürlich für weitere Programme den Import schreiben oder anpassen. Der vorliegende liest eine csv-Datei ein und produziert die Daten für die Anzeige (Programmmodul s_turbo.py). Bequemer geht es mit den mitgelieferten Importmodulen: Man kann HTML-Dateien und PDF-Dateien, welche die meisten Vertretungsplanprogramme erzeugen können, hochladen. Sie werden sofort angezeigt! (siehe ScheduleType)

Fehlersuche:

Je nach debugging-Einstellungen (der einzelnen Pythonskripte) wird jede HTML-Seite, die tabula.info erzeugt, mit Kommentaren angefüllt, die Debugging-Informationen enthalten. In ti.py kann man einstellen, dass diese Meldungen außerdem im error.log des Apache landen. Dort findet man auch weitere Meldungen, z.B. wenn das Python-Script garnicht starten kann. Dazu am besten in einem eigenen Konsolenfenster (ggf. auch auf einem anderen Rechner/Monitor) den Befehl

tail -f /var/log/apache2/error.log
eingeben und mitlesen...



Koexistenz

Seit 26.3.2014 sind die Preview-Installationsskripte sowohl von tabula.info als auch von Absenzen! so abgeändert, dass insbesondere diese beiden Webservices, im gleichen Zug aber auch andere Webservices, hiermit auf einem Server koexistieren können. Dazu wird je eine Konfigurationsdatei in /etc/sites-availible/ angelegt und mit a2ensite aktiviert. Eine andere Konfigurationsdatei wird nicht mehr geändert. Eine eventuelle default-site wird deaktiviert, kann aber mit a2ensite wieder aktiviert werden. Um verschiedene Webservices ansprechen zu können müssen diese entweder über ihre Namen (tabulaserver bzw. absenzenserver) angesprochen werden, da beide virtual hosts auf der Portnummer 80 lauschen (wie vermutlich auch andere Webservices). Außerdem kann man sie auch direkt über eine individuelle Portnummer ansprechen:
tabula.info über Portnummer 8181, also <ipadresse>:8181
absenzen über Portnummer 8282, also <ipadresse>:8282
Da diese Funktion neu ist, sind Rückmeldungen wichtig!