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.
|
7 days ago | |
---|---|---|
common@e9e79e088d | 3 years ago | |
example-config | 4 years ago | |
migrations | 3 years ago | |
migrations-mysql | 2 years ago | |
models | 7 days ago | |
static | 3 years ago | |
templates | 7 days ago | |
views | 3 years ago | |
.flake8 | 3 years ago | |
.flaskenv | 3 years ago | |
.gitignore | 4 years ago | |
.gitmodules | 3 years ago | |
DEVELOPMENT.md | 3 years ago | |
LICENSE | 4 years ago | |
README.md | 3 years ago | |
calendarpush.py | 3 years ago | |
check_routes.py | 3 years ago | |
configproxy.py | 7 days ago | |
decorators.py | 3 years ago | |
legacy.py | 3 years ago | |
protoparser.py | 2 years ago | |
requirements.txt | 3 months ago | |
server.py | 3 months ago | |
shared.py | 3 years ago | |
start_celery.sh | 4 years ago | |
tasks.py | 12 months ago | |
tests.py | 4 years ago | |
todostates.py | 3 years ago | |
utils.py | 3 months ago | |
validators.py | 3 years ago | |
wiki.py | 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:
- 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