Quicker setup for local development

This commit is contained in:
Martin Pépin 2017-08-11 23:56:02 +01:00
parent 5923166196
commit 4d026407d1
3 changed files with 21 additions and 26 deletions

View file

@ -69,16 +69,17 @@ entrer dans le navigateur est `localhost:8000`.
#### Serveur de développement type production #### Serveur de développement type production
Sur la VM Vagrant, un serveur apache est configuré pour servir GestioCOF de Juste histoire de jouer, pas indispensable pour développer :
façon similaire à la version en production : on utilise
La VM Vagrant héberge en plus un serveur nginx configuré pour servir GestioCOF
comme en production : on utilise
[Daphne](https://github.com/django/daphne/) et `python manage.py runworker` [Daphne](https://github.com/django/daphne/) et `python manage.py runworker`
derrière un reverse-proxy apache. Le tout est monitoré par derrière un reverse-proxy nginx.
[supervisor](http://supervisord.org/).
Ce serveur se lance tout seul et est accessible en dehors de la VM à l'url Ce serveur se lance tout seul et est accessible en dehors de la VM à l'url
`localhost:8080`. Toutefois il ne se recharge pas tout seul lorsque le code `localhost:8080`. Toutefois il ne se recharge pas tout seul lorsque le code
change, il faut relancer le worker avec `sudo supervisorctl restart worker` pour change, il faut relancer le worker avec `sudo systemctl restart worker.service`
visualiser la dernière version du code. pour visualiser la dernière version du code.
### Installation manuelle ### Installation manuelle
@ -87,7 +88,7 @@ Vous pouvez opter pour une installation manuelle plutôt que d'utiliser Vagrant,
il est fortement conseillé d'utiliser un environnement virtuel pour Python. il est fortement conseillé d'utiliser un environnement virtuel pour Python.
Il vous faudra installer pip, les librairies de développement de python ainsi Il vous faudra installer pip, les librairies de développement de python ainsi
que sqlite3, un moteur de base de données léger et simple d'utilisation ; sous que sqlite3, un moteur de base de données léger et simple d'utilisation. Sous
Debian et dérivées (Ubuntu, ...) : Debian et dérivées (Ubuntu, ...) :
sudo apt-get install python3-pip python3-dev sqlite3 sudo apt-get install python3-pip python3-dev sqlite3
@ -107,29 +108,23 @@ dans le même dossier.
Vous pouvez maintenant installer les dépendances Python depuis le fichier Vous pouvez maintenant installer les dépendances Python depuis le fichier
`requirements-devel.txt` : `requirements-devel.txt` :
pip install -U pip
pip install -r requirements-devel.txt pip install -r requirements-devel.txt
Pour terminer, copier le fichier `cof/settings/secret_example.py` vers Pour terminer, copier le fichier `cof/settings/secret_example.py` vers
`cof/settings/secret.py`. Sous Linux ou Mac, préférez plutôt un lien symbolique `cof/settings/secret.py`. Sous Linux ou Mac, préférez plutôt un lien symbolique
pour profiter de façon transparente des mises à jour du fichier d'exemple: pour profiter de façon transparente des mises à jour du fichier:
ln -s secret_example.py cof/settings/secret.py ln -s secret_example.py cof/settings/secret.py
#### Fin d'installation #### Fin d'installation
Il ne vous reste plus qu'à initialiser les modèles de Django avec la commande suivante : Il ne vous reste plus qu'à initialiser les modèles de Django et peupler la base
de donnée avec les données nécessaires au bon fonctionnement de GestioCOF + des
données bidons bien pratiques pour développer avec la commande suivante :
python manage.py migrate bash provisioning/prepare_django.sh
Charger les mails indispensables au bon fonctionnement de GestioCOF :
python manage.py syncmails
Une base de donnée pré-remplie est disponible en lançant les commandes :
python manage.py loaddata gestion sites articles
python manage.py loaddevdata
Vous êtes prêts à développer ! Lancer GestioCOF en faisant Vous êtes prêts à développer ! Lancer GestioCOF en faisant
@ -148,6 +143,6 @@ Pour mettre à jour les modèles après une migration, il faut ensuite faire :
## Documentation utilisateur ## Documentation utilisateur
Une brève documentation utilisateur pour se familiariser plus vite avec l'outil Une brève documentation utilisateur est accessible sur le
est accessible sur le [wiki](https://git.eleves.ens.fr/cof-geek/gestioCOF/wikis/home) pour avoir une
[wiki](https://git.eleves.ens.fr/cof-geek/gestioCOF/wikis/home). idée de la façon dont le COF utilise GestioCOF.

View file

@ -41,7 +41,10 @@ sudo -H -u ubuntu ~ubuntu/venv/bin/pip install -r /vagrant/requirements-devel.tx
# Préparation de Django # Préparation de Django
cd /vagrant cd /vagrant
ln -s -f secret_example.py cof/settings/secret.py ln -s -f secret_example.py cof/settings/secret.py
sudo -H -u ubuntu DJANGO_SETTINGS_MODULE='cof.settings.dev' bash provisioning/prepare_django.sh sudo -H -u ubuntu \
DJANGO_SETTINGS_MODULE='cof.settings.dev' \
bash -c ". ~/venv/bin/activate && bash provisioning/prepare_django.sh"
/home/ubuntu/venv/bin/python manage.py collectstatic --noinput --settings cof.settings.dev
# Installation du cron pour les mails de rappels # Installation du cron pour les mails de rappels
sudo -H -u ubuntu crontab provisioning/cron.dev sudo -H -u ubuntu crontab provisioning/cron.dev

View file

@ -1,9 +1,6 @@
#!/bin/bash #!/bin/bash
# Doit être lancé par bootstrap.sh
source ~/venv/bin/activate
python manage.py migrate python manage.py migrate
python manage.py loaddata gestion sites articles python manage.py loaddata gestion sites articles
python manage.py loaddevdata python manage.py loaddevdata
python manage.py syncmails python manage.py syncmails
python manage.py collectstatic --noinput