Format README and fix link

This commit is contained in:
Alexandre Iooss 2020-08-10 18:26:45 +02:00
parent 9c679d5bc9
commit 4a4c3d33b0
1 changed files with 87 additions and 85 deletions

View File

@ -6,64 +6,67 @@
## Installation sur un serveur ## Installation sur un serveur
On supposera pour la suite que vous utilisez Debian/Ubuntu sur un serveur tout nu ou bien configuré. On supposera pour la suite que vous utilisez une installation de Debian Buster ou Ubuntu 20.04 fraîche ou bien configuré.
1. Paquets nécessaires Pour aller vite vous pouvez lancer le Playbook Ansible fournit dans ce dépôt en l'adaptant.
Sinon vous pouvez suivre les étapes ici.
$ sudo apt install nginx python3 python3-pip python3-dev uwsgi ### Installation avec Debian/Ubuntu
$ sudo apt install uwsgi-plugin-python3 python3-venv git acl
La génération des factures de l'application trésorerie nécessite une installation de LaTeX suffisante : 1. **Installation des dépendances APT.**
```bash
$ sudo apt install nginx python3 python3-pip python3-dev uwsgi uwsgi-plugin-python3 python3-venv git acl
```
La génération des factures de l'application trésorerie nécessite une installation de LaTeX suffisante,
```bash
$ sudo apt install texlive-latex-extra texlive-fonts-extra texlive-lang-french $ sudo apt install texlive-latex-extra texlive-fonts-extra texlive-lang-french
```
2. Clonage du dépot 2. **Clonage du dépot** dans `/var/www/note_kfet`,
on se met au bon endroit : ```bash
$ mkdir -p /var/www/note_kfet && cd /var/www/note_kfet
$ sudo chown www-data:www-data .
$ sudo chmod g+rwx .
$ sudo -u www-data git clone git@gitlab.crans.org:bde/nk20.git .
```
$ cd /var/www/ 3. **Création d'un environment de travail Python décorrélé du système.**
$ mkdir note_kfet
$ sudo chown www-data:www-data note_kfet
$ sudo usermod -a -G www-data $USER
$ sudo chmod g+ws note_kfet
$ sudo setfacl -d -m "g::rwx" note_kfet
$ cd note_kfet
$ git clone git@gitlab.crans.org:bde/nk20.git .
3. Environment Virtuel
À la racine du projet:
```bash
$ python3 -m venv env $ python3 -m venv env
$ source env/bin/activate $ source env/bin/activate
(env)$ pip3 install -r requirements/base.txt (env)$ pip3 install -r requirements/base.txt
(env)$ pip3 install -r requirements/prod.txt # uniquement en prod, nécessite un base postgres (env)$ pip3 install -r requirements/prod.txt # uniquement en prod, nécessite une base postgres
(env)$ deactivate (env)$ deactivate # sortir de l'environnement
```
4. uwsgi et Nginx 4. **Pour configurer UWSGI et NGINX**, des exemples de conf sont disponibles.
**_Modifier le fichier pour être en accord avec le reste de votre config_**
Un exemple de conf est disponible :
```bash
$ cp nginx_note.conf_example nginx_note.conf $ cp nginx_note.conf_example nginx_note.conf
***Modifier le fichier pour être en accord avec le reste de votre config***
On utilise uwsgi et Nginx pour gérer le coté serveur :
$ sudo ln -sf /var/www/note_kfet/nginx_note.conf /etc/nginx/sites-enabled/ $ sudo ln -sf /var/www/note_kfet/nginx_note.conf /etc/nginx/sites-enabled/
```
Si l'on a un emperor (plusieurs instance uwsgi): Si l'on a un emperor (plusieurs instance uwsgi):
```bash
$ sudo ln -sf /var/www/note_kfet/uwsgi_note.ini /etc/uwsgi/sites/ $ sudo ln -sf /var/www/note_kfet/uwsgi_note.ini /etc/uwsgi/sites/
```
Sinon: Sinon si on est dans le cas habituel :
```bash
$ sudo ln -sf /var/www/note_kfet/uwsgi_note.ini /etc/uwsgi/apps-enabled/ $ sudo ln -sf /var/www/note_kfet/uwsgi_note.ini /etc/uwsgi/apps-enabled/
```
Le touch-reload est activé par défault, pour redémarrer la note il suffit donc de faire `touch uwsgi_note.ini`. Le touch-reload est activé par défault, pour redémarrer la note il suffit donc de faire `touch uwsgi_note.ini`.
5. Base de données 5. **Base de données.** En production on utilise PostgreSQL.
En prod on utilise postgresql.
$ sudo apt-get install postgresql postgresql-contrib libpq-dev $ sudo apt-get install postgresql postgresql-contrib libpq-dev
(env)$ pip3 install psycopg2 (env)$ pip3 install psycopg2
@ -135,10 +138,9 @@ On supposera pour la suite que vous utilisez Debian/Ubuntu sur un serveur tout n
(env)$ ./manage.py makemigrations (env)$ ./manage.py makemigrations
(env)$ ./manage.py migrate (env)$ ./manage.py migrate
7. Enjoy 7. *Enjoy \o/*
### Installation avec Docker
## Installer avec Docker
Il est possible de travailler sur une instance Docker. Il est possible de travailler sur une instance Docker.
@ -163,11 +165,11 @@ et mettez à jour vos variables d'environnement
- traefik.frontend.rule=Host:ndd.example.com - traefik.frontend.rule=Host:ndd.example.com
- traefik.port=8000 - traefik.port=8000
3. Enjoy : 4. Enjoy :
$ docker-compose up -d nk20 $ docker-compose up -d nk20
## Installer un serveur de développement ## Lancer un serveur de développement
Avec `./manage.py runserver` il est très rapide de mettre en place Avec `./manage.py runserver` il est très rapide de mettre en place
un serveur de développement par exemple sur son ordinateur. un serveur de développement par exemple sur son ordinateur.