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].
<pclass="alert alert-info">
<spanclass="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.
<spanclass="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
<pclass="text-center">
<imgsrc="images/icons/preparer.png"alt=""/>
<imgsrc="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
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`.
**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`.
**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 :
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
<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.
<pclass="alert alert-warning">
Apparemment, les développeurs de Loomio ont enlevé le <ahref="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", <ahref="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` :
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
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