Konfiguration ============= Als OperatorIn kannst du SponsorInnen und Tags verwalten, den Server neu starten und irgendwann mal noch viele andere tolle Dinge. Wichtig: IdR willst du den Server als root starten, vor allem, wenn er auf einem privilegierten Port läuft oder aus einem Initscript gestartet wird. Der Server weigert sich aber, als root zu laufen. Daher musst du als erstes einen Unix-Nutzer anlegen (oder aussuchen), als der der Server laufen wird und als dieser Nutzer ``sotoferm set user `` sagen. Beim Start als root müsst ihr der Maschine außerdem in der Umgebungsvariable ``SOFOFILES`` das Verzeichnis mitteilen, in dem sich die Datenbankdateien befinden. Das ist normalerweise das Unterverzeichnis sofoterm vom Home des Nutzers. Sponsor hinzufügen, löschen und anzeigen:: sofoterm add sponsor xyz sofoterm remove sponsor xyz sofoterm show sponsor Es gibt irgendwo eine Liste auf Papier (oder ähnlich), die sagt, welche sponsor-Schlüssel zu welchen Gruppen gehören. Ansonsten weiß das niemand. Genauso geht das für tags:: sofoterm add tag lila sofoterm remove tag lila sofoterm show tag Tags sollten nur als Kleinbuchstaben bestehen; wir sollten eine Inflation vermeiden. Fürs wöchenliche Mailing braucht es erstens eine URL von der Mailman-Seite, auf die Leute posten müssen, wenn sie die Liste abonnieren wollen: sofoterm set mailmanURL http://lists.sofo-hd.de/cgi-bin/mailman/subscribe/kal Die URL ist die des Listeninfos, nur mit subscribe statt listinfo. Mails verschicken ================= Termine-Mails werden mit dem Kommando ``sofoterm mail `` erzeugt. Damit das geht, muss man mit ``sofoterm set mailFrom `` eine From-adresse gesetzt haben. Das Kommando gibt einen Text aus, der so an einen MTA übergeben werden kann, etwa (mit den üblichen sendmail-kompatiblen Geschichten unter Unix):: sofoterm mail 9 liste@server.net | /usr/sbin/sendmail -t -oi -odq Backup/Geschichte ================= Im Augenblick macht das System keine eigene Versionsverwaltung, d.h. anders als bei einem Wiki gibts immer nur eine Fassung jedes Termins; wird editiert oder gelöscht, verschwindet die vorherige Version. Um dennoch eine gewisse Rekonstruktion der Geschehnisse zu erlauben, kann man die Datenbank dumpen. Dazu dient das sofoterm dump-Kommando, das je nach Argument verschiedene Dinge dumpt: * kein Argument: Alle augenblicklichen Termine nach stdout * "archive": Das Archiv nach stdout * "new": Die Termine, die seit dem letzten Mal geändert wurden, in eine Datei Damit "new" funktioniert, muss man dumpDir auf etwas konfigurieren, in das der Server schreiben kann. Dort entstehen dann bei jedem Aufruf Dateien mit dem Dump-Zeitpunkt als Namen. Mit diesen Dateien kann verfahren werden, wie es gerade bequem ist, der Server braucht sie nicht. In ihnen stehen aber die Sponsoren-Schlüssel (was bei den anderen Dumps nicht so ist), insofern sollten sie nicht allzu weit gestreut werden. Logos ===== Man kann Logos von Organisationen unterbringen, die z.B. in einem::
    dargestellt werden. Dazu kommt ein Logo (halbwegs klein, empfohlen png-Format) nach static/logos; dann macht man ein Tag gleichen Namens. Das entsprechende Logo wird dann bei Terminen angezeigt, die das entsprechende Tag haben. Initscript ========== Hier noch ein initscript, wie es für Debian squeeze funktioniert. Wenn dein Server nicht unter dem User sofo läuft, musst du noch den Pfad hinter SOFOFILES anpassen:: ### BEGIN INIT INFO # Provides: Sofoterm # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop sofoterm server ### END INIT INFO # ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin SOFOFILES=/home/sofo/sofoterm" . /lib/lsb/init-functions SERVER_BIN="$ENV /usr/local/bin/sofoterm" case $1 in start) log_daemon_msg "Starting sofoterm server" "sofoterm" if $SERVER_BIN restart; then log_end_msg 0 else log_end_msg 1 fi ;; stop) log_daemon_msg "Stopping sofoterm server" "sofoterm" if $SERVER_BIN stop; then log_end_msg 0 else log_end_msg 1 fi ;; reload | force-reload) log_daemon_msg "Reloading sofoterm server config" "sofoterm" if $SERVER_BIN reload $2 ; then log_end_msg 0 else log_end_msg 1 fi ;; restart) log_daemon_msg "Restarting sofoterm server" "sofoterm" if $SERVER_BIN restart; then log_end_msg 0 else log_end_msg 1 fi ;; *) log_success_msg "Usage: /etc/init.d/sofoterm {start|stop|restart|reload|force-reload}" exit 1 ;; esac SSL === Auch wenn es gegen die meisten Privacy-Bedrohungen nichts hilft: Um SSL kommt mensch heute nicht mehr rum. Hier ist, was zu tun ist, um SSL mit letstencrypt und acme-tiny zu machen. Im Beispiel wird das kryptographische Material nicht sonderlich geschützt. Wenn ihr an https glaubt, wäre es schlau, es irgendwohin zu packen, wo es nur root lesen kann (sofoterm liest die Schlüssel, bevor es seine Privilegien droppt). TBD: Vorgehen mit letsencrypt und acme-tiny basteln.