Duden Korrekturserver: Administration

Lizenzierung

Der Duden Korrekturserver verlangt zum Betrieb einen Lizenzschlüssel, der auf dem Server installiert werden muss. Lizenzschlüssel für den Duden Korrekturserver können permanent oder temporär sein und haben im letzteren Fall ein Ablaufdatum, nach dem der Schlüssel nicht mehr akzeptiert wird.

Um den Lizenzstatus des Duden Korrekturservers zu überprüfen, klicken Sie auf Einstellungen ‣ Lizenz, um die Lizenzinformationen anzuzeigen.

Wenn kein gültiger Lizenzschlüssel installiert oder der Lizenzschlüssel abgelaufen ist, wird auf der Startseite des Servers eine entsprechende Nachricht eingeblendet:

_images/static_DKS_LicenseMessage.png

Durch einen Klick auf den Link in der Nachricht oder durch die Auswahl von Einstellungen ‣ Lizenz gelangen Sie zur Lizenzübersicht. Auf dieser Seite erhalten Sie einen Überblick über den aktuellen Lizenzstatus und haben die Möglichkeit, einen neuen Lizenzschlüssel zu installieren.

_images/DKS_License.png

Bemerkung

Die folgenden Abschnitte beziehen sich auf Installationen des Duden Korrekturservers, die nicht in einer Docker-Umgebung betrieben werden. In einer Docker- Umgebung empfehlen wir, die Datei mit dem Lizenzschlüssel außerhalb des Docker Containers zu speichern und sie dem Container über ein Docker-Volume zur Verfügung zu stellen. Einzelheiten hierzu finden sie im plattformspezifischen Installationshandbuch des Duden Korrekturservers.

Zur Installation eines neuen Lizenzschlüssels speichern Sie diesen zunächst auf Ihrem Arbeitsplatz und betätigen dann die Schaltfläche zur Dateiauswahl. Navigieren Sie im Dateiauswahldialog zur Datei mit dem neuen Lizenzschlüssel und wählen Sie diese aus.

Klicken Sie danach auf die Schaltfläche Lizenz installieren, um die Lizenzdatei auf den Server hochzuladen und zu installieren. Wenn dieser Vorgang erfolgreich war, erscheint die Startseite des Servers, wo eine entsprechende Nachricht eingeblendet wird.

_images/static_DKS_LicenseInstalledMessage.png

Falls der neue Lizenzschlüssel ungültig oder beschädigt sein sollte, wird der Schlüssel nicht installiert, und es erscheint nach dem Hochladen der Datei ein entsprechender Hinweis.

_images/static_DKS_LicenseFailed.png

Sie können in diesem Fall den Vorgang wiederholen. Bitte kontaktieren Sie EPC unter dpf-support@epc.de, falls die Schwierigkeiten bei der Installation eines Lizenzschlüssels andauern sollten.

Benutzerverwaltung und Rechte

Der Duden Korrekturserver unterstützt seit Version 1.4 eine integrierte Benutzerverwaltung, die mit den Berechtigungen für einzelne Funktionen gekoppelt ist. Hierbei werden fünf Rollen mit unterschiedlichen Rechten unterschieden:

  • api erlaubt das Nutzen der API-Funktionen, ermöglicht aber keinen Zugriff auf die Web-Oberfläche des Duden Korrekturservers.

  • Wörterbuch-Editor erlaubt das Editieren bestehender Wörterbücher.

  • Wörterbuch-Administrator kann Wörterbücher und Korrektureinstellungen (Korrekturprofile) anlegen, modifizieren und löschen.

  • Administrator kann darüber hinaus weitere Benutzer anlegen oder löschen und Lizenzdateien installieren

  • Super-Administrator entspricht der Administrator-Rolle, kann aber weder neu angelegt noch gelöscht werden.

Bemerkung

In der aktuellen Version gelten die Benutzerrechte lediglich für den Zugriff auf die Web-Oberfläche des Duden Korrekturservers. Der API-Zugriff wird zur Zeit global freigegeben oder auf Benutzer mit API-Rechten beschränkt, innerhalb der API-Funktionen aber nicht weiter differenziert!

Im Auslieferungszustand ist ein Benutzer „duden“ mit dem Passwort „duden“ und der Rolle Super-Administrator angelegt. Es wird empfohlen, den Namen und das Passwort für diesen Benutzer unmittelbar nach der Installation zu ändern.

anonym

api

WB-Editor

WB-Adm.

Adm.

Berechtigung

j

j

j

j

j

Vorschläge anlegen

n

j

j

j

j

REST API nutzen

n

n

j

j

j

Testmöglichkeit für Korrektur nutzen

n

n

j

j

j

Wörterbucheinträge bearbeiten (erstellen, modifizieren,löschen)

n

n

n

j

j

Wörterbücher erstellen oder löschen, Wörterbuchinformationen bearbeiten

n

n

n

j

j

Korrekturprofile erstellen, bearbeiten oder löschen.

n

n

n

n

j

Benutzer hinzufügen, bearbeiten oder löschen

Der Nutzer mit der Rolle Super-Administrator hat die gleichen Rechte wie Benutzer mit der Rolle Administrator, kann aber nicht gelöscht werden. Die Rolle Super-Administrator kann weder entzogen noch an einen anderen Benutzer vergeben werden.

Interne Rollenhierarchie

Interner Rollenname

DKS-Rolle und Anmerkung

IS_AUTHENTICATED_ANONYMOUSLY

anonym (verbunden ohne Login)

ROLE_USER

keine (Login ohne weitere Rechte)

ROLE_API

api

ROLE_WB_EDITOR

Wörterbuch-Editor

ROLE_WB_ADMIN

Wörterbuch-Administrator

ROLE_ADMIN

Administrator

ROLE_SUPER_ADMIN

Super-Administrator

Bitte kontaktieren Sie EPC unter dpf-support@epc-de, wenn Sie weitergehende Anforderungen an die Benutzerverwaltung haben oder an einer Anbindung an ein bestehendes System interessiert sind.

Sichern des API-Zugriffs

Ab Version 1.5 des Duden Korrekturservers ist es möglich, den Zugriff auf das API des Servers auf Benutzer mit den Rechten api zu beschränken.

Durch die Auswahl von Einstellungen ‣ DKS-Einstellungen gelangen Sie zu den Einstellungen des Duden Korrekturservers.

_images/DKS_SecureApi.png

Hier können Sie mit der Checkbox API-Anfragen schützen festlegen, ob der Zugriff auf das API die Authentisierung mit einem Benutzernamen und einem Passwort erfordert.

Vorschläge durch anonyme Benutzer

In der Standardeinstellung des Duden Korrekturservers ist es möglich, auf der Startseite ohne vorheriges Login Vorschläge für richtig geschriebene Wörter im Wörterbuch „Proposals“ zu hinterlegen. Falls dieses Verhalten unerwünscht ist lässt es sich durch das Setzen der Umgebungsvariablen REQUIRED_ROLE_FOR_PROPOSALS ändern.

In der Standareinstellung wird für die Eingabe von Vorschläge die interne Rolle IS_AUTHENTICATED_ANONYMOUSLY vorausgesetzt, d. h. jeder Benutzer (vgl. Interne Rollenhierarchie), der die Startseite des Duden Korrekturservers aufrufen kann, kann einen Vorschlag hinterlegen.

Damit nur authentifizierte Benutzer ab einer bestimmten Berechtigungsebene diese Funktion nutzen können, muss vor der Start des Duden Korrekturservers die Umgebungsvariable REQUIRED_ROLE_FOR_PROPOSALS auf den Namen der korrespondierenden internen Rolle gesezt werden, hier am Beispiel eines Docker-Containers mit docker-compose:

# file docker-compose.yml
...
dks:
  ...
  environment:
    ...
    REQUIRED_ROLE_FOR_PROPOSALS: ROLE_USER

Dieses Beispiel würde jedem Benutzer, der sich mit Benutzernamen und Passwort angemeldet hat, erlauben, neue Vorschläge einzugeben - ohne, dass dieser Benutzer über weitergehende Rechte verfügen muss. Analog lassen sich auch alle anderen internen Rollen verwenden, um die Möglichkeit des Hinterlegens von Korrekturvorschlägen weiter einzuschränken.

Für das genaue Vorgehen in einer konkreten Installationsumgebung beachten Sie bitte die Informationen im systemspezifischen Installationshandbuch.

Anzeige von Versions- und Statusinformationen

In der Standardeinstellung des Duden Korrekturservers werden auf der Startseite folgende Informationen angezeigt:

  • Versionummer des Duden Korrekturservers

  • Anzahl der angerabeiteten Check-Anfragen

  • Die Version der linguistischen Basis

  • Einen Link zum Plug-in Download

Um zu erreichen, dass diese Informationen erst dann angezeigt werden, wenn sich ein Benutzer erfolgreich angemeldet hat, kann die Umgebungsvariable SHOW_VERSION_INFO_FOR_ANONYMOUS_USERS auf den Wert false gesetzt werden. Hat diese Variable den Wert true oder ist sie nicht gesetzt, werden diese Informationen immer angezeigt.

Beispiel eines Docker-Containers mit docker-compose:

# file docker-compose.yml
...
dks:
  ...
  environment:
    ...
    SHOW_VERSION_INFO_FOR_ANONYMOUS_USERS: 'false'

Dieses Beispiel würde sicherstellen, dass Informationen zur Serverversion, zur Anzahl der abgearbeiteten Anfragen, etc. erst nach dem Login angezeigt werden.

Für das genaue Vorgehen in einer konkreten Installationsumgebung beachten Sie bitte die Informationen im systemspezifischen Installationshandbuch.

Konfigurationsdateien

Die Konfiguration der Dienste (Web Server apache2 , PHP Fast Process manager php-fpm, etc.) ist im systemspezifischen Installationshandbuch beschrieben.

Logfiles

Bemerkung

Die folgenden Abschnitte beziehen sich auf Installationen des Duden Korrekturservers, die nicht als Docker-Container betrieben werden. Für Docker-Container gilt, dass Log-Ausgaben auf die Standardausgabe des Containers erfolgen und dass mit den Standardmitteln (z. B. dem Kommando docker logs) darauf zugegriffen werden kann.

Bedingt durch den modularen Aufbau des Duden Korrekturservers werden Log-Informationen an unterschiedlichen Stellen aufgezeichnet.

  • Log-Dateien des Web Servers Apache

  • Log-Dateien des FCGI Process Managers php5-fpm

  • Log-Dateien der Korrekturengine

  • Log-Dateien der Webapplikation

Rotation der Log-Dateien

Die geschriebenen Log-Dateien werden über den Standard-Mechanismus logrotate in zyklischen Abständen rotiert, wobei alte Log-Dateien gelöscht werden, um Plattenplatz einzusparen.

Für den Web-Server und für php5-fpm werden die Standardeinstellungen verwendet. Eine eventuell erforderliche Anpassung kann in den Dateien /etc/logrotate.d/apache2 und /etc/logrotate.d/php5-fpm vorgenommen werden.

Für die Korrekturengine sind in der Datei /etc/logrotate.d/phdpf folgende Einstellungen hinterlegt:

/var/log/phdpf.log {
     daily
     rotate 4
     delaycompress
     compress
     notifempty
     missingok
     copytruncate
}

Die Webapplikation speichert ihre Logs in /opt/epc/dks/var/log/

Für die Korrekturengine sind in der Datei /etc/logrotate.d/dks folgende Einstellungen hinterlegt:

/opt/epc/dks/var/log/*.log {
     daily
     rotate 4
     delaycompress
     compress
     notifempty
     missingok
     copytruncate
}

Sicherung

Der Duden Korrekturserver speichert bzw. verändert keine lokalen Dateien, sondern speichert alle Informationen in einer MySQL-Datenbank. Für Backup und Restore eines Duden Korrekturservers werden daher nur die ursprünglichen Installationsquellen für den Duden Korrekturserver und ein aktueller Dump der Datenbank benötigt.

Bemerkung

Die folgenden Abschnitte beziehen sich auf Installationen des Duden Korrekturservers, die nicht in einer Docker-Umgebung betrieben werden. Für Docker-Umgebungen gilt, dass das Datenbanksystem nicht innerhalb des gleichen Containers laufen sollte wie der Duden Korrekturserver. Backup und Restore der Datenbank sollten über geeignete Mechanismen erfolgen, die von Installation und Betrieb der Datenbank abhängen.

Die Sicherung der Datenbank erfolgt nächtlich über einen cron-job, der einen vollständigen Dump der Datenbank in der Datei /opt/epc/dks/backup/dump.sql hinterlegt.

Die Datenbanksicherung wird wie die Log-Dateien über den logrotate-Mechanismus zyklisch rotiert. Dazu sind in der Datei /etc/logrotate.d/dksdb folgende Einstellungen hinterlegt:

/opt/epc/dks/backup/dump.sql {
    daily
    rotate 4
    compress
    nocreate
    notifempty
    missingok
}

Bei der täglichen Rotation der Log-Dateien wird die Sicherungsdatei komprimiert. Nach erfolgter Rotation der Log-Dateien findet sich der jeweils aktuellste Dump der Datenbank in der Datei /opt/epc/dks/backup/dump.sql.1.gz

Rücksicherung

Zur Rücksicherung ist die gewünschte Datei zunächst zu dekomprimieren.

gunzip /opt/epc/dks/backup/dump.sql.1.gz

Die dekomprimierte Datei kann dann als Eingabe für mysql verwendet werden. Komfortabler geht es mit folgendem Shell-Script, das auch in der Datei /opt/epc/dks/scripts/restoredb.sh hinterlegt ist:

#!/bin/bash
# Script to restore the database from a dump file
# This is meant to restore a database backup into an existing DKS database
BASEDIR=/opt/epc/dks
# default values for backup: Useful to answer the question "Where is my dump?"
BACKUPDIR=$BASEDIR/backup
BACKUPFILE=$BACKUPDIR/dump.sql
PARMFILE=$BASEDIR/app/config/parameters.yml
MYSQL=/usr/bin/mysql

# get db partameters
source $BASEDIR/.env.local

DBNAME=$DATABASE_NAME
USER=$DATABASE_USER
PASS=$DATABASE_PASSWORD

if [ $# -ne 1 ] ; then
    echo "Usage: $0 filename"
    echo "Restore database from file"
    exit
fi

BACKUPFILE=$1

if [ ! -r $BACKUPFILE ] ; then
    echo "Cannot read file $BACKUPFILE"
    exit
fi

echo "About to overwrite existing data base tables with contents of file"
echo "  $BACKUPFILE"
echo "Press Enter to continue or CTRL-C to cancel"
read
echo -n "Restoring database..."
$MYSQL -u $USER -p$PASS $DBNAME < $BACKUPFILE
echo "done"

Cron Jobs

Für wiederkehrende Aufgaben sind auf dem Server mehrere cron jobs eingerichtet, die über Dateien im Verzeichnis /etc/cron.d gesteuert werden.

# /etc/cron.d/dksjobs: crontab fragment for dks
#  This removes orphanded cache entries and dumps the database
PATH=/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
# at 03:37 every night: clean cache
37 3     * * *     duden   [ -x /opt/epc/dks/scripts/cleanup.sh ] && /opt/epc/dks/scripts/cleanup.sh
# at 03:48 every night: dump database
48 3     * * *     duden   [ -x /opt/epc/dks/scripts/dumpdb.sh ] && /opt/epc/dks/scripts/dumpdb.sh

Abschalten von Funktionen

Um bei etwaigen Fehlfunktionen des Servers dessen Funktionen teilweise oder vollständig abschalten zu können, bestehen zwei Möglichkeiten:

  • Um bestimmte Worte von der Silbentrennung auszuschließen, lässt sich eine Ausnahmeliste solcher Worte anlegen.

  • Die gesamten Funktionen zur Rechtschreibprüfung und zur Silbentrennung lassen sich stilllegen.

Bemerkung

Bitte benachrichtigen Sie EPC unter dpf-support@epc.de, falls Sie auf einen dieser Mechanismen zurückgreifen müssen.

Ausschluss von der Silbentrennung

Falls bestimmte Worte bei der Silbentrennung zu internen Serverproblemen führen sollten, lässt sich eine Liste solcher Worte anlegen. Worte, die in dieser Liste gefunden werden, werden nicht an die Funktionen zur Silbentrennung weitergeleitet.

Um eine solche Liste anzulegen, kann eine Datei erstellt werden, die die auszuschließenden Wortformen enthält. In dieser Datei müssen die betroffenen Wörter jeweils auf einer einzelnen Zeile in richtiger Groß- und Kleinschreibung angegeben werden. Die Datei muss UTF-8 kodiert sein!

In der Standardeinstellung wird nach einer solchen Datei unter /opt/epc/dks/etc/nohyph.txt gesucht. Falls diese Datei existiert, wird die Liste der auszuschließenden Wörter beim Start des Servers eingelesen.

Änderungen an dieser Liste erfordern einen Neustart des Services php-fpm, um wirksam zu werden.

Dieses Verfahren ist eine Notfallmaßnahme, falls der unwahrscheinliche Fall eintreten sollte, dass bestimmte Wörter bei der Silbentrennung zu internen Serverfehlern führen.

Die üblichen Informationen zur Silbentrennung können über Wörterbucheinträge zu den betreffenden Wörtern hinterlegt werden - durch Trenneinträge ohne Trennstellen kann auch die Trennung eines Wortes mit Wörterbucheinträgen verhindert werden.

Skalierung und Performanz

Die Auslastung eines Duden Korrekturservers hängt von der der konkreten Nutzung und den verwendeten Funktionen ab. Es ist daher nicht ohne Weiteres möglich, pauschale Konfigurationsvorgaben zu machen.

Wir empfehlen stattdessen, mit einer an Richtwerten orientierten Konfiguration zu beginnen, die Systemparameter zu überwachen und bei Bedarf nachzujustieren.