|
@@ -0,0 +1,131 @@
|
|
|
+Système de vote pour associations
|
|
|
+=================================
|
|
|
+
|
|
|
+Développé pour et par des membres de la Fédération FDN (http://ffdn.org)
|
|
|
+
|
|
|
+Installation (développement)
|
|
|
+----------------------------
|
|
|
+
|
|
|
+Dépendances :
|
|
|
+
|
|
|
+ - python (testé avec python 2.7
|
|
|
+ - python-openid
|
|
|
+ - sqlite3
|
|
|
+ - Flask
|
|
|
+ - Flask-OpenID
|
|
|
+
|
|
|
+Récupérer la dernière version de développement :
|
|
|
+`$ git clone git@git.ndn.cx:cavote.git`
|
|
|
+
|
|
|
+Installation de la base de données :
|
|
|
+`$ sqlite3 /path/to/cavote.db
|
|
|
+ > .read schema.sql`
|
|
|
+
|
|
|
+Modifiez les paramètres de settings.py pour qu'ils correspondent à votre installation
|
|
|
+
|
|
|
+Lancez le serveur en mode développement :
|
|
|
+`$ python main.py`
|
|
|
+
|
|
|
+Dans un navigateur, vous pourrez à cavote à l'adresse
|
|
|
+<http://localhost:5000/>.
|
|
|
+
|
|
|
+L'utilisateur par défaut peut être activé à l'adresse
|
|
|
+<http://localhost:5000/login/1/victory>. Modifiez en les
|
|
|
+identifiants de connection lors du premier accès.
|
|
|
+
|
|
|
+
|
|
|
+Installation (production)
|
|
|
+-------------------------
|
|
|
+
|
|
|
+Les étapes pour l'installation en mode production sont les
|
|
|
+mêmes qu'en mode développement, jusqu'à l'étape de lancement
|
|
|
+du serveur.
|
|
|
+
|
|
|
+NDN a choisi d'utiliser gunicorn pour mettre en production
|
|
|
+son instance de cavote.
|
|
|
+
|
|
|
+Pour celà, installez gunicorn (dépendant de votre distribution).
|
|
|
+
|
|
|
+Dans le répertoire de cavote, tappez :
|
|
|
+`gunicorn -w 4 -b 192.168.122.104:8000 main:app -D`
|
|
|
+
|
|
|
+ - -w 4 signifie que gunicorn lancera 4 "workers", ce qui devrait amplement suffir
|
|
|
+ - remplacez l'adresse IP et le port par votre configuration. L'adresse IP doit
|
|
|
+ correspondre à qu'appellera votre serveur web en frontend (nous utiliserons nginx dans l'exemple).
|
|
|
+ Si ce frontend est situé sur la même machine que cavote, l'adresse IP sera 127.0.0.1.
|
|
|
+ - De même, changez de port si vous souhaitez en utiliser un autre
|
|
|
+ - -D signifie que gunicorn sera lancé en daemon.
|
|
|
+ - Enlever vous permettrait de tester et pouvoir fermer le serveur en tappant Ctrl+C
|
|
|
+ - En mode daemon, un `pkill gunicorn` killera vos workers gunicorn
|
|
|
+
|
|
|
+
|
|
|
+Configurez nginx (`/etc/nginx/sites-enabled` ou `/etc/nginx/nginx.conf` ou
|
|
|
+autre selon votre système)
|
|
|
+
|
|
|
+ server {
|
|
|
+ listen <votre-ip>:80;
|
|
|
+ server_name <votre-url-cavote>;
|
|
|
+ rewrite ^(.*) https://<votre-url-cavote>$1 permanent;
|
|
|
+ }
|
|
|
+
|
|
|
+ #
|
|
|
+ # FIXME: specify correct value(s) for `server_name` directive and
|
|
|
+ # `ssl_certificate` + `ssl_certificate_key` directives below
|
|
|
+ #
|
|
|
+ server {
|
|
|
+ listen <votre-ip>:443;
|
|
|
+ server_name <votre-url-cavote>;
|
|
|
+ ## make sure you change location if you did clone into /usr/local/app
|
|
|
+
|
|
|
+ ssl on;
|
|
|
+ ssl_certificate /path/to/<votre_certificat_ssl>.crt;
|
|
|
+ ssl_certificate_key /path/to/<votre_certificat_ssl>.key;
|
|
|
+ # enable better ssl security if you like to mitigate BEAST and other exploits
|
|
|
+ #ssl_session_cache shared:SSL:10m;
|
|
|
+ #ssl_session_timeout 5m;
|
|
|
+ ssl_protocols SSLv3 TLSv1;
|
|
|
+ ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM;
|
|
|
+ ssl_prefer_server_ciphers on;
|
|
|
+ #add_header Strict-Transport-Security max-age=500;
|
|
|
+ #ssl_ecdh_curve secp521r1;
|
|
|
+
|
|
|
+
|
|
|
+ #
|
|
|
+ # FIXME: modify the `rewrite` directive below to point to proper S3 bucket
|
|
|
+ # and path or comment out if you will store images on local file system
|
|
|
+ #
|
|
|
+ location / {
|
|
|
+ proxy_pass http://192.168.122.104:8000;
|
|
|
+ proxy_set_header X-Real-IP $remote_addr;
|
|
|
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
+ proxy_set_header Host $http_host;
|
|
|
+ proxy_set_header X-Forwarded-Proto https;
|
|
|
+ proxy_redirect off;
|
|
|
+ client_max_body_size 4M;
|
|
|
+ client_body_buffer_size 128K;
|
|
|
+ }
|
|
|
+
|
|
|
+ error_page 500 502 503 504 /50x.html;
|
|
|
+ location = /50x.html {
|
|
|
+ root html;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+Modifiez les valeurs correspondant a la configuration de votre installation.
|
|
|
+Dans l'exemple ci dessus, cavote sera disponible automatiquement et uniquement
|
|
|
+en HTTPS.
|
|
|
+
|
|
|
+Licence
|
|
|
+-------
|
|
|
+
|
|
|
+La licence appliquée est la GNU/AGPLv3
|
|
|
+
|
|
|
+Contributeurs
|
|
|
+-------------
|
|
|
+
|
|
|
+ - Julien Rabier
|
|
|
+ - Guillaume Subiron
|
|
|
+ - Arnaud Delcasse
|
|
|
+ - Pierre 'Rogdham' Pavlidès
|
|
|
+
|