blob: 359b573a363aead5d13ea9815c0d4963c5907f2f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
Fit
===
Fit ist das Klausurenarchiv von Spline an der Freien Universität Berlin.
Jegliche Daten werden in einem Git-Repository (vom Typ 'bare') verwaltet.
Klausuren können über ein Webinterface einfach hoch- und heruntergezuladen
werden. Fit ist in Python2 mit Hilfe von Flask und pygit2 geschrieben.
Setup
-------
$ git clone .../fit.git # Source-Code herunterladen
$ cd fit
$ cp settings.py.sample settings.py # Konfigurationsdatei erstellen
$ nano settings.py
$ pip install -r requirements.txt # Abhängikeiten installieren
$ export LD_LIBRARY_PATH=/usr/local/lib/ # libgit2.so zum LD Path hinzufügen
$ python app.py # Test-Server starten
Config
------
* MAX_CONTENT_LENGTH - Maximale Größe von Dateien beim Upload (in Bytes)
* DEBUG
* FORM_START_YEAR - Startjahr für Upload-Formular
* ALLOWD_EXTENSIONS - Erlaubte Dateien beim Upload
* STUDIES - Dictionary von Studiengängen. Die Liste von Tuples sind Basismodule
eines Studienganges. Sie werden bei der Modul-Auswahl beim
Upload-Formular immer angezeigt.
Nginx
-----
Um das Klausurenarchiv hinter einem Nginx laufen zu lassen, sollte dieser
erstmal konfiguriert werden. Hierzu am besten die nginx.cfg benutzen und die
DOMAIN_URL, sowie INSTALL_PATH mit den korrekten Werten ersetzten. Danach kann
das Klausurenarchiv mit Hilfe von uwsgi gestartet werden:
$ LD_LIBRARY_PATH=/usr/local/lib/ uwsgi -s /tmp/uwsgi.sock -w app:app &
$ chmod 777 /tmp/uwsgi.sock
Damit die Zip- und Tar-Gz-Archive korrekt erstellt werden, sollten noch Cronjobs
für jeden Studiengang eingerichtet werden:
$ cronjob -e
0 * * * * cd INSTALL_PATH/static/studies/informatik.git && /usr/bin/git archive -o ../informatik.zip HEAD
Munin
-----
Für das Munin-Plugin sollte unter /etc/munin/plugins folgendes Skript hinterlegt
werden:
#!/bin/bash
cd INSTALL_PATH
LD_LIBRARY_PATH=/usr/local/lib/ python munin.py $1
|