jawanndenn est une application Web simple pour planifier des réunions et organiser des sondages, une alternative libre à Doodle. Il utilise la technologie suivante :
jawanndenn est un logiciel libre développé par Sebastian Pipping. Le code serveur est sous licence GNU Affero GPL version 3 ou ultérieure tandis que le code client est sous licence GNU GPL version 3 ou ultérieure.
Veuillez signaler les bugs et faites-moi savoir si vous l'aimez.
La zone de texte intitulée « Configuration (JSON) » utilise un format simple basé sur JSON qui connaît les clés suivantes :
equal_width
— un booléen pour contrôler si toutes les options sont pompées jusqu'à la même largeur ( true
ou false
) pour contrer les biais potentiels des électeurslifetime
— durée après laquelle ce sondage sera supprimé ; peut être "week"
ou "month"
; une chaîne de type énumérationoptions
— une liste de chaînes, une pour chaque option ; prend en charge la syntaxe de type Markdown pour : le code gras, italique et en lignetitle
: le titre ou le titre du sondage à organiser ; prend en charge la syntaxe de type Markdown pour : le code gras, italique et en ligne Pour installer la dernière version sans cloner le dépôt Git :
# pip3 install jawanndenn --user
Pour installer à partir d'un clone Git :
# ./setup.py install --user
Créez un simple fichier .env
comme celui-ci :
JAWANNDENN_POSTGRES_NAME=jawanndenn JAWANNDENN_POSTGRES_USER=jawanndenn JAWANNDENN_POSTGRES_PASSWORD=dEb2PIcinemA8poH JAWANNDENN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b
Assurez-vous d'ajuster ces valeurs après le copier-coller !
Vous pouvez ensuite créer et exécuter une image Docker en utilisant docker-compose up --build
.
L'application est servie sur localhost:54080
. Les données PostgreSQL sont enregistrées dans ~/.jawanndenn-docker-pgdata/
sur le système hôte. Il existe également une instance de Redis utilisée pour limiter le débit entre processus et un conteneur de maintenance « cron » qui supprimera les sondages qui ont dépassé leur durée de vie configurée, toutes les 60 minutes.
(Si vous avez besoin d'un proxy inverse SSL nécessitant peu de maintenance devant jawanndenn, docker-ssl-reverse-proxy pourrait être intéressant.)
Il existe quelques variables d'environnement supplémentaires que vous pourriez souhaiter ajuster dans votre environnement. Au total, il y a ces variables :
DJANGO_SETTINGS_MODULE
Module de paramètres Django à utiliser, laisser tel quel, par défaut jawanndenn.settings
(voir docker-compose.yml
)
JAWANNDENN_ALLOWED_HOSTS
Les noms d'hôtes sur lesquels servir jawanndenn, liste séparée par une virgule, sont définis sur jawanndenn.de,www.jawanndenn.de
sur le serveur de production principal, par défaut sur 127.0.0.1,0.0.0.0,localhost
(voir jawanndenn/settings.py
)
JAWANNDENN_DEBUG
Le mode débogage, désactivé pour toutes les valeurs mais True
, désactivé par défaut, ne doit jamais être activé en production pour des raisons de sécurité (voir jawanndenn/settings.py
)
JAWANNDENN_MAX_POLLS
Nombre total maximum de sondages à stocker, protection contre le déni de service, par défaut 1000
(voir jawanndenn/settings.py
et docker-compose.yml
)
JAWANNDENN_MAX_VOTES_PER_POLL
Nombre total maximum de sondages à stocker, protection contre le déni de service, par défaut 40
(voir jawanndenn/settings.py
)
JAWANNDENN_POSTGRES_HOST
Nom d'hôte de la base de données PostgreSQL à laquelle se connecter ; la valeur par défaut est postgres
(voir docker-compose.yml
)
JAWANNDENN_POSTGRES_NAME
Nom de la base de données PostgreSQL à laquelle se connecter ; pas de défaut, toujours requis
JAWANNDENN_POSTGRES_PASSWORD
Mot de passe pour la connexion à la base de données PostgreSQL ; pas de défaut, toujours requis
JAWANNDENN_POSTGRES_PORT
Port de la base de données PostgreSQL à laquelle se connecter ; la valeur par défaut est 5432
(voir docker-compose.yml
)
JAWANNDENN_POSTGRES_USER
Nom d'utilisateur pour la connexion à la base de données PostgreSQL ; pas de défaut, toujours requis
JAWANNDENN_REDIS_HOST
Nom d'hôte de la base de données Redis à laquelle se connecter ; la valeur par défaut est redis
(voir docker-compose.yml
)
JAWANNDENN_REDIS_PORT
Port de la base de données Redis auquel se connecter ; la valeur par défaut est 6379
(voir docker-compose.yml
)
JAWANNDENN_SECRET_KEY
Clé secrète Django ; doit être long, généré, non utilisé ailleurs ; pas de défaut, toujours requis
JAWANNDENN_SENTRY_DSN
Nom de la source de données (DSN) à utiliser avec Sentry, désactivé/vide par défaut (voir jawanndenn/settings.py
)
JAWANNDENN_URL_PREFIX
Chaîne de préfixe à insérer dans les URL plutôt après le nom de domaine pour faciliter l'hébergement côte à côte de plusieurs applications sous le même domaine ; par exemple, le préfixe prefix123
entraînera des URL telles que https://<domain>/prefix123/poll/<id>
; vide par défaut (voir jawanndenn/settings.py
)
Une fois installé, l'invocation est aussi simple que
#jawanndenn
Pendant le développement, vous souhaiterez peut-être exécuter jawanndenn à partir du clone Git en utilisant
# PYTHONPATH=. python3 -m mâchoire --debug
Les arguments actuellement pris en charge sont :
# jawanndenn --help utilisation : jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-prefix CHEMIN] [--database-sqlite3 FICHIER] [--django-secret-key-file FILE] [--max-polls COUNT] [--max-votes-per-poll COUNT] [--dumpdata] [--loaddata FILE.json] arguments facultatifs : -h, --help afficher ce message d'aide et quitter --debug Activer le mode débogage (par défaut : désactivé) --host HOST Nom d'hôte ou adresse IP à écouter (par défaut : 127.0.0.1) --port PORT Port d'écoute (par défaut : 8080) --url-prefix PATH Chemin à ajouter aux URL (par défaut : "") --database-sqlite3 FICHIER Fichier dans lequel écrire la base de données (par défaut : ~/jawanndenn.sqlite3) --django-secret-key-file FICHIER Fichier à utiliser pour les données de clé secrète Django (par défaut : ~/jawanndenn.secret_key) configuration des limites : --max-polls COUNT Nombre maximum de sondages au total (par défaut : 1000) --max-votes-par-sondage COUNT Nombre maximum de votes par sondage (par défaut : 40) arguments d'importation/exportation de données : --dumpdata Dump une exportation JSON de la base de données vers la sortie standard, puis quittez. --loaddata FILE.json Charger un export JSON de la base de données depuis FILE.json, puis quittez.
La migration se déroule en quatre étapes :
pip2 install --upgrade 'jawanndenn<2'
; l'exportation de données JSON a été introduite pour la première fois avec la version 1.6.3.python2 -m jawanndenn --dumpdata > dump.json
docker-compose run -T jawanndenn --database-pickle /data/polls.pickle --dumpdata > dump.json
pip3 install 'jawanndenn>=2'
quelque partpython3 -m jawanndenn --loaddata dump.json
docker-compose run -T jawanndenn sh -c 'cat > /tmp/dump.json && DJANGO_SETTINGS_MODULE=jawanndenn.settings python3 -m django loaddata /tmp/dump.json' < dump.json
Veuillez consulter la liste des fonctionnalités à venir.
Un merci spécial à Arne Maier (@KordonDev) pour avoir signalé une vulnérabilité XSS, de manière responsable.