|
il y a 7 ans | |
---|---|---|
static | il y a 7 ans | |
templates | il y a 7 ans | |
translations | il y a 12 ans | |
README.md | il y a 9 ans | |
babel.cfg | il y a 12 ans | |
main.py | il y a 9 ans | |
messages.pot | il y a 12 ans | |
reminder.py | il y a 7 ans | |
requirements.txt | il y a 12 ans | |
schema.sql | il y a 12 ans | |
schema_0.1.X_to_0.2.X.sql | il y a 12 ans | |
schema_0.2.X_to_0.3.X.sql | il y a 12 ans | |
settings.py.example | il y a 12 ans |
Développé pour et par des membres de la Fédération FDN (http://ffdn.org)
Dépendances :
Installation des dépendances :
$ pip install -r requirements.txt
Installation de la base de données :
$ sqlite3 cavote.db
> .read schema.sql
> .read schema_0.1.X_to_0.2.X.sql
> .read schema_0.2.X_to_0.3.X.sql
Modifiez les paramètres de settings.py pour qu'ils correspondent à votre installation.
$ cp settings.py.example settings.py
$ vim settings.py
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.
Génération du template de chaînes à traduire :
pybabel extract -F babel.cfg -o messages.pot .
Génération du catalogue d'une langue en particulier :
pybabel init -i messages.pot -d translations -l fr
Une fois la traduction effectuée :
pybabel compile -d translations
Si les chaînes changent :
pybabel extract -F babel.cfg -o messages.pot .
pybabel update -i messages.pot -d translations
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
pkill gunicorn
killera vos workers gunicornPour activer les notifications par mail, mettez en place une tache cron appelant le script reminder.py
.
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.
La licence appliquée est la GNU/AGPLv3