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:
- clone the repository
- create a python virtualenv and install the packages from
requirements.txt
there - create a database (tested with postgres and sqlite, but feel free to use whatever you like and SQLAlchemy supports
- create
config.py
withflask 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
andSECURITY_KEY
to something random (although the generated config already uses random values generated withos.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 methodsauthenticate
,groups
andall_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)
- create the database schema with
flask db upgrade
- 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
- 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
- Test if it is working properly