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
apt install build-essential python3-dev python3-venv redis-server mariadb-server libmariadb-client-lgpl-dev default-libmysqlclient-dev python-mysqldb
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;
as root:
#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)“
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
### fertig
Diese Anleitung basiert großteils auf den Anleitungen des Computerclub Pinneberg und des pypi.org-Projektes.