Ceci est une ancienne révision du document !
Vote en ligne : GvoT
- Documentation : https://voter.cliss21.org/docs/index.html
- Source : https://voter.cliss21.org/
- Installation : https://forge.cliss21.org/cliss21/gvot
Pré-requis
Debian 10 + mariadb ou postgresql pour production
sqlite est utilisé en environnement de développement
apt install python3 virtualenv git make mariadb-server mariadb-client python3-mysqldb cd /srv git clone https://forge.cliss21.org/cliss21/gvot
Installation
cd /srv/gvot
Attention, la commande make init
nous fait passer en mode 'vi config.env' où il faut rentrer les paramètres de MySQL
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 : xxxx Re-enter New Password : xxxx OK. Remove anonymous user : (Y/n) : Y Disallow root login remotely? [Y/n] Y 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 gvotdb character set utf8 collate utf8_bin; GRANT ALL PRIVILEGES ON gvotdb.* TO gvotu@localhost IDENTIFIED by 'Mot2Passe';
FLUSH PRIVILEGES; QUIT;
Prévoir aussi l'envoi de mail avec le smtp
Editer le fichier de configuration config.env (copie de config.env.example)
ENV=production DJANGO_SECRET_KEY=MACLEFACHANGER DJANGO_ALLOWED_HOSTS=example.org,localhost DJANGO_DATABASE_URL=mysql://gvotu:Mot2Passe@127.0.0.1:3306/gvotdb DJANGO_EMAIL_URL=smtp+tls://envoismtp@cemea.asso.fr:Mo2pass@mail.cemea.org:587 DEFAULT_FROM_EMAIL=govt@cemea.org ADMINS='Admin <administrateur@cemea.asso.fr>'
Terminer par la restriction des droits
chmod o-rwx /srv/gvot/config.env
Puis le lancement de la préocédure d'initialisation
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://pypi.org/project/mysqlclient/
apt-get install python3-dev default-libmysqlclient-dev build-essential
Puis se connecter à l'environnement virtuel :
cd srv/gvot/ && source venv/bin/activate pip install mysqlclient
Et relancer la procédure d'install si besoin :
make init make update
Mise en route
make serve
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'extérieur avec Nginx
Config Nginx
apt install nginx