Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:gvot [2021/01/12 01:28] – francoisa | technique:gvot [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Vote en ligne : GvoT ====== | + | **Cette page est obsolète. Veuillez accéder |
- | + | ||
- | | + | |
- | | + | |
- | * Installation : [[https:// | + | |
- | + | ||
- | ===== Pré-requis ===== | + | |
- | + | ||
- | Debian 10 + mariadb ou postgresql pour production | + | |
- | + | ||
- | sqlite | + | |
- | < | + | |
- | + | ||
- | apt install python3 virtualenv git make mariadb-client python3-mysqldb | + | |
- | # Si besoin de MysqL sur le même serveur : ajouter mariadb-server | + | |
- | cd /srv | + | |
- | git clone https:// | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ===== Installation ===== | + | |
- | + | ||
- | < | + | |
- | cd /srv/gvot | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Attention, la commande '' | + | |
- | + | ||
- | Il faut au préalable avoir préparé le terrain. | + | |
- | + | ||
- | < | + | |
- | mysql_secure_installation | + | |
- | Mot de passe root ? (vide par défaut) | + | |
- | Set root password ? Y | + | |
- | New Password | + | |
- | Re-enter New Password : xxxx | + | |
- | OK. | + | |
- | Remove anonymous user : (Y/n) : Y | + | |
- | Disallow root login remotely? | + | |
- | Remove test database and access to it? [Y/n] Y | + | |
- | Reload privilege tables now? [Y/n] Y | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Création de base et user pour gvot | + | |
- | + | ||
- | < | + | |
- | mysql -u root -p | + | |
- | + Mot de passe créé. | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | < | + | |
- | CREATE DATABASE votes character set utf8 collate utf8_bin; | + | |
- | GRANT ALL PRIVILEGES ON votes.* TO votes@localhost IDENTIFIED by ' | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | < | + | |
- | FLUSH PRIVILEGES; | + | |
- | QUIT; | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Prévoir aussi l' | + | |
- | + | ||
- | Editer le fichier de configuration config.env (copie de config.env.example) | + | |
- | + | ||
- | < | + | |
- | ENV=production | + | |
- | + | ||
- | DJANGO_SECRET_KEY=MACLEFACHANGER | + | |
- | + | ||
- | DJANGO_ALLOWED_HOSTS=votes.cemea.org, | + | |
- | + | ||
- | DJANGO_DATABASE_URL=mysql://votes: | + | |
- | + | ||
- | DJANGO_EMAIL_URL=smtp+tls:// | + | |
- | # tester la bonne syntaxe avec : python3 -c 'from urllib.parse import quote as q; | + | |
- | + | ||
- | DEFAULT_FROM_EMAIL=administrateur@cemea.asso.fr | + | |
- | + | ||
- | ADMINS=' | + | |
- | + | ||
- | BASE_DIR=/srv/gvot | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Terminer par la restriction des droits | + | |
- | + | ||
- | < | + | |
- | chmod o-rwx /srv/gvot/ | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Puis le lancement de la préocédure d' | + | |
- | + | ||
- | < | + | |
- | cd /srv/gvot | + | |
- | + | ||
- | make init | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Mais plantage sur le module python mysqlclient utilisé par Django qui n'est pas installé et compatible. | + | |
- | + | ||
- | Procédure pour installer mysqlclient depuis cette page : [[https:// | + | |
- | < | + | |
- | + | ||
- | apt-get remove python3-mysqldb | + | |
- | apt-get install python3-dev default-libmysqlclient-dev build-essential | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Puis se connecter à l' | + | |
- | + | ||
- | < | + | |
- | cd srv/gvot/ && source venv/ | + | |
- | + | ||
- | pip3 install mysqlclient | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Et relancer la procédure d' | + | |
- | + | ||
- | < | + | |
- | make init | + | |
- | + | ||
- | make update | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ===== Mise en route ===== | + | |
- | + | ||
- | < | + | |
- | make serve | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Pour redémarrer, | + | |
- | + | ||
- | Le service est alors actif localement sur le port 8000 sur la boucle locale 127.0.0.1 | + | |
- | + | ||
- | Reste à proposer une interface accessible depuis l' | + | |
- | + | ||
- | ===== Config Nginx ===== | + | |
- | + | ||
- | < | + | |
- | apt install nginx | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Modifier le default ou le désactiver et recréer une conf gvot.conf dans / | + | |
- | + | ||
- | gvot.conf : | + | |
- | + | ||
- | < | + | |
- | server { | + | |
- | server_name gvot; | + | |
- | access_log / | + | |
- | error_log / | + | |
- | + | ||
- | location / { | + | |
- | proxy_pass http:// | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | server { | + | |
- | server_name gvot; | + | |
- | listen 80; | + | |
- | return 301 https:// | + | |
- | } | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Et relancer nginx | + | |
- | + | ||
- | < | + | |
- | systemctl restart nginx | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | ===== Création d'un admin en ligne de commande ===== | + | |
- | + | ||
- | < | + | |
- | cd /srv/gvot | + | |
- | + | ||
- | ./ | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | Et saisir un mot de passe complexe ('' | + | |
- | + | ||
- | Et relancer le service '' | + | |
- | + | ||
- | Pour info, si on modifie des paramètres de config.env pour passer en mode développement (et les options de Django qui vont avec), il faut relancer un make update pour téléchargements des librairies python complémentaires. | + | |
- | + | ||
- | ====== Configuration de votes ====== | + | |
- | + | ||
- | Créer une page " | + | |
- | + | ||
- | Dans cet espace, il faut alors créer une page qui sera le scrutin. | + | |
- | + |