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:
- Onboard-Netz: Event-LAN
- Zusatz-Netz: Internet
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
- Debian Jessie 8.8 Netinst-CD
- funktionierende Internetverbindung
- Kabelverbindung auf die Zusatznetzwerkkarte (3COM), später
eth0
Diese Informationen werden in der nachfolgenden Installation benötigt:
- Servername:
server
- Domain:
event
- Name des lokalen Benutzers:
event
- lokales Event-Netz: 172.16.240.0/20
- IP-Adresse des Servers: 172.16.240.10
- SSID: PIRATENEVENT
1. BIOS konfigurieren (F12)
- Booten von CD konfigurieren
- Übrige Einstellungen auf Sinnhaftigkeit überprüfen
- Halt on: No Errors, damit das System ohne Eingabegeräte startet
2. Minimalinstallation
- Setup von CD durchführen
- Server und Benutzername wie oben
- Bei Netzwerk einrichten die zusätzliche 3Com-Karte (eth0) auswählen
- Alle Daten auf eine Partition
- Bei der Paketauswahl (
tasksel
) alles abwählen
/etc/apt/sources.list
aktualisieren (contrib non-free)- APT konfigurieren (Editor
nano
odervi
)- /etc/apt/apt.conf
APT::Install-Recommends "0"; APT::Install-Suggests "0";
- Wichtigste Pakete und Fernzugang aktivieren
apt-get install aptitude joe openssh-server
- System aktualisieren
apt-get update apt-get upgrade
- Root-Login mit ssh erlauben:
/etc/ssh/sshd_config
konfigurierenPermitRootLogin
auskommentierenservice sshd restart
- Aufschalten mit SSH zur weiteren Konfiguration
Befehle können mit Cut&Paste übertragen werden, das ist viel schneller! systemd
entfernenapt-get install sysvinit-core reboot apt-get purge systemd deluser systemd-timesync deluser systemd-network deluser systemd-resolve deluser systemd-bus-proxy delgroup systemd-journal rm -Rf /var/lib/systemd
3. Grundkonfiguration
- Installation weiterer Pakete
aptitude install ntp ntpdate psmisc htop sudo firmware-linux rungetty
- Überflüssiges entfernen
aptitude purge laptop-detect tasksel tasksel-data task-german os-prober rdnssd
- Booten beschleunigen (Grub Konfiguration)
- BIOS einstellen booten nur von nur HDD
- Debian Bootmenü ausstellen
- /etc/default/grub
GRUB_DEFAULT=0 GRUB_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT=3 GRUB_HIDDEN_TIMEOUT_QUIET=true
update-grub
- Netzwerk
- /etc/network/interfaces
auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 172.16.240.10 netmask 255.255.240.0
4. Services für das Event-LAN
- Pakete installieren
aptitude install unbound nsd dnsutils isc-dhcp-server
- Namensauflösung mit Unbound und NSD
- Unbound auf Port 53, eigenes rekrusives DNS
- NSD auf Port 5053, für die Domain event
- Unbound-Konfiguration:
- /etc/unbound/unbound.conf
server: verbosity: 1 interface: 127.0.0.1 interface: 172.16.240.10 port: 53 do-ip6: no access-control: 0.0.0.0/0 refuse access-control: 127.0.0.0/8 allow access-control: 172.16.240.0/20 allow do-not-query-localhost: no domain-insecure: "event" local-zone: "240.16.172.in-addr.arpa." transparent stub-zone: name: "event" stub-addr: 127.0.0.1@5053 stub-zone: name: "1.0.10.in-addr.arpa." stub-addr: 127.0.0.1@5053
- NSD-Konfiguration:
- /etc/nsd/nsd.conf
server: ip-address: 127.0.0.1 port: 5053 ip4-only: yes zone: name: event zonefile: event.zone zone: name: 240.16.172.in-addr.arpa zonefile: 240.16.172.zone
- event.zone
; Forward Zone $ORIGIN event. $TTL 1D @ IN SOA ns1.piratenpartei-sh.de. hostmaster.piratenpartei-sh.de. ( 2017060101 ; <yyyymmdd><serial> 4H ; slave refresh 1H ; slave retry in case of a problem 1W ; slave expiration time 15M ) ; nxdomain ttl server A 172.16.240.10 slides CNAME server
- 240.16.172.zone
; Reverse zone $TTL 1D @ IN SOA ns1.piratenpartei-sh.de. hostmaster.piratenpartei-sh.de. ( 2017060101 ; <yyyymmdd><serial> 4H ; slave refresh 1H ; slave retry in case of a problem 1W ; slave expire 15M ) ; nxdomain ttl 10 PTR server.event.
- DHCP-Server
- /etc/default/isc-dhcp-server
INTERFACES="eth1"
- /etc/dhcp/dhcpd.conf
option domain-name "event"; option domain-name-servers server.event; default-lease-time 1800; max-lease-time 7200; log-facility local7; subnet 172.16.240.0 netmask 255.255.240.0 { authoritative; option domain-name "event"; range 172.16.240.100 172.16.255.255; option routers 172.16.240.10; option domain-name-servers 172.16.240.10; option ntp-servers 172.16.240.10; }
- Namensauflösung für den Server, nachdem der lokale Nameserver jetzt funktionsfähig ist:
- /etc/resolv.conf
domain event search event. nameserver 127.0.0.1
/etc/dhcp/dhclient.conf
anpassen, so daß keine DNS-Einstellungen mehr in die resolv.conf geschrieben werden:domain-name, domain-name-servers, domain-search
entfernen.
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:
- Protokollieren
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/"