Inhaltsverzeichnis

OpenSlides-Server Installationsanleitung

Beispielhaftes Setup anhand eines Dell Optiplex 780. Die Installationsdauer sollte bei unter einer Stunde liegen. Es wurde eine zusätzliche Netzwerkkarte eingebaut:

Der Server soll einen Beamer direkt ansteuern. Aus diesem Grund wird das Gerät so konfiguriert, daß ein Benutzer automatisch in eine minimale graphische Oberfläche bootet. Über einen Browser wird dann der Projektor Nr. 1 direkt dargestellt.

Zusatznutzen: Über das Event-LAN kann ein dort angeschlossener Streaming-PC direkt auf den Projektor zugreifen und damit leicht in den Stream einbinden. Es wird dann keine weitere Hardware benötigt um das Beamerbild abzugreifen.

0. Rahmendaten / Vorbereitung

Diese Informationen werden in der nachfolgenden Installation benötigt:

1. BIOS konfigurieren (F12)

2. Minimalinstallation

3. Grundkonfiguration

4. Services für das Event-LAN

5. OpenSlides

Openslides-Version 2.3 unter Debian 10 Buster.

Die Installation unter Debian funktioniert leider nicht exakt so, wie in der Openslides-Dokumentation beschrieben. Deshalb sind einige zusätzliche Schritte erforderlich:

aptitude install python python-pip python-pathlib \
    python3 python3-dev python3-pip build-essential screen 
pip3 install --upgrade pip
pip install --upgrade six
pip install openslides==2.3
/etc/rc.local
screen -dm -S slides openslides runserver 127.0.0.1:8000

Der Programmcode von Openslides landet dann unter /usr/local/lib/python3.4/dist-packages/openslides.

Einmal OpenSlides starten, damit wird die initiale Konfiguration settings.py angelegt.

openslides

Nachdem das System gestartet ist, kann es gleich wieder mit CTRL-C beendet werden.

Redis

aptitude install redis-server
pip3 install asgi_redis==1.4.3
pip3 install django-redis==4.9.0
pip3 install django-redis-sessions==0.6.1
settings.py
use_redis = True

Nginx

In einer Produktivumgebung sollte Openslides hinter einem Proxy betrieben werden. Damit kann z.B. eine verschlüsselte Verbindung über https realisiert werden.

/etc/nginx/sites-avaliable/default
[...]
location / {
    proxy_pass http://localhost:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto "https";
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
}

Die statischen Dateien sollten direkt ausgeliefert werden. Dazu ist ein wenig VOrarbeit erforderlich:

settings.py
STATIC_ROOT = '/var/www/html/static'
/etc/nginx/sites-avaliable/default
[...]
location /static/ {
    root /var/www/html;
}

und zuletzt:

$ openslides collectstatic

MariaDB

Anmerkung: Das Original MySQL wollen wir nicht mehr ;-)

Programme installieren:

aptitude install mariadb-server libmariadb-client-lgpl-dev libmysqlclient-dev
pip install mysqlclient

Datenbank und Benutzer anlegen:

mysql -u root -p
> CREATE DATABASE openslides CHARACTER SET UTF8;
> CREATE USER openslides@localhost IDENTIFIED BY '********';
> GRANT ALL PRIVILEGES ON openslides.* TO openslides@localhost;
> FLUSH PRIVILEGES;

Konfigurationseinstellungen, die Einstellungen zu SQLite werden natürlich gelöscht bzw. auskommentiert

settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'openslides',
        'USER': 'openslides',
        'PASSWORD': '********',
        'HOST': 'localhost',
        'PORT': '',
    }
}

Die Datenbank wird nach einem Start des Programms automatisch initialisiert. Ansschließend kann noch folgende Initialisierung durchgeführt werden, das erspart den Gang in die Web-Einstellungen:

mysql -u root -p
> USE openslides;
> INSERT INTO core_configstore VALUES (1, 'general_system_enable_anonymous', 'true');

Plugins

Momentan gibt es kein Plugin, welches zusätzlich zu installieren wäre. GGf. wäre interessant, falls es jemand programmiert:

6. Beameransteuerung

Da der Server eine Graphikausgabemöglichkeit besitzt, bietet es sich geradezu an, einen Beamer direkt anzuschließen. Dazu ist eine Graphikoberfläche erforderlich, wir wählen die Minimalversion Openbox.

aptitude install xserver-xorg xserver-xorg-core xserver-xorg-video-fbdev \
    xserver-xorg-video-intel xserver-xorg-input-evdev  x11-xserver-utils xinit \
    openbox lxterminal chromium chromium-l10n

In der Web-Konfiguration von Openslides muß „Erlaube Zugriff für anonyme Gast-Nutzer“ aktiviert werden. Damit kann der Server-PC dann automatisch den Projektor darstellen.

Automatische Anmeldung

/etc/inittab
1:2345:respawn:/sbin/rungetty tty1 -u root -- login -f event
/home/event/.bash_profile
# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi
 
# X autostart only from local tty
case $(tty) in /dev/tty[0-9]*)
    exec startx -- -nocursor
    ;;
esac

Deaktivieren der Stromsparfunktion, Ausstellen des Bildschirmschoners und starten eines Browsers im Vollbild

/etc/xdg/openbox/autostart
xset -dpms &
xset s noblank &
xset s off &
chromium --kiosk "http://172.16.240.10:8000/projector/1/"