Commit c22190d5 authored by JosephK's avatar JosephK
Browse files

Loomio

parent 56bb9367
# Installation de Loomio
<p class="text-center">
<img src="images/loomio/logo.png" alt="" />
<img src="images/loomio/logo.png" alt="" />
</p>
[Loomio][1] est le logiciel de prise de décision collective que nous proposons comme service en ligne sur [Framavox][2].
[Loomio][1] est le logiciel de prise de décision collective que nous
proposons comme service en ligne sur [Framavox][2].
<p class="text-center">
<img src="images/loomio/loomio.png" alt="" class="ombre" />
<img src="images/loomio/loomio.png" alt="" class="ombre" />
</p>
Voici un tutoriel pour vous aider à l’installer sur votre serveur. Il s’appuie sur [la procédure officielle][3].
N’hésitez pas à poser des questions dans les commentaires. Si vous êtes parvenu à l’installer, donnez-nous le lien vers votre instance et dites-nous dans quelle mesure ce tutoriel vous aura été utile :)
Voici un tutoriel pour vous aider à l’installer sur votre serveur.
Il s’appuie sur [la procédure officielle][3].
<p class="alert alert-info">
<span class="label label-primary">Informations</span><br /> Dans la suite de ce tutoriel, les instructions seront données pour un serveur dédié sous Ubuntu 14.04 en utilisant Docker.
<span class="label label-primary">Informations</span><br /> Dans la
suite de ce tutoriel, les instructions seront données pour un serveur
dédié sous Ubuntu 14.04 en utilisant Docker.
</p>
## Installation
......@@ -21,58 +25,62 @@ N’hésitez pas à poser des questions dans les commentaires. Si vous êtes par
### 1 - Préparer la terre
<p class="text-center">
<img src="images/icons/preparer.png" alt="" />
<img src="images/icons/preparer.png" alt="" />
</p>
#### DNS
Tout d’abord, faites pointer `votre-domaine.org` sur votre serveur auprès de votre [registraire][4] ainsi que le sous-domaine `faye.votre-domaine.org` (il s’agit du service qui tourne en arrière-plan pour envoyer les mails et notifications aux utilisateurs).
Tout d’abord, faites pointer `votre-domaine.org` sur votre serveur
auprès de votre [registraire][4] ainsi que le sous-domaine `faye.votre-domaine.org`
(il s’agit du service qui tourne en arrière-plan pour envoyer
les mails et notifications aux utilisateurs).
Voici par exemple ce que nous avons mis pour framavox.org dans notre zone DNS :
<pre>@ 3600 IN A 46.4.207.243
faye 3600 IN CNAME framavox.org.
@ 10800 IN MX 2 framavox.org.
</pre>
@ 3600 IN A 46.4.207.243
faye 3600 IN CNAME framavox.org.
@ 10800 IN MX 2 framavox.org.
#### Docker
Ensuite, connectez-vous en tant que `root` sur votre serveur, installez Docker et Docker Compose.
Ensuite, connectez-vous en tant que `root` sur votre serveur, installez
Docker et Docker Compose.
<pre>wget -q https://get.docker.com/ -O install-docker.sh
# Vérifiez le contenu du script pour vous assurer qu'il ne fait pas de bêtises sur votre système
sh install-docker.sh
wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m`
chmod +x /usr/local/bin/docker-compose</pre>
wget -q https://get.docker.com/ -O install-docker.sh
# Vérifiez le contenu du script pour vous assurer qu'il ne fait pas de bêtises sur votre système
sh install-docker.sh
wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m`
chmod +x /usr/local/bin/docker-compose
### 2 - Semer
<p class="text-center">
<img src="images/loomio/semer.png" alt="" />
<img src="images/loomio/semer.png" alt="" />
</p>
Depuis le dossier `/root`, téléchargez les fichiers du dépôt officiel pour un déploiement *en production*.
<pre>cd /root
git clone https://github.com/loomio/loomio-deploy.git
cd loomio-deploy
</pre>
cd /root
git clone https://github.com/loomio/loomio-deploy.git
cd loomio-deploy
<p class="alert alert-info">
Toutes les instructions suivantes s’effectueront depuis le dossier <code>/root/loomio-deploy</code>.
Toutes les instructions suivantes s’effectueront depuis le dossier
<code>/root/loomio-deploy</code>.
</p>
#### Swap (facultatif)
Si votre serveur dispose de moins de 4GB de RAM, il est recommandé de créer un fichier de swap.
Si votre serveur dispose de moins de 4GB de RAM, il est recommandé de
créer un fichier de swap.
<pre>./scripts/create_swapfile</pre>
./scripts/create_swapfile
#### Configuration
Créez ensuite les fichiers de configuration de Loomio.
<pre>./scripts/create_env votre-domaine.org vous@adresse.email</pre>
./scripts/create_env votre-domaine.org vous@adresse.email
Le script crée 2 fichiers `env` et `faye_env` qui seront utilisés pour configurer les différents containers Docker :
......@@ -86,92 +94,91 @@ Le script crée 2 fichiers `env` et `faye_env` qui seront utilisés pour configu
Modifiez le fichier `env` pour configurer l’envoi des courriels avec un serveur SMTP.
<pre>SMTP_DOMAIN=votre-domaine.org
SMTP_SERVER=serveur.mail.org
SMTP_PORT=587
SMTP_USERNAME=utilisateur@mail.org
SMTP_PASSWORD=votre-mot-de-passe
</pre>
Les messages seront envoyés avec l’adresse `notification@votre-domaine.org`. Pour permettre la bonne transmission des mails lorsque les utilisateurs répondent à un courriel de notification, nous avons dû adapter la configuration du container `mailin` dans `docker-compose.yml`.
<pre>mailin:
image: loomio/mailin-docker
ports:
- "25:25"
links:
- loomio
environment:
- WEBHOOK_URL=https://votre-domaine.org/email_processor/</pre>
**NB** Si vous avez déjà un logiciel de mail sur votre serveur, il n'aimera pas être dépossédé du port 25. Vous pouvez le couper (`service exim4 stop`) et le désactiver (`update-rc.d exim4 disable`) ou le faire écouter sur un autre port (`/etc/default/exim4`).
SMTP_DOMAIN=votre-domaine.org
SMTP_SERVER=serveur.mail.org
SMTP_PORT=587
SMTP_USERNAME=utilisateur@mail.org
SMTP_PASSWORD=votre-mot-de-passe
Les messages seront envoyés avec l’adresse `notification@votre-domaine.org`.
Pour permettre la bonne transmission des mails lorsque les utilisateurs
répondent à un courriel de notification, nous avons dû adapter la
configuration du container `mailin` dans `docker-compose.yml`.
mailin:
image: loomio/mailin-docker
ports:
- "25:25"
links:
- loomio
environment:
- WEBHOOK_URL=https://votre-domaine.org/email_processor/
**NB** Si vous avez déjà un logiciel de mail sur votre serveur,
il n’aimera pas être dépossédé du port 25. Vous pouvez le couper
(`service exim4 stop`) et le désactiver (`update-rc.d exim4 disable`)
ou le faire écouter sur un autre port (`/etc/default/exim4`).
##### Tâches planifiées
Pour prévenir les utilisateurs de la fermeture imminente d’une proposition, la clôturer ou encore envoyer un courriel récapitulatif de l’activité de la veille, Loomio doit exécuter certains processus périodiquement.
Pour prévenir les utilisateurs de la fermeture imminente d’une proposition,
la clôturer ou encore envoyer un courriel récapitulatif de l’activité de la veille,
Loomio doit exécuter certains processus périodiquement.
Pour cela, copiez le fichier `crontab` dans `/etc/cron.d`
<pre>mv ./crontab /etc/cron.d/loomio</pre>
mv ./crontab /etc/cron.d/loomio
##### Service
Pour disposer d’une commande d’arrêt/relance de Loomio ou pour qu’il reste actif après un redémarrage du serveur, vous pouvez créer [un fichier `/etc/init.d/loomio`][5] (à rendre exécutable) contenant ceci :
<pre>#! /bin/sh
### BEGIN INIT INFO
# Provides: loomio
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Loomio dockers services
### END INIT INFO
set -e
umask 022
. /lib/lsb/init-functions
case "$1" in
start)
cd /root/loomio-deploy/
/usr/local/bin/docker-compose start
log_end_msg 0 || true
;;
stop)
cd /root/loomio-deploy/
/usr/local/bin/docker-compose stop
log_end_msg 0 || true
;;
logs)
cd /root/loomio-deploy/
/usr/local/bin/docker-compose logs
log_end_msg 0 || true
;;
restart)
cd /root/loomio-deploy/
/usr/local/bin/docker-compose restart
;;
*)
log_action_msg "Usage: /etc/init.d/ssh {start|stop|restart|logs}" || true
exit 1
esac
exit 0</pre>
#### [Bugfix] Avatar des utilisateurs/groupes
<div class="alert alert-warning">
Dans docker-compose.yml, la ligne <pre> - ./attachments:/loomio/public/system/attachments</pre> sert à conserver les fichiers joints aux discussions hors du container pour éviter de les perdre à chaque mise à jour. Nous l’avons remplacé sur notre instance par
<pre> - ./uploads:/loomio/public/system/</pre> pour conserver également les avatars uploadés qui se trouvent dans
<code>/loomio/public/system/users</code> et <code>/loomio/public/system/groups</code>.
</div>
Pour disposer d’une commande d’arrêt/relance de Loomio ou pour qu’il
reste actif après un redémarrage du serveur, vous pouvez créer
[un fichier `/etc/init.d/loomio`][5] (à rendre exécutable) contenant ceci :
#! /bin/sh
### BEGIN INIT INFO
# Provides: loomio
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Loomio dockers services
### END INIT INFO
set -e
umask 022
. /lib/lsb/init-functions
case "$1" in
start)
cd /root/loomio-deploy/
/usr/local/bin/docker-compose start
log_end_msg 0 || true
;;
stop)
cd /root/loomio-deploy/
/usr/local/bin/docker-compose stop
log_end_msg 0 || true
;;
logs)
cd /root/loomio-deploy/
/usr/local/bin/docker-compose logs
log_end_msg 0 || true
;;
restart)
cd /root/loomio-deploy/
/usr/local/bin/docker-compose restart
;;
*)
log_action_msg "Usage: /etc/init.d/ssh {start|stop|restart|logs}" || true
exit 1
esac
exit 0
### 3 - Arroser
......@@ -183,26 +190,33 @@ exit 0</pre>
Il faut maintenant créer la base de données.
<pre>docker-compose run loomio rake db:setup</pre>
docker-compose run loomio rake db:setup
#### Loomio
La base de données est prête, vous pouvez démarrer Loomio.
<pre>docker-compose up -d</pre>
docker-compose up -d
La commande se charge de lancer tous les containers nécessaires. Pour pouvez vérifier leur statut en lançant la commande `docker-compose logs` ou `service loomio logs`
La commande se charge de lancer tous les containers nécessaires.
Pour pouvez vérifier leur statut en lançant la commande `docker-compose logs`
ou `service loomio logs`
#### Tests
Voici une liste de tâches à effectuer pour s’assurer que tout fonctionne bien :
* Créez un compte et un groupe puis déconnectez-vous.
* Demandez une réinitialisation de mot de passe et vérifiez que vous recevez bien le courriel.
* Ouvrez une page de discussion dans 2 onglets et saisissez un commentaire dans l’un. Le commentaire devrait apparaître dynamiquement sur l’autre onglet.
* Uploadez un fichier à une discussion et un avatar personnalisé à votre compte ou à un groupe.
* Demandez une réinitialisation de mot de passe et vérifiez que vous
recevez bien le courriel.
* Ouvrez une page de discussion dans 2 onglets et saisissez un
commentaire dans l’un. Le commentaire devrait apparaître dynamiquement
sur l’autre onglet.
* Uploadez un fichier à une discussion et un avatar personnalisé à
votre compte ou à un groupe.
* Vérifiez que vous pouvez répondre à une discussion par courriel.
* Créée une proposition avec une date de clôture proche pour vérifier qu’elle se ferme automatiquement dans l’heure.
* Créée une proposition avec une date de clôture proche pour vérifier
qu’elle se ferme automatiquement dans l’heure.
### 4 - Pailler
......@@ -212,47 +226,63 @@ Voici une liste de tâches à effectuer pour s’assurer que tout fonctionne bie
#### Personnalisation
À ce stade, si tout s’est bien passé, lorsque vous consultez le site `votre-domaine.org`, vous devriez être redirigé vers la page `votre-domaine.org/marketing`. Il s’agit de la page de présentation propre au site loomio.org, vous pourriez vouloir en modifier le contenu.
À ce stade, si tout s’est bien passé, lorsque vous consultez le
site `votre-domaine.org`, vous devriez être redirigé vers la page de connexion.
<p class="alert alert-warning">
Apparemment, les développeurs de Loomio ont enlevé le <a href="https://github.com/loomio/loomio_org_plugin">plugin loomio_org</a> du container depuis la rédaction de ce tutoriel. La page d'accueil est maintenant la page de connexion, ça ne change pas grand chose pour sur la méthode pour personnaliser le logiciel mais si vous voulez quand même utiliser la page "marketing", <a href="http://framacloud.org/cultiver-son-jardin/installation-de-loomio/#comment-36778">lisez ce commentaire</a>.
</p>
Si vous voulez utiliser une page d’accueil personnalisée, il suffit de
télécharger [le plugin loomio.org][8] (le code du site officiel de Loomio) dans le dossier `/root/loomio-deploy`
et d’ajouter le dossier à la liste des « volumes » dans `docker-compose.yml` :
- ./loomio_org_plugin:/loomio/plugins/loomio_org_plugin
La redirection se fera ainsi sur `votre-domaine.org/marketing`
et vous pourrez en personnaliser le contenu.
<p class="text-center">
<img src="images/loomio/loomio_org.jpg" alt="" class="ombre" />
</p>
Pour cela vous pouvez vous inspirer de [ce que nous avons fait pour Framavox][6].
Nous avons créé un dossier `framavox/template` dans lequel se trouvent les fichiers à remplacer dans le container et nous avons modifié le fichier `docker-compose.yml` en fonction.
Vous pouvez ensuite vous inspirer de [ce que nous avons fait pour Framavox][6].
Nous avons créé un dossier `framavox/template` dans lequel se trouvent
les fichiers à remplacer dans le container et nous avons modifié le
fichier `docker-compose.yml` en fonction.
<pre>volumes:
- ./framavox/template/angular.html.haml:/loomio/app/views/layouts/angular.html.haml
- ./framavox/template/application.html.haml:/loomio/app/views/layouts/application.html.haml
- ./framavox/template/marketing.html.haml:/loomio/plugins/loomio_org_plugin/views/pages/marketing.html.haml
- ./framavox/template/_metadata.html.haml:/loomio/app/views/angular/_metadata.html.haml
- ./framavox/template/_social_metadata.html.haml:/loomio/app/views/application/_social_metadata.html.haml</pre>
volumes:
- ./framavox/template/angular.html.haml:/loomio/app/views/layouts/angular.html.haml
- ./framavox/template/application.html.haml:/loomio/app/views/layouts/application.html.haml
- ./framavox/template/marketing.html.haml:/loomio/plugins/loomio_org_plugin/views/pages/marketing.html.haml
- ./framavox/template/_metadata.html.haml:/loomio/app/views/angular/_metadata.html.haml
- ./framavox/template/_social_metadata.html.haml:/loomio/app/views/application/_social_metadata.html.haml
Même chose avec les fichiers de traduction qui étaient incomplets.
<pre>- ./framavox/locales/client.fr.yml:/loomio/config/locales/client.fr.yml
- ./framavox/locales/fr.yml:/loomio/config/locales/fr.yml
- ./framavox/locales/server.fr.yml:/loomio/config/locales/server.fr.yml</pre>
- ./framavox/locales/client.fr.yml:/loomio/config/locales/client.fr.yml
- ./framavox/locales/fr.yml:/loomio/config/locales/fr.yml
- ./framavox/locales/server.fr.yml:/loomio/config/locales/server.fr.yml
L’essentiel de l’interface de Loomio se trouve [dans `/loomio/app/views/`][7] ou [dans le plugin loomio.org][8] (il s’agit d’un dépôt à part dont le contenu est placé dans `/loomio/plugins/`). Le reste se trouve [dans les fichiers de langue][9].
L’essentiel de l’interface de Loomio se trouve [dans `/loomio/app/views/`][7].
Le reste se trouve [dans les fichiers de langue][9].
Avant d’effectuer des modifications au fichier `docker-compose.yml` ou au fichier `env`, pensez à supprimer proprement les containers `docker-compose down` et les redémarrer ensuite `docker-compose up -d`
Avant d’effectuer des modifications au fichier `docker-compose.yml` ou
au fichier `env`, pensez à supprimer proprement les containers
`docker-compose down` et les redémarrer ensuite `docker-compose up -d`
#### Quelques commandes utiles
* `docker exec -it loomiodeploy_loomio_1 /bin/bash` pour entrer dans le container `loomio` en cours d’utilisation (pour voir précisément où se trouvent les fichiers à modifier par exemple)
* `docker restart loomiodeploy_container_1` redémarre un container (pour vérifier les changements dans un fichier de template par exemple sans devoir tout redémarrer)
* `docker exec -it loomiodeploy_loomio_1 /bin/bash` pour entrer dans
le container `loomio` en cours d’utilisation (pour voir précisément
où se trouvent les fichiers à modifier par exemple)
* `docker restart loomiodeploy_container_1` redémarre un container
(pour vérifier les changements dans un fichier de template par
exemple sans devoir tout redémarrer)
* `docker ps -a` affiche la liste de tous les containers présent sur la machine
* `docker stop loomiodeploy_container_1` arrête un container
* `docker rm loomiodeploy_container_1` le supprime
* `docker-compose pull` pour mettre à jour tous les containers (après un `docker-compose down`)
* `docker-compose pull` pour mettre à jour tous les containers
(après un `docker-compose down`)
<p class="text-center">
<i class="glyphicon glyphicon-tree-deciduous" style="font-size:200px; color:#333"></i>
<i class="glyphicon glyphicon-tree-deciduous" aria-hidden="true"></i>
</p>
[1]: http://framadate.org
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment