Benutzer-Werkzeuge

Webseiten-Werkzeuge


hosting:openslides:admin

OpenSlides Multiuser/Multinstance mit systemd auf Debian 10

Dies ist noch work in progress. Die Dokumentation ist noch nicht fertig abgeschlossen, da wir parallel noch an einer besseren Implementierung arbeiten Die Konfiguration von nginx oder einem anderen Proxy wird hier nicht behandelt und ist für einen Produktivbetrieb zusätzlich notwendig

Die Installation ist auf einem unprivileged LXC-Container möglich

install requirements

apt install build-essential python3-dev python3-venv redis-server mariadb-server libmariadb-client-lgpl-dev default-libmysqlclient-dev python-mysqldb

setup mysql/mariadb

mysql_secure_installation

ersetze $USERNAME durch den gewünschten usernamen

mysql -u root -p

CREATE DATABASE $USERNAME CHARACTER SET UTF8; ###ersetzen
CREATE USER openslides@localhost IDENTIFIED BY 'SECUREPASSWORD'; ####pwersetzen - nur bei Erstinstallation
GRANT ALL PRIVILEGES ON $USERNAME.* TO openslides@localhost; ###ersetzen
FLUSH PRIVILEGES;

install openslides for user

as root:

  • adduser $USERNAME ###ersetzen - sicheres pw setzen
  • su $USERNAME ###ersetzen
  • cd ~
  • mkdir openslides
  • python3 -m venv .virtualenv
  • source .virtualenv/bin/activate
  • pip install –upgrade setuptools pip six wheel
  • pip install django-redis django-redis-sessions mysqlclient channels-redis
  • pip install openslides

#einmal kurz starten, damit settings.py erstellt wird openslides start

#edit settings.py nano ~/.config/openslides/settings.py

use_redis = True

...

SILENCED_SYSTEM_CHECKS = ['mysql.E001']
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '$USERNAME', ###ersetzen
        'USER': 'openslides',
        'PASSWORD': '****SECUREPASSWORD****', ###ersetzen
        'HOST': '127.0.0.1',
        'PORT': '',
    }
}

comment sqlite3 out

nano .virtualenv/lib/python3.7/site-packages/openslides/main.py change port

nano .virtualenv/lib/python3.7/site-packages/channels_redis/core.py change Line 831 „msgpack.unpackb(message, raw=False)“ to „msgpack.unpackb(message, raw=False, strict_map_key=False)“

systemd

nano /etc/systemd/system/openslides@.service

[Unit]
Description=OpenSlides
Wants=network.target
After=network.target
After=mysql.service

[Service]
User=%i
Group=%i
ExecStart=/home/%i/openslides/.virtualenv/bin/openslides
Environment=PATH=/home/%i/openslides/.virtualenv/bin
Restart=always

[Install]
WantedBy=multi-user.target
  • systemctl daemon-reload
  • systemctl enable openslides@$USERNAME.service ###ersetzen
  • systemctl start openslides@$USERNAME.service ###ersetzen

### fertig

SAML

  • pip install python3-saml
  • edit settings.py → saml= True
  • start openslides once
  • edit samls_settings.py
  • create certs
  • add to IDP

Danke

Diese Anleitung basiert großteils auf den Anleitungen des Computerclub Pinneberg und des pypi.org-Projektes.

hosting/openslides/admin.txt · Zuletzt geändert: 2021/01/25 20:14 von 127.0.0.1