Benutzer-Werkzeuge

Webseiten-Werkzeuge


hosting:openslides:admin
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


hosting:openslides:admin [2021/01/25 20:14] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== 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
 +<code>
 +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
 +</code>
 +
 +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
 +
 +
 +<code>
 +
 +[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
 +
 +</code>
 +
 +  * 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.
 +  * https://pypi.org/project/openslides  (Einfache OpenSlides Installation ohne systemd)
 +  * https://www.computerclub-pinneberg.de/openslides (lokale Installation für Betrieb mit Beamer (teils veraltet))
 +
  
hosting/openslides/admin.txt · Zuletzt geändert: 2021/01/25 20:14 von 127.0.0.1