THIS IS A TEST INSTANCE ONLY! REPOSITORIES CAN BE DELETED AT ANY TIME!

You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Robin Sonnabend a411b72be4 Remove debug output 7 days ago
common@e9e79e088d Add version field to auth cookie 3 years ago
example-config Add installation instructions 4 years ago
migrations Add new column latex_template to protocoltype in db 3 years ago
migrations-mysql OldTodos for mysql schema 2 years ago
models Remove debug output 7 days ago
static Added syntax highlighting to protokollsyntax examples 3 years ago
templates Make protocol metadata a link if it's an URL pointing to a whitelisted domain 7 days ago
views Reviwed the Todo overview page 3 years ago
.flake8 Add support for reporting issues to sentry 3 years ago
.flaskenv Update requirements to Flask 1.0 3 years ago
.gitignore Add: local template path and tex-customisation 4 years ago
.gitmodules Move back.py to common-web 3 years ago
DEVELOPMENT.md Add comment to create DOCUMENTS_PATH 3 years ago
LICENSE Add license 4 years ago
README.md Specify required python version 3 years ago
calendarpush.py Parse, check and generate the configuration 3 years ago
check_routes.py Improve *.py code quality 3 years ago
configproxy.py Make protocol metadata a link if it's an URL pointing to a whitelisted domain 7 days ago
decorators.py Move protect_csrf and db_lookup to common-web 3 years ago
legacy.py Parse, check and generate the configuration 3 years ago
protoparser.py Improve dokuwiki template 2 years ago
requirements.txt Update requirements 3 months ago
server.py Fix form misuse 3 months ago
shared.py Merge branch 'master' into 172-dokumentation-ueberarbeiten 3 years ago
start_celery.sh More legacy, can now import every old protocol 4 years ago
tasks.py Be generous with the time given to etherpad 12 months ago
tests.py Some first protocol unit tests 4 years ago
todostates.py Reviwed the Todo overview page 3 years ago
utils.py Differentiate ETHERPAD_URL and ETHERPAD_API_URL 3 months ago
validators.py Improve *.py code quality 3 years ago
wiki.py Parse, check and generate the configuration 3 years ago

README.md

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:

  • python >= 3.5
  • 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