summaryrefslogtreecommitdiffstats
path: root/README
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