Choisissez votre coalition.
Site web – Mastodon – Twitter – Liberapay – Buymeacoffee
Consultez la méthodologie.
Les procédures d'installation et de configuration sont en cours d'amélioration, voir le ticket #1. Pour le moment, référez-vous au code et n'hésitez pas à documenter derrière vous.
Ce projet compile en Rust stable avec Cargo.
Sur une distribution basée sur Debian, les paquets wget, curl, unzip, jq, python3 et locales sont nécessaires pour le bon fonctionnement des scripts. Le paquet libpq5 est également nécessaire pour assurer la connexion à la base de données.
Les fichiers suivants doivent être présents :
config/server/config.toml
: Configuration du serveur, contenant les secrets et mots de passe.config/server/platforms.json
: Configuration du serveur, contenant la liste des hôtes enregistrés dans le logiciel autorisés à recevoir des participations, avec toutes leurs caractéristiques (le logiciel a été pensé pour être multihôte).config/client/organes.json
: Liste manuellement définie des groupes politiques et de leurs caractéristiques.config/client/picks.json
: Liste manuellement définie des questions et arguments.config/filters/custom/*
: Listes personnalisées pour le filtrage IP (facultatif).
À partir de ces fichiers, le script setup.sh
peut générer le reste de la configuration.
Pour simplement travailler sur le côté client, il est possible d'utiliser le script scripts/client/httpserver.py
. Il est nécessaire de créer un dossier static/data/
dans lequel déposer les données normalement envoyées par le côté serveur.
git clone https://github.com/QuelParti/QuelParti
cd QuelParti
mkdir static/data
wget https://quelparti.fr/data/acteurs.json -O static/data/acteurs.json
wget https://quelparti.fr/data/scrutins.json -O static/data/scrutins.json
cp scripts/client/httpserver.py .
./httpserver.py
Le serveur HTTP sera accessible en local sur le port 8000. Une erreur s'affichera dans la console JavaScript concernant le token CSRF manquant, c'est normal étant donné que le côté serveur n'est pas déployé en local.
Il est nécessaire d'installer Cargo, Rust, et de compiler le projet (branche Rust stable). Voir la section Installation.
Il est fortement recommandé de déployer QuelParti derrière un reverse-proxy comme Nginx afin de contrôler plus facilement le routage des requêtes (notamment bloquer la route /internal
et servir certains fichiers dans static/assets/txt/
) et de servir directement le dossier static/
via le reverse-proxy.
Une instance de PostgreSQL est nécessaire pour faire fonctionner QuelParti. Le support d'autres SGBD n'est pas envisagé mais peut facilement être implémenté à l'aide de l'ORM utilisé, Diesel.
Une instance de Fail2ban peut également être mise en place afin de limiter efficacement les tentatives de déni de service.
Consultez le guide de contribution.
La politique de sécurité de ce logiciel est consultable sur la page SECURITY.md.
Voir les crédits.