Installer DemocracyOS

De Wiki Amis SH
Aller à la navigation Aller à la recherche



Le wiki : Accueil - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack


Présentation de DemocracyOS

DemocracyOS.
DemocracyOS est une application open source de prise de décisions de manière transparente, collective et collaboratives.
Les associations, communautés, entreprises et organisations peuvent l'utiliser comme outil de recherche de consentement.
Les électeurs croient que leurs idées et leurs opinions n'ont pas d'importance pour ceux qui sont au pouvoir ou ne les atteindront pas.
L'un des plus grands obstacles à l'ouverture du gouvernement est le déclin de la participation des citoyens.
Le système actuel permet de choisir entre des options binaires, mais il exclut très souvent la population dans la conception de ces options.
Cette exclusion est la clé d'une énorme crise de la représentation mondiale.
Occuper Wall Street, le printemps arabe, les émeutes grecques.
Ce ne sont que les conséquences d'un système qui ne nous représente plus et qui ne peut que produire de l'agitation.
Pia Mancini, politologue argentine est l'une des fondatrices de Democracia en Red : http://democraciaenred.org
Democracia en Red croit en la technologie comme un moyen d'étendre la démocratie à ses citoyens, et vise à construire une nouvelle culture de la participation politique.
Citation de Pia Mancini lors d'une conférence TEDx en 2013 : Il est temps d'innover là où personne n'innove : le système politique !
Parce que notre démocratie est dans l'impasse et qu'elle n'est plus capable de répondre aux exigences d'une société de plus en plus complexe et transformée par les nouvelles technologies.
DemocracyOS est une plate-forme open source qui permet aux citoyens de débattre des propositions sur lesquelles votent leurs représentants.
C'est aussi un endroit où les électeurs peuvent présenter des projets et des idées à leurs représentants pour un débat.
x320
x320
x320

Contacter DemocracyOS

Sites officiels

Le site officiel : http://democracyos.eu
Le blog officiel : http://blog.democracyos.org
Le Twitter officiel : https://twitter.com/DemocracyOS
DemocracyOS France : https://github.com/democracy-os-fr/democracy-os-fr.github.io
Github pour les topics de DemocracyOS en Anglais : https://github.com/topics/democracyos
La chaîne Gitter de DemocracyOS pour un support en temps réel : https://gitter.im/DemocracyOS/democracyos
Le groupe de Google pour un forum de discussions sur DemocracyOS : https://groups.google.com/forum/#!forum/democracyos-app
Tester App DemocracyOS pour déployer rapidement votre sondage ou proposition de loi dans votre réseau : https://app.democracyos.org
(Indisponible lors de la dernière consultation.)

Mails officiels

contact@democracyos.eu
speak@democracyos.org

Installer DemocracyOS

DemocracyOS ne peut être installé que sur GNU/Linux.

Installer DemocracyOS avec Docker

# Attention, cette installation n'est pas adaptée pour une mise en production !
# Il s'agit de la première tentative relativement aboutie pour déployer DemocracyOS.
# Cette première approche fonctionnelle apporte de nombreuses informations pratiques mais également des problématiques.
# En 2021, un nouveau tutoriel plus compréhensible qui répond aux problématiques identifiées est partagé depuis l'onglet Discussion de cette page.
# Pour installer DemocracyOS, consulter l'onglet Discussion.
Info Version :
Système d'exploitation : Debian 9.5 Stretch SID.
MongoDB : Vérifier la version actuelle de l'image Docker.
DemocracyOS : Vérifier la version actuelle de l'image Docker.
NodeJS : 6.14.4
Installer Docker : Installer Docker sur Debian 9 Stretch.
# Ajouter la ligne deb de docker dans le sources.list :
sudo nano /etc/apt/sources.list
deb [arch=amd64] https://download.docker.com/linux/debian stretch stable

# Mettre à jour le dépôt :
sudo apt update

# Installer Docker : 
sudo apt-get install docker-ce

# Ne pas utiliser root pour lancer Docker. Utiliser l'utilisateur courant :
sudo usermod -aG docker USER
# Si le service Docker ne démarre pas, redémarrer le serveur. Patienter quelques minutes.
shutdown -r now "Redémarrage"
# Redémarrer les services :
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/mysql restart
sudo service php7.2-fpm restart

# Ses actions sont sûrement inutiles pour le problème que j'ai rencontré.
# J'avais également effectué les actions suivantes :
sudo rm -rf /var/lib/docker/network
sudo mkdir /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/docker.conf
sudo rm /etc/systemd/system/docker.service.d/docker.conf
sudo systemctl daemon-reload
sudo systemctl start docker

# Supprimer Docker et purger les fichiers de configuration, si cela n'a pas été déjà fait avant de redémarrer.
sudo apt-get autoremove --purge docker-ce
# Réinstaller Docker, qui devrait démarrer.
sudo apt-get install docker-ce

# Ne pas utiliser root pour lancer Docker. Utiliser l'utilisateur courant :
sudo usermod -aG docker USER

Charger les images Docker nécessaires

docker pull mongo:3.2
docker pull democracyos/democracyos

Créer une instance MongoDB

docker run --name mongo -d mongo:3.2

Créer un volume pour une instance de DemocracyOS

docker volume create democracyos1

Créer une instance de DemocracyOS liée à une instance de MongoDB et indiquer le répertoire de configuration de DemocracyOS

docker run -it --link mongo:mongo -e STAFF="alternative@green-nrj.com" --name democracyos1 -p 3000:3000 -v democracyos1:/usr/src/config -d democracyos/democracyos
# Cette première occurrence de mongo correspond / correspondrait au nom du conteneur à utiliser.
# C'est donc la première occurrence mongo qui fait le lien avec le conteneur de MongoDB nommé mongo.
# Le port 3000 est celui qui permet l'écoute de MongoDB.
## C'est peut être à ce niveau que le nommage doit être modifié pour recevoir des mails avec des liens de validation correctement formés.
## Est-ce vraiment nécessaire de remplacer localhost par mongo dans la chaîne de connexion ?
## Soit laisser localhost, soit, mettre un domaine comme green-adn.com ?

Remplacer localhost par mongo dans la chaîne de connexion

sudo sed -i -e 's|localhost|mongo|' $(docker inspect democracyos1|grep Source| awk -F '"' '{print $4}')/defaults.json
# Tester autre chose que mongo, pourrait modifier le path des mails réceptionnés, même si peu probable.

Redémarrer le conteneur democracyos1

Lire les logs avant de redémarrer le conteneur

docker logs democracyos1
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): undefined
events.js:160
     throw er; // Unhandled 'error' event
     ^
MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
   at Pool.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/topologies/server.js:328:35)
   at emitOne (events.js:96:13)
   at Pool.emit (events.js:188:7)
   at Connection.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:280:12)
   at Connection.g (events.js:292:16)
   at emitTwo (events.js:106:13)
   at Connection.emit (events.js:191:7)
   at Socket.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:177:49)
   at Socket.g (events.js:292:16)
   at emitOne (events.js:96:13)
   at Socket.emit (events.js:188:7)
   at emitErrorNT (net.js:1290:8)
   at _combinedTickCallback (internal/process/next_tick.js:80:11)
   at process._tickCallback (internal/process/next_tick.js:104:9)

Redémarrer le conteneur

# Redémarrer le conteneur pour appliquer les modifications.
docker restart democracyos1

Lire les logs après avoir redémarrer le conteneur

docker logs democracyos1

(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): undefined
events.js:160
     throw er; // Unhandled 'error' event
     ^
MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
   at Pool.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/topologies/server.js:328:35)
   at emitOne (events.js:96:13)
   at Pool.emit (events.js:188:7)
   at Connection.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:280:12)
   at Connection.g (events.js:292:16)
   at emitTwo (events.js:106:13)
   at Connection.emit (events.js:191:7)
   at Socket.<anonymous> (/usr/src/node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:177:49)
   at Socket.g (events.js:292:16)
   at emitOne (events.js:96:13)
   at Socket.emit (events.js:188:7)
   at emitErrorNT (net.js:1290:8)
   at _combinedTickCallback (internal/process/next_tick.js:80:11)
   at process._tickCallback (internal/process/next_tick.js:104:9)
update users maxlength from 0 users succeded.
update topics maxlength from 0 topics succeded.
v1: 0
v2: 0
v3: 0
update clauses from 0 topics succeded
add topics owner from 0 topics succeded.
update topics action from 0 topics succeded.
update topics participants count from 0 topics succeded.
refactor topics action from 0 topics succeded.
decouple topics votes from 0 topics succeded.
Remove black listed emails.

Principale difficulté à propos du redémarrage

Actuellement, lors de certaines mises à jour, les instances Docker sont arrêtées.
Je n'arrive alors pas à les redémarrer.

Vérifier si mongo et DemocracyOS sont démarrés

docker ps

Entrer dans le conteneur democracyos1

Je n'ai pas tenté d'ajouter un conteneur Docker pour Node.js.
Pour le moment, j'installe directement Node.js dans le conteneur democracyos1.
# Se connecter au serveur Debian.
# Identifier l'identifiant du conteneur Docker de DemocracyOS.
docker ps -a
# Entrer dans le conteneur Docker de DemocracyOS.
docker exec -ti democracyos1 /bin/bash
# Mettre le système installé dans le conteneur à jour :
apt update
apt upgrade
# Installer Node.js
# La version 10 de nodeJS ne fonctionnerait pas. A priori c'est la version 6 qui fonctionne.
curl -sL https://deb.nodesource.com/setup_6.x | bash -
apt-get install -y nodejs
# Installer l'éditeur de texte nano pour éditer le fichier de configuration.
apt install nano
# Sortir du conteneur democracyos1.
exit

Afficher le fichier de configurations de DemocracyOS

# Entrer dans le conteneur Docker de DemocracyOS.
# L'utilisateur courant du système d'exploitation ayant été ajouté au groupe docker, il n'est plus nécessaire d'utiliser sudo pour démarrer docker.
docker exec -ti democracyos1 /bin/bash
# Différentes configurations sont nécessaires pour pouvoir utiliser DemocracyOS.
Le fichier de configuration par défaut est localisé dans le fichier config/defaults.json.
# Afficher la configuration par défaut de DemocracyOS.
cd /usr/src
cat config/defaults.json
{
 "locale": "en",
 "protocol": "http",
 "warnHTTP": true,
 "host": "localhost",
 "publicPort": 3000,
 "mongoUrl": "mongodb://localhost/DemocracyOS-dev",
 "mongoUsersUrl": "",
 "jwtSecret": "Generate a secret token and paste it here.",
 "corsDomains": [],
 "signinUrl": "",
 "signupUrl": "",
 "settingsUrl": "",
 "staff": [],
 "allowEmailAliases": true,
 "facebookSignin": false,
 "publicEmails": false,
 "moderatorEnabled": false,
 "checkNodeVersion": true,
 "auth": {
   "basic": {
     "username": "",
     "password": ""
   },
   "facebook": {
     "clientID": "",
     "clientSecret": "",
     "permissions": [ "email" ]
   }
 },
 "https": {
   "serverKey": "server.key",
   "serverCert": "server.crt",
   "port": 443,
   "redirect": "normal"
 },
 "certbot": {
   "key": "",
   "token": ""
 },
 "notifications": {
   "url": "",
   "token": "",
   "mailer": {
     "name": "The DemocracyOS Team",
     "email": "no-reply@democracyos.org",
     "service": "",
     "auth": {
       "user": "",
       "pass": ""
     }
   },
   "nodemailer": {}
 },
 "slack": {
   "apiErrorWebhookUri": ""
 },
 "recaptchaSite": "",
 "recaptchaSecret": "",
 "blackListEmails": [],
 "client": [
   "protocol",
   "host",
   "publicPort",
   "env",
   "locale",
   "logo",
   "logoMobile",
   "favicon",
   "organizationName",
   "organizationUrl",
   "learnMoreUrl",
   "googleAnalyticsTrackingId",
   "frequentlyAskedQuestions",
   "termsOfService",
   "moderatorEnabled",
   "privacyPolicy",
   "glossary",
   "signinUrl",
   "signupUrl",
   "settingsUrl",
   "homeLink",
   "headerContrast",
   "headerBackgroundColor",
   "headerFontColor",
   "facebookSignin",
   "visibility",
   "usersWhitelist",
   "multiForum",
   "restrictForumCreation",
   "tweetText",
   "segmentKey",
   "spamLimit",
   "availableLocales",
   "warnHTTP",
   "recaptchaSite"
 ],
 "socialshare": {
   "siteName": "DemocracyOS",
   "siteDescription": "DemocracyOS voting system",
   "image": "https://2.gravatar.com/avatar/a8b9176bd0d042db078bf38500727671?d=https%3A%2F%2Fidenticons.github.com%2F14bae9f2564556f8eb23cc263a779f59.png&s=400",
   "domain": "democracyos.org",
   "twitter": {
     "username": "@democracyos"
   }
 },
 "logo": "/lib/boot/logo.png",
 "logoMobile": "/lib/boot/logo-mobile.png",
 "favicon": "/lib/boot/favicon.ico",
 "organizationName": "DemocracyOS on GitHub",
 "organizationEmail": "no-reply@democracyos.org",
 "organizationUrl": "https://github.com/DemocracyOS/app",
 "learnMoreUrl": "",
 "googleAnalyticsTrackingId": "",
 "spamLimit": 5,
 "frequentlyAskedQuestions": false,
 "termsOfService": false,
 "privacyPolicy": false,
 "glossary": false,
 "homeLink": "/",
 "headerBackgroundColor": "#64476e",
 "headerFontColor": "#fff",
 "headerContrast": false,
 "googleAPIKey": "",
 "visibility": "visible",
 "usersWhitelist": false,
 "multiForum": false,
 "restrictForumCreation": false,
 "defaultForum": "",
 "tweetText": "",
 "forceSafeImageURLs": true,
 "segmentKey": "",
 "availableLocales": [
   "ca",
   "de",
   "en",
   "es",
   "fi",
   "fr",
   "gl",
   "hu",
   "it",
   "nl",
   "pl",
   "pt",
   "ro",
   "ru",
   "sq",
   "sv",
   "uk",
   "zh_TW"
 ],
 "enforceLocale": false
}
 Documentation officielle pour la configuration : http://docs.democracyos.org/configuration.html
Modifier la configuration par défaut de DemocracyOS
# Je modifie le fichier de configuration config/defaults.json lors de mes premiers essais.
cd /usr/src
nano config/defaults.json
# Une fois que les modifications présentées par la suite auront été appliquées dans le fichier de configuration, enregistrer le fichier.
CTRL + X, Y pour accepter les modifications, la touche entrée permet de valider l'enregistrement du fichier.
# Sortir du conteneur Docker de democracyos1 avec exit pour revenir au terminal de notre machine.
exit
# Depuis le terminal de notre serveur, redémarrer le conteneur Docker pour prendre en compte sa nouvelle configuration.
docker restart democracyos1
Modifier la configuration de développement de DemocracyOS
# Il est recommandé de ne pas modifier le fichier config/defaults.json directement.
# Pour modifier la configuration, utiliser la commande NODE_ENV=development node ./bin/dos-install --config
# Le fichier /usr/src/config/development.json est créé et peut être modifié pour prendre en compte une configuration personnalisée.
nano /usr/src/config/development.json
# Je n'ai pas utilisé cette méthode lors de mes essais avec DemocracyOS et Docker.
Configurer DemocracyOS pour permettre l'envoi de mails
Les mails ne sortent pas avec la configuration par défaut.
Pour obtenir une confirmation de création de compte ou pour lancer une récupération de mot de passe, utiliser un service SMTP alternatif en créant un compte sur SendGrid ou Sparkpost.
Adapter la section "mailer" en fonction du service SMTP alternatif utilisé. Les mails pourront alors fonctionner correctement.
# Note : Si des propriétés doivent être ajoutées, utiliser nodemailer.
# Je n'ai pas eu besoin de préciser le port pour le moment, ma tentative d'utiliser cette ligne de configuration semble avoir empêché l'envoi des mails.
# "nodemailer": {"port":443,"secure":true}
Avec SendGrid
"mailer": {
     "name": "Alternative Green NRJ - DemocracyOS",
     "email": "alternative@green-nrj.com",
     "service": "SendGrid",
     "auth": {
       "user": "USERNAME",
       "pass": "PASSWORD"
     }
Avec Sparkpost
"mailer": {
     "name": "Alternative Green NRJ - DemocracyOS",
     "email": "alternative@green-nrj.com",
     "service": "Sparkpost",
     "auth": {
       "user": "USERNAME",
       "pass": "PASSWORD"
     }
Créer le premier utilisateur et administrateur de DemocracyOS
Éditer le fichier de configuration de DemocracyOS pour ajouter le mail qui va servir à créer le compte administrateur.
Remplacer la valeur du mail pour la variable staff :
 "staff": ["alternative@green-nrj.com"]
Modifier l'adresse URL qui sera affichée dans le mail envoyé pour valider le compte utilisateur
Les liens de validation sont mal formés du type : http://mongo:3000/signup/validate/5bb6a42326c90e41...
# Copier coller la fin du lien pour le coller après le domaine n'est pas pris en compte pour valider le compte utilisateur.
# Ce problème peut être contourné en se renvoyant le mail dans lequel on aura remplacé mongo:3000 par le bon nom de domaine.ext.
# On clic le lien du mail qui a été modifié par nos soins, la validation est alors prise en compte.
Dans le fichier de configuration, modifier la ligne suivante et la valeur localhost par l'adresse IP du serveur ou le nom de domaine a utiliser par défaut.
Utiliser l'adresse IP permettra de faire une redirection du port 3000 vers un nom de domaine par défaut.
"host": "localhost",
Enlever l'alerte SSL rouge au bas de la page
# Pour le moment, le site n'est pas passé en SSL.
# Un warning s'affiche au bas de la page et peut effrayer les premiers utilisateurs qui voudraient tester DemocracyOS.
# Modifier la configuration en passant la valeur par défaut true à false pour enlever l'alerte SSL rouge au bas de la page.
"warnHTTP": false,
Modifier la variable langue locale
# Remplacer
"locale": "en",
# Par
"locale": "fr",
# Je n'ai pas constaté de changement.
# Pour utiliser le site en français, faire le choix de la langue depuis son profil utilisateur.
Modifier le nom et la description du site
"siteName": "DemocracyOS",
"siteDescription": "Systeme de votation DemocracyOS",
"domain": "https://www.unis-pour-la-planete.com",
# Je ne crois pas qu'il y ait un changement de nom du site.

Première connexion à DemocracyOS

Accéder à DemocracyOS

La page par défaut de DemocracyOS est maintenant disponible à la consultation.
En local : http://localhost:3000
En production : http://139.99.173.195:3000

Changer la langue par défaut de l'utilisateur

Modifier la langue de l'utilisateur depuis le profil de l'utilisateur :
http://domaine.ext:3000/settings/profile

Changer le texte des traductions pour les notifications utilisateurs

https://github.com/DemocracyOS/notifier/blob/master/lib/translations/lib/fr.json

Créer mon DemocracyOS

Une fois le fichier de configuration correctement édité et le conteneur Docker redémarré, aller sur votre site DemocracyOS pour créer votre première loi on votre premier sondage.

Immédiatement, on peut constater que le basepath n'est pas correcte, en proposant http://mongo/ dans un lien qui n'est pas ici modifiable.
Si l'adresse IP ou un nom de domaine a bien été ajouté dans le fichier de configuration, l'adresse affichée devrait être correcte.
Je ne renseigne pas cette étape complètement et je passe directement a l'étape suivante, la modification d'un projet existant.

Modifier mon DemocracyOS


Les mêmes options que précédemment sont disponibles, mais, le basepath proposée ici est localhost.
Il faut corriger le basepath, pour pouvoir notamment permettre aux liens présents dans les mails envoyés par DemocracyOS de fonctionner normalement.

Visualiser la nouvelle entête de la page d'accueil


La configuration standard du site étant créée, on peut voir que notre entête s'affiche correctement en haut de la page.

Créer le premier sondage


Paramétrer un premier sondage, ou, un premier vote.
Il sera affiché sur la page d'accueil.

Page d'accueil complète


Le rendu de la page d'accueil.
Le certificat SSL doit être ajouté pour ne pas avoir le message d'alerte en rouge, en bas de page.

Notes complémentaires

1- Redémarrer les conteneurs mongo et democracyos1

# Suite au redémarrage forcé du serveur, après un Deni de service lors de tests sur la montée en charge, DemocracyOS n'est plus accessible.
docker ps -a affiche bien les images.
docker ps ne retourne rien.
# Redémarrer DemocracyOS avec les deux commandes suivantes :
docker restart mongo
docker restart democracyos1
Dans ce cas, les deux instances devraient redémarrer correctement mais ce n'est pas le cas.
L'instance democracyos1 semble liée au réseau, un paramétrage semble être persistant, je n'arrive pas à redémarrer cette instance.

2- Redémarrer les conteneurs mongo et democracyos1

Si j'arrête volontairement les conteneurs de MongoDB et DemocracyOS, je n'arrive pas à les relancer pour pouvoir à nouveau accéder au site.
Un message m'informe que le port 3000 est déjà utilisé ou que le nom democracyos1 est déjà utilisé dans le bridge du réseau.
Les logs n'apportent pas vraiment d'informations complémentaires : docker logs democracyos1

A suivre

Nano ne prend pas en compte les accents

Faire un dpkg-reconfigure locales. A tester.

Comment changer le titre de la page

Comment changer le titre de la page ?

Comment réécrire l'adresse à saisir pour accéder à DemocracyOS

Réécriture de l'adresse de domaine.ext:3000 pour domaine.ext/democracyos
Depuis le fichier de configuration des hôtes virtuels de Apache2, ajouter un VirtualHost pour lier l'adresse IP à un nom de domaine.
# Se placer dans le dossier de configuration des sites de Apache2.
cd /etc/apache2/sites-available/
# Ouvrir le fichier 000-default.conf créé et utilisé par défaut.
sudo nano 000-default.conf
<VirtualHost 139.99.173.195:3000>
ServerName green-nrj.com:3000
ServerAlias unis-pour-le-climat.com:3000
</VirtualHost>
# Redémarrer Apache2 :
sudo /etc/init.d/apache2 restart

Comment sauvegarder les données de Docker et MongoDB

# Sauvegarder les données de Docker et MongoDB.
# Utiliser les outils dédiés à MongoDB : Backup / Restore.
# Ajouter la ligne suivante dans le fichier.yml :
   volumes:
     - <chemin_vers_repertoire_de_sauvegarde>:/dump

Comment gérer les utilisateurs et les mails

# Comment activer un compte utilisateur manuellement ?
# Ou sont les logs suite à un envoi de mail pour retrouver les messages envoyés par le programme DemocracyOS ?

Installer DemocracyOS avec Ansible et OnPremises

Mes premiers essais pour installer DemocracyOS avec Ansible et OnPremises sont vains.
Je n'ai pas réussi à configurer Ansible et OnPremises ni a utiliser DemocracyOS.
Les configurations des fichiers sont complexes.
Installer DemocracyOS avec Ansible et OnPremises.

Notes complémentaires pour la résolution des problématiques en cours

Passer en HTTPS

Supprimer l'avertissement en ajoutant le protocole de configuration https ou en tant que var var PROTOCOL = https
Dans le fichier de configuration, modifier http par https.
"protocol": "https",
Dans le futur, DemocracyOS va utiliser les en-têtes HSTS pour ne plus avoir cet avertissement.
L'alerte https est toujours affichée, malgré ce changement de configuration.
 Il faut maintenant configurer le https en suivant la documentation suivante : http://docs.democracyos.org/configuration.html#ssl
 Vous pouvez ajouter SSL avec un proxy inverse et Lets Encrypt, mais comment mettre en œuvre ce n'est pas vraiment une préoccupation de DemocracyOS : http://docs.democracyos.org/configuration.html#-protocol-
 Source complémentaire à lire : https://hub.docker.com/r/democracyos/democracyos/
 Issue au sujet du SSL sur Github : https://github.com/DemocracyOS/democracyos/issues/1478
 Issue au sujet du SSL sur Github : https://github.com/DemocracyOS/democracyos/issues/1532
You could add SSL with a reverse proxy and Lets Encrypt, but how to implement that is not a DemocracyOS concern really.
Docker serrait a utiliser pour les déploiements de production avec haproxy qui permet de crypter les conteneurs.

Réponse du support

Source : https://github.com/DemocracyOS/democracyos/issues/1478#issuecomment-383156357

Essai fonctionnel

Via la documentation de DemocracyOS pour son installation :
https://docs.democracyos.org/install.html
Installation effectuée avec git clone + make run
Je melog dans l'instance docker puis "make run".
Ajouter l'administrateur :
Il est nécessaire d'ajouter l'administrateur manuellement dans la configuration de DemocracyOS.
staff env: STAFF default: [] Users with emails listed here will have access to /admin, and will be able to edit Topics, Tags, Whitelist users...
C'est ici : https://docs.democracyos.org/configuration.html
Voir aussi : setup and access the administration module : https://github.com/DemocracyOS/democracyos/wiki/Admin-module
DemocracyOS sur Ubuntu 16.04 : https://mariatchi.osp.cat/wp-content/uploads/2018/08/Configuration-dun-serveur-ubuntu-et-installation-de-DemocracyOS.pdf

Installation sans Docker

Installation testée sur un serveur AWS Ubuntu 18.04.1 LTS

Installation

# Installation des packages nécessaires
sudo apt-get update
sudo apt-get install mongodb make nano git nodejs npm openssl
# Vérifier ensuite les version de npm et nodejs avec npm -v et node -v. Elles doivent être entre 5 et 7 pour npm et entre 3 et 5 pour nodejs :
npm -v
4.6.1
nodejs -v
v6.14.1
# Récupération du code : 
git clone https://github.com/DemocracyOS/democracyos.git
# Lancement de l'installation
cd democracyos
make run
# Si tout se passe bien, le serveur est disponible sur http://votre-ip:3000

DemocracyOS devient Democracy Earth

Democracy Earth.

Introduction

DemocracyEarth a été initié par deux des fondateurs de DemocracyOS qui se concentrent sur la partie technologique du processus décisionnel et les cas d'utilisations possibles de blockchain dans ces processus.
DemocracyEarth se concentre sur l'application révolutionnaire de la blockchain dans la gouvernance, qui pourrait conduire à de nouveaux processus participatifs.
DemocracyOS est orienté processus participatifs à l'aide d'une application web.
L'objectif est d'améliorer les processus de participation civique au gouvernement, localement.

Installer Democracy Earth

Getting Started with Democracy Earth : https://www.medialab-prado.es/en/news/getting-started-democracy-earth
Code source et documentation pour le déploiement : https://github.com/DemocracyEarth/dapp
Site officiel basé sur DemocracyEarth : https://www.democracy.earth
Token : https://token.democracy.earth
Support utilisateur : https://github.com/DemocracyEarth/dapp/issues/541#issuecomment-729817430
We are literally building those features :
- Proposal editor
- DAO Launcher

You can look at https://daohaus.club for a reference of where we are going as we are working to fully support the MolochDAO v1 and v2 contracts.
Right now Democracy Earth is used to browse and vote on the activity of every MolochDAO deployed onchain.

Installer Democracy Earth sur Debian Buster

# Cloner le dépôt :
sudo apt install git
sudo git clone https://github.com/DemocracyEarth/dapp.git
cd dapp
# Installer NODE.js.
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'start' ]
2 info using npm@6.14.8
3 info using node@v14.12.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle democracy-earth-dapp@0.8.4~prestart: democracy-earth-dapp@0.8.4
6 info lifecycle democracy-earth-dapp@0.8.4~start: democracy-earth-dapp@0.8.4
7 verbose lifecycle democracy-earth-dapp@0.8.4~start: unsafe-perm in lifecycle true
8 verbose lifecycle democracy-earth-dapp@0.8.4~start: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/userone/dapp/node_modules/.bin:/usr/local/sbin:/usr/local$
9 verbose lifecycle democracy-earth-dapp@0.8.4~start: CWD: /home/userone/dapp
10 silly lifecycle democracy-earth-dapp@0.8.4~start: Args: [ '-c', 'react-scripts start' ]
11 info lifecycle democracy-earth-dapp@0.8.4~start: Failed to exec start script
12 verbose stack Error: democracy-earth-dapp@0.8.4 start: `react-scripts start`
12 verbose stack spawn ENOENT
12 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:48:18)
12 verbose stack     at ChildProcess.emit (events.js:314:20)
12 verbose stack     at maybeClose (internal/child_process.js:1047:16)
12 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)
13 verbose pkgid democracy-earth-dapp@0.8.4
14 verbose cwd /home/userone/dapp
15 verbose Linux 4.19.0-11-amd64
16 verbose argv "/usr/bin/node" "/usr/bin/npm" "start"
17 verbose node v14.12.0
18 verbose npm  v6.14.8
19 error code ELIFECYCLE
20 error syscall spawn
21 error file sh
22 error errno ENOENT
23 error democracy-earth-dapp@0.8.4 start: `react-scripts start`
23 error spawn ENOENT
24 error Failed at the democracy-earth-dapp@0.8.4 start script.
24 error This is probably not a problem with npm. There is likely additional logging output above.
25 verbose exit [ 1, true ]

# Installer les dépendances :
# Le site s'affichera mais, avec une problème de CSS, les blocs de droite recouvrant partiellement les blocs du milieu.
sudo npm install
...
found 63 vulnerabilities (61 low, 2 high)
run `npm audit fix` to fix them, or `npm audit` for details
...
# Lancer le fix corrige certaines erreurs.
# Le site s'affichera mais, avec une problème de CSS, les blocs de droite recouvrant partiellement les blocs du milieu.
npm audit fix
...
fixed 49 of 63 vulnerabilities in 2341 scanned packages
13 vulnerabilities required manual review and could not be updated
1 package update for 1 vulnerability involved breaking changes
(use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually)
...
# Avec le fix --force le site ne s'affichera plus mais différentes erreurs seront affichées depuis le navigateur Firefox.
# Le bogue d'affichage a été corrigé : https://github.com/DemocracyEarth/dapp/issues/531#issuecomment-729817736
npm audit fix --force
# Lancer l'application :
sudo npm start
# Consulter le site Democracy Earth en local :
http://localhost:3000/
# Se connecter :
# Utiliser par exemple le service Authereum.

Bibliographie

DemocracyOS

 Qui utilise DemocracyOS : https://web.archive.org/web/20180815232908/http://democracyos.eu/projets/
 Exemple de plateforme utilisant DemocracyOS à Mexico : https://www.codeandomexico.org
 Exemple de plateforme utilisant DemocracyOS au Brésil : https://github.com/okfn-brasil/euvoto
 Pia Mancini est une co-fondatrice du parti politique argentin Partido de la Red : https://fr.wikipedia.org/wiki/Pia_Mancini
 Interview de Pia Mancini sur DemocracyOS : https://opensource.com/government/14/8/interview-pia-mancini-democracyos-part-one
 Une consultation au service d’une société numérique innovante et inclusive : http://www.ding85.com/alliance_leveling_guide/images/64b.jpg
We would like to inform you that currently DemocracyOS became an inactive project of Democracia en Red ( https://democraciaenred.org ) and will no longer be officially updated nor maintained. Please, refer to the original authors of the repository for support, as "Democracia en Red" cannot offer proper answers for the issues. **For now**, the repository works. If you decide to update dependencies, do it at your own risk.
Source : https://github.com/DemocracyOS/democracyos
DemocracyOs pourrait revenir au devant de la scène, prochaines informations à suivre depuis le site officiel : https://democraciaos.org/es/
La liste des projets depuis le dépôt de democraciaenred :  https://github.com/democraciaenred
Consulta Pública : Le dernier projet mis à jour sur GitHub : https://github.com/datosgobar/consulta-publica
La Plataforma de Consulta Pública es un desarrollo basado en la tecnología de DemocracyOS coordinado por la Subsecretaría de Innovación Pública y Gobierno Abierto pertenece al Ministerio de Modernización de Argentina.
El código se basa en DemocracyOS, plataforma de código abierto especialmente diseñada para informar, debatir y votar propuestas públicas de forma online hacia la construcción de una democracia adaptada al siglo XXI.

Ressources complémentaires pour DemocracyOS

 Installation en français : https://web.archive.org/web/20191118143505/http://democracyos.eu/docs-fr/doc/2016/09/22/installation.html
 Dockerfile democracyos : https://hub.docker.com/r/ghostbar/democracy-os/~/dockerfile/
 Dockerfile democracyos : https://gist.github.com/Schniz/dc208348cf30d6c4bdfc04e74e492de8
 Developpement Democracyos : http://docs.democracyos.org/develop/
 Installer Ansible sur Ubuntu : https://www.cyberciti.biz/faq/how-to-install-and-configure-latest-version-of-ansible-on-ubuntu-linux/
 Tutoriel complémentaire pour installer ansible : https://www.abyssproject.net/2016/08/installation-de-ansible-raspbian-debian/
 Formation Ansible en utilisant Docker pour devenir DevOps : http://www.it-wars.com/posts/dev/formation-ansible-docker-devops/
 https://github.com/DemocracyOS/extension-example/blob/master/README.md
 http://linuxfr.org/users/skhaen/journaux/deploiement-et-automatisation-avec-ansible-partie-1
 Source : http://docs.ansible.com/ansible/latest/playbooks_reuse.html
 Source : http://docs.ansible.com/ansible/latest/galaxy.html
 Source : http://docs.ansible.com/ansible/latest/playbooks.html
 Détails sur le port 3000 : https://www.speedguide.net/port.php?port=3000

Autres outils de démocratie participative

Adoodle

Créer un vote anonyme avec Adoodle : https://adoodle.org

Agorakit

.

Aragon

https://aragon.org

Beecitiz

Beecitiz, les citoyens participent au service public.
Beecitiz est un service innovant et pratique permettant aux usagers de signaler une demande sur une carte, un dysfonctionnement technique ou plus généralement une idée concernant la collectivité.
www.beecitiz.com

Bitnation Pangea

https://bitnation.co
https://tse.bitnation.co

Cavote

https://code.ffdn.org/ffdn/cavote

Colony

https://colony.io

Communecter

.

Consul project

Site officiel : http://consulproject.org/en/
Source : https://ogptoolbox.org/fr/tools/4318

Decidim

Site officiel : https://decidim.org
Github : https://github.com/decidim/decidim
Installer Decidim : https://github.com/Platoniq/decidim-install/blob/master/decidim-bionic.md
Decidim, un projet technopolitique : https://medium.com/open-source-politics/decidim-un-projet-technopolitique-f23290d84a18

Decidemos

Site officiel de Decidemos : https://vote.decidemos.com
Le Decidemos des gilets Jaunes : https://giletsjaunes.decidemos.com

Demodyne

.

Fixmystreet

 Site officiel : https://www.fixmystreet.com

Framadate

 Framadate : https://framadate.org

Helios voting

Site officiel : https://heliosvoting.org
Documentation : https://github.com/benadida/helios-server/issues/268#issuecomment-747561370 -> https://github.com/bmalbusca/helios-server

Kialo

 Site officiel : https://www.kialo.com

Le choix commun

Et si on votait autrement ?
Le Choix Commun, c’est une solution d’aide à la décision collective basée sur le jugement majoritaire, un mode de scrutin proposé par deux chercheurs français, qui sonde précisément et fidèlement l’opinion de chaque participant pour un résultat réellement démocratique.
Source : https://lechoixcommun.fr

Makevotesmatter

Site officiel : https://www.makevotesmatter.org.uk

Mezalab

Mezalab : http://www.mezalab.org

Open Mairie

Outil libre de gestion municipale, pas encore participatif, mais, ça pourrait le devenir.

OpenSimulator

OpenSimulator.

Parlement et Citoyens

Site officiel : https://parlement-et-citoyens.fr

SeeClickFix

SeeClickFix est une application de gestion des demandes et des travaux 311 qui réduit l'écart de communication entre les résidents et leurs gouvernements locaux.
https://seeclickfix.com

Solucracy

Une carte collaborative de priorisation et de résolution de problèmes.
Nous avons tous les mêmes problèmes, trouvons ensemble les solutions.
Site officiel : http://solucracy.com

Stig

Application de démocratie participative - Civic Tech.
Stig est une application gratuite qui permet aux citoyens de construire ensemble la volonté générale à l'échelle de la France ainsi qu'à l'échelle locale.
https://getstig.org

TellMyCity

https://play.google.com/store/apps/details?id=com.spallian.dev&hl=en_US

Propositions d'outils numériques sur le wiki de Nuit Debout

Source : https://wiki . nuitdebout . fr/wiki/Outils/Numerique/Liste
La liste des outils numériques de nuit debout sur Archive du web : https://web.archive.org/web/20190428051805/wiki.nuitdebout.fr/wiki/Outils/Numerique/Liste

Aula

Un projet similaire avec DemocracyOS utilisé par certaines écoles et organisations allemandes.
Site officiel : https://aula.de
Tester la version de démonstration :
Les accès sont fournis depuis : http://aula-blog.website/aula-material/software/
Schule: aula
Benutzername: probe
Passwort: eulenswag

Plateforme de test : https://demo.aula.de
Les référentiels sont en https://gitlab.com/delibrium et pour l'instant il n'a que des traductions en anglais et en allemand, mais il est facile d'ajouter de nouvelles langues :
https://gitlab.com/delibrium/aula-app/tree/develop/src/locale
Le logiciel est écrit dans Vue, et, Cordova permet de générer des applications :
Pour Android : https://play.google.com/store/apps/details?id=de.aula
Pour ios : https: // apps. apple.com/gb/app/aula/id1453737463
Le processus de vote se déroule en plus d'étapes que sur DemocracyOS, vous pouvez même avoir le vote délégué / démocratie liquide, mais vous pouvez le désactiver si vous le souhaitez.
Il y a certaines choses à faire, comme activer oauth2 et l'enregistrement des utilisateurs.
Le projet est utilisé dans les écoles où l'enregistrement est effectué uniquement par les administrateurs.
Le système a été conçu pour être utilisé sur plusieurs projets / écoles en même temps, mais il est facile de désactiver cette fonctionnalité et la conception peut également être modifiée facilement comme vous pouvez le voir dans cet autre exemple https://www.digitald.eu

Semapps

https://semapps.org/docs/governance/team

Virtual Assembly

http://www.virtual-assembly.org

Le monde de demain

http://www.lemondededemain.org

Méthodes de vote

Méthode de Condorcet

https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Condorcet

Méthode Borda

https://fr.wikipedia.org/wiki/M%C3%A9thode_Borda

Vote alternatif

https://fr.wikipedia.org/wiki/Vote_alternatif

Méthode de Coombs

https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Coombs

NAVIGATION

PARTICIPER ET PARTAGER

Bienvenue sur le wiki de Amis SH.
De nombreuses pages sont partagées sur ce wiki.
Créer un compte utilisateur pour participer sur le wiki.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Utiliser la recherche interne du wiki pour trouver votre contenu.
La page de discussion de Amis SH vous permet de poser vos questions.
Consulter le site amis-sh.fr pour installer votre propre serveur web.
Améliorer le contenu des pages avec vos retours depuis l'onglet discussion.
Ce contenu ne doit pas servir à nuire à autrui ou à un système informatique.
Protéger votre système Linux ou Windows avec cette page dédiée à la sécurité.

SOUTENIR CE WIKI

Soutenir le wiki avec un don en monnaie numérique :
AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Miner de la cryptomonnaie.