Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

proto3

  • Clone with SSH
  • Clone with HTTPS
  • Forked from protokollsystem / proto3
    11 commits behind the upstream repository.
    Magnus Giesbert's avatar
    Magnus Giesbert authored
    Füge Kategorien für DokuWiki via namensräume hinzu.
    
    Closes #230
    
    See merge request protokollsystem/proto3!23
    4d0b5f39
    History

    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 python configproxy.py create --filename config.py and edit it (make sure that python version >= 3.5)
    • 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