README.md 2.98 KB
Newer Older
1 2 3 4 5 6 7 8
Note Kfet
=========

Paquets requis
--------------

Les paquets peuvent être récupérés via APT ou PIP.

Hamza Dely's avatar
Hamza Dely committed
9 10 11 12 13 14 15
*   python3 (>= 3.4)
*   python3-django (>= 1.11)
*   python3-psycopg2 (>= 2.5)
*   python3-jinja2 (>= 2.9)
*   python3-django-filters (>= 1.0)
*   python3-moneyed
*   python3-django-money
16
*   python3-djangorestframework (>= 3.4.0)
Hamza Dely's avatar
Hamza Dely committed
17 18 19 20 21
*   postgresql
*   postgresql-plpython3
*   nginx
*   uwsgi
*   uwsgi-plugin-python3
Maxime Bombar's avatar
Maxime Bombar committed
22 23
*   djangorestframework
*   Pillow
24 25 26 27

Installation
------------

Hamza Dely's avatar
Hamza Dely committed
28
1.  Clonage du dépôt
29

Hamza Dely's avatar
Hamza Dely committed
30
    Cloner le dépôt à l'endroit souhaité (par exemple `/var/www/note-kfet/`)
31

Hamza Dely's avatar
Hamza Dely committed
32
        $ git clone https://gitlab.crans.org/dely/note-kfet.git
33

Hamza Dely's avatar
Hamza Dely committed
34 35
    Le dossier contenant le projet sera noté dans la suite `$NOTEREPO`.
    On génère ensuite un utilisateur spécial pour le projet.
36

Hamza Dely's avatar
Hamza Dely committed
37 38 39 40
        $ sudo adduser --system --group --home $NOTEREPO --no-create-home --disabled-password --disabled-login note
        $ sudo chown -R note:note $NOTEREPO
        $ sudo chmod -R g+w $NOTEREPO
        $ sudo find $NOTEREPO -type d -exec chmod g+s {} \;
41

Hamza Dely's avatar
Hamza Dely committed
42 43
    Pensez à vous rajouter au groupe 'note' et à changer votre umask lorsque vous travaillez
    sur le projet.
44

Hamza Dely's avatar
Hamza Dely committed
45 46
    Générez une clé secrète pour votre projet et mettez là dans note_kfet/secrets.py.
    Ajoutez également le domaine depuis lequel vous allez servir le site dans ALLOWED_HOSTS.
47

Hamza Dely's avatar
Hamza Dely committed
48
2.  Mise en place de la base de données
49

Hamza Dely's avatar
Hamza Dely committed
50
    Après avoir cloné le dépôt à l'endroit souhaité, il faut mettre en place la BDD :
51

Hamza Dely's avatar
Hamza Dely committed
52 53 54 55 56
        $ sudo -u postgres psql
        postgres=# CREATE USER note;
        postgres=# CREATE DATABASE note_kfet OWNER note;
        postgres=# \c note_kfet
        $ sudo service postgresql reload
57

Hamza Dely's avatar
Hamza Dely committed
58 59 60
    Il faut ensuite ajouter les lignes adéquates dans le fichier `pg_hba.conf` en fonction de votre
    infrastructure. Consultez la [doc PostgreSQL](http://docs.postgresql.fr/9.6/client-authentication.html#auth-pg-hba-conf)
    pour trouver la marche à suivre.
61

Hamza Dely's avatar
Hamza Dely committed
62
    Vous pouvez ensuite installer le schéma de la base de données, mettre en place les triggers et y insérer vos données.
63

Hamza Dely's avatar
Hamza Dely committed
64 65 66
        $ sudo -u note $NOTEREPO/manage.py migrate
        $ sudo -u postgres $NOTEREPO/note_kfet/triggers.py
        $ sudo -u postgres $NOTEREPO/note_kfet/db_initial.py
67

Hamza Dely's avatar
Hamza Dely committed
68
3.  Configuration de uWSGI + Nginx
69

Hamza Dely's avatar
Hamza Dely committed
70 71
    Une fois la base de données mise en place, il faut mettre en place le serveur Web. Plus d'informations
    sont disponbibles [ici](http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html?highlight=Django).
72

Hamza Dely's avatar
Hamza Dely committed
73
    Pour uWSGI :
74

Hamza Dely's avatar
Hamza Dely committed
75 76 77
        $ sudo cp $NOTEREPO/note_kfet/note.uwsgi /etc/uwsgi/apps-available/note.ini
        $ sudo ln -s /etc/uwsgi/apps-available/note.ini /etc/uwsgi/apps-enabled/note.ini
        $ sudo service uwsgi reload
78

Hamza Dely's avatar
Hamza Dely committed
79
    Pour Nginx :
80

Hamza Dely's avatar
Hamza Dely committed
81 82 83
        $ sudo cp $NOTEREPO/note_kfet/note.nginx /etc/nginx/sites-available/note
        $ sudo ln -s /etc/nginx/sites-available/note /etc/uwsgi/sites-enabled/note
        $ sudo service nginx reload
84

Hamza Dely's avatar
Hamza Dely committed
85
    Vous pouvez ensuite essayer d'accéder à la note depuis votre navigateur.