|
7 years ago | |
---|---|---|
static | 7 years ago | |
templates | 7 years ago | |
translations | 12 years ago | |
README.md | 9 years ago | |
babel.cfg | 12 years ago | |
main.py | 9 years ago | |
messages.pot | 12 years ago | |
reminder.py | 7 years ago | |
requirements.txt | 12 years ago | |
schema.sql | 12 years ago | |
schema_0.1.X_to_0.2.X.sql | 12 years ago | |
schema_0.2.X_to_0.3.X.sql | 12 years ago | |
settings.py.example | 12 years ago |
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