Skip to content
Snippets Groups Projects

Protokollsystem 3

System zur Verwaltung von Protokollen und Sitzungen.

  • Planung der Tagesordnung
  • Einladungsmails
  • Kompilieren vom Protokollquelltext
  • PDF-Protokoll mit LaTeX
  • Protokollversand samt Anhang
  • automatisches Hochladen ins Wiki
  • Etherpadanbindung
  • Todoverwaltung mit mehr Zuständen
  • Beschlussverwaltung
  • Rechteverwaltung (interne Abschnitte)
  • Hochladen der Tagesordnung in einen Kalender
  • externe Protokolle ohne Protokollsyntax

HowTo Setup

Required infrastructure:

  • some WSGI-capable webserver (nginx + uwsgi, …)
  • some database (postgres, …)
  • some LDAP server (Samba 4, slapd, …) for accounts and groups
  • texlive
  • some message broker for celery (redis, …)

Optional infrastructure:

  • a mail server (for sending protocols and invitations)
  • a CUPS printing server (for printing protocols and decisions)
  • an Etherpad (for writing the protocol collectively)
  • a Mediawiki instance (for uploading the protocols there)
  • a CalDAV server (for uploading the events)

Steps:

  1. clone the repository
  2. create a python virtualenv and install the packages from requirements.txt there
  3. create a database (tested with postgres and sqlite, but feel free to use whatever you like and SQLAlchemy supports
  4. create config.py with flask create_example_config config.py and edit it
  • do change everything that is not commented out
  • change commented out settings if they are wrong
  • do change the random keys SECRET_KEY and SECURITY_KEY to something random (although the generated config already uses random values generated with os.urandom)
  • deactivate unwanted features with SOMETHING_ACTIVE = False
  • define a list of authentication backends (usually one):
    • use LdapManager for slapd
    • use ADManager for Samba
    • write your own for anything else (see common/auth.py, the methods authenticate, groups and all_groups are required)
  • MAIL requires an SMTP(S) server, optionally with STARTTLS or TLS
  • PRINTING requires a CUPS printserver
  • ETHERPAD requires an etherpad installation
  • WIKI requires a MediaWiki or DokuWiki installation
  • CALENDAR requires a CalDAV server
  • fix the path to the fonts (and select which to use)
  1. create the database schema with flask db upgrade
  2. configure your server to run the wsgi-application and the celery-server
  • if you use systemd, example service files are located in example-config/ in this repository
  1. configure your webserver to serve the wsgi-application
  • if you use uwsgi+nginx, example config if located in example-config/
  • don't forget to pass the correct IP if you use some proxy-setup and want to use IP-based access per protocol type
  1. Test if it is working properly