From 5293df5c33a51c912511f041066045b1d22ee968 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Mon, 20 May 2019 10:57:49 +0200
Subject: [PATCH 001/360] Update domains.md

add costs and limitation of dynDNS
---
 domains.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/domains.md b/domains.md
index 382b6833..31f724a5 100644
--- a/domains.md
+++ b/domains.md
@@ -3,7 +3,7 @@ Domains, DNS conf and certificate
 
 YunoHost allows you to manage and serve several domains on the same server. For instance, you can host a blog and Nextcloud on a first domain `yolo.com`, and a web mail client on a second domain `swag.nohost.me`. Each domain is automatically configured to handle web services, mail services and XMPP services.
 
-Domains can be managed in the 'Domain' section of the webadmin, or through the `yunohost domain` category of the command line. Each time you add a domain, it is expected that you bought it (or own it) on a domain registrar, so you can manage the [DNS configuration](dns). The exception is the [domains `.nohost.me`, `.noho.st` and `ynh.fr`](/dns_nohost_me) which are free and can be directly integrated with YunoHost.
+Domains can be managed in the 'Domain' section of the webadmin, or through the `yunohost domain` category of the command line. Each time you add a domain, it is expected that you bought it (or own it) on a domain registrar, so you can manage the [DNS configuration](dns). The exception is the [`.nohost.me`, `.noho.st` and `ynh.fr` domains](/dns_nohost_me) which are paid for by the YunoHost Project, and can be directly integrated with YunoHost thanks to an automated dynDNS setup. (To limit costs and abuses, each instance may only have one of these domains setup at any given time).
 
 The domain chosen during the postinstall is defined as the main domain of the server : this is where the SSO and the web admin interface will be available. The main domain can later be changed through the web admin in Domains > (the domain) > Set default, or with the command line `yunohost tools maindomain`.
 

From 3f4af686c3f77a92f4396e373f4a53ffdf808310 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Mon, 20 May 2019 10:59:11 +0200
Subject: [PATCH 002/360] ajout couts et limites dynDNS

---
 domains_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/domains_fr.md b/domains_fr.md
index bd9d1a91..d58fcd35 100644
--- a/domains_fr.md
+++ b/domains_fr.md
@@ -3,7 +3,7 @@ Domaines, configuration DNS et certificats
 
 YunoHost permet de gérer et de servir plusieurs domaines sur un même serveur. Vous pouvez donc héberger, par exemple, un blog et un Nextcloud sur un premier domaine `yolo.com`, et un client de messagerie web sur un second domaine `swag.nohost.me`. Chaque domaine est automatiquement configuré pour pouvoir gérer des services web, des courriels et une messagerie instantannée XMPP.
 
-Les domaines peuvent être gérés dans la section 'Domaine' de la webadmin, ou via la catégorie `yunohost domain` de la ligne de commande. Chaque fois que vous ajoutez un domaine, il est supposé que vous avez acheté (ou en tout cas que vous contrôliez) le domaine, de sorte que vous puissiez gérer la [configuration DNS](dns) ce celui-ci. Une exception concerne les domaines en [`.nohost.me`, `.noho.st` et `ynh.fr`](/dns_nohost_me_fr) qui sont gratuits et peuvent être directement intégrés avec YunoHost.
+Les domaines peuvent être gérés dans la section 'Domaine' de la webadmin, ou via la catégorie `yunohost domain` de la ligne de commande. Chaque fois que vous ajoutez un domaine, il est supposé que vous avez acheté (ou en tout cas que vous contrôliez) le domaine, de sorte que vous puissiez gérer la [configuration DNS](dns) ce celui-ci. Une exception concerne les [domaines en `.nohost.me`, `.noho.st` et `ynh.fr`](/dns_nohost_me_fr) qui sont offerts par le Projet YunoHost, et peuvent être directement intégrés avec YunoHost grâce à une configuration dynDNS automatique. (Pour limiter les abus et les coûts, une instance ne peut avoir qu'un seul domaine offert à la fois).
 
 Le domaine choisi lors de la postinstall est défini comme le domaine principal du serveur : c'est là que le SSO et l'interface d'administration web seront disponibles. Le domaine principal peut être modifié ultérieurement via la webadmin dans Domaines > (le domaine) > Définir par défaut, ou avec la ligne de commande `yunohost tools maindomain`.
 

From c773b37967a3cd64bfb3056a35cc24dfd12d103e Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Mon, 20 May 2019 11:12:21 +0200
Subject: [PATCH 003/360] add how to change dynDNS subscription

---
 dns_nohost_me.md | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/dns_nohost_me.md b/dns_nohost_me.md
index a40ccde3..112d87a0 100644
--- a/dns_nohost_me.md
+++ b/dns_nohost_me.md
@@ -1,6 +1,6 @@
-# Nohost.me domains
+# DynDNS domains
 
-In order to make self-hosting as accessible as possible, YunoHost offers a *free*
+In order to make self-hosting as accessible as possible, the YunoHost Project offers a *free*
 and *automatically configured* domain name service. By using this service, you
 won't have to [configure DNS records](/dns_config) yourself, which
 can be tedious and technical.
@@ -13,15 +13,12 @@ The following (sub)domains are proposed:
 To use this service, you simply have to choose such a domain during the 
 post-installation. It will then be automatically configured by YunoHost !
 
-#### Retrieve a nohost.me or noho.st domain
-
-If you reinstall your server and want to use a domain already used previously,
-you must request a domain reset on the forum 
-[in the dedicated thread](https://forum.yunohost.org/t/nohost-domain-recovery/442).
+N.B.: As a fairness measure, each instance may only 
+have **one such domain** setup at any given time.
 
 #### Subdomains
 
-The `nohost.me` and `noho.st` domain service does not allow the creation of
+The `nohost.me`, `noho.st` and `ynh.fr` domain service does not allow the creation of
 subdomains.
 
 Even if YunoHost allows the installation of applications on subdomains (for
@@ -33,14 +30,12 @@ application.mydomain.nohost.me`.
 To be able to enjoy applications that can only be installed at the root of a
 domain name, you must have your own domain name.
 
-### Adding a nohost.me / noho.st / ynh.fr domain after the post-installation
+### Adding a nohost.me, noho.st or ynh.fr domain after the post-installation
 
 If you already did the postinstall and want to add a nohost.me domain, you
 should run the following command (this can only be done from command line
 currently).
 
-N.B. : you can only have *one* nohost.me domain per YunoHost installation.
-
 ```bash
 # Add the domain
 yunohost domain add whateveryouwant.nohost.me
@@ -53,3 +48,22 @@ yunohost dyndns subscribe -d whateveryouwant.nohost.me
 # Update the DNS conf
 yunohost dyndns update
 ```
+
+#### Retrieve a nohost.me, noho.st or ynh.fr domain
+
+If you reinstall your server and want to use a domain already used previously,
+you must request a domain reset on the forum 
+[in the dedicated thread](https://forum.yunohost.org/t/nohost-domain-recovery/442).
+
+
+#### Change a nohost.me, noho.st or ynh.fr domain
+
+If you wish to use a different domain of this kind, you first have to remove
+your present domain registration. This is done in 3 steps:
+
+1. Remove the domain from your instance (via webadmin or the `yunohost doamin remove` CLI). 
+**/!\ Caution: this will remove any app installed on this domain, along with its data.**
+2. Ask for registration removal [in the dedicated forum thread](https://forum.yunohost.org/t/nohost-domain-recovery/442).
+3. Remove automatic domain configuration files on your server, via CLI only : `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns`
+
+You may then add a new domain.

From 73dcd29ffa4d407583e4bc13a25ef3f09932c983 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Mon, 20 May 2019 11:24:42 +0200
Subject: [PATCH 004/360] update adding automatic domain after postinstall

---
 dns_nohost_me.md | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/dns_nohost_me.md b/dns_nohost_me.md
index 112d87a0..3f0a0b71 100644
--- a/dns_nohost_me.md
+++ b/dns_nohost_me.md
@@ -1,6 +1,6 @@
-# DynDNS domains
+# Nohost.me domains
 
-In order to make self-hosting as accessible as possible, the YunoHost Project offers a *free*
+In order to make self-hosting as accessible as possible, the YunoHost Project provides a *free*
 and *automatically configured* domain name service. By using this service, you
 won't have to [configure DNS records](/dns_config) yourself, which
 can be tedious and technical.
@@ -32,9 +32,10 @@ domain name, you must have your own domain name.
 
 ### Adding a nohost.me, noho.st or ynh.fr domain after the post-installation
 
-If you already did the postinstall and want to add a nohost.me domain, you
-should run the following command (this can only be done from command line
-currently).
+If you already did the postinstall and want to add an automatic domain, you
+may do so from the "Domains" web interface, selecting the option "I don't have a domain name..."
+
+Alternatively, the following commands can be used.
 
 ```bash
 # Add the domain
@@ -58,7 +59,7 @@ you must request a domain reset on the forum
 
 #### Change a nohost.me, noho.st or ynh.fr domain
 
-If you wish to use a different domain of this kind, you first have to remove
+If you wish to use a different automatic domain, you first have to remove
 your present domain registration. This is done in 3 steps:
 
 1. Remove the domain from your instance (via webadmin or the `yunohost doamin remove` CLI). 

From c47d076205a67a4621f79fe984287884f95dde1c Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Mon, 20 May 2019 11:26:29 +0200
Subject: [PATCH 005/360] ajout changement de domaine
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

et MàJ ajout de domaine après postinstall
---
 dns_nohost_me_fr.md | 37 ++++++++++++++++++++++++-------------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/dns_nohost_me_fr.md b/dns_nohost_me_fr.md
index 433d7e8f..8183af16 100644
--- a/dns_nohost_me_fr.md
+++ b/dns_nohost_me_fr.md
@@ -1,6 +1,6 @@
-# Noms de domaines nohost.me
+# Noms de domaines automatiques
 
-Afin de rendre l'auto-hébergement le plus accessible possible, YunoHost propose un service de noms de domaine *gratuits* et *automatiquement configurés*. En utilisant ce service, vous n'avez donc pas à réaliser vous-même la [configuration des enregistrements DNS](/dns_config) qui est assez technique.
+Afin de rendre l'auto-hébergement le plus accessible possible, le Projet YunoHost fournit un service de noms de domaine *offerts* et *automatiquement configurés*. En utilisant ce service, vous n'avez donc pas à réaliser vous-même la [configuration des enregistrements DNS](/dns_config) qui est assez technique.
 
 Les (sous-)domaines suivants sont proposés :
 - `cequevousvoulez.nohost.me` ;
@@ -9,26 +9,24 @@ Les (sous-)domaines suivants sont proposés :
 
 Pour profiter de ce service, il vous suffit de choisir un tel domaine lors de la post-installation. Il sera ensuite automatiquement configuré par YunoHost !
 
-### Récupérer un domaine nohost.me ou noho.st
-
-Si vous réinstallez votre serveur et voulez utiliser un domaine déjà utilisé précédemment, il vous faut demander une réinitialisation du domaine sur le forum [dans le fil de discussion dédié](https://forum.yunohost.org/t/nohost-domain-recovery/442).
+N.B. : Pour des raisons d'équité, vous ne pouvez avoir qu'*un seul domaine* nohost.me par installation de
+YunoHost.
 
 ### Sous-domaines
 
-Le service de domaines `nohost.me` et `noho.st` n'autorise pas la création de sous-domaines.
+Le service de domaines `nohost.me`, `noho.st` et `ynh.fr` n'autorise pas la création de sous-domaines.
 
 Même si YunoHost permet l'installation d'applications sur des sous-domaines (par exemple avoir l'application Owncloud accessible depuis l'adresse `cloud.mondomaine.org`), cette fonctionnalité n'est pas permise avec les domaines `nohost.me` et `noho.st` et il n’est pas possible d’avoir un sous-sous-domaine tel `monapplication.mondomaine.nohost.me`.
 
 Pour pouvoir profiter des applications installables uniquement à la racine d’un nom de domaine, il faut avoir son propre nom de domaine.
 
-### Ajouter un domaine nohost.me / noho.st / ynh.fr après la post-installation
+### Ajouter un domaine nohost.me, noho.st ou ynh.fr après la post-installation
 
-Si vous avez déjà effectué la postinstallation est souhaitez ajouter un domaine
-de type nohost.me, vous pouvez utiliser les commandes suivantes (uniquement
-faisable depuis la ligne de commande pour le moment).
+Si vous avez déjà effectué la postinstallation et souhaitez ajouter un domaine
+de type nohost.me, vous pouvez utiliser la catégorie "Domaines" de l'interface web,
+en choisissant l'option "je n'ai pas de nom de domaine..."
 
-N.B. : vous ne pouvez avoir qu'*un* seul domaine nohost.me par installation de
-YunoHost.
+Vous pouvez également utiliser les commandes suivantes depuis la ligne de commande.
 
 ```bash
 # Ajouter le domaine
@@ -37,9 +35,22 @@ yunohost domain add cequevousvoulez.nohost.me
 # Enregister le domaine dans le service dyndns
 yunohost dyndns subscribe -d cequevousvoulez.nohost.me
 
-# [ attendre ~ 30 seconds ]
+# [ attendre ~ 30 secondes ]
 
 # Mettre à jour la configuration DNS
 yunohost dyndns update
 ```
 
+### Récupérer un domaine nohost.me, noho.st ou ynh.fr
+
+Si vous réinstallez votre serveur et voulez utiliser un domaine automatique déjà utilisé précédemment, il vous faut demander une réinitialisation du domaine au Projet YunoHost, [dans le fil de discussion dédié du forum](https://forum.yunohost.org/t/nohost-domain-recovery/442).
+
+### Changer un domaine nohost.me, noho.st ou ynh.fr
+Si vous voulez utiliser un autre domaine automatique sur votre serveur, vous devez d'abord supprimer celui qui est déjà configuré, selon les instructions suivantes :
+1. Supprimer le domaine de votre instance (par webadmin ou `yunohost domain remove`). **Attention : cela supprimera
+toute application installée sur ce domaine, ainsi que ses données**.
+2. Demander la suppression de votre souscription [dans le fil de discussion dédié du forum](https://forum.yunohost.org/t/nohost-domain-recovery/442).
+3. Enlever les fichiers de configuration automatique sur votre instance (uniquement depuis la ligne de commande pour le moment) : `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns`
+
+
+Vous pourrez ensuite enregistrer un nouveau domaine automatique.

From 07e13c60ac83b6ca20d1d15f718c4e4598961d12 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Mon, 20 May 2019 11:29:38 +0200
Subject: [PATCH 006/360] add dyndns link

---
 dns_config.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dns_config.md b/dns_config.md
index d9e08da9..c19c9f3b 100644
--- a/dns_config.md
+++ b/dns_config.md
@@ -5,7 +5,7 @@ DNS (domain name system) is a system that converts human-readable addresses
 easily accessible by human beings, and for some services like mail to work
 properly, DNS must be configured.
 
-If you're using a nohost.me / noho.st domain, the configuration should be
+If you're using an [automatic domain](/dns_nohost_me) provided by the YunoHost Project, the configuration should be
 performed automatically. If you're using your own domain name (e.g. bought via
 a registrar), you should manually configure your domain on your registrar's
 interface.

From ed62be133fa34105a4fe3adf0e0c2592536b1150 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Mon, 20 May 2019 11:31:27 +0200
Subject: [PATCH 007/360] ajout lien dynDNS

---
 dns_config_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dns_config_fr.md b/dns_config_fr.md
index b1024946..85038f10 100644
--- a/dns_config_fr.md
+++ b/dns_config_fr.md
@@ -7,8 +7,8 @@ votre serveur soit facilement accessible par d'autres êtres humains, et pour
 que certains services comme le mail fonctionnent correctement, il est nécessaire
 de configurer la zone DNS de votre domaine.
 
-Si vous utilisez un domaine en nohost.me / noho.st domain, la configuration
-devrait être faite automatiquement. Si vous utilisez votre propre nom de domaine
+Si vous utilisez un [domaine automatique](/dns_nohost_me_fr) fourni par le Projet Yunohost,
+la configuration devrait être faite automatiquement. Si vous utilisez votre propre nom de domaine
 (e.g. acheté chez un registrar), il vous faut configurer manuellement votre
 domaine via l'interface de votre registrar.
 

From ea3b9dc715deace8b8191b3f213f1d4431a6f242 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Sat, 25 May 2019 22:59:19 +0200
Subject: [PATCH 008/360] removing already existing applications

---
 apps_wishlist.md | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index b6059c6c..dbbf2bf4 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -23,12 +23,10 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Bookstack](https://www.bookstackapp.com/)
 - [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
-- [Caliopen](https://www.caliopen.org)
 - [Candy](https://candy-chat.github.io/candy)
 - [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
 - [cgit](http://git.zx2c4.com/cgit/about)
 - [CheckUp](https://sourcegraph.github.io/checkup)
-- [CiviCRM](https://civicrm.org)
 - [Cloud torrent](https://github.com/jpillora/cloud-torrent)
 - [Cockpit](http://cockpit-project.org/)
 - [Commafeed](https://github.com/Athou/commafeed)
@@ -42,7 +40,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Deluge](http://deluge-torrent.org) (with WebUI)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
 - [DNSchain](https://github.com/okTurtles/dnschain)
-- [Drupal](https://www.drupal.org/)
 - [eLabFTW](https://www.elabftw.net/) electronic lab notebook
 - [Emoncms](https://github.com/emoncms/emoncms)
 - [ERPnext](https://erpnext.com/download)

From 1a2b100e6bda0a0d305d95fdc9c069d88afa2233 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Sat, 25 May 2019 23:10:34 +0200
Subject: [PATCH 009/360] removing onlyoffice

---
 apps_wishlist.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index dbbf2bf4..fb297d1a 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -109,7 +109,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Nibbleblog](http://www.nibbleblog.com)
 - [Nuage](https://nuage.kerjean.me/login)
-- [ONLYOFFICE Document Server](http://helpcenter.onlyoffice.com/server/linux/document/linux-installation.aspx) (to be able to use ONLYOFFICE inside Nextcloud)
 - [OpenBazaar](https://openbazaar.org)
 - [openHAB](https://www.openhab.org/) - Smart home platform.
 - [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)

From 9e9fe183cbd70ba85a46e751900f2df36a58f6ac Mon Sep 17 00:00:00 2001
From: Luke Murphy <lukewm@riseup.net>
Date: Mon, 3 Jun 2019 00:45:43 +0200
Subject: [PATCH 010/360] Filter against any match on /app searching

Closes https://github.com/YunoHost/issues/issues/1347.
---
 apps.md    | 2 +-
 apps_ar.md | 2 +-
 apps_fr.md | 2 +-
 apps_it.md | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/apps.md b/apps.md
index 088b178a..535eace8 100644
--- a/apps.md
+++ b/apps.md
@@ -169,7 +169,7 @@ $(document).ready(function () {
         var valThis = $('#filter-app-cards').val().toLowerCase();
         $('.app-card').each(function(){
             var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
+            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
         });
         (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
     }
diff --git a/apps_ar.md b/apps_ar.md
index 8ca360a5..d3b929bd 100644
--- a/apps_ar.md
+++ b/apps_ar.md
@@ -166,7 +166,7 @@ $(document).ready(function () {
         var valThis = $('#filter-app-cards').val().toLowerCase();
         $('.app-card').each(function(){
             var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();         
+            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
         });
         (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
     }
diff --git a/apps_fr.md b/apps_fr.md
index 84aa2c1b..ea2df5b7 100644
--- a/apps_fr.md
+++ b/apps_fr.md
@@ -166,7 +166,7 @@ $(document).ready(function () {
         var valThis = $('#filter-app-cards').val().toLowerCase();
         $('.app-card').each(function(){
             var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();         
+            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
         });
         (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
     }
diff --git a/apps_it.md b/apps_it.md
index 274acec3..236439c3 100644
--- a/apps_it.md
+++ b/apps_it.md
@@ -169,7 +169,7 @@ $(document).ready(function () {
         var valThis = $('#filter-app-cards').val().toLowerCase();
         $('.app-card').each(function(){
             var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
+            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
         });
         (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
     }

From 74a00e054c664256cf833e27763880c6381e419b Mon Sep 17 00:00:00 2001
From: Luke Murphy <lukewm@riseup.net>
Date: Mon, 3 Jun 2019 01:02:21 +0200
Subject: [PATCH 011/360] Add note about how to live test

---
 README.md | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index bbdcfc2b..ed5d3ad2 100644
--- a/README.md
+++ b/README.md
@@ -3,4 +3,8 @@
 * [Web Site](https://yunohost.org)
 * Based on [Simone](https://github.com/YunoHost/Simone)
 
-Please report [issues on YunoHost bugtracker](https://github.com/YunoHost/issues/issues).
\ No newline at end of file
+Please report [issues on YunoHost bugtracker](https://github.com/YunoHost/issues/issues).
+
+You can live test any changes by adding `/edit` to the URL on
+[yunohost.org](https://yunohost.org). For example, if you make changes to
+[apps.md](./apps.md), you can test them on [yunohost.org/#/apps/edit](https://yunohost.org/#/apps/edit).

From 129321d927c1551aed4c98559ca3c705838d3b6e Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Tue, 4 Jun 2019 22:59:41 +0200
Subject: [PATCH 012/360] Adding use case YunoHost for non-profits
 organisations

---
 docs.md                              |   3 +
 docs_ar.md                           |   3 +
 docs_de.md                           |   3 +
 docs_fr.md                           |   3 +
 docs_it.md                           |   3 +
 use_case_non-profit_organisations.md | 205 +++++++++++++++++++++++++++
 6 files changed, 220 insertions(+)
 create mode 100644 use_case_non-profit_organisations.md

diff --git a/docs.md b/docs.md
index 8998d56c..3c74ab2e 100644
--- a/docs.md
+++ b/docs.md
@@ -31,3 +31,6 @@ YunoHost's documentation has 3 different sections:
    * [Chat rooms](/chat_rooms_en)
    * [Communication](/communication_en)
    * [Support / Help](/help)
+
+* Use example:
+   * [YunoHost for non-profit organisations](/use_case_non-profit_organisations)
diff --git a/docs_ar.md b/docs_ar.md
index d4a85215..a2108021 100644
--- a/docs_ar.md
+++ b/docs_ar.md
@@ -31,3 +31,6 @@
    * [Chat rooms](/chat_rooms_en)
    * [Communication](/communication_en)
    * [Support / Help](/help)
+
+* استخدم مثال:
+   * [YunoHost للمنظمات غير الهادفة للربح] (/ use_case_non-profit_organisations_en)
diff --git a/docs_de.md b/docs_de.md
index 81462e37..470c9945 100644
--- a/docs_de.md
+++ b/docs_de.md
@@ -31,3 +31,6 @@ Die YunoHost Dokumentation ist in 3 Bereiche aufgeteilt:
    * [Chaträume](/chat_rooms_en)
    * [Kommunikation](/communication_en)
    * [Support / Hilfe](/help)
+
+* Verwenden Sie ein Beispiel:
+   * [YunoHost für gemeinnützige Organisationen](/use_case_non-profit_organisations_en)
diff --git a/docs_fr.md b/docs_fr.md
index a7167a6d..6cfe292f 100644
--- a/docs_fr.md
+++ b/docs_fr.md
@@ -31,3 +31,6 @@ La documentation de YunoHost s’articule autour de trois sections :
    - [Salons de discussions](/chat_rooms_fr)
    * [Communication extérieure](/communication)
    * [Support / Aide](/help_fr)
+
+* Exemple d'utilisation:
+   * [YunoHost pour les organisations à but non lucratif](/use_case_non-profit_organisations_en)
diff --git a/docs_it.md b/docs_it.md
index 35a4077b..85afd4ba 100644
--- a/docs_it.md
+++ b/docs_it.md
@@ -31,3 +31,6 @@ La documentazione di YunoHost ha 3 differenti sezioni:
    * [Chat rooms](/chat_rooms_en)
    * [Communication](/communication_en)
    * [Supporto / Aiuto](/help_it)
+
+* Usa l'esempio:
+   * [YunoHost per le organizzazioni senza scopo di lucro](/use_case_non-profit_organisations_en)
diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md
new file mode 100644
index 00000000..c85bf0ad
--- /dev/null
+++ b/use_case_non-profit_organisations.md
@@ -0,0 +1,205 @@
+# YunoHost for non-profit
+
+## Table of Contents
+* [Introduction](#introduction) 
+* [Who](#who) 
+* [What](#what) 
+* [When](#when) 
+* [Where](#where) 
+* [Why](#why) 
+* [How](#how) 
+* [Conclusion](#conclusion) 
+* [Authors](#authors) 
+
+## Introduction <a id="introduction"></a> 
+
+The object of this document is to present a specific use of [YunoHost](https://yunohost.org/) for non-profit organizations.
+
+## Who <a id="who"></a> 
+
+Non-profit organizations, NGO or any kind of association.
+
+## What <a id="what"></a> 
+
+Usually non-profit organizations need to provide several services to several publics:
+
+* Board of Directors / Steering Committee / Volunteers with:
+  * [Mails](#mail)
+  * [Calendar](#calendar)
+  * [Contact](#contact)
+  * [Shared files / Drive](#drive)
+  * [Instant communication](#im)
+  * [Intranet / knowledge database](#intranet)
+  * [ERP / Accounting](#erp)
+* Members with:
+  * [Public website with private and individual access](#www)
+  * [Membership](#membership)
+  * [Events registrations](#events)
+  * [Mailings](#mailing)
+  * [Forum](#forum)
+* Public with:
+  * [Public website](#www)
+  * [Newsletter](#mailing)
+
+## When <a id="when"></a> 
+
+When ready to move forward.
+
+## Where <a id="where"></a> 
+
+You YunoHost for non profit can be hosted in several places:
+* Own hosting on a server, computer or Raspberry behind ASDL, SDSL or Fiber
+* [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters) hosting services
+* Commercial hosting services providing Debian virtual machine
+
+## Why <a id="why"></a> 
+
+YunoHost can provide mostly all needs of a non-profit organization.
+Keeping their data on their own.
+
+## How <a id="how"></a> 
+
+### YunoHost <a id="yunohost"></a>
+
+YunoHost is a Debian GNU/Linux based distribution packaged with free software that automates the installation of a personal web server. The purpose of YunoHost is to allow users to easily host their own web services by enabling a simple point-and-click web interface for installing various web apps.
+
+![](https://upload.wikimedia.org/wikipedia/commons/0/07/Yunohost_user_portal.png)
+
+Out of the box YunoHost provide:
+* A system of application
+* A web interface
+* A command-line interface (CLI): Moulinette
+* A web server: Nginx
+* A DNS server: Dnsmasq
+* A database: MariaDB
+* A backup system
+* An SSO : SSOwat
+* OpenLDAP
+* Email:
+  * SMTP: Postfix
+  * IMAP & POP3: Dovecot
+  * An antispam: rspamd,rmilter
+* Instant messaging XMPP server: Metronome IM
+
+### Domain Name <a id="domain"></a>
+
+The first thing you will need to implement a YunoHost server is a domain name. The domain name can usually be provided with your hosting service.
+
+### Mails <a id="mail"></a>
+
+From scratch, YunoHost provide mail system available using POP/IMAP/SMTP.
+Mails accounts will be managed using the web interface or the command line. Created accounts are stored in openldap.
+
+Additional package can be installed to provide more functionality to the YunoHost mail system:
+* Webmail using [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh)
+* ActiveSync using [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh)
+* Internal distribution group using [Mailman](https://github.com/YunoHost-Apps/mailman_ynh)
+
+### Calendar <a id="calendar"></a>
+
+To provide personal or shared calendars you will need to install:
+* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
+* [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
+
+### Contact <a id="contact"></a>
+
+To provide personal contact system you will need to install:
+* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
+* [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
+
+### Shared files <a id="drive"></a>
+
+To provide shared files system: personal and shared drive, you can install [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh).
+Files will be available from a web interface or using a synchronization client
+
+### Instant communication <a id="im"></a>
+
+Out of the box, YunoHost provide an XMPP server, for which you can install a web client: [Jappix](https://github.com/YunoHost-Apps/jappix_ynh)
+
+You can also install a matrix server:
+* The server: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh)
+* A web client: [Riot](https://github.com/YunoHost-Apps/_ynh)
+
+### Intranet <a id="intranet"></a>
+
+For an non-profit organization a good way to implement an intranet is to provide a wiki to let internal users read, edit and add content. Here are some packages to implement a wiki:
+* [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) using wiki syntax
+* [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) using markdown syntax
+
+### ERP / Accounting <a id="erp"></a>
+
+At some time a non-profit organization could need an accounting/erp system, here are two propositions:
+* [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh)
+* [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh)
+
+### Public Web Site <a id="www"></a>
+
+There are several way to implement a Public Web Site:
+* Simple html, css, etc... Website using: [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh)
+* Using a CMS (Content Management System) like [Wordpress](https://github.com/YunoHost-Apps/_ynh), [Drupal](https://github.com/YunoHost-Apps/drupal_ynh) , [Grav](https://github.com/YunoHost-Apps/grav_ynh), [PluXml](https://github.com/YunoHost-Apps/pluxml_ynh)
+
+But we will propose something more powerful: [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh):
+* Drupal that is a powerful open source content management framework
+* with CiviCRM that is an open source constituent relationship management for non-profits 
+
+#### Membership <a id="membership"></a>
+
+With CiviCRM you can provide online membership and payment.
+
+#### Events Registrations <a id="events"></a>
+
+With CiviCRM, you can provide an online diary to let members or public register for free or with a payment
+
+#### Newsletter/Mailing <a id="mailing"></a>
+
+Best way to manage that is using CiviCRM and its mailing module
+
+### Forum <a id="forum"></a>
+
+You have several choices, or having an integrated forum in Drupal or using a dedicated forum system like [Flarum](https://github.com/YunoHost-Apps/flarum_ynh)
+
+### Backup <a id="backup"></a>
+
+YunoHost provide is own backup system. Before any package upgrade, YunoHost backup the current version of the package and automaticaly restore it if the upgrade fails.
+Yunohost backup are stored localy in `/home/yunohost.backup/archives`
+
+But for production, localy stored backup are not enough, so you will need to implement aditional backup strategies:
+* Backup of the the Virtual Machine if provided by the hosting system.
+* [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) is an automatic backup system for your server. Your backups can be send to many other places, local or distant.
+* [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) allow to externalize backups
+* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), if you have two yunohost servers, provide a way to have a secondary server which you can used if your main server goes down. This secondary server will allow you to deploy a copy of your server to bring back your YunoHost during your break down.
+
+### Go further <a id="further"></a>
+
+#### Federated Photo Gallery <a id="photo"></a>
+
+* [Pixelfed](https://github.com/YunoHost-Apps/pixelfed_ynh)
+
+#### Federated Audio Gallery <a id="audio"></a>
+
+* [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh)
+
+#### Federated Video Gallery <a id="video"></a>
+
+* [PeerTube](https://github.com/YunoHost-Apps/peertube_ynh)
+
+#### Federated Social Networking <a id="sn"></a>
+
+* [Mastodon](https://github.com/YunoHost-Apps/mastodon_ynh)
+* [Pleroma](https://github.com/YunoHost-Apps/pleroma_ynh)
+* [Mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh)
+
+#### Federated Blog <a id="sn"></a>
+
+* [Plume](https://github.com/YunoHost-Apps/plume_ynh)
+* [Writefreely](https://github.com/YunoHost-Apps/writefreely_ynh)
+
+#### Chat <a id="sn"></a>
+
+* [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh)
+
+
+## Conclusion <a id="conclusion"></a>
+
+YunoHost can cover 99% of the needs of non-profit organizations, allowing them to own and protect their data, choose applications they want to use.
+And if one is not available, they can [package it for YunoHost](https://yunohost.org/#/contributordoc), it's very simple.
\ No newline at end of file

From 08edaefd19c319aba476bd7df586d98f16f708c9 Mon Sep 17 00:00:00 2001
From: Luke Murphy <lukewm@riseup.net>
Date: Wed, 5 Jun 2019 12:56:58 +0200
Subject: [PATCH 013/360] Add more links

---
 communication.md | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/communication.md b/communication.md
index c2b68260..62768cfd 100644
--- a/communication.md
+++ b/communication.md
@@ -30,9 +30,29 @@
 - (FR) [Linux Pratique n°96 – YunoHost, l’auto-hébergement à portée de main – juillet 2016](http://connect.ed-diamond.com/Linux-Pratique/LP-096/YunoHost-l-auto-hebergement-a-portee-de-main)
 - (EN) [Linux Magazine n°208 – YunoHost, Personal server for a private cloud – Mars 2018](http://www.linux-magazine.com/Issues/2018/208/YunoHost)
 - (FR) [Linux Pratique HS n° 044 février 2019 - Le choix de l’auto-hébergement avec YunoHost : rencontre avec l’équipe du projet](https://connect.ed-diamond.com/Linux-Pratique/LPHS-044/Le-choix-de-l-auto-hebergement-avec-YunoHost-rencontre-avec-l-equipe-du-projet)
+- (FR) [Duhaz.fr: Devenir votre propre hébergeur](https://www.duhaz.fr/blog/devenir-votre-propre-h%C3%A9bergeur/)
+- (FR) [Faimaison.net: au revoir Google, bonjour liberté!](https://www.faimaison.net/actualites/chatons-leprette-mai2019.html)
+- (FR) [Tineternet.net: Reprendre la main sur ses données avec l'auto-hébergement](https://www.tinternet.net/article/2019/05/dossier-reprendre-la-main-sur-ses-donnees-avec-lauto-hebergement)
+- (DE) [Yunohost Serverinstallation auf Laptop](https://www.giammi.com/2019/04/19/yunohost-serverinstallation-auf-laptop/)
+- (FR) [Cenabumix: Retour d’expérience Yunohost sur Raspberry](https://wiki.cenabumix.org/wordpress/2018/03/17/retour-dexperience-yunohost-sur-raspberry/)
+- (FR) [Geber.ga: Yunohost, ou l'auto-hébergement à portée de main...](https://www.geber.ga/yunohost-ou-l-auto-hebergement-a-portee-de-main/)
+- (EN) [Nequalsonelifestyle.com: Self Hosting Without Self Owning](https://www.nequalsonelifestyle.com/2019/05/04/self-hosting-without-self-owning/)
+- (EN) [Skysilk.com: How to Install YunoHost On a Debian VPS](https://www.skysilk.com/blog/2019/how-to-install-yunohost-on-a-debian-vps/)
+- (FR) [Alternativelibertaire.org: Auto-hébergement](https://www.alternativelibertaire.org/?Auto-hebergement-1-Un-serveur-a-mon-seul-service)
+- (ES) [Sololinux.es: Instalar YunoHost en Debian 9 Stretch](https://www.sololinux.es/instalar-yunohost-en-debian-9-stretch/)
+- (FR) [Bog.hugopoi.net: Le cloud maison](https://blog.hugopoi.net/2019/03/30/le-cloud-maison/)
+
+## Past Events / Workshops
+
+- (FR) [INFOTHEMA: Présentation de l’avancée du projet YunoHost INFOTHEMA + Présentation du collectif CHATONS](https://www.infothema.fr/begard-samedi-22-juin-2019-seance-infothema/)
+- (FR) [Normandie-libre.fr: Héberger ses sites web à la maison](https://normandie-libre.fr/heberger-ses-sites-web-a-la-maison/)
+- (FR) [Viregul.fr: Auto-hébergement, pour un Internet décentralisé](https://viregul.fr/auto-hebergement-pour-un-internet-decentralise-le-samedi-25-mai-2019/)
+- (EN) [35C3: Hands-on introduction to self-Hosting with YunoHos](https://events.ccc.de/congress/2018/wiki/index.php/Session:Hands-on_introduction_to_self-Hosting_with_YunoHost)
+- (FR) [Journées du Logiciel Libre 2019: l'auto-hébergement avec YunoHost](https://pretalx.jdll.org/jdll2019/talk/88GSPH/)
 
 ## YunoHost was cited in :
 
 * [EXPERIMENTA 2018](https://livestream.com/accounts/26482307/events/8034656/player?width=960&height=540&enableInfoAndActivity=true&defaultDrawer=&autoPlay=true&mute=false) at 57.47 (depuis https://www.experimenta.fr/direct/)
 * [Capitole du libre 2017 - « Contributopia », Dégoogliser ne suffit pas](https://www.youtube.com/watch?v=ip6_VMkWpr8&feature=youtu.be&t=4793)
 * [Contributopia - Essaimage (Framasoft)](https://contributopia.org/fr/essaimage/)
+- (FR) [Triple A: Émission Underscore #144 du 19 mai 2019](https://www.triplea.fr/blog/podcast/emission-underscore-144-du-19-mai-2019/)

From 09528ca77b474980729ec31cee38d1ae0185cc72 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Thu, 6 Jun 2019 22:37:35 +0200
Subject: [PATCH 014/360] Adding informations on yunohost operations logs

---
 troubleshooting_guide.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/troubleshooting_guide.md b/troubleshooting_guide.md
index 190ec734..e779a2ef 100644
--- a/troubleshooting_guide.md
+++ b/troubleshooting_guide.md
@@ -126,6 +126,9 @@ Generic logs for PHP apps.
 ##### yunohost.log
 This is the log created at the YunoHost install. If you have issue installing YunoHost, check this file.
 
+##### yunohost operations logs
+This is the logs created when you install, remove, backup, etc... an apps, they can be found in `/var/log/yunohost/categories/operation`.
+
 This list is not exhaustive. Furthermore, some app may put their logs in `/var/log` too. Slapd logs are unfortunately in `/var/log/syslog`.
 
 ## RAM usage

From b3866d88d5c4d262a2952bb1c3e7fca351621ae4 Mon Sep 17 00:00:00 2001
From: Moul <moul@moul.re>
Date: Thu, 6 Jun 2019 23:06:03 +0200
Subject: [PATCH 015/360] [fix] packaging_apps_manifest: built

---
 packaging_apps_manifest.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_manifest.md b/packaging_apps_manifest.md
index f966fa15..8446c289 100644
--- a/packaging_apps_manifest.md
+++ b/packaging_apps_manifest.md
@@ -63,7 +63,7 @@ The `manifest.json` file defines the app's constants, a bunch of values that Yun
 
 * **url**: software website.
 
-* **version**: version of the package builded from the upstream version number and an incremental number for each change in the package without upstream change. Example "1.0.1~ynh7". Must be a string.
+* **version**: version of the package built from the upstream version number and an incremental number for each change in the package without upstream change. Example "1.0.1~ynh7". Must be a string.
 
 * **license**: application license: `free`, `non-free` or a value from the Identifier column from https://spdx.org/licenses/. Be careful to not confuse with package license which must be put in `LICENSE` file.
 

From 02e995a464f33ff0e6269341ad35c23a7ca805e0 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Tue, 11 Jun 2019 00:10:43 +0200
Subject: [PATCH 016/360] changing to webmin and command line instructions

---
 troubleshooting_guide.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/troubleshooting_guide.md b/troubleshooting_guide.md
index e779a2ef..fec52ddb 100644
--- a/troubleshooting_guide.md
+++ b/troubleshooting_guide.md
@@ -126,8 +126,8 @@ Generic logs for PHP apps.
 ##### yunohost.log
 This is the log created at the YunoHost install. If you have issue installing YunoHost, check this file.
 
-##### yunohost operations logs
-This is the logs created when you install, remove, backup, etc... an apps, they can be found in `/var/log/yunohost/categories/operation`.
+##### YunoHost operations logs
+This is the logs created when you install, remove, backup, etc... an apps, they can be found using the Webadmin in Tools > Logs or using the command line: `yunohost log list` and `yunohost log display`.
 
 This list is not exhaustive. Furthermore, some app may put their logs in `/var/log` too. Slapd logs are unfortunately in `/var/log/syslog`.
 

From d7ae3cdad9de2607f920fd2e3003703a6372b032 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 16 Jun 2019 01:50:09 +0000
Subject: [PATCH 017/360] added Wireguard

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index fb297d1a..8e4f55f2 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -171,6 +171,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [webSync](http://furier.github.io/websync)
 - [WebTorrent](https://github.com/feross/webtorrent)
 - [Wisemapping](http://www.wisemapping.com)
+- [Wireguard](https://www.wireguard.com/)
 - [Xonotic](http://xonotic.org)
 - [YesWiki](https://yeswiki.net)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)

From 4ed5ef3f4c723a8e29ddbb4ef7456aad072439ff Mon Sep 17 00:00:00 2001
From: gusttt <41129432+gusttt@users.noreply.github.com>
Date: Sun, 16 Jun 2019 03:57:44 +0200
Subject: [PATCH 018/360] dns.md: Fix link

---
 dns.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dns.md b/dns.md
index f864b0cc..6d2bc471 100644
--- a/dns.md
+++ b/dns.md
@@ -10,7 +10,7 @@ DNS stands for "Domain Name Server", and is often used for the configuration of
 
 **For example**: `yunohost.org` points to the server at `88.191.153.110`.
 
-This system was created to more easily keep track of server addresses. There are DNS registries for Internet names that you must register with. They are called "registrars", which will let you rent certain domain names for a price (between $5 or a few hundred, depending on the root domain and the chosen name). These [registrars](registrar) are private entities authorised by [ICANN](http://en.wikipedia.org/wiki/ICANN), such as [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). A privacy respecting registrar is [Njalla](https://njal.la/) or [Njalla Onion Site](njalladnspotetti.onion). With Njalla, you can register a domain name with just an email or XMPP address (N.B. : you won't have full control and ownership of the domain though).
+This system was created to more easily keep track of server addresses. There are DNS registries for Internet names that you must register with. They are called "registrars", which will let you rent certain domain names for a price (between $5 or a few hundred, depending on the root domain and the chosen name). These [registrars](registrar) are private entities authorised by [ICANN](http://en.wikipedia.org/wiki/ICANN), such as [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). A privacy respecting registrar is [Njalla](https://njal.la/) or [Njalla Onion Site](http://njalladnspotetti.onion). With Njalla, you can register a domain name with just an email or XMPP address (N.B. : you won't have full control and ownership of the domain though).
 
 It is important to note that subdomains do not necessarily have to send you to wherever the principal domain is pointing. If `yunohost.org` sends to `88.191.153.110`, that doesn't mean that `backup.yunohost.org` has to point at the same IP. You must therefore configure **all** of the domains and subdomains that you want to use.
 

From 571bf72e5509659c60259f79ee8f0d327c757db0 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Tue, 18 Jun 2019 19:21:08 +0000
Subject: [PATCH 019/360] Adding bludit to wishlist

---
 apps_wishlist.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 8e4f55f2..f08ed7d7 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -19,6 +19,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
 - [Bitwarden](https://bitwarden.com/)
 - [Beehive](https://github.com/muesli/beehive)
+- [Bludit](https://www.bludit.com)
 - [Blynk](https://github.com/blynkkk/blynk-library)
 - [Bookstack](https://www.bookstackapp.com/)
 - [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
@@ -178,4 +179,4 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [ZNC](http://wiki.znc.in/ZNC)
 - [Zone-project](https://github.com/descl/ZONE)
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
-- [Zulip](https://zulipchat.com/)
+- [Zulip](https://zulipchat.com/)
\ No newline at end of file

From 93f0e1bd5be4fe98c8bc7de203bd69d1d43903b1 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Wed, 19 Jun 2019 01:41:14 +0200
Subject: [PATCH 020/360] Fix links and spacing

---
 docs.md                              | 2 +-
 docs_ar.md                           | 2 +-
 use_case_non-profit_organisations.md | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs.md b/docs.md
index 3c74ab2e..b11d3779 100644
--- a/docs.md
+++ b/docs.md
@@ -33,4 +33,4 @@ YunoHost's documentation has 3 different sections:
    * [Support / Help](/help)
 
 * Use example:
-   * [YunoHost for non-profit organisations](/use_case_non-profit_organisations)
+   * [YunoHost for non-profit organisations](/use_case_non-profit_organisations_en)
diff --git a/docs_ar.md b/docs_ar.md
index a2108021..5179b6b8 100644
--- a/docs_ar.md
+++ b/docs_ar.md
@@ -33,4 +33,4 @@
    * [Support / Help](/help)
 
 * استخدم مثال:
-   * [YunoHost للمنظمات غير الهادفة للربح] (/ use_case_non-profit_organisations_en)
+   * [YunoHost للمنظمات غير الهادفة للربح]](/use_case_non-profit_organisations_en)
diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md
index c85bf0ad..73b3c2f4 100644
--- a/use_case_non-profit_organisations.md
+++ b/use_case_non-profit_organisations.md
@@ -202,4 +202,4 @@ But for production, localy stored backup are not enough, so you will need to imp
 ## Conclusion <a id="conclusion"></a>
 
 YunoHost can cover 99% of the needs of non-profit organizations, allowing them to own and protect their data, choose applications they want to use.
-And if one is not available, they can [package it for YunoHost](https://yunohost.org/#/contributordoc), it's very simple.
\ No newline at end of file
+And if one is not available, they can [package it for YunoHost](https://yunohost.org/#/contributordoc), it's very simple.

From 05eef00a9c3544c45b96dbc2e70bd81d7d5fa8bd Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Wed, 19 Jun 2019 01:42:32 +0200
Subject: [PATCH 021/360] Fix link

---
 docs_ar.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs_ar.md b/docs_ar.md
index 5179b6b8..df44211b 100644
--- a/docs_ar.md
+++ b/docs_ar.md
@@ -33,4 +33,4 @@
    * [Support / Help](/help)
 
 * استخدم مثال:
-   * [YunoHost للمنظمات غير الهادفة للربح]](/use_case_non-profit_organisations_en)
+   * [YunoHost للمنظمات غير الهادفة للربح](/use_case_non-profit_organisations_en)

From 396a5a5e32f7a3d68f01dc057831d7e3f7fadf62 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Wed, 19 Jun 2019 01:53:37 +0200
Subject: [PATCH 022/360] Remove authors

---
 use_case_non-profit_organisations.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md
index 73b3c2f4..a08d19b8 100644
--- a/use_case_non-profit_organisations.md
+++ b/use_case_non-profit_organisations.md
@@ -9,7 +9,6 @@
 * [Why](#why) 
 * [How](#how) 
 * [Conclusion](#conclusion) 
-* [Authors](#authors) 
 
 ## Introduction <a id="introduction"></a> 
 

From f8a85315069acce04c2fcc4ec37d05a8b14a4b1f Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Wed, 19 Jun 2019 20:13:52 +0200
Subject: [PATCH 023/360] fix internal links

---
 use_case_non-profit_organisations.md | 44 ++++++++++++++--------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md
index a08d19b8..a647801b 100644
--- a/use_case_non-profit_organisations.md
+++ b/use_case_non-profit_organisations.md
@@ -1,14 +1,14 @@
 # YunoHost for non-profit
 
 ## Table of Contents
-* [Introduction](#introduction) 
-* [Who](#who) 
-* [What](#what) 
-* [When](#when) 
-* [Where](#where) 
-* [Why](#why) 
-* [How](#how) 
-* [Conclusion](#conclusion) 
+* [Introduction](/use_case_non-profit_organisations_en?id=introduction) 
+* [Who](/use_case_non-profit_organisations_en?id=who) 
+* [What](/use_case_non-profit_organisations_en?id=what) 
+* [When](/use_case_non-profit_organisations_en?id=when) 
+* [Where](/use_case_non-profit_organisations_en?id=where) 
+* [Why](/use_case_non-profit_organisations_en?id=why) 
+* [How](/use_case_non-profit_organisations_en?id=how) 
+* [Conclusion](/use_case_non-profit_organisations_en?id=conclusion) 
 
 ## Introduction <a id="introduction"></a> 
 
@@ -23,22 +23,22 @@ Non-profit organizations, NGO or any kind of association.
 Usually non-profit organizations need to provide several services to several publics:
 
 * Board of Directors / Steering Committee / Volunteers with:
-  * [Mails](#mail)
-  * [Calendar](#calendar)
-  * [Contact](#contact)
-  * [Shared files / Drive](#drive)
-  * [Instant communication](#im)
-  * [Intranet / knowledge database](#intranet)
-  * [ERP / Accounting](#erp)
+  * [Mails](/use_case_non-profit_organisations_en?id=mail)
+  * [Calendar](/use_case_non-profit_organisations_en?id=calendar)
+  * [Contact](/use_case_non-profit_organisations_en?id=contact)
+  * [Shared files / Drive](/use_case_non-profit_organisations_en?id=drive)
+  * [Instant communication](/use_case_non-profit_organisations_en?id=im)
+  * [Intranet / knowledge database](/use_case_non-profit_organisations_en?id=intranet)
+  * [ERP / Accounting](/use_case_non-profit_organisations_en?id=erp)
 * Members with:
-  * [Public website with private and individual access](#www)
-  * [Membership](#membership)
-  * [Events registrations](#events)
-  * [Mailings](#mailing)
-  * [Forum](#forum)
+  * [Public website with private and individual access](/use_case_non-profit_organisations_en?id=www)
+  * [Membership](/use_case_non-profit_organisations_en?id=membership)
+  * [Events registrations](/use_case_non-profit_organisations_en?id=events)
+  * [Mailings](/use_case_non-profit_organisations_en?id=mailing)
+  * [Forum](/use_case_non-profit_organisations_en?id=forum)
 * Public with:
-  * [Public website](#www)
-  * [Newsletter](#mailing)
+  * [Public website](/use_case_non-profit_organisations_en?id=www)
+  * [Newsletter](/use_case_non-profit_organisations_en?id=mailing)
 
 ## When <a id="when"></a> 
 

From 4c637d179d242a51e4f08c5ef46bd4b47637f376 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 22 Jun 2019 15:45:28 +0000
Subject: [PATCH 024/360] English grammar.

---
 postinstall.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/postinstall.md b/postinstall.md
index 7702aa8d..bc4078da 100644
--- a/postinstall.md
+++ b/postinstall.md
@@ -6,7 +6,7 @@ The step called "**post-installation**" is actually the initial configuration of
 
 You can perform the post-installation with the web interface by entering in your browser :
 * **the local IP address of your server** if it is on your local network (e.g. at home !). The address typically looks like `192.168.x.y` (see 'Find your IP' on [the page about SSH](/ssh))
-* **the public IP address of your server** if your server is not on your local network. Typically, if you own a VPS, your VPS provider should have gave you the IP of the server.
+* **the public IP address of your server** if your server is not on your local network. Typically, if you own a VPS, your VPS provider should have given you the IP of the server.
 
 During the first visit, you will very likely encounter a security warning related to the certificate used by the server. For now, your server uses a self-signed certificate. You will later be able to add a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). For now, you should add a security exception to accept the current certificate.
 

From 9a56b97a663f90630c3651d9dd207d1b3e8f96aa Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 22 Jun 2019 15:52:53 +0000
Subject: [PATCH 025/360] There was an error on the text, :)

---
 selfhosting.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/selfhosting.md b/selfhosting.md
index d614c5ec..8a6de915 100644
--- a/selfhosting.md
+++ b/selfhosting.md
@@ -16,7 +16,7 @@ Why should you host yourself ?
 
 - **You want to learn about how computers and the Internet work.** Operating your own server is a pretty good context to understand the basic mechanisms at the heart of operating systems and the Internet. You might have to deal with command line interface, network architecture, DNS configuration, SSH, and so on.
 
-- **You want to explore new possibilities and customize things.** Ever dreamed of running a Minecraft server for you friends, or a persistent IRC or XMPP client? With you very own server, you can manually install and run virtually any program you want, and customize every bit.
+- **You want to explore new possibilities and customize things.** Ever dreamed of running a Minecraft server for you friends, or a persistent IRC or XMPP client? With your very own server, you can manually install and run virtually any program you want, and customize every bit.
 
 Why should you *not* host yourself ?
 ------------------------------------

From d3317bc110637d25d41e8c7f835a40454db9d2a2 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 24 Jun 2019 11:13:40 +0000
Subject: [PATCH 026/360] Ajout du bridge irc-matrix du channel dev :
 #freenode_#yunohost-dev:matrix.org

---
 help_fr.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/help_fr.md b/help_fr.md
index 794a2fc8..debf9a6a 100644
--- a/help_fr.md
+++ b/help_fr.md
@@ -39,7 +39,9 @@
 </br>
 </br>
 <em>Note : vous pouvez aussi vous connecter aux salons de dev, via votre client XMPP favori, à</br>
-dev@conference.yunohost.org et apps@conference.yunohost.org</em>
+dev@conference.yunohost.org et apps@conference.yunohost.org</br>
+ou bien via votre client matrix préféré, à</br>
+#freenode_#yunohost-dev:matrix.org</em>
 </center>
 
 <script>

From 21cbaa64a5d76b5c0855addd6435b1be08244876 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 24 Jun 2019 11:32:44 +0000
Subject: [PATCH 027/360] added Ombi and Radarr

---
 apps_wishlist.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index f08ed7d7..6f2facd8 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -110,6 +110,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Nibbleblog](http://www.nibbleblog.com)
 - [Nuage](https://nuage.kerjean.me/login)
+- [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)
 - [openHAB](https://www.openhab.org/) - Smart home platform.
 - [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
@@ -134,6 +135,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Pump.io](http://pump.io)
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
 - [racktables](http://racktables.org)
+- [Radarr](https://github.com/Radarr/Radarr)
 - [Redmine](https://www.redmine.org)
 - [Request Tracker](https://bestpractical.com)
 - [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)

From cff534771feb406a849696974c865f0c0d97c04c Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 24 Jun 2019 16:57:37 +0200
Subject: [PATCH 028/360] Propagate to english page

---
 help.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/help.md b/help.md
index b4bb9fbe..58f7c453 100644
--- a/help.md
+++ b/help.md
@@ -39,7 +39,9 @@
 </br>
 </br>
 <em>Note : you can also connect to the devrooms, using your favorite XMPP client, to </br>
-dev@conference.yunohost.org and apps@conference.yunohost.org</em>
+dev@conference.yunohost.org and apps@conference.yunohost.org</br>
+or with a Matrix client to</br>
+#freenode_#yunohost-dev:matrix.org</em>
 </center>
 
 <script>

From 654f1c5057785f400c55a425ffc619b569ba9663 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Tue, 25 Jun 2019 23:33:35 +0200
Subject: [PATCH 029/360] Fixing anchors

---
 use_case_non-profit_organisations.md | 105 +++++++++++++--------------
 1 file changed, 52 insertions(+), 53 deletions(-)

diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md
index a647801b..9e4f8ac2 100644
--- a/use_case_non-profit_organisations.md
+++ b/use_case_non-profit_organisations.md
@@ -1,64 +1,64 @@
 # YunoHost for non-profit
 
 ## Table of Contents
-* [Introduction](/use_case_non-profit_organisations_en?id=introduction) 
-* [Who](/use_case_non-profit_organisations_en?id=who) 
-* [What](/use_case_non-profit_organisations_en?id=what) 
-* [When](/use_case_non-profit_organisations_en?id=when) 
-* [Where](/use_case_non-profit_organisations_en?id=where) 
-* [Why](/use_case_non-profit_organisations_en?id=why) 
-* [How](/use_case_non-profit_organisations_en?id=how) 
-* [Conclusion](/use_case_non-profit_organisations_en?id=conclusion) 
+* [Introduction](#introduction) 
+* [Who](#who) 
+* [What](#what) 
+* [When](#when) 
+* [Where](#where) 
+* [Why](#why) 
+* [How](#how) 
+* [Conclusion](#conclusion) 
 
-## Introduction <a id="introduction"></a> 
+## Introduction
 
 The object of this document is to present a specific use of [YunoHost](https://yunohost.org/) for non-profit organizations.
 
-## Who <a id="who"></a> 
+## Who
 
 Non-profit organizations, NGO or any kind of association.
 
-## What <a id="what"></a> 
+## What
 
 Usually non-profit organizations need to provide several services to several publics:
 
 * Board of Directors / Steering Committee / Volunteers with:
-  * [Mails](/use_case_non-profit_organisations_en?id=mail)
-  * [Calendar](/use_case_non-profit_organisations_en?id=calendar)
-  * [Contact](/use_case_non-profit_organisations_en?id=contact)
-  * [Shared files / Drive](/use_case_non-profit_organisations_en?id=drive)
-  * [Instant communication](/use_case_non-profit_organisations_en?id=im)
-  * [Intranet / knowledge database](/use_case_non-profit_organisations_en?id=intranet)
-  * [ERP / Accounting](/use_case_non-profit_organisations_en?id=erp)
+  * [Mails](#mails)
+  * [Calendar](#calendar)
+  * [Contact](#contact)
+  * [Shared files / Drive](#shared-files)
+  * [Instant communication](#instant-communication)
+  * [Intranet / knowledge database](#intranet)
+  * [ERP / Accounting](#erp-accounting)
 * Members with:
-  * [Public website with private and individual access](/use_case_non-profit_organisations_en?id=www)
-  * [Membership](/use_case_non-profit_organisations_en?id=membership)
-  * [Events registrations](/use_case_non-profit_organisations_en?id=events)
-  * [Mailings](/use_case_non-profit_organisations_en?id=mailing)
-  * [Forum](/use_case_non-profit_organisations_en?id=forum)
+  * [Public website with private and individual access](#public-web-site)
+  * [Membership](#membership)
+  * [Events registrations](#events-registrations)
+  * [Mailings](#newsletter-mailing)
+  * [Forum](#forum)
 * Public with:
-  * [Public website](/use_case_non-profit_organisations_en?id=www)
-  * [Newsletter](/use_case_non-profit_organisations_en?id=mailing)
+  * [Public website](#public-web-site)
+  * [Newsletter](#newsletter-mailing)
 
-## When <a id="when"></a> 
+## When
 
 When ready to move forward.
 
-## Where <a id="where"></a> 
+## Where
 
 You YunoHost for non profit can be hosted in several places:
 * Own hosting on a server, computer or Raspberry behind ASDL, SDSL or Fiber
 * [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters) hosting services
 * Commercial hosting services providing Debian virtual machine
 
-## Why <a id="why"></a> 
+## Why
 
 YunoHost can provide mostly all needs of a non-profit organization.
 Keeping their data on their own.
 
-## How <a id="how"></a> 
+## How
 
-### YunoHost <a id="yunohost"></a>
+### YunoHost
 
 YunoHost is a Debian GNU/Linux based distribution packaged with free software that automates the installation of a personal web server. The purpose of YunoHost is to allow users to easily host their own web services by enabling a simple point-and-click web interface for installing various web apps.
 
@@ -80,11 +80,11 @@ Out of the box YunoHost provide:
   * An antispam: rspamd,rmilter
 * Instant messaging XMPP server: Metronome IM
 
-### Domain Name <a id="domain"></a>
+### Domain Name
 
 The first thing you will need to implement a YunoHost server is a domain name. The domain name can usually be provided with your hosting service.
 
-### Mails <a id="mail"></a>
+### Mails
 
 From scratch, YunoHost provide mail system available using POP/IMAP/SMTP.
 Mails accounts will be managed using the web interface or the command line. Created accounts are stored in openldap.
@@ -94,24 +94,24 @@ Additional package can be installed to provide more functionality to the YunoHos
 * ActiveSync using [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh)
 * Internal distribution group using [Mailman](https://github.com/YunoHost-Apps/mailman_ynh)
 
-### Calendar <a id="calendar"></a>
+### Calendar
 
 To provide personal or shared calendars you will need to install:
 * [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
 * [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
 
-### Contact <a id="contact"></a>
+### Contact
 
 To provide personal contact system you will need to install:
 * [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
 * [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
 
-### Shared files <a id="drive"></a>
+### Shared files
 
 To provide shared files system: personal and shared drive, you can install [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh).
 Files will be available from a web interface or using a synchronization client
 
-### Instant communication <a id="im"></a>
+### Instant communication
 
 Out of the box, YunoHost provide an XMPP server, for which you can install a web client: [Jappix](https://github.com/YunoHost-Apps/jappix_ynh)
 
@@ -119,19 +119,19 @@ You can also install a matrix server:
 * The server: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh)
 * A web client: [Riot](https://github.com/YunoHost-Apps/_ynh)
 
-### Intranet <a id="intranet"></a>
+### Intranet
 
 For an non-profit organization a good way to implement an intranet is to provide a wiki to let internal users read, edit and add content. Here are some packages to implement a wiki:
 * [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) using wiki syntax
 * [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) using markdown syntax
 
-### ERP / Accounting <a id="erp"></a>
+### ERP / Accounting
 
 At some time a non-profit organization could need an accounting/erp system, here are two propositions:
 * [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh)
 * [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh)
 
-### Public Web Site <a id="www"></a>
+### Public Web Site
 
 There are several way to implement a Public Web Site:
 * Simple html, css, etc... Website using: [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh)
@@ -141,23 +141,23 @@ But we will propose something more powerful: [CiviCRM on Drupal 7](https://githu
 * Drupal that is a powerful open source content management framework
 * with CiviCRM that is an open source constituent relationship management for non-profits 
 
-#### Membership <a id="membership"></a>
+#### Membership
 
 With CiviCRM you can provide online membership and payment.
 
-#### Events Registrations <a id="events"></a>
+#### Events Registrations
 
 With CiviCRM, you can provide an online diary to let members or public register for free or with a payment
 
-#### Newsletter/Mailing <a id="mailing"></a>
+#### Newsletter/Mailing
 
 Best way to manage that is using CiviCRM and its mailing module
 
-### Forum <a id="forum"></a>
+### Forum
 
 You have several choices, or having an integrated forum in Drupal or using a dedicated forum system like [Flarum](https://github.com/YunoHost-Apps/flarum_ynh)
 
-### Backup <a id="backup"></a>
+### Backup
 
 YunoHost provide is own backup system. Before any package upgrade, YunoHost backup the current version of the package and automaticaly restore it if the upgrade fails.
 Yunohost backup are stored localy in `/home/yunohost.backup/archives`
@@ -168,37 +168,36 @@ But for production, localy stored backup are not enough, so you will need to imp
 * [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) allow to externalize backups
 * [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), if you have two yunohost servers, provide a way to have a secondary server which you can used if your main server goes down. This secondary server will allow you to deploy a copy of your server to bring back your YunoHost during your break down.
 
-### Go further <a id="further"></a>
+### Go further
 
-#### Federated Photo Gallery <a id="photo"></a>
+#### Federated Photo Gallery
 
 * [Pixelfed](https://github.com/YunoHost-Apps/pixelfed_ynh)
 
-#### Federated Audio Gallery <a id="audio"></a>
+#### Federated Audio Gallery
 
 * [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh)
 
-#### Federated Video Gallery <a id="video"></a>
+#### Federated Video Gallery
 
 * [PeerTube](https://github.com/YunoHost-Apps/peertube_ynh)
 
-#### Federated Social Networking <a id="sn"></a>
+#### Federated Social Networking
 
 * [Mastodon](https://github.com/YunoHost-Apps/mastodon_ynh)
 * [Pleroma](https://github.com/YunoHost-Apps/pleroma_ynh)
 * [Mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh)
 
-#### Federated Blog <a id="sn"></a>
+#### Federated Blog
 
 * [Plume](https://github.com/YunoHost-Apps/plume_ynh)
 * [Writefreely](https://github.com/YunoHost-Apps/writefreely_ynh)
 
-#### Chat <a id="sn"></a>
+#### Chat
 
 * [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh)
 
-
-## Conclusion <a id="conclusion"></a>
+## Conclusion
 
 YunoHost can cover 99% of the needs of non-profit organizations, allowing them to own and protect their data, choose applications they want to use.
 And if one is not available, they can [package it for YunoHost](https://yunohost.org/#/contributordoc), it's very simple.

From 322a0ae89db0c615da45f2c368f4c85e90d15ffc Mon Sep 17 00:00:00 2001
From: Luke Murphy <lukewm@riseup.net>
Date: Wed, 26 Jun 2019 00:23:22 +0200
Subject: [PATCH 030/360] Add BattleMeshV12 talk

---
 communication.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/communication.md b/communication.md
index 62768cfd..168ac856 100644
--- a/communication.md
+++ b/communication.md
@@ -2,6 +2,7 @@
 
 ## Talks / conf
 
+- (EN) [BattleMeshV12 - YunoHost and the Internet Cube (Brique Internet)](https://www.battlemesh.org/BattleMeshV12/Events#YunoHost_and_the_Internet_Cube_.28Brique_Internet.29)
 * (EN) [FOSDEM 2019 - The operating system to build the decentralized Internet](https://cinema.yunohost.support/videos/watch/1eb49594-0283-4a01-8691-3817a3cb31e6) ([slides](https://github.com/YunoHost/yunohost-fosdem-2019))
 * (FR) [Capitole du libre 2018 - YunoHost: un des chemins vers la décentralisation - Bram](https://www.youtube.com/watch?v=OEXEStoOYpw) ([slides](https://psycojoker.github.io/yunohost-cdl-2018/))
 * (FR) [Journées du logiciel libre 2018 - YunoHost : vers l’auto-hébergement et au-delà - Bram](https://www.videos-libr.es/videos/watch/45b48b1e-1b10-4e09-b29a-a404bd42c5d0) ([slides](https://psycojoker.github.io/yunohost-jdll-2018/))

From 2ccd09bdd3144e34f9184ca84360549261757d91 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Tue, 2 Jul 2019 11:07:46 +0200
Subject: [PATCH 031/360] Add L'atelier, Netrunner and RFTG to wishlist

---
 apps_wishlist.md | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 6f2facd8..fb8f290f 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -92,6 +92,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [KrISS feed](https://github.com/tontof/kriss_feed)
 - [Koken](http://koken.me)
 - [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
+- [L'atelier](https://github.com/jbl2024/latelier)
 - [Lessy](https://lessy.io)
 - [LibreNews-Server](https://librenews.io)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
@@ -108,6 +109,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
+- [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
@@ -135,6 +137,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Pump.io](http://pump.io)
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
 - [racktables](http://racktables.org)
+- [Race for the Galaxy](https://github.com/bnordli/rftg)
 - [Radarr](https://github.com/Radarr/Radarr)
 - [Redmine](https://www.redmine.org)
 - [Request Tracker](https://bestpractical.com)
@@ -181,4 +184,4 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [ZNC](http://wiki.znc.in/ZNC)
 - [Zone-project](https://github.com/descl/ZONE)
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
-- [Zulip](https://zulipchat.com/)
\ No newline at end of file
+- [Zulip](https://zulipchat.com/)

From becb1c8523a37e7b1e9a1872caee67fc9411b9f3 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Thu, 4 Jul 2019 20:36:34 +0200
Subject: [PATCH 032/360] It doesn't make so much sense having this picture
 here in terms of UX ...

---
 images/debian_install.png | Bin 22046 -> 0 bytes
 images/images.list        |   1 -
 install_on_debian.md      |   2 --
 install_on_debian_ar.md   |   2 --
 install_on_debian_fr.md   |   2 --
 5 files changed, 7 deletions(-)
 delete mode 100644 images/debian_install.png

diff --git a/images/debian_install.png b/images/debian_install.png
deleted file mode 100644
index 005a98b4647c2c3954de35bf7c06a72aafe6a7ef..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 22046
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

diff --git a/images/images.list b/images/images.list
index 4289c16b..4e785728 100644
--- a/images/images.list
+++ b/images/images.list
@@ -2,7 +2,6 @@ boot_screen.png
 cd.jpg
 checkstart.png
 cubieboard2.png
-debian_install.png
 debian-logo.png
 desktop.jpg
 df_h.png
diff --git a/install_on_debian.md b/install_on_debian.md
index 1d6e82e6..4c6b175a 100644
--- a/install_on_debian.md
+++ b/install_on_debian.md
@@ -12,8 +12,6 @@ An ARM box, a VPS, a dedicated server, a standard x86 computer, an old Macintosh
 * connected to the Internet
 * with a direct **root access** or via SSH
 
-<img width=650 src="/images/debian_install.png">
-
 ---
 
 ## Installation steps
diff --git a/install_on_debian_ar.md b/install_on_debian_ar.md
index 23afb487..455830f8 100644
--- a/install_on_debian_ar.md
+++ b/install_on_debian_ar.md
@@ -13,8 +13,6 @@
 * مُتصل بالإنترنت عبر كابل إيثرنت
 * مباشرة عبر **النفاذ بالمستخدم الجذري root** أو عبر الـ SSH
 
-<img width=650 src="/images/debian_install.png">
-
 ---
 
 ## خطوات التنصيب
diff --git a/install_on_debian_fr.md b/install_on_debian_fr.md
index 3f5ab9ad..a1b85b3a 100644
--- a/install_on_debian_fr.md
+++ b/install_on_debian_fr.md
@@ -12,8 +12,6 @@ Sur une plateforme ARM, un VPS, un serveur dédié, un ordinateur x86 standard,
 * connecté à Internet
 * avec un **accès root** directement ou par SSH
 
-<img width=650 src="/images/debian_install.png">
-
 ---
 
 ## Étapes d’installation

From 152f3d74d7177fc47baeb57f286d71c2fb111438 Mon Sep 17 00:00:00 2001
From: ljf <ljf+git@grimaud.me>
Date: Sat, 6 Jul 2019 12:44:50 +0200
Subject: [PATCH 033/360] [enh] Update version number

---
 index.md    | 2 +-
 index_ar.md | 2 +-
 index_de.md | 2 +-
 index_es.md | 2 +-
 index_fr.md | 2 +-
 index_it.md | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/index.md b/index.md
index 390713e3..17ca1a20 100644
--- a/index.md
+++ b/index.md
@@ -43,7 +43,7 @@
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">Try it</a>
     <a class="btn btn-success btn-lg" href="/install">Get started</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.5</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">
diff --git a/index_ar.md b/index_ar.md
index ee88fae8..1836c6cc 100644
--- a/index_ar.md
+++ b/index_ar.md
@@ -40,7 +40,7 @@
   <div dir="auto" class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">تجريب</a>
     <a class="btn btn-success btn-lg" href="/install">تنصيب</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.5</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
   </div>
 
   <hr />
diff --git a/index_de.md b/index_de.md
index 4936cc27..f5350f11 100644
--- a/index_de.md
+++ b/index_de.md
@@ -44,7 +44,7 @@ Self-Hosting für alle möglich macht.</small></h1>
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">Ausprobieren</a>
     <a class="btn btn-success btn-lg" href="/install">Loslegen</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.5</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">
diff --git a/index_es.md b/index_es.md
index 989cce1a..ea7f490a 100644
--- a/index_es.md
+++ b/index_es.md
@@ -41,7 +41,7 @@
   <div class="call-to-action">
     <!-- <a class="btn btn-primary btn-lg" href="/try">Try it</a>  -->
     <a class="btn btn-success btn-lg" href="/install">Get started</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.5</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">
diff --git a/index_fr.md b/index_fr.md
index 93d21c5e..367ef276 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -39,7 +39,7 @@
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try_fr">Essayer</a>
     <a class="btn btn-success btn-lg" href="/install_fr">Installer</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.5</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
   </div>
 
   <hr />
diff --git a/index_it.md b/index_it.md
index febabad4..c45c4709 100644
--- a/index_it.md
+++ b/index_it.md
@@ -44,7 +44,7 @@
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">Provalo</a>
     <a class="btn btn-success btn-lg" href="/install">Per cominciare</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.5</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">

From be22d9807407c05a2e878bb3c2057f5c7ee1c3f9 Mon Sep 17 00:00:00 2001
From: ljf <ljf+git@grimaud.me>
Date: Sat, 6 Jul 2019 12:49:05 +0200
Subject: [PATCH 034/360] [fix] Update link to 3.6 announcement

---
 index.md    | 2 +-
 index_ar.md | 2 +-
 index_de.md | 2 +-
 index_es.md | 2 +-
 index_fr.md | 2 +-
 index_it.md | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/index.md b/index.md
index 17ca1a20..2d757617 100644
--- a/index.md
+++ b/index.md
@@ -43,7 +43,7 @@
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">Try it</a>
     <a class="btn btn-success btn-lg" href="/install">Get started</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">
diff --git a/index_ar.md b/index_ar.md
index 1836c6cc..1df4a89c 100644
--- a/index_ar.md
+++ b/index_ar.md
@@ -40,7 +40,7 @@
   <div dir="auto" class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">تجريب</a>
     <a class="btn btn-success btn-lg" href="/install">تنصيب</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
   </div>
 
   <hr />
diff --git a/index_de.md b/index_de.md
index f5350f11..3e86b308 100644
--- a/index_de.md
+++ b/index_de.md
@@ -44,7 +44,7 @@ Self-Hosting für alle möglich macht.</small></h1>
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">Ausprobieren</a>
     <a class="btn btn-success btn-lg" href="/install">Loslegen</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">
diff --git a/index_es.md b/index_es.md
index ea7f490a..3bc6ceed 100644
--- a/index_es.md
+++ b/index_es.md
@@ -41,7 +41,7 @@
   <div class="call-to-action">
     <!-- <a class="btn btn-primary btn-lg" href="/try">Try it</a>  -->
     <a class="btn btn-success btn-lg" href="/install">Get started</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">
diff --git a/index_fr.md b/index_fr.md
index 367ef276..c6e5c82c 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -39,7 +39,7 @@
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try_fr">Essayer</a>
     <a class="btn btn-success btn-lg" href="/install_fr">Installer</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
   </div>
 
   <hr />
diff --git a/index_it.md b/index_it.md
index c45c4709..de3db000 100644
--- a/index_it.md
+++ b/index_it.md
@@ -44,7 +44,7 @@
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">Provalo</a>
     <a class="btn btn-success btn-lg" href="/install">Per cominciare</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-5-release-sortie-de-yunohost-3-5/7619">YunoHost v3.6</a></small></p>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">

From b0c68239482402146abac03d98035cbdd25a4471 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 8 Jul 2019 18:00:24 +0200
Subject: [PATCH 035/360] Add link to Debian ISO

---
 install_on_debian.md    | 2 ++
 install_on_debian_fr.md | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/install_on_debian.md b/install_on_debian.md
index 4c6b175a..45e1016c 100644
--- a/install_on_debian.md
+++ b/install_on_debian.md
@@ -9,6 +9,8 @@
 An ARM box, a VPS, a dedicated server, a standard x86 computer, an old Macintosh, ...
 
 * with **Debian 9** (Stretch) installed <small>(with kernel >= 3.12)</small>
+   * the Debian 9 ISO can be downloaded from [here](https://www.debian.org/releases/stretch/debian-installer/). Take the 'netinst CD image' for your architecture.
+   * N.B. : having a graphical environment is *not* recommended! Servers are meant to be administrated remotely!
 * connected to the Internet
 * with a direct **root access** or via SSH
 
diff --git a/install_on_debian_fr.md b/install_on_debian_fr.md
index a1b85b3a..4b05905e 100644
--- a/install_on_debian_fr.md
+++ b/install_on_debian_fr.md
@@ -8,7 +8,9 @@
 
 Sur une plateforme ARM, un VPS, un serveur dédié, un ordinateur x86 standard, un vieux Macintosh,...
 
-* avec **Debian 9** (Stretch) installé
+* avec **Debian 9** (Stretch) installé <small>(avec un kernel >= 3.12)</small>
+   * l'ISO Debian 9 ISO peut être téléchargée depuis [cette page](https://www.debian.org/releases/stretch/debian-installer/). Prenez la 'netinst CD image' pour votre architecture
+   * N.B. : Avoir un environnement graphique n'est *pas* recommandé ! Les serveurs sont généralement administrés à distance !
 * connecté à Internet
 * avec un **accès root** directement ou par SSH
 

From 9f25aa44671591dc9ede7bc79bf7fc922262d0c0 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Tue, 9 Jul 2019 12:14:28 +0200
Subject: [PATCH 036/360] Add a note about images being okay even though they
 are not the latest version

---
 images.md    | 2 ++
 images_fr.md | 1 +
 2 files changed, 3 insertions(+)

diff --git a/images.md b/images.md
index a2798e07..be1840bb 100644
--- a/images.md
+++ b/images.md
@@ -6,6 +6,8 @@ This page requires Javascript enabled to display properly :s.
 <br/>
 </span>
 
+N.B. : Even if the image does not corresponds to the latest version of YunoHost, you can still use it and do a regular system upgrade after setting up!
+
 <div id="cards-list">
 </div>
 
diff --git a/images_fr.md b/images_fr.md
index 5b049d6d..4b03c4f9 100644
--- a/images_fr.md
+++ b/images_fr.md
@@ -6,6 +6,7 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
 <br/>
 </span>
 
+N.B. : Même si l'image de corresponds pas à la dernière version de YunoHost, vous pouvez tout de même l'utiliser puis faire une mise à jour du système après l'installation !
 
 <div id="cards-list">
 </div>

From 578c47ce1da6ad292c69cacf6b628b1e07aa5d44 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 11 Jul 2019 09:17:37 +0000
Subject: [PATCH 037/360] Correct spelling mistake

---
 packaging_apps_manifest.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_manifest.md b/packaging_apps_manifest.md
index 8446c289..e8c713af 100644
--- a/packaging_apps_manifest.md
+++ b/packaging_apps_manifest.md
@@ -78,7 +78,7 @@ The `manifest.json` file defines the app's constants, a bunch of values that Yun
 * **arguments**:
   * **install**: argument for the YunoHost's administrator to enter at installation.
     * **name**: argument identification.
-    * **type**: (optional) argument type among `domain`, `path`, `user`, `app`, `boolean`, `string` and `password`. The field will be hiden in the password case.
+    * **type**: (optional) argument type among `domain`, `path`, `user`, `app`, `boolean`, `string` and `password`. The field will be hidden in the password case.
     * **choices** : (optional) restrict value to several choices.
     * **optional** : (optional) field which indicate if this argument is optional. It can have `true` and `false` value.
     * **ask**: question (at least in `en`) that you can translate.

From bfa410c4e8a984a854f3db7f9b4d25b07db7f887 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Thu, 11 Jul 2019 21:34:57 +0200
Subject: [PATCH 038/360] Update packaging_apps_helpers.md

---
 packaging_apps_helpers.md | 142 +++++++++++++++++++-------------------
 1 file changed, 71 insertions(+), 71 deletions(-)

diff --git a/packaging_apps_helpers.md b/packaging_apps_helpers.md
index 9c67f777..ce923f41 100644
--- a/packaging_apps_helpers.md
+++ b/packaging_apps_helpers.md
@@ -27,7 +27,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L19">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logrotate#L19">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -50,7 +50,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L99">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logrotate#L99">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -80,7 +80,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L120">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L18">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -109,7 +109,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L156">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L54">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -138,7 +138,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L192">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nginx#L21">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -161,7 +161,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L244">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nginx#L73">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -190,7 +190,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L255">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/php#L9">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -213,7 +213,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L302">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/php#L56">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -249,7 +249,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L377">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/fail2ban#L65">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -272,7 +272,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backend#L459">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/fail2ban#L147">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -303,7 +303,7 @@
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/debug#L10">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L305">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -334,7 +334,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/debug#L65">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L360">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -368,7 +368,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/filesystem#L47">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L45">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -391,7 +391,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/filesystem#L160">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L162">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -432,7 +432,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/filesystem#L219">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L221">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -461,7 +461,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/filesystem#L315">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L297">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -495,7 +495,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/filesystem#L348">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L330">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -524,7 +524,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/filesystem#L381">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L363">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -553,7 +553,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/filesystem#L399">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L335">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -584,7 +584,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/ip#L11">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L35">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -613,7 +613,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/ip#L45">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L69">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -642,7 +642,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/ip#L66">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L90">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -898,7 +898,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L250">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L97">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -942,7 +942,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L19">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L125">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -974,7 +974,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L45">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L11">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1007,7 +1007,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L70">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L196">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1041,7 +1041,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L92">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L218">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1169,7 +1169,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L51">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L51">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1204,7 +1204,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L73">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L73">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1227,7 +1227,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L105">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L105">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1256,7 +1256,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L115">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L115">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1285,7 +1285,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L126">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L126">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1314,7 +1314,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L136">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L136">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1343,7 +1343,7 @@ modified config files.</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L146">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L146">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1376,7 +1376,7 @@ This helper can/should only be called once per app</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L206">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L206">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1399,7 +1399,7 @@ This helper can/should only be called once per app</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/package#L244">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L244">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1424,7 +1424,7 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L7">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L7">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1447,7 +1447,7 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L25">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L25">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1476,7 +1476,7 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L70">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L70">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1505,7 +1505,7 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L87">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L87">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1537,7 +1537,7 @@ If the command to execute uses double quotes, they have to be escaped or they wi
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L108">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L108">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1569,7 +1569,7 @@ If the command to execute uses double quotes, they have to be escaped or they wi
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L122">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L122">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1601,7 +1601,7 @@ If the command to execute uses double quotes, they have to be escaped or they wi
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L136">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L136">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1633,7 +1633,7 @@ If the command to execute uses double quotes, they have to be escaped or they wi
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L150">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L150">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1665,7 +1665,7 @@ If the command to execute uses double quotes, they have to be escaped or they wi
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L164">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L164">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1689,7 +1689,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L174">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L174">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1712,7 +1712,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L183">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L183">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1744,7 +1744,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/print#L198">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L198">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1779,7 +1779,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L16">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L16">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1809,7 +1809,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L37">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L37">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1839,7 +1839,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L58">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L58">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1874,7 +1874,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L120">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L124">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1897,7 +1897,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </ul>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L150">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L154">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1920,7 +1920,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </ul>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L169">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L173">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1951,7 +1951,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L205">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L209">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1975,7 +1975,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
         </ul>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L232">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L236">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -1993,7 +1993,7 @@ Please always call this script in install and restore scripts</h6>
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_test_if_first_run</code>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/psql#L262">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L264">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2204,7 +2204,7 @@ Please always call this script in install and restore scripts</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/system#L48">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L85">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2230,7 +2230,7 @@ Please always call this script in install and restore scripts</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/system#L59">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L305">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2262,7 +2262,7 @@ Please always call this script in install and restore scripts</h6>
         </ul>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/system#L76">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L85">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2280,7 +2280,7 @@ Please always call this script in install and restore scripts</h6>
         <strong>Usage</strong>: <code class="helper-code">ynh_clean_check_starting</code>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/system#L164">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L171">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2310,7 +2310,7 @@ Please always call this script in install and restore scripts</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/system#L177">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L406">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2343,7 +2343,7 @@ In the last example it return 4.3-2</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/system#L204">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L433">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2376,7 +2376,7 @@ In the last example it return 3</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/system#L227">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L456">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2401,7 +2401,7 @@ In the last example it return 3</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/system#L256">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L485">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2653,7 +2653,7 @@ In the last example it return 3</h6>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L11">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L378">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2680,7 +2680,7 @@ ynh_abort_if_errors</code>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L42">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L434">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2707,7 +2707,7 @@ ynh_abort_if_errors</code>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L74">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L385">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2737,7 +2737,7 @@ ynh_abort_if_errors</code>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L159">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L136">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2772,7 +2772,7 @@ ynh_abort_if_errors</code>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L266">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L250">Dude, show me the code !</a>
     </p>
   </div>
   </div>
@@ -2802,7 +2802,7 @@ ynh_abort_if_errors</code>
         </p>
     </p>
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L305">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L289">Dude, show me the code !</a>
     </p>
   </div>
   </div>

From 7907936ad36555c2568fa5949550a778617cf70d Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Thu, 11 Jul 2019 22:04:06 +0200
Subject: [PATCH 039/360] Update helper doc with file generated from
 genererate_helper_doc.py

---
 packaging_apps_helpers.md | 5173 ++++++++++++++++++++++++++-----------
 1 file changed, 3634 insertions(+), 1539 deletions(-)

diff --git a/packaging_apps_helpers.md b/packaging_apps_helpers.md
index ce923f41..1f97ff1b 100644
--- a/packaging_apps_helpers.md
+++ b/packaging_apps_helpers.md
@@ -1,345 +1,435 @@
 <!-- NO_MARKDOWN_PARSING -->
+
 <h1>App helpers</h1>
-<h3 style="text-transform: uppercase; font-weight: bold">backend</h3>
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">apt</h3>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_use_logrotate" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_use_logrotate</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Use logrotate to manage the logfile</h6>
+    <div data-toggle="collapse" href="#collapse-ynh_package_is_installed" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_package_is_installed</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Check either a package is installed or not</h6>
     </div>
-    <div id="collapse-ynh_use_logrotate" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_package_is_installed" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_use_logrotate [--logfile=/log/file] [--nonappend] [--specific_user=user/group]</code>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_package_is_installed --package=name</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
-            <li><code>-l</code>, <code>--logfile</code> : absolute path of logfile</li>
-            <li><code>-n</code>, <code>--nonappend</code> : (optional) Replace the config file instead of appending this new config.</li>
-            <li><code>-u</code>, <code>--specific_user</code> : run logrotate as the specified user and group. If not specified logrotate is runned as root.</li>
+            
+            
+            <li><code>-p</code>, <code>--package</code> : the package name to check</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_package_is_installed --package=yunohost && echo "ok"</code>
+    </p>
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        If no --logfile is provided, /var/log/${app} will be used as default.</br>logfile can be just a directory, or a full path to a logfile :</br>/parentdir/logdir</br>/parentdir/logdir/logfile.log</br></br>It's possible to use this helper multiple times, each config will be added to</br>the same logrotate config file.  Unless you use the option --non-append</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logrotate#L19">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L51">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_remove_logrotate" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_remove_logrotate</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove the app's logrotate config.</h6>
+    <div data-toggle="collapse" href="#collapse-ynh_package_version" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_package_version</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Get the version of an installed package</h6>
     </div>
-    <div id="collapse-ynh_remove_logrotate" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_package_version" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_remove_logrotate</code>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_package_version --package=name</code>
+        
     </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-p</code>, <code>--package</code> : the package name to get version</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: the version or an empty string
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">version=$(ynh_package_version --package=yunohost)</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L73">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_package_update" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_package_update</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Update package index files</h6>
+    </div>
+    <div id="collapse-ynh_package_update" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_package_update</code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L105">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_package_install" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_package_install</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Install package(s)</h6>
+    </div>
+    <div id="collapse-ynh_package_install" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_package_install name [name [...]]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>name</code> : the package name to install</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L115">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_package_remove" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_package_remove</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove package(s)</h6>
+    </div>
+    <div id="collapse-ynh_package_remove" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_package_remove name [name [...]]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>name</code> : the package name to remove</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L126">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_package_autoremove" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_package_autoremove</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove package(s) and their uneeded dependencies</h6>
+    </div>
+    <div id="collapse-ynh_package_autoremove" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_package_autoremove name [name [...]]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>name</code> : the package name to remove</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L136">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_package_autopurge" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_package_autopurge</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Purge package(s) and their uneeded dependencies</h6>
+    </div>
+    <div id="collapse-ynh_package_autopurge" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_package_autopurge name [name [...]]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>name</code> : the package name to autoremove and purge</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.7.2 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L146">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_install_app_dependencies" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_install_app_dependencies</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Define and install dependencies with a equivs control file
+This helper can/should only be called once per app</h6>
+    </div>
+    <div id="collapse-ynh_install_app_dependencies" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_install_app_dependencies dep [dep [...]]
+  You can give a choice between some package with this syntax : "dep1|dep2"
+  Example : ynh_install_app_dependencies dep1 dep2 "dep3|dep4|dep5"
+  This mean in the dependence tree : dep1 & dep2 & (dep3 | dep4 | dep5)</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>dep</code> : the package name to install in dependence</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logrotate#L99">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L206">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_add_systemd_config" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_add_systemd_config</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Create a dedicated systemd config</h6>
+    <div data-toggle="collapse" href="#collapse-ynh_remove_app_dependencies" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_remove_app_dependencies</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove fake package and its dependencies</h6>
     </div>
-    <div id="collapse-ynh_add_systemd_config" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_remove_app_dependencies" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_add_systemd_config [--service=service] [--template=template]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-s</code>, <code>--service</code> : Service name (optionnal, $app by default)</li>
-            <li><code>-t</code>, <code>--template</code> : Name of template file (optionnal, this is 'systemd' by default, meaning ./conf/systemd.service will be used as template)</li>
-        </ul>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_remove_app_dependencies</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        This will use the template ../conf/<templatename>.service</br>to generate a systemd config, by replacing the following keywords</br>with global variables that should be defined before calling</br>this helper :</br></br>__APP__       by  $app</br>  __FINALPATH__ by  $final_path</br></br>Requires YunoHost version 2.7.2 or higher.</br></br>
+        Dependencies will removed only if no other package need them.</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L18">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L244">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_remove_systemd_config" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_remove_systemd_config</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove the dedicated systemd config</h6>
-    </div>
-    <div id="collapse-ynh_remove_systemd_config" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_remove_systemd_config [--service=service]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-s</code>, <code>--service</code> : Service name (optionnal, $app by default)</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.7.2 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L54">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_add_nginx_config" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_add_nginx_config</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Create a dedicated nginx config</h6>
-    </div>
-    <div id="collapse-ynh_add_nginx_config" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_add_nginx_config "list of others variables to replace"</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>list</code> : (Optional) list of others variables to replace separated by spaces. For example : 'path_2 port_2 ...'</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        This will use a template in ../conf/nginx.conf</br>  __PATH__      by  $path_url</br>  __DOMAIN__    by  $domain</br>  __PORT__      by  $port</br>  __NAME__      by  $app</br>  __FINALPATH__ by  $final_path</br></br>And dynamic variables (from the last example) :</br>  __PATH_2__    by $path_2</br>  __PORT_2__    by $port_2</br></br>Requires YunoHost version 2.7.2 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nginx#L21">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_remove_nginx_config" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_remove_nginx_config</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove the dedicated nginx config</h6>
-    </div>
-    <div id="collapse-ynh_remove_nginx_config" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_remove_nginx_config</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.7.2 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nginx#L73">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_add_fpm_config" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_add_fpm_config</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Create a dedicated php-fpm config</h6>
-    </div>
-    <div id="collapse-ynh_add_fpm_config" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_add_fpm_config [--phpversion=7.X]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-v</code>, <code>--phpversion</code> : Version of php to use.</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.7.2 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/php#L9">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_remove_fpm_config" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_remove_fpm_config</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove the dedicated php-fpm config</h6>
-    </div>
-    <div id="collapse-ynh_remove_fpm_config" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_remove_fpm_config</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.7.2 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/php#L56">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_add_fail2ban_config" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_add_fail2ban_config</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Create a dedicated fail2ban config (jail and filter conf files)</h6>
-    </div>
-    <div id="collapse-ynh_add_fail2ban_config" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code helper-usage">1: ynh_add_fail2ban_config --logpath=log_file --failregex=filter [--max_retry=max_retry] [--ports=ports]
-2: ynh_add_fail2ban_config --use_template [--others_var="list of others variables to replace"]
-|                           for example : 'var_1 var_2 ...'</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-l</code>, <code>--logpath=</code> : Log file to be checked by fail2ban</li>
-            <li><code>-r</code>, <code>--failregex=</code> : Failregex to be looked for by fail2ban</li>
-            <li><code>-m</code>, <code>--max_retry=</code> : Maximum number of retries allowed before banning IP address - default: 3</li>
-            <li><code>-p</code>, <code>--ports=</code> : Ports blocked for a banned IP address - default: http,https</li>
-            <li><code>-t</code>, <code>--use_template</code> : Use this helper in template mode</li>
-            <li><code>-v</code>, <code>--others_var=</code> : List of others variables to replace separeted by a space</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        -----------------------------------------------------------------------------</br></br>This will use a template in ../conf/f2b_jail.conf and ../conf/f2b_filter.conf</br>  __APP__      by  $app</br></br>You can dynamically replace others variables by example :</br>  __VAR_1__    by $var_1</br>  __VAR_2__    by $var_2</br></br>Generally your template will look like that by example (for synapse):</br></br>f2b_jail.conf:</br>    [__APP__]</br>    enabled = true</br>    port = http,https</br>    filter = __APP__</br>    logpath = /var/log/__APP__/logfile.log</br>    maxretry = 3</br></br>f2b_filter.conf:</br>    [INCLUDES]</br>    before = common.conf</br>    [Definition]</br></br># Part of regex definition (just used to make more easy to make the global regex)</br>    __synapse_start_line = .? \- synapse\..+ \-</br></br># Regex definition.</br>   failregex = ^%(__synapse_start_line)s INFO \- POST\-(\d+)\- <HOST> \- \d+ \- Received request\: POST /_matrix/client/r0/login\??<SKIPLINES>%(__synapse_start_line)s INFO \- POST\-\1\- Got login request with identifier: \{u'type': u'm.id.user', u'user'\: u'(.+?)'\}, medium\: None, address: None, user\: u'\5'<SKIPLINES>%(__synapse_start_line)s WARNING \- \- (Attempted to login as @\5\:.+ but they do not exist|Failed password login for user @\5\:.+)$</br></br>ignoreregex =</br></br>-----------------------------------------------------------------------------</br></br>Note about the "failregex" option:</br>         regex to match the password failure messages in the logfile. The</br>         host must be matched by a group named "host". The tag "<HOST>" can</br>         be used for standard IP/hostname matching and is only an alias for</br>         (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)</br></br>You can find some more explainations about how to make a regex here :</br>         https://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Filters</br></br>Note that the logfile need to exist before to call this helper !!</br></br>To validate your regex you can test with this command:</br>fail2ban-regex /var/log/YOUR_LOG_FILE_PATH /etc/fail2ban/filter.d/YOUR_APP.conf</br></br>Requires YunoHost version 3.?.? or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/fail2ban#L65">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_remove_fail2ban_config" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_remove_fail2ban_config</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove the dedicated fail2ban config (jail and filter conf files)</h6>
-    </div>
-    <div id="collapse-ynh_remove_fail2ban_config" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_remove_fail2ban_config</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/fail2ban#L147">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<h3 style="text-transform: uppercase; font-weight: bold">debug</h3>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_debug" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_debug</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Debugger for app packagers</h6>
-    </div>
-    <div id="collapse-ynh_debug" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_debug [--message=message] [--trace=1/0]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-m</code>, <code>--message=</code> : The text to print</li>
-            <li><code>-t</code>, <code>--trace=</code> : Turn on or off the trace of the script. Usefull to trace nonly a small part of a script.</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L305">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_debug_exec" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_debug_exec</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Execute a command and print the result as debug</h6>
-    </div>
-    <div id="collapse-ynh_debug_exec" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_debug_exec command to execute
-ynh_debug_exec "command to execute | following command"
-In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>command</code> : command to execute</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L360">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<h3 style="text-transform: uppercase; font-weight: bold">filesystem</h3>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">backup</h3>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_backup" style="cursor:pointer">
@@ -349,30 +439,60 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     <div id="collapse-ynh_backup" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_backup --src_path=src_path [--dest_path=dest_path] [--is_big] [--not_mandatory]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-s</code>, <code>--src_path</code> : file or directory to bind or symlink or copy. it shouldn't be in the backup dir.</li>
+            
+            
+            
             <li><code>-d</code>, <code>--dest_path</code> : destination file or directory inside the backup dir</li>
+            
+            
+            
             <li><code>-b</code>, <code>--is_big</code> : Indicate data are big (mail, video, image ...)</li>
+            
+            
+            
             <li><code>-m</code>, <code>--not_mandatory</code> : Indicate that if the file is missing, the backup can ignore it.</li>
+            
+            
+            
             <li><code>arg</code> : Deprecated arg</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Note: this helper could be used in backup hook or in backup script inside an</br>app package</br></br>Details: ynh_backup writes SRC and the relative DEST into a CSV file. And it</br>creates the parent destination directory</br></br>If DEST is ended by a slash it complete this path with the basename of SRC.</br></br>Example in the context of a wordpress app</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"</br># => This line will be added into CSV file</br># "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/nginx.conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf"</br></br>#Deprecated usages (maintained for retro-compatibility)</br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "${backup_dir}/conf/nginx.conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "/conf/"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"</br></br>Requires YunoHost version 2.4.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L45">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_restore" style="cursor:pointer">
@@ -382,20 +502,33 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     <div id="collapse-ynh_restore" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_restore</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L162">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_restore_file" style="cursor:pointer">
@@ -405,38 +538,73 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     <div id="collapse-ynh_restore_file" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_restore_file --origin_path=origin_path [--dest_path=dest_path] [--not_mandatory]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-o</code>, <code>--origin_path</code> : Path where was located the file or the directory before to be backuped or relative path to $YNH_CWD where it is located in the backup archive</li>
+            
+            
+            
             <li><code>-d</code>, <code>--dest_path</code> : Path where restore the file or the dir, if unspecified, the destination will be ORIGIN_PATH or if the ORIGIN_PATH doesn't exist in the archive, the destination will be searched into backup.csv</li>
+            
+            
+            
             <li><code>-m</code>, <code>--not_mandatory</code> : Indicate that if the file is missing, the restore process can ignore it.</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
     <p>
     <strong>Examples</strong>:<ul>
+        
+            
             <code class="helper-code">    ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"</code>
+            
             <br>
+        
+            
             You can also use relative paths:
+            
             <br>
+        
+            
             <code class="helper-code">    ynh_restore_file "conf/nginx.conf"</code>
+            
             <br>
+        
         </ul>
     </p>
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Use the registered path in backup_list by ynh_backup to restore the file at</br>the right place.</br></br>If DEST_PATH already exists and is lighter than 500 Mo, a backup will be made in</br>/home/yunohost.conf/backup/. Otherwise, the existing file is removed.</br></br>if apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf exists, restore it into</br>/etc/nginx/conf.d/$domain.d/$app.conf</br>if no, search for a match in the csv (eg: conf/nginx.conf) and restore it into</br>/etc/nginx/conf.d/$domain.d/$app.conf</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L221">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_store_file_checksum" style="cursor:pointer">
@@ -446,26 +614,44 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     <div id="collapse-ynh_store_file_checksum" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_store_file_checksum --file=file</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-f</code>, <code>--file</code> : The file on which the checksum will performed, then stored.</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         $app should be defined when calling this helper</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L297">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_backup_if_checksum_is_different" style="cursor:pointer">
@@ -477,29 +663,48 @@ modified config files.</h6>
     <div id="collapse-ynh_backup_if_checksum_is_different" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_backup_if_checksum_is_different --file=file</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-f</code>, <code>--file</code> : The file on which the checksum test will be perfomed.</li>
+            
+            
         </ul>
     </p>
+    
+    
     <p>
         <strong>Returns</strong>: the name of a backup file, or nothing
     </p>
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         $app should be defined when calling this helper</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L330">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_delete_file_checksum" style="cursor:pointer">
@@ -509,902 +714,244 @@ modified config files.</h6>
     <div id="collapse-ynh_delete_file_checksum" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_remove_file_checksum file</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-f</code>, <code>--file=</code> : The file for which the checksum will be deleted</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         $app should be defined when calling this helper</br></br>Requires YunoHost version 3.3.1 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L363">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_secure_remove" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_secure_remove</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove a file or a directory securely</h6>
+    <div data-toggle="collapse" href="#collapse-ynh_backup_before_upgrade" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_backup_before_upgrade</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Make a backup in case of failed upgrade</h6>
     </div>
-    <div id="collapse-ynh_secure_remove" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_backup_before_upgrade" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_secure_remove --file=path_to_remove</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-f</code>, <code>--file</code> : File or directory to remove</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L335">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<h3 style="text-transform: uppercase; font-weight: bold">getopts</h3>
-<h3 style="text-transform: uppercase; font-weight: bold">ip</h3>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_validate_ip" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_validate_ip</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Validate an IP address</h6>
-    </div>
-    <div id="collapse-ynh_validate_ip" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_validate_ip --family=family --ip_address=ip_address</code>
-    </p>
-    <p>
-        <strong>Returns</strong>: 0 for valid ip addresses, 1 otherwise
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_validate_ip 4 111.222.333.444</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L35">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_validate_ip4" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_validate_ip4</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Validate an IPv4 address</h6>
-    </div>
-    <div id="collapse-ynh_validate_ip4" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_validate_ip4 --ip_address=ip_address</code>
-    </p>
-    <p>
-        <strong>Returns</strong>: 0 for valid ipv4 addresses, 1 otherwise
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_validate_ip4 111.222.333.444</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L69">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_validate_ip6" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_validate_ip6</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Validate an IPv6 address</h6>
-    </div>
-    <div id="collapse-ynh_validate_ip6" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_validate_ip6 --ip_address=ip_address</code>
-    </p>
-    <p>
-        <strong>Returns</strong>: 0 for valid ipv6 addresses, 1 otherwise
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_validate_ip6 2000:dead:beef::1</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L90">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<h3 style="text-transform: uppercase; font-weight: bold">mysql</h3>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_mysql_connect_as" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_mysql_connect_as</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Open a connection as a user</h6>
-    </div>
-    <div id="collapse-ynh_mysql_connect_as" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_connect_as --user=user --password=password [--database=database]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--user</code> : the user name to connect as</li>
-            <li><code>-p</code>, <code>--password</code> : the user password</li>
-            <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_mysql_connect_as 'user' 'pass' <<< "UPDATE ...;" example: ynh_mysql_connect_as 'user' 'pass' < /path/to/file.sql</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L16">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_mysql_execute_as_root" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_mysql_execute_as_root</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Execute a command as root user</h6>
-    </div>
-    <div id="collapse-ynh_mysql_execute_as_root" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_execute_as_root --sql=sql [--database=database]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-s</code>, <code>--sql</code> : the SQL command to execute</li>
-            <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L37">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_mysql_execute_file_as_root" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_mysql_execute_file_as_root</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Execute a command from a file as root user</h6>
-    </div>
-    <div id="collapse-ynh_mysql_execute_file_as_root" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_execute_file_as_root --file=file [--database=database]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-f</code>, <code>--file</code> : the file containing SQL commands</li>
-            <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L58">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_mysql_dump_db" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_mysql_dump_db</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Dump a database</h6>
-    </div>
-    <div id="collapse-ynh_mysql_dump_db" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_dump_db --database=database</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-d</code>, <code>--database</code> : the database name to dump</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Returns</strong>: the mysqldump output
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_mysql_dump_db 'roundcube' > ./dump.sql</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L121">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_mysql_user_exists" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_mysql_user_exists</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Check if a mysql user exists</h6>
-    </div>
-    <div id="collapse-ynh_mysql_user_exists" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_user_exists --user=user</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--user</code> : the user for which to check existence</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L152">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_mysql_setup_db" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_mysql_setup_db</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Create a database, an user and its password. Then store the password in the app's config</h6>
-    </div>
-    <div id="collapse-ynh_mysql_setup_db" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_setup_db --db_user=user --db_name=name [--db_pwd=pwd]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--db_user</code> : Owner of the database</li>
-            <li><code>-n</code>, <code>--db_name</code> : Name of the database</li>
-            <li><code>-p</code>, <code>--db_pwd</code> : Password of the database. If not provided, a password will be generated</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        After executing this helper, the password of the created database will be available in $db_pwd</br>It will also be stored as "mysqlpwd" into the app settings.</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L192">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_mysql_remove_db" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_mysql_remove_db</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove a database if it exists, and the associated user</h6>
-    </div>
-    <div id="collapse-ynh_mysql_remove_db" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_remove_db --db_user=user --db_name=name</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--db_user</code> : Owner of the database</li>
-            <li><code>-n</code>, <code>--db_name</code> : Name of the database</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L217">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_sanitize_dbid" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_sanitize_dbid</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Sanitize a string intended to be the name of a database
-(More specifically : replace - and . by _)</h6>
-    </div>
-    <div id="collapse-ynh_sanitize_dbid" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_sanitize_dbid --db_name=name</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-n</code>, <code>--db_name</code> : name to correct/sanitize</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Returns</strong>: the corrected name
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">dbname=$(ynh_sanitize_dbid $app)</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L97">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<h3 style="text-transform: uppercase; font-weight: bold">network</h3>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_normalize_url_path" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_normalize_url_path</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Normalize the url path syntax</h6>
-    </div>
-    <div id="collapse-ynh_normalize_url_path" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_normalize_url_path --path_url=path_to_normalize</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-p</code>, <code>--path_url</code> : URL path to normalize before using it</li>
-        </ul>
-    </p>
-    <p>
-    <strong>Examples</strong>:<ul>
-            <code class="helper-code">    url_path=$(ynh_normalize_url_path $url_path)</code>
-            <br>
-            <code class="helper-code">    ynh_normalize_url_path example    # -> /example</code>
-            <br>
-            <code class="helper-code">    ynh_normalize_url_path /example   # -> /example</code>
-            <br>
-            <code class="helper-code">    ynh_normalize_url_path /example/  # -> /example</code>
-            <br>
-            <code class="helper-code">    ynh_normalize_url_path /          # -> /</code>
-            <br>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Handle the slash at the beginning of path and its absence at ending</br>Return a normalized url path</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L125">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_find_port" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_find_port</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Find a free port and return it</h6>
-    </div>
-    <div id="collapse-ynh_find_port" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_find_port --port=begin_port</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-p</code>, <code>--port</code> : port to start to search</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">port=$(ynh_find_port --port=8080)</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L11">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_webpath_available" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_webpath_available</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Check availability of a web path</h6>
-    </div>
-    <div id="collapse-ynh_webpath_available" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_webpath_available --domain=domain --path_url=path</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-d</code>, <code>--domain</code> : the domain/host of the url</li>
-            <li><code>-p</code>, <code>--path_url</code> : the web path to check the availability of</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_webpath_available --domain=some.domain.tld --path_url=/coffee</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L196">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_webpath_register" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_webpath_register</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Register/book a web path for an app</h6>
-    </div>
-    <div id="collapse-ynh_webpath_register" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_webpath_register --app=app --domain=domain --path_url=path</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-a</code>, <code>--app</code> : the app for which the domain should be registered</li>
-            <li><code>-d</code>, <code>--domain</code> : the domain/host of the web path</li>
-            <li><code>-p</code>, <code>--path_url</code> : the web path to be registered</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_webpath_register --app=wordpress --domain=some.domain.tld --path_url=/coffee</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L218">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<h3 style="text-transform: uppercase; font-weight: bold">nodejs</h3>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-export" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>export</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">N_PREFIX is the directory of n, it needs to be loaded as a environment variable.</h6>
-    </div>
-    <div id="collapse-export" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code"></code>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L6">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_use_nodejs" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_use_nodejs</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Load the version of node for an app, and set variables.</h6>
-    </div>
-    <div id="collapse-ynh_use_nodejs" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_use_nodejs</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        ynh_use_nodejs has to be used in any app scripts before using node for the first time.</br></br>2 variables are available:</br>  - $nodejs_path: The absolute path of node for the chosen version.</br>  - $nodejs_version: Just the version number of node for this app. Stored as 'nodejs_version' in settings.yml.</br>And 2 alias stored in variables:</br>  - $nodejs_use_version: An old variable, not used anymore. Keep here to not break old apps</br>    NB: $PATH will contain the path to node, it has to be propagated to any other shell which needs to use it.</br>    That's means it has to be added to any systemd script.</br></br>Requires YunoHost version 2.7.12 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L43">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_install_nodejs" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_install_nodejs</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Install a specific version of nodejs</h6>
-    </div>
-    <div id="collapse-ynh_install_nodejs" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_install_nodejs --nodejs_version=nodejs_version
-       If possible, prefer to use major version number (e.g. 8 instead of 8.10.0).
-       The crontab will handle the update of minor versions when needed.</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-n</code>, <code>--nodejs_version</code> : Version of node to install.</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        n (Node version management) uses the PATH variable to store the path of the version of node it is going to use.</br>That's how it changes the version</br></br>ynh_install_nodejs will install the version of node provided as argument by using n.</br></br>Requires YunoHost version 2.7.12 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L68">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_remove_nodejs" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_remove_nodejs</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove the version of node used by the app.</h6>
-    </div>
-    <div id="collapse-ynh_remove_nodejs" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_remove_nodejs</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        This helper will check if another app uses the same version of node,</br>if not, this version of node will be removed.</br>If no other app uses node, n will be also removed.</br></br>Requires YunoHost version 2.7.12 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L146">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<h3 style="text-transform: uppercase; font-weight: bold">package</h3>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_package_is_installed" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_package_is_installed</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Check either a package is installed or not</h6>
-    </div>
-    <div id="collapse-ynh_package_is_installed" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_package_is_installed --package=name</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-p</code>, <code>--package</code> : the package name to check</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_package_is_installed --package=yunohost && echo "ok"</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L51">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_package_version" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_package_version</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Get the version of an installed package</h6>
-    </div>
-    <div id="collapse-ynh_package_version" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_package_version --package=name</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-p</code>, <code>--package</code> : the package name to get version</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Returns</strong>: the version or an empty string
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">version=$(ynh_package_version --package=yunohost)</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L73">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_package_update" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_package_update</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Update package index files</h6>
-    </div>
-    <div id="collapse-ynh_package_update" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_package_update</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L105">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_package_install" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_package_install</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Install package(s)</h6>
-    </div>
-    <div id="collapse-ynh_package_install" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_package_install name [name [...]]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>name</code> : the package name to install</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L115">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_package_remove" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_package_remove</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove package(s)</h6>
-    </div>
-    <div id="collapse-ynh_package_remove" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_package_remove name [name [...]]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>name</code> : the package name to remove</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L126">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_package_autoremove" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_package_autoremove</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove package(s) and their uneeded dependencies</h6>
-    </div>
-    <div id="collapse-ynh_package_autoremove" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_package_autoremove name [name [...]]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>name</code> : the package name to remove</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L136">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_package_autopurge" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_package_autopurge</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Purge package(s) and their uneeded dependencies</h6>
-    </div>
-    <div id="collapse-ynh_package_autopurge" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_package_autopurge name [name [...]]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>name</code> : the package name to autoremove and purge</li>
-        </ul>
-    </p>
+        
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_backup_before_upgrade
+ynh_clean_setup () {
+    ynh_restore_upgradebackup
+}
+ynh_abort_if_errors</code>
+        
+    </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 2.7.2 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L146">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L385">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_install_app_dependencies" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_install_app_dependencies</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Define and install dependencies with a equivs control file
-This helper can/should only be called once per app</h6>
+    <div data-toggle="collapse" href="#collapse-ynh_restore_upgradebackup" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_restore_upgradebackup</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Restore a previous backup if the upgrade process failed</h6>
     </div>
-    <div id="collapse-ynh_install_app_dependencies" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_restore_upgradebackup" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_install_app_dependencies dep [dep [...]]
-  You can give a choice between some package with this syntax : "dep1|dep2"
-  Example : ynh_install_app_dependencies dep1 dep2 "dep3|dep4|dep5"
-  This mean in the dependence tree : dep1 & dep2 & (dep3 | dep4 | dep5)</code>
+        
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_backup_before_upgrade
+ynh_clean_setup () {
+    ynh_restore_upgradebackup
+}
+ynh_abort_if_errors</code>
+        
     </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.7.2 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L434">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">fail2ban</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_add_fail2ban_config" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_add_fail2ban_config</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Create a dedicated fail2ban config (jail and filter conf files)</h6>
+    </div>
+    <div id="collapse-ynh_add_fail2ban_config" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code helper-usage">1: ynh_add_fail2ban_config --logpath=log_file --failregex=filter [--max_retry=max_retry] [--ports=ports]
+2: ynh_add_fail2ban_config --use_template [--others_var="list of others variables to replace"]
+|                           for example : 'var_1 var_2 ...'</code>
+        
+    </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
-            <li><code>dep</code> : the package name to install in dependence</li>
+            
+            
+            <li><code>-l</code>, <code>--logpath=</code> : Log file to be checked by fail2ban</li>
+            
+            
+            
+            <li><code>-r</code>, <code>--failregex=</code> : Failregex to be looked for by fail2ban</li>
+            
+            
+            
+            <li><code>-m</code>, <code>--max_retry=</code> : Maximum number of retries allowed before banning IP address - default: 3</li>
+            
+            
+            
+            <li><code>-p</code>, <code>--ports=</code> : Ports blocked for a banned IP address - default: http,https</li>
+            
+            
+            
+            <li><code>-t</code>, <code>--use_template</code> : Use this helper in template mode</li>
+            
+            
+            
+            <li><code>-v</code>, <code>--others_var=</code> : List of others variables to replace separeted by a space</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
+        -----------------------------------------------------------------------------</br></br>This will use a template in ../conf/f2b_jail.conf and ../conf/f2b_filter.conf</br>  __APP__      by  $app</br></br>You can dynamically replace others variables by example :</br>  __VAR_1__    by $var_1</br>  __VAR_2__    by $var_2</br></br>Generally your template will look like that by example (for synapse):</br></br>f2b_jail.conf:</br>    [__APP__]</br>    enabled = true</br>    port = http,https</br>    filter = __APP__</br>    logpath = /var/log/__APP__/logfile.log</br>    maxretry = 3</br></br>f2b_filter.conf:</br>    [INCLUDES]</br>    before = common.conf</br>    [Definition]</br></br># Part of regex definition (just used to make more easy to make the global regex)</br>    __synapse_start_line = .? \- synapse\..+ \-</br></br># Regex definition.</br>   failregex = ^%(__synapse_start_line)s INFO \- POST\-(\d+)\- <HOST> \- \d+ \- Received request\: POST /_matrix/client/r0/login\??<SKIPLINES>%(__synapse_start_line)s INFO \- POST\-\1\- Got login request with identifier: \{u'type': u'm.id.user', u'user'\: u'(.+?)'\}, medium\: None, address: None, user\: u'\5'<SKIPLINES>%(__synapse_start_line)s WARNING \- \- (Attempted to login as @\5\:.+ but they do not exist|Failed password login for user @\5\:.+)$</br></br>ignoreregex =</br></br>-----------------------------------------------------------------------------</br></br>Note about the "failregex" option:</br>         regex to match the password failure messages in the logfile. The</br>         host must be matched by a group named "host". The tag "<HOST>" can</br>         be used for standard IP/hostname matching and is only an alias for</br>         (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)</br></br>You can find some more explainations about how to make a regex here :</br>         https://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Filters</br></br>Note that the logfile need to exist before to call this helper !!</br></br>To validate your regex you can test with this command:</br>fail2ban-regex /var/log/YOUR_LOG_FILE_PATH /etc/fail2ban/filter.d/YOUR_APP.conf</br></br>Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L206">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/fail2ban#L65">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_remove_app_dependencies" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_remove_app_dependencies</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Remove fake package and its dependencies</h6>
+    <div data-toggle="collapse" href="#collapse-ynh_remove_fail2ban_config" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_remove_fail2ban_config</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove the dedicated fail2ban config (jail and filter conf files)</h6>
     </div>
-    <div id="collapse-ynh_remove_app_dependencies" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_remove_fail2ban_config" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_remove_app_dependencies</code>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_remove_fail2ban_config</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Dependencies will removed only if no other package need them.</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L244">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/fail2ban#L147">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
-<h3 style="text-transform: uppercase; font-weight: bold">print</h3>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">getopts</h3>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">logging</h3>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_die" style="cursor:pointer">
@@ -1415,20 +962,33 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     <div id="collapse-ynh_die" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code"></code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 2.4.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L7">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_print_info" style="cursor:pointer">
@@ -1438,20 +998,33 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     <div id="collapse-ynh_print_info" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_print_info --message="Some message"</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L25">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_print_warn" style="cursor:pointer">
@@ -1461,26 +1034,44 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     <div id="collapse-ynh_print_warn" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_print_warn --message="Text to print"</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-m</code>, <code>--message</code> : The text to print</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L70">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_print_err" style="cursor:pointer">
@@ -1490,26 +1081,44 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     <div id="collapse-ynh_print_err" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_print_err --message="Text to print"</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-m</code>, <code>--message</code> : The text to print</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L87">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_exec_err" style="cursor:pointer">
@@ -1519,29 +1128,47 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     <div id="collapse-ynh_exec_err" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_err command to execute
 ynh_exec_err "command to execute | following command"
 In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
 If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>command</code> : command to execute</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L108">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_exec_warn" style="cursor:pointer">
@@ -1551,29 +1178,47 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <div id="collapse-ynh_exec_warn" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_warn command to execute
 ynh_exec_warn "command to execute | following command"
 In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
 If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>command</code> : command to execute</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L122">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_exec_warn_less" style="cursor:pointer">
@@ -1583,29 +1228,47 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <div id="collapse-ynh_exec_warn_less" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_warn_less command to execute
 ynh_exec_warn_less "command to execute | following command"
 In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
 If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>command</code> : command to execute</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L136">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_exec_quiet" style="cursor:pointer">
@@ -1615,29 +1278,47 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <div id="collapse-ynh_exec_quiet" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_quiet command to execute
 ynh_exec_quiet "command to execute | following command"
 In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
 If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>command</code> : command to execute</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L150">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_exec_fully_quiet" style="cursor:pointer">
@@ -1647,29 +1328,47 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <div id="collapse-ynh_exec_fully_quiet" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_fully_quiet command to execute
 ynh_exec_fully_quiet "command to execute | following command"
 In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
 If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>command</code> : command to execute</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L164">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_print_OFF" style="cursor:pointer">
@@ -1679,21 +1378,34 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <div id="collapse-ynh_print_OFF" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_print_OFF
 WARNING: You should be careful with this helper, and never forget to use ynh_print_ON as soon as possible to restore the logging.</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L174">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_print_ON" style="cursor:pointer">
@@ -1703,20 +1415,33 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_print_ON" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_print_ON</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L183">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-increment_progression=0" style="cursor:pointer">
@@ -1726,30 +1451,1188 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-increment_progression=0" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_script_progression --message=message [--weight=weight] [--time]</code>
+        
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_script_progression --message=message [--weight=weight] [--time]
+The execution time is given for the duration since the previous call. So the weight should be applied to this previous call.</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-m</code>, <code>--message=</code> : The text to print</li>
+            
+            
+            
             <li><code>-w</code>, <code>--weight=</code> : The weight for this progression. This value is 1 by default. Use a bigger value for a longer part of the script.</li>
+            
+            
+            
             <li><code>-t</code>, <code>--time=</code> : Print the execution time since the last call to this helper. Especially usefull to define weights.</li>
+            
+            
+            
             <li><code>-l</code>, <code>--last=</code> : Use for the last call of the helper, to fill te progression bar.</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L198">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L199">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
-<h3 style="text-transform: uppercase; font-weight: bold">psql</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_return" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_return</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Return data to the Yunohost core for later processing
+(to be used by special hooks like app config panel and core diagnosis)</h6>
+    </div>
+    <div id="collapse-ynh_return" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_return somedata</code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 3.6.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L294">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_debug" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_debug</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Debugger for app packagers</h6>
+    </div>
+    <div id="collapse-ynh_debug" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_debug [--message=message] [--trace=1/0]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-m</code>, <code>--message=</code> : The text to print</li>
+            
+            
+            
+            <li><code>-t</code>, <code>--trace=</code> : Turn on or off the trace of the script. Usefull to trace nonly a small part of a script.</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L305">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_debug_exec" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_debug_exec</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Execute a command and print the result as debug</h6>
+    </div>
+    <div id="collapse-ynh_debug_exec" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_debug_exec command to execute
+ynh_debug_exec "command to execute | following command"
+In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>command</code> : command to execute</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L360">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">logrotate</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_use_logrotate" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_use_logrotate</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Use logrotate to manage the logfile</h6>
+    </div>
+    <div id="collapse-ynh_use_logrotate" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_use_logrotate [--logfile=/log/file] [--nonappend] [--specific_user=user/group]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-l</code>, <code>--logfile</code> : absolute path of logfile</li>
+            
+            
+            
+            <li><code>-n</code>, <code>--nonappend</code> : (optional) Replace the config file instead of appending this new config.</li>
+            
+            
+            
+            <li><code>-u</code>, <code>--specific_user</code> : run logrotate as the specified user and group. If not specified logrotate is runned as root.</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        If no --logfile is provided, /var/log/${app} will be used as default.</br>logfile can be just a directory, or a full path to a logfile :</br>/parentdir/logdir</br>/parentdir/logdir/logfile.log</br></br>It's possible to use this helper multiple times, each config will be added to</br>the same logrotate config file.  Unless you use the option --non-append</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logrotate#L19">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_remove_logrotate" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_remove_logrotate</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove the app's logrotate config.</h6>
+    </div>
+    <div id="collapse-ynh_remove_logrotate" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_remove_logrotate</code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logrotate#L99">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">mysql</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_mysql_connect_as" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_mysql_connect_as</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Open a connection as a user</h6>
+    </div>
+    <div id="collapse-ynh_mysql_connect_as" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_connect_as --user=user --password=password [--database=database]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--user</code> : the user name to connect as</li>
+            
+            
+            
+            <li><code>-p</code>, <code>--password</code> : the user password</li>
+            
+            
+            
+            <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_mysql_connect_as 'user' 'pass' <<< "UPDATE ...;" example: ynh_mysql_connect_as 'user' 'pass' < /path/to/file.sql</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L16">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_mysql_execute_as_root" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_mysql_execute_as_root</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Execute a command as root user</h6>
+    </div>
+    <div id="collapse-ynh_mysql_execute_as_root" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_execute_as_root --sql=sql [--database=database]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-s</code>, <code>--sql</code> : the SQL command to execute</li>
+            
+            
+            
+            <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L37">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_mysql_execute_file_as_root" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_mysql_execute_file_as_root</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Execute a command from a file as root user</h6>
+    </div>
+    <div id="collapse-ynh_mysql_execute_file_as_root" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_execute_file_as_root --file=file [--database=database]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-f</code>, <code>--file</code> : the file containing SQL commands</li>
+            
+            
+            
+            <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L58">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_mysql_dump_db" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_mysql_dump_db</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Dump a database</h6>
+    </div>
+    <div id="collapse-ynh_mysql_dump_db" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_dump_db --database=database</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-d</code>, <code>--database</code> : the database name to dump</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: the mysqldump output
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_mysql_dump_db 'roundcube' > ./dump.sql</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L121">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_mysql_user_exists" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_mysql_user_exists</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Check if a mysql user exists</h6>
+    </div>
+    <div id="collapse-ynh_mysql_user_exists" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_user_exists --user=user</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--user</code> : the user for which to check existence</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L152">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_mysql_setup_db" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_mysql_setup_db</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Create a database, an user and its password. Then store the password in the app's config</h6>
+    </div>
+    <div id="collapse-ynh_mysql_setup_db" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_setup_db --db_user=user --db_name=name [--db_pwd=pwd]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--db_user</code> : Owner of the database</li>
+            
+            
+            
+            <li><code>-n</code>, <code>--db_name</code> : Name of the database</li>
+            
+            
+            
+            <li><code>-p</code>, <code>--db_pwd</code> : Password of the database. If not provided, a password will be generated</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        After executing this helper, the password of the created database will be available in $db_pwd</br>It will also be stored as "mysqlpwd" into the app settings.</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L192">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_mysql_remove_db" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_mysql_remove_db</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove a database if it exists, and the associated user</h6>
+    </div>
+    <div id="collapse-ynh_mysql_remove_db" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_mysql_remove_db --db_user=user --db_name=name</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--db_user</code> : Owner of the database</li>
+            
+            
+            
+            <li><code>-n</code>, <code>--db_name</code> : Name of the database</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/mysql#L217">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">network</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_find_port" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_find_port</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Find a free port and return it</h6>
+    </div>
+    <div id="collapse-ynh_find_port" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_find_port --port=begin_port</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-p</code>, <code>--port</code> : port to start to search</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">port=$(ynh_find_port --port=8080)</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L11">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_validate_ip" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_validate_ip</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Validate an IP address</h6>
+    </div>
+    <div id="collapse-ynh_validate_ip" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_validate_ip --family=family --ip_address=ip_address</code>
+        
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: 0 for valid ip addresses, 1 otherwise
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_validate_ip 4 111.222.333.444</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L35">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_validate_ip4" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_validate_ip4</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Validate an IPv4 address</h6>
+    </div>
+    <div id="collapse-ynh_validate_ip4" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_validate_ip4 --ip_address=ip_address</code>
+        
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: 0 for valid ipv4 addresses, 1 otherwise
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_validate_ip4 111.222.333.444</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L69">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_validate_ip6" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_validate_ip6</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Validate an IPv6 address</h6>
+    </div>
+    <div id="collapse-ynh_validate_ip6" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_validate_ip6 --ip_address=ip_address</code>
+        
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: 0 for valid ipv6 addresses, 1 otherwise
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_validate_ip6 2000:dead:beef::1</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/network#L90">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">nginx</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_add_nginx_config" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_add_nginx_config</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Create a dedicated nginx config</h6>
+    </div>
+    <div id="collapse-ynh_add_nginx_config" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_add_nginx_config "list of others variables to replace"</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>list</code> : (Optional) list of others variables to replace separated by spaces. For example : 'path_2 port_2 ...'</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        This will use a template in ../conf/nginx.conf</br>  __PATH__      by  $path_url</br>  __DOMAIN__    by  $domain</br>  __PORT__      by  $port</br>  __NAME__      by  $app</br>  __FINALPATH__ by  $final_path</br></br>And dynamic variables (from the last example) :</br>  __PATH_2__    by $path_2</br>  __PORT_2__    by $port_2</br></br>Requires YunoHost version 2.7.2 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nginx#L21">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_remove_nginx_config" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_remove_nginx_config</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove the dedicated nginx config</h6>
+    </div>
+    <div id="collapse-ynh_remove_nginx_config" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_remove_nginx_config</code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.7.2 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nginx#L73">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">nodejs</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-export" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>export</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">N_PREFIX is the directory of n, it needs to be loaded as a environment variable.</h6>
+    </div>
+    <div id="collapse-export" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code"></code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L6">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_use_nodejs" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_use_nodejs</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Load the version of node for an app, and set variables.</h6>
+    </div>
+    <div id="collapse-ynh_use_nodejs" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_use_nodejs</code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        ynh_use_nodejs has to be used in any app scripts before using node for the first time.</br></br>2 variables are available:</br>  - $nodejs_path: The absolute path of node for the chosen version.</br>  - $nodejs_version: Just the version number of node for this app. Stored as 'nodejs_version' in settings.yml.</br>And 2 alias stored in variables:</br>  - $nodejs_use_version: An old variable, not used anymore. Keep here to not break old apps</br>    NB: $PATH will contain the path to node, it has to be propagated to any other shell which needs to use it.</br>    That's means it has to be added to any systemd script.</br></br>Requires YunoHost version 2.7.12 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L43">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_install_nodejs" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_install_nodejs</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Install a specific version of nodejs</h6>
+    </div>
+    <div id="collapse-ynh_install_nodejs" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_install_nodejs --nodejs_version=nodejs_version
+       If possible, prefer to use major version number (e.g. 8 instead of 8.10.0).
+       The crontab will handle the update of minor versions when needed.</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-n</code>, <code>--nodejs_version</code> : Version of node to install.</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        n (Node version management) uses the PATH variable to store the path of the version of node it is going to use.</br>That's how it changes the version</br></br>ynh_install_nodejs will install the version of node provided as argument by using n.</br></br>Requires YunoHost version 2.7.12 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L68">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_remove_nodejs" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_remove_nodejs</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove the version of node used by the app.</h6>
+    </div>
+    <div id="collapse-ynh_remove_nodejs" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_remove_nodejs</code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        This helper will check if another app uses the same version of node,</br>if not, this version of node will be removed.</br>If no other app uses node, n will be also removed.</br></br>Requires YunoHost version 2.7.12 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L146">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">php</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_add_fpm_config" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_add_fpm_config</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Create a dedicated php-fpm config</h6>
+    </div>
+    <div id="collapse-ynh_add_fpm_config" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_add_fpm_config [--phpversion=7.X]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-v</code>, <code>--phpversion</code> : Version of php to use.</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.7.2 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/php#L9">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_remove_fpm_config" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_remove_fpm_config</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove the dedicated php-fpm config</h6>
+    </div>
+    <div id="collapse-ynh_remove_fpm_config" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_remove_fpm_config</code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.7.2 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/php#L56">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">postgresql</h3>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_connect_as" style="cursor:pointer">
@@ -1759,31 +2642,56 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_psql_connect_as" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_connect_as --user=user --password=password [--database=database]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-u</code>, <code>--user</code> : the user name to connect as</li>
+            
+            
+            
             <li><code>-p</code>, <code>--password</code> : the user password</li>
+            
+            
+            
             <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
     <p>
         <strong>Example</strong>: <code class="helper-code">ynh_psql_connect_as 'user' 'pass' <<< "UPDATE ...;" example: ynh_psql_connect_as 'user' 'pass' < /path/to/file.sql</code>
     </p>
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L16">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_execute_as_root" style="cursor:pointer">
@@ -1793,27 +2701,48 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_psql_execute_as_root" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_execute_as_root --sql=sql [--database=database]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-s</code>, <code>--sql</code> : the SQL command to execute</li>
+            
+            
+            
             <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L37">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_execute_file_as_root" style="cursor:pointer">
@@ -1823,27 +2752,48 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_psql_execute_file_as_root" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_execute_file_as_root --file=file [--database=database]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-f</code>, <code>--file</code> : the file containing SQL commands</li>
+            
+            
+            
             <li><code>-d</code>, <code>--database</code> : the database to connect to</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L58">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_dump_db" style="cursor:pointer">
@@ -1853,32 +2803,52 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_psql_dump_db" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_dump_db --database=database</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-d</code>, <code>--database</code> : the database name to dump</li>
+            
+            
         </ul>
     </p>
+    
+    
     <p>
         <strong>Returns</strong>: the psqldump output
     </p>
+    
+    
     <p>
         <strong>Example</strong>: <code class="helper-code">ynh_psql_dump_db 'roundcube' > ./dump.sql</code>
     </p>
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L124">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_user_exists" style="cursor:pointer">
@@ -1888,20 +2858,37 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_psql_user_exists" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_user_exists --user=user</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-u</code>, <code>--user</code> : the user for which to check existence</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L154">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_database_exists" style="cursor:pointer">
@@ -1911,20 +2898,37 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_psql_database_exists" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_database_exists --database=database</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-d</code>, <code>--database</code> : the database for which to check existence</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L173">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_setup_db" style="cursor:pointer">
@@ -1934,28 +2938,52 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_psql_setup_db" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_setup_db --db_user=user --db_name=name [--db_pwd=pwd]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-u</code>, <code>--db_user</code> : Owner of the database</li>
+            
+            
+            
             <li><code>-n</code>, <code>--db_name</code> : Name of the database</li>
+            
+            
+            
             <li><code>-p</code>, <code>--db_pwd</code> : Password of the database. If not given, a password will be generated</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         After executing this helper, the password of the created database will be available in $db_pwd</br>It will also be stored as "psqlpwd" into the app settings.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L209">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_remove_db" style="cursor:pointer">
@@ -1965,21 +2993,41 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <div id="collapse-ynh_psql_remove_db" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_remove_db --db_user=user --db_name=name</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-u</code>, <code>--db_user</code> : Owner of the database</li>
+            
+            
+            
             <li><code>-n</code>, <code>--db_name</code> : Name of the database</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L236">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_psql_test_if_first_run" style="cursor:pointer">
@@ -1990,15 +3038,31 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_psql_test_if_first_run" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_psql_test_if_first_run</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L264">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
+
 <h3 style="text-transform: uppercase; font-weight: bold">setting</h3>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_app_setting_get" style="cursor:pointer">
@@ -2008,27 +3072,48 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_app_setting_get" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_app_setting_get --app=app --key=key</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-a</code>, <code>--app</code> : the application id</li>
+            
+            
+            
             <li><code>-k</code>, <code>--key</code> : the setting to get</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 2.2.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L10">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_app_setting_set" style="cursor:pointer">
@@ -2038,28 +3123,52 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_app_setting_set" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_app_setting_set --app=app --key=key --value=value</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-a</code>, <code>--app</code> : the application id</li>
+            
+            
+            
             <li><code>-k</code>, <code>--key</code> : the setting name to set</li>
+            
+            
+            
             <li><code>-v</code>, <code>--value</code> : the setting value to set</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 2.2.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L30">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_app_setting_delete" style="cursor:pointer">
@@ -2069,28 +3178,332 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_app_setting_delete" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_app_setting_delete --app=app --key=key</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-a</code>, <code>--app</code> : the application id</li>
+            
+            
+            
             <li><code>-k</code>, <code>--key</code> : the setting to delete</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 2.2.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L50">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_add_skipped_uris" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_add_skipped_uris</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Add skipped_uris urls into the config</h6>
+    </div>
+    <div id="collapse-ynh_add_skipped_uris" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_add_skipped_uris [--appid=app] --url=url1,url2 [--regex]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-a</code>, <code>--appid</code> : the application id</li>
+            
+            
+            
+            <li><code>-u</code>, <code>--url</code> : the urls to add to the sso for this app</li>
+            
+            
+            
+            <li><code>-r</code>, <code>--regex</code> : Use the key 'skipped_regex' instead of 'skipped_uris'</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        An URL set with 'skipped_uris' key will be totally ignored by the SSO,</br>which means that the access will be public and the logged-in user information will not be passed to the app.</br></br>Requires YunoHost version 3.6.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L73">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_add_unprotected_uris" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_add_unprotected_uris</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Add unprotected_uris urls into the config</h6>
+    </div>
+    <div id="collapse-ynh_add_unprotected_uris" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_add_unprotected_uris [--appid=app] --url=url1,url2 [--regex]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-a</code>, <code>--appid</code> : the application id</li>
+            
+            
+            
+            <li><code>-u</code>, <code>--url</code> : the urls to add to the sso for this app</li>
+            
+            
+            
+            <li><code>-r</code>, <code>--regex</code> : Use the key 'unprotected_regex' instead of 'unprotected_uris'</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        An URL set with unprotected_uris key will be accessible publicly, but if an user is logged in,</br>his information will be accessible (through HTTP headers) to the app.</br></br>Requires YunoHost version 3.6.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L104">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_add_protected_uris" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_add_protected_uris</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Add protected_uris urls into the config</h6>
+    </div>
+    <div id="collapse-ynh_add_protected_uris" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_add_protected_uris [--appid=app] --url=url1,url2 [--regex]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-a</code>, <code>--appid</code> : the application id</li>
+            
+            
+            
+            <li><code>-u</code>, <code>--url</code> : the urls to add to the sso for this app</li>
+            
+            
+            
+            <li><code>-r</code>, <code>--regex</code> : Use the key 'protected_regex' instead of 'protected_uris'</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        An URL set with protected_uris will be blocked by the SSO and accessible only to authenticated and authorized users.</br></br>Requires YunoHost version 3.6.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L134">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_webpath_available" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_webpath_available</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Check availability of a web path</h6>
+    </div>
+    <div id="collapse-ynh_webpath_available" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_webpath_available --domain=domain --path_url=path</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-d</code>, <code>--domain</code> : the domain/host of the url</li>
+            
+            
+            
+            <li><code>-p</code>, <code>--path_url</code> : the web path to check the availability of</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_webpath_available --domain=some.domain.tld --path_url=/coffee</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L196">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_webpath_register" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_webpath_register</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Register/book a web path for an app</h6>
+    </div>
+    <div id="collapse-ynh_webpath_register" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_webpath_register --app=app --domain=domain --path_url=path</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-a</code>, <code>--app</code> : the app for which the domain should be registered</li>
+            
+            
+            
+            <li><code>-d</code>, <code>--domain</code> : the domain/host of the web path</li>
+            
+            
+            
+            <li><code>-p</code>, <code>--path_url</code> : the web path to be registered</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_webpath_register --app=wordpress --domain=some.domain.tld --path_url=/coffee</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L218">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
 <h3 style="text-transform: uppercase; font-weight: bold">string</h3>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_string_random" style="cursor:pointer">
@@ -2100,29 +3513,48 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_string_random" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_string_random [--length=string_length]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-l</code>, <code>--length</code> : the string length to generate (default: 24)</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
     <p>
         <strong>Example</strong>: <code class="helper-code">pwd=$(ynh_string_random --length=8)</code>
     </p>
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         Requires YunoHost version 2.2.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L11">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_replace_string" style="cursor:pointer">
@@ -2132,28 +3564,52 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_replace_string" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_replace_string --match_string=match_string --replace_string=replace_string --target_file=target_file</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-m</code>, <code>--match_string</code> : String to be searched and replaced in the file</li>
+            
+            
+            
             <li><code>-r</code>, <code>--replace_string</code> : String that will replace matches</li>
+            
+            
+            
             <li><code>-f</code>, <code>--target_file</code> : File in which the string will be replaced.</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         As this helper is based on sed command, regular expressions and</br>references to sub-expressions can be used</br>(see sed manual page for more information)</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L37">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_replace_special_string" style="cursor:pointer">
@@ -2163,78 +3619,289 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_replace_special_string" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_replace_special_string --match_string=match_string --replace_string=replace_string --target_file=target_file</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-m</code>, <code>--match_string</code> : String to be searched and replaced in the file</li>
+            
+            
+            
             <li><code>-r</code>, <code>--replace_string</code> : String that will replace matches</li>
+            
+            
+            
             <li><code>-t</code>, <code>--target_file</code> : File in which the string will be replaced.</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
         This helper will use ynh_replace_string, but as you can use special</br>characters, you can't use some regular expressions and sub-expressions.</br></br>Requires YunoHost version 2.7.7 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L66">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
-<h3 style="text-transform: uppercase; font-weight: bold">system</h3>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_abort_if_errors" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_abort_if_errors</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Exits if an error occurs during the execution of the script.</h6>
+    <div data-toggle="collapse" href="#collapse-ynh_sanitize_dbid" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_sanitize_dbid</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Sanitize a string intended to be the name of a database
+(More specifically : replace - and . by _)</h6>
     </div>
-    <div id="collapse-ynh_abort_if_errors" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_sanitize_dbid" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_abort_if_errors</code>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_sanitize_dbid --db_name=name</code>
+        
     </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-n</code>, <code>--db_name</code> : name to correct/sanitize</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: the corrected name
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">dbname=$(ynh_sanitize_dbid $app)</code>
+    </p>
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        This configure the rest of the script execution such that, if an error occurs</br>or if an empty variable is used, the execution of the script stops</br>immediately and a call to `ynh_clean_setup` is triggered if it has been</br>defined by your script.</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L85">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L97">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_get_debian_release" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_get_debian_release</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Fetch the Debian release codename</h6>
+    <div data-toggle="collapse" href="#collapse-ynh_normalize_url_path" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_normalize_url_path</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Normalize the url path syntax</h6>
     </div>
-    <div id="collapse-ynh_get_debian_release" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_normalize_url_path" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_get_debian_release</code>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_normalize_url_path --path_url=path_to_normalize</code>
+        
     </p>
+    
     <p>
-        <strong>Returns</strong>: The Debian release codename (i.e. jessie, stretch, ...)
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-p</code>, <code>--path_url</code> : URL path to normalize before using it</li>
+            
+            
+        </ul>
     </p>
+    
+    
+    
+    
+    <p>
+    <strong>Examples</strong>:<ul>
+        
+            
+            <code class="helper-code">    url_path=$(ynh_normalize_url_path $url_path)</code>
+            
+            <br>
+        
+            
+            <code class="helper-code">    ynh_normalize_url_path example    # -> /example</code>
+            
+            <br>
+        
+            
+            <code class="helper-code">    ynh_normalize_url_path /example   # -> /example</code>
+            
+            <br>
+        
+            
+            <code class="helper-code">    ynh_normalize_url_path /example/  # -> /example</code>
+            
+            <br>
+        
+            
+            <code class="helper-code">    ynh_normalize_url_path /          # -> /</code>
+            
+            <br>
+        
+        </ul>
+    </p>
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 2.7.12 or higher.</br></br>
+        Handle the slash at the beginning of path and its absence at ending</br>Return a normalized url path</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
+    
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L305">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/string#L125">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">systemd</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_add_systemd_config" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_add_systemd_config</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Create a dedicated systemd config</h6>
+    </div>
+    <div id="collapse-ynh_add_systemd_config" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_add_systemd_config [--service=service] [--template=template]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-s</code>, <code>--service</code> : Service name (optionnal, $app by default)</li>
+            
+            
+            
+            <li><code>-t</code>, <code>--template</code> : Name of template file (optionnal, this is 'systemd' by default, meaning ./conf/systemd.service will be used as template)</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        This will use the template ../conf/<templatename>.service</br>to generate a systemd config, by replacing the following keywords</br>with global variables that should be defined before calling</br>this helper :</br></br>__APP__       by  $app</br>  __FINALPATH__ by  $final_path</br></br>Requires YunoHost version 2.7.2 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L18">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_remove_systemd_config" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_remove_systemd_config</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove the dedicated systemd config</h6>
+    </div>
+    <div id="collapse-ynh_remove_systemd_config" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_remove_systemd_config [--service=service]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-s</code>, <code>--service</code> : Service name (optionnal, $app by default)</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.7.2 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L54">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_systemd_action" style="cursor:pointer">
@@ -2244,29 +3911,61 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_systemd_action" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_systemd_action [-n service_name] [-a action] [ [-l "line to match"] [-p log_path] [-t timeout] [-e length] ]
                              If not defined it don't wait until the service is completely started.
                              WARNING: When using --line_match, you should always add `ynh_clean_check_starting` into your
                                `ynh_clean_setup` at the beginning of the script. Otherwise, tail will not stop in case of failure
                                of the script. The script will then hang forever.</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-n</code>, <code>--service_name=</code> : Name of the service to start. Default : $app</li>
+            
+            
+            
             <li><code>-a</code>, <code>--action=</code> : Action to perform with systemctl. Default: start</li>
+            
+            
+            
             <li><code>-l</code>, <code>--line_match=</code> : Line to match - The line to find in the log to attest the service have finished to boot.</li>
+            
+            
+            
             <li><code>-p</code>, <code>--log_path=</code> : Log file - Path to the log file. Default : /var/log/$app/$app.log</li>
+            
+            
+            
             <li><code>-t</code>, <code>--timeout=</code> : Timeout - The maximum time to wait before ending the watching. Default : 300 seconds.</li>
+            
+            
+            
             <li><code>-e</code>, <code>--length=</code> : Length of the error log : Default : 20</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L85">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_clean_check_starting" style="cursor:pointer">
@@ -2277,14 +3976,737 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_clean_check_starting" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_clean_check_starting</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L171">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">user</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_user_exists" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_user_exists</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Check if a YunoHost user exists</h6>
+    </div>
+    <div id="collapse-ynh_user_exists" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_user_exists --username=username</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--username</code> : the username to check</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_user_exists 'toto' || exit 1</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L11">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_user_get_info" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_user_get_info</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Retrieve a YunoHost user information</h6>
+    </div>
+    <div id="collapse-ynh_user_get_info" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_user_get_info --username=username --key=key</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--username</code> : the username to retrieve info from</li>
+            
+            
+            
+            <li><code>-k</code>, <code>--key</code> : the key to retrieve</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: string - the key's value
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">mail=$(ynh_user_get_info 'toto' 'mail')</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L32">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_user_list" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_user_list</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Get the list of YunoHost users</h6>
+    </div>
+    <div id="collapse-ynh_user_list" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_user_list</code>
+        
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: string - one username per line
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">for u in $(ynh_user_list); do ...</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.4.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L52">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_system_user_exists" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_system_user_exists</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Check if a user exists on the system</h6>
+    </div>
+    <div id="collapse-ynh_system_user_exists" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_system_user_exists --username=username</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--username</code> : the username to check</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L63">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_system_group_exists" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_system_group_exists</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Check if a group exists on the system</h6>
+    </div>
+    <div id="collapse-ynh_system_group_exists" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_system_group_exists --group=group</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-g</code>, <code>--group</code> : the group to check</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L78">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_system_user_create" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_system_user_create</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Create a system user</h6>
+    </div>
+    <div id="collapse-ynh_system_user_create" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_system_user_create --username=user_name [--home_dir=home_dir] [--use_shell]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--username</code> : Name of the system user that will be create</li>
+            
+            
+            
+            <li><code>-h</code>, <code>--home_dir</code> : Path of the home dir for the user. Usually the final path of the app. If this argument is omitted, the user will be created without home</li>
+            
+            
+            
+            <li><code>-s</code>, <code>--use_shell</code> : Create a user using the default login shell if present. If this argument is omitted, the user will be created with /usr/sbin/nologin shell</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    <p>
+    <strong>Examples</strong>:<ul>
+        
+            
+            Create a nextcloud user with no home directory and /usr/sbin/nologin login shell (hence no login capability)
+            
+            <br>
+        
+            
+            <code class="helper-code">  ynh_system_user_create --username=nextcloud</code>
+            
+            <br>
+        
+            
+            Create a discourse user using /var/www/discourse as home directory and the default login shell
+            
+            <br>
+        
+            
+            <code class="helper-code">  ynh_system_user_create --username=discourse --home_dir=/var/www/discourse --use_shell</code>
+            
+            <br>
+        
+        </ul>
+    </p>
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L103">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_system_user_delete" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_system_user_delete</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Delete a system user</h6>
+    </div>
+    <div id="collapse-ynh_system_user_delete" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_system_user_delete --username=user_name</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-u</code>, <code>--username</code> : Name of the system user that will be create</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L137">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+
+<h3 style="text-transform: uppercase; font-weight: bold">utils</h3>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_abort_if_errors" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_abort_if_errors</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Exits if an error occurs during the execution of the script.</h6>
+    </div>
+    <div id="collapse-ynh_abort_if_errors" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_abort_if_errors</code>
+        
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        This configure the rest of the script execution such that, if an error occurs</br>or if an empty variable is used, the execution of the script stops</br>immediately and a call to `ynh_clean_setup` is triggered if it has been</br>defined by your script.</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L85">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_setup_source" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_setup_source</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Download, check integrity, uncompress and patch the source from app.src</h6>
+    </div>
+    <div id="collapse-ynh_setup_source" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_setup_source --dest_dir=dest_dir [--source_id=source_id]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-d</code>, <code>--dest_dir</code> : Directory where to setup sources</li>
+            
+            
+            
+            <li><code>-s</code>, <code>--source_id</code> : Name of the app, if the package contains more than one app</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        The file conf/app.src need to contains:</br></br>SOURCE_URL=Address to download the app archive</br>SOURCE_SUM=Control sum</br># (Optional) Program to check the integrity (sha256sum, md5sum...)</br># default: sha256</br>SOURCE_SUM_PRG=sha256</br># (Optional) Archive format</br># default: tar.gz</br>SOURCE_FORMAT=tar.gz</br># (Optional) Put false if sources are directly in the archive root</br># default: true</br># Instead of true, SOURCE_IN_SUBDIR could be the number of sub directories</br># to remove.</br>SOURCE_IN_SUBDIR=false</br># (Optionnal) Name of the local archive (offline setup support)</br># default: ${src_id}.${src_format}</br>SOURCE_FILENAME=example.tar.gz</br># (Optional) If it set as false don't extract the source.</br># (Useful to get a debian package or a python wheel.)</br># default: true</br>SOURCE_EXTRACT=(true|false)</br></br>Details:</br>This helper downloads sources from SOURCE_URL if there is no local source</br>archive in /opt/yunohost-apps-src/APP_ID/SOURCE_FILENAME</br></br>Next, it checks the integrity with "SOURCE_SUM_PRG -c --status" command.</br></br>If it's ok, the source archive will be uncompressed in $dest_dir. If the</br>SOURCE_IN_SUBDIR is true, the first level directory of the archive will be</br>removed.</br>If SOURCE_IN_SUBDIR is a numeric value, 2 for example, the 2 first level</br>directories will be removed</br></br>Finally, patches named sources/patches/${src_id}-*.patch and extra files in</br>sources/extra_files/$src_id will be applied to dest_dir</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L136">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_local_curl" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_local_curl</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Curl abstraction to help with POST requests to local pages (such as installation forms)</h6>
+    </div>
+    <div id="collapse-ynh_local_curl" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_local_curl "page_uri" "key1=value1" "key2=value2" ...</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>page_uri</code> : Path (relative to $path_url) of the page where POST data will be sent</li>
+            
+            
+            
+            <li><code>key1=value1</code> : (Optionnal) POST key and corresponding value</li>
+            
+            
+            
+            <li><code>key2=value2</code> : (Optionnal) Another POST key and corresponding value</li>
+            
+            
+            
+            <li><code>...</code> : (Optionnal) More POST keys and values</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_local_curl "/install.php?installButton" "foo=$var1" "bar=$var2"</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        $domain and $path_url should be defined externally (and correspond to the domain.tld and the /path (of the app?))</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L250">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_render_template" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_render_template</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Render templates with Jinja2</h6>
+    </div>
+    <div id="collapse-ynh_render_template" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_render_template some_template output_path</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>some_template</code> : Template file to be rendered</li>
+            
+            
+            
+            <li><code>output_path</code> : The path where the output will be redirected to</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Attention : Variables should be exported before calling this helper to be</br>accessible inside templates.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L289">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_get_debian_release" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_get_debian_release</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Fetch the Debian release codename</h6>
+    </div>
+    <div id="collapse-ynh_get_debian_release" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_get_debian_release</code>
+        
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: The Debian release codename (i.e. jessie, stretch, ...)
+    </p>
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.7.12 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L305">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_secure_remove" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_secure_remove</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove a file or a directory securely</h6>
+    </div>
+    <div id="collapse-ynh_secure_remove" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_secure_remove --file=path_to_remove</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-f</code>, <code>--file</code> : File or directory to remove</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.6.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L335">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_get_plain_key" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_get_plain_key</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Extract a key from a plain command output</h6>
+    </div>
+    <div id="collapse-ynh_get_plain_key" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_get_plain_key key [subkey [subsubkey ...]]</code>
+        
+    </p>
+    
+    
+    <p>
+        <strong>Returns</strong>: string - the key's value
+    </p>
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">yunohost user info tata --output-as plain | ynh_get_plain_key mail</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 2.2.4 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L378">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_read_manifest" style="cursor:pointer">
@@ -2294,27 +4716,48 @@ Please always call this script in install and restore scripts</h6>
     <div id="collapse-ynh_read_manifest" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_read_manifest manifest key</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-m</code>, <code>--manifest=</code> : Path of the manifest to read</li>
+            
+            
+            
             <li><code>-k</code>, <code>--key=</code> : Name of the key to find</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L406">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_app_upstream_version" style="cursor:pointer">
@@ -2328,26 +4771,44 @@ In the last example it return 4.3-2</h6>
     <div id="collapse-ynh_app_upstream_version" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_app_upstream_version [-m manifest]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-m</code>, <code>--manifest=</code> : Path of the manifest to read</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L433">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_app_package_version" style="cursor:pointer">
@@ -2361,26 +4822,44 @@ In the last example it return 3</h6>
     <div id="collapse-ynh_app_package_version" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_app_package_version [-m manifest]</code>
+        
     </p>
+    
     <p>
         <strong>Arguments</strong>:
         <ul>
+            
+            
             <li><code>-m</code>, <code>--manifest=</code> : Path of the manifest to read</li>
+            
+            
         </ul>
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.?.? or higher.</br></br>
+        Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L456">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
+
+
+
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_check_app_version_changed" style="cursor:pointer">
@@ -2392,422 +4871,37 @@ In the last example it return 3</h6>
     <div id="collapse-ynh_check_app_version_changed" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
+        
         <strong>Usage</strong>: <code class="helper-code">ynh_check_app_version_changed</code>
+        
     </p>
+    
+    
+    
+    
+    
     <p>
         <strong>Details</strong>:
         <p>
-        It stops the current script without error if the package is up-to-date</br></br>This helper should be used to avoid an upgrade of an app, or the upstream part</br>of it, when it's not needed</br></br>To force an upgrade, even if the package is up to date,</br>you have to set the variable YNH_FORCE_UPGRADE before.</br>example: sudo YNH_FORCE_UPGRADE=1 yunohost app upgrade MyApp</br></br>Requires YunoHost version 3.?.? or higher.</br></br>
+        It stops the current script without error if the package is up-to-date</br></br>This helper should be used to avoid an upgrade of an app, or the upstream part</br>of it, when it's not needed</br></br>To force an upgrade, even if the package is up to date,</br>you have to set the variable YNH_FORCE_UPGRADE before.</br>example: sudo YNH_FORCE_UPGRADE=1 yunohost app upgrade MyApp</br></br>Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
+    
     <p>
         <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L485">Dude, show me the code !</a>
     </p>
+
   </div>
   </div>
+
 </div>
-<h3 style="text-transform: uppercase; font-weight: bold">user</h3>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_user_exists" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_user_exists</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Check if a YunoHost user exists</h6>
-    </div>
-    <div id="collapse-ynh_user_exists" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_user_exists --username=username</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--username</code> : the username to check</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_user_exists 'toto' || exit 1</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L11">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_user_get_info" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_user_get_info</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Retrieve a YunoHost user information</h6>
-    </div>
-    <div id="collapse-ynh_user_get_info" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_user_get_info --username=username --key=key</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--username</code> : the username to retrieve info from</li>
-            <li><code>-k</code>, <code>--key</code> : the key to retrieve</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Returns</strong>: string - the key's value
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">mail=$(ynh_user_get_info 'toto' 'mail')</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L32">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_user_list" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_user_list</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Get the list of YunoHost users</h6>
-    </div>
-    <div id="collapse-ynh_user_list" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_user_list</code>
-    </p>
-    <p>
-        <strong>Returns</strong>: string - one username per line
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">for u in $(ynh_user_list); do ...</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.4.0 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L52">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_system_user_exists" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_system_user_exists</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Check if a user exists on the system</h6>
-    </div>
-    <div id="collapse-ynh_system_user_exists" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_system_user_exists --username=username</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--username</code> : the username to check</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L63">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_system_group_exists" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_system_group_exists</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Check if a group exists on the system</h6>
-    </div>
-    <div id="collapse-ynh_system_group_exists" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_system_group_exists --group=group</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-g</code>, <code>--group</code> : the group to check</li>
-        </ul>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L78">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_system_user_create" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_system_user_create</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Create a system user</h6>
-    </div>
-    <div id="collapse-ynh_system_user_create" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_system_user_create --username=user_name [--home_dir=home_dir] [--use_shell]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--username</code> : Name of the system user that will be create</li>
-            <li><code>-h</code>, <code>--home_dir</code> : Path of the home dir for the user. Usually the final path of the app. If this argument is omitted, the user will be created without home</li>
-            <li><code>-s</code>, <code>--use_shell</code> : Create a user using the default login shell if present. If this argument is omitted, the user will be created with /usr/sbin/nologin shell</li>
-        </ul>
-    </p>
-    <p>
-    <strong>Examples</strong>:<ul>
-            Create a nextcloud user with no home directory and /usr/sbin/nologin login shell (hence no login capability)
-            <br>
-            <code class="helper-code">  ynh_system_user_create --username=nextcloud</code>
-            <br>
-            Create a discourse user using /var/www/discourse as home directory and the default login shell
-            <br>
-            <code class="helper-code">  ynh_system_user_create --username=discourse --home_dir=/var/www/discourse --use_shell</code>
-            <br>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L103">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_system_user_delete" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_system_user_delete</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Delete a system user</h6>
-    </div>
-    <div id="collapse-ynh_system_user_delete" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_system_user_delete --username=user_name</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-u</code>, <code>--username</code> : Name of the system user that will be create</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/user#L137">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<h3 style="text-transform: uppercase; font-weight: bold">utils</h3>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_get_plain_key" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_get_plain_key</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Extract a key from a plain command output</h6>
-    </div>
-    <div id="collapse-ynh_get_plain_key" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_get_plain_key key [subkey [subsubkey ...]]</code>
-    </p>
-    <p>
-        <strong>Returns</strong>: string - the key's value
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">yunohost user info tata --output-as plain | ynh_get_plain_key mail</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.2.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L378">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_restore_upgradebackup" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_restore_upgradebackup</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Restore a previous backup if the upgrade process failed</h6>
-    </div>
-    <div id="collapse-ynh_restore_upgradebackup" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_backup_before_upgrade
-ynh_clean_setup () {
-    ynh_restore_upgradebackup
-}
-ynh_abort_if_errors</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.7.2 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L434">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_backup_before_upgrade" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_backup_before_upgrade</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Make a backup in case of failed upgrade</h6>
-    </div>
-    <div id="collapse-ynh_backup_before_upgrade" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_backup_before_upgrade
-ynh_clean_setup () {
-    ynh_restore_upgradebackup
-}
-ynh_abort_if_errors</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Requires YunoHost version 2.7.2 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L385">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_setup_source" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_setup_source</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Download, check integrity, uncompress and patch the source from app.src</h6>
-    </div>
-    <div id="collapse-ynh_setup_source" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_setup_source --dest_dir=dest_dir [--source_id=source_id]</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>-d</code>, <code>--dest_dir</code> : Directory where to setup sources</li>
-            <li><code>-s</code>, <code>--source_id</code> : Name of the app, if the package contains more than one app</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        The file conf/app.src need to contains:</br></br>SOURCE_URL=Address to download the app archive</br>SOURCE_SUM=Control sum</br># (Optional) Program to check the integrity (sha256sum, md5sum...)</br># default: sha256</br>SOURCE_SUM_PRG=sha256</br># (Optional) Archive format</br># default: tar.gz</br>SOURCE_FORMAT=tar.gz</br># (Optional) Put false if sources are directly in the archive root</br># default: true</br># Instead of true, SOURCE_IN_SUBDIR could be the number of sub directories</br># to remove.</br>SOURCE_IN_SUBDIR=false</br># (Optionnal) Name of the local archive (offline setup support)</br># default: ${src_id}.${src_format}</br>SOURCE_FILENAME=example.tar.gz</br># (Optional) If it set as false don't extract the source.</br># (Useful to get a debian package or a python wheel.)</br># default: true</br>SOURCE_EXTRACT=(true|false)</br></br>Details:</br>This helper downloads sources from SOURCE_URL if there is no local source</br>archive in /opt/yunohost-apps-src/APP_ID/SOURCE_FILENAME</br></br>Next, it checks the integrity with "SOURCE_SUM_PRG -c --status" command.</br></br>If it's ok, the source archive will be uncompressed in $dest_dir. If the</br>SOURCE_IN_SUBDIR is true, the first level directory of the archive will be</br>removed.</br>If SOURCE_IN_SUBDIR is a numeric value, 2 for example, the 2 first level</br>directories will be removed</br></br>Finally, patches named sources/patches/${src_id}-*.patch and extra files in</br>sources/extra_files/$src_id will be applied to dest_dir</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L136">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_local_curl" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_local_curl</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Curl abstraction to help with POST requests to local pages (such as installation forms)</h6>
-    </div>
-    <div id="collapse-ynh_local_curl" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_local_curl "page_uri" "key1=value1" "key2=value2" ...</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>page_uri</code> : Path (relative to $path_url) of the page where POST data will be sent</li>
-            <li><code>key1=value1</code> : (Optionnal) POST key and corresponding value</li>
-            <li><code>key2=value2</code> : (Optionnal) Another POST key and corresponding value</li>
-            <li><code>...</code> : (Optionnal) More POST keys and values</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_local_curl "/install.php?installButton" "foo=$var1" "bar=$var2"</code>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        $domain and $path_url should be defined externally (and correspond to the domain.tld and the /path (of the app?))</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L250">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-ynh_render_template" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>ynh_render_template</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Render templates with Jinja2</h6>
-    </div>
-    <div id="collapse-ynh_render_template" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        <strong>Usage</strong>: <code class="helper-code">ynh_render_template some_template output_path</code>
-    </p>
-    <p>
-        <strong>Arguments</strong>:
-        <ul>
-            <li><code>some_template</code> : Template file to be rendered</li>
-            <li><code>output_path</code> : The path where the output will be redirected to</li>
-        </ul>
-    </p>
-    <p>
-        <strong>Details</strong>:
-        <p>
-        Attention : Variables should be exported before calling this helper to be</br>accessible inside templates.</br></br>
-        </p>
-    </p>
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L289">Dude, show me the code !</a>
-    </p>
-  </div>
-  </div>
-</div>
-<p>Generated by <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/doc/generate_helper_doc.py">this script</a> on 2019-04-08 18:53:09.449596 (version 3.5.1.1)</p>
+
+
+
+
+<p>Generated by <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/doc/generate_helper_doc.py">this script</a> on 07/11/2019 (Yunohost version 3.6.4.3)</p>
+
+
 <style>
 /*=================================================
  Helper card
@@ -2833,4 +4927,5 @@ ynh_abort_if_errors</code>
     white-space: normal;
 }
 /*===============================================*/
+
 </style>

From 7bd5c0781aa50b7673a0a598f4997584d0f1d4f8 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Thu, 11 Jul 2019 22:50:20 +0200
Subject: [PATCH 040/360] Misc fixes for helper page

---
 packaging_apps_helpers.md | 246 +++++++++++++++-----------------------
 1 file changed, 97 insertions(+), 149 deletions(-)

diff --git a/packaging_apps_helpers.md b/packaging_apps_helpers.md
index 1f97ff1b..71cb32f7 100644
--- a/packaging_apps_helpers.md
+++ b/packaging_apps_helpers.md
@@ -342,17 +342,13 @@
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_install_app_dependencies" style="cursor:pointer">
         <h5 class="helper-card-title"><tt>ynh_install_app_dependencies</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Define and install dependencies with a equivs control file
-This helper can/should only be called once per app</h6>
+        <h6 class="helper-card-subtitle text-muted">Define and install dependencies with a equivs control file</h6>
     </div>
     <div id="collapse-ynh_install_app_dependencies" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_install_app_dependencies dep [dep [...]]
-  You can give a choice between some package with this syntax : "dep1|dep2"
-  Example : ynh_install_app_dependencies dep1 dep2 "dep3|dep4|dep5"
-  This mean in the dependence tree : dep1 & dep2 & (dep3 | dep4 | dep5)</code>
+        <strong>Usage</strong>: <code class="helper-code">ynh_install_app_dependencies dep [dep [...]]</code>
         
     </p>
     
@@ -361,7 +357,7 @@ This helper can/should only be called once per app</h6>
         <ul>
             
             
-            <li><code>dep</code> : the package name to install in dependence</li>
+            <li><code>dep</code> : the package name to install in dependence. Writing "dep3|dep4|dep5" can be used to specify alternatives. For example : dep1 dep2 "dep3|dep4|dep5" will require to install dep1 and dep 2 and (dep3 or dep4 or dep5).</li>
             
             
         </ul>
@@ -374,7 +370,7 @@ This helper can/should only be called once per app</h6>
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 2.6.4 or higher.</br></br>
+        This helper can/should only be called once per app</br></br>example : ynh_install_app_dependencies dep1 dep2 "dep3|dep4|dep5"</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
     
@@ -478,12 +474,12 @@ This helper can/should only be called once per app</h6>
     <p>
         <strong>Details</strong>:
         <p>
-        Note: this helper could be used in backup hook or in backup script inside an</br>app package</br></br>Details: ynh_backup writes SRC and the relative DEST into a CSV file. And it</br>creates the parent destination directory</br></br>If DEST is ended by a slash it complete this path with the basename of SRC.</br></br>Example in the context of a wordpress app</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"</br># => This line will be added into CSV file</br># "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/nginx.conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf"</br></br>#Deprecated usages (maintained for retro-compatibility)</br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "${backup_dir}/conf/nginx.conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "/conf/"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"</br></br>Requires YunoHost version 2.4.0 or higher.</br></br>
+        This helper can be used both in a system backup hook, and in an app backup script</br></br>Details: ynh_backup writes SRC and the relative DEST into a CSV file. And it</br>creates the parent destination directory</br></br>If DEST is ended by a slash it complete this path with the basename of SRC.</br></br>Example in the context of a wordpress app</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"</br># => This line will be added into CSV file</br># "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/nginx.conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf"</br></br>#Deprecated usages (maintained for retro-compatibility)</br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "${backup_dir}/conf/nginx.conf"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"</br></br>ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "/conf/"</br># => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"</br></br>Requires YunoHost version 2.4.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L45">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L44">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -497,7 +493,7 @@ This helper can/should only be called once per app</h6>
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_restore" style="cursor:pointer">
         <h5 class="helper-card-title"><tt>ynh_restore</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Restore all files linked to the restore hook or to the restore app script</h6>
+        <h6 class="helper-card-subtitle text-muted">Restore all files that were previously backuped in a core backup script or app backup script</h6>
     </div>
     <div id="collapse-ynh_restore" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
@@ -519,7 +515,7 @@ This helper can/should only be called once per app</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L162">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L161">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -595,7 +591,7 @@ This helper can/should only be called once per app</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L221">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L220">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -642,7 +638,7 @@ This helper can/should only be called once per app</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L297">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L296">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -656,9 +652,7 @@ This helper can/should only be called once per app</h6>
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_backup_if_checksum_is_different" style="cursor:pointer">
         <h5 class="helper-card-title"><tt>ynh_backup_if_checksum_is_different</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Verify the checksum and backup the file if it's different
-This helper is primarily meant to allow to easily backup personalised/manually
-modified config files.</h6>
+        <h6 class="helper-card-subtitle text-muted">Verify the checksum and backup the file if it's different</h6>
     </div>
     <div id="collapse-ynh_backup_if_checksum_is_different" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
@@ -690,12 +684,12 @@ modified config files.</h6>
     <p>
         <strong>Details</strong>:
         <p>
-        $app should be defined when calling this helper</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
+        This helper is primarily meant to allow to easily backup personalised/manually</br>modified config files.</br></br>Requires YunoHost version 2.6.4 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L330">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L328">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -742,7 +736,7 @@ modified config files.</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L363">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L361">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -782,7 +776,7 @@ ynh_abort_if_errors</code>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L385">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L383">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -822,7 +816,7 @@ ynh_abort_if_errors</code>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L434">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/backup#L432">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -956,14 +950,13 @@ ynh_abort_if_errors</code>
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_die" style="cursor:pointer">
         <h5 class="helper-card-title"><tt>ynh_die</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Print a message to stderr and exit
-usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
+        <h6 class="helper-card-subtitle text-muted">Print a message to stderr and exit</h6>
     </div>
     <div id="collapse-ynh_die" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code"></code>
+        <strong>Usage</strong>: <code class="helper-code">ynh_die --message=MSG [--ret_code=RETCODE]</code>
         
     </p>
     
@@ -979,7 +972,7 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L7">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L8">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1015,7 +1008,7 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L25">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L26">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1062,7 +1055,7 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L70">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L71">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1109,7 +1102,7 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L87">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L88">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1129,10 +1122,8 @@ usage: ynh_die --message=MSG [--ret_code=RETCODE]</h6>
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_err command to execute
-ynh_exec_err "command to execute | following command"
-In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
-If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_err your_command
+ynh_exec_err "your_command | other_command"</code>
         
     </p>
     
@@ -1154,12 +1145,12 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.2.0 or higher.</br></br>
+        When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.</br></br>If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</br></br>Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L108">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L111">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1179,10 +1170,8 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_warn command to execute
-ynh_exec_warn "command to execute | following command"
-In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
-If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_warn your_command
+ynh_exec_warn "your_command | other_command"</code>
         
     </p>
     
@@ -1204,12 +1193,12 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.2.0 or higher.</br></br>
+        When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.</br></br>If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</br></br>Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L122">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L127">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1229,10 +1218,8 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_warn_less command to execute
-ynh_exec_warn_less "command to execute | following command"
-In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
-If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_warn_less your_command
+ynh_exec_warn_less "your_command | other_command"</code>
         
     </p>
     
@@ -1254,12 +1241,12 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.2.0 or higher.</br></br>
+        When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.</br></br>If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</br></br>Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L136">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L143">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1279,10 +1266,8 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_quiet command to execute
-ynh_exec_quiet "command to execute | following command"
-In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
-If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_quiet your_command
+ynh_exec_quiet "your_command | other_command"</code>
         
     </p>
     
@@ -1304,12 +1289,12 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.2.0 or higher.</br></br>
+        When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.</br></br>If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</br></br>Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L150">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L159">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1329,10 +1314,8 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_fully_quiet command to execute
-ynh_exec_fully_quiet "command to execute | following command"
-In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.
-If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</code>
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_exec_fully_quiet your_command
+ynh_exec_fully_quiet "your_command | other_command"</code>
         
     </p>
     
@@ -1354,12 +1337,12 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.2.0 or higher.</br></br>
+        When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.</br></br>If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</br></br>Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L164">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L175">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1379,8 +1362,7 @@ If the command to execute uses double quotes, they have to be escaped or they wi
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_print_OFF
-WARNING: You should be careful with this helper, and never forget to use ynh_print_ON as soon as possible to restore the logging.</code>
+        <strong>Usage</strong>: <code class="helper-code">ynh_print_OFF</code>
         
     </p>
     
@@ -1391,12 +1373,12 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.2.0 or higher.</br></br>
+        WARNING: You should be careful with this helper, and never forget to use ynh_print_ON as soon as possible to restore the logging.</br></br>Requires YunoHost version 3.2.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L174">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L186">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1432,7 +1414,7 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L183">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L195">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1444,11 +1426,11 @@ WARNING: You should be careful with this helper, and never forget to use ynh_pri
 
 <div class="helper-card">
   <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-increment_progression=0" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>increment_progression=0</tt></h5>
+    <div data-toggle="collapse" href="#collapse-ynh_script_progression" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_script_progression</tt></h5>
         <h6 class="helper-card-subtitle text-muted">Print a message as INFO and show progression during an app script</h6>
     </div>
-    <div id="collapse-increment_progression=0" class="collapse" role="tabpanel">
+    <div id="collapse-ynh_script_progression" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
@@ -1492,7 +1474,7 @@ The execution time is given for the duration since the previous call. So the wei
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L199">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L224">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1529,7 +1511,7 @@ The execution time is given for the duration since the previous call. So the wei
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L294">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L308">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1580,7 +1562,7 @@ The execution time is given for the duration since the previous call. So the wei
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L305">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L319">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1600,9 +1582,8 @@ The execution time is given for the duration since the previous call. So the wei
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_debug_exec command to execute
-ynh_debug_exec "command to execute | following command"
-In case of use of pipes, you have to use double quotes. Otherwise, this helper will be executed with the first command, then be sent to the next pipe.</code>
+        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_debug_exec your_command
+ynh_debug_exec "your_command | other_command"</code>
         
     </p>
     
@@ -1624,12 +1605,12 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.5.0 or higher.</br></br>
+        When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.</br></br>If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.</br></br>Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L360">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L377">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2390,35 +2371,6 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
 
 
 
-<div class="helper-card">
-  <div class="helper-card-body">
-    <div data-toggle="collapse" href="#collapse-export" style="cursor:pointer">
-        <h5 class="helper-card-title"><tt>export</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">N_PREFIX is the directory of n, it needs to be loaded as a environment variable.</h6>
-    </div>
-    <div id="collapse-export" class="collapse" role="tabpanel">
-    <hr style="margin-top:25px; margin-bottom:25px;">
-    <p>
-        
-        <strong>Usage</strong>: <code class="helper-code"></code>
-        
-    </p>
-    
-    
-    
-    
-    
-    <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L6">Dude, show me the code !</a>
-    </p>
-
-  </div>
-  </div>
-
-</div>
-
-
-
 <div class="helper-card">
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_use_nodejs" style="cursor:pointer">
@@ -2465,9 +2417,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_install_nodejs --nodejs_version=nodejs_version
-       If possible, prefer to use major version number (e.g. 8 instead of 8.10.0).
-       The crontab will handle the update of minor versions when needed.</code>
+        <strong>Usage</strong>: <code class="helper-code">ynh_install_nodejs --nodejs_version=nodejs_version</code>
         
     </p>
     
@@ -2476,7 +2426,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
         <ul>
             
             
-            <li><code>-n</code>, <code>--nodejs_version</code> : Version of node to install.</li>
+            <li><code>-n</code>, <code>--nodejs_version</code> : Version of node to install. When possible, your should prefer to use major version number (e.g. 8 instead of 8.10.0). The crontab will then handle the update of minor versions when needed.</li>
             
             
         </ul>
@@ -2494,7 +2444,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L68">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L66">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2530,7 +2480,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L146">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/nodejs#L144">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2668,10 +2618,22 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     
     
     
-    <p>
-        <strong>Example</strong>: <code class="helper-code">ynh_psql_connect_as 'user' 'pass' <<< "UPDATE ...;" example: ynh_psql_connect_as 'user' 'pass' < /path/to/file.sql</code>
-    </p>
     
+    <p>
+    <strong>Examples</strong>:<ul>
+        
+            
+            <code class="helper-code">   ynh_psql_connect_as 'user' 'pass' <<< "UPDATE ...;"</code>
+            
+            <br>
+        
+            
+            <code class="helper-code">   ynh_psql_connect_as 'user' 'pass' < /path/to/file.sql</code>
+            
+            <br>
+        
+        </ul>
+    </p>
     
     
     <p>
@@ -2682,7 +2644,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L16">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L17">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2733,7 +2695,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L37">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L38">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2784,7 +2746,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L58">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L59">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2839,7 +2801,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L124">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L125">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2879,7 +2841,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L154">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L155">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2919,7 +2881,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L173">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L174">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -2974,7 +2936,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L209">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L210">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -3018,7 +2980,7 @@ In case of use of pipes, you have to use double quotes. Otherwise, this helper w
     
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L236">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L237">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -3048,7 +3010,7 @@ Please always call this script in install and restore scripts</h6>
     
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L264">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/postgresql#L265">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -3912,11 +3874,7 @@ Please always call this script in install and restore scripts</h6>
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_systemd_action [-n service_name] [-a action] [ [-l "line to match"] [-p log_path] [-t timeout] [-e length] ]
-                             If not defined it don't wait until the service is completely started.
-                             WARNING: When using --line_match, you should always add `ynh_clean_check_starting` into your
-                               `ynh_clean_setup` at the beginning of the script. Otherwise, tail will not stop in case of failure
-                               of the script. The script will then hang forever.</code>
+        <strong>Usage</strong>: <code class="helper-code">ynh_systemd_action [-n service_name] [-a action] [ [-l "line to match"] [-p log_path] [-t timeout] [-e length] ]</code>
         
     </p>
     
@@ -3933,7 +3891,7 @@ Please always call this script in install and restore scripts</h6>
             
             
             
-            <li><code>-l</code>, <code>--line_match=</code> : Line to match - The line to find in the log to attest the service have finished to boot.</li>
+            <li><code>-l</code>, <code>--line_match=</code> : Line to match - The line to find in the log to attest the service have finished to boot. If not defined it don't wait until the service is completely started. WARNING: When using --line_match, you should always add `ynh_clean_check_starting` into your `ynh_clean_setup` at the beginning of the script. Otherwise, tail will not stop in case of failure of the script. The script will then hang forever.</li>
             
             
             
@@ -3956,7 +3914,7 @@ Please always call this script in install and restore scripts</h6>
     
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L85">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L81">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -3986,7 +3944,7 @@ Please always call this script in install and restore scripts</h6>
     
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L171">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/systemd#L167">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4762,11 +4720,7 @@ Please always call this script in install and restore scripts</h6>
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_app_upstream_version" style="cursor:pointer">
         <h5 class="helper-card-title"><tt>ynh_app_upstream_version</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Read the upstream version from the manifest
-The version number in the manifest is defined by <upstreamversion>~ynh<packageversion>
-For example : 4.3-2~ynh3
-This include the number before ~ynh
-In the last example it return 4.3-2</h6>
+        <h6 class="helper-card-subtitle text-muted">Read the upstream version from the manifest</h6>
     </div>
     <div id="collapse-ynh_app_upstream_version" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
@@ -4794,12 +4748,12 @@ In the last example it return 4.3-2</h6>
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.5.0 or higher.</br></br>
+        The version number in the manifest is defined by <upstreamversion>~ynh<packageversion></br>For example : 4.3-2~ynh3</br>This include the number before ~ynh</br>In the last example it return 4.3-2</br></br>Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L433">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L434">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4813,11 +4767,7 @@ In the last example it return 4.3-2</h6>
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_app_package_version" style="cursor:pointer">
         <h5 class="helper-card-title"><tt>ynh_app_package_version</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Read package version from the manifest
-The version number in the manifest is defined by <upstreamversion>~ynh<packageversion>
-For example : 4.3-2~ynh3
-This include the number after ~ynh
-In the last example it return 3</h6>
+        <h6 class="helper-card-subtitle text-muted">Read package version from the manifest</h6>
     </div>
     <div id="collapse-ynh_app_package_version" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
@@ -4845,12 +4795,12 @@ In the last example it return 3</h6>
     <p>
         <strong>Details</strong>:
         <p>
-        Requires YunoHost version 3.5.0 or higher.</br></br>
+        The version number in the manifest is defined by <upstreamversion>~ynh<packageversion></br>For example : 4.3-2~ynh3</br>This include the number after ~ynh</br>In the last example it return 3</br></br>Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L456">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L458">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4864,9 +4814,7 @@ In the last example it return 3</h6>
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_check_app_version_changed" style="cursor:pointer">
         <h5 class="helper-card-title"><tt>ynh_check_app_version_changed</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Checks the app version to upgrade with the existing app version and returns:
-- UPGRADE_APP if the upstream app version has changed
-- UPGRADE_PACKAGE if only the YunoHost package has changed</h6>
+        <h6 class="helper-card-subtitle text-muted">Checks the app version to upgrade with the existing app version and returns:</h6>
     </div>
     <div id="collapse-ynh_check_app_version_changed" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
@@ -4883,12 +4831,12 @@ In the last example it return 3</h6>
     <p>
         <strong>Details</strong>:
         <p>
-        It stops the current script without error if the package is up-to-date</br></br>This helper should be used to avoid an upgrade of an app, or the upstream part</br>of it, when it's not needed</br></br>To force an upgrade, even if the package is up to date,</br>you have to set the variable YNH_FORCE_UPGRADE before.</br>example: sudo YNH_FORCE_UPGRADE=1 yunohost app upgrade MyApp</br></br>Requires YunoHost version 3.5.0 or higher.</br></br>
+        - UPGRADE_APP if the upstream app version has changed</br>- UPGRADE_PACKAGE if only the YunoHost package has changed</br></br>It stops the current script without error if the package is up-to-date</br></br>This helper should be used to avoid an upgrade of an app, or the upstream part</br>of it, when it's not needed</br></br>To force an upgrade, even if the package is up to date,</br>you have to set the variable YNH_FORCE_UPGRADE before.</br>example: sudo YNH_FORCE_UPGRADE=1 yunohost app upgrade MyApp</br></br>Requires YunoHost version 3.5.0 or higher.</br></br>
         </p>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L485">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L488">Dude, show me the code !</a>
     </p>
 
   </div>

From 73b8ffbc9beb8d45eec1a38c653e714564545aa5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anton=20Str=C3=B6mkvist?= <anton@stromkvist.com>
Date: Fri, 12 Jul 2019 00:11:29 +0200
Subject: [PATCH 041/360] Translate line to English

---
 packaging_apps_scripts.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_scripts.md b/packaging_apps_scripts.md
index 0aac6741..e6cbf4c0 100644
--- a/packaging_apps_scripts.md
+++ b/packaging_apps_scripts.md
@@ -54,7 +54,7 @@ The name of the question is `domain` so in the script we can access it with YNH_
 domain=$YNH_APP_ARG_DOMAIN
 ```
 
-### Variables spécifiques pour `change_url`
+### Variables specific to `change_url`
 #### YNH_APP_OLD_DOMAIN
 The old domain where the app was installed.
 #### YNH_APP_OLD_PATH

From c72e642218b7bb4865a9228d3b9d6d911a5ffed0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anton=20Str=C3=B6mkvist?= <anton@stromkvist.com>
Date: Fri, 12 Jul 2019 00:11:39 +0200
Subject: [PATCH 042/360] Make headers uniform

---
 packaging_apps_scripts.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_scripts.md b/packaging_apps_scripts.md
index e6cbf4c0..78592f57 100644
--- a/packaging_apps_scripts.md
+++ b/packaging_apps_scripts.md
@@ -30,7 +30,7 @@ It contains the instance's number. Warning, it's not the number of running insta
 
 Example: 3
 
-### Specific variables to use in `install`
+### Variables specific to `install`
 #### YNH_APP_ARG_XXXXXXX
 An environment variable is available for each question asked in the installation.
 

From 029bb4cde7389f7f31a0f1054fd2082339998643 Mon Sep 17 00:00:00 2001
From: lapineige <lapineige@users.noreply.github.com>
Date: Sat, 13 Jul 2019 14:55:04 +0200
Subject: [PATCH 043/360] Add funkwhale

---
 use_case_non-profit_organisations.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md
index 9e4f8ac2..270eddd6 100644
--- a/use_case_non-profit_organisations.md
+++ b/use_case_non-profit_organisations.md
@@ -177,6 +177,7 @@ But for production, localy stored backup are not enough, so you will need to imp
 #### Federated Audio Gallery
 
 * [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh)
+* [Funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh)
 
 #### Federated Video Gallery
 

From 67d19f34093e1c75d6d06de743479afaccd56c15 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 14 Jul 2019 10:47:24 +0000
Subject: [PATCH 044/360] Italian translation for backup

---
 backup_it.md | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 169 insertions(+)
 create mode 100644 backup_it.md

diff --git a/backup_it.md b/backup_it.md
new file mode 100644
index 00000000..6a157779
--- /dev/null
+++ b/backup_it.md
@@ -0,0 +1,169 @@
+# Eseguire il backup del vostro server e delle app
+
+Eseguire il backup del vostro server, delle app e dei dati è un compito importante nell'amministrazione di un server poiché vi protegge da eventi inaspettati ma sempre possibili (come server distrutto da un incendio, corruzione del database, perdita delle credenziali di accesso, compromissione del server e altro). La policy di backup che adotterete dipende dall'importanza dei dati che state gestendo: ad esempio non sarà tanto importante avere il backup di un server di prova mentre lo sarà per un server contenente dati importanti per un'associazione o una ditta e sarà altrettanto importante tenere questo backup *in un luogo fisico diverso dal server stesso*.
+
+## I backup di YunoHost
+
+YunoHost fornisce un sistema di backup che vi permette di fare il backup (e il suo ripristino) della configurazione e dei dati (come ad esempio le email) e delle app che lo supportano.
+
+Si possono gestire i backup sia da riga di comando (`yunohost backup --help`) sia dalla pagina web di amministrazione (nella sezione Backup) anche se alcune possibilità non sono disponibili in questo modo.
+
+Il metodo di default attuale crea degli archivi `.tar.gz` contenenti tutti i file del backup stesso. Nel futuro YunoHost ha in progetto di usare [Borg](https://www.borgbackup.org/) che è una soluzione più flessibile, efficiente e potente.
+
+## Creare i backup
+
+### Dalla pagina web di amministrazione
+
+Potete creare gli archivi di backup dalla pagina web di amministrazione andando in Backup > Archivi locali e cliccare su "Nuovo backup". Vi verrà chiesto di selezionare quale configurazione, dati e di quale app volete fare il backup.
+
+![picture of Yunohost's backup pannel](/images/backup.png)
+
+### Dalla riga di comando
+
+Potete fare un nuovo archivio di backup dalla riga di comando. Questi sono alcuni esempi di comandi e i relativi risultati:
+
+
+- Esecuzione di un backup completo (tutti i componenti del sistema e delle app):
+
+  ```bash
+  yunohost backup create
+  ```
+
+- Backup delle sole app
+
+  ```bash
+  yunohost backup create --apps
+  ```
+
+- Backup di sole due app (wordpress e shaarli)
+
+  ```bash
+  yunohost backup create --apps wordpress shaarli
+  ```
+
+- Backup solo delle email
+
+  ```bash
+  yunohost backup create --system data_mail
+  ```
+
+- Backup delle email e wordpress
+
+  ```bash
+  yunohost backup create --system data_mail --apps wordpress
+  ```
+
+Per maggiori informazioni e opzioni sulla creazione di backup leggete `yunohost backup create --help`. Potrete anche elencare le parti del sistema delle quali si può farne il backup con `yunohost hook list backup`.
+
+
+### Configurazioni specifiche per le app
+
+Alcune app come ad esempio Nextcloud possono contenere grandi quantità di dati. È possibile in questi casi eseguire il backup dell'app senza i dati degli utenti, modalità che viene indicata come "backing up only the core" (delle app).  
+Eseguendo un aggiornamento, delle app con grandi quantità di dati normalmente verrà eseguito un backup senza questi dati.
+
+Per disabilitare esplicitamente il backup di grandi quantità di dati, per le applicazioni che implementano questa possibilità, dovete impostare la variabile `BACKUP_CORE_ONLY` prima di eseguire il comando di backup: `sudo BACKUP_CORE_ONLY=1 yunohost backup create --apps nextcloud`. Fate attenzione però perché dovrete fare il backup di questi dati autonomamente: è possibile eseguire questi backup, di tipo incrementale o differenziale, opzione che però non è ancora provvista da YunoHost.
+
+
+## Download e upload dei backup
+
+Dopo aver creato gli archivi di backup è possibile elencarli e ispezionarli sia dalla pagina web di amministrazione relativa sia dalla riga di comando con i comandi `yunohost backup list` e `yunohost backup info <archivename>`. Di default i backup sono copiati nella directory `/home/yunohost.backup/archives/`.
+
+Attualmente il modo più semplice per scaricare gli archivi è usando il programma FileZilla (vedi [questa pagina](/filezilla)).
+
+Una soluzione alternativa è quella di installare Netxcloud o un'applicazione simile e configurarle per accedere ai file contenuti in `/home/yunohost.backup/archives/` da un browser.
+
+
+Un'altra soluzione è quella di usare `scp` (un programma che si basa su [`ssh`](/ssh)) per copiare i file fra due computer usando la riga di comando. In questo modo usando un computer con Linux potete copiare uno specifico backup con questo comando:
+
+```bash
+scp admin@your.domain.tld:/home/yunohost.backup/archives/<archivename>.tar.gz ./
+```
+
+Allo stesso modo potete copiare da un computer al vostro server con questo comando:
+
+```bash
+scp /path/to/your/<archivename>.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/
+```
+
+## Ripristinare i backup
+
+### Dalla pagina web di amministrazione
+
+Dovete andare in Backup > Archivi locali e selezionare il vostro archivio. È possibile selezionare ciò che volete ripristinare e poi cliccare su 'Ripristina'.
+
+
+![picture of Yunohost's restore pannel](/images/restore.png)
+
+### Dalla riga di comando
+
+Dalla riga di comando date il comando `yunohost backup restore <archivename>` (senza il `.tar.gz`) per ripristinare un archivio. Così come `yunohost backup create`, questo comando ripristinerà di default tutto il contenuto dell'archivio; se invece volete ripristinare solo alcuni file potete usare ad esempio il comando `yunohost backup restore --apps wordpress` per ripristinare esclusivamente wordpress.
+
+
+### Limiti
+
+Per ripristinare una app, il dominio sul quale era stata installata dovrà essere già stato configurato oppure dovrete avere già ripristinato la configurazione di sistema relativa. Inoltre non è possibile ripristinare una app che è già installata ... il che comporta che se volete ripristinare una versione passata della app dovrete prima disinstallarla.
+
+
+### Ripristino durante il postinstall
+
+È possibile ripristinare un archivio completo *invece* di eseguire il passaggio di postinstall. Questo è utile se volete reinstallare un sistema interamente da un backup preesistente. Per fare questo dovrete copiare l'archivio sul server nella directory `/home/yunohost.backup/archives` e poi, **invece di dare il comando** `yunohost tools postinstall` darete il comando:
+
+
+```bash
+yunohost backup restore <archivename>
+```
+
+Nota: se il vostro archivio non si trova in `/home/yunohost.backup/archives` potete specificare il path giusto con:
+
+
+```bash
+yunohost backup restore /path/to/<archivename>
+``` 
+
+## Ulteriori possibilità
+
+### Tenere i backup su un disco diverso
+
+Potete connettere e montare un disco esterno per tenerci gli archivi di backup (oltre a tutto il resto): per fare questo prima spostate gli archivi e poi aggiungete un link simbolico.
+
+
+```bash
+PATH_TO_DRIVE="/media/my_external_drive" # Come esempio, dipende da dove monterete il vostro disco
+mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives
+ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives
+```
+
+### Backup automatici
+
+È possibile aggiungere un semplice job di cron per creare i backup automaticamente. Ad esempio per fare il backup di wordpress su base settimanale create il file `/etc/cron.weekly/backup-wordpress` con queste righe:
+
+```bash
+#!/bin/bash
+yunohost backup create --apps wordpress
+```
+
+e poi rendetelo eseguibile:
+
+```bash
+chmod +x /etc/cron.weekly/backup-wordpress
+```
+
+Prestate attenzione a ciò di cui fate il backup e quando perché altrimenti è possibile esaurire lo spazio del vostro disco eseguendo, ad esempio, 30 Gb di backup ogni giorno.
+
+
+#### Backup del server su un server remoto
+
+Potete seguire questo tutorial sul forum per impostare Borg fra due server: <https://forum.yunohost.org/t/how-to-backup-your-yunohost-server-on-another-server/3153>
+
+Alternativamente, la app Archivist permette di impostare un sistema simile: <https://forum.yunohost.org/t/new-app-archivist/3747>
+
+#### Backup completo con `dd`
+
+Se state usando una board ARM un altro metodo per eseguire un backup completo è quello di creare un'immagine della card SD. Per fare questo innanzitutto spegnete la vostra board ARM, prendete la card SD e createne un'immagine completa con un comando come il seguente:
+
+
+```bash
+dd if=/dev/mmcblk0 of=./backup.img status=progress
+```
+
+(modificate `/dev/mmcblk0` con il device reale della vostra card)
\ No newline at end of file

From 8acbbb0a4c4bfe9add55e309ab284153b175b42a Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Sun, 14 Jul 2019 16:41:59 +0200
Subject: [PATCH 045/360] Typo

---
 use_case_non-profit_organisations.md | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md
index 270eddd6..146494b0 100644
--- a/use_case_non-profit_organisations.md
+++ b/use_case_non-profit_organisations.md
@@ -87,7 +87,7 @@ The first thing you will need to implement a YunoHost server is a domain name. T
 ### Mails
 
 From scratch, YunoHost provide mail system available using POP/IMAP/SMTP.
-Mails accounts will be managed using the web interface or the command line. Created accounts are stored in openldap.
+Mails accounts will be managed using the web interface or the command line. Created accounts are stored in OpenLDAP.
 
 Additional package can be installed to provide more functionality to the YunoHost mail system:
 * Webmail using [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh)
@@ -109,11 +109,11 @@ To provide personal contact system you will need to install:
 ### Shared files
 
 To provide shared files system: personal and shared drive, you can install [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh).
-Files will be available from a web interface or using a synchronization client
+Files will be available from a web interface or using a synchronization client.
 
 ### Instant communication
 
-Out of the box, YunoHost provide an XMPP server, for which you can install a web client: [Jappix](https://github.com/YunoHost-Apps/jappix_ynh)
+Out of the box, YunoHost provide an XMPP server, for which you can install a web client: [Jappix](https://github.com/YunoHost-Apps/jappix_ynh).
 
 You can also install a matrix server:
 * The server: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh)
@@ -147,25 +147,25 @@ With CiviCRM you can provide online membership and payment.
 
 #### Events Registrations
 
-With CiviCRM, you can provide an online diary to let members or public register for free or with a payment
+With CiviCRM, you can provide an online diary to let members or public register for free or with a payment.
 
 #### Newsletter/Mailing
 
-Best way to manage that is using CiviCRM and its mailing module
+Best way to manage that is using CiviCRM and its mailing module.
 
 ### Forum
 
-You have several choices, or having an integrated forum in Drupal or using a dedicated forum system like [Flarum](https://github.com/YunoHost-Apps/flarum_ynh)
+You have several choices, or having an integrated forum in Drupal or using a dedicated forum system like [Flarum](https://github.com/YunoHost-Apps/flarum_ynh).
 
 ### Backup
 
 YunoHost provide is own backup system. Before any package upgrade, YunoHost backup the current version of the package and automaticaly restore it if the upgrade fails.
-Yunohost backup are stored localy in `/home/yunohost.backup/archives`
+Yunohost backup are stored localy in `/home/yunohost.backup/archives`.
 
 But for production, localy stored backup are not enough, so you will need to implement aditional backup strategies:
 * Backup of the the Virtual Machine if provided by the hosting system.
 * [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) is an automatic backup system for your server. Your backups can be send to many other places, local or distant.
-* [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) allow to externalize backups
+* [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) allow to externalize backups.
 * [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), if you have two yunohost servers, provide a way to have a secondary server which you can used if your main server goes down. This secondary server will allow you to deploy a copy of your server to bring back your YunoHost during your break down.
 
 ### Go further

From f7bd723f32337f8eb9452b6a0d2f69f3d34e3b45 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Sun, 14 Jul 2019 16:49:33 +0200
Subject: [PATCH 046/360] French translation

---
 docs_fr.md                              |   2 +-
 use_case_non-profit_organisations_fr.md | 203 ++++++++++++++++++++++++
 2 files changed, 204 insertions(+), 1 deletion(-)
 create mode 100644 use_case_non-profit_organisations_fr.md

diff --git a/docs_fr.md b/docs_fr.md
index 6cfe292f..18864ed5 100644
--- a/docs_fr.md
+++ b/docs_fr.md
@@ -33,4 +33,4 @@ La documentation de YunoHost s’articule autour de trois sections :
    * [Support / Aide](/help_fr)
 
 * Exemple d'utilisation:
-   * [YunoHost pour les organisations à but non lucratif](/use_case_non-profit_organisations_en)
+   * [YunoHost pour les organisations à but non lucratif](/use_case_non-profit_organisations_fr)
diff --git a/use_case_non-profit_organisations_fr.md b/use_case_non-profit_organisations_fr.md
new file mode 100644
index 00000000..1b1ab8e3
--- /dev/null
+++ b/use_case_non-profit_organisations_fr.md
@@ -0,0 +1,203 @@
+# YunoHost for non-profit
+
+## Table of Contents
+* [Introduction](#introduction) 
+* [Qui ](#qui) 
+* [Quoi](#quoi) 
+* [Quand](#quand) 
+* [Où](#o-) 
+* [Pourquoi](#pourquoi) 
+* [Comment](#comment) 
+* [Conclusion](#conclusion) 
+
+## Introduction
+
+L'objet de ce document est de présenter une utilisation spécifique de [YunoHost](https://yunohost.org/) pour des organisations à but non lucratif.
+
+## Qui
+
+Organisations à but non lucratif, ONG ou tout type d'association.
+
+## Quoi
+
+Les organisations à but non lucratif doivent généralement fournir différents services à différents publics:
+
+* Conseil d'administration / Comité directeur / Bénévoles avec:
+  * [Mails](#mails)
+  * [Calendrier](#calendrier)
+  * [Contact](#contact)
+  * [Fichiers partagés / Drive](#fichiers-partag-s)
+  * [Communication instantanée](#communication-instantan-e)
+  * [Intranet / Base de connaissances](#intranet)
+  * [ERP / Comptabilité](#erp-comptabilit-)
+* Membres avec:
+  * [Site Web public avec accès privé et individuel](#site-web-public)
+  * [Adhésion](#adh-sion)
+  * [Inscriptions aux événements](#inscriptions-aux-v-nements)
+  * [Mailings](#newsletter-mailing)
+  * [Forum](#forum)
+* Public avec:
+  * [Site Web public](#site-web-public)
+  * [Newsletter](#newsletter-mailing)
+
+## Quand
+
+Lorsque l'organisation à but non lucratif êtes prêt à franchier le pas.
+
+## Où
+
+Le serveur YunoHost peut être hébergé à différents endroits:
+* Hébergement en propre sur un serveur, un ordinateur ou Raspberry derrière ASDL, SDSL ou Fibre
+* [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters)
+* Services d'hébergement commercial fournissant une machine virtuelle Debian
+
+## Pourquoi
+
+YunoHost peut répondre à tous les besoins d'une organisation à but non lucratif et lui permettre de conserver la maitrise de ses données.
+
+## Comment
+
+### YunoHost
+
+YunoHost est une distribution basée sur Debian GNU/Linux qui automatise l’installation d’un serveur Web personnel. Le but de YunoHost est de permettre aux utilisateurs d’héberger facilement leurs propres services Web en proposant une interface Web simple, pointer-cliquer, pour installer diverses applications Web.
+
+![](https://upload.wikimedia.org/wikipedia/commons/0/07/Yunohost_user_portal.png)
+
+YunoHost fournit immédiatement:
+* Un système d'application
+* Une interface web
+* Une interface de ligne de commande (CLI): Moulinette
+* Un serveur Web: Nginx
+* Un serveur DNS: Dnsmasq
+* Une base de données: MariaDB
+* Un système de sauvegarde
+* Un SSO: SSOwat
+* OpenLDAP
+* Email:
+  * SMTP: Postfix
+  * IMAP & POP3: Dovecot
+  * Un antispam: rspamd,rmilter
+* Serveur XMPP de messagerie instantanée: Metronome IM
+
+### Nom de domaine
+
+La première chose dont vous aurez besoin pour implémenter un serveur YunoHost est un nom de domaine. Le nom de domaine peut généralement être fourni avec votre service d'hébergement.
+
+### Mails
+
+De base, YunoHost fournit un système de messagerie disponible en utilisant POP / IMAP / SMTP.
+Les comptes de messagerie seront gérés à l'aide de l'interface Web ou de la ligne de commande. Les comptes créés sont stockés dans OpenLDAP.
+
+Des packages supplémentaires peuvent être installés pour fournir davantage de fonctionnalités au système de messagerie YunoHost:
+* un webmail en utilisant [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh)
+* ActiveSync utilisant [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh)
+* Groupe de distribution interne en utilisant  [Mailman](https://github.com/YunoHost-Apps/mailman_ynh)
+
+### Calendrier
+
+Pour fournir des calendriers personnels ou partagés, vous devrez installer:
+* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
+* [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
+
+### Contact
+
+Pour fournir un système de contact personnel, vous devrez installer:
+* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
+* [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
+
+### Fichiers partagés
+
+Pour fournir un système de fichiers partagés: dossiers personnels et dossiers partagés, vous pouvez installer [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh).
+Les fichiers seront disponibles à partir d'une interface Web ou à l'aide d'un client de synchronisation.
+
+### Communication instantanée
+
+De base, YunoHost fournit immédiatement un serveur XMPP pour lequel vous pouvez installer un client Web:  [Jappix](https://github.com/YunoHost-Apps/jappix_ynh)
+
+Vous pouvez également installer un serveur Matrix:
+* Le serveur: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh)
+* Un client web: [Riot](https://github.com/YunoHost-Apps/_ynh)
+
+### Intranet
+
+Pour une organisation à but non lucratif, un bon moyen de mettre en œuvre un intranet est de fournir un wiki permettant aux utilisateurs internes de lire, éditer et ajouter du contenu. Voici quelques paquets pour implémenter un wiki:
+* [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) using wiki syntax
+* [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) using markdown syntax
+
+### ERP / Comptabilité
+
+À un moment donné, une organisation à but non lucratif pourrait avoir besoin d’un système de Comptabilité / ERP, voici deux propositions:
+* [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh)
+* [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh)
+
+### Site Web Public
+
+Il existe plusieurs façons d'implémenter un site Web public:
+* Un simple site HTML, css, etc... en utilisant using: [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh)
+* Utiliser un CMS (système de gestion de contenu) comme  [Wordpress](https://github.com/YunoHost-Apps/_ynh), [Drupal](https://github.com/YunoHost-Apps/drupal_ynh) , [Grav](https://github.com/YunoHost-Apps/grav_ynh), [PluXml](https://github.com/YunoHost-Apps/pluxml_ynh)
+
+Mais nous proposerons quelque chose de plus puissant: [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh):
+* Drupal qui est un fraùmework puissent de gestion de contenu
+* avec CiviCRM qui est un CRM OpenSource à destination des organisations à but non lucratif
+
+#### Adhésion
+
+Avec CiviCRM, vous pourrez mettre en place des adhésions en ligne avec paiement.
+
+#### Inscriptions aux événements
+
+Avec CiviCRM, vous pourrez mettr eà disposition un agenda en ligne avec la possibilité pour les memebres ou le public de s'inscrire gratuitement ou en payant.
+
+#### Newsletter/Mailing
+
+Le meilleur moyen de gérer cela consiste à utiliser CiviCRM et son module de mailing.
+
+### Forum
+
+Vous avez plusieurs choix, avoir un forum intégré dans Drupal ou utiliser un système de forum dédié tel que [Flarum](https://github.com/YunoHost-Apps/flarum_ynh).
+
+### Sauvegarde
+
+YunoHost fournit son propre système de sauvegarde. Avant toute mise à niveau de paquet, YunoHost sauvegarde la version actuelle du paquet et la restaure automatiquement si la mise à niveau échoue.
+Les sauvegardes Yunohost sont stockées localement dans`/home/yunohost.backup/archives`
+
+Mais pour la production, la sauvegarde stockée localement ne suffit pas, vous devez donc mettre en œuvre des stratégies de sauvegarde supplémentaires:
+* Sauvegarde de la machine virtuelle si fournie par le système d'hébergement.
+* [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) est un système de sauvegarde automatique de votre serveur. Vos sauvegardes peuvent être envoyées à de nombreux autres endroits, locaux ou distants.
+* [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) permettent d'externaliser les sauvegardes.
+* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), si vous avez deux serveurs yunohost, fournissez un moyen d'avoir un serveur secondaire que vous pourrez utiliser si votre serveur principal tombe en panne. Ce serveur secondaire vous permettra de déployer une copie de votre serveur pour ramener votre YunoHost lors de votre panne.
+
+### Aller plus loin
+
+#### Galerie de photos fédérées
+
+* [Pixelfed](https://github.com/YunoHost-Apps/pixelfed_ynh)
+
+#### Galerie audio fédérée
+
+* [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh)
+* [Funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh)
+
+#### Galerie vidéo fédérée
+
+* [PeerTube](https://github.com/YunoHost-Apps/peertube_ynh)
+
+#### Réseaux sociaux fédérés
+
+* [Mastodon](https://github.com/YunoHost-Apps/mastodon_ynh)
+* [Pleroma](https://github.com/YunoHost-Apps/pleroma_ynh)
+* [Mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh)
+
+#### Blog fédéré
+
+* [Plume](https://github.com/YunoHost-Apps/plume_ynh)
+* [Writefreely](https://github.com/YunoHost-Apps/writefreely_ynh)
+
+#### Chat
+
+* [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh)
+
+## Conclusion
+
+YunoHost peut couvrir 99% des besoins des organisations à but non lucratif, leur permettant de posséder et de protéger leurs données, de choisir les applications qu'elles souhaitent utiliser.
+Et s’ils ne sont pas disponibles, ils peuvent [les packager pour YunoHost](https://yunohost.org/#/contributordoc), c’est très simple.

From 66fdf25966925fa4993536f7759679704be2f8e8 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Tue, 16 Jul 2019 16:49:28 +0000
Subject: [PATCH 047/360] I added &#34;Akaunting&#34; to the app wish list

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index fb8f290f..8937d1bd 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -13,6 +13,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [10er10](https://github.com/dready92/10er10)
 - [Airtime](https://www.sourcefabric.org/en/airtime/)
 - [Ajenti](http://ajenti.org)
+- [Akaunting](https://akaunting.com/)
 - [aMule](https://github.com/amule-project/amule)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)

From a01da05811772173088514c8ffccc94ab1802cde Mon Sep 17 00:00:00 2001
From: Gofannon <17145502+Gofannon@users.noreply.github.com>
Date: Wed, 17 Jul 2019 12:57:54 +0200
Subject: [PATCH 048/360] Add app description

---
 apps_wishlist.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 8937d1bd..4604797d 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -13,7 +13,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [10er10](https://github.com/dready92/10er10)
 - [Airtime](https://www.sourcefabric.org/en/airtime/)
 - [Ajenti](http://ajenti.org)
-- [Akaunting](https://akaunting.com/)
+- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)

From 979a2c07e291131381b38eba22a4a3c28bc8e1c0 Mon Sep 17 00:00:00 2001
From: Nicolas Frandeboeuf <mail@nicofrand.eu>
Date: Thu, 18 Jul 2019 09:42:54 +0200
Subject: [PATCH 049/360] Fix typos

BTW the https://yunohost.org/#/use_case_non-profit_organisations_fr/edit does not work it says "Invalid page name" upon submission.
---
 use_case_non-profit_organisations_fr.md | 52 ++++++++++++-------------
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/use_case_non-profit_organisations_fr.md b/use_case_non-profit_organisations_fr.md
index 1b1ab8e3..d5a9d1dc 100644
--- a/use_case_non-profit_organisations_fr.md
+++ b/use_case_non-profit_organisations_fr.md
@@ -42,18 +42,18 @@ Les organisations à but non lucratif doivent généralement fournir différents
 
 ## Quand
 
-Lorsque l'organisation à but non lucratif êtes prêt à franchier le pas.
+Lorsque l'organisation à but non lucratif est prête à franchir le pas.
 
 ## Où
 
-Le serveur YunoHost peut être hébergé à différents endroits:
-* Hébergement en propre sur un serveur, un ordinateur ou Raspberry derrière ASDL, SDSL ou Fibre
+Le serveur YunoHost peut être hébergé à différents endroits :
+* Hébergement en propre sur un serveur, un ordinateur ou Raspberry derrière ADSL, SDSL ou Fibre
 * [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters)
 * Services d'hébergement commercial fournissant une machine virtuelle Debian
 
 ## Pourquoi
 
-YunoHost peut répondre à tous les besoins d'une organisation à but non lucratif et lui permettre de conserver la maitrise de ses données.
+YunoHost peut répondre à tous les besoins d'une organisation à but non lucratif et lui permettre de conserver la maîtrise de ses données.
 
 ## Comment
 
@@ -67,17 +67,17 @@ YunoHost fournit immédiatement:
 * Un système d'application
 * Une interface web
 * Une interface de ligne de commande (CLI): Moulinette
-* Un serveur Web: Nginx
-* Un serveur DNS: Dnsmasq
+* Un serveur Web : Nginx
+* Un serveur DNS : Dnsmasq
 * Une base de données: MariaDB
 * Un système de sauvegarde
 * Un SSO: SSOwat
 * OpenLDAP
-* Email:
+* Email :
   * SMTP: Postfix
-  * IMAP & POP3: Dovecot
-  * Un antispam: rspamd,rmilter
-* Serveur XMPP de messagerie instantanée: Metronome IM
+  * IMAP & POP3 : Dovecot
+  * Un antispam : rspamd, rmilter
+* Serveur XMPP de messagerie instantanée : Metronome IM
 
 ### Nom de domaine
 
@@ -88,56 +88,56 @@ La première chose dont vous aurez besoin pour implémenter un serveur YunoHost
 De base, YunoHost fournit un système de messagerie disponible en utilisant POP / IMAP / SMTP.
 Les comptes de messagerie seront gérés à l'aide de l'interface Web ou de la ligne de commande. Les comptes créés sont stockés dans OpenLDAP.
 
-Des packages supplémentaires peuvent être installés pour fournir davantage de fonctionnalités au système de messagerie YunoHost:
+Des packages supplémentaires peuvent être installés pour fournir davantage de fonctionnalités au système de messagerie YunoHost :
 * un webmail en utilisant [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh)
 * ActiveSync utilisant [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh)
-* Groupe de distribution interne en utilisant  [Mailman](https://github.com/YunoHost-Apps/mailman_ynh)
+* Groupe de distribution interne en utilisant [Mailman](https://github.com/YunoHost-Apps/mailman_ynh)
 
 ### Calendrier
 
-Pour fournir des calendriers personnels ou partagés, vous devrez installer:
+Pour fournir des calendriers personnels ou partagés, vous devrez installer :
 * [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
 * [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
 
 ### Contact
 
-Pour fournir un système de contact personnel, vous devrez installer:
+Pour fournir un système de contact personnel, vous devrez installer :
 * [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
 * [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
 
 ### Fichiers partagés
 
-Pour fournir un système de fichiers partagés: dossiers personnels et dossiers partagés, vous pouvez installer [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh).
+Pour fournir un système de fichiers partagés : dossiers personnels et dossiers partagés, vous pouvez installer [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh).
 Les fichiers seront disponibles à partir d'une interface Web ou à l'aide d'un client de synchronisation.
 
 ### Communication instantanée
 
 De base, YunoHost fournit immédiatement un serveur XMPP pour lequel vous pouvez installer un client Web:  [Jappix](https://github.com/YunoHost-Apps/jappix_ynh)
 
-Vous pouvez également installer un serveur Matrix:
+Vous pouvez également installer un serveur Matrix :
 * Le serveur: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh)
 * Un client web: [Riot](https://github.com/YunoHost-Apps/_ynh)
 
 ### Intranet
 
-Pour une organisation à but non lucratif, un bon moyen de mettre en œuvre un intranet est de fournir un wiki permettant aux utilisateurs internes de lire, éditer et ajouter du contenu. Voici quelques paquets pour implémenter un wiki:
+Pour une organisation à but non lucratif, un bon moyen de mettre en œuvre un intranet est de fournir un wiki permettant aux utilisateurs internes de lire, éditer et ajouter du contenu. Voici quelques paquets pour implémenter un wiki :
 * [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) using wiki syntax
 * [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) using markdown syntax
 
 ### ERP / Comptabilité
 
-À un moment donné, une organisation à but non lucratif pourrait avoir besoin d’un système de Comptabilité / ERP, voici deux propositions:
+À un moment donné, une organisation à but non lucratif pourrait avoir besoin d’un système de Comptabilité / ERP, voici deux propositions :
 * [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh)
 * [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh)
 
 ### Site Web Public
 
-Il existe plusieurs façons d'implémenter un site Web public:
-* Un simple site HTML, css, etc... en utilisant using: [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh)
+Il existe plusieurs façons d'implémenter un site Web public :
+* Un simple site HTML, CSS, etc... en utilisant : [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh)
 * Utiliser un CMS (système de gestion de contenu) comme  [Wordpress](https://github.com/YunoHost-Apps/_ynh), [Drupal](https://github.com/YunoHost-Apps/drupal_ynh) , [Grav](https://github.com/YunoHost-Apps/grav_ynh), [PluXml](https://github.com/YunoHost-Apps/pluxml_ynh)
 
-Mais nous proposerons quelque chose de plus puissant: [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh):
-* Drupal qui est un fraùmework puissent de gestion de contenu
+Mais nous proposerons quelque chose de plus puissant : [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh):
+* Drupal qui est un puissant framework de gestion de contenu
 * avec CiviCRM qui est un CRM OpenSource à destination des organisations à but non lucratif
 
 #### Adhésion
@@ -146,7 +146,7 @@ Avec CiviCRM, vous pourrez mettre en place des adhésions en ligne avec paiement
 
 #### Inscriptions aux événements
 
-Avec CiviCRM, vous pourrez mettr eà disposition un agenda en ligne avec la possibilité pour les memebres ou le public de s'inscrire gratuitement ou en payant.
+Avec CiviCRM, vous pourrez mettre à disposition un agenda en ligne avec la possibilité pour les membres ou le public de s'inscrire gratuitement ou en payant.
 
 #### Newsletter/Mailing
 
@@ -159,13 +159,13 @@ Vous avez plusieurs choix, avoir un forum intégré dans Drupal ou utiliser un s
 ### Sauvegarde
 
 YunoHost fournit son propre système de sauvegarde. Avant toute mise à niveau de paquet, YunoHost sauvegarde la version actuelle du paquet et la restaure automatiquement si la mise à niveau échoue.
-Les sauvegardes Yunohost sont stockées localement dans`/home/yunohost.backup/archives`
+Les sauvegardes Yunohost sont stockées localement dans `/home/yunohost.backup/archives`.
 
-Mais pour la production, la sauvegarde stockée localement ne suffit pas, vous devez donc mettre en œuvre des stratégies de sauvegarde supplémentaires:
+Mais pour la production, la sauvegarde stockée localement ne suffit pas, vous devez donc mettre en œuvre des stratégies de sauvegarde supplémentaires :
 * Sauvegarde de la machine virtuelle si fournie par le système d'hébergement.
 * [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) est un système de sauvegarde automatique de votre serveur. Vos sauvegardes peuvent être envoyées à de nombreux autres endroits, locaux ou distants.
 * [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) permettent d'externaliser les sauvegardes.
-* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), si vous avez deux serveurs yunohost, fournissez un moyen d'avoir un serveur secondaire que vous pourrez utiliser si votre serveur principal tombe en panne. Ce serveur secondaire vous permettra de déployer une copie de votre serveur pour ramener votre YunoHost lors de votre panne.
+* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), si vous avez deux serveurs YunoHst, fournissez un moyen d'avoir un serveur secondaire que vous pourrez utiliser si votre serveur principal tombe en panne. Ce serveur secondaire vous permettra de déployer une copie de votre serveur pour ramener votre YunoHost lors de votre panne.
 
 ### Aller plus loin
 

From dd3453eb8562054e70ba56bcb760f1831b81f5ef Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Thu, 18 Jul 2019 11:19:36 +0200
Subject: [PATCH 050/360] Typo

---
 use_case_non-profit_organisations_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/use_case_non-profit_organisations_fr.md b/use_case_non-profit_organisations_fr.md
index d5a9d1dc..2409f3e8 100644
--- a/use_case_non-profit_organisations_fr.md
+++ b/use_case_non-profit_organisations_fr.md
@@ -165,7 +165,7 @@ Mais pour la production, la sauvegarde stockée localement ne suffit pas, vous d
 * Sauvegarde de la machine virtuelle si fournie par le système d'hébergement.
 * [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) est un système de sauvegarde automatique de votre serveur. Vos sauvegardes peuvent être envoyées à de nombreux autres endroits, locaux ou distants.
 * [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) permettent d'externaliser les sauvegardes.
-* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), si vous avez deux serveurs YunoHst, fournissez un moyen d'avoir un serveur secondaire que vous pourrez utiliser si votre serveur principal tombe en panne. Ce serveur secondaire vous permettra de déployer une copie de votre serveur pour ramener votre YunoHost lors de votre panne.
+* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), si vous avez deux serveurs YunoHost, fournissez un moyen d'avoir un serveur secondaire que vous pourrez utiliser si votre serveur principal tombe en panne. Ce serveur secondaire vous permettra de déployer une copie de votre serveur pour ramener votre YunoHost lors de votre panne.
 
 ### Aller plus loin
 

From cfb85ae69370b75672e4ecdb96ec13e2af0a4640 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 18 Jul 2019 09:20:23 +0000
Subject: [PATCH 051/360] =?UTF-8?q?Cr=C3=A9ation=20de=20l&#39;image=20d&#3?=
 =?UTF-8?q?9;une=20carte=20SD=20compress=C3=A9e=20avec=20Gzip.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 backup_fr.md | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/backup_fr.md b/backup_fr.md
index ec0c1d93..1b3e0bc2 100644
--- a/backup_fr.md
+++ b/backup_fr.md
@@ -159,3 +159,9 @@ dd if=/dev/mmcblk0 of=./backup.img status=progress
 ```
 
 (remplacez `/dev/mmcblk0` par le vrai nom de votre carte SD)
+
+Vous pouvez aussi compresser l'image à l'aide de gzip :
+
+```bash
+dd if=/dev/mmcblk0 | gzip > ./image.gz
+```

From a4c6acc54fc9f6e84245c85fc5510d893062045f Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 18 Jul 2019 09:20:35 +0000
Subject: [PATCH 052/360] =?UTF-8?q?l&#39;argument=20pour=20la=20commande?=
 =?UTF-8?q?=20de=20mise=20=C3=A0=20jour=20syst=C3=A8me=20n&#39;est=20plus?=
 =?UTF-8?q?=20--ignore-apps=20mais=20--system=20(Source:=20manpage=20yunoh?=
 =?UTF-8?q?ost)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 update_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/update_fr.md b/update_fr.md
index be0b9718..64577aff 100644
--- a/update_fr.md
+++ b/update_fr.md
@@ -16,5 +16,5 @@ Depuis la ligne de commande, vous pouvez utiliser :
 
 ``` bash
 yunohost tools update 
-yunohost tools upgrade --ignore-apps
+yunohost tools upgrade --system
 ```

From d7be959c69d6ebb54aa3f6babdb5d047980ce06e Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 18 Jul 2019 09:20:59 +0000
Subject: [PATCH 053/360] New adopter.

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 4604797d..4160d3a7 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -102,6 +102,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Loomio](https://www.loomio.org)
 - [MaidSafe](http://maidsafe.net)
 - [Mailpile](https://www.mailpile.is)
+- [Mautic](https://github.com/mautic/mautic)
 - [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
 - [microblog.pub](https://microblog.pub)
 - [MinigalNano](https://github.com/sebsauvage/MinigalNano) (/!\ last update: Jun 24, 2016)

From 02b3c1b3300b8387f01a725d5de9836998b5d3c7 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 18 Jul 2019 09:22:01 +0000
Subject: [PATCH 054/360] Helpy, OpenSourceBilling, OpenProject, Zammad,
 LocomotiveCMS

---
 apps_wishlist.md | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 4604797d..91212ea6 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -13,7 +13,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [10er10](https://github.com/dready92/10er10)
 - [Airtime](https://www.sourcefabric.org/en/airtime/)
 - [Ajenti](http://ajenti.org)
-- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
@@ -67,6 +66,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Habitica](https://habitica.com/)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
 - [Hackpad](https://github.com/dropbox/hackpad)
+- [Helpy](https://github.com/helpyio/helpy)
 - [Hexo](https://hexo.io/)
 - [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
 - [Huginn](https://github.com/cantino/huginn)
@@ -98,6 +98,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [LibreNews-Server](https://librenews.io)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
 - [LiquidSoap](http://savonet.sourceforge.net/)
+- [LocomotiveCMS](https://github.com/locomotivecms/engine)
 - [Logstalgia](http://logstalgia.io)
 - [Loomio](https://www.loomio.org)
 - [MaidSafe](http://maidsafe.net)
@@ -117,6 +118,8 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [OpenBazaar](https://openbazaar.org)
 - [openHAB](https://www.openhab.org/) - Smart home platform.
 - [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
+- [OpenProject](https://github.com/opf/openproject)
+- [OpenSourceBilling](https://github.com/vteams/open-source-billing)
 - [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
 - [Paperless](https://github.com/danielquinn/paperless)
 - [Paperwork](http://paperwork.rocks)
@@ -181,6 +184,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Wireguard](https://www.wireguard.com/)
 - [Xonotic](http://xonotic.org)
 - [YesWiki](https://yeswiki.net)
+- [Zammad](https://github.com/zammad/zammad)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
 - [ZNC](http://wiki.znc.in/ZNC)
 - [Zone-project](https://github.com/descl/ZONE)

From 81cca26b7995063230ee4293bdd2361d83d7d1db Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Thu, 18 Jul 2019 11:22:50 +0200
Subject: [PATCH 055/360] Fix issue from simone patch

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 91212ea6..ee0d0299 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -13,6 +13,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [10er10](https://github.com/dready92/10er10)
 - [Airtime](https://www.sourcefabric.org/en/airtime/)
 - [Ajenti](http://ajenti.org)
+- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)

From 21a5f1d9b9ad900ce5f5721ec16b8c0cb5d79363 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Thu, 18 Jul 2019 11:24:35 +0200
Subject: [PATCH 056/360] Propagate fix on english version

---
 update.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/update.md b/update.md
index a4982ee2..0a6005a9 100644
--- a/update.md
+++ b/update.md
@@ -15,5 +15,5 @@ From the command line, you can run:
 
 ``` bash
 yunohost tools update
-yunohost tools upgrade --ignore-apps
+yunohost tools upgrade --system
 ```

From 83f6ca5de994d5124d917e4628a3d4487c78bb4c Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 18 Jul 2019 09:56:44 +0000
Subject: [PATCH 057/360] Add Tracim to the wishlist.

---
 apps_wishlist.md | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index ee0d0299..21c68233 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -67,7 +67,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Habitica](https://habitica.com/)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
 - [Hackpad](https://github.com/dropbox/hackpad)
-- [Helpy](https://github.com/helpyio/helpy)
 - [Hexo](https://hexo.io/)
 - [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
 - [Huginn](https://github.com/cantino/huginn)
@@ -99,7 +98,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [LibreNews-Server](https://librenews.io)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
 - [LiquidSoap](http://savonet.sourceforge.net/)
-- [LocomotiveCMS](https://github.com/locomotivecms/engine)
 - [Logstalgia](http://logstalgia.io)
 - [Loomio](https://www.loomio.org)
 - [MaidSafe](http://maidsafe.net)
@@ -119,8 +117,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [OpenBazaar](https://openbazaar.org)
 - [openHAB](https://www.openhab.org/) - Smart home platform.
 - [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
-- [OpenProject](https://github.com/opf/openproject)
-- [OpenSourceBilling](https://github.com/vteams/open-source-billing)
 - [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
 - [Paperless](https://github.com/danielquinn/paperless)
 - [Paperwork](http://paperwork.rocks)
@@ -172,6 +168,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [TorChat](https://github.com/prof7bit/TorChat)
 - [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
 - [Total Respawn](https://github.com/broncowdd/TotalRespawn)
+- [Tracim](https://github.com/tracim/tracim)
 - [Twister](http://twister.net.co)
 - [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
 - [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
@@ -185,7 +182,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Wireguard](https://www.wireguard.com/)
 - [Xonotic](http://xonotic.org)
 - [YesWiki](https://yeswiki.net)
-- [Zammad](https://github.com/zammad/zammad)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
 - [ZNC](http://wiki.znc.in/ZNC)
 - [Zone-project](https://github.com/descl/ZONE)

From 129802145cfd9a82ffd44347322ac8f71eadec88 Mon Sep 17 00:00:00 2001
From: ljf <ljf+git@grimaud.me>
Date: Fri, 19 Jul 2019 15:19:46 +0200
Subject: [PATCH 058/360] [enh] Remove github ads

---
 index.md    | 4 ----
 index_ar.md | 4 ----
 index_de.md | 4 ----
 index_fr.md | 4 ----
 index_it.md | 4 ----
 5 files changed, 20 deletions(-)

diff --git a/index.md b/index.md
index 2d757617..21576d77 100644
--- a/index.md
+++ b/index.md
@@ -30,10 +30,6 @@
 
 <div class="boring-part" markdown="1">
 
-  <a href="https://github.com/YunoHost" target="_blank" class="github-ribbon hidden-xs">
-    <img src="/images/github_ribbon_grey.png" alt="Fork me on GitHub">
-  </a>
-
   <h1>YunoHost <small>is a server operating system aiming to make self-hosting accessible to everyone.</small></h1>
 
   <div class="home-panel">
diff --git a/index_ar.md b/index_ar.md
index 1df4a89c..1e6f7574 100644
--- a/index_ar.md
+++ b/index_ar.md
@@ -27,10 +27,6 @@
 
 <div class="boring-part" markdown="1">
 
-  <a href="https://github.com/YunoHost" target="_blank" class="github-ribbon hidden-xs">
-    <img src="/images/github_ribbon_grey.png" alt="قم بتشعيبي على جيت هب">
-  </a>
-
   <h1 dir="rtl">YunoHost <small>أداة تُمكّنكم من تنصيب و استخدام خادمكم بأسلوب سهل.</small></h1>
 
   <div class="home-panel">
diff --git a/index_de.md b/index_de.md
index 3e86b308..9da2cd14 100644
--- a/index_de.md
+++ b/index_de.md
@@ -30,10 +30,6 @@
 
 <div class="boring-part" markdown="1">
 
-  <a href="https://github.com/YunoHost" target="_blank" class="github-ribbon hidden-xs">
-    <img src="/images/github_ribbon_grey.png" alt="Folgen Sie Yunohost auf GitHub">
-  </a>
-
   <h1>YunoHost <small>ist ein Serverbetriebssystem, das<br>
 Self-Hosting für alle möglich macht.</small></h1>
 
diff --git a/index_fr.md b/index_fr.md
index c6e5c82c..d358e760 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -26,10 +26,6 @@
 
 <div class="boring-part" markdown="1">
 
-  <a href="https://github.com/YunoHost" target="_blank" class="github-ribbon hidden-xs">
-    <img src="/images/github_ribbon_grey.png" alt="Fork me on GitHub">
-  </a>
-
   <h1>YunoHost <small>est un outil qui vous permet d’installer et d’utiliser facilement votre propre serveur.</small></h1>
 
   <div class="home-panel">
diff --git a/index_it.md b/index_it.md
index de3db000..ee0bc581 100644
--- a/index_it.md
+++ b/index_it.md
@@ -31,10 +31,6 @@
 
 <div class="boring-part" markdown="1">
 
-  <a href="https://github.com/YunoHost" target="_blank" class="github-ribbon hidden-xs">
-    <img src="/images/github_ribbon_grey.png" alt="Fork me on GitHub">
-  </a>
-
   <h1>YunoHost <small>è un sistema operativo per server con l'obiettivo di rendere il self-host accessibile a tutti.</small></h1>
 
   <div class="home-panel">

From 17920e475498aedf31f259147bda596bd161deb4 Mon Sep 17 00:00:00 2001
From: ljf <ljf+git@grimaud.me>
Date: Fri, 19 Jul 2019 17:16:52 +0200
Subject: [PATCH 059/360] [enh] Remove unused image

---
 images/github_ribbon_grey.png | Bin 4139 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 images/github_ribbon_grey.png

diff --git a/images/github_ribbon_grey.png b/images/github_ribbon_grey.png
deleted file mode 100644
index 8c441927bb3e3b5f6cbc1cf5f433d41d264e51bf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4139
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


From 1e73cab7165281ad5059ea942623b1efbc87a6c0 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 21 Jul 2019 08:58:52 +0000
Subject: [PATCH 060/360] Just corrected &#34;30 Go&#34; to &#34;30GB&#34;

---
 backup.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/backup.md b/backup.md
index 819bd80f..6f48d0e4 100644
--- a/backup.md
+++ b/backup.md
@@ -139,7 +139,7 @@ then make it executable :
 chmod +x /etc/cron.weekly/backup-wordpress
 ```
 
-Be careful what you backup exactly and when : you don't want to end up with your whole disk space saturated because you backuped 30 Go of data every day.
+Be careful what you backup exactly and when : you don't want to end up with your whole disk space saturated because you backuped 30 GB of data every day.
 
 #### Backing your server on a remote server
 

From 7f9d284821f09aa009d7e410461f5137c6f1cbd6 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 21 Jul 2019 08:59:12 +0000
Subject: [PATCH 061/360] Just corrected &#34;Spcify&#34; to &#34;Specify&#34;

---
 app_update.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_update.md b/app_update.md
index edb2c769..94a4cd5c 100644
--- a/app_update.md
+++ b/app_update.md
@@ -17,7 +17,7 @@ yunohost app upgrade wordpress
 ** Note: ** in case you have multiple instances of the same type (ex: 2 wordpress) installed, you will need to specify the instance name (ex: wordpress ou wordpress__2).
 
 #### Upgrade an unofficial application
-Spcify the git repository containing the upgrade. 
+Specify the git repository containing the upgrade. 
 
 For intance, to upgrade LimeSurvey:
 ```bash

From dd6ae243dcb26ed92626efb1150e9a2a5226d1d5 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 21 Jul 2019 11:34:35 +0200
Subject: [PATCH 062/360] Revert "[Anonymous contrib] Add Tracim to the
 wishlist."

---
 apps_wishlist.md | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 7f5478fc..412ee594 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -67,6 +67,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Habitica](https://habitica.com/)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
 - [Hackpad](https://github.com/dropbox/hackpad)
+- [Helpy](https://github.com/helpyio/helpy)
 - [Hexo](https://hexo.io/)
 - [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
 - [Huginn](https://github.com/cantino/huginn)
@@ -98,6 +99,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [LibreNews-Server](https://librenews.io)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
 - [LiquidSoap](http://savonet.sourceforge.net/)
+- [LocomotiveCMS](https://github.com/locomotivecms/engine)
 - [Logstalgia](http://logstalgia.io)
 - [Loomio](https://www.loomio.org)
 - [MaidSafe](http://maidsafe.net)
@@ -118,6 +120,8 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [OpenBazaar](https://openbazaar.org)
 - [openHAB](https://www.openhab.org/) - Smart home platform.
 - [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
+- [OpenProject](https://github.com/opf/openproject)
+- [OpenSourceBilling](https://github.com/vteams/open-source-billing)
 - [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
 - [Paperless](https://github.com/danielquinn/paperless)
 - [Paperwork](http://paperwork.rocks)
@@ -169,7 +173,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [TorChat](https://github.com/prof7bit/TorChat)
 - [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
 - [Total Respawn](https://github.com/broncowdd/TotalRespawn)
-- [Tracim](https://github.com/tracim/tracim)
 - [Twister](http://twister.net.co)
 - [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
 - [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
@@ -183,6 +186,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Wireguard](https://www.wireguard.com/)
 - [Xonotic](http://xonotic.org)
 - [YesWiki](https://yeswiki.net)
+- [Zammad](https://github.com/zammad/zammad)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
 - [ZNC](http://wiki.znc.in/ZNC)
 - [Zone-project](https://github.com/descl/ZONE)

From f41aedad510e4aadece3b031cd29373065b1b894 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 21 Jul 2019 11:35:39 +0200
Subject: [PATCH 063/360] Readd Tracim

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 412ee594..9e92b73a 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -173,6 +173,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [TorChat](https://github.com/prof7bit/TorChat)
 - [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
 - [Total Respawn](https://github.com/broncowdd/TotalRespawn)
+- [Tracim](https://github.com/tracim/tracim)
 - [Twister](http://twister.net.co)
 - [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
 - [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))

From 486705b99e665639991707bc0aecf1ace2ff9e55 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Fri, 26 Jul 2019 18:31:56 +0200
Subject: [PATCH 064/360] Some updates to improve the page about virtualbox

---
 images/images.list          |   1 -
 images/virtualbox_4.png     | Bin 3086 -> 0 bytes
 install_on_virtualbox.md    |  21 ++++++++++++---------
 install_on_virtualbox_fr.md |  24 +++++++++++++-----------
 4 files changed, 25 insertions(+), 21 deletions(-)
 delete mode 100644 images/virtualbox_4.png

diff --git a/images/images.list b/images/images.list
index 4e785728..46cb18ce 100644
--- a/images/images.list
+++ b/images/images.list
@@ -60,7 +60,6 @@ virtualbox_1.png
 virtualbox_2.1.png
 virtualbox_2.png
 virtualbox_3.png
-virtualbox_4.png
 virtualbox.png
 vps.png
 web4all.png
diff --git a/images/virtualbox_4.png b/images/virtualbox_4.png
deleted file mode 100644
index aa28c8c186afa256990eafe527ccb636826af0ac..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3086
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

diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md
index 196ec176..98db3a96 100644
--- a/install_on_virtualbox.md
+++ b/install_on_virtualbox.md
@@ -6,10 +6,16 @@
 
 <img src="/images/virtualbox.png" width=200>
 
-* A x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine.
+* An x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine.
 * The latest stable **YunoHost ISO image**, available [here](/images).
 
 
+<div class="alert alert-warning" markdown="1">
+N.B. : Installing YunoHost in a VirtualBox is usually intended for testing. To
+run an actual server on the long-term, you usually need a dedicated physical
+machine (old computer, ARM board, ...) or a VPS online.
+</div>
+
 ---
 
 ## <small>1.</small> Create a new virtual machine
@@ -18,9 +24,8 @@
 
 <br>
 
-* 256MB RAM is the minimum required, 512MB may be better.
-
-* 4GB storage is the minimum required.
+* 256MB RAM is the minimum required, but at least 512MB is recommended.
+* 8GB storage is the minimum required.
 
 ---
 
@@ -64,12 +69,10 @@ You will have to select your ISO image here, then you should see the YunoHost's
 
 ## <small>4.</small> Proceed to post-installation
 
-After the reboot, you will see this screen:
+After the reboot, the system should ask you to proceed with the
+post-installation
 
-<img src="/images/virtualbox_4.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
+<a class="btn btn-lg btn-default" href="/postinstall">Post-install documentation</a>
 
-<br>
-* The password for root user is "yunohost"
 
-* You can get more information on the post-installation here: **[yunohost.org/postinstall](/postinstall)**
 
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
index c93d9901..60463d2b 100644
--- a/install_on_virtualbox_fr.md
+++ b/install_on_virtualbox_fr.md
@@ -9,6 +9,13 @@
 * Un ordinateur x86 avec VirtualBox installé et assez de RAM disponible pour lancer une petite machine virtuelle.
 * La dernière **image ISO YunoHost** stable, disponible [ici](/images_fr).
 
+<div class="alert alert-warning" markdown="1">
+N.B. : Installer YunoHost dans une VirtualBox est utile pour tester la
+distribution. Pour réellement s'autohéberger sur le long terme, il vous faudra
+probablement une machine physique (vieil ordinateur, carte ARM, ..) ou un VPS en
+ligne.
+</div>
+
 ---
 
 ## <small>1.</small> Créer une nouvelle machine virtuelle
@@ -17,9 +24,8 @@
 
 <br>
 
-* 256MB de RAM est le minimum requis, 512MB est recommandé.
-
-* 4GB de stockage minimum requis.
+* 256Mo de RAM est le minimum requis, 512Mo est recommandé.
+* 8Go de stockage minimum requis.
 
 ---
 
@@ -63,12 +69,8 @@ Vous devez sélectionner ici l’image ISO, puis vous devriez voir cet écran d
 
 ## <small>4.</small> Effectuer la post-installation
 
-Après le redémarrage, vous devriez voir cet écran :
-
-<img src="/images/virtualbox_4.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
-
-<br>
-
-* Vous pouvez obtenir plus d’information sur la post-installation ici : **[yunohost.org/postinstall_fr](/postinstall_fr)**
-* Le mot de passe root est "yunohost"
+Après le redémarrage, la machine devrait vous proposer d'effectuer la
+post-installation :
 
+<a class="btn btn-lg btn-default" href="/postinstall">Post-install
+documentation</a>

From 1cbf645a4c2a0f99b46da61a927ccb90aebaac5b Mon Sep 17 00:00:00 2001
From: JOduMonT <jodumont@users.noreply.github.com>
Date: Tue, 30 Jul 2019 12:08:15 +0700
Subject: [PATCH 065/360] few traduction FR/EN

---
 app_hextris.md     |   4 ++
 app_nextcloud.md   | 143 +++++++++++++++++++++++++++++++++++++++++++++
 app_noalyss.md     |  13 +++++
 app_noalyss_fr.md  |   3 +-
 app_peertube.md    |   5 +-
 app_peertube_fr.md |   3 +
 app_pihole_fr.md   |   5 ++
 app_spip.md        |  33 +++++++++++
 app_yunofav.md     |   5 +-
 app_yunofav_fr.md  |   5 ++
 10 files changed, 212 insertions(+), 7 deletions(-)
 create mode 100644 app_hextris.md
 create mode 100644 app_nextcloud.md
 create mode 100644 app_noalyss.md
 create mode 100644 app_peertube_fr.md
 create mode 100644 app_pihole_fr.md
 create mode 100644 app_spip.md
 create mode 100644 app_yunofav_fr.md

diff --git a/app_hextris.md b/app_hextris.md
new file mode 100644
index 00000000..b938caed
--- /dev/null
+++ b/app_hextris.md
@@ -0,0 +1,4 @@
+#Hextris
+
+Because sometimes you have to know how to relax. Host your own fork of the famous Tetris and become the master of this infernal hexagon.
+Who will tame this infernal hexagon?
\ No newline at end of file
diff --git a/app_nextcloud.md b/app_nextcloud.md
new file mode 100644
index 00000000..b18aff78
--- /dev/null
+++ b/app_nextcloud.md
@@ -0,0 +1,143 @@
+# Add storage space
+
+Solution I) allows you to add a link to a local or remote folder.  
+Solution II) allows to move the main storage space of nextcloud.
+
+## I) Add an external storage space
+
+Parameter =>[Administration] External storage.
+
+At the bottom of the list you can add a folder (It is possible to define a subfolder using the `folder/subfolder` convention.)  
+Select a storage type and specify the requested connection information.  
+You can restrict this folder to one or more nextcloud users with the column `Available for`.  
+With the gear you can allow or prohibit previewing and file sharing.  
+Finally click on the check mark to validate the folder.
+
+## II) Migrate Nextcloud data to a larger partition
+
+**Note**: The following assumes that you have a hard disk mounted on `/media/storage`. Refer to[this article](/external_storage_en) to prepare your system.
+
+**Note**: Replace `nextcloud` with the name of its instance, if you have several Nextcloud apps installed.
+
+First turn off the web server with the command:
+```bash
+systemctl stop nginx  
+```
+
+#### Choice of location
+
+#### Case A: Blank storage, exclusive to Nextcloud
+
+For the moment only root can write to it in `/media/storage`, which means that nginx and nextcloud will not be able to use it.
+
+```bash
+chown -R nextcloud:nextcloud /media/storage
+chmod 775 -R /media/storage
+```
+
+#### Case B: Shared storage, data already present, Nextcloud data in a subfolder
+
+If you want to use this disk for other applications, you can create a subfolder belonging to Nextcloud.
+
+```bash
+mkdir -p /media/storage/nextcloud_data
+chown -R nextcloud /media/storage/nextcloud_data
+chmod 775 -R /media/storage/nextcloud_data
+```
+
+#### Migrate data
+
+Migrate your data to the new disk. To do this *(be patient, it can take a long time)*:
+
+```bash
+Case A: cp -ir /home/yunohost.app/nextcloud /media/storage
+Case B: cp -ir /home/yunohost.app/nextcloud /media/storage/nextcloud_data
+```
+
+The `i` option allows you to ask yourself what to do if there is a file conflict, especially if you overwrite an old Owncloud or Nextcloud data folder.
+
+To check that everything went well, compare what these two commands display (the content must be identical):
+
+```bash
+ls -la /home/yunohost.app/nextcloud
+
+Case A: ls -al /media/storage
+Case B: ls -al /media/storage/nextcloud_data/nextcloud
+```
+
+#### Configure Nextcloud
+
+To inform Nextcloud of its new directory, modify the `/var/www/nextcloud/config/config.php` file with the command:
+
+```bash
+nano /var/www/nextcloud/config/config/config.php
+```
+
+Look for the line:
+
+```bash
+'datadirectory' => '/home/yunohost.app/nextcloud/data',
+```
+
+That you modify:
+
+```bash
+CASE A:'datadirectory' =>'/media/storage',
+CASE B:'datadirectory' =>'/media/storage/nextcloud_data/nextcloud/data',
+```
+
+Back up with `ctrl+x` then `y` or `o` (depending on your server locale).
+
+Restart the web server:
+
+```bash
+systemctl start nginx
+```
+
+Add the.ocdata file
+```bash
+CASE A: nano /media/storage/.ocdata
+CASE B: nano /media/storage/nextcloud_data/nextcloud/data/.ocdata
+```
+Add a space to the file to be able to save it
+
+Back up with `ctrl+x` then `y` or `o` (depending on your server locale).
+
+Run a scan of the new directory by Nextcloud:
+
+```bash
+cd /var/www/nextcloud
+sudo -u nextcloud php occ files:scan --all
+```
+
+It's over now. Now test if everything is fine, try connecting to your Nextcloud instance, upload a file, check its proper synchronization.
+
+# The KeeWeb application
+
+The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance. 
+But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this, 
+[a solution](https://github.com/jhass/nextcloud-keeweb/issues/34) exists.
+
+Go to the Nextcloud configuration directory:
+
+```bash
+cd /var/www/nextcloud/config/
+```
+
+If it does not exist, create the *mimetypemapping.json* file whose owner is the user *nextcloud* :
+
+```bash
+sudo su nextcloud -c "nano mimetypemapping.json"
+```
+
+Then add in this file the following text:
+
+```bash
+{
+    "kdbx": ["x-application/kdbx"]
+}
+```
+
+Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
+
+Now the problem is fixed.
\ No newline at end of file
diff --git a/app_noalyss.md b/app_noalyss.md
new file mode 100644
index 00000000..8762bf51
--- /dev/null
+++ b/app_noalyss.md
@@ -0,0 +1,13 @@
+# Noalyss
+
+Open source accounting software developed in PHP.
+
+All the information on this software is available on the [project website](http://www.noalyss.eu)
+
+To learn how to use it I invite you to read the [project wiki](http://www.noalyss.eu/?page_id=46&lang=fr_FR_id=46&lang=en_EN)
+
+The github of the Yunohost module is [here](https://github.com/YunoHost-Apps/noalyss_ynh_ynh)
+
+You can try the project [here](http://demo.noalyss.eu/index.php) with the identifiers: demo /demo
+
+I mean, not to have to struggle like me. The administrator IDs and passwords for the first login are: phpcompta / phpcompta
\ No newline at end of file
diff --git a/app_noalyss_fr.md b/app_noalyss_fr.md
index 77bbbf9f..eac70633 100644
--- a/app_noalyss_fr.md
+++ b/app_noalyss_fr.md
@@ -10,5 +10,4 @@ Le github du module Yunohost est [ici](https://github.com/YunoHost-Apps/noalyss_
 
 Vous pouvez essayer le projet [ici](http://demo.noalyss.eu/index.php) avec les identifiants : demo /demo
 
-Enfin pour ne pas galérer comme moi. Les identifiants et mot de passe administrateur lors de la première connexion sont : phpcompta / phpcompta
-
+Enfin pour ne pas galérer comme moi. Les identifiants et mot de passe administrateur lors de la première connexion sont : phpcompta / phpcompta
\ No newline at end of file
diff --git a/app_peertube.md b/app_peertube.md
index fb15d3e8..77984f62 100644
--- a/app_peertube.md
+++ b/app_peertube.md
@@ -1,2 +1,3 @@
-===== Peertube =====
-PeerTube is a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser, using WebTorrent.
+# Peertube
+
+PeerTube is a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser, using WebTorrent.
\ No newline at end of file
diff --git a/app_peertube_fr.md b/app_peertube_fr.md
new file mode 100644
index 00000000..1ae2ed47
--- /dev/null
+++ b/app_peertube_fr.md
@@ -0,0 +1,3 @@
+# PeerTube
+
+PeerTube est une plateforme de streaming vidéo fédérée (ActivityPub) utilisant P2P (BitTorrent) directement dans le navigateur web, en utilisant WebTorrent.
\ No newline at end of file
diff --git a/app_pihole_fr.md b/app_pihole_fr.md
new file mode 100644
index 00000000..4d2dbc39
--- /dev/null
+++ b/app_pihole_fr.md
@@ -0,0 +1,5 @@
+# Pihole
+
+Page d'accueil : https://pi-hole.net
+
+**Pi-hole®** Blocage des publicités à l'échelle du réseau via votre propre serveur DNS, avec une belle page web Performance And Statistics.
\ No newline at end of file
diff --git a/app_spip.md b/app_spip.md
new file mode 100644
index 00000000..fb51d7ab
--- /dev/null
+++ b/app_spip.md
@@ -0,0 +1,33 @@
+# SPIP for YunoHost
+
+#### SPIP is what?
+
+SPIP is an Internet publishing system that focuses on collective functioning, multilingualism and ease of use. It is free software, distributed under the GNU/GPL license. It can therefore be used for any website, whether associative or institutional, personal or commercial.
+
+Source:[spip.net](https://www.spip.net/fr_rubrique91.html_rubrique91.html)
+
+#### Application functionality for Yunohost
+
+* Installation of the base without going through the installation system
+* Multilingual support
+* LDAP support
+
+##### Installation
+
+```bash
+$ sudo yunohost app install https://github.com/YunoHost-Apps/spip_ynh.git_ynh.git
+```
+
+##### Update
+
+```
+sudo yunohost app upgrade --verbose spip -u https://github.com/YunoHost-Apps/spip_ynh.git_ynh.git
+```
+
+##### Use
+
+Access the administration of the site by entering the following address in your browser.
+
+https://www.domain.tld/spip/ecrire
+
+Make a "forgotten password" request to change your password, you will receive an email telling you how to change your password.
\ No newline at end of file
diff --git a/app_yunofav.md b/app_yunofav.md
index e99f88b6..181abe8d 100644
--- a/app_yunofav.md
+++ b/app_yunofav.md
@@ -1,6 +1,5 @@
-Yunofav : (unofficial) Page of favorite links for Yunohost
-=======
+#Yunofav : (unofficial) Page of favorite links for Yunohost
 
 homepage: https://github.com/YunoHost-Apps/yunofav_ynh
 
-Functionality: Creates a page for your favorite links, using the Yunohost tiles look and feel.
+Functionality: Creates a page for your favorite links, using the Yunohost tiles look and feel.
\ No newline at end of file
diff --git a/app_yunofav_fr.md b/app_yunofav_fr.md
new file mode 100644
index 00000000..087b1b50
--- /dev/null
+++ b/app_yunofav_fr.md
@@ -0,0 +1,5 @@
+# Yunofav : (non officiel) Page de liens favoris pour Yunohost
+
+page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh_ynh
+
+Fonctionnalité : Crée une page pour vos liens préférés, en utilisant les tuiles Yunohost look and feel.
\ No newline at end of file

From b670e98bba71d3ee25228890dee6d4c065d9b90b Mon Sep 17 00:00:00 2001
From: JOduMonT <jodumont@users.noreply.github.com>
Date: Tue, 30 Jul 2019 12:30:08 +0700
Subject: [PATCH 066/360] add instruction for cloudflare

---
 app_nextcloud.md    | 25 ++++++++++++++++++++++++-
 app_nextcloud_fr.md | 23 +++++++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/app_nextcloud.md b/app_nextcloud.md
index b18aff78..92cb29f4 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -140,4 +140,27 @@ Then add in this file the following text:
 
 Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
 
-Now the problem is fixed.
\ No newline at end of file
+Now the problem is fixed.
+
+# Nextcloud and Cloudflare
+
+If you use Cloudflare for your DNS, *which may be useful if you have a dynamic IP*, you will most likely have authentication problems with the Nextcloud application. On the Internet many people propose to create a rule that disables all options related to security and Cloudflare speed for the url pointing to your Nextcloud instance. Although it works, it is not the optimal solution. I propose, certainly to create a rule for the url pointing to your Nextcloud instance but to disable only 2 options. So here's how:
+
+## Cloudflare Page Rules
+
+In the Cloudflare control panel select your domain and find Page Rules
+the url in your address bar will look like this: https://dash.cloudflare.com/*/domain.tld/page-rules
+
+#### Add a rule
+
+The rule to be added must apply to the url of your Nextcloud instance either:
+
+- `https://nextcloud.domain.tld/**` if you use a subdomain
+- `https://domain.tld/nextcloud/*`` if you have deployed Nextcloud in a directory
+
+The options to disable (Off) are:
+
+- Rocket Loader
+- Email Obfuscation
+
+Save and clean your caches (Cloudflare, browser,...) and that's it.
\ No newline at end of file
diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index 152252ea..31aaf3a5 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -141,3 +141,26 @@ Puis ajouter dans ce fichier le texte suivent :
 Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
 
 A présent, le problème est corrigé.
+
+# Nextcloud et Cloudflare
+
+Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens propose de créer une règle ayant pour effet de désactivé tous les options relié à la sécurité et à la vitesse de Cloudflare pour l'url pointant sur votre instance Nextcloud. Malgré que cela fonctionne, ce n'est pas la solution optimial. Je vous propose, certes de créé une règle pour l'url pointant sur votre instance Nextcloud mais de désactivé seulement 2 options. Voici donc comment:
+
+## Cloudflare Page Rules
+
+Dans le panneau de controle de Cloudflare choisissez votre domaine et trouver Page Rules
+l'url dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
+
+### Ajouter une règle
+
+La règle à ajouter doit s'appliquer pour l'url de votre instance Nextcloud soit:
+
+- `https://nextcloud.domain.tld/*` si vous utilisez un sous domain
+- `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire
+
+Les options à désactiver (Off) sont :
+
+- Rocket Loader
+- Email Obfuscation
+
+Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est joué.
\ No newline at end of file

From 7d1c5eb6fe3e48448c5e4c1fced160ce2265c239 Mon Sep 17 00:00:00 2001
From: Marco Bakera <pintman@users.noreply.github.com>
Date: Fri, 2 Aug 2019 09:46:25 +0200
Subject: [PATCH 067/360] Improved translation.

---
 index_de.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index_de.md b/index_de.md
index 9da2cd14..5f679c8a 100644
--- a/index_de.md
+++ b/index_de.md
@@ -31,7 +31,7 @@
 <div class="boring-part" markdown="1">
 
   <h1>YunoHost <small>ist ein Serverbetriebssystem, das<br>
-Self-Hosting für alle möglich macht.</small></h1>
+Self-Hosting für alle ermöglicht.</small></h1>
 
   <div class="home-panel">
     <img src="/images/home_panel.jpg" />

From af454dab62f32f80b4af6e23eae76f86b964310c Mon Sep 17 00:00:00 2001
From: Thatoo <Thatoo@users.noreply.github.com>
Date: Fri, 2 Aug 2019 10:40:33 +0200
Subject: [PATCH 068/360] Add Gateway

https://iot.mozilla.org/gateway/
App de domotique.
---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 9e92b73a..4328b3bc 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -55,6 +55,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
+- [Gateway](https://iot.mozilla.org/gateway/)
 - [Geneweb](https://geneweb.tuxfamily.org)
 - [GetSimple CMS](http://get-simple.info)
 - [Git-annex](http://git-annex.branchable.com)

From 44c0c58f7074142bfb7d39f84edde9fc8c5b46d1 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Fri, 2 Aug 2019 11:58:19 +0000
Subject: [PATCH 069/360] Fixed a few markdown errors

---
 packaging_apps_start.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/packaging_apps_start.md b/packaging_apps_start.md
index 2b1257f0..5e69e811 100644
--- a/packaging_apps_start.md
+++ b/packaging_apps_start.md
@@ -17,6 +17,7 @@ This is what application packaging is, a serie of scripts that automate the inst
 ### How it works
 
 From the final user perspective, it is as simple as it can be:
+
 1) Pick an application
 1) Fill a form
 1) Wait
@@ -40,7 +41,7 @@ Scripts used during application packaging are simply a serie of bash commands.
 
 ### ... bash command?
 
-A [bash](https://en.wikipedia.org/wiki/Bash_(Unix_shell)) command is a line of text that will be interpreted by the computer and will produce a result. This is commonly refered to a command line.
+A [bash](https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29) command is a line of text that will be interpreted by the computer and will produce a result. This is commonly refered to a command line.
 
 You only can interact with your server through command line as it does not provide a graphical interface. Usual access is through [ssh](/ssh_en).
 

From 2a7c28b7feb6cb5eb8d12e2f6f87fc0c1d13a9cf Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Fri, 2 Aug 2019 14:01:27 +0000
Subject: [PATCH 070/360] Just corrected work and visioconferences in
 ###Chatrooms and ###VoIP and visioconferences

---
 XMPP.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/XMPP.md b/XMPP.md
index a3d818a6..85a30665 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -46,8 +46,8 @@ XMPP chats can be encrypted with the help of [OMEMO](https://xmpp.org/extensions
 
 To create a chatroom (multi-user chat) on your YunoHost server, use the identifier `chatroomname@muc.yourdomain.tld`.
 
-For this to workm you need to [add the corresponding `muc.` DNS record](dns_config_fr) in the DNS configuration.
+For this to work you need to [add the corresponding `muc.` DNS record](dns_config_fr) in the DNS configuration.
 
-### VoIP and visioconferences
+### VoIP and videoconferences
 
 A practical tool to call an XMPP client, either with voice or voice+video, is to use the client [Jitsi](http://jitsi.org/).

From c051de5ba252c76294c45481cb7570b06f4c9ffe Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 2 Aug 2019 16:03:40 +0200
Subject: [PATCH 071/360] Propagate to english page

---
 backup.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/backup.md b/backup.md
index 819bd80f..0d068886 100644
--- a/backup.md
+++ b/backup.md
@@ -156,3 +156,8 @@ dd if=/dev/mmcblk0 of=./backup.img status=progress
 ```
 
 (replace `/dev/mmcblk0` with the actual device of your sd card)
+
+You can also create a compressed image using gzip this way:
+```bash
+dd if=/dev/mmcblk0 | gzip > ./image.gz
+```

From 8ee37ab125c963d2a96ef0bf13b0c67239e33dc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com>
Date: Thu, 8 Aug 2019 18:26:37 +0200
Subject: [PATCH 072/360] Creation of the Occitan version of the page

First release
---
 use_case_non-profit_organisations_oc.md | 203 ++++++++++++++++++++++++
 1 file changed, 203 insertions(+)
 create mode 100644 use_case_non-profit_organisations_oc.md

diff --git a/use_case_non-profit_organisations_oc.md b/use_case_non-profit_organisations_oc.md
new file mode 100644
index 00000000..3dc63891
--- /dev/null
+++ b/use_case_non-profit_organisations_oc.md
@@ -0,0 +1,203 @@
+# YunoHost per organizacion sens tòca lucrativa
+
+## Ensenhador
+* [Introduccion](#introduccion) 
+* [Qual ](#qual) 
+* [Qué](#qué) 
+* [Quand](#quand) 
+* [Ont](#ont) 
+* [Perque](#perque) 
+* [Cossí](#cossí) 
+* [Conclusion](#conclusion) 
+
+## Introduccion
+
+L'objectiu d’aqueste document es de presentar una utilizacion especifica de [YunoHost](https://yunohost.org/) per d’organizacions sens tòca lucrativa.
+
+## Qual
+
+Organizacions sens tòca lucrativa, ONG o qualque siá associacion.
+
+## Qué
+
+Las organizacions sens tòca lucrativa devon generalament fornir diferents servicis a diferents publics :
+
+* Conselh d'administracion / Comitat director / Benevòls amb :
+  * [Mails](#mails)
+  * [Calendièr](#calendièr)
+  * [Contacte](#contacte)
+  * [Fichièrs partejats / Drive](#fichièrs-partejats)
+  * [Comunicacion instantanèa](#comunicacion-instantan-a)
+  * [Intranet / Basa de coneissenças](#intranet)
+  * [ERP / Comptabilitat](#erp-comptabilitat)
+* Membres amb :
+  * [Site Web public amb accès privat e individual](#site-web-public)
+  * [Adhesion](#adhesion)
+  * [Inscripcions als eveniments](#inscriptions-als-eveniments)
+  * [Infoletras](#infoletras)
+  * [Forum](#forum)
+* Public amb :
+  * [Site Web public](#site-web-public)
+  * [Infoletras](#newsletter-mailing)
+
+## Quand
+
+Quand l'organizacion sens tòca lucrativa es prèsta a passar lo pas.
+
+## Ont
+
+Lo servidor YunoHost pòt èsser albergat a diferents endreches :
+* Albergament en pròpri sus un servidor, un ordenador o Raspberry darrièr una connexion ADSL, SDSL o Fibra
+* [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters)
+* Servicis d'albergament comercial que fornís una maquina virtuala Debian
+
+## Perque
+
+YunoHost pòt correspondre als besonhs d'una organizacion sens tòca lucrativa e li permetre de servar lo mestritge  de sas donadas.
+
+## Cossí
+
+### YunoHost
+
+YunoHost es una distribucion basada sus Debian GNU/Linux qu’automatiza l’installacion d’un servidor Web personal. La tòca de YunoHost es de permetre als utilizaires d’albergar facilament lors pròpris servicis Web en prepausant una interfàcia Web simpla, als clics, per installar divèrsas aplicacions Web.
+
+![](https://upload.wikimedia.org/wikipedia/commons/0/07/Yunohost_user_portal.png)
+
+YunoHost provesís sul pic:
+* Un sistèma d'aplicacion
+* Una interfàcia web
+* Una interfàcia en linha de comanda (CLI) : Moulinette
+* Un servidor Web : Nginx
+* Un servidor DNS : Dnsmasq
+* Una basa de donadas : MariaDB
+* Un sistèma de salvagarda
+* Un SSO: SSOwat
+* OpenLDAP
+* Corrièls :
+  * SMTP: Postfix
+  * IMAP & POP3 : Dovecot
+  * Un antispam : rspamd, rmilter
+* Servidor XMPP de messatjariá instantanèa : Metronome IM
+
+### Nom de domeni
+
+La primièra causa que vos fa mestièr per installar un servidor YunoHost es un nom de domeni. Lo nom de domeni pòt èsser generalament fornit amb lo servici d’albergament.
+
+### Corrièls
+
+A la prima installacion YunoHost fornís un sistèma de messatjariá disponible en utilizant POP / IMAP / SMTP.
+Los comptes de messatjariá seràn gerits amb l'interfàcia Web o en linha de comanda. Los comptes creats seràn gardats dins l’OpenLDAP.
+
+De paquets suplementaris pòdon èsser installats per provesir mai de foncionalitats al sistèma de messatjariá YunoHost :
+* un webmail en utilizant [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh)
+* ActiveSync utilizant [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh)
+* Grop de distribucion intèrne en utilizant [Mailman](https://github.com/YunoHost-Apps/mailman_ynh)
+
+### Calendièr
+
+Per fornir de calendièrs personals o partejats, vos calrà installar :
+* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
+* [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
+
+### Contacte
+
+Per fornir un sistèma de contacte personal, vos caldrà installar :
+* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh)
+* [Baikal](https://github.com/YunoHost-Apps/baikal_ynh)
+
+### Fichièrs partejats
+
+Per fornir un sistèma de fichièrs partejats : dorsièrs personals e dorsièrs partejats, podètz installar [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh).
+Las fichièrs seràn disponibles d’una interfàcia web estant o amb un client de sincronizacion.
+
+### Comunicacion instantanèa
+
+Tras l’installacion YunoHost fornís sul pic un servidor XMPP per lo qual podètz installar un client Web :  [Jappix](https://github.com/YunoHost-Apps/jappix_ynh)
+
+Podètz tanben installar un servidor Matrix :
+* Lo servidor: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh)
+* Un client web: [Riot](https://github.com/YunoHost-Apps/_ynh)
+
+### Intranet
+
+Per una organizacion sens tòca lucrativa, un bon biais de metre en plaça un intranet es de fornir un wiki que permet als utilizaires intèrne de legir, modificar e ajustar de contengut. Vaquí unes paquets per installar un wiki :
+* [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) utiliza la sintaxi wiki
+* [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) utiliza la sintaxi markdown
+
+### ERP / Comptabilitat
+
+Arriba un moment ont a l’organizacion sens tòca lucrativa li pòsca far besonh un sistèma de comptabilitat / ERP, vaquí doas proposicions :
+* [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh)
+* [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh)
+
+### Site Web Public
+
+Existís mantuns biaisses de construire un site Web public :
+* Un simple site HTML, CSS, etc... en utilizant : [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh)
+* Utilizar un CMS (sistèma de gestion de contengut) coma  [Wordpress](https://github.com/YunoHost-Apps/_ynh), [Drupal](https://github.com/YunoHost-Apps/drupal_ynh) , [Grav](https://github.com/YunoHost-Apps/grav_ynh), [PluXml](https://github.com/YunoHost-Apps/pluxml_ynh)
+
+Mas prepausam quicòm de mai potent : [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh):
+* Drupal qu’es un framework potent de gestion de contengut
+* amb CiviCRM qu’es un CRM OpenSource a destinacion de las organizacions sens tòca lucrativa
+
+#### Adhesion
+
+Amb CiviCRM, poiretz metre en plaça d’adhesions en linha amb pagament.
+
+#### Inscripcions als eveniments
+
+Amb CiviCRM, poiretz metre a disposicion un agenda en linha amb la possibilitat pels membres o lo public de s’inscriure gratuitament o en pagant.
+
+#### Infoletra/Lista de difusion
+
+Çò melhor per gerir aquò es d’utilizar CiviCRM e son modul de lista de difusion.
+
+### Forum
+
+Avètz mantun possibilitats, aver un forum integrat a Drupal o utilizar un sistèma dedicat coma [Flarum](https://github.com/YunoHost-Apps/flarum_ynh).
+
+### Salvagarda
+
+YunoHost fornís son pròpri sistèma de salvagarda. Abans tota mesa a nivèl de paquet, YunoHost salvagarda la version actuala del paquet e la restaura automaticament se la mesa a nivèl se debana pas corrèctament.
+Las salvagardas Yunohost son gardadas localament dins `/home/yunohost.backup/archives`.
+
+Mas per la produccion, la salvagarda gardada localament basta pas, vos cal emplegar d’estrategias de salvagarda suplementàrias :
+* Salvagarda de la maquina virtuala se fornida pel sistèma d’albergament.
+* [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) es un sistèma de salvagarda automatic de vòstre servidor. Vòstras salvagardas pòdon èsser enviadas a mantun endreches, locals o alonhats.
+* [Borg](https://github.com/YunoHost-Apps/borg_ynh) e [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) permeton d’externalizar las salvagardas.
+* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), se avètz dos servidors YunoHost, ajatz los mejans d’aver un servidor segondari que poiretz utilizar se lo primièr ven a foncionar pas mai. Aqueste servidor segondari vos permetrà de restablir una còpia de vòstre servidor per dire de corregir los problèmas de l’autre servidor YunoHost.
+
+### Anar mai luènh
+
+#### Galariá de fotografias federada
+
+* [Pixelfed](https://github.com/YunoHost-Apps/pixelfed_ynh)
+
+#### Galariá àudio federada
+
+* [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh)
+* [Funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh)
+
+#### Galariá vidèo federada
+
+* [PeerTube](https://github.com/YunoHost-Apps/peertube_ynh)
+
+#### Malhums socials federats
+
+* [Mastodon](https://github.com/YunoHost-Apps/mastodon_ynh)
+* [Pleroma](https://github.com/YunoHost-Apps/pleroma_ynh)
+* [Mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh)
+
+#### Blog federats
+
+* [Plume](https://github.com/YunoHost-Apps/plume_ynh)
+* [Writefreely](https://github.com/YunoHost-Apps/writefreely_ynh)
+
+#### Chat
+
+* [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh)
+
+## Conclusion
+
+YunoHost pòt cumplir 99% dels besonhs de las organizacions sens tòca lucrativa, en lor permetent de téner e protegir lors donadas, de causir las aplicacions que vòlon utilizar.
+E se son pas disponiblas, pòdon [crear un paquet per YunoHost](https://yunohost.org/#/contributordoc), es fòrça simple.

From 23c61365a831254072e31704d34bb49da1908b2d Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Fri, 9 Aug 2019 10:28:56 +0000
Subject: [PATCH 073/360] =?UTF-8?q?Cr=C3=A9ation=20de=20la=20page=20et=20a?=
 =?UTF-8?q?jout=20de=20doc=20utilisateur.Liens=20images=20:=20https://fram?=
 =?UTF-8?q?adrop.org/r/xiu0o4Wh2O#K1oQgudcEPT4wo6c++fC2I13TOSzJbh9dcCz2Y6L?=
 =?UTF-8?q?Ais=3D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app_pleroma_fr.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 app_pleroma_fr.md

diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md
new file mode 100644
index 00000000..831ba17a
--- /dev/null
+++ b/app_pleroma_fr.md
@@ -0,0 +1,51 @@
+# <img src="/images/pleroma_logo.png" alt="logo de Pleroma"> Pleroma
+
+| Index |
+|-------|
+| [Découverte de l'interface de Pleroma](#decouvertegeneralepleroma) |
+| [Logiciels Clients pour mobile et ordinateur](#LogicielsClients) |
+| [Liens utiles](#liensutiles) |
+
+Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole Activy Pub qu'il utilise permet d'interagir avec le fediverse composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
+
+## <a name="#decouvertegeneralepleroma">Découverte de l'interface de Pleroma
+Pour ceux et celles qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées.
+
+### Accueil de l'interface
+<img src="/images/capture_globale.png" alt="Capture écran accueil de Pleroma">
+
+1. Barre de menu  
+   + <img src="/images/capture_menu_gauche.png" alt="Capture du bouton à gauche de la barre de menu"> Le bouton à gauche portant le nom de l'instance dans la capture ci-dessus *Meta - Pleroma* renvoie vers la page d'accueil de l'instance. Dans le cas où vous êtes connecté cela vous renverra vers la visualisation de votre *journal*, si ce n'est pas le cas vers *Le réseau connu*.
+   + <img src="/images/capture_menu_droite.png" alt="Capture des boutons à droite de la barre de menu"> Si vous êtes connecté vous aurez trois boutons, si vous ne l'êtes pas il n'y en aura que deux. Dans l'ordre de gauche à droite : 
+      + <img src="/images/capture_menu_droite_chercher_utilisateur.png" alt="Capture bouton chercher un/e utilisateur.trice"> Permet d'ajouter de nouveaux utilisateurs et nouvelles utilisatrices afin de les suivre et ainsi vous abonner à leurs publications. Il est possible de rechercher un·e utilisateur·trice avec seulement son pseudonyme (par exemple : *yunohost*) ou alors sous la forme @pseudonyme@instance.domaine (par exemple : *@yunohost@mastodon.social*) 
+      + <img src="/images/capture_menu_droite_preferences.png" alt="Capture bouton préférences"> Permet d'accéder aux paramétres d'affichages de votre session. /!\ Si vous n'êtes pas connecté·e les modifications effectuées ne seront valables qu'un temps (jusqu'à ce que les cookies de fonctionnement soient effacés).
+      + <img src="/images/capture_menu_droite_deconnexion.png" alt="Capture Déconnexion"> Permet de se déconnecter de l'instance. Si vous n'êtes pas sur votre ordinateur personnel pensez-y !
+
+2. Espace de Publications / Fenêtre de connexion    
+<img src="/images/capture_espace_connexion.png" alt="Fenêtre de connexion à la place de la zone de publications"> Si vous êtes connecté·e cet espace vous permet de publier vos messages et d'y joindre un média (images, GIF, vidéos, etc). Vous êtes limité dans le nombre de caractères, avec Pleroma la limitation est définie par l'administrateur·trice de l'instance. Si vous avez des questions envoyez lui un message.
+
+3. Fenêtre de visualisations  
+C'est ici le centre ~~du monde~~ de Pleroma, vous pourrez y voir les différentes publications de vos contacts ou qui circulent sur l'instance ainsi que les re-toots et qui a publié. 
+
+4. Le journal  
+Cette zone permet de voir les différentes publications des comptes que vous suivez mais aussi l'ensemble des publications visibles sur votre instance. Vous trouverez aussi les messages privés et les notifications où vous trouverez tous vos toots et les publications où vous avez été cité.
+
+5. Interface utilisateur·trice  
+Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agencements : un spécifique à Pleroma et un fork (une copie) de l'agencement de Mastodon, selon vos préférences d'usages et de visualisations ; à vous de faire votre choix.
+
+6. Notifications  
+On retrouve dans cette zone les messages où vous avez été cité, mais aussi les abonnements à votre compte.
+
+## <a name="LogicielsClients"> Applications clients
+
+| Nom de l'applications | Plateforme | Multi-comptes | Autre réseaux supportés | Play Store | F-Droid | Apple Store |
+|---|---|---|---|---|---|---|
+| Tusky | Android | Oui | Mastodon | [https://play.google.com/id=com.keylesspalace.tusky](https://play.google.com/store/apps/details?id=com.keylesspalace.tusky) | [f-droid.org/com.keylesspalace.tusky](https://f-droid.org/fr/packages/com.keylesspalace.tusky/) |  
+| Fedilab | Android | Oui | Mastodon, Pleroma, Peertube, GNU Social, Friendica, Pixelfed | [play.google.com/app.fedilab.android](https://play.google.com/store/apps/details?id=app.fedilab.android&hl=fr) | [f-droid.org//fr.gouv.etalab.mastodon](https:/f-droid.org/fr/packages/fr.gouv.etalab.mastodon/)
+| Twidere | Android | Oui | Twitter, Mastodon | [play.google.com/org.mariotaku.twidere](https://play.google.com/store/apps/details?id=org.mariotaku.twidere) | [https://f-droid.org/org.mariotaku.twidere](https://f-droid.org/fr/packages/org.mariotaku.twidere/) | 
+| Librem Social | Android | Non | ? | [play.google.com/one.librem.social](https://play.google.com/store/apps/details?id=one.librem.social&hl=fr) | [https://f-droid.org/one.librem.social](https://f-droid.org/fr/packages/one.librem.social) | |
+
+## <a name="liensutiles">Quelques liens utiles</a>
++ Site officiel : [pleroma.social (En anglais)](https://pleroma.social)
++ Trouver d'autres instances de Pleroma : [fediverse.network/pleroma](https://fediverse.network/pleroma)
++ Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)
\ No newline at end of file

From d4da5f674a9504831fc21ebacadd2847e671a23e Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 10 Aug 2019 23:54:10 +0200
Subject: [PATCH 074/360] Add some info about virtualbox install

---
 install_on_virtualbox.md    | 3 ++-
 install_on_virtualbox_fr.md | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md
index 98db3a96..fa8c0e3b 100644
--- a/install_on_virtualbox.md
+++ b/install_on_virtualbox.md
@@ -24,7 +24,8 @@ machine (old computer, ARM board, ...) or a VPS online.
 
 <br>
 
-* 256MB RAM is the minimum required, but at least 512MB is recommended.
+* It's okay if you can only have 32-bit versions, just be sure that you downloaded the 32-bit image previously.
+* 256MB RAM is the minimum required, but at least 512MB is recommended (1Go or more if you can).
 * 8GB storage is the minimum required.
 
 ---
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
index 60463d2b..4e454f85 100644
--- a/install_on_virtualbox_fr.md
+++ b/install_on_virtualbox_fr.md
@@ -24,7 +24,8 @@ ligne.
 
 <br>
 
-* 256Mo de RAM est le minimum requis, 512Mo est recommandé.
+* Ce n'est pas grave si seulement la version 32-bit est dispo, mais dans ce cas soyez sur d'avoir téléchargé l'image 32 bit précédemment.
+* 256Mo de RAM est le minimum requis, 512Mo est recommandé (1Go ou plus si vous pouvez).
 * 8Go de stockage minimum requis.
 
 ---

From b06b2e9983ea2c5b30c77179112883b7f879a549 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 10 Aug 2019 23:57:45 +0200
Subject: [PATCH 075/360] Add a note about some virtualbox error

---
 install_on_virtualbox.md    | 4 ++++
 install_on_virtualbox_fr.md | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md
index fa8c0e3b..238100f2 100644
--- a/install_on_virtualbox.md
+++ b/install_on_virtualbox.md
@@ -58,6 +58,10 @@ You will have to select your ISO image here, then you should see the YunoHost's
 
 <br>
 
+If you encounter the error "VT-x is not available", you need probably need to enable Virtualization in the BIOS of your computer.
+
+<br>
+
 <img src="/images/virtualbox_3.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
 
 <br>
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
index 4e454f85..f83a3151 100644
--- a/install_on_virtualbox_fr.md
+++ b/install_on_virtualbox_fr.md
@@ -56,6 +56,10 @@ Démarrez votre machine virtuelle
 
 Vous devez sélectionner ici l’image ISO, puis vous devriez voir cet écran d’accueil YunoHost.
 
+<br>
+
+Si vous rencontrez l'erreur "VT-x is not available", il vous faut probablement activer (enable) la virtualisation dans les options du BIOS de votre ordinateur.
+
 <br>
    
 <img src="/images/virtualbox_3.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">

From 235f8b0af1b2fbaf1800802fff1b5318e2aa8c87 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 11 Aug 2019 00:17:59 +0200
Subject: [PATCH 076/360] Add a warning about ISO install being broken right
 now

---
 images.md                   | 4 ++++
 images_fr.md                | 4 ++++
 install_iso.md              | 4 ++++
 install_iso_fr.md           | 4 ++++
 install_on_virtualbox.md    | 3 +++
 install_on_virtualbox_fr.md | 4 ++++
 6 files changed, 23 insertions(+)

diff --git a/images.md b/images.md
index be1840bb..f008170e 100644
--- a/images.md
+++ b/images.md
@@ -8,6 +8,10 @@ This page requires Javascript enabled to display properly :s.
 
 N.B. : Even if the image does not corresponds to the latest version of YunoHost, you can still use it and do a regular system upgrade after setting up!
 
+<div class="alert alert-error" markdown="1">
+The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
+</div>
+
 <div id="cards-list">
 </div>
 
diff --git a/images_fr.md b/images_fr.md
index 4b03c4f9..4499ccf8 100644
--- a/images_fr.md
+++ b/images_fr.md
@@ -8,6 +8,10 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
 
 N.B. : Même si l'image de corresponds pas à la dernière version de YunoHost, vous pouvez tout de même l'utiliser puis faire une mise à jour du système après l'installation !
 
+<div class="alert alert-error" markdown="1">
+L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
+</div>
+
 <div id="cards-list">
 </div>
 
diff --git a/install_iso.md b/install_iso.md
index 059f45eb..0e391429 100644
--- a/install_iso.md
+++ b/install_iso.md
@@ -15,6 +15,10 @@ You can use any computer with **256MB RAM or more**.
 * A **USB stick** of at least 1GB capacity **OR** a standard **blank CD**
 * ***Particular case*** : If your server has no graphic card, [prepare iso for booting with serial port](https://github.com/luffah/debian-mkserialiso).
 
+<div class="alert alert-error" markdown="1">
+The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
+</div>
+
 ---
 
 ## Installation steps
diff --git a/install_iso_fr.md b/install_iso_fr.md
index 63840dd3..51536fad 100644
--- a/install_iso_fr.md
+++ b/install_iso_fr.md
@@ -14,6 +14,10 @@
 * Une **clé USB** d’une capacité minimum d’1Go **OU** un **CD vierge** standard
 * ***Cas particulier*** : Si votre serveur n'a pas de carte graphique, il faut [préparer un iso qui démarre sur le port série](https://github.com/luffah/debian-mkserialiso).
 
+<div class="alert alert-error" markdown="1">
+L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
+</div>
+
 ---
 
 ## Étapes d’installation
diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md
index 238100f2..09cfa6a9 100644
--- a/install_on_virtualbox.md
+++ b/install_on_virtualbox.md
@@ -9,6 +9,9 @@
 * An x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine.
 * The latest stable **YunoHost ISO image**, available [here](/images).
 
+<div class="alert alert-error" markdown="1">
+The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
+</div>
 
 <div class="alert alert-warning" markdown="1">
 N.B. : Installing YunoHost in a VirtualBox is usually intended for testing. To
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
index f83a3151..1f6875e0 100644
--- a/install_on_virtualbox_fr.md
+++ b/install_on_virtualbox_fr.md
@@ -9,6 +9,10 @@
 * Un ordinateur x86 avec VirtualBox installé et assez de RAM disponible pour lancer une petite machine virtuelle.
 * La dernière **image ISO YunoHost** stable, disponible [ici](/images_fr).
 
+<div class="alert alert-error" markdown="1">
+L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
+</div>
+
 <div class="alert alert-warning" markdown="1">
 N.B. : Installer YunoHost dans une VirtualBox est utile pour tester la
 distribution. Pour réellement s'autohéberger sur le long terme, il vous faudra

From da4c3fabccbaa07fa37f0e3b056c0ae34f307342 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 11 Aug 2019 10:33:37 +0200
Subject: [PATCH 077/360] Uh I meant alert-danger

---
 images.md                   | 2 +-
 images_fr.md                | 2 +-
 install_iso.md              | 2 +-
 install_iso_fr.md           | 2 +-
 install_on_virtualbox.md    | 2 +-
 install_on_virtualbox_fr.md | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/images.md b/images.md
index f008170e..f06d8b79 100644
--- a/images.md
+++ b/images.md
@@ -8,7 +8,7 @@ This page requires Javascript enabled to display properly :s.
 
 N.B. : Even if the image does not corresponds to the latest version of YunoHost, you can still use it and do a regular system upgrade after setting up!
 
-<div class="alert alert-error" markdown="1">
+<div class="alert alert-danger" markdown="1">
 The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
 </div>
 
diff --git a/images_fr.md b/images_fr.md
index 4499ccf8..e5ee45e6 100644
--- a/images_fr.md
+++ b/images_fr.md
@@ -8,7 +8,7 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
 
 N.B. : Même si l'image de corresponds pas à la dernière version de YunoHost, vous pouvez tout de même l'utiliser puis faire une mise à jour du système après l'installation !
 
-<div class="alert alert-error" markdown="1">
+<div class="alert alert-danger" markdown="1">
 L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
 </div>
 
diff --git a/install_iso.md b/install_iso.md
index 0e391429..b4fb9b8f 100644
--- a/install_iso.md
+++ b/install_iso.md
@@ -15,7 +15,7 @@ You can use any computer with **256MB RAM or more**.
 * A **USB stick** of at least 1GB capacity **OR** a standard **blank CD**
 * ***Particular case*** : If your server has no graphic card, [prepare iso for booting with serial port](https://github.com/luffah/debian-mkserialiso).
 
-<div class="alert alert-error" markdown="1">
+<div class="alert alert-danger" markdown="1">
 The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
 </div>
 
diff --git a/install_iso_fr.md b/install_iso_fr.md
index 51536fad..6d37b1ff 100644
--- a/install_iso_fr.md
+++ b/install_iso_fr.md
@@ -14,7 +14,7 @@
 * Une **clé USB** d’une capacité minimum d’1Go **OU** un **CD vierge** standard
 * ***Cas particulier*** : Si votre serveur n'a pas de carte graphique, il faut [préparer un iso qui démarre sur le port série](https://github.com/luffah/debian-mkserialiso).
 
-<div class="alert alert-error" markdown="1">
+<div class="alert alert-danger" markdown="1">
 L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
 </div>
 
diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md
index 09cfa6a9..eb5c9188 100644
--- a/install_on_virtualbox.md
+++ b/install_on_virtualbox.md
@@ -9,7 +9,7 @@
 * An x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine.
 * The latest stable **YunoHost ISO image**, available [here](/images).
 
-<div class="alert alert-error" markdown="1">
+<div class="alert alert-danger" markdown="1">
 The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
 </div>
 
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
index 1f6875e0..984d3ff1 100644
--- a/install_on_virtualbox_fr.md
+++ b/install_on_virtualbox_fr.md
@@ -9,7 +9,7 @@
 * Un ordinateur x86 avec VirtualBox installé et assez de RAM disponible pour lancer une petite machine virtuelle.
 * La dernière **image ISO YunoHost** stable, disponible [ici](/images_fr).
 
-<div class="alert alert-error" markdown="1">
+<div class="alert alert-danger" markdown="1">
 L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
 </div>
 

From 35317f8f02e92b4381d2136f22ca75d89e6c6818 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 11 Aug 2019 17:28:18 +0200
Subject: [PATCH 078/360] ISO installs should be fixed now ?

---
 images.md                   | 4 ----
 images_fr.md                | 4 ----
 install_iso.md              | 4 ----
 install_iso_fr.md           | 4 ----
 install_on_virtualbox.md    | 4 ----
 install_on_virtualbox_fr.md | 4 ----
 6 files changed, 24 deletions(-)

diff --git a/images.md b/images.md
index f06d8b79..be1840bb 100644
--- a/images.md
+++ b/images.md
@@ -8,10 +8,6 @@ This page requires Javascript enabled to display properly :s.
 
 N.B. : Even if the image does not corresponds to the latest version of YunoHost, you can still use it and do a regular system upgrade after setting up!
 
-<div class="alert alert-danger" markdown="1">
-The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
-</div>
-
 <div id="cards-list">
 </div>
 
diff --git a/images_fr.md b/images_fr.md
index e5ee45e6..4b03c4f9 100644
--- a/images_fr.md
+++ b/images_fr.md
@@ -8,10 +8,6 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
 
 N.B. : Même si l'image de corresponds pas à la dernière version de YunoHost, vous pouvez tout de même l'utiliser puis faire une mise à jour du système après l'installation !
 
-<div class="alert alert-danger" markdown="1">
-L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
-</div>
-
 <div id="cards-list">
 </div>
 
diff --git a/install_iso.md b/install_iso.md
index b4fb9b8f..059f45eb 100644
--- a/install_iso.md
+++ b/install_iso.md
@@ -15,10 +15,6 @@ You can use any computer with **256MB RAM or more**.
 * A **USB stick** of at least 1GB capacity **OR** a standard **blank CD**
 * ***Particular case*** : If your server has no graphic card, [prepare iso for booting with serial port](https://github.com/luffah/debian-mkserialiso).
 
-<div class="alert alert-danger" markdown="1">
-The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
-</div>
-
 ---
 
 ## Installation steps
diff --git a/install_iso_fr.md b/install_iso_fr.md
index 6d37b1ff..63840dd3 100644
--- a/install_iso_fr.md
+++ b/install_iso_fr.md
@@ -14,10 +14,6 @@
 * Une **clé USB** d’une capacité minimum d’1Go **OU** un **CD vierge** standard
 * ***Cas particulier*** : Si votre serveur n'a pas de carte graphique, il faut [préparer un iso qui démarre sur le port série](https://github.com/luffah/debian-mkserialiso).
 
-<div class="alert alert-danger" markdown="1">
-L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
-</div>
-
 ---
 
 ## Étapes d’installation
diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md
index eb5c9188..0dc98eac 100644
--- a/install_on_virtualbox.md
+++ b/install_on_virtualbox.md
@@ -9,10 +9,6 @@
 * An x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine.
 * The latest stable **YunoHost ISO image**, available [here](/images).
 
-<div class="alert alert-danger" markdown="1">
-The current installation using our Virtualbox / x86 ISO is broken and will fail for now... We are investigating the issue [here](https://github.com/YunoHost/issues/issues/1382). In the meantime, a workaround is to use the official Debian 9.x (not 10 !) image and install YunoHost on top of it as explained [here](https://yunohost.org/#/install_on_debian)
-</div>
-
 <div class="alert alert-warning" markdown="1">
 N.B. : Installing YunoHost in a VirtualBox is usually intended for testing. To
 run an actual server on the long-term, you usually need a dedicated physical
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
index 984d3ff1..f83a3151 100644
--- a/install_on_virtualbox_fr.md
+++ b/install_on_virtualbox_fr.md
@@ -9,10 +9,6 @@
 * Un ordinateur x86 avec VirtualBox installé et assez de RAM disponible pour lancer une petite machine virtuelle.
 * La dernière **image ISO YunoHost** stable, disponible [ici](/images_fr).
 
-<div class="alert alert-danger" markdown="1">
-L'installation à l'aide de notre ISO Virtualbox / x86 est actuellement cassée ... Nous investiguons le problème [ici](https://github.com/YunoHost/issues/issues/1382). En attendant, il est possible de contourner le problème est d'utiliser l'ISO officielle Debian 9.x (pas 10 !) et d'installer YunoHost par dessus comme expliqué [ici](https://yunohost.org/#/install_on_debian)
-</div>
-
 <div class="alert alert-warning" markdown="1">
 N.B. : Installer YunoHost dans une VirtualBox est utile pour tester la
 distribution. Pour réellement s'autohéberger sur le long terme, il vous faudra

From 5f5c6e8bfc152715132a79568fc49cf7f521081e Mon Sep 17 00:00:00 2001
From: Laurent Peuch <cortex@worlddomination.be>
Date: Sun, 11 Aug 2019 19:47:38 +0200
Subject: [PATCH 079/360] [mod] add images for PR #1043 by external contrib on
 pleroma app

---
 images/capture_espace_connexion.png            | Bin 0 -> 10950 bytes
 images/capture_globale.png                     | Bin 0 -> 272681 bytes
 images/capture_menu_droite.png                 | Bin 0 -> 1588 bytes
 ...apture_menu_droite_chercher_utilisateur.png | Bin 0 -> 757 bytes
 images/capture_menu_droite_deconnexion.png     | Bin 0 -> 576 bytes
 images/capture_menu_droite_preferences.png     | Bin 0 -> 840 bytes
 images/pleroma_logo.png                        | Bin 0 -> 1929 bytes
 7 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 images/capture_espace_connexion.png
 create mode 100644 images/capture_globale.png
 create mode 100644 images/capture_menu_droite.png
 create mode 100644 images/capture_menu_droite_chercher_utilisateur.png
 create mode 100644 images/capture_menu_droite_deconnexion.png
 create mode 100644 images/capture_menu_droite_preferences.png
 create mode 100644 images/pleroma_logo.png

diff --git a/images/capture_espace_connexion.png b/images/capture_espace_connexion.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2edd32de8968a1cbc5d013bbf074cae40e1a9b0
GIT binary patch
literal 10950
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
E1AzzVjsO4v

literal 0
HcmV?d00001

diff --git a/images/capture_globale.png b/images/capture_globale.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b2b84d9fdb4e82b49555911d6b24666dc77bbbf
GIT binary patch
literal 272681
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%0A{Xa{2SSq~MZe7H^
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
NV`FJ+K``@7`VS%s7Ha?i

literal 0
HcmV?d00001

diff --git a/images/capture_menu_droite.png b/images/capture_menu_droite.png
new file mode 100644
index 0000000000000000000000000000000000000000..60658ac744ad20c5c688d5f4b8a7b47b1ab0224b
GIT binary patch
literal 1588
zcmcgr|2LBh7+<A(i=)%&>UvM;=DpQO>21xdx5Dg;jWHXsH=AUe+049Dx|)`aiOR*~
zG__YlU+9ZSNktK*quUCt-p=Ky+v#?2MRXl?Q+Lk&AMSHLpXc*DpI@F|K2Kp}M2NHF
z3P%Eg;LKq&1a>vp2`^e;?{y|+y<O(*5rhO2>aFg>_QgR?3#SnXjm1u1b}u9l77!x2
z(M$k@0FVTLWB{ZBAPj(80Wc6C!T@nQ;IkD3A&^M%2BA%M5TQ*Q17Q$?*F)6JWGWm0
zfHVMP0>mHyWCI`v@Sy=@1^{sZG6x`Yf$c2s%`||;1%mkiO8~H=fQTJHbS!`%fG7?O
zVuC@T-eDY&9SO1pV00`fii7zAn7;$I5AmW+yTvpj6tWQx1tA_0Vo)hTFwB_4Rt6j(
zCPES)C;{H045Vm4Xx}!n27)wO$OmCayN#lx!&*A|U>KDa9?pwL7*a7$A_|r74pk&Z
zsU(P6CPtH#JHwJ>(Mnm2Vy_&{Nc<%$MF&EMw~&fpxCDmsf=C4{$jBy{Sdf_oRfdtx
zQE+tx=}a`mvJ<Y2B3+1vF2$1SMbt(S)D%x@6j7Vvsn=xzZF2aoVw+(Xt7sS7APv`L
zAm&U&r&Z=1N-5S#by~DqMz2qxRcC}=)<j>{Ah#8?JDK6l8l+W=T+&K9RDoUUzz1m1
zqrG&imSfe1c4`ruhHcYwa4qLZj^c<;S(KwN<}1y5IhLDZI;J)sQyUA=ibAwnFR9f_
zF6*WB<?1RUdhP^TkD=F(r8JkS?igh^%hlI0v;{-kD$qs?+G0ViI___IyvO;x4t;Ew
z9<k;}TJr@xN8@d|Tw4JT&*eVNjlzG8vX#d68^yNrUAR$*pFr>m5so1}$CG=?RZos5
zcVK9j8GUR<`%MztNhy9J0mtl+;8+rFmgATL$5g!-id*7vi@3vrc3IFz_R|)-Bf~99
z+>(M@QgMs=sRgyonW#Oe|7T5Gy)E{8i%~YRhd@};Imdb3X|+-UVSXEjL5miKjFs=u
zMA4S!`={z62STe_Zl|F87vCQo6uXg`ajh-%^!*!{j%S6ObyF#(L5woYnKp|)>P{U@
zBTYS)PQCrB(&JojGI>Q2tL9U;OR>1^f_(Lwm}kP#Bd3DXJrms~R}!wKW!4PLCsJ;E
z$3&{GITem}3x!$6^$M(T6x8$>EvrW+2H&fGZe9y%{@8GKR4MN|a3~3)^fl!%oYqw?
zADTDeyNYR;UDZB?)#0C0hh#Z!9vuG!w{axKm`Kb^uCZ=Z%un$5UdQ6^TKVCOTW$7N
zzPID2X+u)yJ5cAc+;&A!vpN+X{;s<0pwkDsi?PV$lfln<d&WyqM#tR81%jeQuFU5X
z3r23WZ|!##+;{k0*yz>%D8S_R(D0&7>RHl!6VJTje=)1zdmpwRC}I$g`mL$L8;FyB
zulvcBWQUmm+C!ESJMieAm6`3-?CmUMT+J&#t9Q87aE&jcKj^=c%e!;)ZryB)S>6QN
zd>if|>y4i?(ta%L3R>zqkwsdbyKJ9(T;C06bg#!AMN?<*S#!D5cy{U2(j_kqpTuO5
zD*shbp>@e&iC23uXXd5%tKjo;PhRJuioB6~0}RHp>z?W%pQ8=|B@K>^A&n)JAKsjM
z0Uc<)8lphf6`=fKvyhdT?$a$gAJEmaP%!QvbM<{og#6Wc`N}$0o|Asawc&<`%yH!N
zESf!b+9h4zR{wgm)+@_0bC~5CvvzWN=LCaG{CoJ!=)I6>-#%x?>b8??&;3;^`~$v-
z+q=hnUx+rlJ{HtQP0A?4tdnx>Agye0@ksBfVm$fKK$5TUqRW%#Bx1uD^V{yawQs84
zGQU2Xk*2lYpX5L>A5Al<KmF+|EYoFNeJ{V%yQ<GocOhgZ{mHvd_f{9%9>&x8-_E}s
i=>IQey~$twkIgPLoTdo|3L>p@-^5`?FzSO7^#1}=B!=Yx

literal 0
HcmV?d00001

diff --git a/images/capture_menu_droite_chercher_utilisateur.png b/images/capture_menu_droite_chercher_utilisateur.png
new file mode 100644
index 0000000000000000000000000000000000000000..d29a1ffee0473f0c076dc76dfc6a9897f618917e
GIT binary patch
literal 757
zcmV<R0t)?!P)<h;3K|Lk000e1NJLTq001rk001rs0ssI2*xS5d00001b5ch_0Itp)
z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0*XmQK~z{rW0X)b
zU>F>L2}%zFFzOU+VALttz^GHOfl;Sm1LT&roZLbB0@7Se9KV0xeeiC_<6qyP666Ci
zoWf*oqh4w!F2VxkGcf%7^5o&f#SeG?hVsb+%she;P$qFe$x5rsS&SbgVj0=^1WlxW
z9>4VEJye7oKx$eMOg9tdg0fKnmy%MEDMcxdM9nIK%6w2J24Iz!6@)U$0@Tbwyj*Nh
z7FmEqr@Z?0@h_B#37)?E2xXB4NOa1lXIrj+hqBSY_m}%lBIRgv&AoLF2Y{$rGZ`vG
z0FW9%|JHB5w&}r7^q~3vVb{i+b3Z|OAi&JT3}X-(ZA52gPQmgBojPB&M196H8?VfK
z_*;yJm6!Sd&ySxjUbxe>@g<A7PJftsoFT9J&o3ul{QfN~mY~E9*7@z~!PjTNEc}4D
zB92v{B~{Nx1QvvUe?GhUWX;*Pw?J{lqNXhoqRao`+?{E+euAYLzkT|8&p`Wtizt};
zdS%nq>0lOqK$KIATn)P|`Jn-h4g9@#(|6@tIbjw=39O|&#YPy+db@Sj-R)o&2>knV
z?-ll1f*7Z8Ri&A^;f=;O=gx=R5MC1{Cju3~18@cs5y_TMNR70*flNSzQzY2=p)8z$
znTe6%&wtz{4ifnL?-!JX4v2^#D|iCL4c<L&op~3fW=7~DHrbL|uHXPdvK7T9^CC5;
zf>DPB)*6!lAi^o1etm|r@BwBv9wk+AZ7@<1VTFp40*G+Rl~-rq{DZP-35bcHj}0rX
z9eMN}qqN5ke*gIV;MsSEAAf#8__)(48X%)VNh?65WJ?V&>J)5X)G64&s8g_kQKw)7
nqfWsFMxBBUj5-AqFfafBTUx}LW!6Dh00000NkvXXu0mjf`*KvG

literal 0
HcmV?d00001

diff --git a/images/capture_menu_droite_deconnexion.png b/images/capture_menu_droite_deconnexion.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba2b7c79473ed721623f7e8f1d1430d77e0f86d6
GIT binary patch
literal 576
zcmV-G0>Ax<P)<h;3K|Lk000e1NJLTq001ih001ip0ssI2Za?Oi00001b5ch_0Itp)
z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0o6%FK~z{rW0X)b
zU>H!q1f>TKjJjad1t2i$f>9TMz^Drt7)YrXSh@V{q};_=p<EF7ePREd*)Je$76n0u
z2k-wtIK%^H9zh8x6F(4=oR*>Mr_3)V%!7oOKizz`?;S|q+RJcqpuFYp*IOQw<_IFg
zfGHu|GC}?S-J@4Z_I`Q~6+{7!KBo0X+zbrAZtgjke(VQSln6j%IuJ8cVP$yys0N4i
zNPtb<#b~A#2b4zyAkqbl%*?<@|N9)u#Schx1d*{IIkQe({oYN7B@j1oX9mdWaDtgI
zz#%B4EP|9s|NgwT|9ln^(Lr8r<TKC{*H%SADAof3GrN|f;WQ#bf|lh0agLyIi3D<l
zMg`vdPGc7^FnoLXauu}5!VYNbf^YY3<}7)B56Z(1$aBG;uiv38Jb)PMfq=Z+hy}pP
zL@4-n?^f~3XV-s2xp)9gVu5(;fq+OCe0&H@P13^o;)K<Idw8djXzPK1*xH%PNPUfu
zB-fwsPab{x_!laOTsuQz;oGzO{R<!NCfa%+Ahve?{rv6m4@|n!0y2_(;@E2ES3ek3
znchxc{p1iS)&l`4Efm@S+Li~zfKeBWx&Q=5T`=kb5EymAs0$bv7#ILKa-K{3el_v{
O0000<MNUMnLSTZH*Y{)q

literal 0
HcmV?d00001

diff --git a/images/capture_menu_droite_preferences.png b/images/capture_menu_droite_preferences.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce7d05edd7af02a0f004a25cafd3bead4ec3114c
GIT binary patch
literal 840
zcmV-O1GoH%P)<h;3K|Lk000e1NJLTq001ih001ip0ssI2Za?Oi00001b5ch_0Itp)
z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0^LbOK~z{rW0X)b
zU>H!q1f>TKjJjad1t2i$f>9TM00m{Dv{;L!upldt_51qKds80$g9wuf$PWWYLwOr5
zacxx~l5x=Eg^H36NO1wHKvjy>wiE?#P7qH+fEz3d0wMxjAc~c@D9&<Aio7c*V2A}o
z#{$swC|y5!HX!rw*Z0?7vM9^(a<V|=fI@#>KYaU5TvVPL<fU&9?=&uZa`HDsjsPIm
z1+IQ()dpaX5(nO0xDd4I1C)ao5E~1-k34(u7s@6K{(io6jVSAZfSE^70?Nb>zJI#(
zpT}L13m)*e!SCA#E*4+-1LY9{B&5Xe%#6q>?Ax<PbLSj!XgUx$`Qp|GKam26m4}-M
zcftS>=|Dwhf{nP6Fef)R3o}%R;qQz4rL!KMgYtlYBPZ54L=o=7zu&+7{`Bts@gp}U
z+<^+=0z`y?7{7rWFCUWiKydHcV<hW=;K!7!Z+<}8K)}q&!yzswsVN5K;{l|U2MF-{
z`!|dd@YC-vP!?%`JQuKvit<32FkqxCAOdBQ28hTDkKZ4-`R38vFMrth<oKac!7ItD
z_U858H_(vaQd4Mm6z7AbzaNhuZ#?&O)9!mK@BH~fsJbAfX3|mJ93+iY0sMXQ=*`QY
z3=HhtD$+dch-C8X!sZhN=ZUSTh>r!1OaoEW`iEIW4qP+IAzKdwY`O+gN>DaoK&%TS
z?NvjRK$QY9fLT_l-HRW}Aq0qZ!N=!c-;hu$|9JT5Gn7pT5L+t$e*6C1CsqqpJ|3oD
zk5697Sp8g7Nm2oxAwIoWw)oPLubh@LTx?9gZtlB~f0nqKk$4vX!TXo*_P+V~@7(R0
zGvB`a`pGISW+wqH1phvIl7IZ;(+96MJp9UV`(fjGq{4|1Agw%jfBpHa`_L-q=$o(b
zXnFDG6NK^Y(d*gQNw6LWC}<~A36NJNQWK22VAKU5FzSL)7l6R13kKc=3=9BtQs-*F
SwCKVB0000<MNUMnLSTY*)PH;c

literal 0
HcmV?d00001

diff --git a/images/pleroma_logo.png b/images/pleroma_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac82ca0c6661d1fbe3bb33e411ac8fa265b2c7bf
GIT binary patch
literal 1929
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
U$K5Ft(KiY}I-Iw!vkkcQFPY@6&j0`b

literal 0
HcmV?d00001


From 5025a3c1eb6a5d6e338cc7d8eb069f8400c9216d Mon Sep 17 00:00:00 2001
From: gmar <gmar@marsan.me>
Date: Tue, 13 Aug 2019 17:47:08 +0200
Subject: [PATCH 080/360] Spanish translation for the website

---
 dns_config_es.md            |  73 +++++++++++++++++++++
 dns_es.md                   |  42 ++++++++++++
 dns_nohost_me_es.md         |  53 ++++++++++++++++
 hardware_es.md              |  14 ++++
 images_es.md                | 123 ++++++++++++++++++++++++++++++++++++
 install_es.md               |  80 +++++++++++++++++++++++
 install_iso_es.md           |  38 +++++++++++
 install_manually_es.md      |  18 ++++++
 install_on_arm_board_es.md  |  51 +++++++++++++++
 install_on_raspberry_es.md  |  60 ++++++++++++++++++
 install_on_virtualbox_es.md |  77 ++++++++++++++++++++++
 install_on_vps_es.md        |  20 ++++++
 postinstall_es.md           |  63 ++++++++++++++++++
 try_es.md                   |  29 +++++++++
 vagrant_es.md               |  60 ++++++++++++++++++
 15 files changed, 801 insertions(+)
 create mode 100644 dns_config_es.md
 create mode 100644 dns_es.md
 create mode 100644 dns_nohost_me_es.md
 create mode 100644 hardware_es.md
 create mode 100644 images_es.md
 create mode 100644 install_es.md
 create mode 100644 install_iso_es.md
 create mode 100644 install_manually_es.md
 create mode 100644 install_on_arm_board_es.md
 create mode 100644 install_on_raspberry_es.md
 create mode 100644 install_on_virtualbox_es.md
 create mode 100644 install_on_vps_es.md
 create mode 100644 postinstall_es.md
 create mode 100644 try_es.md
 create mode 100644 vagrant_es.md

diff --git a/dns_config_es.md b/dns_config_es.md
new file mode 100644
index 00000000..879ed0e6
--- /dev/null
+++ b/dns_config_es.md
@@ -0,0 +1,73 @@
+# Configuración de la zona DNS
+
+DNS (sistema de nombre de dominios) es un elemento esencial de Internet que permite convertir direcciones comprensibles por seres humanos (los nombres de dominio) en direcciones comprensibles por la máquina (los IPs). Para que tu servidor esté fácilemente por otros seres humanos, y para que servicios como el mail funcionen correctamente, es preciso configurar la zona DNS de tu dominio.
+
+Si utilizas un [dominio automático](/dns_nohost_me_es) provecho por el Proyecto Yunohost, la configuración debería ser automática. Si quieres utilizar tu propio nombre de dominio (comprado a un registrar), hay que configurar manualmente tu proprio nombre de dominio vía la interfaz de tu registrar.
+
+
+## Configuración DNS recomendada
+
+YunoHost provee una configuración DNS recomendada, accesible vía :
+- la webadmin, en Dominios > tu.dominio.tld > Configuración DNS ;
+- o la linea de comando, `yunohost domain dns-conf tu.dominio.tld`
+
+Para algunas necesidades o instalaciones particulares, y si sabes lo que estás haciendo, a lo mejor tendrás que modificar esa recomendación o añadir otros registros (e.g. para administrar subdominios).
+
+La configuración recomendada típicamente se parece a :
+
+```bash
+#
+# Registros IPv4/IPv6 básicos 
+#
+@ 3600 IN A 111.222.33.44
+* 3600 IN A 111.222.33.44
+
+# (Si tu servidor es compatibles con el IPv6, habrá registros AAAA)
+@ 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111
+* 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111
+
+#
+# XMPP
+#
+_xmpp-client._tcp 3600 IN SRV 0 5 5222 tu.dominio.tld.
+_xmpp-server._tcp 3600 IN SRV 0 5 5269 tu.dominio.tld.
+muc 3600 IN CNAME @
+pubsub 3600 IN CNAME @
+vjud 3600 IN CNAME @
+
+#
+# Mail (MX, SPF, DKIM et DMARC)
+#
+@ 3600 IN MX 10 votre.domaine.tld.
+@ 3600 IN TXT "v=spf1 a mx ip4:111.222.33.44 -all"
+mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=uneGrannnnndeClef"
+_dmarc 3600 IN TXT "v=DMARC1; p=none"
+```
+
+Pero puede ser un poco más fácil entenderla viéndola de esta manera :
+
+
+| Tipo    | Nombre                 | Valor                                                 |
+| :-----: | :--------------------: | :----------------------------------------------------: |
+|  **A**  |   **@**                |  `111.222.333.444` (tu IPv4)                        |
+|    A    |   *                    |  `111.222.333.444` (tu IPv4)                        |
+|  AAAA   |   @                    |  `2222:444:8888:3333:bbbb:5555:3333:1111` (tu IPv6) |
+|  AAAA   |   *                    |  `2222:444:8888:3333:bbbb:5555:3333:1111` (tu IPv6) |
+| **SRV** | **_xmpp-client._tcp**  |  `0 5 5222 tu.dominio.tld.`                         |
+| **SRV** | **_xmpp-server._tcp**  |  `0 5 5269 tu.dominio.tld.`                         |
+|  CNAME  |   muc                  |  `@`                                                   |
+|  CNAME  |   pubsub               |  `@`                                                   |
+|  CNAME  |   vjud                 |  `@`                                                   |
+| **MX**  | **@**                  |  `tu.dominio.tld.`     (y prioridad: 10)            |
+|   TXT   |   @                    |  `"v=spf1 a mx ip4:111.222.33.44 -all"`                |
+|   TXT   |  mail._domainkey       |  `"v=DKIM1; k=rsa; p=uneGrannnndeClef"`                |
+|   TXT   |  _dmarc                |  `"v=DMARC1; p=none"`                                  |
+
+#### Algunas notas a propósito de esta tabla :
+
+- Todos los registros no son necesarios. Para una instalación mínima, solos los registros en negrita son necesarios.
+- El punto al final de `tu.dominio.tld.` es importante ;) ;
+- `@` corresponde a `tu.dominio.tld`, y por ejemplo `muc`corresponde a `muc.tu.dominio.tld` ;
+- ¡ Los valores mostrados son ejemplos ! Refiérete a la configuración generada por tu servidor qué valores utilizar.
+- Recomendamos un [TTL](https://en.wikipedia.org/wiki/Time_to_live) de 3600 (1 hora). Pero puedes utilizar otro valor si sabes lo que estás haciendo ;
+- ¡ No pongas registros IPv6 si no estás seguro que el IPv6 funcione en tu servidor ! Tendrás problemas con Let's Encrypt si no es el caso :-)
diff --git a/dns_es.md b/dns_es.md
new file mode 100644
index 00000000..3fae91a9
--- /dev/null
+++ b/dns_es.md
@@ -0,0 +1,42 @@
+# DNS : sistema de nombre de dominios
+
+La configuración de los DNS es una etapa crucial para que tu servidor esté accesible. En efecto, si tus DNS están mal configurados, con mucha certeza tendrás problemas de conexión a tu servidor vía tu nombre de dominio.
+
+*Aunque esta etapa de documentación parezca larga y compleja, sigue siendo muy importante si quieres entender correctamente las implicaciones de la denominación en Internet vía los nombres de dominio, que son necesarios para el funcionamiento de tu servidor Yunohost.*
+
+### ¿ Qué es ?
+
+DNS significa « Domain Name Server » en inglés, y está frecuentemente empleado para designar la configuración de tus nombres de dominio. Tu nombre de dominio debe apuntar hacia algo (en general, una dirección IP).
+
+**Por ejemplo** : `yunohost.org` apunta hacia `88.191.153.110`.
+
+Este sistema fue creado para poder memorizar más fácilmente las direcciones de servidores. Existen registros DNS en los cuales hay que apuntarse. Esto se hace con **registrars** que te alquilarán estos nombres de dominio a cambio de cierto importe (entre 5 y algunas centenas de euros). Estos [registrars](registrar) son entidades privadas autorizadas por el [ICANN](https://es.wikipedia.org/wiki/Corporaci%C3%B3n_de_Internet_para_la_Asignaci%C3%B3n_de_Nombres_y_N%C3%BAmeros), tales como [Gandi](http://gandi.net), [OVH](http://ovh.com) o [BookMyName](http://bookmyname.com).
+
+Es importante notar que los subdominios no necesariamente apuntan al dominio principal.
+
+Si `yunohost.org` apunta hacia `88.191.153.110`, no quiere decir que  `backup.yunohost.org` apunte hacia la misma IP. Tienes que configurar **todos** los dominios y subdominios que deseas utilizar.
+
+También existen **tipos** de registros DNS, lo que significa que un dominio puede apuntar hacia otra cosa que una dirección IP.
+
+**Por ejemplo** : `www.yunohost.org` apunta hacia `yunohost.org`
+
+
+### ¿ Cómo (bien) hacer la configuración ?
+
+Tienes varias opciones. Nota que puedes cumular estas soluciones si posees varios dominios : por ejemplo, puedes tener `mi-servidor.nohost.me` utilizando la solución **1.**, et `mi-servidor.org` utilizando la solución **2.**, redirigiéndolos hacia el mismo servidor YunoHost.
+
+1. Puedes utilizar [el servicio DNS de YunoHost](/dns_nohost_me_es), que configurará él mismo los DNS de tu instancia YunoHost. Pero en este caso, tienes que elegir un dominio terminando por `.nohost.me`, `.noho.st` o `.ynh.fr`, lo que puede tener inconvenientes (tendrás direcciones email tales como `juan@mi-servidor.noho.st`).
+**Es el método recomendado si estás debutando.**
+
+2. Puedes utilizar el servicio de DNS de tu  **registrar** (Gandi, OVH, BookMyName u otro) para configurar tus nombres de dominio. Ésta es la [configuración DNS estándar](/dns_config_es). También es posible utilizar una redirección DNS local, más información sobre cómo [Acceder a su servidor desde la red local](/dns_local_network_es).
+También puedes consultar las documentaciones específicas a estas varias [oficinas de registro](/registrar_fr) : [Gandi](http://gandi.net), [OVH](/OVH_fr) o [BookMyName](http://bookmyname.com).
+
+**Atención** : Si eliges este modo de funcionamiento, tendrás más flexibilidad, pero nada será automático. Por ejemplo si quieres utilizar `webmail.mi-servidor.org`, tendrás que añadirlo manualmente en la interfaz de tu registrar.
+
+3. Tu instancia tiene un servicio DNS, lo que quiere decir que configura automáticamente sus registros DNS y que es posible delegarle la administración de estos registros. Por eso, tienes que indicar al **registrar** que es tu instancia Yunohost que es el servidor DNS de tu nombre de dominio creando un registro glue (a menudo denominado **glue record**) apuntando hacia la IP de tu instancia Yunohost.
+<br><br>**Atención** : Si eliges este modo de funcionamiento, todas las configuraciones serán automatizadas, tendrás mucha flexibilidad pero la pérdida de tu servidor potencialmente traerá muchos problemas. **Elige este método si estás muy seguro de los que estás haciendo.**
+
+4. Una vez que tu servicio DNS está operacional, tu servidor puede utilizarlo pero hay que configurarlo, es el [revolvedor DNS](/dns_resolver_es).
+
+### IP Dinámica
+Si la dirección IP pública cambia, sigue este [tutorial](dns_dynamicip_es).
diff --git a/dns_nohost_me_es.md b/dns_nohost_me_es.md
new file mode 100644
index 00000000..c8b2be78
--- /dev/null
+++ b/dns_nohost_me_es.md
@@ -0,0 +1,53 @@
+# Nombres de dominios automáticos
+
+Para hacer que el auto-alojamiento esté lo más accesible posible, el Proyecto Yunohost provee un servicio de nombres de dominio *ofertos* y *automáticamente configurados*. Cuando utilizas este servicio, no tienes que configurar tú mismo la [configuración de los registros DNS](/dns_config) que es bastante técnica.
+
+Los subdominios siguientes están propuestos :
+- `loquequieras.nohost.me` ;
+- `loquequieras.noho.st` ;
+- `loquequieras.ynh.fr`.
+
+Para aprovechar de este servicio, basta con elegir uno de estos tipos de dominios durante la post-instalación. ¡ Estará automáticamente configurado por Yunohost !
+
+N.B. : Por razones de equidad, sólo puedes tener un *único nombre de dominio* nohost.me por instalación de Yunohost.
+
+### Subdominios
+
+El servicio de dominios `nohost.me`, `noho.st` y `ynh.fr` no permite la creación de subdominios.
+
+Aunque Yunohost permita la instalación de aplicaciones en subdominios (por ejemplo teniendo la aplicación Nextcloud accesible desde la dirección `cloud.midominio.org`), esta función no está permitida con los dominios `nohost.me` y `noho.st` y no es posible tener un subdominio tal como `miaplicacion.midominio.nohost.me`.
+
+Para poder aprovechar de las aplicaciones instalables únicamente a la raíz de un nombre de de dominio, hay que tener su propio nombre de dominio.
+
+### Añadir un dominio nohost.me, noho.st o ynh.fr después de la post-instalación
+
+Si ya has hecho la post-instalación y quieres añadir un dominio de tipo nohost.me, puedes utilizar la categoría "Dominios" de la interfaz web, eligiendo la opción "no tengo nombre de dominio..."
+
+También puedes utilizar los comandos siguientes desde línea de comandos.
+
+
+```bash
+# Añadir el dominio
+yunohost domain add loquequieras.nohost.me
+
+# Registrar el dominio en el servicio dyndns
+yunohost dyndns subscribe -d loquequieras.nohost.me
+
+# [ esperar ~ 30 segundos ]
+
+# Actualizar la configuración DNS
+yunohost dyndns update
+```
+
+### Recuperar un dominio nohost.me, noho.st o ynh.fr
+
+Si reinstalas tu servidor y quieres utilizar un dominio automático que ya utilizaste, tienes que pedir una reinstalación del dominio al Proyecto Yunohost [en el hilo de discusión dedicado del foro](https://forum.yunohost.org/t/nohost-domain-recovery/442).
+
+### Cambiar un dominio nohost.me, noho.st o ynh.fr
+Si quieres utilizar otro dominio automático en tu servidor, primero tienes que cancelar el que ya está configurado, siguiendo estas instrucciones :
+1. Suprimir el dominio de tu instancia (vía webadmin o `yunohost domain remove`). **Cuidado : esto suprimirá todas las aplicaciones instaladas en este dominio así como sus datos**.
+2. Pedir la supresión de tu suscripción [en el hilo de discusión dedicado del foro](https://forum.yunohost.org/t/nohost-domain-recovery/442).
+3. Suprimir los ficheros de configuración automática de tu instancia (únicamente desde la linea de comando por ahora) : `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns`
+
+
+Luego podrás registrar un nuevo dominio automático. 
diff --git a/hardware_es.md b/hardware_es.md
new file mode 100644
index 00000000..e10c13f5
--- /dev/null
+++ b/hardware_es.md
@@ -0,0 +1,14 @@
+# Hardware
+
+YunoHost puede ser instalado en este hardware :
+- Tarjetas ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc...) ;
+- 'Viejos' ordenadores de escritorio ou portátiles ;
+- Servidores remotos, también llamado Virtual Private Servers (VPS).
+
+Los guías de instalación se encuentran en [esta página](/install_es).
+
+### Configuración minimal
+
+* Procesador 500MHz
+* 512 Mo de RAM (recomendado : 1Go para que los servicios y las aplicaciones funcionen correctamente
+* 8 Go de espacio de almacenamiento (recomendado : 32 Go para poder almacenar emails y documentos)
diff --git a/images_es.md b/images_es.md
new file mode 100644
index 00000000..2023334b
--- /dev/null
+++ b/images_es.md
@@ -0,0 +1,123 @@
+# Imagenes
+
+<span class="javascriptDisclaimer">
+Esta página requiere que Javascript esté instalado par aparecer correctamente :s.
+<br/>
+<br/>
+</span>
+
+N.B. : Incluso si la imagen no corresponde con la última versión de Yunohost, puedes utilizarla y actualizarla después de la instalación !
+
+<div id="cards-list">
+</div>
+
+<script type="text/template" id="image-template">
+<div id="{id}" class="card panel panel-default">
+        <div class="panel-body text-center">
+            <h3>{name}</h3>
+            <div class="card-comment">{comment}</div>
+            <div class="card-desc text-center">
+<img src="/images/{image}" height=100 style="vertical-align:middle">
+            </div>
+        </div>
+        <div class="annotations">
+            <div class="col-sm-6 annotation"><a href="{file}.sha256sum"><span class="glyphicon glyphicon-barcode" aria-hidden="true"></span> Checksum</a></div>
+            <div class="col-sm-6 annotation"><a href="{file}.sig"><span class="glyphicon glyphicon-tag" aria-hidden="true"></span> Signature</a></div>
+        </div>
+        <div class="btn-group" role="group">
+            <a href="{file}" target="_BLANK" type="button" class="btn btn-info col-sm-12"><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> Télécharger <small>{version}</small></a>
+        </div>
+</div>
+</script>
+
+<style>
+/*
+###############################################################################
+  Style sheet for the cards
+###############################################################################
+*/
+#cards-list:after {
+    content:'';
+    display:block;
+    clear: both;
+}
+
+.card {
+    margin-bottom:20px;
+    width:270px;
+    float:left;
+    min-height: 1px;
+    margin-right: 10px;
+    margin-left: 10px;
+}
+
+.card .panel-body >  h3 {
+    margin-top:0;
+    margin-bottom:5px;
+    font-size:1.2em;
+}
+
+.card-desc {
+    height:100px;
+    overflow: hidden;
+}
+
+.card .btn-group {
+    width:100%;
+    margin-left: 0px;
+}
+.card > .btn-group > .btn{
+    border-bottom:0;
+}
+.card > .btn-group {   
+    border-left:0;
+    border-top-left-radius:0;
+    border-top-right-radius:0;
+    margin-left: 0px;
+}
+.card-comment {
+    font-size: 0.8em;
+    margin-top:-5px;
+}
+.card > .annotations {
+    text-align:center;
+    font-size:small;
+}
+</style>
+
+<script>
+/*
+###############################################################################
+  Script that loads the infos from javascript and creates the corresponding
+  cards
+###############################################################################
+*/
+$(document).ready(function () {
+    console.log("in load");
+    $.getJSON('https://build.yunohost.org/images.json', function (images) {
+        $.each(images, function(k, infos) {
+            // Fill the template
+            html = $('#image-template').html()
+             .replace('{id}', infos.id)
+             .replace('{name}', infos.name)
+             .replace('{comment}', infos.comment || "&nbsp;")
+             .replace('{image}', infos.image)
+             .replace('{version}', infos.version);
+ 
+            if (infos.file.startsWith("http"))
+                html = html.replace(/{file}/g, infos.file);
+            else
+                html = html.replace(/{file}/g, "https://build.yunohost.org/"+infos.file);
+   
+            if ((typeof(infos.has_sig_and_sums) !== 'undefined') && infos.has_sig_and_sums == false)
+            {
+                var $html = $(html);
+                $html.find(".annotations").html("&nbsp;");
+                html = $html[0];
+            } 
+            $('#cards-list').append(html);
+        });
+    });
+});
+</script>
+
diff --git a/install_es.md b/install_es.md
new file mode 100644
index 00000000..d6046f61
--- /dev/null
+++ b/install_es.md
@@ -0,0 +1,80 @@
+# Guía de instalación
+
+Existenten varias mèneras de instalar YunoHost. El método y el hardware difieren un poco si quieres instalarlo en tu casa o en acceso remoto : **[ver el hardware compatible](/hardware_es)**
+
+Esta página enumera varios tipos de instalaciones, clasificos por categorías.
+
+---
+
+<h1 style="font-weight: 100">Probar</h1>
+
+<div class="row">
+
+<div class="col col-md-3 text-center">
+<a href="/try_es"><img height=150 src="/images/logo.png" style="vertical-align:bottom"><b><p>Servidor de demo</p></b></a>
+</div>
+
+<div class="col col-md-3 text-center">
+<a href="/install_on_virtualbox_es"><img src="/images/virtualbox.png" height=150 style="vertical-align:bottom"><b><p>Probar en una máquina virtual</p></b></a>
+</div>
+
+</div>
+
+<br>
+
+---
+
+<h1 style="font-weight: 100">Instalar en casa</h1>
+
+<div class="row">
+
+<div class="col col-md-3 text-center">
+<a href="/install_on_raspberry_es"><img src="/images/raspberrypi.jpg" height=150 style="vertical-align:bottom"><b><p>En un Raspberry Pi</p></b></a>
+</div>
+
+<div class="col col-md-3 text-center">
+<a href="/install_on_arm_board_es"><img src="/images/olinuxino.jpg" height=150 style="vertical-align:bottom; padding:20px"><b><p>En un ARM board</p></b></a>
+</div>
+
+<div class="col col-md-3 text-center">
+<a href="/install_iso_es"><img src="/images/computer.png" height=150 style="vertical-align:bottom"><b><p>En un ordenador estándar</p></b></a>
+</div>
+
+</div>
+
+<br>
+
+---
+
+<h1 style="font-weight: 100">Instalación remota</h1>
+
+<div class="alert alert-info" markdown="1">
+<span class="glyphicon glyphicon-heart"></span> Proveedores de Internet asociativos cerna de ti pueden proponerte un *Servidor Virtual Privado* (VPS), administrado por humanos que respetan los usuarios y la [Neutralitad de Internet](https://es.wikipedia.org/wiki/Neutralidad_de_red) ! Ver [esta página](https://db.ffdn.org/) por mas informaciones.
+</div>
+
+<div class="row">
+
+<div class="block-center text-center">
+<a href="/install_on_vps_es"><img src="/images/vps.png" height=150 style="vertical-align:bottom; text-align:center"><b><p>En un servidor dedicado o virtual (VPS)</p></b></a>
+</div>
+
+</div>
+
+<br>
+
+---
+
+<h1 style="font-weight: 100">Avancé / autres</h1>
+
+<div class="row">
+
+<div class="col col-md-3 text-center">
+<a href="/vagrant_es"><img src="/images/vagrant.png" height=150 style="vertical-align:bottom"><b><p>Con Vagrant</p></b></a>
+</div>
+
+<div class="col col-md-3 text-center">
+<a href="/install_on_debian_es"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
+<b><p>Sur Debian 9/Stretch</p></b></a>
+</div>
+
+</div>
diff --git a/install_iso_es.md b/install_iso_es.md
new file mode 100644
index 00000000..8cd26815
--- /dev/null
+++ b/install_iso_es.md
@@ -0,0 +1,38 @@
+# Instalación en un ordenador
+
+*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+
+## Prerrequisitos
+
+<img src="/images/laptop.png" width=200>
+<img src="/images/desktop.jpg">
+<img src="/images/nettop.jpg">
+
+* Un ordenador compatible x86 dedicado a YunoHost : portátil, netbook, ordenador de escritorio. Puedes reutilizar calquiera máquina con **256 Mo de RAM mínimo**
+* Otro ordenador para examinar esta guía y acceder a tu servidor
+* Un [proveedor de Internet ético](/isp_fr), de preferencia con acceso de buena velocidad   (ascendente)
+* Una **memoria USB** con capacidad mínima de 1Go **O** un **CD en blanco** estándar
+* ***Casos particulares*** : si tu servidor no tiene tarjeta gráfica, hay que preparar un iso que se inicie sobre el puerto de serie](https://github.com/luffah/debian-mkserialiso).
+
+---
+
+## Etapas de instalación
+
+<a class="btn btn-lg btn-default" href="/images_fr">0. Descargar la imagen ISO</a>
+
+<a class="btn btn-lg btn-default" href="/burn_or_copy_iso_fr">1. Copiar la imagen ISO</a>
+
+<a class="btn btn-lg btn-default" href="/boot_and_graphical_install_fr">2. Encender e instalar</a>
+
+<a class="btn btn-lg btn-default" href="/postinstall_fr">3. Post-instalación</a>
+
+---
+
+Para conectarse directamente al ordenador (únicamente en local) :
+* Usuario : **root**
+* Contraseña : **yunohost**
+
+
+## Casos específicos / avanzados
+
+si el ordenador no tiene tarjeta gráfica pero sí tiene un puerto de serie : hay que modificar el ISO para un inicio con la consola de serie. Una solución es utilizar [un script que modifica las opciones de inicio](https://github.com/luffah/debian-mkserialiso).
diff --git a/install_manually_es.md b/install_manually_es.md
new file mode 100644
index 00000000..8f273361
--- /dev/null
+++ b/install_manually_es.md
@@ -0,0 +1,18 @@
+# Instalar YunoHost manualmente
+
+Una vez que tienes acceso a tu servidor (directamente o con SSH), puedes instalar Yunohost ejecutando este comando como root :
+
+```bash
+curl https://install.yunohost.org | bash
+```
+
+<small>*(Si `curl` no está instalado en tu sistema, tal vez tendrás que instalarlo con `apt install curl`. De otro modo, si el comando no muestra nada, puedes intentar `apt install ca-certificates`)*</small>
+
+Cuando la instalación esté terminada, habrá que [**proceder a la post-instalación**](/postinstall)
+
+---
+
+**Nota para los usuarios expertos preocupados por el enfoque `curl|bash`**
+
+Si no te gusta utilizar `curl|bash` (ou comandos similares) para desplegar software, toma el tiempo de leer ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) en el blog de Sandstorm, y también [esta discusión en Hacker News](https://news.ycombinator.com/item?id=12766350).
+
diff --git a/install_on_arm_board_es.md b/install_on_arm_board_es.md
new file mode 100644
index 00000000..4c3b25fd
--- /dev/null
+++ b/install_on_arm_board_es.md
@@ -0,0 +1,51 @@
+# Instalar Yunohost en una tarjeta ARM
+
+*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+
+<center>
+<img src="/images/olinuxino.jpg" width=250 style="padding-bottom:20px">
+<img src="/images/micro-sd-card.jpg">
+</center>
+
+<div class="alert alert-info" markdown="1">
+Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las [posibles restricciones impuestas por tu Proveedor de Internet](/isp). Si tu proveedor es demasiado restrictivo, puedes utilizar un VPN para eludir estas restricciones.
+</div>
+
+<div class="alert alert-warning" markdown="1">
+YunoHost todavía no es compatible con las tarjetas ARM64. Para obtener más informaciones, ver [este ticket](https://github.com/YunoHost/issues/issues/438).
+</div>
+
+- Una tarjeta ARM con un procesador de 500 MHz et 512 Mo de memoria RAM ; 
+- Un adaptador de corriente para alimentar la tarjeta ;
+- Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
+- Un cable ethernet/RJ-45 para conectar la carte con el router / caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.)
+- Un [proveedor de Internet ético](/isp_fr), de preferencia con una buena velocidad de upload.
+
+---
+
+## Instalación con la imagen pre-instalada (recomendada)
+
+<a class="btn btn-lg btn-default" href="/images_fr">0. Descargar la imagen pre-instalada para tu tarjeta ARM</a><br><small>Si no existe una imagen dedicada a tu tarjeta, puedes seguir la sección "Instalación encima de ARMbian".</small>
+
+<a class="btn btn-lg btn-default" href="/copy_image_fr">1. Poner la imagen en tu tarjeta SD</a>
+
+<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Conectar y encender</a>
+
+<a class="btn btn-lg btn-default" href="/ssh_fr">3. Conectarse en SSH</a>
+
+<a class="btn btn-lg btn-default" href="/postinstall_fr">4. Proceder a la post-instalación</a>
+
+---
+
+## Instalación encima de ARMbian
+
+<a class="btn btn-lg btn-default" href="https://www.armbian.com/download/">0. Descargar la imagen ARMbian para tu tarjeta ARM</a>
+
+<a class="btn btn-lg btn-default" href="/copy_image_fr">1. Poner la imagen en tu tarjeta SD</a>
+
+<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Conectar y encender</a>
+
+<a class="btn btn-lg btn-default" href="/ssh_fr">3. Conectarse en SSH</a>
+
+<a class="btn btn-lg btn-default" href="/install_manually_fr">4. Proceder a la post-instalación genérica</a>
+
diff --git a/install_on_raspberry_es.md b/install_on_raspberry_es.md
new file mode 100644
index 00000000..b683416a
--- /dev/null
+++ b/install_on_raspberry_es.md
@@ -0,0 +1,60 @@
+# Instalar YunoHost en un Raspberry Pi
+
+*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+
+<center>
+<img src="/images/raspberrypi.jpg" width=300 style="padding-bottom:20px">
+<img src="/images/micro-sd-card.jpg">
+</center>
+
+<div class="alert alert-info" markdown="1">
+Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las [posibles restricciones impuestas por tu Proveedor de Internet](/isp). Si tu proveedor es demasiado restrictivo, puedes utilizar un VPN para eludir estas restricciones.
+</div>
+
+## Prerrequisitos
+
+- Un Raspberry Pi 0, 1, 2, 3 o 4 ;
+- Un adaptador de corriente para alimentar la tarjeta ;
+- Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
+- Un cable ethernet/RJ-45 para conectar la tarjeta con tu enrutador o tu caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.)
+- Un [proveedor de Internet ético](/isp_fr), de preferencia con buena velocidad de upload.
+
+---
+
+## Instalación con la imagen pre-instalada (recomendada)
+
+<a class="btn btn-lg btn-default" href="/images_fr">1. Descargar la imagen para Raspberry Pi</a>
+
+<a class="btn btn-lg btn-default" href="/copy_image_fr">2. Poner la imagen en tu tarjeta SD</a>
+
+<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">3. Conectar y encender</a>
+
+<a class="btn btn-lg btn-default" href="/ssh_fr">4. Conectarse en SSH</a>
+
+<a class="btn btn-lg btn-default" href="/postinstall_fr">5. Proceder a la post-instalación</a>
+
+---
+
+## Instalación manual (desaconsejada)
+
+<div class="alert alert-warning" markdown="1">
+No recomendamos la instalación manual porque es más técnica y más larga que la instalación vía la imagen per-instalada. Esta documentación sobre todo está destinada a los usuarios expertos.
+</div>
+
+<div class="alert alert-warning" markdown="1">
+Las últimas versiones de Raspbian necesitan una pantalla y un teclado porque ya no es posible conectarse directamente por SSH al Raspberry por defecto. Sin embargo, es posible reactivar el inicio de SSH al boot : solo hay que poner un fichero llamado `ssh` (vacío, sin extensión) en la partición boot de la tarjeta SD.
+</div>
+
+0. Instalar Raspbian Stretch Lite ([instrucciones](https://www.raspberrypi.org/downloads/raspbian/)) en la tarjeta SD.
+
+1. Conéctate con ssh al Raspberry Pi con el usuario pi. Define una contraseña root con 
+```bash
+sudo passwd root
+```
+
+2. Modifica `/etc/ssh/sshd_config` para autorizar root a que se conecte con ssh, reemplazando `PermitRootLogin without-password` por `PermitRootLogin yes`. Recarga el daemon ssh con `service ssh reload`, y luego re-conéctate como root.
+
+3. Desconéctate et reconéctate con el usuario root esta vez.
+
+4. Sigue con el <a href="/install_manually_es">procedimiento de instalación manual genérico</a>.
+
diff --git a/install_on_virtualbox_es.md b/install_on_virtualbox_es.md
new file mode 100644
index 00000000..48a8107b
--- /dev/null
+++ b/install_on_virtualbox_es.md
@@ -0,0 +1,77 @@
+# Instalar YunoHost en VirtualBox
+
+*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+
+## Prerrequisitos
+
+<img src="/images/virtualbox.png" width=200>
+
+* Un ordenador x86 con VirtualBox instalado y bastante RAM disponible para iniciar una pequeña máquina virtual.
+* La última **imagen ISO YunoHost** estable, disponible [aquí](/images_es).
+
+<div class="alert alert-warning" markdown="1">
+N.B. : Instalar YunoHost en VirtualBox es útil para probar la distribución. Para realmente autoalojarse a largo plazo, probablement necesitarás una máquina virtual (viejo ordenador, tarjeta ARM...) o un VPS.
+</div>
+
+---
+
+## <small>1.</small> Crear una nueva máquina virtual
+
+<img src="/images/virtualbox_1.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
+
+<br>
+
+* No es grave si sólo la versión 32-bit está disponible, pero en este caso asegúrate que 32 bit previamente.
+* 256Mo de RAM es el requisito mínimo, 512Mo está recomendado (1Go o más si puedes).
+* 8Go de almacenaje mínimo requisito.
+
+---
+
+## <small>2.</small> Modificar la configuración de la red
+
+Ir a **Settings** > **Network* :
+
+<img src="/images/virtualbox_2.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
+
+<br>
+
+* Selectiona `Bridged adapter`
+
+* Elige tu interfaz según su nombre :
+
+    **wlan0** si estás conectado sin hilo, **eth0** de otro modo.
+
+---
+
+## <small>3.</small> Inicia tu máquina virtual
+
+Inicia tu máquina virtual
+
+<img src="/images/virtualbox_2.1.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
+
+<br>
+
+Aquí tienes que seleccionar la imagen ISO, luego deberías ver esta pantalla de bienvenida.
+
+<br>
+
+Si te encuentras con el error "VT-x is not available", probablement hay que activar (enable) la virtualización en la opciones del BIOS de tu ordenador.
+
+<br>
+   
+<img src="/images/virtualbox_3.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
+
+<br>
+
+* Elige `Instalación gráfica`
+
+* Selecciona tu idioma, tu ubicación, la distribución de tu teclado y deja el ordenador terminar el proceso :-)
+
+---
+
+## <small>4.</small> Efectuar la post-instalación
+
+Después del reinicio, la máquina debería proponerte de efectuar la post-instalación :
+
+<a class="btn btn-lg btn-default" href="/postinstall">Post-install
+documentation</a>
diff --git a/install_on_vps_es.md b/install_on_vps_es.md
new file mode 100644
index 00000000..89eb2504
--- /dev/null
+++ b/install_on_vps_es.md
@@ -0,0 +1,20 @@
+# Instalación en un servidor dedicado
+
+*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+
+## Prerrequisitos
+
+<img src="/images/vps.png" width=250>
+
+* Un servidor dedicado o virtual
+* con al menos **512MB** RAM
+* y **Debian 9.x (Stretch) 64bits** como sistema operativo
+
+---
+
+## Etapas de instalación
+
+<a class="btn btn-lg btn-default" href="/install_manually_fr">1. Instalar manualmente</a>
+
+<a class="btn btn-lg btn-default" href="/postinstall_fr">2. Post-instalación</a>
+
diff --git a/postinstall_es.md b/postinstall_es.md
new file mode 100644
index 00000000..397e8f8f
--- /dev/null
+++ b/postinstall_es.md
@@ -0,0 +1,63 @@
+# Post-instalación
+
+La etapa que llamamos « **post-instalación** » de hecho es la etapa de configuración inicial de Yunohost. Se ejecuta después de la **instalación** del sistema mismo.
+
+### Vía la interfaz web
+
+Puedes acceder a la post-instalación gráfica entrando en un navegador web :
+* la dirección **IP local de tu servidor** si éste está conectado a tu red local (en general `192.168.x.x`, ver ['Encontrar mi IP' en la página sobre SSH](/ssh))
+* la dirección **IP pública de tu servidor** si éste no está conectado a tu red local (por ejemplo, si es un VPS, tu proveedor debería haberte transmitido la dirección IP).
+
+Durante la primera visita, encontrarás muy probablemente una advertencia de seguridad relacionada al certificado utilizado. De momento, tu servidor utiliza un certificado autofirmado. Después, podrás utilizar un certificado automáticamente reconocido por los navegadores como descrito en la página sobre los [Certificados](/certificate). Mientras tanto, añade una excepción de seguridad para aceptar el certificado vigente.
+
+Luego, llegas en esta página :
+
+<img style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);" src="/images/postinstall_web.png">
+
+*<p class="text-muted">Vistazo de la post-instalación Web</p>*
+
+### Vía la interfaz de línea de comando
+
+También puedes acceder a la post-instalación entrando el comando `yunohost tools postinstall` directamente en el servidor o [en SSH](/ssh).
+
+<img style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);" src="/images/postinstall_cli.png">
+
+*<p class="text-muted">Vistazo de la post-instalación con línea de comando</p>*
+
+## Informaciones solicitadas
+
+### Dominio principal
+
+Es el nombre de dominio que permitirá el acceso a tu servidor así como al portal de autenticación de los usuarios. Entonces estará **visible por todo el mundo** : elígelo en consecuencia.
+
+* YunoHost te propone un DNS dinámico, proveando nombres de dominio del tipo *midominio.nohost.me*, *midominio.noho.st* o *midominio.ynh.fr*. Si no posees un nombre de dominio y/o que quieres aprovechar de este servicio, elige un dominio terminando con `.nohost.me`, `.noho.st` o `.ynh.fr`. Si no está utlizado ya, el dominio automáticamente estará vinculado a tu servidor Yunohost, y no tendrás más etapas de configuración.
+
+* Si, en cambio, dominas la noción de **DNS**, puedes utilizar tu propio nombre de dominio. En este caso, refiérete a la página [yunohost.org/dns](/dns_es) por más información.
+
+* Si no tienes nombre de dominio y que no quieres uno que acabe con *.nohost.me*, *.noho.st* ou *.ynh.fr*, puedes utilizar un dominio local. Más información sobre cómo [acceder a tu servidor desde la red local](/dns_local_network_es).
+
+
+### Contraseña de administración
+
+Es la contraseña que permitirá acceder a la [interfaz de administración](/admin_es) de tu servidor. También podrás utilizarla para conectarte remotamente vía **SSH**, o vía  **SFTP** para transferir ficheros.
+
+De manera general, ésta es la **llave de entrada en tu sistema**, pues piensa en **[elegirla atentamente](https://es.wikihow.com/escoger-una-contrase%C3%B1a-segura)**.
+
+<br>
+
+---
+
+## Enhorabuena !
+
+Si llegas aquí después de haber visto “Yunohost fue instalado con éxito" desde tu navegador ou tu interfaz de línea de comando, pues felicitaciones !
+
+
+### ¿ Y ahora ?
+
+- Si te auto-alojas en casa y sin VPN, tienes que asegurarte que [los puertos de tu caja internet estén redirigidos](isp_box_config_es) ;
+- Si utilizas tu propio nombre de dominio (i.e. que no sea un nohost.me /
+  noho.st), tienes que [configurar el nombre de dominio según la configuración recomendada](dns_config_es) ;
+- Si no puedes configurar el nombre de dominio de momento (porque todavía no lo has comprado, ou porque es un dominio test), puedes solucionar temporalmente el problema con las instrucciones del último párrafo [aquí](dns_local_network_es) ;
+- No te asustes demasiado por [la advertencia a propósito del certificado](certificate_es), tendrás la posibilidad de obtener un certificado Let's Encrypt :).
+- Echa un vistazo a las [aplicaciones disponibles](apps_es) !
+
diff --git a/try_es.md b/try_es.md
new file mode 100644
index 00000000..89e5e6d6
--- /dev/null
+++ b/try_es.md
@@ -0,0 +1,29 @@
+#Probar YunoHost
+
+<div class="alert alert-warning" markdown="1">
+**Nota :** Este demo puede dejar de functionar de vez en cuando.
+<br>
+
+</div>
+
+<br>
+
+  <div class="row text-center">
+    <div class="col-md-6">
+      <a href="https://demo.yunohost.org/" target="_blank" class="btn btn-success btn-lg"><span class="glyphicon glyphicon-user"></span> Interfaz de usuario</a>
+      <p class="text-muted">Utilisateur : demo<br>Contraseña : demo</p>
+    </div>
+    <div class="col-md-5">
+      <a href="https://demo.yunohost.org/yunohost/admin" target="_blank" class="btn btn-primary btn-lg"><span class="glyphicon glyphicon-lock"></span> Interfaz de administración</a>
+      <p class="text-muted">Contraseña : demo</p>
+    </div>
+  </div>
+
+<br>
+
+<p class="text-center" markdown="1">
+***El servidor de demo es ofrecido generosamente por
+<a href="https://www.gitoyen.net" target="_blank">Gitoyen</a>***
+</p>
+
+
diff --git a/vagrant_es.md b/vagrant_es.md
new file mode 100644
index 00000000..2edf6375
--- /dev/null
+++ b/vagrant_es.md
@@ -0,0 +1,60 @@
+# Vagrant y YunoHost
+
+*Si necesitas una máquina virtual para testar tu código, es mejor utilizar directamente [ynh-dev](https://github.com/yunohost/ynh-dev)*
+
+*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+
+<img src="/images/vagrant.png" width=250>
+
+**Prerrequisitos** : Un ordenador x86 con VirtualBox instalado y bastante RAM disponible para iniciar una pequeña máquina virtual.
+
+---
+
+## Inicio
+
+Crear una carpeta para el proyecto :
+```bash
+mkdir YunoHost
+cd YunoHost
+```
+
+El comando siguiente iniciará el proyecto con una imagen básica de Yunohost
+```bash
+vagrant box add yunohost/stretch-unstable https://build.yunohost.org/yunohost-stretch-unstable.box --provider virtualbox
+vagrant init yunohost/stretch-unstable
+```
+Luego, tienes que activar la red para la instancia Yunohost :
+```bash
+sed -i 's/# config\.vm\.network "private_network"/config.vm.network "private_network"/' Vagrantfile
+```
+
+---
+
+## Instalación
+
+Iniciar la máquina virtual
+```bash
+vagrant up
+```
+
+Conectarse a la máquina virtual iniciada
+```bash
+vagrant ssh
+```
+
+Actualizar el sistema.
+```bash
+apt update && apt dist-upgrade
+```
+
+Puedes acceder a tu VM vía el IP 192.168.33.10.
+
+Las direcciones IP están asignadas por defecto pero pueden ser cambiadas en los parámetros de red del Vagrantfile.
+
+---
+
+*Una vez la instalación terminada, puedes proceder a la post-instalación :
+**[yunohost.org/postinstall](/postinstall_es)** *
+
+
+

From d0b543e8911fee27b6e9f94c8730103b6df0858d Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Wed, 14 Aug 2019 15:51:04 +0200
Subject: [PATCH 081/360] Small fix for what it should really be ... so that we
 can screencast the page. Will actually implement it later

---
 install_on_raspberry.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install_on_raspberry.md b/install_on_raspberry.md
index 816ca748..9acf6fb1 100644
--- a/install_on_raspberry.md
+++ b/install_on_raspberry.md
@@ -29,7 +29,7 @@ Before setting up a server at home, it is recommended that you know the [possibl
 
 <a class="btn btn-lg btn-default" href="/plug_and_boot">2. Plug & boot</a>
 
-<a class="btn btn-lg btn-default" href="/ssh">3. Connect to your server with SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh">3. Connect to your server with your web browser</a>
 
 <a class="btn btn-lg btn-default" href="/postinstall">4. Proceed to post-installation</a>
 

From c5c35bb225a312de76d43f14170467f154b735ad Mon Sep 17 00:00:00 2001
From: gmar <gmar@marsan.me>
Date: Wed, 14 Aug 2019 16:55:35 +0200
Subject: [PATCH 082/360] More spanish translation for the website

---
 admin_es.md                 | 37 +++++++++++++++
 commandline_es.md           | 30 ++++++++++++
 dns_local_network_es.md     | 38 ++++++++++++++++
 dns_nohost_me_es.md         |  2 +-
 index_es.md                 | 20 ++++----
 install_es.md               |  6 +--
 install_on_raspberry_es.md  |  2 +-
 install_on_virtualbox_es.md |  5 +-
 postinstall_es.md           |  2 +-
 ssh_es.md                   | 91 +++++++++++++++++++++++++++++++++++++
 10 files changed, 214 insertions(+), 19 deletions(-)
 create mode 100644 admin_es.md
 create mode 100644 commandline_es.md
 create mode 100644 dns_local_network_es.md
 create mode 100644 ssh_es.md

diff --git a/admin_es.md b/admin_es.md
new file mode 100644
index 00000000..3ed8aee7
--- /dev/null
+++ b/admin_es.md
@@ -0,0 +1,37 @@
+# La interfaz de administración web
+
+Yunohost tiene una interfaz gráfica de administración. El otro método consiste en utilizar la [linea de comando](/commandline_es).
+
+### Acceso
+
+La interfaz admin está accesible desde tu instancia Yunohost en esta dirección : https://ejemplo.org/yunohost/admin (reemplaza ejemplo.org por tu nombre de dominio)
+
+<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
+<img src="/images/manage.png" style="max-width:100%;">
+</div>
+
+
+### Reinicia la contraseña del administrador
+
+Para reiniciar la contraseña de administración de Yunohost (con el usuario root) :
+
+```bash
+$ yunohost-reset-ldap-password
+```
+
+Una contraseña provisional será creada, podrás utilizarla para luego definir una nueva contraseña.
+
+
+### Cómo mover la carpeta de una aplicación 
+
+Para cambiar la carpeta donde está una aplicación, sólo algunos comandos son necesarios : desplazar el contenido, crear un vínculo simbólico y definir los derechos de acceso.
+
+Ejemplo con WordPress :
+```bash
+# Desplazamiento del wordpress hacia otro soporte
+$ sudo  mv /var/www/wordpress /mon/dossier/cible
+# Creación del vínculo simbólico 
+$ sudo ln -s /media/disqueexterne/wordpress /var/www/wordpress
+# El directorio debe pertenecer a www-data
+sudo chown -R www-data:www-data /media/externalharddrive/wordpress
+```
diff --git a/commandline_es.md b/commandline_es.md
new file mode 100644
index 00000000..3b829818
--- /dev/null
+++ b/commandline_es.md
@@ -0,0 +1,30 @@
+# Administrar YunoHost con la interfaz de línea de comandos
+
+La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla.
+
+En el contexto de Yunohost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh_es).
+
+<div class="alert alert-info" markdown="1">
+Proveer un tutorial completo sobre la línea de comandos saldría del marco de la documentación de Yunohost : por eso, refiérete a totorales como [éste](https://www.fing.edu.uy/inco/cursos/sistoper/recursosLaboratorio/tutorial0.pdf) o [éste (en)](http://linuxcommand.org/). Pero no te preocupes : no hace falta ser un experto para comenzar a utilizarla !
+</div>
+
+El comando `yunohost` puede ser utilizado para administrar tu servidor o realizar las mismas acciones que en la interfaz gráfica webadmin. Hay que iniciarla como usuario `root`, o como el usuario `admin` poniendo `sudo` antes del comando. (ProTip™ : puedes convertirte en usuario `root` vía el comando `sudo su` cuando eres `admin`.)
+
+Los comandos Yunohost tienen este tipo de estructura :
+
+```bash
+yunohost app install wordpress --label Webmail
+          ^    ^        ^             ^
+          |    |        |             |
+   categoría  acción  argumento     opción
+```
+
+No dudes en navegar ni en pedir información a propósito de una categoría o acción utilizando la opción `--help`. Por ejemplo, estos comandos :
+
+```bash
+yunohost --help
+yunohost user --help
+yunohost user create --help
+```
+
+de manera sucesiva van a enumerar todas las categorías disponibles, luego las acciones de la categoría `user`, y luego explicar cómo utilizar la acción `user create`. Deberías notar que el árbol de los comandos Yunohost tiene la misma estructura que las páginas del webadmin.
\ No newline at end of file
diff --git a/dns_local_network_es.md b/dns_local_network_es.md
new file mode 100644
index 00000000..045d4b4d
--- /dev/null
+++ b/dns_local_network_es.md
@@ -0,0 +1,38 @@
+#Acceder a tu servidor desde la red local
+
+Después de haber instalado tu servidor, es probable que tu nombre de dominio no esté accesible desde la red local donde se encuentra el servidor. Esto es un problema que se llama el [hairpinning](https://en.wikipedia.org/wiki/Hairpinning).
+
+Para resolver este problema, es preciso configurar el DNS de tu router o, por defecto, el o los archivos hosts de tu ordenadores clientes.
+
+### Obtener la dirección IP local del servidor
+A fin de configurar el DNS o el archivo hosts, tienes que conocer la dirección IP privada de tu servidor. Esta dirección sólo puede ser utilizada en la red local donde está el servidor, y no está vinculada con tu dirección pública utilizada en Internet.
+
+Puedes descubrir la dirección privada de tu servidor de varias maneras :
+- En la pantalla de conexión de Yunohost en el mismo servidor :
+<img src="/images/ynh_login.png" width=600>
+
+- Desde la interfaz de administración de tu servidor Yunohost :
+    en Estado del servidor > Red
+<img src="/images/ynh_admin_etat_ip.png" width=900>
+
+- O desde tu router o tu caja Internet, dependiendo de su modelo.
+
+## Configurar el DNS de la caja Internet o del router
+
+Vas a crear una redirección que estará activa en toda tu red local. El objetivo es crear una redirección DNS hacia el IP de tu servidor en tu caja Internet. Hay que acceder a la interfaz de configuración de tu caja y a los parámetros DNS, y luego crear una redirección local (por ejemplo, yunohost.local puede redigir hacia 192.168.21).
+
+## Configurar el archivo [hosts](https://es.wikipedia.org/wiki/Archivo_hosts) del ordenador cliente
+Sólo deberías modificar el archivo hosts si no puedes modificar el DNS de tu caja Internet / router, porque el archivo hosts únicamente afectará el ordenador en el cual el archivo esté modificado.
+
+- En Windows, encontrarás el archivo hosts aquí :
+    `%SystemRoot%\system32\drivers\etc\`
+    > Es preciso visualizar los archivos y sistemas escondidos para ver el archivo hosts.
+- En sistemas UNIX (GNU/Linux, Mac OS), lo encontrarás aquí :
+    `/etc/hosts`
+    > Necesitarás derechos root para modificar el archivo.
+
+Simplemente añade al final del archivo hosts una linea conteniendo la dirección IP privada del servidor y tu nombre de dominio
+
+```bash
+192.168.1.62	domain.tld
+```
diff --git a/dns_nohost_me_es.md b/dns_nohost_me_es.md
index c8b2be78..9a285056 100644
--- a/dns_nohost_me_es.md
+++ b/dns_nohost_me_es.md
@@ -47,7 +47,7 @@ Si reinstalas tu servidor y quieres utilizar un dominio automático que ya utili
 Si quieres utilizar otro dominio automático en tu servidor, primero tienes que cancelar el que ya está configurado, siguiendo estas instrucciones :
 1. Suprimir el dominio de tu instancia (vía webadmin o `yunohost domain remove`). **Cuidado : esto suprimirá todas las aplicaciones instaladas en este dominio así como sus datos**.
 2. Pedir la supresión de tu suscripción [en el hilo de discusión dedicado del foro](https://forum.yunohost.org/t/nohost-domain-recovery/442).
-3. Suprimir los ficheros de configuración automática de tu instancia (únicamente desde la linea de comando por ahora) : `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns`
+3. Suprimir los archivos de configuración automática de tu instancia (únicamente desde la linea de comando por ahora) : `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns`
 
 
 Luego podrás registrar un nuevo dominio automático. 
diff --git a/index_es.md b/index_es.md
index 3bc6ceed..140c2bd4 100644
--- a/index_es.md
+++ b/index_es.md
@@ -31,7 +31,7 @@
 
 <div class="boring-part" markdown="1">
 
-  <h1>YunoHost <small>es un herramiento que permite installar et utilizar facilamente sur propio servidor.</small></h1>
+  <h1>YunoHost <small>es una herramienta que permite instalar y utilizar fácilmente su propio servidor.</small></h1>
 
 
   <div class="home-panel">
@@ -46,8 +46,8 @@
 
   <div class="row cf">
     <div class="col-md-7">
-      <h1>Installar <small>su sevidor simplemente, tienes todo a casa</small></h1>
-      <p><br /><a href="/hardware">Ver los requisitos previos</a></p>
+      <h1>Installar <small>su servidor simplemente, tienes todo en casa</small></h1>
+      <p><br /><a href="/hardware">Ver los prerrequisitos</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
@@ -65,8 +65,8 @@
       </div>
     </div>
     <div class="col-md-7 text-right">
-      <h1>Disfrutar <small>de sus aplicaciones web, y crea su esquina de Internet</small></h1>
-      <p><br /><a href="/apps_fr">Lista de aplicationes disponible</a></p>
+      <h1>Disfrutar <small>de sus aplicaciones web, y crea tu esquina de Internet</small></h1>
+      <p><br /><a href="/apps_fr">Lista de aplicaciones disponible</a></p>
     </div>
   </div>
 
@@ -74,8 +74,8 @@
 
   <div class="row cf">
     <div class="col-md-7">
-      <h1>Gestionar <small>su servidor como quieras : via web, móvil o en línea de comandos</small></h1>
-      <p><br /><a href="/try_fr">Intentar el interfaz de administración</a></p>
+      <h1>Gestionar <small>tu servidor como quieras : vía web, móvil o en línea de comandos</small></h1>
+      <p><br /><a href="/try_fr">Intentar la interfaz de administración</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
@@ -90,12 +90,12 @@
     <div class="col-md-4 button-list">
       <a class="btn btn-lg btn-block btn-primary" href="/userdoc_fr">Guía del usuario</a>
       <a class="btn btn-lg btn-block btn-info" href="https://ask.yunohost.org" target="_blank">Preguntas más frecuentes</a>
-      <a class="btn btn-lg btn-block btn-success" href="/whatsyunohost_fr">Que es YunoHost ?</a>
+      <a class="btn btn-lg btn-block btn-success" href="/whatsyunohost_fr">¿ Que es YunoHost ?</a>
       <a class="btn btn-lg btn-block btn-warning" href="/contribute_fr">Cómo contribuir</a>
       <a class="btn btn-lg btn-block btn-danger btn-support" href="http://news.yunohost.org">últimas noticias</a>
     </div>
     <div class="col-md-7 text-right">
-      <h1>Explorar <small>las posibilidad de su servidor, y aprender pourque es importante</small></h1>
+      <h1>Explorar <small>las posibilidad de su servidor, y aprender porque es importante</small></h1>
       <p><br /><a href="/docs_fr">Leer la documentación</a></p>
     </div>
   </div>
@@ -103,7 +103,7 @@
   <hr />
 
   <div class="text-center">
-    <h1>¡ Hey ! Somos humanos<br /><small> Si tiene algun pregunta, un problema, o simplemente estás interesado, ven decir "¡ Hola !" sobre nuetra salón de discusión clic en el botón abajo &nbsp;<span class="glyphicon glyphicon-share-alt"></span> </small></h1>
+    <h1>¡ Hey ! Somos humanos<br /><small> Si tiene alguna pregunta, un problema, o simplemente estás interesado, ven decir "¡ Hola !" sobre nuestro salón de discusión clic en el botón abajo &nbsp;<span class="glyphicon glyphicon-share-alt"></span> </small></h1>
 
   <p class="liberapay">
    <a href="https://liberapay.com/YunoHost" target="_blank"><img src="/images/liberapay_logo.svg" alt="Donation button" title="Liberapay" /></a>
diff --git a/install_es.md b/install_es.md
index d6046f61..0550dab8 100644
--- a/install_es.md
+++ b/install_es.md
@@ -1,8 +1,8 @@
 # Guía de instalación
 
-Existenten varias mèneras de instalar YunoHost. El método y el hardware difieren un poco si quieres instalarlo en tu casa o en acceso remoto : **[ver el hardware compatible](/hardware_es)**
+Existen varias maneras de instalar YunoHost. El método y el hardware difieren un poco si quieres instalarlo en tu casa o en acceso remoto : **[ver el hardware compatible](/hardware_es)**
 
-Esta página enumera varios tipos de instalaciones, clasificos por categorías.
+Esta página enumera varios tipos de instalaciones, clasificados por categorías.
 
 ---
 
@@ -64,7 +64,7 @@ Esta página enumera varios tipos de instalaciones, clasificos por categorías.
 
 ---
 
-<h1 style="font-weight: 100">Avancé / autres</h1>
+<h1 style="font-weight: 100">Avanzado / otros</h1>
 
 <div class="row">
 
diff --git a/install_on_raspberry_es.md b/install_on_raspberry_es.md
index b683416a..4863e975 100644
--- a/install_on_raspberry_es.md
+++ b/install_on_raspberry_es.md
@@ -42,7 +42,7 @@ No recomendamos la instalación manual porque es más técnica y más larga que
 </div>
 
 <div class="alert alert-warning" markdown="1">
-Las últimas versiones de Raspbian necesitan una pantalla y un teclado porque ya no es posible conectarse directamente por SSH al Raspberry por defecto. Sin embargo, es posible reactivar el inicio de SSH al boot : solo hay que poner un fichero llamado `ssh` (vacío, sin extensión) en la partición boot de la tarjeta SD.
+Las últimas versiones de Raspbian necesitan una pantalla y un teclado porque ya no es posible conectarse directamente por SSH al Raspberry por defecto. Sin embargo, es posible reactivar el inicio de SSH al boot : solo hay que poner un archivo llamado `ssh` (vacío, sin extensión) en la partición boot de la tarjeta SD.
 </div>
 
 0. Instalar Raspbian Stretch Lite ([instrucciones](https://www.raspberrypi.org/downloads/raspbian/)) en la tarjeta SD.
diff --git a/install_on_virtualbox_es.md b/install_on_virtualbox_es.md
index 48a8107b..be31c3d2 100644
--- a/install_on_virtualbox_es.md
+++ b/install_on_virtualbox_es.md
@@ -29,7 +29,7 @@ N.B. : Instalar YunoHost en VirtualBox es útil para probar la distribución. Pa
 
 ## <small>2.</small> Modificar la configuración de la red
 
-Ir a **Settings** > **Network* :
+Ir a **Settings** > **Network** :
 
 <img src="/images/virtualbox_2.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
 
@@ -73,5 +73,4 @@ Si te encuentras con el error "VT-x is not available", probablement hay que acti
 
 Después del reinicio, la máquina debería proponerte de efectuar la post-instalación :
 
-<a class="btn btn-lg btn-default" href="/postinstall">Post-install
-documentation</a>
+<a class="btn btn-lg btn-default" href="/postinstall_es">Documentación de post-instalación</a>
diff --git a/postinstall_es.md b/postinstall_es.md
index 397e8f8f..015515f4 100644
--- a/postinstall_es.md
+++ b/postinstall_es.md
@@ -39,7 +39,7 @@ Es el nombre de dominio que permitirá el acceso a tu servidor así como al port
 
 ### Contraseña de administración
 
-Es la contraseña que permitirá acceder a la [interfaz de administración](/admin_es) de tu servidor. También podrás utilizarla para conectarte remotamente vía **SSH**, o vía  **SFTP** para transferir ficheros.
+Es la contraseña que permitirá acceder a la [interfaz de administración](/admin_es) de tu servidor. También podrás utilizarla para conectarte remotamente vía **SSH**, o vía  **SFTP** para transferir archivos.
 
 De manera general, ésta es la **llave de entrada en tu sistema**, pues piensa en **[elegirla atentamente](https://es.wikihow.com/escoger-una-contrase%C3%B1a-segura)**.
 
diff --git a/ssh_es.md b/ssh_es.md
new file mode 100644
index 00000000..650c5caf
--- /dev/null
+++ b/ssh_es.md
@@ -0,0 +1,91 @@
+# SSH
+
+## ¿ Qué es SSH ?
+
+**SSH** est un acrónimo por Secure Shell, y representa un protocolo que permite controlar remotamente una máquina vía la línea de comandos (CLI). También es un comando básico disponible en los terminales de Linux y MacOS / OSX. En Windows, hace falta utilizar el programa [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (después de haberlo iniciado, clicar sobre Session y lego SSH).
+
+## Durante la instalación de Yunohost
+
+#### Encontrar su IP
+
+Si instalas Yunohost en un VPS, tu proveedor debería haberte comunicado la dirección IP de tu servidor. 
+
+Si instalas un servidor en tu casa (por ejemplo en Raspberry Pi u OLinuXino), tienes que encontrar el IP que fue atribuido a tu tarjeta cuando la conectaste a tu router / caja Internet. Hay varias maneras de hacerlo :
+
+- abre una terminal y teclea `sudo arp-scan --local` para enumerar los IP de las máquinas en la red local ;
+- utiliza la interfaz de tu router caja internet para listar las máquinas conectadas, o mira los los ;
+- conecta una pantalla en tu servidor, inicia una sesión y escribe `hostname --all-ip-address`.
+
+#### Conectarse
+
+Suponiendo que tu dirección IP sea `111.222.333.444`, abre una terminal y escribe :
+
+```bash
+ssh root@111.222.333.444
+```
+
+Ahora te piden una contraseña. Si es un VPS, tu proveedor ya te hará comunicado la contraseña. Si utilizaste una imagen pre-instalada (para x86 o tarjetas ARM), el password debería ser `yunohost`.
+
+<div class="alert alert-warning">
+Desde YunoHost 3.4, después de la post-instalación ya no es posible conectarse con el usuario `root`. En lugar de eso, hace falta **conectarse con el usuario `admin` !**. Incluso si el servidor LDAP fuera quebrado (haciendo que el usuario `admin` ya no fuera utilizable) todavía deberías poder conectarte con el usuario `root` desde la red local.
+</div>
+
+#### ¡ Cambiar la contraseña root !
+
+Después de haberte conectado por primera vez, tienes que cambiar la contraseña `root`. Tal vez el servidor te pida automáticamente que lo hagas. Si no es el caso, hay que utilizar el comando `passwd`. Es muy importante que elijas una contraseña bastante complicada. Nota que esta contraseña luego estará reemplazada por la contraseña admin elegida durante la post-instalación.
+
+
+## En una instancia que ya está instalada
+
+Si instalaste tu servidor en casa y que quieres conectarte desde fuera de la red local, asegúrate que hayas previamente redirigido el puerto 22 de tu router / caja hacia tu servidor (con el usuario `admin` !)
+
+Si sólo conoces el IP de tu servidor :
+
+```bash
+ssh admin@111.222.333.444
+```
+
+Luego, entra la contraseña de administración que has elegido durante la post-instalación [post-installation](postinstall_es).
+
+Si has configurado tus DNS (o modificar tu `/etc/hosts`), puedes utilizar tu nombre de dominio :
+
+```bash
+ssh admin@votre.domaine.tld
+```
+
+Si cambiaste el puerto SSH, hay que añadir `-p <numerodelpuerto>` al comando, por ej. :
+
+```bash
+ssh -p 2244 admin@tu.dominio.tld
+```
+
+<div class="alert alert-info">
+Si estás conectado como `admin` y quieres ser `root` para tener más confort (por ejemplo, para no teclear `sudo` con cada comando), puedes convertirte en `root` tecleando `sudo su`.
+</div>
+
+## ¿ Qué usuarios ?
+
+Por defecto, sólo el usuario `admin` puede conectarse en SSH en una instancia Yunohost.
+
+Los usuarios Yunohost creados vea la interfaz de administración están administrados por la base de datos LDAP. Por defecto, no pueden conectarse en SSH por razones de seguridad. Si necesitas absolutamente que uno de estos usuarios disponga de un acceso SSH, puedes utilizar el comando :
+```bash
+yunohost user ssh allow <username>
+```
+
+Del mismo modo, es posible cancelar el acceso SSH de un usuario con el comando :
+```bash
+yunohost user ssh disallow <username>
+```
+
+Finalmente, es posible añadir, suprimir y listar llaves SSH, para mejorar la seguridad del acceso SSH, con estos comandos :
+```bash
+yunohost user ssh add-key <username> <key>
+yunohost user ssh remove-key <username> <key>
+yunohost user ssh list-keys <username>
+```
+
+## SSH y seguridad
+
+N.B. : `fail2ban` proscribirá tu IP durante 10 minutos si fracasas más de 5 veces consecutivas en identificarte. Si esto ocurre y que quieres re-validar tu IP, puedes echar un vistazo a la página [fail2ban](/fail2ban_es)
+
+Encontrarás explicaciones más completa sobre la seguridad y SSH en [la página dedicada](security_es).

From 80c97d14f97e42e1a6a5701cdd5503997984861e Mon Sep 17 00:00:00 2001
From: g-m-a-r <52879606+g-m-a-r@users.noreply.github.com>
Date: Wed, 14 Aug 2019 17:02:12 +0200
Subject: [PATCH 083/360] Update ssh_es.md

---
 ssh_es.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ssh_es.md b/ssh_es.md
index 650c5caf..49645031 100644
--- a/ssh_es.md
+++ b/ssh_es.md
@@ -2,7 +2,7 @@
 
 ## ¿ Qué es SSH ?
 
-**SSH** est un acrónimo por Secure Shell, y representa un protocolo que permite controlar remotamente una máquina vía la línea de comandos (CLI). También es un comando básico disponible en los terminales de Linux y MacOS / OSX. En Windows, hace falta utilizar el programa [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (después de haberlo iniciado, clicar sobre Session y lego SSH).
+**SSH** est un acrónimo por Secure Shell, y representa un protocolo que permite controlar remotamente una máquina vía la línea de comandos (CLI). También es un comando básico disponible en los terminales de Linux y MacOS / OSX. En Windows, hace falta utilizar el programa [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (después de haberlo iniciado, clicar sobre Session y luego SSH).
 
 ## Durante la instalación de Yunohost
 

From 3654c442bb69ef816d35d6dbdf3a5c868c1a049e Mon Sep 17 00:00:00 2001
From: g-m-a-r <52879606+g-m-a-r@users.noreply.github.com>
Date: Wed, 14 Aug 2019 17:03:44 +0200
Subject: [PATCH 084/360] Update ssh_es.md

---
 ssh_es.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ssh_es.md b/ssh_es.md
index 49645031..6b09207c 100644
--- a/ssh_es.md
+++ b/ssh_es.md
@@ -27,7 +27,7 @@ ssh root@111.222.333.444
 Ahora te piden una contraseña. Si es un VPS, tu proveedor ya te hará comunicado la contraseña. Si utilizaste una imagen pre-instalada (para x86 o tarjetas ARM), el password debería ser `yunohost`.
 
 <div class="alert alert-warning">
-Desde YunoHost 3.4, después de la post-instalación ya no es posible conectarse con el usuario `root`. En lugar de eso, hace falta **conectarse con el usuario `admin` !**. Incluso si el servidor LDAP fuera quebrado (haciendo que el usuario `admin` ya no fuera utilizable) todavía deberías poder conectarte con el usuario `root` desde la red local.
+Desde YunoHost 3.4, después de la post-instalación ya no es posible conectarse con el usuario `root`. En lugar de eso, hace falta **conectarse con el usuario `admin`**. Incluso si el servidor LDAP fuera quebrado (haciendo que el usuario `admin` ya no fuera utilizable) todavía deberías poder conectarte con el usuario `root` desde la red local.
 </div>
 
 #### ¡ Cambiar la contraseña root !

From 65b4f20143f944eb71fa4d0f042ff637f140060b Mon Sep 17 00:00:00 2001
From: Shad Faust <38153806+myrrhashad@users.noreply.github.com>
Date: Wed, 14 Aug 2019 17:44:38 +0200
Subject: [PATCH 085/360] Update plug_and_boot_fr.md

Going through the documentation, I had a slight scare because I did not have a screen with me and felt blocked because of that.
---
 plug_and_boot_fr.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/plug_and_boot_fr.md b/plug_and_boot_fr.md
index 8762e4dc..a38e26d6 100644
--- a/plug_and_boot_fr.md
+++ b/plug_and_boot_fr.md
@@ -2,7 +2,7 @@
 
 * Branchez votre serveur avec un câble Ethernet (RJ-45) **directement sur votre routeur principal**. Vous pouvez aussi configurer la connexion wifi comme expliqué [ici](http://raspbian-france.fr/connecter-wifi-raspberry-pi-3/). La configuration wifi peut aussi se faire sans avoir booté sur la carte, en "montant" la deuxième partition de la carte et enfin éditer le fichier wpa-supplicant.conf. Sur Windows vous pouvez utiliser [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), ne pas oublier de "unmount" pour que les changements soient pris en compte. 
 
-* N’oubliez pas de **brancher un écran** si vous voulez observer comment se déroule le démarrage, et un clavier si vous souhaitez un accès en **ligne de commande** à votre serveur.
+* Facultatif : vous pouvez **brancher un écran** si vous voulez observer comment se déroule le démarrage, et un clavier si vous souhaitez un accès en **ligne de commande** à votre serveur.
 
 * Démarrez le serveur, le Raspberry Pi va redémarrer tout seul une première fois, puis attendez jusqu’à voir un gros `Y` carré :
 
@@ -15,3 +15,4 @@
 </p>
 
 </div>
+<br>Si vous n'avez pas d'écran pour votre Raspberry, ce n'est pas grave ! Vous pourrez trouver son adresse IP autrement à l'étape suivante.

From 5091da9e424438b48384c0db51c6adddf0e1cb62 Mon Sep 17 00:00:00 2001
From: Shad Faust <38153806+myrrhashad@users.noreply.github.com>
Date: Wed, 14 Aug 2019 18:17:41 +0200
Subject: [PATCH 086/360] Add link to post-install for 1st login

It feels more user-friendly to indicate when the user can switch over to the post-install after the first login, instead of reading the whole page like I did.
---
 ssh_fr.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ssh_fr.md b/ssh_fr.md
index 34d619f5..1153dc93 100644
--- a/ssh_fr.md
+++ b/ssh_fr.md
@@ -34,6 +34,10 @@ Depuis YunoHost 3.4, après avoir effectué la postinstallation, il ne sera plus
 
 Après vous être connecté pour la première fois, il vous faut changer le mot de passe `root`. Le serveur vous demandera peut-être automatiquement de le faire. Si ce n'est pas le cas, il faut utiliser la commande `passwd`. Il est important de choisir un mot de passe raisonnablement compliqué. Notez que ce mot de passe sera écrasé ensuite par le mot de passe admin choisi lors de la postinstallation.
 
+#### En avant pour la configuration !
+
+Tout est prêt pour passer à la [post-installation](postinstall).
+
 ## Sur une instance déjà installée
 
 Si vous avez installé votre serveur à la maison et que vous cherchez à vous connecter depuis l'extérieur du réseau local, assurez-vous d'avoir bien redirigé le port 22 vers votre serveur. (Rappel : depuis la version 3.4, il vous faut vous logguer avec l'utilisateur `admin` !)

From 0ef849ed434850d00415285f860db6255ed9e689 Mon Sep 17 00:00:00 2001
From: Shad Faust <38153806+myrrhashad@users.noreply.github.com>
Date: Wed, 14 Aug 2019 18:46:15 +0200
Subject: [PATCH 087/360] Suggesting using nmap

Very specific issue, but on an install-LAN, with lots of devices connected, nmap could help so skim through the results of arp-scan ?
---
 ssh_fr.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ssh_fr.md b/ssh_fr.md
index 34d619f5..0e9a0cb6 100644
--- a/ssh_fr.md
+++ b/ssh_fr.md
@@ -13,6 +13,7 @@ Si vous installez YunoHost sur un VPS, votre fournisseur devrait vous avoir comm
 Si vous installez un serveur à la maison (par ex. sur Raspberry Pi ou OLinuXino), il vous faut trouver l'IP qui a été attribuée à votre carte après que vous l'ayez connectée à votre box internet / routeur. Il y a plusieurs façons de faire cela :
 
 - ouvrez un terminal et tapez `sudo arp-scan --local` pour lister les IP des machines sur le réseau local ;
+- si la commande arp-scan vous affiche beaucoup de machines, vous pouvez vérifier lesquelles sont ouvertes au ssh avec `nmap -p 22 192.168.1.0/24` pour faire du tri (adaptez la plage IP selon votre réseau local)
 - utilisez l'interface de votre box internet pour lister les machines connectées, ou regarder les logs ;
 - branchez un écran sur votre serveur, loggez-vous et tapez `hostname --all-ip-address`.
 

From a801050f349331ace384080115d170fa57d509fb Mon Sep 17 00:00:00 2001
From: gmar <gmar@marsan.me>
Date: Thu, 15 Aug 2019 17:39:42 +0200
Subject: [PATCH 088/360] More spanish translation

---
 XMPP_es.md                 |  50 +++++++
 apps_es.md                 | 295 +++++++++++++++++++++++++++++++++++++
 certificate_es.md          |  77 ++++++++++
 copy_image_es.md           |  39 +++++
 default_es.md              |  11 ++
 dns_es.md                  |   2 +-
 email_es.md                |  44 ++++++
 index_es.md                |  12 +-
 install_iso_es.md          |  10 +-
 install_manually_es.md     |   2 +-
 install_on_arm_board_es.md |  20 +--
 install_on_raspberry_es.md |  12 +-
 install_on_vps_es.md       |   4 +-
 isp_box_config_es.md       |  48 ++++++
 isp_es.md                  |  47 ++++++
 plug_and_boot_es.md        |  17 +++
 port_forwarding_es.md      |   5 +
 try_es.md                  |   2 +-
 18 files changed, 665 insertions(+), 32 deletions(-)
 create mode 100644 XMPP_es.md
 create mode 100644 apps_es.md
 create mode 100644 certificate_es.md
 create mode 100644 copy_image_es.md
 create mode 100644 default_es.md
 create mode 100644 email_es.md
 create mode 100644 isp_box_config_es.md
 create mode 100644 isp_es.md
 create mode 100644 plug_and_boot_es.md
 create mode 100644 port_forwarding_es.md

diff --git a/XMPP_es.md b/XMPP_es.md
new file mode 100644
index 00000000..228b941f
--- /dev/null
+++ b/XMPP_es.md
@@ -0,0 +1,50 @@
+#Chat, VoIP y red local con <img src="/images/XMPP_logo.png" width=100>
+
+Yunohost está instalado con un servidor de mensajería instantánea Metronome que implementa el [protocolo  XMPP](https://es.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol).
+
+XMPP es un protocolo abierto y extensible que también permite crear salones de discusión, compartir status y datos, echar llamadas en VoIP y hacer videoconferencias. 
+
+Todas las aplicaciones basadas en XMPP son compatibles entre ellas : cuando utilizas un cliente XMPP puedes discutir con cualquier persona que tenga una cuenta XMPP/Jabber. Este protocolo ya es utilizado por millones de personas en el mundo. 
+
+### Cuenta XMPP/Jabber
+
+Una cuenta XMPP/Jabber está basada en un ID bajo la forma `usuario@dominio.tld`, así como una contraseña. La contraseña es la de la cuenta del usuario de Yunohost.
+
+### Conectarse a XMPP
+
+Existen varios clientes web de tipo red social, como :
+- [Movim](https://pod.movim.eu)
+- [Libervia/Salut à Toi](http://salut-a-toi.org/).
+
+También puedes utilizar un cliente Desktop como : 
+- [Pidgin](http://pidgin.im/) (multiplataformas), 
+- [Gajim](http://gajim.org/index.fr.html) (Linux, Windows),
+- [Dino](https://dino.im) (Linux),
+- [Thunderbird](https://www.mozilla.org/fr/thunderbird/) (multiplataformas), 
+- [Jitsi](http://jitsi.org/) (multiplataformas) 
+- [Adium](https://adium.im/) (Mac OS).
+
+... o un cliente smartphone :
+* [Xabber](http://xabber.com) (Android)
+* [Conversations](https://conversations.im/) (Android)
+* [Movim sous Android](https://movim.eu)
+* [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
+
+Aquí tienes una lista más exhaustiva de clientes XMPP (fr) : https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP
+
+### Cifrar tu conversaciones con OMEMO :
+
+Es posible cifrar tu conversaciones XMPP con la ayuda de [OMEMO](https://xmpp.org/extensions/xep-0384.html), por ejemplo utilizando Gajim :
+* Instalar `gajim` y el plugin `gajim-omemo`
+* Activar el plugin en `Tools > Plugins`
+* Activar el cifrado en una conversación con un contacto que también tiene OMEMO activado.
+
+### Salón de discusión 
+
+Para crear un salón de discusión (Multi-user chat) en tu servidor Yunohost, utiliza el ID nombredelsalon@muc.dominio.tld (donde dominio.tld es el dominio principal de tu servidor).
+
+Si utilizas un nombre de dominio personal, es necesario [añadir una redirección de tipo CNAME para el subdominio `muc.`](dns_config_es) en tu servidor DNS.
+
+### VoIP y videoconferencias
+
+Un buen medio de llamar a un contacto XMPP en VoIP o en llamada video, es utilizar el cliente [Jitsi](http://jitsi.org/).
diff --git a/apps_es.md b/apps_es.md
new file mode 100644
index 00000000..99398de4
--- /dev/null
+++ b/apps_es.md
@@ -0,0 +1,295 @@
+# Apps
+
+<span class="javascriptDisclaimer">
+Esta página requiere que Javascript esté activado para aparecer correctamente :s.
+<br/>
+<br/>
+</span>
+
+<div class="input-group">
+    <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
+    <input type="text" id="filter-app-cards" class="form-control"  placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
+    <div class="input-group-btn">
+        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+            <span id="app-cards-list-filter-text">Apps oficiales únicamente</span> <span class="caret"></span>
+        </button>
+        <ul class="dropdown-menu">
+            <li><a href="#" id="app-cards-list-validated">Apps oficiales únicamente</a></li>
+            <li><a href="#" id="app-cards-list-working">Apps "working" únicamente</a></li>
+            <li><a href="#" id="app-cards-list-working-inprogress">Apps "in progress"/"not working"</a></li>
+            <li><a href="#" id="app-cards-list-all-apps">Todas las apps</a></li>
+        </ul>
+    </div>
+</div>
+<br />
+<div id="community-app-list-warrant" class="alert alert-danger">
+    <p>Sólo las apps señaladas <span class="label label-success label-as-badge">validated</span> están oficialmente soportadas por el equipo de desarrollo de aplicaciones. </p>
+
+    <p>Las apps señaladas <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> son aplicaciones que son oficiales, mantenidas por la comunidad, puedes testarlas y utilizarlas **por tu cuenta y riesgo**.</p>
+
+    <p>Importante: son los que mantienen la aplicación quienes definen su propia aplicación cómo "working", no es el equipo de desarrollo de aplicaciones de Yunohost. Instala estas aplicaciones por tu cuenta y riesgo. No proponemos servicios de soporte para ellas.</p>
+</div>
+<div class="alert alert-info">Los desarrolladores de aplicaciones te agradecerán tu comentarios. Si instalas sus apps y encuentras fallos, o si tienes ideas para mejorarlas, no dudes en crear tickets direactement en las páginas de depósitos de los proyectos.</div>
+
+<div class="app-cards-list" id="app-cards-list"></div>
+
+<div class="alert alert-warning">Si no encuentras la aplicación que buscas, puedes buscarla en las aplicaciones comunitarias (working, inprogress y networking) o llenar la <a href="/apps_wishlist_en">lista de apps deseadas</a>.</div>
+
+<style>
+/*=================================================
+ Search bar
+=================================================*/
+#filter-app-cards, #app-cards-list {
+    width:100%;
+}
+/*===============================================*/
+
+/*=================================================
+ Force return space after card list
+=================================================*/
+#app-cards-list:after {
+    content:'';
+    display:block;
+    clear: both;
+}
+/*===============================================*/
+
+/*=================================================
+ App card
+=================================================*/
+.app-card {
+    margin-bottom:20px;
+    width:270px;
+    float:left;
+    min-height: 1px;
+    margin-right: 10px;
+    margin-left: 10px;
+}
+/*===============================================*/
+
+/*=================================================
+ App card body
+=================================================*/
+.app-card .panel-body >  h3 {
+    margin-top:0;
+    margin-bottom:5px;
+    font-size:1.2em;
+}
+.app-card .category {
+    height:35px;
+}
+.app-card .category .label, .app-card-date-maintainer {
+    font-size:0.7em;
+}
+.app-card-date-maintainer {
+    text-align:right;
+    max-height: 18px;
+    margin-bottom: 3px;
+    margin-right: 7px;
+    margin-top: -5px;
+}
+
+.app-card-desc {
+    height:100px;
+    overflow: hidden;
+}
+/*===============================================*/
+
+/*=================================================
+ App card footer
+=================================================*/
+.app-card .btn-group {
+    width:100%;
+    margin-left: 0px;
+}
+.app-card > .btn-group > .btn{
+    border-bottom:0;
+}
+.app-card > .btn-group > .btn:first-child {   
+    border-left:0;
+    border-top-left-radius:0;
+}
+.app-card > .btn-group > .btn:last-child {
+    border-right:0;
+    border-top-right-radius:0;
+    margin-left: 0px;
+    width: 33.6%;
+}
+/*===============================================*/
+</style>
+
+<script type="text/template" id="app-template2">
+    <div class="app-card_{app_id} app-card panel panel-default">
+
+        <div class="panel-body">
+            <h3>{app_name}</h3>
+            <div class="category"></div>
+
+            <div class="app-card-desc">{app_description}</div>
+        </div>
+
+            <div class="app-card-date-maintainer">
+                <span class="glyphicon glyphicon-refresh"></span> {app_update} - 
+                <span class="glyphicon glyphicon-user"></span> {app_maintainer}
+            </div>
+        <div class="btn-group" role="group">
+            <a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
+            <a href="#/app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
+            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">Installer</a>
+        </div>
+
+    </div> 
+</script>
+
+<script>
+function timeConverter(UNIX_timestamp) {
+    var a = new Date(UNIX_timestamp*1000);
+    var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
+    var year = a.getFullYear();
+    var month = months[a.getMonth()];
+    var date = a.getDate();
+    var hour = a.getHours();
+    var min = a.getMinutes();
+    if (hour < 10) { hour = '0' + hour; }
+    if (min < 10) { min = '0' + min; }
+    var time = date+' '+month+' '+year;//+' at '+hour+':'+min
+    return time;
+}
+
+$(document).ready(function () {
+    // Hide warrant about community list
+    $('#community-app-list-warrant').hide();
+    var filters = ["validated"];
+
+    function filter(){
+        var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
+        var valThis = $('#filter-app-cards').val().toLowerCase();
+        $('.app-card').each(function(){
+            var text = $(this).find('h3').text().toLowerCase();
+            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
+        });
+        (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
+    }
+
+    //=================================================
+    // Search & filter bar event
+    //=================================================
+    $('#filter-app-cards').keyup(filter);
+
+    $('#app-cards-list-validated').click(function(){
+        filters = ["validated"];
+        $('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
+        filter();
+    });
+
+    $('#app-cards-list-working').click(function(){
+        filters = ["validated", "working"];
+        $('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
+        filter();
+    });
+
+    $('#app-cards-list-working-inprogress').click(function(){
+        filters = ["notworking", "inprogress"];
+        $('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
+        filter();
+    });
+
+    $('#app-cards-list-all-apps').click(function(){
+        filters = ["validated", "working", "inprogress", "notworking"];
+        $('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
+        filter();
+    }); 
+    //=================================================  
+
+
+    //=================================================
+    // Upload apps lists
+    //=================================================
+    var app_list={};
+    $.when(
+        $.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
+            app_list.community = $.map(community, function(el) { return el; });
+        }),
+        $.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
+            app_list.official = $.map(official, function(el) { return el; });
+        })
+    ).then(function() {
+        app_list = app_list.official.concat(app_list.community);
+    
+        // Sort alpha
+        app_list.sort(function(a, b){
+            a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
+            b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
+            if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
+            else if (a.manifest.id == b.manifest.id) {return 0;}
+            return -1;
+        });
+        $.each(app_list, function(k, infos) {
+            app_id = infos.manifest.id;
+            app_install_bootstrap = "success";
+            if (infos.state === "validated") {
+                app_state_bootstrap = "success";
+            } else if (infos.state === "working") {
+                app_state_bootstrap = "success";
+            } else if (infos.state === "inprogress") {
+                app_state_bootstrap = "warning";
+                app_install_bootstrap = "danger";
+            } else if (infos.state === "notworking") {
+                app_state_bootstrap = "danger";
+                app_install_bootstrap = "danger";
+            }
+            if (infos.level == null ) {
+                infos.level = '?';
+            }
+            if (infos.level == 0 ) {
+                app_level_bootstrap = "danger";
+                app_install_bootstrap = "danger";
+            } else if (infos.level <= 2) {
+                app_level_bootstrap = "warning";
+                app_install_bootstrap = "danger";
+            } else if (infos.level >= 7) {
+                app_level_bootstrap = "success";
+            } else {
+                app_level_bootstrap = "default";
+            }
+
+            // Fill the template
+            html = $('#app-template2').html()
+             .replace(/{app_id}/g, app_id)
+             .replace(/{app_name}/g, infos.manifest.name)
+             .replace('{app_description}', infos.manifest.description.fr)
+             .replace(/{app_git}/g, infos.git.url)
+             .replace('{app_branch}', infos.git.branch)
+             .replace('{app_level}', infos.level)
+             .replace('{app_update}', timeConverter(infos.lastUpdate))
+             .replace('{app_state_bootstrap}', app_state_bootstrap)
+             .replace('{app_install_bootstrap}', app_install_bootstrap);
+
+            if (infos.manifest.developer) {
+                html = html
+                 .replace('{app_maintainer}', infos.manifest.developer.name)
+                 .replace('{app_mail}', infos.manifest.developer.email);
+            }
+
+            if (infos.manifest.maintainer) {
+                html = html
+                 .replace('{app_maintainer}', infos.manifest.maintainer.name)
+                 .replace('{app_mail}', infos.manifest.maintainer.email);
+            }
+
+            // Fill the template
+            $('#app-cards-list').append(html);
+            $('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
+            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
+            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
+            if (infos.manifest.license && infos.manifest.license != 'free') {
+                $('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
+            }
+
+        });
+        filter();
+    });
+    //=================================================  
+});
+</script>
+
diff --git a/certificate_es.md b/certificate_es.md
new file mode 100644
index 00000000..16e12ca9
--- /dev/null
+++ b/certificate_es.md
@@ -0,0 +1,77 @@
+# Certificado
+
+Los certificados sirven para garantizar la confidencialidad y la autenticidad de las comunicaciones entre un navegador web y tu servidor. En particular, permite proteger los visitantes contra atacantes que podrían intentar de robar la identidad del servidor.
+
+Por defecto, Yunohost provee un certificado **auto-firmado**, lo que significa que es tu servidor el que garantiza la validez del certificado. Es suficiente **en el caso de un uso personal**, porque puedes confiar en tu propio servidor, pero esto planteará problemas si piensas en abrir el acceso a tu servidor a personas anónimas, por ejemplo si quieres alojar un sitio web.
+En efecto, los usuarios deberán pasar por una pantalla de este tipo :
+
+<img src="/images/postinstall_error.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
+
+Esta pantalla equivale a que te pidan ** ¿ Confías en el servidor que aloja este sitio ? ***. Esto puede asustar tu usuarios (con toda la razón).
+
+Para evitar esta confusión, es posible obtener un certificado, reconocido directamente por los navegadores, firmado por una autoridad « conocida » : **Let's Encrypt**, **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**.
+
+**Let's Encrypt** propone certificados gratuitos. Desde la versión 2.5, Yunohost permite instalar directamente tales certificados desde la interfaz de administración o la línea de comandos. El resto del documento detalla la instalación y la firma de este tipo de certificado. También puedes [instalar un certificado de otra autoridad que Let's Encrypt](/certificate_custom_es).
+
+### Instalar un certificado Let's Encrypt
+
+Antes de intentar la instalación de un certificado Let's Encrypt, primero debes asegurarte de que el DNS está configurado correctamente (tu.dominio.tld debe apuntar hacia la IP de tu servidor) y que el sitio está accesible en HTTP desde afuera (i.e. por lo menos que el puerto 80 está correctamente redirigido hacia tu servidor).
+
+#### Vía la interfaz de administración web
+
+En la categoría 'Dominio' de la interfaz de administración, y luego en la sección dedicada a tu dominio, encontrarás un botón 'Certificado SSL'.
+
+![](./images/domain-certificate-button-fr.png)
+
+En la sección 'Certificado SSL', puedes ver el estado corriente del certificado.
+Si acabas de añadir el dominio, ya dispone de un certificado auto-firmado.
+
+![](./images/certificate-before-LE-fr.png)
+
+Si tu dominio está configurado correctamente, es posible instalar un certificado Let's Encrypt vía el botón verde.
+
+![](./images/certificate-after-LE-fr.png)
+
+Una vez la instalación terminada, puedes ir a tu dominio vía tu navegador, en HTTPS, para comprobar que tu certificado está bien firmado por Let's Encrypt. El certificado se renovará automáticamente al cabo de cada periodo de tres meses.
+
+![](./images/certificate-signed-by-LE.png)
+
+#### Vía línea de comandos
+
+Conectate en tu servidor en SSH.
+
+Puedes comprobar el estatus corriente de tu certificado vía 
+
+```bash
+yunohost domain cert-status tu.dominio.tld
+```
+
+Instala el certificado Let's Encrypt vía
+
+```bash
+yunohost domain cert-install tu.dominio.tld
+```
+
+Este comando debe devolverte :
+
+```bash
+Success! The SSOwat configuration has been generated
+Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD!
+```
+
+Una vez que la instalación está terminada, puedes dirigirte a tu dominio vía tu navegador, en HTTPS, para comprobar que el certificado está bien firmado por Let's Encrypt. El certificado se renovará automáticamente al cabo de cada periodo de tres meses.
+
+##### Si hay un problema
+
+Si, después de una manipulación incorrecta, un certificado se encuentra en una mala situación (e.g. pérdida del certificado o imposibilidad de leerlo), es posible regenerar un certificado autofirmado :
+
+```bash
+yunohost domain cert-install tu.dominio.tld --self-signed --force
+```
+
+Si Yunohost te dice que tu dominio está mal configurado mientras que has verificado tu configuración DNS y que tienes acceso a tu servidor en HTTP desde afuera, puedes intentar :
+
+- de añadir una línea `127.0.0.1 tu.dominio.tld` al archivo `/etc/hosts` en tu servidor ;
+- si la instalación todavía no funciona, desactiva las verificaciones añadiendo `--no-checks` al comando `cert-install`.
+
+
diff --git a/copy_image_es.md b/copy_image_es.md
new file mode 100644
index 00000000..c979e3e2
--- /dev/null
+++ b/copy_image_es.md
@@ -0,0 +1,39 @@
+# Flashear una tarjeta SD
+
+Ahora que has descargado la imagen de Yunohost, tienes que copiar su contenido en una tarjeta SD. Esta etapa también puede llamarse 'flashear' la tarjeta SD.
+
+<div class="alert alert-warning" markdown="1">
+En el marco del self-hosting / auto-alojamiento, está recomendado que tu tarjeta SD tenga una capacidad de por lo menos 8 Go (para diponer de suficientemente espacio para el sistema y un poco de datos) y esté al menos certificada de clase 10 (para tener bueno rendimiento).
+</div>
+
+<img src="/imagen/sdcard.jpg" width=150><img src="https://yunohost.org/images/micro-sd-card.jpg">
+
+### Con Etcher
+
+Descarga <a href="https://etcher.io/" target="_blank">Etcher</a> para tu sistema operativo, e instálalo.
+
+<img src="/images/etcher.gif">
+
+Conecta tu tarjeta SD, selecciona tu imagen Yunohost y luego haz clic en 'Flash'.
+
+### Con `dd`
+
+Si estás en Linux / Mac y que estás cómodo con la línea de comandos, también puedes flashear tu tarjeta SD con el comando `dd`. Empieza por identificar el periférico que corresponde a tu tarjeta SD con `fdisk -l` o
+`lsblk`. Suponiendo que tu tarjeta SD sea `/dev/mmcblk0` (¡ ten cuidado
+!), puedes iniciar :
+
+```bash
+dd if=/chemin/vers/yunohost.img of=/dev/mmcblk0
+```
+
+## Extiende la partición root <small>(optionnel)</small>
+
+<div class="alert alert-warning" markdown="1">
+Esta etapa es opcional porque normalmente la realiza automáticamente el sistema durante el primer inicio sobre las imágenes recientes.
+</div>
+
+Por defecto, la partición root instalada en tu tarjeta SD con el comando `dd` es muy pequeña. Puedes redimensionarla con un programa como `resize2fs` (línea de comandos) o `Gparted` (interfaz gráfica) extendiendo la partición ext4 al máximo de modo a utilizar todo el espacio que no está asignado.
+
+<img src="/images/gparted.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
+
+<p class="text-muted">Vistazo de la interfaz de Gparted</p>
diff --git a/default_es.md b/default_es.md
new file mode 100644
index 00000000..6b8c21f5
--- /dev/null
+++ b/default_es.md
@@ -0,0 +1,11 @@
+#Nueva página
+
+Esta página todavía no existe, puedes editarla tecleando ```<Escap>``` en tu teclado, o clicando en el botón "Editar" abajo a la derecha de tu pantalla. Puedes echar un vistazo a los cambios que has efectuado empujando de nuevo la tecla ```<Escap>``` o clicando en el botón "Vistazo".
+
+** Nota : ** Necesitarás una dirección email para validar tu propuesta.
+
+
+### Sintaxis
+Esta página utiliza la sintaxis Markdown, refiérete a la documentación para más informaciones :
+
+http://daringfireball.net/projects/markdown/syntax
diff --git a/dns_es.md b/dns_es.md
index 3fae91a9..14261ac2 100644
--- a/dns_es.md
+++ b/dns_es.md
@@ -29,7 +29,7 @@ Tienes varias opciones. Nota que puedes cumular estas soluciones si posees vario
 **Es el método recomendado si estás debutando.**
 
 2. Puedes utilizar el servicio de DNS de tu  **registrar** (Gandi, OVH, BookMyName u otro) para configurar tus nombres de dominio. Ésta es la [configuración DNS estándar](/dns_config_es). También es posible utilizar una redirección DNS local, más información sobre cómo [Acceder a su servidor desde la red local](/dns_local_network_es).
-También puedes consultar las documentaciones específicas a estas varias [oficinas de registro](/registrar_fr) : [Gandi](http://gandi.net), [OVH](/OVH_fr) o [BookMyName](http://bookmyname.com).
+También puedes consultar las documentaciones específicas a estas varias [oficinas de registro](/registrar_es) : [Gandi](http://gandi.net), [OVH](/OVH_fr) o [BookMyName](http://bookmyname.com).
 
 **Atención** : Si eliges este modo de funcionamiento, tendrás más flexibilidad, pero nada será automático. Por ejemplo si quieres utilizar `webmail.mi-servidor.org`, tendrás que añadirlo manualmente en la interfaz de tu registrar.
 
diff --git a/email_es.md b/email_es.md
new file mode 100644
index 00000000..bedac75d
--- /dev/null
+++ b/email_es.md
@@ -0,0 +1,44 @@
+Emails
+======
+
+YunoHost integra un ecosistema completo de servidor mail, permitiéndote de alojar tu propia mensajería electrónica, y pues de tener tus propias direcciones email en `algo@tu.dominio.tld`.
+
+Este ecosistema comprende un servidor SMTP (postfix), un servidor IMAP (Dovecot), un antispam (rspamd) y una configuración DKIM.
+
+Asegurarse de que la configuración esté correcta
+-------------------------------
+
+Los emails son un ecosistema complicado y una multitud de detalles puedes impedir que funcionen correctamente.
+
+Para validar que tu configuración es correcta :
+- si te alojas en casa y que no tienes VPN, asegúrate de que [tu proveedor de Internet no esté bloqueando el puerto 25](isp_es) ;
+- redirige los puertos siguiendo [esta documentación](isp_box_config_es) ;
+- configura con cuidado los registros DNS del correo electrónico siguiendo [esta documentación](dns_config_es) ;
+- testa tu configuración utilizando [Mail-tester.com](https://mail-tester.com) <small>(cuidado : sólo 3 tests por dominio y por día están autorizados)</small> ;
+
+Una nota de al menos 8~9/10 es un objetivo razonable.
+
+Clientes de mensajería 
+-------------
+
+Para interactuar con el servidor de mail, o sea leer y mandar emails, puedes instalar un cliente web como Roundcube o Rainloop en tu servidor - o configurar un cliente de Desktop o móvil como descrito en [esta página][cette page](email_configure_client_es).
+
+Los clientes Desktop o móvil tienen la ventaja de copiar tu emails en el equipo, así permitiendo la consulta desconectada de tus mensajes, y cierta protección frente a la posibilidad de un servidor averiado.
+
+Configuration de los aliases de mensajeras y de las redirecciones automáticas 
+-------------------------------------------
+
+Aliases de mensajeras y redirecciones pueden ser configurados por cada usuario. Por ejemplo, el primer usuario creado en el servidor automáticamente dispone de un alias `root@tu.dominio.tld` - lo que significa que un email mandado hacia esta dirección se encontrará en el buzón de entrada de este usuario. Las redirecciones automáticas pueden ser configuradas, por ejemplo si un usuario no quiere configurar una cuenta de correo adicional y simplemente desea recibir correos del servidor en - por ejemplo - su dirección gmail.
+
+Otra función desconocida es el uso del sufijo "+". Por ejemplo, email mandados a `johndoe+sncf@tu.dominio.tld` llegarán en el directorio 'sncf' del buzón de correo de John Dos (o directamente en el buzón si este directorio no existe). Es una técnica práctica que permite proveer una dirección de mail a un sitio y automatizar la clasificación de los correos que te mandará este sitio.
+
+¿ Qué ocurre si mi servidor se pone indisponible ?
+-----------------------------------------------
+
+Si tu servidor se pone indisponible, los correos electrónicos mandados a tu servir se quedarán en una fila de espera por el lado del expedidor durante aproximadamente 5 días. El proveedor de hosting del expedidor intentará mandarte regularmente el correo, hasta que lo tire si no lo puede enviar. 
+
+Más información
+--------------------
+
+- Existe una página de documentación para [migrar sus emails desde un proveedor de mensajería hacia una instancia Yunohost](email_migration_es).
+- Para profundizar tu comprensión del correo electrónico y de sus protocolos, aquí tienes una [conferencia muy interesante](http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/index.html)(en francés).
diff --git a/index_es.md b/index_es.md
index 140c2bd4..1b066c15 100644
--- a/index_es.md
+++ b/index_es.md
@@ -66,7 +66,7 @@
     </div>
     <div class="col-md-7 text-right">
       <h1>Disfrutar <small>de sus aplicaciones web, y crea tu esquina de Internet</small></h1>
-      <p><br /><a href="/apps_fr">Lista de aplicaciones disponible</a></p>
+      <p><br /><a href="/apps_es">Lista de aplicaciones disponible</a></p>
     </div>
   </div>
 
@@ -75,7 +75,7 @@
   <div class="row cf">
     <div class="col-md-7">
       <h1>Gestionar <small>tu servidor como quieras : vía web, móvil o en línea de comandos</small></h1>
-      <p><br /><a href="/try_fr">Intentar la interfaz de administración</a></p>
+      <p><br /><a href="/try_es">Intentar la interfaz de administración</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
@@ -88,15 +88,15 @@
 
   <div class="row cf">
     <div class="col-md-4 button-list">
-      <a class="btn btn-lg btn-block btn-primary" href="/userdoc_fr">Guía del usuario</a>
+      <a class="btn btn-lg btn-block btn-primary" href="/userdoc_es">Guía del usuario</a>
       <a class="btn btn-lg btn-block btn-info" href="https://ask.yunohost.org" target="_blank">Preguntas más frecuentes</a>
-      <a class="btn btn-lg btn-block btn-success" href="/whatsyunohost_fr">¿ Que es YunoHost ?</a>
-      <a class="btn btn-lg btn-block btn-warning" href="/contribute_fr">Cómo contribuir</a>
+      <a class="btn btn-lg btn-block btn-success" href="/whatsyunohost_es">¿ Que es YunoHost ?</a>
+      <a class="btn btn-lg btn-block btn-warning" href="/contribute_es">Cómo contribuir</a>
       <a class="btn btn-lg btn-block btn-danger btn-support" href="http://news.yunohost.org">últimas noticias</a>
     </div>
     <div class="col-md-7 text-right">
       <h1>Explorar <small>las posibilidad de su servidor, y aprender porque es importante</small></h1>
-      <p><br /><a href="/docs_fr">Leer la documentación</a></p>
+      <p><br /><a href="/docs_es">Leer la documentación</a></p>
     </div>
   </div>
 
diff --git a/install_iso_es.md b/install_iso_es.md
index 8cd26815..91de3195 100644
--- a/install_iso_es.md
+++ b/install_iso_es.md
@@ -10,7 +10,7 @@
 
 * Un ordenador compatible x86 dedicado a YunoHost : portátil, netbook, ordenador de escritorio. Puedes reutilizar calquiera máquina con **256 Mo de RAM mínimo**
 * Otro ordenador para examinar esta guía y acceder a tu servidor
-* Un [proveedor de Internet ético](/isp_fr), de preferencia con acceso de buena velocidad   (ascendente)
+* Un [proveedor de Internet ético](/isp_es), de preferencia con acceso de buena velocidad   (ascendente)
 * Una **memoria USB** con capacidad mínima de 1Go **O** un **CD en blanco** estándar
 * ***Casos particulares*** : si tu servidor no tiene tarjeta gráfica, hay que preparar un iso que se inicie sobre el puerto de serie](https://github.com/luffah/debian-mkserialiso).
 
@@ -18,13 +18,13 @@
 
 ## Etapas de instalación
 
-<a class="btn btn-lg btn-default" href="/images_fr">0. Descargar la imagen ISO</a>
+<a class="btn btn-lg btn-default" href="/images_es">0. Descargar la imagen ISO</a>
 
-<a class="btn btn-lg btn-default" href="/burn_or_copy_iso_fr">1. Copiar la imagen ISO</a>
+<a class="btn btn-lg btn-default" href="/burn_or_copy_iso_es">1. Copiar la imagen ISO</a>
 
-<a class="btn btn-lg btn-default" href="/boot_and_graphical_install_fr">2. Encender e instalar</a>
+<a class="btn btn-lg btn-default" href="/boot_and_graphical_install_es">2. Encender e instalar</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">3. Post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall_es">3. Post-instalación</a>
 
 ---
 
diff --git a/install_manually_es.md b/install_manually_es.md
index 8f273361..c5120e0a 100644
--- a/install_manually_es.md
+++ b/install_manually_es.md
@@ -8,7 +8,7 @@ curl https://install.yunohost.org | bash
 
 <small>*(Si `curl` no está instalado en tu sistema, tal vez tendrás que instalarlo con `apt install curl`. De otro modo, si el comando no muestra nada, puedes intentar `apt install ca-certificates`)*</small>
 
-Cuando la instalación esté terminada, habrá que [**proceder a la post-instalación**](/postinstall)
+Cuando la instalación esté terminada, habrá que [**proceder a la post-instalación**](/postinstall_es)
 
 ---
 
diff --git a/install_on_arm_board_es.md b/install_on_arm_board_es.md
index 4c3b25fd..26477bf7 100644
--- a/install_on_arm_board_es.md
+++ b/install_on_arm_board_es.md
@@ -19,21 +19,21 @@ YunoHost todavía no es compatible con las tarjetas ARM64. Para obtener más inf
 - Un adaptador de corriente para alimentar la tarjeta ;
 - Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
 - Un cable ethernet/RJ-45 para conectar la carte con el router / caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.)
-- Un [proveedor de Internet ético](/isp_fr), de preferencia con una buena velocidad de upload.
+- Un [proveedor de Internet ético](/isp_es), de preferencia con una buena velocidad de upload.
 
 ---
 
 ## Instalación con la imagen pre-instalada (recomendada)
 
-<a class="btn btn-lg btn-default" href="/images_fr">0. Descargar la imagen pre-instalada para tu tarjeta ARM</a><br><small>Si no existe una imagen dedicada a tu tarjeta, puedes seguir la sección "Instalación encima de ARMbian".</small>
+<a class="btn btn-lg btn-default" href="/images_es">0. Descargar la imagen pre-instalada para tu tarjeta ARM</a><br><small>Si no existe una imagen dedicada a tu tarjeta, puedes seguir la sección "Instalación encima de ARMbian".</small>
 
-<a class="btn btn-lg btn-default" href="/copy_image_fr">1. Poner la imagen en tu tarjeta SD</a>
+<a class="btn btn-lg btn-default" href="/copy_image_es">1. Poner la imagen en tu tarjeta SD</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Conectar y encender</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot_es">2. Conectar y encender</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">3. Conectarse en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh_es">3. Conectarse en SSH</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">4. Proceder a la post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall_es">4. Proceder a la post-instalación</a>
 
 ---
 
@@ -41,11 +41,11 @@ YunoHost todavía no es compatible con las tarjetas ARM64. Para obtener más inf
 
 <a class="btn btn-lg btn-default" href="https://www.armbian.com/download/">0. Descargar la imagen ARMbian para tu tarjeta ARM</a>
 
-<a class="btn btn-lg btn-default" href="/copy_image_fr">1. Poner la imagen en tu tarjeta SD</a>
+<a class="btn btn-lg btn-default" href="/copy_image_es">1. Poner la imagen en tu tarjeta SD</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Conectar y encender</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot_es">2. Conectar y encender</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">3. Conectarse en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh_es">3. Conectarse en SSH</a>
 
-<a class="btn btn-lg btn-default" href="/install_manually_fr">4. Proceder a la post-instalación genérica</a>
+<a class="btn btn-lg btn-default" href="/install_manually_es">4. Proceder a la post-instalación genérica</a>
 
diff --git a/install_on_raspberry_es.md b/install_on_raspberry_es.md
index 4863e975..902c8ab1 100644
--- a/install_on_raspberry_es.md
+++ b/install_on_raspberry_es.md
@@ -17,21 +17,21 @@ Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las
 - Un adaptador de corriente para alimentar la tarjeta ;
 - Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
 - Un cable ethernet/RJ-45 para conectar la tarjeta con tu enrutador o tu caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.)
-- Un [proveedor de Internet ético](/isp_fr), de preferencia con buena velocidad de upload.
+- Un [proveedor de Internet ético](/isp_es), de preferencia con buena velocidad de upload.
 
 ---
 
 ## Instalación con la imagen pre-instalada (recomendada)
 
-<a class="btn btn-lg btn-default" href="/images_fr">1. Descargar la imagen para Raspberry Pi</a>
+<a class="btn btn-lg btn-default" href="/images_es">1. Descargar la imagen para Raspberry Pi</a>
 
-<a class="btn btn-lg btn-default" href="/copy_image_fr">2. Poner la imagen en tu tarjeta SD</a>
+<a class="btn btn-lg btn-default" href="/copy_image_es">2. Poner la imagen en tu tarjeta SD</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">3. Conectar y encender</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot_es">3. Conectar y encender</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">4. Conectarse en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh_es">4. Conectarse en SSH</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">5. Proceder a la post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall_es">5. Proceder a la post-instalación</a>
 
 ---
 
diff --git a/install_on_vps_es.md b/install_on_vps_es.md
index 89eb2504..0263d71f 100644
--- a/install_on_vps_es.md
+++ b/install_on_vps_es.md
@@ -14,7 +14,7 @@
 
 ## Etapas de instalación
 
-<a class="btn btn-lg btn-default" href="/install_manually_fr">1. Instalar manualmente</a>
+<a class="btn btn-lg btn-default" href="/install_manually_es">1. Instalar manualmente</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">2. Post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall_es">2. Post-instalación</a>
 
diff --git a/isp_box_config_es.md b/isp_box_config_es.md
new file mode 100644
index 00000000..dc239ef0
--- /dev/null
+++ b/isp_box_config_es.md
@@ -0,0 +1,48 @@
+# Configurar la redirección de los puertos
+
+Si te estás auto-alojando en casa y sin VPN, tienes que redirigirse los puertos de tu router (caja/box). Si quieres una explicación sencilla de lo que es y por qué necesitas redirigir los puertos, puedes echar un vistazo a [esta página](port_forwarding_es). [Esta página](https://www.testdevelocidad.es/configuraciones/abrir-correctamente-los-puertos-router/) también propone explicaciones detalladas sobre el funcionamiento de los puertos, y las etapas de configuración para un router genérico.
+
+### 0. Diagnosticar los puertos abiertos
+
+Una vez que tienes la redirección configurada, deberías poder comprobar que los puertos están bien abiertos con esta herramienta : 
+
+<a class="btn btn-default" href="http://ports.yunohost.org">Comprobar la redirección de los puertos</a>
+
+### 1. Acceder a la interfaz de administración de tu router/caja/box
+
+En general la interfaz de administración está accesible desde http://192.168.0.1 o http://192.168.1.1. 
+Luego, es posible que tengas que autenticarte con los ID provechos pour tu proveedor de acceso a Internet.
+
+### 2. Descubrir la IP local del servidor
+
+Identifica cuál es la IP local de tu servidor, o sea :
+- desde la interfaz de tu router/caja/box, donde tal vez estén listados los dipositivos conectados a la red local
+- desde la webadmin de YunoHost, en 'Estado del servidor', 'Red'
+- desde la línea de comandos en tu servidor, por ejemplo con `ip a | grep "scope global" | awk '{print $2}'`
+
+En general una dirección IP local se parece a `192.168.xx.yy`, o `10.0.xx.yy`.
+
+### 3. Redirigir los puertos
+
+En la interfaz de administración de tu router/caja/box, tienes que encontrar una categoría que debe llamarse 'Configuración del router', o 'Redirección de puertos'. El nombre difiere según el tipo o la marca del router / de la caja Internet...
+
+Luego tienes que redirigir cada uno de los puertos listados a continuación hacia la IP local de tu router para que los varios servicios de Yunohost funcionen. Para cada uno de ellos, una redirección 'TCP' es necesaria. En algunas interfaces, tal vez encontrarás referencias a un puerto 'externo' y un puerto 'interno' : en nuestro caso, se trata del mismo número de puerto, que sea interno o externo.
+
+* Web: 80 <small>(HTTP)</small>, 443 <small>(HTTPS)</small>
+* [SSH](/ssh_es): 22
+* [XMPP](/XMPP_es): 5222 <small>(clients)</small>, 5269 <small>(servers)</small>
+* [Email](/email_es): 25, 587 <small>(SMTP)</small>, 993 <small>(IMAP)</small>
+
+<div class="alert alert-warning" markdown="1">
+<span class="glyphicon glyphicon-warning-sign"></span> Algunos proveedores de acceso a Internet bloquean el puerto 25 (mail SMTP) por defecto para luchar con el spam. Otros (más escasos) no permiten utilizar libremente los puertos 80/443. Dependiendo de tu proveedor, puede ser posible de abrir estos puertos en la interfaz... Ver [esta página](isp_es) por más informaciones.
+</div>
+
+## Redirección automática / UPnP
+
+Una tecnología llamada UPnP está disponible en algunos routers/cajas/box y permite redirigir automáticamente puertos hacia una máquina que lo pide. Si UPnP está activado en tu casa, ejecutar este comando debería automáticamente redirigir los puertos correctos :
+
+
+```bash
+sudo yunohost firewall reload
+```
+
diff --git a/isp_es.md b/isp_es.md
new file mode 100644
index 00000000..e0c42cf0
--- /dev/null
+++ b/isp_es.md
@@ -0,0 +1,47 @@
+# Proveedores de acceso a Internet
+
+<a class="btn btn-lg btn-default" href="/isp_box_config_es"> Configuración general del router</a>
+
+Aquí tienes una lista (no exhaustiva) de proveedores de acceso a Internet por país, con criterios de compatibilidad con el [self-hosting](selfhosting_es).
+
+Un « **no** » puede implicar problemas de utilización del servidor o puede obligarte a hacer configuraciones adicionales. El estatus entre paréntesis indica el comportamiento por defecto.
+
+### Francia
+
+*Nota que algunos de estos proveedores como OVH y Orange también están presentes en España.*
+
+Todos los proveedores de acceso a Internet [miembros de la Federación French Data Network] (http://www.ffdn.org/fr/membres) tienen una política a favor del auto-alojamiento / self-hosting.
+* ✔ : sí
+* ✘ : no
+
+| Proveedor de acceso | OVH | [Free](/isp_free_fr) | [SFR](/isp_sfr_fr) | [Orange](/isp_orange_fr) | Bouygues<br>Télécom | Darty |
+| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| **Box/router** | Personal/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox |
+| **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| **[Puerto 25 que se abre](email_fr)**<br> (cerrado por defecto) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
+| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
+| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personalizable ** | ✔ | ✔ (excepto IPv6) | … | ✘ | ✘ | ✘ |
+| **[IP fija](/dns_dynamicip_es)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
+| **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … |
+| **[No listado en el DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | … | ✘ | … | … | … | … |
+Para obtener una lista más completa y precisa, refiérete a la muy buena documentación (fr) de [wiki.auto-hebergement.fr](http://wiki.auto-hebergement.fr/fournisseurs/fai#d%C3%A9tail_des_fai).
+
+**Truco** : [FDN](http://www.fdn.fr) propone unos [VPN](http://www.fdn.fr/-VPN-.html) que permiten recuperar una (o varias si lo pides) IPv4 fija y un /48 en IPv6 y así « limpiar » tu conexión si tu proveedor es uno los *proveedores limitantes* de la tabla más arriba.
+
+### Bélgica
+
+| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
+| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| **Proximus** | BBox2 | sí (activado) | sí | **no** | **no** | **no** |
+| | BBox3 | sí (activado) | sí | **no** | **no** | **no** |
+| **Scarlet** | BBox2 | sí (activado) | sí | **no** | **no** | **no** |
+
+**Proximus** no estaría a favor del auto-alojamiento. Hacen que la apertura de los puertos esté más difícil para luchar contra el spam. Es mejor pasar por [Neutrinet](http://neutrinet.be), uno de los [miembros de la Federación French Data Network](http://www.ffdn.org/fr/membres).
+
+### Costa de Marfil
+
+| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
+| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| **Orange** | Livebox2 | sí (activado) | no | **no** | **no** | **no** |
+| **Moov** |  | sí (activado) |  |  |  |  |
+| **MTN** |  | sí (activado) |  |  |  | |
\ No newline at end of file
diff --git a/plug_and_boot_es.md b/plug_and_boot_es.md
new file mode 100644
index 00000000..d73cdd0d
--- /dev/null
+++ b/plug_and_boot_es.md
@@ -0,0 +1,17 @@
+# Conectar e iniciar el servidor
+
+* Conecta tu servidor con un cable Ethernet (RJ-45) **directamente sobre tu router principal**. También puedes configurar la conexión wifi como explicado [aquí (fr)](http://raspbian-france.fr/connecter-wifi-raspberry-pi-3/). El wifi también puede configurarse sin haber iniciado la tarjeta, "montando" la segunda partición de la tarjeta y finalmente editando el archivo wpa-supplicant.conf. En Windows, puedes utilizar [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), no olvides de "unmount" para que los cambios estén integrados. 
+
+* No te olvides de **conectar una pantalla** si quieres observar cómo ocurre el inicio, y un teclado si quieres un acceso con **línea de comandos** a tu servidor.
+
+* Inicia el servidor, el Raspberry Pi va a reiniciarse si-mismo una primera vez, pues espera hasta que veas un gran `Y` cuadrado :
+
+<br>
+
+<div class="text-center"><img src="/images/boot_screen.png">
+
+<p markdown="1">
+*Nota el valor `IP` visible en la pantalla : esto es **la dirección IP local** de tu servidor.*
+</p>
+
+</div>
diff --git a/port_forwarding_es.md b/port_forwarding_es.md
new file mode 100644
index 00000000..3ff93dc3
--- /dev/null
+++ b/port_forwarding_es.md
@@ -0,0 +1,5 @@
+# Redirección de puertos
+
+El esquema aquí abajo intenta explicar brevemente el rol de la redirección de los puertos durante la instalación de un servidor en tu casa.
+
+<img src="./images/portForwarding_fr.png" width="100%">
diff --git a/try_es.md b/try_es.md
index 89e5e6d6..99a3f063 100644
--- a/try_es.md
+++ b/try_es.md
@@ -11,7 +11,7 @@
   <div class="row text-center">
     <div class="col-md-6">
       <a href="https://demo.yunohost.org/" target="_blank" class="btn btn-success btn-lg"><span class="glyphicon glyphicon-user"></span> Interfaz de usuario</a>
-      <p class="text-muted">Utilisateur : demo<br>Contraseña : demo</p>
+      <p class="text-muted">Usuario : demo<br>Contraseña : demo</p>
     </div>
     <div class="col-md-5">
       <a href="https://demo.yunohost.org/yunohost/admin" target="_blank" class="btn btn-primary btn-lg"><span class="glyphicon glyphicon-lock"></span> Interfaz de administración</a>

From bf617501a7524a9926d7a63507b1cfb9c5b5bd41 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Fri, 16 Aug 2019 09:53:17 +0000
Subject: [PATCH 089/360] Fautes de frappe et de grammaire

---
 packaging_apps_guidelines_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md
index ec16ee4c..2942cf81 100644
--- a/packaging_apps_guidelines_fr.md
+++ b/packaging_apps_guidelines_fr.md
@@ -275,7 +275,7 @@ Pour celà, il faut recourir autant que possible aux dossiers `.d` des configura
 
 #### YEP 2.9
 ##### Enlever toutes traces de l'app lors de la suppression   | brouillon | manuel | WORKING |
-À l’exception de dépendances (pax exemple : paquets Debian) utilisés par d’autres services ou applications.
+À l’exception de dépendances (par exemple : paquets Debian) utilisés par d’autres services ou applications.
 
 #### YEP 2.10
 ##### Configurer les logs de l'application   | brouillon | manuel | WORKING |
@@ -374,7 +374,7 @@ Toutefois, cela ne doit pas exempter d'une restriction maximale des droits sur l
 ##### Suivre les recommandations de la documentation de l'app   | validé | manuel | OFFICIAL |
 En général, une application propose une documentation afin d'aider les administrateurs systèmes à réaliser l'installation. Il est conseiller d'en suivre les recommandations, notamment celles concernant les permissions à accorder par fichier ou répertoire.
 
-Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations pouvant être erronées ou insuffisante.
+Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations pouvant être erronées ou insuffisantes.
 
 #### YEP 3.6
 ##### Mettre à jour les versions contenant des CVE   | draft | manuel | OFFICIAL |

From 0341447b0bca9710490d66080eb27d5abb636243 Mon Sep 17 00:00:00 2001
From: Shad Faust <38153806+myrrhashad@users.noreply.github.com>
Date: Mon, 19 Aug 2019 00:29:17 +0200
Subject: [PATCH 090/360] Translating from ssh_fr.md

- Very specific issue, but on an install-LAN, with lots of devices connected, nmap could help so skim through the results of arp-scan ?
- It feels more user-friendly to indicate when the user can switch over to the post-install after the first login, instead of reading the whole page like I did.
---
 ssh.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/ssh.md b/ssh.md
index a2425bcd..05073dbe 100644
--- a/ssh.md
+++ b/ssh.md
@@ -13,6 +13,7 @@ If you are installing on a VPS, then your VPS provider should have gave you your
 If you are installing at home (e.g. on a Raspberry Pi or OLinuXino), then you need to find out which IP has been attributed to your board after you plugged it to your internet box / router. Several ways exists to find your server's IP :
 
 - open a terminal and use `sudo arp-scan --local` to list the IP on your local network ;
+- if the arp-scan command displays a confusing number of devices, you can check which ones are open to ssh with `nmap -p 22 192.168.1.0/24` to sort them out (adapt the IP range to your local network)
 - use your internet box / router interface to list the machines connected, or check the logs ;
 - plug a screen on your server, log in and type `hostname --all-ip-address`.
 
@@ -34,6 +35,10 @@ Since YunoHost 3.4, after running the postinstallation, you won't be able to log
 
 After logging in for the first time, you should change the root password. The server might automatically ask you to do so. If not, use the command `passwd`. It is important to choose a reasonably strong password. Note that the root password will be overriden by the admin password when you perform the postinstallation.
 
+#### Let's configure !
+
+We're now ready to begin the [post-installation](postinstall).
+
 ## After installing YunoHost
 
 If you installed your server at home and are attempting to connect from outside your local network, make sure port 22 is correctly forwarded to your server. (Reminder : since YunoHost 3.4 you should connect using the `admin` user !)

From 1a3c4b2b9711a112b8175a709585b62eaf4ce5f0 Mon Sep 17 00:00:00 2001
From: Shad Faust <38153806+myrrhashad@users.noreply.github.com>
Date: Mon, 19 Aug 2019 00:35:18 +0200
Subject: [PATCH 091/360] Update plug_and_boot_fr.md

Markdown was disabled on a line
---
 plug_and_boot_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/plug_and_boot_fr.md b/plug_and_boot_fr.md
index a38e26d6..a237c19d 100644
--- a/plug_and_boot_fr.md
+++ b/plug_and_boot_fr.md
@@ -10,9 +10,9 @@
 
 <div class="text-center"><img src="/images/boot_screen.png">
 
-<p markdown="1">
+
 *Notez la valeur `IP` affichée à l’écran : c’est **l’adresse IP locale** de votre serveur.*
-</p>
+
 
 </div>
 <br>Si vous n'avez pas d'écran pour votre Raspberry, ce n'est pas grave ! Vous pourrez trouver son adresse IP autrement à l'étape suivante.

From 52792239b7f229f9139972b452c67d128d5e53f5 Mon Sep 17 00:00:00 2001
From: Shad Faust <38153806+myrrhashad@users.noreply.github.com>
Date: Mon, 19 Aug 2019 00:38:46 +0200
Subject: [PATCH 092/360] Update plug_and_boot.md

This is a translation of FR version.
- Going through the documentation, I had a slight scare because I did not have a screen with me and felt blocked because of that.
- Markdown was disabled for one line
---
 plug_and_boot.md | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/plug_and_boot.md b/plug_and_boot.md
index ca2a2c76..ee139d5e 100644
--- a/plug_and_boot.md
+++ b/plug_and_boot.md
@@ -2,7 +2,7 @@
 
 * Plug your server in wired Ethernet, or configure the wifi connection as explained [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md). You can also mount the second partition of the SD card and edit the wpa-supplicant.conf file prior to boot the card for the first time - on Windows you can use [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), don't forget to unmount everytime for changes to take effect.
 
-* Do not forget to **plug a screen** if you want to see how boot is going, and a keyboard if you want to have a **command-line access** to your server.
+* Optional : You can **plug a screen** if you want to see how boot is going, and a keyboard if you want to have a **command-line access** to your server.
 
 * Power up the server, wait for the first reboot to happen, and then wait until you see a big squared `Y` :
 
@@ -10,8 +10,7 @@
 
 <div class="text-center"><img src="/images/boot_screen.png">
 
-<p markdown="1">
 *Write down the `IP address` field visible on the screen: It is your server's **local IP address**.*
-</p>
 
 </div>
+Don't worry if you don't have a screen ! You can still find you IP address in the next step.

From e4ef4a5a6dbd74b5f693a0cc58cb4ab167ce4ded Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 19 Aug 2019 20:27:38 +0000
Subject: [PATCH 093/360] Change french &#39;ou&#39; to &#39;or&#39;.

---
 app_update.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_update.md b/app_update.md
index 94a4cd5c..da5a5b58 100644
--- a/app_update.md
+++ b/app_update.md
@@ -14,7 +14,7 @@ First, connect to your server through SSH and type in the following command (Wor
 ```bash
 yunohost app upgrade wordpress
 ```
-** Note: ** in case you have multiple instances of the same type (ex: 2 wordpress) installed, you will need to specify the instance name (ex: wordpress ou wordpress__2).
+** Note: ** in case you have multiple instances of the same type (ex: 2 wordpress) installed, you will need to specify the instance name (ex: wordpress or wordpress__2).
 
 #### Upgrade an unofficial application
 Specify the git repository containing the upgrade. 

From 3e31aadd14e8485e80f7e044904d8bd19ca5a3fd Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 24 Aug 2019 17:47:31 +0000
Subject: [PATCH 094/360] Ajout du hairpinning chez Orange en fonction de la
 box.

---
 isp_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/isp_fr.md b/isp_fr.md
index 9cd648d1..ac174ff4 100644
--- a/isp_fr.md
+++ b/isp_fr.md
@@ -17,7 +17,7 @@ Tous les fournisseurs d’accès à Internet [membres de la Fédération French
 | **Box/routeur** | Personnel/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox |
 | **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
 | **[Port 25 ouvrable](email_fr)**<br> (fermé par défaut) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
-| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
+| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✔ (uniquement sur Livebox 4) | ✔ | ✔ |
 | **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personnalisable ** | ✔ | ✔ (sauf IPv6) | … | ✘ | ✘ | ✘ |
 | **[IP fixe](/dns_dynamicip_fr)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
 | **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … |

From 207d0a20f650118e55e3f31ea650690da39ffb72 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 29 Aug 2019 20:07:17 +0000
Subject: [PATCH 095/360] =?UTF-8?q?Lien=20mort=20vers=20la=20conf=C3=A9ren?=
 =?UTF-8?q?ce=20de=20Benjamin=20Sonntag...=20J&#39;ai=20mis=20ce=20paragra?=
 =?UTF-8?q?phe=20en=20commentaire=20en=20attendant=20mieux?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 email_fr.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/email_fr.md b/email_fr.md
index d28238fd..ebfbe422 100644
--- a/email_fr.md
+++ b/email_fr.md
@@ -42,4 +42,7 @@ Pour aller plus loin
 --------------------
 
 - Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](email_migration).
+
+<!-- Le lien est mort (404) il faudrait retrouver le texte de cette conf avant de remettre éventuellement ce paragraphe:
 - Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/index.html)(en français).
+-->

From 76cb71cc71806138fed4d5fff19f3bceb6bc8381 Mon Sep 17 00:00:00 2001
From: frju365 <abld@abld.info>
Date: Thu, 29 Aug 2019 22:41:04 +0200
Subject: [PATCH 096/360] Update email_fr.md

---
 email_fr.md | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/email_fr.md b/email_fr.md
index ebfbe422..75d84ae9 100644
--- a/email_fr.md
+++ b/email_fr.md
@@ -43,6 +43,4 @@ Pour aller plus loin
 
 - Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](email_migration).
 
-<!-- Le lien est mort (404) il faudrait retrouver le texte de cette conf avant de remettre éventuellement ce paragraphe:
-- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/index.html)(en français).
--->
+- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.iletaitunefoisinternet.fr/post/7-email-sonntag/)(en français).

From ca5b9d450869340b8d43cf2e40e0da0340cbb674 Mon Sep 17 00:00:00 2001
From: frju365 <abld@abld.info>
Date: Thu, 29 Aug 2019 22:41:43 +0200
Subject: [PATCH 097/360] Correct URL + typo

---
 email_fr.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/email_fr.md b/email_fr.md
index 75d84ae9..662804fe 100644
--- a/email_fr.md
+++ b/email_fr.md
@@ -42,5 +42,4 @@ Pour aller plus loin
 --------------------
 
 - Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](email_migration).
-
 - Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.iletaitunefoisinternet.fr/post/7-email-sonntag/)(en français).

From 0c47f2cc209900cb90d2d59e01574702ca239390 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 31 Aug 2019 10:50:54 +0000
Subject: [PATCH 098/360] Asked for support for apps: MyBB and Flarum

---
 apps_wishlist.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 4328b3bc..2c4fc734 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -52,6 +52,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [Flarum](https://flarum.org/)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -113,6 +114,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
+- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)

From 1e1851fb3f242d25182ac99ee4765a8323512aa4 Mon Sep 17 00:00:00 2001
From: frju365 <abld@abld.info>
Date: Sat, 31 Aug 2019 15:05:23 +0200
Subject: [PATCH 099/360] Remove Flarum = Already packaged

---
 apps_wishlist.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 2c4fc734..59b60446 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -52,7 +52,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [Flarum](https://flarum.org/)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)

From ff2c0a8bf539c1f8fb4d8450166d8e91798930d2 Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Wed, 4 Sep 2019 16:50:39 +0200
Subject: [PATCH 100/360] =?UTF-8?q?Francisation=20du=20bouton=20longue=20r?=
 =?UTF-8?q?=C3=A9ponse=20+=20modification=20de=20lien=20qui=20renvoit=20d?=
 =?UTF-8?q?=C3=A9sormais=20vers=20le=20wiki=20plutot=20que=20vers=20la=20p?=
 =?UTF-8?q?age=20brut=20github?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 faq.md    | 2 +-
 faq_de.md | 2 +-
 faq_fr.md | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/faq.md b/faq.md
index 97c4f452..7614f9cb 100644
--- a/faq.md
+++ b/faq.md
@@ -95,7 +95,7 @@ and having some free time. Other than that, just doing what you can is already a
 
 #### What's YunoHost's political model?
 
-It is described in [this document](https://github.com/YunoHost/project-organization/blob/master/yunohost_project_organization.md) :).
+It is described in [this document](yunohost_project_organization.md) :).
 
 
 #### Will you port YunoHost to [insert favorite distro] ?
diff --git a/faq_de.md b/faq_de.md
index e5e10754..5a1928e1 100644
--- a/faq_de.md
+++ b/faq_de.md
@@ -72,7 +72,7 @@ Es ist ein weit verbreitetes Missverständnis, dass Neulinge bei offenen Softwar
 
 #### Was sind YunoHost organisatorische Grundsätze ?
 
-Das beschreiben wir in [diesem Dokument](https://github.com/YunoHost/project-organization/blob/master/yunohost_project_organization.md) :).
+Das beschreiben wir in [diesem Dokument](yunohost_project_organization) :).
 
 
 #### Werdet ihr YunoHosts für [Lieblingsdistribution hier einfügen] portieren ?
diff --git a/faq_fr.md b/faq_fr.md
index 0698ff59..22b4d10c 100644
--- a/faq_fr.md
+++ b/faq_fr.md
@@ -88,7 +88,7 @@ pouvez, c’est déjà trop cool !
 
 #### Quel est le modèle politique de YunoHost ?
 
-Il est décrit dans [ce document](https://github.com/YunoHost/project-organization/blob/master/yunohost_project_organization.md) :).
+Il est décrit dans [ce document](yunohost_project_organization) :).
 
 
 
@@ -111,7 +111,7 @@ Réponse courte : ce n’est pas ce que nous faisons.
 
 Réponse moyenne : Par le passé, les apps étaient gérées via des .deb. C’était cauchemardesque. Nous sommes heureux maintenant ;).
 
-<a data-toggle="collapse" data-target="#whyareyoureinventingpackaging" href="#">Long answer</a>
+<a data-toggle="collapse" data-target="#whyareyoureinventingpackaging" href="#">Longue réponse</a>
 <div id="whyareyoureinventingpackaging" class="collapse">
 
 <p>YunoHost cherche à garder un système de packaging simple. L’idée depuis le départ était que « si tu sais installer l’app à la main, alors tu peux facilement créer un package basique en copiant-collant les étapes, sans besoin de connaissances particulière ». Ce n’est pas le cas des paquets Debian.</p>

From 2fdc23fcfb3eb80411109d62438e1b07cfc43ffc Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Wed, 4 Sep 2019 17:22:49 +0200
Subject: [PATCH 101/360] Modification du logo de Pleroma de dimensions en
 80px/80px

---
 images/pleroma_logo.png | Bin 1929 -> 1591 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/images/pleroma_logo.png b/images/pleroma_logo.png
index ac82ca0c6661d1fbe3bb33e411ac8fa265b2c7bf..a199972db7f82b65e39adf177cc6fcd19ff81c84 100644
GIT binary patch
literal 1591
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

literal 1929
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
U$K5Ft(KiY}I-Iw!vkkcQFPY@6&j0`b


From d0a37ffbdeebde9a93f141f8a86052317efd1632 Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Thu, 5 Sep 2019 11:04:56 +0200
Subject: [PATCH 102/360] =?UTF-8?q?Modifications=20de=20liens=20non=20ferm?=
 =?UTF-8?q?=C3=A9s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app_pleroma_fr.md | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md
index 831ba17a..fd2236e1 100644
--- a/app_pleroma_fr.md
+++ b/app_pleroma_fr.md
@@ -1,14 +1,12 @@
 # <img src="/images/pleroma_logo.png" alt="logo de Pleroma"> Pleroma
 
-| Index |
-|-------|
-| [Découverte de l'interface de Pleroma](#decouvertegeneralepleroma) |
-| [Logiciels Clients pour mobile et ordinateur](#LogicielsClients) |
-| [Liens utiles](#liensutiles) |
+ - [Découverte de l'interface de Pleroma](#decouvertegeneralepleroma) |
+ - [Logiciels Clients pour mobile et ordinateur](#LogicielsClients) |
+ - [Liens utiles](#liensutiles) |
 
 Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole Activy Pub qu'il utilise permet d'interagir avec le fediverse composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
 
-## <a name="#decouvertegeneralepleroma">Découverte de l'interface de Pleroma
+## <a name="#decouvertegeneralepleroma">Découverte de l'interface de Pleroma</a>
 Pour ceux et celles qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées.
 
 ### Accueil de l'interface
@@ -36,7 +34,7 @@ Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agenc
 6. Notifications  
 On retrouve dans cette zone les messages où vous avez été cité, mais aussi les abonnements à votre compte.
 
-## <a name="LogicielsClients"> Applications clients
+## <a name="LogicielsClients"> Applications clients</a>
 
 | Nom de l'applications | Plateforme | Multi-comptes | Autre réseaux supportés | Play Store | F-Droid | Apple Store |
 |---|---|---|---|---|---|---|

From 326811eaaf37fef93d7f2a0ba6155bf8c7921314 Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Thu, 5 Sep 2019 11:06:00 +0200
Subject: [PATCH 103/360] =?UTF-8?q?Ajout=20du=20logo=20de=20nextcloud,=20r?=
 =?UTF-8?q?estructuration=20de=20la=20page=20de=20documentation=20de=20nex?=
 =?UTF-8?q?tcloud=20et=20ajout=20d'informations=20g=C3=A9n=C3=A9raliste=20?=
 =?UTF-8?q?sur=20l'application?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app_nextcloud_fr.md       |  90 +++++++++++++++++++++++++-------------
 images/nextcloud-logo.png | Bin 0 -> 6006 bytes
 2 files changed, 59 insertions(+), 31 deletions(-)
 create mode 100644 images/nextcloud-logo.png

diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index 31aaf3a5..4cc61a06 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -1,9 +1,29 @@
-# Ajouter de l'espace de stockage
+# <img src="/images/nextcloud-logo.png" alt="logo de Nextcloud"> Nextcloud  
+
+ - [Découverte de l'environnement de Nextcloud](#EnvironnementNextcloud)
+ - [Logiciels Clients pour mobile et ordinateur](#LogicielsClients)
+ - [Manipulations & Problèmes rencontrés utiles](#ManipulationsUtiles)
+    - [Ajouter de l'espace à Nextcloud](#AjoutEspace)
+ - [Applications tiers](#AppsTiers)
+ - [Liens utiles](#liensutiles)
+
+Nextcloud est un service d'hébergement de fichiers, de nombreuses applications peuvent être installés afin de lui offrir de nouvelles fonctionnalités tel que un agenda, un répertoire, des notes et pleins d'autres (vous pouvez trouver quelques applications dans la partie [applications tiers](#AppsTiers) mais il en existe pleins d'autres suivant vos besoins).
+
+## <a name="EnvironnementNextcloud">Découverte de l'environnement de Nextcloud</a>
+
+Du fait de la constitution de Nextcloud, une base avec des applications tiers à installer, cette découverte de nextcloud ne concernera que la base de nextcloud sans applications ajoutés. Plus d'informations sur les applications dans la partie dédiée ou sur le catalogue d'application de nextcloud : https://apps.nextcloud.com/
+
+## <a name="#LogicielsClients">Logiciels Clients</a>
+Il existe des logiciels client pour l'ensemble plateformes. Vous pouvez les retrouver sur le site officiel de nextcloud : https://nextcloud.com/install/#install-clients
+
+## <a name="#ManipulationsUtiles"> Manipulations utiles & Problèmes rencontrés</a>
+
+### <a name="AjoutEspace">Ajouter de l'espace à Nextcloud</a>
 
 La solution I) permet d'ajouter un lien vers un dossier local ou distant.  
 La solution II) permet de déplacer l'espace de stockage principal de nextcloud.
 
-## I) Ajouter un espace de stockage externe
+#### I. Ajouter un espace de stockage externe
 
 Paramètre => [Administration] Stockages externe.
 
@@ -13,7 +33,7 @@ Vous pouvez restreindre ce dossier à un ou plusieurs utilisateurs nextcloud ave
 Avec l'engrenage vous pouvez autoriser ou interdire la prévisualisation et le partage des fichiers.  
 Enfin cliquer sur la coche pour valider le dossier.
 
-## II) Migrer les données de Nextcloud dans une partition plus grosse
+#### II. Migrer les données de Nextcloud dans une partition plus grosse
 
 **Remarque** : Ce qui suit suppose que vous avez un disque dur monté sur `/media/stockage`. Référez-vous à [cet article](/external_storage_fr) pour préparer votre système.
 
@@ -24,9 +44,9 @@ Commencez par éteindre le serveur web avec la commande:
 systemctl stop nginx  
 ```
 
-### Choix de l'emplacement
+##### Choix de l'emplacement
 
-#### Cas A : Stockage vierge, exclusif à Nextcloud
+**Cas A : Stockage vierge, exclusif à Nextcloud**
 
 Pour l'instant seul root peut y écrire dans `/media/stockage`; ce qui signifie que nginx et nextcloud ne pourront donc pas l'utiliser.
 
@@ -35,7 +55,7 @@ chown -R nextcloud:nextcloud /media/stockage
 chmod 775 -R /media/stockage
 ```
 
-#### Cas B : Stockage partagé, données déjà présentes, données Nextcloud dans un sous-dossier
+**Cas B : Stockage partagé, données déjà présentes, données Nextcloud dans un sous-dossier**
 
 Si vous souhaitez utiliser ce disque pour d'autres applications, vous pouvez créer un sous-dossier appartenant à Nextcloud.
 
@@ -45,7 +65,7 @@ chown -R nextcloud /media/stockage/nextcloud_data
 chmod 775 -R /media/stockage/nextcloud_data
 ```
 
-### Migrer les données
+##### Migrer les données
 
 Migrez vos données vers le nouveau disque. Pour ce faire *(soyez patient, cela peut être long)* :
 
@@ -65,7 +85,7 @@ Cas A : ls -al /media/stockage
 Cas B : ls -al /media/stockage/nextcloud_data/nextcloud
 ```
 
-### Configurer Nextcloud
+##### Configurer Nextcloud
 
 Pour informer Nextcloud de son nouveau répertoire, modifiez le fichier `/var/www/nextcloud/config/config.php` avec la commande:
 
@@ -112,7 +132,33 @@ sudo -u nextcloud php occ files:scan --all
 
 C'est terminé. À présent testez si tout va bien, essayez de vous connecter à votre instance Nextcloud, envoyer un fichier, vérifiez sa bonne synchronisation.
 
-# L'application KeeWeb
+
+### Nextcloud et Cloudflare
+
+Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens propose de créer une règle ayant pour effet de désactivé tous les options relié à la sécurité et à la vitesse de Cloudflare pour l'url pointant sur votre instance Nextcloud. Malgré que cela fonctionne, ce n'est pas la solution optimial. Je vous propose, certes de créé une règle pour l'url pointant sur votre instance Nextcloud mais de désactivé seulement 2 options. Voici donc comment:
+
+#### Cloudflare Page Rules
+
+Dans le panneau de controle de Cloudflare choisissez votre domaine et trouver Page Rules
+l'url dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
+
+#### Ajouter une règle
+
+La règle à ajouter doit s'appliquer pour l'url de votre instance Nextcloud soit:
+
+- `https://nextcloud.domain.tld/*` si vous utilisez un sous domain
+- `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire
+
+Les options à désactiver (Off) sont :
+
+- Rocket Loader
+- Email Obfuscation
+
+Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est joué.
+
+## <a name="AppsTiers">Les applications Tiers</a>
+
+### L'application KeeWeb
 
 L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud. 
 Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela, 
@@ -142,25 +188,7 @@ Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
 
 A présent, le problème est corrigé.
 
-# Nextcloud et Cloudflare
-
-Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens propose de créer une règle ayant pour effet de désactivé tous les options relié à la sécurité et à la vitesse de Cloudflare pour l'url pointant sur votre instance Nextcloud. Malgré que cela fonctionne, ce n'est pas la solution optimial. Je vous propose, certes de créé une règle pour l'url pointant sur votre instance Nextcloud mais de désactivé seulement 2 options. Voici donc comment:
-
-## Cloudflare Page Rules
-
-Dans le panneau de controle de Cloudflare choisissez votre domaine et trouver Page Rules
-l'url dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
-
-### Ajouter une règle
-
-La règle à ajouter doit s'appliquer pour l'url de votre instance Nextcloud soit:
-
-- `https://nextcloud.domain.tld/*` si vous utilisez un sous domain
-- `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire
-
-Les options à désactiver (Off) sont :
-
-- Rocket Loader
-- Email Obfuscation
-
-Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est joué.
\ No newline at end of file
+## <a name="liensutiles">Quelques liens utiles</a>
++ Site officiel : [nextcloud.com (En anglais)](https://nextcloud.com/)
++ Catalogue d'application pour nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)
++ Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)
\ No newline at end of file
diff --git a/images/nextcloud-logo.png b/images/nextcloud-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..e813cecd0065a18bb50b324e7da6c9550a2d79fd
GIT binary patch
literal 6006
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

literal 0
HcmV?d00001


From 698870e1be51806badd373187fa0d8f520b8374c Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 5 Sep 2019 18:00:25 +0000
Subject: [PATCH 104/360] Added flatfile blog engine &#34;FlatPress&#34;.

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 59b60446..066da909 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -52,6 +52,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)

From 5cda9e586dd3f2c0fa47c59fb2967841cc22187f Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Fri, 6 Sep 2019 00:40:08 +0200
Subject: [PATCH 105/360] ajout d'une page sogo + du logo et une courte
 description

---
 app_sogo_fr.md       |   9 +++++++++
 images/sogo_logo.png | Bin 0 -> 6416 bytes
 2 files changed, 9 insertions(+)
 create mode 100644 app_sogo_fr.md
 create mode 100644 images/sogo_logo.png

diff --git a/app_sogo_fr.md b/app_sogo_fr.md
new file mode 100644
index 00000000..1ffd6bdc
--- /dev/null
+++ b/app_sogo_fr.md
@@ -0,0 +1,9 @@
+# ![Logo SOGo](/images/logo_sogo.png) SOGo
+
+ - [Liens Utiles](#LiensUtiles)
+SOGo est un service de webmail pour votre serveur email, c'est une alternative à [RoundCube](app_roundcube). Il permet aussi la gestion des agendas et contacts présents sur le serveur.
+
+## <a name="LiensUtiles">Quelques liens utiles</a>
+ + Site officiel de SOGo : [sogo.nu](https://sogo.nu/a)
+ + Dépot de l'application pour Yunohost : [github.com/YunoHost-Apps/sogo_ynh](https://github.com/YunoHost-Apps/sogo_ynh)
+ + Trouver de l'aide et poser vos questions sur le [forum de Yunohost](https://forum.yunohost.org/c/support/apps)
diff --git a/images/sogo_logo.png b/images/sogo_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..bfad4b53daa721c068eaac2779307c8b99b86910
GIT binary patch
literal 6416
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
UQS|KJivyteQBAH^#w_H20KRcrjQ{`u

literal 0
HcmV?d00001


From 9730868cb89d1d2d164b735414295f6ce97782f6 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 6 Sep 2019 17:24:23 +0200
Subject: [PATCH 106/360] Standard computer -> regular computer

---
 install_iso.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install_iso.md b/install_iso.md
index 059f45eb..5652a861 100644
--- a/install_iso.md
+++ b/install_iso.md
@@ -1,4 +1,4 @@
-# Install on a standard computer
+# Install on a regular computer
 
 *Find other ways to install YunoHost **[here](/install)**.*
 

From 39fa1f6b606ecfb72abe2c90451a17d266c839b8 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 6 Sep 2019 17:42:21 +0200
Subject: [PATCH 107/360] Misc wording improvements

---
 boot_and_graphical_install.md    |  6 +++---
 boot_and_graphical_install_fr.md |  2 +-
 burn_or_copy_iso.md              | 14 +++++++-------
 burn_or_copy_iso_fr.md           |  2 +-
 create_live_usb.md               |  2 +-
 install_iso.md                   |  8 ++++----
 install_iso_fr.md                |  8 ++++----
 install_on_arm_board.md          |  4 ++--
 install_on_arm_board_fr.md       |  6 +++---
 install_on_raspberry.md          |  4 ++--
 install_on_raspberry_fr.md       |  6 +++---
 install_on_vps.md                |  3 ++-
 install_on_vps_fr.md             |  3 +--
 plug_and_boot.md                 |  2 +-
 14 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/boot_and_graphical_install.md b/boot_and_graphical_install.md
index 746c8282..c20fe280 100644
--- a/boot_and_graphical_install.md
+++ b/boot_and_graphical_install.md
@@ -9,10 +9,10 @@ If you want the network configuration to be set up automatically, you have to pl
 The wireless connections are not supported yet, and if you use intermediate routers, the network ports opening will not be automatic: Your server will not be accessible externally.
 
 
-## <small>2.</small> Boot on CD / USB key
+## <small>2.</small> Boot on CD / USB stick
 
-Boot up your server with the USB key or a CD-ROM inserted, and select it as **bootable device** by pressing one of the following keys (hardware specific):    
-```<ESC>```, ```<F8>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<SUPPR>```
+Boot up your server with the USB stick or a CD-ROM inserted, and select it as **bootable device** by pressing one of the following keys (hardware specific):    
+```<ESC>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<SUPPR>```
 
 ## <small>3.</small> Launch graphical installation
 
diff --git a/boot_and_graphical_install_fr.md b/boot_and_graphical_install_fr.md
index fcfd7c72..daf928cd 100644
--- a/boot_and_graphical_install_fr.md
+++ b/boot_and_graphical_install_fr.md
@@ -11,7 +11,7 @@ Les connexions sans-fil ne sont pas supportées pour le moment, et si vous utili
 ## <small>2.</small> Démarrer sur le CD/la clé USB
 
 Démarrez votre serveur avec la clé USB ou le CD-ROM inséré, et sélectionnez-le comme **périphérique de démarrage** en pressant l’une des touches suivantes (dépendant de votre ordinateur) :    
-```<Échap>```, ```<F8>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<Suppr>```
+```<Échap>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<Suppr>```
 
 ## <small>3.</small> Lancer l’installation graphique
 
diff --git a/burn_or_copy_iso.md b/burn_or_copy_iso.md
index 1c4f7007..13e365b8 100644
--- a/burn_or_copy_iso.md
+++ b/burn_or_copy_iso.md
@@ -1,13 +1,13 @@
-# Flashing YunoHost ISO on a USB key or CD/DVD
+# Flashing the YunoHost ISO on a USB stick or CD/DVD
 
-Now that you have the ISO image of YunoHost, you have to put it on a physical medium: **USB key** or **CD/DVD**
+Now that you downloaded the ISO image of YunoHost, you should flash/burn it on a physical medium. Typically, this is done on a **USB stick** but you might want to use a **CD/DVD** for older machines.
 
 <img src="/images/usb_key.png" width=150>
 <img src="/images/cd.jpg" width=150>
 
 ---
 
-## USB key
+## USB stick
 
 ### With Etcher
 
@@ -15,7 +15,7 @@ Download <a href="https://etcher.io/" target="_blank">Etcher</a> for your operat
 
 <img src="/images/etcher.gif">
 
-Put your USB key on, select your YunoHost ISO and click "Flash"
+Plug your USB stick, select your YunoHost ISO and click "Flash"
 
 ### With UNetbootin
 
@@ -23,12 +23,12 @@ Download <a href="https://unetbootin.github.io/">UNetbootin</a> for your operati
 
 <img src="/images/unetbootin.png">
 
-Put your USB key on, select your YunoHost ISO and click "OK"
+Put your USB stick on, select your YunoHost ISO and click "OK"
 
 ### With `dd`
 
-If you know your way around command line, you may also flash your USB key with
-`dd`. Assuming your USB key is `/dev/sdb` (be careful !!), you may run :
+If you know your way around command line, you may also flash your USB stick with
+`dd`. Assuming your USB stick is `/dev/sdb` (be careful !!), you may run :
 
 ```bash
 dd if=/path/to/yunohost.iso of=/dev/sdb
diff --git a/burn_or_copy_iso_fr.md b/burn_or_copy_iso_fr.md
index 577c79aa..4fd5aab6 100644
--- a/burn_or_copy_iso_fr.md
+++ b/burn_or_copy_iso_fr.md
@@ -1,6 +1,6 @@
 # Flasher l'ISO YunoHost sur une clef USB ou un CD/DVD
 
-Maintenant que vous avez téléchargé l’image ISO de YunoHost, vous devez la mettre sur un support physique : une **Clé USB** ou un **CD/DVD**.
+Maintenant que vous avez téléchargé l’image ISO de YunoHost, vous devez la mettre sur un support physique. Classiquement, il s'agit d'une **Clé USB** mais pour certaines raisons vous pouvez aussi utiliser un **CD/DVD**.
 
 <img src="/images/usb_key.png" width=150>
 <img src="/images/cd.jpg" width=150>
diff --git a/create_live_usb.md b/create_live_usb.md
index 2a59c1dd..bcf39bc2 100644
--- a/create_live_usb.md
+++ b/create_live_usb.md
@@ -147,4 +147,4 @@ cp /usr/lib/syslinux/menu.c32 image/isolinux/
 cd image && genisoimage -rational-rock -volid "YunoHost Live" -cache-inodes -joliet -full-iso9660-filenames -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output ../yunohost-live.iso . && cd ..
 ```
 
-Great success! Now you can burn the .iso or use [Unetbootin](http://unetbootin.sourceforge.net/) to copy it on a USB key.
+Great success! Now you can burn the .iso or use [Unetbootin](http://unetbootin.sourceforge.net/) to copy it on a USB stick.
diff --git a/install_iso.md b/install_iso.md
index 5652a861..43575844 100644
--- a/install_iso.md
+++ b/install_iso.md
@@ -20,13 +20,13 @@ You can use any computer with **256MB RAM or more**.
 ## Installation steps
 
 
-<a class="btn btn-lg btn-default" href="/images">0. Download your ISO image</a>
+<a class="btn btn-lg btn-default" href="/images">0. Download the YunoHost ISO image</a>
 
-<a class="btn btn-lg btn-default" href="/burn_or_copy_iso">1. Burn or copy ISO image</a>
+<a class="btn btn-lg btn-default" href="/burn_or_copy_iso">1. Burn the ISO image on a USB stick</a>
 
-<a class="btn btn-lg btn-default" href="/boot_and_graphical_install">2. Boot & install</a>
+<a class="btn btn-lg btn-default" href="/boot_and_graphical_install">2. Boot the machine and run the installation</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall">3. Post-install</a>
+<a class="btn btn-lg btn-default" href="/postinstall">3. Proceed with the initial configuration (post-installation)</a>
 
 ---
 
diff --git a/install_iso_fr.md b/install_iso_fr.md
index 63840dd3..043b5198 100644
--- a/install_iso_fr.md
+++ b/install_iso_fr.md
@@ -18,13 +18,13 @@
 
 ## Étapes d’installation
 
-<a class="btn btn-lg btn-default" href="/images_fr">0. Télécharger l'image ISO</a>
+<a class="btn btn-lg btn-default" href="/images_fr">0. Télécharger l'image ISO de YunoHost</a>
 
-<a class="btn btn-lg btn-default" href="/burn_or_copy_iso_fr">1. Copier l’image ISO</a>
+<a class="btn btn-lg btn-default" href="/burn_or_copy_iso_fr">1. Flasher l’image ISO sur une clef USB</a>
 
-<a class="btn btn-lg btn-default" href="/boot_and_graphical_install_fr">2. Démarrer & installer</a>
+<a class="btn btn-lg btn-default" href="/boot_and_graphical_install_fr">2. Démarrer la machine et installer YunoHost</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">3. Post-installation</a>
+<a class="btn btn-lg btn-default" href="/postinstall_fr">3. Effectuer la configuration initiale (post-installation)</a>
 
 ---
 
diff --git a/install_on_arm_board.md b/install_on_arm_board.md
index 9e12e380..f6f70aa9 100644
--- a/install_on_arm_board.md
+++ b/install_on_arm_board.md
@@ -31,11 +31,11 @@ YunoHost doesn't yet support ARM64 boards. For more information, see [this issue
 
 <a class="btn btn-lg btn-default" href="/copy_image">1. Flash the SD card with the image</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Plug & boot</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Power up the board and let it boot</a>
 
 <a class="btn btn-lg btn-default" href="/ssh">3. Connect to your server with SSH</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall">4. Proceed to post-installation</a>
+<a class="btn btn-lg btn-default" href="/postinstall">4. Proceed with the initial configuration (post-installation)</a>
 
 ---
 
diff --git a/install_on_arm_board_fr.md b/install_on_arm_board_fr.md
index aca92685..02f207cd 100644
--- a/install_on_arm_board_fr.md
+++ b/install_on_arm_board_fr.md
@@ -29,11 +29,11 @@ YunoHost ne supporte pour le moment pas les cartes ARM64. Pour plus d'informatio
 
 <a class="btn btn-lg btn-default" href="/copy_image_fr">1. Flasher la carte SD avec l'image</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Brancher & démarrer</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Brancher la carte et la laisser démarrer</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">3. Se connecter en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh_fr">3. Se connecter en SSH sur le serveur</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">4. Procéder à la post-installation</a>
+<a class="btn btn-lg btn-default" href="/postinstall_fr">4. Effectuer la configuration initiale (post-installation)</a>
 
 ---
 
diff --git a/install_on_raspberry.md b/install_on_raspberry.md
index 9acf6fb1..9022f3e6 100644
--- a/install_on_raspberry.md
+++ b/install_on_raspberry.md
@@ -27,11 +27,11 @@ Before setting up a server at home, it is recommended that you know the [possibl
 
 <a class="btn btn-lg btn-default" href="/copy_image">1. Flash the SD card with the image</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Plug & boot</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Power up the board and let it boot</a>
 
 <a class="btn btn-lg btn-default" href="/ssh">3. Connect to your server with your web browser</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall">4. Proceed to post-installation</a>
+<a class="btn btn-lg btn-default" href="/postinstall">4. Proceed with the initial configuration (post-installation)</a>
 
 ---
 
diff --git a/install_on_raspberry_fr.md b/install_on_raspberry_fr.md
index 8fbc42be..beb34373 100644
--- a/install_on_raspberry_fr.md
+++ b/install_on_raspberry_fr.md
@@ -27,11 +27,11 @@ Avant d'héberger un serveur chez vous, il est recommandé de prendre connaissan
 
 <a class="btn btn-lg btn-default" href="/copy_image_fr">2. Flasher la carte SD avec l'image</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">3. Brancher & démarrer</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">3. Brancher la carte et la laisser démarrer</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">4. Se connecter en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh_fr">4. Se connecter en SSH sur le serveur</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">5. Procéder à la post-installation</a>
+<a class="btn btn-lg btn-default" href="/postinstall_fr">5. Effectuer la configuration initiale (post-installation)</a>
 
 ---
 
diff --git a/install_on_vps.md b/install_on_vps.md
index 671847ea..bf44dae6 100644
--- a/install_on_vps.md
+++ b/install_on_vps.md
@@ -16,5 +16,6 @@
 
 <a class="btn btn-lg btn-default" href="/install_manually">1. Install manually</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall">2. Post-install</a>
+<a class="btn btn-lg btn-default" href="/postinstall">2. Proceed with the initial configuration (post-installation)</a>
+
 
diff --git a/install_on_vps_fr.md b/install_on_vps_fr.md
index 2453538f..9194d9b7 100644
--- a/install_on_vps_fr.md
+++ b/install_on_vps_fr.md
@@ -16,5 +16,4 @@
 
 <a class="btn btn-lg btn-default" href="/install_manually_fr">1. Installer manuellement</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">2. Post-installation</a>
-
+<a class="btn btn-lg btn-default" href="/postinstall_fr">2. Effectuer la configuration initiale (post-installation)</a>
diff --git a/plug_and_boot.md b/plug_and_boot.md
index ee139d5e..2a085383 100644
--- a/plug_and_boot.md
+++ b/plug_and_boot.md
@@ -2,7 +2,7 @@
 
 * Plug your server in wired Ethernet, or configure the wifi connection as explained [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md). You can also mount the second partition of the SD card and edit the wpa-supplicant.conf file prior to boot the card for the first time - on Windows you can use [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), don't forget to unmount everytime for changes to take effect.
 
-* Optional : You can **plug a screen** if you want to see how boot is going, and a keyboard if you want to have a **command-line access** to your server.
+* Optional : You can **connect a screen** if you want to see how boot is going, and a keyboard if you want to have a **command-line access** to your server.
 
 * Power up the server, wait for the first reboot to happen, and then wait until you see a big squared `Y` :
 

From 49fbc0e3d2d1eaad1c1a0ab9c10a4ce96d8cd288 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 8 Sep 2019 16:50:39 +0000
Subject: [PATCH 108/360] anki

---
 apps_wishlist.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 066da909..b4019e9d 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,6 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -52,7 +53,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -114,7 +114,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)

From b645f367cb9155657542f577e179ae6cf043f501 Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Sun, 8 Sep 2019 21:53:58 +0200
Subject: [PATCH 109/360] =?UTF-8?q?D=C3=A9veloppement=20page=20de=20Peertu?=
 =?UTF-8?q?be=20fr=20Ajout=20du=20logo=20de=20l'app=20Ajout=20structure=20?=
 =?UTF-8?q?de=20page=20Entam=C3=A9=20documentation=20pour=20savoir=20comme?=
 =?UTF-8?q?nt=20incorporer=20une=20vid=C3=A9o=20sur=20un=20site=20internet?=
 =?UTF-8?q?=20=C3=A0=20partir=20d'une=20instance=20peertube=20Ajout=20d'un?=
 =?UTF-8?q?e=20capture=20d'=C3=A9cran?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app_peertube_fr.md | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/app_peertube_fr.md b/app_peertube_fr.md
index 1ae2ed47..eda7a4a5 100644
--- a/app_peertube_fr.md
+++ b/app_peertube_fr.md
@@ -1,3 +1,20 @@
-# PeerTube
+#<img src="/images/peertube_logo.png" alt="Logo de PeerTube">  PeerTube
+
+PeerTube est une plateforme de streaming vidéo fédérée (ActivityPub) utilisant P2P (BitTorrent) directement dans le navigateur web, en utilisant WebTorrent.
+
+ - [Découverte de l'environnement de PeerTube](#EnvironnementPeerTube)
+ - [Manipulations utiles & Problèmes rencontrés](#ManipulationsUtiles)
+   + [Permettre aux vidéos d'être embarqué sur un site web](#VideosEmbed)
+ - [Liens utiles](#liensutiles)
+
+## <a name ="EnvironnementPeerTube">Découverte de l'environnement de PeerTube</a>
+
+## <a name="ManipulationsUtiles">Manipulations utiles & Problèmes rencontrés</a>
+
+### <a name="VideosEmbed">Permettre aux vidéos d'être embarqué sur un site web</a>
+
+Pour permettre à une vidéo d'être embarqué, c'est à dire que la vidéo puisse être visible sur un site internet à l'aide du code disponible en cliquant sur *Partager* et en copiant le code sur une page du site de destination (cf. capture d'écran ci-dessous). Vous devrez modifier ce fichier de configuration situé ici : `/etc/nginx/conf.d/nom.instance.tld.conf` 
+![Capture d'écran du bouton partager](/images/peertube_embed_01.png)
+
+## <a name="liensutiles">Quelques liens utiles</a>
 
-PeerTube est une plateforme de streaming vidéo fédérée (ActivityPub) utilisant P2P (BitTorrent) directement dans le navigateur web, en utilisant WebTorrent.
\ No newline at end of file

From 40d12a876a1b01fe9bbc1672b12f774c133df1de Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Sun, 8 Sep 2019 21:54:43 +0200
Subject: [PATCH 110/360] Ajout fichier images

---
 images/peertube_embed_01.png | Bin 0 -> 31067 bytes
 images/peertube_logo.png     | Bin 0 -> 1639 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 images/peertube_embed_01.png
 create mode 100644 images/peertube_logo.png

diff --git a/images/peertube_embed_01.png b/images/peertube_embed_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..74bc12fac74229b2b4a31b373489756aeb7321aa
GIT binary patch
literal 31067
zcmYhiWl&tf)-{Y1Ja~ZM!QI{6Ay{zNVQ_a3PH=a3AKcyD1`h#(3<Mi2z?=Krx?g=i
zj@3Ecwb$xhUAz0N6|Jr+hk;6r3IhX!p&&2)6$S=&?%#dD2c&;zruneFe-{*Ic|A86
z7*^{49I)PHVxBNC6fg?X5?bEI7rn?S#*-d<0kkK%?4N$2U$8c2ZPR2(lvav!WT!eP
zXgN<FX&wE+_=|nPm;qV$oNSnGR#xCvP{2D(#`EeFFimos`=mT~O7tF7;e^GSpGPzU
z1CNf>K`8W6>L-+YDf*uB>>iS(a(<Q6C;EC00a^Lgsi>+Vn~%Jo^7w1+Hz58kO?)H1
zIvj@7M{K)wb2jf?!6I_A$Js~}kqT`%z3iR0u>D;lbhu5QP0z_zTpgFDZwxJl6Y@K5
z?R}nJcW`i@@x0tN>wXZn<Kf}SCVU7a(vXvo2#HTf0JrzQ0$+a1iP;;pJ2q8SZGX4b
z)Y7ta>VF0033^QRLE9Si%*+mQ?_yPS7ojQS?;Fpu37fG64!Q->VRj<pSO@)oc5Q;b
z5i&h|-IC!YZx3bnM2tXO^Y8#02R$_h9JtMYGcqbuk<yP3xTy9Da#So2jOLr;W4q*d
zU4j=HK6Y9o5+He1;xFhYARyRUu$>Ep#y->*J1&XdEZM7sxlG_sG%kG)M4<&<<D@p-
z#0Iko%5yRdN!v)wDnG4wy=|f2W_AVy5)2I)EHR0=wdnQOF3tUE9YA%3i>m9kcd&I{
z>U$5n+REsAr1=LC2q!=JD|lY9QNKU1q|V+1D6+G|%OPMV6Csm69q_4xV5b~Wc;D@7
zP+3{o+Qx>hZoOd>ivef`72H}?Uq9#T>w7U4PqGFE3(|GG+^y}U{$AKxw>jdmf<xz6
zwzS9h?hOIZergF`6CG%$U>g;s{747KxtEq|C;E#P=xr-`x9k`ErE^^-vhygh2a`?u
zhyH|!lK8kmc$dL>Ps9nnEt%3l*CL;NLl0=a`kd}!laNN7;~|OqX-B~5BfpbzBAFQD
z*OT`h9Q4^3R`cOCVt{R^9>N_0r_HfG!fY0qY_w38xNQk*5@%NOI)A6NafWw@u<xzA
z-HEPNCXRp*`gLks+xq7IKx6Oini;^+u?;C?xm7D6$4vrVnjE!kc6DV%-w2quOSnr2
z<U)1pDfSrpl}ILHzXby3Xy>?pq-VJHdw^`&P*YQb>{qMxPJioXyp4^I1NYtn*0#So
zsIXX>r-x`fyXR=M;Z#}BP}{CF`fp1GxkhVOsjq#%t$42MDV+lA@(4sp<`e?iAly9<
zWk+_sF1shaNS(&F8!;CbPv_7nl9#%+l9~K~A{Cu<hDB4wT9zV-Uv^ABe=~yr5IM(0
zk?^7M=O~3~r6Fg--k6f1us>G}D2rMi<>Qh&g<iysKq;MPFFT!DQOrF*0p1d2IS^mn
z*1D?4BEOGA>i97EO+jrSy(XB6i0WTA6?fzmg8iqCC_1*)QI#$?+E!L&q@w;CXXod2
zMMVcv`=lXmug~{uySt7r4_EEGyT%4B*0bM3L>DcQk&zK|ueKstco@l@`>GU>4=Cqe
zHY)K2ZFaKp!Ve!amLH4D2=R^`94bfV@=if2B)UrUW=C{GH?N;B%JKvm0Q$fEI&dUR
z^sSxtqI#d^T!cKIdm!G$lOQo;Hi++6H{sf3_M6Hr;S^z^<uQCgtjkbjn}MpqJ&JvY
z)G>iH+uYi6{x&$%-JxE`tR=IrJ9sjhNV_!o&w4ION+ImlAuhD~$cJohS_Xb)Y3U~y
zVZCy{mU}E^WJWo+Ru#jBTd-Su4OFz1wwgN?m0mO!X&X%X9i^nCILR9dRt;xfAEf{Q
zKwU}6@UHhE2H)n*6G4Fk70hQ5-;sJFF{bj(LRw|oW4+l+TX~nz*}qqB?$7xvuDIMg
z{Tb+VsGh2{XEDv3LV*|A+UdGc#uyTZ`caGY#3fYq%)heymimL8PGu{elKIdI+PBeP
zUoD`Q$aIib_;Jf(@^+E=wl0u>6)x+i-KA^%3YR^mpV{uWGg?e2-TLKV=|g34u0P)`
z%V#nHDQWwlnh9ygdICo@3g2^+;)dM_f44pNCb{BxGXWa7q?+7l+A>&a?@*03zVyiq
zJqwZE08r2#wou^T*1y>znEcw>+B#nism5?Ul2Yy7ck5Oc&ZN(aNJmFUp@Yce9R;`)
zDq)ll*dOoSUakymY$|{ojf1SlJ-^>H25`A*)c~*9@+*5{wqh?&^T63>RDeAT9%(og
zHisrU*9b}kn@(~5!L;CFzJ+?+VOUr>I#e^WV|Glg0<v+fYS0am0k?1S-@Fr;g4Eao
z-tlHO5i)%QI2P!4y|Ip^I33zk{WZVG!4(~sf^i}woif1R3I__{W@E{oIIze>ovyCL
z>^q0B?Xu!Qfn0DUYr*pvt<$y|opv`EJ7~P^Y5Z?WtH;dz6NFzm2OW{KCrhKzPmX8e
z0}BlhTOa*C&`#AON5W~mMT4z}qD^z(=u$)mz8Y(ob{E*U#v6=X+>BBRd3ZLE3V_xb
znMN$vfQ{*E1X+sbwN+J%F-nMrKEbYR&m@CMy8h`_O9{IH4@Q2cWf?f)AM(1L-$HqK
z_%_Glb1sfDOhB_aywl$WI1b5YJBdIGgZJB=x6mo3hHo0D!F9&VmlA523%12n@|pdM
z(uApVaN!sQYh<3pU1y?ih;sAWXgAw^%E<i-?Ugb&s3Pp+w{)*dypYQFITGEA)pe{b
zO+Q`(1B<#ef>`5V?DuVV^3b+it!M_Zkh)a!eA$J^w@bU!c?}%Q)UO}mI}mM8jEdsX
z)#Rhj+R!o@w%SPYbc_Xn2ILKG$7`G_h^LvA+r&~c%MrfS69K2#_QD7P=q@+J;qy7S
zKcOQ*-j@^Hs_{p@S@t=^N?}#JQ=0W6<$qz5CS`e(=(@i6TYGW{$An?c_vmekD8N>@
z5s(|$Wl!#Ln^LCa1+9TnmzpI34)v|8fEvrOy7UNuw5gkF;IIX17g5S-3vH&@6_+-Q
zNbqg%!|pODwa(Y%>{UEW*!fSee|7+wu=~@El~B+@sE3!=W{R4q9X>ujTrk!7`FY#A
ziQjVI6L_yCNWkwx0R@J}mc(o;R_!{RZEXGThb&3Eoxg}~Himf2`O+m`VahOsY?=?U
zz9$(TCKH6?q65YQFO~+1QD4S>7D5SB3|{Q@KKn)<DfQV_%o{e%)x(}c$kR+YXo{*=
zVk|vOV{!7(MAQaWvZDH8)6pv=Bxi^yy0&(YYg+l*Br{wLc|Z7?6$^t0rED(l+p!Gv
zj#7as0)ac_j5U=6(wuv}{2($PIm3!vBDZ%zqGj<W=VfIXudR%<2mf*x&c71jo(ha7
zn12wsahH{Inat*OQ#&-nAj;I8moa{#*-KlmCcJUCvxQi@u*qg<IQ<A8J=n!bvIZQ8
zL{rlVH?lFbQK_n1`AoXawbNqy9CTZ&k7HWYPE4Mj2bLb#?ek}6XN^tR8+LO2{ez74
z>9|^oiw$SqqXM8U1=_97Eif(fn52SKTvspPKn_PW(RGS_=JmXo!c-88GKSyhG9PJT
z?@6=g??*pihQ-yI;^S5HwN*j}zSug}7mnqjy=7~5%J6RJn&aZ)>KKSw(Ukq*GFwqn
z%NI~o4(9Yk;uoJT6^m;TO#E{()nROf(mw9Rx3O@Xd+(0%0?I!>aoV`kYxx<9qeq-=
z1=aDF2BxiQr7JlzBrO!bb>qw_D~8srs5KzMnwMKW4YYrv`m$uKuO7XYK>vYOT$i53
z$8cybevY!+yKG%>O$S^r60h@ZW<&M4hk-rINe?T|>4vcV{Et38On$PuM)*R>epR?p
z<m8WRx7gD`#eP2cxrvh>2-kWvXqBCT?W@{Ot6wNTzwTnS{PHCE+-d$Qbz(#^QST=g
zGBFa0hc|P_MZs_?L?@=p`ZTBFjg4pXslHq>ASvLPs|GT1Kqlk|&83t21EeA|ZRG}j
zw^NBe-PuNU1$6#3HZnR)YDPf$SCc-y+UEM3XltLo@V`7iLzGOOL)%(g!Pv0Bi-wV{
z(n%V3)Ed%}jA&*RLc|?`3fy!m{Zw`>h?y6{k<wSNQ_=wUov-A7kfFwGO{+D0;4H2e
z;BA6p2=`rRy~eC$(xOg=#*P@+R{Lnx^LWH~>t4F$Ol78w9EW$QkdtKKSCCitJT^pg
z;B?3lMxoE+*1svP_3{u&x`bPp1*1;fz@6BE>EX0J+NEXi4Q0`DWzMLJ7Pn7aM_k`P
zll9iSmuG$btoLt(m5ge?^f78E#`3V$Z8zc^KVkCZvA#(8uOE%(Uol9Dvs%wHd@r^m
zm}0U?8=*Y+ATvN4V0jRM1aZjHp^2=6JawaJ#ImM|oQS*I)ozNhn$`glIaO*-D@8m&
zO+8!ilH|j>So|%!%wxUGa^N(UwxU+z8JGIcQK<|U2Z!|`u2i<^DLUuv!VBvl{(i1j
zp5_hP(THs`z!9}0X@ctjp+*0fgn#1G63^HOG9r8w>v5qrLiv%^03}t4vR$q)D!sRs
z85Iu)UB_NP7^ZE+Qge*MEmTm*^$!00tjla(__kF$H3cX;FT<x}{@lGuGC&WbvEU=c
zF56=sSzs!PHh}Wcwcja2UJy5h6_1dRA=s*pDtHgKr5+SB^))Mz?&8<vp(o^w$4*gX
zZE4M3x521I*Em3?4P&bd13a|UtSG?_^BQ&LJe&(p*UB`aoY#u^+(~fy`aK;*q=@Tn
zU^{$GagH^YR6W?JsI5WUGX8d9pUrK#0!OZ}Nm<oSC0=)9w50^(7!b0$qC|i1(t*-y
zwhfnpkuC)e*TL)ayil0H-;&A+%i^x=oLrb+Sb^PB8G)TK$_edjk>@wNl=pUhrpqqI
z5&&XQ>rm9|ts9!&FD<!sDw2?3%QN`MW+->k%|SOMtaca}8JoJYQ2|cC*79fjnyNHe
zePdcvMX-3zl3T_x2jSwMWM(x?phmHq@67KP%!IpdTnvlp_!1%l_F-VfRS%1Wdc$*^
zZ<x=}>~w8y=*F>5&6+=c#`3o>?z-=xFWFO+g!w9MJJaZZC?C-c0}GOMV56?dYgX|z
zQ*AkGM`I=l*Lj%BH78u5V6b12JnBr#cO`+|&D$(H=<i;iw?mcY2i@*+Y_`3}K(5J^
z07}I_Okc3`AIiqk^d?uNLon`&P*n5-!g$ZraPPj-Bk9<}qc$`o@0E9fl(R#W9r$S5
zXu?bh-3n`f!K+cxYIyo4^Bn+9kLQG@f=_JCyO$hxk^(yhwWFeC;U5H6%iJx@slaJe
z<r-9OET36mNmjSkg&gG`9#A^;FHS28bY8U`F=b-yY-@GX3w&+p7pqtI_H1^HcE~#Q
z%U&~QSy*B`SzN5+O<eu`XH=@CXNLx!OIhOLBY-roukgDW1R}UNlz1Earv0z~mZ~>j
zka^(L!uz7H8PtBla9y54blkqzSp;-`GD)lQcHuy=WpDf9n#+0g+&X37q{5B4PLJmB
z4J@m0+Pcbz$P|U{smRAqlU)f}Ejt^J>V0|EW=fgAvM4xPxJ6v^0j|I&ZH#F)Y``8x
ztLs_QVPSzo0*ux+)XmuZUE}kK2z%*<zY!!FSfz~>HyOT4-ZC}4?V3Vh<&lub(l%`k
zVYC>t8K<;?M5Mg1YnjTWN4~RF^M|6Ivvv4OP|0xjBJ~8Qrx(ip>XkVPn)E_O3DNo9
z?;pw&@J0CtgD&d{B-y{Z@%AY!XEXa@4c-Y&d&PB%uAA)Qzk|!3zUk}K3ec5Q_>WM-
zFOB$>U;ON(jGxU6jfwgDpr7SVa{g4)&gfr?6ZNO2IS3?w+Xx~Utk~#sLf@F!=t#4F
z(bTkvPeXI2qbYQMkpDplgsBaLbX#g7xRp6MOIyWl{N6~tw+q})8BbQ<gMr8}9os%c
zrNUEHw(*{Q@W+ip#iOHBzO^<itZ&9s5N4(P5Q4fK5Rp3F=Xmew&{j*F12Ncp28q01
z>ln1jYK&XR*q>yMi9?bK+CdV;UZkOsp>eWGt9>Xk`Ggxkf^*weo2!*?mE0KZclhwF
zDy|K6(vZ`ntOlx*d@e0iI3=`p;Bp__2Z~YM)tG!fqV@Z=V3c;#wk$e3<#7!THM1J@
zVh$@b<q3%bd9+DA50*FpKsNjm=9b9pcsN|(aXQ7y)?U@;T$?idG(D#bf_LZMdn|VY
z8I^`QBNM<ntJ>x-`JDLpM8%p8T6U%kXxo&&fuMi)cohGA8la+g4lD>8El!7^f(KT2
zD)KPKF9FzN-?AoO0n(IqdILnvQI}DdHqYW7@2Zx~O~IGNwuYZh7WNx4re?ZaG{1jR
zZ-TstSIt$|Af_HdS2WcGU`T~LXR?%RPB228!#>$X<b3rKfo5_o9*(Ph$fQkE_#NfM
z7a~w^)NQQXzWM6;uiCh{6tV)6mYp3|wsAYU4PaW^+Sy9-{C0bu(Eu2c2E)7mKEqok
zNqW}-TbMm*pMR6{ti$Q{R}EZFzW02-kO<K!tFt$-&=pjR>SXj85s%>Et6L|)gz-1@
zFad=oGp%iWwOwb^inUH#TlJgr6yCL6Z&3cGGU{7X<>=Z1Gzn@K-%oC9(8LMl$dYW}
zK23v&;VVivfe|C?FKc)OJ!AuqQH27XwGQL6d>3>Yz?FhEsXgWcg5C4qG;;!L*g*B?
zn#4Kw06TrUF{6?jS-f9vyNZm@BQt0hLv|su2gIu)wg&ANABV5nS~8$arj5$(2m>@S
z9U9cO)e;KY28eOI3?J=wC>E;Jd!;;|&g>Ak-2Gfp#mlN3Taq<fyJ*)peReQEKZ{$%
zZT)&|<?fgj)tPC6VjhL!PndMMYlts5G#Q+fLp4w&3Fq_HK113$o+7t&>O2mD_w={G
z0U_i<o-6f+z2<5PrcxWk#Gik#-F7gezG6ncideyoC<2_eYJD_mC|x(|?HexL4|w7g
zvW$ees;>2!Lfi%fEnOQHM24GZjn9Rx+GeGA7mTb7_#lhK)h)4vtXo;Pes!HHL(A%Q
z2*H?6XmES+|EBQjKectnCid%W>1e_Lpg6?1KQJYh*k=B!z0JV2s{p7efzVx5S}VLi
zQ*6)U3jtULR;G=xP15VjUP8`yRu2itW)ddPdw~FRGK1u<%lf^+6=LP`l*2TTBgE71
zy>}ROWl=H>;euiv?0D7JVuEe~&iB2ML9UVdj%jD+C6Jklw>m}Vvq&^jy~bkht?7Ar
z;e)8M(vjLz?a|GwLbDX7st@$Y0d75K@(z=?bJ@&CO{Ps|JcW~rdMkpH;S3d{<k2N)
zY%#U*>!2ft-87?W-g%i$n--hvOxCOmImzB)92^Yg>&K?v2R{*Obj>4pv%V(M2av_#
zwE+G6zV|*I8-UD)eUZnK4$PkBvhinHboCYTfO~zjyL&Hv@V{08>t!7GXsv6$d5_!$
zK9LAVZJvMjCAxi&vIEZ>pTPt|K0kBMK7LagKD#1!fp|EZiuX4xzutoze80IV#%XQg
zhEC$B*Wu)~PvJ2OwreZ+;ZA4Trj2zgx)V(3u5OaaoCW@Q!)AM^5@Fj|tyzcsZlYeY
zl!Y{ndu~0o?954@p9@OwwJE}SYcblk)tzn}96CQvm>uo(vi>nB@dRx}<DQJ(mF?)(
zx3T1S*~Q6nBT2I-#=Lby&W_CNe&p%H6DI=a8Sc$W#_np3I-D1IuG7m`&!#nOmR^n0
zK)`8D#`o+nbkjcImTI?mp8?$0f(@@U(3$XQ(&Bo(k+u*rWTeTh-evNPY;1j9A4j?r
zYls!aXclDglH#f0XOU<Zn5x(a?!0wbd`#Zy5VbYn6`>9(G`46o3HF}U@v6mUcfw}(
zoE}my>&M&zS$r3_mwy#G;BQtrL=~ww>ObC!)^FRXRFvE+qW)gn94S0$;PAq`DCN%Y
za}#bL?s>IIT~xdpQQ~I9*3sYH)4G;GCQt>`Oyg|P*}SC7Unko|^ZYyF!uRU5)unkW
znI0c4F+2Iy&td%bET~s523I|jt*5P1$|7(kERS)@zE&9~=y^s#$nCkgq0S~hP=olg
z@;JA+{YYxB$EUk>H#gbUU2$0p!S{s#_FBI#g!Q4RfWLeLLnUwQ_{UVzeW*Cj>*OLr
z|5tCl<HM1&v7bN4t<5^Su8aXOfgwVRC?)GG*{ItN?sSMO=UjX$KVyMN7d6V!9dxcn
zj=NPgz;rw3ffz)pS&v!NuL4YCybR8p6kT}W`5>rUR+(kjS!HX<_+C>*fxm(>$Qa#e
zg7|!5n85(QPx`@w5l?v_66?dVxwdw1j=WldKv6(;Oh-?pc+MLM=X-*}WbV?NDo4nO
z3HQ;y04v01W7q$j#jfI&Qv@{_D^sNN#OLKy?T9?N;k@%Czir*vZ#GNVRNispMD!-N
zpz&r-=!&uPFOps9zwIp-EbA#0ySy~TuHe(#=X(-!b*UxGvm>`>KR%xR#~~%KtLte0
zUWZFBfK2T14NKU}&%&Y&RC5Qe5Pi~<kz0$^fKIG$*oBD*s9EmP&LU<Izwj@vfq2_$
z-Ul20Evjl?y7K0<k66}r1WwC)SIt){)Rb-ssF|5`OKX2vDssTljA~zw3k5(^!Anea
z<$JqZLd<ne-^#}&YWz4)o}9<aR8-Z{6wd2f$lo8oU%p&?)3uUQ>tWe{ZB4^(+c>qT
z0G@beJx4x6RIG%nE0af^CH+3m^C>RdHF@od6+)<RJn_SV2b^zKI8emeh-<K6M`LkH
z883b%VQ;m$WsJSV^_Fo|)n!1-IN8S?cRQAMy<g<u@`$hYqH*c)ef;IEUr+(5RqbDo
z10TX@hlriFD=J6V_JpheI(51_Rc_D(=mJRIx!d39NKuNEoB^kBQh0B{T<q@wmV;@f
zZnk;dz!mUi!mXgWIhi12%}0+G&y;(`#;NBil9`SZ7trT!iv>voWH>a`Vg{dQanT4?
z*>nf$9y4Y&+6@*uoHX=bXXg~txdw=ue9V^*U;Lsj=-0Q+>$pKnIaYeFs@S-3`5JVR
z=VhtSw$yXsuK5^wZ@{A#L>W@0byu(;EMi)rTCgIz%P2&{a#tlno`gbtj+h?I8n4~U
zO#F}A45fvQY8HV*C|6xwax#^bQOXZb+lJq7r6Ars&Arrs8XrZsn`Bj-=dxq_h?!x;
zY(QH!-9>V|=s8S2WuR$O?tVEwMF;brcVxbqJYzE_w~sSUx~fRIn7Qn8`^%YEu1YGL
zLuQ4S4pE_dzt+BMI=%}rt`yji?INZ83@Az#x)>mBb7mkz&9gYjNM&LO`Lysa2S-wO
zlR6vM7=OtL1ikg70mLkn+)Azt5Iz-n`_`@UsBD(Gl_UrI?dW>{UZB}(!kFX>U&los
z=`tguNV7OTBkA~Qpb`jK50aWUN=vNLOn$Li6=6U!NOOQi31lx2x>URH&|FU^#RzmB
zIJy-v=d>Ve4FiRdCo79u-EhRm-}|Y9JrFNpOy$pK!9NE+H3JV{d!2+@wn0`IJimzZ
z^i&AZyPk0E-lp2z6#vZ<k+LskpR{~@noi0_-9cuDNKS-tEF(7boLbw@zp`SXk0~sd
zTO_2_&KTAOnU||I#p8!6#khm6Z^2G6Y$<Gw-QAk{CxS9IWErx1%#doW>~SKy^0Z5=
z9A&u7v9a%#ygjxBe}B=vX6^3QFt)GDj=xwX)Oz|#7`#<mCXl7-VJ{zO&bLqhrNjMe
zrQE$vgU%z5Mw+r#zO3)-C%wk8^{V`R*<KmOP)FzFtt%SkY59xRKAUlS(=OT8vZd~v
zQVsIXHO7Ood{|9m(v61S&**WhY8vM%@p;{79U8b!oCiDVN>glGlVP3s<ByXwYoA-G
zJ~7npRv3GerukvNAFcv2jKaWg-%9d{+HY+zt3E4V%vX~eWuu9_87LV<|K_+TfXy0~
zdk*OHc$mOq#R%H6sQE?6ve-kkEPM_{c*${}IjH33f1cSUmRruydzG#DyNa_0I?v)j
zq>MlF?k33-xm4P1ZW*IJn)eE%efAb=BZxV|8Nm5U3!7ZiT&x3-4pGsh;e;f_CX`&J
zn6x*Ic?#1?+$ko_iz(0a?3arlTC=t_=&UqS#Z@4Hx;-IU0#-MpxH%dZ0(sNZ)jWya
zWg)6Bry}?F_^uH=-Hl%<Qp8|0`6L)>PxcQDgC&#AbIcrdEBlC1-~)7wHt8jPMfwlk
zXyRsNWUdg79O4vJHuo3@FlhSp_F13Yc3Te+g{06=ZNXJQuhX>j<z8@aa6c!dMpe;8
zD;prNhFA7|@m0Ix=!~%KHpRL5J^4j_LPa`SnxGx=QCi7)UL~V3>{C@V^jG=EfGe}3
zgF8$t$Lo)`AM44gyWM7;uy>4p8rX4#Fwl6a&<QwzA2Z`I09a-|VLLzUS`Een>P|lr
z>b#G&^*3tG6l+;)w|>sg!Sj{?gfg0D&VAmQCoK73mWd!w|4oWR#HshS+CPFc|GcfK
z$td}`gH-4`1S*!mZ)5|7#gQ*Qp~saS${({^mn|cWeJQMJ)C=UCoN6%x)B#{zJAEin
z_4ARRvRnB$9N}1bol?lPm{Mh8uu@!w)>b#}Rjm;1N4_gk!NVo_9=)7v#SHkyv%yjy
z=Iiod7Y3xN<qMzQg<vNzqPmOwF}4FYt6N>iAtRHTAUn6%mk1+x8=ct2CbFrTn2Rp%
z?<ypo_9W9CwgxohW)<93us|_A$ROpTLy?Ropp#VWDW7wWdrOwIe{Hcz<@nlM$nWw8
z)hM?41|88&ALr}B<@N29B&5%<kFNT2G&zRn*8zT(_zLAM!QU^HAYE@->i4h%IPe!L
zEM?NcFLVW8L=E^Fd;@OgtA%00KWNyKrJuh1ZW_Lnqoqd!A8R>j<EGN8)5~rnkvo6P
zJX&XISnWtXf2%PT-PbjifYIG}*Jm@Ut}UJ0`p$;mNYAk97mwVZ$l$~-iF72vwdVaT
zVd)ngEJH2nbCUF}Z=h?j@Hg^p2ePv;TADIn)esknkFfM~0VWO+D>vbC4YB{z0vu~^
z3EMK%`WzcXakCZ`IBKV`bC&OOqoh6F)D_OWPR=O(ok2)fQCS=>MQ;;Y!5#bl@{L?r
zvvyKJ1eb9guW;N><Td8*22>MthhKwc;}bdI0wJ{O_aEvB{XrhynmX<l7>JD|g*{#4
zu#;_r@2%~KobaYje5sn1QE?O&p!xch`&t>PX6v@2(MEgdI6Kka2-q4X_dZweRe;l<
zOG3uAZ}}Uh2{F??Zvf{n*ue7};Lutq;LWHz@Gx9$EC=2r#|4WjUF|HroW&e<b#2wn
zcnOCVPhq%>=W@cP*wZsl(}<+DL*48GJmG(E6PSUSL%aqE^?ZIwFIVY<Y4FOsJIPw9
z(FXyNsM8X`t8*!9+l@L$I!yesZ_z~nMmC4<-&{~_eyH6iYPrN*F>7e;{qBHbdrpvV
zR!Zfl34Y>fNBe|lr>|FJ(Z3;C+=PGr<4HAmO^cO$NxOo`^z=Za&l#rUM<^ySRrCXW
zaMb4l-FosCC0(`22R+Am(c4-czIsCMKDw%cn?rA8@UXJ~;9zUGgnXl6m=v|Su>%t}
zZbn1u3b4#7g|liBy*mDuntB)$NkFE#IcjrSDZCQR%>gCafN<rdI2i@2RBsieh}OHP
zVlD#*_Lbqq#DqRYGi2^ASbv0Bn6s}YE?q?Dr!Fzc;d4kEb6>@!ti7~VZ^STQ8nZ49
zg886Q^9@K(Pv#m#P=0il%_!vZH`Q1Qk70|Qy}t>mOGpm!3x0M^25@gs$?<Fp6p-Pc
zkz?5`#D?MeRdms`iYQgDqbf_h8fRV7wbT5`wW3ysb`sXE*i88&-0+5};CBMVYC4Be
zg>bdK0di%QzKDr-_3++y+GzxZ%O;#$Q8z;%f%mf@8&teF7tUj<RTbvEQI{{6b#Wx+
zOK<QRneu0?yrm_@EMDE3SwbUz%51N16i0_bl@5}qnP8A#O2HzS8kf(_>O6txC$>%L
zj@RT~@9b;q%LA!9jOCdys|tHY_nA)E^E1+7g?@-=H@7Y=&{96>=MqJL@gFP+ip|)=
z<-x&JsH);^bt|cXXmw|&p1xDNA=<A}ZTGg|KgpbO2L-itbwAQOwqVm=d;Vk=7jufW
z-#?v*Q7KJT9{Xj0BW2@Y@N3zPotmxeyI{OV3K6P+m;J*2mi_Y_P!JAYL}DgT<Acl{
zHYCWuRk`ncb*_aS4Ot}tGhAfI%s>e)-|f?2CK}IbU9)U!XS$xzDl@T3v(B}ct#jRN
z$8E<w>HKDsX2auVvj$OCJoUKkY5aM<re5<%Zosk;w=-e8=n&VJ)>#j$0fwnYOgba@
zp1ekC*`L-%EXmFKDl2Lzsdz^8Fr*7ZA3|3kGX>RhXgyucGPvd2)Z#+mb^s3k^gAcj
z`>dcH9^p>z*OL8It`q3X7dw0X5*hB}iWXg+iCovi;+G!f5M~<JZ3_^U>ks<Hn`U1&
zi|~Eq_}3`7kM&;0pnCv0p|^30GU+Sq?Zbn_YuY468V9v;r>m-U(X9E!At##Rc`}>k
zHJ&GA2qOz%1?OO|iN|W7Jn|Uh-d8wwa#P0S$Vf_*R-ifHcKtO%xf(oWijj{Jh0Y;A
zvzitIGH#IpPa=a8DBZT=HP*@g_+etG@^i6$T#h<6{^XnX$)r2DM~;}nVs))~QpG(W
zV2ATcCnhOzgZ3yMav@sfQ|iN4?Vbq0XLkQv3COTm3g3i}66n-D?!}pl*k1Ta?DmV#
zq5br<lM$$z)MY>7bCg}T${QbZX7_~4wpBfeiMZ;}WSo`F)H+(?+$9^rpf*ANkp9B4
zUb}l7EGdpNgW1^a>!aKvxn=53Ko_?#Z*nJ%BoM-4JqjTE9ggIFpRK%sTFI4=mrOv&
zEeyR++p_4+Zwf%(O;=M|tVJcrRu5XZm`IsoQqBbOQd7U~79^|!ewFk&9xVm4=r(k@
z8)k<_L}hv|(~F-Lerg3bdZj*CwnSfrq3~SvqZ237egCN9>nCJ2XF^w0BzL_3_1@&)
zKgwAgXGO?t`=0ZF3?P0`JvBDSxiWD%89`oq_(tVB!m~!K_CVvZMO|opLVm|VQg;b;
z8Fb`UXeYeaWf_U@`r$#Bfn8B2X*Q8*>aGV_fa9Gk=r0GdF)c?3e+igZTYK?f4Tq|{
zDe|+>Q=drFt)^q!2gl$AvETcIIym^jNZ(2Z%6I(oHMt=QB20rSI#G#1e-AmQ`zxA~
z+f0{fQK<8#LR(b^_0C0>agXn=0v`+p!pBM`+D2otQC=o))wWJ?U*J?$%yfuDu`LEW
zU@N7ldy9c}6>b-&V&~T9H%mH%aKh?}v<R)UkgfKb_;W;YU2Z<c9l_@EfQo^(>5`_{
z*tWc?htM_0Jr$*m&&tRLraNbJX&n}Zl8PC5LjCjeqcSe0{g7-Z9pob7fu|s+w#czg
z4$)$^<H+@?VgS)Te5=STs{^nuzwwP}?~iCj16_@L>&p|fE0MFHGwr510Zi`Y`*m*m
z!7(VkF8kshI#_fSEAY|VIj2^vPrWRQ{>H(!W1fg8nQ)(%a^G@qvr%%%PSax8z96{A
zbC>@_xdv3OagW~dYi#K9vXeRZ+ZC}xf9~U9myNt~l_8OSHnHwj8Iv6Tm*QoPHIbvj
zm@k!O_{y|cjGVjWMiQ7S#;uCLhaYOT4$4E3trgeT*m*VJv%b`&DKnWNGF^&c&vnxU
zxT)#sSHme-JF6{EJE4*I7ErxKg&b)@yjgK}a^hum&J1HstCiJ$vVY1EC}28e=@W9T
zl~UPqV$?V27XCD9a29K3t|Yh*8}_RK*Wnsf2<>Mn&wZG$J|T5q*{4riUbIgRaU!Ae
z>Pu^(YxarO!fwyC{${8!j7dMJ<GmA$X|7?Z;vd`}<}OYxjZ@R7x61<)75z@rvOJ|t
zd#t5O0F|q4%S%02Li_6qVIc=ATI;_1;~uap)!H>QpI2-zG3d`883_A+8j1!T)aD5V
z7}1)8;t}E#?dGD1bn5|13R2yz?Mm6-;l3fRHWK`plamnw3kdMgLymKm2NIv`nBsYG
z&VD^mb@65XV!w8ADw2!N7x0oE=#+W2b=_xdpw|qZlR)v&rSV^R_AhV;NGyC=46XP=
zK|oN5QIrRmFP*8!tX{%dq&2(Al(r*zkwlJUt->0;IlA-&_JCvz;_j}(0+uGM(#KGP
z3qCsE{2jSe)4H>f`hG$w>T?7C@>nr?f$YJVz*Gb#qvn%P9pL+d5%{vUgHtSP8M3tf
zRb4IX_?w<xQSbd6iTOSdWHGKvn2wZo=-K!lhei%>{&zIfe|2psnG^O!6FRr`!Xw8)
zr-q6S{<0xb;)jP{%R^eroaw(vF?{hLFz%l+|Je*fU%zRrT~A{loIk=_nZBk^$c%<o
z`c#v554MRbTwY!VU@SSqVl#iSJrlw^Fevwt5ree|zxyGo@nVR`j*$X^Znw-&;svQM
z?pGk(VZbTMP&3^SnIZS{-NEsjcpvz*w;J|RO((#W^E&FCgifg+6c&T=Pleod?i;W>
z@@{_-&1vo+2(@F!UCUK=dOtOK?;<W%O9SKs7QBX0o4Z^g9dedfOrL5Lzq2c=kb0p>
z_7n@GvzQ3Azr`r`vOtghg39`k)<4|x)2=zU#~YMz#=9Boe11hnTja-n6z-dgxVFo1
zP|f$zJw}84Jf7CViO^$GDYY)0in$?98!R^i3jBcL{{4WSKI5)0{Ya5%8{sQPu~6bK
zo-Hr3Cs;Dd9TB7)h@RQoBQE;h)y1kX+(}73z{;1j{kyMHz7xygFmi{Hig_*#JvXF2
zZm^Ztn2?_H9th+o*I`#JBXDT~2()>OdRkmWLc}Oebq=1saQ!|T9Oo++$%*lG&|r_`
ztsobCu6NQ1LD^H64{Gwaih~ib%h^JuiH;dmU86VGI;1QQk~(IfB3=j9x&`Ma#EKH>
zf{ZR!HH<IXEqgZl<$laYs&Edk{>~|Oc|zU8EvfQk|3Y7)i-JwuR@L7tC93q4#cIr7
z-EWWF#!6}xIZ4`L>U@Rp-rBf;N%ka;onJCH!I5|TC0<vH0A(9_^~&o$&fhig_@_og
zMW?oC$CQR2<X)G$0F?j-S>Z`^bbmU{IDuKL{wD%j8QQlr9swD@zAD!*x!gKYlaaN8
zGKz+O-gdq6LYy|XX>|t#_5w9@7&R-`kijonj#@8NBn}SMN}<y-LG{hm17RhYWT>sd
z49S(Su&!;;FdQqtqn||GMV6?JPisG=AAk3_DwJE>?fs0#=X|-`Vgt+%L_vXYt=a2f
z(Wdu(W0dHyH={7lzlQvNUnMMpy(0{8y1MFXW^&;=QlSmbL%V+OK-jS#f5Q;i72q{R
z2-)%o;m3B8G|y&v?W%IV*yiEVpjvhMNQ$f5^*@f*EPX*FzG*SDr+XSH<>b(Sj>Vr}
z40WEfRzh~EomY)_=nA$=CN5v$I*jWkUG&&#Q%9?$4j)0SD=Og7(tvy_zl>HrsFJ6=
z5Xt8+S>gUouBV1wuCm9@C}hp~?4mR=ccQND1t*I@2Nn>^lsQi&{jb*-QD>%cTs1yB
zG>xp#pQ;mtq@02-zXjm%{46%nlx{w@E)9QoC$m|tRNZ{)D9FAU?0evGilmuYolY+D
zaJ6h$LY=B}w~*(6AI+!FA7BB^v5#*c-4CIWr)igMAa+XtJ%-Q?j8(syqX>Va;U<ry
zSs9*YH4>m4G*1g>iN9^j9~oljbN0nF<GV6H(C}G|yOP9@CQbc=kRn91vE7;rCpvpw
zM`9Jj%Ao5z;+2Q_0U>&Hj|sy7TZ(jW`zl#sXecG(hxzZUF%+L-6H7{By0ac6xI!VC
zfgb16MtHImo5-Shv}K8oGl=G0VQKy>Ndb;q&&9zm47lz5#G$U00_pnis1#XQq#l|Z
z1+2JyQ5fqhjyJ{fxIJ`8d)l&RuIx?1uF0}-P<mq2`eYTdwVfNu9T_h3<D+s=grI=t
ziuOtcsJzvKp09@U=gL%RWC7-EV&w!9qF<_Rln+ykhh)wiiB;skq{I1**V&47Ytj-j
zf*9k!YEI1oM-(Qnr(5)4mFkE!qH`eg8BrJ!uC48PhOEE2`6C{#e<|gx0r~|M#?G%+
zkVPeF9Yk@6f{V@CD!krxb+bsY8-GVg_)EOhpi<7(86JMs6LrC7i)KZ;bKfo`E6&du
zYu{>lwL8<`G<97RqO!l-Dk<fFtI)Yumo8B8f)6VED#NqE1C3pdcc{5|g&LZbBS?xZ
z>&(uh<PF=c0*ECDm_u;#pQI%^OCK!@NPildgNqmJ(>A-h)U#5mdsG6AE1p%dJ~#(!
zMJRW*#hX{7j-6>!;Gox9X*WHy;dV6h3iL+xrSgV)8kQ82H{)P42o}}y+{eR}Maq(o
zOWs%bq|JokSWY3Dwl=93%7-Fx^5HWP6l!e7#VAeKmo{a<L^LFOg6R3gji?Wmg(^}h
zN=B$1UQ&JNDtzYoaXY7YX_%4fATs8UJdVku?E>}aUmuG&@^Bb@WvzSSn>QSGA6vmj
z)f-`GOZ$5`1Jii57n=WSZ6Sc8!&c|&11fGU7w;y6$&qKgPZIQd{vrqmF@tB7zRRmZ
zyk$sLh1^5aqUrBy*f8HkcCh<Hib3nnaSyZnZ1J?CTEfDn&!`%QggVtex^Jpo10Af4
z!=jyi8bfb3w>RqBVrJvJHW_M71`Ygylm0_eYGF5Eh1EpJ9I)0~>S;%Qz8Z!Tj6eog
z%!nfMs2!__;2nbjBW?gD+S-SHxTn|XDeeQ1;7PZbg<T=C{P@`C;?~W*4PR_h#mwlT
zv-~F$*&c)5x}>vA&y@Fq6%B+jNJmGrotCa6U+8pu&%t^$P=~@L&eKhbPC=3)V>jGI
zmp0~H6a3I2%ET&emC7{Lr9gbqr0LWtbhbSj)<>}Mh$G%SpwrH9DTTs5M~@v=p}F!4
z%J8`p1ZXuAkd`^q(S+22ZGM*ZVpIf81nu@1S<mW_PPW4Ak05ke4KI7@ge^BHb7#Ux
ztsQr+KKtK{((5Xt*y3mQu~T|8@~f~qyi+<Il_Iwzyx~vNT~SjgR{0uFmXXq1&!M3E
z@G6bun(nh>UOcUYfn@rov;0fi@5gtiL)4U9$kTrl=y2iuo_*_xBa%|Um1_M?%3qg^
znDtow(>a1(Y^C~R?*3O`C=Irn`45SO$K=^RWT&57d06$3fgL7;)Qa5BzyH8;Xhi&-
zPQ8$9M)nLhP5JRNA@~E?(dI|NMA_V0SJ4>+<<isr*OJdp^snU@9~?CF%L^A|6W5e)
zpuY2V?N>Zjb4PNabf1S$<?f3T*cp=?DX;k=kP93+t%c8!eUZW4x^V%{8Y%H{3`LqV
zG#5|)DWI{EvD{15mp?ft!uMq|13H$Wd>JJA9~_z0_^}R4Hd7}xOo{=%tn87yrKM_@
z`7W?Z@BS+4avu%lXT1(CqPT}B?ZQ3ak|^+;4Ex6iFEXJya0vNs{7|eQp2Y=DO7q^#
zCC~>GFVsNu0>FgYXIIQ_9}|b2M2j$=8jZ`Bv`#MR8K$i7ml1@S!HEM6S)G}mr;qRC
zU56qC6sBX{RWDcxkB6U%T@)iaiEpo#O#CY@bzGaxn=uSL#_*lxxt*KHz4K<6=6~QH
z|F|Wh%GhC)aK<{CGO6imXW~EIi1u31;TDs5k3mN4cZ({uBK20!CytEH<bad62@Uga
zn#0V6rJxa~pNN0N!i&@Zs#I&QRjuzmC2V8I-|RWM3X%!D`F@*M(2Ik_&IgWi(e*y<
z?rm6XiIsbR?Vb8w)~8}hO~tHKeU<ha3~n>wxcE+;uL>rNoX31_40VxmnWO5olf|8|
za#f`Z9x1=Pm8T2P1=ze&a-NKe@QkbPj4TVpOb4;zKlj!Sbaw2rUG4BmQ2mtos0JT)
zqWfvRjcJO6F#`{73S=||qKc>Gj1Q040mqL>pZ(z;W=rm}zEloU#qtalZ2#b3R!g0N
z_JL$v3<`TW9)vxT67#ceTIn}(Arz*Z8r;mqTPv@cMYhTJc}(Ch!K1jbW=c^s%y<JU
z!pL=0|GaQ|Dqb1KyXdw^%MP;+-mf&hhODcU0}t4-h>RRKHE;gb<70OP!l{SJt3W4T
zzlm9UoA5GsfhOV*cd3Bxal?*AE;gr5u6(@L)E*t}HPlM6V$(uF8Rz$z{Ed4QnQX7Q
z4?IuZpM{r<R-bj)2+i5al{liWXyhL!*;&Q0tw`6wpWW5ypJ9|YjsQc?vuT|Dln|Ce
zjCRCo#8i&q07BQRx`*(mJoedN_X*cdl&?nqxa7NZUx}@M|Ei;qqfj!zA`Vr~7W9l`
zq04k}g42`C4mOhLcH{M^(9MR8NOlw>w8kE|tjG2OKO#SOnx=K~EQ!MC`?fmLY{#|z
zlp4UjjP?3%mEli#RIpje0S}U}P)gk1cC&_>41Mm|G`@<p__h72_XkGcG7>00n4QG!
zIfz*5Xh@-U14X-2Y^p_p+0<h%Hf6awHq-~$*OkdR)<4|x1f^@c)Abr{&ev|y=X9$o
zfBWdX>!O<xDKxt_w#79q<aj6I`)97`=Nw7v0KNbKv8mUtiowX(vV!^8(xlShHJKw(
zO6+?&r{>X)a?;k1yR`_>^;s{el8xA-Pg|oiF`LhsSPBw=emf#XJ0~vfqxtC0Eq3@!
zOr3+y%HG{#=VQX8=W9>RL(l%buXkah(rBOND)r=Os6N0AT75k24mQ7hOlRhoFC8u$
zj$ALy@BVbGDP$O%o$Ldj#5Vm!Y(Cb#WtA_8Bt3M8#Q|vtgJr3;Cy1r5&BP1*_7{5N
zlh9=4b{yx9d!pg$^wwcft&;Oj!26+nmuDD(a0tU9=fw4xtu(HaSO6Z&Ybo~SuX0!2
z6F`Lb$kUDc>Y?)^dls6VBMw4!Vc9HlZc*CvJNm|)TDgIKstsKJ4k)()`1K8PEdEB^
zwanwuE=A@?vPHs|xb3)o3EKVhw`Tw)6qob8(d4q`jw053hiM-@Ot>4Fve(o`Q^k?5
zD8oKA-JFtHhDd3(z+FITv%YgGbn)nEm}&y&Q!25n8mIHWeYqgAS=~PlGftGsx2(i3
z;v(5txwmz_h`jy@A(nAAmd@mF($ub|IeYltxHtst|4K}Lr|Q|I=rVmYCG9!5)4##n
zyljlk4A66v_pYl%-;ed3pFvN1$O^2Lm)GrgB2RnRZ3M-AL-={OT;<s-f=ZU71_Nw?
zUVe5!O08TV)$aUcC!Pn33=vw<s`-`Pl;^DO+Sj#~4bk1xSEi;}udVf$GLa*I+?<tR
zxN#St>4*jT)~Vm6b;L|cb1A2A3rD9XCa*xic_j8pml$uEW$Im&T-XMF?nClmHqHz!
ziu)WMX%N~&WWzE+``wjN_eU~xUz@rK`X3q;CE~In1`N&yLJk|>-EuGz9+Ik0L8T=X
zRO(2kvC-W&KiIG7w*LylCso<zY;uGBXL&FRvAvx@hr>sEa!Z!lR(SvIW+0$&02p#B
z+G?huE&byryvJvd;3+tZcQx|Q4OWh$P4V_uY$rSMxcOh}Jh-E6H<J2<GFKPJad1S4
zoT!#~-%7`x3bC232PTkP?@lTO$|X4Li%;K5d1m|}Joy$`@7oX<uD7?sMHYaXY{-9G
zF=HU=<c?(_HT&0bkqh5SFq5k<6Q4O`pBV1VA|?>ovd)&yC{F$#$bm5B5PY;;yFCki
zgC0_ESuO|S;9FQ%UKMxN6h~j@lc{gl6l%e>!2bp_LEp%aS}VV=9JcGA0cv@oKH*xO
zJ7&tmFts4cvhM6qNZ-l(FLU3c;g|^cosjdN#Iwjfa>Sxq>>5u^i#xfe|JmfqkAB?K
z{D<E-xb}*H7^Jy~V4F9Q*u^h4TQSL4g;_pOXbN*T^?$#>!bQ{(c4kEqUJjgUMIuK2
z7Z^nH-;*$*WZ6aje*xF}qYC2<2#|Om=h&Yt;n_^{r;630Eiw|i&QBGv>S6td$p4JS
zei7`Pe_>Ca8dsgwF6N!}GOf)tXR1oY|H$@!WcZ^Fd*YyfED7t*>IQ-I1wB^CuMPk2
zy}agr5&XX%l;{L9nKTz5<s%Nnr;yf_t+cGy{Qm-vgJVj8i(qQmj0Nye$f5RTHl$Zj
zN6is@Y3*2Q>E`-hAR5I3QZ+7fyipoT%2)HbOg?_ZhU8@^N%uVeMNNcwTroh6m}~cy
z`AfIDb;4}=|2Mk7H20Gb=lmrtDY94+{ukM|4~S$a<R_9Jl6F%57YGp|fn*3e|NoDt
z|6@U&0)Ebc@xO%pUzW?Lo65l2C@4fbG3ia!iloY9$;imWQf!3<F})V6EyMvB?09vr
z4$})>G}iOt#9dsPoD_W3x4h^Ax|VIIFbE`Z$L<4Xi-aI*P(#^}7ljZj*trf{vorRG
zj*R37=3gE1X0F@A=llDGuaDzmAh(mb9qftO@s&hUA?vH2+XNLAm7R1b$152mCJ4<;
zw4H_jDw5kmX+5ppO%$fEUoMfXEyE;mb8KuZH`2>jgW!H{RSnF+!C@x${xlEyXD4Ni
zVtz;y+np)UHTD_(CjjML?(@U=ph2Gl{F_b^_1iBfsQ>kK@4eT<!(&#!Iwd6q3I;T6
zmMLXeubsIj0(F99Lptey7`wI9HF2Bt=J0edYqYUn7Zp)%b$d0mfk5B{QlZbniJt|`
zcXoE5cgt!9K0clIP$(Fg+<(6x-u^#InSWZ1*LC1>xk~!<5dpU!)k2<#-&%Eb^*@`}
zY5IxjWAJnuldi+zSo}X%EPsP6+;C^$YgaoDT%ev_R-H-zuArb`x^hm4Y)MIpYRUEW
zHPL=7yosjfp?mhZ<Oc!oKZXCae>wlr!Rr099){Ybn;bvgo?twurKf{Iz^&S%qQU7H
z)6eJ6qilg@YQonep<_qJJ9y(cyj-j-EG)+OkoWWcH^9qXg&45^DX0H*Xk;{&5V%^c
zt)r*sqn15vSY-URB#C+Fd)ax?6EN+u2*RaP-Pn7B?D=kq-dCy3GV(92X;!Fio-S8F
z9)jK<t`uPm>iewkMFsIpjk$F7-v8Mf;<R;jy9ba1N2K}x`CFm8epdnwp={+X(-KwQ
zV!{azsnIZ5Z#~QdMBlL~5S;&cs!vT|O>I*F>-8Sa;V?lDUO_fMAaJhMqM{f{TCO-f
zlebgyL*GfFpU>+tU%#Cn^rDF^=xG{LKIysy!~Z(gr1jvytfr>MjdtkPR=4M5)BlI~
zbGgw+(qQsWpZ@sv{fS`PKx6CKmsZUQx}7fcM+#r(r#S7qCWS~U`M%z-zv9cP2?P_)
z!!6B=zSQ<7TB*}Pjzz(9FZ_RcD#*7<UOvrsYMiUR6KoA5yg=LgAy$+Z>R06N*W@Gv
zq%^$wQWkq{fDAOr57bTXr%h3~?yO+xuJNW=g70@H8|2{py<L9f-zO%ot0tSrvpEp2
zz!NY3o_2>#^PtD?LAEuz4W3<Io}S?MzXk8heb@0$8;6Nvmk$f|9r8aPHRV1x@Mrv_
znyD~(<98EVLqFy@B&cJ6p>@M19uxgTaz(vEy;B_g$u7lFEt}OvMdo<~G}FfVnCBt)
zt{3J)I(l*lF2*ANC-{fVzyF;#GPU&Q(tId^mu9M}NHTf<mk4c#<B38+fp1SIka)h`
zKlh0dhzsE+)Y1=kcaPw4)X~-L?F+Y;nJlh3A@J4~<j=wI9FzK|kIif*eHU;K%`kNF
zQZHfAizt}{0}JcxC!`&|_tjph5iz_2=0{%j^rP^N{#XNJ5z5F(mu9T&VLX7f=0Fdk
z|7ijEfA_pXw^X_FpEl<MkI~^N5@6sso?;6)_^7OIvu-GDpJUz@=7ZjD>t{8f@6RUh
z)6=psA(Ttd6go9Q=YNvdo&GQ)8C)WGv=;N=g_ue-29y?}hpVmjd7k8;C${%8-Pbh(
zr_G1{_kfq)y%&+KMzb(3x623)u1edb|JT%8xJB80Z@d#UNOwzjOG$U9N_P#C(#_D)
z-JPP+-3%?AQc}|0od>_~@0{yg&p$9Td(Zvs`(B^D)&w?dV#mcmpRbRqZ`(Ip2t~R`
z1}_LD5p7iDbIFpTH&J1w|I@+BnER^l96Z7<(nc&G&|<AS1l7-ov{0Mgtkr(Gg$Nc%
z9);toF)&-M=gYznc_y0}wymTAC5|SliW$lF;}HF9W8)h$vEm`kN``5r&e27La~}c?
za_n6)&R1iz`_t*)IXBEdg_skRlh&M%Gw!sSFB$eI5-fO+vloU5FO2!h)pcv#M;H?g
zuuh>-T8MMYrsIs@ZKH3U=LqUFMZF_%MqA`?uO8yCKfB?t)TV~S*Cl=_%uX78njjg5
zzd92ps9Q@%>fhT*Pn=QiWQc73rN1E@sP1Ng>oLKA=}Bd?)kk1-`L50T#{OaDro-xG
zm*R=qNUMxwmeD5kUB6Y*j{$P;kvTzoWDmxaF;$;+oa^ippMg7Iirg&8IAsz$s-sLY
z5glA9P#21~IxQx4utD+C6om1EcZ5L!{-pDz<H5psgd<n<Hc0eTrI6@VgCG2TS@uZL
zu412eW3w0~;qc#2fyTSOzEv?dO(Qg^!DRbPl?0q#YxF-?eI6{M)8GF_zKE0v)HYT@
zn|QeseHmEoL3&jHqm~BA)zYwlz~;U+vLZhy^4|7uEu*U&4*5DQKm?cZqdpQg6k%1I
z9wB81i^}-kryp0IC|&@x4@Gc6NNUREf}FT_J{UM4UIwt$C5otvB%%U>bk2$TQNYm&
zI&kv4LnliE+(^t2=P05zFe_s!vd0<>_%Pep@s7HbqoMQZPv_B*MVs}DR>wJ>1M1f4
zU1IKIk*b?dlIU$0hCWih5`LfPE#ix@jHBuEgiL>?){vyxH;gD+9P&u;QP`|L3tRu=
zAboBYryX~S&&!k|yFmN%&CBzuNJ$j%%J1r@(N(oc)bru^vu(fVuPh0YShHjVm)+4@
zSyrt4HHYVI2hy+KbI0q>=tb|s8-+7=^55i*-5dK!(&NA1All)t`+L**INW(D&_xJL
zdpXQ~;_i&)<zh=hjRUV=5&(m({9d(oZVvgV>z$aM=dp9{Ll!s2ebDc)=GHiVC}MQJ
z<&h^311w9nD&_z&0AFO-%Xp=>V{PHo)8pJq^g$<g`t-vrkpzzfT^oG`9-Q|r-FQvt
z?VB!V9cZFS@L(6j1d~Iq$d`~R13p{!vsj`@mrSjW`3wg=6396eXi60<&@E-c!V&*+
zZuA_fc*$W)xa@zg`Z8#@0#)D%>f6IbCZ_fOdK3F{ChC@JHDhndtt#z|-z!TTb~o`U
z&DYnrJxCDktn=mO<(RTh3~Mbo_@(mYs`Fa>aa#0A6A^B|fNUbD)BnQZIXV>!kz<wu
z$U0@(Fy|7?;R_D{7#A^)ghC1Oz=d!lX*?VoFORt|wLt^2BIof$`GF$muPcu=5&I=l
z0&z={osJ$2pO`BJGM-iu|5(6|l^-Iw$EQSA^-S@y;op>dl>2hwF9H^;ewqwJQO-w}
zz{!{pefst?L*#9~zGqAW!5<)bgPvDJx`??$rc2VHvR@pHWXO4oY+SVD|KRXaj;eJ@
z#2O<oumrl~ga-;u1iL*&`k%4;lu?ltY*CG|i#W48Golb)f(7%CB{ch~@72~#pZ<N>
zd(gLvdD&y}IIt~eF4qY_Wf2a-m7<MTB|}LmcERqur|5@a6UwDSu*a3peh^(9+l{o<
zqgINs2)K`8HoLBp&J!iBIzPQhs7E5FEaR3f#O@IcdZGG7UCN!CKER-d6s}*UxXpia
zj)Hy`5fWNIoMB?ny|G3yjF82X6!Jz>k{i~GB3be!ZPB=m#nN_S2`8Nal^g*fu>eO7
z48VdR_Y?-DjWbY)#rSpYQm+$zO&MRJI*X$-CQOqq>_^O}RxA2OK?mT0OTz(&2tavz
zC{6k~?jbTkdz45Ms=+`d|M>XA>S8d|Z-dXT2QkKtjR)y-g@t%4K$#A$E~sltL`>wf
zz(myZ7j~C{Z^<3I6m+`x!L*b|7t!15bfhD~pT9$3Q1qt=6|XcQiP6gE{mOf7XU>i^
z<@A{gPV;^!vf?IN27#S<1xE}LIpmN25_nCz)7-0VgYa8nqcvY%E`C&==mljvCeU!V
zKMkM|MVr8kitUdK0$qml{Gz}pqnR9du<5+E;l98-!jBdllieL?%NG&Ly36K`#{Li-
z2k#7}dmQ7J(CY}By^KAxRMIgk!(e$|hB_p%E0-$2tgWoA1*PXH%z;S6reFp0FQ(#~
zQ~0@MT{#x3L9ZgjP#la6x)8Nv;gY%?u!?lJm%tc-Cp98#v6FU}dYxB#=pCGNz>dK1
z6t2Pt6p<EN*dVCLi~|6J3spcgZqny)B$R#3N?9>mlT7ON47mfDv-lAbj?3DG&(-zg
z1DX9L94X*r3&Myr$+rpwre<H=qRdpc3&&o5e<7=Lm%dpXI;D8?q!J>g$$g;+4f#D`
zI@7pmU?%F)wB4A4YLV>oO|_w4EJzMb3Rs27;el|3^XgJ<{3Ig-()-=|oo-nJrDsCp
zXP!4zpL<8gAW8sk%L|XLw892LapnekVcxxGHD2QP8_?}2{Fmxj-;uOkCHrj*0?GvP
zpK_7&D=w|naV78pJWpmEc&G``fO)NgbRfnyQ3^6#aOZ7gr(-$#U&bT%Xy1O)2%Qu^
z>NM$m2D0B_djvS55|jZ(NJ)3ynsrW60W4El4+Y`;D4r7-)6884GoyiFI-7``>iAJ0
zigy=eUCEt<hbj2{pHOf{7w>k}DKqrbSB(d(L@v^aa-v&<>bogA&AvpW$Ohm1a`^iN
z4!7^YbV+72Uk&fM#ui3YtY4&ynWF-r^eHhZ9pIo(JN3~e81I@d&?HDCmJ&0IQsS3E
zq00Uy8BL87tr;~gw=siUD0@CY8dZ1B+<DGSff8ZNLFr^}-)349MAZGrKrLe}vr1uc
z@g9v2WNyA>?WhXgvsHw8n>m4@X%E$VJE-tUZ+x2wYAJIkJqjCQXG2xv&(}A@yQr!S
zbEM_ILQ_jf#@{~nmagtv1&=8S0@g&I2VQp3h?G(Dq?%yvGI|irCAwg|0Mznqr-`ZQ
zr~KTcfzAGtuP@l#mvgTji}c_Mo3s+oV!9=C)7E^^76W+q<TjD8)y<@L^M%v=v7++S
z^`#)$0PH|~Vp>Z`KVVMWYfJ<G0wm9eqRDdjcozm0_coj1k{GZ}iNEy8LxT+YNCNtL
z72b0W_XB8lhkeYHs`xj@;~C^7Q6Dqp=3b6EpZJV4Cy4K>*o>7pK@XE=!#c5AAb7fx
zk}brfK(#Vf8n2%iD~I2+{E>1aal6K3&w$6HXPF%v8Fx7tArVhs$7wAD{U=syfb@}g
zbX`<o;@!Urqlx;_A$=zWMQd<!3Aj=+7>QP#7q)1#P+*}nu$Q9>sXy)aEx9~gC_y@j
z1q{;~C&O|{Hvk_zE%s3rQMz}>Beb)Wb&^gjSNIED^<&t}Da9lANEDKOoymw3-1o-^
z|Cf{Y69^te<rdGZ`Hq<SDW<d7h>_$}n!Ch-lSyEiePu&77y*h~C*3VE9U_kH8i9<l
zt>C}VfmP_UApzW-D4nQ#{ww+z)(BZi!tl)lUx6{B$etyY(&I&LQ6TIkhG~4yA9nla
zB{LzqMFx*5jw)~y4B}H5Vp%n(J7*}|VSm4|4;5fY(SZSSsgr1=<rsD8uRneW29D^O
z?I&a?5jVqHtPHw#L2}`qg!|(7jW+-3<c=O4m0CZmq_vpxIN3J2GvQloU2xeXJx=}5
zrO?+4(H5#S$y=exUTcb@?i~y=LU%vOQ?d7m=F=AHe3p>M+=(PVHNL>NE|CGB9uWu!
z>T9qGt!MjX!$8xTPId-@ROXsgB%^!Yp7B=4tD_%*O86IJKE$ibJZzsoLWwdkN-BS~
zaWn&YZp)|=jX8UYAX-bGFmHT75^{YUdPU|u@Gz*8&Y@394xtWlW8s7!01S}O{QAu4
zqa=3@XWt9=rn+(l$5($Z7`a+B%>rmA7VmA%?T-~~Vheq5;mH0};wLfynSA`EbPul#
z5LW7mLe3L^@=^6a9TjILB!vNtFNC*x2=nO|EtHG_b^s>7$SYH)v72}O!dcduUPbU%
z;`A`=(8%0qx5?*SO>h$-&T+In9igHa=8NQGv{N3*Q-16vV#X8!q<<cE>zUF4Fsu``
z`y8FY&yz>GtD2oeu!CXTZM6%S*F-FV9K+M>(%a?hi=|bYt#IT_kN^WasOEu-mx(9V
z7+3w*YHVAYmZXh5{5WxaZN=<DJ+)A5=b(r0sny1YT&qN?i}LMDvffp2RS4QRBeZ}-
zQ8><7^o_xJ2|j4t!yZZJnJ^ptHlMMA5o2O=e>+lI6qYZnF=|3mxE9&Xy$7+ziW`Lm
z8J-Roqv`}P<siwT{2=gov!YejALcY;B0A$nb;!ZD^3zw31@`#nh==N>6*3i(d0U7<
z-!3mKl6VZa^^GrCHdkkH0B6)~1`CIvsF0_y{C&oV$JR}=QpZ^b1SRT7er~YVn%m$~
zuTNy8zS_S*aN0t;Q_IiOI-_^>Himbzk-PKQgW{^!>OwhcA_zbf{D#V~nUBI}daLAM
z<eNi_Xne}d@T$Jcu!E|X;pB7am2{#lT!V|}UUe?3yp)&9i1g}wYMmO^0MBaWFX6qr
z;T`_Usqq0%BISWSr}H_<rLn+JB_08gQjv6v(#pW|Yf~p)qi;JbSEgLsCq_>{{jc)N
zc@?`)$pa;(E^goMj@h-wiE24Kz@A$2)nsP8f7*Jfri^|dA#yU0IODFY^(7$izVASa
zn3Uztv?NXc+%n=q^qAuinq8Sy`my9dWjtKlNN}F^ncQD-F7?^2!f#y5%1@{I2sK|m
zqonrg?Wpa}z5^*c52?}?L>(e_aphlKC(nKUc$JEgQ9JtcR>_aTvd|#I?;`mfg)aeD
zN$u!PU0&+y_@%?0GmD?hLthJ2G#$oLMr-Zt_)NGn$M>g6jZQ3zodQ**<K@BctOv23
zoJD5hy%DDG#2?>pN7TR2I-kLFtNOn>Tq`Rr;K#g|o68;_B!Pq++o~Y7g1yV<nXKOl
zC4drZpUboc&Z{xHJk}Ib4w=VJ=(eq14Zhw=kC&)RH!a6%%8#(`CwCFQdS)6!E@{DI
zA!>}RR)#22(ewyr(l|CU4G)SyrP|vlU^7HMU76ZQ>8FPXf{?|Apy<}R;cnlAd+|zU
z472uk-=<7A_Ln<V_v!n?1;hx@o#hzfk1w%eW~cA5E_>^fC<%fBj`4#j0^a^=x&5j}
zIn7TIA28N(2T^-1RQPiAr+<NoM&0=o8>QuLoayg%ObmF)0ajO|jq!rm%yPC6vn`1n
zMRuu^>e>ILrFgPHDAZ19??VQ21&(}BAxDbH9eoQ3Fjib+-|J;L+;){W$p#)nw3Dj2
z{ug_ms;N;TXpR<#_d)Iu+iUOsl$m<pi3DyhLo)ZCSAS*!6_q#8_){|qbUgpX-a_ZN
zY2)T&_-_+F<V7cp1b)>|a0ZBQ5=I6SV+_61GBWi}Md6`HdS)vkBXVR5R#*`JzvLbc
zo~m?HG_W&nqfE|KzJabr&E&N=fyXVFDC5^DUVUX+DYZQ?eVB(h(crWtNxjnf$^vUs
z`?Q=HKA3w=|1{2$&+@<2`j`R05%(PD+mIy^B#;V$@TkTNQwK<o=u0aXNt-*cEm|wx
zq^;N|jiE^|kgku3ta$vuUF|!cu>H<V*Rj^<vR&#TvQrGV(poqlbmxMQg|XdaUOx0M
z4}V)M)`5T+_q=8FTpYxhCx=k6`$BVT`SSea=SO2z3@SQ{1E0T1^u8@`Tyb)w5#`BX
z8I=2F+WQwCQf+=k#gxLWGpMM1Y>(~%6B_yA34Q17Du4^5r0?WhJYAN7jBoWsud;ts
zQ-9`Rq$&Qsvz*DDc}O-|=3-6cxPpaT8}?r??`VZ9mq`s|QqiEA6ro>oOn4*zGVN`(
zP!J$9#0(e=07HU>WK~SDPo3qs!|$5Ig23w+Mg1Ed{9^ckZAyR&{yG#<ETsp>@3N4>
z)2;ONmgRt-7Y?O2U*2GC7Je{$YDZjXB9a+8!x{h#%e*<$?tNdleyAE9gZAh9hODg;
z4-*5N5I9&+n?ANkbK%~dl)XPBR);+#tE@Yh;ywQ9+yKiRdb#fc6lc9e8L^hOD`(h}
zVieVy8+_yR1N?US&h5NOmSLNqcq3Ao0)IGftXYY|ol3m;fg{&fG$lK?ROm?{C;3-F
z1Tu^}aae<GxU4J+q^Jm-6|#Ejuho^;N%!Z{;F)v6*qL;~#v1>UfkCGaMSp{R!E!Q5
z2&5H5IZDu~QRupu5X<%4CPL&|>EY%Vh=`mHWI#MMVDVSdgg1oe?@uh{|AKggUnSEj
zGfXS|R|C8=vzgR>w?BTk`4<dQ-ns@J+|mPBXG94Q5>7~I$i%@>V^WByw5}ODO72T_
zWG7Q|P^LN^-Zk?zPGQF~EI27p_<(^l;4dC>6gT+>r*Rq^e-!}^JQ!wtD%9Xh2a36R
zj2z=OCZz~P4isOmu^2A+1hD(-IYL4DzE5iNP>K#dG4bS_{_%)OjH)ooV{_i;MpJa4
zK%Bd1+9QiFH=au1I9xI*{jzQ6!J}dQXfghOH5AxWp_mscVjFS}E;vBD=k(o}M)V)y
zHFl%t^HgCB9(v5K1G$!Q?k_*(J_xOepW@!)_@Hxy49GYFd<24luq|?t9-~4DOjYcb
zOiHr*-Y-e&3ou+X|JXYp;OBkAeH&YsUbbA}LNA4x-1R)lm55#OpDv?QSUiwafE8t&
zKf22}?Y2|mwh-H@WBi5ZlW9nwG-%GE&G;CN*zM`xCB}-y0c2d&&uiugMadr8oKpli
z^zEx*H%S3J_=u#|^e;4sbcj}l<bp20vNwfNU*kMqLAa~l(cwwk0GZ*pbLQZDavv<E
zHW#NI!aMv?#!JSAY%33p+nqlz=~Z%Z&PQhJenV1=oBA^M5+oR;{A(qcbhLDY_^3w`
zO_aLq2%z2&Ns3n_MT9Quo^jQpswg|jpN}rnB1>22HxWF!HcC~8c2Ak!Ec5mU!#lG~
z1zj9T%+Sg+vNkxQ&3{?A??#-fUu=AH*^a93zGjEtUwNdNrSS^}JPtpeQ3t<^Oha-%
z&HYdcVAB#oY)h-&y1Jo~xtIYK10zMb2iwce@(fAHS2%q5;P7wU^xC+D__#>Nq`2R@
zDF*N&PMSZman2$55v--~;un<PbH)i}WMYY>C~p)6pwV1=zz`Xc?a<#G*XBNz`Mx}?
zHWC>5Op;*m0}z%X%X0#tcV@B!q3D3ZH%@sRi4jg77){1rFrVRGlLU@@!ZyhMT9!B+
zCSbI;H!5HTu?ZBH6c!9urAClpuRCQ1<Y3%IwWuLHWz2gEo{~$vM1Fzaa^A$ri^i4F
zVZr6;;al<OK@5?MG$T9vMSic4T?e*Hj2xFsoS;TQU5b^82)?_j^k06E&qkuXWz*)F
zz&Z`>f2}>a3QplKj<naMdKvmZxr&yh_x0MmCaAv{9B*)qmuptmR9ElD+${-RW+Z?T
zvzBcD%31qGVL0Rd$P>}CaMjzBQwFNfuRJLGy?5E?$>k7#96!KG@M<2!k^PYxWn$0k
zSZ1Th?hfRB@4V>meS_Ps16o|$E#)HGDk&?f>#grCpvumUs+@i|oJlv26l~w_%F12r
zNhjU!mLeAfujC9eep>Z6;9V=KM&o@*^|0Vb=Ybet&6t+*8iUq+Z(3Jf8JX^xI1NB)
z5R){8SPIc&K$H84AtGTN+jHD60Q_+*4yb_gjw2nwPRI3H0Lcr>1&pR}aoQE#s7YJH
zsr{w;5$yyJ+Ru*}_dRyL-tm9l5%ElagbHO`IFAeO&=J6ap%`L2L}Dp!rk2Ha5N{+L
zAw?roLeEPbnQ+#lo=t&Z1UM|EX#nLo*yl1{@HX1J380oED+gH0=X90XOYzb%UPyke
zS;D5&C<FiSb)3C1+K5k;T9X3Ae!+;>+RCNQ^ta#F-@*P??w+QA6|vEf!tmi6(5Zvl
zJ+<WKrUCa}Lr2H5P@BZU@XZrO2HjIgg>+wdB{woLigpA(ahC`(gVP)CG}qA*QkO}Q
zkBjFZt1OPR&*6urYOgmq1tb^hC;-W#pIxl2;W>aV0DagSwP;>15wIUrhG#+MR33u@
z2W2h#+Rtx;+kz@y-LGw3#vB?Vo{tVobptERjKgcI6C7<DJ{Rl}QWmh?ixZtmp~eJx
z-7LE=>jyQ5w0td6%(S~@%V|4y^WvkGD{#`3s2VMNOC1c@mKr)E%i!vUy8(qF5iC)_
z<KT19kv;a^>g5w{1iJmp<zMU>$K2W)hv}Gw3t>Uh0Sil{UzX1V^;BkwoC~=Ri<_y~
zrQfbaD8NkXh8FIzeXHVA*`;kx`rpCzMMR(k<JB;LoYs9cHM_|81m5L$ez8WK!iO&?
zrajjhgF|H`Me?E#kVG#)mI}QNo><Jw#&)S2d98i=)ba383(CS!iD^tGCu8M$IDZ!)
z1FJZ$F292zY7qN0D&uPoFF@3|5^i_hv@RV~ZUG8!jP|Rlix4v^z7$HE!G4oR<^&{7
z3U4Mb?z@X_K&vtVSyX=LxK7QHON!Rn{Fl~S0ScQOPqRUmX9eR+I05`Ak(OVHh(?Lj
zq<_+QpyVNJeh=cxXB3l9PYanaowUuz7zZw;Iebrb1EjHcKGxXeETQ@$scAF$4`{HI
zmPNf*-lIY4&RONl))VOmH^qkzaGNgak-+bd;Fjr#QPZLHO4XzwM}K!MQx#<~bV^pH
z?ipgCQ~@Ak$7uLq9%i#2V;nqYP$~9E%i}Pu$f(|*jpC6`MO@7LLecv|y}F9lgPC&G
zo)MGFc=3T<Ehy?XI^|kZOn@MVs~Bb;2+)iXjbYq{HssDZK%GIdRUog<W;{$mOtJVD
zFk+tfM)YY<RhWj<*yNOfV3pPaY+U#HUtqfjPsB}9S)&@`g1>mATx*C}Ok;Eu>hG7J
z1;gD-=s=BaaeTKPnpNUuOY<<2q&rJ<MMbD-q*#+0q~7r5j1x+Ze~-MzDo`QG$FkdW
zho(8@y)V(bS6QuL{&zCIV}uDlB#PeQ5cFru)BC`^b@>jpXzn*|Fzc(T!7}f~D|d>V
zG`@Ji7Qe8M!6P9*Y&`M3P!&d*y>Y}w+BC!Z+%vIXGAk9H<(5lZvQ#S1G&H+mfn$f)
z`31ZAu<iF-?xZ?f5tSdZnUM)vJnv-IB3FBMsV`!AADZlF1M$F-{e+{rNy?O1T4<Xl
z65I?}F1O^E5}DG>g(Hv{IF14%?iAo{!SBAouJ$^Ls^}7o<1L;2_15`L!p$Cc$ge#v
zWc>nVABs_a^$bN-whqZ!l{wXy!r+vc{w?1b%Z(d#=WT9S+6s-bQ6A@wl-Jhui9LRw
z6YFi+N)%{V8aRvULkZe*s^2jDP2%}s)BWa0j&yQnQzeQ}#`U%#?p}<%ew>&_Cl=x+
zCGpH?-j{RbuDW>VU)A&rZdBu?VCFv`CKQS*y%JOK_zP)LEQhQCc>%TQJnO>N@@%V!
zsciIiKSmKXsb);`G+M~^&ev~h>seP){diS=%y+oFw_>JlU{pz15Q{k3{wXTlRe;&;
ze&-w8S^NjLQ}M==_n!4LwiTb%KR+^|vDSrOwEVi!^#fY+SnrdeHjdhYFq&2GTh%Ib
z8c}#r>stXh3|c@L*Xw6Vb^f#!^fyQtD<x4wXZfGkU<n2}H*4dcA1bt3HHZx(=3`76
z;Q1trmGBH9B>)A;gvhiKVH9&}iEBe?gl~-xN2QRf9byWZ)?YaiM3cB$-v7BGM>S|u
z2%*}I<0a(T5L43WCO}A0`Ma@cw#s9?eWbLF(#&Y7s|>3X0%>(03KnX3n(Gl4zqlms
z(I{_8^3PYp<aJnc{_jBVvB@CDK~A4lb}5z@f}TY$sAc>&$W>la${X%%$-&cEPrfA^
zJ+y0bZv*csgZ!~@e6v}(6>Iq_<yH*Usf*w~@9MFOIIQg5|IC*L?&+?IHMul=q<Qpu
z3$1%=;(C0+<zco3>aUs0O(olYQ@M4lTKjP2K;H=x18=mLp(Z{YHRX=9Nv=UIT;-N<
zJ?^@<_x#I;Bw~qk(ql1wF4V1j|1mbqks!c!U-k60!Z=3RZN&|4MOg>CyUoIVb%*Is
z-?C%pq2H1XIeiA?GzVUmOObbfcQ)K`{~Ezm?BvCJSg_@;Z<r%9r>;KEg_cKfwxm2*
zK4uR-Sb)dm?E(lX=ICZ<N8+maxvbp(t?{eZ`h)`WP%QajE4x?QNXni(xwoPT;I@`j
zFKqA$UQTd#kzShN-$s%95EoGz{lEuQ`XC=b=V@zZJki@*1pf9jU0!TbxttrB0mW@)
zYnne&PF~B<O}1{3{GX9~eS5YSh)Ih_mjBRot&A8S$_@k3sOL@%(z@3ScSYBv4GX~a
zl{ZYzDBx4VIHVRsc@V;56IHn|E}XxlWB2SNRj|w8{QUz*4_|@4#XZhW?YM$$QbUyb
zA4=q{3f$taAM`d-{?t>3+oWlGihEdLk+4e%6pp<$d64^B;R<+@vIKa&G-7O;z|&u^
z`g9?*qA*8LJ$0h$le1K7Te4_7_WvV}iVMY%2$M0h006?he=`E$m`(vXYrU6H3Q&jT
z<L|%0iFyUOI2RRQrX3ztM*hKAD(Y(QsuM4#;9bJse6KEhxzvL8{{!r5)B$iG)MCrv
zbNqRMV`pdT{wMMzxSYb}b9s&ky_fpO<klp0%Kj(0iMSHa=zwk5L0*L=tl2gw>tojc
z%StKA1KljPOC<dkKsN>`GEWdW_@^cve6>voM~wNVkII-R>laoYb6f>XzD<0m_iTQe
z;~yh0a1SbmMxf4&vaHPi)7yVER!RtnR7jZXM>I>KKz5^!dGX;W3+@NH2b(8p<9+p3
zd0cgly-*x=Ck1<sij98Q#{#>^k1}!^2m9ZxXd>=DzdHYvw_{AB|69~o2`?@J0EKth
zTo-$9)86rY`151i3s01BNf8vP#;ZAq**$1x@?OE=B<>0w{UB>h9%vQtQ7c6^GKZZl
z!qNbDDo!2Aju$*uOxpa<bN){(aNzYhiAnH@SwuWxT<`8?KMOdv6bTKkZ5aNNHcB%X
zC>d~#DFI;Rmeh?C9sCURCgq1uX?nMSt)u;+toCczk(XBI$B!v`2Cm6tT;%nC|9;8V
z6S9AIuT(XW7LymH6I{l@{d>jISZb|WeN<8)Gg-c%s*Os0`J(29&C8<}@juI7m4wSs
z^}Y6Far2o%agbQgGu(nB{L`$?V69PoK}xi}hQT8q$Y<V3LqD)GfmM3(6Uex`#`nQ8
zK~JtkH#=>Adtt>7nWUw?tZ8DX*e>O>sMXwjQ8c=Www-IdvWoKj>94epA3n9p=zdVU
zgji>tWho`#6wW$tZ|Zx80!F^uXtB~~-Xy8uvQGhj4}G?!wIc&fIH~+H^h|U<<L30H
z`d_Xj2J~@A9Pqbp?lNR%=-{@qYi<=-7B<ziTB$B*VC`=01An6sAzOD}>W%Q{vhBo`
zi!e$IBCKT%5IL@Nq1hq<mLKojWbL!!a-<+h$w$Qv56=92P=G4|OH$_?#gsD*fBr$1
zdXEYPLM$vSawtv>4TGsM(9q^zF%a8_>!aC;362A6gyu<g5`Mq=mZZiSiw&8d<qmQ1
z=JWktt#(SQS`N!^Ps>~ithD|^KT|S69jj^*A^{wLzKAxIVEFx>Y(u#F%_OezfLiT8
z8c7-sf?-D3FtkO;$mza%BMK=~LfoX9mIa^vC8|rLow=?4^C*gmdOnA|HBLmJCjl!y
z3p)c#b;6XzEWbdgm80W?_yu?FT~xV2>ukLktWJuU95%!Z9dOrgOG!x?dkpRW#f^g^
zu>J5jF7%$4cUyK%ZJgcj40WMGwtZ=FQ5R8dY$`H?{=(sL2>$0{)xtd@!jZTCgRldE
z@$i$;?eFo$-mS<_E!H;ks7VI@7o%CC1k-H3WnPMCUss8He+Z?YPSi>MDFqAPPLmu?
z5|~vL6(7b;y9dtwU}h-R{A8qMN8N+djhvI+pl*U}@q2FWYYEqtQ^_|d@bvJA0^5y+
z+Y$ZEn}t_$LLRYXXh`87)j|91uuAypavD99!sj%=|D~ASchK+oB3F^A$wX*+aq+XT
zuyBLx!6)ytK7ylvz1S~y#{c|7x{6Z`YfgMmyoX#?9Vi~=2lRV<Hlq2;s;egt1idax
z>+9<mG95bh;7T4}@h1;o{pR?$SRaGqQ<@F^cX(~9PM$_r=l?Mzf0op&@P7a172q+}
zlnnZ$|Is&0GD|q+KY5}pfsrCwDkU}vEo`d7M#9*5X3WPoB&L?7Q?=y85ix-(?kPss
zJ$B8`o8OM=e<y!3<gzT*ND5?*0Z^tJs{fdu7GNXDh9y{Ttg@tl-m&@_X=%Q;@CWm5
zDtxT|$jtE7H`9evjpg`)htV1|O-tS)jTgp?MEU&ME7mExy0&)umDKwme0P2AhA0C#
zJKq{chXPnSogplg9-F_g=J5Y9Z3naEwe8+Ff_YA&l)BWWZLg5!^%lGT0uvLHzKyND
zeZy=2&iU87)sM}uTZL$%=xqAjN+kweZ}q2WBlFA4i&eQ*tX?+H@7Ff>I)ARSKQSPF
zLBFV}n?E#9m44&y=KODq-^7FbSW*DhRo2;f4*ruUB#UHgCDkiuBtB(rvk|!u8LP4#
zpLPNUh5vd!DesGPOrJbQQGG<snAMw%QI%&ss9LA@SM*8T3Ho@tebIQ&*p5CF;V<v2
zD4k#m++6%!-cV5}ZB>YJErcu~*TYxbpgd@_C%<CwhXsp*9n%nPAtZ7RF5_thZRnRg
zGZ{H?{lQ#IS*Q1Wzbq~$P4q{Mrd1q9a~<C-9$cIw1Z&qVl%_5pl)SeB#v0PxaE}}d
zrk~4SVa2$OWYOc-e)F%rn?3v7juyA*42JIZwL15qK6_KN?6n;ohS<SW1#n|&Hj^T)
zt*z}*KYlRrZOO?0%&QxbK|j2jr=SztN-u1XJ?{%qOf9dk?ka&>l;ePhL$&xnAt3*N
zf{8g@r3<_E95#4w9fH!5PEJ%6=mmuA==iP}PZtJ#Qv2v2ZFBQ$an@m)Z%o_d0)e^I
zzGmsS8F{~YlUJDXjnR!a>Q9p7_hOU<cI?d^HYid|)qxq7%!^F}wpG(k%c<p6U+VE@
z%FhMA$sz_e^uI9gmsR<C^XEymdGFsdW|BAk{UejI4`L9$MXaRLEw-6*dfA#+>Gm6A
z3^1;aj@detQSHPgNBZEKC>4;LjQ`*auKD~4qBl}>OqA?eU8GNJQ|wsSp>iyk?qF3n
zQT+LeED7v*Mv!<aV?>v+8G=ec%Cq6Xjjcw7+~+*Qagy`ieJm)FW3uCFRu4Ti&1I75
z<rSYAQOOpx7#F_D0<&9OkPtJCFDn7c<Tcc-rPGY1uZ9M$wfFkV8#?MH(Dzq{t;QGY
zkiO60exjjt^A&CV?@e_I(15wJ^3W7WKU6Gk4mOtMX=L6v`b+%y7;b1(6X=vqqsUZN
zRWYhS{_+vHYtQVr?hFzD216@uzpp0rx6GmpeZFj2iO9XHfoXWN{v<AkT#Z$IRQ)3t
z0oUKx>OYO5WmmtRor~|-pmS!H`zDX*uBc&9?bBdnr&S1<*Czq<)N_>6sD5fkr35^F
zs8@}fsg>j!<|q*{aqSthA8LnM#d(c}ja@~e(?_Z(fFpb@lf4fbtB#1uo$7L!pm1{=
z@y=^e|J@uMkc&+OTmU86{y0(#`I@FPDKbe8R8?y739}66y=(1!XeH+f{-oe}D*)8b
z`71%P<sIlP@=92bLmGu5W4W^#DY`!iKLoy^5HO~e#hBl{b8h%NK7E~TC2F~>RjC_I
zQ+^(El@VEbypWPqoOP?C^S{#u8N3is?Brvn#{qkp$De_6kI@ZY&u!teCr-pR>j1zb
z8{d-6hPQu_a8hn+$%1Wj#RX`FnA<uPzBrlpdD{qSv(Cco4|mFe5Itap{*80$PT<wF
zlvm~a?R(L>DWkj44*z~7sLd2jeJcBAh;qY|vTD@grni4N*O>P4xq71D&cjCP;rS7L
zR~woVLM@9>#!0cSX8gBB<{HlC&3@P1K+B#Aba<SPLyOvUFP0yh8*-3lB!%qc($tv5
z3%@sv(G@p$->3fm@Mng`8Q^vyMHQZVhb{(|G6<cp0`T~rDYa2d+q5+ih|(=WW(>6|
z4Ub$;(^(lfF_A<WP8=4-zdtDaSzJzvJJ_oUd}mW`+e7y=lelp^Lm{10x4cy4dsfxX
z_}?g_n(#Qhr2o|ZeKA0cs?*YBgE+IrW&Ry3Fo6qEx=y-I72}ezvZ3JJpR%fk(UP%t
zcFLpL_2_Zk_>muwpOAck^v_ne221Db;?noJTe#(`baAYW-%$t3<%~01z4U)9%Bis>
z3~SE*wGn#C$rY(7%9AJK)MhM6g_nW%Vps-P^IsOJA-}<0+wfNG4waya|908j=no@C
z{aG#%ZckTa5fc;2peLHEDfXUK99FM&Wvvsy4br}3FA<fkwWYad-T6jqG$z%(Es(x(
zW6kl#<&B=!I$pq4id;?bE!1j5t9TF{{nvHn2)4rLhZ<cv)YLq#iMHwbEa87H1Lj)<
zWibyq7uP+&&(sJE{?0tG^zt>A+x;vrNbfiTR^c0F7^|b=H&9Scfm0JjQ(};A!Y8yr
znM$%>tsh^Y*)=@r$B3VbOCzvJY(BX-@M7e>GfVQ@HT3UR`q{0m88sCZlgW=E_29Q^
zY-k$Nz+{r5XT+k*uuF;$?bgR$b3bL&e}1wnMsf;Dz}L?}is<cf!<7ppQ;HtXF<agF
z^T3_?J$^${D96Rlrq1fxq`bb9=#?N{{cDgfcowTxtemz~#YAnK91&!R9J*}do@l|F
zHg)ihbzv?J>$I-5GfbCN9YRJD{DbCM?WMVhcr0Q)M-uGIq)vo{Y8RPek%^YdHK;+w
z_V(14$?^E_xYdC{F+j16dzHBnepb~fO)t^9M02mqDCnuCA@{!BHK?Dv0KNeJdJ44t
z0}qxg`gAaCUtjLD(=%cfAHHMMao&8su$nMVv%tdecW1BAbpm-B$Fv-ju`rN-eTZrn
zlkESrwdMEunBIPIxC*6no1ASs=}J#efu40Fvh|a_u7Y~$9_j9H7gMGvZC$)b9^=uF
zzzX;J5ApU#`h*`Km5r5JhU08F3Z>s_%Lpr{Cb9VW9yG`}o|-;^Nc!z129ni0pIP$0
zCM6EHa&V-X!#D0r!Yo&HmMB<H{VjnPzwF}5AWRa`^S^)HK3lzP_j}XgG+;@)!5H|?
zS?onJQe|lfcdv?n?bBiacn89l(ZBqTz{<Q2u#~7iS5myF??ktw#BuktUT|_~X~m`5
z6iL^T!=SU1m*wTQy1=h7mfx*TZ{{0R8?~H0-u~L2#+RvcU}oZ@Lj=o?F==<yCYbPO
zU+qWGYdOZ{83v6^1?zJ%_5B^l(b5pxI{Q#M=9gHMJTS7xn*NTQl(mY2)ff-K&1fOE
z@WIVYVd>|4?I|e=)C(e&3~3h5UyFERvvq}8mLoN9#OfJ;s2g&TiF^pf*4EcGKvf)`
z`u4k>`!69f#7Rk$h<=NX0T{m-gb9osAgkSCq!is3rMY;W1?3`~kEG^Yt`~DdX!)ri
z)=Y@=>rD>N=76(E0kZk2*B`cNK4I3EHvC?~U%S$FUk~-+i1lgw3a`m1h0g}NQk|O&
zv9lquPnRKwlo2v!W@gt(J$DOkM{iLkY?@YBU=QysKMFIkZ+8!+#`X{}T^`vRz3CZ<
z39+_77`CB6sB6!qfW@s-yta*B>wK3(%sSzN>Zm!+Y}4?3602mKhez;Pf>Cpj4%co=
z5W9*7f6#o!&NNJ3Km}A}{zqdDxt~Teg7$1&YIiyAowQw$2D#Mcth7#PXD1(Uy+wb<
z^yi@su_K5I`c}7k#-Lyu%n=7f&7-u1S#eonafyB0o%yZ_<mkanDy(_~+j=@YEMr7b
zcamWJmRg|pE&MAey@74Pee+j52RFCb+Q7r>5IP+L`W?+1d4t{MR`(-P=;8IzAB4r3
zK&p9I^H;_Rf(?^Vej@M=r~>+ys11p$2@`DA{$(RH`Yud^YMsAdfufY`bv&SMt~qXD
zTCeMwT9-ttD!f-zD*OX%);jm7O;!jbX30tE%S$bO-`G>d)&G1sAR4SH@;u+~al58=
z+iZ^ZbJ~bG@feCM*h{NRshgL~niq^`F`9s^S6MpWnJl3&_=fpABiYQ;XaalVg#jRQ
z(8v(SMVqZ0{LLDjt}H7I?Ktsw#=e~9vhL0|H)zaoj~IN#a7Jb#+}rmUqq<zqA<fEQ
z75l@bLm=WT!`;Z}=t49Z3^>AO&~mAugZyB>(niFl-((B}&I@^*Qf9q(XVY(W8zrQs
zM7#z3fKuA<IE?3tI-GmYKvk5L7b5+vaZbTf))*XM!uXpF{Tw#T*qfV~u!3mCT)=x{
zrH52@BlNjSqef02wtTo*wiZ}3;BC~DRq)??h?$R%P*hYD;lz~a4q$yABqr>8UzfZE
zXo@--Or*b7bKDurc05~`_TGg?cV|@UH`hGd{A6Wcm=P!nc2$&cyeyADZC&l8@H;zh
zHMz|*&GKsbiQDHz@QxV<OuneAiM4wFVs@4V2{=iF2asDlH*(U>U8{Y&o2}w!%}ehk
zZES;4GOP9UKFEcKH-E+vEf=t3{VQ**`{~yYN(J3@j~}cWu0ENK+`=nT>#i&XC&-6%
z#mrF^)|@JAXtM|#f%1Y-5P)OM%!#=>Pu~>7oe|bWY@nMu*mE`L4LiR*+i*j((XWIi
zF~b8Tpl<<hP~ppDWM$vvK@y#J6Wz4=(P8FMfYf0iXul0$0ZSpUdo5!5o^Q&(f9?&(
z;brTGMIMAqf+8-#kXnFORQ!?EcuxJZ;~yusfoWdeb#ZW>`TJZGSX5?%Nh{#phU*P$
zy^KX4XYR{g(CKf7Rn+!eA6!35=_snHP(+N7teOxTh)hZCnC+b`vFca+ulVz#_>Q60
zfydb7kUoMu>tS9oZsGFJ-1)e!t8f6?{DCCXQt*~EHk`YF^^BXMLl&CeOaMU4c`IXG
z4V#kJfvi5W0f9vmc12i9OY+Vd$O0e~!_nI53B!2fA;bpR$N0V;9F#j}45H&uUP@wX
z-I<Q}EQ>v=;<IW1pxLX!zM6$sig;Z@$QXb!B_w8|#=9p#DKSC=Juy~2#GyO#SbaVZ
z!Oqfw&nEHE_j&!zRUh;lqfVZm9{SA}`oZ91lYU^8lU=XI9!Z{gfHJtQ$;p@0CzP{C
zq83?J0Pn0qS-8$WuOhxt@>>$e3bIA(cFVrTFt?FjXEVC;5ZQud;xnpg<0NPj)M^1F
z+{&QKF#LUKY$3nduC1+ZJ(!?h<H@P?0osH};Ihj6d9fNDM}~uC=7~KF1>4?W6j?WU
zQB9iCP-E840Jm<U;<kF9FEYW9Rl%gxfT$U+(eJJ$z?mCio){k9?UlzwhfXb!igiV2
z%~NQ20Pt9nLXLVF7y1{sE&zOK1ZbG2S5F;uhA5CX7#JjCAeAit?GYld?0v8&NQ6T~
zbsf0r*j1D57S0T6iAo-?>x%q>?Oo)1JzaTn!^zKVu1paX#Q7yViXx6?dv7X;!>B}{
z(BN>)E%zP`A1(29lu>z8$X(9ya;p{EvYkw`ysP1{AuUq9;z&MI$>Q6a-lDb(pFPPR
zsy`0I^G^FS|M+(NiOv<brGAwkN?l_u7Bzf<dzZ&tlh>>9KWK82@d8Tsx!xB+;AB4x
z71LbstTtY=e!j*LOKB=@7eeKuZIx&FATK6&CcoCM2|5K>hKb?oh&cc0u%Brnt2Au?
ztaQ+-y`;QX7AI0enVsByVJ2+$I__eB`|@z6zrI#H_4lx4qvh&*8;eYCLv2zqR7#LX
z-EV$`ahI#>+J{;*;A^GcIodDlW=Cm;+pm^|*9K$!NAa7O5NRA{S3Q`Tu)tTd9}&)M
zs}C$JF)zYNy|x&Smsa`Chx8_vPE=@n);|tp9YV4$i8ioVF<+mFeSGaWt7E>-=Z_xM
zO}4Pm_sN2zD$8@;f|2=o7_{;6@BwsU3l(WqwD4GSGhIr41~e*Voxc+<ed^heSTM+l
zc>sOhRv;e~7hYBY2Gj%{gN4J?)a35rp##qadFo%5e@0qd+m+pOiA&8*y^q&N?1SER
z^N`_^{Bf&t4Y-fKUxA=4bky!xKG>7y#&%Y-1JZ-3$!(1XMd)ftXjvo7uA_3$o3Bk7
zgr5|+3FR`+&vyP+;c}ikkn(Z{Ye!7&H%9V5LjoYcMgU;0SRXy{kJ(#m1>;7l1aVK4
z1kd&-jtSoCv3JSEadgc1OkzhT2N=tsu^Rn$o4qo90iaduaqf{u(D--KVikq*{nbpA
ztcSaUG0?Uj>9-)7!{6|ywII~+6LF&k(`;c;a@6HsLwSvE)_e*HjhUH(^MHpl)Nr$i
zS2=<FfNyFfBmKZoF6&96fW+m_gq+1RUhT<`*U96?=+)d(^8KydY*JCf^psF(p4x52
zhl)@xpqkx*Wrw;v+AP?XJ3L$ihd7}2yV2E{pucq1O2^EcdEwqbPY!RjhChm;zxaC+
zF`@VW?aEy3ypr=ohosEzj5xfvWq9T?$-C2YKksBw751_2|N5~qwYs_LnAVs0#vzg8
zrmyLSe|vXS`Sm0IyLN5mGbN@^w!8$x6UtH>)Q-oA?7rh+XM%Cd7XiKKg|BDd0(duj
z;Ck$oEkO^i`oyI*d~)6<DiZ<AZyuuhAN(zw1s|KyN9qh%Y7}AGc*`_8Uy0|Rfyv)@
zD`%%m?)c}T%sy?c7Sj|{PVjh&n0-@@`EtDUp*rMsjsAOpER=CLm=#GjCU$<D^5_~2
zir>>e$<$P7PwFOqaxX2atfg-A)OJoBD%MLqXi#E(?)L9aP|$AqaLnhD$39ZY@?Czk
nJ=`Z3!0j+yLF1bJ0>5Xvyq7YJ&i*<r86YpMB2^(_9QgkLjX#i{

literal 0
HcmV?d00001

diff --git a/images/peertube_logo.png b/images/peertube_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d709ef1990886f2162185ca869d90a86cb41681
GIT binary patch
literal 1639
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

literal 0
HcmV?d00001


From 882f3982d919a034b918b03850f29d4884eb439e Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Mon, 9 Sep 2019 10:22:25 +0200
Subject: [PATCH 111/360] ajout contribution de kayou[m]

---
 app_nextcloud_fr.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index 4cc61a06..804f08ea 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -13,10 +13,10 @@ Nextcloud est un service d'hébergement de fichiers, de nombreuses applications
 
 Du fait de la constitution de Nextcloud, une base avec des applications tiers à installer, cette découverte de nextcloud ne concernera que la base de nextcloud sans applications ajoutés. Plus d'informations sur les applications dans la partie dédiée ou sur le catalogue d'application de nextcloud : https://apps.nextcloud.com/
 
-## <a name="#LogicielsClients">Logiciels Clients</a>
+## <a name="LogicielsClients">Logiciels Clients</a>
 Il existe des logiciels client pour l'ensemble plateformes. Vous pouvez les retrouver sur le site officiel de nextcloud : https://nextcloud.com/install/#install-clients
 
-## <a name="#ManipulationsUtiles"> Manipulations utiles & Problèmes rencontrés</a>
+## <a name="ManipulationsUtiles"> Manipulations utiles & Problèmes rencontrés</a>
 
 ### <a name="AjoutEspace">Ajouter de l'espace à Nextcloud</a>
 
@@ -191,4 +191,4 @@ A présent, le problème est corrigé.
 ## <a name="liensutiles">Quelques liens utiles</a>
 + Site officiel : [nextcloud.com (En anglais)](https://nextcloud.com/)
 + Catalogue d'application pour nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)
-+ Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)
\ No newline at end of file
++ Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)

From 36594392c5187d86d3b1e124845ae3d4354bdecb Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Mon, 9 Sep 2019 11:30:51 +0200
Subject: [PATCH 112/360] developpement page de doc peertube

---
 app_peertube_fr.md | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/app_peertube_fr.md b/app_peertube_fr.md
index eda7a4a5..f359cede 100644
--- a/app_peertube_fr.md
+++ b/app_peertube_fr.md
@@ -9,12 +9,19 @@ PeerTube est une plateforme de streaming vidéo fédérée (ActivityPub) utilisa
 
 ## <a name ="EnvironnementPeerTube">Découverte de l'environnement de PeerTube</a>
 
+Pour comprendre en quoi PeerTube propose une réelle alternative à youtube, vous êtes invité à regarder le clip de promotion de PeerTube réalisé par l'association Framasoft (ci-dessous). Elle est elle même hébergé sur framatube.org  
+
+<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts" src="https://framatube.org/videos/embed/9db9f3f1-9b54-44ed-9e91-461d262d2205" frameborder="0" allowfullscreen></iframe>
+
 ## <a name="ManipulationsUtiles">Manipulations utiles & Problèmes rencontrés</a>
 
 ### <a name="VideosEmbed">Permettre aux vidéos d'être embarqué sur un site web</a>
 
-Pour permettre à une vidéo d'être embarqué, c'est à dire que la vidéo puisse être visible sur un site internet à l'aide du code disponible en cliquant sur *Partager* et en copiant le code sur une page du site de destination (cf. capture d'écran ci-dessous). Vous devrez modifier ce fichier de configuration situé ici : `/etc/nginx/conf.d/nom.instance.tld.conf` 
+Pour permettre à une vidéo d'être embarqué, c'est à dire que la vidéo puisse être visible sur un site internet (comme la vidéo de présentation de youtube sur cette page) à l'aide du code disponible en cliquant sur *Partager* sur la page de la vidéo et en copiant le code sur une page du site de destination (cf. capture d'écran ci-dessous). Vous devrez modifier ce fichier de configuration situé ici : `/etc/nginx/conf.d/nom.instance.tld.conf` 
 ![Capture d'écran du bouton partager](/images/peertube_embed_01.png)
 
 ## <a name="liensutiles">Quelques liens utiles</a>
 
+ - [Site officiel de PeerTube - joinpeertube.org](https://joinpeertube.org/fr/)
+ - [Documentation de l'application de yunohost](#)
+ - [

From ad2ce9ca31354b23d9f248638e71ab002a48ce74 Mon Sep 17 00:00:00 2001
From: tituspijean <tituspijean@outlook.com>
Date: Mon, 9 Sep 2019 18:34:16 +0200
Subject: [PATCH 113/360] Add Ownit in Sweden

Adding a great customer service experience I recently had with Ownit in Sweden.
---
 isp.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/isp.md b/isp.md
index 0d28c988..04343253 100644
--- a/isp.md
+++ b/isp.md
@@ -42,6 +42,9 @@ A list of French and Belgian ISPs is available on the [french page](/isp_fr).
 | --- | --- | --- | --- | --- | --- | --- |
 | Telia | Multiple | Yes | No. Business only. | Yes | No. Business only. | No. Business only. |
 | Bredbandsbolaget | Multiple | Yes | No. Business only. | Yes | No. Business only. | No. Business only. |
+| Ownit | Multiple | Yes | Yes | N/A? | ? | Yes |
+
+Ownit reserves port 3 and 4 of their router to TV. With a simple call to their hotline, explaining that you want to selfhost, they can reassign one of the ports to be in bridge mode. It means that your server will have its own public fixed IP address, in addition to the modem's.
 
 ### Switzerland
 

From 49b26a8689664282a2f6b7959e2529dab5b18caa Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Tue, 10 Sep 2019 13:21:15 +0200
Subject: [PATCH 114/360] Restore removed item due to bug in simone anonymous
 submission

---
 apps_wishlist.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index b4019e9d..214478a8 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -53,6 +53,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -114,6 +115,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
+- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)

From 8057c88503344dca6a59b482189dfc32d21cdc91 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Wed, 11 Sep 2019 12:04:54 +0000
Subject: [PATCH 115/360] typo in path &#34;config/config&#34; instead of
 &#34;config&#34;

---
 app_nextcloud.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_nextcloud.md b/app_nextcloud.md
index 92cb29f4..dca14eb6 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -70,7 +70,7 @@ Case B: ls -al /media/storage/nextcloud_data/nextcloud
 To inform Nextcloud of its new directory, modify the `/var/www/nextcloud/config/config.php` file with the command:
 
 ```bash
-nano /var/www/nextcloud/config/config/config.php
+nano /var/www/nextcloud/config/config.php
 ```
 
 Look for the line:

From 7945ffafd641d6396e2920f7a4de5423fdad9655 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Wed, 11 Sep 2019 15:38:52 +0000
Subject: [PATCH 116/360] Fixing typo.

---
 packaging_apps_virtualbox_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_virtualbox_fr.md b/packaging_apps_virtualbox_fr.md
index 823fdace..aa07285e 100644
--- a/packaging_apps_virtualbox_fr.md
+++ b/packaging_apps_virtualbox_fr.md
@@ -6,7 +6,7 @@ Cette page de documentation va vous expliquer comment mettre en place un serveur
 
 Il y a principalement deux raisons pour préférer l'usage d'un serveur virtuel plutôt que votre propre serveur :
 
-- Vous pouvez torturez à loisir un serveur virtuel sans courir le risque de le casser, puisque vous pourrez toujours restaurer un état précédent. Alors qu'il serait dommage de casser son propre serveur !
+- Vous pouvez torturer à loisir un serveur virtuel sans courir le risque de le casser, puisque vous pourrez toujours restaurer un état précédent. Alors qu'il serait dommage de casser son propre serveur !
 - Un serveur virtuel sera restauré avant de travailler dessus, pour garder en permanence un système sans résidus d'une précédente installation. Cela permet de se rapprocher au plus près d'une première installation par un utilisateur.
 
 Nous parlerons ici de VirtualBox, pour son approche graphique facile à utiliser. Si vous préférez une interface en ligne de commande pour la gestion de la machine virtuelle, tournez-vous de préférence vers [ynh-dev](/dev_fr).

From 8968f2712cd62e1c81b8fe980ff909cc7da73f20 Mon Sep 17 00:00:00 2001
From: jeantest-git <55061244+jeantest-git@users.noreply.github.com>
Date: Wed, 11 Sep 2019 18:31:08 +0200
Subject: [PATCH 117/360] Creations de la page et ajout d'informations

---
 app_gogs_fr.md | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 app_gogs_fr.md

diff --git a/app_gogs_fr.md b/app_gogs_fr.md
new file mode 100644
index 00000000..8756e26a
--- /dev/null
+++ b/app_gogs_fr.md
@@ -0,0 +1,13 @@
+# ![Logo de GOGS](images/gogs_logo.png) Gogs
+
+[![Install Gogs with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gogs)
+
+Gogs est une forge logiciel minimaliste utilisant git. Gogs a été conçu pour pouvoir fonctionner de manières optimale sur du matériel peu puissant type Raspberry Pi.
+Il est donc adapté à l'auto-hébergement d'une forge git.
+Pour utiliser pleinement la puissance de gogs vous devez avoir appréhender ce qu'est git et l'utilisation d'un [logiciel de gestion de versions](https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions).
+
+##<a name=LiensUtiles> Liens utiles</a>
+ - [Site Officiel - gogs.io](https://gogs.io)
+ - [Dépot applications gogs pour YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
+ - [Site officiel de l'outils git - git-scm.com](https://git-scm.com/)
+ - [Trouver de l'aide et poser toutes vos questions : forum.yunohost.org](https://forum.yunohost.org/c/support/apps)

From 135572e4daa114542d90837421f6d1f48de41ce4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com>
Date: Wed, 11 Sep 2019 19:57:42 +0200
Subject: [PATCH 118/360] Create index_oc.md

---
 index_oc.md | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 149 insertions(+)
 create mode 100644 index_oc.md

diff --git a/index_oc.md b/index_oc.md
new file mode 100644
index 00000000..194bf8e2
--- /dev/null
+++ b/index_oc.md
@@ -0,0 +1,149 @@
+<div class="teasing-part">                                                                      
+
+  <div class="home-logo">
+    <img src="/images/ynh_logo_white_300dpi.png" width="100"/>
+  </div>
+
+  <div class="punchline">
+    <p>
+      <span class="yolo 1" style="color: #FF3399;">Ven a l’ostal, soi albergat en çò d’una amiga</span>
+      <span class="yolo 2" style="color: #FF0066;">S’alberguèron e aguèron un molon d’enfants</span>
+      <span class="yolo 3" style="color: #3366FF;">Internet, lectura e escritura</span>
+      <span class="yolo 4" style="color: #FFFFFF;">monssur@michu.fr</span>
+      <span class="yolo 5" style="color: #CC66FF;">Ai pas res a rescondre</span>
+      <span class="yolo 6" style="color: #FF6600;">How I met your server</span>
+    </p>
+    <button class="btn btn-primary btn-lg btn-block yolobtn">Perdon ?</button>
+  </div>
+
+  <div class="main-links hidden-xs">
+    <a href="/whatsyunohost_fr">A prepaus</a> <span class="colored-bar">•</span> 
+    <a href="https://forum.yunohost.org/c/announcement" target="_blank">Darrièras novèlas</a> <span class="colored-bar">•</span> 
+    <a href="/docs_fr">Documentacion</a>
+  </div>
+
+</div><!-- teasing-part -->
+
+<div class="boring-part" markdown="1">
+
+  <h1>YunoHost <small> es una aisina que vos permet d’installar e d’utilizar facilament vòstre pròpri servidor.</small></h1>
+
+  <div class="home-panel">
+    <img src="/images/home_panel.jpg" />
+  </div>
+
+  <div class="call-to-action">
+    <a class="btn btn-primary btn-lg" href="/try_fr">Ensajar</a>
+    <a class="btn btn-success btn-lg" href="/install_fr">Installar</a>
+    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
+  </div>
+
+  <hr />
+
+  <div class="row cf">
+    <div class="col-md-7">
+      <h1>Installatz <small>vòstre servidor simplament, avètz ja tot çò que cal a l’ostal</small></h1>
+      <p><a href="/hardware_fr">Far veire los requistes</a></p>
+    </div>
+    <div class="col-md-4">
+      <div class="feature-pic">
+        <img src="/images/home_install.png" />
+      </div>
+    </div>
+  </div>
+
+  <hr />
+
+  <div class="row cf">
+    <div class="col-md-4">
+      <div class="feature-pic">
+        <img src="/images/home_enjoy.jpg" />
+      </div>
+    </div>
+    <div class="col-md-7 text-right">
+      <h1>Profitatz <small>de vòstras aplicacions web e fabricatz vòstre canton d’Internet</small></h1>
+      <p><br /><a href="/apps_fr">Lista de las aplicacions disponiblas</a></p>
+    </div>
+  </div>
+
+  <hr />
+
+  <div class="row cf">
+    <div class="col-md-7">
+      <h1>Gerissètz <small>vòstre servidor coma volgatz : via web, mobil o en linha de comanda</small></h1>
+      <p><br /><a href="/try_fr">Ensajar l’interfàcia d’administracion</a></p>
+    </div>
+    <div class="col-md-4">
+      <div class="feature-pic">
+        <img src="/images/home_manage.jpg" />
+      </div>
+    </div>
+  </div>
+
+  <hr />
+
+  <div class="row cf">
+    <div class="col-md-4 button-list">
+
+      <a class="btn btn-lg btn-block btn-primary" href="/whatsyunohost_fr">Qu’es aquò YunoHost ?</a>
+      <a class="btn btn-lg btn-block btn-info" href="/docs_fr">Documentacion</a>
+      <a class="btn btn-lg btn-block btn-success" href="/contribute_fr">Cossí contribuir</a>
+      <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org" target="_blank">Forum</a>
+      <a class="btn btn-lg btn-block btn-default" href="chat_rooms_fr" target="_blank">Salas de discussions</a>
+      <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Darrièras novèlas</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr">Assisténcia</a>
+
+    </div>
+    <div class="col-md-7 text-right">
+      <h1>Exploratz <small>las possibilitats de vòstre servidor, e aprenètz perque es important</small></h1>
+      <p><br /><a href="/docs_fr">Legir la documentacion</a></p>
+    </div>
+  </div>
+
+  <hr />
+
+  <div class="text-center">
+    <h1>Ou ! Sèm umans !<br /><small> S’avètz una question, un problèma, o que sètz simplament interessat, venètz dire « Bonjorn » dins nòstra sala de discussion en clicar lo boton aval &nbsp;<span class="glyphicon glyphicon-share-alt"></span> </small></h1>
+
+<p class="liberapay">
+      <a href="https://liberapay.com/YunoHost" target="_blank"><img src="/images/liberapay_logo.svg" alt="Donation button" title="Liberapay" /></a>
+    </p>
+    
+  </div>
+
+</div><!-- boring-part -->
+
+<script type="text/javascript">
+    jQuery('.teasing-part').css({
+        marginTop: '0',
+        display: 'block'
+    });
+    jQuery('.boring-part').css({
+        marginTop: jQuery(window).height() + 100
+    });
+    jQuery( window ).resize(function() {
+        jQuery('.boring-part').css({
+            marginTop: jQuery('.teasing-part').height() + 100
+        });
+    });
+    jQuery('.yolo').hide();
+    randomNumber = Math.floor((Math.random()*jQuery('.yolo').length)+1);
+    color = jQuery('.yolo.' + randomNumber).css('color');
+    jQuery('.yolo.' + randomNumber).fadeIn();
+    document.title = jQuery('.yolo.' + randomNumber).text();
+    jQuery('.colored-bar').css({
+      color: color,
+      fontWeight: 'bold',
+      padding: '1%'
+    });
+    jQuery('.yolobtn').css({
+      background: color,
+      borderColor: color
+    }).on('click', function() {
+      jQuery('html, body').animate({
+        scrollTop: jQuery(window).height() + 80
+      }, 500);
+    });
+
+</script>
+

From a049013c085eaddfab664951cd9cc19f3ebac481 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Wed, 11 Sep 2019 23:14:46 +0000
Subject: [PATCH 119/360] trivial grammatical changes noticed while reading.

---
 packaging_apps_start.md | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/packaging_apps_start.md b/packaging_apps_start.md
index 5e69e811..6693194a 100644
--- a/packaging_apps_start.md
+++ b/packaging_apps_start.md
@@ -12,7 +12,7 @@ To be able to do that, we need to remember that Yunohost at its core is a server
 
 If you have ever installed a web application manually, you already know that the process is in reality far more complex, usually involving a lot of steps and discipline.
 
-This is what application packaging is, a serie of scripts that automate the installation of a web application and its configuration in order to provide the final user with a few clicks installation process.
+This is what application packaging is, a series of scripts that automate the installation of a web application and its configuration in order to provide the final user with a few clicks installation process.
 
 ### How it works
 
@@ -41,17 +41,17 @@ Scripts used during application packaging are simply a serie of bash commands.
 
 ### ... bash command?
 
-A [bash](https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29) command is a line of text that will be interpreted by the computer and will produce a result. This is commonly refered to a command line.
+A [bash](https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29) command is a line of text that will be interpreted by the computer and will produce a result. This is commonly refered to as a command line.
 
-You only can interact with your server through command line as it does not provide a graphical interface. Usual access is through [ssh](/ssh_en).
+You can ony interact with your server through the command line as it does not provide a graphical interface. Usual access is through [ssh](/ssh_en).
 
-Package scripts are therefore a serie of bash commands as if you had typed them directly in the ssh console.
+Package scripts are therefore a series of bash commands as if you had typed them directly in the ssh console.
 
-To know what you can write in a bash script, you should start reading this [simple tuto](https://debian-facile.org/doc:programmation:shells:debuter-avec-les-scripts-shell-bash) or this [more advanced one](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/index.html).
+To know what you can write in a bash script, you should start reading this [simple tutorial](https://debian-facile.org/doc:programmation:shells:debuter-avec-les-scripts-shell-bash) or this [more advanced one](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/index.html).
 
 ### Ok, I'm good ! Where do I start?
 
-Before starting the packaging process, you need to successfully install the application. The script will only perform what you instruct him to do.
+Before starting the packaging process, you need to successfully install the application. The script will only perform what you instruct it to do.
 
 Once completed, you need to read a little bit more documentation about application packaging. [This one is more technical](/packaging_apps_en) but now you should understand all the wizardry.
 
@@ -59,7 +59,7 @@ Once completed, you need to read a little bit more documentation about applicati
 
 Fortunately, you are not alone in this!
 
-There is other packagers like you and you can meet them on the [forum](https://forum.yunohost.org/c/apps-packaging) or the [chat](xmpp:apps@conference.yunohost.org?join).
+There are other packagers like you and you can meet them on the [forum](https://forum.yunohost.org/c/apps-packaging) or the [chat](xmpp:apps@conference.yunohost.org?join).
 
 Feel free to join in and ask your questions, there always will be someone to help.
 

From 93b0729a936c12d5f7263b5768be86e8af61afa0 Mon Sep 17 00:00:00 2001
From: jeantest-git <55061244+jeantest-git@users.noreply.github.com>
Date: Thu, 12 Sep 2019 08:43:20 +0200
Subject: [PATCH 120/360] ajout Logo Gogs

---
 images/gogs_logo.png | Bin 0 -> 8178 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 images/gogs_logo.png

diff --git a/images/gogs_logo.png b/images/gogs_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..74ac8d4085fe44a0f435ebed62f3f9d7fb30b017
GIT binary patch
literal 8178
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
Y59^5cbVck^2><{907*qoM6N<$g0e~2O8@`>

literal 0
HcmV?d00001


From ac42e9a5427cf9bc8bacff89fa6b35b6962feb4b Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 13 Sep 2019 19:09:43 +0200
Subject: [PATCH 121/360] Draft of documentation for groups and permissions

---
 groups_and_permissions.md | 145 ++++++++++++++++++++++++++++++++++++++
 users.md                  |   6 +-
 2 files changed, 148 insertions(+), 3 deletions(-)
 create mode 100644 groups_and_permissions.md

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
new file mode 100644
index 00000000..a24b5a7c
--- /dev/null
+++ b/groups_and_permissions.md
@@ -0,0 +1,145 @@
+User groups and permissions
+===========================
+
+Warning : for now, these features are only available through the command line (c.f. `yunohost user group --help` and `yunohost user permission --help`)
+
+Managing groups
+---------------
+
+The group mechanism can be used to define group of users which then can be used to restrict permissions for applications and other services such as mail or xmpp. Note that it is *not* mandatory to create a group to do so : you can also restrict access to an app or service to just a specific list of user.
+
+Using groups is however useful for semantic, for example if you host multiple group of friends, association or enterprise on your server, you might want to create groups like `association1` and `association2` and add members of each association to the relevant group.
+
+### List existing groups
+
+To list the currently existing groups : 
+
+```bash
+$ yunohost user group list
+groups: 
+  all_users: 
+    members: 
+      - alice
+      - bob
+      - charlie
+      - delphine
+```
+
+By default, a special group called `all_users` exists and contain all users registered on YunoHost. This group can not be edited.
+
+### Creating a new group
+
+To create a new group called `yolo_crew`
+
+```bash
+$ yunohost user group create yolo_crew
+```
+
+Let's add Charlie and Delphine to this group:
+
+```bash
+$ yunohost user group update yolo_crew --add charlie delphine
+```
+
+(similarly, `--remove` can be used to remove members from a group)
+
+Now in the group list we should see : 
+
+```bash
+$ yunohost user group list
+groups:
+  all_users:
+    members:
+      - alice
+      - bob
+      - charlie
+      - delphine
+  yolo_crew:
+    members:
+      - charlie
+      - delphine
+```
+
+### Deleting groups
+
+To delete the group `yolo_crew`, you may run
+
+```bash
+$ yunohost user group delete yolo_crew
+```
+
+Managing permissions
+--------------------
+
+The permission mechanism allow to restrict access to services (for example mail, xmpp, ...) and apps, or even specific part of the apps (for example the administration interface of wordpress).
+
+### List permissions
+
+To list permissions and corresponding accesses:
+
+```bash
+$ yunohost user permission list
+permissions: 
+  mail.main: 
+    allowed: all_users
+  wordpress.admin: 
+    allowed: 
+  wordpress.main: 
+    allowed: all_users
+  xmpp.main: 
+    allowed: all_users
+```
+
+Here, we find that all registered users can use mails, xmpp, and access the wordpress blog. However, nobody can access the wordpress admin interface.
+
+More details can be displayed by adding the `--full` option which will display the list of users corresponding to groups allowed, as well as urls associated to a permission (relevant for web apps).
+
+### Add accesses to group or users
+
+To allow a group to access the wordpress admin interface:
+
+```bash
+$ yunohost user permission update wordpress.admin --add yolo_crew
+```
+
+Note that you can also allow a single user:
+
+```bash
+$ yunohost user permission update wordpress.admin --add alice
+```
+
+And now we may see that both the YoloCrew and Alice have access to the wordpress admin interface : 
+
+```bash
+$ yunohost user permission list
+  [...]
+  wordpress.admin:
+    allowed:
+      - yolo_crew
+      - john
+  [...]
+```
+
+Note that, for example, if we want to restrict permission for email so that only Bob, we should also remove `all_users` from the permission : 
+
+```bash
+$ yunohost user permission update mail --remove all_users --add bob
+```
+
+### Notes for apps packagers
+
+By default, installing an app creates the permission `$app.main` with `all_users` allowed by default.
+If you want to create a custom permission for your app (e.g. to restrict access to an admin interface) you may use the following helpers: 
+
+```bash
+ynh_permission_create --permission "admin" --urls "$domain$path_url/admin"
+ynh_permission_update --permission "admin" --add "$admin_user"
+```
+
+For now, inside the `change_url` script, you need to take care of updating the url corresponding to your permission:
+
+```bash
+ynh_permission_urls --permission "admin" --remove "$old_domain$old_path_url/admin" --add "$domain$path_url/admin"
+```
+
+However, you don't need to take care of removing permissions or backing up/restoring them as it is handled by the core of YunoHost.
diff --git a/users.md b/users.md
index 1d7ea512..e4b979ce 100644
--- a/users.md
+++ b/users.md
@@ -25,10 +25,10 @@ In the portal, users can also click on the avatar in the top-left to configure s
 You should be aware that the SSO can only be reached through the actual domain name (i.e. `https://the.domain.tld/yunohost/sso`), and NOT by just using the IP of the server (i.e. `https://11.22.33.44/yunohost/sso`), contrarily to the webadmin ! This is a bit confusing but is necessary for technical reason. If you are in a situation where you need to access the SSO without having your DNS properly configured for some reason, you might consider tweaking your `/etc/hosts` as described in [this page](dns_local_nework).
 </div>
 
-App permissions
----------------
+User groups and permissions
+---------------------------
 
-Access to apps can be restricted to some users only. This can be configured via the webadmin in Applications > (choose an app) > Access, or similarly via the command line `yunohost app addaccess`, `removeaccess` and `clearaccess`.
+See [this dedicated page](groups_and_permissions).
 
 SSH access
 ----------

From 79b3afdb62f823f4e0f49ba50165791ac157e7ed Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 13 Sep 2019 22:50:34 +0200
Subject: [PATCH 122/360] Small typo, need a space for the title to be rendered
 properly

---
 app_gogs_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_gogs_fr.md b/app_gogs_fr.md
index 8756e26a..4b09de7b 100644
--- a/app_gogs_fr.md
+++ b/app_gogs_fr.md
@@ -6,7 +6,7 @@ Gogs est une forge logiciel minimaliste utilisant git. Gogs a été conçu pour
 Il est donc adapté à l'auto-hébergement d'une forge git.
 Pour utiliser pleinement la puissance de gogs vous devez avoir appréhender ce qu'est git et l'utilisation d'un [logiciel de gestion de versions](https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions).
 
-##<a name=LiensUtiles> Liens utiles</a>
+## <a name=LiensUtiles>Liens utiles</a>
  - [Site Officiel - gogs.io](https://gogs.io)
  - [Dépot applications gogs pour YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
  - [Site officiel de l'outils git - git-scm.com](https://git-scm.com/)

From f73a89c33e613cd1e3eb661b1b0a3f4ee7a2a4a7 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Wed, 18 Sep 2019 07:58:06 +0000
Subject: [PATCH 123/360] Homepage in Spanish fixed

---
 index_es.md | 99 ++++++++++++++++++++---------------------------------
 1 file changed, 37 insertions(+), 62 deletions(-)

diff --git a/index_es.md b/index_es.md
index 1b066c15..1753db2e 100644
--- a/index_es.md
+++ b/index_es.md
@@ -6,48 +6,46 @@
 
   <div class="punchline">
     <p>
-      <span class="yolo 1" style="color: #FF3399;">datalove <3</span>
-      <span class="yolo 2" style="color: #6699FF;">data@home</span>
-      <span class="yolo 3" style="color: #66FF33;">Alojar arriba, dijeron</span>
-      <span class="yolo 4" style="color: #00FFCC;">Host me I'm famous</span>
-      <span class="yolo 5" style="color: #FF5050;">sudo internet</span>
-      <span class="yolo 6" style="color: #FF0066;">Ellos alojamientido y tenía muchos hijos</span>
-      <span class="yolo 8" style="color: #FFFFFF;">Try Internet</span>
-      <span class="yolo 7" style="color: #3366FF;">Internet, lectura y escritura</span>
-      <span class="yolo 9" style="color: #CC66FF;">No tengo nada que ocultar</span>
-      <span class="yolo 10" style="color: #FF6600;">How I met your server</span>
-      <span class="yolo 11" style="color: #FF3399;">datalove <3</span>
+      <span class="yolo 1" style="color: #6699FF;">Okupa tu servidor</span>
+      <span class="yolo 2" style="color: #66FF33;">¡Yo me alojo a mi mismo!</span>
+      <span class="yolo 3" style="color: #00FFCC;">¡Anda y que te alojen!</span>
+      <span class="yolo 4" style="color: #FF5050;">Fuera de mi nube</span>
+      <span class="yolo 5" style="color: #FF0066;">Alójame, soy famoso</span>
+      <span class="yolo 6" style="color: #3366FF;">Prueba Internet</span>
+      <span class="yolo 7" style="color: #FFFFFF;">Su fiel servidor</span>
+      <span class="yolo 8" style="color: #FF6600;">yo@mismo.parami</span>
+      <span class="yolo 9" style="color: #FF5050;">Tío ¡¿X K NO alojas?!</span>
+      <span class="yolo 10" style="color: #66FF33;">Tranqui y alójate</span>
     </p>
-    <button class="btn btn-primary btn-lg btn-block yolobtn">Perdón ?</button>
+    <button class="btn btn-primary btn-lg btn-block yolobtn">¿Qué?</button>
   </div>
 
   <div class="main-links hidden-xs">
-    <a href="/whatsyunohost">About</a> <span class="colored-bar">•</span> 
-    <a href="https://forum.yunohost.org/c/announcement" target="_blank">últimas noticias</a> <span class="colored-bar">•</span> 
-    <a href="/docs">Documentation</a>
+    <a href="/whatsyunohost">Acerca de</a> <span class="colored-bar">•</span> 
+    <a href="https://forum.yunohost.org/c/announcement" target="_blank">Últimas noticias</a> <span class="colored-bar">•</span> 
+    <a href="/docs">Documentación</a>
   </div>
 
 </div><!-- teasing-part -->
 
 <div class="boring-part" markdown="1">
 
-  <h1>YunoHost <small>es una herramienta que permite instalar y utilizar fácilmente su propio servidor.</small></h1>
-
+  <h1>YunoHost <small>es un sistema operativo de servidor que pretende hacer accesible el autoalojamiento para todo el mundo.</small></h1>
 
   <div class="home-panel">
     <img src="/images/home_panel.jpg" />
   </div>
 
   <div class="call-to-action">
-    <!-- <a class="btn btn-primary btn-lg" href="/try">Try it</a>  -->
-    <a class="btn btn-success btn-lg" href="/install">Get started</a>
+    <a class="btn btn-primary btn-lg" href="/try">Probar</a>
+    <a class="btn btn-success btn-lg" href="/install">Instalar</a>
     <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
   </div>
 
   <div class="row cf">
     <div class="col-md-7">
-      <h1>Installar <small>su servidor simplemente, tienes todo en casa</small></h1>
-      <p><br /><a href="/hardware">Ver los prerrequisitos</a></p>
+      <h1>Instale <small>su servidor fácilmente, ya tiene todo en su casa</small></h1>
+      <p><br /><a href="/hardware">Vea los requisitos</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
@@ -65,8 +63,8 @@
       </div>
     </div>
     <div class="col-md-7 text-right">
-      <h1>Disfrutar <small>de sus aplicaciones web, y crea tu esquina de Internet</small></h1>
-      <p><br /><a href="/apps_es">Lista de aplicaciones disponible</a></p>
+      <h1>Disfrute <small>sus aplicaciones y construya su rinconcito de Internet</small></h1>
+      <p><br /><a href="/apps">Lista de aplicaciones disponibles</a></p>
     </div>
   </div>
 
@@ -74,8 +72,8 @@
 
   <div class="row cf">
     <div class="col-md-7">
-      <h1>Gestionar <small>tu servidor como quieras : vía web, móvil o en línea de comandos</small></h1>
-      <p><br /><a href="/try_es">Intentar la interfaz de administración</a></p>
+      <h1>Gestione <small>su servidor como le guste: vía web, móvil o línea de órdenes</small></h1>
+      <p><br /><a href="/try">Pruebe la administración</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
@@ -88,26 +86,28 @@
 
   <div class="row cf">
     <div class="col-md-4 button-list">
-      <a class="btn btn-lg btn-block btn-primary" href="/userdoc_es">Guía del usuario</a>
-      <a class="btn btn-lg btn-block btn-info" href="https://ask.yunohost.org" target="_blank">Preguntas más frecuentes</a>
-      <a class="btn btn-lg btn-block btn-success" href="/whatsyunohost_es">¿ Que es YunoHost ?</a>
-      <a class="btn btn-lg btn-block btn-warning" href="/contribute_es">Cómo contribuir</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="http://news.yunohost.org">últimas noticias</a>
+      <a class="btn btn-lg btn-block btn-primary" href="/whatsyunohost">Acerca de YunoHost</a>
+      <a class="btn btn-lg btn-block btn-info" href="/docs">Documentación</a>
+      <a class="btn btn-lg btn-block btn-success" href="/contribute">Colaborar</a>
+      <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org/" target="_blank">Foro</a>
+      <a class="btn btn-lg btn-block btn-default" href="chat_rooms_en" target="_blank">Salas de chat</a>
+      <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Últimas noticias</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr">Ayuda</a>
     </div>
     <div class="col-md-7 text-right">
-      <h1>Explorar <small>las posibilidad de su servidor, y aprender porque es importante</small></h1>
-      <p><br /><a href="/docs_es">Leer la documentación</a></p>
+      <h1>Explore <small>lo que puede hacer con un servidor y la razón de su importancia</small></h1>
+      <p><br /><a href="/docs">Lea la documentación</a></p>
     </div>
   </div>
 
   <hr />
 
   <div class="text-center">
-    <h1>¡ Hey ! Somos humanos<br /><small> Si tiene alguna pregunta, un problema, o simplemente estás interesado, ven decir "¡ Hola !" sobre nuestro salón de discusión clic en el botón abajo &nbsp;<span class="glyphicon glyphicon-share-alt"></span> </small></h1>
+    <h1>¡Oye! ¡Somos humanos!<br /><small> Si tiene alguna pregunta, problema o es simplemente un fan, deje un mensaje en nuestra sala de chat pulsando en el botón inferior &nbsp;<span class="glyphicon glyphicon-share-alt"></span> </small></h1>
 
-  <p class="liberapay">
-   <a href="https://liberapay.com/YunoHost" target="_blank"><img src="/images/liberapay_logo.svg" alt="Donation button" title="Liberapay" /></a>
-   </p>
+   <p class="liberapay">
+     <a href="https://liberapay.com/YunoHost" target="_blank"><img src="/images/liberapay_logo.svg" alt="Botón de donación" title="Liberapay" /></a>
+    </p>
 
   </div>
 
@@ -144,30 +144,5 @@
         scrollTop: jQuery(window).height() + 80
       }, 500);
     });
-    $(".actions").css('opacity', 0);
-    jQuery.ajaxSetup({cache: false});
-    jQuery.getScript('https://'+ location.host +'/mini/javascripts/mini.js', function() {
-        HOST_BOSH = 'https://'+ location.host +'/http-bind/';
-        JappixMini.launch({
-            connection: {
-              domain: 'anonymous.yunohost.org'
-            },
 
-            application: {
-              network: {
-                autoconnect: false
-              },
-
-              interface: {
-                showpane: true,
-                animate: true
-              },
-
-              groupchat: {
-                open: ['support@conference.yunohost.org'],
-                suggest: ['dev@conference.yunohost.org']
-              }
-            }
-        });
-    });
-</script>
+</script> 

From 63f63cd38f6f7c509f2e14191a4271a4fdae5102 Mon Sep 17 00:00:00 2001
From: Ashwin Vishnu <9155111+ashwinvis@users.noreply.github.com>
Date: Wed, 18 Sep 2019 19:44:01 +0200
Subject: [PATCH 124/360] Mention Nitter on wishlist

- Repo: https://github.com/zedeus/nitter
- Demo: https://nitter.net/
---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 214478a8..a947eb62 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -119,6 +119,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From fe6b14b01cef5f3557de2014394aaebbc8a0e5e2 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 13:53:59 +0000
Subject: [PATCH 125/360] Use -a flag when copying data dir, so we can preserve
 modification time, ownership...

---
 app_nextcloud_fr.md | 27 ++-------------------------
 1 file changed, 2 insertions(+), 25 deletions(-)

diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index 31aaf3a5..d61b1bb8 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -50,8 +50,8 @@ chmod 775 -R /media/stockage/nextcloud_data
 Migrez vos données vers le nouveau disque. Pour ce faire *(soyez patient, cela peut être long)* :
 
 ```bash
-Cas A : cp -ir /home/yunohost.app/nextcloud /media/stockage
-Cas B : cp -ir /home/yunohost.app/nextcloud /media/stockage/nextcloud_data
+Cas A : cp -ia /home/yunohost.app/nextcloud /media/stockage
+Cas B : cp -ia /home/yunohost.app/nextcloud /media/stockage/nextcloud_data
 ```
 
 L'option `i` permet de vous demander quoi faire en cas de conflit de fichier, notamment si vous écrasez un ancien dossier de données Owncloud ou Nextcloud.
@@ -141,26 +141,3 @@ Puis ajouter dans ce fichier le texte suivent :
 Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
 
 A présent, le problème est corrigé.
-
-# Nextcloud et Cloudflare
-
-Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens propose de créer une règle ayant pour effet de désactivé tous les options relié à la sécurité et à la vitesse de Cloudflare pour l'url pointant sur votre instance Nextcloud. Malgré que cela fonctionne, ce n'est pas la solution optimial. Je vous propose, certes de créé une règle pour l'url pointant sur votre instance Nextcloud mais de désactivé seulement 2 options. Voici donc comment:
-
-## Cloudflare Page Rules
-
-Dans le panneau de controle de Cloudflare choisissez votre domaine et trouver Page Rules
-l'url dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
-
-### Ajouter une règle
-
-La règle à ajouter doit s'appliquer pour l'url de votre instance Nextcloud soit:
-
-- `https://nextcloud.domain.tld/*` si vous utilisez un sous domain
-- `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire
-
-Les options à désactiver (Off) sont :
-
-- Rocket Loader
-- Email Obfuscation
-
-Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est joué.
\ No newline at end of file

From 44593334a5a335bea1e9f86306b326a85655634e Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 13:54:26 +0000
Subject: [PATCH 126/360] added Samourai Dojo Bitcoin Coinjoin Node

---
 apps_wishlist.md | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a947eb62..fc5a8e0d 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,7 +15,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -53,7 +52,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -115,11 +113,9 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)
@@ -156,6 +152,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Restya](http://restya.com)
 - [Retroshare](http://retroshare.net/downloads.html)
 - [SABnzbd](https://sabnzbd.org)
+- [Samourai Dojo, Bitcoin coinjoin node] (https://github.com/Samourai-Wallet/samourai-dojo)
 - [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
 - [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
 - [Scribbleton](https://scribbleton.com)

From 7cae46d46876598667a5ea68ce071856583b8815 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 13:54:36 +0000
Subject: [PATCH 127/360] fixed typo (doesn&#39;t/don&#39;t)

---
 user_interface.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/user_interface.md b/user_interface.md
index 1980f8d8..ded37e11 100644
--- a/user_interface.md
+++ b/user_interface.md
@@ -16,7 +16,7 @@ You can create a redirection of a domain name to IP address of your server by mo
 your.server.ip.address domain.tld
 ```
 
-By replacing `your.server.ip.address` for instance by `192.168.1.05` and `domain.tld` by your domain name or by one you can choose if you doesn’t own one.
+By replacing `your.server.ip.address` for instance by `192.168.1.05` and `domain.tld` by your domain name or by one you can choose if you don’t own one.
 
 ### Software
 

From c600a5dc705b7dcc5aece8f104d5bac2d59ca61e Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 23 Sep 2019 16:06:51 +0200
Subject: [PATCH 128/360] Fix simone's mess

---
 app_nextcloud_fr.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index d61b1bb8..b7a998d5 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -141,3 +141,20 @@ Puis ajouter dans ce fichier le texte suivent :
 Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
 
 A présent, le problème est corrigé.
+
+# Nextcloud et Cloudflare
+
+Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens propose de créer une règle ayant pour effet de désactivé tous les options relié à la sécurité et à la vitesse de Cloudflare pour l'url pointant sur votre instance Nextcloud. Malgré que cela fonctionne, ce n'est pas la solution optimial. Je vous propose, certes de créé une règle pour l'url pointant sur votre instance Nextcloud mais de désactivé seulement 2 options. Voici donc comment:
+
+## Cloudflare Page Rules
+
+Dans le panneau de controle de Cloudflare choisissez votre domaine et trouver Page Rules
+l'url dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
+### Ajouter une règle
+La règle à ajouter doit s'appliquer pour l'url de votre instance Nextcloud soit:
+- `https://nextcloud.domain.tld/*` si vous utilisez un sous domain
+- `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire
+Les options à désactiver (Off) sont :
+- Rocket Loader
+- Email Obfuscation
+Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est joué.

From 2339000b3d11197b2edcb310e51df5fa39009468 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 23 Sep 2019 16:07:41 +0200
Subject: [PATCH 129/360] Propagate changes on english version

---
 app_nextcloud.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/app_nextcloud.md b/app_nextcloud.md
index dca14eb6..2d9b04ae 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -50,8 +50,8 @@ chmod 775 -R /media/storage/nextcloud_data
 Migrate your data to the new disk. To do this *(be patient, it can take a long time)*:
 
 ```bash
-Case A: cp -ir /home/yunohost.app/nextcloud /media/storage
-Case B: cp -ir /home/yunohost.app/nextcloud /media/storage/nextcloud_data
+Case A: cp -ia /home/yunohost.app/nextcloud /media/storage
+Case B: cp -ia /home/yunohost.app/nextcloud /media/storage/nextcloud_data
 ```
 
 The `i` option allows you to ask yourself what to do if there is a file conflict, especially if you overwrite an old Owncloud or Nextcloud data folder.
@@ -163,4 +163,4 @@ The options to disable (Off) are:
 - Rocket Loader
 - Email Obfuscation
 
-Save and clean your caches (Cloudflare, browser,...) and that's it.
\ No newline at end of file
+Save and clean your caches (Cloudflare, browser,...) and that's it.

From 9941d2b4c5a0fb503240c57aecfcf74e683854dd Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 23 Sep 2019 16:20:34 +0200
Subject: [PATCH 130/360] Remove userdoc page for now ... It's too empty and
 the few pages listed are not directed toward end-users...

---
 docs.md              |  9 ++-------
 docs_ar.md           |  7 +------
 docs_de.md           |  9 ++-------
 docs_fr.md           |  9 ++-------
 docs_it.md           |  9 ++-------
 index_es.md          |  3 ---
 user_interface.md    | 23 -----------------------
 user_interface_fr.md | 23 -----------------------
 userdoc.md           |  7 -------
 userdoc_ar.md        |  7 -------
 userdoc_fr.md        |  7 -------
 11 files changed, 9 insertions(+), 104 deletions(-)
 delete mode 100644 user_interface.md
 delete mode 100644 user_interface_fr.md
 delete mode 100644 userdoc.md
 delete mode 100644 userdoc_ar.md
 delete mode 100644 userdoc_fr.md

diff --git a/docs.md b/docs.md
index b11d3779..9518991a 100644
--- a/docs.md
+++ b/docs.md
@@ -1,22 +1,17 @@
 #Documentation
 
 <p class="lead">
-YunoHost's documentation has 3 different sections:
+YunoHost's documentation has 2 different sections:
 </p>
 
 <div class="row text-center">
 
-<div class="col col-md-4 col-md-offset-1">
-<a class="btn btn-success btn-lg" href="/userdoc"><span class="glyphicon glyphicon-user"></span> User guide</a>
-<p><small class="text-muted">Regarding the daily usage of your server and some client configuration "HOW-TOs"</small></p>
-</div>
-
 <div class="col col-md-4 col-md-offset-1">
 <a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Administrator guide</a>
 <p><small class="text-muted">Including installation, server management and application management</small></p>
 </div>
 
-<div class="col col-md-5 col-md-offset-3">
+<div class="col col-md-4 col-md-offset-1">
 <a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Contributor guide</a>
 <p><small class="text-muted">Which contains everything you have to know about us and the way we work</small></p>
 </div>
diff --git a/docs_ar.md b/docs_ar.md
index df44211b..59be5db6 100644
--- a/docs_ar.md
+++ b/docs_ar.md
@@ -6,17 +6,12 @@
 
 <div class="row text-center">
 
-<div dir="rtl" class="col col-md-4 col-md-offset-1">
-<a class="btn btn-success btn-lg" href="/userdoc_fr"><span class="glyphicon glyphicon-user"></span> دليل المستخدم</a>
-<p><small class="text-muted">كل ما يخص طريقة استخدام السيرفر يوميًا</small></p>
-</div>
-
 <div dir="rtl" class="col col-md-4 col-md-offset-1">
 <a class="btn btn-primary btn-lg" href="/admindoc_fr"><span class="glyphicon glyphicon-lock"></span> دليل المدير</a>
 <p><small class="text-muted">يتطرق إلى طريقة التنصيب و إدارة السيرفر و التطبيقات</small></p>
 </div>
 
-<div dir="rtl" class="col col-md-5 col-md-offset-3">
+<div dir="rtl" class="col col-md-4 col-md-offset-1">
 <a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> دليل المساهم</a>
 <p><small class="text-muted">يحتوي على كافة المعلومات التي تخصنا و أسلوب عملنا و مساهمتنا</small></p>
 </div>
diff --git a/docs_de.md b/docs_de.md
index 470c9945..e3a73f0d 100644
--- a/docs_de.md
+++ b/docs_de.md
@@ -1,22 +1,17 @@
 #Documentation
 
 <p class="lead">
-Die YunoHost Dokumentation ist in 3 Bereiche aufgeteilt:
+Die YunoHost Dokumentation ist in 2 Bereiche aufgeteilt:
 </p>
 
 <div class="row text-center">
 
-<div class="col col-md-4 col-md-offset-1">
-<a class="btn btn-success btn-lg" href="/userdoc"><span class="glyphicon glyphicon-user"></span> Benutzerhandbuch</a>
-<p><small class="text-muted">Über die tägliche Nutzung des Servers und Anleitungen zur Konfiguration des Clients.</small></p>
-</div>
-
 <div class="col col-md-4 col-md-offset-1">
 <a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Handbuch für Administratoren</a>
 <p><small class="text-muted">Befasst sich mit den Installationsschritten und der Verwaltung von Server und Apps.</small></p>
 </div>
 
-<div class="col col-md-5 col-md-offset-3">
+<div class="col col-md-4 col-md-offset-1">
 <a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Handbuch für Mitwirkende</a>
 <p><small class="text-muted">Alles, was du über uns und unsere Art zu arbeiten wissen musst.</small></p>
 </div>
diff --git a/docs_fr.md b/docs_fr.md
index 18864ed5..7469efce 100644
--- a/docs_fr.md
+++ b/docs_fr.md
@@ -1,22 +1,17 @@
 #Documentation
 
 <p class="lead">
-La documentation de YunoHost s’articule autour de trois sections :
+La documentation de YunoHost s’articule autour de deux sections :
 </p>
 
 <div class="row text-center">
 
-<div class="col col-md-4 col-md-offset-1">
-<a class="btn btn-success btn-lg" href="/userdoc_fr"><span class="glyphicon glyphicon-user"></span> Guide de l’utilisateur</a>
-<p><small class="text-muted">Concernant l’usage du serveur au quotidien</small></p>
-</div>
-
 <div class="col col-md-4 col-md-offset-1">
 <a class="btn btn-primary btn-lg" href="/admindoc_fr"><span class="glyphicon glyphicon-lock"></span> Guide de l’administrateur</a>
 <p><small class="text-muted">Incluant l’installation, la gestion du serveur et des applications</small></p>
 </div>
 
-<div class="col col-md-5 col-md-offset-3">
+<div class="col col-md-4 col-md-offset-1">
 <a class="btn btn-danger btn-lg" href="/contributordoc_fr"><span class="glyphicon glyphicon-heart"></span> Guide du contributeur</a>
 <p><small class="text-muted">Qui contient tout ce que vous devez savoir à propos de nous et de notre manière de travailler</small></p>
 </div>
diff --git a/docs_it.md b/docs_it.md
index 85afd4ba..f7cdcd9a 100644
--- a/docs_it.md
+++ b/docs_it.md
@@ -1,22 +1,17 @@
 #Documentazione
 
 <p class="lead">
-La documentazione di YunoHost ha 3 differenti sezioni:
+La documentazione di YunoHost ha 2 differenti sezioni:
 </p>
 
 <div class="row text-center">
 
-<div class="col col-md-4 col-md-offset-1">
-<a class="btn btn-success btn-lg" href="/userdoc"><span class="glyphicon glyphicon-user"></span> Guida utente</a>
-<p><small class="text-muted">Sull'utilizzo giornaliero del tuo server e con alcune configurazioni per client "HOW-TOs"</small></p>
-</div>
-
 <div class="col col-md-4 col-md-offset-1">
 <a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Guida di amministrazione</a>
 <p><small class="text-muted">Include l'installazione, la gestione del server e delle applicazioni</small></p>
 </div>
 
-<div class="col col-md-5 col-md-offset-3">
+<div class="col col-md-4 col-md-offset-1">
 <a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Guida del contributore</a>
 <p><small class="text-muted">Contiene tutto quello che devi sapere su di noi e su come lavoriamo</small></p>
 </div>
diff --git a/index_es.md b/index_es.md
index 1b066c15..bc2f2b50 100644
--- a/index_es.md
+++ b/index_es.md
@@ -88,11 +88,8 @@
 
   <div class="row cf">
     <div class="col-md-4 button-list">
-      <a class="btn btn-lg btn-block btn-primary" href="/userdoc_es">Guía del usuario</a>
-      <a class="btn btn-lg btn-block btn-info" href="https://ask.yunohost.org" target="_blank">Preguntas más frecuentes</a>
       <a class="btn btn-lg btn-block btn-success" href="/whatsyunohost_es">¿ Que es YunoHost ?</a>
       <a class="btn btn-lg btn-block btn-warning" href="/contribute_es">Cómo contribuir</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="http://news.yunohost.org">últimas noticias</a>
     </div>
     <div class="col-md-7 text-right">
       <h1>Explorar <small>las posibilidad de su servidor, y aprender porque es importante</small></h1>
diff --git a/user_interface.md b/user_interface.md
deleted file mode 100644
index 1980f8d8..00000000
--- a/user_interface.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# User interface
-
-The user interface is a portal that allows the loged-in user to see all the applications he is allowed to use, and 
-access them. This interface is also where the user can set his parameters (change password, define email alias and 
-redirections).
-
-<img src="/images/home_panel.jpg" width=800>
-
-### Access problem
-
-Access to user interface can only be done by using a domain name. You can’t access to it by using the local IP address of your server like that: https://your.server.ip.address/yunohost/sso/
-
-You can create a redirection of a domain name to IP address of your server by modifing `/etc/hosts` and by adding that line:
-
-```bash
-your.server.ip.address domain.tld
-```
-
-By replacing `your.server.ip.address` for instance by `192.168.1.05` and `domain.tld` by your domain name or by one you can choose if you doesn’t own one.
-
-### Software
-
-User interface is based on that software: https://github.com/Kloadut/ssowat
diff --git a/user_interface_fr.md b/user_interface_fr.md
deleted file mode 100644
index e1f9ab84..00000000
--- a/user_interface_fr.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Interface utilisateur
-
-L'interface utilisateur est un portail permettant à un utilisateur connecté de voir toutes les applications qu'il peut
-utiliser, et d'y accéder. Cette interface permet aussi à l'utilisateur de gérer ses paramètres (changer de mot de passe, 
-définir ses alias et redirections courriel).
-
-<img src="/images/home_panel.jpg" width=800>
-
-### Problème d’accès
-
-L’accès à la partie utilisateur peut se faire uniquement avec un nom de domaine. Vous ne pouvez **pas** y accéder en utilisant l’adresse IP locale de votre serveur comme suit : https://adresse.ip.du.server/yunohost/sso
-
-Cependant, sur votre ordinateur, vous pouvez créer une redirection d’un nom de domaine vers l’adresse IP du serveur en modifiant le fichier `/etc/hosts` et en ajoutant cette ligne :
-
-```bash
-adresse.ip.du.server domaine.tld
-```
-
-en remplaçant `adresse.ip.du.server` par exemple par `192.168.1.5` et `domaine.tld` par votre nom de domaine ou par un [nom de domaine que vous pouvez choisir](/dns) si vous n’en avez pas. /!\ Cela ne fonctionne que localement /!\
-
-### Logiciel
-
-L’interface utilisateur est basé sur le logiciel suivant : https://github.com/Kloadut/ssowat
diff --git a/userdoc.md b/userdoc.md
deleted file mode 100644
index 06e3826b..00000000
--- a/userdoc.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# User documentation
-
-* [What is YunoHost](/whatsyunohost)
-* [User interface](user_interface)
-* [Configure an email client](/email)
-* [Instant messaging usage](/XMPP)
-* [Applications](/apps)
diff --git a/userdoc_ar.md b/userdoc_ar.md
deleted file mode 100644
index 4eac43e3..00000000
--- a/userdoc_ar.md
+++ /dev/null
@@ -1,7 +0,0 @@
-<div dir="RTL" align="right" style="direction:rtl;text-align:right;">
-# دليل مستخدمي واي يونوهوست YunoHost
-
-* [واجهة المستخدم](user_interface)
-* [البريد الإلكتروني](/email_fr)
-* [المحادثة الفورية و شبكات التواصل الإجتماعي XMPP](/XMPP_fr)
-* [التطبيقات](/apps_ar)
\ No newline at end of file
diff --git a/userdoc_fr.md b/userdoc_fr.md
deleted file mode 100644
index 265bcc97..00000000
--- a/userdoc_fr.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Documentation pour les utilisateurs YunoHost
-
-* [Qu'est-ce que YunoHost](/whatsyunohost_fr)
-* [L’interface utilisateur](user_interface)
-* [La messagerie électronique (email)](/email_fr)
-* [La messagerie instantanée et les réseaux sociaux XMPP](/XMPP_fr)
-* [Les applications](/apps_fr)

From aaa17118507fdef36ec80db0953443cdffb31e00 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 14:25:34 +0000
Subject: [PATCH 131/360] =?UTF-8?q?Correction=20d&#39;une=20faute=20:=20de?=
 =?UTF-8?q?=20->=20ne=20=20et=20j&#39;ai=20enlev=C3=A9=20le=20s=20a=20la?=
 =?UTF-8?q?=20fin=20de=20correspond,=20sinon=20c&#39;est=20une=20faute=20d?=
 =?UTF-8?q?e=20grammaire?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 images_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/images_fr.md b/images_fr.md
index 4b03c4f9..97b8cf2e 100644
--- a/images_fr.md
+++ b/images_fr.md
@@ -6,7 +6,7 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
 <br/>
 </span>
 
-N.B. : Même si l'image de corresponds pas à la dernière version de YunoHost, vous pouvez tout de même l'utiliser puis faire une mise à jour du système après l'installation !
+N.B. : Même si l'image ne correspond pas à la dernière version de YunoHost, vous pouvez tout de même l'utiliser puis faire une mise à jour du système après l'installation !
 
 <div id="cards-list">
 </div>

From 5163e917669561a82e854df816ecb66c8c172d25 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 14:28:29 +0000
Subject: [PATCH 132/360] added ProjeQtOr

---
 apps_wishlist.md | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a947eb62..cd39f12b 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,7 +15,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -53,7 +52,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -115,11 +113,9 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)
@@ -143,6 +139,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Privoxy](http://www.privoxy.org)
 - [ProcessMaker](http://www.processmaker.com)
 - [ProtonMail’s WebClient](https://github.com/ProtonMail/WebClient)
+- [ProjeQtOr](https://www.projeqtor.org/en/product-en/downloads)
 - [PyLoad](https://github.com/pyload/pyload)
 - [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
 - [Pump.io](http://pump.io)

From 014a5e276381455cb4bc77ab55316452503f592a Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 14:30:56 +0000
Subject: [PATCH 133/360] Added SpamGourmet to the list. SpamGourmet is an
 e-mail redirection / disposable e-mail service.

---
 apps_wishlist.md | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a947eb62..bb49d2d9 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,7 +15,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -53,7 +52,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -115,11 +113,9 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)
@@ -165,6 +161,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Simone](https://github.com/Kloadut/Simone)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
 - [Sonarr](https://sonarr.tv)
+- [SpamGourmet](https://sourceforge.net/projects/spamgourmet/)
 - [Stackedit](https://stackedit.io)
 - [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.
 - [Streama](https://github.com/dularion/streama)

From 267abde888c316ac47795513b381da4e67210bf4 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 14:32:25 +0000
Subject: [PATCH 134/360] Sous debian 10 pas de paquet ni de repo dispo.
 Installation via fichier deb

---
 packaging_apps_virtualbox_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/packaging_apps_virtualbox_fr.md b/packaging_apps_virtualbox_fr.md
index aa07285e..68493565 100644
--- a/packaging_apps_virtualbox_fr.md
+++ b/packaging_apps_virtualbox_fr.md
@@ -6,7 +6,7 @@ Cette page de documentation va vous expliquer comment mettre en place un serveur
 
 Il y a principalement deux raisons pour préférer l'usage d'un serveur virtuel plutôt que votre propre serveur :
 
-- Vous pouvez torturer à loisir un serveur virtuel sans courir le risque de le casser, puisque vous pourrez toujours restaurer un état précédent. Alors qu'il serait dommage de casser son propre serveur !
+- Vous pouvez torturez à loisir un serveur virtuel sans courir le risque de le casser, puisque vous pourrez toujours restaurer un état précédent. Alors qu'il serait dommage de casser son propre serveur !
 - Un serveur virtuel sera restauré avant de travailler dessus, pour garder en permanence un système sans résidus d'une précédente installation. Cela permet de se rapprocher au plus près d'une première installation par un utilisateur.
 
 Nous parlerons ici de VirtualBox, pour son approche graphique facile à utiliser. Si vous préférez une interface en ligne de commande pour la gestion de la machine virtuelle, tournez-vous de préférence vers [ynh-dev](/dev_fr).
@@ -14,7 +14,7 @@ Nous parlerons ici de VirtualBox, pour son approche graphique facile à utiliser
 ## Installer VirtualBox
 
 Depuis un système GNU Linux, installer simplement le paquet `virtualbox-qt`. 
-Depuis un système Windows ou macOS, il faudra se référer à la page de [téléchargement de VirtualBox](https://www.virtualbox.org/wiki/Downloads) pour récupérer le fichier d'installation adéquat.
+Depuis un système Windows ou macOS, il faudra se référer à la page de [téléchargement de VirtualBox](https://www.virtualbox.org/wiki/Downloads) pour récupérer le fichier d'installation adéquat. Le paquet virtualbox est déprécié depuis debian 9, un fichier d'installation .deb est disponible sur la même page.
 
 Quel que soit votre système, il ne devrait pas être nécessaire d'installer l'extension pack ou les additions invités.
 

From 44cdcef88e03ce811c8dc5239c88afd9445b8252 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 23 Sep 2019 16:33:10 +0200
Subject: [PATCH 135/360] Fix simone's mess

---
 packaging_apps_virtualbox_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_virtualbox_fr.md b/packaging_apps_virtualbox_fr.md
index 68493565..1aadff27 100644
--- a/packaging_apps_virtualbox_fr.md
+++ b/packaging_apps_virtualbox_fr.md
@@ -6,7 +6,7 @@ Cette page de documentation va vous expliquer comment mettre en place un serveur
 
 Il y a principalement deux raisons pour préférer l'usage d'un serveur virtuel plutôt que votre propre serveur :
 
-- Vous pouvez torturez à loisir un serveur virtuel sans courir le risque de le casser, puisque vous pourrez toujours restaurer un état précédent. Alors qu'il serait dommage de casser son propre serveur !
+- Vous pouvez torturer à loisir un serveur virtuel sans courir le risque de le casser, puisque vous pourrez toujours restaurer un état précédent. Alors qu'il serait dommage de casser son propre serveur !
 - Un serveur virtuel sera restauré avant de travailler dessus, pour garder en permanence un système sans résidus d'une précédente installation. Cela permet de se rapprocher au plus près d'une première installation par un utilisateur.
 
 Nous parlerons ici de VirtualBox, pour son approche graphique facile à utiliser. Si vous préférez une interface en ligne de commande pour la gestion de la machine virtuelle, tournez-vous de préférence vers [ynh-dev](/dev_fr).

From b2cb0d08a4aa87763c560bef16576fbc6e1bfa1f Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 14:33:35 +0000
Subject: [PATCH 136/360] Anki is a powerful Open Source flashcard application

---
 apps_wishlist.md | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a947eb62..91f46bb3 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,7 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/tsudoko/anki-sync-server)
+- [Anki](https://apps.ankiweb.net/index.html) is a powerful Open Source flashcard application, which helps you quickly and easily memorize facts over the long term utilizing a spaced repetition algorithm. (https://github.com/dsnopek/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -53,7 +53,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -115,11 +114,9 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From 742219ef4fcd01a56bb5cee4421780390d4fe964 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 14:34:09 +0000
Subject: [PATCH 137/360] =?UTF-8?q?added=20MagicMirror=C2=B2=20to=20wishli?=
 =?UTF-8?q?st=20This=20app=20as=20main=20task=20and=20other=20services,=20?=
 =?UTF-8?q?like=20nextcloud,=20in=20the=20background=20would=20free=20me?=
 =?UTF-8?q?=20one=20extra=20raspberry!?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 apps_wishlist.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a947eb62..282a910a 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,7 +15,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -105,6 +104,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [LocomotiveCMS](https://github.com/locomotivecms/engine)
 - [Logstalgia](http://logstalgia.io)
 - [Loomio](https://www.loomio.org)
+- [MagicMirror²](https://github.com/MichMich/MagicMirror)
 - [MaidSafe](http://maidsafe.net)
 - [Mailpile](https://www.mailpile.is)
 - [Mautic](https://github.com/mautic/mautic)
@@ -119,7 +119,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From f85ce145b3fced0764cd69ce72b6d459f5fe367a Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 14:34:19 +0000
Subject: [PATCH 138/360] xibo - a FLOSS digital signage solution

---
 apps_wishlist.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a947eb62..7e3a1a69 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -119,7 +119,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)
@@ -190,6 +189,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [WebTorrent](https://github.com/feross/webtorrent)
 - [Wisemapping](http://www.wisemapping.com)
 - [Wireguard](https://www.wireguard.com/)
+- [Xibo](https://github.com/xibosignage)
 - [Xonotic](http://xonotic.org)
 - [YesWiki](https://yeswiki.net)
 - [Zammad](https://github.com/zammad/zammad)

From 0e318f920bd6bf3331e34705381a11bbf3b8f2f4 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 14:35:14 +0000
Subject: [PATCH 139/360] Added Mailtrain

---
 apps_wishlist.md | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a947eb62..b26c970c 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,7 +15,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -53,7 +52,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
+- [Flarum](https://flarum.org/)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -107,6 +106,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Loomio](https://www.loomio.org)
 - [MaidSafe](http://maidsafe.net)
 - [Mailpile](https://www.mailpile.is)
+- [Mailtrain](https://mailtrain.org/)
 - [Mautic](https://github.com/mautic/mautic)
 - [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
 - [microblog.pub](https://microblog.pub)
@@ -119,7 +119,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From ccf5cde4fb7de73d5f298d94fabb895b7b3a2293 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 23 Sep 2019 16:07:16 +0000
Subject: [PATCH 140/360] I translated the Administrator Documentation
 Startpage to German.

---
 admindoc_de.md | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 admindoc_de.md

diff --git a/admindoc_de.md b/admindoc_de.md
new file mode 100644
index 00000000..f9c0b256
--- /dev/null
+++ b/admindoc_de.md
@@ -0,0 +1,45 @@
+# Administrator-Dokumentation
+
+* Self-Hosting entdecken
+    * [Was ist Self-Hosting](/selfhosting)
+    * [Was ist YunoHost](/whatsyunohost)
+    * [Probiere YunoHost aus](/try)
+    * [Wie du selber hostest](howtohostyourself)
+        * [Wähle die Hardware](/hardware)
+        * [Über die Freundlichkeit von Internet-Service-Providern](/isp)
+* [YunoHost installieren](/install)
+    * [Auf einem normalen Computer](/install_iso)
+    * [Auf einem eigenen oder virtuellen Server](/install_on_vps)
+    * [Auf einem Raspberry Pi](/install_on_raspberry)
+    * [Auf einem ARM-Board](/install_on_arm_board)
+    * [Auf Debian](/install_on_debian)
+    * [Auf VirtualBox](/install_on_virtualbox)
+* Setup abschließen
+    * [Nach der Installation](/postinstall)
+    * [Port-Forwarding konfigurieren](/isp_box_config)
+    * [DNS-Einträge konfigurieren](/dns_config)
+    * [SSL-Zertifikate installieren](/certificate)
+    * [Diagnostiziere deine Installation](/diagnostic)
+* YunoHost kennenlernen
+    * [Übersicht über YunoHost](/overview)
+    * [Allgemeine Hinweise und Hilfestellungen](/guidelines)
+    * [Web-Administrations-Interface](/admin)
+    * [SSH](/ssh) and [command-line administration](/commandline)
+    * [Benutzer und SSO (Single-Sign-On)](/users)
+    * [Applicationen](/apps_overview)
+    * [Domains, DNS und Zertifikate](/domains)
+    * [E-Mail](/email)
+    * [XMPP](/XMPP)
+    * [Datensicherung](/backup)
+    * [System-Update](/update) and [apps](/app_update)
+    * [Sicherheit](/security)
+* Weiteres
+    * [Noho.st / nohost.me / ynh.fr Domain-Namen](/dns_nohost_me)
+    * [Grafischer Dateiaustausch mit deinem Server](/filezilla)
+    * [Passe das Aussehen vom Yunohost-Portal an](/theming)
+    * [Für externen Speicher hinzu](/external_storage)
+    * [Migriere E-Mails zu Yunohost](/email_migration)
+    * [Verstecke Services mit Tor](/torhiddenservice)
+* [Hinweise zur Fehlersuche](/troubleshooting_guide)
+    * [Entsperren von IPs in fail2ban](/fail2ban)
+    * [Administrator-Passwort ändern](/change_admin_password)

From 7733086d5f8249573ad504456fe06da95e5d30b8 Mon Sep 17 00:00:00 2001
From: Mitra Ardron <mitra@mitra.biz>
Date: Wed, 25 Sep 2019 07:50:51 +1000
Subject: [PATCH 141/360] Fix bad link in Yep 1.6

Note - it also  needs someone to edit as to HOW to subscribe to apps@list.yunohost.org - e.g. a link ? - the usual guesses (like sending 'subscribe ' to apps@list.yunohost.org, or going to http://list.yunohost.org don't work
---
 packaging_apps_guidelines.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_guidelines.md b/packaging_apps_guidelines.md
index 62716fc0..14e4db66 100644
--- a/packaging_apps_guidelines.md
+++ b/packaging_apps_guidelines.md
@@ -153,7 +153,7 @@ This involves monitoring updates to the upstream application, adhering to the ne
 ##### Keeping up-to-date on the evolution of apps packaging | validated | manual | OFFICIAL |
 In order to keep up with the evolution of the packaging format and best practices, it is recommended to:
 * subscribe to the discussion list `apps @ list.yunohost.org`
-* follow [the forum's Apps category](https://forum.yunohost.org/c/apps-packaging)
+* follow [the forum's Apps category](https://forum.yunohost.org/c/contribute-room/apps-packaging)
 
 To follow the evolution of YunoHost more generally:
 * join XMPP dev@conference.yunohost.org ([three days of logs are available](https://im.yunohost.org/logs/dev/))

From 34863b10772de4ed0fe30169a228069a17413f87 Mon Sep 17 00:00:00 2001
From: Mitra Ardron <mitra@mitra.biz>
Date: Wed, 25 Sep 2019 08:32:36 +1000
Subject: [PATCH 142/360] Removed pointer to both mailing list (Alex said its
 not valid)

---
 packaging_apps_guidelines.md | 2 --
 1 file changed, 2 deletions(-)

diff --git a/packaging_apps_guidelines.md b/packaging_apps_guidelines.md
index 14e4db66..b9607d37 100644
--- a/packaging_apps_guidelines.md
+++ b/packaging_apps_guidelines.md
@@ -152,13 +152,11 @@ This involves monitoring updates to the upstream application, adhering to the ne
 #### YEP 1.6
 ##### Keeping up-to-date on the evolution of apps packaging | validated | manual | OFFICIAL |
 In order to keep up with the evolution of the packaging format and best practices, it is recommended to:
-* subscribe to the discussion list `apps @ list.yunohost.org`
 * follow [the forum's Apps category](https://forum.yunohost.org/c/contribute-room/apps-packaging)
 
 To follow the evolution of YunoHost more generally:
 * join XMPP dev@conference.yunohost.org ([three days of logs are available](https://im.yunohost.org/logs/dev/))
 * follow [Annoucement category of the forum](https://forum.yunohost.org/c/announcement)
-* follow discussions on contrib@list.yunohost.org
 
 #### YEP 1.7
 ##### Add the app to the [YunoHost-Apps Organization](https://github.com/YunoHost-Apps) | validated | manual | OFFICIAL |

From 64a80f1bafab6169eb5667b2ec5ac5db6575a2d2 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 27 Sep 2019 15:31:58 +0200
Subject: [PATCH 143/360] Propagate changes to the french version

---
 packaging_apps_guidelines_fr.md | 2 --
 1 file changed, 2 deletions(-)

diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md
index 2942cf81..271edfb6 100644
--- a/packaging_apps_guidelines_fr.md
+++ b/packaging_apps_guidelines_fr.md
@@ -153,13 +153,11 @@ Cela implique de surveiller les mises à jour de l'application upstream, de resp
 #### YEP 1.6
 ##### Se tenir informé sur l'évolution du packaging d'apps  | validé | manuel | OFFICIAL |
 Afin de suivre l'évolution du format de packaging ainsi que des bonnes pratiques, il est recommandé de:
-* s'inscrire à la liste de discussion `apps@list.yunohost.org`
 * suivre [la catégorie Apps packaging du forum](https://forum.yunohost.org/c/apps-packaging)
 
 Pour suivre l'évolution de YunoHost de façon plus générale :
 * rejoindre le salon XMPP dev@conference.yunohost.org ([trois jours de logs sont disponibles](https://im.yunohost.org/logs/dev/))
 * suivre [la catégorie Annoucement du forum](https://forum.yunohost.org/c/announcement)
-* suivre les discussions sur contrib@list.yunohost.org
 
 #### YEP 1.7
 ##### Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps)  | validé | manuel | OFFICIAL |

From b1020ee5437f7d2c7909b25731593c9389a11260 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 27 Sep 2019 15:32:53 +0200
Subject: [PATCH 144/360] Also update the link as for the english version

---
 packaging_apps_guidelines_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md
index 271edfb6..4048f777 100644
--- a/packaging_apps_guidelines_fr.md
+++ b/packaging_apps_guidelines_fr.md
@@ -153,7 +153,7 @@ Cela implique de surveiller les mises à jour de l'application upstream, de resp
 #### YEP 1.6
 ##### Se tenir informé sur l'évolution du packaging d'apps  | validé | manuel | OFFICIAL |
 Afin de suivre l'évolution du format de packaging ainsi que des bonnes pratiques, il est recommandé de:
-* suivre [la catégorie Apps packaging du forum](https://forum.yunohost.org/c/apps-packaging)
+* suivre [la catégorie Apps packaging du forum](https://forum.yunohost.org/c/contribute-room/apps-packaging)
 
 Pour suivre l'évolution de YunoHost de façon plus générale :
 * rejoindre le salon XMPP dev@conference.yunohost.org ([trois jours de logs sont disponibles](https://im.yunohost.org/logs/dev/))

From 01a32a5fae8945e168efadd0516602f04a2e9012 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 28 Sep 2019 03:12:17 +0000
Subject: [PATCH 145/360] Changed the link so it points to the English, not
 French version

---
 packaging_apps.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps.md b/packaging_apps.md
index 8e04f0ed..dee9331a 100644
--- a/packaging_apps.md
+++ b/packaging_apps.md
@@ -104,7 +104,7 @@ Here is a list of best practices for application install scripts:
 * scripts should be tested on Debian Stretch 32 bits, 64 bits and ARM architectures;
 * backup and restore scripts should be present and functional.
 
-To be define the quality of a package, it'll obtained a [level](packaging_apps_levels_fr), determined according to somes criteria of installation and according to respect to [package guidelines](packaging_apps_guidelines_fr).
+To be define the quality of a package, it'll obtained a [level](packaging_apps_levels_fr), determined according to somes criteria of installation and according to respect to [package guidelines](packaging_apps_guidelines).
 
 ### Package script checker
 <a class="btn btn-lg btn-default" href="https://github.com/YunoHost/package_checker">Package checker</a>

From 67ffe2573ca15d102412c64890dc1a775188f089 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 28 Sep 2019 03:12:38 +0000
Subject: [PATCH 146/360] Added a pointer to packaging guidelines (which they
 haven&#39;t encountered yet if working sequentially through
 packaging_apps_en) for rules for id

---
 packaging_apps_manifest.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/packaging_apps_manifest.md b/packaging_apps_manifest.md
index e8c713af..d757bdba 100644
--- a/packaging_apps_manifest.md
+++ b/packaging_apps_manifest.md
@@ -53,9 +53,9 @@ The `manifest.json` file defines the app's constants, a bunch of values that Yun
 }
 ```
 
-* **name**: app name. It does not have to be unique, but it should be, since it is the name shown to all the YunoHost administrators in the app list.
+* **name**: app name. It does not have to be unique, but it should be, since it is the name shown to all the YunoHost administrators in the app list. Any characters are allowed.
 
-* **id**: ID of the app. You have to ensure that this ID is unique before submit an app integration request.
+* **id**: ID of the app. You have to ensure that this ID is unique before submit an app integration request. See [packaging_apps_guidelines.md#yep-11](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines.md#yep-11) for valid rules.
 
 - **packaging_format**: package version. Actual version is **1**. This key has been set up to make independant packaging evolution versions from YunoHost versions evolution.
 

From 96cbef5e78fa878665042725062444ae5bc3dd75 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 28 Sep 2019 03:12:54 +0000
Subject: [PATCH 147/360] Make it clearer that this image does NOT work on RPI4
 as many people are making the wrong assumption
 https://forum.yunohost.org/t/rpi-4-fresh-install/

---
 install_on_raspberry.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install_on_raspberry.md b/install_on_raspberry.md
index 9022f3e6..a6f0090f 100644
--- a/install_on_raspberry.md
+++ b/install_on_raspberry.md
@@ -13,7 +13,7 @@ Before setting up a server at home, it is recommended that you know the [possibl
 
 ## Pre-requisites
 
-- A Raspberry Pi 0, 1, 2 or 3 ;
+- A Raspberry Pi 0, 1, 2 or 3 (does not currently work on RPI 4);
 - An microSD card: **8GB** capacity (at least) and **Class 10** speed rate are highly recommended (like the [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
 - A power supply (either an adapter or a MicroUSB cable)i ;
 - An ethernet cable (RJ-45) to connect your Raspberry Pi to your router. (Raspberry Pi Zero users can connect the Pi using an OTG cable, [Wifi dongle](https://core-electronics.com.au/tutorials/raspberry-pi-zerow-headless-wifi-setup.html).) ;

From 8626f287ce2362f156919949971997f8b6d06fd9 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 13:19:08 +0200
Subject: [PATCH 148/360] Fix Simon

---
 apps_wishlist.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index fc5a8e0d..a30d7f4b 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,6 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -52,6 +53,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -113,9 +115,11 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
+- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From 0ab43b7a64488c791eaa7d3577e2514f56e1ae56 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 13:29:54 +0200
Subject: [PATCH 149/360] Fix Simon

---
 apps_wishlist.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index cd39f12b..1630fe9d 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,6 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -52,6 +53,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -113,9 +115,11 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
+- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From a7c1a6a69b436e69039ac66f2e373d944a3b1dde Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 13:33:53 +0200
Subject: [PATCH 150/360] Fix Simon

---
 apps_wishlist.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index bb49d2d9..be45cb3d 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,6 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -52,6 +53,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -113,9 +115,11 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
+- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From 7460ecf907976b3fc4b2e0f3f9deaebadde7284a Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 13:39:23 +0200
Subject: [PATCH 151/360] Fix Simon

---
 apps_wishlist.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 91f46bb3..aaab981d 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,6 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Anki](https://apps.ankiweb.net/index.html) is a powerful Open Source flashcard application, which helps you quickly and easily memorize facts over the long term utilizing a spaced repetition algorithm. (https://github.com/dsnopek/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
@@ -53,6 +54,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
@@ -114,9 +116,11 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
+- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From 0963754db5fdb13ba748cf09204d55af9cb7b097 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 13:42:10 +0200
Subject: [PATCH 152/360] Fix anki repo

---
 apps_wishlist.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index aaab981d..87b575f6 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,8 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/tsudoko/anki-sync-server)
-- [Anki](https://apps.ankiweb.net/index.html) is a powerful Open Source flashcard application, which helps you quickly and easily memorize facts over the long term utilizing a spaced repetition algorithm. (https://github.com/dsnopek/anki-sync-server)
+- [Anki](https://github.com/dsnopek/anki-sync-server) is a powerful Open Source flashcard application, which helps you quickly and easily memorize facts over the long term utilizing a spaced repetition algorithm.
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)

From a65c67fda4f10e9169dff87ac46a746cb79705f0 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 13:48:41 +0200
Subject: [PATCH 153/360] Fix Simon

---
 apps_wishlist.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 282a910a..499fce3c 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,6 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -119,6 +120,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From 9b7866de576d3881a56cf40ffc5d2e0f7438b332 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 13:51:15 +0200
Subject: [PATCH 154/360] Fix Simon

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 7e3a1a69..5eac50e9 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -119,6 +119,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From 3b34c5a9868e6ba2fbf73354bd51de3513e1cce9 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 13:54:11 +0200
Subject: [PATCH 155/360] Fix Simon

---
 apps_wishlist.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index b26c970c..39a68ac2 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,6 +15,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
@@ -52,6 +53,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
 - [Flarum](https://flarum.org/)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
@@ -119,6 +121,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)

From a9ffeddea529dfbca554864d1166f794f6d69d3d Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Sat, 28 Sep 2019 22:09:11 +0200
Subject: [PATCH 156/360] =?UTF-8?q?D=C3=A9veloppement=20de=20la=20doc=20de?=
 =?UTF-8?q?=20nextcloud=20et=20restructuration=20de=20la=20page?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app_nextcloud.md                              |  93 +++++++++---------
 app_nextcloud_fr.md                           |  63 ++++--------
 app_nextcloud_keeweb.md                       |  29 ++++++
 app_nextcloud_keeweb_fr.md                    |  38 +++++++
 ...{nextcloud-logo.png => nextcloud_logo.png} | Bin
 5 files changed, 134 insertions(+), 89 deletions(-)
 create mode 100644 app_nextcloud_keeweb.md
 create mode 100644 app_nextcloud_keeweb_fr.md
 rename images/{nextcloud-logo.png => nextcloud_logo.png} (100%)

diff --git a/app_nextcloud.md b/app_nextcloud.md
index 92cb29f4..f7ec478d 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -1,9 +1,31 @@
-# Add storage space
+# <img src="/images/nextcloud_logo.png" alt="logo de Nextcloud"> Nextcloud  
 
-Solution I) allows you to add a link to a local or remote folder.  
-Solution II) allows to move the main storage space of nextcloud.
+ - [Discovering the Nextcloud environment](#EnvironmentNextcloud)  
+ - [Mobile and computer client software](#ClientSoftware)  
+ - [Useful Manipulations & Problems Encountered](#UtileManipulations)  
+    - [Add space to Nextcloud](#AddSpace)  
+ - [Third Party Applications](#AppsTiers)  
+ - [Useful links](#UsefulLinks)  
 
-## I) Add an external storage space
+Nextcloud is a file hosting service, many applications can be installed to offer it new features such as a calendar, a directory, notes and many others (you can find some applications in the[third-party applications] part (#AppsTiers) but there are many others depending on your needs).
+
+## Discovering the Nextcloud environment <a name="EnvironmentNextcloud"></a>
+
+Due to the creation of Nextcloud, a database with third-party applications to install, this chapter will only concern the nextcloud database without added applications. More information on applications in the dedicated section or in the nextcloud application catalogue: [apps.nextcloud.com](https://apps.nextcloud.com).  
+Nextcloud is before a cloud service (like Seafile and others), it allows synchronization and file sharing on the Internet and between several terminals (computers, smartphone) but also with several people. 
+
+## Mobile and computer client software <a name="ClientSoftware"></a>
+
+There are client software for all platforms. You can find them on the official nextcloud website: https://nextcloud.com/install/#install-clients
+
+## Useful Manipulations & Problems Encountered <a name="UtileManipulations"></a>
+
+### Add storage space <a name="AddSpace"></a>
+
+Solution I. allows you to add a link to a local or remote folder.  
+Solution II. allows to move the main storage space of nextcloud.
+
+#### I. Add an external storage space
 
 Parameter =>[Administration] External storage.
 
@@ -13,7 +35,7 @@ You can restrict this folder to one or more nextcloud users with the column `Ava
 With the gear you can allow or prohibit previewing and file sharing.  
 Finally click on the check mark to validate the folder.
 
-## II) Migrate Nextcloud data to a larger partition
+#### II. Migrate Nextcloud data to a larger partition
 
 **Note**: The following assumes that you have a hard disk mounted on `/media/storage`. Refer to[this article](/external_storage_en) to prepare your system.
 
@@ -24,9 +46,9 @@ First turn off the web server with the command:
 systemctl stop nginx  
 ```
 
-#### Choice of location
+##### Choice of location
 
-#### Case A: Blank storage, exclusive to Nextcloud
+**Case A: Blank storage, exclusive to Nextcloud**
 
 For the moment only root can write to it in `/media/storage`, which means that nginx and nextcloud will not be able to use it.
 
@@ -35,7 +57,7 @@ chown -R nextcloud:nextcloud /media/storage
 chmod 775 -R /media/storage
 ```
 
-#### Case B: Shared storage, data already present, Nextcloud data in a subfolder
+**Case B: Shared storage, data already present, Nextcloud data in a subfolder**
 
 If you want to use this disk for other applications, you can create a subfolder belonging to Nextcloud.
 
@@ -45,7 +67,7 @@ chown -R nextcloud /media/storage/nextcloud_data
 chmod 775 -R /media/storage/nextcloud_data
 ```
 
-#### Migrate data
+##### Migrate data
 
 Migrate your data to the new disk. To do this *(be patient, it can take a long time)*:
 
@@ -54,8 +76,7 @@ Case A: cp -ir /home/yunohost.app/nextcloud /media/storage
 Case B: cp -ir /home/yunohost.app/nextcloud /media/storage/nextcloud_data
 ```
 
-The `i` option allows you to ask yourself what to do if there is a file conflict, especially if you overwrite an old Owncloud or Nextcloud data folder.
-
+The `i` option allows you to ask yourself what to do if there is a file conflict, especially if you overwrite an old Owncloud or Nextcloud data folder.  
 To check that everything went well, compare what these two commands display (the content must be identical):
 
 ```bash
@@ -65,7 +86,7 @@ Case A: ls -al /media/storage
 Case B: ls -al /media/storage/nextcloud_data/nextcloud
 ```
 
-#### Configure Nextcloud
+##### Configure Nextcloud
 
 To inform Nextcloud of its new directory, modify the `/var/www/nextcloud/config/config.php` file with the command:
 
@@ -112,44 +133,14 @@ sudo -u nextcloud php occ files:scan --all
 
 It's over now. Now test if everything is fine, try connecting to your Nextcloud instance, upload a file, check its proper synchronization.
 
-# The KeeWeb application
-
-The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance. 
-But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this, 
-[a solution](https://github.com/jhass/nextcloud-keeweb/issues/34) exists.
-
-Go to the Nextcloud configuration directory:
-
-```bash
-cd /var/www/nextcloud/config/
-```
-
-If it does not exist, create the *mimetypemapping.json* file whose owner is the user *nextcloud* :
-
-```bash
-sudo su nextcloud -c "nano mimetypemapping.json"
-```
-
-Then add in this file the following text:
-
-```bash
-{
-    "kdbx": ["x-application/kdbx"]
-}
-```
-
-Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
-
-Now the problem is fixed.
-
-# Nextcloud and Cloudflare
+### Nextcloud and Cloudflare
 
 If you use Cloudflare for your DNS, *which may be useful if you have a dynamic IP*, you will most likely have authentication problems with the Nextcloud application. On the Internet many people propose to create a rule that disables all options related to security and Cloudflare speed for the url pointing to your Nextcloud instance. Although it works, it is not the optimal solution. I propose, certainly to create a rule for the url pointing to your Nextcloud instance but to disable only 2 options. So here's how:
 
-## Cloudflare Page Rules
+#### Cloudflare Page Rules
 
 In the Cloudflare control panel select your domain and find Page Rules
-the url in your address bar will look like this: https://dash.cloudflare.com/*/domain.tld/page-rules
+the url in your address bar will look like this: https://dash.cloudflare.com/*/domain.tld/page-rules  
 
 #### Add a rule
 
@@ -163,4 +154,14 @@ The options to disable (Off) are:
 - Rocket Loader
 - Email Obfuscation
 
-Save and clean your caches (Cloudflare, browser,...) and that's it.
\ No newline at end of file
+Save and clean your caches (Cloudflare, browser,...) and that's it.
+
+## Third Party Applications <a name="AppsTiers"></a>
+
+ + [KeeWeb](app_nextcloud_keeweb)
+
+## Useful links <a name="UsefulLinks"></a>
+
++ Official website : [nextcloud.com](https://nextcloud.com/)  
++ Application catalogue for nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)  
++ Find help and ask all your questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)  
diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index 804f08ea..65ab443a 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -1,4 +1,4 @@
-# <img src="/images/nextcloud-logo.png" alt="logo de Nextcloud"> Nextcloud  
+# <img src="/images/nextcloud_logo.png" alt="logo de Nextcloud"> Nextcloud  
 
  - [Découverte de l'environnement de Nextcloud](#EnvironnementNextcloud)
  - [Logiciels Clients pour mobile et ordinateur](#LogicielsClients)
@@ -7,21 +7,23 @@
  - [Applications tiers](#AppsTiers)
  - [Liens utiles](#liensutiles)
 
-Nextcloud est un service d'hébergement de fichiers, de nombreuses applications peuvent être installés afin de lui offrir de nouvelles fonctionnalités tel que un agenda, un répertoire, des notes et pleins d'autres (vous pouvez trouver quelques applications dans la partie [applications tiers](#AppsTiers) mais il en existe pleins d'autres suivant vos besoins).
+Nextcloud est un service d'hébergement de fichiers, de nombreuses applications peuvent être installées afin de lui offrir de nouvelles fonctionnalités tel qu'un agenda, un répertoire de contacts, des notes et pleins d'autres possibles (vous pouvez trouver quelques applications dans la partie [applications tiers](#AppsTiers) mais il en existe une multitude suivant vos besoins).
 
-## <a name="EnvironnementNextcloud">Découverte de l'environnement de Nextcloud</a>
+## Découverte de l'environnement de Nextcloud<a name="EnvironnementNextcloud"></a>
 
-Du fait de la constitution de Nextcloud, une base avec des applications tiers à installer, cette découverte de nextcloud ne concernera que la base de nextcloud sans applications ajoutés. Plus d'informations sur les applications dans la partie dédiée ou sur le catalogue d'application de nextcloud : https://apps.nextcloud.com/
+Du fait de la constitution de Nextcloud, une base avec des applications tiers à installer, ce chapitre ne concernera que la base de nextcloud sans applications ajoutés. Plus d'informations sur les applications dans la partie dédiée ou sur le catalogue d'application de nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com).  
+Nextcloud est avant tout un service de cloud (comme Seafile et d'autres logiciels), il permet une synchronisation et le partage de fichiers sur internet et entre plusieurs terminaux (ordinateurs, smartphone) mais aussi avec plusieurs personnes.
 
-## <a name="LogicielsClients">Logiciels Clients</a>
-Il existe des logiciels client pour l'ensemble plateformes. Vous pouvez les retrouver sur le site officiel de nextcloud : https://nextcloud.com/install/#install-clients
+## Logiciels Clients<a name="LogicielsClients"></a>
 
-## <a name="ManipulationsUtiles"> Manipulations utiles & Problèmes rencontrés</a>
+Il existe des logiciels clients pour de nombreux terminaux. Vous pouvez les retrouver sur le site de nextcloud : [nextcloud.com/install/#install-clients](https://nextcloud.com/install/#install-clients)
 
-### <a name="AjoutEspace">Ajouter de l'espace à Nextcloud</a>
+## Manipulations utiles & problèmes rencontrés<a name="ManipulationsUtiles"></a>
 
-La solution I) permet d'ajouter un lien vers un dossier local ou distant.  
-La solution II) permet de déplacer l'espace de stockage principal de nextcloud.
+### Ajouter de l'espace à Nextcloud<a name="AjoutEspace"></a>
+
+La solution I. permet d'ajouter un lien vers un dossier local ou distant.  
+La solution II. permet de déplacer l'espace de stockage principal de nextcloud.
 
 #### I. Ajouter un espace de stockage externe
 
@@ -74,8 +76,7 @@ Cas A : cp -ir /home/yunohost.app/nextcloud /media/stockage
 Cas B : cp -ir /home/yunohost.app/nextcloud /media/stockage/nextcloud_data
 ```
 
-L'option `i` permet de vous demander quoi faire en cas de conflit de fichier, notamment si vous écrasez un ancien dossier de données Owncloud ou Nextcloud.
-
+L'option `i` permet de vous demander quoi faire en cas de conflit de fichier, notamment si vous écrasez un ancien dossier de données Owncloud ou Nextcloud.  
 Pour vérifier que tout s'est bien passé, comparer ce qu'affichent ces deux commandes (le contenu doit être identique):
 
 ```bash
@@ -156,39 +157,15 @@ Les options à désactiver (Off) sont :
 
 Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est joué.
 
-## <a name="AppsTiers">Les applications Tiers</a>
+## Applications Tiers<a name="AppsTiers"></a>
 
-### L'application KeeWeb
+ + [Calendrier](app_nextcloud_calendar_fr)
+ + [contact](app_nextcloud_contact_fr)
+ + [KeeWeb](app_nextcloud_keeweb_fr)
+ + [Carnet](app_nextcloud_carnet_fr)
 
-L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud. 
-Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela, 
-[une solution](https://github.com/jhass/nextcloud-keeweb/issues/34) existe.
+## Quelques liens utiles<a name="liensutiles"></a>
 
-Se rendre dans le répertoire de configuration de Nextcloud :
-
-```bash
-cd /var/www/nextcloud/config/
-```
-
-S'il n'existe pas, créer le fichier *mimetypemapping.json* dont le propriétaire est l'utilisateur *nextcloud* :
-
-```bash
-sudo su nextcloud -c "nano mimetypemapping.json"
-```
-
-Puis ajouter dans ce fichier le texte suivent :
-
-```bash
-{
-    "kdbx": ["x-application/kdbx"]
-}
-```
-
-Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
-
-A présent, le problème est corrigé.
-
-## <a name="liensutiles">Quelques liens utiles</a>
-+ Site officiel : [nextcloud.com (En anglais)](https://nextcloud.com/)
++ Site officiel : [nextcloud.com (en)](https://nextcloud.com/)
 + Catalogue d'application pour nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)
 + Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)
diff --git a/app_nextcloud_keeweb.md b/app_nextcloud_keeweb.md
new file mode 100644
index 00000000..75a1e146
--- /dev/null
+++ b/app_nextcloud_keeweb.md
@@ -0,0 +1,29 @@
+# The KeeWeb application
+
+The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance.
+But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this,
+[a solution](https://github.com/jhass/nextcloud-keeweb/issues/34) exists.
+
+Go to the Nextcloud configuration directory:
+
+```bash
+cd /var/www/nextcloud/config/
+```
+
+If it does not exist, create the *mimetypemapping.json* file whose owner is the user *nextcloud* :
+
+```bash
+sudo su nextcloud -c "nano mimetypemapping.json"
+```
+
+Then add in this file the following text:
+
+```bash
+{
+    "kdbx": ["x-application/kdbx"]
+}
+```
+
+Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
+
+Now the problem is fixed.
diff --git a/app_nextcloud_keeweb_fr.md b/app_nextcloud_keeweb_fr.md
new file mode 100644
index 00000000..47b09e9a
--- /dev/null
+++ b/app_nextcloud_keeweb_fr.md
@@ -0,0 +1,38 @@
+# L'application KeeWeb
+
+L'application Keeweb sur le catalogue de nextcloud - [apps.nextcloud.com/keeweb](https://apps.nextcloud.com/apps/keeweb)
+
+ - [Manipulations utiles et problèmes rencontrés](#ManipulationsUtiles)
+ - [Liens utiles](#liensutiles)
+
+L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud.
+
+## Manipulations utiles & problèmes rencontrés <a name="ManipulationsUtiles"></a>
+Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela,
+[une solution](https://github.com/jhass/nextcloud-keeweb/issues/34) existe.
+
+Se rendre dans le répertoire de configuration de Nextcloud :
+
+```bash
+cd /var/www/nextcloud/config/
+```
+
+S'il n'existe pas, créer le fichier *mimetypemapping.json* dont le propriétaire est l'utilisateur *nextcloud* :
+
+```bash
+sudo su nextcloud -c "nano mimetypemapping.json"
+```
+
+Puis ajouter dans ce fichier le texte suivent :
+
+```bash
+{
+    "kdbx": ["x-application/kdbx"]
+}
+```
+
+Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
+
+A présent, le problème est corrigé.
+
+## Liens utiles <a name="liensutiles"></a>
diff --git a/images/nextcloud-logo.png b/images/nextcloud_logo.png
similarity index 100%
rename from images/nextcloud-logo.png
rename to images/nextcloud_logo.png

From 2440e80563000675c3e03fe27aa21a0b33b4bf84 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Sat, 28 Sep 2019 22:22:55 +0200
Subject: [PATCH 157/360] update page

---
 isp_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/isp_fr.md b/isp_fr.md
index ac174ff4..53d0930f 100644
--- a/isp_fr.md
+++ b/isp_fr.md
@@ -17,7 +17,7 @@ Tous les fournisseurs d’accès à Internet [membres de la Fédération French
 | **Box/routeur** | Personnel/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox |
 | **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
 | **[Port 25 ouvrable](email_fr)**<br> (fermé par défaut) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
-| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✔ (uniquement sur Livebox 4) | ✔ | ✔ |
+| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✔ (depuis la Livebox 4) | ✔ | ✔ |
 | **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personnalisable ** | ✔ | ✔ (sauf IPv6) | … | ✘ | ✘ | ✘ |
 | **[IP fixe](/dns_dynamicip_fr)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
 | **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … |
@@ -42,4 +42,4 @@ Pour une liste plus complète et précise, référez-vous à la très bonne docu
 | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
 | **Orange** | Livebox2 | oui (activé) | non | **non** | **non** | **non** |
 | **Moov** |  | oui (activé) |  |  |  |  |
-| **MTN** |  | oui (activé) |  |  |  | |
\ No newline at end of file
+| **MTN** |  | oui (activé) |  |  |  | |

From 49c750d2e0ceb9328b8c665a77932b3f5a16945b Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Sun, 29 Sep 2019 15:31:01 +0200
Subject: [PATCH 158/360] dev doc PeerTube

---
 app_peertube_fr.md | 28 +++++++++++-----------------
 1 file changed, 11 insertions(+), 17 deletions(-)

diff --git a/app_peertube_fr.md b/app_peertube_fr.md
index f359cede..fef9efb5 100644
--- a/app_peertube_fr.md
+++ b/app_peertube_fr.md
@@ -1,27 +1,21 @@
 #<img src="/images/peertube_logo.png" alt="Logo de PeerTube">  PeerTube
 
+**Index**
+ - [Découverte de l'environnement de PeerTube](#EnvironnementPeerTube)
+ - [Quelques liens utiles](#liensutiles)
+[![Installer PeerTube avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=peertube)
+
 PeerTube est une plateforme de streaming vidéo fédérée (ActivityPub) utilisant P2P (BitTorrent) directement dans le navigateur web, en utilisant WebTorrent.
 
- - [Découverte de l'environnement de PeerTube](#EnvironnementPeerTube)
- - [Manipulations utiles & Problèmes rencontrés](#ManipulationsUtiles)
-   + [Permettre aux vidéos d'être embarqué sur un site web](#VideosEmbed)
- - [Liens utiles](#liensutiles)
 
-## <a name ="EnvironnementPeerTube">Découverte de l'environnement de PeerTube</a>
+## Découverte de l'environnement de PeerTube <a name ="EnvironnementPeerTube"></a>
 
-Pour comprendre en quoi PeerTube propose une réelle alternative à youtube, vous êtes invité à regarder le clip de promotion de PeerTube réalisé par l'association Framasoft (ci-dessous). Elle est elle même hébergé sur framatube.org  
+Pour comprendre en quoi PeerTube propose une alternative à youtube, vous êtes invité à regarder le clip réalisé par l'association Framasoft (ci-dessous). Elle est elle même hébergé sur [framatube.org](https://framatube.org)  
 
 <iframe width="560" height="315" sandbox="allow-same-origin allow-scripts" src="https://framatube.org/videos/embed/9db9f3f1-9b54-44ed-9e91-461d262d2205" frameborder="0" allowfullscreen></iframe>
 
-## <a name="ManipulationsUtiles">Manipulations utiles & Problèmes rencontrés</a>
+## Quelques liens utiles <a name="liensutiles"></a>
 
-### <a name="VideosEmbed">Permettre aux vidéos d'être embarqué sur un site web</a>
-
-Pour permettre à une vidéo d'être embarqué, c'est à dire que la vidéo puisse être visible sur un site internet (comme la vidéo de présentation de youtube sur cette page) à l'aide du code disponible en cliquant sur *Partager* sur la page de la vidéo et en copiant le code sur une page du site de destination (cf. capture d'écran ci-dessous). Vous devrez modifier ce fichier de configuration situé ici : `/etc/nginx/conf.d/nom.instance.tld.conf` 
-![Capture d'écran du bouton partager](/images/peertube_embed_01.png)
-
-## <a name="liensutiles">Quelques liens utiles</a>
-
- - [Site officiel de PeerTube - joinpeertube.org](https://joinpeertube.org/fr/)
- - [Documentation de l'application de yunohost](#)
- - [
+ - Site officiel de PeerTube - [joinpeertube.org](https://joinpeertube.org/fr/)
+ - Dépot application PeerTube Yunohost - [github.com/YunoHost-Apps/peertube_ynh](https://github.com/YunoHost-Apps/peertube_ynh)
+ - Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)

From 8fe093848f6da050213aa0c1574d3268a2ce959a Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Mon, 30 Sep 2019 13:36:42 +0200
Subject: [PATCH 159/360] Update app_nextcloud.md

Co-Authored-By: decentral1se <lukewm@riseup.net>
---
 app_nextcloud.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_nextcloud.md b/app_nextcloud.md
index 90b16926..7da57a5b 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -7,7 +7,7 @@
  - [Third Party Applications](#AppsTiers)  
  - [Useful links](#UsefulLinks)  
 
-Nextcloud is a file hosting service, many applications can be installed to offer it new features such as a calendar, a directory, notes and many others (you can find some applications in the[third-party applications] part (#AppsTiers) but there are many others depending on your needs).
+Nextcloud is a file hosting service, many applications can be installed to offer it new features such as a calendar, a directory, notes and many others (you can find some applications in the [third-party applications](#AppsTiers) part  but there are many others depending on your needs).
 
 ## Discovering the Nextcloud environment <a name="EnvironmentNextcloud"></a>
 

From 42f73191563ea7f48c6832233822c6004bcd9ddc Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Mon, 30 Sep 2019 13:56:21 +0200
Subject: [PATCH 160/360] Add pages for apps in process packaging and link to
 this pages

---
 apps_packaging.md    | 8 ++++++++
 apps_packaging_fr.md | 3 +++
 apps_wishlist.md     | 2 +-
 3 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 apps_packaging.md
 create mode 100644 apps_packaging_fr.md

diff --git a/apps_packaging.md b/apps_packaging.md
new file mode 100644
index 00000000..125a46ce
--- /dev/null
+++ b/apps_packaging.md
@@ -0,0 +1,8 @@
+# Apps packaging in progress
+
+<div class="alert alert-info">To add an apps in apps packaging in progress
+a repository must exist in the community repository <a href="https://github.com/YunoHost-Apps/">YunoHost-Apps</a>.</div>
+
+The following list is a list of apps in the process of being packaged.
+
+[Edit this list](/write_documentation) to add the application you are packaging, or contribut to [package apps](/packaging_apps) yourself.
diff --git a/apps_packaging_fr.md b/apps_packaging_fr.md
new file mode 100644
index 00000000..2433ccb4
--- /dev/null
+++ b/apps_packaging_fr.md
@@ -0,0 +1,3 @@
+# Apps en cours de packaging
+
+La liste des applications en cours de packaging n’est maintenue qu’en <a href="/apps_packaging_en">version anglaise</a>. Merci de vous y référer.
diff --git a/apps_wishlist.md b/apps_wishlist.md
index f984463d..62aa4242 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -1,6 +1,6 @@
 # Apps wishlist
 
-<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps_en">apps list</a></div>
+<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps_en">apps list</a></div> and <a href="/apps_packaging_en">apps packaging in progress</a>
 
 The following list is a compiled wishlist of applications that would be nice-to-have.
 

From 7a230cca567687d93e6df1abc1441d83a2a7f274 Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Mon, 30 Sep 2019 13:58:14 +0200
Subject: [PATCH 161/360] deletion of wishes that already have a repository

---
 apps_packaging.md |  6 ++++++
 apps_wishlist.md  | 19 ++-----------------
 2 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/apps_packaging.md b/apps_packaging.md
index 125a46ce..ed24ce44 100644
--- a/apps_packaging.md
+++ b/apps_packaging.md
@@ -6,3 +6,9 @@ a repository must exist in the community repository <a href="https://github.com/
 The following list is a list of apps in the process of being packaged.
 
 [Edit this list](/write_documentation) to add the application you are packaging, or contribut to [package apps](/packaging_apps) yourself.
+
+- [Huginn](https://github.com/YunoHost-Apps/huginn_ynh)
+- [Redmine](https://github.com/YunoHost-Apps/redmine_ynh)
+- [Salut à Toi](https://github.com/YunoHost-Apps/sat_ynh)
+- [Streama](https://github.com/YunoHost-Apps/streama_ynh)
+- [Wisemapping](https://github.com/YunoHost-Apps/wisemapping_ynh)
diff --git a/apps_wishlist.md b/apps_wishlist.md
index 62aa4242..c2015953 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -15,11 +15,9 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
 - [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/dsnopek/anki-sync-server) is a powerful Open Source flashcard application, which helps you quickly and easily memorize facts over the long term utilizing a spaced repetition algorithm.
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
-- [Bitwarden](https://bitwarden.com/)
 - [Beehive](https://github.com/muesli/beehive)
 - [Bludit](https://www.bludit.com)
 - [Blynk](https://github.com/blynkkk/blynk-library)
@@ -53,12 +51,10 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
-- [Flarum](https://flarum.org/)
 - [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
 - [Framaslides](https://framagit.org/framasoft/framaslides/)
-- [Gateway](https://iot.mozilla.org/gateway/)
+- [WebThings Gateway](https://iot.mozilla.org/gateway/)
 - [Geneweb](https://geneweb.tuxfamily.org)
 - [GetSimple CMS](http://get-simple.info)
 - [Git-annex](http://git-annex.branchable.com)
@@ -74,7 +70,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Helpy](https://github.com/helpyio/helpy)
 - [Hexo](https://hexo.io/)
 - [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
-- [Huginn](https://github.com/cantino/huginn)
 - [Hugo](http://gohugo.io)
 - [Icecast 2](http://www.icecast.org)
 - [ikiwiki](http://ikiwiki.info)
@@ -106,10 +101,8 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [LocomotiveCMS](https://github.com/locomotivecms/engine)
 - [Logstalgia](http://logstalgia.io)
 - [Loomio](https://www.loomio.org)
-- [MagicMirror²](https://github.com/MichMich/MagicMirror)
 - [MaidSafe](http://maidsafe.net)
 - [Mailpile](https://www.mailpile.is)
-- [Mailtrain](https://mailtrain.org/)
 - [Mautic](https://github.com/mautic/mautic)
 - [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
 - [microblog.pub](https://microblog.pub)
@@ -122,7 +115,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
 - [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org)
@@ -146,7 +138,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Privoxy](http://www.privoxy.org)
 - [ProcessMaker](http://www.processmaker.com)
 - [ProtonMail’s WebClient](https://github.com/ProtonMail/WebClient)
-- [ProjeQtOr](https://www.projeqtor.org/en/product-en/downloads)
 - [PyLoad](https://github.com/pyload/pyload)
 - [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
 - [Pump.io](http://pump.io)
@@ -154,13 +145,11 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [racktables](http://racktables.org)
 - [Race for the Galaxy](https://github.com/bnordli/rftg)
 - [Radarr](https://github.com/Radarr/Radarr)
-- [Redmine](https://www.redmine.org)
 - [Request Tracker](https://bestpractical.com)
 - [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)
 - [Restya](http://restya.com)
 - [Retroshare](http://retroshare.net/downloads.html)
 - [SABnzbd](https://sabnzbd.org)
-- [Samourai Dojo, Bitcoin coinjoin node] (https://github.com/Samourai-Wallet/samourai-dojo)
 - [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
 - [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
 - [Scribbleton](https://scribbleton.com)
@@ -170,10 +159,8 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Simone](https://github.com/Kloadut/Simone)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
 - [Sonarr](https://sonarr.tv)
-- [SpamGourmet](https://sourceforge.net/projects/spamgourmet/)
 - [Stackedit](https://stackedit.io)
-- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.
-- [Streama](https://github.com/dularion/streama)
+- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion
 - [Streisand](https://github.com/jlund/streisand)
 - [Subspace](https://github.com/subspacecloud/subspace) (A simple WireGuard VPN server GUI)
 - [Syspass](http://www.syspass.org/)
@@ -194,9 +181,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [WebODF](http://webodf.org)
 - [webSync](http://furier.github.io/websync)
 - [WebTorrent](https://github.com/feross/webtorrent)
-- [Wisemapping](http://www.wisemapping.com)
 - [Wireguard](https://www.wireguard.com/)
-- [Xibo](https://github.com/xibosignage)
 - [Xonotic](http://xonotic.org)
 - [YesWiki](https://yeswiki.net)
 - [Zammad](https://github.com/zammad/zammad)

From a200f84538b11d996bff59bb5880356d2ad99237 Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Mon, 30 Sep 2019 13:59:06 +0200
Subject: [PATCH 162/360] Removal software not be for server not free+added
 last update old repo

---
 apps_wishlist.md | 38 +++++++++++++++++---------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index c2015953..84d9d16c 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -14,15 +14,13 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Airtime](https://www.sourcefabric.org/en/airtime/)
 - [Ajenti](http://ajenti.org)
 - [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
-- [aMule](https://github.com/amule-project/amule)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
-- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
+- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 2015)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
 - [Beehive](https://github.com/muesli/beehive)
 - [Bludit](https://www.bludit.com)
 - [Blynk](https://github.com/blynkkk/blynk-library)
 - [Bookstack](https://www.bookstackapp.com/)
-- [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
 - [Candy](https://candy-chat.github.io/candy)
 - [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
@@ -38,27 +36,26 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [CumulusClips](http://cumulusclips.org)
 - [Cyclos](https://www.cyclos.org)
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
-- [Deluge](http://deluge-torrent.org) (with WebUI)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
 - [DNSchain](https://github.com/okTurtles/dnschain)
 - [eLabFTW](https://www.elabftw.net/) electronic lab notebook
 - [Emoncms](https://github.com/emoncms/emoncms)
 - [ERPnext](https://erpnext.com/download)
 - [EteSync](https://www.etesync.com/)
-- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet)
-- [Fail2web](https://github.com/Sean-Der/fail2web)
-- [Ferment](https://github.com/mmckegg/ferment)
+- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet) (/!\ last update: Avr 2017)
+- [Fail2web](https://github.com/Sean-Der/fail2web) (/!\ last update: Avr 2017)
+- [Ferment](https://github.com/mmckegg/ferment) (/!\ last update: Nov 2018)
 - [FEX](http://fex.rus.uni-stuttgart.de/)
-- [FileTea](https://filetea.me)
+- [FileTea](https://filetea.me) (/!\ last update: Jan 2014)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
+- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) (/!\ last update: Dec 2017)
 - [Fossil](http://www.fossil-scm.org)
-- [Framaslides](https://framagit.org/framasoft/framaslides/)
+- [Framaslides](https://framagit.org/framasoft/framaslides/) (/!\ last update: Sept 2017)
 - [WebThings Gateway](https://iot.mozilla.org/gateway/)
 - [Geneweb](https://geneweb.tuxfamily.org)
 - [GetSimple CMS](http://get-simple.info)
 - [Git-annex](http://git-annex.branchable.com)
-- [Gitit](https://github.com/jgm/gitit)
+- [Gitit](https://github.com/jgm/gitit) (/!\ last update: Dec2018)
 - [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
 - [Gollum](https://github.com/gollum/gollum)
 - [Goploader](https://github.com/Depado/goploader)
@@ -66,14 +63,13 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Guacamole](http://guac-dev.org)
 - [Habitica](https://habitica.com/)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
-- [Hackpad](https://github.com/dropbox/hackpad)
+- [Hackpad](https://github.com/dropbox/hackpad) (/!\ last update: Jul 2017)
 - [Helpy](https://github.com/helpyio/helpy)
 - [Hexo](https://hexo.io/)
-- [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
-- [Hugo](http://gohugo.io)
+- [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: Feb 2015)
 - [Icecast 2](http://www.icecast.org)
 - [ikiwiki](http://ikiwiki.info)
-- [img.bi](https://github.com/imgbi/img.bi)
+- [img.bi](https://github.com/imgbi/img.bi) (/!\ last update: Jan 2016)
 - [InfCloud](https://www.inf-it.com/open-source/clients/infcloud)
 - [Invidious](https://github.com/omarroth/invidious)
 - [Invoice Ninja](https://www.invoiceninja.com)
@@ -82,17 +78,17 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Joplin](http://joplin.cozic.net/)
 - [Jellyfin](https://github.com/jellyfin)
 - [JS Bin](http://jsbin.com/help/2-second-setup)
-- [Kaiwa](http://getkaiwa.com)
-- [Kin calendar](https://github.com/KinToday)
-- [Kinto](https://github.com/Kinto/formbuilder)
+- [Kaiwa](http://getkaiwa.com) (/!\ last update: Jan 2016 UNMAINTAINED)
+- [Kin calendar](https://github.com/KinToday) (/!\ last update: Mar 2018)
+- [Kinto](https://github.com/Kinto/formbuilder) ARCHIVED
 - [Kiwix](http://www.kiwix.org/) Offline wikipedia
 - [Known](https://withknown.com)
 - [Koel](http://koel.phanan.net)
 - [Kontalk](https://kontalk.org)
 - [Koozip](http://koozic.net)
-- [KrISS feed](https://github.com/tontof/kriss_feed)
-- [Koken](http://koken.me)
-- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
+- [KrISS feed](https://github.com/tontof/kriss_feed) (/!\ last update: Dec 2018)
+- [Koken](http://koken.me) (/!\ last update: Nov 2016)
+- [Kune](https://github.com/comunes/kune/) (/!\ last update: Dec 2017)
 - [L'atelier](https://github.com/jbl2024/latelier)
 - [Lessy](https://lessy.io)
 - [LibreNews-Server](https://librenews.io)

From 16d5221f0ca78fcf2110db1feba9c9d9b909902a Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Mon, 30 Sep 2019 14:54:18 +0200
Subject: [PATCH 163/360] Update apps_wishlist.md

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 84d9d16c..33a337ae 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -99,6 +99,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Loomio](https://www.loomio.org)
 - [MaidSafe](http://maidsafe.net)
 - [Mailpile](https://www.mailpile.is)
+- [Mailtrain](https://mailtrain.org/)
 - [Mautic](https://github.com/mautic/mautic)
 - [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
 - [microblog.pub](https://microblog.pub)

From 5ea1c0f4f6ba0d71f00950e0d553beb2a7b45686 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 30 Sep 2019 18:47:20 +0000
Subject: [PATCH 164/360] =?UTF-8?q?Ajout=20Caisse=20Bliss=20service=20gest?=
 =?UTF-8?q?ion=20de=20caisse=20pour=20des=20=C3=A9v=C3=A8nements.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index f984463d..2015d590 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -26,6 +26,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Bookstack](https://www.bookstackapp.com/)
 - [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
+- [Caisse Bliss](https://framagit.org/tykayn/caisse-bliss)
 - [Candy](https://candy-chat.github.io/candy)
 - [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
 - [cgit](http://git.zx2c4.com/cgit/about)

From bc8318a221e358b2aaee700b29a80c350da6851a Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Tue, 1 Oct 2019 01:20:51 +0200
Subject: [PATCH 165/360] Update commit -> just clean wishlist

---
 apps_packaging.md    | 14 --------------
 apps_packaging_fr.md |  3 ---
 apps_wishlist.md     |  2 +-
 3 files changed, 1 insertion(+), 18 deletions(-)
 delete mode 100644 apps_packaging.md
 delete mode 100644 apps_packaging_fr.md

diff --git a/apps_packaging.md b/apps_packaging.md
deleted file mode 100644
index ed24ce44..00000000
--- a/apps_packaging.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Apps packaging in progress
-
-<div class="alert alert-info">To add an apps in apps packaging in progress
-a repository must exist in the community repository <a href="https://github.com/YunoHost-Apps/">YunoHost-Apps</a>.</div>
-
-The following list is a list of apps in the process of being packaged.
-
-[Edit this list](/write_documentation) to add the application you are packaging, or contribut to [package apps](/packaging_apps) yourself.
-
-- [Huginn](https://github.com/YunoHost-Apps/huginn_ynh)
-- [Redmine](https://github.com/YunoHost-Apps/redmine_ynh)
-- [Salut à Toi](https://github.com/YunoHost-Apps/sat_ynh)
-- [Streama](https://github.com/YunoHost-Apps/streama_ynh)
-- [Wisemapping](https://github.com/YunoHost-Apps/wisemapping_ynh)
diff --git a/apps_packaging_fr.md b/apps_packaging_fr.md
deleted file mode 100644
index 2433ccb4..00000000
--- a/apps_packaging_fr.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Apps en cours de packaging
-
-La liste des applications en cours de packaging n’est maintenue qu’en <a href="/apps_packaging_en">version anglaise</a>. Merci de vous y référer.
diff --git a/apps_wishlist.md b/apps_wishlist.md
index 84d9d16c..7e52407b 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -1,6 +1,6 @@
 # Apps wishlist
 
-<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps_en">apps list</a></div> and <a href="/apps_packaging_en">apps packaging in progress</a>
+<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps_en">apps list</a></div>
 
 The following list is a compiled wishlist of applications that would be nice-to-have.
 

From dc940bb5b1552d9be312cf96e6c31a160ab6ab0b Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Tue, 1 Oct 2019 22:04:40 +0200
Subject: [PATCH 166/360] First commit to donation

---
 donate      | 25 +++++++++++++++++++++++++
 index.md    |  3 ++-
 index_ar.md |  3 ++-
 index_de.md |  3 ++-
 index_es.md |  3 ++-
 index_fr.md |  3 ++-
 index_it.md |  3 ++-
 7 files changed, 37 insertions(+), 6 deletions(-)
 create mode 100644 donate

diff --git a/donate b/donate
new file mode 100644
index 00000000..3c88974c
--- /dev/null
+++ b/donate
@@ -0,0 +1,25 @@
+# What for?
+Donations are used to cover infrastructure costs (servers, domain names, ..), communication (stickers, conference, ...) and possibly development on the long term.
+
+# 2019/2020 Budget
+
+  * Revenu
+    * Donations via Liberapay : current is 45€/week, -> 2340€/year
+    * NLNet 20K€
+
+  * Expenses
+    * Server renting => 1000€
+      * Forum: 14.4€/month => 172.80€/Year
+      * CI: 20€/mois to be confirmed => 240€/Year
+      * Bearnaise server migration bearnaise => 587.2€
+    * Domain names => 150€
+      * nohost.me : 11.99€HT/Year
+      * ynh.fr : 6.99€HT/Year (voir avec frju?)
+      * noho.st : ~35€ TTC/Year
+      * YunoHost.org :13.99€HT/Year
+      * YunoHost.com ??? 9.99€HT/Year
+      * labriqueinter.net ?? 12.49€Ht/Year
+      * internetcu.be ?? 17.99€HT/Year
+    * Communication => 200€
+    * Travel (to go at conferencies) => 500€
+    * Bank account 7x12€ => 100€
\ No newline at end of file
diff --git a/index.md b/index.md
index 21576d77..5feb2a24 100644
--- a/index.md
+++ b/index.md
@@ -23,7 +23,8 @@
   <div class="main-links hidden-xs">
     <a href="/whatsyunohost">About</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">Latest news</a> <span class="colored-bar">•</span> 
-    <a href="/docs">Documentation</a>
+    <a href="/docs">Documentation</a> <span class="colored-bar">•</span> 
+    <a href="https://donate.yunohost.org/">Donate</a>
   </div>
 
 </div><!-- teasing-part -->
diff --git a/index_ar.md b/index_ar.md
index 1e6f7574..3a495680 100644
--- a/index_ar.md
+++ b/index_ar.md
@@ -20,7 +20,8 @@
   <div dir="auto" class="main-links hidden-xs">
     <a href="/whatsyunohost">عن واي يونوهوست</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">آخر المستجدات</a> <span class="colored-bar">•</span> 
-    <a href="/docs_ar">المستندات</a>
+    <a href="/docs_ar">المستندات</a> <span class="colored-bar">•</span> 
+    <a href="https://donate.yunohost.org/">تبرع/a>
   </div>
 
 </div><!-- teasing-part -->
diff --git a/index_de.md b/index_de.md
index 5f679c8a..b324ad47 100644
--- a/index_de.md
+++ b/index_de.md
@@ -24,7 +24,8 @@
   <div class="main-links hidden-xs">
     <a href="/whatsyunohost">Über Yunohost</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">Letzte Nachrichten</a> <span class="colored-bar">•</span> 
-    <a href="/docs">Dokumentation</a>
+    <a href="/docs">Dokumentation</a> <span class="colored-bar">•</span> 
+    <a href="https://donate.yunohost.org/">Spenden</a>
   </div>
   </div><!-- teasing-part -->
 
diff --git a/index_es.md b/index_es.md
index b28e306c..b408427d 100644
--- a/index_es.md
+++ b/index_es.md
@@ -23,7 +23,8 @@
   <div class="main-links hidden-xs">
     <a href="/whatsyunohost">Acerca de</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">Últimas noticias</a> <span class="colored-bar">•</span> 
-    <a href="/docs">Documentación</a>
+    <a href="/docs">Documentación</a> <span class="colored-bar">•</span> 
+    <a href="https://donate.yunohost.org/">Donar</a>
   </div>
 
 </div><!-- teasing-part -->
diff --git a/index_fr.md b/index_fr.md
index d358e760..9dd58f21 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -19,7 +19,8 @@
   <div class="main-links hidden-xs">
     <a href="/whatsyunohost_fr">À propos</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">Dernières nouvelles</a> <span class="colored-bar">•</span> 
-    <a href="/docs_fr">Documentation</a>
+    <a href="/docs_fr">Documentation</a> <span class="colored-bar">•</span> 
+    <a href="https://donate.yunohost.org/">Faire un don</a>
   </div>
 
 </div><!-- teasing-part -->
diff --git a/index_it.md b/index_it.md
index ee0bc581..870ec5c3 100644
--- a/index_it.md
+++ b/index_it.md
@@ -24,7 +24,8 @@
   <div class="main-links hidden-xs">
     <a href="/whatsyunohost">A proposito</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">Ultime notizie</a> <span class="colored-bar">•</span> 
-    <a href="/docs">Documentazione</a>
+    <a href="/docs">Documentazione</a> <span class="colored-bar">•</span> 
+    <a href="https://donate.yunohost.org/">Donare</a>
   </div>
 
 </div><!-- teasing-part -->

From 4cdd9b68f5c8cad8e00d91e2d9c84b62dde1a0ed Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Tue, 1 Oct 2019 23:54:50 +0200
Subject: [PATCH 167/360] Rename donate to donate.md

---
 donate => donate.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename donate => donate.md (96%)

diff --git a/donate b/donate.md
similarity index 96%
rename from donate
rename to donate.md
index 3c88974c..58cefc50 100644
--- a/donate
+++ b/donate.md
@@ -22,4 +22,4 @@ Donations are used to cover infrastructure costs (servers, domain names, ..), co
       * internetcu.be ?? 17.99€HT/Year
     * Communication => 200€
     * Travel (to go at conferencies) => 500€
-    * Bank account 7x12€ => 100€
\ No newline at end of file
+    * Bank account 7x12€ => 100€

From ca7f38d9a802fa66926d79906082120612815b7e Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Wed, 2 Oct 2019 00:10:27 +0200
Subject: [PATCH 168/360] Improve formating of the budget

---
 donate.md | 44 ++++++++++++++++++++++++--------------------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/donate.md b/donate.md
index 58cefc50..1690d749 100644
--- a/donate.md
+++ b/donate.md
@@ -1,25 +1,29 @@
 # What for?
-Donations are used to cover infrastructure costs (servers, domain names, ..), communication (stickers, conference, ...) and possibly development on the long term.
+Donations are used to cover infrastructure costs (servers, domain names, ..), communication (stickers, conference, ...) and possibly development on the long term. Below is a draft of budget detailing our expected expenses and revenues
 
 # 2019/2020 Budget
 
-  * Revenu
-    * Donations via Liberapay : current is 45€/week, -> 2340€/year
-    * NLNet 20K€
+## Expected revenues
 
-  * Expenses
-    * Server renting => 1000€
-      * Forum: 14.4€/month => 172.80€/Year
-      * CI: 20€/mois to be confirmed => 240€/Year
-      * Bearnaise server migration bearnaise => 587.2€
-    * Domain names => 150€
-      * nohost.me : 11.99€HT/Year
-      * ynh.fr : 6.99€HT/Year (voir avec frju?)
-      * noho.st : ~35€ TTC/Year
-      * YunoHost.org :13.99€HT/Year
-      * YunoHost.com ??? 9.99€HT/Year
-      * labriqueinter.net ?? 12.49€Ht/Year
-      * internetcu.be ?? 17.99€HT/Year
-    * Communication => 200€
-    * Travel (to go at conferencies) => 500€
-    * Bank account 7x12€ => 100€
+* Donations via Liberapay: current is 45€/week, so about 2340€/year
+* Grant from NLNet: 20K€, to be used for R&D
+
+## Expected expenses
+
+* Server renting: ~1000€
+   * Forum: 14.4€/month: 172.80€/Year
+   * CI: 20€/mois to be confirmed: 240€/Year
+   * Bearnaise server migration bearnaise: 587.2€
+* Domain names: ~150€
+   * nohost.me: 11.99€HT/Year
+   * ynh.fr: 6.99€HT/Year (voir avec frju?)
+   * noho.st: ~35€ TTC/Year
+   * YunoHost.org: 13.99€HT/Year
+   * YunoHost.com: 9.99€HT/Year
+   * labriqueinter.net: 12.49€Ht/Year
+   * internetcu.be: 17.99€HT/Year
+* Communication: ~200€
+* Travel (e.g. to go to conferences): ~500€
+* Bank account fees: 7x12€ => ~100€
+
+Total is about 2000€

From f46a46a421194d6998d7f47b5c3c9b494827d62d Mon Sep 17 00:00:00 2001
From: Arthur Lutz <arthur.lutz@logilab.fr>
Date: Wed, 2 Oct 2019 12:08:48 +0200
Subject: [PATCH 169/360] add smokeping

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 2015d590..cc084d95 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -171,6 +171,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Simone](https://github.com/Kloadut/Simone)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
 - [Sonarr](https://sonarr.tv)
+- [smokeping](https://packages.debian.org/buster/smokeping)   
 - [SpamGourmet](https://sourceforge.net/projects/spamgourmet/)
 - [Stackedit](https://stackedit.io)
 - [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.

From 2d59689d64783e16b4eb1e8a0d19debd200c6670 Mon Sep 17 00:00:00 2001
From: Plumf <plumf@open-plug.eu>
Date: Wed, 2 Oct 2019 14:46:48 +0200
Subject: [PATCH 170/360] Delete old repo (more one years) + add repo

---
 apps_wishlist.md | 192 +++++++++++++++++------------------------------
 1 file changed, 69 insertions(+), 123 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 51961815..6ad9a452 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -11,179 +11,125 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects)
 - [List of SIP softwares/applications](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license)
 - [10er10](https://github.com/dready92/10er10)
-- [Airtime](https://www.sourcefabric.org/en/airtime/)
-- [Ajenti](http://ajenti.org)
-- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
+- [Ajenti](http://ajenti.org) / [github](https://github.com/ajenti/ajenti/)
+- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc. / [github](https://github.com/akaunting/akaunting)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
-- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 2015)
-- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
+- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions) / [github](https://github.com/Bitmessage/PyBitmessage)
 - [Beehive](https://github.com/muesli/beehive)
-- [Bludit](https://www.bludit.com)
+- [Bludit](https://www.bludit.com) / [github](https://github.com/bludit/bludit)
 - [Blynk](https://github.com/blynkkk/blynk-library)
-- [Bookstack](https://www.bookstackapp.com/)
+- [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
-- [Candy](https://candy-chat.github.io/candy)
-- [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
 - [cgit](http://git.zx2c4.com/cgit/about)
-- [CheckUp](https://sourcegraph.github.io/checkup)
-- [Cloud torrent](https://github.com/jpillora/cloud-torrent)
+- [CheckUp](https://sourcegraph.github.io/checkup) / [github](https://github.com/sourcegraph/checkup)
 - [Cockpit](http://cockpit-project.org/)
 - [Commafeed](https://github.com/Athou/commafeed)
-- [Converse.js](https://conversejs.org)
+- [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)
 - [Cozy](https://github.com/cozy)
-- [Cronkeep](https://github.com/cronkeep/cronkeep)
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
-- [CumulusClips](http://cumulusclips.org)
-- [Cyclos](https://www.cyclos.org)
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
-- [DNSchain](https://github.com/okTurtles/dnschain)
-- [eLabFTW](https://www.elabftw.net/) electronic lab notebook
+- [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
 - [Emoncms](https://github.com/emoncms/emoncms)
-- [ERPnext](https://erpnext.com/download)
-- [EteSync](https://www.etesync.com/)
-- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet) (/!\ last update: Avr 2017)
-- [Fail2web](https://github.com/Sean-Der/fail2web) (/!\ last update: Avr 2017)
-- [Ferment](https://github.com/mmckegg/ferment) (/!\ last update: Nov 2018)
+- [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
+- [EteSync](https://www.etesync.com/) / [github](https://github.com/etesync)
 - [FEX](http://fex.rus.uni-stuttgart.de/)
-- [FileTea](https://filetea.me) (/!\ last update: Jan 2014)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) (/!\ last update: Dec 2017)
 - [Fossil](http://www.fossil-scm.org)
-- [Framaslides](https://framagit.org/framasoft/framaslides/) (/!\ last update: Sept 2017)
-- [WebThings Gateway](https://iot.mozilla.org/gateway/)
-- [Geneweb](https://geneweb.tuxfamily.org)
-- [GetSimple CMS](http://get-simple.info)
-- [Git-annex](http://git-annex.branchable.com)
-- [Gitit](https://github.com/jgm/gitit) (/!\ last update: Dec2018)
-- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
+- [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
+- [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
+- [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
+- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)
 - [Gollum](https://github.com/gollum/gollum)
 - [Goploader](https://github.com/Depado/goploader)
 - [Granary](https://github.com/snarfed/granary)
 - [Guacamole](http://guac-dev.org)
-- [Habitica](https://habitica.com/)
+- [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
-- [Hackpad](https://github.com/dropbox/hackpad) (/!\ last update: Jul 2017)
 - [Helpy](https://github.com/helpyio/helpy)
-- [Hexo](https://hexo.io/)
-- [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: Feb 2015)
-- [Icecast 2](http://www.icecast.org)
+- [Hexo](https://hexo.io/) / [github](https://github.com/hexojs/hexo)
+- [Icecast 2](http://www.icecast.org) / [gitlab](https://gitlab.xiph.org/xiph/icecast-server/)
 - [ikiwiki](http://ikiwiki.info)
-- [img.bi](https://github.com/imgbi/img.bi) (/!\ last update: Jan 2016)
-- [InfCloud](https://www.inf-it.com/open-source/clients/infcloud)
 - [Invidious](https://github.com/omarroth/invidious)
-- [Invoice Ninja](https://www.invoiceninja.com)
-- [InvoicePlane](https://invoiceplane.com)
-- [IPFS](https://ipfs.io)
-- [Joplin](http://joplin.cozic.net/)
+- [Invoice Ninja](https://www.invoiceninja.com) / [github](https://github.com/invoiceninja/invoiceninja)
+- [InvoicePlane](https://invoiceplane.com) / [github](https://github.com/InvoicePlane/InvoicePlane)
+- [IPFS](https://ipfs.io) / [github](https://github.com/ipfs/ipfs)
+- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
 - [Jellyfin](https://github.com/jellyfin)
-- [JS Bin](http://jsbin.com/help/2-second-setup)
-- [Kaiwa](http://getkaiwa.com) (/!\ last update: Jan 2016 UNMAINTAINED)
-- [Kin calendar](https://github.com/KinToday) (/!\ last update: Mar 2018)
-- [Kinto](https://github.com/Kinto/formbuilder) ARCHIVED
-- [Kiwix](http://www.kiwix.org/) Offline wikipedia
-- [Known](https://withknown.com)
-- [Koel](http://koel.phanan.net)
-- [Kontalk](https://kontalk.org)
-- [Koozip](http://koozic.net)
-- [KrISS feed](https://github.com/tontof/kriss_feed) (/!\ last update: Dec 2018)
-- [Koken](http://koken.me) (/!\ last update: Nov 2016)
-- [Kune](https://github.com/comunes/kune/) (/!\ last update: Dec 2017)
+- [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
+- [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
+- [Known](https://withknown.com) / [github](https://github.com/idno/known)
+- [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)
+- [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
+- [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
 - [L'atelier](https://github.com/jbl2024/latelier)
-- [Lessy](https://lessy.io)
-- [LibreNews-Server](https://librenews.io)
+- [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
-- [LiquidSoap](http://savonet.sourceforge.net/)
+- [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
 - [LocomotiveCMS](https://github.com/locomotivecms/engine)
-- [Logstalgia](http://logstalgia.io)
-- [Loomio](https://www.loomio.org)
-- [MaidSafe](http://maidsafe.net)
-- [Mailpile](https://www.mailpile.is)
-- [Mailtrain](https://mailtrain.org/)
+- [Loomio](https://www.loomio.org) / [github](https://github.com/loomio/loomio/)
+- [MaidSafe](http://maidsafe.net) / [github](https://github.com/maidsafe)
+- [Mailpile](https://www.mailpile.is) / [github](https://github.com/mailpile/Mailpile)
+- [Mailtrain](https://mailtrain.org/) / [github](https://github.com/Mailtrain-org/mailtrain)
 - [Mautic](https://github.com/mautic/mautic)
-- [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
-- [microblog.pub](https://microblog.pub)
-- [MinigalNano](https://github.com/sebsauvage/MinigalNano) (/!\ last update: Jun 24, 2016)
-- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) (/!\ SSL-Warning)
-- [Modoboa](http://modoboa.org)
+- [microblog.pub](https://microblog.pub) / [github](https://github.com/tsileo/microblog.pub)
+- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) / [github](https://github.com/GothenburgBitFactory/taskwarrior) (/!\ SSL-Warning)
+- [Modoboa](http://modoboa.org) / [github](https://github.com/modoboa/)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/)
+- [MyBB](https://mybb.com/) / [github](https://github.com/mybb)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
-- [Nibbleblog](http://www.nibbleblog.com)
-- [Nuage](https://nuage.kerjean.me/login)
+- [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
+- [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
 - [Ombi](https://github.com/tidusjar/Ombi)
-- [OpenBazaar](https://openbazaar.org)
-- [openHAB](https://www.openhab.org/) - Smart home platform.
-- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
+- [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
+- [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
 - [OpenProject](https://github.com/opf/openproject)
 - [OpenSourceBilling](https://github.com/vteams/open-source-billing)
-- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
+- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution / [github](https://github.com/open-xchange/)
 - [Paperless](https://github.com/danielquinn/paperless)
 - [Paperwork](http://paperwork.rocks)
-- [Passbolt](https://www.passbolt.com) Passwords manager
-- [pdfy](https://github.com/joepie91/pdfy) (/!\ last update: Aug 5, 2014)
-- [Pelias](https://github.com/pelias/pelias)
-- [Peps](https://github.com/MLstate/PEPS)
-- [PHPList](http://www.phplist.com)
-- [PHProxy](http://sourceforge.net/projects/poxy)
-- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#)
-- [Pico](http://picocms.org)
-- [Pix](http://pix.toile-libre.org)
+- [Passbolt](https://www.passbolt.com) Passwords manager / [github](https://github.com/passbolt)
+- [Pelias](https://github.com/pelias/pelias))
+- [PHPList](http://www.phplist.com) / [github](https://github.com/phpList)
+- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) / [github](https://github.com/alchemy-fr/Phraseanet-Docs)
+- [Pico](http://picocms.org) / [github](https://github.com/picocms/Pico)
 - [Playmaker](https://github.com/NoMore201/playmaker)
 - [Privoxy](http://www.privoxy.org)
 - [ProcessMaker](http://www.processmaker.com)
 - [ProtonMail’s WebClient](https://github.com/ProtonMail/WebClient)
 - [PyLoad](https://github.com/pyload/pyload)
-- [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
-- [Pump.io](http://pump.io)
+- [Pump.io](http://pump.io) / [github](https://github.com/pump-io/pump.io)
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
-- [racktables](http://racktables.org)
-- [Race for the Galaxy](https://github.com/bnordli/rftg)
+- [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
 - [Radarr](https://github.com/Radarr/Radarr)
-- [Request Tracker](https://bestpractical.com)
-- [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)
-- [Restya](http://restya.com)
-- [Retroshare](http://retroshare.net/downloads.html)
-- [SABnzbd](https://sabnzbd.org)
+- [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
+- [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
+- [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)
 - [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
-- [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
-- [Scribbleton](https://scribbleton.com)
 - [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
-- [ShareLatex](https://www.sharelatex.com)
-- [Shleuder](http://schleuder2.nadir.org)
-- [Simone](https://github.com/Kloadut/Simone)
+- [ShareLatex](https://www.sharelatex.com) / [github](https://github.com/overleaf/overleaf)
+- [Shleuder](https://schleuder.org/)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
-- [Sonarr](https://sonarr.tv)
-- [Stackedit](https://stackedit.io)
-- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion
+- [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)
+- [Stackedit](https://stackedit.io) / [github](https://github.com/benweet/stackedit)
+- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion / [github](https://github.com/standardnotes/web)
 - [Streisand](https://github.com/jlund/streisand)
 - [Subspace](https://github.com/subspacecloud/subspace) (A simple WireGuard VPN server GUI)
-- [Syspass](http://www.syspass.org/)
-- [Taiga](https://taiga.io)
-- [Tania](http://gettania.org/)
-- [Taskwarrior](https://taskwarrior.org)
-- [TMate](https://tmate.io/)
-- [TorChat](https://github.com/prof7bit/TorChat)
-- [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
-- [Total Respawn](https://github.com/broncowdd/TotalRespawn)
+- [Syspass](http://www.syspass.org/) / [github](https://github.com/nuxsmin/sysPass)
+- [Taiga](https://taiga.io) / [github](https://github.com/taigaio/)
+- [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
+- [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
 - [Tracim](https://github.com/tracim/tracim)
-- [Twister](http://twister.net.co)
-- [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
-- [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
-- [Vaultier](http://www.vaultier.org)
-- [Volumio](https://volumio.org)
-- [Webmpc](https://github.com/ushis/webmpc)
-- [WebODF](http://webodf.org)
-- [webSync](http://furier.github.io/websync)
-- [WebTorrent](https://github.com/feross/webtorrent)
-- [Wireguard](https://www.wireguard.com/)
-- [Xonotic](http://xonotic.org)
-- [YesWiki](https://yeswiki.net)
+- [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
+- [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
+- [Volumio](https://volumio.org) / [github](https://github.com/volumio)
+- [WebODF](http://webodf.org) / [github](https://github.com/webodf/WebODF)
+- [Wireguard](https://www.wireguard.com/) / [git](https://git.zx2c4.com/WireGuard/)
+- [Xonotic](http://xonotic.org) / [gitlab](https://gitlab.com/xonotic)
+- [YesWiki](https://yeswiki.net) / [github](https://github.com/YesWiki/yeswiki)
 - [Zammad](https://github.com/zammad/zammad)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
-- [ZNC](http://wiki.znc.in/ZNC)
-- [Zone-project](https://github.com/descl/ZONE)
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
-- [Zulip](https://zulipchat.com/)
+- [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)

From a4e44650e293cd6de93e650491e1cf2d63bb913f Mon Sep 17 00:00:00 2001
From: Arthur Lutz <arthur.lutz@logilab.fr>
Date: Wed, 2 Oct 2019 17:53:52 +0200
Subject: [PATCH 171/360] Update apps_wishlist.md

Co-Authored-By: Plumf <45500657+Plumf@users.noreply.github.com>
---
 apps_wishlist.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index cc084d95..ca38d89e 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -171,7 +171,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Simone](https://github.com/Kloadut/Simone)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
 - [Sonarr](https://sonarr.tv)
-- [smokeping](https://packages.debian.org/buster/smokeping)   
+- [smokeping](https://packages.debian.org/buster/smokeping)   / [github](https://github.com/oetiker/SmokePing)
 - [SpamGourmet](https://sourceforge.net/projects/spamgourmet/)
 - [Stackedit](https://stackedit.io)
 - [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.

From b9f17ea29e2e3fcca749fa209eafaf79b90d6a5b Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Thu, 3 Oct 2019 15:19:20 +0200
Subject: [PATCH 172/360] Small tweaks and polishing for the landpage

---
 index.md    | 68 +++++++++++++++++++++--------------------------------
 index_fr.md | 64 +++++++++++++++++++------------------------------
 2 files changed, 51 insertions(+), 81 deletions(-)

diff --git a/index.md b/index.md
index 21576d77..7335ef10 100644
--- a/index.md
+++ b/index.md
@@ -30,7 +30,7 @@
 
 <div class="boring-part" markdown="1">
 
-  <h1>YunoHost <small>is a server operating system aiming to make self-hosting accessible to everyone.</small></h1>
+  <h1>YunoHost <small>is an operating system designed for you to easily manage a server for your friends, association or enterprise. <a href="/whatsyunohost" style="font-size:0.6em;">Learn more</a></small></h1>
 
   <div class="home-panel">
     <img src="/images/home_panel.jpg" />
@@ -39,12 +39,13 @@
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try">Try it</a>
     <a class="btn btn-success btn-lg" href="/install">Get started</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
+    <h2 style="margin-top: 0"><small><a href="https://forum.yunohost.org/c/announcement">Latest news</a></small></h2>
   </div>
 
+
   <div class="row cf">
-    <div class="col-md-7">
-      <h1>Install <small>your server with ease, you already have everything at home</small></h1>
+    <div class="col-md-7 text-right">
+      <h1>Setup <small>your server with ease, you already have everything at home</small></h1>
       <p><br /><a href="/hardware">See the requirements</a></p>
     </div>
     <div class="col-md-4">
@@ -57,59 +58,45 @@
   <hr />
 
   <div class="row cf">
-    <div class="col-md-4">
-      <div class="feature-pic">
-        <img src="/images/home_enjoy.jpg" />
-      </div>
-    </div>
-    <div class="col-md-7 text-right">
-      <h1>Enjoy <small>your apps and make your little corner of Internet</small></h1>
-      <p><br /><a href="/apps">List of available apps</a></p>
-    </div>
-  </div>
-
-  <hr />
-
-  <div class="row cf">
-    <div class="col-md-7">
-      <h1>Manage <small>your server the way you like: via Web, mobile or command-line</small></h1>
-      <p><br /><a href="/try">Try the administration</a></p>
-    </div>
     <div class="col-md-4">
       <div class="feature-pic">
         <img src="/images/home_manage.jpg" />
       </div>
     </div>
+    <div class="col-md-7">
+      <h1>Manage <small>your server from a clean and simple web interface</small></h1>
+      <p><br /><a href="/try">Try the administration</a></p>
+    </div>
   </div>
 
   <hr />
 
   <div class="row cf">
-    <div class="col-md-4 button-list">
-      <a class="btn btn-lg btn-block btn-primary" href="/whatsyunohost">About YunoHost</a>
-      <a class="btn btn-lg btn-block btn-info" href="/docs">Documentation</a>
-      <a class="btn btn-lg btn-block btn-success" href="/contribute">Get involved</a>
-      <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org/" target="_blank">Forum</a>
-      <a class="btn btn-lg btn-block btn-default" href="chat_rooms_en" target="_blank">Chat rooms</a>
-      <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Latest news</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr">Support</a>
-    </div>
     <div class="col-md-7 text-right">
-      <h1>Explore <small>what you can do with a server, and why it is important</small></h1>
-      <p><br /><a href="/docs">Read the documentation</a></p>
+      <h1>Install <small>applications to build your little corner of Internet</small></h1>
+      <p><br /><a href="/apps">Browse available apps</a></p>
+    </div>
+    <div class="col-md-4">
+      <div class="feature-pic">
+        <img src="/images/home_enjoy.jpg" />
+      </div>
     </div>
   </div>
 
   <hr />
 
-  <div class="text-center">
-    <h1>Hey! We are humans!<br /><small> If you have questions, problems or if you are just an enthusiast, leave a message on our chatroom by clicking on the button below &nbsp;<span class="glyphicon glyphicon-share-alt"></span> </small></h1>
+  <div class="row cf">
+    <div class="text-center">
+    <h1>Hey! We are humans!<br />
+    <small>If you have questions, issues or if you are just an enthusiast, come and leave a message on our forum or chatroom!</small></h1>
 
-   <p class="liberapay">
-     <a href="https://liberapay.com/YunoHost" target="_blank"><img src="/images/liberapay_logo.svg" alt="Donation button" title="Liberapay" /></a>
-    </p>
-
-  </div>
+    <div class="col-md-4 col-md-offset-4 button-list">
+      <a class="btn btn-lg btn-block btn-info" href="/docs"><span class="glyphicon glyphicon-book"></span> Documentation</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr"><span class="glyphicon glyphicon-comment"></span> Forum and chat</a>
+      <a class="btn btn-lg btn-block btn-success" href="/contribute"><span class="glyphicon glyphicon-heart"></span> Get involved</a>
+      <a class="btn btn-lg btn-block btn-primary" href="https://donate.yunohost.org/" style="background-color: #ffd236; border-color: #ffd236;"><span class="glyphicon glyphicon-usd"></span> Donate</a>
+    </div>
+ </div>
 
 </div><!-- boring-part -->
 
@@ -146,4 +133,3 @@
     });
 
 </script>
-
diff --git a/index_fr.md b/index_fr.md
index d358e760..e2d1faf7 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -26,7 +26,7 @@
 
 <div class="boring-part" markdown="1">
 
-  <h1>YunoHost <small>est un outil qui vous permet d’installer et d’utiliser facilement votre propre serveur.</small></h1>
+  <h1>YunoHost <small>est un système conçu pour gérer facilement un serveur pour ses amis, son asso ou son entreprise. <a href="/whatsyunohost" style="font-size:0.6em;">En savoir plus</a></small></h1>
 
   <div class="home-panel">
     <img src="/images/home_panel.jpg" />
@@ -35,13 +35,13 @@
   <div class="call-to-action">
     <a class="btn btn-primary btn-lg" href="/try_fr">Essayer</a>
     <a class="btn btn-success btn-lg" href="/install_fr">Installer</a>
-    <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
+    <h2 style="margin-top: 0"><small><a href="https://forum.yunohost.org/c/announcement">Dernières nouvelles</a></small></h2>
   </div>
 
   <hr />
 
   <div class="row cf">
-    <div class="col-md-7">
+    <div class="col-md-7 text-right">
       <h1>Installez <small>votre serveur simplement, vous avez déjà tout ce qu’il faut à la maison</small></h1>
       <p><a href="/hardware_fr">Voir les prérequis</a></p>
     </div>
@@ -55,60 +55,44 @@
   <hr />
 
   <div class="row cf">
-    <div class="col-md-4">
-      <div class="feature-pic">
-        <img src="/images/home_enjoy.jpg" />
-      </div>
-    </div>
-    <div class="col-md-7 text-right">
-      <h1>Profitez <small>de vos applications web, et fabriquez votre coin d’Internet</small></h1>
-      <p><br /><a href="/apps_fr">Liste des applications disponibles</a></p>
-    </div>
-  </div>
-
-  <hr />
-
-  <div class="row cf">
-    <div class="col-md-7">
-      <h1>Gérez <small>votre serveur comme vous le voulez : via web, mobile ou ligne de commande</small></h1>
-      <p><br /><a href="/try_fr">Essayez l’interface d’administration</a></p>
-    </div>
     <div class="col-md-4">
       <div class="feature-pic">
         <img src="/images/home_manage.jpg" />
       </div>
     </div>
+    <div class="col-md-7">
+      <h1>Gérez <small>votre serveur depuis une interface web simple et propre</small></h1>
+      <p><br /><a href="/try_fr">Essayez l’interface d’administration</a></p>
+    </div>
   </div>
 
   <hr />
 
   <div class="row cf">
-    <div class="col-md-4 button-list">
-
-      <a class="btn btn-lg btn-block btn-primary" href="/whatsyunohost_fr">Qu’est-ce que YunoHost ?</a>
-      <a class="btn btn-lg btn-block btn-info" href="/docs_fr">Documentation</a>
-      <a class="btn btn-lg btn-block btn-success" href="/contribute_fr">Comment contribuer</a>
-      <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org" target="_blank">Forum</a>
-      <a class="btn btn-lg btn-block btn-default" href="chat_rooms_fr" target="_blank">Salons de discussions</a>
-      <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Dernières nouvelles</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr">Support</a>
-
-    </div>
     <div class="col-md-7 text-right">
-      <h1>Explorez <small>les possibilités de votre serveur, et apprenez pourquoi c’est important</small></h1>
-      <p><br /><a href="/docs_fr">Lire la documentation</a></p>
+      <h1>Construisez <small>votre petit bout d'Internet en ajoutant des applications en quelques clics</small></h1>
+      <p><br /><a href="/apps">Parcourir les applications disponibles</a></p>
+    </div>
+    <div class="col-md-4">
+      <div class="feature-pic">
+        <img src="/images/home_enjoy.jpg" />
+      </div>
     </div>
   </div>
 
   <hr />
 
-  <div class="text-center">
-    <h1>Hey ! Nous sommes humains !<br /><small> Si vous avez une question, un problème, ou que vous êtes tout simplement intéressé, passez dire « Bonjour » sur notre salon de discussion en cliquant sur le bouton en bas &nbsp;<span class="glyphicon glyphicon-share-alt"></span> </small></h1>
+  <div class="row cf">
+    <div class="text-center">
+    <h1>Hey ! Nous sommes humains !<br />
+    <small>Si vous avez une question, un problème, ou que vous êtes tout simplement intéressé, passez dire « Bonjour » sur notre forum ou le chat!</small></h1>
 
-<p class="liberapay">
-      <a href="https://liberapay.com/YunoHost" target="_blank"><img src="/images/liberapay_logo.svg" alt="Donation button" title="Liberapay" /></a>
-    </p>
-    
+    <div class="col-md-4 col-md-offset-4 button-list">
+      <a class="btn btn-lg btn-block btn-info" href="/docs"><span class="glyphicon glyphicon-book"></span> Documentation</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr"><span class="glyphicon glyphicon-comment"></span> Forum et chat</a>
+      <a class="btn btn-lg btn-block btn-success" href="/contribute"><span class="glyphicon glyphicon-heart"></span> Contribuer</a>
+      <a class="btn btn-lg btn-block btn-primary" href="https://donate.yunohost.org/" style="background-color: #ffd236; border-color: #ffd236;"><span class="glyphicon glyphicon-usd"></span> Faire un don</a>
+     </div>
   </div>
 
 </div><!-- boring-part -->

From 879204141ec812587ba886b4f6a18e0f747f54e8 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Thu, 3 Oct 2019 15:38:07 +0200
Subject: [PATCH 173/360] Update and rename donate.md to project_budget.md

---
 donate.md         | 29 -----------------------------
 project_budget.md | 28 ++++++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 29 deletions(-)
 delete mode 100644 donate.md
 create mode 100644 project_budget.md

diff --git a/donate.md b/donate.md
deleted file mode 100644
index 1690d749..00000000
--- a/donate.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# What for?
-Donations are used to cover infrastructure costs (servers, domain names, ..), communication (stickers, conference, ...) and possibly development on the long term. Below is a draft of budget detailing our expected expenses and revenues
-
-# 2019/2020 Budget
-
-## Expected revenues
-
-* Donations via Liberapay: current is 45€/week, so about 2340€/year
-* Grant from NLNet: 20K€, to be used for R&D
-
-## Expected expenses
-
-* Server renting: ~1000€
-   * Forum: 14.4€/month: 172.80€/Year
-   * CI: 20€/mois to be confirmed: 240€/Year
-   * Bearnaise server migration bearnaise: 587.2€
-* Domain names: ~150€
-   * nohost.me: 11.99€HT/Year
-   * ynh.fr: 6.99€HT/Year (voir avec frju?)
-   * noho.st: ~35€ TTC/Year
-   * YunoHost.org: 13.99€HT/Year
-   * YunoHost.com: 9.99€HT/Year
-   * labriqueinter.net: 12.49€Ht/Year
-   * internetcu.be: 17.99€HT/Year
-* Communication: ~200€
-* Travel (e.g. to go to conferences): ~500€
-* Bank account fees: 7x12€ => ~100€
-
-Total is about 2000€
diff --git a/project_budget.md b/project_budget.md
new file mode 100644
index 00000000..9d461450
--- /dev/null
+++ b/project_budget.md
@@ -0,0 +1,28 @@
+# Project budget
+
+# Estimated budget for 2019/2020
+
+## Expected revenues
+
+* Donations via Liberapay: current is about 45€/week, so about 2340€/year
+* Grant from NLNet: 20K€, to be used for R&D (TODO: publish the project plan once validated with NLnet)
+
+## Expected expenses
+
+* Server renting: ~1000€
+   * Forum: 14.4€/month: 172.80€/year
+   * CI: 20€/month (to be confirmed): 240€/year
+   * Bearnaise server migration to a new machine: 587.2€
+* Domain names: ~150€
+   * nohost.me: 11.99€HT/year
+   * ynh.fr: 6.99€HT/year (to be confirmed with frju?)
+   * noho.st: ~35€ TTC/year
+   * YunoHost.org: 13.99€HT/year
+   * YunoHost.com: 9.99€HT/year
+   * labriqueinter.net: 12.49€Ht/year
+   * internetcu.be: 17.99€HT/year
+* Communication: ~200€
+* Travel (e.g. to go to conferences): ~500€
+* Bank account fees: 7x12€ => ~100€
+
+**Total**: about 2000€

From 4bb55a698d36ab8bcaba8c760d9d74c3cb4891f0 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 4 Oct 2019 18:00:57 +0200
Subject: [PATCH 174/360] Update webadmin screenshot

---
 admin.md               |   2 +-
 admin_es.md            |   2 +-
 admin_fr.md            |   2 +-
 images/images.list     |   4 ++--
 images/manage.png      | Bin 25464 -> 0 bytes
 images/manage_en.png   | Bin 16483 -> 0 bytes
 images/webadmin.png    | Bin 0 -> 21128 bytes
 images/webadmin_fr.png | Bin 0 -> 23256 bytes
 8 files changed, 5 insertions(+), 5 deletions(-)
 delete mode 100644 images/manage.png
 delete mode 100644 images/manage_en.png
 create mode 100644 images/webadmin.png
 create mode 100644 images/webadmin_fr.png

diff --git a/admin.md b/admin.md
index d462c05c..288471af 100644
--- a/admin.md
+++ b/admin.md
@@ -7,7 +7,7 @@ Yunohost has an administrator web interface. The other way to administrate your
 You can access your administrator web interface at this address: https://example.org/yunohost/admin (replace 'example.org' with your own domain name)
 
 <div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
-<img src="/images/manage_en.png" style="max-width:100%;">
+<img src="/images/webadmin.png" style="max-width:100%;">
 </div>
 
 
diff --git a/admin_es.md b/admin_es.md
index 3ed8aee7..dc6bea60 100644
--- a/admin_es.md
+++ b/admin_es.md
@@ -7,7 +7,7 @@ Yunohost tiene una interfaz gráfica de administración. El otro método consist
 La interfaz admin está accesible desde tu instancia Yunohost en esta dirección : https://ejemplo.org/yunohost/admin (reemplaza ejemplo.org por tu nombre de dominio)
 
 <div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
-<img src="/images/manage.png" style="max-width:100%;">
+<img src="/images/webadmin.png" style="max-width:100%;">
 </div>
 
 
diff --git a/admin_fr.md b/admin_fr.md
index 7dbcb32a..ec8476e5 100644
--- a/admin_fr.md
+++ b/admin_fr.md
@@ -7,7 +7,7 @@ YunoHost est fourni avec une interface graphique d’administration. L’autre m
 L’interface admin est accessible depuis votre instance YunoHost à l’adresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur)
 
 <div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
-<img src="/images/manage.png" style="max-width:100%;">
+<img src="/images/webadmin_fr.png" style="max-width:100%;">
 </div>
 
 
diff --git a/images/images.list b/images/images.list
index 46cb18ce..585a521b 100644
--- a/images/images.list
+++ b/images/images.list
@@ -28,8 +28,8 @@ logo-jirafeau.jpeg
 logo.png
 Logo-wallabag-svg.svg
 mailview.jpg
-manage_en.png
-manage.png
+webadmin.png
+webadmin_fr.png
 micro-sd-card.jpg
 nettop.jpg
 networks.png
diff --git a/images/manage.png b/images/manage.png
deleted file mode 100644
index 0d653f8a580d7c7fef997f4e714fdbfcd998be73..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 25464
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
N)HBnqym9}x{{qXD9I*fZ

diff --git a/images/manage_en.png b/images/manage_en.png
deleted file mode 100644
index f07e5d5b9fe2e586761c048d2a44b26f45351e88..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 16483
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

diff --git a/images/webadmin.png b/images/webadmin.png
new file mode 100644
index 0000000000000000000000000000000000000000..cfb96101ab1bec58aea7fb2c16da2a082d851872
GIT binary patch
literal 21128
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
U|8N033V>YW1Pbli;BxlzKWEt=!T<mO

literal 0
HcmV?d00001

diff --git a/images/webadmin_fr.png b/images/webadmin_fr.png
new file mode 100644
index 0000000000000000000000000000000000000000..7954be443ca33bc7ee538a139e4c06dd2c1e35c9
GIT binary patch
literal 23256
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

literal 0
HcmV?d00001


From 7e082bd588adc2edb14350ca9840225480c7fa25 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 4 Oct 2019 18:31:37 +0200
Subject: [PATCH 175/360] Use more up to date screenshot

---
 index.md    | 2 +-
 index_fr.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/index.md b/index.md
index 7335ef10..69e00205 100644
--- a/index.md
+++ b/index.md
@@ -60,7 +60,7 @@
   <div class="row cf">
     <div class="col-md-4">
       <div class="feature-pic">
-        <img src="/images/home_manage.jpg" />
+        <img src="/images/webadmin.png" />
       </div>
     </div>
     <div class="col-md-7">
diff --git a/index_fr.md b/index_fr.md
index e2d1faf7..e2939ac1 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -57,7 +57,7 @@
   <div class="row cf">
     <div class="col-md-4">
       <div class="feature-pic">
-        <img src="/images/home_manage.jpg" />
+        <img src="/images/webadmin_fr.jpg" />
       </div>
     </div>
     <div class="col-md-7">

From 21b6f5eda1aba4b8c658f5912aefa4cecfddb131 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 4 Oct 2019 19:07:25 +0200
Subject: [PATCH 176/360] Tweak description on the landpage

---
 index.md    | 2 +-
 index_fr.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/index.md b/index.md
index 69e00205..9d9b6691 100644
--- a/index.md
+++ b/index.md
@@ -30,7 +30,7 @@
 
 <div class="boring-part" markdown="1">
 
-  <h1>YunoHost <small>is an operating system designed for you to easily manage a server for your friends, association or enterprise. <a href="/whatsyunohost" style="font-size:0.6em;">Learn more</a></small></h1>
+  <h1><small>With</small> YunoHost<small>, you can easily manage a server for your friends, association or enterprise.</small> <a href="/whatsyunohost" style="font-size:0.6em;">Learn more</a></small></h1>
 
   <div class="home-panel">
     <img src="/images/home_panel.jpg" />
diff --git a/index_fr.md b/index_fr.md
index e2939ac1..b9683bcf 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -26,7 +26,7 @@
 
 <div class="boring-part" markdown="1">
 
-  <h1>YunoHost <small>est un système conçu pour gérer facilement un serveur pour ses amis, son asso ou son entreprise. <a href="/whatsyunohost" style="font-size:0.6em;">En savoir plus</a></small></h1>
+  <h1><small>Avec</small> YunoHost<small>, gères facilement un serveur pour tes amis, ton asso, ton entreprise.</small> <a href="/whatsyunohost" style="font-size:0.6em;">En savoir plus</a></small></h1>
 
   <div class="home-panel">
     <img src="/images/home_panel.jpg" />

From a5821903a52bcabbbc9e2f0bd5e2b20fe896e38c Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 4 Oct 2019 19:08:42 +0200
Subject: [PATCH 177/360] Rework the more extensive description of YunoHost

---
 whatsyunohost.md    | 5 +----
 whatsyunohost_fr.md | 5 +----
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/whatsyunohost.md b/whatsyunohost.md
index 8fa48a75..2c0c4401 100644
--- a/whatsyunohost.md
+++ b/whatsyunohost.md
@@ -3,10 +3,7 @@ What is YunoHost?
 
 <img src="/images/YunoHost_logo_vertical.png" width=400>
 
-Goal
-----
-
-YunoHost is a **server operating system** aiming to make [self-hosting](selfhosting) accessible to as many people as possible, without taking away from the quality and reliability of the software. YunoHost supports [several kinds of hardware](install). It is based on and fully compatible with [Debian GNU/Linux](https://debian.org).
+YunoHost is an **operating system** aiming to simplify as much as possibly the administration of a **server** and therefore democratize [self-hosting](selfhosting), while making sure it stays reliable, secure, ethical and lightweight. It is a free software project maintained exclusively by volunteers. Technically, it can be seen as a distribution based on [Debian GNU/Linux](https://debian.org) and can be installed on [many kinds of hardware](install).
 
 Features
 --------
diff --git a/whatsyunohost_fr.md b/whatsyunohost_fr.md
index 020b9975..d75724c4 100644
--- a/whatsyunohost_fr.md
+++ b/whatsyunohost_fr.md
@@ -3,10 +3,7 @@ Qu'est-ce que YunoHost ?
 
 <img src="/images/YunoHost_logo_vertical.png" width=400>
 
-Objectif
---------
-
-YunoHost est un **système d’exploitation serveur** visant à rendre accessible [l’auto-hébergement](selfhosting_fr) à autant de personne que possible, sans délaisser la qualité et la fiabilité du logiciel. YunoHost supporte [plusieurs types de matériel](install_fr) et est basé et compatible avec [Debian GNU/Linux](https://debian.org).
+YunoHost est un **système d’exploitation** qui vise à simplifier autant que possible l'administration d'un **serveur** pour ainsi démocratiser [l’auto-hébergement](selfhosting_fr) tout en restant fiable, sécurisé, éthique et léger. C'est un projet de logiciel libre maintenu exclusivement par des bénévoles. Techniquement, il peut être vu comme une distribution basé sur [Debian GNU/Linux](https://debian.org) et peut s'installer sur [de nombreux types de matériel](install_fr).
 
 Fonctionnalités
 ---------------

From 669708fdb7780f5d0a0e9392262ac840fc66609d Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 4 Oct 2019 19:10:13 +0200
Subject: [PATCH 178/360] More tweaks in feature list

---
 whatsyunohost.md    | 13 +++++--------
 whatsyunohost_fr.md | 15 ++++++---------
 2 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/whatsyunohost.md b/whatsyunohost.md
index 2c0c4401..168873bf 100644
--- a/whatsyunohost.md
+++ b/whatsyunohost.md
@@ -9,15 +9,15 @@ Features
 --------
 
 - <img src="/images/icon-debian.png" width=32 style="margin-right:5px"> based on Debian ;
-- <img src="/images/icon-tools.png" width=32 style="margin-right:5px" width=64> administrate your server through a **friendly web admin** ;
-- <img src="/images/icon-package.png" width=32 style="margin-right:5px"> easily **install applications** on your server ;
+- <img src="/images/icon-tools.png" width=32 style="margin-right:5px" width=64> administrate your server through a **friendly web interface** ;
+- <img src="/images/icon-package.png" width=32 style="margin-right:5px"> deploy **applications in just a few clicks** ;
 - <img src="/images/icon-users.png" width=32 style="margin-right:5px"> manage **users** <small>(based on LDAP)</small>;
-- <img src="/images/icon-globe.png" width=32 style="margin-right:5px"> manage **domains** ;
+- <img src="/images/icon-globe.png" width=32 style="margin-right:5px"> manage **domain names** ;
 - <img src="/images/icon-medic.png" width=32 style="margin-right:5px"> create and restore **backups** ;
 - <img src="/images/icon-door.png" width=32 style="margin-right:5px"> connect to all apps simultaneously through the **user portal** <small>(nginx, SSOwat)</small> ;
 - <img src="/images/icon-mail.png" width=32 style="margin-right:5px"> includes a **full email stack** <small>(Postfix, Dovecot, Rspamd, DKIM)</small> ;
 - <img src="/images/icon-messaging.png" width=32 style="margin-right:5px"> ... as well as **an instant messaging server** <small>(XMPP)</small> ;
-- <img src="/images/icon-lock.png" width=32 style="margin-right:5px"> ... a **SSL certificate** management system <small>(intergrated with Let's Encrypt)</small> ;
+- <img src="/images/icon-lock.png" width=32 style="margin-right:5px"> manages **SSL certificates** <small>(based on Let's Encrypt)</small> ;
 - <img src="/images/icon-shield.png" width=32 style="margin-right:5px"> ... and **security systems** <small>(fail2ban, yunohost-firewall)</small> ;
 
 Origin
@@ -32,10 +32,7 @@ All that was needed was an administration interface for Beudbeud's server to mak
 
 Noting the growing enthusiasm around YunoHost and around self-hosting in general, the original developers along with new contributors decided to start work on version 2, more extensible, more powerful, more easy-to-use, and one that makes a nice cup of fair-trade coffee for the elves of Lapland.
 
-Name
-----
-
-**YunoHost** comes from the jargon "Y U NO Host". The [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) should illustrate it:
+The name **YunoHost** comes from the jargon "Y U NO Host". The [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) should illustrate it:
 <div class="text-center"><img style="border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.15);" src="/images/dude_yunohost.jpg"></div>
 
 Development
diff --git a/whatsyunohost_fr.md b/whatsyunohost_fr.md
index d75724c4..148dc856 100644
--- a/whatsyunohost_fr.md
+++ b/whatsyunohost_fr.md
@@ -9,15 +9,15 @@ Fonctionnalités
 ---------------
 
 - <img src="/images/icon-debian.png" width=32 style="margin-right:5px"> basé sur Debian ;
-- <img src="/images/icon-tools.png" width=32 style="margin-right:5px"> administration via une **gentille interface web** ;
-- <img src="/images/icon-package.png" width=32 style="margin-right:5px"> déployez facilement des **applications** ;
-- <img src="/images/icon-users.png" width=32 style="margin-right:5px"> gérez des **utilisateurs** <small>(gérés via LDAP)</small> ;
-- <img src="/images/icon-globe.png" width=32 style="margin-right:5px"> gérez des **domaines** ;
+- <img src="/images/icon-tools.png" width=32 style="margin-right:5px"> administration via une **interface web simple et claire** ;
+- <img src="/images/icon-package.png" width=32 style="margin-right:5px"> déployez des **applications en quelques clics** ;
+- <img src="/images/icon-users.png" width=32 style="margin-right:5px"> ajoutez des **utilisateurs** <small>(gérés via un annuaire LDAP)</small> ;
+- <img src="/images/icon-globe.png" width=32 style="margin-right:5px"> gérez des **noms de domaine** ;
 - <img src="/images/icon-medic.png" width=32 style="margin-right:5px"> créez et restaurez des **sauvegardes** ;
 - <img src="/images/icon-door.png" width=32 style="margin-right:5px"> connexion simultanée à toutes les apps via un **portail utilisateur** <small>(nginx, SSOwat)</small> ;
 - <img src="/images/icon-mail.png" width=32 style="margin-right:5px"> fourni avec un **serveur mail complet** <small>(Postfix, Dovecot, Rspamd, DKIM)</small> ;
 - <img src="/images/icon-messaging.png" width=32 style="margin-right:5px"> ... ainsi qu'un **serveur de messagerie instantanée** <small>(XMPP)</small> ;
-- <img src="/images/icon-lock.png" width=32 style="margin-right:5px"> ... un système de gestion de **certificats SSL** <small>(integration de Let's Encrypt)</small> ;
+- <img src="/images/icon-lock.png" width=32 style="margin-right:5px"> gères les **certificats SSL** <small>(basé sur Let's Encrypt)</small> ;
 - <img src="/images/icon-shield.png" width=32 style="margin-right:5px"> ... et des **systèmes de sécurité** <small>(fail2ban, yunohost-firewall)</small> ;
 
 Origine
@@ -39,10 +39,7 @@ Le but de YunoHost est de rendre accessibles au plus grand nombre l’installati
 
 Tous les efforts sont faits pour simplifier le déploiement sur le plus d’appareils possible et dans toutes les conditions (chez soi, sur son serveur dédié ou sur un VPS).
 
-Nom
----
-
-**YunoHost** vient de l’argot Internet anglais « Y U NO Host » signifiant approximativement « Pourquoi toi ne pas héberger ». Le [mème Internet](http://fr.wikipedia.org/wiki/M%C3%A8me_Internet) qui l’illustre est à peu près celui-ci :
+Le nom **YunoHost** vient de l’argot Internet anglais « Y U NO Host » signifiant approximativement « Pourquoi toi ne pas héberger ». Le [mème Internet](http://fr.wikipedia.org/wiki/M%C3%A8me_Internet) qui l’illustre est à peu près celui-ci :
 <div class="text-center"><img style="border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.15);" src="/images/dude_yunohost.jpg"></div>
 
 Développement

From dca0b5a6e8248a9cc1e92d0675f5361a22a76426 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 4 Oct 2019 19:10:48 +0200
Subject: [PATCH 179/360] Remove those sections which are debatable and/or
 redundant

---
 whatsyunohost.md    | 15 ---------------
 whatsyunohost_fr.md | 21 ---------------------
 2 files changed, 36 deletions(-)

diff --git a/whatsyunohost.md b/whatsyunohost.md
index 168873bf..fea1c453 100644
--- a/whatsyunohost.md
+++ b/whatsyunohost.md
@@ -35,21 +35,6 @@ Noting the growing enthusiasm around YunoHost and around self-hosting in general
 The name **YunoHost** comes from the jargon "Y U NO Host". The [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) should illustrate it:
 <div class="text-center"><img style="border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.15);" src="/images/dude_yunohost.jpg"></div>
 
-Development
------------
-
-YunoHost is developed to be as **simple** and minimally-intrusive as possible, to retain compatibility with Debian. It merely proposes a package of automatic configurations for existing software, and is configurable via simple interfaces.
-
-YunoHost is **entirely** a free software project. The philosophy of self-hosting is, to us, incompatible with any other model of software development.
-
-Do not hesitate to visit the ["contribute" page](/contribute).
-
-Security
---------
-
-The utmost effort is made to keep YunoHost secure, and **communications encrypted**. You can read more about this subject on the related page:
-[https://yunohost.org/security](/security)
-
 What YunoHost is not?
 ---------------------
 
diff --git a/whatsyunohost_fr.md b/whatsyunohost_fr.md
index 148dc856..dcec435b 100644
--- a/whatsyunohost_fr.md
+++ b/whatsyunohost_fr.md
@@ -32,30 +32,9 @@ Il ne manquait en fait qu’une interface d’administration au serveur de Beudb
 
 Constatant l’engouement croissant autour de YunoHost et de l’auto-hébergement en général, les développeurs et les nouveaux contributeurs ont alors décidé de prendre le cap d’une version 2, plus accessible, plus extensible, plus puissante, et qui prépare du bon café commerce équitable pour les lutins de Laponie.
 
-But
----
-
-Le but de YunoHost est de rendre accessibles au plus grand nombre l’installation et l’administration d’un serveur, sans délaisser la qualité et la fiabilité du logiciel. 
-
-Tous les efforts sont faits pour simplifier le déploiement sur le plus d’appareils possible et dans toutes les conditions (chez soi, sur son serveur dédié ou sur un VPS).
-
 Le nom **YunoHost** vient de l’argot Internet anglais « Y U NO Host » signifiant approximativement « Pourquoi toi ne pas héberger ». Le [mème Internet](http://fr.wikipedia.org/wiki/M%C3%A8me_Internet) qui l’illustre est à peu près celui-ci :
 <div class="text-center"><img style="border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.15);" src="/images/dude_yunohost.jpg"></div>
 
-Développement
--------------
-
-YunoHost est développé pour être le plus **simple** et le moins intrusif possible pour garder la compatibilité avec Debian. Il propose uniquement un ensemble de configurations automatiques et opère via des interfaces accessibles.
-
-Le tout est bien entendu **entièrement libre**. La philosophie de l’[auto-hébergement](selfhosting_fr) étant à nos yeux incompatible avec tout autre modèle de développement logiciel.
-
-N’hésitez pas à visiter la page « [contribuez](/contribute_fr) ».
-
-Sécurité
---------
-
-Tous les efforts ont été déployés pour sécuriser YunoHost, et **chiffrer tous les protocoles**. Une explication plus détaillée est disponible [ici](/security_fr).
-
 Qu’est-ce que YunoHost n’est pas ?
 ----------------------------------
 

From 3a62a75e07702af7663a8eab98cc06603bb91e2a Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Sat, 5 Oct 2019 15:46:31 +0200
Subject: [PATCH 180/360] Typo

---
 index_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index_fr.md b/index_fr.md
index 26a43ee5..e3ea6701 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -58,7 +58,7 @@
   <div class="row cf">
     <div class="col-md-4">
       <div class="feature-pic">
-        <img src="/images/webadmin_fr.jpg" />
+        <img src="/images/webadmin_fr.png" />
       </div>
     </div>
     <div class="col-md-7">

From 727038a70296fdd710207b82487266a5abaaa573 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 5 Oct 2019 21:36:37 +0000
Subject: [PATCH 181/360] Orthographe/grammaire/typo

---
 app_nextcloud_fr.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index b7a998d5..7cd7c1cd 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -144,15 +144,15 @@ A présent, le problème est corrigé.
 
 # Nextcloud et Cloudflare
 
-Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens propose de créer une règle ayant pour effet de désactivé tous les options relié à la sécurité et à la vitesse de Cloudflare pour l'url pointant sur votre instance Nextcloud. Malgré que cela fonctionne, ce n'est pas la solution optimial. Je vous propose, certes de créé une règle pour l'url pointant sur votre instance Nextcloud mais de désactivé seulement 2 options. Voici donc comment:
+Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens proposent de créer une règle ayant pour effet de désactiver toutes les options reliées à la sécurité et à la vitesse de Cloudflare pour l'URL pointant sur votre instance Nextcloud. Bien que cela fonctionne, ce n'est pas la solution optimale. Je vous propose, certes de créer une règle pour l'URL pointant sur votre instance Nextcloud, mais de désactiver seulement 2 options. Voici donc comment :
 
 ## Cloudflare Page Rules
 
-Dans le panneau de controle de Cloudflare choisissez votre domaine et trouver Page Rules
-l'url dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
+Dans le panneau de contrôle de Cloudflare, choisissez votre domaine et trouvez Page Rules
+l'URL dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
 ### Ajouter une règle
-La règle à ajouter doit s'appliquer pour l'url de votre instance Nextcloud soit:
-- `https://nextcloud.domain.tld/*` si vous utilisez un sous domain
+La règle à ajouter doit s'appliquer pour l'URL de votre instance Nextcloud soit :
+- `https://nextcloud.domain.tld/*` si vous utilisez un sous-domaine
 - `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire
 Les options à désactiver (Off) sont :
 - Rocket Loader

From 7d05718ecb87581cf76a2fdc1bb57926ecc817c6 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 6 Oct 2019 20:21:23 +0000
Subject: [PATCH 182/360] Italian translation (corrected)

---
 app_ffsync_it.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 app_ffsync_it.md

diff --git a/app_ffsync_it.md b/app_ffsync_it.md
new file mode 100644
index 00000000..341a4bf8
--- /dev/null
+++ b/app_ffsync_it.md
@@ -0,0 +1,15 @@
+# Firefox Sync
+Firefox Sync permette la sincronizzazione di plugin, schede, segnalibri, preferiti e cronologia fra diverse istanze di Firefox.
+
+### Configurazione di Firefox
+#### Firefox versione desktop
+Nella barra degli indirizzi di Firefox inserite: `about:config`.
+
+Cercate: `identity.sync.tokenserver.uri`.
+
+Modificate l'indirizzo trovato in: https://mydomain.tld/path/token/1.0/sync/1.5
+
+Create un account su Mozilla: https://accounts.firefox.com/signup
+
+#### Firefox versione mobile
+Nell'ultima versione di Firefox mobile la procedura è identica a quella per la versione desktop.
\ No newline at end of file

From 7a9630c91167e8edb2581e2f4e96049b589b97d5 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 6 Oct 2019 20:21:47 +0000
Subject: [PATCH 183/360] Italian translation (corrected)

---
 index_it.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/index_it.md b/index_it.md
index 870ec5c3..a1fd7c7d 100644
--- a/index_it.md
+++ b/index_it.md
@@ -9,6 +9,7 @@
       <span class="yolo 1" style="color: #FF3399;">Self-hosting for you, mom</span>
       <span class="yolo 2" style="color: #6699FF;">Haters gonna host</span>
       <span class="yolo 3" style="color: #66FF33;">I host myself, Yo!</span>
+With the last version of firefox mobile it's same than for desktop.
       <span class="yolo 4" style="color: #00FFCC;">Go host yourself!</span>
       <span class="yolo 5" style="color: #FF5050;">Get off of my cloud</span>
       <span class="yolo 6" style="color: #FF0066;">Host me I’m famous</span>
@@ -97,7 +98,7 @@
       <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr">Supporto</a>
     </div>
     <div class="col-md-7 text-right">
-      <h1>Esplora <small>cosa puoi fare con un server, e perchè è importante</small></h1>
+      <h1>Esplora <small>cosa puoi fare con un server, e perché è importante</small></h1>
       <p><br /><a href="/docs">Leggi la documentazione</a></p>
     </div>
   </div>

From 10eb422e9d5516eb6c3d8e1ab701d8dff66d393a Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 7 Oct 2019 03:27:13 +0000
Subject: [PATCH 184/360] Edited list to be 1, 2 , 3, 4 instead of just 1. And
 uses . instead of ) to get proper lines

---
 packaging_apps_start.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/packaging_apps_start.md b/packaging_apps_start.md
index 6693194a..a6130781 100644
--- a/packaging_apps_start.md
+++ b/packaging_apps_start.md
@@ -18,10 +18,10 @@ This is what application packaging is, a series of scripts that automate the ins
 
 From the final user perspective, it is as simple as it can be:
 
-1) Pick an application
-1) Fill a form
-1) Wait
-1) Application is ready to use
+1. Pick an application
+2. Fill a form
+3. Wait
+4. Application is ready to use
 
 There is more to see backstage:
 First, when the application is selected, Yunohost will retrieve the corresponding package from github. eg: [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh).

From 82ebb689d7f1fb84fb9a075fbca2e8a862cca616 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 7 Oct 2019 21:44:36 +0000
Subject: [PATCH 185/360] =?UTF-8?q?=C3=9Cbersetzung=20begonnen.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app_dokuwiki_de.md | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 app_dokuwiki_de.md

diff --git a/app_dokuwiki_de.md b/app_dokuwiki_de.md
new file mode 100644
index 00000000..9f997374
--- /dev/null
+++ b/app_dokuwiki_de.md
@@ -0,0 +1,13 @@
+#New DokuWiki
+========
+
+Homepage: https://dokuwiki.org
+
+DokuWiki ist eine Wiki Anwendung, lizensiert unter der GPLv2, geschrieben in der PHP Programmsprache, arbeitet mit einfachen Textdateien und braucht deshalb keine Datenbank. Die Syntax ähnelt der von Mediawiki. Mehr in der Wikipedia.
+
+Entwickler: Andreas Gohr, et al.
+
+Betriebssystem: Cross-platform
+Plattform:PHP
+
+Lizenz: GNU General Public License

From 9561ef46503f2c5cd7e964195062231adc7b262b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anton=20Str=C3=B6mkvist?= <anton@stromkvist.com>
Date: Wed, 9 Oct 2019 17:01:41 +0200
Subject: [PATCH 186/360] Fix mistakes in packagin_apps_start.md

---
 packaging_apps_start.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/packaging_apps_start.md b/packaging_apps_start.md
index a6130781..9cbecf34 100644
--- a/packaging_apps_start.md
+++ b/packaging_apps_start.md
@@ -35,9 +35,9 @@ The install script will handle the user answers to complete the process as you w
 
 If the user wants to delete the application, Yunohost will use the remove script from the "*scripts*" folder. It will handle the cleaning process for the user and delete all folders and configuration files that was previsouly installed by the application.
 
-### What is a script
+### What is a script?
 
-Scripts used during application packaging are simply a serie of bash commands.
+Scripts used during application packaging are simply a series of bash commands.
 
 ### ... bash command?
 
@@ -49,7 +49,7 @@ Package scripts are therefore a series of bash commands as if you had typed them
 
 To know what you can write in a bash script, you should start reading this [simple tutorial](https://debian-facile.org/doc:programmation:shells:debuter-avec-les-scripts-shell-bash) or this [more advanced one](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/index.html).
 
-### Ok, I'm good ! Where do I start?
+### Ok, I'm good! Where do I start?
 
 Before starting the packaging process, you need to successfully install the application. The script will only perform what you instruct it to do.
 

From bbe8edfdeb1185b0cae8b7e4e4b29879352ed833 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Wed, 9 Oct 2019 20:56:18 +0200
Subject: [PATCH 187/360] Update app_ffsync_it.md

---
 app_ffsync_it.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/app_ffsync_it.md b/app_ffsync_it.md
index 341a4bf8..c83e4b64 100644
--- a/app_ffsync_it.md
+++ b/app_ffsync_it.md
@@ -1,8 +1,8 @@
 # Firefox Sync
 Firefox Sync permette la sincronizzazione di plugin, schede, segnalibri, preferiti e cronologia fra diverse istanze di Firefox.
 
-### Configurazione di Firefox
-#### Firefox versione desktop
+## Configurazione di Firefox
+### Firefox versione desktop
 Nella barra degli indirizzi di Firefox inserite: `about:config`.
 
 Cercate: `identity.sync.tokenserver.uri`.
@@ -11,5 +11,5 @@ Modificate l'indirizzo trovato in: https://mydomain.tld/path/token/1.0/sync/1.5
 
 Create un account su Mozilla: https://accounts.firefox.com/signup
 
-#### Firefox versione mobile
-Nell'ultima versione di Firefox mobile la procedura è identica a quella per la versione desktop.
\ No newline at end of file
+### Firefox versione mobile
+Nell'ultima versione di Firefox mobile la procedura è identica a quella per la versione desktop.

From c77adb41fa0060d06a3dd51b52c70f8ae224bc0b Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Wed, 9 Oct 2019 20:57:49 +0200
Subject: [PATCH 188/360] Update index_it.md

---
 index_it.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/index_it.md b/index_it.md
index a1fd7c7d..abc4c5e8 100644
--- a/index_it.md
+++ b/index_it.md
@@ -9,7 +9,6 @@
       <span class="yolo 1" style="color: #FF3399;">Self-hosting for you, mom</span>
       <span class="yolo 2" style="color: #6699FF;">Haters gonna host</span>
       <span class="yolo 3" style="color: #66FF33;">I host myself, Yo!</span>
-With the last version of firefox mobile it's same than for desktop.
       <span class="yolo 4" style="color: #00FFCC;">Go host yourself!</span>
       <span class="yolo 5" style="color: #FF5050;">Get off of my cloud</span>
       <span class="yolo 6" style="color: #FF0066;">Host me I’m famous</span>

From 1376de666b22547b3ebf12c477c1449cb0330672 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Wed, 9 Oct 2019 23:31:50 +0200
Subject: [PATCH 189/360] Updating documentation following changes in the PRs

---
 groups_and_permissions.md | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index a24b5a7c..6b89207d 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -12,13 +12,13 @@ Using groups is however useful for semantic, for example if you host multiple gr
 
 ### List existing groups
 
-To list the currently existing groups : 
+To list the currently existing groups :
 
 ```bash
 $ yunohost user group list
-groups: 
-  all_users: 
-    members: 
+groups:
+  all_users:
+    members:
       - alice
       - bob
       - charlie
@@ -43,7 +43,7 @@ $ yunohost user group update yolo_crew --add charlie delphine
 
 (similarly, `--remove` can be used to remove members from a group)
 
-Now in the group list we should see : 
+Now in the group list we should see :
 
 ```bash
 $ yunohost user group list
@@ -79,14 +79,14 @@ To list permissions and corresponding accesses:
 
 ```bash
 $ yunohost user permission list
-permissions: 
-  mail.main: 
+permissions:
+  mail.main:
     allowed: all_users
-  wordpress.admin: 
-    allowed: 
-  wordpress.main: 
+  wordpress.admin:
+    allowed:
+  wordpress.main:
     allowed: all_users
-  xmpp.main: 
+  xmpp.main:
     allowed: all_users
 ```
 
@@ -108,7 +108,7 @@ Note that you can also allow a single user:
 $ yunohost user permission update wordpress.admin --add alice
 ```
 
-And now we may see that both the YoloCrew and Alice have access to the wordpress admin interface : 
+And now we may see that both the YoloCrew and Alice have access to the wordpress admin interface :
 
 ```bash
 $ yunohost user permission list
@@ -120,7 +120,7 @@ $ yunohost user permission list
   [...]
 ```
 
-Note that, for example, if we want to restrict permission for email so that only Bob, we should also remove `all_users` from the permission : 
+Note that, for example, if we want to restrict permission for email so that only Bob, we should also remove `all_users` from the permission :
 
 ```bash
 $ yunohost user permission update mail --remove all_users --add bob
@@ -129,17 +129,17 @@ $ yunohost user permission update mail --remove all_users --add bob
 ### Notes for apps packagers
 
 By default, installing an app creates the permission `$app.main` with `all_users` allowed by default.
-If you want to create a custom permission for your app (e.g. to restrict access to an admin interface) you may use the following helpers: 
+
+If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special groups `visitors`:
 
 ```bash
-ynh_permission_create --permission "admin" --urls "$domain$path_url/admin"
-ynh_permission_update --permission "admin" --add "$admin_user"
+ynh_permission_update --permission "main" --remove "all_users" --add "visitors"
 ```
 
-For now, inside the `change_url` script, you need to take care of updating the url corresponding to your permission:
+If you wish to create a custom permission for your app (e.g. to restrict access to an admin interface) you may use the following helpers:
 
 ```bash
-ynh_permission_urls --permission "admin" --remove "$old_domain$old_path_url/admin" --add "$domain$path_url/admin"
+ynh_permission_create --permission "admin" --url "/admin" --allowed "$admin_user"
 ```
 
-However, you don't need to take care of removing permissions or backing up/restoring them as it is handled by the core of YunoHost.
+You don't need to take care of removing permissions or backing up/restoring them as it is handled by the core of YunoHost.

From a782f0938cf32db422a93a77476a4b7e9ab528bb Mon Sep 17 00:00:00 2001
From: GannonTdW <32203939+GannonTdW@users.noreply.github.com>
Date: Thu, 10 Oct 2019 00:30:31 +0200
Subject: [PATCH 190/360] typo error

---
 project_budget.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/project_budget.md b/project_budget.md
index 9d461450..ae733961 100644
--- a/project_budget.md
+++ b/project_budget.md
@@ -19,7 +19,7 @@
    * noho.st: ~35€ TTC/year
    * YunoHost.org: 13.99€HT/year
    * YunoHost.com: 9.99€HT/year
-   * labriqueinter.net: 12.49€Ht/year
+   * labriqueinter.net: 12.49€HT/year
    * internetcu.be: 17.99€HT/year
 * Communication: ~200€
 * Travel (e.g. to go to conferences): ~500€

From 5278b5567700e433ae17c9ca1489cd61bf66fba8 Mon Sep 17 00:00:00 2001
From: GannonTdW <32203939+GannonTdW@users.noreply.github.com>
Date: Thu, 10 Oct 2019 00:31:25 +0200
Subject: [PATCH 191/360] Create project_budget_fr.md

---
 project_budget_fr.md | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 project_budget_fr.md

diff --git a/project_budget_fr.md b/project_budget_fr.md
new file mode 100644
index 00000000..08f6d596
--- /dev/null
+++ b/project_budget_fr.md
@@ -0,0 +1,28 @@
+# Budget du projet
+
+# Budget prévisionnel pour 2019/2020
+
+## Revenus attendus
+
+* Dons via Liberapay: environ 45 € / semaine, soit environ 2340 € / an
+* Subvention de NLNet: 20K €, à utiliser pour la R&D (TODO: publier le plan de projet une fois validé avec NLnet)
+
+## Dépenses prévues
+
+* Location Server: ~1000€
+   * Forum: 14.4€/mois: 172.80€/ans
+   * CI: 20€/mois (à confirmer): 240€/mois
+   * Mifration du serveur "Bearnaise" sur une nouvelle machine: 587.2€
+* Noms de domaines: ~150€
+   * nohost.me: 11.99€HT/ans
+   * ynh.fr: 6.99€HT/ans (doit être confirmer avec frju?)
+   * noho.st: ~35€ TTC/ans
+   * YunoHost.org: 13.99€HT/ans
+   * YunoHost.com: 9.99€HT/ans
+   * labriqueinter.net: 12.49€Ht/ans
+   * internetcu.be: 17.99€HT/ans
+* Communication: ~200€
+* Déplacements (ex: aller aux conférences): ~500€
+* Compte banquaire fees: 7x12€ => ~100€
+
+**Total**: environ 2000€

From f877775267a415979bf81c6e0bd37e1faf128929 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 10 Oct 2019 18:50:47 +0000
Subject: [PATCH 192/360] Changed configuration box link to English page

---
 isp.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/isp.md b/isp.md
index 04343253..25590358 100644
--- a/isp.md
+++ b/isp.md
@@ -1,6 +1,6 @@
 # Internet service providers
 
-<a class="btn btn-lg btn-default" href="/isp_box_config_fr"> Main configuration box</a>
+<a class="btn btn-lg btn-default" href="/isp_box_config_en"> Main configuration box</a>
 
 Here is a non-comprehensive list of internet service providers by country, which contains criteria about tolerance to self-hosting.
 

From 522ddfe5fc5853a270028f5627be45c9b80367d8 Mon Sep 17 00:00:00 2001
From: frju365 <abld@abld.info>
Date: Fri, 11 Oct 2019 08:43:23 +0200
Subject: [PATCH 193/360] Typos

---
 project_budget_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/project_budget_fr.md b/project_budget_fr.md
index 08f6d596..d73a948b 100644
--- a/project_budget_fr.md
+++ b/project_budget_fr.md
@@ -12,8 +12,8 @@
 * Location Server: ~1000€
    * Forum: 14.4€/mois: 172.80€/ans
    * CI: 20€/mois (à confirmer): 240€/mois
-   * Mifration du serveur "Bearnaise" sur une nouvelle machine: 587.2€
-* Noms de domaines: ~150€
+   * Migration du serveur "Bearnaise" sur une nouvelle machine: 587.2€
+* Noms de domaine: ~150€
    * nohost.me: 11.99€HT/ans
    * ynh.fr: 6.99€HT/ans (doit être confirmer avec frju?)
    * noho.st: ~35€ TTC/ans

From 5918357a6c3f33595d38a42859685d9795c5a54f Mon Sep 17 00:00:00 2001
From: Bernard <bernard@ei8fdb.org>
Date: Sun, 13 Oct 2019 20:35:03 +0100
Subject: [PATCH 194/360] Updating XMPP (_en) docs to make explicit how to use
 XMPP account.

---
 XMPP.md | 57 +++++++++++++++++++++++++++++++++------------------------
 1 file changed, 33 insertions(+), 24 deletions(-)

diff --git a/XMPP.md b/XMPP.md
index 85a30665..fdff0d24 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -1,53 +1,62 @@
 # Chat, VoIP and social network with <img src="/images/XMPP_logo.png" width=100>
 
-YunoHost comes installed with an instant messaging server Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol).
+YunoHost comes installed with an instant messaging server Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol)(previously known as Jabber), by default.
 
-XMPP is an open and extensible protocol which allows to create chatrooms, to share status and data, to give calls in VoIP and videoconferences.
+This protocol is already used by millions of people around the world - it is an open protocol. All applications based on XMPP are compatible with each other: when using an XMPP client, you can interact with anybody who has an XMPP account.
 
-All applications based on XMPP are compatible with each other : when using an XMPP client, you can interact with anybody who has an XMPP/Jabber account. This protocol is already used by millions of people around the world.
+XMPP is an extensible protocol - this means users can configure "extensions" to chatrooms, to share messages and files, and to make voice and video calls using XMPP.
 
-### XMPP/Jabber account
+## XMPP account
 
-An XMPP/Jabber account is based on an identifier with the structure `user@domain.tld`, and a password.
+To use an XMPP account you need a username, which takes the format: `user@domain.tld`, and a password.
 
-In YunoHost, this identifier simply corresponds to the main email address of a user, with his regular password.
+With YunoHost, an XMPP account is created for a registered account automatically. The XMPP account can be used with the main email address and her YunoHost password.
 
-### Connecting to XMPP 
+## Connecting to your YunoHost XMPP account
 
-There are several web client built with social network features :
+You can connect to your YunoHost XMPP account in different ways.
+
+### Web clients
+
+There are several XMPP web clients:
 - [Movim](https://pod.movim.eu)
 - [Libervia/Salut à Toi](http://salut-a-toi.org/).
 
+
+### Desktop clients
+
 You can also use a desktop client such as :
-- [Pidgin](http://pidgin.im/) (multiplatform), 
+- [Pidgin](http://pidgin.im/) (multiplatform),
 - [Gajim](http://gajim.org/) (Linux, Windows),
 - [Dino](https://dino.im) (Linux),
-- [Thunderbird](https://www.thundebird.net/) (multiplatform), 
-- [Jitsi](http://jitsi.org/) (multiplatform) 
+- [Thunderbird](https://www.thundebird.net/) (multiplatform),
+- [Jitsi](http://jitsi.org/) (multiplatform)
 - [Adium](https://adium.im/) (Mac OS).
 
-... or a mobile client
-* [Xabber](http://xabber.com) (Android)
-* [Conversations](https://conversations.im/) (Android)
-* [Movim under Android](https://movim.eu)
-* [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
+### Mobile clients
+
+Or a mobile client such as:
+- [Xabber](http://xabber.com) (Android)
+- [Conversations](https://conversations.im/) (Android)
+- [Movim under Android](https://movim.eu)
+- [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
 
 Here is an exhaustive list of XMPP clients : https://en.wikipedia.org/wiki/Comparison_of_XMPP_clients
 
-### Encrypt conversations with OMEMO
+## Encrypt conversations with OMEMO
 
-XMPP chats can be encrypted with the help of [OMEMO](https://xmpp.org/extensions/xep-0384.html), for instance using Gajim :
-* Install `gajim` and the plugin `gajim-omemo`
-* Enable the plugin in `Tools > Plugins`
-* Enable it
-* Enable the encryption in the chat with somebody who also has OMEMO
+XMPP chats can be made secure and private using [OMEMO] encryption (https://xmpp.org/extensions/xep-0384.html), for instance using Gajim:
+- Install `gajim` and the plugin `gajim-omemo`
+- Enable the plugin in `Tools > Plugins`
+- Enable it
+- Enable the encryption in the chat with somebody who also has OMEMO
 
-### Chatrooms
+## Chatrooms
 
 To create a chatroom (multi-user chat) on your YunoHost server, use the identifier `chatroomname@muc.yourdomain.tld`.
 
 For this to work you need to [add the corresponding `muc.` DNS record](dns_config_fr) in the DNS configuration.
 
-### VoIP and videoconferences
+## VoIP and videoconferences
 
 A practical tool to call an XMPP client, either with voice or voice+video, is to use the client [Jitsi](http://jitsi.org/).

From 7531a8cdf2795c0066b6b0b9700e3d5b2d7f3ad7 Mon Sep 17 00:00:00 2001
From: Bernard Tyers <ei8fdb@users.noreply.github.com>
Date: Sun, 13 Oct 2019 20:48:41 +0100
Subject: [PATCH 195/360] Update XMPP.md

yep!

Co-Authored-By: Alexandre Aubin <alex.aubin@mailoo.org>
---
 XMPP.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/XMPP.md b/XMPP.md
index fdff0d24..1746bec8 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -10,7 +10,7 @@ XMPP is an extensible protocol - this means users can configure "extensions" to
 
 To use an XMPP account you need a username, which takes the format: `user@domain.tld`, and a password.
 
-With YunoHost, an XMPP account is created for a registered account automatically. The XMPP account can be used with the main email address and her YunoHost password.
+With YunoHost, an XMPP account is created for all YunoHost users automatically. The XMPP account credentials corresponds to the user's main email address and password.
 
 ## Connecting to your YunoHost XMPP account
 

From 3068ab1113e4589e5d3babefc5dda82a52552d4a Mon Sep 17 00:00:00 2001
From: Bernard Tyers <ei8fdb@users.noreply.github.com>
Date: Sun, 13 Oct 2019 20:49:02 +0100
Subject: [PATCH 196/360] Update XMPP.md

:thumbs_up:

Co-Authored-By: Alexandre Aubin <alex.aubin@mailoo.org>
---
 XMPP.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/XMPP.md b/XMPP.md
index 1746bec8..e08958b1 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -18,7 +18,6 @@ You can connect to your YunoHost XMPP account in different ways.
 
 ### Web clients
 
-There are several XMPP web clients:
 - [Movim](https://pod.movim.eu)
 - [Libervia/Salut à Toi](http://salut-a-toi.org/).
 

From dd44f0686af40a0bcca7440cc268dd0c30987514 Mon Sep 17 00:00:00 2001
From: Bernard Tyers <ei8fdb@users.noreply.github.com>
Date: Sun, 13 Oct 2019 20:49:23 +0100
Subject: [PATCH 197/360] Update XMPP.md

Co-Authored-By: Alexandre Aubin <alex.aubin@mailoo.org>
---
 XMPP.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/XMPP.md b/XMPP.md
index e08958b1..cda985f0 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -24,7 +24,6 @@ You can connect to your YunoHost XMPP account in different ways.
 
 ### Desktop clients
 
-You can also use a desktop client such as :
 - [Pidgin](http://pidgin.im/) (multiplatform),
 - [Gajim](http://gajim.org/) (Linux, Windows),
 - [Dino](https://dino.im) (Linux),

From e32315551f26bd016ec685ee3e53fcc6f84cb145 Mon Sep 17 00:00:00 2001
From: Bernard Tyers <ei8fdb@users.noreply.github.com>
Date: Sun, 13 Oct 2019 20:49:51 +0100
Subject: [PATCH 198/360] Update XMPP.md

Co-Authored-By: Alexandre Aubin <alex.aubin@mailoo.org>
---
 XMPP.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/XMPP.md b/XMPP.md
index cda985f0..3a583704 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -1,6 +1,6 @@
 # Chat, VoIP and social network with <img src="/images/XMPP_logo.png" width=100>
 
-YunoHost comes installed with an instant messaging server Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol)(previously known as Jabber), by default.
+YunoHost comes installed by default with an instant messaging server Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (previously known as Jabber).
 
 This protocol is already used by millions of people around the world - it is an open protocol. All applications based on XMPP are compatible with each other: when using an XMPP client, you can interact with anybody who has an XMPP account.
 

From 193df328dc040455d1eee1ffa281e32a7d4b5b05 Mon Sep 17 00:00:00 2001
From: Bernard Tyers <ei8fdb@users.noreply.github.com>
Date: Sun, 13 Oct 2019 20:51:33 +0100
Subject: [PATCH 199/360] Update XMPP.md

Co-Authored-By: Alexandre Aubin <alex.aubin@mailoo.org>
---
 XMPP.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/XMPP.md b/XMPP.md
index 3a583704..5fb4a6ea 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -33,7 +33,6 @@ You can connect to your YunoHost XMPP account in different ways.
 
 ### Mobile clients
 
-Or a mobile client such as:
 - [Xabber](http://xabber.com) (Android)
 - [Conversations](https://conversations.im/) (Android)
 - [Movim under Android](https://movim.eu)

From 9a3310a65143692deca4d7466d366aa6353ba401 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 13 Oct 2019 21:54:28 +0200
Subject: [PATCH 200/360] Propagate changes on french page

---
 XMPP_fr.md | 47 ++++++++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 21 deletions(-)

diff --git a/XMPP_fr.md b/XMPP_fr.md
index f1e663b0..e38c6300 100644
--- a/XMPP_fr.md
+++ b/XMPP_fr.md
@@ -1,32 +1,37 @@
 #Chat, VoIP et réseau social avec <img src="/images/XMPP_logo.png" width=100>
 
-Yunohost est installé avec un serveur de messagerie instantanée Metronome qui implémente le [protocole XMPP](https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol).
+Yunohost est installé par défaut avec un serveur de messagerie instantanée Metronome qui implémente le [protocole XMPP](https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (anciennement connu sous le nom Jabber).
 
-XMPP est un protocole ouvert et extensible qui permet également de créer des salons de discussions, de partager des statuts et des données, de passer des appels en VoIP et de faire de la visioconférence.
+Ce protocole est déjà utilisé par des millions de personnes dans le monde - c'est un protocole ouvert. Toutes les applications basées sur XMPP sont compatibles entre elles : lorsque vous utilisez un client XMPP, vous pouvez interagir avec quiconque possède un compte XMPP.
 
-Toutes les applications basées sur XMPP sont compatibles entre-elles : lorsque vous utilisez un client XMPP vous pouvez discuter avec n’importe quel possesseur d’un compte XMPP/Jabber. Ce protocole est déjà utilisé par des millions de personnes dans le monde.
+XMPP est un protocole extensible - cela signifie que les utilisateurs peuvent configurer des "extensions" pour les salons de discussions, partager des messages et des fichiers, et passer des appels voix et vidéo en utilisant XMPP.
 
-### Compte XMPP/Jabber
+## Compte XMPP
 
-Un compte XMPP/Jabber est basé sur un identifiant sous la forme `utilisateur@domaine.tld`, ainsi qu’un mot de passe.
+Pour utiliser XMPP, il est nécessaire de disposer d'un compte dont l'identifiant prends la forme `utilisateur@domaine.tld`, ainsi qu’un mot de passe.
 
-Sous Yunohost, cet identifiant correspond simplement à l’adresse courriel principale d’un utilisateur. Le mot de passe est celui du compte de l’utilisateur.
+Sous Yunohost, un compte XMPP est créé automatiquement pour chaque utilisateur. Les identifiants XMPP sont simplement l’adresse courriel principale de l'utilisateur ainsi que son mot de passe.
 
-### Se connecter à XMPP
+## Se connecter à son compte XMPP YunoHost
+
+Il existe différents types de clients pour se connecter à XMPP.
+
+### Clients web
 
-Il existe des clients web orientés réseau social, comme :
 - [Movim](https://pod.movim.eu)
 - [Libervia/Salut à Toi](http://salut-a-toi.org/).
 
-Vous pouvez également utiliser un client desktop comme 
-- [Pidgin](http://pidgin.im/) (multiplateforme), 
+### Clients de bureau
+
+- [Pidgin](http://pidgin.im/) (multiplateforme),
 - [Gajim](http://gajim.org/index.fr.html) (Linux, Windows),
 - [Dino](https://dino.im) (Linux),
-- [Thunderbird](https://www.mozilla.org/fr/thunderbird/) (multiplateforme), 
-- [Jitsi](http://jitsi.org/) (multiplateforme) 
+- [Thunderbird](https://www.mozilla.org/fr/thunderbird/) (multiplateforme),
+- [Jitsi](http://jitsi.org/) (multiplateforme)
 - [Adium](https://adium.im/) (Mac OS).
 
-... ou un client smartphone
+### Clients sur mobile
+
 * [Xabber](http://xabber.com) (Android)
 * [Conversations](https://conversations.im/) (Android)
 * [Movim sous Android](https://movim.eu)
@@ -34,20 +39,20 @@ Vous pouvez également utiliser un client desktop comme
 
 Voici une liste plus exhaustive des clients XMPP : https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP
 
-### Chiffrer ses conversations avec OMEMO
+## Chiffrer ses conversations avec OMEMO
 
-Il est possible de chiffrer ses conversations XMPP à l’aide de [OMEMO](https://xmpp.org/extensions/xep-0384.html), notamment en utilisant Gajim :
-* Installer `gajim` et le plugin `gajim-omemo`
-* Activez le plugins dans `Outils > Plugins`
-* L'activer
-* Activez le chiffrement dans une conversation avec un contact disposant de OMEMO.
+Il est possible de rendre les conversations plus sécurisées et privées en les chiffrants à l'aide de [OMEMO](https://xmpp.org/extensions/xep-0384.html), notamment en utilisant Gajim :
+- Installer `gajim` et le plugin `gajim-omemo`
+- Activez le plugins dans `Outils > Plugins`
+- L'activer
+- Activez le chiffrement dans une conversation avec un contact disposant de OMEMO.
 
-### Salon de discussion
+## Salon de discussion
 
 Pour créer un salon de discussion (Multi-user chat) sur votre serveur Yunohost utilisez l’identifiant nomsalon@muc.domaine.tld (où domaine.tld est le domaine principal de votre serveur).
 
 Si vous utilisez un nom de domaine personnel, il est nécessaire d’[ajouter une redirection de type CNAME pour le sous domaine `muc.`](dns_config_fr) au niveau de votre serveur DNS.
 
-### VoIP et visioconférence
+## VoIP et visioconférence
 
 Un moyen pratique d’appeler un contact XMPP, en VoIP ou en appel vidéo, est d’utiliser le client [Jitsi](http://jitsi.org/).

From 76e4ae2999b037709a63bb4d520d0ff783be7433 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Mon, 14 Oct 2019 17:44:26 +0200
Subject: [PATCH 201/360] Move to LXC/LXD instead of vagrant, and update
 oudated dev doc bits

---
 dev.md                      |  32 ++++++++-----------
 dev_fr.md                   |  30 +++++++-----------
 images/images.list          |   2 +-
 images/lxc.png              | Bin 0 -> 10041 bytes
 images/vagrant.png          | Bin 51377 -> 0 bytes
 install.md                  |   8 ++---
 install_ar.md               |   8 ++---
 install_es.md               |   9 +++---
 install_fr.md               |   8 ++---
 install_it.md               |   6 ++--
 troubleshooting_guide.md    |   2 +-
 troubleshooting_guide_fr.md |   2 +-
 vagrant.md                  |  59 -----------------------------------
 vagrant_es.md               |  60 ------------------------------------
 vagrant_fr.md               |  59 -----------------------------------
 15 files changed, 45 insertions(+), 240 deletions(-)
 create mode 100644 images/lxc.png
 delete mode 100644 images/vagrant.png
 delete mode 100644 vagrant.md
 delete mode 100644 vagrant_es.md
 delete mode 100644 vagrant_fr.md

diff --git a/dev.md b/dev.md
index e76fda01..645915a6 100644
--- a/dev.md
+++ b/dev.md
@@ -7,7 +7,7 @@ contribution process.
 If you're looking for stuff to implement or fix, the bug-tracker is 
 [here](https://github.com/YunoHost/issues/issues) !
 
-**Come say hi to us in the [dev chatroom](xmpp:dev@conference.yunohost.org?join)** ! If you don't have an XMPP client, you can join using the widget at the bottom right of this page.
+**Come say hi to us in the [dev chatroom](/chat_rooms)** !
 
 ### Setting up a development environment
 
@@ -19,16 +19,16 @@ If you're looking for stuff to implement or fix, the bug-tracker is
 
 - **Implement and test your feature**. Depending on what you want to develop, you
   will want to :
-   - **Python/CLI core** : work in `/vagrant/yunohost/`
-   - **Web administration interface** : work in `/vagrant/yunohost-admin/`
+   - **Python/CLI core** : work in `/ynh-dev/yunohost/`
+   - **Web administration interface** : work in `/ynh-dev/yunohost-admin/`
    - You can also work on the other projects on which YunoHost is built 
      (SSOwat, moulinette) in similar ways
 
 ### Working on the YunoHost Python/CLI core
 
-- Work in `/vagrant/yunohost/`.
+- Work in `/ynh-dev/yunohost/`.
 
-- Run `/vagrant/ynh-dev use-git yunohost`.
+- Run `cd /ynh_dev/ && ./ynh-dev use-git yunohost`.
 
 - The actionsmap file (`data/actionsmap/yunohost.yml`) defines the various
   categories, actions and arguments of the yunohost CLI. Define how you want
@@ -45,7 +45,7 @@ If you're looking for stuff to implement or fix, the bug-tracker is
 
 ##### Helpers / coding style
 
-- To handle exceptions, you should raise some `MoulinetteError()`
+- To handle exceptions, you should raise some `YunohostError()`
 
 - To help with internationalizing the messages, use `m18n.n('some-message-id')`
   and put your string in `locales/en.json`. You can also put arguments and use
@@ -57,17 +57,11 @@ If you're looking for stuff to implement or fix, the bug-tracker is
 
 - Name of "private" functions should start with a `_`
 
-##### Don't forget
-
-- (Might not be necessary anymore) Each time you edit the actionsmap, you should
-  force the refresh of the cache with `rm
-  /var/cache/moulinette/actionsmap/yunohost.pkl`
-
 ### Working on the YunoHost web administration interface
 
-- Work in `/vagrant/yunohost-admin/src/`.
+- Work in `/ynh-dev/yunohost-admin/src/`.
 
-- Run `/vagrant/ynh-dev use-git yunohost-admin`. It launches gulp, such as each 
+- Run `cd /ynh-dev && ./ynh-dev use-git yunohost-admin`. It launches gulp, such as each 
   time you modify sources, it recompiles the code and you can use it by 
   refreshing (Ctrl+F5) your web administration. To stop the command, just do Ctrl+C.
 
@@ -111,14 +105,12 @@ If you're looking for stuff to implement or fix, the bug-tracker is
 
 - Fork the relevant repo on Github, and commit stuff to a new branch. We recommend
   to name the branch with the following convention :
-  - For an enhancement or new feature : `enh-REDMINETICKET-name-of-feature`
-  - For a bugfix `fix-REDMINETICKET-description-of-fix`
-  - `REDMINETICKET` is optional and is the id of a corresponding ticket on RedMine.
+  - For an enhancement or new feature : `enh-ISSUENUMBER-name-of-feature`
+  - For a bugfix `fix-ISSUENUMBER-description-of-fix`
+  - `ISSUENUMBER` is optional and is the id of a corresponding ticket on the bug tracker.
 
 - Once you're ready, open a Pull Request (PR) on Github. Please include `[fix]` or 
   `[enh]` at the beginning of the title of your PR.
 
 - After reviewing, testing and validation by other contributors, your branch
-should be merged in `testing` (?) !
-
-
+should be merged in `unstable` !
diff --git a/dev_fr.md b/dev_fr.md
index 2cfa4cd8..d161888c 100644
--- a/dev_fr.md
+++ b/dev_fr.md
@@ -7,9 +7,7 @@ processus de contribution.
 Si vous chercher quelque chose à implémenter ou un bug à réparer, le
 bug tracker est [ici](https://github.com/yunohost/issues/issues) !
 
-**Venez dire coucou sur le [salon de
-dev](xmpp:dev@conference.yunohost.org?join)** ! Si vous n'avez pas de client
-XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
+**Venez dire coucou sur le [salon de dev](/chat_rooms)** !
 
 ### Mettre en place un environnement de développement
 
@@ -23,16 +21,16 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
 
 - **Implémentez et testez votre fonctionnalité**. Suivant ce sur quoi vous
   voulez travailler :
-   - **Cœur Python/ligne de comande** : allez dans `/vagrant/yunohost/`
-   - **Interface d'administration web** : allez dans `/vagrant/yunohost-admin/`
+   - **Cœur Python/ligne de comande** : allez dans `/ynh-dev/yunohost/`
+   - **Interface d'administration web** : allez dans `/ynh-dev/yunohost-admin/`
    - Vous pouvez aussi travailler sur les autres projets liés sur lesquels
      s'appuie YunoHost (SSOwat, moulinette) de façon similaire.
 
 ### Travailler sur le cœur Python / ligne de commande
 
-- Allez dans `/vagrant/yunohost/`.
+- Allez dans `/ynh-dev/yunohost/`.
 
-- Exécutez `/vagrant/ynh-dev use-git yunohost`.
+- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost`.
 
 - Le fichier actionsmap (`data/actionsmap/yunohost.yml`) définit les différentes
   catégories, actions et arguments de la ligne de commande YunoHost. Choisissez
@@ -49,7 +47,7 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
 
 ##### Helpers / style de code
 
-- Pour gérer les exceptions, il existe un type `MoulinetteError()`
+- Pour gérer les exceptions, il existe un type `YunohostError()`
 
 - Pour aider avec l'internationalisation des messages, utilisez `m18n.n('some-message-id')`
   et mettez le message correspondant dans `locales/en.json`. Vous pouvez aussi
@@ -62,17 +60,11 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
 
 - Mettre un `_` devant les noms des fonctions "privées".
 
-##### N'oubliez pas
-
-- (Peut-être plus nécessaire) À chaque fois que vous modifiez l'actionsmap, il
-  faut forcer le rafraîchissement du cache avec :
-  `rm /var/cache/moulinette/actionsmap/yunohost.pkl`
-
 ### Travailler sur l'interface d'administration web
 
-- Allez dans `/vagrant/yunohost-admin/src/`.
+- Allez dans `/ynh-dev/yunohost-admin/src/`.
 
-- Exécutez `/vagrant/ynh-dev use-git yunohost-admin`. Ceci lance gulp, de sorte 
+- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost-admin`. Ceci lance gulp, de sorte 
   qu'à chaque fois que vous modifiez les sources, il recompilera le code
   (js) et vous pourrez voir les changements dans le navigateur web (Ctrl+F5).
   Pour stopper la commande, faites simplement Ctrl+C.
@@ -121,14 +113,14 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
 - Forkez le dépòt correspondant sur Github, et commitez vos changements dans
   une nouvelle branche, Il est recommandé de nommer la branche avec la
   convention :
-  - Pour une nouvelle fonctionnalité ou amélioration : `enh-TICKETREDMINE-description-fonctionnalité`
+  - Pour une nouvelle fonctionnalité ou amélioration : `enh-ISSUENUMBER-description-fonctionnalité`
   - Pour une correction de bug : `fix-REDMINETICKET-description-correctif`
-  - `TICKETREDMINE` est optionnel et correspond au numéro du ticket sur RedMine
+  - `ISSUENUMBER` est optionnel et correspond au numéro du ticket sur le bug tracker
 
 - Une fois prêt, ouvrez une Pull Request (PR) sur Github. De préférence, inclure
   `[fix]` ou `[enh]` au début du titre de la PR.
 
 - Après relecture, test et validation par les autres contributeurs, votre
-  branche sera mergée dans `testing` (?) !
+  branche sera mergée dans `unstable` !
 
 
diff --git a/images/images.list b/images/images.list
index 585a521b..9b1cf3f4 100644
--- a/images/images.list
+++ b/images/images.list
@@ -27,6 +27,7 @@ Linuxfr.png
 logo-jirafeau.jpeg
 logo.png
 Logo-wallabag-svg.svg
+lxc.png
 mailview.jpg
 webadmin.png
 webadmin_fr.png
@@ -55,7 +56,6 @@ transmission.png
 ttrss.png
 unetbootin.png
 usb_key.png
-vagrant.png
 virtualbox_1.png
 virtualbox_2.1.png
 virtualbox_2.png
diff --git a/images/lxc.png b/images/lxc.png
new file mode 100644
index 0000000000000000000000000000000000000000..e344c1ddbdecfdbb9968cb12ccd215f2a0a819a7
GIT binary patch
literal 10041
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

literal 0
HcmV?d00001

diff --git a/images/vagrant.png b/images/vagrant.png
deleted file mode 100644
index 8a04afb11d159b43c29e824473955c1d723323ab..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 51377
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

diff --git a/install.md b/install.md
index 20c957d8..5e768242 100644
--- a/install.md
+++ b/install.md
@@ -74,15 +74,13 @@ This page lists a few installation guides.
 
 <div class="row">
 
-<div class="col col-md-3 text-center">
-<a href="/vagrant"><img src="/images/vagrant.png" height=150 style="vertical-align:bottom"><b><p>On Vagrant</p></b></a>
-</div>
-
 <div class="col col-md-3 text-center">
 <a href="/install_on_debian"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
 <b><p>On Debian 9/Stretch</p></b></a>
 </div>
 
+<div class="col col-md-3 text-center">
+<a href="/dev"><img src="/images/lxc.png" height=150 style="vertical-align:bottom"><b><p>Dev environment in LXD/LXC</p></b></a>
 </div>
 
-<br>
+</div>
diff --git a/install_ar.md b/install_ar.md
index 5411c784..65c5dde5 100644
--- a/install_ar.md
+++ b/install_ar.md
@@ -71,13 +71,13 @@
 
 <div class="row">
 
-<div class="col col-md-3 text-center">
-<a href="/vagrant_fr"><img src="/images/vagrant.png" height=150 style="vertical-align:bottom"><b><p>على فاغرانت</p></b></a>
-</div>
-
 <div class="col col-md-3 text-center">
 <a href="/install_on_debian_fr"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
 <b><p>على ديبيان 9 / ستريتش</p></b></a>
 </div>
 
+<div class="col col-md-3 text-center">
+<a href="/dev"><img src="/images/lxc.png" height=150 style="vertical-align:bottom"><b><p>Dev environment in LXD/LXC</p></b></a>
+</div>
+
 </div>
diff --git a/install_es.md b/install_es.md
index 0550dab8..3c3fb448 100644
--- a/install_es.md
+++ b/install_es.md
@@ -68,13 +68,14 @@ Esta página enumera varios tipos de instalaciones, clasificados por categorías
 
 <div class="row">
 
-<div class="col col-md-3 text-center">
-<a href="/vagrant_es"><img src="/images/vagrant.png" height=150 style="vertical-align:bottom"><b><p>Con Vagrant</p></b></a>
-</div>
-
 <div class="col col-md-3 text-center">
 <a href="/install_on_debian_es"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
 <b><p>Sur Debian 9/Stretch</p></b></a>
 </div>
 
+<div class="col col-md-3 text-center">
+<a href="/dev"><img src="/images/lxc.png" height=150 style="vertical-align:bottom"><b><p>Dev environment in LXD/LXC</p></b></a>
+</div>
+
+
 </div>
diff --git a/install_fr.md b/install_fr.md
index 21f08906..60612125 100644
--- a/install_fr.md
+++ b/install_fr.md
@@ -68,13 +68,13 @@ Cette page liste plusieurs types d’installations, classés par catégories.
 
 <div class="row">
 
-<div class="col col-md-3 text-center">
-<a href="/vagrant_fr"><img src="/images/vagrant.png" height=150 style="vertical-align:bottom"><b><p>Avec Vagrant</p></b></a>
-</div>
-
 <div class="col col-md-3 text-center">
 <a href="/install_on_debian_fr"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
 <b><p>Sur Debian 9/Stretch</p></b></a>
 </div>
 
+<div class="col col-md-3 text-center">
+<a href="/dev"><img src="/images/lxc.png" height=150 style="vertical-align:bottom"><b><p>Environnement de dev avec LXD/LXC</p></b></a>
+</div>
+
 </div>
diff --git a/install_it.md b/install_it.md
index 1a1d18e4..8fa8f550 100644
--- a/install_it.md
+++ b/install_it.md
@@ -76,12 +76,12 @@ Questa pagina elenca alcune guide all'installazione.
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/vagrant"><img src="/images/vagrant.png" height=150 style="vertical-align:bottom"><b><p>Su Vagrant</p></b></a>
+<a href="/install_on_debian"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
+<b><p>Su Debian 9/Stretch</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_debian"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
-<b><p>Su Debian 9/Stretch</p></b></a>
+<a href="/dev"><img src="/images/lxc.png" height=150 style="vertical-align:bottom"><b><p>Dev environment in LXD/LXC</p></b></a>
 </div>
 
 </div>
diff --git a/troubleshooting_guide.md b/troubleshooting_guide.md
index fec52ddb..50683619 100644
--- a/troubleshooting_guide.md
+++ b/troubleshooting_guide.md
@@ -5,7 +5,7 @@ You can consider this as some kind of administrator guide for troubleshooting or
 ## General notes
 ### Do not break YunoHost
 Best way to troubleshoot is to not have to troubleshoot because you have tested everything before deploying it on your server.
-This means that everytime you want to try a new thing (non-official app, new specific config, package an app...), you should try it on a development or testing instance, *not* on your production server. For this, you can [set up a Vagrant box](vagrant), or for instance a [DigitalOcean droplet](install_on_vps) for 1 cent/hour.
+This means that everytime you want to try a new thing (non-official app, new specific config, package an app...), you should try it on a development or testing instance, *not* on your production server. For this, you can [set up a virtualbox](install_on_virtualbox), or for instance a [DigitalOcean droplet](install_on_vps) for 1 cent/hour.
 
 Also: https://wiki.debian.org/DontBreakDebian
 
diff --git a/troubleshooting_guide_fr.md b/troubleshooting_guide_fr.md
index 31e516b7..2f107da0 100644
--- a/troubleshooting_guide_fr.md
+++ b/troubleshooting_guide_fr.md
@@ -5,7 +5,7 @@ Ce guide peut trouver son intérêt lors du débuggage d’une nouvelle applicat
 
 ## Notes générales
 ### Ne cassez pas YunoHost
-La meilleure manière de ne pas avoir de pannes est de ne pas bricoler sur votre serveur. Cela signifie que dès que vous souhaitez essayer quelque chose de nouveau (application non officielle, nouvelle configuration personnalisée, création d’une nouvelle application), essayez d'abord cela sur un serveur de test et non de production. Pour faire cela, vous pouvez par exemple utiliser une [box Vagrant](vagrant_fr) ou un [droplet DigitalOcean](install_on_vps_fr) pour 1 centime/heure.
+La meilleure manière de ne pas avoir de pannes est de ne pas bricoler sur votre serveur. Cela signifie que dès que vous souhaitez essayer quelque chose de nouveau (application non officielle, nouvelle configuration personnalisée, création d’une nouvelle application), essayez d'abord cela sur un serveur de test et non de production. Pour faire cela, vous pouvez par exemple utiliser une [virtualbox](install_on_virtualbox_fr) ou un [droplet DigitalOcean](install_on_vps_fr) pour 1 centime/heure.
 
 Vous pouvez aussi lire ceci si vous avez encore envie de bricoler sur votre instance YunoHost en production : https://wiki.debian.org/DontBreakDebian
 
diff --git a/vagrant.md b/vagrant.md
deleted file mode 100644
index fa165cdf..00000000
--- a/vagrant.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# Vagrant and YunoHost
-
-*If you need testing some code, you should using directly [ynh-dev](https://github.com/yunohost/ynh-dev)*
-
-*Find other ways to install YunoHost **[here](/install)**.*
-
-<img src="/images/vagrant.png" width=250>
-
-**Prerequisite**: an x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine.
-
----
-
-## Initialization
-
-Create a project folder
-```bash
-mkdir YunoHost
-cd YunoHost
-```
-
-The following command will initialize the project with a Yunohost image
-```bash
-vagrant box add yunohost/stretch-unstable https://build.yunohost.org/yunohost-stretch-unstable.box --provider virtualbox
-vagrant init yunohost/stretch-unstable
-```
-
-You need to activate the network for the YunoHost instance.
-```bash
-sed -i 's/# config\.vm\.network "private_network"/config.vm.network "private_network"/' Vagrantfile```
-
----
-
-## Run a vm
-
-Start the virtual machine
-```bash
-vagrant up
-```
-
-Connect to the started virtual machine
-```bash
-vagrant ssh
-```
-
-Upgrade the system
-```bash
-sudo apt update && sudo apt dist-upgrade
-```
-
-You can access to your vm with the ip 192.168.33.10
-
-The IP addresses related to the boxes are set by default but can be changed in the network settings. 
-
----
-
-*Once the installation is finished, you may want to proceed to post-installation: **[yunohost.org/postinstall](/postinstall)** *
-
-
-
diff --git a/vagrant_es.md b/vagrant_es.md
deleted file mode 100644
index 2edf6375..00000000
--- a/vagrant_es.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Vagrant y YunoHost
-
-*Si necesitas una máquina virtual para testar tu código, es mejor utilizar directamente [ynh-dev](https://github.com/yunohost/ynh-dev)*
-
-*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
-
-<img src="/images/vagrant.png" width=250>
-
-**Prerrequisitos** : Un ordenador x86 con VirtualBox instalado y bastante RAM disponible para iniciar una pequeña máquina virtual.
-
----
-
-## Inicio
-
-Crear una carpeta para el proyecto :
-```bash
-mkdir YunoHost
-cd YunoHost
-```
-
-El comando siguiente iniciará el proyecto con una imagen básica de Yunohost
-```bash
-vagrant box add yunohost/stretch-unstable https://build.yunohost.org/yunohost-stretch-unstable.box --provider virtualbox
-vagrant init yunohost/stretch-unstable
-```
-Luego, tienes que activar la red para la instancia Yunohost :
-```bash
-sed -i 's/# config\.vm\.network "private_network"/config.vm.network "private_network"/' Vagrantfile
-```
-
----
-
-## Instalación
-
-Iniciar la máquina virtual
-```bash
-vagrant up
-```
-
-Conectarse a la máquina virtual iniciada
-```bash
-vagrant ssh
-```
-
-Actualizar el sistema.
-```bash
-apt update && apt dist-upgrade
-```
-
-Puedes acceder a tu VM vía el IP 192.168.33.10.
-
-Las direcciones IP están asignadas por defecto pero pueden ser cambiadas en los parámetros de red del Vagrantfile.
-
----
-
-*Una vez la instalación terminada, puedes proceder a la post-instalación :
-**[yunohost.org/postinstall](/postinstall_es)** *
-
-
-
diff --git a/vagrant_fr.md b/vagrant_fr.md
deleted file mode 100644
index ebb0da31..00000000
--- a/vagrant_fr.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# Vagrant et YunoHost
-
-*Si vous avez besoin d’une vm pour tester du code, il vaut mieux utiliser directement [ynh-dev](https://github.com/yunohost/ynh-dev)*
-
-*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install_fr)**.*
-
-<img src="/images/vagrant.png" width=250>
-
-**Prérequis** : Un ordinateur x86 avec VirtualBox installé et assez de RAM disponible pour lancer une petite machine virtuelle.
-
----
-
-## Initialisation
-
-Créer un dossier pour le projet :
-```bash
-mkdir YunoHost
-cd YunoHost
-```
-
-La commande suivante va initialiser le projet avec une image YunoHost de base
-```bash
-vagrant box add yunohost/stretch-unstable https://build.yunohost.org/yunohost-stretch-unstable.box --provider virtualbox
-vagrant init yunohost/stretch-unstable
-```
-Puis, il faut activer le réseau pour l'instance YunoHost:
-```bash
-sed -i 's/# config\.vm\.network "private_network"/config.vm.network "private_network"/' Vagrantfile
-```
-
----
-
-## Installation
-
-Démarrer la machine virtuelle
-```bash
-vagrant up
-```
-
-Se connecter à la machine virtuelle démarrée
-```bash
-vagrant ssh
-```
-
-Mettre à jour le système.
-```bash
-apt update && apt dist-upgrade
-```
-
-Vous pouvez accéder à votre vm via l’ip 192.168.33.10.
-
-Les adresses IP sont assignées par défaut mais peuvent être changées dans les paramètres réseau du Vagrantfile.
-
----
-
-*Une fois l’installation terminée, vous pouvez procéder à la post-installation : **[yunohost.org/postinstall](/postinstall_fr)** *
-
-
-

From 044668b843b20cb3825be13bad18d026c0f0273a Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Tue, 15 Oct 2019 23:03:05 +0200
Subject: [PATCH 202/360] Update dns_config_fr.md

add NB to avoid confusion  with "domain.tld"
---
 dns_config_fr.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/dns_config_fr.md b/dns_config_fr.md
index 85038f10..ccba7b95 100644
--- a/dns_config_fr.md
+++ b/dns_config_fr.md
@@ -13,6 +13,7 @@ la configuration devrait être faite automatiquement. Si vous utilisez votre pro
 domaine via l'interface de votre registrar.
 
 ## Configuration DNS recommandée
+NB : les exemples utilisent ici le texte `votre.domain.tld`, à remplacer par votre domaine (par exemple `www.yunohost.org`).
 
 YunoHost fournit une configuration DNS recommandée, accessible via :
 - la webadmin, dans Domaines > votre.domain.tld > Configuration DNS ;
@@ -74,9 +75,9 @@ suivante :
 
 #### Quelques notes à propos de cette table
 
-- Tous ces enregistrements ne sont pas nécessaires. Pour une installation minimale, seuls les enregistrements en gras sont nécessaires.
+- Tous ces enregistrements ne sont pas nécessaires. Pour une installation minimale, seuls les enregistrements en gras sont nécessaires ;
 - Le point à la fin de `votre.domaine.tld.` est important ;) ;
 - `@` corresponds à `votre.domaine.tld`, et par ex. `muc` corresponds à `muc.votre.domaine.tld` ;
-- Les valeurs montrées sont des valeurs d'exemple ! Référez-vous à la configuration générée chez vous pour savoir quelles valeurs utiliser.
+- Les valeurs montrées ici sont des valeurs d'exemple ! Référez-vous à la configuration générée chez vous pour savoir quelles valeurs utiliser ;
 - Nous recommandons un [TTL](https://fr.wikipedia.org/wiki/Time_to_Live#Le_Time_to_Live_dans_le_DNS) de 3600 (1 heure). Mais vous pouvez utiliser une autre valeur si vous savez ce que vous faîtes ;
 - Ne mettez pas d'enregistrement IPv6 si vous n'êtes pas certains que l'IPv6 fonctionne sur votre serveur ! Vous aurez des problèmes avec Let's Encrypt si ce n'est pas le cas.

From dde9f06cc6981b1d2e41a172b97b0d83ff2f22c5 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Tue, 15 Oct 2019 23:07:28 +0200
Subject: [PATCH 203/360] Update dns_config.md

add explanation of placeholder, to avoid typos and confusion
---
 dns_config.md | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/dns_config.md b/dns_config.md
index c19c9f3b..6c331a83 100644
--- a/dns_config.md
+++ b/dns_config.md
@@ -5,22 +5,23 @@ DNS (domain name system) is a system that converts human-readable addresses
 easily accessible by human beings, and for some services like mail to work
 properly, DNS must be configured.
 
-If you're using an [automatic domain](/dns_nohost_me) provided by the YunoHost Project, the configuration should be
+If you're using a nohost.me / noho.st / ynh.fr domain, the configuration should be
 performed automatically. If you're using your own domain name (e.g. bought via
 a registrar), you should manually configure your domain on your registrar's
 interface.
 
 ## Recommended DNS configuration
+NB: Examples here use the placeholder `your.domain.tld`, you have to replace it with your real domain, such as `www.yunohost.org`.
 
 YunoHost provides a recommended DNS configuration, available via :
 - the webadmin, in Domain > your.domain.tld > DNS configuration ;
 - or the command line, `yunohost domain dns-conf your.domain.tld`
 
 For specific needs or specific setups, and if you know what you're doing, you
-might want or have to tweak these or add additional ones (e.g. to handle
+might want or have to tweak these, or add additional ones (e.g. to handle
 subdomains).
 
-The recommended configuration typically looks like this :
+The recommended configuration typically looks like this:
 
 ```bash
 #
@@ -51,7 +52,7 @@ mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=someHuuuuuuugeKey"
 _dmarc 3600 IN TXT "v=DMARC1; p=none"
 ```
 
-Though it might be easier to understand it if displayed like this :
+Though it might be easier to understand it if displayed like this:
 
 
 | Type    | Name                   | Value                                                 |
@@ -76,7 +77,5 @@ Though it might be easier to understand it if displayed like this :
 - The dot at the end of `your.domain.tld.` is important ;) ;
 - `@` corresponds to `your.domain.tld`, and e.g. `muc` corresponds to `muc.your.domain.tld` ;
 - These are example values ! See your generated conf for the actual values you should use ;
-- We recommend a [TTL](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) of 3600 (1 hour). But you can use something else if you
-  know what you're doing ;
-- Don't put an IPv6 record if you're not sure IPv6 really works on your server !
-  You might have issues with Let's Encrypt if it doesn't.
+- We recommend a [TTL](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) of 3600 (1 hour). But you can use something else if you know what you're doing ;
+- Don't put an IPv6 record if you're not sure IPv6 really works on your server! You might have issues with Let's Encrypt if it doesn't.

From 44b8999f12dac50e928919d5082bcb04df7c8cfd Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Tue, 15 Oct 2019 23:09:55 +0200
Subject: [PATCH 204/360] Update dns_config.md

restore automatic domain link
---
 dns_config.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dns_config.md b/dns_config.md
index 6c331a83..8dcee614 100644
--- a/dns_config.md
+++ b/dns_config.md
@@ -5,7 +5,7 @@ DNS (domain name system) is a system that converts human-readable addresses
 easily accessible by human beings, and for some services like mail to work
 properly, DNS must be configured.
 
-If you're using a nohost.me / noho.st / ynh.fr domain, the configuration should be
+If you're using an [automatic domain](/dns_nohost_me) provided by the YunoHost Project, the configuration should be
 performed automatically. If you're using your own domain name (e.g. bought via
 a registrar), you should manually configure your domain on your registrar's
 interface.

From a0ba3acac9ca88d96bdfa73fe1e7c9a2a1b4bedc Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Tue, 15 Oct 2019 23:14:08 +0200
Subject: [PATCH 205/360] Update dns_config_es.md

add placeholder example
---
 dns_config_es.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dns_config_es.md b/dns_config_es.md
index 879ed0e6..87797baf 100644
--- a/dns_config_es.md
+++ b/dns_config_es.md
@@ -6,6 +6,7 @@ Si utilizas un [dominio automático](/dns_nohost_me_es) provecho por el Proyecto
 
 
 ## Configuración DNS recomendada
+_Nota: los ejemplos utilizan el marcador `tu.dominio.tld`, debe ser reemplazado por su propio dominio, como `www.yunohost.org`._
 
 YunoHost provee una configuración DNS recomendada, accesible vía :
 - la webadmin, en Dominios > tu.dominio.tld > Configuración DNS ;

From 312c83a81bf9612c7785ec5b1ed44895e1d5899c Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Tue, 15 Oct 2019 23:15:16 +0200
Subject: [PATCH 206/360] Update dns_config_fr.md

typo + italique
---
 dns_config_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dns_config_fr.md b/dns_config_fr.md
index ccba7b95..b6420b3f 100644
--- a/dns_config_fr.md
+++ b/dns_config_fr.md
@@ -13,7 +13,7 @@ la configuration devrait être faite automatiquement. Si vous utilisez votre pro
 domaine via l'interface de votre registrar.
 
 ## Configuration DNS recommandée
-NB : les exemples utilisent ici le texte `votre.domain.tld`, à remplacer par votre domaine (par exemple `www.yunohost.org`).
+_NB : les exemples utilisent ici le texte `votre.domaine.tld`, à remplacer par votre propre domaine (par exemple `www.yunohost.org`)._
 
 YunoHost fournit une configuration DNS recommandée, accessible via :
 - la webadmin, dans Domaines > votre.domain.tld > Configuration DNS ;

From 6eb307ed37306c300268b5c6ef7d59e917ad63e2 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Wed, 16 Oct 2019 17:18:27 +0200
Subject: [PATCH 207/360] Add logo with dark background, rouncorners

---
 images/logo_roundcorner.png | Bin 0 -> 9931 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 images/logo_roundcorner.png

diff --git a/images/logo_roundcorner.png b/images/logo_roundcorner.png
new file mode 100644
index 0000000000000000000000000000000000000000..96b2c25798cd425cf14e310f279addcb068e154f
GIT binary patch
literal 9931
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
JPDHLkV1i&h#329x

literal 0
HcmV?d00001


From a422c7a905b4997038cdcbd777ea8d39f490fb18 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Wed, 16 Oct 2019 17:25:31 +0200
Subject: [PATCH 208/360] Use a different panel screenshot in users doc

---
 users.md    | 2 +-
 users_fr.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/users.md b/users.md
index 1d7ea512..13141c40 100644
--- a/users.md
+++ b/users.md
@@ -15,7 +15,7 @@ You should be careful about who you give your server access to. In terms of secu
 The user portal, or SSO
 -----------------------
 
-<center><img src="images/home_panel.jpg" style="max-width: 650px; border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"></center>
+<center><img src="images/user_panel.png" style="max-width: 650px; border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"></center>
 
 The user portal, also called the SSO for 'Single Sign On' allows user to browse easily between the different apps they have access to. In particular, the term 'Single Sign On' comes from the fact that user only need to log in the portal to automatically be logged to all apps that require authentication (or at least those who are integrated with the SSO/LDAP, since this is sometimes technically complicated or not possible at all).
 
diff --git a/users_fr.md b/users_fr.md
index 9e9055da..3b114f71 100644
--- a/users_fr.md
+++ b/users_fr.md
@@ -15,7 +15,7 @@ Vous devriez faire attention à qui vous donnez l'accès à votre serveur. En te
 Le portail utilisateur, ou SSO
 -----------------------
 
-<center><img src="images/home_panel.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"></center>
+<center><img src="images/user_panel.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"></center>
 
 Le portail utilisateur, également appelé SSO pour 'Single Sign On', permet à l'utilisateur de naviguer facilement entre les différentes applications auxquelles il a accès. En particulier, le terme 'Single Sign On' vient du fait que l'utilisateur n'a qu'à se connecter au portail pour être automatiquement connecté à toutes les applications qui nécessitent une authentification (ou du moins celles qui sont intégrées avec le SSO/LDAP, car cela est parfois techniquement compliqué ou pas possible du tout).
 

From 912307969d054057714f89b9f4379a968c80edfe Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Wed, 16 Oct 2019 17:41:26 +0200
Subject: [PATCH 209/360] Stupid typo @.@

---
 whatsyunohost.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/whatsyunohost.md b/whatsyunohost.md
index fea1c453..d1aad886 100644
--- a/whatsyunohost.md
+++ b/whatsyunohost.md
@@ -3,7 +3,7 @@ What is YunoHost?
 
 <img src="/images/YunoHost_logo_vertical.png" width=400>
 
-YunoHost is an **operating system** aiming to simplify as much as possibly the administration of a **server** and therefore democratize [self-hosting](selfhosting), while making sure it stays reliable, secure, ethical and lightweight. It is a free software project maintained exclusively by volunteers. Technically, it can be seen as a distribution based on [Debian GNU/Linux](https://debian.org) and can be installed on [many kinds of hardware](install).
+YunoHost is an **operating system** aiming to simplify as much as possible the administration of a **server** and therefore democratize [self-hosting](selfhosting), while making sure it stays reliable, secure, ethical and lightweight. It is a free software project maintained exclusively by volunteers. Technically, it can be seen as a distribution based on [Debian GNU/Linux](https://debian.org) and can be installed on [many kinds of hardware](install).
 
 Features
 --------

From 6418adbdeee201e1d7d1c06e63d6aaec7a2035fe Mon Sep 17 00:00:00 2001
From: Eauchat <34686393+eauchat@users.noreply.github.com>
Date: Wed, 16 Oct 2019 22:12:40 +0000
Subject: [PATCH 210/360] Improved a bit doc assuming that email clients should
 configure themselves automatically

---
 email_configure_client.md | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/email_configure_client.md b/email_configure_client.md
index 1d513bc0..710624a4 100644
--- a/email_configure_client.md
+++ b/email_configure_client.md
@@ -2,7 +2,11 @@
 
 You can fetch and send emails using your YunoHost instance from desktop email clients such as Mozilla Thunderbird or on your smartphone with applications like K-9 Mail.
 
-##### Generic settings
+Normally, configuring your mail client should be automatic, but if the autoconfiguration fails, you can do it manually following the instructions bellow.
+
+### Generic settings
+
+Here are the element you should enter to manually configure your mail client (`domain.tld` refers to what's after the @ in your email address, and `username` what's before @).
 
 | Protocol | Port | Encryption | Authentication  | Username                               |
 | :--:     | :-:  | :--:       | :--:            | :--:                                   | 
@@ -11,7 +15,7 @@ You can fetch and send emails using your YunoHost instance from desktop email cl
 
 ### <img src="images/thunderbird.png" width=50> Configure Mozilla Thunderbird (on a desktop computer)
 
-The automatic detection tool of Thunderbird does not work yet with YunoHost. You will need to set it up manually. To do so, add the account information, then select port 993 with SSL/TLS for IMAP, and port 587 with STARTTLS for SMTP. Afterwards select 'Normal Password' for Authentication and click on 'Advanced Config'. You will need to accept the certificate exceptions for fetching mails and after you send your first mail. Don't forget to remove the dot before the domain name.
+To manually configure a new account in Thunderbird, add the account information, then select port 993 with SSL/TLS for IMAP, and port 587 with STARTTLS for SMTP. Afterwards select 'Normal Password' for Authentication and click on 'Advanced Config'. You may need to accept the certificate exceptions for fetching mails and after you send your first mail. Don't forget to remove the dot before the domain name.
 
 <img src="/images/thunderbird_config_1.png" width=900>
 <img src="/images/thunderbird_config_2.png" width=900>
@@ -20,7 +24,7 @@ The automatic detection tool of Thunderbird does not work yet with YunoHost. You
 
 ### <img src="images/k9mail.png" width=50> Configure K-9 Mail (on Android)
 
-Follow the following steps. (As for thunderbird, you might need to accept certificates at some points)
+Follow the following steps. (As for Thunderbird, you might need to accept certificates at some points)
 
 <a href="/images/k9mail_config_1.png"><img src="/images/k9mail_config_1.png" width=200/></a>
 <a href="/images/k9mail_config_2.png"><img src="/images/k9mail_config_2.png" width=200/></a>

From 6afbdad58fd75210362ee1103a9cfd963ac3cfba Mon Sep 17 00:00:00 2001
From: Eauchat <34686393+eauchat@users.noreply.github.com>
Date: Thu, 17 Oct 2019 09:46:38 +0000
Subject: [PATCH 211/360] Translated changes to english page to french

---
 email_configure_client_fr.md | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/email_configure_client_fr.md b/email_configure_client_fr.md
index af527712..3d1c8987 100644
--- a/email_configure_client_fr.md
+++ b/email_configure_client_fr.md
@@ -1,8 +1,12 @@
-## Configuration desktop email client
+## Configurer un client mail
 
 Vous pouvez récupérer et envoyer des emails avec votre instance YunoHost grâce à des logiciels comme Mozilla Thunderbird, ou sur votre smartphone grâce à des applications comme K-9 Mail.
 
-##### Réglages génériques
+Normalement, votre client mail devrait recevoir la configuration automatiquement lorsque vous ajoutez un compte, mais si jamais cela ne fonctionne pas, il est possible de le faire manuellement en suivant les quelques étapes suivantes.
+
+### Réglages génériques
+
+Voici les éléments que vous devrez entrer pour configurer manuellement votre client mail (`domain.tld` fait référence à ce qui est après le @ dans votre adresse mail, et `nom_dutilisateur` ce qui est avant @).
 
 | Protocole | Port | Chiffrement | Authentification    | Login                                   |
 | :--:      | :-:  | :--:        | :--:                | :--:                                    | 
@@ -11,7 +15,7 @@ Vous pouvez récupérer et envoyer des emails avec votre instance YunoHost grâc
 
 ### <img src="images/thunderbird.png" width=50> Configurer Mozilla Thunderbird
 
-L'outil de détection automatique de Thunderbird ne fonctionne actuellement pas avec YunoHost. Il vous faudra remplir les champs manuellement. Commencez par remplir les informations de base (Nom, adresse et mot de passe), cliquez sur Continuer puis Configuration Manuelle. Enlevez le `.` avant le nom de domaine. Sélectionnez le port 993 avec SSL/TLS pour IMAP, et le port 587 avec STARTTLS pour SMTP. Sélectionnez 'Mot de passe normal' pour l'authentification. Testez la configuration puis validez. (Il vous faudra ensuite possiblement accepter des certificats pour que tout fonctionne correctement.)
+Pour configurer manuellement un nouveau compte dans Thunderbird commencez par remplir les informations de base (Nom, adresse et mot de passe), cliquez sur Continuer puis Configuration Manuelle. Enlevez le `.` avant le nom de domaine. Sélectionnez le port 993 avec SSL/TLS pour IMAP, et le port 587 avec STARTTLS pour SMTP. Sélectionnez 'Mot de passe normal' pour l'authentification. Testez la configuration puis validez. (Il vous faudra ensuite possiblement accepter des certificats pour que tout fonctionne correctement.)
 
 <img src="/images/thunderbird_config_1.png" width=900>
 <img src="/images/thunderbird_config_2.png" width=900>

From ff6ad5216553f7295a87405053f5ae912636dc69 Mon Sep 17 00:00:00 2001
From: Eauchat <34686393+eauchat@users.noreply.github.com>
Date: Thu, 17 Oct 2019 10:23:16 +0000
Subject: [PATCH 212/360] Translated email client configuration document to
 spanish

---
 email_configure_client_es.md | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 email_configure_client_es.md

diff --git a/email_configure_client_es.md b/email_configure_client_es.md
new file mode 100644
index 00000000..2cbda3c6
--- /dev/null
+++ b/email_configure_client_es.md
@@ -0,0 +1,31 @@
+## Cómo configurar un cliente de correo electrónico
+
+Es posible de consultar y enviar correos de tu YunoHost con un cliente de correo electrónico como Mozilla Thunderbird o K-9 Mail en el teléfono.
+Normalmente, al añadir tu cuenta en el cliente de correo se va a configurar automáticamente, pero por si acaso no funciona, puedes configurarlo manualmente.
+
+### Configuración general
+
+A continuación puedes encontrar los elementos a configurar en el cliente de correo (`domain.tld` es todo lo que es después de @ en tu dirección de correo, y `nombre_de_usuario` es lo que es antes del @).
+
+| Protocolo | Puerto | Seguridad | Autenticación  | Nombre de usuario                               |
+| :--:     | :-:  | :--:       | :--:            | :--:                                   |
+| IMAP     | 993  | SSL/TLS    | Normal password | `nombre_de_usuario` (sin `@domain.tld`) |
+| SMTP     | 587  | STARTTLS   | Normal password | `nombre_de_usuario` (sin `@domain.tld`) |
+
+### <img src="images/thunderbird.png" width=50> Configurar Mozilla Thunderbird (en un ordenador)
+
+Para configurar manualmente un nuevo cuenta en Thunderbird, añadir las informaciones de la cuenta, y después seleccionar el puerto 993 con SSL/TLS para IMAP, y puerto 587 con STARTTLS para SMTP. Después seleccionar 'Normal Password' para Autenticación y haz click en el botón 'Advanced Config'. Se puede que tendrás que aceptar los certificados para que todo funciona normalmente.
+
+<img src="/images/thunderbird_config_1.png" width=900>
+<img src="/images/thunderbird_config_2.png" width=900>
+
+* [Gestionar un alias para una dirección de correo electrónico](https://support.mozilla.org/es/kb/configurar-un-alias-para-una-direccin-de-correo-el)
+
+### <img src="images/k9mail.png" width=50> Configurar K-9 Mail (en Android)
+
+Seguir los pasos a continuación. (Como para Thunderbird, se puede que tendrás que aceptar los certificados para que funciona normalmente.)
+
+<a href="/images/k9mail_config_1.png"><img src="/images/k9mail_config_1.png" width=200/></a>
+<a href="/images/k9mail_config_2.png"><img src="/images/k9mail_config_2.png" width=200/></a>
+<a href="/images/k9mail_config_3.png"><img src="/images/k9mail_config_3.png" width=200/></a>
+<a href="/images/k9mail_config_4.png"><img src="/images/k9mail_config_4.png" width=200/></a>

From da3d8d107d19ac3382b5bfed24d855b6f38cbe6b Mon Sep 17 00:00:00 2001
From: Eauchat <34686393+eauchat@users.noreply.github.com>
Date: Thu, 17 Oct 2019 15:46:16 +0000
Subject: [PATCH 213/360] Corrected small typos

---
 groups_and_permissions.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index 6b89207d..6e1c6c4a 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -116,11 +116,11 @@ $ yunohost user permission list
   wordpress.admin:
     allowed:
       - yolo_crew
-      - john
+      - alice
   [...]
 ```
 
-Note that, for example, if we want to restrict permission for email so that only Bob, we should also remove `all_users` from the permission :
+Note that, for example, if we want to restrict permission for email so that only Bob is allowed to email, we should also remove `all_users` from the permission :
 
 ```bash
 $ yunohost user permission update mail --remove all_users --add bob
@@ -128,7 +128,7 @@ $ yunohost user permission update mail --remove all_users --add bob
 
 ### Notes for apps packagers
 
-By default, installing an app creates the permission `$app.main` with `all_users` allowed by default.
+By default, installing an app creates the permission `app.main` with `all_users` allowed by default.
 
 If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special groups `visitors`:
 

From f26e70b1b96495094a72d64deab416a1926a386a Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Thu, 17 Oct 2019 20:09:31 +0200
Subject: [PATCH 214/360] Updating list

---
 apps_framasoft.md | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/apps_framasoft.md b/apps_framasoft.md
index d9d591a5..926cd49f 100644
--- a/apps_framasoft.md
+++ b/apps_framasoft.md
@@ -11,7 +11,7 @@
 | Framapic       | Lutim               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lutim_ynh)           | ![](https://dash.yunohost.org/integration/lutim.svg) |
 | Framabin       | PrivateBin          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/zerobin_ynh)         | ![](https://dash.yunohost.org/integration/zerobin.svg) |
 | Frama.link     | Lstu                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lstu_ynh)            | ![](https://dash.yunohost.org/integration/lstu.svg) |
-| Framatube      | Mediadrop           | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mediadrop_ynh)       | ![](https://dash.yunohost.org/integration/mediadrop.svg) |
+| Framatube      | Peertube            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/peertube_ynh)        | ![](https://dash.yunohost.org/integration/peertube.svg) |
 | Framanews      | TinyTinyRSS         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/ttrss_ynh)           | ![](https://dash.yunohost.org/integration/ttrss.svg) |
 | Framabee       | Searx               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/searx_ynh)           | ![](https://dash.yunohost.org/integration/searx.svg) |
 | Framabag       | Wallabag            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wallabag_ynh)        | ![](https://dash.yunohost.org/integration/wallabag.svg) |
@@ -26,15 +26,20 @@
 | Framatalk      | Jitsi Meet          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_ynh)           | ![](https://dash.yunohost.org/integration/jitsi.svg) |
 | Framalistes    | Mailman             | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)         | ![](https://dash.yunohost.org/integration/mailman.svg) |
 |                | Sympa               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/alexAubin/sympa_ynh)               | ![](https://dash.yunohost.org/integration/sympa.svg) |
-| Framindmap     | Wisemapping         | Non packagé                                          | |
+| Framindmap     | Wisemapping         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)         | ![](https://dash.yunohost.org/integration/wisemapping.svg) |
 | Framavectoriel | SVG-Edit            | Non packagé                                          | |
-| Framacarte     | uMap                | Non packagé                                          | |
-| Framaforms     | WebForms?           | Non packagé                                          | |
-| Framaestro     | Framaestro          | Non packagé                                          | |
-| Framavox       | ?                   | Non packagé                                          | |
+| Framacarte     | uMap                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/umap_ynh)            |![](https://dash.yunohost.org/integration/umap.svg) |
+| Framaforms     | Framaforms          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaforms_ynh)      |![](https://dash.yunohost.org/integration/framaforms.svg) |
+| Framaestro     | Framaestro          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaestro_ynh)      |![](https://dash.yunohost.org/integration/framaestro.svg) |
+| Framavox       | Loomio              | Non packagé                                          | |
 | Framagenda     | (Agenda Nextcloud)  | Non packagé                                          | |
-| Framagames     | ?                   | Non packagé                                          | |
-| MyFrama        | ?                   | Non packagé                                          | |
+| Framagames     | Framagames          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framagames_ynh)      |![](https://dash.yunohost.org/integration/framagames.svg) |
+| Framateam      | Mattermost          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mattermost_ynh)      |![](https://dash.yunohost.org/integration/mattermost.svg) |
+| MyFrama        | Shaarli             | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/shaarli_ynh)      |![](https://dash.yunohost.org/integration/shaarli.svg) |
+| Framaslides    | Strut               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/strut_ynh)      |![](https://dash.yunohost.org/integration/strut.svg) |
+| Framasites     | Grav                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/grav_ynh)      |![](https://dash.yunohost.org/integration/grav.svg) |
+| Framaclic      | Matomo              | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/matomo_ynh)      |![](https://dash.yunohost.org/integration/matomo.svg) |
+| Framatrad     | ?                    | Non packagé                                          | |
 
 ### Voir aussi
 

From 852fedf70a185e3dd76b5682c59abb6710df1cf4 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Thu, 17 Oct 2019 20:11:35 +0200
Subject: [PATCH 215/360] typo

---
 apps_framasoft.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_framasoft.md b/apps_framasoft.md
index 926cd49f..81969357 100644
--- a/apps_framasoft.md
+++ b/apps_framasoft.md
@@ -26,7 +26,7 @@
 | Framatalk      | Jitsi Meet          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_ynh)           | ![](https://dash.yunohost.org/integration/jitsi.svg) |
 | Framalistes    | Mailman             | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)         | ![](https://dash.yunohost.org/integration/mailman.svg) |
 |                | Sympa               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/alexAubin/sympa_ynh)               | ![](https://dash.yunohost.org/integration/sympa.svg) |
-| Framindmap     | Wisemapping         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)         | ![](https://dash.yunohost.org/integration/wisemapping.svg) |
+| Framindmap     | Wisemapping         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wisemapping_ynh)         | ![](https://dash.yunohost.org/integration/wisemapping.svg) |
 | Framavectoriel | SVG-Edit            | Non packagé                                          | |
 | Framacarte     | uMap                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/umap_ynh)            |![](https://dash.yunohost.org/integration/umap.svg) |
 | Framaforms     | Framaforms          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaforms_ynh)      |![](https://dash.yunohost.org/integration/framaforms.svg) |

From 7fc62fadae308ab4455bb3e38a11d4eebe7fc971 Mon Sep 17 00:00:00 2001
From: yalh76 <yalh@yahoo.com>
Date: Thu, 17 Oct 2019 20:34:55 +0200
Subject: [PATCH 216/360] Update apps_framasoft.md

Co-Authored-By: Alexandre Aubin <alex.aubin@mailoo.org>
---
 apps_framasoft.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_framasoft.md b/apps_framasoft.md
index 81969357..714a78b1 100644
--- a/apps_framasoft.md
+++ b/apps_framasoft.md
@@ -32,7 +32,7 @@
 | Framaforms     | Framaforms          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaforms_ynh)      |![](https://dash.yunohost.org/integration/framaforms.svg) |
 | Framaestro     | Framaestro          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaestro_ynh)      |![](https://dash.yunohost.org/integration/framaestro.svg) |
 | Framavox       | Loomio              | Non packagé                                          | |
-| Framagenda     | (Agenda Nextcloud)  | Non packagé                                          | |
+| Framagenda     | (Agenda Nextcloud)  | c.f. Nextcloud                                          | |
 | Framagames     | Framagames          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framagames_ynh)      |![](https://dash.yunohost.org/integration/framagames.svg) |
 | Framateam      | Mattermost          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mattermost_ynh)      |![](https://dash.yunohost.org/integration/mattermost.svg) |
 | MyFrama        | Shaarli             | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/shaarli_ynh)      |![](https://dash.yunohost.org/integration/shaarli.svg) |

From 1beaca90e40ab9f115e30998902fb8e06a5aea83 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 18 Oct 2019 00:58:41 +0200
Subject: [PATCH 217/360] Rework application catalog: no more official apps,
 handle the high quality apps, many small UI tweaks and code improvements

---
 apps.md | 275 ++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 166 insertions(+), 109 deletions(-)

diff --git a/apps.md b/apps.md
index 535eace8..92bda734 100644
--- a/apps.md
+++ b/apps.md
@@ -1,4 +1,4 @@
-# Apps
+# Application catalog
 
 <span class="javascriptDisclaimer">
 This page requires Javascript enabled to display properly :s.
@@ -6,34 +6,49 @@ This page requires Javascript enabled to display properly :s.
 <br/>
 </span>
 
+<!--
+Search bar
+-->
+
 <div class="input-group">
-    <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
-    <input type="text" id="filter-app-cards" class="form-control"  placeholder="Search for apps..." aria-describedby="basic-addon1"/>
+    <span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
+    <input id="filter-app-cards" type="text" class="form-control"  placeholder="Search for apps..." aria-describedby="basic-addon1"/>
     <div class="input-group-btn">
         <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-            <span id="app-cards-list-filter-text">Only official apps</span> <span class="caret"></span>
+            <span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
         </button>
+
         <ul class="dropdown-menu">
-            <li><a href="#" id="app-cards-list-validated">Only official apps</a></li>
-            <li><a href="#" id="app-cards-list-working">Only working apps</a></li>
-            <li><a href="#" id="app-cards-list-working-inprogress">In progress/not working apps</a></li>
-            <li><a href="#" id="app-cards-list-all-apps">All apps</a></li>
+            <li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
+            <li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
+            <li><a href="#" data-quality-filter="working">Only working apps</a></li>
+            <li><a href="#" data-quality-filter="none">All apps</a></li>
         </ul>
     </div>
 </div>
 <br />
-<div id="community-app-list-warrant" class="alert alert-danger">
-    <p>Only apps tagged <span class="label label-success label-as-badge">validated</span> are officially supported by the package team. </p>
 
-    <p>Apps tagged <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are from community repository, you can test and use them **at your own risk**.</p>
+<!--
+Disclaimers
+-->
 
-    <p>Important: it's the application maintaineur that qualify his application as working, not the YunoHost core team. Install it at your own risks. We won't provide support for it.</p>
+<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the code repositories.</div>
+
+<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
+    Applications with a level below or equal to 4 may be working, but they might be not well-integrated with YunoHost, or they do not respect the recommended packaging practices.
 </div>
-<div class="alert alert-info">The packagers will appreciate your remarks. If you install them and find issues, or ideas for improvement, do not hesitate to file issues directly on their repositories project page.</div>
 
-<div class="app-cards-list" id="app-cards-list"></div>
+<div id="broken-apps-disclaimer" class="alert alert-danger">
+    Applications with level 0, or flagged as <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are still in development or are know to not be working. **Do not install them** in a production environment!
+</div>
 
-<div class="alert alert-warning">If you don't find the app you are searching for, you can search it in community app repository (working, inprogress and not working apps) or fill the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+<div id="app-cards-list" class="app-cards-list"></div>
+
+<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+
+<!--
+Custom CSS for this page
+-->
 
 <style>
 /*=================================================
@@ -64,6 +79,7 @@ This page requires Javascript enabled to display properly :s.
     min-height: 1px;
     margin-right: 10px;
     margin-left: 10px;
+    border-radius: 3px;
 }
 /*===============================================*/
 
@@ -75,12 +91,17 @@ This page requires Javascript enabled to display properly :s.
     margin-bottom:5px;
     font-size:1.2em;
 }
-.app-card .category {
+.app-card .app-badges {
     height:35px;
 }
-.app-card .category .label, .app-card-date-maintainer {
-    font-size:0.7em;
+.app-card .app-badges .label, .app-card-date-maintainer {
+    font-size:0.6em;
 }
+
+.label-epic {
+    background-color: darkorchid;
+}
+
 .app-card-date-maintainer {
     text-align:right;
     max-height: 18px;
@@ -108,6 +129,8 @@ This page requires Javascript enabled to display properly :s.
 }
 .app-card > .btn-group > .btn{
     border-bottom:0;
+    font-size: 0.9em;
+    line-height: 1.58;
 }
 .app-card > .btn-group > .btn:first-child {
     border-left:0;
@@ -122,12 +145,16 @@ This page requires Javascript enabled to display properly :s.
 /*===============================================*/
 </style>
 
+<!--
+App card template
+-->
+
 <script type="text/template" id="app-template2">
-    <div class="app-card_{app_id} app-card panel panel-default">
+    <div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
 
         <div class="panel-body">
             <h3>{app_name}</h3>
-            <div class="category"></div>
+            <div class="app-badges"></div>
 
             <div class="app-card-desc">{app_description}</div>
         </div>
@@ -138,13 +165,18 @@ This page requires Javascript enabled to display properly :s.
         <div class="btn-group" role="group">
             <a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
             <a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
-            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
+            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
         </div>
 
     </div>
 </script>
 
+<!--
+Javascript helpers
+-->
+
 <script>
+
 function timeConverter(UNIX_timestamp) {
     var a = new Date(UNIX_timestamp*1000);
     var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
@@ -159,19 +191,36 @@ function timeConverter(UNIX_timestamp) {
     return time;
 }
 
+
 $(document).ready(function () {
-    // Hide warrant about community list
-    $('#community-app-list-warrant').hide();
-    var filters = ["validated"];
+
+    // Hide warrant about states when we're using the default filter
+    $('#state-disclaimer').hide();
+    var quality_filters = "decent";
 
     function filter(){
-        var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
-        var valThis = $('#filter-app-cards').val().toLowerCase();
-        $('.app-card').each(function(){
-            var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
+
+        var current_quality_filter = $('#current-quality-filter').data("filter");
+        var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
+
+        $('.app-card').each(function() {
+            // This is where we actually define how apps are filtered:
+            // we look for the name of the app (h3) and try to find the user input
+            // + we check this app match the current quality filter
+            var app_name = $(this).find('h3').text().toLowerCase();
+            if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
+            {
+                $(this).show();
+            }
+            else
+            {
+                $(this).hide();
+            }
         });
-        (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
+
+        // Display or hide the disclaimers depending on the current filter...
+        ((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
+        ((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
     }
 
     //=================================================
@@ -179,81 +228,87 @@ $(document).ready(function () {
     //=================================================
     $('#filter-app-cards').keyup(filter);
 
-    $('#app-cards-list-validated').click(function(){
-        filters = ["validated"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
+    $('a[data-quality-filter]').on("click", function(){
+        $('#current-quality-filter').text($(this).text());
+        $('#current-quality-filter').data("filter", $(this).data("quality-filter"));
         filter();
     });
 
-    $('#app-cards-list-working').click(function(){
-        filters = ["validated", "working"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
-        filter();
-    });
-
-    $('#app-cards-list-working-inprogress').click(function(){
-        filters = ["notworking", "inprogress"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
-        filter();
-    });
-
-    $('#app-cards-list-all-apps').click(function(){
-        filters = ["validated", "working", "inprogress", "notworking"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
-        filter();
-    });
-    //=================================================
-
 
     //=================================================
     // Upload apps lists
     //=================================================
-    var app_list={};
-    $.when(
-        $.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
-            app_list.community = $.map(community, function(el) { return el; });
-        }),
-        $.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
-            app_list.official = $.map(official, function(el) { return el; });
-        })
-    ).then(function() {
-        app_list = app_list.official.concat(app_list.community);
+    var catalog = undefined;
 
-        // Sort alpha
-        app_list.sort(function(a, b){
-            a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
-            b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
+    // Fetch application catalog
+
+    $.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
+
+        catalog = $.map(data, function(el) { return el; });
+
+        // Clarify high quality state, and level if undefined or inprogress or notworking...
+
+        $.each(catalog, function(k, infos) {
+            if ((infos.level === undefined) || (infos.state === "inprogress") || (infos.state === "notworking")) {
+                infos.level = null;
+            }
+            if ((infos.high_quality === true) && (infos.level === 8)) {
+                infos.state = "high quality";
+            }
+        });
+
+        // Sort apps according to their state and level...
+
+        catalog.sort(function(a, b){
+            a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
+            b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
             if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
             else if (a.manifest.id == b.manifest.id) {return 0;}
             return -1;
         });
-        $.each(app_list, function(k, infos) {
+
+        // Add the card for each app
+
+        $.each(catalog, function(k, infos) {
+
             app_id = infos.manifest.id;
-            app_install_bootstrap = "success";
-            if (infos.state === "validated") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "working") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "inprogress") {
-                app_state_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.state === "notworking") {
-                app_state_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            }
-            if (infos.level == null ) {
-                infos.level = '?';
-            }
-            if (infos.level == 0 ) {
-                app_level_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            } else if (infos.level <= 2) {
-                app_level_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.level >= 7) {
-                app_level_bootstrap = "success";
+
+            // Define what style to use for state, level and install button
+            // according to the app quality ....
+
+            if (infos.state === "high quality") {
+                app_quality = "high,decent,working,none";
+                app_state_css_style = "epic";
+                app_install_css_style = "success";
+                app_level_css_style = "epic";
+            } else if (infos.level > 4) {
+                app_quality = "decent,working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "success";
+                app_level_css_style = "success";
+            } else if (infos.level > 0) {
+                app_quality = "working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "warning";
+                app_level_css_style = "warning";
             } else {
-                app_level_bootstrap = "default";
+                app_quality = "none";
+                if (infos.state === "working") {
+                    app_state_css_style = "success";
+                }
+                else if (infos.state === "inprogress") {
+                    app_state_css_style = "warning";
+                }
+                else {
+                    app_state_css_style = "danger";
+                }
+                app_install_css_style = "danger";
+                app_level_css_style = "danger";
+            }
+
+            // If level is null, we wanna display '?'
+            if (infos.level == null) {
+                infos.level = '?';
             }
 
             // Fill the template
@@ -264,10 +319,12 @@ $(document).ready(function () {
              .replace(/{app_git}/g, infos.git.url)
              .replace('{app_branch}', infos.git.branch)
              .replace('{app_level}', infos.level)
+             .replace('{app_quality}', app_quality)
              .replace('{app_update}', timeConverter(infos.lastUpdate))
-             .replace('{app_state_bootstrap}', app_state_bootstrap)
-             .replace('{app_install_bootstrap}', app_install_bootstrap);
+             .replace('{app_state_css_style}', app_state_css_style)
+             .replace('{app_install_css_style}', app_install_css_style);
 
+            // Handle the maintainer info
             if (infos.maintained == false)
             {
                html = html
@@ -275,34 +332,34 @@ $(document).ready(function () {
                  .replace('{maintained_icon}', 'warning-sign')
                  .replace('{app_maintainer}', "Unmaintained")
                  .replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
-            } else {
-            if (infos.manifest.developer) {
+            }
+            else {
                 html = html
                  .replace('{maintained_state}', 'maintained')
                  .replace('{maintained_icon}', 'user')
-                 .replace('{app_maintainer}', infos.manifest.developer.name)
                  .replace('{maintained_help}', "Current maintainer of this package");
-            }
-            if (infos.manifest.maintainer) {
-                html = html
-                 .replace('{maintained_state}', 'maintained')
-                 .replace('{maintained_icon}', 'user')
-                 .replace('{app_maintainer}', infos.manifest.maintainer.name)
-                 .replace('{maintained_help}', "Current maintainer of this package");;
-            }
-            }
 
+                if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.developer.name);
+                }
+                else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
+                }
+                else {
+                    html = html.replace('{app_maintainer}', "???");
+                }
+            }
 
             // Fill the template
             $('#app-cards-list').append(html);
             $('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
-            if (infos.manifest.license && infos.manifest.license != 'free') {
-                $('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
+            $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
+            if ((infos.state === "high quality") || (infos.state === "working")) {
+                $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">level '+infos.level+'</span>');
             }
 
         });
+
         filter();
     });
     //=================================================

From 7f3cd4a3964e9c8e209c309b96f946c24ddadf5e Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 18 Oct 2019 01:05:14 +0200
Subject: [PATCH 218/360] Have this called the application catalog on landpage

---
 index.md    | 2 +-
 index_fr.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/index.md b/index.md
index 755bf5e4..4742bd5f 100644
--- a/index.md
+++ b/index.md
@@ -75,7 +75,7 @@
   <div class="row cf">
     <div class="col-md-7 text-right">
       <h1>Install <small>applications to build your little corner of Internet</small></h1>
-      <p><br /><a href="/apps">Browse available apps</a></p>
+      <p><br /><a href="/apps">Browse the app catalog</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
diff --git a/index_fr.md b/index_fr.md
index e3ea6701..b2cdf980 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -72,7 +72,7 @@
   <div class="row cf">
     <div class="col-md-7 text-right">
       <h1>Construisez <small>votre petit bout d'Internet en ajoutant des applications en quelques clics</small></h1>
-      <p><br /><a href="/apps">Parcourir les applications disponibles</a></p>
+      <p><br /><a href="/apps">Parcourir le catalogue d'applications</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">

From 067180f1e8f887165f6a195e0693f231986c4628 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 21 Oct 2019 02:13:09 +0200
Subject: [PATCH 219/360] Translate new apps.md to french

---
 apps.md    |   1 +
 apps_fr.md | 302 +++++++++++++++++++++++++++++++++--------------------
 2 files changed, 188 insertions(+), 115 deletions(-)

diff --git a/apps.md b/apps.md
index 92bda734..70eff9be 100644
--- a/apps.md
+++ b/apps.md
@@ -234,6 +234,7 @@ $(document).ready(function () {
         filter();
     });
 
+    filter();
 
     //=================================================
     // Upload apps lists
diff --git a/apps_fr.md b/apps_fr.md
index ea2df5b7..88bcd6f4 100644
--- a/apps_fr.md
+++ b/apps_fr.md
@@ -1,4 +1,4 @@
-# Apps
+# Application catalog
 
 <span class="javascriptDisclaimer">
 Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
@@ -6,34 +6,48 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
 <br/>
 </span>
 
+<!--
+Search bar
+-->
 <div class="input-group">
-    <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
-    <input type="text" id="filter-app-cards" class="form-control"  placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
+    <span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
+    <input id="filter-app-cards" type="text" class="form-control"  placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
     <div class="input-group-btn">
         <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-            <span id="app-cards-list-filter-text">Apps officielles seulement</span> <span class="caret"></span>
+            <span id="current-quality-filter" data-filter="decent">Seulement les apps de qualité décente</span> <span class="caret"></span>
         </button>
+
         <ul class="dropdown-menu">
-            <li><a href="#" id="app-cards-list-validated">Apps officielles seulement</a></li>
-            <li><a href="#" id="app-cards-list-working">Apps "working" seulement</a></li>
-            <li><a href="#" id="app-cards-list-working-inprogress">Apps "in progress"/"not working"</a></li>
-            <li><a href="#" id="app-cards-list-all-apps">Toutes les apps</a></li>
+            <li><a href="#" data-quality-filter="high">Seulement les apps haute-qualité</a></li>
+            <li><a href="#" data-quality-filter="decent">Seulement les apps de qualité décente</a></li>
+            <li><a href="#" data-quality-filter="working">Seulement les apps fonctionelles</a></li>
+            <li><a href="#" data-quality-filter="none">Toutes les apps</a></li>
         </ul>
     </div>
 </div>
 <br />
-<div id="community-app-list-warrant" class="alert alert-danger">
-    <p>Seules les apps marquées <span class="label label-success label-as-badge">validated</span> sont officiellement supportées par l'équipe de développement d'applications. </p>
 
-    <p>Les apps marquées <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont des applications non officielles maintenues par la communauté, vous pouvez les tester et les utiliser **à vos risques et périls**.</p>
+<!--
+Disclaimers
+-->
 
-    <p>Important: c'est le mainteneur de l'application qui définit son application comme "working" et non pas l'équipe de développement d'applications de Yunohost. Installez ces apps à vos risques et périls. Nous ne fournissons pas de support pour elles.</p>
+<div class="alert alert-info">L'équipe de packaging d'applications sera heureuse de recevoir vos commentaires! Si vous trouvez des problèmes ou des améliorations possibles en installant une app, n'hésitez pas à contribuer en créant un ticket (issue) directement sur le dépôt de code.</div>
+
+<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
+Les applications avec un niveau inférieur ou égal à 4 peuvent fonctionner, mais ne seront pas forcément bien intégrées avec YunoHost, ou bien ne respectent pas les bonnes pratiques de packaging.
 </div>
-<div class="alert alert-info">Les développeurs d'applications apprécieront vos remarques. Si vous installez leurs apps et trouvez des dysfonctionnement, ou si vous avez des idées d'amélioration, n'hésitez pas à créer des tickets directement sur les pages de dépots des projets.</div>
 
-<div class="app-cards-list" id="app-cards-list"></div>
+<div id="broken-apps-disclaimer" class="alert alert-danger">
+Les applications niveau 0, ou étiquettées <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont toujours en cours de packaging ou sont connues pour être cassées. **Ne les installez pas** sur un serveur de production!
+</div>
 
-<div class="alert alert-warning">Si vous ne trouvez pas l'application que vous recherchez, vous pouvez la rechercher dans les apps communautaires (working, inprogress et notworking) ou remplir la <a href="/apps_wishlist_fr">liste d'apps souhaitées</a>.</div>
+<div id="app-cards-list" class="app-cards-list"></div>
+
+<div class="alert alert-warning">Si vous ne trouvez pas une application précise que vous recherchez, vous pouvez chercher un dépôt nommé nomdelapp_ynh sur Github ou internet, ou bien l'ajouter à la <a href="/apps_wishlist">liste d'apps souhaitées</a>.</div>
+
+<!--
+Custom CSS for this page
+-->
 
 <style>
 /*=================================================
@@ -64,6 +78,7 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
     min-height: 1px;
     margin-right: 10px;
     margin-left: 10px;
+    border-radius: 3px;
 }
 /*===============================================*/
 
@@ -75,12 +90,17 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
     margin-bottom:5px;
     font-size:1.2em;
 }
-.app-card .category {
+.app-card .app-badges {
     height:35px;
 }
-.app-card .category .label, .app-card-date-maintainer {
-    font-size:0.7em;
+.app-card .app-badges .label, .app-card-date-maintainer {
+    font-size:0.6em;
 }
+
+.label-epic {
+    background-color: darkorchid;
+}
+
 .app-card-date-maintainer {
     text-align:right;
     max-height: 18px;
@@ -89,6 +109,10 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
     margin-top: -5px;
 }
 
+.app-card .unmaintained {
+   color: #e0aa33;
+}
+
 .app-card-desc {
     height:100px;
     overflow: hidden;
@@ -104,8 +128,10 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
 }
 .app-card > .btn-group > .btn{
     border-bottom:0;
+    font-size: 0.9em;
+    line-height: 1.58;
 }
-.app-card > .btn-group > .btn:first-child {   
+.app-card > .btn-group > .btn:first-child {
     border-left:0;
     border-top-left-radius:0;
 }
@@ -118,30 +144,38 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
 /*===============================================*/
 </style>
 
+<!--
+App card template
+-->
+
 <script type="text/template" id="app-template2">
-    <div class="app-card_{app_id} app-card panel panel-default">
+    <div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
 
         <div class="panel-body">
             <h3>{app_name}</h3>
-            <div class="category"></div>
+            <div class="app-badges"></div>
 
             <div class="app-card-desc">{app_description}</div>
         </div>
-
             <div class="app-card-date-maintainer">
-                <span class="glyphicon glyphicon-refresh"></span> {app_update} - 
-                <span class="glyphicon glyphicon-user"></span> {app_maintainer}
+                <span class="glyphicon glyphicon-refresh"></span> {app_update} -
+                <span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
             </div>
         <div class="btn-group" role="group">
             <a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
-            <a href="#/app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
-            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">Installer</a>
+            <a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
+            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Installer</a>
         </div>
 
-    </div> 
+    </div>
 </script>
 
+<!--
+Javascript helpers
+-->
+
 <script>
+
 function timeConverter(UNIX_timestamp) {
     var a = new Date(UNIX_timestamp*1000);
     var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
@@ -156,19 +190,36 @@ function timeConverter(UNIX_timestamp) {
     return time;
 }
 
+
 $(document).ready(function () {
-    // Hide warrant about community list
-    $('#community-app-list-warrant').hide();
-    var filters = ["validated"];
+
+    // Hide warrant about states when we're using the default filter
+    $('#state-disclaimer').hide();
+    var quality_filters = "decent";
 
     function filter(){
-        var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
-        var valThis = $('#filter-app-cards').val().toLowerCase();
-        $('.app-card').each(function(){
-            var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
+
+        var current_quality_filter = $('#current-quality-filter').data("filter");
+        var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
+
+        $('.app-card').each(function() {
+            // This is where we actually define how apps are filtered:
+            // we look for the name of the app (h3) and try to find the user input
+            // + we check this app match the current quality filter
+            var app_name = $(this).find('h3').text().toLowerCase();
+            if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
+            {
+                $(this).show();
+            }
+            else
+            {
+                $(this).hide();
+            }
         });
-        (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
+
+        // Display or hide the disclaimers depending on the current filter...
+        ((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
+        ((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
     }
 
     //=================================================
@@ -176,81 +227,88 @@ $(document).ready(function () {
     //=================================================
     $('#filter-app-cards').keyup(filter);
 
-    $('#app-cards-list-validated').click(function(){
-        filters = ["validated"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
+    $('a[data-quality-filter]').on("click", function(){
+        $('#current-quality-filter').text($(this).text());
+        $('#current-quality-filter').data("filter", $(this).data("quality-filter"));
         filter();
     });
-
-    $('#app-cards-list-working').click(function(){
-        filters = ["validated", "working"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
-        filter();
-    });
-
-    $('#app-cards-list-working-inprogress').click(function(){
-        filters = ["notworking", "inprogress"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
-        filter();
-    });
-
-    $('#app-cards-list-all-apps').click(function(){
-        filters = ["validated", "working", "inprogress", "notworking"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
-        filter();
-    }); 
-    //=================================================  
-
+    
+    filter();
 
     //=================================================
     // Upload apps lists
     //=================================================
-    var app_list={};
-    $.when(
-        $.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
-            app_list.community = $.map(community, function(el) { return el; });
-        }),
-        $.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
-            app_list.official = $.map(official, function(el) { return el; });
-        })
-    ).then(function() {
-        app_list = app_list.official.concat(app_list.community);
-    
-        // Sort alpha
-        app_list.sort(function(a, b){
-            a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
-            b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
+    var catalog = undefined;
+
+    // Fetch application catalog
+
+    $.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
+
+        catalog = $.map(data, function(el) { return el; });
+
+        // Clarify high quality state, and level if undefined or inprogress or notworking...
+
+        $.each(catalog, function(k, infos) {
+            if ((infos.level === undefined) || (infos.state === "inprogress") || (infos.state === "notworking")) {
+                infos.level = null;
+            }
+            if ((infos.high_quality === true) && (infos.level === 8)) {
+                infos.state = "high quality";
+            }
+        });
+
+        // Sort apps according to their state and level...
+
+        catalog.sort(function(a, b){
+            a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
+            b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
             if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
             else if (a.manifest.id == b.manifest.id) {return 0;}
             return -1;
         });
-        $.each(app_list, function(k, infos) {
+
+        // Add the card for each app
+
+        $.each(catalog, function(k, infos) {
+
             app_id = infos.manifest.id;
-            app_install_bootstrap = "success";
-            if (infos.state === "validated") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "working") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "inprogress") {
-                app_state_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.state === "notworking") {
-                app_state_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            }
-            if (infos.level == null ) {
-                infos.level = '?';
-            }
-            if (infos.level == 0 ) {
-                app_level_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            } else if (infos.level <= 2) {
-                app_level_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.level >= 7) {
-                app_level_bootstrap = "success";
+
+            // Define what style to use for state, level and install button
+            // according to the app quality ....
+
+            if (infos.state === "high quality") {
+                app_quality = "high,decent,working,none";
+                app_state_css_style = "epic";
+                app_install_css_style = "success";
+                app_level_css_style = "epic";
+            } else if (infos.level > 4) {
+                app_quality = "decent,working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "success";
+                app_level_css_style = "success";
+            } else if (infos.level > 0) {
+                app_quality = "working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "warning";
+                app_level_css_style = "warning";
             } else {
-                app_level_bootstrap = "default";
+                app_quality = "none";
+                if (infos.state === "working") {
+                    app_state_css_style = "success";
+                }
+                else if (infos.state === "inprogress") {
+                    app_state_css_style = "warning";
+                }
+                else {
+                    app_state_css_style = "danger";
+                }
+                app_install_css_style = "danger";
+                app_level_css_style = "danger";
+            }
+
+            // If level is null, we wanna display '?'
+            if (infos.level == null) {
+                infos.level = '?';
             }
 
             // Fill the template
@@ -261,35 +319,49 @@ $(document).ready(function () {
              .replace(/{app_git}/g, infos.git.url)
              .replace('{app_branch}', infos.git.branch)
              .replace('{app_level}', infos.level)
+             .replace('{app_quality}', app_quality)
              .replace('{app_update}', timeConverter(infos.lastUpdate))
-             .replace('{app_state_bootstrap}', app_state_bootstrap)
-             .replace('{app_install_bootstrap}', app_install_bootstrap);
+             .replace('{app_state_css_style}', app_state_css_style)
+             .replace('{app_install_css_style}', app_install_css_style);
 
-            if (infos.manifest.developer) {
-                html = html
-                 .replace('{app_maintainer}', infos.manifest.developer.name)
-                 .replace('{app_mail}', infos.manifest.developer.email);
+            // Handle the maintainer info
+            if (infos.maintained == false)
+            {
+               html = html
+                 .replace('{maintained_state}', 'unmaintained')
+                 .replace('{maintained_icon}', 'warning-sign')
+                 .replace('{app_maintainer}', "Unmaintained")
+                 .replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
             }
-
-            if (infos.manifest.maintainer) {
+            else {
                 html = html
-                 .replace('{app_maintainer}', infos.manifest.maintainer.name)
-                 .replace('{app_mail}', infos.manifest.maintainer.email);
+                 .replace('{maintained_state}', 'maintained')
+                 .replace('{maintained_icon}', 'user')
+                 .replace('{maintained_help}', "Current maintainer of this package");
+
+                if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.developer.name);
+                }
+                else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
+                }
+                else {
+                    html = html.replace('{app_maintainer}', "???");
+                }
             }
 
             // Fill the template
             $('#app-cards-list').append(html);
             $('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
-            if (infos.manifest.license && infos.manifest.license != 'free') {
-                $('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
+            $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
+            if ((infos.state === "high quality") || (infos.state === "working")) {
+                $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">niveau '+infos.level+'</span>');
             }
 
         });
+
         filter();
     });
-    //=================================================  
+    //=================================================
 });
 </script>
-

From d96ae0c98ec32b5d4775a331644f087d6c34e1bb Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 21 Oct 2019 02:25:49 +0200
Subject: [PATCH 220/360] Brutally replace other translations with en
 version...

---
 apps_ar.md | 311 +++++++++++++++++++++++++++++++++--------------------
 apps_es.md | 305 +++++++++++++++++++++++++++++++--------------------
 apps_it.md | 288 +++++++++++++++++++++++++++++--------------------
 3 files changed, 554 insertions(+), 350 deletions(-)

diff --git a/apps_ar.md b/apps_ar.md
index d3b929bd..70eff9be 100644
--- a/apps_ar.md
+++ b/apps_ar.md
@@ -1,4 +1,4 @@
-# <div dir="rtl">التطبيقات</div>
+# Application catalog
 
 <span class="javascriptDisclaimer">
 This page requires Javascript enabled to display properly :s.
@@ -6,34 +6,49 @@ This page requires Javascript enabled to display properly :s.
 <br/>
 </span>
 
-<div dir="rtl" class="input-group">
-    <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
-    <input type="text" id="filter-app-cards" class="form-control"  placeholder="البحث عن تطبيقات ..." aria-describedby="basic-addon1"/>
-    <div dir="rtl" class="input-group-btn">
+<!--
+Search bar
+-->
+
+<div class="input-group">
+    <span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
+    <input id="filter-app-cards" type="text" class="form-control"  placeholder="Search for apps..." aria-describedby="basic-addon1"/>
+    <div class="input-group-btn">
         <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-            <span id="app-cards-list-filter-text">التطبيقات الرسمية فقط</span> <span class="caret"></span>
+            <span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
         </button>
+
         <ul class="dropdown-menu">
-            <li><a href="#" id="app-cards-list-validated">التطبيقات الرسمية فقط</a></li>
-            <li><a href="#" id="app-cards-list-working">التطبيقات "التي تعمل" فقط</a></li>
-            <li><a href="#" id="app-cards-list-working-inprogress">التطبيقات "الجاري العمل عليها"/"و التي لاتعمل"</a></li>
-            <li><a href="#" id="app-cards-list-all-apps">كافة التطبيقات</a></li>
+            <li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
+            <li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
+            <li><a href="#" data-quality-filter="working">Only working apps</a></li>
+            <li><a href="#" data-quality-filter="none">All apps</a></li>
         </ul>
     </div>
 </div>
 <br />
-<div dir="rtl" id="community-app-list-warrant" class="alert alert-danger">
-    <p>إلّا التطبيقات المحددة بعلامة <span class="label label-success label-as-badge">validated</span> تعتبر مدعومة رسميا من طرف فريق التحزيم. </p>
 
-    <p>Les apps marquées <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont des applications non officielles maintenues par la communauté, vous pouvez les tester et les utiliser **à vos risques et périls**.</p>
+<!--
+Disclaimers
+-->
 
-    <p>Important: c'est le mainteneur de l'application qui définit son application comme "working" et non pas l'équipe d'empaquetage de Yunohost. Installez ces apps à vos risques et périls. Nous ne fournissons pas de support pour elles.</p>
+<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the code repositories.</div>
+
+<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
+    Applications with a level below or equal to 4 may be working, but they might be not well-integrated with YunoHost, or they do not respect the recommended packaging practices.
 </div>
-<div dir="rtl"class="alert alert-info">إنّ فريق التحزيم سوف يأخذ بعين الإعتبار ملاحظاتكم. مثال، إن قمتم بتنصيب تطبيقاتهم و عارضتكم مشاكل أو إن كلمة عندكم أفكارا لتحسين التطبيقات، فلا تبخلوا التحو تذكرة مباشرة على صفحات مستودعات المشاريع نفسها</div>
 
-<div class="app-cards-list" id="app-cards-list"></div>
+<div id="broken-apps-disclaimer" class="alert alert-danger">
+    Applications with level 0, or flagged as <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are still in development or are know to not be working. **Do not install them** in a production environment!
+</div>
 
-<div dir="rtl"  class="alert alert-warning">إن لم تتمكنوا من العثور على التطبيق الذي تبحثون عنه هنا، يمكنكم البحث كذلك في مستودع تطبيقات المجتمع (التي تعمل، الجاري العمل عليها و التي لا تعمل) أو قوموا بإضافتها إلى <a href="/apps_wishlist_fr">قائمة التطبيقات المرغوب فيها</a>.</div>
+<div id="app-cards-list" class="app-cards-list"></div>
+
+<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+
+<!--
+Custom CSS for this page
+-->
 
 <style>
 /*=================================================
@@ -64,6 +79,7 @@ This page requires Javascript enabled to display properly :s.
     min-height: 1px;
     margin-right: 10px;
     margin-left: 10px;
+    border-radius: 3px;
 }
 /*===============================================*/
 
@@ -75,12 +91,17 @@ This page requires Javascript enabled to display properly :s.
     margin-bottom:5px;
     font-size:1.2em;
 }
-.app-card .category {
+.app-card .app-badges {
     height:35px;
 }
-.app-card .category .label, .app-card-date-maintainer {
-    font-size:0.7em;
+.app-card .app-badges .label, .app-card-date-maintainer {
+    font-size:0.6em;
 }
+
+.label-epic {
+    background-color: darkorchid;
+}
+
 .app-card-date-maintainer {
     text-align:right;
     max-height: 18px;
@@ -89,6 +110,10 @@ This page requires Javascript enabled to display properly :s.
     margin-top: -5px;
 }
 
+.app-card .unmaintained {
+   color: #e0aa33;
+}
+
 .app-card-desc {
     height:100px;
     overflow: hidden;
@@ -104,8 +129,10 @@ This page requires Javascript enabled to display properly :s.
 }
 .app-card > .btn-group > .btn{
     border-bottom:0;
+    font-size: 0.9em;
+    line-height: 1.58;
 }
-.app-card > .btn-group > .btn:first-child {   
+.app-card > .btn-group > .btn:first-child {
     border-left:0;
     border-top-left-radius:0;
 }
@@ -118,33 +145,41 @@ This page requires Javascript enabled to display properly :s.
 /*===============================================*/
 </style>
 
+<!--
+App card template
+-->
+
 <script type="text/template" id="app-template2">
-    <div class="app-card_{app_id} app-card panel panel-default">
+    <div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
 
         <div class="panel-body">
             <h3>{app_name}</h3>
-            <div class="category"></div>
+            <div class="app-badges"></div>
 
             <div class="app-card-desc">{app_description}</div>
         </div>
-
             <div class="app-card-date-maintainer">
-                <span class="glyphicon glyphicon-refresh"></span> {app_update} - 
-                <span class="glyphicon glyphicon-user"></span> {app_maintainer}
+                <span class="glyphicon glyphicon-refresh"></span> {app_update} -
+                <span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
             </div>
         <div class="btn-group" role="group">
-            <a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> الشفرة</a>
-            <a href="#/app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> الدليل</a>
-            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">تنصيب</a>
+            <a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
+            <a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
+            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
         </div>
 
-    </div> 
+    </div>
 </script>
 
+<!--
+Javascript helpers
+-->
+
 <script>
+
 function timeConverter(UNIX_timestamp) {
     var a = new Date(UNIX_timestamp*1000);
-    var months = ['جانفي','فيفري','مارس','أفريل','ماي','جوان','جويلية','أوت','سبتمبر','أكتوبر','نوفمبر','ديسمبر'];
+    var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
     var year = a.getFullYear();
     var month = months[a.getMonth()];
     var date = a.getDate();
@@ -156,19 +191,36 @@ function timeConverter(UNIX_timestamp) {
     return time;
 }
 
+
 $(document).ready(function () {
-    // Hide warrant about community list
-    $('#community-app-list-warrant').hide();
-    var filters = ["validated"];
+
+    // Hide warrant about states when we're using the default filter
+    $('#state-disclaimer').hide();
+    var quality_filters = "decent";
 
     function filter(){
-        var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
-        var valThis = $('#filter-app-cards').val().toLowerCase();
-        $('.app-card').each(function(){
-            var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
+
+        var current_quality_filter = $('#current-quality-filter').data("filter");
+        var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
+
+        $('.app-card').each(function() {
+            // This is where we actually define how apps are filtered:
+            // we look for the name of the app (h3) and try to find the user input
+            // + we check this app match the current quality filter
+            var app_name = $(this).find('h3').text().toLowerCase();
+            if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
+            {
+                $(this).show();
+            }
+            else
+            {
+                $(this).hide();
+            }
         });
-        (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
+
+        // Display or hide the disclaimers depending on the current filter...
+        ((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
+        ((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
     }
 
     //=================================================
@@ -176,120 +228,141 @@ $(document).ready(function () {
     //=================================================
     $('#filter-app-cards').keyup(filter);
 
-    $('#app-cards-list-validated').click(function(){
-        filters = ["validated"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
+    $('a[data-quality-filter]').on("click", function(){
+        $('#current-quality-filter').text($(this).text());
+        $('#current-quality-filter').data("filter", $(this).data("quality-filter"));
         filter();
     });
 
-    $('#app-cards-list-working').click(function(){
-        filters = ["validated", "working"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
-        filter();
-    });
-
-    $('#app-cards-list-working-inprogress').click(function(){
-        filters = ["notworking", "inprogress"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
-        filter();
-    });
-
-    $('#app-cards-list-all-apps').click(function(){
-        filters = ["validated", "working", "inprogress", "notworking"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
-        filter();
-    }); 
-    //=================================================  
-
+    filter();
 
     //=================================================
     // Upload apps lists
     //=================================================
-    var app_list={};
-    $.when(
-        $.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
-            app_list.community = $.map(community, function(el) { return el; });
-        }),
-        $.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
-            app_list.official = $.map(official, function(el) { return el; });
-        })
-    ).then(function() {
-        app_list = app_list.official.concat(app_list.community);
-    
-        // Sort alpha
-        app_list.sort(function(a, b){
-            a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
-            b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
+    var catalog = undefined;
+
+    // Fetch application catalog
+
+    $.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
+
+        catalog = $.map(data, function(el) { return el; });
+
+        // Clarify high quality state, and level if undefined or inprogress or notworking...
+
+        $.each(catalog, function(k, infos) {
+            if ((infos.level === undefined) || (infos.state === "inprogress") || (infos.state === "notworking")) {
+                infos.level = null;
+            }
+            if ((infos.high_quality === true) && (infos.level === 8)) {
+                infos.state = "high quality";
+            }
+        });
+
+        // Sort apps according to their state and level...
+
+        catalog.sort(function(a, b){
+            a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
+            b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
             if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
             else if (a.manifest.id == b.manifest.id) {return 0;}
             return -1;
         });
-        $.each(app_list, function(k, infos) {
+
+        // Add the card for each app
+
+        $.each(catalog, function(k, infos) {
+
             app_id = infos.manifest.id;
-            app_install_bootstrap = "success";
-            if (infos.state === "validated") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "working") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "inprogress") {
-                app_state_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.state === "notworking") {
-                app_state_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            }
-            if (infos.level == null ) {
-                infos.level = '?';
-            }
-            if (infos.level == 0 ) {
-                app_level_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            } else if (infos.level <= 2) {
-                app_level_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.level >= 7) {
-                app_level_bootstrap = "success";
+
+            // Define what style to use for state, level and install button
+            // according to the app quality ....
+
+            if (infos.state === "high quality") {
+                app_quality = "high,decent,working,none";
+                app_state_css_style = "epic";
+                app_install_css_style = "success";
+                app_level_css_style = "epic";
+            } else if (infos.level > 4) {
+                app_quality = "decent,working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "success";
+                app_level_css_style = "success";
+            } else if (infos.level > 0) {
+                app_quality = "working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "warning";
+                app_level_css_style = "warning";
             } else {
-                app_level_bootstrap = "default";
+                app_quality = "none";
+                if (infos.state === "working") {
+                    app_state_css_style = "success";
+                }
+                else if (infos.state === "inprogress") {
+                    app_state_css_style = "warning";
+                }
+                else {
+                    app_state_css_style = "danger";
+                }
+                app_install_css_style = "danger";
+                app_level_css_style = "danger";
+            }
+
+            // If level is null, we wanna display '?'
+            if (infos.level == null) {
+                infos.level = '?';
             }
 
             // Fill the template
             html = $('#app-template2').html()
              .replace(/{app_id}/g, app_id)
              .replace(/{app_name}/g, infos.manifest.name)
-             .replace('{app_description}', infos.manifest.description.fr)
+             .replace('{app_description}', infos.manifest.description.en)
              .replace(/{app_git}/g, infos.git.url)
              .replace('{app_branch}', infos.git.branch)
              .replace('{app_level}', infos.level)
+             .replace('{app_quality}', app_quality)
              .replace('{app_update}', timeConverter(infos.lastUpdate))
-             .replace('{app_state_bootstrap}', app_state_bootstrap)
-             .replace('{app_install_bootstrap}', app_install_bootstrap);
+             .replace('{app_state_css_style}', app_state_css_style)
+             .replace('{app_install_css_style}', app_install_css_style);
 
-            if (infos.manifest.developer) {
-                html = html
-                 .replace('{app_maintainer}', infos.manifest.developer.name)
-                 .replace('{app_mail}', infos.manifest.developer.email);
+            // Handle the maintainer info
+            if (infos.maintained == false)
+            {
+               html = html
+                 .replace('{maintained_state}', 'unmaintained')
+                 .replace('{maintained_icon}', 'warning-sign')
+                 .replace('{app_maintainer}', "Unmaintained")
+                 .replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
             }
-
-            if (infos.manifest.maintainer) {
+            else {
                 html = html
-                 .replace('{app_maintainer}', infos.manifest.maintainer.name)
-                 .replace('{app_mail}', infos.manifest.maintainer.email);
+                 .replace('{maintained_state}', 'maintained')
+                 .replace('{maintained_icon}', 'user')
+                 .replace('{maintained_help}', "Current maintainer of this package");
+
+                if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.developer.name);
+                }
+                else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
+                }
+                else {
+                    html = html.replace('{app_maintainer}', "???");
+                }
             }
 
             // Fill the template
             $('#app-cards-list').append(html);
             $('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
-            if (infos.manifest.license && infos.manifest.license != 'free') {
-                $('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
+            $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
+            if ((infos.state === "high quality") || (infos.state === "working")) {
+                $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">level '+infos.level+'</span>');
             }
 
         });
+
         filter();
     });
-    //=================================================  
+    //=================================================
 });
 </script>
-
diff --git a/apps_es.md b/apps_es.md
index 99398de4..70eff9be 100644
--- a/apps_es.md
+++ b/apps_es.md
@@ -1,39 +1,54 @@
-# Apps
+# Application catalog
 
 <span class="javascriptDisclaimer">
-Esta página requiere que Javascript esté activado para aparecer correctamente :s.
+This page requires Javascript enabled to display properly :s.
 <br/>
 <br/>
 </span>
 
+<!--
+Search bar
+-->
+
 <div class="input-group">
-    <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
-    <input type="text" id="filter-app-cards" class="form-control"  placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
+    <span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
+    <input id="filter-app-cards" type="text" class="form-control"  placeholder="Search for apps..." aria-describedby="basic-addon1"/>
     <div class="input-group-btn">
         <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-            <span id="app-cards-list-filter-text">Apps oficiales únicamente</span> <span class="caret"></span>
+            <span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
         </button>
+
         <ul class="dropdown-menu">
-            <li><a href="#" id="app-cards-list-validated">Apps oficiales únicamente</a></li>
-            <li><a href="#" id="app-cards-list-working">Apps "working" únicamente</a></li>
-            <li><a href="#" id="app-cards-list-working-inprogress">Apps "in progress"/"not working"</a></li>
-            <li><a href="#" id="app-cards-list-all-apps">Todas las apps</a></li>
+            <li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
+            <li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
+            <li><a href="#" data-quality-filter="working">Only working apps</a></li>
+            <li><a href="#" data-quality-filter="none">All apps</a></li>
         </ul>
     </div>
 </div>
 <br />
-<div id="community-app-list-warrant" class="alert alert-danger">
-    <p>Sólo las apps señaladas <span class="label label-success label-as-badge">validated</span> están oficialmente soportadas por el equipo de desarrollo de aplicaciones. </p>
 
-    <p>Las apps señaladas <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> son aplicaciones que son oficiales, mantenidas por la comunidad, puedes testarlas y utilizarlas **por tu cuenta y riesgo**.</p>
+<!--
+Disclaimers
+-->
 
-    <p>Importante: son los que mantienen la aplicación quienes definen su propia aplicación cómo "working", no es el equipo de desarrollo de aplicaciones de Yunohost. Instala estas aplicaciones por tu cuenta y riesgo. No proponemos servicios de soporte para ellas.</p>
+<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the code repositories.</div>
+
+<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
+    Applications with a level below or equal to 4 may be working, but they might be not well-integrated with YunoHost, or they do not respect the recommended packaging practices.
 </div>
-<div class="alert alert-info">Los desarrolladores de aplicaciones te agradecerán tu comentarios. Si instalas sus apps y encuentras fallos, o si tienes ideas para mejorarlas, no dudes en crear tickets direactement en las páginas de depósitos de los proyectos.</div>
 
-<div class="app-cards-list" id="app-cards-list"></div>
+<div id="broken-apps-disclaimer" class="alert alert-danger">
+    Applications with level 0, or flagged as <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are still in development or are know to not be working. **Do not install them** in a production environment!
+</div>
 
-<div class="alert alert-warning">Si no encuentras la aplicación que buscas, puedes buscarla en las aplicaciones comunitarias (working, inprogress y networking) o llenar la <a href="/apps_wishlist_en">lista de apps deseadas</a>.</div>
+<div id="app-cards-list" class="app-cards-list"></div>
+
+<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+
+<!--
+Custom CSS for this page
+-->
 
 <style>
 /*=================================================
@@ -64,6 +79,7 @@ Esta página requiere que Javascript esté activado para aparecer correctamente
     min-height: 1px;
     margin-right: 10px;
     margin-left: 10px;
+    border-radius: 3px;
 }
 /*===============================================*/
 
@@ -75,12 +91,17 @@ Esta página requiere que Javascript esté activado para aparecer correctamente
     margin-bottom:5px;
     font-size:1.2em;
 }
-.app-card .category {
+.app-card .app-badges {
     height:35px;
 }
-.app-card .category .label, .app-card-date-maintainer {
-    font-size:0.7em;
+.app-card .app-badges .label, .app-card-date-maintainer {
+    font-size:0.6em;
 }
+
+.label-epic {
+    background-color: darkorchid;
+}
+
 .app-card-date-maintainer {
     text-align:right;
     max-height: 18px;
@@ -89,6 +110,10 @@ Esta página requiere que Javascript esté activado para aparecer correctamente
     margin-top: -5px;
 }
 
+.app-card .unmaintained {
+   color: #e0aa33;
+}
+
 .app-card-desc {
     height:100px;
     overflow: hidden;
@@ -104,8 +129,10 @@ Esta página requiere que Javascript esté activado para aparecer correctamente
 }
 .app-card > .btn-group > .btn{
     border-bottom:0;
+    font-size: 0.9em;
+    line-height: 1.58;
 }
-.app-card > .btn-group > .btn:first-child {   
+.app-card > .btn-group > .btn:first-child {
     border-left:0;
     border-top-left-radius:0;
 }
@@ -118,30 +145,38 @@ Esta página requiere que Javascript esté activado para aparecer correctamente
 /*===============================================*/
 </style>
 
+<!--
+App card template
+-->
+
 <script type="text/template" id="app-template2">
-    <div class="app-card_{app_id} app-card panel panel-default">
+    <div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
 
         <div class="panel-body">
             <h3>{app_name}</h3>
-            <div class="category"></div>
+            <div class="app-badges"></div>
 
             <div class="app-card-desc">{app_description}</div>
         </div>
-
             <div class="app-card-date-maintainer">
-                <span class="glyphicon glyphicon-refresh"></span> {app_update} - 
-                <span class="glyphicon glyphicon-user"></span> {app_maintainer}
+                <span class="glyphicon glyphicon-refresh"></span> {app_update} -
+                <span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
             </div>
         <div class="btn-group" role="group">
             <a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
-            <a href="#/app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
-            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">Installer</a>
+            <a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
+            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
         </div>
 
-    </div> 
+    </div>
 </script>
 
+<!--
+Javascript helpers
+-->
+
 <script>
+
 function timeConverter(UNIX_timestamp) {
     var a = new Date(UNIX_timestamp*1000);
     var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
@@ -156,19 +191,36 @@ function timeConverter(UNIX_timestamp) {
     return time;
 }
 
+
 $(document).ready(function () {
-    // Hide warrant about community list
-    $('#community-app-list-warrant').hide();
-    var filters = ["validated"];
+
+    // Hide warrant about states when we're using the default filter
+    $('#state-disclaimer').hide();
+    var quality_filters = "decent";
 
     function filter(){
-        var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
-        var valThis = $('#filter-app-cards').val().toLowerCase();
-        $('.app-card').each(function(){
-            var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
+
+        var current_quality_filter = $('#current-quality-filter').data("filter");
+        var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
+
+        $('.app-card').each(function() {
+            // This is where we actually define how apps are filtered:
+            // we look for the name of the app (h3) and try to find the user input
+            // + we check this app match the current quality filter
+            var app_name = $(this).find('h3').text().toLowerCase();
+            if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
+            {
+                $(this).show();
+            }
+            else
+            {
+                $(this).hide();
+            }
         });
-        (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
+
+        // Display or hide the disclaimers depending on the current filter...
+        ((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
+        ((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
     }
 
     //=================================================
@@ -176,120 +228,141 @@ $(document).ready(function () {
     //=================================================
     $('#filter-app-cards').keyup(filter);
 
-    $('#app-cards-list-validated').click(function(){
-        filters = ["validated"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
+    $('a[data-quality-filter]').on("click", function(){
+        $('#current-quality-filter').text($(this).text());
+        $('#current-quality-filter').data("filter", $(this).data("quality-filter"));
         filter();
     });
 
-    $('#app-cards-list-working').click(function(){
-        filters = ["validated", "working"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
-        filter();
-    });
-
-    $('#app-cards-list-working-inprogress').click(function(){
-        filters = ["notworking", "inprogress"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
-        filter();
-    });
-
-    $('#app-cards-list-all-apps').click(function(){
-        filters = ["validated", "working", "inprogress", "notworking"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
-        filter();
-    }); 
-    //=================================================  
-
+    filter();
 
     //=================================================
     // Upload apps lists
     //=================================================
-    var app_list={};
-    $.when(
-        $.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
-            app_list.community = $.map(community, function(el) { return el; });
-        }),
-        $.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
-            app_list.official = $.map(official, function(el) { return el; });
-        })
-    ).then(function() {
-        app_list = app_list.official.concat(app_list.community);
-    
-        // Sort alpha
-        app_list.sort(function(a, b){
-            a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
-            b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
+    var catalog = undefined;
+
+    // Fetch application catalog
+
+    $.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
+
+        catalog = $.map(data, function(el) { return el; });
+
+        // Clarify high quality state, and level if undefined or inprogress or notworking...
+
+        $.each(catalog, function(k, infos) {
+            if ((infos.level === undefined) || (infos.state === "inprogress") || (infos.state === "notworking")) {
+                infos.level = null;
+            }
+            if ((infos.high_quality === true) && (infos.level === 8)) {
+                infos.state = "high quality";
+            }
+        });
+
+        // Sort apps according to their state and level...
+
+        catalog.sort(function(a, b){
+            a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
+            b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
             if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
             else if (a.manifest.id == b.manifest.id) {return 0;}
             return -1;
         });
-        $.each(app_list, function(k, infos) {
+
+        // Add the card for each app
+
+        $.each(catalog, function(k, infos) {
+
             app_id = infos.manifest.id;
-            app_install_bootstrap = "success";
-            if (infos.state === "validated") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "working") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "inprogress") {
-                app_state_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.state === "notworking") {
-                app_state_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            }
-            if (infos.level == null ) {
-                infos.level = '?';
-            }
-            if (infos.level == 0 ) {
-                app_level_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            } else if (infos.level <= 2) {
-                app_level_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.level >= 7) {
-                app_level_bootstrap = "success";
+
+            // Define what style to use for state, level and install button
+            // according to the app quality ....
+
+            if (infos.state === "high quality") {
+                app_quality = "high,decent,working,none";
+                app_state_css_style = "epic";
+                app_install_css_style = "success";
+                app_level_css_style = "epic";
+            } else if (infos.level > 4) {
+                app_quality = "decent,working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "success";
+                app_level_css_style = "success";
+            } else if (infos.level > 0) {
+                app_quality = "working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "warning";
+                app_level_css_style = "warning";
             } else {
-                app_level_bootstrap = "default";
+                app_quality = "none";
+                if (infos.state === "working") {
+                    app_state_css_style = "success";
+                }
+                else if (infos.state === "inprogress") {
+                    app_state_css_style = "warning";
+                }
+                else {
+                    app_state_css_style = "danger";
+                }
+                app_install_css_style = "danger";
+                app_level_css_style = "danger";
+            }
+
+            // If level is null, we wanna display '?'
+            if (infos.level == null) {
+                infos.level = '?';
             }
 
             // Fill the template
             html = $('#app-template2').html()
              .replace(/{app_id}/g, app_id)
              .replace(/{app_name}/g, infos.manifest.name)
-             .replace('{app_description}', infos.manifest.description.fr)
+             .replace('{app_description}', infos.manifest.description.en)
              .replace(/{app_git}/g, infos.git.url)
              .replace('{app_branch}', infos.git.branch)
              .replace('{app_level}', infos.level)
+             .replace('{app_quality}', app_quality)
              .replace('{app_update}', timeConverter(infos.lastUpdate))
-             .replace('{app_state_bootstrap}', app_state_bootstrap)
-             .replace('{app_install_bootstrap}', app_install_bootstrap);
+             .replace('{app_state_css_style}', app_state_css_style)
+             .replace('{app_install_css_style}', app_install_css_style);
 
-            if (infos.manifest.developer) {
-                html = html
-                 .replace('{app_maintainer}', infos.manifest.developer.name)
-                 .replace('{app_mail}', infos.manifest.developer.email);
+            // Handle the maintainer info
+            if (infos.maintained == false)
+            {
+               html = html
+                 .replace('{maintained_state}', 'unmaintained')
+                 .replace('{maintained_icon}', 'warning-sign')
+                 .replace('{app_maintainer}', "Unmaintained")
+                 .replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
             }
-
-            if (infos.manifest.maintainer) {
+            else {
                 html = html
-                 .replace('{app_maintainer}', infos.manifest.maintainer.name)
-                 .replace('{app_mail}', infos.manifest.maintainer.email);
+                 .replace('{maintained_state}', 'maintained')
+                 .replace('{maintained_icon}', 'user')
+                 .replace('{maintained_help}', "Current maintainer of this package");
+
+                if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.developer.name);
+                }
+                else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
+                }
+                else {
+                    html = html.replace('{app_maintainer}', "???");
+                }
             }
 
             // Fill the template
             $('#app-cards-list').append(html);
             $('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
-            if (infos.manifest.license && infos.manifest.license != 'free') {
-                $('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
+            $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
+            if ((infos.state === "high quality") || (infos.state === "working")) {
+                $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">level '+infos.level+'</span>');
             }
 
         });
+
         filter();
     });
-    //=================================================  
+    //=================================================
 });
 </script>
-
diff --git a/apps_it.md b/apps_it.md
index 236439c3..70eff9be 100644
--- a/apps_it.md
+++ b/apps_it.md
@@ -1,39 +1,54 @@
-# Apps
+# Application catalog
 
 <span class="javascriptDisclaimer">
-Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s.
+This page requires Javascript enabled to display properly :s.
 <br/>
 <br/>
 </span>
 
+<!--
+Search bar
+-->
+
 <div class="input-group">
-    <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
-    <input type="text" id="filter-app-cards" class="form-control"  placeholder="Search for apps..." aria-describedby="basic-addon1"/>
+    <span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
+    <input id="filter-app-cards" type="text" class="form-control"  placeholder="Search for apps..." aria-describedby="basic-addon1"/>
     <div class="input-group-btn">
         <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-            <span id="app-cards-list-filter-text">Solo app ufficiali</span> <span class="caret"></span>
+            <span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
         </button>
+
         <ul class="dropdown-menu">
-            <li><a href="#" id="app-cards-list-validated">Solo app ufficiali</a></li>
-            <li><a href="#" id="app-cards-list-working">Solo app funzionanti</a></li>
-            <li><a href="#" id="app-cards-list-working-inprogress">App in sviluppo/non funzionanti</a></li>
-            <li><a href="#" id="app-cards-list-all-apps">Tutte le app</a></li>
+            <li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
+            <li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
+            <li><a href="#" data-quality-filter="working">Only working apps</a></li>
+            <li><a href="#" data-quality-filter="none">All apps</a></li>
         </ul>
     </div>
 </div>
 <br />
-<div id="community-app-list-warrant" class="alert alert-danger">
-    <p>Solo le app etichettate come <span class="label label-success label-as-badge">validate</span> sono ufficialmente supportate dalla squadra di packaging. </p>
 
-    <p>App etichettate come <span class="label label-success label-as-badge">funzionanti</span>, <span class="label label-warning label-as-badge">insviluppo</span>, <span class="label label-danger label-as-badge">nonfunzionanti</span> arrivano dai repository della comunità, puoi provare ed utilizzarle **a tuo rischio e pericolo**.</p>
+<!--
+Disclaimers
+-->
 
-    <p>Importante: è il mantenitore dell'applicazione che indica l'applicazione come funzionante, non il team base di YunoHost. Installale a tuo rischio e pericolo. Noi non forniamo supporto per queste app.</p>
+<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the code repositories.</div>
+
+<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
+    Applications with a level below or equal to 4 may be working, but they might be not well-integrated with YunoHost, or they do not respect the recommended packaging practices.
 </div>
-<div class="alert alert-info">I mantenitori apprezzeranno i tuoi consigli.Se le installi e incontri dei problemi, o idee per migliorarle, non esitare a segnalare la cosa direttamente nei rispettivi repository.</div>
 
-<div class="app-cards-list" id="app-cards-list"></div>
+<div id="broken-apps-disclaimer" class="alert alert-danger">
+    Applications with level 0, or flagged as <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are still in development or are know to not be working. **Do not install them** in a production environment!
+</div>
 
-<div class="alert alert-warning">Se non trovi l'app che stai cercando, puoi provarla a cercarla nel repository delle app della comunità (funzionanti, in sviluppo, non funzionanti) o aggiungila alla <a href="/apps_wishlist_en">lista delle app dei desideri</a>.</div>
+<div id="app-cards-list" class="app-cards-list"></div>
+
+<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+
+<!--
+Custom CSS for this page
+-->
 
 <style>
 /*=================================================
@@ -64,6 +79,7 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
     min-height: 1px;
     margin-right: 10px;
     margin-left: 10px;
+    border-radius: 3px;
 }
 /*===============================================*/
 
@@ -75,12 +91,17 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
     margin-bottom:5px;
     font-size:1.2em;
 }
-.app-card .category {
+.app-card .app-badges {
     height:35px;
 }
-.app-card .category .label, .app-card-date-maintainer {
-    font-size:0.7em;
+.app-card .app-badges .label, .app-card-date-maintainer {
+    font-size:0.6em;
 }
+
+.label-epic {
+    background-color: darkorchid;
+}
+
 .app-card-date-maintainer {
     text-align:right;
     max-height: 18px;
@@ -108,6 +129,8 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
 }
 .app-card > .btn-group > .btn{
     border-bottom:0;
+    font-size: 0.9em;
+    line-height: 1.58;
 }
 .app-card > .btn-group > .btn:first-child {
     border-left:0;
@@ -122,12 +145,16 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
 /*===============================================*/
 </style>
 
+<!--
+App card template
+-->
+
 <script type="text/template" id="app-template2">
-    <div class="app-card_{app_id} app-card panel panel-default">
+    <div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
 
         <div class="panel-body">
             <h3>{app_name}</h3>
-            <div class="category"></div>
+            <div class="app-badges"></div>
 
             <div class="app-card-desc">{app_description}</div>
         </div>
@@ -136,18 +163,23 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
                 <span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
             </div>
         <div class="btn-group" role="group">
-            <a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Codice</a>
+            <a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
             <a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
-            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Installa</a>
+            <a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
         </div>
 
     </div>
 </script>
 
+<!--
+Javascript helpers
+-->
+
 <script>
+
 function timeConverter(UNIX_timestamp) {
     var a = new Date(UNIX_timestamp*1000);
-    var months = ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
+    var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
     var year = a.getFullYear();
     var month = months[a.getMonth()];
     var date = a.getDate();
@@ -159,19 +191,36 @@ function timeConverter(UNIX_timestamp) {
     return time;
 }
 
+
 $(document).ready(function () {
-    // Hide warrant about community list
-    $('#community-app-list-warrant').hide();
-    var filters = ["validated"];
+
+    // Hide warrant about states when we're using the default filter
+    $('#state-disclaimer').hide();
+    var quality_filters = "decent";
 
     function filter(){
-        var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
-        var valThis = $('#filter-app-cards').val().toLowerCase();
-        $('.app-card').each(function(){
-            var text = $(this).find('h3').text().toLowerCase();
-            (text.indexOf(valThis) >= 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
+
+        var current_quality_filter = $('#current-quality-filter').data("filter");
+        var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
+
+        $('.app-card').each(function() {
+            // This is where we actually define how apps are filtered:
+            // we look for the name of the app (h3) and try to find the user input
+            // + we check this app match the current quality filter
+            var app_name = $(this).find('h3').text().toLowerCase();
+            if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
+            {
+                $(this).show();
+            }
+            else
+            {
+                $(this).hide();
+            }
         });
-        (filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
+
+        // Display or hide the disclaimers depending on the current filter...
+        ((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
+        ((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
     }
 
     //=================================================
@@ -179,81 +228,88 @@ $(document).ready(function () {
     //=================================================
     $('#filter-app-cards').keyup(filter);
 
-    $('#app-cards-list-validated').click(function(){
-        filters = ["validated"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
+    $('a[data-quality-filter]').on("click", function(){
+        $('#current-quality-filter').text($(this).text());
+        $('#current-quality-filter').data("filter", $(this).data("quality-filter"));
         filter();
     });
 
-    $('#app-cards-list-working').click(function(){
-        filters = ["validated", "working"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
-        filter();
-    });
-
-    $('#app-cards-list-working-inprogress').click(function(){
-        filters = ["notworking", "inprogress"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
-        filter();
-    });
-
-    $('#app-cards-list-all-apps').click(function(){
-        filters = ["validated", "working", "inprogress", "notworking"];
-        $('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
-        filter();
-    });
-    //=================================================
-
+    filter();
 
     //=================================================
     // Upload apps lists
     //=================================================
-    var app_list={};
-    $.when(
-        $.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
-            app_list.community = $.map(community, function(el) { return el; });
-        }),
-        $.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
-            app_list.official = $.map(official, function(el) { return el; });
-        })
-    ).then(function() {
-        app_list = app_list.official.concat(app_list.community);
+    var catalog = undefined;
 
-        // Sort alpha
-        app_list.sort(function(a, b){
-            a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
-            b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
+    // Fetch application catalog
+
+    $.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
+
+        catalog = $.map(data, function(el) { return el; });
+
+        // Clarify high quality state, and level if undefined or inprogress or notworking...
+
+        $.each(catalog, function(k, infos) {
+            if ((infos.level === undefined) || (infos.state === "inprogress") || (infos.state === "notworking")) {
+                infos.level = null;
+            }
+            if ((infos.high_quality === true) && (infos.level === 8)) {
+                infos.state = "high quality";
+            }
+        });
+
+        // Sort apps according to their state and level...
+
+        catalog.sort(function(a, b){
+            a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
+            b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
             if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
             else if (a.manifest.id == b.manifest.id) {return 0;}
             return -1;
         });
-        $.each(app_list, function(k, infos) {
+
+        // Add the card for each app
+
+        $.each(catalog, function(k, infos) {
+
             app_id = infos.manifest.id;
-            app_install_bootstrap = "success";
-            if (infos.state === "validated") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "working") {
-                app_state_bootstrap = "success";
-            } else if (infos.state === "inprogress") {
-                app_state_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.state === "notworking") {
-                app_state_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            }
-            if (infos.level == null ) {
-                infos.level = '?';
-            }
-            if (infos.level == 0 ) {
-                app_level_bootstrap = "danger";
-                app_install_bootstrap = "danger";
-            } else if (infos.level <= 2) {
-                app_level_bootstrap = "warning";
-                app_install_bootstrap = "danger";
-            } else if (infos.level >= 7) {
-                app_level_bootstrap = "success";
+
+            // Define what style to use for state, level and install button
+            // according to the app quality ....
+
+            if (infos.state === "high quality") {
+                app_quality = "high,decent,working,none";
+                app_state_css_style = "epic";
+                app_install_css_style = "success";
+                app_level_css_style = "epic";
+            } else if (infos.level > 4) {
+                app_quality = "decent,working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "success";
+                app_level_css_style = "success";
+            } else if (infos.level > 0) {
+                app_quality = "working,none";
+                app_state_css_style = "success";
+                app_install_css_style = "warning";
+                app_level_css_style = "warning";
             } else {
-                app_level_bootstrap = "default";
+                app_quality = "none";
+                if (infos.state === "working") {
+                    app_state_css_style = "success";
+                }
+                else if (infos.state === "inprogress") {
+                    app_state_css_style = "warning";
+                }
+                else {
+                    app_state_css_style = "danger";
+                }
+                app_install_css_style = "danger";
+                app_level_css_style = "danger";
+            }
+
+            // If level is null, we wanna display '?'
+            if (infos.level == null) {
+                infos.level = '?';
             }
 
             // Fill the template
@@ -264,45 +320,47 @@ $(document).ready(function () {
              .replace(/{app_git}/g, infos.git.url)
              .replace('{app_branch}', infos.git.branch)
              .replace('{app_level}', infos.level)
+             .replace('{app_quality}', app_quality)
              .replace('{app_update}', timeConverter(infos.lastUpdate))
-             .replace('{app_state_bootstrap}', app_state_bootstrap)
-             .replace('{app_install_bootstrap}', app_install_bootstrap);
+             .replace('{app_state_css_style}', app_state_css_style)
+             .replace('{app_install_css_style}', app_install_css_style);
 
+            // Handle the maintainer info
             if (infos.maintained == false)
             {
                html = html
                  .replace('{maintained_state}', 'unmaintained')
                  .replace('{maintained_icon}', 'warning-sign')
-                 .replace('{app_maintainer}', "Non mantenuto")
-                 .replace('{maintained_help}', "Questo pacchetto attualmente non è mantenuto. Sentiti libero di proporti come nuovo mantenitore !");
-            } else {
-            if (infos.manifest.developer) {
+                 .replace('{app_maintainer}', "Unmaintained")
+                 .replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
+            }
+            else {
                 html = html
                  .replace('{maintained_state}', 'maintained')
                  .replace('{maintained_icon}', 'user')
-                 .replace('{app_maintainer}', infos.manifest.developer.name)
-                 .replace('{maintained_help}', "Mantenitore attuale di questo pacchetto");
-            }
-            if (infos.manifest.maintainer) {
-                html = html
-                 .replace('{maintained_state}', 'maintained')
-                 .replace('{maintained_icon}', 'user')
-                 .replace('{app_maintainer}', infos.manifest.maintainer.name)
-                 .replace('{maintained_help}', "Mantenitore attuale di questo pacchetto");;
-            }
-            }
+                 .replace('{maintained_help}', "Current maintainer of this package");
 
+                if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.developer.name);
+                }
+                else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
+                    html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
+                }
+                else {
+                    html = html.replace('{app_maintainer}', "???");
+                }
+            }
 
             // Fill the template
             $('#app-cards-list').append(html);
             $('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
-            $('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
-            if (infos.manifest.license && infos.manifest.license != 'free') {
-                $('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
+            $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
+            if ((infos.state === "high quality") || (infos.state === "working")) {
+                $('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">level '+infos.level+'</span>');
             }
 
         });
+
         filter();
     });
     //=================================================

From 02d5f0e4fa49ec9e8955e09b8ab6ed1226cfbe86 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Tue, 22 Oct 2019 15:30:02 +0200
Subject: [PATCH 221/360] Improve wording + encourage to provide feedback if
 autoconf fails

---
 email_configure_client.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/email_configure_client.md b/email_configure_client.md
index 710624a4..6dd96dd2 100644
--- a/email_configure_client.md
+++ b/email_configure_client.md
@@ -2,7 +2,7 @@
 
 You can fetch and send emails using your YunoHost instance from desktop email clients such as Mozilla Thunderbird or on your smartphone with applications like K-9 Mail.
 
-Normally, configuring your mail client should be automatic, but if the autoconfiguration fails, you can do it manually following the instructions bellow.
+Modern mail clients should be able to configure themselves automatically. If autoconfiguration fails, you can do it manually following the instructions below. (If the autoconfiguration fails though, it should be understood as a bug in YunoHost, and we would be glad to read your feedback to try to reproduce the issue on our side!)
 
 ### Generic settings
 

From 5d527cd26daabc5ff744f7d6034d48d1585458f3 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Tue, 22 Oct 2019 15:32:22 +0200
Subject: [PATCH 222/360] Encourage people to give feedback if autoconf is
 failing

---
 email_configure_client_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/email_configure_client_fr.md b/email_configure_client_fr.md
index 3d1c8987..81bd37bd 100644
--- a/email_configure_client_fr.md
+++ b/email_configure_client_fr.md
@@ -2,7 +2,7 @@
 
 Vous pouvez récupérer et envoyer des emails avec votre instance YunoHost grâce à des logiciels comme Mozilla Thunderbird, ou sur votre smartphone grâce à des applications comme K-9 Mail.
 
-Normalement, votre client mail devrait recevoir la configuration automatiquement lorsque vous ajoutez un compte, mais si jamais cela ne fonctionne pas, il est possible de le faire manuellement en suivant les quelques étapes suivantes.
+Normalement, votre client mail devrait recevoir la configuration automatiquement lorsque vous ajoutez un compte. Si cela ne fonctionne pas, il est possible de le faire manuellement en suivant les quelques étapes suivantes. (Cependant, cela devrait être compris comme étant un bug dans YunoHost, et le cas échéant, c'est cool si vous nous notifiez du problème pour que nous puissions tenter de reproduire et corriger le problème !)
 
 ### Réglages génériques
 

From 3747c991107c568811875719794415089273bc1b Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Tue, 22 Oct 2019 16:39:44 +0200
Subject: [PATCH 223/360] Update and merged outdated package_list_fr into dev
 documentation

---
 dev.md             | 44 ++++++++++++++++++++++++++++++++++++++++++--
 dev_fr.md          | 39 +++++++++++++++++++++++++++++++++++++++
 package_list_fr.md | 41 -----------------------------------------
 3 files changed, 81 insertions(+), 43 deletions(-)
 delete mode 100644 package_list_fr.md

diff --git a/dev.md b/dev.md
index 645915a6..45015d78 100644
--- a/dev.md
+++ b/dev.md
@@ -24,6 +24,46 @@ If you're looking for stuff to implement or fix, the bug-tracker is
    - You can also work on the other projects on which YunoHost is built 
      (SSOwat, moulinette) in similar ways
 
+### Overview of the 4 main pieces of YunoHost
+
+#### Moulinette
+
+It is a small "homemade" framework. [Its major role](https://moulinette.readthedocs.io/en/latest/actionsmap.html) 
+is to allow us to build both a web API and a command-line API from the same 
+Python code thanks to a YAML schema  which we call 
+[the actionmap](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml).
+
+It handles other mechanisms like authentication, internationalization and
+small technical utilitary functions (e.g. reading/writing json).
+
+Moulinette has its own documentation available [here](https://moulinette.readthedocs.io/en/latest/).
+
+#### Yunohost
+
+This piece is the very core of YunoHost. It contains:
+- [the python code](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) that manages users, domains, apps, services and other things
+- [bash helpers](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) mainly used by application packagers to package applications
+- [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) and [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) that are used to configure the various pieces of the ecosystem such as nginx, postfix, ...
+- [internationalized strings](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales)
+- [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests)
+
+#### SSOwat
+
+This is the single sign-on system of YunoHost. It both contains:
+- [Lua scripts](https://github.com/YunoHost/ssowat) that are directly interfaced with nginx and handle all the "technical" aspects of authentication and route accesses
+- the web [user portal](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) which is the interface used by YunoHost's end users to log in and browse installed apps
+
+SSOwat is configured through `/etc/ssowat/conf.json` which is generated by YunoHost.
+
+#### Yunohost-admin
+
+It is an *optional* dependency of YunoHost and corresponds to an interface for the web API created by YunoHost and Moulinette (c.f. the `yunohost-api` service).
+
+It essentially contains:
+- [view templates](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views)
+- corresponding [javascript controllers](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) that interact with the Yunohost API
+- and [internationalized strings](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales)
+
 ### Working on the YunoHost Python/CLI core
 
 - Work in `/ynh-dev/yunohost/`.
@@ -93,8 +133,8 @@ If you're looking for stuff to implement or fix, the bug-tracker is
 
 ##### Don't forget
 
-- Each time you edit the actionsmap, you should restart the yunohost-api :
-  ```service yunohost-api restart```
+- Each time you edit the actionsmap or the python code, you should restart the yunohost-api :
+  ```systemctl restart yunohost-api```
   (You'll need to retype your admin password in the web interface)
 
 - You might need to force-clear the cache of your browser sometimes to refresh 
diff --git a/dev_fr.md b/dev_fr.md
index d161888c..49a3f883 100644
--- a/dev_fr.md
+++ b/dev_fr.md
@@ -26,6 +26,45 @@ bug tracker est [ici](https://github.com/yunohost/issues/issues) !
    - Vous pouvez aussi travailler sur les autres projets liés sur lesquels
      s'appuie YunoHost (SSOwat, moulinette) de façon similaire.
 
+### Vue d'ensemble des 4 morceaux principaux de YunoHost
+
+##### Moulinette
+
+C'est un petit framework "fait maison". [Son rôle principal](https://moulinette.readthedocs.io/en/latest/actionsmap.html) 
+est de permettre de construire une API Web et une API en ligne de commande à partir d'un même code Python et d'un schéma YAML que nous appelons 
+[l'actionmap] (https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml).
+
+Il prend en charge d'autres mécanismes tels que l'authentification, l'internationalisation
+et des petites fonctions utilitaires techniques (par ex. lecture/écriture de fichiers json).
+
+Moulinette dispose de sa propre documentation [ici](https://moulinette.readthedocs.io/en/latest/).
+
+##### Yunohost
+
+C'est le coeur même de YunoHost. Il contient :
+- [le code python](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) qui gère les utilisateurs, domaines, applications, services et autres
+- des [helpers bash](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) principalement utilisés par les packageurs d'applications dans les scripts de ces applications
+- des [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) et [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) qui sont utilisés pour configurer les différents éléments de l'écosystème tels que nginx, postfix, ....
+- des [chaînes internationalisées](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales)
+- des [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests)
+
+##### SSOwat
+
+C'est le système de connexion unique (single sign-on) de YunoHost. Il contient principalement:
+- [du code LUA](https://github.com/YunoHost/ssowat) interfacé directement avec nginx et qui gère tous les aspects "techniques" de l'authentification et de la gestion des accès aux ressources.
+- le [portail web utilisateur](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) qui est l'interface finale visible pour les utilisateurs de YunoHost
+
+SSOwat est configuré via `/etc/ssowat/conf.json` qui est généré par YunoHost.
+
+##### Yunohost-admin
+
+C'est une dépendance *optionnelle* de YunoHost et correspond à une interface pour l'API web créée par YunoHost et Moulinette (service `yunohost-api`).
+
+Il contient essentiellement :
+- [des templates pour les vues](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views)
+- les [contrôleurs javascript](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) correspondants, qui interagissent avec l'API Yunohost
+- et es [chaînes internationalisées](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales)
+
 ### Travailler sur le cœur Python / ligne de commande
 
 - Allez dans `/ynh-dev/yunohost/`.
diff --git a/package_list_fr.md b/package_list_fr.md
deleted file mode 100644
index 4c8d53ce..00000000
--- a/package_list_fr.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Fonctionnement de YunoHost
-
-### Les branches de développement de YunoHost
-Afin de mettre en place un système automatisé de compilation des paquets Debian, le développement de YunoHost progresse désormais autour de trois branches principales :
-- **stable** : il s’agit du code des paquets Debian utilisés en live par les utilisateurs de YunoHost.
-- **testing** : il s’agit du code éligible pour la création d’une nouvelle version de YunoHost, il est supposé stable mais manque de test. La branche testing peut notamment servir pour corriger rapidement certains bugs.
-- **unstable** : il s’agit là des derniers codes ajoutés au dépôt mais qui sont connus pour être instables voir inachevés. C’est à destination de cette branche que vous devez faire vos pull request. Si votre travail est conséquent mais inachevé, il convient d’envisager de créer une branche à part, thématique (exemple : backup).
-
-Les numéros de version des paquets stable sont pairs, les numéros de version des paquets testing sont impairs. Ainsi, la version 2.3 de YunoHost est une version de test qui sera transformée en version 2.4 si les tests sont concluants.
-
-### Paquets YunoHost
-Avant d’aller plus loin, il convient de rappeler le rôle des différents paquets YunoHost.
-
-#### Paquet moulinette
-La moulinette est un framework qui permet de créer une API web ainsi qu’une API en ligne de commande à partir d’un même code Python et d’un schéma en yaml.
-
-La ligne de commande `yunohost` est écrite avec ce framework, La moulinette est donc une dépendance de YunoHost. 
-
-La moulinette est un code écrit par les développeurs YunoHost. À l’origine, la moulinette était fusionnée avec le code YunoHost, mais il a été décidé de scinder les deux afin de permettre l’utilisation de la moulinette pour d’autres projets.
-
-#### Paquet yunohost
-Le paquet yunohost est le cœur de YunoHost, ce paquet contient depuis la version 2.3 (testing) le code du programme en ligne de commande `yunohost`. Il contient également des helpers qui peuvent être utilisées par les scripts des apps YunoHost, ainsi que les templates de configuration des dépendances de YunoHost.
-
-Note : à partir de la version 2.3 (testing), le code de la ligne de commande `yunohost` initialement dans le paquet moulinette-yunohost a été rapatrié dans le paquet yunohost. Un système 2.2 contient donc deux paquets au lieu d’un seul : yunohost et moulinette-yunohost.
-
-#### Paquet SSOwat
-SSOwat est un système de Single Sign On pour Nginx écrit en Lua. C’est ce système qui génère l’interface que les utilisateurs YunoHost voient. Il permet de protéger des URLs et d’autoriser des utilisateurs à accéder ou non à ces ressources.
-
-SSOwat est comme la moulinette une dépendance de YunoHost, mais peut aussi être utilisée séparément sur d’autres projets.
-
-#### Paquet yunohost-admin (optionnel)
-Ce paquet contient l’interface d’administration web de YunoHost, obligatoire dans la version 2.2, il est optionnel depuis la version 2.3 (testing).
-
-L’interface d’administration n’est en réalité qu’un client qui se connecte à l’API web généré par la moulinette et le paquet yunohost.
-
-Le service yunohost-api doit donc être start pour utiliser l’administration web.
-
-### Conseils de développement
-#### Traduction
-Afin d’éviter des problèmes de fusion, lorsque vous ajoutez ou modifiez une clé de traduction dans les fichiers json situés dans les répertoires locales des dépôts git, il est demandé d’ajouter les clés uniquement dans le fichier en.json, même si vous savez faire la traduction pour d’autres langues.
-Les traductions se font ensuite sur <a href='https://translate.yunohost.org/' target='_BLANK'>weblate</a>. Donc si effectivement vous savez traduire dans une autre langue, n’hésitez pas à y faire un tour.

From 1bf97096af9b66dc7b1f9a887262fbb4ee79497a Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 26 Oct 2019 17:35:38 +0200
Subject: [PATCH 224/360] Try to clarify what to do for packagers removing the
 legacy permission stuff

---
 groups_and_permissions.md | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index 6e1c6c4a..e1ff2932 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -126,7 +126,8 @@ Note that, for example, if we want to restrict permission for email so that only
 $ yunohost user permission update mail --remove all_users --add bob
 ```
 
-### Notes for apps packagers
+Notes for apps packagers
+------------------------
 
 By default, installing an app creates the permission `app.main` with `all_users` allowed by default.
 
@@ -143,3 +144,19 @@ ynh_permission_create --permission "admin" --url "/admin" --allowed "$admin_user
 ```
 
 You don't need to take care of removing permissions or backing up/restoring them as it is handled by the core of YunoHost.
+
+### Migrating away from the legacy permission management
+
+When migrating/fixing an app still using the legacy permission system, it should be understood that the accesses are now to be managed by features from the core, outside the application scripts!
+
+Application scripts are only expected to:
+- if relevant, during the install script, initialize the main permission of the app as public (`visitors`) or private (`all_users`) or only accessible to specific groups/users ;
+- if relevant, create and initialize any other specific permission (e.g. to some admin interface) in the install script (and *maybe* in some migration happening in the upgrade script).
+
+Applications scripts should absolutely **NOT** mess up with any already-existing app accesses (including `unprotected`/`skipped_uris` settings) during any other case, as *it would reset any admin-defined access rule*!
+
+When migrating away from the legacy permission, you should:
+- remove any management of `$is_public`-like or `$admin_user`-like setting, except for any manifest question meant to either *initialize* the app as public/private or specific permissions ;
+- remove any management of `skipped_`, `unprotected_` and `protected_uris` (and `_regex`) settings that are now considered obsolete and deprecated. (N.B.: you should **explicitly delete them in the upgrade script**). Instead, you should now rely on the new `ynh_permission_*` helpers instead. If you do feel like you still need to use them, please contact the core team to provide your feedback and we'll figure out something ;
+- remove any call to `yunohost app addaccess` and similar actions that are now obsolete and deprecated.
+

From d86b3fd994baa2b4b4ace3876063d9470885f69e Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 27 Oct 2019 12:25:20 +0100
Subject: [PATCH 225/360] Fix anchors / remove some unecessary stuff

---
 app_gogs_fr.md             |  2 +-
 app_nextcloud.md           | 13 ++++++-------
 app_nextcloud_fr.md        | 12 ++++++------
 app_nextcloud_keeweb_fr.md |  6 ------
 app_peertube_fr.md         | 10 +++-------
 app_pleroma_fr.md          | 15 +++++++++------
 app_sogo_fr.md             |  4 ++--
 7 files changed, 27 insertions(+), 35 deletions(-)

diff --git a/app_gogs_fr.md b/app_gogs_fr.md
index 4b09de7b..3fae767f 100644
--- a/app_gogs_fr.md
+++ b/app_gogs_fr.md
@@ -6,7 +6,7 @@ Gogs est une forge logiciel minimaliste utilisant git. Gogs a été conçu pour
 Il est donc adapté à l'auto-hébergement d'une forge git.
 Pour utiliser pleinement la puissance de gogs vous devez avoir appréhender ce qu'est git et l'utilisation d'un [logiciel de gestion de versions](https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions).
 
-## <a name=LiensUtiles>Liens utiles</a>
+## Liens utiles
  - [Site Officiel - gogs.io](https://gogs.io)
  - [Dépot applications gogs pour YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
  - [Site officiel de l'outils git - git-scm.com](https://git-scm.com/)
diff --git a/app_nextcloud.md b/app_nextcloud.md
index 7da57a5b..ee87c4ae 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -9,18 +9,18 @@
 
 Nextcloud is a file hosting service, many applications can be installed to offer it new features such as a calendar, a directory, notes and many others (you can find some applications in the [third-party applications](#AppsTiers) part  but there are many others depending on your needs).
 
-## Discovering the Nextcloud environment <a name="EnvironmentNextcloud"></a>
+## Discovering the Nextcloud environment <a name="EnvironmentNextcloud" href=""></a>
 
 Due to the creation of Nextcloud, a database with third-party applications to install, this chapter will only concern the nextcloud database without added applications. More information on applications in the dedicated section or in the nextcloud application catalogue: [apps.nextcloud.com](https://apps.nextcloud.com).  
 Nextcloud is before a cloud service (like Seafile and others), it allows synchronization and file sharing on the Internet and between several terminals (computers, smartphone) but also with several people. 
 
-## Mobile and computer client software <a name="ClientSoftware"></a>
+## Mobile and computer client software <a name="ClientSoftware" href=""></a>
 
 There are client software for all platforms. You can find them on the official nextcloud website: https://nextcloud.com/install/#install-clients
 
-## Useful Manipulations & Problems Encountered <a name="UtileManipulations"></a>
+## Useful Manipulations & Problems Encountered <a name="UtileManipulations" href=""></a>
 
-### Add storage space <a name="AddSpace"></a>
+### Add storage space <a name="AddSpace" href=""></a>
 
 Solution I. allows you to add a link to a local or remote folder.  
 Solution II. allows to move the main storage space of nextcloud.
@@ -156,16 +156,15 @@ The options to disable (Off) are:
 
 Save and clean your caches (Cloudflare, browser,...) and that's it.
 
-## Third Party Applications <a name="AppsTiers"></a>
+## Third Party Applications <a name="AppsTiers" href=""></a>
 
  - [Calendrier](app_nextcloud_calendar)
  - [contact](app_nextcloud_contact)
  - [KeeWeb](app_nextcloud_keeweb)
  - [Carnet](app_nextcloud_carnet)
 
-## Useful links <a name="UsefulLinks"></a>
+## Useful links <a name="UsefulLinks" href=""></a>
 
  - Official website : [nextcloud.com](https://nextcloud.com/)  
  - Application catalogue for nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)  
  - Find help and ask all your questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)  
-
diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index f9407585..186b1ec9 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -9,18 +9,18 @@
 
 Nextcloud est un service d'hébergement de fichiers, de nombreuses applications peuvent être installées afin de lui offrir de nouvelles fonctionnalités tel qu'un agenda, un répertoire de contacts, des notes et pleins d'autres possibles (vous pouvez trouver quelques applications dans la partie [applications tiers](#AppsTiers) mais il en existe une multitude suivant vos besoins).
 
-## Découverte de l'environnement de Nextcloud<a name="EnvironnementNextcloud"></a>
+## Découverte de l'environnement de Nextcloud<a name="EnvironnementNextcloud" href=""></a>
 
 Du fait de la constitution de Nextcloud, une base avec des applications tiers à installer, ce chapitre ne concernera que la base de nextcloud sans applications ajoutés. Plus d'informations sur les applications dans la partie dédiée ou sur le catalogue d'application de nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com).  
 Nextcloud est avant tout un service de cloud (comme Seafile et d'autres logiciels), il permet une synchronisation et le partage de fichiers sur internet et entre plusieurs terminaux (ordinateurs, smartphone) mais aussi avec plusieurs personnes.
 
-## Logiciels Clients<a name="LogicielsClients"></a>
+## Logiciels Clients<a name="LogicielsClients" href=""></a>
 
 Il existe des logiciels clients pour de nombreux terminaux. Vous pouvez les retrouver sur le site de nextcloud : [nextcloud.com/install/#install-clients](https://nextcloud.com/install/#install-clients)
 
-## Manipulations utiles & problèmes rencontrés<a name="ManipulationsUtiles"></a>
+## Manipulations utiles & problèmes rencontrés<a name="ManipulationsUtiles" href=""></a>
 
-### Ajouter de l'espace à Nextcloud<a name="AjoutEspace"></a>
+### Ajouter de l'espace à Nextcloud<a name="AjoutEspace" href=""></a>
 
 La solution I. permet d'ajouter un lien vers un dossier local ou distant.  
 La solution II. permet de déplacer l'espace de stockage principal de nextcloud.
@@ -156,14 +156,14 @@ Les options à désactiver (Off) sont :
 
 Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est joué.
 
-## Applications Tiers<a name="AppsTiers"></a>
+## Applications Tiers<a name="AppsTiers" href=""></a>
 
  + [Calendrier](app_nextcloud_calendar_fr)
  + [contact](app_nextcloud_contact_fr)
  + [KeeWeb](app_nextcloud_keeweb_fr)
  + [Carnet](app_nextcloud_carnet_fr)
 
-## Quelques liens utiles<a name="liensutiles"></a>
+## Quelques liens utiles<a name="liensutiles" href=""></a>
 
 + Site officiel : [nextcloud.com (en)](https://nextcloud.com/)
 + Catalogue d'application pour nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)
diff --git a/app_nextcloud_keeweb_fr.md b/app_nextcloud_keeweb_fr.md
index 47b09e9a..21d25582 100644
--- a/app_nextcloud_keeweb_fr.md
+++ b/app_nextcloud_keeweb_fr.md
@@ -2,12 +2,8 @@
 
 L'application Keeweb sur le catalogue de nextcloud - [apps.nextcloud.com/keeweb](https://apps.nextcloud.com/apps/keeweb)
 
- - [Manipulations utiles et problèmes rencontrés](#ManipulationsUtiles)
- - [Liens utiles](#liensutiles)
-
 L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud.
 
-## Manipulations utiles & problèmes rencontrés <a name="ManipulationsUtiles"></a>
 Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela,
 [une solution](https://github.com/jhass/nextcloud-keeweb/issues/34) existe.
 
@@ -34,5 +30,3 @@ Puis ajouter dans ce fichier le texte suivent :
 Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
 
 A présent, le problème est corrigé.
-
-## Liens utiles <a name="liensutiles"></a>
diff --git a/app_peertube_fr.md b/app_peertube_fr.md
index fef9efb5..9737d206 100644
--- a/app_peertube_fr.md
+++ b/app_peertube_fr.md
@@ -1,20 +1,16 @@
-#<img src="/images/peertube_logo.png" alt="Logo de PeerTube">  PeerTube
+# <img src="/images/peertube_logo.png" alt="Logo de PeerTube">  PeerTube
 
-**Index**
- - [Découverte de l'environnement de PeerTube](#EnvironnementPeerTube)
- - [Quelques liens utiles](#liensutiles)
 [![Installer PeerTube avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=peertube)
 
 PeerTube est une plateforme de streaming vidéo fédérée (ActivityPub) utilisant P2P (BitTorrent) directement dans le navigateur web, en utilisant WebTorrent.
 
-
-## Découverte de l'environnement de PeerTube <a name ="EnvironnementPeerTube"></a>
+## Découverte de l'environnement de PeerTube
 
 Pour comprendre en quoi PeerTube propose une alternative à youtube, vous êtes invité à regarder le clip réalisé par l'association Framasoft (ci-dessous). Elle est elle même hébergé sur [framatube.org](https://framatube.org)  
 
 <iframe width="560" height="315" sandbox="allow-same-origin allow-scripts" src="https://framatube.org/videos/embed/9db9f3f1-9b54-44ed-9e91-461d262d2205" frameborder="0" allowfullscreen></iframe>
 
-## Quelques liens utiles <a name="liensutiles"></a>
+## Quelques liens utiles
 
  - Site officiel de PeerTube - [joinpeertube.org](https://joinpeertube.org/fr/)
  - Dépot application PeerTube Yunohost - [github.com/YunoHost-Apps/peertube_ynh](https://github.com/YunoHost-Apps/peertube_ynh)
diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md
index fd2236e1..7a4c5017 100644
--- a/app_pleroma_fr.md
+++ b/app_pleroma_fr.md
@@ -1,15 +1,17 @@
 # <img src="/images/pleroma_logo.png" alt="logo de Pleroma"> Pleroma
 
- - [Découverte de l'interface de Pleroma](#decouvertegeneralepleroma) |
- - [Logiciels Clients pour mobile et ordinateur](#LogicielsClients) |
- - [Liens utiles](#liensutiles) |
+ - [Découverte de l'interface de Pleroma](decouvertegeneralepleroma)
+ - [Logiciels Clients pour mobile et ordinateur](LogicielsClients)
+ - [Liens utiles](liensutiles)
 
 Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole Activy Pub qu'il utilise permet d'interagir avec le fediverse composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
 
-## <a name="#decouvertegeneralepleroma">Découverte de l'interface de Pleroma</a>
+## Découverte de l'interface de Pleroma <a href="" name="decouvertegeneralepleroma"></a>
+
 Pour ceux et celles qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées.
 
 ### Accueil de l'interface
+
 <img src="/images/capture_globale.png" alt="Capture écran accueil de Pleroma">
 
 1. Barre de menu  
@@ -34,7 +36,7 @@ Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agenc
 6. Notifications  
 On retrouve dans cette zone les messages où vous avez été cité, mais aussi les abonnements à votre compte.
 
-## <a name="LogicielsClients"> Applications clients</a>
+## Applications clients <a href="" name="LogicielsClients"></a>
 
 | Nom de l'applications | Plateforme | Multi-comptes | Autre réseaux supportés | Play Store | F-Droid | Apple Store |
 |---|---|---|---|---|---|---|
@@ -43,7 +45,8 @@ On retrouve dans cette zone les messages où vous avez été cité, mais aussi l
 | Twidere | Android | Oui | Twitter, Mastodon | [play.google.com/org.mariotaku.twidere](https://play.google.com/store/apps/details?id=org.mariotaku.twidere) | [https://f-droid.org/org.mariotaku.twidere](https://f-droid.org/fr/packages/org.mariotaku.twidere/) | 
 | Librem Social | Android | Non | ? | [play.google.com/one.librem.social](https://play.google.com/store/apps/details?id=one.librem.social&hl=fr) | [https://f-droid.org/one.librem.social](https://f-droid.org/fr/packages/one.librem.social) | |
 
-## <a name="liensutiles">Quelques liens utiles</a>
+## Quelques liens utiles <a href="" name="liensutiles"></a>
+
 + Site officiel : [pleroma.social (En anglais)](https://pleroma.social)
 + Trouver d'autres instances de Pleroma : [fediverse.network/pleroma](https://fediverse.network/pleroma)
 + Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)
\ No newline at end of file
diff --git a/app_sogo_fr.md b/app_sogo_fr.md
index 1ffd6bdc..86f5e6de 100644
--- a/app_sogo_fr.md
+++ b/app_sogo_fr.md
@@ -1,9 +1,9 @@
 # ![Logo SOGo](/images/logo_sogo.png) SOGo
 
- - [Liens Utiles](#LiensUtiles)
 SOGo est un service de webmail pour votre serveur email, c'est une alternative à [RoundCube](app_roundcube). Il permet aussi la gestion des agendas et contacts présents sur le serveur.
 
-## <a name="LiensUtiles">Quelques liens utiles</a>
+## Quelques liens utiles
+
  + Site officiel de SOGo : [sogo.nu](https://sogo.nu/a)
  + Dépot de l'application pour Yunohost : [github.com/YunoHost-Apps/sogo_ynh](https://github.com/YunoHost-Apps/sogo_ynh)
  + Trouver de l'aide et poser vos questions sur le [forum de Yunohost](https://forum.yunohost.org/c/support/apps)

From d9774e46ae7c36a701d32899d4fb37a09ab0e5cd Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 27 Oct 2019 12:26:24 +0100
Subject: [PATCH 226/360] Imho this is not relevant to add a link to the forum
 here, there's already the 'Need help' button

---
 app_gogs_fr.md      | 1 -
 app_nextcloud.md    | 1 -
 app_nextcloud_fr.md | 1 -
 app_peertube_fr.md  | 1 -
 app_pleroma_fr.md   | 1 -
 app_sogo_fr.md      | 1 -
 6 files changed, 6 deletions(-)

diff --git a/app_gogs_fr.md b/app_gogs_fr.md
index 3fae767f..f793243e 100644
--- a/app_gogs_fr.md
+++ b/app_gogs_fr.md
@@ -10,4 +10,3 @@ Pour utiliser pleinement la puissance de gogs vous devez avoir appréhender ce q
  - [Site Officiel - gogs.io](https://gogs.io)
  - [Dépot applications gogs pour YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
  - [Site officiel de l'outils git - git-scm.com](https://git-scm.com/)
- - [Trouver de l'aide et poser toutes vos questions : forum.yunohost.org](https://forum.yunohost.org/c/support/apps)
diff --git a/app_nextcloud.md b/app_nextcloud.md
index ee87c4ae..66ad3fb7 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -167,4 +167,3 @@ Save and clean your caches (Cloudflare, browser,...) and that's it.
 
  - Official website : [nextcloud.com](https://nextcloud.com/)  
  - Application catalogue for nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)  
- - Find help and ask all your questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)  
diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index 186b1ec9..fb889026 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -167,4 +167,3 @@ Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est
 
 + Site officiel : [nextcloud.com (en)](https://nextcloud.com/)
 + Catalogue d'application pour nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)
-+ Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)
diff --git a/app_peertube_fr.md b/app_peertube_fr.md
index 9737d206..e45454cd 100644
--- a/app_peertube_fr.md
+++ b/app_peertube_fr.md
@@ -14,4 +14,3 @@ Pour comprendre en quoi PeerTube propose une alternative à youtube, vous êtes
 
  - Site officiel de PeerTube - [joinpeertube.org](https://joinpeertube.org/fr/)
  - Dépot application PeerTube Yunohost - [github.com/YunoHost-Apps/peertube_ynh](https://github.com/YunoHost-Apps/peertube_ynh)
- - Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)
diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md
index 7a4c5017..fbc3b2d1 100644
--- a/app_pleroma_fr.md
+++ b/app_pleroma_fr.md
@@ -49,4 +49,3 @@ On retrouve dans cette zone les messages où vous avez été cité, mais aussi l
 
 + Site officiel : [pleroma.social (En anglais)](https://pleroma.social)
 + Trouver d'autres instances de Pleroma : [fediverse.network/pleroma](https://fediverse.network/pleroma)
-+ Trouver de l'aide et poser toutes vos questions : [forum.yunohost.org](https://forum.yunohost.org/c/support)
\ No newline at end of file
diff --git a/app_sogo_fr.md b/app_sogo_fr.md
index 86f5e6de..2ae3e848 100644
--- a/app_sogo_fr.md
+++ b/app_sogo_fr.md
@@ -6,4 +6,3 @@ SOGo est un service de webmail pour votre serveur email, c'est une alternative 
 
  + Site officiel de SOGo : [sogo.nu](https://sogo.nu/a)
  + Dépot de l'application pour Yunohost : [github.com/YunoHost-Apps/sogo_ynh](https://github.com/YunoHost-Apps/sogo_ynh)
- + Trouver de l'aide et poser vos questions sur le [forum de Yunohost](https://forum.yunohost.org/c/support/apps)

From e4e210eb4071202dbc67a7482006638ddbe067a5 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:03:39 +0000
Subject: [PATCH 227/360] xibo - a FLOSS digital signage solution

---
 apps_wishlist.md | 204 +++++++++++++++++++++++++++++++----------------
 1 file changed, 134 insertions(+), 70 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index e4ddd122..7e3a1a69 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -11,126 +11,190 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects)
 - [List of SIP softwares/applications](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license)
 - [10er10](https://github.com/dready92/10er10)
-- [Ajenti](http://ajenti.org) / [github](https://github.com/ajenti/ajenti/)
-- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc. / [github](https://github.com/akaunting/akaunting)
+- [Airtime](https://www.sourcefabric.org/en/airtime/)
+- [Ajenti](http://ajenti.org)
+- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
+- [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/tsudoko/anki-sync-server)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
-- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions) / [github](https://github.com/Bitmessage/PyBitmessage)
+- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
+- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
+- [Bitwarden](https://bitwarden.com/)
 - [Beehive](https://github.com/muesli/beehive)
-- [Bludit](https://www.bludit.com) / [github](https://github.com/bludit/bludit)
+- [Bludit](https://www.bludit.com)
 - [Blynk](https://github.com/blynkkk/blynk-library)
-- [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)
+- [Bookstack](https://www.bookstackapp.com/)
+- [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
+- [Candy](https://candy-chat.github.io/candy)
+- [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
 - [cgit](http://git.zx2c4.com/cgit/about)
-- [CheckUp](https://sourcegraph.github.io/checkup) / [github](https://github.com/sourcegraph/checkup)
+- [CheckUp](https://sourcegraph.github.io/checkup)
+- [Cloud torrent](https://github.com/jpillora/cloud-torrent)
 - [Cockpit](http://cockpit-project.org/)
 - [Commafeed](https://github.com/Athou/commafeed)
-- [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)
+- [Converse.js](https://conversejs.org)
 - [Cozy](https://github.com/cozy)
+- [Cronkeep](https://github.com/cronkeep/cronkeep)
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
+- [CumulusClips](http://cumulusclips.org)
+- [Cyclos](https://www.cyclos.org)
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
+- [Deluge](http://deluge-torrent.org) (with WebUI)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
-- [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
+- [DNSchain](https://github.com/okTurtles/dnschain)
+- [eLabFTW](https://www.elabftw.net/) electronic lab notebook
 - [Emoncms](https://github.com/emoncms/emoncms)
-- [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
-- [EteSync](https://www.etesync.com/) / [github](https://github.com/etesync)
+- [ERPnext](https://erpnext.com/download)
+- [EteSync](https://www.etesync.com/)
+- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet)
+- [Fail2web](https://github.com/Sean-Der/fail2web)
+- [Ferment](https://github.com/mmckegg/ferment)
 - [FEX](http://fex.rus.uni-stuttgart.de/)
+- [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
+- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
-- [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
-- [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
-- [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
-- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)
+- [Framaslides](https://framagit.org/framasoft/framaslides/)
+- [Gateway](https://iot.mozilla.org/gateway/)
+- [Geneweb](https://geneweb.tuxfamily.org)
+- [GetSimple CMS](http://get-simple.info)
+- [Git-annex](http://git-annex.branchable.com)
+- [Gitit](https://github.com/jgm/gitit)
+- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
 - [Gollum](https://github.com/gollum/gollum)
 - [Goploader](https://github.com/Depado/goploader)
 - [Granary](https://github.com/snarfed/granary)
 - [Guacamole](http://guac-dev.org)
-- [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
+- [Habitica](https://habitica.com/)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
+- [Hackpad](https://github.com/dropbox/hackpad)
 - [Helpy](https://github.com/helpyio/helpy)
-- [Hexo](https://hexo.io/) / [github](https://github.com/hexojs/hexo)
-- [Icecast 2](http://www.icecast.org) / [gitlab](https://gitlab.xiph.org/xiph/icecast-server/)
+- [Hexo](https://hexo.io/)
+- [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
+- [Huginn](https://github.com/cantino/huginn)
+- [Hugo](http://gohugo.io)
+- [Icecast 2](http://www.icecast.org)
 - [ikiwiki](http://ikiwiki.info)
+- [img.bi](https://github.com/imgbi/img.bi)
+- [InfCloud](https://www.inf-it.com/open-source/clients/infcloud)
 - [Invidious](https://github.com/omarroth/invidious)
-- [Invoice Ninja](https://www.invoiceninja.com) / [github](https://github.com/invoiceninja/invoiceninja)
-- [InvoicePlane](https://invoiceplane.com) / [github](https://github.com/InvoicePlane/InvoicePlane)
-- [IPFS](https://ipfs.io) / [github](https://github.com/ipfs/ipfs)
-- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
+- [Invoice Ninja](https://www.invoiceninja.com)
+- [InvoicePlane](https://invoiceplane.com)
+- [IPFS](https://ipfs.io)
+- [Joplin](http://joplin.cozic.net/)
 - [Jellyfin](https://github.com/jellyfin)
-- [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
-- [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
-- [Known](https://withknown.com) / [github](https://github.com/idno/known)
-- [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)
-- [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
-- [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
+- [JS Bin](http://jsbin.com/help/2-second-setup)
+- [Kaiwa](http://getkaiwa.com)
+- [Kin calendar](https://github.com/KinToday)
+- [Kinto](https://github.com/Kinto/formbuilder)
+- [Kiwix](http://www.kiwix.org/) Offline wikipedia
+- [Known](https://withknown.com)
+- [Koel](http://koel.phanan.net)
+- [Kontalk](https://kontalk.org)
+- [Koozip](http://koozic.net)
+- [KrISS feed](https://github.com/tontof/kriss_feed)
+- [Koken](http://koken.me)
+- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
 - [L'atelier](https://github.com/jbl2024/latelier)
-- [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
+- [Lessy](https://lessy.io)
+- [LibreNews-Server](https://librenews.io)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
-- [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
+- [LiquidSoap](http://savonet.sourceforge.net/)
 - [LocomotiveCMS](https://github.com/locomotivecms/engine)
-- [Loomio](https://www.loomio.org) / [github](https://github.com/loomio/loomio/)
-- [MaidSafe](http://maidsafe.net) / [github](https://github.com/maidsafe)
-- [Mailpile](https://www.mailpile.is) / [github](https://github.com/mailpile/Mailpile)
-- [Mailtrain](https://mailtrain.org/) / [github](https://github.com/Mailtrain-org/mailtrain)
+- [Logstalgia](http://logstalgia.io)
+- [Loomio](https://www.loomio.org)
+- [MaidSafe](http://maidsafe.net)
+- [Mailpile](https://www.mailpile.is)
 - [Mautic](https://github.com/mautic/mautic)
-- [microblog.pub](https://microblog.pub) / [github](https://github.com/tsileo/microblog.pub)
-- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) / [github](https://github.com/GothenburgBitFactory/taskwarrior) (/!\ SSL-Warning)
-- [Modoboa](http://modoboa.org) / [github](https://github.com/modoboa/)
+- [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
+- [microblog.pub](https://microblog.pub)
+- [MinigalNano](https://github.com/sebsauvage/MinigalNano) (/!\ last update: Jun 24, 2016)
+- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) (/!\ SSL-Warning)
+- [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/) / [github](https://github.com/mybb)
+- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
-- [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
-- [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
+- [Nibbleblog](http://www.nibbleblog.com)
+- [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
-- [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
-- [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
+- [OpenBazaar](https://openbazaar.org)
+- [openHAB](https://www.openhab.org/) - Smart home platform.
+- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
 - [OpenProject](https://github.com/opf/openproject)
 - [OpenSourceBilling](https://github.com/vteams/open-source-billing)
-- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution / [github](https://github.com/open-xchange/)
+- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
 - [Paperless](https://github.com/danielquinn/paperless)
 - [Paperwork](http://paperwork.rocks)
-- [Passbolt](https://www.passbolt.com) Passwords manager / [github](https://github.com/passbolt)
-- [Pelias](https://github.com/pelias/pelias))
-- [PHPList](http://www.phplist.com) / [github](https://github.com/phpList)
-- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) / [github](https://github.com/alchemy-fr/Phraseanet-Docs)
-- [Pico](http://picocms.org) / [github](https://github.com/picocms/Pico)
+- [Passbolt](https://www.passbolt.com) Passwords manager
+- [pdfy](https://github.com/joepie91/pdfy) (/!\ last update: Aug 5, 2014)
+- [Pelias](https://github.com/pelias/pelias)
+- [Peps](https://github.com/MLstate/PEPS)
+- [PHPList](http://www.phplist.com)
+- [PHProxy](http://sourceforge.net/projects/poxy)
+- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#)
+- [Pico](http://picocms.org)
+- [Pix](http://pix.toile-libre.org)
 - [Playmaker](https://github.com/NoMore201/playmaker)
 - [Privoxy](http://www.privoxy.org)
 - [ProcessMaker](http://www.processmaker.com)
 - [ProtonMail’s WebClient](https://github.com/ProtonMail/WebClient)
 - [PyLoad](https://github.com/pyload/pyload)
-- [Pump.io](http://pump.io) / [github](https://github.com/pump-io/pump.io)
+- [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
+- [Pump.io](http://pump.io)
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
-- [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
+- [racktables](http://racktables.org)
+- [Race for the Galaxy](https://github.com/bnordli/rftg)
 - [Radarr](https://github.com/Radarr/Radarr)
-- [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
-- [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
-- [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)
+- [Redmine](https://www.redmine.org)
+- [Request Tracker](https://bestpractical.com)
+- [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)
+- [Restya](http://restya.com)
+- [Retroshare](http://retroshare.net/downloads.html)
+- [SABnzbd](https://sabnzbd.org)
 - [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
+- [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
+- [Scribbleton](https://scribbleton.com)
 - [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
-- [ShareLatex](https://www.sharelatex.com) / [github](https://github.com/overleaf/overleaf)
-- [Shleuder](https://schleuder.org/)
+- [ShareLatex](https://www.sharelatex.com)
+- [Shleuder](http://schleuder2.nadir.org)
+- [Simone](https://github.com/Kloadut/Simone)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
-- [smokeping](https://packages.debian.org/buster/smokeping)   / [github](https://github.com/oetiker/SmokePing)
-- [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)
-- [Stackedit](https://stackedit.io) / [github](https://github.com/benweet/stackedit)
-- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion / [github](https://github.com/standardnotes/web)
+- [Sonarr](https://sonarr.tv)
+- [Stackedit](https://stackedit.io)
+- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.
+- [Streama](https://github.com/dularion/streama)
 - [Streisand](https://github.com/jlund/streisand)
 - [Subspace](https://github.com/subspacecloud/subspace) (A simple WireGuard VPN server GUI)
-- [Syspass](http://www.syspass.org/) / [github](https://github.com/nuxsmin/sysPass)
-- [Taiga](https://taiga.io) / [github](https://github.com/taigaio/)
-- [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
-- [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
+- [Syspass](http://www.syspass.org/)
+- [Taiga](https://taiga.io)
+- [Tania](http://gettania.org/)
+- [Taskwarrior](https://taskwarrior.org)
+- [TMate](https://tmate.io/)
+- [TorChat](https://github.com/prof7bit/TorChat)
+- [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
+- [Total Respawn](https://github.com/broncowdd/TotalRespawn)
 - [Tracim](https://github.com/tracim/tracim)
-- [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
-- [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
-- [Volumio](https://volumio.org) / [github](https://github.com/volumio)
-- [WebODF](http://webodf.org) / [github](https://github.com/webodf/WebODF)
-- [Wireguard](https://www.wireguard.com/) / [git](https://git.zx2c4.com/WireGuard/)
-- [Xonotic](http://xonotic.org) / [gitlab](https://gitlab.com/xonotic)
-- [YesWiki](https://yeswiki.net) / [github](https://github.com/YesWiki/yeswiki)
+- [Twister](http://twister.net.co)
+- [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
+- [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
+- [Vaultier](http://www.vaultier.org)
+- [Volumio](https://volumio.org)
+- [Webmpc](https://github.com/ushis/webmpc)
+- [WebODF](http://webodf.org)
+- [webSync](http://furier.github.io/websync)
+- [WebTorrent](https://github.com/feross/webtorrent)
+- [Wisemapping](http://www.wisemapping.com)
+- [Wireguard](https://www.wireguard.com/)
+- [Xibo](https://github.com/xibosignage)
+- [Xonotic](http://xonotic.org)
+- [YesWiki](https://yeswiki.net)
 - [Zammad](https://github.com/zammad/zammad)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
+- [ZNC](http://wiki.znc.in/ZNC)
+- [Zone-project](https://github.com/descl/ZONE)
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
-- [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)
+- [Zulip](https://zulipchat.com/)

From 637ab2f7c625a8a8ef6b35c2e25a9d743146dbb8 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:04:11 +0000
Subject: [PATCH 228/360] typo

---
 selfhosting.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/selfhosting.md b/selfhosting.md
index 8a6de915..1229e776 100644
--- a/selfhosting.md
+++ b/selfhosting.md
@@ -23,7 +23,7 @@ Why should you *not* host yourself ?
 
 - **Self-hosting requires some work and patience.** Hosting yourself is a bit like growing your own garden or vegetables: it requires work and patience. While YunoHost aims to do all the hard work for you, self-hosting still requires that you take time to learn and configure a few things to setup your server properly. You will also need to perform maintenance tasks (such as upgrades) from time to time, or to ask for support if some things break.
 
-- **With great servers comes great responsibilities.** Operating a server means that you are responsible for the data you are hosting. Nobody will be able to recover them for you if they get lost. YunoHost provides backup features, which you should use regularly to backup the configurations and data you care about. You should also keep and eye on security news and recommendations so that your server or critical data don't get compromised.
+- **With great servers comes great responsibilities.** Operating a server means that you are responsible for the data you are hosting. Nobody will be able to recover them for you if they get lost. YunoHost provides backup features, which you should use regularly to backup the configurations and data you care about. You should also keep an eye on security news and recommendations so that your server or critical data don't get compromised.
 
 - **Quality and performance probably won't be as good as premium services.** YunoHost (and most of the applications packaged for it) are free and open-source software, developed by communities of people in their free time and on the basis of best effort. There is no absolute guarantee that software will work in every possible circumstance. The performance of your self-hosted server is also related to its CPU and RAM, and to the available internet connectivity.
 

From e60534fae3f0f7914b82250633d2ddd9044e2bc6 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:04:26 +0000
Subject: [PATCH 229/360] Une toute petite correction d&#39;accord.

---
 selfhosting_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/selfhosting_fr.md b/selfhosting_fr.md
index 73ced063..0c4788b2 100644
--- a/selfhosting_fr.md
+++ b/selfhosting_fr.md
@@ -3,7 +3,7 @@ L'auto-hébergement
 
 L'auto-hébergement est le fait d'avoir et d'administrer son propre serveur, typiquement chez soi, pour héberger soi-même ses données personnelles et des services plutôt que de se reposer exclusivement sur des tiers. Par exemple, il est possible d'auto-héberger son blog de sorte qu'il "vive" dans une machine que vous contrôlez, au lieu qu'il soit sur l'ordinateur de quelqu'un d'autre (a.k.a. le Cloud) en échange d'argent, de publicités ou de données privées.
 
-L'auto-hébergement implique de disposer d'un serveur. Un serveur est un ordinateur qui est destiné à être accessible sur le réseau en permanence, et n'a généralement pas d'écran ni de clavier puisqu'il est administré à distance. Contrairement à une croyance répandue, les serveurs ne sont pas nécessairement des machines énormes et extrêmement puissante : aujourd'hui, une petite carte ARM à ~30€ est adéquate pour de l'auto-hébergement.
+L'auto-hébergement implique de disposer d'un serveur. Un serveur est un ordinateur qui est destiné à être accessible sur le réseau en permanence, et n'a généralement pas d'écran ni de clavier puisqu'il est administré à distance. Contrairement à une croyance répandue, les serveurs ne sont pas nécessairement des machines énormes et extrêmement puissantes: aujourd'hui, une petite carte ARM à ~30€ est adéquate pour de l'auto-hébergement.
 
 Pratiquer l'auto-hébergement ne rend pas "votre internet" plus sécurisé et ne fournit pas d'anonymat en tant que tel. L'objectif est généralement de pouvoir être autonome et au contrôle de ses services et de ses données - ce qui implique aussi d'en être responsable.
 

From fdef41f0032fe8ef9dcaf6a0d81cab363a42031e Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:04:38 +0000
Subject: [PATCH 230/360] Une petite correction orthographique.

---
 howtohostyourself_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/howtohostyourself_fr.md b/howtohostyourself_fr.md
index 5785d604..a6627912 100644
--- a/howtohostyourself_fr.md
+++ b/howtohostyourself_fr.md
@@ -13,7 +13,7 @@ Vous pouvez vous héberger chez vous, sur une carte ARM ou un vieil ordinateur,
 
 Un VPN est un tunnel chiffré entre deux machines. En pratique, cela permet de faire "comme si" une machine était connectée depuis ailleurs. Ceci permet de s'auto-héberger à la maison tout en contournant les limitations du fournisseur d'accès internet. Voir aussi [le projet Brique Internet](https://labriqueinter.net/) et [la FFDN](https://www.ffdn.org/).
 
-- **Avantages** : vous aurez un contrôle physique sur la machine, et le VPN permettra de cacher votre traffic vis-à-vis de votre FAI ainsi que de contourner ses limitations ;
+- **Avantages** : vous aurez un contrôle physique sur la machine, et le VPN permettra de cacher votre trafic vis-à-vis de votre FAI ainsi que de contourner ses limitations ;
 - **Inconvénients** : il vous faudra payer des frais mensuels pour le VPN.
 
 ### Sur un serveur distant (VPS ou serveur dédié)

From a9ead12d89401fac17748f30dfef4d7700391f24 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:05:09 +0000
Subject: [PATCH 231/360] De petites corrections orthographiques.

---
 howtohostyourself_fr.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/howtohostyourself_fr.md b/howtohostyourself_fr.md
index 5785d604..97360a88 100644
--- a/howtohostyourself_fr.md
+++ b/howtohostyourself_fr.md
@@ -13,7 +13,7 @@ Vous pouvez vous héberger chez vous, sur une carte ARM ou un vieil ordinateur,
 
 Un VPN est un tunnel chiffré entre deux machines. En pratique, cela permet de faire "comme si" une machine était connectée depuis ailleurs. Ceci permet de s'auto-héberger à la maison tout en contournant les limitations du fournisseur d'accès internet. Voir aussi [le projet Brique Internet](https://labriqueinter.net/) et [la FFDN](https://www.ffdn.org/).
 
-- **Avantages** : vous aurez un contrôle physique sur la machine, et le VPN permettra de cacher votre traffic vis-à-vis de votre FAI ainsi que de contourner ses limitations ;
+- **Avantages** : vous aurez un contrôle physique sur la machine, et le VPN permettra de cacher votre trafic vis-à-vis de votre FAI ainsi que de contourner ses limitations ;
 - **Inconvénients** : il vous faudra payer des frais mensuels pour le VPN.
 
 ### Sur un serveur distant (VPS ou serveur dédié)
@@ -42,7 +42,7 @@ Vous pouvez louer un serveur privé virtuel ou une machine dédiée à des hébe
       </tr>
       <tr>
         <td style="text-align:center;">Coût mensuel</td>
-        <td style="text-align:center;" class="success">Negligeable<br><small>(electricité)</small></td>
+        <td style="text-align:center;" class="success">Négligeable<br><small>(electricité)</small></td>
         <td style="text-align:center;" class="warning">Autour de 5€ <br><small>(VPN)</small></td>
         <td style="text-align:center;" class="warning">À partir de ~3€ <br><small>(VPS)</small></td>
       </tr>
@@ -71,13 +71,13 @@ Vous pouvez louer un serveur privé virtuel ou une machine dédiée à des hébe
       </tr>
       <tr>
         <td style="text-align:center;">RAM</td>
-        <td style="text-align:center;" class="warning" colspan="2">Generalement 500 Mo ou 1 Go</td>
+        <td style="text-align:center;" class="warning" colspan="2">Généralement 500 Mo ou 1 Go</td>
         <td style="text-align:center;" class="warning">En fonction du prix</td>
       </tr>
       <tr>
         <td style="text-align:center;">Connectivité internet</td>
-        <td style="text-align:center;" class="warning" colspan="2">Dépends de la connexion</td>
-        <td style="text-align:center;" class="success">Géneralement bonne</td>
+        <td style="text-align:center;" class="warning" colspan="2">Dépend de la connexion</td>
+        <td style="text-align:center;" class="success">Généralement bonne</td>
       </tr>
     </tbody>
 </table>

From 41ee6a623c6f312851488cd7927161c91b0aaee8 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:05:20 +0000
Subject: [PATCH 232/360] De petites corrections diverses.

---
 guidelines_fr.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/guidelines_fr.md b/guidelines_fr.md
index 6083bc32..2cf70957 100644
--- a/guidelines_fr.md
+++ b/guidelines_fr.md
@@ -32,15 +32,15 @@ Ne faites pas ça. La réinstallation est une opération lourde et n'est pas une
 
 ## Faites des sauvegardes
 
-Si vous hébergez des services et des données qui sont importants pour vos utilisateurs, il est important que vous mettiez en place une politique de sauvegarde. Les sauvegardes peuvent être facilement créées à partir de l'interface d'administration web - bien qu'elles ne puissent actuellement pas être téléchargées à partir de celle-ci (mais elles peuvent être téléchargées par d'autres moyens). Vous devez effectuer régulièrement des sauvegardes et les conserver dans un endroit sûr et physiquement différent de votre serveur. Plus d'infos dans [la documentation des sauvegardes](/backup)
+Si vous hébergez des services et des données qui sont importants pour vos utilisateurs, il est important que vous mettiez en place une politique de sauvegarde. Les sauvegardes peuvent être facilement créées à partir de l'interface d'administration web - bien qu'elles ne puissent actuellement pas être téléchargées à partir de celle-ci (mais elles peuvent être téléchargées par d'autres moyens). Vous devez effectuer régulièrement des sauvegardes et les conserver dans un endroit sûr et physiquement différent de votre serveur. Plus d'infos dans [la documentation des sauvegardes](/backup).
 
 ## Lisez les emails envoyés à root
 
-En tant qu'administrateur, vous devriez configurer un client de messagerie pour vérifier les e-mails envoyés à `root@your.domain.tld` (qui doit être un alias pour le premier utilisateur que vous avez ajouté) ou les transférer à une autre adresse que vous vérifiez activement. Ces courriels peuvent contenir des informations sur ce qu'il se passe sur votre serveur, comme les tâches périodiques automatisées.
+En tant qu'administrateur, vous devriez configurer un client de messagerie pour vérifier les e-mails envoyés à `root@your.domain.tld` (qui doit être un alias pour le premier utilisateur que vous avez ajouté) ou les transférer à une autre adresse que vous vérifiez activement. Ces courriels peuvent contenir des informations sur ce qui se passe sur votre serveur, comme les tâches périodiques automatisées.
 
 ## YunoHost est un logiciel gratuit, maintenu par des bénévoles.
 
-Enfin, gardez à l'esprit que YunoHost est un logiciel libre maintenu par des volontaires - et que le but de YunoHost (démocratiser l'auto-hébergement) n'est pas simple ! Le logiciel n'est fourni sans aucune garantie. L'équipe de bénévoles fait de son mieux pour maintenir et fournir la meilleure expérience possible - pourtant les fonctionnalités, les applications et YunoHost dans son ensemble sont loin d'être parfaits et vous ferez face tôt ou tard à de petit ou gros problèmes. Lorsque cela se produit, venez gentillement [demander de l'aide sur le chat ou le forum, ou signaler le problème](/help) :) !
+Enfin, gardez à l'esprit que YunoHost est un logiciel libre maintenu par des volontaires - et que le but de YunoHost (démocratiser l'auto-hébergement) n'est pas simple ! Le logiciel n'est fourni sans aucune garantie. L'équipe de bénévoles fait de son mieux pour maintenir et fournir la meilleure expérience possible - pourtant les fonctionnalités, les applications et YunoHost dans son ensemble sont loin d'être parfaits et vous ferez face tôt ou tard à de petit ou gros problèmes. Lorsque cela se produit, venez gentiment [demander de l'aide sur le chat ou le forum, ou signaler le problème](/help) :) !
 
 Si vous aimez YunoHost et que vous voulez que le projet soit maintenu en vie et progresse, n'hésitez pas à laisser une note de remerciement et à [faire un don](https://liberapay.com/YunoHost) au projet et à en parler autour de vous !
 

From a9ef05aacb9376492916e1c919b0a563eaf62aaf Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:05:29 +0000
Subject: [PATCH 233/360] De petites corrections diverses.

---
 ssh_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ssh_fr.md b/ssh_fr.md
index 68c9540f..fcb62dcf 100644
--- a/ssh_fr.md
+++ b/ssh_fr.md
@@ -2,7 +2,7 @@
 
 ## Qu’est-ce que SSH ?
 
-**SSH** est un acronyme pour Secure Shell, et désigne un protocole qui permet de contrôler à distance une machine via la ligne de commande (CLI). C'est aussi une commande disponible de base dans les terminaux de Linux et Mac OS / OSX. Sous Windows, il vous faudra utiliser le logiciel [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (après l'avoir lancer, cliquer sur Session puis SSH).
+**SSH** est un acronyme pour Secure Shell, et désigne un protocole qui permet de contrôler à distance une machine via la ligne de commande (CLI). C'est aussi une commande disponible de base dans les terminaux de Linux et Mac OS / OSX. Sous Windows, il vous faudra utiliser le logiciel [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (après l'avoir lancé, cliquer sur Session puis SSH).
 
 ## Pendant l’installation de YunoHost
 
@@ -28,7 +28,7 @@ ssh root@111.222.333.444
 Un mot de passe sera demandé. Si c'est un VPS, votre fournisseur devrait également vous avoir communiqué un mot de passe. Si vous avez utilisé une image pré-installée (pour x86 ou cartes ARM), le password devrait être `yunohost`.
 
 <div class="alert alert-warning">
-Depuis YunoHost 3.4, après avoir effectué la postinstallation, il ne sera plus possible de se logguer avec l'utilisateur `root`. À la place, il vous faut **vous logguer avec l'utilisateur `admin` !**. Dans l'éventualité où le serveur LDAP serait cassé, rendant l'utilisateur `admin` inutilisable, vous devriez cependant pouvoir vous logguer avec l'utilisateur `root` depuis le réseau local.
+Depuis YunoHost 3.4, après avoir effectué la postinstallation, il ne sera plus possible de se logguer avec l'utilisateur `root`. À la place, il vous faut **vous logguer avec l'utilisateur `admin` !** Dans l'éventualité où le serveur LDAP serait cassé, rendant l'utilisateur `admin` inutilisable, vous devriez cependant pouvoir vous logguer avec l'utilisateur `root` depuis le réseau local.
 </div>
 
 #### Changer le mot de passe root !

From b47678cf85aacc246ac94f29826fa1e8d14dbbbd Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:05:38 +0000
Subject: [PATCH 234/360] Et encore de toutes petites corrections diverses.

---
 isp_box_config_fr.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/isp_box_config_fr.md b/isp_box_config_fr.md
index 30e42fbb..866b38b0 100644
--- a/isp_box_config_fr.md
+++ b/isp_box_config_fr.md
@@ -1,6 +1,6 @@
 # Configurer la redirection des ports
 
-Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Si vous souhaitez une explication courte de ce qu'est et pourquoi vous avez besoin de rediriger les ports, vous pouvez jeter un oeil à [cette page](port_forwarding_fr). [Cette page](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs.
+Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Si vous souhaitez une explication courte de ce qu'est et pourquoi vous avez besoin de rediriger les ports, vous pouvez jeter un œil à [cette page-ci](port_forwarding_fr). [Cette page-là](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs.
 
 ### 0. Diagnostiquer les ports ouverts
 
@@ -10,7 +10,7 @@ Une fois que vous aurez configuré la redirection, vous devriez pouvoir valider
 
 ### 1. Accéder à l'interface d'administration de votre box/routeur
 
-L'interface d'administration est généralement accessible via http://192.168.0.1 ou http://192.168.1.1. 
+L'interface d'administration est généralement accessible via http://192.168.0.1 ou http://192.168.1.1.
 Ensuite, il vous faudra peut-être vous authentifier avec les identifiants
 fournis par votre fournisseur d'accès internet (FAI).
 
@@ -18,9 +18,9 @@ fournis par votre fournisseur d'accès internet (FAI).
 
 Identifiez quelle est l'IP locale de votre serveur, soit :
 - depuis l'interface de votre routeur/box, qui liste peut-être les dispositifs
-  connectés.
-- depuis la webadmin de YunoHost, dans 'État du serveur', 'Réseau'
-- depuis la ligne de commande dans votre serveur, par exemple avec `ip a | grep "scope global" | awk '{print $2}'`
+  connectés;
+- depuis la webadmin de YunoHost, dans 'État du serveur', 'Réseau';
+- depuis la ligne de commande dans votre serveur, par exemple avec `ip a | grep "scope global" | awk '{print $2}'`.
 
 Une adresse IP locale ressemble généralement à `192.168.xx.yy`, ou `10.0.xx.yy`.
 

From d1d732fa12163c0dd62cebc46d0bc36d5b9544fa Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:05:48 +0000
Subject: [PATCH 235/360] De petites corrections diverses.

---
 users_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/users_fr.md b/users_fr.md
index 3b114f71..a3800f7d 100644
--- a/users_fr.md
+++ b/users_fr.md
@@ -15,14 +15,14 @@ Vous devriez faire attention à qui vous donnez l'accès à votre serveur. En te
 Le portail utilisateur, ou SSO
 -----------------------
 
-<center><img src="images/user_panel.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"></center>
+<center><img src="images/home_panel.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"></center>
 
 Le portail utilisateur, également appelé SSO pour 'Single Sign On', permet à l'utilisateur de naviguer facilement entre les différentes applications auxquelles il a accès. En particulier, le terme 'Single Sign On' vient du fait que l'utilisateur n'a qu'à se connecter au portail pour être automatiquement connecté à toutes les applications qui nécessitent une authentification (ou du moins celles qui sont intégrées avec le SSO/LDAP, car cela est parfois techniquement compliqué ou pas possible du tout).
 
 Dans le portail, les utilisateurs peuvent également cliquer sur l'avatar en haut à gauche pour configurer d'autres paramètres tels que leur identité, les alias de messagerie, les transferts automatiques de courrier ou changer leur mot de passe.
 
 <div class="alert alert-info" markdown="1">
-Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (i.e. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (i.e. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_nework).
+Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (i.e. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (i.e. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_nework).
 </div>
 
 Permissions d'accès aux applications

From 378cc058c2dc4ae361ab6f5e4a395f1be89544f6 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:05:57 +0000
Subject: [PATCH 236/360] De petites corrections diverses.

---
 apps_overview_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/apps_overview_fr.md b/apps_overview_fr.md
index 4050d256..bf396e31 100644
--- a/apps_overview_fr.md
+++ b/apps_overview_fr.md
@@ -1,7 +1,7 @@
 Applications
 ============
 
-L'une des fonctionnalités principales de YunoHost est la possibilité d'installer facile des applications immédiatement utilisables. Pour donner des exemples d'application, il est possible d'installer un système de blog, un "cloud" (pour héberger et synchroniser des fichiers), un site web, un lecteur RSS, ....
+L'une des fonctionnalités principales de YunoHost est la possibilité d'installer facilement des applications immédiatement utilisables. Pour donner des exemples d'application, il est possible d'installer un système de blog, un "cloud" (pour héberger et synchroniser des fichiers), un site web, un lecteur RSS, ....
 
 Les applications doivent être packagées manuellement par les packageurs/mainteneurs d'applications. Les applications peuvent être intégrées avec YunoHost pour gérer les mise à jour, la sauvegarde/restauration et l'intégration LDAP/SSO, entre autres.
 
@@ -26,7 +26,7 @@ Des tests automatisés sont exécutés régulièrement pour tester l'intégratio
 Intégration LDAP / SSO
 ----------------------
 
-Les applications peuvent prendre en charge l'intégration avec le système LDAP / Single Sign On, de sorte que les utilisateurs qui se connectent au portail utilisateur peuvent être automatiquement authentifié sur toutes ces applications. Certaines applications ne le supportent pas car cette fonctionnalité n'est, soit pas implémentée en amont du logiciel de l'app, soit le mainteneur n'a pas encore travaillé sur cette partie.
+Les applications peuvent prendre en charge l'intégration avec le système LDAP / Single Sign On, de sorte que les utilisateurs qui se connectent au portail utilisateur peuvent être automatiquement authentifiés sur toutes ces applications. Certaines applications ne le supportent pas car cette fonctionnalité n'est, soit pas implémentée en amont du logiciel de l'application, soit le mainteneur n'a pas encore travaillé sur cette partie.
 
 Applications multi-instances
 ---------------------------

From 901bdcffc4efc2f701d986ee7d292ee67027dd1c Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:07:36 +0000
Subject: [PATCH 237/360] Petites corrections/reformulations mineures.

---
 faq.md | 46 +++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/faq.md b/faq.md
index 7614f9cb..62781ad5 100644
--- a/faq.md
+++ b/faq.md
@@ -5,24 +5,24 @@
 
 YunoHost packages are under free licenses GNU AGPL v.3.
 
-YunoHost is based on Debian, so on licenses of Debian based elements.
+YunoHost is based on Debian, so on Debian's components' licenses.
 
-Applications and applications packages have their respectives licenses.
+Applications and applications packages have their own licenses.
 
 
-#### What is the goal of YunoHost?
+#### What YunoHosts' goal?
 
-We believe that decentralizing the Internet, and people taking back control and
-responsability over their own data and services, is a crucial issue to guarantee
+We believe that decentralizing the Internet, and empowering people to take control and
+responsability back over their own data and services, is a crucial issue to guarantee
 a free and democratic society.
 
 The YunoHost project aims to democratize self-hosting.
 
-It provides a software that aim to make it easy for people to run and
-administrate their own server, with minimal knowledge and time required.
+It provides a software that aims to make it easy for people to run and
+administrate their own server, with minimal knowledge and required time.
 
 
-#### But what does YunoHost *do* exactly?
+#### But what does YunoHost exactly *do*?
 
 YunoHost may be called a distribution or an operating system, but it's actually
 "just" a simple layer added over the top of Debian, which does most of the hard
@@ -31,28 +31,28 @@ work for you.
 For instance, if you wanted to install Wordpress, you would need to type a bunch
 of commands to create some users, setup a web server, setup a SQL server,
 download the wordpress archive, uncompress it, configure the web server,
-configure the SQL database, and finally configure wordpress. YunoHost handle
-the technical mess and "type all these commands for you", so that you can focus
+configure the SQL database, and finally configure wordpress. YunoHost handles
+the technical details and "types all these commands for you", so that you can focus
 on what really matters.
 
 More info on [this page](whatsyunohost) !
 
 #### Can I host my own personnal website with YunoHost?
 
-Yes ! Have a look at the [Custom Web app](https://github.com/YunoHost-Apps/my_webapp_ynh).
+Yes! Have a look at the [Custom Web app](https://github.com/YunoHost-Apps/my_webapp_ynh).
 It provides an "empty shell" : after installing it, just upload your files
 (via SSH/SCP or SFTP) to the right location. You can have PHP and a SQL database
 if you need.
 
 
-#### Can I host many independents websites with different domain names?
+#### Can I host many independent websites with different domain names?
 
-Yes ! YunoHost is multi-user and multi-domain. Some applications like *WordPress* or *Web App Multi Custom*, are multi-instances, which means that the application can be installed many times.
+Yes! YunoHost is multi-user and multi-domain. Some applications like *WordPress* or *Web App Multi Custom*, are multi-instances, which means that the application can be installed many times.
 
 
-#### Why can't I access to applications via the IP address?
+#### Why can't I access applications via the IP address?
 
-The [SSO](https://github.com/Kloadut/SSOwat/) (single sign-on) cannot properly authenticate users when they access your server with only its IP. If you really can't configure the DNS properly, you can temporarily work around it by [modifying the `hosts` file (last §)](dns_local_network_en) on your computer.
+The [SSO](https://github.com/Kloadut/SSOwat/) (single sign-on) cannot properly authenticate users when they access your server with only its IP. If you really can't properly configure the DNS, you can temporarily work around it by [modifying the `hosts` file (last §)](dns_local_network_en) on your computer.
 
 
 #### What's YunoHost's business model?
@@ -64,13 +64,13 @@ or stickers :P).
 Considering that a few contributors are investing a large amount of time in the
 project, we are thinking about ways to make the project sustainable.
 
-This could be achieved via donations, public fundings, and a few contributors
+This could be achieved via donations, crowdfunding, and a few contributors
 have professional activities related to YunoHost.
 
 
-#### Can I make donations to the project?
+#### Can I donate to the project?
 
-Yes, you can ! YunoHost needs money to pay servers and domain names. We would
+Yes, you can! YunoHost needs money to pay servers and domain names. We would
 also like contributors to be able to continue contributing rather than look for
 jobs elsewhere.
 
@@ -98,17 +98,17 @@ and having some free time. Other than that, just doing what you can is already a
 It is described in [this document](yunohost_project_organization.md) :).
 
 
-#### Will you port YunoHost to [insert favorite distro] ?
+#### Will you port YunoHost to [insert favorite distro]?
 
 Short answer: No. We don't have the energy for it and this is irrelevant.
 
 <a data-toggle="collapse" data-target="#willyouportyunohost" href="#">Long answer</a>
 <div id="willyouportyunohost" class="collapse">
-<p>If you care about distrowars, or think 'Debian is dirty', you are not the public of YunoHost.</p>
+<p>If you care about distrowars, or think 'Debian is dirty', then YunoHost is not for you.</p>
 
-<p>YunoHost is aimed at non-tech people who just want their server to work. Debian has its flaws, but it's (one of?) the most widely known and used distribution for servers. It's stable. Most self-hosted softwares are one way or another compatible with Debian. It's easily hackable by anybody who's been doing a bit of CLI on their personal Ubuntu/Mint computer. There is no killer feature in other distributions that makes it relevant for YunoHost to switch or port it.</p>
+<p>YunoHost is aimed at non-tech people who just want their server to work. Debian has its flaws, but it's (one of?) the most widely known and used distribution for servers. It's stable. Most self-hosted software are one way or another compatible with Debian. It's easily hackable by anybody who's been doing a bit of CLI on their personal Ubuntu/Mint computer. There is no killer feature in other distributions that makes it relevant for YunoHost to switch or port to it.</p>
 
-<p>If this does not convince you, there are other projects running on other distributions or with different philosophy.</p>
+<p>If this does not convince you, there are other projects running on other distributions or with different philosophies.</p>
 </div>
 
 
@@ -127,5 +127,5 @@ Medium answer: Apps were packaged in .deb in the past. It was a nightmare. We're
 
 <p>YunoHost manipulates high-level abstractions (apps, domains, users, ...) and defines a standard setup (Nginx, Postfix, Metronome, SSOwat, ...) and, because of this, can handle the configuration for the user.</p>
 
-<p>If you still think deb packages can be hacked to do this, see previous answers.</p>
+<p>If you still think it's possible to handle everything by fiddling with .deb packages, see previous answers.</p>
 </div>

From bce6ba10b338ec3a17fbe2b2f31f1dc0c6076db1 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:07:54 +0000
Subject: [PATCH 238/360] ho tradotto la pagina della versione inglese.

---
 install_iso_it.md | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 install_iso_it.md

diff --git a/install_iso_it.md b/install_iso_it.md
new file mode 100644
index 00000000..dfec6cdd
--- /dev/null
+++ b/install_iso_it.md
@@ -0,0 +1,37 @@
+# Installazione in un computer
+
+*Altri modi per installare YunoHost **[Clicca qui](/install_it)**.*
+
+### Requisiti
+
+<img src="/images/laptop.png" width=200>
+<img src="/images/desktop.jpg">
+<img src="/images/nettop.jpg">
+
+* Un computer con architettura x86: laptop, nettop, netbook, desktop.    
+Puoi usare qualsiasi computer con minimo 256mb di ram**.
+* Un altro computer per leggere questa guida e per accedere al tuo server.
+* un [buon ISP](/isp), possibilmente con una banda illimitata.
+* una **chiavetta usb** da almeno 1gb **O** un classico **cd/dvd vuoto**
+* ***casi particolari*** : se il tuo server non ha una scheda video, [prepara l'iso per fare il boot con la porta seriale}(https://github.com/luffah/debian-mkserialiso).
+
+---
+
+## Installazione
+
+
+<a class="btn btn-lg btn-default" href="/images">0. Scarica l'ISO di YunoHost</a>
+
+<a class="btn btn-lg btn-default" href="/burn_or_copy_iso">1. Scrivi l'immagine disco su una chiavetta usb</a>
+
+<a class="btn btn-lg btn-default" href="/boot_and_graphical_install">2. Accendi il computer facendo il boot da usb</a>
+
+<a class="btn btn-lg btn-default" href="/postinstall">3. Procedi con la prima configurazione (post-installation)</a>
+
+---
+
+To connect directly to your computer or with [SSH](/ssh) (only on local network:
+* User: **root**
+* Password: **yunohost**
+
+

From 68e312b2c0f1b8d2a16e35e0e19a7d1edb4ef052 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:08:20 +0000
Subject: [PATCH 239/360] Added n8n.io to the list.

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index e4ddd122..ec19e465 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -79,6 +79,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [MPD](http://www.musicpd.org)
 - [MyBB](https://mybb.com/) / [github](https://github.com/mybb)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
+- [N8n.io](https://n8n.io)
 - [Netrunner](https://github.com/mtgred/netrunner)
 - [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
 - [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)

From 4d85d86ba4fb3bfa8e2d6dbd65a82493341327c1 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:10:58 +0000
Subject: [PATCH 240/360] Rajout de la ligne de code systemctl restart postfix

---
 isp_orange_fr.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/isp_orange_fr.md b/isp_orange_fr.md
index 96c22706..56cabf4d 100644
--- a/isp_orange_fr.md
+++ b/isp_orange_fr.md
@@ -78,3 +78,8 @@ Si ils ne sont pas présents, installez-les :
 ```bash
 apt install libsasl2-modules sasl2-bin
 ```
+
+Il est possible que postfix ne prenne pas en compte tout de suite vos modifications. Pour le forcer à le faire, exécutez 
+```bash
+systemctl restart postfix
+```

From 07116309592c7d23fc159029fb587d8798a8129b Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 2 Nov 2019 15:12:30 +0000
Subject: [PATCH 241/360] I added a line for Presentator (a FOSS UX design
 presentation and collaboration platform) app.

---
 apps_wishlist.md | 213 +++++++++++++++++++++++++++++++----------------
 1 file changed, 143 insertions(+), 70 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index e4ddd122..6157c2f3 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -11,126 +11,199 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects)
 - [List of SIP softwares/applications](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license)
 - [10er10](https://github.com/dready92/10er10)
-- [Ajenti](http://ajenti.org) / [github](https://github.com/ajenti/ajenti/)
-- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc. / [github](https://github.com/akaunting/akaunting)
+- [Airtime](https://www.sourcefabric.org/en/airtime/)
+- [Ajenti](http://ajenti.org)
+- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
+- [aMule](https://github.com/amule-project/amule)
+- [Anki](https://github.com/dsnopek/anki-sync-server) is a powerful Open Source flashcard application, which helps you quickly and easily memorize facts over the long term utilizing a spaced repetition algorithm.
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
-- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions) / [github](https://github.com/Bitmessage/PyBitmessage)
+- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
+- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
+- [Bitwarden](https://bitwarden.com/)
 - [Beehive](https://github.com/muesli/beehive)
-- [Bludit](https://www.bludit.com) / [github](https://github.com/bludit/bludit)
+- [Bludit](https://www.bludit.com)
 - [Blynk](https://github.com/blynkkk/blynk-library)
-- [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)
+- [Bookstack](https://www.bookstackapp.com/)
+- [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
+- [Caisse Bliss](https://framagit.org/tykayn/caisse-bliss)
+- [Candy](https://candy-chat.github.io/candy)
+- [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
 - [cgit](http://git.zx2c4.com/cgit/about)
-- [CheckUp](https://sourcegraph.github.io/checkup) / [github](https://github.com/sourcegraph/checkup)
+- [CheckUp](https://sourcegraph.github.io/checkup)
+- [Cloud torrent](https://github.com/jpillora/cloud-torrent)
 - [Cockpit](http://cockpit-project.org/)
 - [Commafeed](https://github.com/Athou/commafeed)
-- [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)
+- [Converse.js](https://conversejs.org)
 - [Cozy](https://github.com/cozy)
+- [Cronkeep](https://github.com/cronkeep/cronkeep)
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
+- [CumulusClips](http://cumulusclips.org)
+- [Cyclos](https://www.cyclos.org)
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
+- [Deluge](http://deluge-torrent.org) (with WebUI)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
-- [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
+- [DNSchain](https://github.com/okTurtles/dnschain)
+- [eLabFTW](https://www.elabftw.net/) electronic lab notebook
 - [Emoncms](https://github.com/emoncms/emoncms)
-- [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
-- [EteSync](https://www.etesync.com/) / [github](https://github.com/etesync)
+- [ERPnext](https://erpnext.com/download)
+- [EteSync](https://www.etesync.com/)
+- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet)
+- [Fail2web](https://github.com/Sean-Der/fail2web)
+- [Ferment](https://github.com/mmckegg/ferment)
 - [FEX](http://fex.rus.uni-stuttgart.de/)
+- [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
+- [FlatPress](https://github.com/flatpressblog/flatpress)
+- [Flarum](https://flarum.org/)
+- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
-- [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
-- [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
-- [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
-- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)
+- [Framaslides](https://framagit.org/framasoft/framaslides/)
+- [Gateway](https://iot.mozilla.org/gateway/)
+- [Geneweb](https://geneweb.tuxfamily.org)
+- [GetSimple CMS](http://get-simple.info)
+- [Git-annex](http://git-annex.branchable.com)
+- [Gitit](https://github.com/jgm/gitit)
+- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
 - [Gollum](https://github.com/gollum/gollum)
 - [Goploader](https://github.com/Depado/goploader)
 - [Granary](https://github.com/snarfed/granary)
 - [Guacamole](http://guac-dev.org)
-- [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
+- [Habitica](https://habitica.com/)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
+- [Hackpad](https://github.com/dropbox/hackpad)
 - [Helpy](https://github.com/helpyio/helpy)
-- [Hexo](https://hexo.io/) / [github](https://github.com/hexojs/hexo)
-- [Icecast 2](http://www.icecast.org) / [gitlab](https://gitlab.xiph.org/xiph/icecast-server/)
+- [Hexo](https://hexo.io/)
+- [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
+- [Huginn](https://github.com/cantino/huginn)
+- [Hugo](http://gohugo.io)
+- [Icecast 2](http://www.icecast.org)
 - [ikiwiki](http://ikiwiki.info)
+- [img.bi](https://github.com/imgbi/img.bi)
+- [InfCloud](https://www.inf-it.com/open-source/clients/infcloud)
 - [Invidious](https://github.com/omarroth/invidious)
-- [Invoice Ninja](https://www.invoiceninja.com) / [github](https://github.com/invoiceninja/invoiceninja)
-- [InvoicePlane](https://invoiceplane.com) / [github](https://github.com/InvoicePlane/InvoicePlane)
-- [IPFS](https://ipfs.io) / [github](https://github.com/ipfs/ipfs)
-- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
+- [Invoice Ninja](https://www.invoiceninja.com)
+- [InvoicePlane](https://invoiceplane.com)
+- [IPFS](https://ipfs.io)
+- [Joplin](http://joplin.cozic.net/)
 - [Jellyfin](https://github.com/jellyfin)
-- [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
-- [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
-- [Known](https://withknown.com) / [github](https://github.com/idno/known)
-- [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)
-- [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
-- [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
+- [JS Bin](http://jsbin.com/help/2-second-setup)
+- [Kaiwa](http://getkaiwa.com)
+- [Kin calendar](https://github.com/KinToday)
+- [Kinto](https://github.com/Kinto/formbuilder)
+- [Kiwix](http://www.kiwix.org/) Offline wikipedia
+- [Known](https://withknown.com)
+- [Koel](http://koel.phanan.net)
+- [Kontalk](https://kontalk.org)
+- [Koozip](http://koozic.net)
+- [KrISS feed](https://github.com/tontof/kriss_feed)
+- [Koken](http://koken.me)
+- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
 - [L'atelier](https://github.com/jbl2024/latelier)
-- [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
+- [Lessy](https://lessy.io)
+- [LibreNews-Server](https://librenews.io)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
-- [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
+- [LiquidSoap](http://savonet.sourceforge.net/)
 - [LocomotiveCMS](https://github.com/locomotivecms/engine)
-- [Loomio](https://www.loomio.org) / [github](https://github.com/loomio/loomio/)
-- [MaidSafe](http://maidsafe.net) / [github](https://github.com/maidsafe)
-- [Mailpile](https://www.mailpile.is) / [github](https://github.com/mailpile/Mailpile)
-- [Mailtrain](https://mailtrain.org/) / [github](https://github.com/Mailtrain-org/mailtrain)
+- [Logstalgia](http://logstalgia.io)
+- [Loomio](https://www.loomio.org)
+- [MagicMirror²](https://github.com/MichMich/MagicMirror)
+- [MaidSafe](http://maidsafe.net)
+- [Mailpile](https://www.mailpile.is)
+- [Mailtrain](https://mailtrain.org/)
 - [Mautic](https://github.com/mautic/mautic)
-- [microblog.pub](https://microblog.pub) / [github](https://github.com/tsileo/microblog.pub)
-- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) / [github](https://github.com/GothenburgBitFactory/taskwarrior) (/!\ SSL-Warning)
-- [Modoboa](http://modoboa.org) / [github](https://github.com/modoboa/)
+- [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
+- [microblog.pub](https://microblog.pub)
+- [MinigalNano](https://github.com/sebsauvage/MinigalNano) (/!\ last update: Jun 24, 2016)
+- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) (/!\ SSL-Warning)
+- [Modoboa](http://modoboa.org)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/) / [github](https://github.com/mybb)
+- [MyBB](https://mybb.com/)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
-- [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
-- [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
+- [Nibbleblog](http://www.nibbleblog.com)
+- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
+- [Nuage](https://nuage.kerjean.me/login)
 - [Ombi](https://github.com/tidusjar/Ombi)
-- [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
-- [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
+- [OpenBazaar](https://openbazaar.org)
+- [openHAB](https://www.openhab.org/) - Smart home platform.
+- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
 - [OpenProject](https://github.com/opf/openproject)
 - [OpenSourceBilling](https://github.com/vteams/open-source-billing)
-- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution / [github](https://github.com/open-xchange/)
+- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
 - [Paperless](https://github.com/danielquinn/paperless)
 - [Paperwork](http://paperwork.rocks)
-- [Passbolt](https://www.passbolt.com) Passwords manager / [github](https://github.com/passbolt)
-- [Pelias](https://github.com/pelias/pelias))
-- [PHPList](http://www.phplist.com) / [github](https://github.com/phpList)
-- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) / [github](https://github.com/alchemy-fr/Phraseanet-Docs)
-- [Pico](http://picocms.org) / [github](https://github.com/picocms/Pico)
+- [Passbolt](https://www.passbolt.com) Passwords manager
+- [pdfy](https://github.com/joepie91/pdfy) (/!\ last update: Aug 5, 2014)
+- [Pelias](https://github.com/pelias/pelias)
+- [Peps](https://github.com/MLstate/PEPS)
+- [PHPList](http://www.phplist.com)
+- [PHProxy](http://sourceforge.net/projects/poxy)
+- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#)
+- [Pico](http://picocms.org)
+- [Pix](http://pix.toile-libre.org)
 - [Playmaker](https://github.com/NoMore201/playmaker)
+- [Presentator](https://presentator.io/)
 - [Privoxy](http://www.privoxy.org)
 - [ProcessMaker](http://www.processmaker.com)
 - [ProtonMail’s WebClient](https://github.com/ProtonMail/WebClient)
+- [ProjeQtOr](https://www.projeqtor.org/en/product-en/downloads)
 - [PyLoad](https://github.com/pyload/pyload)
-- [Pump.io](http://pump.io) / [github](https://github.com/pump-io/pump.io)
+- [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
+- [Pump.io](http://pump.io)
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
-- [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
+- [racktables](http://racktables.org)
+- [Race for the Galaxy](https://github.com/bnordli/rftg)
 - [Radarr](https://github.com/Radarr/Radarr)
-- [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
-- [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
-- [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)
+- [Redmine](https://www.redmine.org)
+- [Request Tracker](https://bestpractical.com)
+- [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)
+- [Restya](http://restya.com)
+- [Retroshare](http://retroshare.net/downloads.html)
+- [SABnzbd](https://sabnzbd.org)
+- [Samourai Dojo, Bitcoin coinjoin node] (https://github.com/Samourai-Wallet/samourai-dojo)
 - [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
+- [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
+- [Scribbleton](https://scribbleton.com)
 - [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
-- [ShareLatex](https://www.sharelatex.com) / [github](https://github.com/overleaf/overleaf)
-- [Shleuder](https://schleuder.org/)
+- [ShareLatex](https://www.sharelatex.com)
+- [Shleuder](http://schleuder2.nadir.org)
+- [Simone](https://github.com/Kloadut/Simone)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
-- [smokeping](https://packages.debian.org/buster/smokeping)   / [github](https://github.com/oetiker/SmokePing)
-- [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)
-- [Stackedit](https://stackedit.io) / [github](https://github.com/benweet/stackedit)
-- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion / [github](https://github.com/standardnotes/web)
+- [Sonarr](https://sonarr.tv)
+- [SpamGourmet](https://sourceforge.net/projects/spamgourmet/)
+- [Stackedit](https://stackedit.io)
+- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.
+- [Streama](https://github.com/dularion/streama)
 - [Streisand](https://github.com/jlund/streisand)
 - [Subspace](https://github.com/subspacecloud/subspace) (A simple WireGuard VPN server GUI)
-- [Syspass](http://www.syspass.org/) / [github](https://github.com/nuxsmin/sysPass)
-- [Taiga](https://taiga.io) / [github](https://github.com/taigaio/)
-- [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
-- [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
+- [Syspass](http://www.syspass.org/)
+- [Taiga](https://taiga.io)
+- [Tania](http://gettania.org/)
+- [Taskwarrior](https://taskwarrior.org)
+- [TMate](https://tmate.io/)
+- [TorChat](https://github.com/prof7bit/TorChat)
+- [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
+- [Total Respawn](https://github.com/broncowdd/TotalRespawn)
 - [Tracim](https://github.com/tracim/tracim)
-- [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
-- [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
-- [Volumio](https://volumio.org) / [github](https://github.com/volumio)
-- [WebODF](http://webodf.org) / [github](https://github.com/webodf/WebODF)
-- [Wireguard](https://www.wireguard.com/) / [git](https://git.zx2c4.com/WireGuard/)
-- [Xonotic](http://xonotic.org) / [gitlab](https://gitlab.com/xonotic)
-- [YesWiki](https://yeswiki.net) / [github](https://github.com/YesWiki/yeswiki)
+- [Twister](http://twister.net.co)
+- [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
+- [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
+- [Vaultier](http://www.vaultier.org)
+- [Volumio](https://volumio.org)
+- [Webmpc](https://github.com/ushis/webmpc)
+- [WebODF](http://webodf.org)
+- [webSync](http://furier.github.io/websync)
+- [WebTorrent](https://github.com/feross/webtorrent)
+- [Wisemapping](http://www.wisemapping.com)
+- [Wireguard](https://www.wireguard.com/)
+- [Xibo](https://github.com/xibosignage)
+- [Xonotic](http://xonotic.org)
+- [YesWiki](https://yeswiki.net)
 - [Zammad](https://github.com/zammad/zammad)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
+- [ZNC](http://wiki.znc.in/ZNC)
+- [Zone-project](https://github.com/descl/ZONE)
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
-- [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)
+- [Zulip](https://zulipchat.com/)

From 96bafc1cca9ead3e86e5a323c0c14926dbdb569d Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 2 Nov 2019 16:17:06 +0100
Subject: [PATCH 242/360] Fix Simone's mess

---
 apps_wishlist.md | 205 ++++++++++++++++-------------------------------
 1 file changed, 71 insertions(+), 134 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 7e3a1a69..3c4309a9 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -11,190 +11,127 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects)
 - [List of SIP softwares/applications](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license)
 - [10er10](https://github.com/dready92/10er10)
-- [Airtime](https://www.sourcefabric.org/en/airtime/)
-- [Ajenti](http://ajenti.org)
-- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
-- [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/tsudoko/anki-sync-server)
+- [Ajenti](http://ajenti.org) / [github](https://github.com/ajenti/ajenti/)
+- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc. / [github](https://github.com/akaunting/akaunting)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
-- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
-- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
-- [Bitwarden](https://bitwarden.com/)
+- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions) / [github](https://github.com/Bitmessage/PyBitmessage)
 - [Beehive](https://github.com/muesli/beehive)
-- [Bludit](https://www.bludit.com)
+- [Bludit](https://www.bludit.com) / [github](https://github.com/bludit/bludit)
 - [Blynk](https://github.com/blynkkk/blynk-library)
-- [Bookstack](https://www.bookstackapp.com/)
-- [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
+- [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
-- [Candy](https://candy-chat.github.io/candy)
-- [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
 - [cgit](http://git.zx2c4.com/cgit/about)
-- [CheckUp](https://sourcegraph.github.io/checkup)
-- [Cloud torrent](https://github.com/jpillora/cloud-torrent)
+- [CheckUp](https://sourcegraph.github.io/checkup) / [github](https://github.com/sourcegraph/checkup)
 - [Cockpit](http://cockpit-project.org/)
 - [Commafeed](https://github.com/Athou/commafeed)
-- [Converse.js](https://conversejs.org)
+- [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)
 - [Cozy](https://github.com/cozy)
-- [Cronkeep](https://github.com/cronkeep/cronkeep)
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
-- [CumulusClips](http://cumulusclips.org)
-- [Cyclos](https://www.cyclos.org)
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
-- [Deluge](http://deluge-torrent.org) (with WebUI)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
-- [DNSchain](https://github.com/okTurtles/dnschain)
-- [eLabFTW](https://www.elabftw.net/) electronic lab notebook
+- [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
 - [Emoncms](https://github.com/emoncms/emoncms)
-- [ERPnext](https://erpnext.com/download)
-- [EteSync](https://www.etesync.com/)
-- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet)
-- [Fail2web](https://github.com/Sean-Der/fail2web)
-- [Ferment](https://github.com/mmckegg/ferment)
+- [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
+- [EteSync](https://www.etesync.com/) / [github](https://github.com/etesync)
 - [FEX](http://fex.rus.uni-stuttgart.de/)
-- [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
-- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
-- [Framaslides](https://framagit.org/framasoft/framaslides/)
-- [Gateway](https://iot.mozilla.org/gateway/)
-- [Geneweb](https://geneweb.tuxfamily.org)
-- [GetSimple CMS](http://get-simple.info)
-- [Git-annex](http://git-annex.branchable.com)
-- [Gitit](https://github.com/jgm/gitit)
-- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
+- [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
+- [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
+- [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
+- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)
 - [Gollum](https://github.com/gollum/gollum)
 - [Goploader](https://github.com/Depado/goploader)
 - [Granary](https://github.com/snarfed/granary)
 - [Guacamole](http://guac-dev.org)
-- [Habitica](https://habitica.com/)
+- [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
-- [Hackpad](https://github.com/dropbox/hackpad)
 - [Helpy](https://github.com/helpyio/helpy)
-- [Hexo](https://hexo.io/)
-- [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
-- [Huginn](https://github.com/cantino/huginn)
-- [Hugo](http://gohugo.io)
-- [Icecast 2](http://www.icecast.org)
+- [Hexo](https://hexo.io/) / [github](https://github.com/hexojs/hexo)
+- [Icecast 2](http://www.icecast.org) / [gitlab](https://gitlab.xiph.org/xiph/icecast-server/)
 - [ikiwiki](http://ikiwiki.info)
-- [img.bi](https://github.com/imgbi/img.bi)
-- [InfCloud](https://www.inf-it.com/open-source/clients/infcloud)
 - [Invidious](https://github.com/omarroth/invidious)
-- [Invoice Ninja](https://www.invoiceninja.com)
-- [InvoicePlane](https://invoiceplane.com)
-- [IPFS](https://ipfs.io)
-- [Joplin](http://joplin.cozic.net/)
+- [Invoice Ninja](https://www.invoiceninja.com) / [github](https://github.com/invoiceninja/invoiceninja)
+- [InvoicePlane](https://invoiceplane.com) / [github](https://github.com/InvoicePlane/InvoicePlane)
+- [IPFS](https://ipfs.io) / [github](https://github.com/ipfs/ipfs)
+- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
 - [Jellyfin](https://github.com/jellyfin)
-- [JS Bin](http://jsbin.com/help/2-second-setup)
-- [Kaiwa](http://getkaiwa.com)
-- [Kin calendar](https://github.com/KinToday)
-- [Kinto](https://github.com/Kinto/formbuilder)
-- [Kiwix](http://www.kiwix.org/) Offline wikipedia
-- [Known](https://withknown.com)
-- [Koel](http://koel.phanan.net)
-- [Kontalk](https://kontalk.org)
-- [Koozip](http://koozic.net)
-- [KrISS feed](https://github.com/tontof/kriss_feed)
-- [Koken](http://koken.me)
-- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
+- [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
+- [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
+- [Known](https://withknown.com) / [github](https://github.com/idno/known)
+- [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)
+- [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
+- [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
 - [L'atelier](https://github.com/jbl2024/latelier)
-- [Lessy](https://lessy.io)
-- [LibreNews-Server](https://librenews.io)
+- [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
-- [LiquidSoap](http://savonet.sourceforge.net/)
+- [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
 - [LocomotiveCMS](https://github.com/locomotivecms/engine)
-- [Logstalgia](http://logstalgia.io)
-- [Loomio](https://www.loomio.org)
-- [MaidSafe](http://maidsafe.net)
-- [Mailpile](https://www.mailpile.is)
+- [Loomio](https://www.loomio.org) / [github](https://github.com/loomio/loomio/)
+- [MaidSafe](http://maidsafe.net) / [github](https://github.com/maidsafe)
+- [Mailpile](https://www.mailpile.is) / [github](https://github.com/mailpile/Mailpile)
+- [Mailtrain](https://mailtrain.org/) / [github](https://github.com/Mailtrain-org/mailtrain)
 - [Mautic](https://github.com/mautic/mautic)
-- [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
-- [microblog.pub](https://microblog.pub)
-- [MinigalNano](https://github.com/sebsauvage/MinigalNano) (/!\ last update: Jun 24, 2016)
-- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) (/!\ SSL-Warning)
-- [Modoboa](http://modoboa.org)
+- [microblog.pub](https://microblog.pub) / [github](https://github.com/tsileo/microblog.pub)
+- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) / [github](https://github.com/GothenburgBitFactory/taskwarrior) (/!\ SSL-Warning)
+- [Modoboa](http://modoboa.org) / [github](https://github.com/modoboa/)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/)
+- [MyBB](https://mybb.com/) / [github](https://github.com/mybb)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
 - [Netrunner](https://github.com/mtgred/netrunner)
-- [Nibbleblog](http://www.nibbleblog.com)
-- [Nuage](https://nuage.kerjean.me/login)
+- [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
+- [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
 - [Ombi](https://github.com/tidusjar/Ombi)
-- [OpenBazaar](https://openbazaar.org)
-- [openHAB](https://www.openhab.org/) - Smart home platform.
-- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
+- [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
+- [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
 - [OpenProject](https://github.com/opf/openproject)
 - [OpenSourceBilling](https://github.com/vteams/open-source-billing)
-- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
+- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution / [github](https://github.com/open-xchange/)
 - [Paperless](https://github.com/danielquinn/paperless)
 - [Paperwork](http://paperwork.rocks)
-- [Passbolt](https://www.passbolt.com) Passwords manager
-- [pdfy](https://github.com/joepie91/pdfy) (/!\ last update: Aug 5, 2014)
-- [Pelias](https://github.com/pelias/pelias)
-- [Peps](https://github.com/MLstate/PEPS)
-- [PHPList](http://www.phplist.com)
-- [PHProxy](http://sourceforge.net/projects/poxy)
-- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#)
-- [Pico](http://picocms.org)
-- [Pix](http://pix.toile-libre.org)
+- [Passbolt](https://www.passbolt.com) Passwords manager / [github](https://github.com/passbolt)
+- [Pelias](https://github.com/pelias/pelias))
+- [PHPList](http://www.phplist.com) / [github](https://github.com/phpList)
+- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) / [github](https://github.com/alchemy-fr/Phraseanet-Docs)
+- [Pico](http://picocms.org) / [github](https://github.com/picocms/Pico)
 - [Playmaker](https://github.com/NoMore201/playmaker)
 - [Privoxy](http://www.privoxy.org)
 - [ProcessMaker](http://www.processmaker.com)
 - [ProtonMail’s WebClient](https://github.com/ProtonMail/WebClient)
 - [PyLoad](https://github.com/pyload/pyload)
-- [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
-- [Pump.io](http://pump.io)
+- [Pump.io](http://pump.io) / [github](https://github.com/pump-io/pump.io)
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
-- [racktables](http://racktables.org)
-- [Race for the Galaxy](https://github.com/bnordli/rftg)
+- [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
 - [Radarr](https://github.com/Radarr/Radarr)
-- [Redmine](https://www.redmine.org)
-- [Request Tracker](https://bestpractical.com)
-- [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)
-- [Restya](http://restya.com)
-- [Retroshare](http://retroshare.net/downloads.html)
-- [SABnzbd](https://sabnzbd.org)
+- [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
+- [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
+- [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)
 - [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
-- [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
-- [Scribbleton](https://scribbleton.com)
 - [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
-- [ShareLatex](https://www.sharelatex.com)
-- [Shleuder](http://schleuder2.nadir.org)
-- [Simone](https://github.com/Kloadut/Simone)
+- [ShareLatex](https://www.sharelatex.com) / [github](https://github.com/overleaf/overleaf)
+- [Shleuder](https://schleuder.org/)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
-- [Sonarr](https://sonarr.tv)
-- [Stackedit](https://stackedit.io)
-- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.
-- [Streama](https://github.com/dularion/streama)
+- [smokeping](https://packages.debian.org/buster/smokeping)   / [github](https://github.com/oetiker/SmokePing)
+- [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)
+- [Stackedit](https://stackedit.io) / [github](https://github.com/benweet/stackedit)
+- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion / [github](https://github.com/standardnotes/web)
 - [Streisand](https://github.com/jlund/streisand)
 - [Subspace](https://github.com/subspacecloud/subspace) (A simple WireGuard VPN server GUI)
-- [Syspass](http://www.syspass.org/)
-- [Taiga](https://taiga.io)
-- [Tania](http://gettania.org/)
-- [Taskwarrior](https://taskwarrior.org)
-- [TMate](https://tmate.io/)
-- [TorChat](https://github.com/prof7bit/TorChat)
-- [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
-- [Total Respawn](https://github.com/broncowdd/TotalRespawn)
+- [Syspass](http://www.syspass.org/) / [github](https://github.com/nuxsmin/sysPass)
+- [Taiga](https://taiga.io) / [github](https://github.com/taigaio/)
+- [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
+- [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
 - [Tracim](https://github.com/tracim/tracim)
-- [Twister](http://twister.net.co)
-- [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
-- [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
-- [Vaultier](http://www.vaultier.org)
-- [Volumio](https://volumio.org)
-- [Webmpc](https://github.com/ushis/webmpc)
-- [WebODF](http://webodf.org)
-- [webSync](http://furier.github.io/websync)
-- [WebTorrent](https://github.com/feross/webtorrent)
-- [Wisemapping](http://www.wisemapping.com)
-- [Wireguard](https://www.wireguard.com/)
-- [Xibo](https://github.com/xibosignage)
-- [Xonotic](http://xonotic.org)
-- [YesWiki](https://yeswiki.net)
+- [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
+- [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
+- [Volumio](https://volumio.org) / [github](https://github.com/volumio)
+- [WebODF](http://webodf.org) / [github](https://github.com/webodf/WebODF)
+- [Wireguard](https://www.wireguard.com/) / [git](https://git.zx2c4.com/WireGuard/)
+- [Xibo](https://github.com/xibosignage) - A FLOSS digital signage solution (CMS?)
+- [Xonotic](http://xonotic.org) / [gitlab](https://gitlab.com/xonotic)
+- [YesWiki](https://yeswiki.net) / [github](https://github.com/YesWiki/yeswiki)
 - [Zammad](https://github.com/zammad/zammad)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
-- [ZNC](http://wiki.znc.in/ZNC)
-- [Zone-project](https://github.com/descl/ZONE)
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
-- [Zulip](https://zulipchat.com/)
+- [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)

From 370e220ac151fe4e9e9c8513632445f05f146d59 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 2 Nov 2019 16:23:38 +0100
Subject: [PATCH 243/360] Fix simone's mess

---
 users_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/users_fr.md b/users_fr.md
index a3800f7d..11262b13 100644
--- a/users_fr.md
+++ b/users_fr.md
@@ -15,7 +15,7 @@ Vous devriez faire attention à qui vous donnez l'accès à votre serveur. En te
 Le portail utilisateur, ou SSO
 -----------------------
 
-<center><img src="images/home_panel.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"></center>
+<center><img src="images/user_panel.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"></center>
 
 Le portail utilisateur, également appelé SSO pour 'Single Sign On', permet à l'utilisateur de naviguer facilement entre les différentes applications auxquelles il a accès. En particulier, le terme 'Single Sign On' vient du fait que l'utilisateur n'a qu'à se connecter au portail pour être automatiquement connecté à toutes les applications qui nécessitent une authentification (ou du moins celles qui sont intégrées avec le SSO/LDAP, car cela est parfois techniquement compliqué ou pas possible du tout).
 

From 04f6709d1c99e15ffda82429311f86ff940a8413 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 2 Nov 2019 16:32:14 +0100
Subject: [PATCH 244/360] Fix Simone's mess

---
 apps_wishlist.md | 216 ++++++++++++++++-------------------------------
 1 file changed, 73 insertions(+), 143 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 6157c2f3..cb9d06b5 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -11,199 +11,129 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects)
 - [List of SIP softwares/applications](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license)
 - [10er10](https://github.com/dready92/10er10)
-- [Airtime](https://www.sourcefabric.org/en/airtime/)
-- [Ajenti](http://ajenti.org)
-- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc.
-- [aMule](https://github.com/amule-project/amule)
-- [Anki](https://github.com/dsnopek/anki-sync-server) is a powerful Open Source flashcard application, which helps you quickly and easily memorize facts over the long term utilizing a spaced repetition algorithm.
+- [Ajenti](http://ajenti.org) / [github](https://github.com/ajenti/ajenti/)
+- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc. / [github](https://github.com/akaunting/akaunting)
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
-- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
-- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
-- [Bitwarden](https://bitwarden.com/)
+- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions) / [github](https://github.com/Bitmessage/PyBitmessage)
 - [Beehive](https://github.com/muesli/beehive)
-- [Bludit](https://www.bludit.com)
+- [Bludit](https://www.bludit.com) / [github](https://github.com/bludit/bludit)
 - [Blynk](https://github.com/blynkkk/blynk-library)
-- [Bookstack](https://www.bookstackapp.com/)
-- [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
+- [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
-- [Caisse Bliss](https://framagit.org/tykayn/caisse-bliss)
-- [Candy](https://candy-chat.github.io/candy)
-- [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
 - [cgit](http://git.zx2c4.com/cgit/about)
-- [CheckUp](https://sourcegraph.github.io/checkup)
-- [Cloud torrent](https://github.com/jpillora/cloud-torrent)
+- [CheckUp](https://sourcegraph.github.io/checkup) / [github](https://github.com/sourcegraph/checkup)
 - [Cockpit](http://cockpit-project.org/)
 - [Commafeed](https://github.com/Athou/commafeed)
-- [Converse.js](https://conversejs.org)
+- [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)
 - [Cozy](https://github.com/cozy)
-- [Cronkeep](https://github.com/cronkeep/cronkeep)
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
-- [CumulusClips](http://cumulusclips.org)
-- [Cyclos](https://www.cyclos.org)
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
-- [Deluge](http://deluge-torrent.org) (with WebUI)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
-- [DNSchain](https://github.com/okTurtles/dnschain)
-- [eLabFTW](https://www.elabftw.net/) electronic lab notebook
+- [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
 - [Emoncms](https://github.com/emoncms/emoncms)
-- [ERPnext](https://erpnext.com/download)
-- [EteSync](https://www.etesync.com/)
-- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet)
-- [Fail2web](https://github.com/Sean-Der/fail2web)
-- [Ferment](https://github.com/mmckegg/ferment)
+- [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
+- [EteSync](https://www.etesync.com/) / [github](https://github.com/etesync)
 - [FEX](http://fex.rus.uni-stuttgart.de/)
-- [FileTea](https://filetea.me)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
-- [FlatPress](https://github.com/flatpressblog/flatpress)
-- [Flarum](https://flarum.org/)
-- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
 - [Fossil](http://www.fossil-scm.org)
-- [Framaslides](https://framagit.org/framasoft/framaslides/)
-- [Gateway](https://iot.mozilla.org/gateway/)
-- [Geneweb](https://geneweb.tuxfamily.org)
-- [GetSimple CMS](http://get-simple.info)
-- [Git-annex](http://git-annex.branchable.com)
-- [Gitit](https://github.com/jgm/gitit)
-- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
+- [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
+- [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
+- [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
+- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)
 - [Gollum](https://github.com/gollum/gollum)
 - [Goploader](https://github.com/Depado/goploader)
 - [Granary](https://github.com/snarfed/granary)
 - [Guacamole](http://guac-dev.org)
-- [Habitica](https://habitica.com/)
+- [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
-- [Hackpad](https://github.com/dropbox/hackpad)
 - [Helpy](https://github.com/helpyio/helpy)
-- [Hexo](https://hexo.io/)
-- [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
-- [Huginn](https://github.com/cantino/huginn)
-- [Hugo](http://gohugo.io)
-- [Icecast 2](http://www.icecast.org)
+- [Hexo](https://hexo.io/) / [github](https://github.com/hexojs/hexo)
+- [Icecast 2](http://www.icecast.org) / [gitlab](https://gitlab.xiph.org/xiph/icecast-server/)
 - [ikiwiki](http://ikiwiki.info)
-- [img.bi](https://github.com/imgbi/img.bi)
-- [InfCloud](https://www.inf-it.com/open-source/clients/infcloud)
 - [Invidious](https://github.com/omarroth/invidious)
-- [Invoice Ninja](https://www.invoiceninja.com)
-- [InvoicePlane](https://invoiceplane.com)
-- [IPFS](https://ipfs.io)
-- [Joplin](http://joplin.cozic.net/)
+- [Invoice Ninja](https://www.invoiceninja.com) / [github](https://github.com/invoiceninja/invoiceninja)
+- [InvoicePlane](https://invoiceplane.com) / [github](https://github.com/InvoicePlane/InvoicePlane)
+- [IPFS](https://ipfs.io) / [github](https://github.com/ipfs/ipfs)
+- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
 - [Jellyfin](https://github.com/jellyfin)
-- [JS Bin](http://jsbin.com/help/2-second-setup)
-- [Kaiwa](http://getkaiwa.com)
-- [Kin calendar](https://github.com/KinToday)
-- [Kinto](https://github.com/Kinto/formbuilder)
-- [Kiwix](http://www.kiwix.org/) Offline wikipedia
-- [Known](https://withknown.com)
-- [Koel](http://koel.phanan.net)
-- [Kontalk](https://kontalk.org)
-- [Koozip](http://koozic.net)
-- [KrISS feed](https://github.com/tontof/kriss_feed)
-- [Koken](http://koken.me)
-- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
+- [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
+- [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
+- [Known](https://withknown.com) / [github](https://github.com/idno/known)
+- [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)
+- [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
+- [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
 - [L'atelier](https://github.com/jbl2024/latelier)
-- [Lessy](https://lessy.io)
-- [LibreNews-Server](https://librenews.io)
+- [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
-- [LiquidSoap](http://savonet.sourceforge.net/)
+- [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
 - [LocomotiveCMS](https://github.com/locomotivecms/engine)
-- [Logstalgia](http://logstalgia.io)
-- [Loomio](https://www.loomio.org)
-- [MagicMirror²](https://github.com/MichMich/MagicMirror)
-- [MaidSafe](http://maidsafe.net)
-- [Mailpile](https://www.mailpile.is)
-- [Mailtrain](https://mailtrain.org/)
+- [Loomio](https://www.loomio.org) / [github](https://github.com/loomio/loomio/)
+- [MaidSafe](http://maidsafe.net) / [github](https://github.com/maidsafe)
+- [Mailpile](https://www.mailpile.is) / [github](https://github.com/mailpile/Mailpile)
+- [Mailtrain](https://mailtrain.org/) / [github](https://github.com/Mailtrain-org/mailtrain)
 - [Mautic](https://github.com/mautic/mautic)
-- [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
-- [microblog.pub](https://microblog.pub)
-- [MinigalNano](https://github.com/sebsauvage/MinigalNano) (/!\ last update: Jun 24, 2016)
-- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) (/!\ SSL-Warning)
-- [Modoboa](http://modoboa.org)
+- [microblog.pub](https://microblog.pub) / [github](https://github.com/tsileo/microblog.pub)
+- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) / [github](https://github.com/GothenburgBitFactory/taskwarrior) (/!\ SSL-Warning)
+- [Modoboa](http://modoboa.org) / [github](https://github.com/modoboa/)
 - [MotionEye](https://github.com/ccrisan/motioneye)
 - [MPD](http://www.musicpd.org)
-- [MyBB](https://mybb.com/)
+- [MyBB](https://mybb.com/) / [github](https://github.com/mybb)
 - [Museek+](https://github.com/eLvErDe/museek-plus)
+- [N8n.io](https://n8n.io)
 - [Netrunner](https://github.com/mtgred/netrunner)
-- [Nibbleblog](http://www.nibbleblog.com)
-- [Nitter](https://github.com/zedeus/nitter) (Twitter front-end focused on privacy)
-- [Nuage](https://nuage.kerjean.me/login)
+- [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
+- [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
 - [Ombi](https://github.com/tidusjar/Ombi)
-- [OpenBazaar](https://openbazaar.org)
-- [openHAB](https://www.openhab.org/) - Smart home platform.
-- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
+- [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
+- [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
 - [OpenProject](https://github.com/opf/openproject)
 - [OpenSourceBilling](https://github.com/vteams/open-source-billing)
-- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
+- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution / [github](https://github.com/open-xchange/)
 - [Paperless](https://github.com/danielquinn/paperless)
 - [Paperwork](http://paperwork.rocks)
-- [Passbolt](https://www.passbolt.com) Passwords manager
-- [pdfy](https://github.com/joepie91/pdfy) (/!\ last update: Aug 5, 2014)
-- [Pelias](https://github.com/pelias/pelias)
-- [Peps](https://github.com/MLstate/PEPS)
-- [PHPList](http://www.phplist.com)
-- [PHProxy](http://sourceforge.net/projects/poxy)
-- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#)
-- [Pico](http://picocms.org)
-- [Pix](http://pix.toile-libre.org)
+- [Passbolt](https://www.passbolt.com) Passwords manager / [github](https://github.com/passbolt)
+- [Pelias](https://github.com/pelias/pelias))
+- [PHPList](http://www.phplist.com) / [github](https://github.com/phpList)
+- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) / [github](https://github.com/alchemy-fr/Phraseanet-Docs)
+- [Pico](http://picocms.org) / [github](https://github.com/picocms/Pico)
 - [Playmaker](https://github.com/NoMore201/playmaker)
-- [Presentator](https://presentator.io/)
+- [Presentator](https://presentator.io/) A design presentation and collaboration platform.
 - [Privoxy](http://www.privoxy.org)
 - [ProcessMaker](http://www.processmaker.com)
 - [ProtonMail’s WebClient](https://github.com/ProtonMail/WebClient)
-- [ProjeQtOr](https://www.projeqtor.org/en/product-en/downloads)
 - [PyLoad](https://github.com/pyload/pyload)
-- [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
-- [Pump.io](http://pump.io)
+- [Pump.io](http://pump.io) / [github](https://github.com/pump-io/pump.io)
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
-- [racktables](http://racktables.org)
-- [Race for the Galaxy](https://github.com/bnordli/rftg)
+- [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
 - [Radarr](https://github.com/Radarr/Radarr)
-- [Redmine](https://www.redmine.org)
-- [Request Tracker](https://bestpractical.com)
-- [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)
-- [Restya](http://restya.com)
-- [Retroshare](http://retroshare.net/downloads.html)
-- [SABnzbd](https://sabnzbd.org)
-- [Samourai Dojo, Bitcoin coinjoin node] (https://github.com/Samourai-Wallet/samourai-dojo)
+- [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
+- [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
+- [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)
 - [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
-- [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
-- [Scribbleton](https://scribbleton.com)
 - [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
-- [ShareLatex](https://www.sharelatex.com)
-- [Shleuder](http://schleuder2.nadir.org)
-- [Simone](https://github.com/Kloadut/Simone)
+- [ShareLatex](https://www.sharelatex.com) / [github](https://github.com/overleaf/overleaf)
+- [Shleuder](https://schleuder.org/)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
-- [Sonarr](https://sonarr.tv)
-- [SpamGourmet](https://sourceforge.net/projects/spamgourmet/)
-- [Stackedit](https://stackedit.io)
-- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.
-- [Streama](https://github.com/dularion/streama)
+- [smokeping](https://packages.debian.org/buster/smokeping)   / [github](https://github.com/oetiker/SmokePing)
+- [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)
+- [Stackedit](https://stackedit.io) / [github](https://github.com/benweet/stackedit)
+- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion / [github](https://github.com/standardnotes/web)
 - [Streisand](https://github.com/jlund/streisand)
 - [Subspace](https://github.com/subspacecloud/subspace) (A simple WireGuard VPN server GUI)
-- [Syspass](http://www.syspass.org/)
-- [Taiga](https://taiga.io)
-- [Tania](http://gettania.org/)
-- [Taskwarrior](https://taskwarrior.org)
-- [TMate](https://tmate.io/)
-- [TorChat](https://github.com/prof7bit/TorChat)
-- [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
-- [Total Respawn](https://github.com/broncowdd/TotalRespawn)
+- [Syspass](http://www.syspass.org/) / [github](https://github.com/nuxsmin/sysPass)
+- [Taiga](https://taiga.io) / [github](https://github.com/taigaio/)
+- [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
+- [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
 - [Tracim](https://github.com/tracim/tracim)
-- [Twister](http://twister.net.co)
-- [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
-- [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
-- [Vaultier](http://www.vaultier.org)
-- [Volumio](https://volumio.org)
-- [Webmpc](https://github.com/ushis/webmpc)
-- [WebODF](http://webodf.org)
-- [webSync](http://furier.github.io/websync)
-- [WebTorrent](https://github.com/feross/webtorrent)
-- [Wisemapping](http://www.wisemapping.com)
-- [Wireguard](https://www.wireguard.com/)
-- [Xibo](https://github.com/xibosignage)
-- [Xonotic](http://xonotic.org)
-- [YesWiki](https://yeswiki.net)
+- [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
+- [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
+- [Volumio](https://volumio.org) / [github](https://github.com/volumio)
+- [WebODF](http://webodf.org) / [github](https://github.com/webodf/WebODF)
+- [Wireguard](https://www.wireguard.com/) / [git](https://git.zx2c4.com/WireGuard/)
+- [Xibo](https://github.com/xibosignage) - A FLOSS digital signage solution (CMS?)
+- [Xonotic](http://xonotic.org) / [gitlab](https://gitlab.com/xonotic)
+- [YesWiki](https://yeswiki.net) / [github](https://github.com/YesWiki/yeswiki)
 - [Zammad](https://github.com/zammad/zammad)
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
-- [ZNC](http://wiki.znc.in/ZNC)
-- [Zone-project](https://github.com/descl/ZONE)
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
-- [Zulip](https://zulipchat.com/)
+- [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)

From 6be9758eb453e13ead24a26fa5a6488097b578a9 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 3 Nov 2019 05:05:19 +0000
Subject: [PATCH 245/360] Updating step 2 to make it clear this step is
 required for a successful install.

---
 install_on_virtualbox.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md
index 0dc98eac..3d693ba7 100644
--- a/install_on_virtualbox.md
+++ b/install_on_virtualbox.md
@@ -31,6 +31,8 @@ machine (old computer, ARM board, ...) or a VPS online.
 
 ## <small>2.</small> Change network settings
 
+**NB:** You must carry out this step. If not, the install will fail. 
+
 Go to **Settings** > **Network**:
 
 <img src="/images/virtualbox_2.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">

From 71630b0f1494354f5b3e427f41acaf116bb8d136 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 3 Nov 2019 06:36:04 +0000
Subject: [PATCH 246/360] =?UTF-8?q?imp=C3=A9ratif=20du=20verbe=201er=20gro?=
 =?UTF-8?q?upe,=20pas=20de=20S?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 index_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index_fr.md b/index_fr.md
index b2cdf980..24ea75a8 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -27,7 +27,7 @@
 
 <div class="boring-part" markdown="1">
 
-  <h1><small>Avec</small> YunoHost<small>, gères facilement un serveur pour tes amis, ton asso, ton entreprise.</small> <a href="/whatsyunohost" style="font-size:0.6em;">En savoir plus</a></small></h1>
+  <h1><small>Avec</small> YunoHost<small>, gère facilement un serveur pour tes amis, ton asso, ton entreprise.</small> <a href="/whatsyunohost" style="font-size:0.6em;">En savoir plus</a></small></h1>
 
   <div class="home-panel">
     <img src="/images/home_panel.jpg" />

From 7f50fb3641b34cc97594049eec9ca506f6791e1c Mon Sep 17 00:00:00 2001
From: Laurent Peuch <cortex@worlddomination.be>
Date: Sun, 3 Nov 2019 13:02:26 +0100
Subject: [PATCH 247/360] [enh] add first version of news.md

---
 news.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 news.md

diff --git a/news.md b/news.md
new file mode 100644
index 00000000..3af75ddd
--- /dev/null
+++ b/news.md
@@ -0,0 +1,49 @@
+# YunoHost News
+
+<div id="news">
+</div>
+
+<style>
+.emoji {
+    height: 21px;
+}
+
+blockquote p {
+    font-size: medium;
+}
+blockquote > p {
+    margin-top: 0;
+}
+</style>
+
+<script type="text/template" id="news-template">
+    <article class="news">
+        <h2><a target="_blank" href="{link}">{title}</a></h2>
+
+        <div>{body}</div>
+    </article>
+
+    <hr>
+</script>
+
+<script>
+$(document).ready(function() {
+    // FIXME, we need to enable CORS on forum.yunohost.org
+    // $.get("https://forum.yunohost.org/c/announcement.rss").success(function(data) {
+    $.get("/_pages/announcement.rss").success(function(data) {
+        $(data).find("item").each(function(_, item) {
+            var description = $(item).find("description");
+            // yes this is a NIGHTMARE
+            var blockquote_content = $("<div>" + description[0].textContent + "</div>").find("blockquote")[0].innerHTML
+            // blockquote_content = blockquote_content.replace("<h1", "<h4");
+
+            html = $('#news-template').html()
+             .replace(/{title}/g, $(item).find("title").text())
+             .replace(/{link}/g, $(item).find("link").text())
+             .replace(/{body}/g, blockquote_content)
+
+            $("#news").append(html);
+        })
+    })
+})
+</script>

From 14b44585c7558170199addd89cafedf08f551fd2 Mon Sep 17 00:00:00 2001
From: ilja <gitlab@spectraltheorem.be>
Date: Mon, 4 Nov 2019 14:45:59 +0100
Subject: [PATCH 248/360] Adding Ubuntu Touch stuff

Added mailclient config for Dekko
Added Kaidan as mobile xmpp client for UT and Plasma Mobile
Added how to add a new page in the ynh-docs and that using git is prefered if you need to upload files (I had to go on the chat now for the latter)
---
 XMPP.md                   |   1 +
 email_configure_client.md |  11 +++++++++++
 images/dekko-app.png      | Bin 0 -> 6966 bytes
 images/dekko_config_1.png | Bin 0 -> 84838 bytes
 images/dekko_config_2.png | Bin 0 -> 99372 bytes
 images/dekko_config_3.png | Bin 0 -> 158329 bytes
 images/dekko_config_4.png | Bin 0 -> 150527 bytes
 write_documentation.md    |   4 ++++
 8 files changed, 16 insertions(+)
 create mode 100644 images/dekko-app.png
 create mode 100755 images/dekko_config_1.png
 create mode 100755 images/dekko_config_2.png
 create mode 100755 images/dekko_config_3.png
 create mode 100755 images/dekko_config_4.png

diff --git a/XMPP.md b/XMPP.md
index 5fb4a6ea..2cef78c0 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -37,6 +37,7 @@ You can connect to your YunoHost XMPP account in different ways.
 - [Conversations](https://conversations.im/) (Android)
 - [Movim under Android](https://movim.eu)
 - [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
+- [Kaidan](https://github.com/KaidanIM/Kaidan) (Ubuntu Touch / Plasma Mobile)
 
 Here is an exhaustive list of XMPP clients : https://en.wikipedia.org/wiki/Comparison_of_XMPP_clients
 
diff --git a/email_configure_client.md b/email_configure_client.md
index 6dd96dd2..a2511674 100644
--- a/email_configure_client.md
+++ b/email_configure_client.md
@@ -30,3 +30,14 @@ Follow the following steps. (As for Thunderbird, you might need to accept certif
 <a href="/images/k9mail_config_2.png"><img src="/images/k9mail_config_2.png" width=200/></a>
 <a href="/images/k9mail_config_3.png"><img src="/images/k9mail_config_3.png" width=200/></a>
 <a href="/images/k9mail_config_4.png"><img src="/images/k9mail_config_4.png" width=200/></a>
+
+### <img src="images/dekko-app.png" width=50> Configure Dekko (on Ubuntu Touch)
+
+The first time you can simply choose "Add account". If you already have an account configured, tap the hamburger menu then tap the gear, choose Mail, Accounts and press the '+'-symbol.
+
+Then you choose IMAP. Fill in the fields and press Next. Now Dekko will look for the configuration. Check that all fields are correct. Make sure you have your yunohost username, NOT your mailadress and choose "Allow untrusted certificates". Do this for IMAP and SMTP and press Next. Dekko will now synchronise the account after which you are done. Congratz!
+
+<a href="/images/dekko_config_1.png"><img src="/images/dekko_config_1.png" width=200/></a>
+<a href="/images/dekko_config_2.png"><img src="/images/dekko_config_2.png" width=200/></a>
+<a href="/images/dekko_config_3.png"><img src="/images/dekko_config_3.png" width=200/></a>
+<a href="/images/dekko_config_4.png"><img src="/images/dekko_config_4.png" width=200/></a>
diff --git a/images/dekko-app.png b/images/dekko-app.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f7a75a627ac8c2f2fcfce0d7a61467124190a6d
GIT binary patch
literal 6966
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
Bxo7|Y

literal 0
HcmV?d00001

diff --git a/images/dekko_config_1.png b/images/dekko_config_1.png
new file mode 100755
index 0000000000000000000000000000000000000000..f30146f287fa10b76f85084db9a19e5804cbcd9d
GIT binary patch
literal 84838
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
A-T(jq

literal 0
HcmV?d00001

diff --git a/images/dekko_config_2.png b/images/dekko_config_2.png
new file mode 100755
index 0000000000000000000000000000000000000000..28596b16f9b65e4ae3badf73ee3ca3c961ce0224
GIT binary patch
literal 99372
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
Fe*ohq!-)U@

literal 0
HcmV?d00001

diff --git a/images/dekko_config_3.png b/images/dekko_config_3.png
new file mode 100755
index 0000000000000000000000000000000000000000..670635933352c0376d5ba0937cac0b57e34b554f
GIT binary patch
literal 158329
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%0A!e+b2=<MXCnaT)A9tmCB)xH3T
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

literal 0
HcmV?d00001

diff --git a/images/dekko_config_4.png b/images/dekko_config_4.png
new file mode 100755
index 0000000000000000000000000000000000000000..bf4b26d12667adf04987489ac087248c600139cc
GIT binary patch
literal 150527
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

literal 0
HcmV?d00001

diff --git a/write_documentation.md b/write_documentation.md
index 3f052067..3bfa3a26 100644
--- a/write_documentation.md
+++ b/write_documentation.md
@@ -6,12 +6,16 @@ This site allows to edit content directly online.
 
 You can edit any page by pressing `ESC` on your keyboard or by clicking the "Edit" button on the bottom-right side of your screen. You will be able to preview your changes by pressing `ESC` again or by clicking the "preview" button.
 
+To create a new page, you can enter the URL and edit the page from there.
+
 Once edited, you are able to submit your change by filling an email address.
 
 ## Via GitHub
 
 The YunoHost documentation is managed through a [git repository](https://github.com/YunoHost/doc). You can send pull-requests.
 
+Because the online editor doesn't support uploading files, using git is the prefered way if you need to upload media (e.g. images).
+
 ## Syntax
 
 This page uses the markdown syntax, please refer to the [documentation](https://guides.github.com/features/mastering-markdown/) for further information.

From 53b94280588294b6fca6543ca95f2c0b120e0ab1 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 4 Nov 2019 22:04:20 +0100
Subject: [PATCH 249/360] Propagate Kaidan to french page

---
 XMPP_fr.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/XMPP_fr.md b/XMPP_fr.md
index e38c6300..594f2151 100644
--- a/XMPP_fr.md
+++ b/XMPP_fr.md
@@ -36,6 +36,7 @@ Il existe différents types de clients pour se connecter à XMPP.
 * [Conversations](https://conversations.im/) (Android)
 * [Movim sous Android](https://movim.eu)
 * [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
+- [Kaidan](https://github.com/KaidanIM/Kaidan) (Ubuntu Touch / Plasma Mobile)
 
 Voici une liste plus exhaustive des clients XMPP : https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP
 

From 2fa8c796c9292dc20a066ab1bdff283e3af60739 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 4 Nov 2019 22:06:46 +0100
Subject: [PATCH 250/360] Propagate Dekko instructions to french page

---
 email_configure_client_fr.md | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/email_configure_client_fr.md b/email_configure_client_fr.md
index 81bd37bd..8e6cd5b4 100644
--- a/email_configure_client_fr.md
+++ b/email_configure_client_fr.md
@@ -30,3 +30,14 @@ Suivez les instructions suivantes. (Comme pour Thunderbird, il vous faudra peut-
 <a href="/images/k9mail_config_2.png"><img src="/images/k9mail_config_2.png" width=200/></a>
 <a href="/images/k9mail_config_3.png"><img src="/images/k9mail_config_3.png" width=200/></a>
 <a href="/images/k9mail_config_4.png"><img src="/images/k9mail_config_4.png" width=200/></a>
+
+### <img src="images/dekko-app.png" width=50> Configure Dekko (on Ubuntu Touch)
+
+La première fois, vous pouvez simplement choisir "Ajouter un compte". Si vous avez déjà un compte configuré, appuyez sur le menu hamburger puis sur le rouage, choisissez Courrier, Comptes et appuyez sur le symbole " + ".
+
+Sélectionnez ensuite IMAP. Remplissez les champs et appuyez sur Suivant. Dekko va ensuite chercher la configuration. Vérifiez que tous les champs sont corrects. Assurez-vous d'avoir votre nom d'utilisateur yunohost, PAS votre adresse e-mail et choisissez "Autoriser les certificats non fiables". Faites ceci pour IMAP et SMTP et appuyez sur Suivant. Dekko va ensuite synchroniser le compte après quoi vous aurez terminé. Félicitations !
+
+<a href="/images/dekko_config_1.png"><img src="/images/dekko_config_1.png" width=200/></a>
+<a href="/images/dekko_config_2.png"><img src="/images/dekko_config_2.png" width=200/></a>
+<a href="/images/dekko_config_3.png"><img src="/images/dekko_config_3.png" width=200/></a>
+<a href="/images/dekko_config_4.png"><img src="/images/dekko_config_4.png" width=200/></a>

From bda187f6feb0b08339a5dda4dcbfe0b9a834756c Mon Sep 17 00:00:00 2001
From: Laurent Peuch <cortex@worlddomination.be>
Date: Thu, 7 Nov 2019 18:08:24 +0100
Subject: [PATCH 251/360] [mod] use discours real url for news

---
 news.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/news.md b/news.md
index 3af75ddd..a3975fc3 100644
--- a/news.md
+++ b/news.md
@@ -29,8 +29,7 @@ blockquote > p {
 <script>
 $(document).ready(function() {
     // FIXME, we need to enable CORS on forum.yunohost.org
-    // $.get("https://forum.yunohost.org/c/announcement.rss").success(function(data) {
-    $.get("/_pages/announcement.rss").success(function(data) {
+    $.get("https://forum.yunohost.org/c/announcement.rss").success(function(data) {
         $(data).find("item").each(function(_, item) {
             var description = $(item).find("description");
             // yes this is a NIGHTMARE

From ef277e21a9f035714a6783d82c10990e4c00b04e Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Fri, 8 Nov 2019 15:13:34 +0000
Subject: [PATCH 252/360] =?UTF-8?q?Bonjour=20je=20viens=20de=20tester=20su?=
 =?UTF-8?q?r=20mon=20instance=20et=20j&#39;ai=20du=20cr=C3=A9er=20le=20r?=
 =?UTF-8?q?=C3=A9pertoire=20pour=20que=20=C3=A7a=20marche=20=3D)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 backup_fr.md | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/backup_fr.md b/backup_fr.md
index 1b3e0bc2..aa556b13 100644
--- a/backup_fr.md
+++ b/backup_fr.md
@@ -107,14 +107,16 @@ Ensuite, **à la place de** `yunohost tools postinstall`, réalisez la restaurat
 yunohost backup restore <nom_d'archive>
 ```
 
-Note: si votre archive n'est pas dans `/home/yunohost.backup/archives`, vous pouvez spécifier où elle se trouve comme ceci :
+Note: si votre archive n'est pas dans `/home/yunohost.backup/archives`, vous pouvez créer le répertoire et déplacer l'archive comme ceci :
 
 ```bash
-yunohost backup restore /path/to/<archivename>
+mkdir /home/yunohost.backup
+mkdir /home/yunohost.backup/archives
+mv /path/to/<archivename> /home/yunohost.backup/archives/
+yunohost backup restore <nom_d'archive>
 ``` 
 
 
-
 Pour aller plus loin
 --------------------
 

From fbc4e767aa21bd89a945e88167ebc4c33a954e13 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 8 Nov 2019 16:18:38 +0100
Subject: [PATCH 253/360] Propagate to english page

---
 backup.md | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/backup.md b/backup.md
index 4ed38931..e69b5771 100644
--- a/backup.md
+++ b/backup.md
@@ -106,10 +106,12 @@ One specific feature is the ability to restore a full archive *instead* of the p
 yunohost backup restore <archivename>
 ```
 
-Note: If your archive isn't in `/home/yunohost.backup/archives`, you can specify where it is like this :
+Note: If your archive isn't in `/home/yunohost.backup/archives`, you can create the directory, move the archive into it, and restore it like this:
 
 ```bash
-yunohost backup restore /path/to/<archivename>
+mkdir -p /home/yunohost.backup/archives
+mv /path/to/<archivename> /home/yunohost.backup/archives/
+yunohost backup restore <archivename>
 ``` 
 
 ## To go futher

From 489ae9a38180bde8820fa939a33bc9581a95bd81 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 8 Nov 2019 16:32:40 +0100
Subject: [PATCH 254/360] Improve instructions

---
 backup_fr.md | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/backup_fr.md b/backup_fr.md
index aa556b13..a76077de 100644
--- a/backup_fr.md
+++ b/backup_fr.md
@@ -110,9 +110,8 @@ yunohost backup restore <nom_d'archive>
 Note: si votre archive n'est pas dans `/home/yunohost.backup/archives`, vous pouvez créer le répertoire et déplacer l'archive comme ceci :
 
 ```bash
-mkdir /home/yunohost.backup
-mkdir /home/yunohost.backup/archives
-mv /path/to/<archivename> /home/yunohost.backup/archives/
+mkdir -p /home/yunohost.backup/archives
+mv /chemin/vers/<nom_d'archive> /home/yunohost.backup/archives/
 yunohost backup restore <nom_d'archive>
 ``` 
 

From b26536a94447eb61323f4547e9f12c9bdc043754 Mon Sep 17 00:00:00 2001
From: Wingysam <wingysam@gmail.com>
Date: Mon, 11 Nov 2019 08:37:51 -0500
Subject: [PATCH 255/360] Burn or Copy ISO: Change dd instructions from
 /dev/sdb to /dev/sdz

---
 burn_or_copy_iso.md    | 4 ++--
 burn_or_copy_iso_fr.md | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/burn_or_copy_iso.md b/burn_or_copy_iso.md
index 13e365b8..f24af473 100644
--- a/burn_or_copy_iso.md
+++ b/burn_or_copy_iso.md
@@ -28,10 +28,10 @@ Put your USB stick on, select your YunoHost ISO and click "OK"
 ### With `dd`
 
 If you know your way around command line, you may also flash your USB stick with
-`dd`. Assuming your USB stick is `/dev/sdb` (be careful !!), you may run :
+`dd`. Assuming your USB stick is `/dev/sdz` (be careful !!), you may run :
 
 ```bash
-dd if=/path/to/yunohost.iso of=/dev/sdb
+dd if=/path/to/yunohost.iso of=/dev/sdz
 ```
 
 ---
diff --git a/burn_or_copy_iso_fr.md b/burn_or_copy_iso_fr.md
index 4fd5aab6..c2849fbe 100644
--- a/burn_or_copy_iso_fr.md
+++ b/burn_or_copy_iso_fr.md
@@ -28,11 +28,11 @@ Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'OK'
 ### Avec `dd`
 
 Si vous êtes familier avec la ligne de commande, il est possible de flasher la
-clef USB avec `dd`. En supposant que votre clef USB soit `/dev/sdb` (faites
+clef USB avec `dd`. En supposant que votre clef USB soit `/dev/sdz` (faites
 attention !!), vous pouvez exécuter :
 
 ```bash
-dd if=/chemin/de/yunohost.iso of=/dev/sdb
+dd if=/chemin/de/yunohost.iso of=/dev/sdz
 ```
 
 ---

From 6b6e9a9eed2a27ded10dbd23dd2065dac7e8a8fc Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 17 Nov 2019 18:15:26 +0000
Subject: [PATCH 256/360] =?UTF-8?q?J&#39;ai=20indiqu=C3=A9=20le=20lien=20v?=
 =?UTF-8?q?ers=20le=20t=C3=A9l=C3=A9chargement=20de=20la=20Raspbian=20Stre?=
 =?UTF-8?q?tch=20Lite,=20car=20il=20n&#39;y=20=C3=A9tait=20plus!?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 install_on_raspberry_fr.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/install_on_raspberry_fr.md b/install_on_raspberry_fr.md
index beb34373..3290b24f 100644
--- a/install_on_raspberry_fr.md
+++ b/install_on_raspberry_fr.md
@@ -45,7 +45,8 @@ Nous déconseillons l'installation manuelle car elle est plus technique et plus
 Les dernières versions de Raspbian nécessitent un écran et un clavier, car il n'est plus possible de se connecter directement en SSH au Raspberry par défaut. Néanmoins, il est possible de réactiver le lancement de SSH au boot : il suffit de placer dans la partition boot de la carte SD un fichier nommé `ssh`, vide et sans extension.
 </div>
 
-0. Installez Raspbian Stretch Lite ([instructions](https://www.raspberrypi.org/downloads/raspbian/)) sur la carte SD.
+0. Installez Raspbian Stretch Lite ([instructions](https://www.raspberrypi.org/downloads/raspbian/)) sur la carte SD. 
+Le lien vers la Raspbian Stretch Lite est ici: https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-04-09/
 
 1. Connectez-vous en ssh au Raspberry Pi avec l'utilisateur pi. Définissez un mot de passe root avec 
 ```bash

From 99d4c7db6077cc8a46cac66aa7f795110f5b0c7e Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 17 Nov 2019 20:10:59 +0100
Subject: [PATCH 257/360] Propagate change to english version

---
 install_on_raspberry.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install_on_raspberry.md b/install_on_raspberry.md
index a6f0090f..fa204721 100644
--- a/install_on_raspberry.md
+++ b/install_on_raspberry.md
@@ -45,7 +45,7 @@ We do not recommend the manual installation because it is more technical and lon
 The latest Rasbpian images requires a screen and a keyboard, as it is no longer possible to connect directly to the Raspberry through SSH. Nevertheless it is possible to re-enable SSH at boot : before starting your Raspberry, put in the boot partition of the SD card an empty file named `ssh` (without extension).
 </div>
 
-0. Install Raspbian Stretch Lite on the SD card ([instructions](https://www.raspberrypi.org/downloads/raspbian/)).
+0. Install Raspbian Stretch Lite on the SD card ([instructions](https://www.raspberrypi.org/downloads/raspbian/)). The Raspbian Stretch Lite can be found here: https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-04-09/
 
 1. Connect to your Raspberry Pi with the user `pi`. Set the root password with 
 ```bash

From 51a04bbeb3dfb1b5c1212df15aebb9ea5c722539 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 21 Nov 2019 07:10:30 +0000
Subject: [PATCH 258/360] Added command to set the new domain as the main
 domain

---
 dns_nohost_me.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dns_nohost_me.md b/dns_nohost_me.md
index 3f0a0b71..2452f9fc 100644
--- a/dns_nohost_me.md
+++ b/dns_nohost_me.md
@@ -48,6 +48,9 @@ yunohost dyndns subscribe -d whateveryouwant.nohost.me
 
 # Update the DNS conf
 yunohost dyndns update
+
+# Set it as the main domain
+yunohost tools maindomain --new-domain whateveryouwant.nohost.me
 ```
 
 #### Retrieve a nohost.me, noho.st or ynh.fr domain

From 997b6b61c7d7ceb8724ce1becb67b20a73e91fa3 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Tue, 26 Nov 2019 14:35:41 +0000
Subject: [PATCH 259/360] Adding &#34;Rolisteam&#34;

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index cb9d06b5..44bb611c 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -106,6 +106,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
 - [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
 - [Radarr](https://github.com/Radarr/Radarr)
+- [Rolisteam server](http://www.rolisteam.org/) / [github](https://github.com/Rolisteam/rolisteam)
 - [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
 - [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
 - [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)

From 40b4a0a70d1a980334a45ecc4dfbb71cb216f708 Mon Sep 17 00:00:00 2001
From: tituspijean <tituspijean@outlook.com>
Date: Thu, 28 Nov 2019 20:56:20 +0100
Subject: [PATCH 260/360] [add] non-latin characters in domain names

Based on [this thread](https://forum.yunohost.org/t/my-umlaut-broke-my-instance/9666).
---
 domains.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/domains.md b/domains.md
index 31f724a5..f9527a1d 100644
--- a/domains.md
+++ b/domains.md
@@ -9,6 +9,11 @@ The domain chosen during the postinstall is defined as the main domain of the se
 
 Finally, take note that, in the context of YunoHost, there is no hierarchy between the domains it knows. In the previous example, you may add a third domain `foo.yolo.com` - but it would be considered as a domain independent of `yolo.com`.
 
+Non-latin characters
+-----------------
+
+If your domain has special, non-latin characters, you need to use its [internationalized version](https://en.wikipedia.org/wiki/Internationalized_domain_name) through [Punycode](https://en.wikipedia.org/wiki/Punycode). You can use [this converter](https://www.charset.org/punycode), and use the converted domain name in your YunoHost configuration. 
+
 DNS configuration
 -----------------
 

From cf8b681496098bf0ba31a2ea9ba5886083484618 Mon Sep 17 00:00:00 2001
From: tituspijean <tituspijean@outlook.com>
Date: Thu, 28 Nov 2019 21:01:49 +0100
Subject: [PATCH 261/360] [add] non-latin characters in domain names _fr

---
 domains_fr.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/domains_fr.md b/domains_fr.md
index d58fcd35..862466ce 100644
--- a/domains_fr.md
+++ b/domains_fr.md
@@ -9,6 +9,11 @@ Le domaine choisi lors de la postinstall est défini comme le domaine principal
 
 Enfin, il faut noter que, dans le contexte de YunoHost, il n'y a pas de hiérarchie entre les domaines qu'il connaît. Dans l'exemple précédent, on peut ajouter un troisième domaine `foo.yolo.com` - mais il serait considéré comme un domaine indépendant de `yolo.com`.
 
+Caractères non latins
+-----------------
+
+Si votre domain contient des caractères spéciaux, non latins, vous devez utiliser sa [version internationalisée](https://fr.wikipedia.org/wiki/Nom_de_domaine_internationalis%C3%A9) en [Punycode](https://fr.wikipedia.org/wiki/Punycode). Vous pouvez utiliser [ce convertisseur](hhttps://www.charset.org/punycode), et utiliser le nom de domaine converti dans YunoHost.
+
 Configuration DNS
 -----------------
 

From d0f2bfd189c2a7d53b3016cd0dbf29c4aa7f050a Mon Sep 17 00:00:00 2001
From: Gofannon <17145502+Gofannon@users.noreply.github.com>
Date: Thu, 28 Nov 2019 21:20:03 +0100
Subject: [PATCH 262/360] Typo

---
 domains_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/domains_fr.md b/domains_fr.md
index 862466ce..b4dd22bc 100644
--- a/domains_fr.md
+++ b/domains_fr.md
@@ -12,7 +12,7 @@ Enfin, il faut noter que, dans le contexte de YunoHost, il n'y a pas de hiérarc
 Caractères non latins
 -----------------
 
-Si votre domain contient des caractères spéciaux, non latins, vous devez utiliser sa [version internationalisée](https://fr.wikipedia.org/wiki/Nom_de_domaine_internationalis%C3%A9) en [Punycode](https://fr.wikipedia.org/wiki/Punycode). Vous pouvez utiliser [ce convertisseur](hhttps://www.charset.org/punycode), et utiliser le nom de domaine converti dans YunoHost.
+Si votre domain contient des caractères spéciaux, non latins, vous devez utiliser sa [version internationalisée](https://fr.wikipedia.org/wiki/Nom_de_domaine_internationalis%C3%A9) en [Punycode](https://fr.wikipedia.org/wiki/Punycode). Vous pouvez utiliser [ce convertisseur](https://www.charset.org/punycode), et utiliser le nom de domaine converti dans YunoHost.
 
 Configuration DNS
 -----------------

From e1d9ff9073f825e97ca64ff6572d1f99fe910c2b Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 29 Nov 2019 17:19:14 +0100
Subject: [PATCH 263/360] Propagate to french version

---
 dns_nohost_me_fr.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dns_nohost_me_fr.md b/dns_nohost_me_fr.md
index 8183af16..a4d9d913 100644
--- a/dns_nohost_me_fr.md
+++ b/dns_nohost_me_fr.md
@@ -39,6 +39,9 @@ yunohost dyndns subscribe -d cequevousvoulez.nohost.me
 
 # Mettre à jour la configuration DNS
 yunohost dyndns update
+
+# Le définir comme nouveau domain principal
+yunohost tools maindomain --new-domain whateveryouwant.nohost.me
 ```
 
 ### Récupérer un domaine nohost.me, noho.st ou ynh.fr

From 6baa1f5b17da37775cb70a9c5a809b45b11a12d7 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 29 Nov 2019 17:20:47 +0100
Subject: [PATCH 264/360] Update faq.md

---
 faq.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/faq.md b/faq.md
index 62781ad5..bd38b583 100644
--- a/faq.md
+++ b/faq.md
@@ -10,7 +10,7 @@ YunoHost is based on Debian, so on Debian's components' licenses.
 Applications and applications packages have their own licenses.
 
 
-#### What YunoHosts' goal?
+#### What's YunoHost goal?
 
 We believe that decentralizing the Internet, and empowering people to take control and
 responsability back over their own data and services, is a crucial issue to guarantee
@@ -64,7 +64,7 @@ or stickers :P).
 Considering that a few contributors are investing a large amount of time in the
 project, we are thinking about ways to make the project sustainable.
 
-This could be achieved via donations, crowdfunding, and a few contributors
+This could be achieved via donations, grants, and a few contributors
 have professional activities related to YunoHost.
 
 

From 0a2ce43992a5a6f18c0a5056205ca883cb81e50c Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 29 Nov 2019 17:23:02 +0100
Subject: [PATCH 265/360] Propagate
 https://github.com/YunoHost/yunohost/pull/855

---
 groups_and_permissions.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index e1ff2932..443d977c 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -134,7 +134,7 @@ By default, installing an app creates the permission `app.main` with `all_users`
 If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special groups `visitors`:
 
 ```bash
-ynh_permission_update --permission "main" --remove "all_users" --add "visitors"
+ynh_permission_update --permission "main" --add "visitors"
 ```
 
 If you wish to create a custom permission for your app (e.g. to restrict access to an admin interface) you may use the following helpers:

From 5ad3108c549d61a74ad893426ed9c2be0d931947 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Fri, 29 Nov 2019 18:19:53 +0000
Subject: [PATCH 266/360] I added a line for https://easyappointments.org/

---
 apps_wishlist.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 44bb611c..39124308 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -29,6 +29,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
+- [EasyAppointments](https://easyappointments.org/) Online appointment booker (similar to Doodle)
 - [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
 - [Emoncms](https://github.com/emoncms/emoncms)
 - [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
@@ -106,7 +107,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [qBittorrent](https://github.com/qbittorrent/qBittorrent)
 - [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
 - [Radarr](https://github.com/Radarr/Radarr)
-- [Rolisteam server](http://www.rolisteam.org/) / [github](https://github.com/Rolisteam/rolisteam)
 - [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
 - [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
 - [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)

From 2aaec3ce3494e694d9c84afc0bc59cbe4ea40465 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sat, 30 Nov 2019 21:32:47 +0000
Subject: [PATCH 267/360] Typo inpacter ->impacter

---
 packaging_apps_trap_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_trap_fr.md b/packaging_apps_trap_fr.md
index aff67345..0ad71544 100644
--- a/packaging_apps_trap_fr.md
+++ b/packaging_apps_trap_fr.md
@@ -36,7 +36,7 @@ Ou ignorer complètement les signaux de sorties concernés.
 trap "" ERR
 ```
 
-Dans ce dernier cas, le signal d'interruption n'aura aucun effet sur le shell. Cela peux être utile pour une commande dont la sortie en erreur ne doit pas inpacter le déroulement du script d'installation.
+Dans ce dernier cas, le signal d'interruption n'aura aucun effet sur le shell. Cela peux être utile pour une commande dont la sortie en erreur ne doit pas impacter le déroulement du script d'installation.
 
 ### Stopper le script d'installation et nettoyer avant de quitter.
 En cas d'erreur du script d'installation, trap doit nous permettre de stopper l'installation, puis de nettoyer les fichiers résiduels partiellement installés avant de quitter le script.

From 51e4dccf21cb0ff4f9c33769634b2274bc7c43b6 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 5 Dec 2019 21:07:44 +0000
Subject: [PATCH 268/360] Added Gancio - a shared agenda for local communities
 (with activitypub support)

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 44bb611c..5dfff59f 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -37,6 +37,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
 - [Fossil](http://www.fossil-scm.org)
 - [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
+- [Gancio](https://gancio.org/) / [framagit](https://framagit.org/les/gancio)
 - [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
 - [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
 - [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)

From 969a1446c49d32e1acc5ce272348692b38aff2ff Mon Sep 17 00:00:00 2001
From: toitoinebzh <toitoinebzh@laposte.net>
Date: Sat, 7 Dec 2019 21:36:09 +0100
Subject: [PATCH 269/360] add doc for fluxbb

---
 app_fluxbb.md    | 7 +++++++
 app_fluxbb_fr.md | 5 +++++
 2 files changed, 12 insertions(+)
 create mode 100644 app_fluxbb.md
 create mode 100644 app_fluxbb_fr.md

diff --git a/app_fluxbb.md b/app_fluxbb.md
new file mode 100644
index 00000000..01ad77cc
--- /dev/null
+++ b/app_fluxbb.md
@@ -0,0 +1,7 @@
+#FluxBB
+
+FluxBB is fast, light, user-friendly forum software for your website.
+
+FluxBB is designed as a lighter, faster alternative to some of the traditional feature heavy forum applications. It is easy to use and has a proven track record of stability and security making it an ideal choice of forum for your website.
+
+[Website](https://fluxbb.org/)
\ No newline at end of file
diff --git a/app_fluxbb_fr.md b/app_fluxbb_fr.md
new file mode 100644
index 00000000..2c20f2ae
--- /dev/null
+++ b/app_fluxbb_fr.md
@@ -0,0 +1,5 @@
+#FluxBB
+
+FluxBB est un forum de discussions écrit en PHP rapide et léger.
+
+[Site internet](https://fluxbb.org/)
\ No newline at end of file

From e12a1a32b4dba64490d0172f93b78147ff335e2f Mon Sep 17 00:00:00 2001
From: toitoinebzh <toitoinebzh@laposte.net>
Date: Sat, 7 Dec 2019 21:44:31 +0100
Subject: [PATCH 270/360] add doc for blogotext

---
 app_blogotext.md    | 11 +++++++++++
 app_blogotext_fr.md | 11 +++++++++++
 2 files changed, 22 insertions(+)
 create mode 100644 app_blogotext.md
 create mode 100644 app_blogotext_fr.md

diff --git a/app_blogotext.md b/app_blogotext.md
new file mode 100644
index 00000000..d60c73f9
--- /dev/null
+++ b/app_blogotext.md
@@ -0,0 +1,11 @@
+#BlogoText
+
+This is BlogoText, the lightweight SQLite Blog-Engine.
+Features
+
+  * Blog with comments and RSS feeds
+  * Links sharing
+  * RSS Reader
+  * Images/Files uploading and sharing
+  * JSON/ZIP/HTML import-export; WordPress import
+  * Support Addons
diff --git a/app_blogotext_fr.md b/app_blogotext_fr.md
new file mode 100644
index 00000000..00aa4782
--- /dev/null
+++ b/app_blogotext_fr.md
@@ -0,0 +1,11 @@
+#BlogoText
+
+Ceci est BlogoText, un moteur de blog léger.
+Caractéristiques
+
+  * Blog avec commentaires et flux RSS
+  * Partage de liens
+  * Lecteur RSS
+  * Téléversement et partage d'images/fichiers
+  * import-export au format JSON/ZIP/HTML; import WordPress 
+  * Support Addons

From 133b18a97d57df20b4c5d78062657768bbf1c0d7 Mon Sep 17 00:00:00 2001
From: toitoinebzh <toitoinebzh@laposte.net>
Date: Sat, 7 Dec 2019 21:48:17 +0100
Subject: [PATCH 271/360] add doc for webtrees

---
 app_webtrees.md    | 8 ++++++++
 app_webtrees_fr.md | 7 +++++++
 2 files changed, 15 insertions(+)
 create mode 100644 app_webtrees.md
 create mode 100644 app_webtrees_fr.md

diff --git a/app_webtrees.md b/app_webtrees.md
new file mode 100644
index 00000000..d3c9e776
--- /dev/null
+++ b/app_webtrees.md
@@ -0,0 +1,8 @@
+#Webtrees
+
+webtrees is the web's leading online collaborative genealogy application.
+
+  * It works from standard GEDCOM files, and is therefore compatible with every major desktop application.
+  * It aims to to be efficient and effective by using the right combination of third-party tools, design techniques and open standards.
+
+webtrees allows you to view and edit your genealogy on your website. It has full editing capabilities, full privacy functions, and supports imedia such as photos and document images. As an online program, it fosters extended family participation and good ancestral recording habits, as it simplifies the process of collaborating with others working on your family lines. Your latest information is always on your web site and available for others to see, defined by viewing rules you set.
\ No newline at end of file
diff --git a/app_webtrees_fr.md b/app_webtrees_fr.md
new file mode 100644
index 00000000..ca030140
--- /dev/null
+++ b/app_webtrees_fr.md
@@ -0,0 +1,7 @@
+#Webtrees
+
+webtrees est le chef de file sur le Web des logiciels de généalogie conversationnels en ligne. C'est un logiciel Open Source et il coûte zéro $ - oui, totalement GRATUIT !
+
+Vous n'avez besoin que d'un serveur web avec PHP et MySQL.
+
+Il exploite les fichiers de généalogie au format GEDCOM standard, par conséquent, il est compatible avec toutes les applications de bureau majeures; il vise à être efficient et efficace en utilisant la bonne combinaison d'outils tiers, des techniques de conception et des normes d'ouverture standards.
\ No newline at end of file

From 6a420a0933f54ffc035c35db930ce7eec221bf5a Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 9 Dec 2019 14:56:25 +0000
Subject: [PATCH 272/360] Add Gancio

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 44bb611c..5dfff59f 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -37,6 +37,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
 - [Fossil](http://www.fossil-scm.org)
 - [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
+- [Gancio](https://gancio.org/) / [framagit](https://framagit.org/les/gancio)
 - [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
 - [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
 - [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)

From fe97dc2ca68349ae6ab357c8ff3a538f31d9f56d Mon Sep 17 00:00:00 2001
From: Eauchat <34686393+eauchat@users.noreply.github.com>
Date: Wed, 11 Dec 2019 12:15:49 +0000
Subject: [PATCH 273/360] Added couchdb and transpay

---
 apps_wishlist.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 5dfff59f..48b26b63 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -25,6 +25,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Cockpit](http://cockpit-project.org/)
 - [Commafeed](https://github.com/Athou/commafeed)
 - [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)
+- [Couchdb](https://couchdb.apache.org/) databases creation and management
 - [Cozy](https://github.com/cozy)
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
@@ -127,6 +128,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
 - [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
 - [Tracim](https://github.com/tracim/tracim)
+- [Transpay](https://gitlab.kokakiwi.net/transposees/transpay)  receive and manage donations
 - [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
 - [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
 - [Volumio](https://volumio.org) / [github](https://github.com/volumio)

From 26a6434e723297d155757e60c474cb514beee50b Mon Sep 17 00:00:00 2001
From: Thatoo <Thatoo@users.noreply.github.com>
Date: Wed, 11 Dec 2019 16:26:47 +0100
Subject: [PATCH 274/360] Add Epicyon

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 5dfff59f..a11b8b23 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -33,6 +33,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Emoncms](https://github.com/emoncms/emoncms)
 - [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
 - [EteSync](https://www.etesync.com/) / [github](https://github.com/etesync)
+- [Epicyon](https://epicyon.net/) / [gitlab](https://gitlab.com/bashrc2/epicyon)
 - [FEX](http://fex.rus.uni-stuttgart.de/)
 - [FitTrackee](https://github.com/SamR1/FitTrackee)
 - [Fossil](http://www.fossil-scm.org)

From 9becedeb98deaf96d921595edc154a3a7e3bf2cd Mon Sep 17 00:00:00 2001
From: Eauchat <34686393+eauchat@users.noreply.github.com>
Date: Wed, 11 Dec 2019 23:26:51 +0000
Subject: [PATCH 275/360] Removed transpay

Sorry, I don't know how I managed to miss that transpay is already packaged for yunohost :)
---
 apps_wishlist.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 48b26b63..4481ff97 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -128,7 +128,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
 - [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
 - [Tracim](https://github.com/tracim/tracim)
-- [Transpay](https://gitlab.kokakiwi.net/transposees/transpay)  receive and manage donations
 - [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
 - [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
 - [Volumio](https://volumio.org) / [github](https://github.com/volumio)

From deb57787c70729de05bd0dd61d7159df94f08a86 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 16 Dec 2019 23:28:49 +0000
Subject: [PATCH 276/360] Hi, i have suggested adding the Citadel groupware
 platform to the yunohost pantheon. I am in no doubt it would be a perfect
 platform for home hosting.

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a11b8b23..2cb46705 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -22,6 +22,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [btcpayserver](https://github.com/btcpayserver/btcpayserver)
 - [cgit](http://git.zx2c4.com/cgit/about)
 - [CheckUp](https://sourcegraph.github.io/checkup) / [github](https://github.com/sourcegraph/checkup)
+- [citadel-suite - Debian](https://packages.debian.org/stretch/citadel-suite) / [citadel easyinstall - citadel.org](http://www.citadel.org/doku.php?id=installation:easyinstall:easyinstall) Citadel is a complete and feature-rich open source groupware platform. Directly descending from a well known C/PM BBS system, it has a venerable [history](http://www.citadel.org/doku.php?id=documentation:citadel_past_present_and_future#citadel.past.present.and.future)
 - [Cockpit](http://cockpit-project.org/)
 - [Commafeed](https://github.com/Athou/commafeed)
 - [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)

From 7908abaf82a1e7c5e889f246642979b7cf28a9a1 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Tue, 17 Dec 2019 12:58:34 +0000
Subject: [PATCH 277/360] Added Thredded forum server

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a11b8b23..7344e0f2 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -128,6 +128,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
 - [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
 - [Tracim](https://github.com/tracim/tracim)
+- [Thredded](https://thredded.org/) / [github](https://github.com/thredded/thredded)
 - [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
 - [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
 - [Volumio](https://volumio.org) / [github](https://github.com/volumio)

From bcc080ec8997f0e323df0b02f22a29b0c2d735b2 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Tue, 17 Dec 2019 18:43:03 +0000
Subject: [PATCH 278/360] Added some words to the &#34;Via GitHub&#34; page

---
 write_documentation.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/write_documentation.md b/write_documentation.md
index 3bfa3a26..0d4937f7 100644
--- a/write_documentation.md
+++ b/write_documentation.md
@@ -12,7 +12,7 @@ Once edited, you are able to submit your change by filling an email address.
 
 ## Via GitHub
 
-The YunoHost documentation is managed through a [git repository](https://github.com/YunoHost/doc). You can send pull-requests.
+The YunoHost documentation is managed through a [git repository](https://github.com/YunoHost/doc). You can send pull-requests, and do not forget to report your issues.
 
 Because the online editor doesn't support uploading files, using git is the prefered way if you need to upload media (e.g. images).
 

From 2a1ee687a0a8b4a0468e1435ef845b20ac69d874 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 22 Dec 2019 12:22:59 +0000
Subject: [PATCH 279/360] Corrected some typos

---
 certificate.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/certificate.md b/certificate.md
index aff35a2c..49b514fd 100644
--- a/certificate.md
+++ b/certificate.md
@@ -18,8 +18,8 @@ from the web administration interface or from the command line.
 ### Install a Let's Encrypt certificate
 
 Before attempting to install a Let's Encrypt certificate, you should make sure
-that your DNS is correctly configured (votre.domaine.tld should point to
-your server's IP) and that your domain is accessible though HTTP from outside
+that your DNS is correctly configured (your.domain.tld should point to
+your server's IP) and that your domain is accessible through HTTP from outside
 your local network (i.e. at least port 80 should be forwarded to your server).
 
 #### From the web administration interface

From 875b5081861d5e3ed3c2a678efe0d3b827d466fb Mon Sep 17 00:00:00 2001
From: lops <xhetact@mykolab.com>
Date: Tue, 24 Dec 2019 17:13:18 +0100
Subject: [PATCH 280/360] Avoid confusion with Ynh KeeWeb app

---
 app_nextcloud_keeweb.md    | 2 +-
 app_nextcloud_keeweb_fr.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/app_nextcloud_keeweb.md b/app_nextcloud_keeweb.md
index 75a1e146..85f4adee 100644
--- a/app_nextcloud_keeweb.md
+++ b/app_nextcloud_keeweb.md
@@ -1,4 +1,4 @@
-# The KeeWeb application
+# The KeeWeb application for NextCloud
 
 The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance.
 But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this,
diff --git a/app_nextcloud_keeweb_fr.md b/app_nextcloud_keeweb_fr.md
index 21d25582..76bb8ee5 100644
--- a/app_nextcloud_keeweb_fr.md
+++ b/app_nextcloud_keeweb_fr.md
@@ -1,4 +1,4 @@
-# L'application KeeWeb
+# L'application KeeWeb pour NextCloud
 
 L'application Keeweb sur le catalogue de nextcloud - [apps.nextcloud.com/keeweb](https://apps.nextcloud.com/apps/keeweb)
 

From 710f7b3919c8e6877ff7a832793a79befec175ce Mon Sep 17 00:00:00 2001
From: lops <xhetact@mykolab.com>
Date: Tue, 24 Dec 2019 17:19:47 +0100
Subject: [PATCH 281/360] Change url to main readme + add scan step

---
 app_nextcloud_keeweb.md    | 8 +++++++-
 app_nextcloud_keeweb_fr.md | 6 ++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/app_nextcloud_keeweb.md b/app_nextcloud_keeweb.md
index 85f4adee..a6039426 100644
--- a/app_nextcloud_keeweb.md
+++ b/app_nextcloud_keeweb.md
@@ -2,7 +2,7 @@
 
 The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance.
 But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this,
-[a solution](https://github.com/jhass/nextcloud-keeweb/issues/34) exists.
+[a solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) exists.
 
 Go to the Nextcloud configuration directory:
 
@@ -26,4 +26,10 @@ Then add in this file the following text:
 
 Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
 
+Then run a scan by executing next command as root:
+
+```bash
+sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all
+```
+
 Now the problem is fixed.
diff --git a/app_nextcloud_keeweb_fr.md b/app_nextcloud_keeweb_fr.md
index 76bb8ee5..cded19d4 100644
--- a/app_nextcloud_keeweb_fr.md
+++ b/app_nextcloud_keeweb_fr.md
@@ -29,4 +29,10 @@ Puis ajouter dans ce fichier le texte suivent :
 
 Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
 
+Ensuite lancer un scan en tant que root:
+
+```bash
+sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all
+```
+
 A présent, le problème est corrigé.

From c0c75f976c1c835055377daf726caddce8daacb9 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Wed, 25 Dec 2019 23:42:19 +0000
Subject: [PATCH 282/360] Change Guacamole URL

---
 apps_wishlist.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a11b8b23..621224cd 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -45,7 +45,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Gollum](https://github.com/gollum/gollum)
 - [Goploader](https://github.com/Depado/goploader)
 - [Granary](https://github.com/snarfed/granary)
-- [Guacamole](http://guac-dev.org)
+- [Guacamole](http://guacamole.apache.org/)
 - [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
 - [HackMD CE](https://github.com/hackmdio/hackmd)
 - [Helpy](https://github.com/helpyio/helpy)

From a57e91ed84423af33af1d884027f8a40e2bc3d95 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 30 Dec 2019 09:10:22 +0000
Subject: [PATCH 283/360] Put Joplin on proper alphabetical order

---
 apps_wishlist.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a11b8b23..1213d584 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -56,9 +56,9 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Invoice Ninja](https://www.invoiceninja.com) / [github](https://github.com/invoiceninja/invoiceninja)
 - [InvoicePlane](https://invoiceplane.com) / [github](https://github.com/InvoicePlane/InvoicePlane)
 - [IPFS](https://ipfs.io) / [github](https://github.com/ipfs/ipfs)
-- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
 - [Jellyfin](https://github.com/jellyfin)
 - [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
+- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
 - [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
 - [Known](https://withknown.com) / [github](https://github.com/idno/known)
 - [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)

From 7fb46569fbf2ab99d5bf7849b764ff2a810d52fb Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Tue, 31 Dec 2019 02:50:08 +0000
Subject: [PATCH 284/360] Added Webhooks.site request.

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index a11b8b23..390a5390 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -132,6 +132,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
 - [Volumio](https://volumio.org) / [github](https://github.com/volumio)
 - [WebODF](http://webodf.org) / [github](https://github.com/webodf/WebODF)
+- [Webhook.site](https://docs.webhook.site/) / [github](https://github.com/fredsted/webhook.site)
 - [Wireguard](https://www.wireguard.com/) / [git](https://git.zx2c4.com/WireGuard/)
 - [Xibo](https://github.com/xibosignage) - A FLOSS digital signage solution (CMS?)
 - [Xonotic](http://xonotic.org) / [gitlab](https://gitlab.com/xonotic)

From 9825136c3b8c4305a617190a28a1c69f52cf42de Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 2 Jan 2020 18:37:46 +0000
Subject: [PATCH 285/360] Petite faute de grammaire

---
 packaging_apps_levels_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_levels_fr.md b/packaging_apps_levels_fr.md
index f6bca8d1..843c5f46 100644
--- a/packaging_apps_levels_fr.md
+++ b/packaging_apps_levels_fr.md
@@ -99,7 +99,7 @@ YEP à respecter pour atteindre le niveau 4:
 
 ### Niveau 5
 **L'application ne présente aucune erreur dans [Package linter](https://github.com/YunoHost/package_linter).**  
-*Il peux y avoir des faux positifs dans Package linter. Ces situations seront gérées au cas par cas.*
+*Il peut y avoir des faux positifs dans Package linter. Ces situations seront gérées au cas par cas.*
 
 YEP à respecter pour atteindre le niveau 5:
 - *[YEP 1.3](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-13---indiquer-la-licence-associ%C3%A9e-au-paquet---valid%C3%A9--auto--working-) : Indiquer la licence associée au paquet*

From a23af1db40207f920e941ee010dcf50dca11fdc9 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 2 Jan 2020 23:17:47 +0000
Subject: [PATCH 286/360] i&#39;ve fixed a typo and added additional
 information.

---
 apps_wishlist.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index d92ec047..4da0049b 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -117,7 +117,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
 - [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
 - [ShareLatex](https://www.sharelatex.com) / [github](https://github.com/overleaf/overleaf)
-- [Shleuder](https://schleuder.org/)
+- [Schleuder](https://schleuder.org/schleuder/docs/concept.html)(Schleuder is a gpg-enabled mailing list manager with resending capabilities.)
 - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
 - [smokeping](https://packages.debian.org/buster/smokeping)   / [github](https://github.com/oetiker/SmokePing)
 - [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)

From 694f220cbd625a823b81341ef6b993b0b2737685 Mon Sep 17 00:00:00 2001
From: ljf <ljf+git@grimaud.me>
Date: Sun, 5 Jan 2020 17:51:35 +0100
Subject: [PATCH 287/360] [enh] Add a guide to gain access on a broken yunohost

---
 noaccess_fr.md | 147 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 147 insertions(+)
 create mode 100644 noaccess_fr.md

diff --git a/noaccess_fr.md b/noaccess_fr.md
new file mode 100644
index 00000000..392eb502
--- /dev/null
+++ b/noaccess_fr.md
@@ -0,0 +1,147 @@
+# Récupérer l'accès à son YunoHost
+Si vous avez perdu l'accès à votre YunoHost qui était auparavant fonctionnel, cette page est faite pour vous.
+
+Il existe de nombreuses causes pouvant empécher totalement ou partiellement d'accéder en administrateur à un serveur YunoHost. Dans de nombreux cas, un des moyens d'accès est inaccessible, mais les autres sont fonctionnels.
+
+Cette page va vous aider à diagnostiquer, obtenir un accés et si besoin réparer votre système.
+
+## Liste de causes pouvant empécher l'accès à un serveur YunoHost
+Ci-dessous une liste de causes courantes de pannes:
+
+
+### Vous avez perdu votre mot de passe administrateur
+Si vous arrivez à afficher la page web d'administration (forcer le raffraichissement avec CTRL + F5 pour être sur) et que vous n'arrivez pas à vous connectez. Vous avez probablement un mot de passe érroné.
+
+Dans ce cas, à moins d'avoir un accès root actif (en SSH par exemple) auquel cas vous pouvez changer le mot de passe de l'utilisateur admin, vous allez devoir opérer passer en mode rescue.
+
+### Vous avez une erreur de certificat qui vous empèche d'accéder à la webadmin
+
+Si vous n'avez jamais activé Let's Encrypt ou que vous accéder à la web admin via une IP ou un domaine locale, vous pouvez accepter le certificat invalide exceptionnellement à condition d'être sur une connexion internet sûre (pas avec Tor Browser par exemple).
+
+Pour y parvenir, il faut aller sur la page d'administration web en utilisant la navigation privée, votre navigateur devrait vous autoriser d'ajouter une exception temporaire pour accéder à la page.
+
+### Vous avez accés en SSH mais pas à la Web admin ou inversement
+
+#### Vous avez été banni temporairement
+Votre serveur YunoHost inclu un pare-feu qui banni les IP qui échouent plusieurs fois à se connecter. Dans certains cas, il peut s'agir d'un programme (nextcloud-client) qui est configuré avec un ancien mot de passe ou d'un utilisateur qui utilise la même IP que vous.
+
+Si vous avez été banni en tentant d'accéder à une page web, seul les pages web sont innaccessibles, vous devriez donc pouvoir accéder au serveur en SSH. De même, si vous avez été banni en SSH vous devriez pouvoir accéder à la webadmin.
+
+Si vous avez été banni à la fois en SSH et à la webadmin, vous pouvez essayer d'accéder à votre serveur avec une autre IP, par exemple en utilisant la 4G d'un smartphone ou en utilisant Tor Browser.
+
+NB: le banissement dure en général quelques minutes. Le bannissement n'est actif qu'en IPv4.
+
+#### Vous n'avez plus d'espace disque...
+... et votre serveur web nginx qui distribue les pages de la web admin ou votre serveur SSH ne fonctionne plus.
+
+Pour vérifier si vous avez de l'espace disque, vous pouvez le faire de puis la web admin TODO ou avec la commande `df -h`.
+
+Si une de vos partition est remplie à 100%, il faut identifier ce qui prend de la place sur votre système et faire de la place.
+
+Attention, dans certains cas il peut s'agir d'erreur qui arrive tellement souvent qu'elles remplissent les fichiers de logs et votre système avec.
+
+A partir de la web admin vous pouvez relancer le service SSH. De même en SSH, vous pouvez redémarrer le serveur web nginx avec la commande `yunohost service start nginx`
+
+#### Vous manquez de RAM et n'avez pas de swap
+... et votre serveur web nginx qui distribue les pages de la web admin ou votre serveur SSH a été tués aléatoirement.
+
+Quand votre serveur n'a plus de ram, il est obligé d'écrire sur le disque dans la swap, si il n'y en a pas, dans ce cas il doit tuer un des processus pour faire de l'espace.
+
+Vous pouvez vérifier que vous n'avez plus beaucoup de ram via la web admin ou en SSH via la commande `free -m`.
+
+Pour régler cette situation, vous pouvez soit:
+
+* optimiser votre serveur pour qu'il utilise moins de ram (suppression arrêt de services inutiles)
+* ajouter de la ram
+* ajouter un fichier de swap
+
+A partir de la web admin vous pouvez relancer le service SSH. De même en SSH, vous pouvez redémarrer le serveur web nginx avec la commande `yunohost service start nginx`
+
+#### Vous avez installé une app qui a cassé votre configuration web
+Si vous avez installé une app de mauvaise qualité, celle-ci peut échouer à l'installation et laisser des bouts de configuration qui vont empécher le redémarrage de votre serveur web nginx qui vous permet d'accéder à la web admin.
+
+Dans ce cas, il faut accéder en SSH et essayer de terminer la suppresion de l'app. Si elle est déjà supprimée, il faut enlever manuellement les résidus de configuration.
+
+#### Votre serveur est accessible en IPv6 mais pas en IPv4 ou inversement
+Dans un tel cas, il est possible que vous arriviez à accéder à votre web admin en IPv6 mais pas en SSH potentiellement en IPv4 par défaut...
+
+Dans ce cas il faut résoudre votre problème de connectivité.
+
+Dans certains cas une mise à jour de votre box a activé l'ipv6, entrainant des problèmes de configuration au niveau de votre nom de domaine.
+
+### Votre VPN a expiré ou ne se monte plus
+Si vous utilisez un VPN a IP fixe, peut être que celui-ci est arrivé à expiration ou que l'infrastructure de votre fournisseur est en difficulté.
+
+Dans ce cas, vous pouvez peut être accéder à votre serveur avec son IP locale s'agissant probablement d'un serveur auto-hébergé chez-vous.
+
+Pour connaitre votre ip locale, certaines BOX propose une cartographie du réseau en cours avec les équipements connectés. Sinon, en ligne de commande avec linux:
+```
+sudo arp-scan --local
+```
+
+Vous pouvez aussi essayer avec le domaine `yunohost.local` si il n'y a qu'un seul YunoHost sur votre réseau.
+
+Il faut voir avec votre fournisseur de VPN pour renouveller le VPN et mettre à jour les paramètre de l'app VPN Client.
+
+TODO
+
+### Votre routeur ne redirige plus vers votre serveur
+Si votre routeur a été remis à zéro ou mis à jour, votre configuration de redirection de port pourrait avoir disparu. De même, l'ipv6 ou le hairpining pourrait avoir été activé.
+
+Typiquement si en tapant votre IP publique vous tombez sur votre box, c'est soit le hairpinning soit la redirectiond e port qui est manquante.
+
+### Votre serveur ping avec son IP, mais pas avec le nom de domaine
+#### Votre nom de domaine a expiré
+Si votre nom de domaine expire il ne redirigera plus vers votre serveur. 
+
+Vous pouvez vérifier que votre nom de domaine a expiré en vous connectant sur l'interface de votre registrar ou en utilisant le whois par exemple via la commande `whois NOM_DE_DOMAINE`.
+
+Dans ce cas il faut renouveller le nom de domaine (si ile st encore temps.
+
+#### Votre nom de domaine est mal configuré
+Si votre serveur ping avec son ip mais ne ping pas avec le nom de domaine alors il y a un problème de configuration au niveau du champs A.
+
+Si c'est un nom de domaine fournit par YunoHost, lancez 
+```
+yunohost dyndns update
+```
+
+Si c'est un autre nom de domaine, il faut mettre à jour votre ipv4 et votre ipv6 dans l'interface de votre registrar. 
+
+Attention, si votre IP change régulièrement il faut mettre en place un script qui se lance régulièrement pour mettre à jour votre IP.
+
+#### Votre nom de domaine noho.st, nohost.me, ynh.fr est inacessible suite à une panne de l'infra YunoHost
+Il arrive environ trois fois par an que l'infra de YunoHost soit en panne suite à une coupure de courant ou à un problème d'administration système.
+
+Vérifiez sur le forum si d'autre sont signalez le même problème.
+
+### Vous avez perdu l'accès en IPv4 mais vous avez accès en IPv6 ou inversement
+
+Dans ce cas, il faut tenter d'accéder en SSH avec l'autre IP et essayer de comprendre pourquoi le réseau en IPv4 ou en IPv6 a disparu.
+
+Si ce n'est pas lié à une erreur de configuration réseau sur votre système, il peut être nécessaire d'appeller votre fournisseur de serveur ou d'accès à internet pour vérifier que le problème n'ets pas chez eux.
+
+### Vous avez perdu l'accès en IPv4 (ET en IPv6 le cas échéant)
+Vous pouvez le vérifier en tentant de faire des ping sur votre serveur en IPv4 et en IPv6.
+
+Dans ce cas, vous devriez essayer de brancher un clavier/écran sur votre serveur ou d'y accéder par VNC si c'est un serveur distant.
+
+#### Vous pouvez vous connecter avec l'utilisateur admin et le mot de passe
+A partir de là vous devriez diagnostiquer votre problème réseau le réparer ou si ce n'est pas lié au système contacter le support de votre fournisseur de serveur ou de connexion Internet.
+
+#### Votre serveur est coincé au démarrage
+Dans certains cas, votre serveur peut rester coincer au démarrage. Il peut s'agir d'un problème suite à l'installation d'un nouveau kernel. Essayez de choisir un autre kernel avec VNC ou avec l'écran lors du boot.
+
+Si vous êtes en grub rescue, dans ce cas il peut s'agir d'un problème de configuration de grub ou d'un disque corrompu.
+
+Dans ce cas il faut accéder au disque avec un autre système (mode rescue du fournisseur, live usb, lire la carte SD ou le disque dur avec un autre ordinateur) et essayer de vérifier l'intégrité des partitions avec smartctl, fsck et mount.
+
+Si les disques sont corrompus et difficile à monter, il faut sauvegarder les données et potentiellement refaire un formattage/réinstaller et/ou changer le disque. Si on arrive à monter le disque, il est possible d'utiliser systemd-nspawn pour entrer dans la base de donnée.
+
+Sinon, relancer grub-update et grub-install en chroot ou avec systemd-nspawn.
+
+#### L'accès en VNC ou via écran ne fonctionne pas
+Dans ce cas il peut s'agir d'un problème matèriel sur votre serveur physique ou d'un problème d'hyperviseur si c'est un VPS.
+
+Si c'est une machine loué contacter le support de votre fournisseur. Sinon essayez de dépanner votre machine en retirant les composants qui peuvent être en panne.
+

From 9ae8c9ed82b20fa37040f15ebefbb129f6803c23 Mon Sep 17 00:00:00 2001
From: ljf <ljf+git@grimaud.me>
Date: Sun, 5 Jan 2020 17:59:48 +0100
Subject: [PATCH 288/360] [enh] Remove a title level

---
 noaccess_fr.md | 48 +++++++++++++++++++++++-------------------------
 1 file changed, 23 insertions(+), 25 deletions(-)

diff --git a/noaccess_fr.md b/noaccess_fr.md
index 392eb502..b1309a95 100644
--- a/noaccess_fr.md
+++ b/noaccess_fr.md
@@ -3,26 +3,24 @@ Si vous avez perdu l'accès à votre YunoHost qui était auparavant fonctionnel,
 
 Il existe de nombreuses causes pouvant empécher totalement ou partiellement d'accéder en administrateur à un serveur YunoHost. Dans de nombreux cas, un des moyens d'accès est inaccessible, mais les autres sont fonctionnels.
 
-Cette page va vous aider à diagnostiquer, obtenir un accés et si besoin réparer votre système.
+Cette page va vous aider à diagnostiquer, obtenir un accés et si besoin réparer votre système. Les pannes les plus courrantes sont priorisées de haut en bas. Il vous suffit de tester chaque hypothèse.
 
-## Liste de causes pouvant empécher l'accès à un serveur YunoHost
-Ci-dessous une liste de causes courantes de pannes:
-
-
-### Vous avez perdu votre mot de passe administrateur
+## Vous avez perdu votre mot de passe administrateur
 Si vous arrivez à afficher la page web d'administration (forcer le raffraichissement avec CTRL + F5 pour être sur) et que vous n'arrivez pas à vous connectez. Vous avez probablement un mot de passe érroné.
 
-Dans ce cas, à moins d'avoir un accès root actif (en SSH par exemple) auquel cas vous pouvez changer le mot de passe de l'utilisateur admin, vous allez devoir opérer passer en mode rescue.
+Dans ce cas, à moins d'avoir un accès root actif (en SSH par exemple) auquel cas vous pouvez changer le mot de passe de l'utilisateur admin, vous allez devoir opérer en mode rescue.
 
-### Vous avez une erreur de certificat qui vous empèche d'accéder à la webadmin
+TODO
+
+## Vous avez une erreur de certificat qui vous empèche d'accéder à la webadmin
 
 Si vous n'avez jamais activé Let's Encrypt ou que vous accéder à la web admin via une IP ou un domaine locale, vous pouvez accepter le certificat invalide exceptionnellement à condition d'être sur une connexion internet sûre (pas avec Tor Browser par exemple).
 
 Pour y parvenir, il faut aller sur la page d'administration web en utilisant la navigation privée, votre navigateur devrait vous autoriser d'ajouter une exception temporaire pour accéder à la page.
 
-### Vous avez accés en SSH mais pas à la Web admin ou inversement
+## Vous avez accés en SSH mais pas à la Web admin ou inversement
 
-#### Vous avez été banni temporairement
+### Vous avez été banni temporairement
 Votre serveur YunoHost inclu un pare-feu qui banni les IP qui échouent plusieurs fois à se connecter. Dans certains cas, il peut s'agir d'un programme (nextcloud-client) qui est configuré avec un ancien mot de passe ou d'un utilisateur qui utilise la même IP que vous.
 
 Si vous avez été banni en tentant d'accéder à une page web, seul les pages web sont innaccessibles, vous devriez donc pouvoir accéder au serveur en SSH. De même, si vous avez été banni en SSH vous devriez pouvoir accéder à la webadmin.
@@ -31,7 +29,7 @@ Si vous avez été banni à la fois en SSH et à la webadmin, vous pouvez essaye
 
 NB: le banissement dure en général quelques minutes. Le bannissement n'est actif qu'en IPv4.
 
-#### Vous n'avez plus d'espace disque...
+### Vous n'avez plus d'espace disque...
 ... et votre serveur web nginx qui distribue les pages de la web admin ou votre serveur SSH ne fonctionne plus.
 
 Pour vérifier si vous avez de l'espace disque, vous pouvez le faire de puis la web admin TODO ou avec la commande `df -h`.
@@ -42,7 +40,7 @@ Attention, dans certains cas il peut s'agir d'erreur qui arrive tellement souven
 
 A partir de la web admin vous pouvez relancer le service SSH. De même en SSH, vous pouvez redémarrer le serveur web nginx avec la commande `yunohost service start nginx`
 
-#### Vous manquez de RAM et n'avez pas de swap
+### Vous manquez de RAM et n'avez pas de swap
 ... et votre serveur web nginx qui distribue les pages de la web admin ou votre serveur SSH a été tués aléatoirement.
 
 Quand votre serveur n'a plus de ram, il est obligé d'écrire sur le disque dans la swap, si il n'y en a pas, dans ce cas il doit tuer un des processus pour faire de l'espace.
@@ -57,19 +55,19 @@ Pour régler cette situation, vous pouvez soit:
 
 A partir de la web admin vous pouvez relancer le service SSH. De même en SSH, vous pouvez redémarrer le serveur web nginx avec la commande `yunohost service start nginx`
 
-#### Vous avez installé une app qui a cassé votre configuration web
+### Vous avez installé une app qui a cassé votre configuration web
 Si vous avez installé une app de mauvaise qualité, celle-ci peut échouer à l'installation et laisser des bouts de configuration qui vont empécher le redémarrage de votre serveur web nginx qui vous permet d'accéder à la web admin.
 
 Dans ce cas, il faut accéder en SSH et essayer de terminer la suppresion de l'app. Si elle est déjà supprimée, il faut enlever manuellement les résidus de configuration.
 
-#### Votre serveur est accessible en IPv6 mais pas en IPv4 ou inversement
+### Votre serveur est accessible en IPv6 mais pas en IPv4 ou inversement
 Dans un tel cas, il est possible que vous arriviez à accéder à votre web admin en IPv6 mais pas en SSH potentiellement en IPv4 par défaut...
 
 Dans ce cas il faut résoudre votre problème de connectivité.
 
 Dans certains cas une mise à jour de votre box a activé l'ipv6, entrainant des problèmes de configuration au niveau de votre nom de domaine.
 
-### Votre VPN a expiré ou ne se monte plus
+## Votre VPN a expiré ou ne se monte plus
 Si vous utilisez un VPN a IP fixe, peut être que celui-ci est arrivé à expiration ou que l'infrastructure de votre fournisseur est en difficulté.
 
 Dans ce cas, vous pouvez peut être accéder à votre serveur avec son IP locale s'agissant probablement d'un serveur auto-hébergé chez-vous.
@@ -85,20 +83,20 @@ Il faut voir avec votre fournisseur de VPN pour renouveller le VPN et mettre à
 
 TODO
 
-### Votre routeur ne redirige plus vers votre serveur
+## Votre routeur ne redirige plus vers votre serveur
 Si votre routeur a été remis à zéro ou mis à jour, votre configuration de redirection de port pourrait avoir disparu. De même, l'ipv6 ou le hairpining pourrait avoir été activé.
 
 Typiquement si en tapant votre IP publique vous tombez sur votre box, c'est soit le hairpinning soit la redirectiond e port qui est manquante.
 
-### Votre serveur ping avec son IP, mais pas avec le nom de domaine
-#### Votre nom de domaine a expiré
+## Votre serveur ping avec son IP, mais pas avec le nom de domaine
+### Votre nom de domaine a expiré
 Si votre nom de domaine expire il ne redirigera plus vers votre serveur. 
 
 Vous pouvez vérifier que votre nom de domaine a expiré en vous connectant sur l'interface de votre registrar ou en utilisant le whois par exemple via la commande `whois NOM_DE_DOMAINE`.
 
 Dans ce cas il faut renouveller le nom de domaine (si ile st encore temps.
 
-#### Votre nom de domaine est mal configuré
+### Votre nom de domaine est mal configuré
 Si votre serveur ping avec son ip mais ne ping pas avec le nom de domaine alors il y a un problème de configuration au niveau du champs A.
 
 Si c'est un nom de domaine fournit par YunoHost, lancez 
@@ -110,26 +108,26 @@ Si c'est un autre nom de domaine, il faut mettre à jour votre ipv4 et votre ipv
 
 Attention, si votre IP change régulièrement il faut mettre en place un script qui se lance régulièrement pour mettre à jour votre IP.
 
-#### Votre nom de domaine noho.st, nohost.me, ynh.fr est inacessible suite à une panne de l'infra YunoHost
+### Votre nom de domaine noho.st, nohost.me, ynh.fr est inacessible suite à une panne de l'infra YunoHost
 Il arrive environ trois fois par an que l'infra de YunoHost soit en panne suite à une coupure de courant ou à un problème d'administration système.
 
 Vérifiez sur le forum si d'autre sont signalez le même problème.
 
-### Vous avez perdu l'accès en IPv4 mais vous avez accès en IPv6 ou inversement
+## Vous avez perdu l'accès en IPv4 mais vous avez accès en IPv6 ou inversement
 
 Dans ce cas, il faut tenter d'accéder en SSH avec l'autre IP et essayer de comprendre pourquoi le réseau en IPv4 ou en IPv6 a disparu.
 
 Si ce n'est pas lié à une erreur de configuration réseau sur votre système, il peut être nécessaire d'appeller votre fournisseur de serveur ou d'accès à internet pour vérifier que le problème n'ets pas chez eux.
 
-### Vous avez perdu l'accès en IPv4 (ET en IPv6 le cas échéant)
+## Vous avez perdu l'accès en IPv4 (ET en IPv6 le cas échéant)
 Vous pouvez le vérifier en tentant de faire des ping sur votre serveur en IPv4 et en IPv6.
 
 Dans ce cas, vous devriez essayer de brancher un clavier/écran sur votre serveur ou d'y accéder par VNC si c'est un serveur distant.
 
-#### Vous pouvez vous connecter avec l'utilisateur admin et le mot de passe
+### Vous pouvez vous connecter avec l'utilisateur admin et le mot de passe
 A partir de là vous devriez diagnostiquer votre problème réseau le réparer ou si ce n'est pas lié au système contacter le support de votre fournisseur de serveur ou de connexion Internet.
 
-#### Votre serveur est coincé au démarrage
+### Votre serveur est coincé au démarrage
 Dans certains cas, votre serveur peut rester coincer au démarrage. Il peut s'agir d'un problème suite à l'installation d'un nouveau kernel. Essayez de choisir un autre kernel avec VNC ou avec l'écran lors du boot.
 
 Si vous êtes en grub rescue, dans ce cas il peut s'agir d'un problème de configuration de grub ou d'un disque corrompu.
@@ -140,7 +138,7 @@ Si les disques sont corrompus et difficile à monter, il faut sauvegarder les do
 
 Sinon, relancer grub-update et grub-install en chroot ou avec systemd-nspawn.
 
-#### L'accès en VNC ou via écran ne fonctionne pas
+### L'accès en VNC ou via écran ne fonctionne pas
 Dans ce cas il peut s'agir d'un problème matèriel sur votre serveur physique ou d'un problème d'hyperviseur si c'est un VPS.
 
 Si c'est une machine loué contacter le support de votre fournisseur. Sinon essayez de dépanner votre machine en retirant les composants qui peuvent être en panne.

From 7dba38c70d5f3b21917f8a4d9dd93ebffd7f8ef9 Mon Sep 17 00:00:00 2001
From: ljf <ljf+git@grimaud.me>
Date: Sun, 5 Jan 2020 21:18:54 +0100
Subject: [PATCH 289/360] [fix] Orthographe

---
 noaccess_fr.md | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/noaccess_fr.md b/noaccess_fr.md
index b1309a95..059fc32a 100644
--- a/noaccess_fr.md
+++ b/noaccess_fr.md
@@ -3,31 +3,31 @@ Si vous avez perdu l'accès à votre YunoHost qui était auparavant fonctionnel,
 
 Il existe de nombreuses causes pouvant empécher totalement ou partiellement d'accéder en administrateur à un serveur YunoHost. Dans de nombreux cas, un des moyens d'accès est inaccessible, mais les autres sont fonctionnels.
 
-Cette page va vous aider à diagnostiquer, obtenir un accés et si besoin réparer votre système. Les pannes les plus courrantes sont priorisées de haut en bas. Il vous suffit de tester chaque hypothèse.
+Cette page va vous aider à diagnostiquer, obtenir un accès et si besoin réparer votre système. Les pannes les plus courantes sont priorisées de haut en bas. Il vous suffit de tester chaque hypothèse.
 
 ## Vous avez perdu votre mot de passe administrateur
-Si vous arrivez à afficher la page web d'administration (forcer le raffraichissement avec CTRL + F5 pour être sur) et que vous n'arrivez pas à vous connectez. Vous avez probablement un mot de passe érroné.
+Si vous arrivez à afficher la page web d'administration (forcer le rafraîchissement avec CTRL + F5 pour être sur) et que vous n'arrivez pas à vous connectez. Vous avez probablement un mot de passe erroné.
 
 Dans ce cas, à moins d'avoir un accès root actif (en SSH par exemple) auquel cas vous pouvez changer le mot de passe de l'utilisateur admin, vous allez devoir opérer en mode rescue.
 
 TODO
 
-## Vous avez une erreur de certificat qui vous empèche d'accéder à la webadmin
+## Vous avez une erreur de certificat qui vous empêche d'accéder à la webadmin
 
 Si vous n'avez jamais activé Let's Encrypt ou que vous accéder à la web admin via une IP ou un domaine locale, vous pouvez accepter le certificat invalide exceptionnellement à condition d'être sur une connexion internet sûre (pas avec Tor Browser par exemple).
 
 Pour y parvenir, il faut aller sur la page d'administration web en utilisant la navigation privée, votre navigateur devrait vous autoriser d'ajouter une exception temporaire pour accéder à la page.
 
-## Vous avez accés en SSH mais pas à la Web admin ou inversement
+## Vous avez accès en SSH mais pas à la Web admin ou inversement
 
 ### Vous avez été banni temporairement
-Votre serveur YunoHost inclu un pare-feu qui banni les IP qui échouent plusieurs fois à se connecter. Dans certains cas, il peut s'agir d'un programme (nextcloud-client) qui est configuré avec un ancien mot de passe ou d'un utilisateur qui utilise la même IP que vous.
+Votre serveur YunoHost inclut un pare-feu qui banni les IP qui échouent plusieurs fois à se connecter. Dans certains cas, il peut s'agir d'un programme (nextcloud-client) qui est configuré avec un ancien mot de passe ou d'un utilisateur qui utilise la même IP que vous.
 
-Si vous avez été banni en tentant d'accéder à une page web, seul les pages web sont innaccessibles, vous devriez donc pouvoir accéder au serveur en SSH. De même, si vous avez été banni en SSH vous devriez pouvoir accéder à la webadmin.
+Si vous avez été banni en tentant d'accéder à une page web, seul les pages web sont inaccessibles, vous devriez donc pouvoir accéder au serveur en SSH. De même, si vous avez été banni en SSH vous devriez pouvoir accéder à la webadmin.
 
 Si vous avez été banni à la fois en SSH et à la webadmin, vous pouvez essayer d'accéder à votre serveur avec une autre IP, par exemple en utilisant la 4G d'un smartphone ou en utilisant Tor Browser.
 
-NB: le banissement dure en général quelques minutes. Le bannissement n'est actif qu'en IPv4.
+NB: le bannissement dure en général quelques minutes. Le bannissement n'est actif qu'en IPv4.
 
 ### Vous n'avez plus d'espace disque...
 ... et votre serveur web nginx qui distribue les pages de la web admin ou votre serveur SSH ne fonctionne plus.
@@ -58,35 +58,35 @@ A partir de la web admin vous pouvez relancer le service SSH. De même en SSH, v
 ### Vous avez installé une app qui a cassé votre configuration web
 Si vous avez installé une app de mauvaise qualité, celle-ci peut échouer à l'installation et laisser des bouts de configuration qui vont empécher le redémarrage de votre serveur web nginx qui vous permet d'accéder à la web admin.
 
-Dans ce cas, il faut accéder en SSH et essayer de terminer la suppresion de l'app. Si elle est déjà supprimée, il faut enlever manuellement les résidus de configuration.
+Dans ce cas, il faut accéder en SSH et essayer de terminer la suppression de l'app. Si elle est déjà supprimée, il faut enlever manuellement les résidus de configuration.
 
 ### Votre serveur est accessible en IPv6 mais pas en IPv4 ou inversement
 Dans un tel cas, il est possible que vous arriviez à accéder à votre web admin en IPv6 mais pas en SSH potentiellement en IPv4 par défaut...
 
 Dans ce cas il faut résoudre votre problème de connectivité.
 
-Dans certains cas une mise à jour de votre box a activé l'ipv6, entrainant des problèmes de configuration au niveau de votre nom de domaine.
+Dans certains cas une mise à jour de votre box a activé l'ipv6, entraînant des problèmes de configuration au niveau de votre nom de domaine.
 
 ## Votre VPN a expiré ou ne se monte plus
 Si vous utilisez un VPN a IP fixe, peut être que celui-ci est arrivé à expiration ou que l'infrastructure de votre fournisseur est en difficulté.
 
 Dans ce cas, vous pouvez peut être accéder à votre serveur avec son IP locale s'agissant probablement d'un serveur auto-hébergé chez-vous.
 
-Pour connaitre votre ip locale, certaines BOX propose une cartographie du réseau en cours avec les équipements connectés. Sinon, en ligne de commande avec linux:
+Pour connaître votre ip locale, certaines BOX propose une cartographie du réseau en cours avec les équipements connectés. Sinon, en ligne de commande avec linux:
 ```
 sudo arp-scan --local
 ```
 
 Vous pouvez aussi essayer avec le domaine `yunohost.local` si il n'y a qu'un seul YunoHost sur votre réseau.
 
-Il faut voir avec votre fournisseur de VPN pour renouveller le VPN et mettre à jour les paramètre de l'app VPN Client.
+Il faut voir avec votre fournisseur de VPN pour renouveler le VPN et mettre à jour les paramètre de l'app VPN Client.
 
 TODO
 
 ## Votre routeur ne redirige plus vers votre serveur
 Si votre routeur a été remis à zéro ou mis à jour, votre configuration de redirection de port pourrait avoir disparu. De même, l'ipv6 ou le hairpining pourrait avoir été activé.
 
-Typiquement si en tapant votre IP publique vous tombez sur votre box, c'est soit le hairpinning soit la redirectiond e port qui est manquante.
+Typiquement si en tapant votre IP publique vous tombez sur votre box, c'est soit le hairpinning soit la redirection de port qui est manquante.
 
 ## Votre serveur ping avec son IP, mais pas avec le nom de domaine
 ### Votre nom de domaine a expiré
@@ -94,7 +94,7 @@ Si votre nom de domaine expire il ne redirigera plus vers votre serveur.
 
 Vous pouvez vérifier que votre nom de domaine a expiré en vous connectant sur l'interface de votre registrar ou en utilisant le whois par exemple via la commande `whois NOM_DE_DOMAINE`.
 
-Dans ce cas il faut renouveller le nom de domaine (si ile st encore temps.
+Dans ce cas il faut renouveler le nom de domaine (si ile st encore temps.
 
 ### Votre nom de domaine est mal configuré
 Si votre serveur ping avec son ip mais ne ping pas avec le nom de domaine alors il y a un problème de configuration au niveau du champs A.
@@ -108,7 +108,7 @@ Si c'est un autre nom de domaine, il faut mettre à jour votre ipv4 et votre ipv
 
 Attention, si votre IP change régulièrement il faut mettre en place un script qui se lance régulièrement pour mettre à jour votre IP.
 
-### Votre nom de domaine noho.st, nohost.me, ynh.fr est inacessible suite à une panne de l'infra YunoHost
+### Votre nom de domaine noho.st, nohost.me, ynh.fr est inaccessible suite à une panne de l'infra YunoHost
 Il arrive environ trois fois par an que l'infra de YunoHost soit en panne suite à une coupure de courant ou à un problème d'administration système.
 
 Vérifiez sur le forum si d'autre sont signalez le même problème.
@@ -117,7 +117,7 @@ Vérifiez sur le forum si d'autre sont signalez le même problème.
 
 Dans ce cas, il faut tenter d'accéder en SSH avec l'autre IP et essayer de comprendre pourquoi le réseau en IPv4 ou en IPv6 a disparu.
 
-Si ce n'est pas lié à une erreur de configuration réseau sur votre système, il peut être nécessaire d'appeller votre fournisseur de serveur ou d'accès à internet pour vérifier que le problème n'ets pas chez eux.
+Si ce n'est pas lié à une erreur de configuration réseau sur votre système, il peut être nécessaire d’appeler votre fournisseur de serveur ou d'accès à internet pour vérifier que le problème n'est pas chez eux.
 
 ## Vous avez perdu l'accès en IPv4 (ET en IPv6 le cas échéant)
 Vous pouvez le vérifier en tentant de faire des ping sur votre serveur en IPv4 et en IPv6.
@@ -134,12 +134,11 @@ Si vous êtes en grub rescue, dans ce cas il peut s'agir d'un problème de confi
 
 Dans ce cas il faut accéder au disque avec un autre système (mode rescue du fournisseur, live usb, lire la carte SD ou le disque dur avec un autre ordinateur) et essayer de vérifier l'intégrité des partitions avec smartctl, fsck et mount.
 
-Si les disques sont corrompus et difficile à monter, il faut sauvegarder les données et potentiellement refaire un formattage/réinstaller et/ou changer le disque. Si on arrive à monter le disque, il est possible d'utiliser systemd-nspawn pour entrer dans la base de donnée.
+Si les disques sont corrompus et difficile à monter, il faut sauvegarder les données et potentiellement refaire un formatage/réinstaller et/ou changer le disque. Si on arrive à monter le disque, il est possible d'utiliser systemd-nspawn pour entrer dans la base de donnée.
 
 Sinon, relancer grub-update et grub-install en chroot ou avec systemd-nspawn.
 
 ### L'accès en VNC ou via écran ne fonctionne pas
-Dans ce cas il peut s'agir d'un problème matèriel sur votre serveur physique ou d'un problème d'hyperviseur si c'est un VPS.
+Dans ce cas il peut s'agir d'un problème matériel sur votre serveur physique ou d'un problème d'hyperviseur si c'est un VPS.
 
 Si c'est une machine loué contacter le support de votre fournisseur. Sinon essayez de dépanner votre machine en retirant les composants qui peuvent être en panne.
-

From f3db648b60abcd6a88f288f6573a7fbb1f2d25b5 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Fri, 10 Jan 2020 02:19:30 +0000
Subject: [PATCH 290/360] Added Virgin Media to UK ISP list and some data.

---
 isp.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/isp.md b/isp.md
index 25590358..d84d9e87 100644
--- a/isp.md
+++ b/isp.md
@@ -19,6 +19,7 @@ A list of French and Belgian ISPs is available on the [french page](/isp_fr).
 | Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP |
 | --- | --- | --- | --- | --- | --- | --- |
 | BT Internet | - | - | Yes| - | - | No |
+| Virgin Media | Yes | - | - | - | No | No |
 
 ### Brazil
 | Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP |

From c62fef7fb420c56c58c9640d3a1e676007b32a81 Mon Sep 17 00:00:00 2001
From: Moul <moul@moul.re>
Date: Sat, 11 Jan 2020 11:51:12 +0100
Subject: [PATCH 291/360] =?UTF-8?q?[enh]=20Email:=20Add=20links=20and=20?=
 =?UTF-8?q?=C2=A7=20to=20the=20blacklist=20forms?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 admindoc.md    | 1 +
 admindoc_fr.md | 2 +-
 email.md       | 5 +++++
 email_fr.md    | 7 ++++++-
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/admindoc.md b/admindoc.md
index ab86a0b5..f4937dbb 100644
--- a/admindoc.md
+++ b/admindoc.md
@@ -29,6 +29,7 @@
     * [Applications](/apps_overview)
     * [Domains, DNS and certificates](/domains)
     * [Email](/email)
+       * [Forms to remove its IP address from the black lists](/blacklist_forms)
     * [XMPP](/XMPP)
     * [Backup](/backup)
     * [Updating the system](/update) and [apps](/app_update)
diff --git a/admindoc_fr.md b/admindoc_fr.md
index 14b60248..2f186795 100644
--- a/admindoc_fr.md
+++ b/admindoc_fr.md
@@ -29,6 +29,7 @@
     * [Les applications](/apps_overview_fr)
     * [Les domaines, la configuration DNS et les certificats](/domains_fr)
     * [Les emails](/email_fr)
+       * [Formulaires pour enlever son adresse IP des listes noires](/blacklist_forms_fr)
     * [XMPP](/XMPP_fr)
     * [Les sauvegardes](/backup_fr)
     * [Mettre à jour le système](/update_fr) et [les applications](/app_update_fr)
@@ -53,4 +54,3 @@
 * [Guide de dépannage](/troubleshooting_guide_fr)
     * [Débloquer une IP dans Fail2ban](/fail2ban_fr)
     * [Changer le mot de passe d’administration](/change_admin_password_fr)
-    * [Formulaires pour enlever son IP des listes noires](/blacklist_forms_fr)
diff --git a/email.md b/email.md
index 9aab2850..63525b4c 100644
--- a/email.md
+++ b/email.md
@@ -37,6 +37,11 @@ What happens if my server becomes unavailable ?
 
 If your server becomes unavailable, emails sent to your server will stay in a pending queue on the sender's side for as long as ~5 days. The sender's hoster will regularly try to resend the email, until it drops it if it was unable to send it.
 
+## Forms to remove its IP address from the blacklist
+It is possible that the sent emails from your YunoHost instance are considered as spam by the big email services.
+Is it possible that the IP address from your server have been previously been used to sent spam or that these email services consider your server as a spam sender.
+To ensure that your servers’ IP address isn’t into this blacklists and to remove it from them, follow this [link](/blacklist_forms).
+
 Migrating email from an email provider to a YunoHost instance
 -------------------------------------------------------------
 
diff --git a/email_fr.md b/email_fr.md
index 662804fe..e1c2ca08 100644
--- a/email_fr.md
+++ b/email_fr.md
@@ -3,7 +3,7 @@ Emails
 
 YunoHost est livré avec un écosystème complet de serveur mail, vous permettant d'héberger votre propre serveur de messagerie, et donc d'avoir vos propres adresses email dans `quelquechose@votre.domaine.tld`.
 
-Cet écosystème comprends un serveur SMTP (postfix), un serveur IMAP (Dovecot), un antispam (rspamd) et une configuration DKIM.
+Cet écosystème comprend un serveur SMTP (postfix), un serveur IMAP (Dovecot), un antispam (rspamd) et une configuration DKIM.
 
 S'assurer que votre configuration est correcte
 -------------------------------
@@ -37,6 +37,11 @@ Que se passe-t-il si mon serveur devient indisponible ?
 
 Si votre serveur devient indisponible, les courriels envoyés à votre serveur resteront dans une file d'attente du côté de l'expéditeur pendant environ 5 jours. L'hébergeur de l'expéditeur tentera régulièrement de renvoyer le courrier, jusqu'à ce qu'il le jette s'il n'a pas pu l'envoyer.
 
+## Formulaires pour enlever son adresse IP des listes noires
+Il est possible que les emails envoyés depuis votre instance YunoHost soient considérés comme du spam par les grands services de mails.
+Il est possible que l’adresse IP de votre serveur a autrefois été utilisé pour envoyé du spam ou que ces services de mails considèrent votre serveur comme émetteur de spams.
+Pour s’assurer que l’adresse IP de votre serveur n’est pas dans ces listes et pour l’enlever dans le cas échéant suivez ce [lien](/blacklist_forms_fr).
+
 
 Pour aller plus loin
 --------------------

From b9f38c8c885e67b96afd0017f92f04404f637735 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Wed, 15 Jan 2020 22:09:43 +0100
Subject: [PATCH 292/360] Added the .nobackup tip

---
 backup.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/backup.md b/backup.md
index e69b5771..9cffbdd6 100644
--- a/backup.md
+++ b/backup.md
@@ -149,6 +149,9 @@ You can follow this tutorial on the forum to setup Borg between two servers : <h
 
 Alternatively, the app Archivist allows to setup a similar system : <https://forum.yunohost.org/t/new-app-archivist/3747>
 
+#### Avoiding the backup of some folders
+If needed, you can specify that some `/home/user` folders are left out of the `yunohost backup` command, by creating a blank file named `.nobackup` in them.
+
 #### Full backup with `dd`
 
 If you are using an ARM board, another method for doing a full backup can be to create an image of the SD card. For this, poweroff your ARM board, get the SD card in your computer then create a full image with something like :

From 1218c29b8d53776aeee84bf5e0151c1be69d56a5 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Wed, 15 Jan 2020 22:12:40 +0100
Subject: [PATCH 293/360] ajout fonctionnement .nobackup

---
 backup_fr.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/backup_fr.md b/backup_fr.md
index a76077de..d59078b2 100644
--- a/backup_fr.md
+++ b/backup_fr.md
@@ -151,6 +151,9 @@ Vous pouvez suivre ce tutoriel sur le forum pour mettre en place Borg entre deux
 
 Il existe aussi l'application Archivist qui permet un système similaire : https://forum.yunohost.org/t/new-app-archivist/3747
 
+#### Evier de sauvegarder certains dossiers
+Si besoin, vous pouvez spécifier que certains dossiers `home` d'utilisateurs ne soient pas sauvegardés par la commande `yunohost backup`, en créant à la racine un fichier vide nommé `.nobackup`.
+
 #### Backup complet avec `dd`
 
 Si vous êtes sur une carte ARM, une autre méthode pour créer une sauvegarde complète consiste à créer une image (copie) de la carte SD. Pour cela, éteignez votre serveur, insérez la carte SD dans votre ordinateur et créez une image avec une commande comme :

From 2192aee983628ed4636af06ac341c91d46214e44 Mon Sep 17 00:00:00 2001
From: Bram <cortex@worlddomination.be>
Date: Thu, 16 Jan 2020 11:35:59 +0100
Subject: [PATCH 294/360] change url to solution for keeweb-nextcloud

---
 app_nextcloud_keeweb_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_nextcloud_keeweb_fr.md b/app_nextcloud_keeweb_fr.md
index cded19d4..9a99f973 100644
--- a/app_nextcloud_keeweb_fr.md
+++ b/app_nextcloud_keeweb_fr.md
@@ -5,7 +5,7 @@ L'application Keeweb sur le catalogue de nextcloud - [apps.nextcloud.com/keeweb]
 L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud.
 
 Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela,
-[une solution](https://github.com/jhass/nextcloud-keeweb/issues/34) existe.
+[une solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) existe.
 
 Se rendre dans le répertoire de configuration de Nextcloud :
 

From 9847c05022f564b03f8889826d8f12e58d6fc7d1 Mon Sep 17 00:00:00 2001
From: Jaxom99 <30865395+Jaxom99@users.noreply.github.com>
Date: Fri, 17 Jan 2020 10:00:37 +0100
Subject: [PATCH 295/360] update phrasing

---
 backup_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/backup_fr.md b/backup_fr.md
index d59078b2..116d6a43 100644
--- a/backup_fr.md
+++ b/backup_fr.md
@@ -151,8 +151,8 @@ Vous pouvez suivre ce tutoriel sur le forum pour mettre en place Borg entre deux
 
 Il existe aussi l'application Archivist qui permet un système similaire : https://forum.yunohost.org/t/new-app-archivist/3747
 
-#### Evier de sauvegarder certains dossiers
-Si besoin, vous pouvez spécifier que certains dossiers `home` d'utilisateurs ne soient pas sauvegardés par la commande `yunohost backup`, en créant à la racine un fichier vide nommé `.nobackup`.
+#### Eviter de sauvegarder certains dossiers
+Si besoin, vous pouvez spécifier que certains dossiers `home` d'utilisateurs ne soient pas sauvegardés par la commande `yunohost backup`, en créant un fichier vide nommé `.nobackup` à l'intérieur.
 
 #### Backup complet avec `dd`
 

From 69a9efce83945753ea76965cd688b92accb72692 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 19 Jan 2020 13:06:56 +0000
Subject: [PATCH 296/360] =?UTF-8?q?mise=20en=20francais=20de=20=C2=ABOn=20?=
 =?UTF-8?q?an=20ARM=20board=C2=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 install_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install_fr.md b/install_fr.md
index 60612125..a6ceeac1 100644
--- a/install_fr.md
+++ b/install_fr.md
@@ -33,7 +33,7 @@ Cette page liste plusieurs types d’installations, classés par catégories.
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_arm_board"><img src="/images/olinuxino.jpg" height=150 style="vertical-align:bottom; padding:20px"><b><p>On an ARM board</p></b></a>
+<a href="/install_on_arm_board"><img src="/images/olinuxino.jpg" height=150 style="vertical-align:bottom; padding:20px"><b><p>Sur une carte ARM</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">

From 82a18abbe939212c39fbfc981fab56ae7f1d3027 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Wed, 22 Jan 2020 23:34:29 +0000
Subject: [PATCH 297/360] Added Joplin-web to wishlist!

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 4da0049b..b540d867 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -62,6 +62,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Jellyfin](https://github.com/jellyfin)
 - [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
 - [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
+- [Joplin-web](https://github.com/foxmask/joplin-web) / [github](https://github.com/foxmask/joplin-web)
 - [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
 - [Known](https://withknown.com) / [github](https://github.com/idno/known)
 - [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)

From ce3ee5fc79eac7a5869393225a60844e4d4e1236 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= <epost@anotheragency.no>
Date: Tue, 28 Jan 2020 07:31:15 +0100
Subject: [PATCH 298/360] What [en] page reworked

---
 whatsyunohost.md | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/whatsyunohost.md b/whatsyunohost.md
index d1aad886..6ed0efd3 100644
--- a/whatsyunohost.md
+++ b/whatsyunohost.md
@@ -3,34 +3,34 @@ What is YunoHost?
 
 <img src="/images/YunoHost_logo_vertical.png" width=400>
 
-YunoHost is an **operating system** aiming to simplify as much as possible the administration of a **server** and therefore democratize [self-hosting](selfhosting), while making sure it stays reliable, secure, ethical and lightweight. It is a free software project maintained exclusively by volunteers. Technically, it can be seen as a distribution based on [Debian GNU/Linux](https://debian.org) and can be installed on [many kinds of hardware](install).
+YunoHost is an **operating system** aiming for the simplest administration of a **server**, and therefore democratize [self-hosting](selfhosting), while making sure it stays reliable, secure, ethical and lightweight. It is a copylefted libre software project maintained exclusively by volunteers. Technically, it can be seen as a distribution based on [Debian GNU/Linux](https://debian.org) and can be installed on [many kinds of hardware](install).
 
 Features
 --------
 
-- <img src="/images/icon-debian.png" width=32 style="margin-right:5px"> based on Debian ;
-- <img src="/images/icon-tools.png" width=32 style="margin-right:5px" width=64> administrate your server through a **friendly web interface** ;
-- <img src="/images/icon-package.png" width=32 style="margin-right:5px"> deploy **applications in just a few clicks** ;
-- <img src="/images/icon-users.png" width=32 style="margin-right:5px"> manage **users** <small>(based on LDAP)</small>;
-- <img src="/images/icon-globe.png" width=32 style="margin-right:5px"> manage **domain names** ;
-- <img src="/images/icon-medic.png" width=32 style="margin-right:5px"> create and restore **backups** ;
-- <img src="/images/icon-door.png" width=32 style="margin-right:5px"> connect to all apps simultaneously through the **user portal** <small>(nginx, SSOwat)</small> ;
-- <img src="/images/icon-mail.png" width=32 style="margin-right:5px"> includes a **full email stack** <small>(Postfix, Dovecot, Rspamd, DKIM)</small> ;
-- <img src="/images/icon-messaging.png" width=32 style="margin-right:5px"> ... as well as **an instant messaging server** <small>(XMPP)</small> ;
-- <img src="/images/icon-lock.png" width=32 style="margin-right:5px"> manages **SSL certificates** <small>(based on Let's Encrypt)</small> ;
-- <img src="/images/icon-shield.png" width=32 style="margin-right:5px"> ... and **security systems** <small>(fail2ban, yunohost-firewall)</small> ;
+- <img src="/images/icon-debian.png" width=32 style="margin-right:5px"> Based on Debian ;
+- <img src="/images/icon-tools.png" width=32 style="margin-right:5px" width=64> Administrate your server through a **friendly web interface** ;
+- <img src="/images/icon-package.png" width=32 style="margin-right:5px"> Deploy **apps in just a few clicks** ;
+- <img src="/images/icon-users.png" width=32 style="margin-right:5px"> Manage **users** <small>(based on LDAP)</small>;
+- <img src="/images/icon-globe.png" width=32 style="margin-right:5px"> Manage **domain names** ;
+- <img src="/images/icon-medic.png" width=32 style="margin-right:5px"> Create and restore **backups** ;
+- <img src="/images/icon-door.png" width=32 style="margin-right:5px"> Connect to all apps simultaneously through the **user portal** <small>(NGINX, SSOwat)</small> ;
+- <img src="/images/icon-mail.png" width=32 style="margin-right:5px"> Includes a **full e-mail stack** <small>(Postfix, Dovecot, Rspamd, DKIM)</small> ;
+- <img src="/images/icon-messaging.png" width=32 style="margin-right:5px"> … as well as **an instant messaging server** <small>(XMPP)</small> ;
+- <img src="/images/icon-lock.png" width=32 style="margin-right:5px"> Manages **SSL certificates** <small>(based on Let's Encrypt)</small> ;
+- <img src="/images/icon-shield.png" width=32 style="margin-right:5px"> … and **security systems** <small>(fail2ban, yunohost-firewall)</small> ;
 
 Origin
 ------
 
 YunoHost was created in February 2012 after something like this:
 
- <blockquote><p>"Shit, I'm too lazy to reconfigure my mail server... Beudbeud, how were you able to get your little server running with LDAP?"</p>
+ <blockquote><p>"Shit, I'm too lazy to reconfigure my mail server… Beudbeud, how were you able to get your little server running with LDAP?"</p>
 <small>Kload, February 2012</small></blockquote>
 
-All that was needed was an administration interface for Beudbeud's server to make something usable, so Kload decided to develop one. Finally, after automating several configurations and packaging in some web apps, YunoHost v1 was finished.
+All that was needed was an admin interface for Beudbeud's server to make something usable, so Kload decided to develop one. Finally, after automating several configs and packaging in some web apps, YunoHost v1 was finished.
 
-Noting the growing enthusiasm around YunoHost and around self-hosting in general, the original developers along with new contributors decided to start work on version 2, more extensible, more powerful, more easy-to-use, and one that makes a nice cup of fair-trade coffee for the elves of Lapland.
+Noting the growing enthusiasm around YunoHost and around self-hosting in general, the original developers along with new contributors decided to start work on version 2, a more extensible, more powerful, more easy-to-use, and at that, one that makes a nice cup of fair-trade coffee for the elves of Lapland.
 
 The name **YunoHost** comes from the jargon "Y U NO Host". The [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) should illustrate it:
 <div class="text-center"><img style="border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.15);" src="/images/dude_yunohost.jpg"></div>
@@ -40,14 +40,14 @@ What YunoHost is not?
 
 Even if YunoHost can handle multiple domains and multiple users, it is **not meant to be a mutualized system**.
 
-First, the software is too young, not tested at large scale and thus probably not optimized to be put in production for hundreds of users at the same time. With that said, we do not want to lead the software in that direction. Virtualization democratizes, and its usage is recommended since it is a more leaktight way to achieve mutualization than a "full-stack" system like YunoHost.
+First, the software is too young, not tested at scale and thus probably not optimized well enough for hundreds of users at the same time. With that said, we do not want to lead the software in that direction. Virtualization democratizes, and its usage is recommended since it is a more watertight way to achieve mutualization than a "full-stack" system like YunoHost.
 
-You can host your friends, your family and your company safely and with ease, but you must **trust your users**, and they must trust you above all. If you do want to provide YunoHost services for unknown persons anyway, a full VPS per user will be just fine, and we believe is a better way to go.
+You can host your friends, your family and your company safely and with ease, but you must **trust your users**, and they must trust you above all. If you want to provide YunoHost services for unknown persons anyway, a full VPS per user will be just fine, and we believe a better way to go.
 
-Art Works
+Artworks
 ---------
 
-Black and white YunoHost png logo done by ToZz (400 × 400 px):
+Black and white YunoHost PNG logo by ToZz (400 × 400 px):
 
 <a href="/images/ynh_logo_black_300dpi.png"><img src="/images/ynh_logo_black_300dpi.png" width=220></a>
 

From 9456b265b84366627b2467827ea5438644f34b55 Mon Sep 17 00:00:00 2001
From: Damien Picard <dam.pic@free.fr>
Date: Wed, 29 Jan 2020 00:14:43 +0100
Subject: [PATCH 299/360] =?UTF-8?q?[fr]=20Replace=20i.e.=20by=20c.-=C3=A0-?=
 =?UTF-8?q?d.=20(that=20is,=20id=20est=20by=20c=E2=80=99est-=C3=A0-dire)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

To avoid anglicism.
---
 certificate_fr.md              | 2 +-
 guidelines_fr.md               | 2 +-
 jessie_stretch_migration_fr.md | 2 +-
 postinstall_fr.md              | 2 +-
 users_fr.md                    | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/certificate_fr.md b/certificate_fr.md
index fe18d4d5..d32a8341 100644
--- a/certificate_fr.md
+++ b/certificate_fr.md
@@ -19,7 +19,7 @@ Pour éviter cette confusion, il est possible d’obtenir un certificat, reconnu
 Avant de chercher à installer un certificat Let's Encrypt, assurez vous que
 votre DNS est correctement configuré (votre.domaine.tld doit pointer sur l'IP
 de votre serveur) et que votre site est accessible en HTTP depuis l'extérieur
-(i.e. qu'au moins le port 80 est correctement redirigé vers votre serveur).
+(c.-à-d. qu'au moins le port 80 est correctement redirigé vers votre serveur).
 
 #### Via l'interface d'administration web
 
diff --git a/guidelines_fr.md b/guidelines_fr.md
index 2cf70957..70987966 100644
--- a/guidelines_fr.md
+++ b/guidelines_fr.md
@@ -44,5 +44,5 @@ Enfin, gardez à l'esprit que YunoHost est un logiciel libre maintenu par des vo
 
 Si vous aimez YunoHost et que vous voulez que le projet soit maintenu en vie et progresse, n'hésitez pas à laisser une note de remerciement et à [faire un don](https://liberapay.com/YunoHost) au projet et à en parler autour de vous !
 
-Pour finir, puisque YunoHost est un projet de logiciel libre, vous êtes légitime et bienvenu pour [venir contribuer](/contribute) au projet, que ce soit sur les aspects techniques (i.e. code) et moins techniques (comme par exemple contribuer à cette documentation ;)) !
+Pour finir, puisque YunoHost est un projet de logiciel libre, vous êtes légitime et bienvenu pour [venir contribuer](/contribute) au projet, que ce soit sur les aspects techniques (c.-à-d. code) et moins techniques (comme par exemple contribuer à cette documentation ;)) !
 
diff --git a/jessie_stretch_migration_fr.md b/jessie_stretch_migration_fr.md
index fbb173cb..548b6235 100644
--- a/jessie_stretch_migration_fr.md
+++ b/jessie_stretch_migration_fr.md
@@ -12,7 +12,7 @@ L'objectif cette page est de décrire le processus de migration d'une instance e
 
 - Si vous ou vos utilisateurs utilisez des clients emails externes (typiquement Thunderbird ou K9Mail) : le port SMTP a changé. Il s'agissait auparavant du port 465 (avec SSL/TLS) qui a été remplacé par 587 (STARTTLS). Voir [cette page de doc dédiée à la configuration des clients mails](/email_configure_client). La configuration des webmails comme Rainloop doit également être mise à jour, en passant par l'interface d'administration dédiée.
 
-- Pour les utilisateurs avancés : si vous avez des scripts personnels pour faire des backups, certains changements cassent (de façon mineure) la rétrocompatibilité de la ligne de commande. Les options dépréciées `--hooks`/`--ignore-hooks` ont été enlevées, ainsi que `--ignore-apps`, `--ignore-system`. Pour rendre les choses plus intuitives, `yunohost backup create --apps wordpress` (par exemple) créera uniquement un backup de wordpress, i.e. pas besoin d'ajouter `--ignore-system` pour ne pas backuper le système.
+- Pour les utilisateurs avancés : si vous avez des scripts personnels pour faire des backups, certains changements cassent (de façon mineure) la rétrocompatibilité de la ligne de commande. Les options dépréciées `--hooks`/`--ignore-hooks` ont été enlevées, ainsi que `--ignore-apps`, `--ignore-system`. Pour rendre les choses plus intuitives, `yunohost backup create --apps wordpress` (par exemple) créera uniquement un backup de wordpress, c.-à-d. pas besoin d'ajouter `--ignore-system` pour ne pas backuper le système.
 
 ## Procédure de migration
 
diff --git a/postinstall_fr.md b/postinstall_fr.md
index c12dcc85..d02cee89 100644
--- a/postinstall_fr.md
+++ b/postinstall_fr.md
@@ -57,7 +57,7 @@ votre navigateur ou la ligne de commande, alors félicitations !
 
 - Si vous vous auto-hébergez à la maison et sans VPN, il faut vous assurer
   de bien [rediriger les ports de votre box internet](isp_box_config_fr) ;
-- Si vous utilisez votre propre nom de domaine (i.e. pas un nohost.me /
+- Si vous utilisez votre propre nom de domaine (c.-à-d. pas un nohost.me /
   noho.st), il vous faut [configurer le nom de domaine d'après la configuration
   recommandée](dns_config_fr) ;
 - Si vous ne pouvez pas configurer le nom de domaine pour le moment (parce qu'il
diff --git a/users_fr.md b/users_fr.md
index 11262b13..931551a4 100644
--- a/users_fr.md
+++ b/users_fr.md
@@ -22,7 +22,7 @@ Le portail utilisateur, également appelé SSO pour 'Single Sign On', permet à
 Dans le portail, les utilisateurs peuvent également cliquer sur l'avatar en haut à gauche pour configurer d'autres paramètres tels que leur identité, les alias de messagerie, les transferts automatiques de courrier ou changer leur mot de passe.
 
 <div class="alert alert-info" markdown="1">
-Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (i.e. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (i.e. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_nework).
+Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (c.-à-d. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (c.-à-d. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_nework).
 </div>
 
 Permissions d'accès aux applications

From ad3f7a6905a875a6cfe9c5cb7d6dd53dcdc8add5 Mon Sep 17 00:00:00 2001
From: Damien Picard <dam.pic@free.fr>
Date: Wed, 29 Jan 2020 00:25:33 +0100
Subject: [PATCH 300/360] =?UTF-8?q?[fr]=20Replace=20"."=20by=20"=C2=B7"=20?=
 =?UTF-8?q?as=20interpunct?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 selfhosting_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/selfhosting_fr.md b/selfhosting_fr.md
index 0c4788b2..0fc5c17e 100644
--- a/selfhosting_fr.md
+++ b/selfhosting_fr.md
@@ -16,7 +16,7 @@ Pourquoi s'auto-héberger ?
 
 - **Vous souhaitez apprendre comment fonctionnent les ordinateurs et Internet.** Opérer son propre serveur est un bon contexte pour apprendre les mécanismes de base au cœur des systèmes d'exploitations (OS) et d'Internet. Il vous faudra possiblement toucher à la ligne de commande et à des morceaux de configuration réseau et DNS.
 
-- **Vous voulez explorer de nouvelles possibilités et personnaliser votre espace.** Avez-vous déjà rêvé d'avoir votre propre serveur Minecraft pour vos ami.e.s, ou un client IRC ou XMPP persistent ? Avec votre propre serveur, vous pouvez manuellement installer et faire tourner n'importe quel programme et personnaliser chaque morceau.
+- **Vous voulez explorer de nouvelles possibilités et personnaliser votre espace.** Avez-vous déjà rêvé d'avoir votre propre serveur Minecraft pour vos ami·e·s, ou un client IRC ou XMPP persistent ? Avec votre propre serveur, vous pouvez manuellement installer et faire tourner n'importe quel programme et personnaliser chaque morceau.
 
 Pourquoi ne *pas* s'auto-héberger ?
 -----------------------------------

From a2984495e279bbde1b0d2b07adcf88798aca0f93 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 30 Jan 2020 11:02:54 +0000
Subject: [PATCH 301/360] Typos

---
 faq.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/faq.md b/faq.md
index bd38b583..6b83f90b 100644
--- a/faq.md
+++ b/faq.md
@@ -1,7 +1,7 @@
 # Frequently Asked Questions
 
 
-#### Under which licence is YunoHost distributed?
+#### Under which license is YunoHost distributed?
 
 YunoHost packages are under free licenses GNU AGPL v.3.
 
@@ -13,7 +13,7 @@ Applications and applications packages have their own licenses.
 #### What's YunoHost goal?
 
 We believe that decentralizing the Internet, and empowering people to take control and
-responsability back over their own data and services, is a crucial issue to guarantee
+responsibility back over their own data and services, is a crucial issue to guarantee
 a free and democratic society.
 
 The YunoHost project aims to democratize self-hosting.
@@ -30,14 +30,14 @@ work for you.
 
 For instance, if you wanted to install Wordpress, you would need to type a bunch
 of commands to create some users, setup a web server, setup a SQL server,
-download the wordpress archive, uncompress it, configure the web server,
-configure the SQL database, and finally configure wordpress. YunoHost handles
+download the Wordpress archive, uncompress it, configure the web server,
+configure the SQL database, and finally configure Wordpress. YunoHost handles
 the technical details and "types all these commands for you", so that you can focus
 on what really matters.
 
 More info on [this page](whatsyunohost) !
 
-#### Can I host my own personnal website with YunoHost?
+#### Can I host my own personal website with YunoHost?
 
 Yes! Have a look at the [Custom Web app](https://github.com/YunoHost-Apps/my_webapp_ynh).
 It provides an "empty shell" : after installing it, just upload your files

From 1b8beb783dcfb4a51d5a20843d6721d2141cb499 Mon Sep 17 00:00:00 2001
From: Mellerin <36613276+Mellerin@users.noreply.github.com>
Date: Mon, 3 Feb 2020 07:28:22 +0100
Subject: [PATCH 302/360] Update app_yunofav_fr.md

Fix invalid url
---
 app_yunofav_fr.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app_yunofav_fr.md b/app_yunofav_fr.md
index 087b1b50..c5cedf46 100644
--- a/app_yunofav_fr.md
+++ b/app_yunofav_fr.md
@@ -1,5 +1,5 @@
 # Yunofav : (non officiel) Page de liens favoris pour Yunohost
 
-page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh_ynh
+page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh
 
-Fonctionnalité : Crée une page pour vos liens préférés, en utilisant les tuiles Yunohost look and feel.
\ No newline at end of file
+Fonctionnalité : Crée une page pour vos liens préférés, en utilisant les tuiles Yunohost look and feel.

From e1053405e85867a69da9208a1a493f7efbf99438 Mon Sep 17 00:00:00 2001
From: Mellerin <36613276+Mellerin@users.noreply.github.com>
Date: Mon, 3 Feb 2020 07:34:24 +0100
Subject: [PATCH 303/360] Update app_yunofav_fr.md

essai de traduction FR de "look and feel"
---
 app_yunofav_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_yunofav_fr.md b/app_yunofav_fr.md
index 087b1b50..025368c4 100644
--- a/app_yunofav_fr.md
+++ b/app_yunofav_fr.md
@@ -2,4 +2,4 @@
 
 page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh_ynh
 
-Fonctionnalité : Crée une page pour vos liens préférés, en utilisant les tuiles Yunohost look and feel.
\ No newline at end of file
+Fonctionnalité : Crée une page pour vos liens préférés, en utilisant le style et le fonctionnement des tuiles Yunohost.

From 50f0c5dfb635e7c5d2e37665ec6d437f09769b88 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 9 Feb 2020 16:35:20 +0000
Subject: [PATCH 304/360] =?UTF-8?q?#=C3=9Cbersetzung=20der=20Administrator?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 howtohostyourself_de.md | 83 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)
 create mode 100644 howtohostyourself_de.md

diff --git a/howtohostyourself_de.md b/howtohostyourself_de.md
new file mode 100644
index 00000000..d764b8e3
--- /dev/null
+++ b/howtohostyourself_de.md
@@ -0,0 +1,83 @@
+# So hosten Sie selbst ?
+
+Sie können zu Hause (auf einem kleinen Computer) oder auf einem Remote-Server hosten. Jede Lösung hat ihre Vor- und Nachteile:
+
+### Zu Hause, zum Beispiel auf einem Einplatinencomputer oder einem alten Computer
+
+Sie können zu Hause mit einem Einplatinencomputer oder einem überarbeiteten regulären Computer, der mit Ihrem Heimrouter verbunden ist, hosten. 
+
+- **Pros**  : Sie haben die physische Kontrolle über die Maschine und müssen nur die Hardware kaufen;
+- **Cons**  : Sie müssen [Ihre Internet-Router manuell konfigurieren](isp_box_config) und [sind möglicherweise von Ihrem Internet-Service-Provider eingeschränkt](isp).
+
+### Zu Hause hinter einem VPN
+
+Ein VPN ist ein verschlüsselter Tunnel zwischen zwei Computern. In der Praxis sieht es so aus, als ob Sie direkt vor Ort mit Ihrem Server verbunden wären, aber tatsächlich verbinden Sie sich von einem anderen Ort im Internet. Auf diese Weise können Sie weiterhin zu Hause hosten und gleichzeitig mögliche Einschränkungen Ihres Internetdienstanbieters umgehen. Siehe auch [das Internet Cube-Projekt](https://internetcu.be/) und [der FFDN](https://www.ffdn.org/).
+
+- **Pros** : Sie haben die physische Kontrolle über den Computer, und das VPN verbirgt Ihren Datenverkehr vor Ihrem ISP und ermöglicht es Ihnen, seine Einschränkungen zu umgehen;
+- **Cons** : Sie müssen ein monatliches Abonnement für das VPN bezahlen.
+
+### Auf einem Remote-Server (VPS oder dedizierter Server)
+
+Sie können einen virtuellen privaten Server oder eine dedizierte Maschine von [associative](https://db.ffdn.org/) oder von anderen kommerziellen "Cloud"-Anbietern mieten.
+
+- **Pros** : Ihr Server und seine Internetverbindung sind schnell;
+- **Cons** : Sie müssen ein monatliches Abonnement bezahlen und haben keine physische Kontrolle über Ihren Server.
+
+### Summary
+
+<table class="table">
+    <thead>
+      <tr>
+        <th></th>
+        <th style="text-align:center;">Zu Hause<br><small>(z.B. Einplatinencomputer, alter Computer)</small></th>
+        <th style="text-align:center;">Zu Hause<br>hinter einem VPN</th>
+        <th style="text-align:center;">Auf einem Remote-Server<br>(VPS oder dediziert)</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td style="text-align:center;">Hardware Kosten</td>
+        <td style="text-align:center;" class="warning"  colspan="2">etwa 50€ <br><small>(z.B. ein Raspberry Pi)</small></td>
+        <td style="text-align:center;" class="success">keine</td>
+      </tr>
+      <tr>
+        <td style="text-align:center;">Monatliche Kosten</td>
+        <td style="text-align:center;" class="success">Unerheblich<br><small>(Stromkosten)</small></td>
+        <td style="text-align:center;" class="warning">etwa 5€ <br><small>(VPN)</small></td>
+        <td style="text-align:center;" class="warning">ab ~3€ <br><small>(VPS)</small></td>
+      </tr>
+      <tr>
+        <td style="text-align:center;">Physikalische Kontrolle<br>der Machine</td>
+        <td style="text-align:center;" class="success">Ja</td>
+        <td style="text-align:center;" class="success">Ja</td>
+        <td style="text-align:center;" class="danger">Nein</td>
+      </tr>
+      <tr>
+        <td style="text-align:center;">Manuelles Port <br>Routing erforderlich</td>
+        <td style="text-align:center;" class="warning">Ja</td>
+        <td style="text-align:center;" class="success">Nein</td>
+        <td style="text-align:center;" class="success">Nein</td>
+      </tr>
+      <tr>
+        <td style="text-align:center;">Mögliche ISP-Einschränkungen</td>
+        <td style="text-align:center;" class="danger">Ja <br><small>(siehe [hier](/isp))</small></td>
+        <td style="text-align:center;" class="success">Per VPN umgangen</td>
+        <td style="text-align:center;" class="success">Normalerweise nein</td>
+      </tr>
+      <tr>
+        <td style="text-align:center;">CPU</td>
+        <td style="text-align:center;" class="warning" colspan="2">Typischerweise ~1 GHz</td>
+        <td style="text-align:center;" class="success">~2 GHz <br><small>(Digital Ocean droplet)</small></td>
+      </tr>
+      <tr>
+        <td style="text-align:center;">RAM</td>
+        <td style="text-align:center;" class="warning" colspan="2">In der Regel 500 MB oder 1 GB</td>
+        <td style="text-align:center;" class="warning">abhängig von den Serverkosten</td>
+      </tr>
+      <tr>
+        <td style="text-align:center;">Internetverbindung</td>
+        <td style="text-align:center;" class="warning" colspan="2">Hängt von Ihrer Internetverbindung ab</td>
+        <td style="text-align:center;" class="success">Normalerweise ziemlich gut</td>
+      </tr>
+    </tbody>
+</table>

From 30fa6854a2c62f77c46cc8915c4c524fbe1c5544 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 9 Feb 2020 18:03:28 +0000
Subject: [PATCH 305/360] Edit wishlist with Opencart script.

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index b540d867..49ed9908 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -91,6 +91,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
+- [OpenCart](https://www.opencart.com) / [github](https://github.com/opencart/opencart)
 - [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
 - [OpenProject](https://github.com/opf/openproject)
 - [OpenSourceBilling](https://github.com/vteams/open-source-billing)

From d4e8f322c98a39ed5fe807eb6a021843ea26cd11 Mon Sep 17 00:00:00 2001
From: Mellerin <36613276+Mellerin@users.noreply.github.com>
Date: Mon, 10 Feb 2020 07:23:43 +0100
Subject: [PATCH 306/360] fix TOC links

rewrite anchors in order to fix TOC which links to non-existing pages
---
 app_pleroma_fr.md | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md
index fbc3b2d1..939e5fec 100644
--- a/app_pleroma_fr.md
+++ b/app_pleroma_fr.md
@@ -1,12 +1,12 @@
 # <img src="/images/pleroma_logo.png" alt="logo de Pleroma"> Pleroma
 
- - [Découverte de l'interface de Pleroma](decouvertegeneralepleroma)
- - [Logiciels Clients pour mobile et ordinateur](LogicielsClients)
- - [Liens utiles](liensutiles)
+ - [Découverte de l'interface de Pleroma](#decouvertegeneralepleroma)
+ - [Logiciels Clients pour mobile et ordinateur](#LogicielsClients)
+ - [Liens utiles](#liensutiles)
 
 Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole Activy Pub qu'il utilise permet d'interagir avec le fediverse composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
 
-## Découverte de l'interface de Pleroma <a href="" name="decouvertegeneralepleroma"></a>
+## <a name="decouvertegeneralepleroma"></a>Découverte de l'interface de Pleroma
 
 Pour ceux et celles qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées.
 
@@ -36,7 +36,7 @@ Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agenc
 6. Notifications  
 On retrouve dans cette zone les messages où vous avez été cité, mais aussi les abonnements à votre compte.
 
-## Applications clients <a href="" name="LogicielsClients"></a>
+## <a name="LogicielsClients"></a>Applications clients
 
 | Nom de l'applications | Plateforme | Multi-comptes | Autre réseaux supportés | Play Store | F-Droid | Apple Store |
 |---|---|---|---|---|---|---|
@@ -45,7 +45,7 @@ On retrouve dans cette zone les messages où vous avez été cité, mais aussi l
 | Twidere | Android | Oui | Twitter, Mastodon | [play.google.com/org.mariotaku.twidere](https://play.google.com/store/apps/details?id=org.mariotaku.twidere) | [https://f-droid.org/org.mariotaku.twidere](https://f-droid.org/fr/packages/org.mariotaku.twidere/) | 
 | Librem Social | Android | Non | ? | [play.google.com/one.librem.social](https://play.google.com/store/apps/details?id=one.librem.social&hl=fr) | [https://f-droid.org/one.librem.social](https://f-droid.org/fr/packages/one.librem.social) | |
 
-## Quelques liens utiles <a href="" name="liensutiles"></a>
+## <a name="liensutiles"></a>Quelques liens utiles
 
 + Site officiel : [pleroma.social (En anglais)](https://pleroma.social)
 + Trouver d'autres instances de Pleroma : [fediverse.network/pleroma](https://fediverse.network/pleroma)

From c3510fc8e0381e13d7b55f09e013b8dc6305465e Mon Sep 17 00:00:00 2001
From: Mellerin <36613276+Mellerin@users.noreply.github.com>
Date: Mon, 10 Feb 2020 07:30:40 +0100
Subject: [PATCH 307/360] Update app_pleroma_fr.md

---
 app_pleroma_fr.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md
index 939e5fec..7ac71aa4 100644
--- a/app_pleroma_fr.md
+++ b/app_pleroma_fr.md
@@ -1,8 +1,8 @@
 # <img src="/images/pleroma_logo.png" alt="logo de Pleroma"> Pleroma
 
- - [Découverte de l'interface de Pleroma](#decouvertegeneralepleroma)
- - [Logiciels Clients pour mobile et ordinateur](#LogicielsClients)
- - [Liens utiles](#liensutiles)
+ - [Découverte de l'interface de Pleroma](#d%C3%A9couverte-de-linterface-de-pleroma)
+ - [Logiciels Clients pour mobile et ordinateur](#applications-clients-)
+ - [Liens utiles](#liens-utiles)
 
 Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole Activy Pub qu'il utilise permet d'interagir avec le fediverse composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
 

From 6b56c47823e5138bbf92e5c2343eea7b905079c8 Mon Sep 17 00:00:00 2001
From: Mellerin <36613276+Mellerin@users.noreply.github.com>
Date: Mon, 10 Feb 2020 07:39:32 +0100
Subject: [PATCH 308/360] Update app_pleroma_fr.md

---
 app_pleroma_fr.md | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md
index 7ac71aa4..4f8f0a91 100644
--- a/app_pleroma_fr.md
+++ b/app_pleroma_fr.md
@@ -1,12 +1,12 @@
 # <img src="/images/pleroma_logo.png" alt="logo de Pleroma"> Pleroma
 
  - [Découverte de l'interface de Pleroma](#d%C3%A9couverte-de-linterface-de-pleroma)
- - [Logiciels Clients pour mobile et ordinateur](#applications-clients-)
- - [Liens utiles](#liens-utiles)
+ - [Logiciels Clients pour mobile et ordinateur](#applications-clients)
+ - [Liens utiles](#quleques-liens-utiles)
 
 Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole Activy Pub qu'il utilise permet d'interagir avec le fediverse composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
 
-## <a name="decouvertegeneralepleroma"></a>Découverte de l'interface de Pleroma
+## Découverte de l'interface de Pleroma
 
 Pour ceux et celles qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées.
 
@@ -28,7 +28,7 @@ Pour ceux et celles qui n'ont pas ou peu l'habitude des réseaux sociaux, voici
 C'est ici le centre ~~du monde~~ de Pleroma, vous pourrez y voir les différentes publications de vos contacts ou qui circulent sur l'instance ainsi que les re-toots et qui a publié. 
 
 4. Le journal  
-Cette zone permet de voir les différentes publications des comptes que vous suivez mais aussi l'ensemble des publications visibles sur votre instance. Vous trouverez aussi les messages privés et les notifications où vous trouverez tous vos toots et les publications où vous avez été cité.
+Cette zone permet de voir les différentes publications des comptes que vous suivez mais aussi l'ensemble des publications visibles sur votre instance. Vous trouverez ahttps://github.com/Mellerin/doc/blob/master/app_pleroma_fr.md#applications-clients-ussi les messages privés et les notifications où vous trouverez tous vos toots et les publications où vous avez été cité.
 
 5. Interface utilisateur·trice  
 Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agencements : un spécifique à Pleroma et un fork (une copie) de l'agencement de Mastodon, selon vos préférences d'usages et de visualisations ; à vous de faire votre choix.
@@ -36,7 +36,7 @@ Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agenc
 6. Notifications  
 On retrouve dans cette zone les messages où vous avez été cité, mais aussi les abonnements à votre compte.
 
-## <a name="LogicielsClients"></a>Applications clients
+## Applications clients
 
 | Nom de l'applications | Plateforme | Multi-comptes | Autre réseaux supportés | Play Store | F-Droid | Apple Store |
 |---|---|---|---|---|---|---|
@@ -45,7 +45,7 @@ On retrouve dans cette zone les messages où vous avez été cité, mais aussi l
 | Twidere | Android | Oui | Twitter, Mastodon | [play.google.com/org.mariotaku.twidere](https://play.google.com/store/apps/details?id=org.mariotaku.twidere) | [https://f-droid.org/org.mariotaku.twidere](https://f-droid.org/fr/packages/org.mariotaku.twidere/) | 
 | Librem Social | Android | Non | ? | [play.google.com/one.librem.social](https://play.google.com/store/apps/details?id=one.librem.social&hl=fr) | [https://f-droid.org/one.librem.social](https://f-droid.org/fr/packages/one.librem.social) | |
 
-## <a name="liensutiles"></a>Quelques liens utiles
+## Quelques liens utiles
 
 + Site officiel : [pleroma.social (En anglais)](https://pleroma.social)
 + Trouver d'autres instances de Pleroma : [fediverse.network/pleroma](https://fediverse.network/pleroma)

From 4d77cad9c9f679a57cec89a6b18f1a54888706b3 Mon Sep 17 00:00:00 2001
From: Mellerin <36613276+Mellerin@users.noreply.github.com>
Date: Mon, 10 Feb 2020 08:26:07 +0100
Subject: [PATCH 309/360] fix app_pleroma_fr.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

fix : liens dans la TOC
changes : éternels accords, inclusif avec "⋅e", etc.
ajout qq liens
---
 app_pleroma_fr.md | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md
index 4f8f0a91..44a4cdb1 100644
--- a/app_pleroma_fr.md
+++ b/app_pleroma_fr.md
@@ -2,39 +2,40 @@
 
  - [Découverte de l'interface de Pleroma](#d%C3%A9couverte-de-linterface-de-pleroma)
  - [Logiciels Clients pour mobile et ordinateur](#applications-clients)
- - [Liens utiles](#quleques-liens-utiles)
+ - [Liens utiles](#quelques-liens-utiles)
 
-Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole Activy Pub qu'il utilise permet d'interagir avec le fediverse composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
+Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole [Activy Pub](https://en.wikipedia.org/wiki/ActivityPub) qu'il utilise permet d'interagir avec le [fediverse](https://fediverse.party/en/fediverse) composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
 
 ## Découverte de l'interface de Pleroma
 
-Pour ceux et celles qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées.
+Pour celles et ceux qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées :
 
 ### Accueil de l'interface
 
 <img src="/images/capture_globale.png" alt="Capture écran accueil de Pleroma">
 
 1. Barre de menu  
-   + <img src="/images/capture_menu_gauche.png" alt="Capture du bouton à gauche de la barre de menu"> Le bouton à gauche portant le nom de l'instance dans la capture ci-dessus *Meta - Pleroma* renvoie vers la page d'accueil de l'instance. Dans le cas où vous êtes connecté cela vous renverra vers la visualisation de votre *journal*, si ce n'est pas le cas vers *Le réseau connu*.
-   + <img src="/images/capture_menu_droite.png" alt="Capture des boutons à droite de la barre de menu"> Si vous êtes connecté vous aurez trois boutons, si vous ne l'êtes pas il n'y en aura que deux. Dans l'ordre de gauche à droite : 
-      + <img src="/images/capture_menu_droite_chercher_utilisateur.png" alt="Capture bouton chercher un/e utilisateur.trice"> Permet d'ajouter de nouveaux utilisateurs et nouvelles utilisatrices afin de les suivre et ainsi vous abonner à leurs publications. Il est possible de rechercher un·e utilisateur·trice avec seulement son pseudonyme (par exemple : *yunohost*) ou alors sous la forme @pseudonyme@instance.domaine (par exemple : *@yunohost@mastodon.social*) 
-      + <img src="/images/capture_menu_droite_preferences.png" alt="Capture bouton préférences"> Permet d'accéder aux paramétres d'affichages de votre session. /!\ Si vous n'êtes pas connecté·e les modifications effectuées ne seront valables qu'un temps (jusqu'à ce que les cookies de fonctionnement soient effacés).
+   + <img src="/images/capture_menu_gauche.png" alt="Capture du bouton à gauche de la barre de menu"> Le bouton à gauche portant le nom de l'instance - dans la capture ci-dessus *Meta - Pleroma* - renvoie vers la page d'accueil de l'instance. Dans le cas où vous êtes connecté⋅e cela vous renverra vers la visualisation de votre *journal*, si ce n'est pas le cas vers *Le réseau connu*.
+   + <img src="/images/capture_menu_droite.png" alt="Capture des boutons à droite de la barre de menu"> Si vous êtes connecté⋅e vous aurez trois boutons, si vous ne l'êtes pas il n'y en aura que deux. Dans l'ordre, de gauche à droite : 
+      + <img src="/images/capture_menu_droite_chercher_utilisateur.png" alt="Capture bouton chercher un⋅e utilisateur⋅trice"> Permet d'ajouter de nouveaux utilisateurs et nouvelles utilisatrices afin de les suivre et ainsi vous abonner à leurs publications. Il est possible de rechercher un·e utilisateur·trice avec seulement son pseudonyme (par exemple : *yunohost*) ou alors sous la forme @pseudonyme@instance.domaine (par exemple : *@yunohost@mastodon.social*) 
+      + <img src="/images/capture_menu_droite_preferences.png" alt="Capture bouton préférences"> Permet d'accéder aux paramétres d'affichages de votre session.  
+      /!\ Si vous n'êtes pas connecté·e les modifications effectuées ne seront valables qu'un temps (jusqu'à ce que les cookies de fonctionnement soient effacés).
       + <img src="/images/capture_menu_droite_deconnexion.png" alt="Capture Déconnexion"> Permet de se déconnecter de l'instance. Si vous n'êtes pas sur votre ordinateur personnel pensez-y !
 
 2. Espace de Publications / Fenêtre de connexion    
-<img src="/images/capture_espace_connexion.png" alt="Fenêtre de connexion à la place de la zone de publications"> Si vous êtes connecté·e cet espace vous permet de publier vos messages et d'y joindre un média (images, GIF, vidéos, etc). Vous êtes limité dans le nombre de caractères, avec Pleroma la limitation est définie par l'administrateur·trice de l'instance. Si vous avez des questions envoyez lui un message.
+<img src="/images/capture_espace_connexion.png" alt="Fenêtre de connexion à la place de la zone de publications"> Si vous êtes connecté·e cet espace vous permet de publier vos messages et d'y joindre un média (images, GIF, vidéos, etc). Vous êtes limité⋅e dans le nombre de caractères, avec Pleroma la limitation est définie par l'administrateur·trice de l'instance. Si vous avez des questions envoyez lui un message.
 
 3. Fenêtre de visualisations  
 C'est ici le centre ~~du monde~~ de Pleroma, vous pourrez y voir les différentes publications de vos contacts ou qui circulent sur l'instance ainsi que les re-toots et qui a publié. 
 
 4. Le journal  
-Cette zone permet de voir les différentes publications des comptes que vous suivez mais aussi l'ensemble des publications visibles sur votre instance. Vous trouverez ahttps://github.com/Mellerin/doc/blob/master/app_pleroma_fr.md#applications-clients-ussi les messages privés et les notifications où vous trouverez tous vos toots et les publications où vous avez été cité.
+Cette zone permet de voir les différentes publications des comptes que vous suivez mais aussi l'ensemble des publications visibles sur votre instance. Vous trouverez aussi les messages privés et les notifications où vous trouverez tous vos toots et les publications où vous avez été cité⋅e.
 
 5. Interface utilisateur·trice  
 Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agencements : un spécifique à Pleroma et un fork (une copie) de l'agencement de Mastodon, selon vos préférences d'usages et de visualisations ; à vous de faire votre choix.
 
 6. Notifications  
-On retrouve dans cette zone les messages où vous avez été cité, mais aussi les abonnements à votre compte.
+On retrouve dans cette zone les messages où vous avez été cité⋅e, mais aussi les abonnements à votre compte.
 
 ## Applications clients
 

From c7dc127a8ce8d13186240dd5715d56f9bbff4746 Mon Sep 17 00:00:00 2001
From: Mellerin <36613276+Mellerin@users.noreply.github.com>
Date: Mon, 10 Feb 2020 08:31:43 +0100
Subject: [PATCH 310/360] add missing capture_menu_gauche.png

---
 images/capture_menu_gauche.png | Bin 0 -> 1038 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 images/capture_menu_gauche.png

diff --git a/images/capture_menu_gauche.png b/images/capture_menu_gauche.png
new file mode 100644
index 0000000000000000000000000000000000000000..842e8a70fe4282d2bac73caec48661038f29de7e
GIT binary patch
literal 1038
zcmeAS@N?(olHy`uVBq!ia0vp^6M@)>g9%7pHd<!_q&N#aB8wRq_zr_G<MI3zDGUtE
z2RvOILn`LHonxE*I6|cDek_~Vnk2~?*}0Ep--@U$UJ<IwGAm>yFXKUjoaq+-4;VZ+
zblTxxqw&jW8w5C(l$nZ2gy!Ym+#z8TmU@4S`B$+`IzP2Hs)tSDe!jBAUS$5_=XI84
zOahxep3dKSf4((al676}JBE(6m0Q<6{3>5>n<{hU*#(=){6%W=Pkii7%&eJU{8J(Q
zljFH3&2vt&TjG#7&RrT7GW9v%!>60R6~A&nyf5UtuFttFN9C0vr<N}}Ev6+N0Hm+x
z*Gs+EYP0+!{k~W|>(Zh1Z$HcKITbv4t}%nslgis1Qge4WrHZ-Cc<QYu?9Id=u`Ar@
zbc|Q1u~8}8e*41v#w8UYI<IoBJg?srb4SkCnt?%H?s|K3B(L#a^VsLJoUiKnZ#nda
zeHrT?mbvob+cICC+Ozqo!6Gl&+K0C)9b#&8=l6$~25&tr{A~N8JcsqKzsv~lTEE_M
zS#8;Lr)%c~3jVjqHkmUxSl$p`D_yf?@wS&zFRrjQJYxU+NaXm}hn0JKGjemd8fq;s
zx|!cw&c`4lXE}9J-Hn~;v3ENJ#Sh%s5y_`~>DjxFk7tQ%o7}y<F8Fz%O7Y!$JaeNM
zoWFbhmfPj0+hH>`w9f8cEm!1x$BNa{xAQVIoLUn-??~33(wk5AFYEAXPAg!2o1gsg
z+xe|2A!b#RkGCc7DV@pj)9LIjgF|-m3Vic?&#hZtZnkc>o%gPvwtNh-@6N9~p2V{B
zfRTsd=SsGk{i5<SnK~AoD>&WwvT?%+5r>r_pQnaApRm?OZ&|-k^z)plGV4vWU026k
zs;ZYz)_WvS#9H^=_GOWHQG^d8`vf_b&&)~gnmQA9ZgxBnm~>Q)@7sg>91W_uC!bAJ
zTbny8>qeHfFQc=+?O)BK{Lflt?;G8A3bNT#ZzFRoxx%6~_v9VPV|Uu?5)Lr^Pv=>2
z`4yx1hT``POWUU&O1SoleU?GSwz<#FyKfJaVE7Sx;?mtB*0#XxI*xTI%_7^La^4H>
z&ad5}%DZ{5;-b%wyPj(=k22Jf+7)hk`qiboI^Xqn1#CSXBp0ydsa=2KVS{6Lp8q^`
z@ydmV7xx`)|DRX!=XNRA&GW_y0v|54$#?wB5|kCxUlkS7Q!e#!t$vKP)ob?j_j4;Y
z&zy60S6S))0}ZkJc1MXHdzBX_dSKVn64AMLmv8v?KIz5pU;5L;fBklQBu8x8hh~Z|
i`x%}#Kbu+ehkt?k{{L!4!Z(2#oWax8&t;ucLK6T~_Ux1Z

literal 0
HcmV?d00001


From e89cabce38ecf535af2899d015288818471a78b8 Mon Sep 17 00:00:00 2001
From: karottenbaum <karottenbaum@users.noreply.github.com>
Date: Mon, 10 Feb 2020 12:25:32 +0100
Subject: [PATCH 311/360] Translate 'delete' key

---
 boot_and_graphical_install.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/boot_and_graphical_install.md b/boot_and_graphical_install.md
index c20fe280..de3b7dec 100644
--- a/boot_and_graphical_install.md
+++ b/boot_and_graphical_install.md
@@ -12,7 +12,7 @@ The wireless connections are not supported yet, and if you use intermediate rout
 ## <small>2.</small> Boot on CD / USB stick
 
 Boot up your server with the USB stick or a CD-ROM inserted, and select it as **bootable device** by pressing one of the following keys (hardware specific):    
-```<ESC>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<SUPPR>```
+```<ESC>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<DEL>```
 
 ## <small>3.</small> Launch graphical installation
 

From 6c4cb4e7418139ee86a0129d3d583096b9687556 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 16 Feb 2020 13:21:13 +0000
Subject: [PATCH 312/360] Add Draw.io

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index b540d867..9a2bd371 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -31,6 +31,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
+- [Draw.io](https://github.com/jgraph/drawio) : a diagram online creator
 - [EasyAppointments](https://easyappointments.org/) Online appointment booker (similar to Doodle)
 - [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
 - [Emoncms](https://github.com/emoncms/emoncms)

From d04ca2273af39c40eb7db1310a8f86427d4ee8bf Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 27 Feb 2020 20:52:04 +0000
Subject: [PATCH 313/360] Remind that the ci process relies on the content of
 the check_process file and explain how to monitor the CI results.

---
 packaging_apps_ci.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/packaging_apps_ci.md b/packaging_apps_ci.md
index 0167b354..0401e0df 100644
--- a/packaging_apps_ci.md
+++ b/packaging_apps_ci.md
@@ -27,6 +27,9 @@ To ease your usage of this CI, a small script can be used to copy your apps to y
 
 Copy this [script](https://raw.githubusercontent.com/YunoHost/CI_package_check/master/dev_CI/Send%20CI%20dev.sh) into your usual working directory and fill it with your info.
 
+Make sure the content of your `check_process` file is correct then transfer your files.
+When your files have been transfered, you can monitor the CI pipeline on https://ci-apps-dev.yunohost.org.
+
 ---
 
 # Other continuous integration servers

From 75f4a59067be0420a92e0754b7e18f73ff3c47d6 Mon Sep 17 00:00:00 2001
From: MyNameIsTroll <31790025+MyNameIsTroll@users.noreply.github.com>
Date: Wed, 4 Mar 2020 10:25:55 +0100
Subject: [PATCH 314/360] add (Lemmy)

I've added the Lemmy app to the list.
---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 50828a51..0d07b1bb 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -70,6 +70,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
 - [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
 - [L'atelier](https://github.com/jbl2024/latelier)
+- [Lemmy](https://dev.lemmy.ml) / [github](https://github.com/dessalines/lemmy) A federated alternative to reddit. 
 - [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
 - [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)

From cbb6920c8ce7ee7d4bdeecb8991ec2247f9e8e28 Mon Sep 17 00:00:00 2001
From: Kay0u <pierre.moltess@gmail.com>
Date: Tue, 10 Mar 2020 23:41:04 +0100
Subject: [PATCH 315/360] adding more information for migration

---
 groups_and_permissions.md | 123 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 121 insertions(+), 2 deletions(-)

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index 443d977c..4b28d3ee 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -129,7 +129,7 @@ $ yunohost user permission update mail --remove all_users --add bob
 Notes for apps packagers
 ------------------------
 
-By default, installing an app creates the permission `app.main` with `all_users` allowed by default.
+Installing an app creates the permission `app.main` with `all_users` allowed by default.
 
 If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special groups `visitors`:
 
@@ -158,5 +158,124 @@ Applications scripts should absolutely **NOT** mess up with any already-existing
 When migrating away from the legacy permission, you should:
 - remove any management of `$is_public`-like or `$admin_user`-like setting, except for any manifest question meant to either *initialize* the app as public/private or specific permissions ;
 - remove any management of `skipped_`, `unprotected_` and `protected_uris` (and `_regex`) settings that are now considered obsolete and deprecated. (N.B.: you should **explicitly delete them in the upgrade script**). Instead, you should now rely on the new `ynh_permission_*` helpers instead. If you do feel like you still need to use them, please contact the core team to provide your feedback and we'll figure out something ;
-- remove any call to `yunohost app addaccess` and similar actions that are now obsolete and deprecated.
+For example, in the upgrade script if you used the `protected_uris` key before, you may use this code in the `DOWNWARD COMPATIBILITY` section:
+```bash
+protected_uris=$(ynh_app_setting_get --app=$app --key=protected_uris)
 
+# Unused with the permission system
+if [ ! -z "$protected_uris" ]; then
+	ynh_app_setting_delete --app=$app --key=protected_uris
+fi
+```
+
+- remove any call to `yunohost app addaccess` and similar actions that are now obsolete and deprecated.
+- if your app use LDAP and support filter, use the filter `'(&(objectClass=posixAccount)(permission=cn=YOUR_APP.main,ou=permission,dc=yunohost,dc=org))'` to allow users who have this permission. (A complete documentation of LDAP [here](https://moulinette.readthedocs.io/en/latest/ldap.html) if you want to undestand how it works with YunoHost)
+
+Here an example of how to migrate the code from legacy to new permission system: [example](https://github.com/YunoHost/example_ynh/pull/111/files)
+
+#### Specific case: regex protection
+
+If you still need to use regex to protect or unprotect urls, you can't use the new permission system (for now).
+
+But you can create a fake permission and use hooks to handle if there is a change in this faked permission.
+
+In the install script, create the fake permission (with no url):
+
+`ynh_permission_create --permission="create poll" --allowed="visitors"`
+
+Then use the legacy protection:
+
+```bash
+# Make app public if necessary
+if [ $is_public -eq 1 ]
+then
+	if [ "$path_url" == "/" ]; then
+	    # If the path is /, clear it to prevent any error with the regex.
+	    path_url=""
+	fi
+	# Modify the domain to be used in a regex
+	domain_regex=$(echo "$domain" | sed 's@-@.@g')
+	ynh_app_setting_set --app=$app --key=unprotected_regex --value="$domain_regex$path_url/create_poll.php?.*$","$domain_regex$path_url/adminstuds.php?.*"
+else
+	ynh_permission_update --permission="create poll" --remove="visitors"
+fi
+```
+
+In this example, if the app is public the group `visitors` has access to the permission `create poll`, the group is removed from this permission otherwise.
+
+Then create two files in the directory `hooks` at the root of the git repository: `post_app_addaccess` and `post_app_removeaccess`. In these hooks, you'll remove or readd the regex protection if the `visitors` group is add or remove from this permission:
+
+`post_app_addaccess`:
+
+```bash
+#!/bin/bash
+
+# Source app helpers
+source /usr/share/yunohost/helpers
+
+app=$1
+added_users=$2
+permission=$3
+added_groups=$4
+
+if [ "$app" == __APP__ ]; then
+    if [ "$permission" = "create poll" ]; then # The fake permission "create poll" is modifed.
+        if [ "$added_groups" = "visitors" ]; then # As is it a fake permission we can only grant/remove the "visitors" group.
+            domain=$(ynh_app_setting_get --app=$app --key=domain)
+            path_url=$(ynh_app_setting_get --app=$app --key=path)
+
+            if [ "$path_url" == "/" ]; then
+                # If the path is /, clear it to prevent any error with the regex.
+                path_url=""
+            fi
+            # Modify the domain to be used in a regex
+            domain_regex=$(echo "$domain" | sed 's@-@.@g')
+            ynh_app_setting_set --app=$app --key=unprotected_regex --value="$domain_regex$path_url/create_poll.php?.*$","$domain_regex$path_url/adminstuds.php?.*"
+
+            # Sync the is_public variable according to the permission
+            ynh_app_setting_set --app=$app --key=is_public --value=1
+
+            yunohost app ssowatconf
+        else
+            ynh_print_warn --message="This app doesn't support this authorisation, you can only add or remove visitors group."
+        fi
+    fi
+fi
+```
+
+`post_app_removeaccess`
+
+```bash
+#!/bin/bash
+
+# Source app helpers
+source /usr/share/yunohost/helpers
+
+app=$1
+removed_users=$2
+permission=$3
+removed_groups=$4
+
+if [ "$app" == __APP__ ]; then
+    if [ "$permission" = "create poll" ]; then # The fake permission "create poll" is modifed.
+        if [ "$removed_groups" = "visitors" ]; then # As is it a fake permission we can only grant/remove the "visitors" group.
+            
+            # We remove the regex, no more protection is needed.
+            ynh_app_setting_delete --app=$app --key=unprotected_regex
+
+            # Sync the is_public variable according to the permission
+            ynh_app_setting_set --app=$app --key=is_public --value=0
+
+            yunohost app ssowatconf
+        else
+            ynh_print_warn --message="This app doesn't support this authorisation, you can only add or remove visitors group."
+        fi
+    fi
+fi
+```
+
+Don't forget to replace `__APP__` during the install/upgrade script.
+
+Here some apps that use this specific case: [Lutim](https://github.com/YunoHost-Apps/lutim_ynh/pull/44/files) and [Opensondage](https://github.com/YunoHost-Apps/opensondage_ynh/pull/59/files)
+
+If you have any questions, please contact someone from the apps-group.
\ No newline at end of file

From f807812d5ef6eb6bfd4209beea11927fd9e01c8c Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 16 Mar 2020 22:09:19 +0000
Subject: [PATCH 316/360] tradotto

---
 index_it.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index_it.md b/index_it.md
index abc4c5e8..970605f6 100644
--- a/index_it.md
+++ b/index_it.md
@@ -18,7 +18,7 @@
       <span class="yolo 10" style="color: #FF5050;">dude, Y U NO Host?!</span>
       <span class="yolo 11" style="color: #66FF33;">Keep calm and host yourself</span>
     </p>
-    <button class="btn btn-primary btn-lg btn-block yolobtn">Scusa?</button>
+    <button class="btn btn-primary btn-lg btn-block yolobtn">COSA?</button>
   </div>
 
   <div class="main-links hidden-xs">

From 1fb85a2b63db980fddb1b1ee8974413d532e855d Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 16 Mar 2020 22:11:21 +0000
Subject: [PATCH 317/360] worth adding ygg

---
 apps_wishlist.md | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 0d07b1bb..3a792b6c 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -31,7 +31,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
-- [Draw.io](https://github.com/jgraph/drawio) : a diagram online creator
 - [EasyAppointments](https://easyappointments.org/) Online appointment booker (similar to Doodle)
 - [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
 - [Emoncms](https://github.com/emoncms/emoncms)
@@ -70,7 +69,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
 - [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
 - [L'atelier](https://github.com/jbl2024/latelier)
-- [Lemmy](https://dev.lemmy.ml) / [github](https://github.com/dessalines/lemmy) A federated alternative to reddit. 
 - [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
 - [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
@@ -93,7 +91,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
-- [OpenCart](https://www.opencart.com) / [github](https://github.com/opencart/opencart)
 - [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
 - [OpenProject](https://github.com/opf/openproject)
 - [OpenSourceBilling](https://github.com/vteams/open-source-billing)
@@ -148,3 +145,4 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
 - [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)
+- [Yggdrasil](https://yggdrasil-network.github.io/) / [github](https://github.com/yggdrasil-network/yggdrasil-go)

From 4909a829bcbea407c904369e96e7c026d7637ff2 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 16 Mar 2020 22:11:52 +0000
Subject: [PATCH 318/360] Erreur mineure de conjugaison

---
 ssh_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ssh_fr.md b/ssh_fr.md
index fcb62dcf..124dac3b 100644
--- a/ssh_fr.md
+++ b/ssh_fr.md
@@ -64,7 +64,7 @@ ssh -p 2244 admin@votre.domaine.tld
 ```
 
 <div class="alert alert-info">
-Si vous êtes connecté en tant qu'`admin` et souhaité devenir `root` pour plus de confort (par exemple, ne pas avoir à taper `sudo` à chaque commande), vous pouvez devenir `root` en tapant `sudo su`.
+Si vous êtes connecté en tant qu'`admin` et souhaitez devenir `root` pour plus de confort (par exemple, ne pas avoir à taper `sudo` à chaque commande), vous pouvez devenir `root` en tapant `sudo su`.
 </div>
 
 ## Quels utilisateurs ?

From 39b817f56caadf69b0c3772c22d350f4c22fa172 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 16 Mar 2020 23:20:58 +0100
Subject: [PATCH 319/360] Fix simone mess

---
 apps_wishlist.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 3a792b6c..ad106cd0 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -31,6 +31,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
 - [Darkwire.io](https://github.com/seripap/darkwire.io)
 - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
+- [Draw.io](https://github.com/jgraph/drawio) : a diagram online creator
 - [EasyAppointments](https://easyappointments.org/) Online appointment booker (similar to Doodle)
 - [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
 - [Emoncms](https://github.com/emoncms/emoncms)
@@ -69,6 +70,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
 - [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
 - [L'atelier](https://github.com/jbl2024/latelier)
+- [Lemmy](https://dev.lemmy.ml) / [github](https://github.com/dessalines/lemmy) A federated alternative to reddit. 
 - [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
 - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
 - [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
@@ -91,6 +93,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
 - [Ombi](https://github.com/tidusjar/Ombi)
 - [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
+- [OpenCart](https://www.opencart.com) / [github](https://github.com/opencart/opencart)
 - [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
 - [OpenProject](https://github.com/opf/openproject)
 - [OpenSourceBilling](https://github.com/vteams/open-source-billing)

From def301e70091fda40e931413cb5d95a078c4b049 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 16 Mar 2020 22:32:36 +0000
Subject: [PATCH 320/360] Added some info for Italian speakers.  It doesnt say
 there is a English version

---
 install_on_raspberry_it.md | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 install_on_raspberry_it.md

diff --git a/install_on_raspberry_it.md b/install_on_raspberry_it.md
new file mode 100644
index 00000000..b25eaf7a
--- /dev/null
+++ b/install_on_raspberry_it.md
@@ -0,0 +1,13 @@
+# Installa YunoHost su Raspberry Pi
+
+*Consulta la guida completa in inglese [qui](https://yunohost.org/#/install_on_raspberry_en)*
+
+Questa pagina non è ancora stata creata, puoi modificarla premendo ```<ESC>``` sulla tua tastiera o cliccando il pulsante "Modifica" in basso a destra del tuo schermo. Potrai vedere l'anteprima delle tue modifiche premendo ancora ```<ESC>``` o cliccando il pulsante "Anteprima".
+
+** Nota: ** Devi fornire un indirizzo email per confermare le tue modifiche.
+
+###Sintassi
+
+Questa pagina usa la sintassi markdown, per favore fai riferimento alla documentazione per ulteriori informazioni:
+
+http://daringfireball.net/projects/markdown/syntax

From 0917c5a3bb149e691c79f62e91d46c6c3d9aaba0 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 16 Mar 2020 22:34:33 +0000
Subject: [PATCH 321/360] =?UTF-8?q?#=C3=9Cbersetzung=20der=20Administrator?=
 =?UTF-8?q?=20-=20Dokumentation=20ins=20Deutsche.=20-=20#Translation=20of?=
 =?UTF-8?q?=20the=20Administrator=20documentation=20into=20German.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 selfhosting_de.md | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 selfhosting_de.md

diff --git a/selfhosting_de.md b/selfhosting_de.md
new file mode 100644
index 00000000..1574ed3a
--- /dev/null
+++ b/selfhosting_de.md
@@ -0,0 +1,30 @@
+Self-Hosting
+============
+
+Self-Hosting ist das Hosten von Daten oder Software auf eigener IT-Infrastruktur.
+Ihren eigenen Server zu Hause zu haben und zu verwalten, um Ihre persönlichen Daten und Dienste selbst zu hosten, anstatt sich ausschließlich auf Dritte zu verlassen. Beispielsweise können Sie Ihren Blog selbst hosten, sodass er auf einem Computer "lebt", über den Sie die Kontrolle haben, anstatt ihn im Austausch gegen Geld, Werbung oder private Daten auf dem Computer eines anderen Benutzers (a.k.a. The Cloud) zu haben.
+
+Self-Hosting bedeutet, einen Server zu besitzen. Ein Server ist ein Computer, auf den in der Regel rund um die Uhr im Netzwerk zugegriffen werden kann und der normalerweise keinen Bildschirm oder keine Tastatur hat (stattdessen wird er ferngesteuert). Entgegen der landläufigen Meinung ist ein Server nicht unbedingt ein riesiger und besonders leistungsfähiger Computer: Heutzutage ist ein kleines Board (Einplatinencomputer) mit ~ 40 € für das Self-Hosting ausreichend.
+
+Beim Self-Hosting geht es nicht darum, "Ihr Internet" sicherer zu machen, und es bietet auch keine Anonymität an sich. Stattdessen geht es darum, autonom zu sein und Ihre Dienste und Daten zu kontrollieren - was auch bedeutet, dafür verantwortlich zu sein.
+
+Warum sollten Sie selbst hosten?
+------------------------------
+
+- **Sie glauben an ein freies, offenes und dezentrales Internet.** In einem zentralisierten Internet können private Unternehmen und Behörden Personen ausspähen, analysieren und beeinflussen, indem sie diktieren, wie Sie sich miteinander verbinden, und indem sie Inhalte filtern. Yunohost wird von einer Community entwickelt, die an ein offenes und dezentrales Internet glaubt, und wir hoffen, dass Sie dies auch tun!
+
+- **Sie möchten die Kontrolle über Ihre Daten und Dienste haben.** Ihre Bilder, Chatnachrichten, der Browserverlauf und der Text, den Sie für die Schule schreiben, haben auf dem Server eines anderen Benutzers (a.k.a. The Cloud) nichts zu suchen. Sie sind Teil Ihres Privatlebens, aber auch Teil des Lebens Ihrer Familie, Ihres Partners und so weiter. Diese Daten sollten von * Ihnen * verwaltet werden, nicht von einem zufälligen Unternehmen in den USA, dass Ihre Daten analysieren und die Ergebnisse verkaufen möchte.
+
+- **Sie möchten lernen, wie Computer und das Internet funktionieren.** Der Betrieb eines eigenen Servers ist ein guter Kontext, um die grundlegenden Mechanismen von Betriebssystemen und dem Internet zu verstehen. Möglicherweise müssen Sie sich mit der Befehlszeilenschnittstelle, der Netzwerkarchitektur, der DNS-Konfiguration und mit SSH usw. befassen.
+
+- **Sie möchten neue Möglichkeiten erkunden und Dinge anpassen.** Haben Sie jemals davon geträumt, einen Minecraft-Server für Ihre Freunde oder einen dauerhaften IRC- oder XMPP-Client zu betreiben? Mit Ihrem eigenen Server können Sie praktisch jedes gewünschte Programm manuell installieren, ausführen und jedes Bit anpassen.
+
+Warum Sie vllt. *nicht* selbst hosten sollten?
+------------------------------------
+
+- **Self-Hosting erfordert etwas Arbeit und Geduld.** Selbst einen Server zu betreiben, ist ein bisschen wie das anlegen eines eigenen Gartens oder der anbau von Gemüse: Es erfordert Arbeit und Geduld. Während YunoHost versucht, die harte Arbeit für Sie zu erledigen, müssen Sie sich für das Self-Hosting noch einige Zeit nehmen, um einige Dinge zu lernen und zu konfigurieren, um Ihren Server richtig einzurichten. Sie müssen auch von Zeit zu Zeit Wartungsaufgaben (wie z. B. Upgrades) ausführen oder um Support-Unterstützung bitten, wenn Probleme auftreten.
+
+- **Mit den eigenen tollen Servern geht eine große Verantwortung einher.** Der Betrieb eines Servers bedeutet, dass Sie für die von Ihnen gehosteten Daten verantwortlich sind. Niemand kann sie für Sie wiederherstellen, wenn sie verloren gehen. YunoHost bietet Sicherungsfunktionen, die Sie regelmäßig verwenden sollten, um die gewünschten Konfigurationen und Daten zu sichern. Sie sollten auch die Sicherheitsnachrichten und -empfehlungen im Auge behalten, damit Ihr Server oder Ihre kritischen Daten nicht gefährdet werden.
+
+- **Qualität und Leistung sind wahrscheinlich nicht so gut wie Premium-Services.** YunoHost (und die meisten dafür bereitgestellten Anwendungen) sind kostenlose und Open-Source-Software, die in den jeweiligen Communitys von Menschen in ihrer Freizeit und auf der Grundlage bester Bemühungen entwickelt werden. Es gibt keine absolute Garantie dafür, dass Software unter allen möglichen Umständen funktioniert. Die Leistung Ihres selbst gehosteten Servers hängt auch von dessen CPU und RAM sowie der verfügbaren Internetverbindung ab.
+

From 127b97b98ad79a7d4d8088f88a231fd786743d92 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 16 Mar 2020 23:38:05 +0100
Subject: [PATCH 322/360] Update install_on_raspberry_it.md

---
 install_on_raspberry_it.md | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/install_on_raspberry_it.md b/install_on_raspberry_it.md
index b25eaf7a..b2f88cb0 100644
--- a/install_on_raspberry_it.md
+++ b/install_on_raspberry_it.md
@@ -1,13 +1,3 @@
 # Installa YunoHost su Raspberry Pi
 
 *Consulta la guida completa in inglese [qui](https://yunohost.org/#/install_on_raspberry_en)*
-
-Questa pagina non è ancora stata creata, puoi modificarla premendo ```<ESC>``` sulla tua tastiera o cliccando il pulsante "Modifica" in basso a destra del tuo schermo. Potrai vedere l'anteprima delle tue modifiche premendo ancora ```<ESC>``` o cliccando il pulsante "Anteprima".
-
-** Nota: ** Devi fornire un indirizzo email per confermare le tue modifiche.
-
-###Sintassi
-
-Questa pagina usa la sintassi markdown, per favore fai riferimento alla documentazione per ulteriori informazioni:
-
-http://daringfireball.net/projects/markdown/syntax

From 5f42c427943accf9d836932d43811ceffb021eb2 Mon Sep 17 00:00:00 2001
From: YunoHost Bot <yunohost-bot@users.noreply.github.com>
Date: Mon, 16 Mar 2020 23:39:26 +0100
Subject: [PATCH 323/360] =?UTF-8?q?[Anonymous=20contrib]=20Cest=20un=20sup?=
 =?UTF-8?q?er=20tuto.=20Bravo=20et=20merci.=20On=20pallie=20quelque-chose.?=
 =?UTF-8?q?..et=20non=20:=20pallie=20=C3=A0=20quelque-chose....=20(#1202)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* Cest un super tuto. Bravo et merci. On pallie quelque-chose...et non : pallie à quelque-chose....

* Fix simone mess

Co-authored-by: Yunobot <simone@yunohost.org>
Co-authored-by: Alexandre Aubin <alex.aubin@mailoo.org>
---
 backup_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/backup_fr.md b/backup_fr.md
index 116d6a43..00cbe694 100644
--- a/backup_fr.md
+++ b/backup_fr.md
@@ -1,7 +1,7 @@
 Sauvegarder son serveur et ses apps
 ===================================
 
-Dans le contexte de l'auto-hébergement, les sauvegardes (backup) sont un élément important pour palier à des événements inattendus (incendies, corruption de base de données, perte d'accès au serveur, serveur compromis, ...). La politique de sauvegardes à mettre en place dépend de l'importance des services et des données que vous gérez. Par exemple, sauvegarder un serveur de test aura peu d'intérêt, tandis que vous voudrez être très prudent si vous gérez des données critiques pour une association ou une entreprise - et dans ce genre de cas, vous souhaiterez stocker les sauvegardes *dans un endroit différent*.
+Dans le contexte de l'auto-hébergement, les sauvegardes (backup) sont un élément important pour palier les événements inattendus (incendies, corruption de base de données, perte d'accès au serveur, serveur compromis, ...). La politique de sauvegardes à mettre en place dépend de l'importance des services et des données que vous gérez. Par exemple, sauvegarder un serveur de test aura peu d'intérêt, tandis que vous voudrez être très prudent si vous gérez des données critiques pour une association ou une entreprise - et dans ce genre de cas, vous souhaiterez stocker les sauvegardes *dans un endroit différent*.
 
 Les sauvegardes avec YunoHost
 -----------------------------

From 8d8692bea062301ac6036121b6da58ce85c82f56 Mon Sep 17 00:00:00 2001
From: YunoHost Bot <yunohost-bot@users.noreply.github.com>
Date: Mon, 16 Mar 2020 23:40:25 +0100
Subject: [PATCH 324/360] =?UTF-8?q?#=C3=9Cbersetzung=20der=20Administrator?=
 =?UTF-8?q?=20-=20Dokumentation=20ins=20Deutsche.=20-=20#Translation=20of?=
 =?UTF-8?q?=20the=20Administrator=20documentation=20into=20German.=20(#120?=
 =?UTF-8?q?3)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Yunobot <simone@yunohost.org>
---
 whatsyunohost_de.md | 57 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 whatsyunohost_de.md

diff --git a/whatsyunohost_de.md b/whatsyunohost_de.md
new file mode 100644
index 00000000..74f436f3
--- /dev/null
+++ b/whatsyunohost_de.md
@@ -0,0 +1,57 @@
+Was ist YunoHost?
+=================
+
+<img src="/images/YunoHost_logo_vertical.png" width=400>
+
+YunoHost ist ein **Betriebssystem**, das auf die einfachste Verwaltung eines **Servers** abzielt und daher das [Self-Hosting](Selfhosting) demokratisiert, wobei sichergestellt wird, dass es zuverlässig, sicher, ethisch einwandfrei und leichtgewichtig bleibt. Es ist ein Copylefted-Libre-Softwareprojekt, das ausschließlich von Freiwilligen betrieben wird. Technisch gesehen kann es als eine Distribution angesehen werden, die auf [Debian GNU / Linux](https://debian.org) basiert und auf [vielen Arten von Hardware](install) installiert werden kann.
+
+Features
+--------
+
+- <img src="/images/icon-debian.png" width=32 style="margin-right:5px"> Basierend auf Debian ;
+- <img src="/images/icon-tools.png" width=32 style="margin-right:5px" width=64> Verwalten Sie Ihren Server über eine **benutzerfreundliche Weboberfläche** ;
+- <img src="/images/icon-package.png" width=32 style="margin-right:5px"> Bereitstellen von **Apps mit nur wenigen Klicks** ;
+- <img src="/images/icon-users.png" width=32 style="margin-right:5px"> Verwalten Sie **Benutzer** <small>(basierend auf LDAP)</small> ;
+- <img src="/images/icon-globe.png" width=32 style="margin-right:5px"> Verwalten Sie Ihre **Domainnamen** ;
+- <img src="/images/icon-medic.png" width=32 style="margin-right:5px"> Erstellen und Wiederherstellen von **Backups** ;
+- <img src="/images/icon-door.png" width=32 style="margin-right:5px"> Stellen Sie über das **Benutzerportal** <small>(NGINX, SSOwat)</small> gleichzeitig eine Verbindung zu allen Apps her ;
+- <img src="/images/icon-mail.png" width=32 style="margin-right:5px"> Enthält einen **vollständigen E-Mail-Stack** <small>(Postfix, Dovecot, Rspamd, DKIM)</small> ;
+- <img src="/images/icon-messaging.png" width=32 style="margin-right:5px"> … sowie **einen Instant Messaging Server** <small>(XMPP)</small> ;
+- <img src="/images/icon-lock.png" width=32 style="margin-right:5px"> Verwaltet **SSL-Zertifikate** <small>(basierend auf Let's Encrypt)</small> ;
+- <img src="/images/icon-shield.png" width=32 style="margin-right:5px"> … und **Sicherheitssysteme** <small>(fail2ban, yunohost-firewall)</small> ;
+
+Ursprung
+------
+
+YunoHost wurde im Februar 2012 aus folgender Situation heraus erstellt:
+
+ <blockquote><p>"Scheiße, ich bin zu faul, um meinen Mailserver neu zu konfigurieren ... Beudbeud, wie hast Du deinen kleinen Server mit LDAP zum Laufen gebracht?"</p><small> Kload, Februar 2012</small></blockquote>
+
+Alles, was benötigt wurde, war eine Administrationsoberfläche für Beudbeud's Server, um etwas nutzbar zu machen, also entschied sich Kload, eine zu entwickeln. Schließlich wurde YunoHost v1, nach der Automatisierung mehrerer Konfigurationen und der Paketierung in einigen Webanwendungen, fertiggestellt.
+
+Angesichts der wachsenden Begeisterung für YunoHost und für das Selbst-Hosting im Allgemeinen beschlossen die ursprünglichen Entwickler zusammen mit neuen Mitarbeitern, mit der Arbeit an Version 2 zu beginnen, einer erweiterbaren, leistungsfähigeren, benutzerfreundlicheren und damit einfacheren Version eine schöne Tasse Fairtrade-Kaffee für die Elfen von Lappland.
+
+Der Name **YunoHost** stammt aus dem Jargon "Y U NO Host". Das [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) sollte dies veranschaulichen:
+<div class="text-center"><img style="border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.15);" src="/images/dude_yunohost.jpg"></div>
+
+Was YunoHost nicht ist?
+---------------------
+
+Selbst wenn YunoHost mehrere Domains und mehrere Benutzer verwalten kann, ist es **nicht als ein mutualisiertes System gedacht**.
+
+Erstens ist die Software noch sehr jung, nicht auf ihre Skalierbarkeit getestet und daher wahrscheinlich nicht gut genug optimiert für Hunderte von Benutzern gleichzeitig. Vor diesem Hintergrund möchten wir die Software nicht in diese Richtung lenken. Die Virtualisierung demokratisiert sich und ihre Verwendung wird empfohlen, da sie eine wasserdichtere Methode zur Erzielung von Gegenseitigkeit darstellt als ein "Full-Stack"-System wie YunoHost.
+
+Sie können Ihre Freunde, Ihre Familie und Ihr Unternehmen sicher und problemlos aufnehmen, aber Sie müssen **Ihren Benutzern vertrauen**, und diese müssen vor allem Ihnen vertrauen. Wenn Sie ohnehin YunoHost-Dienste für unbekannte Personen bereitstellen möchten, ist ein vollständiger VPS pro Benutzer in Ordnung, und wir glauben, dass dies ein besserer Weg ist.
+
+Artworks
+---------
+
+Schwarz und Weiss YunoHost PNG logo by ToZz (400 × 400 px):
+
+<a href="/images/ynh_logo_black_300dpi.png"><img src="/images/ynh_logo_black_300dpi.png" width=220></a>
+
+<a href="/images/ynh_logo_white_300dpi.png"><img src="/images/ynh_logo_white_300dpi.png" width=220></a>
+
+Zum download Klicken.
+
+Licence: CC-BY-SA 4.0

From 2c63a782045222969e0958030629c0b5f376425c Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Mon, 16 Mar 2020 22:42:44 +0000
Subject: [PATCH 325/360] Jai le meme probleme que
 https://zythom.fr/2020/02/dialogue-avec-le-support-free/ Cest penible...

---
 isp_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/isp_fr.md b/isp_fr.md
index 53d0930f..1e8a3900 100644
--- a/isp_fr.md
+++ b/isp_fr.md
@@ -18,7 +18,7 @@ Tous les fournisseurs d’accès à Internet [membres de la Fédération French
 | **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
 | **[Port 25 ouvrable](email_fr)**<br> (fermé par défaut) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
 | **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✔ (depuis la Livebox 4) | ✔ | ✔ |
-| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personnalisable ** | ✔ | ✔ (sauf IPv6) | … | ✘ | ✘ | ✘ |
+| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personnalisable ** | ✔ | ✔ (sauf IPv6) pas de support | … | ✘ | ✘ | ✘ |
 | **[IP fixe](/dns_dynamicip_fr)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
 | **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … |
 | **[Non listé sur le DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | … | ✘ | … | … | … | … |

From 9c4a7026b89f4a4a78b806c8f8fa0c272d412662 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Tue, 17 Mar 2020 12:49:54 +0000
Subject: [PATCH 326/360] add a mindmapping software

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index ad106cd0..84ef23d2 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -149,3 +149,4 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
 - [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)
 - [Yggdrasil](https://yggdrasil-network.github.io/) / [github](https://github.com/yggdrasil-network/yggdrasil-go)
+- [WiseMapping](http://www.wisemapping.com/inyourserver.html) / [developpement](https://bitbucket.org/wisemapping/wisemapping-open-source)
\ No newline at end of file

From 4bac16827a4eb76239335aafab977b78afc8d749 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 19 Mar 2020 12:31:27 +0000
Subject: [PATCH 327/360] added omeka s

---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index ad106cd0..82e3812a 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -92,6 +92,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
 - [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
 - [Ombi](https://github.com/tidusjar/Ombi)
+- [Omeka S](https://github.com/omeka/omeka-s)
 - [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
 - [OpenCart](https://www.opencart.com) / [github](https://github.com/opencart/opencart)
 - [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)

From dcdf9522e64f93e5f312bea187e530d7beb1971f Mon Sep 17 00:00:00 2001
From: Kayou <pierre.moltess@gmail.com>
Date: Mon, 23 Mar 2020 00:53:37 +0100
Subject: [PATCH 328/360] https://github.com/YunoHost/yunohost/pull/894

---
 groups_and_permissions.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index 4b28d3ee..7d8070b0 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -134,7 +134,7 @@ Installing an app creates the permission `app.main` with `all_users` allowed by
 If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special groups `visitors`:
 
 ```bash
-ynh_permission_update --permission "main" --add "visitors"
+ynh_permission_update --permission "main" --add "all_users" "visitors"
 ```
 
 If you wish to create a custom permission for your app (e.g. to restrict access to an admin interface) you may use the following helpers:
@@ -181,7 +181,7 @@ But you can create a fake permission and use hooks to handle if there is a chang
 
 In the install script, create the fake permission (with no url):
 
-`ynh_permission_create --permission="create poll" --allowed="visitors"`
+`ynh_permission_create --permission="create poll" --allowed "visitors" "all_users"`
 
 Then use the legacy protection:
 
@@ -278,4 +278,4 @@ Don't forget to replace `__APP__` during the install/upgrade script.
 
 Here some apps that use this specific case: [Lutim](https://github.com/YunoHost-Apps/lutim_ynh/pull/44/files) and [Opensondage](https://github.com/YunoHost-Apps/opensondage_ynh/pull/59/files)
 
-If you have any questions, please contact someone from the apps-group.
\ No newline at end of file
+If you have any questions, please contact someone from the apps-group.

From ffd82d1c8f91109f64141978b21f4ff6c442eda8 Mon Sep 17 00:00:00 2001
From: Kayou <pierre.moltess@gmail.com>
Date: Thu, 26 Mar 2020 21:32:50 +0100
Subject: [PATCH 329/360] Update groups_and_permissions.md

---
 groups_and_permissions.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index 4b28d3ee..d08c3231 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -159,6 +159,7 @@ When migrating away from the legacy permission, you should:
 - remove any management of `$is_public`-like or `$admin_user`-like setting, except for any manifest question meant to either *initialize* the app as public/private or specific permissions ;
 - remove any management of `skipped_`, `unprotected_` and `protected_uris` (and `_regex`) settings that are now considered obsolete and deprecated. (N.B.: you should **explicitly delete them in the upgrade script**). Instead, you should now rely on the new `ynh_permission_*` helpers instead. If you do feel like you still need to use them, please contact the core team to provide your feedback and we'll figure out something ;
 For example, in the upgrade script if you used the `protected_uris` key before, you may use this code in the `DOWNWARD COMPATIBILITY` section:
+
 ```bash
 protected_uris=$(ynh_app_setting_get --app=$app --key=protected_uris)
 
@@ -278,4 +279,4 @@ Don't forget to replace `__APP__` during the install/upgrade script.
 
 Here some apps that use this specific case: [Lutim](https://github.com/YunoHost-Apps/lutim_ynh/pull/44/files) and [Opensondage](https://github.com/YunoHost-Apps/opensondage_ynh/pull/59/files)
 
-If you have any questions, please contact someone from the apps-group.
\ No newline at end of file
+If you have any questions, please contact someone from the apps-group.

From bbbe87418eee988855fa4ee14bc5943d27565030 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Fri, 27 Mar 2020 02:36:14 +0100
Subject: [PATCH 330/360] Update groups_and_permissions.md

---
 groups_and_permissions.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index fbeed2ef..b24c1f09 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -134,7 +134,7 @@ Installing an app creates the permission `app.main` with `all_users` allowed by
 If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special groups `visitors`:
 
 ```bash
-ynh_permission_update --permission "main" --add "all_users" "visitors"
+ynh_permission_update --permission "main" --add visitors
 ```
 
 If you wish to create a custom permission for your app (e.g. to restrict access to an admin interface) you may use the following helpers:

From b400ba3bbe87198a5759d1e79c0e6b9f2b04181f Mon Sep 17 00:00:00 2001
From: Aeris One <aeris@e.email>
Date: Fri, 27 Mar 2020 22:48:51 +0100
Subject: [PATCH 331/360] Remove old application lists

---
 packaging_apps_guidelines.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_guidelines.md b/packaging_apps_guidelines.md
index b9607d37..0c606a94 100644
--- a/packaging_apps_guidelines.md
+++ b/packaging_apps_guidelines.md
@@ -113,7 +113,7 @@ These deposits have several functions:
 * indicate the state of operation of the packet;
 * indicate information about the support of a package.
 
-For the `official.json` and` community.json` lists maintained by the project team, registration is on [the git apps repository](https://github.com/YunoHost/apps). Other non-official lists may exists (including those for non-free apps for example), see more about that in the [community forum](https//forum.yunohost.org).
+For the `apps.json` list maintained by the project team, registration is on [the git apps repository](https://github.com/YunoHost/apps). Other non-official lists may exists (including those for non-free apps for example), see more about that in the [community forum](https//forum.yunohost.org).
 
 #### YEP 1.3
 ##### Indicate the license associated with the package | draft | AUTO | WORKING |

From 343dcaf505c82d47b6b1350f1cb895e89f3ec59e Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Sat, 28 Mar 2020 01:55:03 +0100
Subject: [PATCH 332/360] Now permissions are managed from the webadmin as well

---
 groups_and_permissions.md                       |   5 ++++-
 images/button_to_go_to_permission_interface.png | Bin 0 -> 18969 bytes
 2 files changed, 4 insertions(+), 1 deletion(-)
 create mode 100644 images/button_to_go_to_permission_interface.png

diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index b24c1f09..752b2698 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -1,7 +1,10 @@
 User groups and permissions
 ===========================
 
-Warning : for now, these features are only available through the command line (c.f. `yunohost user group --help` and `yunohost user permission --help`)
+You can access the group and permissions management interface from the webadmin
+by going into the 'Users' section and clicking the corresponding button:
+
+![](./images/button_to_go_to_permission_interface.png)
 
 Managing groups
 ---------------
diff --git a/images/button_to_go_to_permission_interface.png b/images/button_to_go_to_permission_interface.png
new file mode 100644
index 0000000000000000000000000000000000000000..65b998d9ca7cabd718b1dc18e20674a9647cbefd
GIT binary patch
literal 18969
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%0A@HO`Vt}iM!t_
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
SA2p2t0000<MNUMnLSTY~Z?`f4

literal 0
HcmV?d00001


From 07ba4249e27ef9293a67d558ba840fefa240b1cc Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alexandre.aubin@cern.ch>
Date: Sat, 28 Mar 2020 01:55:19 +0100
Subject: [PATCH 333/360] Update small section to point to new group and
 permission page

---
 users_fr.md | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/users_fr.md b/users_fr.md
index 931551a4..dbb273f6 100644
--- a/users_fr.md
+++ b/users_fr.md
@@ -25,10 +25,11 @@ Dans le portail, les utilisateurs peuvent également cliquer sur l'avatar en hau
 Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (c.-à-d. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (c.-à-d. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_nework).
 </div>
 
-Permissions d'accès aux applications
----------------
+Gestion des groupes d'utilisateurs et permissions
+---------------------------
+
+Voir [cette page de documentation dédiée](groups_and_permissions).
 
-L'accès aux applications peut être limité à certains utilisateurs seulement. Ceci peut être configuré via la webadmin dans Applications > (une application) > Accès, ou de la même manière via la ligne de commande `yunohost app addaccess`, `removeaccess` et `clearaccess`.
 
 Accès SSH
 ----------

From 0d5165a604e364f119896d577a2411115105c98f Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 28 Mar 2020 06:52:25 +0100
Subject: [PATCH 334/360] Many typo or broken links / outdated info

---
 app_piwigo_fr.md            | 4 ++--
 chat_rooms.md               | 2 +-
 chat_rooms_fr.md            | 2 +-
 faq.md                      | 2 +-
 faq_de.md                   | 2 +-
 faq_fr.md                   | 2 +-
 troubleshooting_guide.md    | 7 +++----
 troubleshooting_guide_fr.md | 8 +++-----
 users.md                    | 2 +-
 users_fr.md                 | 2 +-
 whatsyunohost_de.md         | 2 +-
 11 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/app_piwigo_fr.md b/app_piwigo_fr.md
index ada13e24..1c5b704a 100644
--- a/app_piwigo_fr.md
+++ b/app_piwigo_fr.md
@@ -13,8 +13,8 @@ Les extensions rendent Piwigo facilement personnalisable. Cerise sur le gâteau,
 
 ## Fonctionnalités
 
-En plus des [fonctionnalités principales](Piwigo) de Piwigo, ce paquet propose également:
- 
+En plus des [fonctionnalités principales](http://piwigo.org/basics/features) de Piwigo, ce paquet propose également:
+
  * une intégration avec le système de gestion des utilisateurs et le SSO de Yunohost :
    * installation privée : limitée aux utilisateurs de YunoHost
    * installation publique :
diff --git a/chat_rooms.md b/chat_rooms.md
index f4844f5c..19c1ab2b 100644
--- a/chat_rooms.md
+++ b/chat_rooms.md
@@ -10,7 +10,7 @@ You could join those chat rooms using :
 
 #### Help and support chatroom
 
-There is a [support](support_fr) chatroom for YunoHost users mutual support and help.
+There is a [support](help_fr) chatroom for YunoHost users mutual support and help.
 
 - IRC: **#yunohost** on irc.freenode.net ;
 - Matrix: **#freenode_#yunohost:matrix.org** ;
diff --git a/chat_rooms_fr.md b/chat_rooms_fr.md
index 249d49f1..30dde1aa 100644
--- a/chat_rooms_fr.md
+++ b/chat_rooms_fr.md
@@ -9,7 +9,7 @@ Vous pouvez rejoindre ces salons avec:
 
 
 #### Salon d'entraide et de support
-Le salon d’[entraide](support_fr) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement.
+Le salon d’[entraide](help_fr) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement.
 - IRC : **#yunohost** sur irc.freenode.net (voir kiwiirc ci-dessus)
 - Matrix : **#freenode_#yunohost:matrix.org**
 - XMPP : **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)**
diff --git a/faq.md b/faq.md
index 6b83f90b..06a77692 100644
--- a/faq.md
+++ b/faq.md
@@ -95,7 +95,7 @@ and having some free time. Other than that, just doing what you can is already a
 
 #### What's YunoHost's political model?
 
-It is described in [this document](yunohost_project_organization.md) :).
+It is described in [this document](project_organization) :).
 
 
 #### Will you port YunoHost to [insert favorite distro]?
diff --git a/faq_de.md b/faq_de.md
index 5a1928e1..2f131cd5 100644
--- a/faq_de.md
+++ b/faq_de.md
@@ -72,7 +72,7 @@ Es ist ein weit verbreitetes Missverständnis, dass Neulinge bei offenen Softwar
 
 #### Was sind YunoHost organisatorische Grundsätze ?
 
-Das beschreiben wir in [diesem Dokument](yunohost_project_organization) :).
+Das beschreiben wir in [diesem Dokument](project_organization) :).
 
 
 #### Werdet ihr YunoHosts für [Lieblingsdistribution hier einfügen] portieren ?
diff --git a/faq_fr.md b/faq_fr.md
index 22b4d10c..cac06172 100644
--- a/faq_fr.md
+++ b/faq_fr.md
@@ -88,7 +88,7 @@ pouvez, c’est déjà trop cool !
 
 #### Quel est le modèle politique de YunoHost ?
 
-Il est décrit dans [ce document](yunohost_project_organization) :).
+Il est décrit dans [ce document](project_organization) :).
 
 
 
diff --git a/troubleshooting_guide.md b/troubleshooting_guide.md
index 50683619..7bb35784 100644
--- a/troubleshooting_guide.md
+++ b/troubleshooting_guide.md
@@ -9,10 +9,9 @@ This means that everytime you want to try a new thing (non-official app, new spe
 
 Also: https://wiki.debian.org/DontBreakDebian
 
-### Use non-official apps with caution
-While it's tempting to install every [non-official apps](https://yunohost.org/#/apps_in_progress_en) please don't. Even if the app is marked as ready. Before testing an app you should read at least part of the package source code. Install, remove and upgrade script should be present. 
-Keep in mind that when you install an app, you execute code on your server with root privileges.
-From my experience, some packaging are excellent and others can break some part of your YunoHost instance. Some packages are unmaintained. So before install check package issues, the [Forum](http://forum.yunohost.org/) and the [YunoHost support room](support_en) to see if other have problem with the app.
+### Do not install bad quality apps
+
+Even if it can be tempting to install every [apps](https://yunohost.org/#/apps), be careful to their quality level as a bad quality app can ultimately break your server. If you absolutely wish to install such an app, at least try to do it on a test server or check if issues has been posted to this app's Github repository or on the [forum](http://forum.yunohost.org/).
 
 ### Check the official documentation
 Answer to your question may be already in [the documentation](https://yunohost.org/#/docs_en).
diff --git a/troubleshooting_guide_fr.md b/troubleshooting_guide_fr.md
index 2f107da0..6a0f1e12 100644
--- a/troubleshooting_guide_fr.md
+++ b/troubleshooting_guide_fr.md
@@ -9,11 +9,9 @@ La meilleure manière de ne pas avoir de pannes est de ne pas bricoler sur votre
 
 Vous pouvez aussi lire ceci si vous avez encore envie de bricoler sur votre instance YunoHost en production : https://wiki.debian.org/DontBreakDebian
 
-### Utilisez les applications non-officielles avec attention
-Bien que ce soit tentant d’installer toutes les [applications non officielles](https://yunohost.org/#/apps_in_progress_fr), s’il vous plaît ne le faites pas, même si l’application est indiquée comme prête.
-Avant de tester, vous devriez lire au moins le code source de l’application et vérifier que les fichiers d’installation, de suppression et de mise à jour sont bien présents.
-Garder à l’esprit que quand vous installez une application, vous exécutez du code avec des droits root. De mon expérience, certaines applications sont excellentes, d’autres peuvent casser votre instance YunoHost et certaines ne sont plus maintenues. Alors, avant d’installer, regardez les problèmes rencontrés (issues dans GitHub), le [Forum](http://forum.yunohost.org/) 
-et [le salon de discussion Yunohost](support_fr) pour voir si d’autres ont eu des problèmes avec l’application.
+### N'installez pas d'applications de mauvaise qualité
+
+Bien que ce soit tentant d’installer toutes les [applications](https://yunohost.org/#/apps), faites attention à leur niveau de qualité car une mauvaise application peut casser votre serveur. Si la qualité d'une application laisse à désirez mais que vous souhaitez tout de même absolument l'installer, essayez de faire ça sur un serveur de test, ou vérifiez au minimum si des problèmes ont été remontés sur le dépôt Github associé ou bien sur le [forum](http://forum.yunohost.org/).
 
 ### Vérifier la documentation officielle
 Les réponses à vos questions existent peut être déjà dans [la documentation](docs_fr).
diff --git a/users.md b/users.md
index cccdaf76..a570d767 100644
--- a/users.md
+++ b/users.md
@@ -22,7 +22,7 @@ The user portal, also called the SSO for 'Single Sign On' allows user to browse
 In the portal, users can also click on the avatar in the top-left to configure some other settings such as their identify, mail aliases, automatic mail forwards, or change their password.
 
 <div class="alert alert-info" markdown="1">
-You should be aware that the SSO can only be reached through the actual domain name (i.e. `https://the.domain.tld/yunohost/sso`), and NOT by just using the IP of the server (i.e. `https://11.22.33.44/yunohost/sso`), contrarily to the webadmin ! This is a bit confusing but is necessary for technical reason. If you are in a situation where you need to access the SSO without having your DNS properly configured for some reason, you might consider tweaking your `/etc/hosts` as described in [this page](dns_local_nework).
+You should be aware that the SSO can only be reached through the actual domain name (i.e. `https://the.domain.tld/yunohost/sso`), and NOT by just using the IP of the server (i.e. `https://11.22.33.44/yunohost/sso`), contrarily to the webadmin ! This is a bit confusing but is necessary for technical reason. If you are in a situation where you need to access the SSO without having your DNS properly configured for some reason, you might consider tweaking your `/etc/hosts` as described in [this page](dns_local_network).
 </div>
 
 User groups and permissions
diff --git a/users_fr.md b/users_fr.md
index dbb273f6..c52522dc 100644
--- a/users_fr.md
+++ b/users_fr.md
@@ -22,7 +22,7 @@ Le portail utilisateur, également appelé SSO pour 'Single Sign On', permet à
 Dans le portail, les utilisateurs peuvent également cliquer sur l'avatar en haut à gauche pour configurer d'autres paramètres tels que leur identité, les alias de messagerie, les transferts automatiques de courrier ou changer leur mot de passe.
 
 <div class="alert alert-info" markdown="1">
-Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (c.-à-d. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (c.-à-d. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_nework).
+Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (c.-à-d. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (c.-à-d. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_network).
 </div>
 
 Gestion des groupes d'utilisateurs et permissions
diff --git a/whatsyunohost_de.md b/whatsyunohost_de.md
index 74f436f3..226b6a0f 100644
--- a/whatsyunohost_de.md
+++ b/whatsyunohost_de.md
@@ -3,7 +3,7 @@ Was ist YunoHost?
 
 <img src="/images/YunoHost_logo_vertical.png" width=400>
 
-YunoHost ist ein **Betriebssystem**, das auf die einfachste Verwaltung eines **Servers** abzielt und daher das [Self-Hosting](Selfhosting) demokratisiert, wobei sichergestellt wird, dass es zuverlässig, sicher, ethisch einwandfrei und leichtgewichtig bleibt. Es ist ein Copylefted-Libre-Softwareprojekt, das ausschließlich von Freiwilligen betrieben wird. Technisch gesehen kann es als eine Distribution angesehen werden, die auf [Debian GNU / Linux](https://debian.org) basiert und auf [vielen Arten von Hardware](install) installiert werden kann.
+YunoHost ist ein **Betriebssystem**, das auf die einfachste Verwaltung eines **Servers** abzielt und daher das [Self-Hosting](selfhosting) demokratisiert, wobei sichergestellt wird, dass es zuverlässig, sicher, ethisch einwandfrei und leichtgewichtig bleibt. Es ist ein Copylefted-Libre-Softwareprojekt, das ausschließlich von Freiwilligen betrieben wird. Technisch gesehen kann es als eine Distribution angesehen werden, die auf [Debian GNU / Linux](https://debian.org) basiert und auf [vielen Arten von Hardware](install) installiert werden kann.
 
 Features
 --------

From 7fd17c3eb64c0ce0102b107a6218895ca7486976 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 28 Mar 2020 06:54:10 +0100
Subject: [PATCH 335/360] Reuniformize links

---
 OVH_fr.md                                 |  6 +-
 XMPP.md                                   |  2 +-
 XMPP_es.md                                |  2 +-
 XMPP_fr.md                                |  2 +-
 admin_es.md                               |  2 +-
 admin_fr.md                               |  2 +-
 admindoc_fr.md                            | 94 +++++++++++------------
 app_jappix_fr.md                          |  2 +-
 app_nextcloud.md                          |  2 +-
 app_nextcloud_fr.md                       | 10 +--
 app_transmission_fr.md                    |  2 +-
 apps.md                                   |  2 +-
 apps_ar.md                                |  2 +-
 apps_es.md                                |  2 +-
 apps_it.md                                |  2 +-
 apps_overview.md                          |  2 +-
 apps_overview_fr.md                       |  2 +-
 apps_wishlist.md                          |  2 +-
 apps_wishlist_fr.md                       |  2 +-
 backup_fr.md                              |  2 +-
 boot_and_graphical_install_fr.md          |  2 +-
 certificate_custom_fr.md                  |  4 +-
 certificate_es.md                         |  2 +-
 certificate_fr.md                         |  2 +-
 change_admin_password_fr.md               |  2 +-
 chat_rooms.md                             |  2 +-
 chat_rooms_fr.md                          |  2 +-
 collabora_en.md                           |  2 +-
 collabora_fr.md                           |  2 +-
 commandline_es.md                         |  2 +-
 contribute.md                             |  2 +-
 contribute_ar.md                          | 10 +--
 contribute_fr.md                          | 12 +--
 contributordoc.md                         |  8 +-
 contributordoc_fr.md                      | 36 ++++-----
 diagnostic_fr.md                          |  6 +-
 dns.md                                    |  6 +-
 dns_config_es.md                          |  2 +-
 dns_config_fr.md                          |  2 +-
 dns_dynamicip.md                          |  8 +-
 dns_dynamicip_fr.md                       |  8 +-
 dns_es.md                                 | 10 +--
 dns_fr.md                                 | 10 +--
 docs.md                                   |  8 +-
 docs_ar.md                                | 10 +--
 docs_de.md                                |  8 +-
 docs_fr.md                                | 14 ++--
 docs_it.md                                | 10 +--
 domains_fr.md                             |  4 +-
 email_es.md                               | 10 +--
 email_fr.md                               |  2 +-
 email_migration.md                        |  2 +-
 email_migration_fr.md                     |  2 +-
 faq.md                                    |  2 +-
 faq_de.md                                 |  2 +-
 faq_fr.md                                 |  2 +-
 filezilla_fr.md                           |  2 +-
 hardware_es.md                            |  2 +-
 hardware_fr.md                            |  2 +-
 index.md                                  |  2 +-
 index_ar.md                               | 10 +--
 index_de.md                               |  4 +-
 index_es.md                               |  2 +-
 index_fr.md                               | 14 ++--
 index_it.md                               |  4 +-
 index_oc.md                               | 26 +++----
 install_ar.md                             | 14 ++--
 install_es.md                             | 16 ++--
 install_fr.md                             | 14 ++--
 install_iso_es.md                         | 12 +--
 install_iso_fr.md                         | 12 +--
 install_iso_it.md                         |  2 +-
 install_manually_es.md                    |  2 +-
 install_on_arm_board.md                   |  8 +-
 install_on_arm_board_es.md                | 22 +++---
 install_on_arm_board_fr.md                | 22 +++---
 install_on_debian_fr.md                   |  6 +-
 install_on_raspberry_es.md                | 16 ++--
 install_on_raspberry_fr.md                | 16 ++--
 install_on_raspberry_it.md                |  2 +-
 install_on_virtualbox_es.md               |  6 +-
 install_on_virtualbox_fr.md               |  4 +-
 install_on_vps_es.md                      |  6 +-
 install_on_vps_fr.md                      |  6 +-
 isp.md                                    |  4 +-
 isp_box_config.md                         |  8 +-
 isp_box_config_es.md                      | 10 +--
 isp_box_config_fr.md                      | 10 +--
 isp_es.md                                 | 14 ++--
 isp_fr.md                                 | 14 ++--
 isp_free_fr.md                            |  6 +-
 isp_orange_fr.md                          |  2 +-
 isp_sfr_fr.md                             |  2 +-
 packaging_apps.md                         | 22 +++---
 packaging_apps_arguments_management.md    |  2 +-
 packaging_apps_arguments_management_fr.md |  2 +-
 packaging_apps_fr.md                      | 24 +++---
 packaging_apps_guidelines.md              |  6 +-
 packaging_apps_guidelines_fr.md           |  6 +-
 packaging_apps_hooks_fr.md                |  2 +-
 packaging_apps_manifest.md                |  4 +-
 packaging_apps_manifest_fr.md             |  4 +-
 packaging_apps_multiinstance.md           |  6 +-
 packaging_apps_multiinstance_fr.md        |  6 +-
 packaging_apps_scripts.md                 |  2 +-
 packaging_apps_scripts_fr.md              |  2 +-
 packaging_apps_start.md                   |  4 +-
 packaging_apps_start_fr.md                |  4 +-
 packaging_apps_virtualbox_fr.md           |  6 +-
 postinstall_es.md                         | 16 ++--
 postinstall_fr.md                         | 16 ++--
 security_fr.md                            |  6 +-
 selfhosting_ru.md                         |  4 +-
 ssh.md                                    |  2 +-
 ssh_es.md                                 |  6 +-
 ssh_fr.md                                 |  4 +-
 ssh_it.md                                 |  2 +-
 troubleshooting_guide.md                  | 14 ++--
 troubleshooting_guide_fr.md               | 16 ++--
 use_case_non-profit_organisations.md      |  2 +-
 use_case_non-profit_organisations_fr.md   |  2 +-
 use_case_non-profit_organisations_oc.md   |  2 +-
 whatsyunohost_ar.md                       |  6 +-
 whatsyunohost_fr.md                       |  2 +-
 124 files changed, 444 insertions(+), 444 deletions(-)

diff --git a/OVH_fr.md b/OVH_fr.md
index 92df9c1f..303626bd 100644
--- a/OVH_fr.md
+++ b/OVH_fr.md
@@ -10,16 +10,16 @@ Cliquez sur l'onglet **Zone DNS**, puis sur **Ajouter une entrée**:
 
 <img src="/images/ovh_dns_zone.png" width=800>
 
-Il suffit maintenant d'ajouter les redirections DNS comme indiqué dans la [configuration DNS standard](/dns_config_fr).
+Il suffit maintenant d'ajouter les redirections DNS comme indiqué dans la [configuration DNS standard](/dns_config).
 
 
 ###IP dynamique
 
-[Tutoriel plus général sur l’IP dynamique](dns_dynamicip_fr).
+[Tutoriel plus général sur l’IP dynamique](/dns_dynamicip).
 
 Cette partie est à suivre, que si votre IP est dynamique.
 
-Pour savoir si votre fournisseur d’accès internet vous fournit une IP dynamique [voir ici](/isp_fr).
+Pour savoir si votre fournisseur d’accès internet vous fournit une IP dynamique [voir ici](/isp).
 
 Commencez par créer un identifiant DynHost.
 
diff --git a/XMPP.md b/XMPP.md
index 2cef78c0..f549d01d 100644
--- a/XMPP.md
+++ b/XMPP.md
@@ -53,7 +53,7 @@ XMPP chats can be made secure and private using [OMEMO] encryption (https://xmpp
 
 To create a chatroom (multi-user chat) on your YunoHost server, use the identifier `chatroomname@muc.yourdomain.tld`.
 
-For this to work you need to [add the corresponding `muc.` DNS record](dns_config_fr) in the DNS configuration.
+For this to work you need to [add the corresponding `muc.` DNS record](/dns_config) in the DNS configuration.
 
 ## VoIP and videoconferences
 
diff --git a/XMPP_es.md b/XMPP_es.md
index 228b941f..76f45f25 100644
--- a/XMPP_es.md
+++ b/XMPP_es.md
@@ -43,7 +43,7 @@ Es posible cifrar tu conversaciones XMPP con la ayuda de [OMEMO](https://xmpp.or
 
 Para crear un salón de discusión (Multi-user chat) en tu servidor Yunohost, utiliza el ID nombredelsalon@muc.dominio.tld (donde dominio.tld es el dominio principal de tu servidor).
 
-Si utilizas un nombre de dominio personal, es necesario [añadir una redirección de tipo CNAME para el subdominio `muc.`](dns_config_es) en tu servidor DNS.
+Si utilizas un nombre de dominio personal, es necesario [añadir una redirección de tipo CNAME para el subdominio `muc.`](/dns_config) en tu servidor DNS.
 
 ### VoIP y videoconferencias
 
diff --git a/XMPP_fr.md b/XMPP_fr.md
index 594f2151..0273219f 100644
--- a/XMPP_fr.md
+++ b/XMPP_fr.md
@@ -52,7 +52,7 @@ Il est possible de rendre les conversations plus sécurisées et privées en les
 
 Pour créer un salon de discussion (Multi-user chat) sur votre serveur Yunohost utilisez l’identifiant nomsalon@muc.domaine.tld (où domaine.tld est le domaine principal de votre serveur).
 
-Si vous utilisez un nom de domaine personnel, il est nécessaire d’[ajouter une redirection de type CNAME pour le sous domaine `muc.`](dns_config_fr) au niveau de votre serveur DNS.
+Si vous utilisez un nom de domaine personnel, il est nécessaire d’[ajouter une redirection de type CNAME pour le sous domaine `muc.`](/dns_config) au niveau de votre serveur DNS.
 
 ## VoIP et visioconférence
 
diff --git a/admin_es.md b/admin_es.md
index dc6bea60..573adb3b 100644
--- a/admin_es.md
+++ b/admin_es.md
@@ -1,6 +1,6 @@
 # La interfaz de administración web
 
-Yunohost tiene una interfaz gráfica de administración. El otro método consiste en utilizar la [linea de comando](/commandline_es).
+Yunohost tiene una interfaz gráfica de administración. El otro método consiste en utilizar la [linea de comando](/commandline).
 
 ### Acceso
 
diff --git a/admin_fr.md b/admin_fr.md
index ec8476e5..5601de0f 100644
--- a/admin_fr.md
+++ b/admin_fr.md
@@ -1,6 +1,6 @@
 # L’interface d’administration web
 
-YunoHost est fourni avec une interface graphique d’administration. L’autre méthode est d’utiliser la [ligne de commande](/commandline_fr).
+YunoHost est fourni avec une interface graphique d’administration. L’autre méthode est d’utiliser la [ligne de commande](/commandline).
 
 ### Accès
 
diff --git a/admindoc_fr.md b/admindoc_fr.md
index 2f186795..d248a210 100644
--- a/admindoc_fr.md
+++ b/admindoc_fr.md
@@ -1,56 +1,56 @@
 # Documentation pour les administrateurs YunoHost
 
 * Découvrir l'auto-hébergement
-    * [Qu'est-ce que l'auto-hébergement](/selfhosting_fr)
-    * [Qu'est-ce que YunoHost](/whatsyunohost_fr)
-    * [Essayer YunoHost](/try_fr)
-    * [Choisir son mode d'hébergement](howtohostyourself_fr)
-        * [Matériel compatible](/hardware_fr)
-        * [À propos des fournisseurs d'accès internet](/isp_fr)
-* [Guide d’installation](/install_fr)
-    * [Sur un ordinateur "standard"](/install_iso_fr)
-    * [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps_fr)
-    * [Sur un Raspberry Pi](/install_on_raspberry_fr)
-    * [Sur une carte ARM](/install_on_arm_board_fr)
-    * [Sur Debian](/install_on_debian_fr)
-    * [Sur VirtualBox](/install_on_virtualbox_fr)
+    * [Qu'est-ce que l'auto-hébergement](/selfhosting)
+    * [Qu'est-ce que YunoHost](/whatsyunohost)
+    * [Essayer YunoHost](/try)
+    * [Choisir son mode d'hébergement](/howtohostyourself)
+        * [Matériel compatible](/hardware)
+        * [À propos des fournisseurs d'accès internet](/isp)
+* [Guide d’installation](/install)
+    * [Sur un ordinateur "standard"](/install_iso)
+    * [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps)
+    * [Sur un Raspberry Pi](/install_on_raspberry)
+    * [Sur une carte ARM](/install_on_arm_board)
+    * [Sur Debian](/install_on_debian)
+    * [Sur VirtualBox](/install_on_virtualbox)
 * Finaliser son installation
-    * [Post-installation](/postinstall_fr)
-    * [Configurer les redirections de port](/isp_box_config_fr)
-    * [Configurer les enregistrements DNS](/dns_config_fr)
-    * [Installer un certificat SSL](/certificate_fr)
-    * [Diagnostic du bon fonctionnement du YunoHost](/diagnostic_fr)
+    * [Post-installation](/postinstall)
+    * [Configurer les redirections de port](/isp_box_config)
+    * [Configurer les enregistrements DNS](/dns_config)
+    * [Installer un certificat SSL](/certificate)
+    * [Diagnostic du bon fonctionnement du YunoHost](/diagnostic)
 * Apprendre à connaitre YunoHost
-    * [Vue d'ensemble de YunoHost](/overview_fr)
-    * [Conseil généraux](/guidelines_fr)
-    * [L'interface d'administration web](/admin_fr)
-    * [SSH](/ssh_fr) et [l'administration en ligne de commande](/commandline_fr)
-    * [Les utilisateurs et le SSO](/users_fr)
-    * [Les applications](/apps_overview_fr)
-    * [Les domaines, la configuration DNS et les certificats](/domains_fr)
-    * [Les emails](/email_fr)
-       * [Formulaires pour enlever son adresse IP des listes noires](/blacklist_forms_fr)
-    * [XMPP](/XMPP_fr)
-    * [Les sauvegardes](/backup_fr)
-    * [Mettre à jour le système](/update_fr) et [les applications](/app_update_fr)
-    * [La sécurité](/security_fr)
+    * [Vue d'ensemble de YunoHost](/overview)
+    * [Conseil généraux](/guidelines)
+    * [L'interface d'administration web](/admin)
+    * [SSH](/ssh) et [l'administration en ligne de commande](/commandline)
+    * [Les utilisateurs et le SSO](/users)
+    * [Les applications](/apps_overview)
+    * [Les domaines, la configuration DNS et les certificats](/domains)
+    * [Les emails](/email)
+       * [Formulaires pour enlever son adresse IP des listes noires](/blacklist_forms)
+    * [XMPP](/XMPP)
+    * [Les sauvegardes](/backup)
+    * [Mettre à jour le système](/update) et [les applications](/app_update)
+    * [La sécurité](/security)
 * Pour aller plus loin
     * Noms de domaine
-        * [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me_fr)
-        * [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip_fr)
-        * [DNS et installation d’une application sur un sous-domaine](/dns_subdomains_fr)
-        * [Utiliser le résolveur DNS local](/dns_resolver_fr)
-        * [Gérer les enregistrements DNS chez OVH](/OVH_fr)
+        * [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me)
+        * [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip)
+        * [DNS et installation d’une application sur un sous-domaine](/dns_subdomains)
+        * [Utiliser le résolveur DNS local](/dns_resolver)
+        * [Gérer les enregistrements DNS chez OVH](/OVH)
     * Notes à propos de certains fournisseurs d'accès à Internet
-       * [SFR](/isp_sfr_fr)
-       * [Orange](/isp_orange_fr)
-       * [Free](/isp_free_fr)
+       * [SFR](/isp_sfr)
+       * [Orange](/isp_orange)
+       * [Free](/isp_free)
     * [Échanger des fichiers avec son serveur à l'aide d'une interface graphique](/filezilla)
-    * [Modifier l'apparence du portail utilisateur](/theming_fr)
-    * [Ajouter un stockage externe](/external_storage_fr)
-    * [Migrer ses emails vers YunoHost](/email_migration_fr)
-    * [YunoHost avec un service caché Tor](/torhiddenservice_fr)
-    * [Utilisation de certificats autres que Let's Encrypt](/certificate_custom_fr)
-* [Guide de dépannage](/troubleshooting_guide_fr)
-    * [Débloquer une IP dans Fail2ban](/fail2ban_fr)
-    * [Changer le mot de passe d’administration](/change_admin_password_fr)
+    * [Modifier l'apparence du portail utilisateur](/theming)
+    * [Ajouter un stockage externe](/external_storage)
+    * [Migrer ses emails vers YunoHost](/email_migration)
+    * [YunoHost avec un service caché Tor](/torhiddenservice)
+    * [Utilisation de certificats autres que Let's Encrypt](/certificate_custom)
+* [Guide de dépannage](/troubleshooting_guide)
+    * [Débloquer une IP dans Fail2ban](/fail2ban)
+    * [Changer le mot de passe d’administration](/change_admin_password)
diff --git a/app_jappix_fr.md b/app_jappix_fr.md
index e9b0fd2d..aa044fe2 100644
--- a/app_jappix_fr.md
+++ b/app_jappix_fr.md
@@ -1,3 +1,3 @@
 #<img src="/images/jappix.png">Jappix
 
-Jappix est un client web [XMPP](/XMPP_fr).
+Jappix est un client web [XMPP](/XMPP).
diff --git a/app_nextcloud.md b/app_nextcloud.md
index 66ad3fb7..44bfa713 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -37,7 +37,7 @@ Finally click on the check mark to validate the folder.
 
 #### II. Migrate Nextcloud data to a larger partition
 
-**Note**: The following assumes that you have a hard disk mounted on `/media/storage`. Refer to[this article](/external_storage_en) to prepare your system.
+**Note**: The following assumes that you have a hard disk mounted on `/media/storage`. Refer to[this article](/external_storage) to prepare your system.
 
 **Note**: Replace `nextcloud` with the name of its instance, if you have several Nextcloud apps installed.
 
diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index fb889026..4fcfa6f2 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -37,7 +37,7 @@ Enfin cliquer sur la coche pour valider le dossier.
 
 #### II. Migrer les données de Nextcloud dans une partition plus grosse
 
-**Remarque** : Ce qui suit suppose que vous avez un disque dur monté sur `/media/stockage`. Référez-vous à [cet article](/external_storage_fr) pour préparer votre système.
+**Remarque** : Ce qui suit suppose que vous avez un disque dur monté sur `/media/stockage`. Référez-vous à [cet article](/external_storage) pour préparer votre système.
 
 **Remarque** : Remplacez `nextcloud` par le nom de son instance, si vous avez plusieurs apps Nextcloud installées.
 
@@ -158,10 +158,10 @@ Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est
 
 ## Applications Tiers<a name="AppsTiers" href=""></a>
 
- + [Calendrier](app_nextcloud_calendar_fr)
- + [contact](app_nextcloud_contact_fr)
- + [KeeWeb](app_nextcloud_keeweb_fr)
- + [Carnet](app_nextcloud_carnet_fr)
+ + [Calendrier](/app_nextcloud_calendar)
+ + [contact](/app_nextcloud_contact)
+ + [KeeWeb](/app_nextcloud_keeweb)
+ + [Carnet](/app_nextcloud_carnet)
 
 ## Quelques liens utiles<a name="liensutiles" href=""></a>
 
diff --git a/app_transmission_fr.md b/app_transmission_fr.md
index cb94f3bb..fb7f1e75 100644
--- a/app_transmission_fr.md
+++ b/app_transmission_fr.md
@@ -27,7 +27,7 @@ scp -r /votre/fichier/ root@votre-domaine.org:/home/yunohost.transmission/comple
 ```
 
 ##### Comment télécharger un répertoire entier ?
-Une fois connecté en [SSH](ssh_fr), placez-vous dans le répertoire de téléchargement et zippez le répertoire :
+Une fois connecté en [SSH](/ssh), placez-vous dans le répertoire de téléchargement et zippez le répertoire :
 ```bash
 cd /home/yunohost.transmission/completed
 zip -r votre_archive.zip [dossier]
diff --git a/apps.md b/apps.md
index 70eff9be..7b5ff79b 100644
--- a/apps.md
+++ b/apps.md
@@ -44,7 +44,7 @@ Disclaimers
 
 <div id="app-cards-list" class="app-cards-list"></div>
 
-<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist">apps wishlist</a>.</div>
 
 <!--
 Custom CSS for this page
diff --git a/apps_ar.md b/apps_ar.md
index 70eff9be..7b5ff79b 100644
--- a/apps_ar.md
+++ b/apps_ar.md
@@ -44,7 +44,7 @@ Disclaimers
 
 <div id="app-cards-list" class="app-cards-list"></div>
 
-<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist">apps wishlist</a>.</div>
 
 <!--
 Custom CSS for this page
diff --git a/apps_es.md b/apps_es.md
index 70eff9be..7b5ff79b 100644
--- a/apps_es.md
+++ b/apps_es.md
@@ -44,7 +44,7 @@ Disclaimers
 
 <div id="app-cards-list" class="app-cards-list"></div>
 
-<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist">apps wishlist</a>.</div>
 
 <!--
 Custom CSS for this page
diff --git a/apps_it.md b/apps_it.md
index 70eff9be..7b5ff79b 100644
--- a/apps_it.md
+++ b/apps_it.md
@@ -44,7 +44,7 @@ Disclaimers
 
 <div id="app-cards-list" class="app-cards-list"></div>
 
-<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
+<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on Github or on the internet, or add it to the <a href="/apps_wishlist">apps wishlist</a>.</div>
 
 <!--
 Custom CSS for this page
diff --git a/apps_overview.md b/apps_overview.md
index 7e825725..16cbe218 100644
--- a/apps_overview.md
+++ b/apps_overview.md
@@ -21,7 +21,7 @@ The full list of application (official and community) can be browsed at [this pa
 Integration and quality levels
 ------------------------------
 
-Automated tests are being ran regularly to test the integration and quality of all official apps, as well as community apps who were declared to be 'working'. The result is a level between 0 and 7, whose meaning is detailed on [this page](/packaging_apps_levels_fr). Some tests results may also be available [on this dashboard](https://dash.yunohost.org/appci/branch/stable).
+Automated tests are being ran regularly to test the integration and quality of all official apps, as well as community apps who were declared to be 'working'. The result is a level between 0 and 7, whose meaning is detailed on [this page](/packaging_apps_levels). Some tests results may also be available [on this dashboard](https://dash.yunohost.org/appci/branch/stable).
 
 LDAP / SSO integration
 ----------------------
diff --git a/apps_overview_fr.md b/apps_overview_fr.md
index bf396e31..8aa7b904 100644
--- a/apps_overview_fr.md
+++ b/apps_overview_fr.md
@@ -21,7 +21,7 @@ La liste des applications existantes (officielles et communautaires) peut être
 Niveaux d'intégration et de qualité
 ------------------------------
 
-Des tests automatisés sont exécutés régulièrement pour tester l'intégration et la qualité de toutes les applications officielles, ainsi que les applications communautaires qui ont été déclarées "working". Le résultat est un niveau entre 0 et 7, dont la signification est détaillée sur [cette page](/packaging_apps_levels_fr). Certains résultats de tests peuvent également être disponibles sur [ce tableau de bord](https://dash.yunohost.org/appci/branch/stable).
+Des tests automatisés sont exécutés régulièrement pour tester l'intégration et la qualité de toutes les applications officielles, ainsi que les applications communautaires qui ont été déclarées "working". Le résultat est un niveau entre 0 et 7, dont la signification est détaillée sur [cette page](/packaging_apps_levels). Certains résultats de tests peuvent également être disponibles sur [ce tableau de bord](https://dash.yunohost.org/appci/branch/stable).
 
 Intégration LDAP / SSO
 ----------------------
diff --git a/apps_wishlist.md b/apps_wishlist.md
index ad106cd0..c4fa90b4 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -1,6 +1,6 @@
 # Apps wishlist
 
-<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps_en">apps list</a></div>
+<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps">apps list</a></div>
 
 The following list is a compiled wishlist of applications that would be nice-to-have.
 
diff --git a/apps_wishlist_fr.md b/apps_wishlist_fr.md
index 28616ea0..88160e7b 100644
--- a/apps_wishlist_fr.md
+++ b/apps_wishlist_fr.md
@@ -1,3 +1,3 @@
 # Apps souhaitées
 
-La liste des applications souhaitées n’est maintenue qu’en <a href="/apps_wishlist_en">version anglaise</a>. Merci de vous y référer.
+La liste des applications souhaitées n’est maintenue qu’en <a href="/apps_wishlist">version anglaise</a>. Merci de vous y référer.
diff --git a/backup_fr.md b/backup_fr.md
index 00cbe694..2dd77ff4 100644
--- a/backup_fr.md
+++ b/backup_fr.md
@@ -64,7 +64,7 @@ Télécharger et téléverser des sauvegardes
 
 Après avoir créé des sauvegardes, il est possible de les lister et de les inspecter grâce aux vues correspondantes dans la webadmin, ou via `yunohost backup list` et `yunohost backup info <nom_d'archive>` depuis la ligne de commande. Par défaut, les sauvegardes sont stockées dans `/home/yunohost.backup/archives/`.
 
-À l'heure actuelle, la solution la plus accessible pour récupérer les sauvegardes est d'utiliser le programme FileZilla comme expliqué dans [cette page](/filezilla_fr).
+À l'heure actuelle, la solution la plus accessible pour récupérer les sauvegardes est d'utiliser le programme FileZilla comme expliqué dans [cette page](/filezilla).
 
 Une autre solution alternative consiste à installer une application comme Nextcloud et à la configurer pour être en mesure d'accéder aux fichiers dans `/home/yunohost.backup/archives/` depuis un navigateur web.
 
diff --git a/boot_and_graphical_install_fr.md b/boot_and_graphical_install_fr.md
index daf928cd..96f1287d 100644
--- a/boot_and_graphical_install_fr.md
+++ b/boot_and_graphical_install_fr.md
@@ -46,5 +46,5 @@ identifiants suivants :
 
 ## <small>5.</small> Procéder à la post-installation
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">Documentation de la post-installation</a>
+<a class="btn btn-lg btn-default" href="/postinstall">Documentation de la post-installation</a>
 
diff --git a/certificate_custom_fr.md b/certificate_custom_fr.md
index f5a78030..31e19901 100644
--- a/certificate_custom_fr.md
+++ b/certificate_custom_fr.md
@@ -1,4 +1,4 @@
-**Note :** depuis la version 2.5, Yunohost intègre la gestion automatisée de certificats Let's Encrypt. Vous pouvez donc facilement et gratuitement [installer un certificat Let's Encrypt](certificate_fr). Le document suivant décrit la méthodologie pour installer un certificat, payant, d'une autre autorité de certification (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**).
+**Note :** depuis la version 2.5, Yunohost intègre la gestion automatisée de certificats Let's Encrypt. Vous pouvez donc facilement et gratuitement [installer un certificat Let's Encrypt](/certificate). Le document suivant décrit la méthodologie pour installer un certificat, payant, d'une autre autorité de certification (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**).
 
 ### Ajout d’un certificat signé par une autorité (autre que Let's Encrypt)
 
@@ -18,7 +18,7 @@ pscp -P 22 CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt
 pscp -P 22 CLE.key admin@DOMAIN.TLD:ssl.key
 ```
 
-Dès lors que les fichiers sont sur le serveur, le reste du travail se fera sur celui-ci. En [ssh](https://yunohost.org/#/ssh_fr) ou en local.
+Dès lors que les fichiers sont sur le serveur, le reste du travail se fera sur celui-ci. En [ssh](/ssh) ou en local.
 
 Tout d’abord, créez un dossier pour stocker les certificats obtenus.
 
diff --git a/certificate_es.md b/certificate_es.md
index 16e12ca9..f68b07e6 100644
--- a/certificate_es.md
+++ b/certificate_es.md
@@ -11,7 +11,7 @@ Esta pantalla equivale a que te pidan ** ¿ Confías en el servidor que aloja es
 
 Para evitar esta confusión, es posible obtener un certificado, reconocido directamente por los navegadores, firmado por una autoridad « conocida » : **Let's Encrypt**, **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**.
 
-**Let's Encrypt** propone certificados gratuitos. Desde la versión 2.5, Yunohost permite instalar directamente tales certificados desde la interfaz de administración o la línea de comandos. El resto del documento detalla la instalación y la firma de este tipo de certificado. También puedes [instalar un certificado de otra autoridad que Let's Encrypt](/certificate_custom_es).
+**Let's Encrypt** propone certificados gratuitos. Desde la versión 2.5, Yunohost permite instalar directamente tales certificados desde la interfaz de administración o la línea de comandos. El resto del documento detalla la instalación y la firma de este tipo de certificado. También puedes [instalar un certificado de otra autoridad que Let's Encrypt](/certificate_custom).
 
 ### Instalar un certificado Let's Encrypt
 
diff --git a/certificate_fr.md b/certificate_fr.md
index d32a8341..6aeef3d5 100644
--- a/certificate_fr.md
+++ b/certificate_fr.md
@@ -12,7 +12,7 @@ Cela peut effrayer vos utilisateurs (à juste titre).
 
 Pour éviter cette confusion, il est possible d’obtenir un certificat, reconnu directement par les navigateurs, signé par une autorité « connue » : **Let's Encrypt**, **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**.
 
-**Let's Encrypt** propose des certificats gratuits. Depuis la version 2.5, YunoHost permet d'installer directement un tel certificat depuis l'interface d'administration ou la ligne de commande. La suite du document détaille l'installation et la gestion d'un tel certificat. Vous pouvez également [installer un certificat d'une autre autorité que Let's Encrypt](/certificate_custom_fr).
+**Let's Encrypt** propose des certificats gratuits. Depuis la version 2.5, YunoHost permet d'installer directement un tel certificat depuis l'interface d'administration ou la ligne de commande. La suite du document détaille l'installation et la gestion d'un tel certificat. Vous pouvez également [installer un certificat d'une autre autorité que Let's Encrypt](/certificate_custom).
 
 ### Installer un certificat Let's Encrypt
 
diff --git a/change_admin_password_fr.md b/change_admin_password_fr.md
index 3554ba80..f92f7c71 100644
--- a/change_admin_password_fr.md
+++ b/change_admin_password_fr.md
@@ -9,7 +9,7 @@ Le mot de passe d’administration actuel est **requis** pour effectuer cette mo
 
 ##Administration web
 
-Premièrement, connectez-vous à [l’administration web](/admin_fr).
+Premièrement, connectez-vous à [l’administration web](/admin).
 
 Puis allez dans la section `Outils` > `Changer le mot de passe d’administration`.
 
diff --git a/chat_rooms.md b/chat_rooms.md
index 19c1ab2b..2ac36abf 100644
--- a/chat_rooms.md
+++ b/chat_rooms.md
@@ -10,7 +10,7 @@ You could join those chat rooms using :
 
 #### Help and support chatroom
 
-There is a [support](help_fr) chatroom for YunoHost users mutual support and help.
+There is a [support](/help) chatroom for YunoHost users mutual support and help.
 
 - IRC: **#yunohost** on irc.freenode.net ;
 - Matrix: **#freenode_#yunohost:matrix.org** ;
diff --git a/chat_rooms_fr.md b/chat_rooms_fr.md
index 30dde1aa..e382d234 100644
--- a/chat_rooms_fr.md
+++ b/chat_rooms_fr.md
@@ -9,7 +9,7 @@ Vous pouvez rejoindre ces salons avec:
 
 
 #### Salon d'entraide et de support
-Le salon d’[entraide](help_fr) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement.
+Le salon d’[entraide](/help) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement.
 - IRC : **#yunohost** sur irc.freenode.net (voir kiwiirc ci-dessus)
 - Matrix : **#freenode_#yunohost:matrix.org**
 - XMPP : **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)**
diff --git a/collabora_en.md b/collabora_en.md
index cd3af0c8..504fe174 100644
--- a/collabora_en.md
+++ b/collabora_en.md
@@ -1,5 +1,5 @@
 # Install Collabora with Nextcloud, using Docker
-**Note :** This walkthrough is based on a Debian 8 instance, and has not been tested since version 3 upgrade of Yunohost. As a prerequisite, you must have configured your domains and sub-domains in the DNS, in compliance with : [DNS](/dns_en), [Sub-domain install of an app](/dns_subdomains_en), [DNS settings](/dns_config_en) and [noho.st / nohost.me / ynh.fr domains](/dns_nohost_me)).
+**Note :** This walkthrough is based on a Debian 8 instance, and has not been tested since version 3 upgrade of Yunohost. As a prerequisite, you must have configured your domains and sub-domains in the DNS, in compliance with : [DNS](/dns), [Sub-domain install of an app](/dns_subdomains), [DNS settings](/dns_config) and [noho.st / nohost.me / ynh.fr domains](/dns_nohost_me)).
 
 ### 0. Install Nextcloud
 
diff --git a/collabora_fr.md b/collabora_fr.md
index 29f352c2..a9af6a57 100644
--- a/collabora_fr.md
+++ b/collabora_fr.md
@@ -1,6 +1,6 @@
 # Installer Collabora avec Nextcloud via Docker
 
-**Note :** la marche à suivre detaillée est réalisée ici à partir d’une instance Yunohost sur Debian 8 (celle-ci n'a pas été testée suite à la migration vers la version 3 de Yunohost). Ces instructions ont pour pré-requis que les domaines/sous-domaines sont correctement configurés au niveau des DNS et de votre instance Yunohost (voir [DNS](/dns_fr), [DNS et installation d’une application sur un sous-domaine](/dns_subdomains_fr), [Configurer les enregistrements DNS](/dns_config_fr) et [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me_fr)).
+**Note :** la marche à suivre detaillée est réalisée ici à partir d’une instance Yunohost sur Debian 8 (celle-ci n'a pas été testée suite à la migration vers la version 3 de Yunohost). Ces instructions ont pour pré-requis que les domaines/sous-domaines sont correctement configurés au niveau des DNS et de votre instance Yunohost (voir [DNS](/dns), [DNS et installation d’une application sur un sous-domaine](/dns_subdomains), [Configurer les enregistrements DNS](/dns_config) et [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me)).
 
 ### 0. Installer Nextcloud
 
diff --git a/commandline_es.md b/commandline_es.md
index 3b829818..83db3878 100644
--- a/commandline_es.md
+++ b/commandline_es.md
@@ -2,7 +2,7 @@
 
 La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla.
 
-En el contexto de Yunohost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh_es).
+En el contexto de Yunohost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh).
 
 <div class="alert alert-info" markdown="1">
 Proveer un tutorial completo sobre la línea de comandos saldría del marco de la documentación de Yunohost : por eso, refiérete a totorales como [éste](https://www.fing.edu.uy/inco/cursos/sistoper/recursosLaboratorio/tutorial0.pdf) o [éste (en)](http://linuxcommand.org/). Pero no te preocupes : no hace falta ser un experto para comenzar a utilizarla !
diff --git a/contribute.md b/contribute.md
index fd10e976..04dc45d1 100644
--- a/contribute.md
+++ b/contribute.md
@@ -11,7 +11,7 @@ YunoHost depends exclusively on the participation of people like you.
 <span class="glyphicon glyphicon-heart"></span>&nbsp;&nbsp; Spread the word
 </div>
 <div class="col col-md-8" markdown="1">
-Talk about software freedom, [self-hosting](selfhosting_en) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3
+Talk about software freedom, [self-hosting](/selfhosting) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3
 </div>
 </div>
 
diff --git a/contribute_ar.md b/contribute_ar.md
index 499d5e56..0a810ce5 100644
--- a/contribute_ar.md
+++ b/contribute_ar.md
@@ -11,7 +11,7 @@
 <span class="glyphicon glyphicon-heart"></span>&nbsp;&nbsp; تحدثوا عن المشروع مِن حولكم
 </div>
 <div class="col col-md-8" markdown="1">
-تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting_fr)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3></div>
+تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3></div>
 </div>
 
 ---
@@ -33,7 +33,7 @@
 <span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; ساعدوا المستخدمِين
 </div>
 <div class="col col-md-8" markdown="1">
-Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help_fr), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
+Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
 </div>
 </div>
 
@@ -45,7 +45,7 @@ Notre support est communautaire et s’appuie sur des contributeurs comme vous.
 </div>
 <div dir="rtl" class="col col-md-8" markdown="1">
 Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
-Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
+Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
 </div>
 </div>
 
@@ -67,7 +67,7 @@ Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de dis
 <span class="glyphicon glyphicon-edit"></span>&nbsp;&nbsp; أكتبوا
 </div>
 <div class="col col-md-8" markdown="1">
-ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation_fr) أو بترجمة صفحاته إلى لغتكم.
+ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation) أو بترجمة صفحاته إلى لغتكم.
 </div>
 </div>
 
@@ -78,7 +78,7 @@ Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de dis
 <span class="glyphicon glyphicon-gift"></span>&nbsp;&nbsp; ساهموا في التحزيم
 </div>
 <div class="col col-md-8" markdown="1">
-Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps_fr). Jetez un œil à [ce qui a déjà été fait](/apps_fr) !
+Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
 <br>
 Un [salon de développement](xmpp:dev@conference.yunohost.org?join) et une <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/apps">mailing-list</a> est également disponible.
 </div>
diff --git a/contribute_fr.md b/contribute_fr.md
index 279b1efb..825b47d4 100644
--- a/contribute_fr.md
+++ b/contribute_fr.md
@@ -11,7 +11,7 @@ YunoHost dépend entièrement de la participation de gens comme vous.
 <span class="glyphicon glyphicon-heart"></span>&nbsp;&nbsp; Passez le mot
 </div>
 <div class="col col-md-8" markdown="1">
-Parlez de logiciel libre, d’[auto-hébergement](/selfhosting_fr), de YunoHost à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3
+Parlez de logiciel libre, d’[auto-hébergement](/selfhosting), de YunoHost à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3
 </div>
 </div>
 
@@ -33,7 +33,7 @@ Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essa
 <span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; Aidez les utilisateurs
 </div>
 <div class="col col-md-8" markdown="1">
-Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help_fr), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
+Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
 </div>
 </div>
 
@@ -45,7 +45,7 @@ Notre support est communautaire et s’appuie sur des contributeurs comme vous.
 </div>
 <div class="col col-md-8" markdown="1">
 Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
-Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
+Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
 </div>
 </div>
 
@@ -67,7 +67,7 @@ Participez en rendant les interfaces de YunoHost disponibles dans votre langue.
 <span class="glyphicon glyphicon-edit"></span>&nbsp;&nbsp; Écrivez
 </div>
 <div class="col col-md-8" markdown="1">
-Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation_fr) ou en traduisant les existantes dans votre langue.
+Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation) ou en traduisant les existantes dans votre langue.
 </div>
 </div>
 
@@ -78,7 +78,7 @@ Améliorez cette documentation en [proposant de nouvelles pages](/write_document
 <span class="glyphicon glyphicon-gift"></span>&nbsp;&nbsp; Packagez
 </div>
 <div class="col col-md-8" markdown="1">
-Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps_fr). Jetez un œil à [ce qui a déjà été fait](/apps_fr) !
+Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
 </div>
 </div>
 
@@ -86,5 +86,5 @@ Améliorez cette documentation en [proposant de nouvelles pages](/write_document
 
 <br>
 <br>
-<p class="lead" markdown="1">Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms_fr) :-)</p>
+<p class="lead" markdown="1">Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)</p>
 
diff --git a/contributordoc.md b/contributordoc.md
index 55a9ca68..9fb24915 100644
--- a/contributordoc.md
+++ b/contributordoc.md
@@ -7,23 +7,23 @@
    * [Apps wishlist](/apps_wishlist)
    * [General introduction to app packaging](/packaging_apps_start)
    * [Technical introduction to app packaging](/packaging_apps)
-   * [Setting up a dev environment with VirtualBox](packaging_apps_virtualbox_fr)
+   * [Setting up a dev environment with VirtualBox](/packaging_apps_virtualbox)
    * [Manifest](packaging_apps_manifest)
    * [Scripts](packaging_apps_scripts)
    * [Arguments management](packaging_apps_arguments_management)
    * [Nginx configuration](packaging_apps_nginx_conf)
    * [Multi-instance](packaging_apps_multiinstance)
    * [Helpers](packaging_apps_helpers)
-   * [Trap usage](packaging_apps_trap_fr)
+   * [Trap usage](/packaging_apps_trap)
    * [Adding your app to the community list](https://github.com/YunoHost/Apps/#contributing)
    * Quality tests
        * [Package linter](https://github.com/YunoHost/package_linter)
        * [Package check](https://github.com/YunoHost/package_check)
-       * [Applications levels](packaging_apps_levels_fr)
+       * [Applications levels](/packaging_apps_levels)
        * [App Continuous Integration](https://ci-apps.yunohost.org)
        * [App CI dashboard](https://dash.yunohost.org/appci/branch/stable)
        * [App Continuous Integration for packagers](/packaging_apps_ci)
-       * [YEP - YunoHost Enhancement Proposals](packaging_apps_guidelines_fr)
+       * [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines)
 * [Contributing to the YunoHost core](/dev)
    * [Setting up a dev environment with ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
    * [Deb build chain](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
diff --git a/contributordoc_fr.md b/contributordoc_fr.md
index 9e928bb1..0b37388b 100644
--- a/contributordoc_fr.md
+++ b/contributordoc_fr.md
@@ -1,30 +1,30 @@
 # Guide du contributeur
 
-* [Liste des façons de contribuer à YunoHost](/contribute_fr)
-* [Écrire de la documentation](/write_documentation_fr)
-* [Salons de discussion](/chat_rooms_fr)
+* [Liste des façons de contribuer à YunoHost](/contribute)
+* [Écrire de la documentation](/write_documentation)
+* [Salons de discussion](/chat_rooms)
 * Packaging d'application
-   * [Liste d'apps souhaitées par la communauté](/apps_wishlist_fr)
-   * [Introduction générale au packaging d'apps](/packaging_apps_start_fr)
-   * [Introduction technique au packaging d'apps](/packaging_apps_fr)
-   * [Déployer un environnement de développement avec VirtualBox](packaging_apps_virtualbox_fr)
-   * [Manifest](packaging_apps_manifest_fr)
-   * [Scripts](packaging_apps_scripts_fr)
-   * [Gestion des arguments](packaging_apps_arguments_management_fr)
-   * [Configuration nginx](packaging_apps_nginx_conf_fr)
-   * [Multi-instance](packaging_apps_multiinstance_fr)
-   * [Fonctions utiles](packaging_apps_helpers_fr)
-   * [Utilisation de 'trap'](packaging_apps_trap_fr)
+   * [Liste d'apps souhaitées par la communauté](/apps_wishlist)
+   * [Introduction générale au packaging d'apps](/packaging_apps_start)
+   * [Introduction technique au packaging d'apps](/packaging_apps)
+   * [Déployer un environnement de développement avec VirtualBox](/packaging_apps_virtualbox)
+   * [Manifest](/packaging_apps_manifest)
+   * [Scripts](/packaging_apps_scripts)
+   * [Gestion des arguments](/packaging_apps_arguments_management)
+   * [Configuration nginx](/packaging_apps_nginx_conf)
+   * [Multi-instance](/packaging_apps_multiinstance)
+   * [Fonctions utiles](/packaging_apps_helpers)
+   * [Utilisation de 'trap'](/packaging_apps_trap)
    * [Ajouter son application à la liste community](https://github.com/YunoHost/Apps/#contributing)
    * Tests de qualité
        * [Package linter](https://github.com/YunoHost/package_linter)
        * [Package check](https://github.com/YunoHost/package_check)
-       * [Niveaux des applications](packaging_apps_levels_fr)
+       * [Niveaux des applications](/packaging_apps_levels)
        * [Intégration continue des apps](https://ci-apps.yunohost.org)
        * [Tableau de bord du CI des apps](https://dash.yunohost.org/appci/branch/stable)
        * [Intégration continue pour packagers](/packaging_apps_ci)
-       * [YEP - YunoHost Enhancement Proposals](packaging_apps_guidelines_fr)
-* [Contribuer à la partie "core" de YunoHost](/dev_fr)
+       * [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines)
+* [Contribuer à la partie "core" de YunoHost](/dev)
    * [Déployer un environnement de dev avec ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
    * [Construction des paquets debian](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
    * [Feuilles de route du projet](https://github.com/YunoHost/issues/milestones?direction=asc&sort=title&state=open)
@@ -32,4 +32,4 @@
        * [x86 ISO](https://github.com/YunoHost/cd_build)
        * [Images Raspberry Pi](https://github.com/YunoHost/rpi-image)
        * [Autres images pour cartes ARM](https://github.com/YunoHost/arm-images)
-* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api_fr)
+* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api)
diff --git a/diagnostic_fr.md b/diagnostic_fr.md
index d3cd00c5..f0cd0f34 100644
--- a/diagnostic_fr.md
+++ b/diagnostic_fr.md
@@ -1,6 +1,6 @@
 # Diagnostic du bon fonctionnement de YunoHost
 
-Si vous avez réussi l’[installation](/install_fr) de YunoHost et passé l’étape de [post-installation](/postinstall_fr), vous avez probablement un **serveur fonctionnel**.
+Si vous avez réussi l’[installation](/install) de YunoHost et passé l’étape de [post-installation](/postinstall), vous avez probablement un **serveur fonctionnel**.
 
 ### <small>1.</small> Essayer
 
@@ -24,7 +24,7 @@ Si vous avez optez pour un nom de domaine se terminant par <b>.nohost.me</b> ou
 Cette étape n’est pas nécessaire si vous possédez un nom de domaine en <b>.nohost.me</b> ou un <b>.noho.st</b>
 </div>
 
-Rendez-vous sur https://www.whatsmydns.net/, entrez votre nom de domaine dans le champ prévu à cet effet et cliquez sur `Search`. Si vous ne voyez pas votre adresse IP, ou s’il y a des croix rouges par endroit, cela signifie que vous avez probablement mal configuré votre [DNS](/dns_fr).
+Rendez-vous sur https://www.whatsmydns.net/, entrez votre nom de domaine dans le champ prévu à cet effet et cliquez sur `Search`. Si vous ne voyez pas votre adresse IP, ou s’il y a des croix rouges par endroit, cela signifie que vous avez probablement mal configuré votre [DNS](/dns).
 
 ---
 
@@ -48,7 +48,7 @@ Vous pouvez également rediriger les ports manuellement vers l’adresse IP loca
 
 Si le serveur est accessible de l’extérieur, mais inatteignable via son nom de domaine dans votre réseau local, votre box/routeur ne fait probablement pas correctement de <a href="https://fr.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>.
 
-Voici un [tutoriel](dns_local_network_fr) pour pouvoir accéder à son serveur en réseau local et contourner le problème de hairpinning. Le tutoriel propose en première solution de mettre en place une redirection avec le DNS de la box et en seconde solution de modifier le fichier `hosts` des **clients** pour indiquer qu’il doit accéder au **serveur** via son IP locale. La première solution est préférable car il ne nécessite pas de modifier le fichier `hosts` sur chacun des clients du réseau local.
+Voici un [tutoriel](/dns_local_network) pour pouvoir accéder à son serveur en réseau local et contourner le problème de hairpinning. Le tutoriel propose en première solution de mettre en place une redirection avec le DNS de la box et en seconde solution de modifier le fichier `hosts` des **clients** pour indiquer qu’il doit accéder au **serveur** via son IP locale. La première solution est préférable car il ne nécessite pas de modifier le fichier `hosts` sur chacun des clients du réseau local.
 
 ___
 
diff --git a/dns.md b/dns.md
index 6d2bc471..6194d6c7 100644
--- a/dns.md
+++ b/dns.md
@@ -27,7 +27,7 @@ You have several choices here. Note that you can mix and match solutions if you
   **This is the recommended option if you are just starting out with self-hosting.**
 
 2. You can use the DNS service offered by your **registrar** (Gandi, NameCheap, BookMyName or others) to configure your domain name. Here is the [standard DNS configuration](/dns_config). The DNS service of your router can also be used, more info on [how to setup a local domain](dns_local_network).
-You can also check out these pages for specific [registrar](/registrar_en) documentation: [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com).
+You can also check out these pages for specific [registrar](/registrar) documentation: [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com).
 
   **Warning**: If you choose this option, you will have more configuration possibilities, but nothing will be done for you. For example, if you want to use `webmail.my-server.org`, you must add it manually to the DNS records with your registrar.
 
@@ -35,8 +35,8 @@ You can also check out these pages for specific [registrar](/registrar_en) docum
 
   **Warning**: If you choose this option, all configuration options will be done automatically, you will retain a good deal of flexibility, but if your server gets knocked offline you will run into many problems. **Choose this only if you are certain.**
 
-4. Once your DNS service is running, your server can use it but it needs to be configured, this is the [DNS resolver](/dns_resolver_en).
+4. Once your DNS service is running, your server can use it but it needs to be configured, this is the [DNS resolver](/dns_resolver).
 
 
 ### Dynamic IP
-If the global IP address is changing follow this [tutorial](dns_dynamicip_en).
+If the global IP address is changing follow this [tutorial](/dns_dynamicip).
diff --git a/dns_config_es.md b/dns_config_es.md
index 87797baf..55bf2d6f 100644
--- a/dns_config_es.md
+++ b/dns_config_es.md
@@ -2,7 +2,7 @@
 
 DNS (sistema de nombre de dominios) es un elemento esencial de Internet que permite convertir direcciones comprensibles por seres humanos (los nombres de dominio) en direcciones comprensibles por la máquina (los IPs). Para que tu servidor esté fácilemente por otros seres humanos, y para que servicios como el mail funcionen correctamente, es preciso configurar la zona DNS de tu dominio.
 
-Si utilizas un [dominio automático](/dns_nohost_me_es) provecho por el Proyecto Yunohost, la configuración debería ser automática. Si quieres utilizar tu propio nombre de dominio (comprado a un registrar), hay que configurar manualmente tu proprio nombre de dominio vía la interfaz de tu registrar.
+Si utilizas un [dominio automático](/dns_nohost_me) provecho por el Proyecto Yunohost, la configuración debería ser automática. Si quieres utilizar tu propio nombre de dominio (comprado a un registrar), hay que configurar manualmente tu proprio nombre de dominio vía la interfaz de tu registrar.
 
 
 ## Configuración DNS recomendada
diff --git a/dns_config_fr.md b/dns_config_fr.md
index b6420b3f..42a50c2b 100644
--- a/dns_config_fr.md
+++ b/dns_config_fr.md
@@ -7,7 +7,7 @@ votre serveur soit facilement accessible par d'autres êtres humains, et pour
 que certains services comme le mail fonctionnent correctement, il est nécessaire
 de configurer la zone DNS de votre domaine.
 
-Si vous utilisez un [domaine automatique](/dns_nohost_me_fr) fourni par le Projet Yunohost,
+Si vous utilisez un [domaine automatique](/dns_nohost_me) fourni par le Projet Yunohost,
 la configuration devrait être faite automatiquement. Si vous utilisez votre propre nom de domaine
 (e.g. acheté chez un registrar), il vous faut configurer manuellement votre
 domaine via l'interface de votre registrar.
diff --git a/dns_dynamicip.md b/dns_dynamicip.md
index 19860435..9d4223a5 100644
--- a/dns_dynamicip.md
+++ b/dns_dynamicip.md
@@ -6,7 +6,7 @@ This tutorial aim to get around dynamic IP issue which is: when the IP public ad
 
 The method proposed here consists of automatizing the fact the box annonces its global IP adress change to the dynamic DNS, so that the DNS zone will automatically be updated.
 
-If you own a domain name at **OVH**, you may go to step 4 and follow this [tutorial](OVH_fr), given that OVH proposes a DynDNS service.
+If you own a domain name at **OVH**, you may go to step 4 and follow this [tutorial](/OVH), given that OVH proposes a DynDNS service.
 
 #### 1. Create an account to a Dynamic DNS service
 Here are sites which offer a DynDNS service free of charge:
@@ -20,14 +20,14 @@ Here are sites which offer a DynDNS service free of charge:
 Register to one of them. It should provide you with one (or more) IP address to reach the service, and a login (that you may be able to self-define).
 
 #### 2. Move the DNS zones
-Copy the [DNS zones](dns_config), except for the NS fields, from the [registrar](registrar_en) where you bought your domain name from to the dynamic DNS service you registrer at in step 1.
+Copy the [DNS zones](dns_config), except for the NS fields, from the [registrar](/registrar) where you bought your domain name from to the dynamic DNS service you registrer at in step 1.
 
 #### 3. Switch the management of your domain name to the dynamic DNS server
-This step consists in declaring to your [registrar](registrar_en) that the DNS service will now be managed by the DynDNS service provider. 
+This step consists in declaring to your [registrar](/registrar) that the DNS service will now be managed by the DynDNS service provider. 
 
 For this, fisrt declare in the NS field(s) the IP address provided by the DynDNS service.
 
-Then, remove any other item in the [DNS zones](dns_config) (except the previous NS fields), from the [registrar](registrar_en).
+Then, remove any other item in the [DNS zones](dns_config) (except the previous NS fields), from the [registrar](/registrar).
 
 #### 4. Configure the client
 This client could be your ISP-box, or a package installed on your server, such as `ddclient`.
diff --git a/dns_dynamicip_fr.md b/dns_dynamicip_fr.md
index 1e13f279..33589f54 100644
--- a/dns_dynamicip_fr.md
+++ b/dns_dynamicip_fr.md
@@ -8,7 +8,7 @@ Après avoir mis en place la solution proposée dans ce tutoriel, la redirection
 
 La méthode qui sera mise en place consiste à rendre automatique le fait que la box annonce au DNS dynamique qu’elle a changée d’adresse IP publique, et qu’ensuite la zone DNS soit automatiquement changée.
 
-Si vous possédez un nom de domaine chez **OVH**, vous pouvez aller à l’étape 4 et suivre ce [tutoriel](OVH_fr) étant donné qu’OVH propose un service de DynDNS.
+Si vous possédez un nom de domaine chez **OVH**, vous pouvez aller à l’étape 4 et suivre ce [tutoriel](/OVH) étant donné qu’OVH propose un service de DynDNS.
 
 #### 1. Créer un compte pour un service de DNS dynamique
 
@@ -22,13 +22,13 @@ Voici des sites qui proposent un service de DynDNS gratuitement :
 Créer un compte chez l’un d’eux.
 
 #### 2. Déplacer les zones DNS
-Déplacer les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](registrar_en) où vous avez acheté votre nom de domaine vers le DNS dynamique où vous avez créé un compte à l’étape 1.
+Déplacer les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar) où vous avez acheté votre nom de domaine vers le DNS dynamique où vous avez créé un compte à l’étape 1.
 
 #### 3. Basculer la gestion de votre nom de domaine vers le serveur DNS dynamique
-Cette étape consiste à faire savoir au [bureau d’enregistrement](registrar_en) que le service de DNS sera assuré par le service de DynDNS.
+Cette étape consiste à faire savoir au [bureau d’enregistrement](/registrar) que le service de DNS sera assuré par le service de DynDNS.
 Redirigez le champ NS vers l’adresse IP donnée par le service de DynDNS.
 
-Ensuite, supprimez les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](registrar_en).
+Ensuite, supprimez les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar).
 
 #### 4. Créer un identifiant de DNS dynamique
 Sur le service de DNS dynamique créer un identifiant qui sera entré dans un client de DNS dynamique.
diff --git a/dns_es.md b/dns_es.md
index 14261ac2..60e01694 100644
--- a/dns_es.md
+++ b/dns_es.md
@@ -25,18 +25,18 @@ También existen **tipos** de registros DNS, lo que significa que un dominio pue
 
 Tienes varias opciones. Nota que puedes cumular estas soluciones si posees varios dominios : por ejemplo, puedes tener `mi-servidor.nohost.me` utilizando la solución **1.**, et `mi-servidor.org` utilizando la solución **2.**, redirigiéndolos hacia el mismo servidor YunoHost.
 
-1. Puedes utilizar [el servicio DNS de YunoHost](/dns_nohost_me_es), que configurará él mismo los DNS de tu instancia YunoHost. Pero en este caso, tienes que elegir un dominio terminando por `.nohost.me`, `.noho.st` o `.ynh.fr`, lo que puede tener inconvenientes (tendrás direcciones email tales como `juan@mi-servidor.noho.st`).
+1. Puedes utilizar [el servicio DNS de YunoHost](/dns_nohost_me), que configurará él mismo los DNS de tu instancia YunoHost. Pero en este caso, tienes que elegir un dominio terminando por `.nohost.me`, `.noho.st` o `.ynh.fr`, lo que puede tener inconvenientes (tendrás direcciones email tales como `juan@mi-servidor.noho.st`).
 **Es el método recomendado si estás debutando.**
 
-2. Puedes utilizar el servicio de DNS de tu  **registrar** (Gandi, OVH, BookMyName u otro) para configurar tus nombres de dominio. Ésta es la [configuración DNS estándar](/dns_config_es). También es posible utilizar una redirección DNS local, más información sobre cómo [Acceder a su servidor desde la red local](/dns_local_network_es).
-También puedes consultar las documentaciones específicas a estas varias [oficinas de registro](/registrar_es) : [Gandi](http://gandi.net), [OVH](/OVH_fr) o [BookMyName](http://bookmyname.com).
+2. Puedes utilizar el servicio de DNS de tu  **registrar** (Gandi, OVH, BookMyName u otro) para configurar tus nombres de dominio. Ésta es la [configuración DNS estándar](/dns_config). También es posible utilizar una redirección DNS local, más información sobre cómo [Acceder a su servidor desde la red local](/dns_local_network).
+También puedes consultar las documentaciones específicas a estas varias [oficinas de registro](/registrar) : [Gandi](http://gandi.net), [OVH](/OVH) o [BookMyName](http://bookmyname.com).
 
 **Atención** : Si eliges este modo de funcionamiento, tendrás más flexibilidad, pero nada será automático. Por ejemplo si quieres utilizar `webmail.mi-servidor.org`, tendrás que añadirlo manualmente en la interfaz de tu registrar.
 
 3. Tu instancia tiene un servicio DNS, lo que quiere decir que configura automáticamente sus registros DNS y que es posible delegarle la administración de estos registros. Por eso, tienes que indicar al **registrar** que es tu instancia Yunohost que es el servidor DNS de tu nombre de dominio creando un registro glue (a menudo denominado **glue record**) apuntando hacia la IP de tu instancia Yunohost.
 <br><br>**Atención** : Si eliges este modo de funcionamiento, todas las configuraciones serán automatizadas, tendrás mucha flexibilidad pero la pérdida de tu servidor potencialmente traerá muchos problemas. **Elige este método si estás muy seguro de los que estás haciendo.**
 
-4. Una vez que tu servicio DNS está operacional, tu servidor puede utilizarlo pero hay que configurarlo, es el [revolvedor DNS](/dns_resolver_es).
+4. Una vez que tu servicio DNS está operacional, tu servidor puede utilizarlo pero hay que configurarlo, es el [revolvedor DNS](/dns_resolver).
 
 ### IP Dinámica
-Si la dirección IP pública cambia, sigue este [tutorial](dns_dynamicip_es).
+Si la dirección IP pública cambia, sigue este [tutorial](/dns_dynamicip).
diff --git a/dns_fr.md b/dns_fr.md
index ef806aad..725b57f4 100644
--- a/dns_fr.md
+++ b/dns_fr.md
@@ -27,18 +27,18 @@ Il existe également des **types** d’enregistrement DNS, ce qui veut dire qu
 
 Plusieurs choix s’offrent à vous. Notez que vous pouvez cumuler ces solutions si vous possédez plusieurs domaines : par exemple vous pouvez avoir `mon-serveur.nohost.me` en utilisant la solution **1.**, et `mon-serveur.org` en utilisant la solution **2.**, redirigeant vers le même serveur YunoHost.
 
-1. Vous pouvez utiliser [le service de DNS de YunoHost](/dns_nohost_me_fr), qui s’occupera de configurer tout seul les DNS de votre instance YunoHost. Vous devrez en revanche choisir un domaine se terminant par `.nohost.me`, `.noho.st` ou `.ynh.fr`, ce qui peut être inconvenant (vous aurez alors des adresses email telles que `jean@mon-serveur.noho.st`).
+1. Vous pouvez utiliser [le service de DNS de YunoHost](/dns_nohost_me), qui s’occupera de configurer tout seul les DNS de votre instance YunoHost. Vous devrez en revanche choisir un domaine se terminant par `.nohost.me`, `.noho.st` ou `.ynh.fr`, ce qui peut être inconvenant (vous aurez alors des adresses email telles que `jean@mon-serveur.noho.st`).
 **C’est la méthode recommandée si vous débutez.**
 
-2. Vous pouvez utiliser le service de DNS de votre **registrar** (Gandi, OVH, BookMyName ou autre) pour configurer vos noms de domaine. Voici la [configuration DNS standard](/dns_config_fr). Il est aussi possible d'utiliser une redirection DNS locale, plus d'infos sur comment [Accéder à son serveur depuis le réseau local](/dns_local_network_fr).
-Vous pouvez également consulter les documentations spécifiques à ces différents [bureaux d’enregistrement](/registrar_fr) : [Gandi](http://gandi.net), [OVH](/OVH_fr) ou [BookMyName](http://bookmyname.com).
+2. Vous pouvez utiliser le service de DNS de votre **registrar** (Gandi, OVH, BookMyName ou autre) pour configurer vos noms de domaine. Voici la [configuration DNS standard](/dns_config). Il est aussi possible d'utiliser une redirection DNS locale, plus d'infos sur comment [Accéder à son serveur depuis le réseau local](/dns_local_network).
+Vous pouvez également consulter les documentations spécifiques à ces différents [bureaux d’enregistrement](/registrar) : [Gandi](http://gandi.net), [OVH](/OVH) ou [BookMyName](http://bookmyname.com).
 
 **Attention** : Si vous choisissez ce mode de fonctionnement, vous aurez plus de flexibilité, mais rien ne sera automatique. Par exemple si vous souhaitez utiliser `webmail.mon-serveur.org`, vous devrez l’ajouter manuellement chez votre registrar.
 
 3. Votre instance YunoHost possède un service DNS, ce qui veut dire qu’il configure automatiquement ses enregistrements DNS, et qu’il est possible de lui en déléguer la gestion. Pour ce faire, vous devez indiquer au **registrar** que c’est votre instance YunoHost qui est le serveur DNS de votre nom de domaine en créant un enregistrement glue (souvent appelé **glue record**) pointant vers l’IP de votre instance YunoHost.
 <br><br>**Attention** : Si vous choisissez ce mode de fonctionnement, toutes les configurations seront automatiques, vous disposerez d’une grande flexibilité, mais la perte de votre serveur entraînera potentiellement beaucoup d’ennuis. **Choisissez cette méthode si vous êtes sûr de vous.**
 
-4. Une fois votre service DNS opérationnel, votre serveur peut l’utiliser mais il faut le configurer, c’est le [résolveur DNS](/dns_resolver_fr).
+4. Une fois votre service DNS opérationnel, votre serveur peut l’utiliser mais il faut le configurer, c’est le [résolveur DNS](/dns_resolver).
 
 ### IP Dynamique
-Si l’adresse IP publique change, suivez ce [tutoriel](dns_dynamicip_fr).
+Si l’adresse IP publique change, suivez ce [tutoriel](/dns_dynamicip).
diff --git a/docs.md b/docs.md
index 9518991a..5dd8fa41 100644
--- a/docs.md
+++ b/docs.md
@@ -19,13 +19,13 @@ YunoHost's documentation has 2 different sections:
 </div>
 
 * Project's life:
-   * [Frequently asked questions](/faq_en)
+   * [Frequently asked questions](/faq)
    * [Project organization](/project_organization)
    * [Blog](https://forum.yunohost.org/c/announcement)
    * [Forum](https://forum.yunohost.org)
-   * [Chat rooms](/chat_rooms_en)
-   * [Communication](/communication_en)
+   * [Chat rooms](/chat_rooms)
+   * [Communication](/communication)
    * [Support / Help](/help)
 
 * Use example:
-   * [YunoHost for non-profit organisations](/use_case_non-profit_organisations_en)
+   * [YunoHost for non-profit organisations](/use_case_non-profit_organisations)
diff --git a/docs_ar.md b/docs_ar.md
index 59be5db6..ae7479ad 100644
--- a/docs_ar.md
+++ b/docs_ar.md
@@ -7,7 +7,7 @@
 <div class="row text-center">
 
 <div dir="rtl" class="col col-md-4 col-md-offset-1">
-<a class="btn btn-primary btn-lg" href="/admindoc_fr"><span class="glyphicon glyphicon-lock"></span> دليل المدير</a>
+<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> دليل المدير</a>
 <p><small class="text-muted">يتطرق إلى طريقة التنصيب و إدارة السيرفر و التطبيقات</small></p>
 </div>
 
@@ -19,13 +19,13 @@
 </div>
 
 * Project's life:
-   * [Frequently asked questions](/faq_en)
+   * [Frequently asked questions](/faq)
    * [Project organization](/project_organization)
    * [Blog](https://forum.yunohost.org/c/announcement)
    * [Forum](https://forum.yunohost.org)
-   * [Chat rooms](/chat_rooms_en)
-   * [Communication](/communication_en)
+   * [Chat rooms](/chat_rooms)
+   * [Communication](/communication)
    * [Support / Help](/help)
 
 * استخدم مثال:
-   * [YunoHost للمنظمات غير الهادفة للربح](/use_case_non-profit_organisations_en)
+   * [YunoHost للمنظمات غير الهادفة للربح](/use_case_non-profit_organisations)
diff --git a/docs_de.md b/docs_de.md
index e3a73f0d..e8f57252 100644
--- a/docs_de.md
+++ b/docs_de.md
@@ -19,13 +19,13 @@ Die YunoHost Dokumentation ist in 2 Bereiche aufgeteilt:
 </div>
 
 * Das Projektleben:
-   * [Häufig gestellte Fragen](/faq_en)
+   * [Häufig gestellte Fragen](/faq)
    * [Projektorganisation](/project_organization)
    * [Blog](https://forum.yunohost.org/c/announcement)
    * [Forum](https://forum.yunohost.org)
-   * [Chaträume](/chat_rooms_en)
-   * [Kommunikation](/communication_en)
+   * [Chaträume](/chat_rooms)
+   * [Kommunikation](/communication)
    * [Support / Hilfe](/help)
 
 * Verwenden Sie ein Beispiel:
-   * [YunoHost für gemeinnützige Organisationen](/use_case_non-profit_organisations_en)
+   * [YunoHost für gemeinnützige Organisationen](/use_case_non-profit_organisations)
diff --git a/docs_fr.md b/docs_fr.md
index 7469efce..f8c7b56f 100644
--- a/docs_fr.md
+++ b/docs_fr.md
@@ -7,25 +7,25 @@ La documentation de YunoHost s’articule autour de deux sections :
 <div class="row text-center">
 
 <div class="col col-md-4 col-md-offset-1">
-<a class="btn btn-primary btn-lg" href="/admindoc_fr"><span class="glyphicon glyphicon-lock"></span> Guide de l’administrateur</a>
+<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Guide de l’administrateur</a>
 <p><small class="text-muted">Incluant l’installation, la gestion du serveur et des applications</small></p>
 </div>
 
 <div class="col col-md-4 col-md-offset-1">
-<a class="btn btn-danger btn-lg" href="/contributordoc_fr"><span class="glyphicon glyphicon-heart"></span> Guide du contributeur</a>
+<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Guide du contributeur</a>
 <p><small class="text-muted">Qui contient tout ce que vous devez savoir à propos de nous et de notre manière de travailler</small></p>
 </div>
 
 </div>
 
 * Vie du projet :
-   * [Foire aux questions](/faq_fr)
-   - [Organisation du projet](project_organization_fr)
+   * [Foire aux questions](/faq)
+   - [Organisation du projet](/project_organization)
    * [Blog](https://forum.yunohost.org/c/announcement)
    - [Forum](https://forum.yunohost.org)
-   - [Salons de discussions](/chat_rooms_fr)
+   - [Salons de discussions](/chat_rooms)
    * [Communication extérieure](/communication)
-   * [Support / Aide](/help_fr)
+   * [Support / Aide](/help)
 
 * Exemple d'utilisation:
-   * [YunoHost pour les organisations à but non lucratif](/use_case_non-profit_organisations_fr)
+   * [YunoHost pour les organisations à but non lucratif](/use_case_non-profit_organisations)
diff --git a/docs_it.md b/docs_it.md
index f7cdcd9a..89535377 100644
--- a/docs_it.md
+++ b/docs_it.md
@@ -19,13 +19,13 @@ La documentazione di YunoHost ha 2 differenti sezioni:
 </div>
 
 * Vita del progetto :
-   * [Frequently asked questions](/faq_en)
+   * [Frequently asked questions](/faq)
    * [Project organization](/project_organization)
    * [Blog](https://forum.yunohost.org/c/announcement)
    * [Forum](https://forum.yunohost.org)
-   * [Chat rooms](/chat_rooms_en)
-   * [Communication](/communication_en)
-   * [Supporto / Aiuto](/help_it)
+   * [Chat rooms](/chat_rooms)
+   * [Communication](/communication)
+   * [Supporto / Aiuto](/help)
 
 * Usa l'esempio:
-   * [YunoHost per le organizzazioni senza scopo di lucro](/use_case_non-profit_organisations_en)
+   * [YunoHost per le organizzazioni senza scopo di lucro](/use_case_non-profit_organisations)
diff --git a/domains_fr.md b/domains_fr.md
index b4dd22bc..f03b6e4b 100644
--- a/domains_fr.md
+++ b/domains_fr.md
@@ -3,7 +3,7 @@ Domaines, configuration DNS et certificats
 
 YunoHost permet de gérer et de servir plusieurs domaines sur un même serveur. Vous pouvez donc héberger, par exemple, un blog et un Nextcloud sur un premier domaine `yolo.com`, et un client de messagerie web sur un second domaine `swag.nohost.me`. Chaque domaine est automatiquement configuré pour pouvoir gérer des services web, des courriels et une messagerie instantannée XMPP.
 
-Les domaines peuvent être gérés dans la section 'Domaine' de la webadmin, ou via la catégorie `yunohost domain` de la ligne de commande. Chaque fois que vous ajoutez un domaine, il est supposé que vous avez acheté (ou en tout cas que vous contrôliez) le domaine, de sorte que vous puissiez gérer la [configuration DNS](dns) ce celui-ci. Une exception concerne les [domaines en `.nohost.me`, `.noho.st` et `ynh.fr`](/dns_nohost_me_fr) qui sont offerts par le Projet YunoHost, et peuvent être directement intégrés avec YunoHost grâce à une configuration dynDNS automatique. (Pour limiter les abus et les coûts, une instance ne peut avoir qu'un seul domaine offert à la fois).
+Les domaines peuvent être gérés dans la section 'Domaine' de la webadmin, ou via la catégorie `yunohost domain` de la ligne de commande. Chaque fois que vous ajoutez un domaine, il est supposé que vous avez acheté (ou en tout cas que vous contrôliez) le domaine, de sorte que vous puissiez gérer la [configuration DNS](dns) ce celui-ci. Une exception concerne les [domaines en `.nohost.me`, `.noho.st` et `ynh.fr`](/dns_nohost_me) qui sont offerts par le Projet YunoHost, et peuvent être directement intégrés avec YunoHost grâce à une configuration dynDNS automatique. (Pour limiter les abus et les coûts, une instance ne peut avoir qu'un seul domaine offert à la fois).
 
 Le domaine choisi lors de la postinstall est défini comme le domaine principal du serveur : c'est là que le SSO et l'interface d'administration web seront disponibles. Le domaine principal peut être modifié ultérieurement via la webadmin dans Domaines > (le domaine) > Définir par défaut, ou avec la ligne de commande `yunohost tools maindomain`.
 
@@ -24,7 +24,7 @@ YunoHost peut générer une configuration DNS recommandée pour chaque domaine,
 Certificats SSL/HTTPS
 ----------------------
 
-Un autre aspect important de la configuration des domaines est le certificat SSL/HTTPS. YunoHost est intégré avec Let's Encrypt, de sorte qu'une fois que votre serveur est correctement accessible depuis n'importe qui sur Internet via le nom de domaine, l'administrateur peut demander l'installation d'un certificat Let's Encrypt. Voir la documentation sur les [certificats](certificate_fr) pour plus d'informations.
+Un autre aspect important de la configuration des domaines est le certificat SSL/HTTPS. YunoHost est intégré avec Let's Encrypt, de sorte qu'une fois que votre serveur est correctement accessible depuis n'importe qui sur Internet via le nom de domaine, l'administrateur peut demander l'installation d'un certificat Let's Encrypt. Voir la documentation sur les [certificats](/certificate) pour plus d'informations.
 
 Sous-chemins vs. domaines individuels par application
 -----------------------------------------------------
diff --git a/email_es.md b/email_es.md
index bedac75d..6bb8628f 100644
--- a/email_es.md
+++ b/email_es.md
@@ -11,9 +11,9 @@ Asegurarse de que la configuración esté correcta
 Los emails son un ecosistema complicado y una multitud de detalles puedes impedir que funcionen correctamente.
 
 Para validar que tu configuración es correcta :
-- si te alojas en casa y que no tienes VPN, asegúrate de que [tu proveedor de Internet no esté bloqueando el puerto 25](isp_es) ;
-- redirige los puertos siguiendo [esta documentación](isp_box_config_es) ;
-- configura con cuidado los registros DNS del correo electrónico siguiendo [esta documentación](dns_config_es) ;
+- si te alojas en casa y que no tienes VPN, asegúrate de que [tu proveedor de Internet no esté bloqueando el puerto 25](/isp) ;
+- redirige los puertos siguiendo [esta documentación](/isp_box_config) ;
+- configura con cuidado los registros DNS del correo electrónico siguiendo [esta documentación](/dns_config) ;
 - testa tu configuración utilizando [Mail-tester.com](https://mail-tester.com) <small>(cuidado : sólo 3 tests por dominio y por día están autorizados)</small> ;
 
 Una nota de al menos 8~9/10 es un objetivo razonable.
@@ -21,7 +21,7 @@ Una nota de al menos 8~9/10 es un objetivo razonable.
 Clientes de mensajería 
 -------------
 
-Para interactuar con el servidor de mail, o sea leer y mandar emails, puedes instalar un cliente web como Roundcube o Rainloop en tu servidor - o configurar un cliente de Desktop o móvil como descrito en [esta página][cette page](email_configure_client_es).
+Para interactuar con el servidor de mail, o sea leer y mandar emails, puedes instalar un cliente web como Roundcube o Rainloop en tu servidor - o configurar un cliente de Desktop o móvil como descrito en [esta página][cette page](/email_configure_client).
 
 Los clientes Desktop o móvil tienen la ventaja de copiar tu emails en el equipo, así permitiendo la consulta desconectada de tus mensajes, y cierta protección frente a la posibilidad de un servidor averiado.
 
@@ -40,5 +40,5 @@ Si tu servidor se pone indisponible, los correos electrónicos mandados a tu ser
 Más información
 --------------------
 
-- Existe una página de documentación para [migrar sus emails desde un proveedor de mensajería hacia una instancia Yunohost](email_migration_es).
+- Existe una página de documentación para [migrar sus emails desde un proveedor de mensajería hacia una instancia Yunohost](/email_migration).
 - Para profundizar tu comprensión del correo electrónico y de sus protocolos, aquí tienes una [conferencia muy interesante](http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/index.html)(en francés).
diff --git a/email_fr.md b/email_fr.md
index e1c2ca08..3d259db2 100644
--- a/email_fr.md
+++ b/email_fr.md
@@ -40,7 +40,7 @@ Si votre serveur devient indisponible, les courriels envoyés à votre serveur r
 ## Formulaires pour enlever son adresse IP des listes noires
 Il est possible que les emails envoyés depuis votre instance YunoHost soient considérés comme du spam par les grands services de mails.
 Il est possible que l’adresse IP de votre serveur a autrefois été utilisé pour envoyé du spam ou que ces services de mails considèrent votre serveur comme émetteur de spams.
-Pour s’assurer que l’adresse IP de votre serveur n’est pas dans ces listes et pour l’enlever dans le cas échéant suivez ce [lien](/blacklist_forms_fr).
+Pour s’assurer que l’adresse IP de votre serveur n’est pas dans ces listes et pour l’enlever dans le cas échéant suivez ce [lien](/blacklist_forms).
 
 
 Pour aller plus loin
diff --git a/email_migration.md b/email_migration.md
index ed3be717..74b9388e 100644
--- a/email_migration.md
+++ b/email_migration.md
@@ -1,6 +1,6 @@
 # Migrating email from an email provider to a YunoHost instance
 
-*[Documentation linked to YunoHost email](/email_fr)*.
+*[Documentation linked to YunoHost email](/email)*.
 
 Migration of his emails from a server to an other can be done with two recommended tools: ImapSync or Larch.
 
diff --git a/email_migration_fr.md b/email_migration_fr.md
index 0fa655b9..7e0151c6 100644
--- a/email_migration_fr.md
+++ b/email_migration_fr.md
@@ -1,6 +1,6 @@
 # Migrer ses emails d'un ancien serveur mail vers YunoHost
 
-*[Documentation en rapport avec l’email de YunoHost](/email_fr)*.
+*[Documentation en rapport avec l’email de YunoHost](/email)*.
 
 La migration des emails d’un serveur à un autre peut se faire via deux outils recommandés : ImapSync ou Larch.
 
diff --git a/faq.md b/faq.md
index 06a77692..197a7b3d 100644
--- a/faq.md
+++ b/faq.md
@@ -52,7 +52,7 @@ Yes! YunoHost is multi-user and multi-domain. Some applications like *WordPress*
 
 #### Why can't I access applications via the IP address?
 
-The [SSO](https://github.com/Kloadut/SSOwat/) (single sign-on) cannot properly authenticate users when they access your server with only its IP. If you really can't properly configure the DNS, you can temporarily work around it by [modifying the `hosts` file (last §)](dns_local_network_en) on your computer.
+The [SSO](https://github.com/Kloadut/SSOwat/) (single sign-on) cannot properly authenticate users when they access your server with only its IP. If you really can't properly configure the DNS, you can temporarily work around it by [modifying the `hosts` file (last §)](/dns_local_network) on your computer.
 
 
 #### What's YunoHost's business model?
diff --git a/faq_de.md b/faq_de.md
index 2f131cd5..a2640231 100644
--- a/faq_de.md
+++ b/faq_de.md
@@ -40,7 +40,7 @@ Ja ! YunoHost ermöglicht das Anlegen mehrerer Benutzer und Domain-Namen. Manche
 
 #### Wieso kann ich Anwendungen nicht über die IP-Adresse erreichen ?
 
-Die [SSO](https://github.com/Kloadut/SSOwat/) (Single Sign-on) Technik kann Benutzer nicht richtig authentifizieren, wenn sie auf den Server nur über die IP zugreifen. Wenn Sie keine Möglichkeit haben, die DNS korrekt zu konfigurieren, können Sie als temporäre Notlösung [die `Hosts` Datei (letztes §)](dns_local_network_en) auf Ihrem Computer modifizieren.
+Die [SSO](https://github.com/Kloadut/SSOwat/) (Single Sign-on) Technik kann Benutzer nicht richtig authentifizieren, wenn sie auf den Server nur über die IP zugreifen. Wenn Sie keine Möglichkeit haben, die DNS korrekt zu konfigurieren, können Sie als temporäre Notlösung [die `Hosts` Datei (letztes §)](/dns_local_network) auf Ihrem Computer modifizieren.
 
 
 #### Was ist das Geschäftsmodell von YunoHost ?
diff --git a/faq_fr.md b/faq_fr.md
index cac06172..9308206d 100644
--- a/faq_fr.md
+++ b/faq_fr.md
@@ -49,7 +49,7 @@ On peut tout à fait héberger plusieurs sites web car YunoHost est multi-domain
 
 #### Pourquoi je ne peux pas accéder à mes applications avec l’adresse IP ?
 
-Pour des raisons techniques, le [SSO](https://github.com/YunoHost/SSOwat/) ne permet pas aux utilisateurs de se connecter à l’espace utilisateur lorsque l’on accède au serveur uniquement avec l’IP. Si vous ne pouvez réellement pas configurer un nom de domaine, une solution temporaire peut être de modifier le [fichier `hosts` (dernier §)](dns_local_network_fr) de son ordinateur.
+Pour des raisons techniques, le [SSO](https://github.com/YunoHost/SSOwat/) ne permet pas aux utilisateurs de se connecter à l’espace utilisateur lorsque l’on accède au serveur uniquement avec l’IP. Si vous ne pouvez réellement pas configurer un nom de domaine, une solution temporaire peut être de modifier le [fichier `hosts` (dernier §)](/dns_local_network) de son ordinateur.
 
 
 #### Quel est le modèle économique de YunoHost ?
diff --git a/filezilla_fr.md b/filezilla_fr.md
index 6fa48eca..1eb993e6 100644
--- a/filezilla_fr.md
+++ b/filezilla_fr.md
@@ -50,7 +50,7 @@ Installez le programme et lancez *Filezilla*.
 
    ![la vue pendant la connexion à un serveur distant](images/filezilla_6.png)
 
-2. Dans le panneau de droite, vous pouvez aller dans `/home/yunohost.backup/archives/` pour trouver les archives de [sauvegardes](/backup_fr).
+2. Dans le panneau de droite, vous pouvez aller dans `/home/yunohost.backup/archives/` pour trouver les archives de [sauvegardes](/backup).
 
    ![le chemin où les sauvegardes sont situées sur Yunohost](images/filezilla_7.png)
 
diff --git a/hardware_es.md b/hardware_es.md
index e10c13f5..7fb2556d 100644
--- a/hardware_es.md
+++ b/hardware_es.md
@@ -5,7 +5,7 @@ YunoHost puede ser instalado en este hardware :
 - 'Viejos' ordenadores de escritorio ou portátiles ;
 - Servidores remotos, también llamado Virtual Private Servers (VPS).
 
-Los guías de instalación se encuentran en [esta página](/install_es).
+Los guías de instalación se encuentran en [esta página](/install).
 
 ### Configuración minimal
 
diff --git a/hardware_fr.md b/hardware_fr.md
index 389cf301..93b7ebe8 100644
--- a/hardware_fr.md
+++ b/hardware_fr.md
@@ -5,7 +5,7 @@ YunoHost peut être installé sur les types de matériel suivant :
 - 'Vieux' ordinateurs de bureau ou portables ;
 - Serveurs distants, aussi appelé Virtual Private Servers (VPS).
 
-Les guides d'installations peuvent être trouvés sur [cette page](/install_fr).
+Les guides d'installations peuvent être trouvés sur [cette page](/install).
 
 ### Configuration minimale
 
diff --git a/index.md b/index.md
index 4742bd5f..4e960d64 100644
--- a/index.md
+++ b/index.md
@@ -93,7 +93,7 @@
 
     <div class="col-md-4 col-md-offset-4 button-list">
       <a class="btn btn-lg btn-block btn-info" href="/docs"><span class="glyphicon glyphicon-book"></span> Documentation</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr"><span class="glyphicon glyphicon-comment"></span> Forum and chat</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help"><span class="glyphicon glyphicon-comment"></span> Forum and chat</a>
       <a class="btn btn-lg btn-block btn-success" href="/contribute"><span class="glyphicon glyphicon-heart"></span> Get involved</a>
       <a class="btn btn-lg btn-block btn-primary" href="https://donate.yunohost.org/" style="background-color: #ffd236; border-color: #ffd236;"><span class="glyphicon glyphicon-usd"></span> Donate</a>
     </div>
diff --git a/index_ar.md b/index_ar.md
index 3a495680..ba1d79d0 100644
--- a/index_ar.md
+++ b/index_ar.md
@@ -20,7 +20,7 @@
   <div dir="auto" class="main-links hidden-xs">
     <a href="/whatsyunohost">عن واي يونوهوست</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">آخر المستجدات</a> <span class="colored-bar">•</span> 
-    <a href="/docs_ar">المستندات</a> <span class="colored-bar">•</span> 
+    <a href="/docs">المستندات</a> <span class="colored-bar">•</span> 
     <a href="https://donate.yunohost.org/">تبرع/a>
   </div>
 
@@ -64,7 +64,7 @@
     </div>
     <div class="col-md-7 text-right">
       <h1>استمتعوا <small>بتطبيقات الويب الخاصة بكم و انْشِئُوا موطنكم الصغير على الإنترنت</small></h1>
-      <p><br /><a href="/apps_ar">قائمة التطبيقات المتوفرة</a></p>
+      <p><br /><a href="/apps">قائمة التطبيقات المتوفرة</a></p>
     </div>
   </div>
 
@@ -88,17 +88,17 @@
     <div class="col-md-4 button-list">
 
       <a class="btn btn-lg btn-block btn-primary" href="/whatsyunohost">ما هو YunoHost</a>
-      <a class="btn btn-lg btn-block btn-info" href="/docs_ar">الدليل</a>
+      <a class="btn btn-lg btn-block btn-info" href="/docs">الدليل</a>
       <a class="btn btn-lg btn-block btn-success" href="/contribute">كيف يمكنكم المساهمة</a>
       <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org" target="_blank">المنتدى</a>
       <a class="btn btn-lg btn-block btn-default" href="chat_rooms" target="_blank">غُرف المحادثة</a>
       <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">آخر الأخبار</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_ar">المساعدة</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help">المساعدة</a>
 
     </div>
     <div class="col-md-7 text-right">
       <h1>إكتشفوا <small>قدرات خادمكم، ولماذا يهمكم الأمر</small></h1>
-      <p><br /><a href="/docs_ar">إطلعوا على الدليل</a></p>
+      <p><br /><a href="/docs">إطلعوا على الدليل</a></p>
     </div>
   </div>
 
diff --git a/index_de.md b/index_de.md
index b324ad47..be0557bd 100644
--- a/index_de.md
+++ b/index_de.md
@@ -92,9 +92,9 @@ Self-Hosting für alle ermöglicht.</small></h1>
       <a class="btn btn-lg btn-block btn-info" href="/docs">Dokumentation</a>
       <a class="btn btn-lg btn-block btn-success" href="/contribute">Mach mit!</a>
       <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org/" target="_blank">Forum</a>
-      <a class="btn btn-lg btn-block btn-default" href="chat_rooms_de" target="_blank">Chat</a>
+      <a class="btn btn-lg btn-block btn-default" href="/chat_rooms" target="_blank">Chat</a>
       <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Neuste Nachrichten</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_de">Hilfe</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help">Hilfe</a>
     </div>
     <div class="col-md-7 text-right">
       <h1>Entdecke <small> die Möglichkeiten, die Du mit einem eigenen Server hast<br> – und warum Self-Hosting Sinn macht.</small></h1>
diff --git a/index_es.md b/index_es.md
index b408427d..a63a7942 100644
--- a/index_es.md
+++ b/index_es.md
@@ -91,7 +91,7 @@
       <a class="btn btn-lg btn-block btn-info" href="/docs">Documentación</a>
       <a class="btn btn-lg btn-block btn-success" href="/contribute">Colaborar</a>
       <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org/" target="_blank">Foro</a>
-      <a class="btn btn-lg btn-block btn-default" href="chat_rooms_en" target="_blank">Salas de chat</a>
+      <a class="btn btn-lg btn-block btn-default" href="/chat_rooms" target="_blank">Salas de chat</a>
       <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Últimas noticias</a>
       <a class="btn btn-lg btn-block btn-danger btn-support" href="/help">Ayuda</a>
     </div>
diff --git a/index_fr.md b/index_fr.md
index 24ea75a8..a1bd6461 100644
--- a/index_fr.md
+++ b/index_fr.md
@@ -17,9 +17,9 @@
   </div>
 
   <div class="main-links hidden-xs">
-    <a href="/whatsyunohost_fr">À propos</a> <span class="colored-bar">•</span> 
+    <a href="/whatsyunohost">À propos</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">Dernières nouvelles</a> <span class="colored-bar">•</span> 
-    <a href="/docs_fr">Documentation</a> <span class="colored-bar">•</span> 
+    <a href="/docs">Documentation</a> <span class="colored-bar">•</span> 
     <a href="https://donate.yunohost.org/">Faire un don</a>
   </div>
 
@@ -34,8 +34,8 @@
   </div>
 
   <div class="call-to-action">
-    <a class="btn btn-primary btn-lg" href="/try_fr">Essayer</a>
-    <a class="btn btn-success btn-lg" href="/install_fr">Installer</a>
+    <a class="btn btn-primary btn-lg" href="/try">Essayer</a>
+    <a class="btn btn-success btn-lg" href="/install">Installer</a>
     <h2 style="margin-top: 0"><small><a href="https://forum.yunohost.org/c/announcement">Dernières nouvelles</a></small></h2>
   </div>
 
@@ -44,7 +44,7 @@
   <div class="row cf">
     <div class="col-md-7 text-right">
       <h1>Installez <small>votre serveur simplement, vous avez déjà tout ce qu’il faut à la maison</small></h1>
-      <p><a href="/hardware_fr">Voir les prérequis</a></p>
+      <p><a href="/hardware">Voir les prérequis</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
@@ -63,7 +63,7 @@
     </div>
     <div class="col-md-7">
       <h1>Gérez <small>votre serveur depuis une interface web simple et propre</small></h1>
-      <p><br /><a href="/try_fr">Essayez l’interface d’administration</a></p>
+      <p><br /><a href="/try">Essayez l’interface d’administration</a></p>
     </div>
   </div>
 
@@ -90,7 +90,7 @@
 
     <div class="col-md-4 col-md-offset-4 button-list">
       <a class="btn btn-lg btn-block btn-info" href="/docs"><span class="glyphicon glyphicon-book"></span> Documentation</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr"><span class="glyphicon glyphicon-comment"></span> Forum et chat</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help"><span class="glyphicon glyphicon-comment"></span> Forum et chat</a>
       <a class="btn btn-lg btn-block btn-success" href="/contribute"><span class="glyphicon glyphicon-heart"></span> Contribuer</a>
       <a class="btn btn-lg btn-block btn-primary" href="https://donate.yunohost.org/" style="background-color: #ffd236; border-color: #ffd236;"><span class="glyphicon glyphicon-usd"></span> Faire un don</a>
      </div>
diff --git a/index_it.md b/index_it.md
index 970605f6..45d2019c 100644
--- a/index_it.md
+++ b/index_it.md
@@ -92,9 +92,9 @@
       <a class="btn btn-lg btn-block btn-info" href="/docs">Documentazione</a>
       <a class="btn btn-lg btn-block btn-success" href="/contribute">Contribuisci</a>
       <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org/" target="_blank">Forum</a>
-      <a class="btn btn-lg btn-block btn-default" href="chat_rooms_en" target="_blank">Chat</a>
+      <a class="btn btn-lg btn-block btn-default" href="/chat_rooms" target="_blank">Chat</a>
       <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Ultime notizie</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr">Supporto</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help">Supporto</a>
     </div>
     <div class="col-md-7 text-right">
       <h1>Esplora <small>cosa puoi fare con un server, e perché è importante</small></h1>
diff --git a/index_oc.md b/index_oc.md
index 194bf8e2..600c81c9 100644
--- a/index_oc.md
+++ b/index_oc.md
@@ -17,9 +17,9 @@
   </div>
 
   <div class="main-links hidden-xs">
-    <a href="/whatsyunohost_fr">A prepaus</a> <span class="colored-bar">•</span> 
+    <a href="/whatsyunohost">A prepaus</a> <span class="colored-bar">•</span> 
     <a href="https://forum.yunohost.org/c/announcement" target="_blank">Darrièras novèlas</a> <span class="colored-bar">•</span> 
-    <a href="/docs_fr">Documentacion</a>
+    <a href="/docs">Documentacion</a>
   </div>
 
 </div><!-- teasing-part -->
@@ -33,8 +33,8 @@
   </div>
 
   <div class="call-to-action">
-    <a class="btn btn-primary btn-lg" href="/try_fr">Ensajar</a>
-    <a class="btn btn-success btn-lg" href="/install_fr">Installar</a>
+    <a class="btn btn-primary btn-lg" href="/try">Ensajar</a>
+    <a class="btn btn-success btn-lg" href="/install">Installar</a>
     <p class="text-muted"><small><a href="https://forum.yunohost.org/t/yunohost-3-6-release-sortie-de-yunohost-3-6/8359">YunoHost v3.6</a></small></p>
   </div>
 
@@ -43,7 +43,7 @@
   <div class="row cf">
     <div class="col-md-7">
       <h1>Installatz <small>vòstre servidor simplament, avètz ja tot çò que cal a l’ostal</small></h1>
-      <p><a href="/hardware_fr">Far veire los requistes</a></p>
+      <p><a href="/hardware">Far veire los requistes</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
@@ -62,7 +62,7 @@
     </div>
     <div class="col-md-7 text-right">
       <h1>Profitatz <small>de vòstras aplicacions web e fabricatz vòstre canton d’Internet</small></h1>
-      <p><br /><a href="/apps_fr">Lista de las aplicacions disponiblas</a></p>
+      <p><br /><a href="/apps">Lista de las aplicacions disponiblas</a></p>
     </div>
   </div>
 
@@ -71,7 +71,7 @@
   <div class="row cf">
     <div class="col-md-7">
       <h1>Gerissètz <small>vòstre servidor coma volgatz : via web, mobil o en linha de comanda</small></h1>
-      <p><br /><a href="/try_fr">Ensajar l’interfàcia d’administracion</a></p>
+      <p><br /><a href="/try">Ensajar l’interfàcia d’administracion</a></p>
     </div>
     <div class="col-md-4">
       <div class="feature-pic">
@@ -85,18 +85,18 @@
   <div class="row cf">
     <div class="col-md-4 button-list">
 
-      <a class="btn btn-lg btn-block btn-primary" href="/whatsyunohost_fr">Qu’es aquò YunoHost ?</a>
-      <a class="btn btn-lg btn-block btn-info" href="/docs_fr">Documentacion</a>
-      <a class="btn btn-lg btn-block btn-success" href="/contribute_fr">Cossí contribuir</a>
+      <a class="btn btn-lg btn-block btn-primary" href="/whatsyunohost">Qu’es aquò YunoHost ?</a>
+      <a class="btn btn-lg btn-block btn-info" href="/docs">Documentacion</a>
+      <a class="btn btn-lg btn-block btn-success" href="/contribute">Cossí contribuir</a>
       <a class="btn btn-lg btn-block btn-warning" href="https://forum.yunohost.org" target="_blank">Forum</a>
-      <a class="btn btn-lg btn-block btn-default" href="chat_rooms_fr" target="_blank">Salas de discussions</a>
+      <a class="btn btn-lg btn-block btn-default" href="/chat_rooms" target="_blank">Salas de discussions</a>
       <a class="btn btn-lg btn-block btn-danger" href="https://forum.yunohost.org/c/announcement">Darrièras novèlas</a>
-      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help_fr">Assisténcia</a>
+      <a class="btn btn-lg btn-block btn-danger btn-support" href="/help">Assisténcia</a>
 
     </div>
     <div class="col-md-7 text-right">
       <h1>Exploratz <small>las possibilitats de vòstre servidor, e aprenètz perque es important</small></h1>
-      <p><br /><a href="/docs_fr">Legir la documentacion</a></p>
+      <p><br /><a href="/docs">Legir la documentacion</a></p>
     </div>
   </div>
 
diff --git a/install_ar.md b/install_ar.md
index 65c5dde5..67afb69a 100644
--- a/install_ar.md
+++ b/install_ar.md
@@ -14,11 +14,11 @@
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/try_fr"><img height=150 src="/images/logo.png" style="vertical-align:bottom"><b><p>الخادوم التجريبي</p></b></a>
+<a href="/try"><img height=150 src="/images/logo.png" style="vertical-align:bottom"><b><p>الخادوم التجريبي</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_virtualbox_fr"><img src="/images/virtualbox.png" height=150 style="vertical-align:bottom"><b><p>التجريب على خادوم إفتراضي</p></b></a>
+<a href="/install_on_virtualbox"><img src="/images/virtualbox.png" height=150 style="vertical-align:bottom"><b><p>التجريب على خادوم إفتراضي</p></b></a>
 </div>
 
 </div>
@@ -32,15 +32,15 @@
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_raspberry_fr"><img src="/images/raspberrypi.jpg" height=150 style="vertical-align:bottom"><b><p>على راسبيري باي</p></b></a>
+<a href="/install_on_raspberry"><img src="/images/raspberrypi.jpg" height=150 style="vertical-align:bottom"><b><p>على راسبيري باي</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_arm_board_fr"><img src="/images/cubieboard2.png" height=150 style="vertical-align:bottom"><b><p dir="rtl">على بطاقة أي أر آم ARM</p></b></a>
+<a href="/install_on_arm_board"><img src="/images/cubieboard2.png" height=150 style="vertical-align:bottom"><b><p dir="rtl">على بطاقة أي أر آم ARM</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_iso_fr"><img src="/images/computer.png" height=150 style="vertical-align:bottom"><b><p>على حاسوب عادي</p></b></a>
+<a href="/install_iso"><img src="/images/computer.png" height=150 style="vertical-align:bottom"><b><p>على حاسوب عادي</p></b></a>
 </div>
 
 </div>
@@ -58,7 +58,7 @@
 <div class="row">
 
 <div class="block-center text-center">
-<a href="/install_on_vps_fr"><img src="/images/vps.png" height=150 style="vertical-align:bottom; text-align:center"><b><p dir="rtl">على خادوم مُستضاف أو خادوم إفتراضي خاص (VPS)</p></b></a>
+<a href="/install_on_vps"><img src="/images/vps.png" height=150 style="vertical-align:bottom; text-align:center"><b><p dir="rtl">على خادوم مُستضاف أو خادوم إفتراضي خاص (VPS)</p></b></a>
 </div>
 
 </div>
@@ -72,7 +72,7 @@
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_debian_fr"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
+<a href="/install_on_debian"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
 <b><p>على ديبيان 9 / ستريتش</p></b></a>
 </div>
 
diff --git a/install_es.md b/install_es.md
index 3c3fb448..cb16720a 100644
--- a/install_es.md
+++ b/install_es.md
@@ -1,6 +1,6 @@
 # Guía de instalación
 
-Existen varias maneras de instalar YunoHost. El método y el hardware difieren un poco si quieres instalarlo en tu casa o en acceso remoto : **[ver el hardware compatible](/hardware_es)**
+Existen varias maneras de instalar YunoHost. El método y el hardware difieren un poco si quieres instalarlo en tu casa o en acceso remoto : **[ver el hardware compatible](/hardware)**
 
 Esta página enumera varios tipos de instalaciones, clasificados por categorías.
 
@@ -11,11 +11,11 @@ Esta página enumera varios tipos de instalaciones, clasificados por categorías
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/try_es"><img height=150 src="/images/logo.png" style="vertical-align:bottom"><b><p>Servidor de demo</p></b></a>
+<a href="/try"><img height=150 src="/images/logo.png" style="vertical-align:bottom"><b><p>Servidor de demo</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_virtualbox_es"><img src="/images/virtualbox.png" height=150 style="vertical-align:bottom"><b><p>Probar en una máquina virtual</p></b></a>
+<a href="/install_on_virtualbox"><img src="/images/virtualbox.png" height=150 style="vertical-align:bottom"><b><p>Probar en una máquina virtual</p></b></a>
 </div>
 
 </div>
@@ -29,15 +29,15 @@ Esta página enumera varios tipos de instalaciones, clasificados por categorías
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_raspberry_es"><img src="/images/raspberrypi.jpg" height=150 style="vertical-align:bottom"><b><p>En un Raspberry Pi</p></b></a>
+<a href="/install_on_raspberry"><img src="/images/raspberrypi.jpg" height=150 style="vertical-align:bottom"><b><p>En un Raspberry Pi</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_arm_board_es"><img src="/images/olinuxino.jpg" height=150 style="vertical-align:bottom; padding:20px"><b><p>En un ARM board</p></b></a>
+<a href="/install_on_arm_board"><img src="/images/olinuxino.jpg" height=150 style="vertical-align:bottom; padding:20px"><b><p>En un ARM board</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_iso_es"><img src="/images/computer.png" height=150 style="vertical-align:bottom"><b><p>En un ordenador estándar</p></b></a>
+<a href="/install_iso"><img src="/images/computer.png" height=150 style="vertical-align:bottom"><b><p>En un ordenador estándar</p></b></a>
 </div>
 
 </div>
@@ -55,7 +55,7 @@ Esta página enumera varios tipos de instalaciones, clasificados por categorías
 <div class="row">
 
 <div class="block-center text-center">
-<a href="/install_on_vps_es"><img src="/images/vps.png" height=150 style="vertical-align:bottom; text-align:center"><b><p>En un servidor dedicado o virtual (VPS)</p></b></a>
+<a href="/install_on_vps"><img src="/images/vps.png" height=150 style="vertical-align:bottom; text-align:center"><b><p>En un servidor dedicado o virtual (VPS)</p></b></a>
 </div>
 
 </div>
@@ -69,7 +69,7 @@ Esta página enumera varios tipos de instalaciones, clasificados por categorías
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_debian_es"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
+<a href="/install_on_debian"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
 <b><p>Sur Debian 9/Stretch</p></b></a>
 </div>
 
diff --git a/install_fr.md b/install_fr.md
index a6ceeac1..7521f412 100644
--- a/install_fr.md
+++ b/install_fr.md
@@ -1,6 +1,6 @@
 # Guide d’installation
 
-Il existe plusieurs manières d’installer YunoHost. La méthode d’installation diffère légèrement si vous souhaitez l’installer chez vous ou à distance, et du matériel utilisé : **[voir le matériel compatible](/hardware_fr)**
+Il existe plusieurs manières d’installer YunoHost. La méthode d’installation diffère légèrement si vous souhaitez l’installer chez vous ou à distance, et du matériel utilisé : **[voir le matériel compatible](/hardware)**
 
 Cette page liste plusieurs types d’installations, classés par catégories.
 
@@ -11,11 +11,11 @@ Cette page liste plusieurs types d’installations, classés par catégories.
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/try_fr"><img height=150 src="/images/logo.png" style="vertical-align:bottom"><b><p>Serveur de démo</p></b></a>
+<a href="/try"><img height=150 src="/images/logo.png" style="vertical-align:bottom"><b><p>Serveur de démo</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_virtualbox_fr"><img src="/images/virtualbox.png" height=150 style="vertical-align:bottom"><b><p>Essayer dans une machine virtuelle</p></b></a>
+<a href="/install_on_virtualbox"><img src="/images/virtualbox.png" height=150 style="vertical-align:bottom"><b><p>Essayer dans une machine virtuelle</p></b></a>
 </div>
 
 </div>
@@ -29,7 +29,7 @@ Cette page liste plusieurs types d’installations, classés par catégories.
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_raspberry_fr"><img src="/images/raspberrypi.jpg" height=150 style="vertical-align:bottom"><b><p>Sur un Raspberry Pi</p></b></a>
+<a href="/install_on_raspberry"><img src="/images/raspberrypi.jpg" height=150 style="vertical-align:bottom"><b><p>Sur un Raspberry Pi</p></b></a>
 </div>
 
 <div class="col col-md-3 text-center">
@@ -37,7 +37,7 @@ Cette page liste plusieurs types d’installations, classés par catégories.
 </div>
 
 <div class="col col-md-3 text-center">
-<a href="/install_iso_fr"><img src="/images/computer.png" height=150 style="vertical-align:bottom"><b><p>Sur un ordinateur standard</p></b></a>
+<a href="/install_iso"><img src="/images/computer.png" height=150 style="vertical-align:bottom"><b><p>Sur un ordinateur standard</p></b></a>
 </div>
 
 </div>
@@ -55,7 +55,7 @@ Cette page liste plusieurs types d’installations, classés par catégories.
 <div class="row">
 
 <div class="block-center text-center">
-<a href="/install_on_vps_fr"><img src="/images/vps.png" height=150 style="vertical-align:bottom; text-align:center"><b><p>Sur un serveur dédié ou virtuel (VPS)</p></b></a>
+<a href="/install_on_vps"><img src="/images/vps.png" height=150 style="vertical-align:bottom; text-align:center"><b><p>Sur un serveur dédié ou virtuel (VPS)</p></b></a>
 </div>
 
 </div>
@@ -69,7 +69,7 @@ Cette page liste plusieurs types d’installations, classés par catégories.
 <div class="row">
 
 <div class="col col-md-3 text-center">
-<a href="/install_on_debian_fr"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
+<a href="/install_on_debian"><img height=150 src="/images/debian-logo.png" style="vertical-align:bottom">
 <b><p>Sur Debian 9/Stretch</p></b></a>
 </div>
 
diff --git a/install_iso_es.md b/install_iso_es.md
index 91de3195..51b5889d 100644
--- a/install_iso_es.md
+++ b/install_iso_es.md
@@ -1,6 +1,6 @@
 # Instalación en un ordenador
 
-*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+*Encontrar otros medios de instalar Yunohost **[aquí](/install)**.*
 
 ## Prerrequisitos
 
@@ -10,7 +10,7 @@
 
 * Un ordenador compatible x86 dedicado a YunoHost : portátil, netbook, ordenador de escritorio. Puedes reutilizar calquiera máquina con **256 Mo de RAM mínimo**
 * Otro ordenador para examinar esta guía y acceder a tu servidor
-* Un [proveedor de Internet ético](/isp_es), de preferencia con acceso de buena velocidad   (ascendente)
+* Un [proveedor de Internet ético](/isp), de preferencia con acceso de buena velocidad   (ascendente)
 * Una **memoria USB** con capacidad mínima de 1Go **O** un **CD en blanco** estándar
 * ***Casos particulares*** : si tu servidor no tiene tarjeta gráfica, hay que preparar un iso que se inicie sobre el puerto de serie](https://github.com/luffah/debian-mkserialiso).
 
@@ -18,13 +18,13 @@
 
 ## Etapas de instalación
 
-<a class="btn btn-lg btn-default" href="/images_es">0. Descargar la imagen ISO</a>
+<a class="btn btn-lg btn-default" href="/images">0. Descargar la imagen ISO</a>
 
-<a class="btn btn-lg btn-default" href="/burn_or_copy_iso_es">1. Copiar la imagen ISO</a>
+<a class="btn btn-lg btn-default" href="/burn_or_copy_iso">1. Copiar la imagen ISO</a>
 
-<a class="btn btn-lg btn-default" href="/boot_and_graphical_install_es">2. Encender e instalar</a>
+<a class="btn btn-lg btn-default" href="/boot_and_graphical_install">2. Encender e instalar</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_es">3. Post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall">3. Post-instalación</a>
 
 ---
 
diff --git a/install_iso_fr.md b/install_iso_fr.md
index 043b5198..85bddef8 100644
--- a/install_iso_fr.md
+++ b/install_iso_fr.md
@@ -1,6 +1,6 @@
 # Installation sur ordinateur
 
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install_fr)**.*
+*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
 
 ## Prérequis
 
@@ -10,7 +10,7 @@
 
 * Un matériel compatible x86 dédié à YunoHost : portable, netbook, ordinateur. Vous pouvez réutiliser n’importe quelle machine avec **256 Mo de RAM minimum**
 * Un autre ordinateur pour parcourir ce guide et accéder à votre serveur
-* Un [fournisseur d’accès correct](/isp_fr), de préférence avec une bonne vitesse de téléversement (débit montant)
+* Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse de téléversement (débit montant)
 * Une **clé USB** d’une capacité minimum d’1Go **OU** un **CD vierge** standard
 * ***Cas particulier*** : Si votre serveur n'a pas de carte graphique, il faut [préparer un iso qui démarre sur le port série](https://github.com/luffah/debian-mkserialiso).
 
@@ -18,13 +18,13 @@
 
 ## Étapes d’installation
 
-<a class="btn btn-lg btn-default" href="/images_fr">0. Télécharger l'image ISO de YunoHost</a>
+<a class="btn btn-lg btn-default" href="/images">0. Télécharger l'image ISO de YunoHost</a>
 
-<a class="btn btn-lg btn-default" href="/burn_or_copy_iso_fr">1. Flasher l’image ISO sur une clef USB</a>
+<a class="btn btn-lg btn-default" href="/burn_or_copy_iso">1. Flasher l’image ISO sur une clef USB</a>
 
-<a class="btn btn-lg btn-default" href="/boot_and_graphical_install_fr">2. Démarrer la machine et installer YunoHost</a>
+<a class="btn btn-lg btn-default" href="/boot_and_graphical_install">2. Démarrer la machine et installer YunoHost</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">3. Effectuer la configuration initiale (post-installation)</a>
+<a class="btn btn-lg btn-default" href="/postinstall">3. Effectuer la configuration initiale (post-installation)</a>
 
 ---
 
diff --git a/install_iso_it.md b/install_iso_it.md
index dfec6cdd..b16d068e 100644
--- a/install_iso_it.md
+++ b/install_iso_it.md
@@ -1,6 +1,6 @@
 # Installazione in un computer
 
-*Altri modi per installare YunoHost **[Clicca qui](/install_it)**.*
+*Altri modi per installare YunoHost **[Clicca qui](/install)**.*
 
 ### Requisiti
 
diff --git a/install_manually_es.md b/install_manually_es.md
index c5120e0a..8f273361 100644
--- a/install_manually_es.md
+++ b/install_manually_es.md
@@ -8,7 +8,7 @@ curl https://install.yunohost.org | bash
 
 <small>*(Si `curl` no está instalado en tu sistema, tal vez tendrás que instalarlo con `apt install curl`. De otro modo, si el comando no muestra nada, puedes intentar `apt install ca-certificates`)*</small>
 
-Cuando la instalación esté terminada, habrá que [**proceder a la post-instalación**](/postinstall_es)
+Cuando la instalación esté terminada, habrá que [**proceder a la post-instalación**](/postinstall)
 
 ---
 
diff --git a/install_on_arm_board.md b/install_on_arm_board.md
index f6f70aa9..9703b54f 100644
--- a/install_on_arm_board.md
+++ b/install_on_arm_board.md
@@ -43,10 +43,10 @@ YunoHost doesn't yet support ARM64 boards. For more information, see [this issue
 
 <a class="btn btn-lg btn-default" href="https://www.armbian.com/download/">0. Download the ARMbian image for your board</a>
 
-<a class="btn btn-lg btn-default" href="/copy_image_fr">1. Flash the SD card with the image</a>
+<a class="btn btn-lg btn-default" href="/copy_image">1. Flash the SD card with the image</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Plug & boot</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Plug & boot</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">3. Connect to your server with SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh">3. Connect to your server with SSH</a>
 
-<a class="btn btn-lg btn-default" href="/install_manually_fr">4. Follow the generic install procedure</a>
+<a class="btn btn-lg btn-default" href="/install_manually">4. Follow the generic install procedure</a>
diff --git a/install_on_arm_board_es.md b/install_on_arm_board_es.md
index 26477bf7..8a3d5278 100644
--- a/install_on_arm_board_es.md
+++ b/install_on_arm_board_es.md
@@ -1,6 +1,6 @@
 # Instalar Yunohost en una tarjeta ARM
 
-*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+*Encontrar otros medios de instalar Yunohost **[aquí](/install)**.*
 
 <center>
 <img src="/images/olinuxino.jpg" width=250 style="padding-bottom:20px">
@@ -19,21 +19,21 @@ YunoHost todavía no es compatible con las tarjetas ARM64. Para obtener más inf
 - Un adaptador de corriente para alimentar la tarjeta ;
 - Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
 - Un cable ethernet/RJ-45 para conectar la carte con el router / caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.)
-- Un [proveedor de Internet ético](/isp_es), de preferencia con una buena velocidad de upload.
+- Un [proveedor de Internet ético](/isp), de preferencia con una buena velocidad de upload.
 
 ---
 
 ## Instalación con la imagen pre-instalada (recomendada)
 
-<a class="btn btn-lg btn-default" href="/images_es">0. Descargar la imagen pre-instalada para tu tarjeta ARM</a><br><small>Si no existe una imagen dedicada a tu tarjeta, puedes seguir la sección "Instalación encima de ARMbian".</small>
+<a class="btn btn-lg btn-default" href="/images">0. Descargar la imagen pre-instalada para tu tarjeta ARM</a><br><small>Si no existe una imagen dedicada a tu tarjeta, puedes seguir la sección "Instalación encima de ARMbian".</small>
 
-<a class="btn btn-lg btn-default" href="/copy_image_es">1. Poner la imagen en tu tarjeta SD</a>
+<a class="btn btn-lg btn-default" href="/copy_image">1. Poner la imagen en tu tarjeta SD</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_es">2. Conectar y encender</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Conectar y encender</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_es">3. Conectarse en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh">3. Conectarse en SSH</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_es">4. Proceder a la post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall">4. Proceder a la post-instalación</a>
 
 ---
 
@@ -41,11 +41,11 @@ YunoHost todavía no es compatible con las tarjetas ARM64. Para obtener más inf
 
 <a class="btn btn-lg btn-default" href="https://www.armbian.com/download/">0. Descargar la imagen ARMbian para tu tarjeta ARM</a>
 
-<a class="btn btn-lg btn-default" href="/copy_image_es">1. Poner la imagen en tu tarjeta SD</a>
+<a class="btn btn-lg btn-default" href="/copy_image">1. Poner la imagen en tu tarjeta SD</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_es">2. Conectar y encender</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Conectar y encender</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_es">3. Conectarse en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh">3. Conectarse en SSH</a>
 
-<a class="btn btn-lg btn-default" href="/install_manually_es">4. Proceder a la post-instalación genérica</a>
+<a class="btn btn-lg btn-default" href="/install_manually">4. Proceder a la post-instalación genérica</a>
 
diff --git a/install_on_arm_board_fr.md b/install_on_arm_board_fr.md
index 02f207cd..68be4675 100644
--- a/install_on_arm_board_fr.md
+++ b/install_on_arm_board_fr.md
@@ -1,6 +1,6 @@
 # Installer YunoHost sur carte ARM
 
-*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install_fr)**.*
+*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install)**.*
 
 <center>
 <img src="/images/olinuxino.jpg" width=250 style="padding-bottom:20px">
@@ -19,21 +19,21 @@ YunoHost ne supporte pour le moment pas les cartes ARM64. Pour plus d'informatio
 - Un adaptateur secteur pour alimenter la carte ;
 - Une carte microSD : au moins **8 Go** et **Classe 10** (par exemple une [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
 - Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet. (Avec le Raspberry Pi 0, vous pouvez connecter votre carte avec un câble OTG et un adaptateur Wifi USB.)
-- Un [fournisseur d’accès correct](/isp_fr), de préférence avec une bonne vitesse d’upload.
+- Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse d’upload.
 
 ---
 
 ## Installation avec l'image pré-installée (recommandée)
 
-<a class="btn btn-lg btn-default" href="/images_fr">0. Télécharger l'image pré-installée pour votre carte ARM</a><br><small>Si il n'existe pas d'image pré-installée pour votre carte, vous pouvez suivre la section "Installation par dessus ARMbian".</small>
+<a class="btn btn-lg btn-default" href="/images">0. Télécharger l'image pré-installée pour votre carte ARM</a><br><small>Si il n'existe pas d'image pré-installée pour votre carte, vous pouvez suivre la section "Installation par dessus ARMbian".</small>
 
-<a class="btn btn-lg btn-default" href="/copy_image_fr">1. Flasher la carte SD avec l'image</a>
+<a class="btn btn-lg btn-default" href="/copy_image">1. Flasher la carte SD avec l'image</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Brancher la carte et la laisser démarrer</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Brancher la carte et la laisser démarrer</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">3. Se connecter en SSH sur le serveur</a>
+<a class="btn btn-lg btn-default" href="/ssh">3. Se connecter en SSH sur le serveur</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">4. Effectuer la configuration initiale (post-installation)</a>
+<a class="btn btn-lg btn-default" href="/postinstall">4. Effectuer la configuration initiale (post-installation)</a>
 
 ---
 
@@ -41,11 +41,11 @@ YunoHost ne supporte pour le moment pas les cartes ARM64. Pour plus d'informatio
 
 <a class="btn btn-lg btn-default" href="https://www.armbian.com/download/">0. Télécharger l'image ARMbian pour votre carte ARM</a>
 
-<a class="btn btn-lg btn-default" href="/copy_image_fr">1. Flasher la carte SD avec l'image</a>
+<a class="btn btn-lg btn-default" href="/copy_image">1. Flasher la carte SD avec l'image</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">2. Brancher & démarrer</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">2. Brancher & démarrer</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">3. Se connecter en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh">3. Se connecter en SSH</a>
 
-<a class="btn btn-lg btn-default" href="/install_manually_fr">4. Suivre la procédure d'installation générique</a>
+<a class="btn btn-lg btn-default" href="/install_manually">4. Suivre la procédure d'installation générique</a>
 
diff --git a/install_on_debian_fr.md b/install_on_debian_fr.md
index 4b05905e..eaa21951 100644
--- a/install_on_debian_fr.md
+++ b/install_on_debian_fr.md
@@ -1,6 +1,6 @@
 # Installation sur Debian
 
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install_fr)**.*
+*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
 
 ## Prérequis
 
@@ -18,7 +18,7 @@ Sur une plateforme ARM, un VPS, un serveur dédié, un ordinateur x86 standard,
 
 ## Étapes d’installation
 
-<a class="btn btn-lg btn-default" href="/install_manually_fr">1. Installer manuellement</a>
+<a class="btn btn-lg btn-default" href="/install_manually">1. Installer manuellement</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">2. Post-installation</a>
+<a class="btn btn-lg btn-default" href="/postinstall">2. Post-installation</a>
 
diff --git a/install_on_raspberry_es.md b/install_on_raspberry_es.md
index 902c8ab1..b4fd51bf 100644
--- a/install_on_raspberry_es.md
+++ b/install_on_raspberry_es.md
@@ -1,6 +1,6 @@
 # Instalar YunoHost en un Raspberry Pi
 
-*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+*Encontrar otros medios de instalar Yunohost **[aquí](/install)**.*
 
 <center>
 <img src="/images/raspberrypi.jpg" width=300 style="padding-bottom:20px">
@@ -17,21 +17,21 @@ Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las
 - Un adaptador de corriente para alimentar la tarjeta ;
 - Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
 - Un cable ethernet/RJ-45 para conectar la tarjeta con tu enrutador o tu caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.)
-- Un [proveedor de Internet ético](/isp_es), de preferencia con buena velocidad de upload.
+- Un [proveedor de Internet ético](/isp), de preferencia con buena velocidad de upload.
 
 ---
 
 ## Instalación con la imagen pre-instalada (recomendada)
 
-<a class="btn btn-lg btn-default" href="/images_es">1. Descargar la imagen para Raspberry Pi</a>
+<a class="btn btn-lg btn-default" href="/images">1. Descargar la imagen para Raspberry Pi</a>
 
-<a class="btn btn-lg btn-default" href="/copy_image_es">2. Poner la imagen en tu tarjeta SD</a>
+<a class="btn btn-lg btn-default" href="/copy_image">2. Poner la imagen en tu tarjeta SD</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_es">3. Conectar y encender</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">3. Conectar y encender</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_es">4. Conectarse en SSH</a>
+<a class="btn btn-lg btn-default" href="/ssh">4. Conectarse en SSH</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_es">5. Proceder a la post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall">5. Proceder a la post-instalación</a>
 
 ---
 
@@ -56,5 +56,5 @@ sudo passwd root
 
 3. Desconéctate et reconéctate con el usuario root esta vez.
 
-4. Sigue con el <a href="/install_manually_es">procedimiento de instalación manual genérico</a>.
+4. Sigue con el <a href="/install_manually">procedimiento de instalación manual genérico</a>.
 
diff --git a/install_on_raspberry_fr.md b/install_on_raspberry_fr.md
index 3290b24f..c3fd6452 100644
--- a/install_on_raspberry_fr.md
+++ b/install_on_raspberry_fr.md
@@ -1,6 +1,6 @@
 # Installer YunoHost sur Raspberry Pi
 
-*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install_fr)**.*
+*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install)**.*
 
 <center>
 <img src="/images/raspberrypi.jpg" width=300 style="padding-bottom:20px">
@@ -17,21 +17,21 @@ Avant d'héberger un serveur chez vous, il est recommandé de prendre connaissan
 - Un adaptateur secteur pour alimenter la carte ;
 - Une carte microSD : au moins **8 Go** et **Classe 10** (par exemple une [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
 - Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet. (Avec le Raspberry Pi 0, vous pouvez connecter votre carte avec un câble OTG et un adaptateur Wifi USB.)
-- Un [fournisseur d’accès correct](/isp_fr), de préférence avec une bonne vitesse d’upload.
+- Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse d’upload.
 
 ---
 
 ## Installation avec l'image pré-installée (recommandée)
 
-<a class="btn btn-lg btn-default" href="/images_fr">1. Télécharger l'image pour Raspberry Pi</a>
+<a class="btn btn-lg btn-default" href="/images">1. Télécharger l'image pour Raspberry Pi</a>
 
-<a class="btn btn-lg btn-default" href="/copy_image_fr">2. Flasher la carte SD avec l'image</a>
+<a class="btn btn-lg btn-default" href="/copy_image">2. Flasher la carte SD avec l'image</a>
 
-<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">3. Brancher la carte et la laisser démarrer</a>
+<a class="btn btn-lg btn-default" href="/plug_and_boot">3. Brancher la carte et la laisser démarrer</a>
 
-<a class="btn btn-lg btn-default" href="/ssh_fr">4. Se connecter en SSH sur le serveur</a>
+<a class="btn btn-lg btn-default" href="/ssh">4. Se connecter en SSH sur le serveur</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">5. Effectuer la configuration initiale (post-installation)</a>
+<a class="btn btn-lg btn-default" href="/postinstall">5. Effectuer la configuration initiale (post-installation)</a>
 
 ---
 
@@ -57,5 +57,5 @@ sudo passwd root
 
 3. Déconnectez-vous et reconnectez-vous avec l'utilisateur root cette fois.
 
-4. Poursuivez avec la <a href="/install_manually_fr">procédure d'installation manuelle générique</a>.
+4. Poursuivez avec la <a href="/install_manually">procédure d'installation manuelle générique</a>.
 
diff --git a/install_on_raspberry_it.md b/install_on_raspberry_it.md
index b2f88cb0..1b3ca866 100644
--- a/install_on_raspberry_it.md
+++ b/install_on_raspberry_it.md
@@ -1,3 +1,3 @@
 # Installa YunoHost su Raspberry Pi
 
-*Consulta la guida completa in inglese [qui](https://yunohost.org/#/install_on_raspberry_en)*
+*Consulta la guida completa in inglese [qui](/install_on_raspberry)*
diff --git a/install_on_virtualbox_es.md b/install_on_virtualbox_es.md
index be31c3d2..9a6260d6 100644
--- a/install_on_virtualbox_es.md
+++ b/install_on_virtualbox_es.md
@@ -1,13 +1,13 @@
 # Instalar YunoHost en VirtualBox
 
-*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+*Encontrar otros medios de instalar Yunohost **[aquí](/install)**.*
 
 ## Prerrequisitos
 
 <img src="/images/virtualbox.png" width=200>
 
 * Un ordenador x86 con VirtualBox instalado y bastante RAM disponible para iniciar una pequeña máquina virtual.
-* La última **imagen ISO YunoHost** estable, disponible [aquí](/images_es).
+* La última **imagen ISO YunoHost** estable, disponible [aquí](/images).
 
 <div class="alert alert-warning" markdown="1">
 N.B. : Instalar YunoHost en VirtualBox es útil para probar la distribución. Para realmente autoalojarse a largo plazo, probablement necesitarás una máquina virtual (viejo ordenador, tarjeta ARM...) o un VPS.
@@ -73,4 +73,4 @@ Si te encuentras con el error "VT-x is not available", probablement hay que acti
 
 Después del reinicio, la máquina debería proponerte de efectuar la post-instalación :
 
-<a class="btn btn-lg btn-default" href="/postinstall_es">Documentación de post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall">Documentación de post-instalación</a>
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
index f83a3151..d99807af 100644
--- a/install_on_virtualbox_fr.md
+++ b/install_on_virtualbox_fr.md
@@ -1,13 +1,13 @@
 # Installer YunoHost sur VirtualBox
 
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install_fr)**.*
+*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
 
 ## Prérequis
 
 <img src="/images/virtualbox.png" width=200>
 
 * Un ordinateur x86 avec VirtualBox installé et assez de RAM disponible pour lancer une petite machine virtuelle.
-* La dernière **image ISO YunoHost** stable, disponible [ici](/images_fr).
+* La dernière **image ISO YunoHost** stable, disponible [ici](/images).
 
 <div class="alert alert-warning" markdown="1">
 N.B. : Installer YunoHost dans une VirtualBox est utile pour tester la
diff --git a/install_on_vps_es.md b/install_on_vps_es.md
index 0263d71f..f6eb2eb7 100644
--- a/install_on_vps_es.md
+++ b/install_on_vps_es.md
@@ -1,6 +1,6 @@
 # Instalación en un servidor dedicado
 
-*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+*Encontrar otros medios de instalar Yunohost **[aquí](/install)**.*
 
 ## Prerrequisitos
 
@@ -14,7 +14,7 @@
 
 ## Etapas de instalación
 
-<a class="btn btn-lg btn-default" href="/install_manually_es">1. Instalar manualmente</a>
+<a class="btn btn-lg btn-default" href="/install_manually">1. Instalar manualmente</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_es">2. Post-instalación</a>
+<a class="btn btn-lg btn-default" href="/postinstall">2. Post-instalación</a>
 
diff --git a/install_on_vps_fr.md b/install_on_vps_fr.md
index 9194d9b7..a0924cb8 100644
--- a/install_on_vps_fr.md
+++ b/install_on_vps_fr.md
@@ -1,6 +1,6 @@
 # Installation sur un serveur dédié
 
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install_fr)**.*
+*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
 
 ## Prérequis
 
@@ -14,6 +14,6 @@
 
 ## Étapes d’installation
 
-<a class="btn btn-lg btn-default" href="/install_manually_fr">1. Installer manuellement</a>
+<a class="btn btn-lg btn-default" href="/install_manually">1. Installer manuellement</a>
 
-<a class="btn btn-lg btn-default" href="/postinstall_fr">2. Effectuer la configuration initiale (post-installation)</a>
+<a class="btn btn-lg btn-default" href="/postinstall">2. Effectuer la configuration initiale (post-installation)</a>
diff --git a/isp.md b/isp.md
index d84d9e87..ba3f8626 100644
--- a/isp.md
+++ b/isp.md
@@ -1,12 +1,12 @@
 # Internet service providers
 
-<a class="btn btn-lg btn-default" href="/isp_box_config_en"> Main configuration box</a>
+<a class="btn btn-lg btn-default" href="/isp_box_config"> Main configuration box</a>
 
 Here is a non-comprehensive list of internet service providers by country, which contains criteria about tolerance to self-hosting.
 
 A "no" may cause problems for using your server or may require you to make additional configuration changes. Status in brackets indicates the default behavior.
 
-A list of French and Belgian ISPs is available on the [french page](/isp_fr).
+A list of French and Belgian ISPs is available on the [french page](/isp).
 
 ### USA
 | Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP |
diff --git a/isp_box_config.md b/isp_box_config.md
index 465a82eb..883889c0 100644
--- a/isp_box_config.md
+++ b/isp_box_config.md
@@ -28,16 +28,16 @@ In your router admin interface, look for something like 'router configuration' o
 Opening the ports listed below is necessary for the various services available in YunoHost to work. For each of them, the 'TCP' forwarding is needed. Some interfaces refer to 'external' and 'internal' ports : these are the same in our case.
 
 * Web: 80 <small>(HTTP)</small>, 443 <small>(HTTPS)</small>
-* [SSH](/ssh_en): 22
-* [XMPP](/XMPP_en): 5222 <small>(clients)</small>, 5269 <small>(servers)</small>
-* [Email](/email_en): 25, 587 <small>(SMTP)</small>, 993 <small>(IMAP)</small>
+* [SSH](/ssh): 22
+* [XMPP](/XMPP): 5222 <small>(clients)</small>, 5269 <small>(servers)</small>
+* [Email](/email): 25, 587 <small>(SMTP)</small>, 993 <small>(IMAP)</small>
 
 If you use both a modem and a router, then you need to do the following:
 1. first on the modem (the box closest to the internet) create rules to forward the above ports to your router;
 2. then on the router (the box between the modem and your devices) create rules to forward the above ports to the static IP address for your server.
 
 <div class="alert alert-warning" markdown="1">
-<span class="glyphicon glyphicon-warning-sign"></span> Some internet service providers block port 25 (mail SMTP) by default to fight spam. Some other ISP don't allow to use port 80/443 (web) freely, though it's less likely. Depending on the ISP, it might be possible to open them in the admin interface... Check [this page](isp_en) for more info.
+<span class="glyphicon glyphicon-warning-sign"></span> Some internet service providers block port 25 (mail SMTP) by default to fight spam. Some other ISP don't allow to use port 80/443 (web) freely, though it's less likely. Depending on the ISP, it might be possible to open them in the admin interface... Check [this page](/isp) for more info.
 </div>
 
 ## Automatic port forwarding / UPnP
diff --git a/isp_box_config_es.md b/isp_box_config_es.md
index dc239ef0..3d5b93f3 100644
--- a/isp_box_config_es.md
+++ b/isp_box_config_es.md
@@ -1,6 +1,6 @@
 # Configurar la redirección de los puertos
 
-Si te estás auto-alojando en casa y sin VPN, tienes que redirigirse los puertos de tu router (caja/box). Si quieres una explicación sencilla de lo que es y por qué necesitas redirigir los puertos, puedes echar un vistazo a [esta página](port_forwarding_es). [Esta página](https://www.testdevelocidad.es/configuraciones/abrir-correctamente-los-puertos-router/) también propone explicaciones detalladas sobre el funcionamiento de los puertos, y las etapas de configuración para un router genérico.
+Si te estás auto-alojando en casa y sin VPN, tienes que redirigirse los puertos de tu router (caja/box). Si quieres una explicación sencilla de lo que es y por qué necesitas redirigir los puertos, puedes echar un vistazo a [esta página](/port_forwarding). [Esta página](https://www.testdevelocidad.es/configuraciones/abrir-correctamente-los-puertos-router/) también propone explicaciones detalladas sobre el funcionamiento de los puertos, y las etapas de configuración para un router genérico.
 
 ### 0. Diagnosticar los puertos abiertos
 
@@ -29,12 +29,12 @@ En la interfaz de administración de tu router/caja/box, tienes que encontrar un
 Luego tienes que redirigir cada uno de los puertos listados a continuación hacia la IP local de tu router para que los varios servicios de Yunohost funcionen. Para cada uno de ellos, una redirección 'TCP' es necesaria. En algunas interfaces, tal vez encontrarás referencias a un puerto 'externo' y un puerto 'interno' : en nuestro caso, se trata del mismo número de puerto, que sea interno o externo.
 
 * Web: 80 <small>(HTTP)</small>, 443 <small>(HTTPS)</small>
-* [SSH](/ssh_es): 22
-* [XMPP](/XMPP_es): 5222 <small>(clients)</small>, 5269 <small>(servers)</small>
-* [Email](/email_es): 25, 587 <small>(SMTP)</small>, 993 <small>(IMAP)</small>
+* [SSH](/ssh): 22
+* [XMPP](/XMPP): 5222 <small>(clients)</small>, 5269 <small>(servers)</small>
+* [Email](/email): 25, 587 <small>(SMTP)</small>, 993 <small>(IMAP)</small>
 
 <div class="alert alert-warning" markdown="1">
-<span class="glyphicon glyphicon-warning-sign"></span> Algunos proveedores de acceso a Internet bloquean el puerto 25 (mail SMTP) por defecto para luchar con el spam. Otros (más escasos) no permiten utilizar libremente los puertos 80/443. Dependiendo de tu proveedor, puede ser posible de abrir estos puertos en la interfaz... Ver [esta página](isp_es) por más informaciones.
+<span class="glyphicon glyphicon-warning-sign"></span> Algunos proveedores de acceso a Internet bloquean el puerto 25 (mail SMTP) por defecto para luchar con el spam. Otros (más escasos) no permiten utilizar libremente los puertos 80/443. Dependiendo de tu proveedor, puede ser posible de abrir estos puertos en la interfaz... Ver [esta página](/isp) por más informaciones.
 </div>
 
 ## Redirección automática / UPnP
diff --git a/isp_box_config_fr.md b/isp_box_config_fr.md
index 866b38b0..31b38b1d 100644
--- a/isp_box_config_fr.md
+++ b/isp_box_config_fr.md
@@ -1,6 +1,6 @@
 # Configurer la redirection des ports
 
-Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Si vous souhaitez une explication courte de ce qu'est et pourquoi vous avez besoin de rediriger les ports, vous pouvez jeter un œil à [cette page-ci](port_forwarding_fr). [Cette page-là](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs.
+Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Si vous souhaitez une explication courte de ce qu'est et pourquoi vous avez besoin de rediriger les ports, vous pouvez jeter un œil à [cette page-ci](/port_forwarding). [Cette page-là](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs.
 
 ### 0. Diagnostiquer les ports ouverts
 
@@ -33,12 +33,12 @@ nom diffère suivant le type / marque de la box...
 Il vous faut ensuite rediriger chacun des ports listés ci-dessous vers l'IP locale de votre serveur pour que les différents services de YunoHost fonctionnent. Pour chacun d'eux, une redirection 'TCP' est nécessaire. Certains interfaces font références à un port 'externe' et un port 'interne' : dans notre cas il s'agit du même.
 
 * Web: 80 <small>(HTTP)</small>, 443 <small>(HTTPS)</small>
-* [SSH](/ssh_fr): 22
-* [XMPP](/XMPP_fr): 5222 <small>(clients)</small>, 5269 <small>(servers)</small>
-* [Email](/email_en): 25, 587 <small>(SMTP)</small>, 993 <small>(IMAP)</small>
+* [SSH](/ssh): 22
+* [XMPP](/XMPP): 5222 <small>(clients)</small>, 5269 <small>(servers)</small>
+* [Email](/email): 25, 587 <small>(SMTP)</small>, 993 <small>(IMAP)</small>
 
 <div class="alert alert-warning" markdown="1">
-<span class="glyphicon glyphicon-warning-sign"></span> Certains fournisseurs d'accès internet bloquent le port 25 (mail SMTP) par défaut pour combattre le spam. D'autres (plus rares) ne permettent pas d'utiliser librement les ports 80/443. En fonction de votre FAI, il peut être possible d'ouvrir ces ports dans l'interface... Voir [cette page](isp_fr) pour plus d'informations.
+<span class="glyphicon glyphicon-warning-sign"></span> Certains fournisseurs d'accès internet bloquent le port 25 (mail SMTP) par défaut pour combattre le spam. D'autres (plus rares) ne permettent pas d'utiliser librement les ports 80/443. En fonction de votre FAI, il peut être possible d'ouvrir ces ports dans l'interface... Voir [cette page](/isp) pour plus d'informations.
 </div>
 
 ## Redirection automatique / UPnP
diff --git a/isp_es.md b/isp_es.md
index e0c42cf0..fed12f76 100644
--- a/isp_es.md
+++ b/isp_es.md
@@ -1,8 +1,8 @@
 # Proveedores de acceso a Internet
 
-<a class="btn btn-lg btn-default" href="/isp_box_config_es"> Configuración general del router</a>
+<a class="btn btn-lg btn-default" href="/isp_box_config"> Configuración general del router</a>
 
-Aquí tienes una lista (no exhaustiva) de proveedores de acceso a Internet por país, con criterios de compatibilidad con el [self-hosting](selfhosting_es).
+Aquí tienes una lista (no exhaustiva) de proveedores de acceso a Internet por país, con criterios de compatibilidad con el [self-hosting](/selfhosting).
 
 Un « **no** » puede implicar problemas de utilización del servidor o puede obligarte a hacer configuraciones adicionales. El estatus entre paréntesis indica el comportamiento por defecto.
 
@@ -14,14 +14,14 @@ Todos los proveedores de acceso a Internet [miembros de la Federación French Da
 * ✔ : sí
 * ✘ : no
 
-| Proveedor de acceso | OVH | [Free](/isp_free_fr) | [SFR](/isp_sfr_fr) | [Orange](/isp_orange_fr) | Bouygues<br>Télécom | Darty |
+| Proveedor de acceso | OVH | [Free](/isp_free) | [SFR](/isp_sfr) | [Orange](/isp_orange) | Bouygues<br>Télécom | Darty |
 | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
 | **Box/router** | Personal/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox |
 | **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| **[Puerto 25 que se abre](email_fr)**<br> (cerrado por defecto) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
+| **[Puerto 25 que se abre](/email)**<br> (cerrado por defecto) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
 | **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
 | **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personalizable ** | ✔ | ✔ (excepto IPv6) | … | ✘ | ✘ | ✘ |
-| **[IP fija](/dns_dynamicip_es)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
+| **[IP fija](/dns_dynamicip)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
 | **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … |
 | **[No listado en el DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | … | ✘ | … | … | … | … |
 Para obtener una lista más completa y precisa, refiérete a la muy buena documentación (fr) de [wiki.auto-hebergement.fr](http://wiki.auto-hebergement.fr/fournisseurs/fai#d%C3%A9tail_des_fai).
@@ -30,7 +30,7 @@ Para obtener una lista más completa y precisa, refiérete a la muy buena docume
 
 ### Bélgica
 
-| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
+| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
 | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
 | **Proximus** | BBox2 | sí (activado) | sí | **no** | **no** | **no** |
 | | BBox3 | sí (activado) | sí | **no** | **no** | **no** |
@@ -40,7 +40,7 @@ Para obtener una lista más completa y precisa, refiérete a la muy buena docume
 
 ### Costa de Marfil
 
-| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
+| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
 | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
 | **Orange** | Livebox2 | sí (activado) | no | **no** | **no** | **no** |
 | **Moov** |  | sí (activado) |  |  |  |  |
diff --git a/isp_fr.md b/isp_fr.md
index 1e8a3900..35e6d8be 100644
--- a/isp_fr.md
+++ b/isp_fr.md
@@ -1,8 +1,8 @@
 # Fournisseurs d’accès à Internet
 
-<a class="btn btn-lg btn-default" href="/isp_box_config_fr"> Configuration générale box</a>
+<a class="btn btn-lg btn-default" href="/isp_box_config"> Configuration générale box</a>
 
-Voici une liste non exhaustive des fournisseurs d’accès à Internet par pays, contenant les critères de tolérance à l’[auto-hébergement](selfhosting_fr).
+Voici une liste non exhaustive des fournisseurs d’accès à Internet par pays, contenant les critères de tolérance à l’[auto-hébergement](/selfhosting).
 
 Un « **non** » peut entraîner des problèmes d’utilisation de votre serveur ou peut vous obliger à faire des configurations supplémentaires. Le statut entre parenthèses indique le comportement par défaut.
 
@@ -12,14 +12,14 @@ Tous les fournisseurs d’accès à Internet [membres de la Fédération French
 * ✔ : oui
 * ✘ : non
 
-| Fournisseur d’accès | OVH | [Free](/isp_free_fr) | [SFR](/isp_sfr_fr) | [Orange](/isp_orange_fr) | Bouygues<br>Télécom | Darty |
+| Fournisseur d’accès | OVH | [Free](/isp_free) | [SFR](/isp_sfr) | [Orange](/isp_orange) | Bouygues<br>Télécom | Darty |
 | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
 | **Box/routeur** | Personnel/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox |
 | **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| **[Port 25 ouvrable](email_fr)**<br> (fermé par défaut) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
+| **[Port 25 ouvrable](/email)**<br> (fermé par défaut) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
 | **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✔ (depuis la Livebox 4) | ✔ | ✔ |
 | **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)<br>personnalisable ** | ✔ | ✔ (sauf IPv6) pas de support | … | ✘ | ✘ | ✘ |
-| **[IP fixe](/dns_dynamicip_fr)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
+| **[IP fixe](/dns_dynamicip)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
 | **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … |
 | **[Non listé sur le DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | … | ✘ | … | … | … | … |
 Pour une liste plus complète et précise, référez-vous à la très bonne documentation de [wiki.auto-hebergement.fr](http://wiki.auto-hebergement.fr/fournisseurs/fai#d%C3%A9tail_des_fai).
@@ -28,7 +28,7 @@ Pour une liste plus complète et précise, référez-vous à la très bonne docu
 
 ### Belgique
 
-| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe |
+| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe |
 | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
 | **Proximus** | BBox2 | oui (activé) | oui | **non** | **non** | **non** |
 | | BBox3 | oui (activé) | oui | **non** | **non** | **non** |
@@ -38,7 +38,7 @@ Pour une liste plus complète et précise, référez-vous à la très bonne docu
 
 ### Côte d'Ivoire
 
-| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe |
+| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe |
 | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
 | **Orange** | Livebox2 | oui (activé) | non | **non** | **non** | **non** |
 | **Moov** |  | oui (activé) |  |  |  |  |
diff --git a/isp_free_fr.md b/isp_free_fr.md
index 59242ee9..58ebb590 100644
--- a/isp_free_fr.md
+++ b/isp_free_fr.md
@@ -1,6 +1,6 @@
 # Free
 
-*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp_fr)**.*
+*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.*
 
 #### Accès à l’administration de la box (v5/v6)
 
@@ -14,13 +14,13 @@ Allez à l’adresse : [mafreebox.free.fr](http://mafreebox.free.fr/) puis authe
 
 #### Ouverture des ports
 
-[Liste des ports à ouvrir](/isp_box_config_fr).
+[Liste des ports à ouvrir](/isp_box_config).
 
 ##### Freebox ≤ v5 
 
 Cela se passe dans la section *Ma Freebox / Configurer mon routeur*. Il faut :
 
-- Rediriger les [ports à ouvrir](/isp_box_config_fr) vers l'adresse locale de votre serveur YunoHost.
+- Rediriger les [ports à ouvrir](/isp_box_config) vers l'adresse locale de votre serveur YunoHost.
 - Définir une DMZ vers votre serveur YunoHost.
 
 La présence conjointe de ces deux règles permettent d'accéder à votre serveur de l'extérieur comme de l'intérieur de votre réseau local.
diff --git a/isp_orange_fr.md b/isp_orange_fr.md
index 56cabf4d..1c80f9fe 100644
--- a/isp_orange_fr.md
+++ b/isp_orange_fr.md
@@ -1,5 +1,5 @@
 # Orange
-*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp_fr)**.*
+*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.*
 
 #### Le courrier électronique
 
diff --git a/isp_sfr_fr.md b/isp_sfr_fr.md
index a163878f..9b159b56 100644
--- a/isp_sfr_fr.md
+++ b/isp_sfr_fr.md
@@ -1,5 +1,5 @@
 #SFR
-*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp_fr)**.*
+*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.*
 #### Accès à l’administration de la box
 * Allez à cette adresse : http://192.168.1.1.
 * Authentifiez-vous, soit en appuyant sur le bouton de la box pendant 5 secondes soit avec les identifiants d’administration.
diff --git a/packaging_apps.md b/packaging_apps.md
index dee9331a..5da09827 100644
--- a/packaging_apps.md
+++ b/packaging_apps.md
@@ -6,7 +6,7 @@ The purpose of this document is to teach you how to package an application for Y
 To package an application, here are the requirements:
 * An account on a git server (e.g. [GitHub](https://github.com/)) to publish the application;
 * Basic knowledge of `git`, bash shell and other programming stuff;
-* A testing [virtual machine or a distant server](/install_en), or a development environement, [ynh-dev](https://github.com/yunohost/ynh-dev) or [VirtualBox](/packaging_apps_virtualbox_fr), to package and test the package.
+* A testing [virtual machine or a distant server](/install), or a development environement, [ynh-dev](https://github.com/yunohost/ynh-dev) or [VirtualBox](/packaging_apps_virtualbox), to package and test the package.
 
 ### Content
 A YunoHost package is composed of:
@@ -21,21 +21,21 @@ A YunoHost package is composed of:
 feel free to use it as a framework.
 
 ## Manifest
-<a class="btn btn-lg btn-default" href="packaging_apps_manifest_en">Manifest</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_manifest">Manifest</a>
 
 ## Scripts
-<a class="btn btn-lg btn-default" href="packaging_apps_scripts_en">Scripts</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_scripts">Scripts</a>
 
 ### Architecture and arguments
 Since YunoHost has a unified architecture, you will be able to guess most of the settings you need. But if you need variable ones, like the domain or web path, you will have to ask the administrator at installation (see `arguments` section in the manifest above).
 
-<a class="btn btn-lg btn-default" href="packaging_apps_arguments_management_en">Arguments management</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_arguments_management">Arguments management</a>
 
 ### Nginx configuration
-<a class="btn btn-lg btn-default" href="packaging_apps_nginx_conf_en">Nginx configuration</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_nginx_conf">Nginx configuration</a>
 
 ### Multi-instance
-<a class="btn btn-lg btn-default" href="packaging_apps_multiinstance_en">Multi-instance</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_multiinstance">Multi-instance</a>
 
 ### Hooks
 YunoHost provides a hook system, which is accessible via the packager's script callbacks in command line.
@@ -46,7 +46,7 @@ The scripts have to be placed in the `hooks` repository at the root of the YunoH
 Take a look at the [Nextcloud package](https://github.com/YunoHost-Apps/nextcloud_ynh/) for a working example.
 
 ### Helpers
-<a class="btn btn-lg btn-default" href="packaging_apps_helpers_en">Helpers</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_helpers">Helpers</a>
 
 ### Registering a log file
 
@@ -85,7 +85,7 @@ In order to test your package, you can execute your script standalone as `admin`
 su - admin -c "/bin/bash /path/to/my/script my_arg1 my_arg2"
 ```
 
-Or you can use [command line](/commandline_en):
+Or you can use [command line](/commandline):
 ```bash
 yunohost app install /path/to/my/app/package
 ```
@@ -97,14 +97,14 @@ yunohost app install https://github.com/author/my_app_package.git
 ### Packaging best practices
 Here is a list of best practices for application install scripts:
 * scripts should use `sudo cp -a ../sources/. $final_path` instead of `sudo cp -a ../sources/* $final_path`;
-* install script must contain support in case of script errors to delete residuals files thanks to `set -e` and [trap](packaging_apps_trap_fr);
+* install script must contain support in case of script errors to delete residuals files thanks to `set -e` and [trap](/packaging_apps_trap);
 * install script should use the command-line method instead of calls to curl through web install form;
 * install script should save install answers;
 * application sources should be checked with a control sum (sha256, sha1 or md5) or a PGP signature;
 * scripts should be tested on Debian Stretch 32 bits, 64 bits and ARM architectures;
 * backup and restore scripts should be present and functional.
 
-To be define the quality of a package, it'll obtained a [level](packaging_apps_levels_fr), determined according to somes criteria of installation and according to respect to [package guidelines](packaging_apps_guidelines).
+To be define the quality of a package, it'll obtained a [level](/packaging_apps_levels), determined according to somes criteria of installation and according to respect to [package guidelines](packaging_apps_guidelines).
 
 ### Package script checker
 <a class="btn btn-lg btn-default" href="https://github.com/YunoHost/package_checker">Package checker</a>
@@ -124,7 +124,7 @@ A continuous integration server is available for packagers who want to test thei
 
 * Publishing a [post on the Forum](https://forum.yunohost.org/) with the [`App integration` category](https://forum.yunohost.org/c/app-integration), to ask for testing and feedback on your application.
 
-* If your application is released under a free software license, you may ask the YunoHost app team to integrate your application to the [app repository](https://github.com/YunoHost/apps) (c.f. also the [app list](apps_en)). You can add your application even if it is not stable or working yet : the current state can be specified to `notworking`, `inprogress`, or `working`.
+* If your application is released under a free software license, you may ask the YunoHost app team to integrate your application to the [app repository](https://github.com/YunoHost/apps) (c.f. also the [app list](/apps)). You can add your application even if it is not stable or working yet : the current state can be specified to `notworking`, `inprogress`, or `working`.
 
 * If your application is *not* free software, then in the future, a non-official list might be created to handle them but is non-existent yet.
 
diff --git a/packaging_apps_arguments_management.md b/packaging_apps_arguments_management.md
index e967af6b..130e3de4 100644
--- a/packaging_apps_arguments_management.md
+++ b/packaging_apps_arguments_management.md
@@ -1,4 +1,4 @@
-<a class="btn btn-lg btn-default" href="packaging_apps_en">Application packaging</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps">Application packaging</a>
 
 ## Arguments management
 #### Retrieve arguments in the install script from manifest
diff --git a/packaging_apps_arguments_management_fr.md b/packaging_apps_arguments_management_fr.md
index 28471773..5d66e707 100644
--- a/packaging_apps_arguments_management_fr.md
+++ b/packaging_apps_arguments_management_fr.md
@@ -1,4 +1,4 @@
-<a class="btn btn-lg btn-default" href="packaging_apps_fr">Packaging d’application</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps">Packaging d’application</a>
 
 ## Gestion des arguments
 #### Récupérer les arguments du manifeste dans le script d’installation
diff --git a/packaging_apps_fr.md b/packaging_apps_fr.md
index 7e06bae8..df480230 100644
--- a/packaging_apps_fr.md
+++ b/packaging_apps_fr.md
@@ -6,10 +6,10 @@ Ce document a pour but de vous apprendre à packager une application pour YunoHo
 Pour packager une application, voici les prérequis :
 * Un compte sur un serveur git comme [GitHub](https://github.com/) pour pouvoir ensuite publier l’application ;
 * Maîtriser un minimum `git`, le Shell et d’autres notions de programmation ;
-* Une [machine virtuelle ou sur un serveur distant](/install_fr) ou un environnement de développement, [ynh-dev](https://github.com/yunohost/ynh-dev) ou [VirtualBox](/packaging_apps_virtualbox_fr), pour packager et tester son paquet.
+* Une [machine virtuelle ou sur un serveur distant](/install) ou un environnement de développement, [ynh-dev](https://github.com/yunohost/ynh-dev) ou [VirtualBox](/packaging_apps_virtualbox), pour packager et tester son paquet.
 
 
-Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/packaging_apps_start_fr).
+Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/packaging_apps_start).
 
 ### Contenu
 Un paquet YunoHost est composé :
@@ -23,27 +23,27 @@ Un paquet YunoHost est composé :
 <a class="btn btn-lg btn-default" href="https://github.com/YunoHost/example_ynh">Paquet de base</a> n’hésitez pas à vous en servir comme base de travail.
 
 ## Manifeste
-<a class="btn btn-lg btn-default" href="packaging_apps_manifest_fr">Manifeste</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_manifest">Manifeste</a>
 
 ## Les scripts
-<a class="btn btn-lg btn-default" href="packaging_apps_scripts_fr">Scripts</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_scripts">Scripts</a>
 
 ### Architecture et arguments
 Comme les instances de YunoHost possèdent une architecture unifiée, vous serez capable de deviner la plupart des réglages nécessaires. Mais si vous avez besoin de réglages spécifiques, comme le nom de domaine ou un chemin web pour configurer l’application, vous devrez les demander aux administrateurs lors de l’installation (voir la section `arguments` dans le § **Manifeste** ci-dessus).
 
-<a class="btn btn-lg btn-default" href="packaging_apps_arguments_management_fr">Gestion des arguments</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_arguments_management">Gestion des arguments</a>
 
 ### Configuration Nginx
-<a class="btn btn-lg btn-default" href="packaging_apps_nginx_conf_fr">Configuration Nginx</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_nginx_conf">Configuration Nginx</a>
 
 ### Multi-instance
-<a class="btn btn-lg btn-default" href="packaging_apps_multiinstance_fr">Multi-instance</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_multiinstance">Multi-instance</a>
 
 ### Hooks
-<a class="btn btn-lg btn-default" href="packaging_apps_hooks_fr">Hooks</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_hooks">Hooks</a>
 
 ### Commandes pratiques
-<a class="btn btn-lg btn-default" href="packaging_apps_helpers_fr">Commandes pratiques</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps_helpers">Commandes pratiques</a>
 
 ### Référencement des logs
 Dans de nombreuses situations, vous pouvez vouloir indexer un fichier de log pour qu'il soit affiché dans la webadmin. Pour indexer un log, il faut créer un fichier d'indexation dans `/var/log/yunohost/categories/app/APPNAME.yml`.
@@ -79,14 +79,14 @@ Ces informations seront utilisées pour permettre de filtrer les logs en relatio
 ### Améliorer la qualité du paquet d’installation
 Vous trouverez ci-dessous une liste des points à vérifier concernant la qualité de vos scripts :
 * Vos scripts utilisent bien `sudo cp -a ../sources/. $final_path` plutôt que `sudo cp -a ../sources/* $final_path` ;
-* Votre script d’installation contient une gestion en cas d’erreurs du script pour supprimer les fichiers résiduels à l’aide de `set -e` et de [trap](/packaging_apps_trap_fr) ;
+* Votre script d’installation contient une gestion en cas d’erreurs du script pour supprimer les fichiers résiduels à l’aide de `set -e` et de [trap](/packaging_apps_trap) ;
 * Votre script d’installation utilise une méthode d’installation en ligne de commande plutôt qu’un appel curl via un formulaire web d’installation ;
 * Votre script d’installation enregistre les réponses de l’utilisateur ;
 * Vous avez vérifié les sources de l’application avec une somme de contrôle (sha256, sha1 ou md5) ou une signature PGP ;
 * Vos scripts ont été testés sur Debian Stretch 32 bits, 64 bits et ARM ;
 * Les scripts backup et restore sont présents et fonctionnels.
 
-Pour mesurer la qualité d'un paquet, celui-ci obtiendra un [niveau](packaging_apps_levels_fr), déterminé en fonction de divers critères d'installation et selon le respect des [règles de packaging](packaging_apps_guidelines_fr).
+Pour mesurer la qualité d'un paquet, celui-ci obtiendra un [niveau](/packaging_apps_levels), déterminé en fonction de divers critères d'installation et selon le respect des [règles de packaging](/packaging_apps_guidelines).
 
 ### Script de vérification du paquet
 <a class="btn btn-lg btn-default" href="https://github.com/YunoHost/package_checker">Vérificateur de paquets</a>
@@ -106,7 +106,7 @@ Un serveur d'intégration continue est a disposition des packagers désirant tes
 
 * Demandez des tests et des retours sur votre application en publiant un [post sur le Forum](https://forum.yunohost.org/) dans la [catégorie `App integration`](https://forum.yunohost.org/c/app-integration).
 
-* Si votre paquet et l'application qu'il contient sont sous licence libre, faites une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) (voir aussi [la liste des apps](apps_fr)). Vous pouvez ajouter une application même si celle-ci n'est pour le moment pas fonctionelle : l'état d'avancement peut être `notworking`, `inprogress` ou `working`.
+* Si votre paquet et l'application qu'il contient sont sous licence libre, faites une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) (voir aussi [la liste des apps](/apps)). Vous pouvez ajouter une application même si celle-ci n'est pour le moment pas fonctionelle : l'état d'avancement peut être `notworking`, `inprogress` ou `working`.
 
 * Si votre application n'est *pas* sous licence libre, il se peut qu'une liste non-officielle soit créée pour gérer ces applications. Ce n'est pour l'instant pas le cas.
 
diff --git a/packaging_apps_guidelines.md b/packaging_apps_guidelines.md
index 0c606a94..41fe5afb 100644
--- a/packaging_apps_guidelines.md
+++ b/packaging_apps_guidelines.md
@@ -164,7 +164,7 @@ Adding an app to the [YunoHost-Apps organization](https://github.com/YunoHost-Ap
 
 It is also a way to quickly deploy a security patch if necessary in the event that the maintainer is unavailable.
 
-Transfer Procedure: Ask the [chat room](chat_rooms_en) to be invited to the organization by providing the name of their GitHub account.
+Transfer Procedure: Ask the [chat room](/chat_rooms) to be invited to the organization by providing the name of their GitHub account.
 Once the invitation is accepted, [transfer its deposit to the organization by following this tutorial](https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/# Transferring-a-repository-to-another-user-account-or-to-an-organization).
 
 #### YEP 1.8
@@ -221,7 +221,7 @@ Keep your code as easy as possible, keep everything a script needs directly into
 #### Stabilize an app
 #### YEP 2.1
 ##### Respect the manifest format | validated | Home | INPROGRESS |
-The manifest allows to describe an app so that YunoHost can apply the good treatments. For more information see [dedicated documentation](https://yunohost.org/#/packaging_apps_manifest).
+The manifest allows to describe an app so that YunoHost can apply the good treatments. For more information see [dedicated documentation](/packaging_apps_manifest).
 
 #### YEP 2.2
 ##### Using bash for main scripts | validated | Home | WORKING |
@@ -287,7 +287,7 @@ It is advisable to make the scripts as generic as possible, a good way to do thi
 In order to simplify packaging, standardize practices, avoid errors and increase the lifetime of a script vis-à-vis future versions of YunoHost. A set of helpers to do many actions is proposed.
 
 For more information :
-* consult [helpers documentation](https://yunohost.org/#/packaging_apps_helpers)
+* consult [helpers documentation](/packaging_apps_helpers)
 * explore [helpers directory](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d)
 
 #### YEP 2.13
diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md
index 4048f777..847367d4 100644
--- a/packaging_apps_guidelines_fr.md
+++ b/packaging_apps_guidelines_fr.md
@@ -165,7 +165,7 @@ L'ajout d'une app sur l'[organisation YunoHost-Apps](https://github.com/YunoHost
 
 C'est aussi un moyen pour permettre de déployer rapidement un correctif de sécurité si nécessaire dans le cas où le mainteneur ne serait pas disponible.
 
-Procédure de transfert : demander sur le [salon de discussion `Apps`](chat_rooms_fr) à être invité à l’organisation en lui fournissant le nom de son compte GitHub.
+Procédure de transfert : demander sur le [salon de discussion `Apps`](/chat_rooms) à être invité à l’organisation en lui fournissant le nom de son compte GitHub.
 Une fois l’invitation acceptée, [transférer son dépôt sur l’organisation en suivant ce tutoriel](https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/#transferring-a-repository-to-another-user-account-or-to-an-organization).
 
 #### YEP 1.8
@@ -222,7 +222,7 @@ Gardez votre code aussi simple que possible, gardez tout ce dont un script a bes
 #### Stabiliser une app
 #### YEP 2.1
 ##### Respecter le format du manifeste  | validé | auto | INPROGRESS |
-Le manifeste permet de décrire une app afin que YunoHost puisse lui appliquer les bons traitements. Pour plus d'information voir la [documentation dédiée](https://yunohost.org/#/packaging_apps_manifest).
+Le manifeste permet de décrire une app afin que YunoHost puisse lui appliquer les bons traitements. Pour plus d'information voir la [documentation dédiée](/packaging_apps_manifest).
 
 #### YEP 2.2
 ##### Utiliser bash pour les scripts principaux  | validé | auto | WORKING |
@@ -289,7 +289,7 @@ Il est conseillé de rendre les scripts le plus générique possible, un bon moy
 Afin de simplifier le packaging, d'uniformiser les pratiques, d'éviter les erreurs et d'augmenter la durée de vie d'un script vis-à-vis des futures versions de YunoHost. Un ensemble de helpers permettant de faire de nombreuses actions est proposé.
 
 Pour plus d'informations :
-* consulter [la documentation des helpers](https://yunohost.org/#/packaging_apps_helpers_fr)
+* consulter [la documentation des helpers](/packaging_apps_helpers)
 * explorer [le répertoire des helpers](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d)
 
 #### YEP 2.13
diff --git a/packaging_apps_hooks_fr.md b/packaging_apps_hooks_fr.md
index 76578e28..c81dc654 100644
--- a/packaging_apps_hooks_fr.md
+++ b/packaging_apps_hooks_fr.md
@@ -115,7 +115,7 @@ backup_name=$1
 
 ##### `post_app_install`, `post_app_upgrade`, `post_app_remove` et `post_app_change_url`
 
-Les variables utilisables dans ces scripts sont les mêmes que celles disponibles dans [les scripts d'actions associés](/packaging_apps_scripts_fr).
+Les variables utilisables dans ces scripts sont les mêmes que celles disponibles dans [les scripts d'actions associés](/packaging_apps_scripts).
 
 
 Example: pour `post_app_install` les variables sont les mêmes que pour le script `install`
diff --git a/packaging_apps_manifest.md b/packaging_apps_manifest.md
index d757bdba..f4407aa1 100644
--- a/packaging_apps_manifest.md
+++ b/packaging_apps_manifest.md
@@ -1,4 +1,4 @@
-<a class="btn btn-lg btn-default" href="packaging_apps_en">Application packaging</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps">Application packaging</a>
 
 ## Manifest
 The `manifest.json` file defines the app's constants, a bunch of values that YunoHost needs to identify the app and install it correctly. It looks like this:
@@ -71,7 +71,7 @@ The `manifest.json` file defines the app's constants, a bunch of values that Yun
 
 - **requirements**: dependency of the application package to a Debian YunoHost package version. For instance, "yunohost": ">> 2.3.12", `yunohost` package version must be up to `2.3.12`.
 
-* [**multi_instance**](packaging_apps_multiinstance_en): it defines app's ability to be installed multiple times.
+* [**multi_instance**](/packaging_apps_multiinstance): it defines app's ability to be installed multiple times.
 
 * **services**: services needed by the application among `nginx`, `php5-fpm`, `mysql`, `uwsgi`, `metronome`, `postfix`, `dovecot`…
 
diff --git a/packaging_apps_manifest_fr.md b/packaging_apps_manifest_fr.md
index 72791575..50a9c611 100644
--- a/packaging_apps_manifest_fr.md
+++ b/packaging_apps_manifest_fr.md
@@ -1,4 +1,4 @@
-<a class="btn btn-lg btn-default" href="packaging_apps_fr">Packaging d’application</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps">Packaging d’application</a>
 
 ## Manifeste
 Le fichier `manifest.json` définit les constantes de l’application, un ensemble de valeurs dont YunoHost a besoin pour identifier l’application et l’installer correctement. Voici un exemple :
@@ -71,7 +71,7 @@ Le fichier `manifest.json` définit les constantes de l’application, un ensemb
 
 - **requirements** : dépendance du paquet de l’application à la version d’un paquet Debian de YunoHost. Par exemple : "yunohost": ">> 2.3.12", le paquet `yunohost` doit être de version supérieur à `2.3.12`.
 
-* [**multi_instance**](packaging_apps_multiinstance_fr) : capacité d’une application d’être installée plusieurs fois.
+* [**multi_instance**](/packaging_apps_multiinstance) : capacité d’une application d’être installée plusieurs fois.
 
 * **services** : liste des services nécessaires au fonctionnement de l’application. `nginx`, `php5-fpm`, `mysql`, `uwsgi`, `metronome`, `postfix`, `dovecot`…
 
diff --git a/packaging_apps_multiinstance.md b/packaging_apps_multiinstance.md
index 7f847ba5..03bc6680 100644
--- a/packaging_apps_multiinstance.md
+++ b/packaging_apps_multiinstance.md
@@ -1,4 +1,4 @@
-<a class="btn btn-lg btn-default" href="packaging_apps_en">Application packaging</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps">Application packaging</a>
 
 ### Multi-instance
 Multi-instance is application capacity to be installed several times.
@@ -6,7 +6,7 @@ Multi-instance is application capacity to be installed several times.
 #### Scripts
 When YunoHost installs the application, it passes `$YNH_APP_INSTANCE_NAME` var to the script, set to value `id__n` with the application `id` coming from the manifest and `n` being an integer  incremented each time a new instance of the application is installed.
 
-**E.g.** in the roundcube script, database is called `roundcube`, the install directory `roundcube` and the [Nginx configuration](packaging_apps_nginx_conf_en) `roundcube`. This way, the second instance of roundcube will not conflict with the first one, and will be installed in the `roundcube__2` database, in the `roundcube__2`directory, and with the `roundcube__2` Nginx configuration.
+**E.g.** in the roundcube script, database is called `roundcube`, the install directory `roundcube` and the [Nginx configuration](/packaging_apps_nginx_conf) `roundcube`. This way, the second instance of roundcube will not conflict with the first one, and will be installed in the `roundcube__2` database, in the `roundcube__2`directory, and with the `roundcube__2` Nginx configuration.
 
 Retrieve app identifier (including the multi-instance id):
 ```bash
@@ -14,7 +14,7 @@ app=$YNH_APP_INSTANCE_NAME
 ```
 
 #### Manifest
-Set `multi_instance` variable to `true` in the [manifest](packaging_apps_manifest_en):
+Set `multi_instance` variable to `true` in the [manifest](/packaging_apps_manifest):
 ```json
  "multi_instance": true,
 ```
diff --git a/packaging_apps_multiinstance_fr.md b/packaging_apps_multiinstance_fr.md
index d652343a..58a6809b 100644
--- a/packaging_apps_multiinstance_fr.md
+++ b/packaging_apps_multiinstance_fr.md
@@ -1,4 +1,4 @@
-<a class="btn btn-lg btn-default" href="packaging_apps_fr">Packaging d’application</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps">Packaging d’application</a>
 
 ### Multi-instances
 Le multi-instance est la capacité d’une application à être installée plusieurs fois.
@@ -6,7 +6,7 @@ Le multi-instance est la capacité d’une application à être installée plusi
 #### Scripts
 Lorsque YunoHost installe l’application, il passe au script dans la variable `$YNH_APP_INSTANCE_NAME`  la valeur `id__n` avec l’identifiant de l’application `id` provenant du manifeste et `n` un nombre incrémentée à chaque nouvelle instance de l’application.
 
-**Par exemple** : dans le script roundcube, il faut nommer la base de données `roundcube`, le dossier d’installation `roundcube` et la [configuration Nginx](packaging_apps_nginx_conf_fr) `roundcube`. De cette manière, la seconde installation de roundcube ne rentrera pas en conflit avec la première, et sera installée dans la base de données `roundcube__2`, dans le répertoire `roundcube__2`, et avec la configuration Nginx `roundcube__2`.
+**Par exemple** : dans le script roundcube, il faut nommer la base de données `roundcube`, le dossier d’installation `roundcube` et la [configuration Nginx](/packaging_apps_nginx_conf) `roundcube`. De cette manière, la seconde installation de roundcube ne rentrera pas en conflit avec la première, et sera installée dans la base de données `roundcube__2`, dans le répertoire `roundcube__2`, et avec la configuration Nginx `roundcube__2`.
 
 
 Récupération de l'identifiant de l'app (incluant l'id multi-instance) :
@@ -15,7 +15,7 @@ app=$YNH_APP_INSTANCE_NAME
 ```
 
 #### Manifeste
-Passer la variable `multi_instance` à `true` dans le [manifeste](packaging_apps_manifest_fr) :
+Passer la variable `multi_instance` à `true` dans le [manifeste](/packaging_apps_manifest) :
 ```json
  "multi_instance": true,
 ```
diff --git a/packaging_apps_scripts.md b/packaging_apps_scripts.md
index 78592f57..7d5c4a88 100644
--- a/packaging_apps_scripts.md
+++ b/packaging_apps_scripts.md
@@ -1,4 +1,4 @@
-<a class="btn btn-lg btn-default" href="packaging_apps_en">Application packaging</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps">Application packaging</a>
 
 ## Scripts
 
diff --git a/packaging_apps_scripts_fr.md b/packaging_apps_scripts_fr.md
index d17dde86..8854f287 100644
--- a/packaging_apps_scripts_fr.md
+++ b/packaging_apps_scripts_fr.md
@@ -1,4 +1,4 @@
-<a class="btn btn-lg btn-default" href="packaging_apps_fr">Packaging d’application</a>
+<a class="btn btn-lg btn-default" href="/packaging_apps">Packaging d’application</a>
 
 ## Les scripts
 
diff --git a/packaging_apps_start.md b/packaging_apps_start.md
index 9cbecf34..7f4e99de 100644
--- a/packaging_apps_start.md
+++ b/packaging_apps_start.md
@@ -43,7 +43,7 @@ Scripts used during application packaging are simply a series of bash commands.
 
 A [bash](https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29) command is a line of text that will be interpreted by the computer and will produce a result. This is commonly refered to as a command line.
 
-You can ony interact with your server through the command line as it does not provide a graphical interface. Usual access is through [ssh](/ssh_en).
+You can ony interact with your server through the command line as it does not provide a graphical interface. Usual access is through [ssh](/ssh).
 
 Package scripts are therefore a series of bash commands as if you had typed them directly in the ssh console.
 
@@ -53,7 +53,7 @@ To know what you can write in a bash script, you should start reading this [simp
 
 Before starting the packaging process, you need to successfully install the application. The script will only perform what you instruct it to do.
 
-Once completed, you need to read a little bit more documentation about application packaging. [This one is more technical](/packaging_apps_en) but now you should understand all the wizardry.
+Once completed, you need to read a little bit more documentation about application packaging. [This one is more technical](/packaging_apps) but now you should understand all the wizardry.
 
 ### HELP! NEED BACKUP!
 
diff --git a/packaging_apps_start_fr.md b/packaging_apps_start_fr.md
index cb64df10..0d8c3ce8 100644
--- a/packaging_apps_start_fr.md
+++ b/packaging_apps_start_fr.md
@@ -37,7 +37,7 @@ Les scripts d'un package d'application sont simplement des commandes bash les un
 #### ... Et c'est quoi une commande bash ?
 
 Une commande [bash](https://fr.wikipedia.org/wiki/Bourne-Again_shell) c'est une ligne de texte qui sera interprétée et produira un résultat. C'est ce qu'on a l'habitude d'appeler la ligne de commande.  
-Or puisque votre serveur, sur lequel est installé YunoHost, ne dispose pas d'une interface graphique, vous n'avez que la ligne de commande de disponible. Vous l'atteignez en général après vous être connecté avec [ssh](/ssh_fr).
+Or puisque votre serveur, sur lequel est installé YunoHost, ne dispose pas d'une interface graphique, vous n'avez que la ligne de commande de disponible. Vous l'atteignez en général après vous être connecté avec [ssh](/ssh).
 
 Les scripts d'un package ne sont donc qu'une succession de commandes bash, comme si vous les aviez tapées directement dans la console ssh pour installer l'application.
 
@@ -47,7 +47,7 @@ Pour savoir quoi écrire dans un script bash, je vous conseille de commencer par
 
 Avant d'envisager de faire un package d'application, il faut réussir à installer correctement la dites application. Car le script ne fera que ce que vous lui direz de faire.
 
-Ensuite, il faut aller lire (et oui encore) la documentation sur le packaging, mais la vrai cette fois, [celle qui emploie des mots bizarres](/packaging_apps_fr).  
+Ensuite, il faut aller lire (et oui encore) la documentation sur le packaging, mais la vrai cette fois, [celle qui emploie des mots bizarres](/packaging_apps).  
 Mais maintenant vous devriez les comprendre tout ces mots étranges.
 
 Mais heureusement, vous n'êtes pas seul pour affronter cette épreuve titanesque, il y a d'autres packageurs que vous pouvez venir rencontrer sur le [forum](https://forum.yunohost.org/c/apps-packaging) et sur le [salon de discussion](xmpp:apps@conference.yunohost.org?join).  
diff --git a/packaging_apps_virtualbox_fr.md b/packaging_apps_virtualbox_fr.md
index 1aadff27..e046139f 100644
--- a/packaging_apps_virtualbox_fr.md
+++ b/packaging_apps_virtualbox_fr.md
@@ -9,7 +9,7 @@ Il y a principalement deux raisons pour préférer l'usage d'un serveur virtuel
 - Vous pouvez torturer à loisir un serveur virtuel sans courir le risque de le casser, puisque vous pourrez toujours restaurer un état précédent. Alors qu'il serait dommage de casser son propre serveur !
 - Un serveur virtuel sera restauré avant de travailler dessus, pour garder en permanence un système sans résidus d'une précédente installation. Cela permet de se rapprocher au plus près d'une première installation par un utilisateur.
 
-Nous parlerons ici de VirtualBox, pour son approche graphique facile à utiliser. Si vous préférez une interface en ligne de commande pour la gestion de la machine virtuelle, tournez-vous de préférence vers [ynh-dev](/dev_fr).
+Nous parlerons ici de VirtualBox, pour son approche graphique facile à utiliser. Si vous préférez une interface en ligne de commande pour la gestion de la machine virtuelle, tournez-vous de préférence vers [ynh-dev](/dev).
 
 ## Installer VirtualBox
 
@@ -20,12 +20,12 @@ Quel que soit votre système, il ne devrait pas être nécessaire d'installer l'
 
 ## Installer YunoHost sur VirtualBox
 
-Suivez simplement la documentation idoine pour l'[installation sur VirtualBox](/install_on_virtualbox_fr) puis la documentation sur la [post-installation](/postinstall_fr).
+Suivez simplement la documentation idoine pour l'[installation sur VirtualBox](/install_on_virtualbox) puis la documentation sur la [post-installation](/postinstall).
 
 Lors de la post-installation, il est inutile d'utiliser un nom de domaine en `.nohost.me` ou `.noho.st`, votre serveur virtuel ne sera pas accessible depuis l'extérieur de votre réseau local.  
 Nous préférerons l'usage d'un faux nom de domaine qui restera cantonné au réseau local. Par exemple, `yunohost.packaging`.
 
-Ce nom de domaine n'étant enregistré dans aucun serveur DNS, on l'enregistrera dans le fichier `hosts` de l'ordinateur qui y accédera. Voir la documentation sur le [DNS local](/dns_local_network_fr).
+Ce nom de domaine n'étant enregistré dans aucun serveur DNS, on l'enregistrera dans le fichier `hosts` de l'ordinateur qui y accédera. Voir la documentation sur le [DNS local](/dns_local_network).
 
 Votre serveur virtuel est à présent installé. Avant de commencer à l'utiliser, nous allons voir comment créer un premier instantané et comment les utiliser.
 
diff --git a/postinstall_es.md b/postinstall_es.md
index 015515f4..7cb92da2 100644
--- a/postinstall_es.md
+++ b/postinstall_es.md
@@ -32,14 +32,14 @@ Es el nombre de dominio que permitirá el acceso a tu servidor así como al port
 
 * YunoHost te propone un DNS dinámico, proveando nombres de dominio del tipo *midominio.nohost.me*, *midominio.noho.st* o *midominio.ynh.fr*. Si no posees un nombre de dominio y/o que quieres aprovechar de este servicio, elige un dominio terminando con `.nohost.me`, `.noho.st` o `.ynh.fr`. Si no está utlizado ya, el dominio automáticamente estará vinculado a tu servidor Yunohost, y no tendrás más etapas de configuración.
 
-* Si, en cambio, dominas la noción de **DNS**, puedes utilizar tu propio nombre de dominio. En este caso, refiérete a la página [yunohost.org/dns](/dns_es) por más información.
+* Si, en cambio, dominas la noción de **DNS**, puedes utilizar tu propio nombre de dominio. En este caso, refiérete a la página [yunohost.org/dns](/dns) por más información.
 
-* Si no tienes nombre de dominio y que no quieres uno que acabe con *.nohost.me*, *.noho.st* ou *.ynh.fr*, puedes utilizar un dominio local. Más información sobre cómo [acceder a tu servidor desde la red local](/dns_local_network_es).
+* Si no tienes nombre de dominio y que no quieres uno que acabe con *.nohost.me*, *.noho.st* ou *.ynh.fr*, puedes utilizar un dominio local. Más información sobre cómo [acceder a tu servidor desde la red local](/dns_local_network).
 
 
 ### Contraseña de administración
 
-Es la contraseña que permitirá acceder a la [interfaz de administración](/admin_es) de tu servidor. También podrás utilizarla para conectarte remotamente vía **SSH**, o vía  **SFTP** para transferir archivos.
+Es la contraseña que permitirá acceder a la [interfaz de administración](/admin) de tu servidor. También podrás utilizarla para conectarte remotamente vía **SSH**, o vía  **SFTP** para transferir archivos.
 
 De manera general, ésta es la **llave de entrada en tu sistema**, pues piensa en **[elegirla atentamente](https://es.wikihow.com/escoger-una-contrase%C3%B1a-segura)**.
 
@@ -54,10 +54,10 @@ Si llegas aquí después de haber visto “Yunohost fue instalado con éxito" de
 
 ### ¿ Y ahora ?
 
-- Si te auto-alojas en casa y sin VPN, tienes que asegurarte que [los puertos de tu caja internet estén redirigidos](isp_box_config_es) ;
+- Si te auto-alojas en casa y sin VPN, tienes que asegurarte que [los puertos de tu caja internet estén redirigidos](/isp_box_config) ;
 - Si utilizas tu propio nombre de dominio (i.e. que no sea un nohost.me /
-  noho.st), tienes que [configurar el nombre de dominio según la configuración recomendada](dns_config_es) ;
-- Si no puedes configurar el nombre de dominio de momento (porque todavía no lo has comprado, ou porque es un dominio test), puedes solucionar temporalmente el problema con las instrucciones del último párrafo [aquí](dns_local_network_es) ;
-- No te asustes demasiado por [la advertencia a propósito del certificado](certificate_es), tendrás la posibilidad de obtener un certificado Let's Encrypt :).
-- Echa un vistazo a las [aplicaciones disponibles](apps_es) !
+  noho.st), tienes que [configurar el nombre de dominio según la configuración recomendada](/dns_config) ;
+- Si no puedes configurar el nombre de dominio de momento (porque todavía no lo has comprado, ou porque es un dominio test), puedes solucionar temporalmente el problema con las instrucciones del último párrafo [aquí](/dns_local_network) ;
+- No te asustes demasiado por [la advertencia a propósito del certificado](/certificate), tendrás la posibilidad de obtener un certificado Let's Encrypt :).
+- Echa un vistazo a las [aplicaciones disponibles](/apps) !
 
diff --git a/postinstall_fr.md b/postinstall_fr.md
index d02cee89..7b912a8e 100644
--- a/postinstall_fr.md
+++ b/postinstall_fr.md
@@ -33,14 +33,14 @@ C’est le nom de domaine qui permettra l’accès à votre serveur ainsi qu’a
 
 * YunoHost propose un service de DNS dynamique fournissant des noms de domaine de type *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*. Si vous ne possédez pas de nom de domaine et/ou que vous souhaitez profiter de ce service, choisissez un domaine se terminant en `.nohost.me`, `.noho.st` ou `.ynh.fr`. S'il n'est pas déjà utilisé, le domaine sera automatiquement rattaché à votre serveur YunoHost, et vous n’aurez pas d’étape de configuration supplémentaire.
 
-* Si en revanche vous maîtrisez la notion de **DNS**, vous pouvez utiliser votre propre nom de domaine. Dans ce cas, référez-vous à la page [yunohost.org/dns](/dns_fr) pour plus d’informations.
+* Si en revanche vous maîtrisez la notion de **DNS**, vous pouvez utiliser votre propre nom de domaine. Dans ce cas, référez-vous à la page [yunohost.org/dns](/dns) pour plus d’informations.
 
-* Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*, vous pouvez utilisez un domaine local. Plus d'infos sur comment [accéder à son serveur depuis le réseau local](/dns_local_network_fr).
+* Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*, vous pouvez utilisez un domaine local. Plus d'infos sur comment [accéder à son serveur depuis le réseau local](/dns_local_network).
 
 
 ### Mot de passe d’administration
 
-C’est le mot de passe qui vous permettra d’accéder à l’[interface d’administration](/admin_fr) de votre serveur. Vous pourrez également l’utiliser pour vous connecter à distance via **SSH**, ou en **SFTP** pour transférer des fichiers.
+C’est le mot de passe qui vous permettra d’accéder à l’[interface d’administration](/admin) de votre serveur. Vous pourrez également l’utiliser pour vous connecter à distance via **SSH**, ou en **SFTP** pour transférer des fichiers.
 
 De manière générale, c’est la **clé d’entrée à votre système**, pensez donc à la **[choisir attentivement](http://www.commentcamarche.net/faq/8275-choisir-un-bon-mot-de-passe)**.
 
@@ -56,16 +56,16 @@ votre navigateur ou la ligne de commande, alors félicitations !
 ### Et maintenant ?
 
 - Si vous vous auto-hébergez à la maison et sans VPN, il faut vous assurer
-  de bien [rediriger les ports de votre box internet](isp_box_config_fr) ;
+  de bien [rediriger les ports de votre box internet](/isp_box_config) ;
 - Si vous utilisez votre propre nom de domaine (c.-à-d. pas un nohost.me /
   noho.st), il vous faut [configurer le nom de domaine d'après la configuration
-  recommandée](dns_config_fr) ;
+  recommandée](/dns_config) ;
 - Si vous ne pouvez pas configurer le nom de domaine pour le moment (parce qu'il
   n'est pas encore acheté, ou parce que c'est un domaine de test), vous pouvez
   contourner temporairement le problème avec les instructions du dernier
-  paragraphe [ici](dns_local_network_fr) ;
+  paragraphe [ici](/dns_local_network) ;
 - Ne soyez pas trop effrayé par [l'avertissement à propos du
-  certificat](certificate_fr), vous aurez probablement la possibilité
+  certificat](/certificate), vous aurez probablement la possibilité
   d'installer un certificat Let's Encrypt :).
-- Jetez un oeil aux [applications disponibles](apps_fr) !
+- Jetez un oeil aux [applications disponibles](/apps) !
 
diff --git a/security_fr.md b/security_fr.md
index 16af38ea..8d9c94e2 100644
--- a/security_fr.md
+++ b/security_fr.md
@@ -11,9 +11,9 @@ Deux points sont néanmoins importants à noter :
 
 * Le fait que YunoHost soit un logiciel répandu augmente les chances de subir une attaque. Si une faille est découverte, elle peut potentiellement **toucher toutes les instances YunoHost** à un temps donné. Nous nous efforçons de corriger ces failles le plus rapidement possible, pensez donc à **mettre à jour régulièrement** votre système.
 
-*Si vous avez besoin de conseil, n’hésitez pas à [nous demander](/help_fr).*
+*Si vous avez besoin de conseil, n’hésitez pas à [nous demander](/help).*
 
-*Pour discuter d'une faille de sécurité, contactez l'[équipe sécurité de YunoHost](/security_team_fr).*
+*Pour discuter d'une faille de sécurité, contactez l'[équipe sécurité de YunoHost](/security_team).*
 
 ---
 
@@ -178,7 +178,7 @@ sudo yunohost settings set security.ssh.compatibility -v modern
 
 ### Désactivation de l’API YunoHost
 
-YunoHost est administrable via une **API HTTP**, servie sur le port 6787 par défaut (seulement sur `localhost`). Elle permet d’administrer une grande partie de votre serveur, et peut donc être utilisée à des **fins malveillantes**. La meilleure chose à faire si vous êtes habitués aux lignes de commande est de désactiver le service `yunohost-api`, et **utiliser la [ligne de commande](/commandline_fr)** en SSH.
+YunoHost est administrable via une **API HTTP**, servie sur le port 6787 par défaut (seulement sur `localhost`). Elle permet d’administrer une grande partie de votre serveur, et peut donc être utilisée à des **fins malveillantes**. La meilleure chose à faire si vous êtes habitués aux lignes de commande est de désactiver le service `yunohost-api`, et **utiliser la [ligne de commande](/commandline)** en SSH.
 
 ```bash
 sudo systemctl disable yunohost-api
diff --git a/selfhosting_ru.md b/selfhosting_ru.md
index 07881197..40f82c63 100644
--- a/selfhosting_ru.md
+++ b/selfhosting_ru.md
@@ -4,11 +4,11 @@
 **Свой хостинг** - это сервер, расположенный у вас дома и предназначенный для размещения информации для личных нужд.
 
 #### Обязанности администратора
-Свой хостинг создает для вас определенные обязанности, если вы хотите разместить на нём сайт, [e-mail](email_en), а также запустить [систему мгновенных сообщений](XMPP), ваш сервер должен работать и оставаться онлайн 24/7.
+Свой хостинг создает для вас определенные обязанности, если вы хотите разместить на нём сайт, [e-mail](/email), а также запустить [систему мгновенных сообщений](XMPP), ваш сервер должен работать и оставаться онлайн 24/7.
 
 Распространенные проблемы, по причине которых сервер может быть недоступен включают в себя: отсутствие электроэнергии, потеря доступа к Интернету, итд.
 
-К примеру, если вы используете [e-mail](email_en) и ваш сервер по какой-то причине становится недоступен, отправленные на него сообщения будут отправлены снова только по прошествии от 3 до 7 дней.
+К примеру, если вы используете [e-mail](/email) и ваш сервер по какой-то причине становится недоступен, отправленные на него сообщения будут отправлены снова только по прошествии от 3 до 7 дней.
 
 #### Минусы своего хостинга
 * Медленная передача данных. При использовании ADSL, скорость загрузки составляет 1/10 от скорости закачки. К примеру при скорости загрузки 1Мб/с скорость загрузки будет около 100Кб/с;
diff --git a/ssh.md b/ssh.md
index 05073dbe..68084a69 100644
--- a/ssh.md
+++ b/ssh.md
@@ -95,4 +95,4 @@ yunohost user ssh list-keys <username>
 
 N.B. : `fail2ban` will ban your IP for 10 mimutes if you perform 5 failed login attempts. If you need to unban the IP, have a look at the page about [fail2ban](/fail2ban)
 
-A more extensive discussion about security & SSH can be found on the [dedicated page](security_en).
+A more extensive discussion about security & SSH can be found on the [dedicated page](/security).
diff --git a/ssh_es.md b/ssh_es.md
index 6b09207c..2cb0cba8 100644
--- a/ssh_es.md
+++ b/ssh_es.md
@@ -45,7 +45,7 @@ Si sólo conoces el IP de tu servidor :
 ssh admin@111.222.333.444
 ```
 
-Luego, entra la contraseña de administración que has elegido durante la post-instalación [post-installation](postinstall_es).
+Luego, entra la contraseña de administración que has elegido durante la post-instalación [post-installation](/postinstall).
 
 Si has configurado tus DNS (o modificar tu `/etc/hosts`), puedes utilizar tu nombre de dominio :
 
@@ -86,6 +86,6 @@ yunohost user ssh list-keys <username>
 
 ## SSH y seguridad
 
-N.B. : `fail2ban` proscribirá tu IP durante 10 minutos si fracasas más de 5 veces consecutivas en identificarte. Si esto ocurre y que quieres re-validar tu IP, puedes echar un vistazo a la página [fail2ban](/fail2ban_es)
+N.B. : `fail2ban` proscribirá tu IP durante 10 minutos si fracasas más de 5 veces consecutivas en identificarte. Si esto ocurre y que quieres re-validar tu IP, puedes echar un vistazo a la página [fail2ban](/fail2ban)
 
-Encontrarás explicaciones más completa sobre la seguridad y SSH en [la página dedicada](security_es).
+Encontrarás explicaciones más completa sobre la seguridad y SSH en [la página dedicada](/security).
diff --git a/ssh_fr.md b/ssh_fr.md
index 124dac3b..dbc8243f 100644
--- a/ssh_fr.md
+++ b/ssh_fr.md
@@ -90,6 +90,6 @@ yunohost user ssh list-keys <username>
 
 ## SSH et sécurité
 
-N.B. : `fail2ban` bannira votre IP pour 10 minutes si vous échouez plus de 5 fois à vous identifier. Pour débannir une IP, vous pouvez regarder la page sur [fail2ban](/fail2ban_fr)
+N.B. : `fail2ban` bannira votre IP pour 10 minutes si vous échouez plus de 5 fois à vous identifier. Pour débannir une IP, vous pouvez regarder la page sur [fail2ban](/fail2ban)
 
-Une discussion plus complète de la sécurité et de SSH peut être trouvée sur [la page dédiée](security_fr).
+Une discussion plus complète de la sécurité et de SSH peut être trouvée sur [la page dédiée](/security).
diff --git a/ssh_it.md b/ssh_it.md
index 5206a2d3..b172629c 100644
--- a/ssh_it.md
+++ b/ssh_it.md
@@ -89,4 +89,4 @@ yunohost user ssh list-keys <username>
 
 N.B.: `fail2ban` bannerà il tuo IP per 10 minuti nel caso di almeno 5 tentativi di accesso falliti. Se devi togliere il ban al tuo IP leggi la pagina relativa [fail2ban](/fail2ban)
 
-Una discussione più approfondita relativa a sicurezza & SSH è su [questa pagina](security_en).
+Una discussione più approfondita relativa a sicurezza & SSH è su [questa pagina](/security).
diff --git a/troubleshooting_guide.md b/troubleshooting_guide.md
index 7bb35784..f1d85a0b 100644
--- a/troubleshooting_guide.md
+++ b/troubleshooting_guide.md
@@ -11,16 +11,16 @@ Also: https://wiki.debian.org/DontBreakDebian
 
 ### Do not install bad quality apps
 
-Even if it can be tempting to install every [apps](https://yunohost.org/#/apps), be careful to their quality level as a bad quality app can ultimately break your server. If you absolutely wish to install such an app, at least try to do it on a test server or check if issues has been posted to this app's Github repository or on the [forum](http://forum.yunohost.org/).
+Even if it can be tempting to install every [apps](/apps), be careful to their quality level as a bad quality app can ultimately break your server. If you absolutely wish to install such an app, at least try to do it on a test server or check if issues has been posted to this app's Github repository or on the [forum](http://forum.yunohost.org/).
 
 ### Check the official documentation
-Answer to your question may be already in [the documentation](https://yunohost.org/#/docs_en).
+Answer to your question may be already in [the documentation](/docs).
 
 ### Check the command line help
-Learn how to use the [YunoHost commands](https://yunohost.org/#/commandline) like a pro.
+Learn how to use the [YunoHost commands](/commandline) like a pro.
 
 ## Upgrade
-Problems often occur after an upgrade. After a YunoHost upgrade you may want to [update your apps](https://yunohost.org/#/app_update_en).
+Problems often occur after an upgrade. After a YunoHost upgrade you may want to [update your apps](/app_update).
 
 **Check if some processes are using old libraries**
 
@@ -54,7 +54,7 @@ $ yunohost app upgrade -u https://github.com/user/someapp_ynh app_name
 ```
 
 ## Services
-YunoHost uses a bunch of software to accomplish its purpose. Most of theses software are registered as service in Debian. [More info](https://yunohost.org/#/whatsyunohost_fr).
+YunoHost uses a bunch of software to accomplish its purpose. Most of theses software are registered as service in Debian. [More info](/whatsyunohost).
 
 ### Check services status
 When something doesn't work on your YunoHost, one of the first things to do is to check that all services used by YunoHost are running.
@@ -81,7 +81,7 @@ All services should be enabled and running. Except glances (optional). If some a
 - **Postfix**: SMTP email server, used to send email
 - **Postgrey**: greylisting policy server, if you use YunoHost email, you should [learn more about greylisting](http://en.wikipedia.org/wiki/Greylisting)
 - **Slapd**: LDAP server, used for authentification (SSO and apps)
-- [**SSH**](/ssh_en): Secure Shell
+- [**SSH**](/ssh): Secure Shell
 - [**SSOwat**](https://github.com/Kloadut/SSOwat/): an simple sign-on
 - **YunoHost-API**: YunoHost web administration
 
@@ -275,7 +275,7 @@ There is no logfile for application install so when you install an app, keep the
 ```
 
 ## Applications
-This part is more for packager or to understand the link between Nginx and webapps. First, you should know [how to package a new app](https://yunohost.org/#/packaging_apps_en).
+This part is more for packager or to understand the link between Nginx and webapps. First, you should know [how to package a new app](/packaging_apps).
 
 When troubleshooting an application issue can occur at several levels. There is a wide variety of applications and their deployment to YunoHost will depending on the programming language of the app. We will deal here with the most commons cases.
 Applications configurations are not treated because it completely differs according to the application.
diff --git a/troubleshooting_guide_fr.md b/troubleshooting_guide_fr.md
index 6a0f1e12..15969124 100644
--- a/troubleshooting_guide_fr.md
+++ b/troubleshooting_guide_fr.md
@@ -5,22 +5,22 @@ Ce guide peut trouver son intérêt lors du débuggage d’une nouvelle applicat
 
 ## Notes générales
 ### Ne cassez pas YunoHost
-La meilleure manière de ne pas avoir de pannes est de ne pas bricoler sur votre serveur. Cela signifie que dès que vous souhaitez essayer quelque chose de nouveau (application non officielle, nouvelle configuration personnalisée, création d’une nouvelle application), essayez d'abord cela sur un serveur de test et non de production. Pour faire cela, vous pouvez par exemple utiliser une [virtualbox](install_on_virtualbox_fr) ou un [droplet DigitalOcean](install_on_vps_fr) pour 1 centime/heure.
+La meilleure manière de ne pas avoir de pannes est de ne pas bricoler sur votre serveur. Cela signifie que dès que vous souhaitez essayer quelque chose de nouveau (application non officielle, nouvelle configuration personnalisée, création d’une nouvelle application), essayez d'abord cela sur un serveur de test et non de production. Pour faire cela, vous pouvez par exemple utiliser une [virtualbox](/install_on_virtualbox) ou un [droplet DigitalOcean](/install_on_vps) pour 1 centime/heure.
 
 Vous pouvez aussi lire ceci si vous avez encore envie de bricoler sur votre instance YunoHost en production : https://wiki.debian.org/DontBreakDebian
 
 ### N'installez pas d'applications de mauvaise qualité
 
-Bien que ce soit tentant d’installer toutes les [applications](https://yunohost.org/#/apps), faites attention à leur niveau de qualité car une mauvaise application peut casser votre serveur. Si la qualité d'une application laisse à désirez mais que vous souhaitez tout de même absolument l'installer, essayez de faire ça sur un serveur de test, ou vérifiez au minimum si des problèmes ont été remontés sur le dépôt Github associé ou bien sur le [forum](http://forum.yunohost.org/).
+Bien que ce soit tentant d’installer toutes les [applications](/apps), faites attention à leur niveau de qualité car une mauvaise application peut casser votre serveur. Si la qualité d'une application laisse à désirez mais que vous souhaitez tout de même absolument l'installer, essayez de faire ça sur un serveur de test, ou vérifiez au minimum si des problèmes ont été remontés sur le dépôt Github associé ou bien sur le [forum](http://forum.yunohost.org/).
 
 ### Vérifier la documentation officielle
-Les réponses à vos questions existent peut être déjà dans [la documentation](docs_fr).
+Les réponses à vos questions existent peut être déjà dans [la documentation](/docs).
 
 ### Vérifier l’aide dans les commandes en ligne
-Vous pouvez apprendre à utiliser les [commandes YunoHost](/commandline_fr)
+Vous pouvez apprendre à utiliser les [commandes YunoHost](/commandline)
 
 ## Mise à jour
-Les problèmes ont souvent lieu après une mise à jour. Après une mise à jour, vous pouvez avoir envie de [mettre à jour votre application](app_update_fr).
+Les problèmes ont souvent lieu après une mise à jour. Après une mise à jour, vous pouvez avoir envie de [mettre à jour votre application](/app_update).
 
 
 **Vérifier si un processus utilise une ancienne librairie**
@@ -58,7 +58,7 @@ $ yunohost app upgrade -u https://github.com/user/someapp_ynh app_name
 ```
 
 ## Les services
-YunoHost utilise toute une série de logiciels pour fonctionner. La plupart de ces logiciels sont déclarés comme des services dans Debian [plus d’info](whatsyunohost_fr).
+YunoHost utilise toute une série de logiciels pour fonctionner. La plupart de ces logiciels sont déclarés comme des services dans Debian [plus d’info](/whatsyunohost).
 
 ### Vérifier le statut des services
 Quand quelque chose ne fonctionne pas, une des premières choses à faire est de vérifier que tous les services utilisés par YunoHost sont lancés.
@@ -86,7 +86,7 @@ Voici une petite description de leurs fonctions respectives :
 - **Postgrey** : serveur de listes grises, si vous utilisez YunoHost pour les mails, vous devriez regarder un peu plus sur cette question.
 [En apprendre plus sur les listes grises](http://en.wikipedia.org/wiki/Greylisting)
 - **Slapd** : serveur LDAP, utilisé pour l’authentification (SSO and apps)
-- [**SSH**](/ssh_en) : Secure Shell, utilisé pour l’accès distant au serveur.
+- [**SSH**](/ssh) : Secure Shell, utilisé pour l’accès distant au serveur.
 - [**SSOwat**](https://github.com/Kloadut/SSOwat/) : gestionnaire simple d’authentification.
 - **YunoHost-API** : administration web de YunoHost
 
@@ -290,7 +290,7 @@ Il n’y a pas de fichier de log créé lorsque vous installez une application.
 ## Applications
 Cette partie concerne plus les créateurs d’applications YunoHost mais permet néanmoins de comprendre le lien entre Nginx et les applications web.
 
-Premièrement, vous devez savoir [comment créer un paquet pour une nouvelle application](packaging_apps_fr).
+Premièrement, vous devez savoir [comment créer un paquet pour une nouvelle application](/packaging_apps).
 
 Quand vous bricolez une application, des erreurs peuvent avoir lieu selon certains niveaux d’importance. Il y a une grande variété d’applications et le déploiement de celles-ci va dépendre du langage de programmation de l’application.
 Nous allons voir ici les « cas classiques ». 
diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md
index 146494b0..f16fdf53 100644
--- a/use_case_non-profit_organisations.md
+++ b/use_case_non-profit_organisations.md
@@ -201,4 +201,4 @@ But for production, localy stored backup are not enough, so you will need to imp
 ## Conclusion
 
 YunoHost can cover 99% of the needs of non-profit organizations, allowing them to own and protect their data, choose applications they want to use.
-And if one is not available, they can [package it for YunoHost](https://yunohost.org/#/contributordoc), it's very simple.
+And if one is not available, they can [package it for YunoHost](/contributordoc), it's very simple.
diff --git a/use_case_non-profit_organisations_fr.md b/use_case_non-profit_organisations_fr.md
index 2409f3e8..5e95773f 100644
--- a/use_case_non-profit_organisations_fr.md
+++ b/use_case_non-profit_organisations_fr.md
@@ -200,4 +200,4 @@ Mais pour la production, la sauvegarde stockée localement ne suffit pas, vous d
 ## Conclusion
 
 YunoHost peut couvrir 99% des besoins des organisations à but non lucratif, leur permettant de posséder et de protéger leurs données, de choisir les applications qu'elles souhaitent utiliser.
-Et s’ils ne sont pas disponibles, ils peuvent [les packager pour YunoHost](https://yunohost.org/#/contributordoc), c’est très simple.
+Et s’ils ne sont pas disponibles, ils peuvent [les packager pour YunoHost](/contributordoc), c’est très simple.
diff --git a/use_case_non-profit_organisations_oc.md b/use_case_non-profit_organisations_oc.md
index 3dc63891..946b3a54 100644
--- a/use_case_non-profit_organisations_oc.md
+++ b/use_case_non-profit_organisations_oc.md
@@ -200,4 +200,4 @@ Mas per la produccion, la salvagarda gardada localament basta pas, vos cal emple
 ## Conclusion
 
 YunoHost pòt cumplir 99% dels besonhs de las organizacions sens tòca lucrativa, en lor permetent de téner e protegir lors donadas, de causir las aplicacions que vòlon utilizar.
-E se son pas disponiblas, pòdon [crear un paquet per YunoHost](https://yunohost.org/#/contributordoc), es fòrça simple.
+E se son pas disponiblas, pòdon [crear un paquet per YunoHost](/contributordoc), es fòrça simple.
diff --git a/whatsyunohost_ar.md b/whatsyunohost_ar.md
index f6634cb6..d1776397 100644
--- a/whatsyunohost_ar.md
+++ b/whatsyunohost_ar.md
@@ -64,16 +64,16 @@ Constatant l’engouement croissant autour de YunoHost et de l’auto-hébergeme
 
 YunoHost est développé pour être le plus **simple** et le moins intrusif possible pour garder la compatibilité avec Debian. Il propose uniquement un ensemble de configurations automatiques et opère via des interfaces accessibles.
 
-Le tout est bien entendu **entièrement libre**. La philosophie de l’[الإستضافة الذاتية](selfhosting_fr) étant à nos yeux incompatible avec tout autre modèle de développement logiciel.
+Le tout est bien entendu **entièrement libre**. La philosophie de l’[الإستضافة الذاتية](/selfhosting) étant à nos yeux incompatible avec tout autre modèle de développement logiciel.
 
-لا تتردّدوا في زيارة صفحة « [ساهموا](/contribute_ar) ».
+لا تتردّدوا في زيارة صفحة « [ساهموا](/contribute) ».
 </div>
 
 ---
 
 ###<div dir="rtl"> الأمان</div>
 
-لقد بُذِلت كل المجهودات مِن أجل تأمين واي يونوهوست YunoHost و **تعمية و تشفير البروتوكولات** . بإمكانكم الإطلاع على الشرح بتفاصيليه [هنا](/security_fr).
+لقد بُذِلت كل المجهودات مِن أجل تأمين واي يونوهوست YunoHost و **تعمية و تشفير البروتوكولات** . بإمكانكم الإطلاع على الشرح بتفاصيليه [هنا](/security).
 </div>
 ---
 
diff --git a/whatsyunohost_fr.md b/whatsyunohost_fr.md
index dcec435b..48b6550a 100644
--- a/whatsyunohost_fr.md
+++ b/whatsyunohost_fr.md
@@ -3,7 +3,7 @@ Qu'est-ce que YunoHost ?
 
 <img src="/images/YunoHost_logo_vertical.png" width=400>
 
-YunoHost est un **système d’exploitation** qui vise à simplifier autant que possible l'administration d'un **serveur** pour ainsi démocratiser [l’auto-hébergement](selfhosting_fr) tout en restant fiable, sécurisé, éthique et léger. C'est un projet de logiciel libre maintenu exclusivement par des bénévoles. Techniquement, il peut être vu comme une distribution basé sur [Debian GNU/Linux](https://debian.org) et peut s'installer sur [de nombreux types de matériel](install_fr).
+YunoHost est un **système d’exploitation** qui vise à simplifier autant que possible l'administration d'un **serveur** pour ainsi démocratiser [l’auto-hébergement](/selfhosting) tout en restant fiable, sécurisé, éthique et léger. C'est un projet de logiciel libre maintenu exclusivement par des bénévoles. Techniquement, il peut être vu comme une distribution basé sur [Debian GNU/Linux](https://debian.org) et peut s'installer sur [de nombreux types de matériel](/install).
 
 Fonctionnalités
 ---------------

From e41e91b37f8859d20ff840a9e93825e2c711d436 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sat, 28 Mar 2020 07:13:50 +0100
Subject: [PATCH 336/360] No need to have this page now with the new Simone
 auto-fallback to english

---
 apps_wishlist_fr.md | 3 ---
 1 file changed, 3 deletions(-)
 delete mode 100644 apps_wishlist_fr.md

diff --git a/apps_wishlist_fr.md b/apps_wishlist_fr.md
deleted file mode 100644
index 88160e7b..00000000
--- a/apps_wishlist_fr.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Apps souhaitées
-
-La liste des applications souhaitées n’est maintenue qu’en <a href="/apps_wishlist">version anglaise</a>. Merci de vous y référer.

From 1d25c263ae4ca366e938f949b4762e51caef874a Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 29 Mar 2020 01:20:21 +0000
Subject: [PATCH 337/360] le lien est mort :(

---
 email_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/email_fr.md b/email_fr.md
index e1c2ca08..2a5ae7b7 100644
--- a/email_fr.md
+++ b/email_fr.md
@@ -47,4 +47,4 @@ Pour aller plus loin
 --------------------
 
 - Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](email_migration).
-- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.iletaitunefoisinternet.fr/post/7-email-sonntag/)(en français).
+- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.iletaitunefoisinternet.fr/post/7-email-sonntag/)(en français). lien cassé....

From fb885da9b81a8f38ad27adbf8b8cb67fbc50c4ef Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 29 Mar 2020 16:58:55 +0000
Subject: [PATCH 338/360] Fixed english typos/grammatical mistakes

---
 security.md | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/security.md b/security.md
index b2cff099..8884ccab 100644
--- a/security.md
+++ b/security.md
@@ -1,6 +1,6 @@
 # Security
 
-YunoHost has been developed to provide the best security without too much complication. Every protocol used in YunoHost are **encrypted**, only password's hashs are stored and by default each user is able to access to his personal directory only.
+YunoHost has been developed to provide the best security without too much complication. Every protocol used in YunoHost is **encrypted**, only password's hashes are stored and by default each user is able to access his personal directory only.
 
 Two things remain important to note:
 
@@ -40,33 +40,33 @@ nano /etc/ssh/sshd_config
 PasswordAuthentication no
 ```
 
-Save and restart SSH daemon.
+Save and restart the SSH daemon.
 ```bash
 systemctl restart ssh
 ```
 ---
 
-### Modify SSH port
+### Modify the SSH port
 
-To prevent SSH connection attempts by robots that scan the Internet for any servers with SSH accessible, you can change the SSH port.
+To prevent SSH connection attempts by robots that scan the Internet for any server with SSH enabled, you can change the SSH port.
 
-**On your server**, edit the ssh configuration file, in order to modify SSH port.
+**On your server**, edit the ssh configuration file, in order to modify the SSH port.
 
 ```bash
 nano /etc/ssh/sshd_config
 ```
-**Search line "Port" and replace** port number (by default 22) by another not used number
+**Search the line "Port" and replace** port number (by default 22) by another unused number
 ```bash
 # What ports, IPs and protocols we listen for
 Port 22 # to replace by 9777 for example
 ```
 
-**Open the port** in firewall (you can use `-6` option to deny ipv4 connection)
+**Open the port** in the firewall (you can use `-6` option to deny ipv4 connection)
 ```bash
 yunohost firewall allow TCP 9777
 ```
 
-Save and restart SSH daemon. Switch over to the new port by restarting SSH.
+Save and restart the SSH daemon. Switch over to the new port by restarting SSH.
 ```bash
 systemctl restart ssh
 ```
@@ -86,7 +86,7 @@ To do that you need to create the configuration file `my_ssh_port.conf` with the
 nano /etc/fail2ban/jail.d/my_ssh_port.conf
 ```
 
-and you can fill it with
+and you can then fill it in with
 
 ```bash
 [sshd]
@@ -114,7 +114,7 @@ ssh -p <new_ssh_port_number> admin@<your_yunohost_server>
 
 ### Change the user authorized to connect via SSH
 
-To avoid multiple forced login attempts to admin by robots, change the authorized user who can connect.
+To avoid multiple forced login attempts to the admin account by robots, change the authorized user who can connect.
 
 <div class="alert alert-info" markdown="1">
 In the case of a key authentication, a brute force attack has no chance of succeeding. This step is not really useful in this case.
@@ -124,8 +124,8 @@ In the case of a key authentication, a brute force attack has no chance of succe
 ```bash
 sudo adduser user_name
 ```
-Choose a strong password, since this user will be responsible to obtain root privileges.
-Add the user to sudo group to allow him/her to perform maintenance tasks that require root privileges.
+Choose a strong password, since this user will be responsible with obtaining root privileges.
+Add the user to the sudo group to allow him/her to perform maintenance tasks that require root privileges.
 ```bash
 sudo adduser user_name sudo
 ```
@@ -140,7 +140,7 @@ AllowUsers user_name
 ```
 Only users listed in the AllowUsers directive will then be allowed to connect via SSH, which excludes the admin user.
 
-Save and restart SSH daemon.
+Save and restart the SSH daemon.
 ```bash
 systemctl restart ssh
 ```
@@ -148,9 +148,9 @@ systemctl restart ssh
 
 ### Change cipher compatibility configuration
 
-The default TLS configuration for services tend to offer a good compatibility to support old devices. You can tune this policy for specific services like SSH and NGINX. By default, the NGINX configuration follows the [intermediate compatibility recommendation](https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29) from Mozilla. You can choose to switch to the 'modern' configuration which uses more recent security recommendations, but decreases the compatibility, which may be an issue for your users and visitors using older devices. More details about the compatibility can be found on [this page](https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility).
+The default TLS configuration for services tends to offer good compatibility to support old devices. You can tune this policy for specific services like SSH and NGINX. By default, the NGINX configuration follows the [intermediate compatibility recommendation](https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29) from Mozilla. You can choose to switch to the 'modern' configuration which uses more recent security recommendations, but decreases the compatibility, which may be an issue for your users and visitors using older devices. More details about the compatibility can be found on [this page](https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility).
 
-Changing the compatibility level is not definitive and can be reverted if it doesn't feet your environment.
+Changing the compatibility level is not definitive and can be reverted if it doesn't fit with your environment.
 
 **On your server**, change the policy for NGINX
 ```bash
@@ -162,8 +162,8 @@ sudo yunohost settings set security.nginx.compatibility -v modern
 sudo yunohost settings set security.ssh.compatibility -v modern
 ```
 
-### Disable YunoHost API
-YunoHost administration is accessible through an **HTTP API**, served on the 6787 port by default (only on `localhost`). It can be used to administrate a lot of things on your server, so malicious actors can also use it to damage your server. The best thing to do, if you know how to use the [command-line interface](/commandline), is to deactivate the `yunohost-api` service.
+### Disable the YunoHost API
+YunoHost administration is accessible through an **HTTP API**, served on the 6787 port by default (only on `localhost`). It can be used to administer a lot of things on your server, so malicious actors can also use it to damage your server. The best thing to do, if you know how to use the [command-line interface](/commandline), is to deactivate the `yunohost-api` service.
 
 ```bash
 sudo systemctl disable yunohost-api

From 2ea08ef1e3d88f853bed54b7219a60b2585d92ab Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 29 Mar 2020 21:18:30 +0200
Subject: [PATCH 339/360] Attempt to add travis tests (+ autolinter script for
 links)

---
 .travis.yml                 |  5 +++++
 tests/dead_links.sh         | 19 +++++++++++++++++++
 tests/uniformize_links.sh   | 13 +++++++++++++
 tests/unreferenced_pages.sh | 25 +++++++++++++++++++++++++
 4 files changed, 62 insertions(+)
 create mode 100644 .travis.yml
 create mode 100644 tests/dead_links.sh
 create mode 100644 tests/uniformize_links.sh
 create mode 100644 tests/unreferenced_pages.sh

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 00000000..ec7369c8
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,5 @@
+language: bash
+
+script:
+    - bash tests/dead_links.sh
+    - bash tests/unreferenced_pages.sh
diff --git a/tests/dead_links.sh b/tests/dead_links.sh
new file mode 100644
index 00000000..f51cec96
--- /dev/null
+++ b/tests/dead_links.sh
@@ -0,0 +1,19 @@
+returncode=0
+
+# Find all markdown links and generate a list of filename.md:N:linktarget   (with N the line number)
+for LINK in $(grep -nr -o -E "\]\(\/?(\w|-)+\)" ./*.md | tr -d ']()/')
+do
+    PAGE=$(echo $LINK | awk -F: '{print $3}')
+    [ -e "$PAGE.md" ] || echo "This link looks dead (page doesn't exist in english?) $LINK"
+    [ -e "$PAGE.md" ] || returncode=1
+done
+
+# Find all HTML/href links and generate a list of filename.md:N:linktarget   (with N the line number)
+for LINK in $(grep -nr -o -E 'href="\/?(\w|-)+\"' ./*.md | sed -E 's@href="/?@@g' | tr -d '"')
+do
+    PAGE=$(echo $LINK | awk -F: '{print $3}')
+    [ -e "$PAGE.md" ] || echo "This link looks dead (page doesn't exist in english?) $LINK"
+    [ -e "$PAGE.md" ] || returncode=1
+done
+
+exit $returncode
diff --git a/tests/uniformize_links.sh b/tests/uniformize_links.sh
new file mode 100644
index 00000000..4a4e76be
--- /dev/null
+++ b/tests/uniformize_links.sh
@@ -0,0 +1,13 @@
+for FILE in $(ls *.md); 
+do 
+    # Replace markdown links with full url ... we only need the relative url
+    sed -i -E 's@\(https://yunohost.org/#/(\w+)\)@(/\1)@g' $FILE
+
+    # Replace (/foo_fr) to (foo)
+    sed -i -E 's@\(\/?((\w|-)+)_(en|fr|es|it|ar|de|oc)\)@(/\1)@g' $FILE
+
+    # Replace href="/foo_fr" to href="foo"
+    sed -i -E 's@href="/?((\w|-)+)_(en|fr|es|it|ar|de|oc)"@href="/\1"@g' $FILE;
+done
+
+git checkout project_organization.md project_organization_fr.md
diff --git a/tests/unreferenced_pages.sh b/tests/unreferenced_pages.sh
new file mode 100644
index 00000000..21c72119
--- /dev/null
+++ b/tests/unreferenced_pages.sh
@@ -0,0 +1,25 @@
+
+
+MARKDOWN_TARGETS=$(grep -nr -o -E "\]\(\/?(\w|-)+\)" ./*.md | tr -d ']()/' | awk -F: '{print $3}' | sort | uniq)
+HTML_TARGETS=$(grep -nr -o -E 'href="\/?(\w|-)+\"' ./*.md | sed -E 's@href="/?@@g' | tr -d '"' | awk -F: '{print $3}' | sort | uniq)
+
+ALL_TARGETS=$(echo $MARKDOWN_TARGETS $HTML_TARGETS)
+
+PAGES=$(ls *.md | sed -E 's/(_(fr|it|de|ar|oc|es|ru))?.md//g' | sort | uniq)
+
+returncode=0
+
+for PAGE in $PAGES
+do
+    if [[ $PAGE == "index" ]] || [[ $PAGE == "README" ]] || [[ $PAGE == "default" ]] 
+    then
+        continue
+    fi
+    if ! echo $ALL_TARGETS | grep -q $PAGE
+    then
+        returncode=1
+        echo "The following page is not referenced by any other page :( -> $PAGE"
+    fi
+done
+
+exit $returncode

From ffe15295d9e53e73c05ec7166af0326896b359dd Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 29 Mar 2020 22:18:12 +0200
Subject: [PATCH 340/360] Fix dead links

---
 app_nextcloud_calendar.md    | 1 +
 app_nextcloud_carnet.md      | 1 +
 app_nextcloud_contact.md     | 1 +
 certificate_custom.md        | 1 +
 isp_free.md                  | 1 +
 isp_orange.md                | 1 +
 isp_sfr.md                   | 1 +
 packaging_apps_hooks.md      | 1 +
 packaging_apps_trap.md       | 1 +
 packaging_apps_virtualbox.md | 1 +
 tests/uniformize_links.sh    | 4 +++-
 11 files changed, 13 insertions(+), 1 deletion(-)
 create mode 120000 app_nextcloud_calendar.md
 create mode 120000 app_nextcloud_carnet.md
 create mode 120000 app_nextcloud_contact.md
 create mode 100644 certificate_custom.md
 create mode 100644 isp_free.md
 create mode 100644 isp_orange.md
 create mode 100644 isp_sfr.md
 create mode 100644 packaging_apps_hooks.md
 create mode 100644 packaging_apps_trap.md
 create mode 100644 packaging_apps_virtualbox.md

diff --git a/app_nextcloud_calendar.md b/app_nextcloud_calendar.md
new file mode 120000
index 00000000..7800f978
--- /dev/null
+++ b/app_nextcloud_calendar.md
@@ -0,0 +1 @@
+default.md
\ No newline at end of file
diff --git a/app_nextcloud_carnet.md b/app_nextcloud_carnet.md
new file mode 120000
index 00000000..7800f978
--- /dev/null
+++ b/app_nextcloud_carnet.md
@@ -0,0 +1 @@
+default.md
\ No newline at end of file
diff --git a/app_nextcloud_contact.md b/app_nextcloud_contact.md
new file mode 120000
index 00000000..7800f978
--- /dev/null
+++ b/app_nextcloud_contact.md
@@ -0,0 +1 @@
+default.md
\ No newline at end of file
diff --git a/certificate_custom.md b/certificate_custom.md
new file mode 100644
index 00000000..29b129cb
--- /dev/null
+++ b/certificate_custom.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](certificate_custom_fr) for now.
diff --git a/isp_free.md b/isp_free.md
new file mode 100644
index 00000000..e97c35fb
--- /dev/null
+++ b/isp_free.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](isp_free_fr) for now.
diff --git a/isp_orange.md b/isp_orange.md
new file mode 100644
index 00000000..c89a3e28
--- /dev/null
+++ b/isp_orange.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](isp_orange_fr) for now.
diff --git a/isp_sfr.md b/isp_sfr.md
new file mode 100644
index 00000000..e5002600
--- /dev/null
+++ b/isp_sfr.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](isp_sfr_fr) for now.
diff --git a/packaging_apps_hooks.md b/packaging_apps_hooks.md
new file mode 100644
index 00000000..748cc17d
--- /dev/null
+++ b/packaging_apps_hooks.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](packaging_apps_hooks_fr) for now.
diff --git a/packaging_apps_trap.md b/packaging_apps_trap.md
new file mode 100644
index 00000000..e129d61c
--- /dev/null
+++ b/packaging_apps_trap.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](packaging_apps_trap_fr) for now.
diff --git a/packaging_apps_virtualbox.md b/packaging_apps_virtualbox.md
new file mode 100644
index 00000000..c47bbfae
--- /dev/null
+++ b/packaging_apps_virtualbox.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](packaging_apps_virtualbox_fr) for now.
diff --git a/tests/uniformize_links.sh b/tests/uniformize_links.sh
index 4a4e76be..9a5ab061 100644
--- a/tests/uniformize_links.sh
+++ b/tests/uniformize_links.sh
@@ -1,5 +1,7 @@
 for FILE in $(ls *.md); 
-do 
+do
+    grep -q "Unfortunately, this page only exists" $FILE && continue
+
     # Replace markdown links with full url ... we only need the relative url
     sed -i -E 's@\(https://yunohost.org/#/(\w+)\)@(/\1)@g' $FILE
 

From 7de2493dca32db3c3e43981fa22255af6a2d073d Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 30 Mar 2020 00:25:55 +0200
Subject: [PATCH 341/360] Fix code block syntax breaking rendering... + add
 test

---
 .travis.yml                      |  1 +
 app_spip.md                      |  4 ++--
 app_spip_fr.md                   |  2 +-
 noaccess_fr.md                   |  4 ++--
 tests/check_code_block_syntax.sh | 17 +++++++++++++++++
 5 files changed, 23 insertions(+), 5 deletions(-)
 create mode 100644 tests/check_code_block_syntax.sh

diff --git a/.travis.yml b/.travis.yml
index ec7369c8..18a27402 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,3 +3,4 @@ language: bash
 script:
     - bash tests/dead_links.sh
     - bash tests/unreferenced_pages.sh
+    - bash tests/check_code_block_syntax.sh
diff --git a/app_spip.md b/app_spip.md
index fb51d7ab..880b41e6 100644
--- a/app_spip.md
+++ b/app_spip.md
@@ -20,7 +20,7 @@ $ sudo yunohost app install https://github.com/YunoHost-Apps/spip_ynh.git_ynh.gi
 
 ##### Update
 
-```
+```bash
 sudo yunohost app upgrade --verbose spip -u https://github.com/YunoHost-Apps/spip_ynh.git_ynh.git
 ```
 
@@ -30,4 +30,4 @@ Access the administration of the site by entering the following address in your
 
 https://www.domain.tld/spip/ecrire
 
-Make a "forgotten password" request to change your password, you will receive an email telling you how to change your password.
\ No newline at end of file
+Make a "forgotten password" request to change your password, you will receive an email telling you how to change your password.
diff --git a/app_spip_fr.md b/app_spip_fr.md
index b765947e..78310855 100644
--- a/app_spip_fr.md
+++ b/app_spip_fr.md
@@ -20,7 +20,7 @@ $ sudo yunohost app install https://github.com/YunoHost-Apps/spip_ynh.git
 
 #### Mise à jour
 
-```
+```bash
 $ sudo yunohost app upgrade --verbose spip -u https://github.com/YunoHost-Apps/spip_ynh.git
 ```
 
diff --git a/noaccess_fr.md b/noaccess_fr.md
index 059fc32a..94d19af8 100644
--- a/noaccess_fr.md
+++ b/noaccess_fr.md
@@ -73,7 +73,7 @@ Si vous utilisez un VPN a IP fixe, peut être que celui-ci est arrivé à expira
 Dans ce cas, vous pouvez peut être accéder à votre serveur avec son IP locale s'agissant probablement d'un serveur auto-hébergé chez-vous.
 
 Pour connaître votre ip locale, certaines BOX propose une cartographie du réseau en cours avec les équipements connectés. Sinon, en ligne de commande avec linux:
-```
+```bash
 sudo arp-scan --local
 ```
 
@@ -100,7 +100,7 @@ Dans ce cas il faut renouveler le nom de domaine (si ile st encore temps.
 Si votre serveur ping avec son ip mais ne ping pas avec le nom de domaine alors il y a un problème de configuration au niveau du champs A.
 
 Si c'est un nom de domaine fournit par YunoHost, lancez 
-```
+```bash
 yunohost dyndns update
 ```
 
diff --git a/tests/check_code_block_syntax.sh b/tests/check_code_block_syntax.sh
new file mode 100644
index 00000000..62e83a0f
--- /dev/null
+++ b/tests/check_code_block_syntax.sh
@@ -0,0 +1,17 @@
+returncode=0
+for FILE in $(ls *.md)
+do
+    NB_OPENING=$(grep -E "^ *\`\`\` *\w+ *$" $FILE | wc -l)
+    NB_CLOSE=$(grep -E "^ *\`\`\` *$" $FILE | wc -l)
+    if [[ "$NB_OPENING" != "$NB_CLOSE" ]]
+    then
+        echo "There are some mistakes in code block syntax in $FILE ..."
+        returncode=1
+    fi
+done
+
+if [[ $returncode == 1 ]]
+then
+    echo "Make sure that all the code block in the problematic files do specific the language in the opening backticks (for example, \`\`\`bash). Otherwise, rendering in the actual website will be broken because of a bug in markdown parsing lib..."
+    exit 1
+fi

From 6c459ef23ffdd93b8bbc5457a86c50a1aaef2389 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 30 Mar 2020 01:27:51 +0200
Subject: [PATCH 342/360] Update donation link

---
 faq.md    | 2 +-
 faq_fr.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/faq.md b/faq.md
index 197a7b3d..48517168 100644
--- a/faq.md
+++ b/faq.md
@@ -74,7 +74,7 @@ Yes, you can! YunoHost needs money to pay servers and domain names. We would
 also like contributors to be able to continue contributing rather than look for
 jobs elsewhere.
 
-You can donate on [Liberapay](https://liberapay.com/yunohost).
+You can donate using [our donation interface](https://donate.yunohost.org)
 
 If you can, you can also make in-kind contributions, like servers (some of our
 infrastructure relies on servers from a few associations).
diff --git a/faq_fr.md b/faq_fr.md
index 9308206d..7fe65a1b 100644
--- a/faq_fr.md
+++ b/faq_fr.md
@@ -67,7 +67,7 @@ Il est question de financement par dons ou subventions, certains contributeurs m
 
 Oui, c'est possible ! YunoHost a besoin de payer des serveurs et noms de domaine, par ailleurs nous souhaiterions pouvoir permettre aux développeurs principaux de continuer à développer YunoHost plutôt que de chercher un emploi ailleurs.
 
-Pour faire un don ça se passe via notre [Liberapay](https://liberapay.com/YunoHost)
+Pour faire un don ça se passe via [notre interface de don](https://donate.yunohost.org)
 
 Si vous le pouvez, vous pouvez aussi faire des contributions en nature (une partie de notre infrastructure vient d'associations qui nous fournissent des serveurs).
 

From 36a18a096b065f008d77a302ab1550defa6e6492 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 30 Mar 2020 01:52:15 +0200
Subject: [PATCH 343/360] Update framasoft app list

---
 apps_framasoft.md    | 49 +-------------------------------------------
 apps_framasoft_fr.md | 48 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 48 deletions(-)
 create mode 100644 apps_framasoft_fr.md

diff --git a/apps_framasoft.md b/apps_framasoft.md
index 714a78b1..b8965af1 100644
--- a/apps_framasoft.md
+++ b/apps_framasoft.md
@@ -1,48 +1 @@
-# Équivalence avec les applications Framasoft
-
-| App Framasoft  | Équivalent          | Package                                                                                                | Status |
-| :---:          | :---:               | :---:                                                                                                  | :---:  |
-| Framapad       | Etherpad + mypads   | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/etherpad_mypads_ynh) | ![](https://dash.yunohost.org/integration/etherpad_mypads.svg) |
-| Framadrive     | Nextcloud           | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/nextcloud_ynh)       | ![](https://dash.yunohost.org/integration/nextcloud.svg) |
-| Framagit       | GitLab              | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gitlab_ynh)          | ![](https://dash.yunohost.org/integration/gitlab.svg) |
-|                | Gogs                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gogs_ynh)            | ![](https://dash.yunohost.org/integration/gogs.svg) |
-| Framadrop      | Lufi                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lufi_ynh)            | ![](https://dash.yunohost.org/integration/lufi.svg) |
-| Framapiaf      | Mastodon            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mastodon_ynh)        | ![](https://dash.yunohost.org/integration/mastodon.svg) |
-| Framapic       | Lutim               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lutim_ynh)           | ![](https://dash.yunohost.org/integration/lutim.svg) |
-| Framabin       | PrivateBin          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/zerobin_ynh)         | ![](https://dash.yunohost.org/integration/zerobin.svg) |
-| Frama.link     | Lstu                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lstu_ynh)            | ![](https://dash.yunohost.org/integration/lstu.svg) |
-| Framatube      | Peertube            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/peertube_ynh)        | ![](https://dash.yunohost.org/integration/peertube.svg) |
-| Framanews      | TinyTinyRSS         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/ttrss_ynh)           | ![](https://dash.yunohost.org/integration/ttrss.svg) |
-| Framabee       | Searx               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/searx_ynh)           | ![](https://dash.yunohost.org/integration/searx.svg) |
-| Framabag       | Wallabag            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wallabag_ynh)        | ![](https://dash.yunohost.org/integration/wallabag.svg) |
-| Framacalc      | Ethercalc           | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/ethercalc_ynh)       | ![](https://dash.yunohost.org/integration/ethercalc.svg) |
-| Framaboard     | Kanboard            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/kanboard_ynh)        | ![](https://dash.yunohost.org/integration/kanboard.svg) |
-| Framadate      | OpenSondage         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/opensondage_ynh)     | ![](https://dash.yunohost.org/integration/opensondage.svg) |
-| Framasphère    | Diaspora*           | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/aymhce/diaspora_ynh)               | ![](https://dash.yunohost.org/integration/diaspora.svg) |
-| Framabookin    | BicBucStriim        | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/BicBucStriim_ynh)    | ![](https://dash.yunohost.org/integration/BicBucStriim.svg) |
-| Framanotes     | Turtl               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/Turtl_ynh)           | ![](https://dash.yunohost.org/integration/Turtl.svg) |
-| Framemo        | Scrumblr            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/scrumblr_ynh)        | ![](https://dash.yunohost.org/integration/scumblr.svg) |
-| Framinetest    | Minetest            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/minetest_ynh)        | ![](https://dash.yunohost.org/integration/minetest.svg) |
-| Framatalk      | Jitsi Meet          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_ynh)           | ![](https://dash.yunohost.org/integration/jitsi.svg) |
-| Framalistes    | Mailman             | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)         | ![](https://dash.yunohost.org/integration/mailman.svg) |
-|                | Sympa               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/alexAubin/sympa_ynh)               | ![](https://dash.yunohost.org/integration/sympa.svg) |
-| Framindmap     | Wisemapping         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wisemapping_ynh)         | ![](https://dash.yunohost.org/integration/wisemapping.svg) |
-| Framavectoriel | SVG-Edit            | Non packagé                                          | |
-| Framacarte     | uMap                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/umap_ynh)            |![](https://dash.yunohost.org/integration/umap.svg) |
-| Framaforms     | Framaforms          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaforms_ynh)      |![](https://dash.yunohost.org/integration/framaforms.svg) |
-| Framaestro     | Framaestro          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaestro_ynh)      |![](https://dash.yunohost.org/integration/framaestro.svg) |
-| Framavox       | Loomio              | Non packagé                                          | |
-| Framagenda     | (Agenda Nextcloud)  | c.f. Nextcloud                                          | |
-| Framagames     | Framagames          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framagames_ynh)      |![](https://dash.yunohost.org/integration/framagames.svg) |
-| Framateam      | Mattermost          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mattermost_ynh)      |![](https://dash.yunohost.org/integration/mattermost.svg) |
-| MyFrama        | Shaarli             | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/shaarli_ynh)      |![](https://dash.yunohost.org/integration/shaarli.svg) |
-| Framaslides    | Strut               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/strut_ynh)      |![](https://dash.yunohost.org/integration/strut.svg) |
-| Framasites     | Grav                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/grav_ynh)      |![](https://dash.yunohost.org/integration/grav.svg) |
-| Framaclic      | Matomo              | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/matomo_ynh)      |![](https://dash.yunohost.org/integration/matomo.svg) |
-| Framatrad     | ?                    | Non packagé                                          | |
-
-### Voir aussi
-
-- [Liste complète des applications packagées](/apps)
-- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)
-
+Unfortunately, this page only exists [in french here](apps_framasoft_fr) for now.
diff --git a/apps_framasoft_fr.md b/apps_framasoft_fr.md
new file mode 100644
index 00000000..d57bcdbd
--- /dev/null
+++ b/apps_framasoft_fr.md
@@ -0,0 +1,48 @@
+# Équivalence avec les applications Framasoft
+
+| App Framasoft  | Équivalent          | Package                                                                                                |
+| :---:          | :---:               | :---:                                                                                                  |
+| Framabag       | Wallabag            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wallabag2_ynh)       ![](https://ci-apps.yunohost.org/ci/badges/wallabag2.status.svg)       ![](https://dash.yunohost.org/integration/wallabag2.svg) |
+| Framabee       | Searx               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/searx_ynh)           ![](https://ci-apps.yunohost.org/ci/badges/searx.status.svg)           ![](https://dash.yunohost.org/integration/searx.svg) |
+| Framabin       | PrivateBin          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/zerobin_ynh)         ![](https://ci-apps.yunohost.org/ci/badges/zerobin.status.svg)         ![](https://dash.yunohost.org/integration/zerobin.svg) |
+| Framaboard     | Kanboard            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/kanboard_ynh)        ![](https://ci-apps.yunohost.org/ci/badges/kanboard.status.svg)        ![](https://dash.yunohost.org/integration/kanboard.svg) |
+| Framabookin    | BicBucStriim        | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/bicbucstriim_ynh)    ![](https://ci-apps.yunohost.org/ci/badges/bicbucstriim.status.svg)    ![](https://dash.yunohost.org/integration/bicbucstriim.svg) |
+| Framacalc      | Ethercalc           | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/ethercalc_ynh)       ![](https://ci-apps.yunohost.org/ci/badges/ethercalc.status.svg)       ![](https://dash.yunohost.org/integration/ethercalc.svg) |
+| Framacarte     | uMap                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/umap_ynh)            ![](https://ci-apps.yunohost.org/ci/badges/umap.status.svg)            ![](https://dash.yunohost.org/integration/umap.svg) |
+| Framaclic      | Matomo              | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/matomo_ynh)          ![](https://ci-apps.yunohost.org/ci/badges/matomo.status.svg)          ![](https://dash.yunohost.org/integration/matomo.svg) |
+| Framadate      | OpenSondage         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/opensondage_ynh)     ![](https://ci-apps.yunohost.org/ci/badges/opensondage.status.svg)     ![](https://dash.yunohost.org/integration/opensondage.svg) |
+| Framadrive     | Nextcloud           | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/nextcloud_ynh)       ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg)       ![](https://dash.yunohost.org/integration/nextcloud.svg) |
+| Framadrop      | Lufi                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lufi_ynh)            ![](https://ci-apps.yunohost.org/ci/badges/lufi.status.svg)            ![](https://dash.yunohost.org/integration/lufi.svg) |
+| Framaestro     | Framaestro          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaestro_ynh)      ![](https://ci-apps.yunohost.org/ci/badges/framaestro.status.svg)      ![](https://dash.yunohost.org/integration/framaestro.svg) |
+| Framaforms     | Framaforms          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaforms_ynh)      ![](https://ci-apps.yunohost.org/ci/badges/framaforms.status.svg)      ![](https://dash.yunohost.org/integration/framaforms.svg) |
+| Framagames     | Framagames          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framagames_ynh)      ![](https://ci-apps.yunohost.org/ci/badges/framagames.status.svg)      ![](https://dash.yunohost.org/integration/framagames.svg) |
+| Framagenda     | (Agenda Nextcloud)  | c.f. Nextcloud                                        |
+| Framagit       | GitLab              | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gitlab_ynh)          ![](https://ci-apps.yunohost.org/ci/badges/gitlab.status.svg)          ![](https://dash.yunohost.org/integration/gitlab.svg) |
+|                | Gogs                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gogs_ynh)            ![](https://ci-apps.yunohost.org/ci/badges/gogs.status.svg)            ![](https://dash.yunohost.org/integration/gogs.svg) |
+| Frama.link     | Lstu                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lstu_ynh)            ![](https://ci-apps.yunohost.org/ci/badges/lstu.status.svg)            ![](https://dash.yunohost.org/integration/lstu.svg) |
+| Framalistes    | Mailman             | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)         ![](https://ci-apps.yunohost.org/ci/badges/mailman.status.svg)         ![](https://dash.yunohost.org/integration/mailman.svg) |
+|                | Sympa               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/alexAubin/sympa_ynh)               ![](https://ci-apps.yunohost.org/ci/badges/sympa.status.svg)           ![](https://dash.yunohost.org/integration/sympa.svg) |
+| Framanews      | TinyTinyRSS         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/ttrss_ynh)           ![](https://ci-apps.yunohost.org/ci/badges/ttrss.status.svg)           ![](https://dash.yunohost.org/integration/ttrss.svg) |
+| Framanotes     | Turtl               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/turtl_ynh)           ![](https://ci-apps.yunohost.org/ci/badges/turtl.status.svg)           ![](https://dash.yunohost.org/integration/turtl.svg) |
+| Framapad       | Etherpad + mypads   | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/etherpad_mypads_ynh) ![](https://ci-apps.yunohost.org/ci/badges/etherpad_mypads.status.svg) ![](https://dash.yunohost.org/integration/etherpad_mypads.svg) |
+| Framapiaf      | Mastodon            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mastodon_ynh)        ![](https://ci-apps.yunohost.org/ci/badges/mastodon.status.svg)        ![](https://dash.yunohost.org/integration/mastodon.svg) |
+| Framapic       | Lutim               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lutim_ynh)           ![](https://ci-apps.yunohost.org/ci/badges/lutim.status.svg)           ![](https://dash.yunohost.org/integration/lutim.svg) |
+| Framasites     | Grav                | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/grav_ynh)            ![](https://ci-apps.yunohost.org/ci/badges/grav.status.svg)            ![](https://dash.yunohost.org/integration/grav.svg) |
+| Framaslides    | Strut               | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/strut_ynh)           ![](https://ci-apps.yunohost.org/ci/badges/strut.status.svg)           ![](https://dash.yunohost.org/integration/strut.svg) |
+| Framasphère    | Diaspora            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/aymhce/diaspora_ynh)               ![](https://ci-apps.yunohost.org/ci/badges/diaspora.status.svg)        ![](https://dash.yunohost.org/integration/diaspora.svg) |
+| Framatalk      | Jitsi Meet          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_ynh)           ![](https://ci-apps.yunohost.org/ci/badges/jitsi.status.svg)           ![](https://dash.yunohost.org/integration/jitsi.svg) |
+| Framateam      | Mattermost          | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mattermost_ynh)      ![](https://ci-apps.yunohost.org/ci/badges/mattermost.status.svg)      ![](https://dash.yunohost.org/integration/mattermost.svg) |
+| Framatrad      | ?                    | Non packagé                                          |
+| Framatube      | Peertube            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/peertube_ynh)        ![](https://ci-apps.yunohost.org/ci/badges/peertube.status.svg)        ![](https://dash.yunohost.org/integration/peertube.svg) |
+| Framavectoriel | SVG-Edit            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/svgedit_ynh)            ![](https://ci-apps.yunohost.org/ci/badges/svgedit.status.svg)      ![](https://dash.yunohost.org/integration/svgedit.svg) |
+| Framavox       | Loomio              | Non packagé                                          |
+| Framemo        | Scrumblr            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/scrumblr_ynh)        ![](https://ci-apps.yunohost.org/ci/badges/scrumblr.status.svg)        ![](https://dash.yunohost.org/integration/scrumblr.svg) |
+| Framindmap     | Wisemapping         | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wisemapping_ynh)     ![](https://ci-apps.yunohost.org/ci/badges/wisemapping.status.svg)     ![](https://dash.yunohost.org/integration/wisemapping.svg) |
+| Framinetest    | Minetest            | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/minetest_ynh)        ![](https://ci-apps.yunohost.org/ci/badges/minetest.status.svg)        ![](https://dash.yunohost.org/integration/minetest.svg) |
+| MyFrama        | Shaarli             | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/shaarli_ynh)         ![](https://ci-apps.yunohost.org/ci/badges/shaarli.status.svg)         ![](https://dash.yunohost.org/integration/shaarli.svg) |
+
+### Voir aussi
+
+- [Liste complète des applications packagées](/apps)
+- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)
+

From a4f6cccb997fd82628c633a67864aebd4958eae8 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 30 Mar 2020 01:58:11 +0200
Subject: [PATCH 344/360] Fix missing reference to some pages...

---
 admindoc.md                                  |   5 +-
 admindoc_fr.md                               |   6 +-
 collabora_en.md => app_collaboradocker.md    |   0
 collabora_fr.md => app_collaboradocker_fr.md |   0
 apps_group_PR_model.md                       |  46 ------
 appsdoc.md                                   |  32 ++++
 contributordoc.md                            |   1 +
 contributordoc_fr.md                         |   1 +
 create_live_usb.md                           | 150 ------------------
 create_live_usb_fr.md                        | 152 -------------------
 docs.md                                      |   3 +-
 docs_fr.md                                   |   9 +-
 noaccess.md                                  |   1 +
 vpn_advantage.md                             |   1 +
 14 files changed, 52 insertions(+), 355 deletions(-)
 rename collabora_en.md => app_collaboradocker.md (100%)
 rename collabora_fr.md => app_collaboradocker_fr.md (100%)
 delete mode 100644 apps_group_PR_model.md
 create mode 100644 appsdoc.md
 delete mode 100644 create_live_usb.md
 delete mode 100644 create_live_usb_fr.md
 create mode 100644 noaccess.md

diff --git a/admindoc.md b/admindoc.md
index f4937dbb..6553d651 100644
--- a/admindoc.md
+++ b/admindoc.md
@@ -35,12 +35,15 @@
     * [Updating the system](/update) and [apps](/app_update)
     * [Security](/security)
 * Going further
+    * [Specific apps documentations](/appsdoc)
     * [Noho.st / nohost.me / ynh.fr domain names](/dns_nohost_me)
     * [Exchange files with your server using a graphical interface](/filezilla)
     * [Customize the appearance of the YunoHost portal](/theming)
     * [Adding an external storage](/external_storage)
     * [Migrating emails to YunoHost](/email_migration)
     * [Hide services with Tor](/torhiddenservice)
+    * [(old) Jessie->Stretch migration procedure](jessie_stretch_migration)
 * [Troubleshooting guide](/troubleshooting_guide)
-    * [Unlock IP in iptables](/fail2ban)
     * [Changing the administration password](/change_admin_password)
+    * [Recover access to your server](/noaccess)
+    * [Unban IPs in iptables/fail2ban](/fail2ban)
diff --git a/admindoc_fr.md b/admindoc_fr.md
index d248a210..d7021620 100644
--- a/admindoc_fr.md
+++ b/admindoc_fr.md
@@ -45,12 +45,16 @@
        * [SFR](/isp_sfr)
        * [Orange](/isp_orange)
        * [Free](/isp_free)
+    * [Documentation spécifique à certaines apps](/appsdoc)
+    * [Equivalence entre service framasoft et apps](/apps_framasoft)
     * [Échanger des fichiers avec son serveur à l'aide d'une interface graphique](/filezilla)
     * [Modifier l'apparence du portail utilisateur](/theming)
     * [Ajouter un stockage externe](/external_storage)
     * [Migrer ses emails vers YunoHost](/email_migration)
     * [YunoHost avec un service caché Tor](/torhiddenservice)
     * [Utilisation de certificats autres que Let's Encrypt](/certificate_custom)
+    * [(vieux) Procedure de Migration Jessie->Stretch](jessie_stretch_migration)
 * [Guide de dépannage](/troubleshooting_guide)
-    * [Débloquer une IP dans Fail2ban](/fail2ban)
     * [Changer le mot de passe d’administration](/change_admin_password)
+    * [Récupérer l'accès à son serveur](/noaccess)
+    * [Débannir une IP dans Fail2ban/IPtables](/fail2ban)
diff --git a/collabora_en.md b/app_collaboradocker.md
similarity index 100%
rename from collabora_en.md
rename to app_collaboradocker.md
diff --git a/collabora_fr.md b/app_collaboradocker_fr.md
similarity index 100%
rename from collabora_fr.md
rename to app_collaboradocker_fr.md
diff --git a/apps_group_PR_model.md b/apps_group_PR_model.md
deleted file mode 100644
index 82c5e940..00000000
--- a/apps_group_PR_model.md
+++ /dev/null
@@ -1,46 +0,0 @@
-## Problem
-- *Description of why you made this PR*
-
-## Solution
-- *And how you fix that*
-
-## PR Status
-*Obviously, you should really check these affirmations*  
-Work finished. Package_check, basic tests and upgrade from last version OK.  
-Could be reviewed and tested.
-
-## Validation
----
-*Minor decision*
-- [ ] **Upgrade previous version** : 
-- [ ] **Code review** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **CI succeeded** : [![Build Status](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*  
-When the PR is mark as ready to merge, you have to wait for 3 days before really merge it.
-
-*Medium decision*
-- [ ] **Complete test** : 
-- [ ] **Upgrade previous version** : 
-- [ ] **Code review** : 
-- [ ] **Code review** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **CI succeeded** : [![Build Status](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*  
-When the PR is mark as ready to merge, you have to wait for 7 days before really merge it.
-
-*Major decision*
-- [ ] **Complete test** : 
-- [ ] **Complete test** : 
-- [ ] **Upgrade previous version** : 
-- [ ] **Upgrade previous version** : 
-- [ ] **Code review** : 
-- [ ] **Code review** : 
-- [ ] **Code review** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **Approval (LGTM)** : 
-- [ ] **CI succeeded** : [![Build Status](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*  
-When the PR is mark as ready to merge, you have to wait for 7 days before really merge it.
diff --git a/appsdoc.md b/appsdoc.md
new file mode 100644
index 00000000..1c5ef65c
--- /dev/null
+++ b/appsdoc.md
@@ -0,0 +1,32 @@
+- [Baikal](app_baikal)
+- [Blogotext](app_blogotext)
+- [Collabora (Docker)](app_collaboradocker)
+- [Dokuwiki](app_dokuwiki)
+- [FirefoxSync](app_ffsync)
+- [Fireflyiii](app_firefly_iii)
+- [FluxBB](app_fluxbb)
+- [Gogs](app_gogs)
+- [Hextris](app_hextris)
+- [Jappix](app_jappix)
+- [Limesurvey](app_limesurvey)
+- [Mediawiki](app_mediawiki)
+- [Minidlna](app_minidlna)
+- [CustomWebapp](app_my_webapp)
+- [Netdata](app_netdata)
+- [Noalyss](app_noalyss)
+- [Peertube](app_peertube)
+- [Pihole](app_pihole)
+- [Piwigo](app_piwigo)
+- [Pleroma](app_pleroma)
+- [Pluxml](app_pluxml)
+- [Radicale](app_radicale)
+- [Rainloop](app_rainloop)
+- [Sogo](app_sogo)
+- [Spip](app_spip)
+- [Transmission](app_transmission)
+- [TinyTinyRSS](app_ttrss)
+- [Wallabag2](app_wallabag2)
+- [Webtrees](app_webtrees)
+- [Yunofav](app_yunofav)
+- (Note that you can add a new page here if you want to start document in another `app...))
+
diff --git a/contributordoc.md b/contributordoc.md
index 9fb24915..31bc784e 100644
--- a/contributordoc.md
+++ b/contributordoc.md
@@ -32,3 +32,4 @@
        * [Raspberry Pi images](https://github.com/YunoHost/rpi-image)
        * [Other ARM board images](https://github.com/YunoHost/arm-images)
 * [Using the YunoHost API outside of the webadmin](/admin_api)
+* [A discussion about shell variable scope](shell_variables_scope)
diff --git a/contributordoc_fr.md b/contributordoc_fr.md
index 0b37388b..57ad494d 100644
--- a/contributordoc_fr.md
+++ b/contributordoc_fr.md
@@ -33,3 +33,4 @@
        * [Images Raspberry Pi](https://github.com/YunoHost/rpi-image)
        * [Autres images pour cartes ARM](https://github.com/YunoHost/arm-images)
 * [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api)
+* [Une discussion sur la portée des variables en bash](shell_variables_scope)
diff --git a/create_live_usb.md b/create_live_usb.md
deleted file mode 100644
index bcf39bc2..00000000
--- a/create_live_usb.md
+++ /dev/null
@@ -1,150 +0,0 @@
-# Create a YunoHost Live ISO
-
-<div class="alert alert-danger">This page is deprecated / obsolete / outdated. Information
-it contains should be updated (or should be removed).</div>
-
-Tested on Debian Wheezy (should work on Ubuntu as well).    
-Original tutorial here: http://willhaley.com/blog/create-a-custom-debian-live-environment/
-
-**Warning**: I have **highlighted** all the places you should be in the **chroot** environment.
-
-1. Install applications we need to build the environment. 
-```bash
-sudo apt-get install debootstrap syslinux squashfs-tools genisoimage memtest86+ rsync
-```
-
-2. Setup the base Debian environment.  I am using wheezy for my distribution and i386 for the architecture.  Please do change your mirror if you are not in the Netherlands or know of a mirror close to you.
-```bash
-mkdir live_boot && cd live_boot
-sudo debootstrap --arch=i386 --variant=minbase wheezy chroot http://ftp.nl.debian.org/debian/
-```
-
-3. A couple of important steps before we chroot.
-```bash
-sudo mount -o bind /dev chroot/dev && sudo cp /etc/resolv.conf chroot/etc/resolv.conf
-```
-
-4. Chroot to our Debian environment.
-```bash
-sudo chroot chroot
-```
-
-5. **chroot**
-Set a few required variables and system settings in our Debian environment.
-```bash
-mount none -t proc /proc && 
-mount none -t sysfs /sys && 
-mount none -t devpts /dev/pts && 
-export HOME=/root && 
-export LC_ALL=C && 
-apt-get install dialog dbus --yes && 
-dbus-uuidgen > /var/lib/dbus/machine-id && 
-apt-get update
-```
-
-6. **chroot** Set the root password to **yunohost**
-```bash
-passwd root
-```
-
-7. **chroot** Install the required packages, replace the kernel version if needed.
-```bash
-apt-get install --no-install-recommends \
-linux-image-3.2.0-4-486 live-boot \
-net-tools wireless-tools wpagui tcpdump wget openssh-client \
-xserver-xorg-core xserver-xorg xinit xterm \
-pciutils usbutils gparted ntfsprogs hfsprogs rsync dosfstools syslinux partclone nano pv \
-chromium-browser libnss3-tools openbox git ca-certificates openssl
-```
-
-8. **chroot** NetworkManager can break your network configuration in the chroot environment. You can install it afterward, and CTRL-C during the installation
-```bash
-apt-get --no-install-recommends install network-manager
-```
-
-9. **chroot** Install YunoHost
-```bash
-git clone https://github.com/YunoHost/install_script /tmp/yunohost_install
-cd /tmp/yunohost_install && ./install_yunohost -a
-```
-
-10. **chroot** Set parameters in order to launch everything right
-```bash
-echo "127.0.0.1 yunohost.org" >> /etc/hosts
-echo "chromium --user-data-dir=/root/.config/chromium --app=https://yunohost.org/yunohost/admin/" >> /etc/xdg/openbox/autostart
-echo -e "if [ -z \"\$DISPLAY\" ] && [ \$(tty) == /dev/tty1 ]; \nthen \n    startx \nfi" >> /root/.bashrc
-certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n YunoHostCA  -i /etc/yunohost/certs/yunohost.org/ca.pem
-certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YunoHostCrt -i /etc/yunohost/certs/yunohost.org/crt.pem
-```
-
-11. **chroot** Edit `/etc/inittab` to login automatically
-```bash
-nano /etc/inittab
-# Replace the following line
-1:2345:respawn:/sbin/getty 38400 tty1
-# by this one
-1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1
-```
-
-12. **chroot** Clean up our Debian environment before leaving.
-```bash
-rm -f /var/lib/dbus/machine-id && 
-apt-get clean && 
-rm -rf /tmp/* && 
-rm /etc/resolv.conf && 
-umount -lf /proc && 
-umount -lf /sys && 
-umount -lf /dev/pts
-# Then exit
-exit
-```
-
-13. Unmount dev from the chroot 
-```bash
-sudo umount -lf chroot/dev
-```
-
-14. Make directories that will be copied to our bootable medium. 
-```bash
-mkdir -p image/{live,isolinux}
-```
-
-15. Compress the chroot environment into a Squash filesystem.
-```bash
-sudo mksquashfs chroot image/live/filesystem.squashfs -e boot
-```
-
-16. Prepare our USB/CD bootloader.
-```bash
-cp chroot/boot/vmlinuz-3.2.0-4-486 image/live/vmlinuz1 && 
-cp chroot/boot/initrd.img-3.2.0-4-486 image/live/initrd1
-```
-
-17. Create `image/isolinux/isolinux.cfg` menu for the bootloader.
-
-```bash
-UI menu.c32
-
-prompt 0
-menu title YunoHost Live
-
-timeout 300
-
-label YunoHost Live
-menu label ^YunoHost Live
-menu default
-kernel /live/vmlinuz1
-append initrd=/live/initrd1 boot=live
-```
-
-### Build the .iso
-
-Copy files necessary for the ISO to boot and then create the ISO
-
-```bash
-cp /usr/lib/syslinux/isolinux.bin image/isolinux/ && 
-cp /usr/lib/syslinux/menu.c32 image/isolinux/
-cd image && genisoimage -rational-rock -volid "YunoHost Live" -cache-inodes -joliet -full-iso9660-filenames -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output ../yunohost-live.iso . && cd ..
-```
-
-Great success! Now you can burn the .iso or use [Unetbootin](http://unetbootin.sourceforge.net/) to copy it on a USB stick.
diff --git a/create_live_usb_fr.md b/create_live_usb_fr.md
deleted file mode 100644
index 5ea68d8b..00000000
--- a/create_live_usb_fr.md
+++ /dev/null
@@ -1,152 +0,0 @@
-# Créer une Live ISO de YunoHost
-
-<div class="alert alert-danger">This page is deprecated / obsolete / outdated. Information
-it contains should be updated (or should be removed).</div>
-
-Testé sur Debian Wheezy (devrait marcher sur Ubuntu également).
-Tutoriel original : http://willhaley.com/blog/create-a-custom-debian-live-environment/
-
-**Attention** : toutes les sections où vous devrez être dans un environnement **chroot** sont **surlignées**.
-
-1. Installation des applications nécessaires à la compilation de l’environnement
-```bash
-sudo apt-get install debootstrap syslinux squashfs-tools genisoimage memtest86+ rsync
-```
-
-2. Configuration de l’environnement de base Debian. Debian wheezy et une architecture i386 ont été utilisés pour effectuer les tests. 
-Changer le miroir si vous n’êtes pas aux Pays-Bas ou que vous connaissez un miroir plus proche.
-
-```bash
-mkdir live_boot && cd live_boot
-sudo debootstrap --arch=i386 --variant=minbase wheezy chroot http://ftp.nl.debian.org/debian/
-```
-
-3. Deux étapes importantes avant de chroot :
-```bash
-sudo mount -o bind /dev chroot/dev && sudo cp /etc/resolv.conf chroot/etc/resolv.conf
-```
-
-4. Chroot l’environnement Debian :
-```bash
-sudo chroot chroot
-```
-
-5. **chroot**
-Configuration de variables et d’options système de l’environnement Debian :
-```bash
-mount none -t proc /proc && 
-mount none -t sysfs /sys && 
-mount none -t devpts /dev/pts && 
-export HOME=/root && 
-export LC_ALL=C && 
-apt-get install dialog dbus --yes && 
-dbus-uuidgen > /var/lib/dbus/machine-id && 
-apt-get update
-```
-
-6. **chroot** Configuration du mot de passe root de **yunohost** :
-```bash
-passwd root
-```
-
-7. **chroot** Installation des paquets requis, remplacement du noyau si nécessaire :
-```bash
-apt-get install --no-install-recommends \
-linux-image-3.2.0-4-486 live-boot \
-net-tools wireless-tools wpagui tcpdump wget openssh-client \
-xserver-xorg-core xserver-xorg xinit xterm \
-pciutils usbutils gparted ntfsprogs hfsprogs rsync dosfstools syslinux partclone nano pv \
-chromium-browser libnss3-tools openbox git ca-certificates openssl
-```
-
-8. **chroot** Le NetworkManager peut casser la configuration de votre environnement chroot. Il est possible de l’installer a posteriori et d’annuler en pressant CTRL-C pendant l’installation.
-```bash
-apt-get --no-install-recommends install network-manager
-```
-
-9. **chroot** Installation de YunoHost :
-```bash
-git clone https://github.com/YunoHost/install_script /tmp/yunohost_install
-cd /tmp/yunohost_install && ./install_yunohost -a
-```
-
-10. **chroot** Configuration des paramètres :
-```bash
-echo "127.0.0.1 yunohost.org" >> /etc/hosts
-echo "chromium --user-data-dir=/root/.config/chromium --app=https://yunohost.org/yunohost/admin/" >> /etc/xdg/openbox/autostart
-echo -e "if [ -z \"\$DISPLAY\" ] && [ \$(tty) == /dev/tty1 ]; \nthen \n    startx \nfi" >> /root/.bashrc
-certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n YunoHostCA  -i /etc/yunohost/certs/yunohost.org/ca.pem
-certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YunoHostCrt -i /etc/yunohost/certs/yunohost.org/crt.pem
-```
-
-11. **chroot** Éditer `/etc/inittab` pour se connecter automatiquement :
-```bash
-nano /etc/inittab
-# Remplacer la ligne suivante :
-1:2345:respawn:/sbin/getty 38400 tty1
-# par :
-1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1
-```
-
-12. **chroot** Nettoyage de l’environnement Debian avant de quitter :
-```bash
-rm -f /var/lib/dbus/machine-id && 
-apt-get clean && 
-rm -rf /tmp/* && 
-rm /etc/resolv.conf && 
-umount -lf /proc && 
-umount -lf /sys && 
-umount -lf /dev/pts
-# Puis exit
-exit
-```
-
-13. Démonter dev du chroot :
-```bash
-sudo umount -lf chroot/dev
-```
-
-14. Créer les répertoires qui seront copiés dans le média bootable :
-```bash
-mkdir -p image/{live,isolinux}
-```
-
-15. Compresser l’environnement chroot dans un système de fichier Squash :
-```bash
-sudo mksquashfs chroot image/live/filesystem.squashfs -e boot
-```
-
-16. Préparer le bootloader USB/CD :
-```bash
-cp chroot/boot/vmlinuz-3.2.0-4-486 image/live/vmlinuz1 && 
-cp chroot/boot/initrd.img-3.2.0-4-486 image/live/initrd1
-```
-
-17. Créer le menu `image/isolinux/isolinux.cfg` pour le bootloader.
-
-```bash
-UI menu.c32
-
-prompt 0
-menu title YunoHost Live
-
-timeout 300
-
-label YunoHost Live
-menu label ^YunoHost Live
-menu default
-kernel /live/vmlinuz1
-append initrd=/live/initrd1 boot=live
-```
-
-### Compiler le .iso
-
-Copier les fichiers nécessaires au démarrage de l’ISO et créer l’ISO :
-
-```bash
-cp /usr/lib/syslinux/isolinux.bin image/isolinux/ && 
-cp /usr/lib/syslinux/menu.c32 image/isolinux/
-cd image && genisoimage -rational-rock -volid "YunoHost Live" -cache-inodes -joliet -full-iso9660-filenames -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output ../yunohost-live.iso . && cd ..
-```
-
-Félicitations ! L’ISO peut désormais être gravée ou utilisée avec [Unetbootin](http://unetbootin.sourceforge.net/) pour la copier sur une clé USB.
diff --git a/docs.md b/docs.md
index 5dd8fa41..7b05f70c 100644
--- a/docs.md
+++ b/docs.md
@@ -20,8 +20,9 @@ YunoHost's documentation has 2 different sections:
 
 * Project's life:
    * [Frequently asked questions](/faq)
+   * [Project news](/news)
    * [Project organization](/project_organization)
-   * [Blog](https://forum.yunohost.org/c/announcement)
+   * [Project budget](/project_budget)
    * [Forum](https://forum.yunohost.org)
    * [Chat rooms](/chat_rooms)
    * [Communication](/communication)
diff --git a/docs_fr.md b/docs_fr.md
index f8c7b56f..b236385f 100644
--- a/docs_fr.md
+++ b/docs_fr.md
@@ -20,10 +20,11 @@ La documentation de YunoHost s’articule autour de deux sections :
 
 * Vie du projet :
    * [Foire aux questions](/faq)
-   - [Organisation du projet](/project_organization)
-   * [Blog](https://forum.yunohost.org/c/announcement)
-   - [Forum](https://forum.yunohost.org)
-   - [Salons de discussions](/chat_rooms)
+   * [Nouvelles du projet](/news)
+   * [Organisation du projet](/project_organization)
+   * [Budget previsionnel](/project_budget)
+   * [Forum](https://forum.yunohost.org)
+   * [Salons de discussions](/chat_rooms)
    * [Communication extérieure](/communication)
    * [Support / Aide](/help)
 
diff --git a/noaccess.md b/noaccess.md
new file mode 100644
index 00000000..a2ed2d20
--- /dev/null
+++ b/noaccess.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](noaccess_fr) for now.
diff --git a/vpn_advantage.md b/vpn_advantage.md
index e69de29b..d2244385 100644
--- a/vpn_advantage.md
+++ b/vpn_advantage.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](vpn_advantage_fr) for now.

From 120ba7ac9e01db5f7d7e5b1e8ba2262d76827767 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 30 Mar 2020 02:14:41 +0200
Subject: [PATCH 345/360] More fixes for unreferenced pages

---
 admindoc.md                 |   1 +
 admindoc_fr.md              |   1 +
 appsdoc.md                  |   3 ++-
 images/docker.png           | Bin 0 -> 6373 bytes
 install.md                  |   4 ++++
 install_fr.md               |   4 ++++
 tests/unreferenced_pages.sh |   2 +-
 7 files changed, 13 insertions(+), 2 deletions(-)
 create mode 100644 images/docker.png

diff --git a/admindoc.md b/admindoc.md
index 6553d651..9194c8a4 100644
--- a/admindoc.md
+++ b/admindoc.md
@@ -42,6 +42,7 @@
     * [Adding an external storage](/external_storage)
     * [Migrating emails to YunoHost](/email_migration)
     * [Hide services with Tor](/torhiddenservice)
+    * [A discussion about the advantages of using a VPN](/vpn_advantage)
     * [(old) Jessie->Stretch migration procedure](jessie_stretch_migration)
 * [Troubleshooting guide](/troubleshooting_guide)
     * [Changing the administration password](/change_admin_password)
diff --git a/admindoc_fr.md b/admindoc_fr.md
index d7021620..6dc54324 100644
--- a/admindoc_fr.md
+++ b/admindoc_fr.md
@@ -53,6 +53,7 @@
     * [Migrer ses emails vers YunoHost](/email_migration)
     * [YunoHost avec un service caché Tor](/torhiddenservice)
     * [Utilisation de certificats autres que Let's Encrypt](/certificate_custom)
+    * [Une discussion sur les avantages d'utiliser un VPN](/vpn_advantage)
     * [(vieux) Procedure de Migration Jessie->Stretch](jessie_stretch_migration)
 * [Guide de dépannage](/troubleshooting_guide)
     * [Changer le mot de passe d’administration](/change_admin_password)
diff --git a/appsdoc.md b/appsdoc.md
index 1c5ef65c..aadd5eb7 100644
--- a/appsdoc.md
+++ b/appsdoc.md
@@ -1,6 +1,7 @@
 - [Baikal](app_baikal)
 - [Blogotext](app_blogotext)
 - [Collabora (Docker)](app_collaboradocker)
+- [Custom Webapp](app_my_webapp)
 - [Dokuwiki](app_dokuwiki)
 - [FirefoxSync](app_ffsync)
 - [Fireflyiii](app_firefly_iii)
@@ -11,8 +12,8 @@
 - [Limesurvey](app_limesurvey)
 - [Mediawiki](app_mediawiki)
 - [Minidlna](app_minidlna)
-- [CustomWebapp](app_my_webapp)
 - [Netdata](app_netdata)
+- [Nextcloud](app_nextcloud)
 - [Noalyss](app_noalyss)
 - [Peertube](app_peertube)
 - [Pihole](app_pihole)
diff --git a/images/docker.png b/images/docker.png
new file mode 100644
index 0000000000000000000000000000000000000000..780a8d5ce5539d454ae7af5336fb83a3e2c15c0c
GIT binary patch
literal 6373
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
Lk`|^OZ4v%IL9Dml

literal 0
HcmV?d00001

diff --git a/install.md b/install.md
index 5e768242..255f78f0 100644
--- a/install.md
+++ b/install.md
@@ -83,4 +83,8 @@ This page lists a few installation guides.
 <a href="/dev"><img src="/images/lxc.png" height=150 style="vertical-align:bottom"><b><p>Dev environment in LXD/LXC</p></b></a>
 </div>
 
+<div class="col col-md-3 text-center">
+<a href="/docker"><img src="/images/docker.png" height=150 style="vertical-align:bottom"><b><p>(Non-official!) Docker images</p></b></a>
+</div>
+
 </div>
diff --git a/install_fr.md b/install_fr.md
index 7521f412..a64868bd 100644
--- a/install_fr.md
+++ b/install_fr.md
@@ -77,4 +77,8 @@ Cette page liste plusieurs types d’installations, classés par catégories.
 <a href="/dev"><img src="/images/lxc.png" height=150 style="vertical-align:bottom"><b><p>Environnement de dev avec LXD/LXC</p></b></a>
 </div>
 
+<div class="col col-md-3 text-center">
+<a href="/docker"><img src="/images/docker.png" height=150 style="vertical-align:bottom"><b><p>(Non-officiel!) Images docker</p></b></a>
+</div>
+
 </div>
diff --git a/tests/unreferenced_pages.sh b/tests/unreferenced_pages.sh
index 21c72119..92fa14e1 100644
--- a/tests/unreferenced_pages.sh
+++ b/tests/unreferenced_pages.sh
@@ -15,7 +15,7 @@ do
     then
         continue
     fi
-    if ! echo $ALL_TARGETS | grep -q $PAGE
+    if ! echo $ALL_TARGETS | grep -q -w $PAGE
     then
         returncode=1
         echo "The following page is not referenced by any other page :( -> $PAGE"

From bb11c9acc725a560baa41d696967117f1535614c Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 30 Mar 2020 02:18:38 +0200
Subject: [PATCH 346/360] Fix pages not existing in english...

---
 app_gogs.md    | 1 +
 app_pleroma.md | 1 +
 app_sogo.md    | 1 +
 3 files changed, 3 insertions(+)
 create mode 100644 app_gogs.md
 create mode 100644 app_pleroma.md
 create mode 100644 app_sogo.md

diff --git a/app_gogs.md b/app_gogs.md
new file mode 100644
index 00000000..f2ee0bed
--- /dev/null
+++ b/app_gogs.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](app_gogs_fr) for now.
diff --git a/app_pleroma.md b/app_pleroma.md
new file mode 100644
index 00000000..595e2038
--- /dev/null
+++ b/app_pleroma.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](app_pleroma_fr) for now.
diff --git a/app_sogo.md b/app_sogo.md
new file mode 100644
index 00000000..09a46e5f
--- /dev/null
+++ b/app_sogo.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](app_sogo_fr) for now.

From 0928b203205202893ef5db2e2e3b0a8b3c6af1e8 Mon Sep 17 00:00:00 2001
From: Kay0u <pierre@kayou.io>
Date: Mon, 30 Mar 2020 16:19:47 +0200
Subject: [PATCH 347/360] Update Helpers

---
 packaging_apps_helpers.md | 309 +++++++++++++++++++++++++++++++++++---
 1 file changed, 284 insertions(+), 25 deletions(-)

diff --git a/packaging_apps_helpers.md b/packaging_apps_helpers.md
index 71cb32f7..3decc36c 100644
--- a/packaging_apps_helpers.md
+++ b/packaging_apps_helpers.md
@@ -411,7 +411,7 @@
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L244">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/apt#L265">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1428,14 +1428,13 @@ ynh_exec_fully_quiet "your_command | other_command"</code>
   <div class="helper-card-body">
     <div data-toggle="collapse" href="#collapse-ynh_script_progression" style="cursor:pointer">
         <h5 class="helper-card-title"><tt>ynh_script_progression</tt></h5>
-        <h6 class="helper-card-subtitle text-muted">Print a message as INFO and show progression during an app script</h6>
+        <h6 class="helper-card-subtitle text-muted">Print a progress bar showing the progression of an app script</h6>
     </div>
     <div id="collapse-ynh_script_progression" class="collapse" role="tabpanel">
     <hr style="margin-top:25px; margin-bottom:25px;">
     <p>
         
-        <strong>Usage</strong>: <code class="helper-code helper-usage">ynh_script_progression --message=message [--weight=weight] [--time]
-The execution time is given for the duration since the previous call. So the weight should be applied to this previous call.</code>
+        <strong>Usage</strong>: <code class="helper-code">ynh_script_progression --message=message [--weight=weight] [--time]</code>
         
     </p>
     
@@ -1452,7 +1451,7 @@ The execution time is given for the duration since the previous call. So the wei
             
             
             
-            <li><code>-t</code>, <code>--time=</code> : Print the execution time since the last call to this helper. Especially usefull to define weights.</li>
+            <li><code>-t</code>, <code>--time=</code> : Print the execution time since the last call to this helper. Especially usefull to define weights. The execution time is given for the duration since the previous call. So the weight should be applied to this previous call.</li>
             
             
             
@@ -1474,7 +1473,7 @@ The execution time is given for the duration since the previous call. So the wei
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L224">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L223">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1511,7 +1510,7 @@ The execution time is given for the duration since the previous call. So the wei
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L308">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L307">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1562,7 +1561,7 @@ The execution time is given for the duration since the previous call. So the wei
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L319">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L318">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1610,7 +1609,7 @@ ynh_debug_exec "your_command | other_command"</code>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L377">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logging#L376">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -1706,7 +1705,7 @@ ynh_debug_exec "your_command | other_command"</code>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logrotate#L99">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/logrotate#L102">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -3392,7 +3391,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L196">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L216">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -3451,7 +3450,267 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L218">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L238">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_permission_create" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_permission_create</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Create a new permission for the app</h6>
+    </div>
+    <div id="collapse-ynh_permission_create" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_permission_create --permission "permission" [--url "url"] [--allowed group1 group2]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>permission</code> : the name for the permission (by default a permission named "main" already exist)</li>
+            
+            
+            
+            <li><code>url</code> : (optional) URL for which access will be allowed/forbidden</li>
+            
+            
+            
+            <li><code>allowed</code> : (optional) A list of group/user to allow for the permission</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_permission_create --permission admin --url /admin --allowed alice bob</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        If provided, 'url' is assumed to be relative to the app domain/path if they</br>start with '/'.  For example:</br>   /                             -> domain.tld/app</br>   /admin                        -> domain.tld/app/admin</br>   domain.tld/app/api            -> domain.tld/app/api</br></br>'url' can be later treated as a regex if it starts with "re:".</br>For example:</br>   re:/api/[A-Z]*$               -> domain.tld/app/api/[A-Z]*$</br>   re:domain.tld/app/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$</br></br>Requires YunoHost version 3.7.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L272">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_permission_delete" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_permission_delete</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Remove a permission for the app (note that when the app is removed all permission is automatically removed)</h6>
+    </div>
+    <div id="collapse-ynh_permission_delete" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_permission_delete --permission "permission"</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>permission</code> : the name for the permission (by default a permission named "main" is removed automatically when the app is removed)</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_permission_delete --permission editors</code>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 3.7.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L300">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_permission_exists" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_permission_exists</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Check if a permission exists</h6>
+    </div>
+    <div id="collapse-ynh_permission_exists" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_permission_exists --permission=permission</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>-p</code>, <code>--permission</code> : the permission to check</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 3.7.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L314">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_permission_url" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_permission_url</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Redefine the url associated to a permission</h6>
+    </div>
+    <div id="collapse-ynh_permission_url" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_permission_url --permission "permission" --url "url"</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>permission</code> : the name for the permission (by default a permission named "main" is removed automatically when the app is removed)</li>
+            
+            
+            
+            <li><code>url</code> : (optional) URL for which access will be allowed/forbidden</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    
+    
+    <p>
+        <strong>Details</strong>:
+        <p>
+        Requires YunoHost version 3.7.0 or higher.</br></br>
+        </p>
+    </p>
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L329">Dude, show me the code !</a>
+    </p>
+
+  </div>
+  </div>
+
+</div>
+
+
+
+<div class="helper-card">
+  <div class="helper-card-body">
+    <div data-toggle="collapse" href="#collapse-ynh_permission_update" style="cursor:pointer">
+        <h5 class="helper-card-title"><tt>ynh_permission_update</tt></h5>
+        <h6 class="helper-card-subtitle text-muted">Update a permission for the app</h6>
+    </div>
+    <div id="collapse-ynh_permission_update" class="collapse" role="tabpanel">
+    <hr style="margin-top:25px; margin-bottom:25px;">
+    <p>
+        
+        <strong>Usage</strong>: <code class="helper-code">ynh_permission_update --permission "permission" --add "group" ["group" ...] --remove "group" ["group" ...]</code>
+        
+    </p>
+    
+    <p>
+        <strong>Arguments</strong>:
+        <ul>
+            
+            
+            <li><code>permission</code> : the name for the permission (by default a permission named "main" already exist)</li>
+            
+            
+            
+            <li><code>add</code> : the list of group or users to enable add to the permission</li>
+            
+            
+            
+            <li><code>remove</code> : the list of group or users to remove from the permission</li>
+            
+            
+        </ul>
+    </p>
+    
+    
+    
+    <p>
+        <strong>Example</strong>: <code class="helper-code">ynh_permission_update --permission admin --add samdoe --remove all_users Requires YunoHost version 3.7.0 or higher.</code>
+    </p>
+    
+    
+    
+    <p>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/setting#L354">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4359,7 +4618,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L85">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L48">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4410,7 +4669,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L136">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L99">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4473,7 +4732,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L250">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L213">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4524,7 +4783,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L289">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L252">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4564,7 +4823,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L305">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L268">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4611,7 +4870,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L335">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L298">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4655,7 +4914,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L378">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L342">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4706,7 +4965,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L406">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L372">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4753,7 +5012,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L434">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L400">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4800,7 +5059,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L458">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L424">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4836,7 +5095,7 @@ Please always call this script in install and restore scripts</h6>
     </p>
     
     <p>
-        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L488">Dude, show me the code !</a>
+        <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/helpers.d/utils#L454">Dude, show me the code !</a>
     </p>
 
   </div>
@@ -4847,7 +5106,7 @@ Please always call this script in install and restore scripts</h6>
 
 
 
-<p>Generated by <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/doc/generate_helper_doc.py">this script</a> on 07/11/2019 (Yunohost version 3.6.4.3)</p>
+<p>Generated by <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/doc/generate_helper_doc.py">this script</a> on 03/30/2020 (Yunohost version 3.7.0.12)</p>
 
 
 <style>
@@ -4876,4 +5135,4 @@ Please always call this script in install and restore scripts</h6>
 }
 /*===============================================*/
 
-</style>
+</style>
\ No newline at end of file

From d0f35af3b1cd0eff1187d6f12c72f959e3ab3d42 Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 30 Mar 2020 18:13:41 +0200
Subject: [PATCH 348/360] Move comment about generation at the top

---
 packaging_apps_helpers.md | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/packaging_apps_helpers.md b/packaging_apps_helpers.md
index 3decc36c..476d7822 100644
--- a/packaging_apps_helpers.md
+++ b/packaging_apps_helpers.md
@@ -2,6 +2,7 @@
 
 <h1>App helpers</h1>
 
+<p>Doc auto-generated by <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/doc/generate_helper_doc.py">this script</a> on 03/30/2020 (Yunohost version 3.7.0.12)</p>
 
 
 <h3 style="text-transform: uppercase; font-weight: bold">apt</h3>
@@ -5106,9 +5107,6 @@ Please always call this script in install and restore scripts</h6>
 
 
 
-<p>Generated by <a href="https://github.com/YunoHost/yunohost/blob/stretch-unstable/doc/generate_helper_doc.py">this script</a> on 03/30/2020 (Yunohost version 3.7.0.12)</p>
-
-
 <style>
 /*=================================================
  Helper card
@@ -5135,4 +5133,4 @@ Please always call this script in install and restore scripts</h6>
 }
 /*===============================================*/
 
-</style>
\ No newline at end of file
+</style>

From 9d37a75daa41a8cde087687a6ce692a03ba16eee Mon Sep 17 00:00:00 2001
From: Antoine <27826950+Antoine-lb@users.noreply.github.com>
Date: Mon, 30 Mar 2020 19:19:54 +0200
Subject: [PATCH 349/360] Fix SFR (ISP) source link

---
 isp_sfr_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/isp_sfr_fr.md b/isp_sfr_fr.md
index 9b159b56..43c311fb 100644
--- a/isp_sfr_fr.md
+++ b/isp_sfr_fr.md
@@ -11,4 +11,4 @@ Pour pouvoir envoyer des mails, il faut désactiver le filtrage.
 
 <img src="/images/sfr-filtrage.png" width=600>
 
-Source : http://assistance.sfr.fr/internet_box-nb4/utiliser-email/desactiver-filtrage-smtp/fc-2491-69602
+Source : https://assistance.sfr.fr/sfrmail-appli/sfrmail/envoyer-e-mail-serveur-smtp.html

From 11d94d02866a5967e61215dbc5f7c343ced40db8 Mon Sep 17 00:00:00 2001
From: Antoine <antoine.le-baux@epitech.eu>
Date: Tue, 31 Mar 2020 17:39:25 +0200
Subject: [PATCH 350/360] Fix path to get private IP in the web admin

---
 dns_local_network.md    | 2 +-
 dns_local_network_es.md | 2 +-
 dns_local_network_fr.md | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dns_local_network.md b/dns_local_network.md
index 67497faf..b5653f4e 100644
--- a/dns_local_network.md
+++ b/dns_local_network.md
@@ -12,7 +12,7 @@ You may retrieve your server private IP adress  through different means:
 <img src="/images/ynh_login.png" width=600>
 
 - Using Yunohost administration panel:
-    Go to "State of the server" > Network
+    Go to Tools > State of the server > Network
 <img src="/images/ynh_admin_etat_ip.png" width=900>
 
 - Or using your router or internet box, depending on model.
diff --git a/dns_local_network_es.md b/dns_local_network_es.md
index 045d4b4d..1226cde4 100644
--- a/dns_local_network_es.md
+++ b/dns_local_network_es.md
@@ -12,7 +12,7 @@ Puedes descubrir la dirección privada de tu servidor de varias maneras :
 <img src="/images/ynh_login.png" width=600>
 
 - Desde la interfaz de administración de tu servidor Yunohost :
-    en Estado del servidor > Red
+    en Herramientas > Estado del servidor > Red
 <img src="/images/ynh_admin_etat_ip.png" width=900>
 
 - O desde tu router o tu caja Internet, dependiendo de su modelo.
diff --git a/dns_local_network_fr.md b/dns_local_network_fr.md
index 427ae87c..bcea9e28 100644
--- a/dns_local_network_fr.md
+++ b/dns_local_network_fr.md
@@ -12,7 +12,7 @@ Vous pouvez retrouver l’adresse privée de votre serveur de différentes mani
 <img src="/images/ynh_login.png" width=600>
 
 - Depuis l’interface d’administration de votre serveur YunoHost :
-    dans État du serveur > Réseau
+    dans Outils > État du serveur > Réseau
 <img src="/images/ynh_admin_etat_ip.png" width=900>
 
 - Ou depuis votre routeur ou votre box, selon son modèle.

From cd44a2c8f830d44be81c526699a1bde1463e9e3f Mon Sep 17 00:00:00 2001
From: Pwnulatr <12719642+Pwnulatr@users.noreply.github.com>
Date: Wed, 1 Apr 2020 04:36:46 +0000
Subject: [PATCH 351/360] Update apps_wishlist.md

Added Technitium DNS. Similar to Pi-Hole, but offers DNS-over-HTTPS and DNS-over-TLS.
---
 apps_wishlist.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index c4fa90b4..eade9e4b 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -132,6 +132,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Syspass](http://www.syspass.org/) / [github](https://github.com/nuxsmin/sysPass)
 - [Taiga](https://taiga.io) / [github](https://github.com/taigaio/)
 - [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
+- [Technitium DNS](https://technitium.com/dns/) / [github](https://github.com/TechnitiumSoftware/DnsServer)
 - [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
 - [Tracim](https://github.com/tracim/tracim)
 - [Thredded](https://thredded.org/) / [github](https://github.com/thredded/thredded)

From 42998393e60d328f0ef0e06830d5fa14810e147b Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Thu, 2 Apr 2020 08:43:49 +0000
Subject: [PATCH 352/360] Ajout de l&#39;application de diffusion de documents
 uwazi

---
 apps_wishlist.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index eade9e4b..ee0582e6 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -1,3 +1,5 @@
+<div class="alert alert-warning" markdown="1" style="margin-right: 120px; margin-top: 12px">La page demandée n'est pour le moment pas disponible en français. Voici à la place la version en anglais. Si vous souhaitez commencer une traduction de cette page, vous pouvez vous rendre sur [cette page](https://yunohost.org/#/apps_wishlist_fr).</div>
+
 # Apps wishlist
 
 <div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps">apps list</a></div>
@@ -138,6 +140,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Thredded](https://thredded.org/) / [github](https://github.com/thredded/thredded)
 - [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
 - [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
+- [Uwazi](https://www.uwazi.io/) / [Github](https://github.com/huridocs/uwazi)
 - [Volumio](https://volumio.org) / [github](https://github.com/volumio)
 - [WebODF](http://webodf.org) / [github](https://github.com/webodf/WebODF)
 - [Webhook.site](https://docs.webhook.site/) / [github](https://github.com/fredsted/webhook.site)

From 0b44f2dbe1215215acc39b3f4f0966aa0aa6ce3b Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Thu, 2 Apr 2020 10:52:56 +0200
Subject: [PATCH 353/360] Update email_fr.md

---
 email_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/email_fr.md b/email_fr.md
index 2a5ae7b7..3e030485 100644
--- a/email_fr.md
+++ b/email_fr.md
@@ -47,4 +47,4 @@ Pour aller plus loin
 --------------------
 
 - Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](email_migration).
-- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.iletaitunefoisinternet.fr/post/7-email-sonntag/)(en français). lien cassé....
+- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.octopuce.fr/conference-lemail-vaste-sujet-par-benjamin-sonntag/)(en français).

From dea680fb08e483f07cb9eaa18082422a33002192 Mon Sep 17 00:00:00 2001
From: Plumf <45500657+Plumf@users.noreply.github.com>
Date: Thu, 2 Apr 2020 11:18:53 +0200
Subject: [PATCH 354/360] Update apps_wishlist.md

---
 apps_wishlist.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 82e3812a..7a4887fb 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -92,7 +92,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
 - [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
 - [Ombi](https://github.com/tidusjar/Ombi)
-- [Omeka S](https://github.com/omeka/omeka-s)
+- [Omeka S](https://omeka.org/s/) / [github](https://github.com/omeka/omeka-s)
 - [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
 - [OpenCart](https://www.opencart.com) / [github](https://github.com/opencart/opencart)
 - [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)

From 326196a2ccb0af09d40d43f273990a8a171a5ddd Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Fri, 3 Apr 2020 14:27:39 +0000
Subject: [PATCH 355/360] =?UTF-8?q?J&#39;ai=20ajout=C3=A9=20BigBlueButton?=
 =?UTF-8?q?=20=C3=A0=20la=20liste?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 apps_wishlist.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 778f1d95..10b95362 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -1,5 +1,7 @@
 <div class="alert alert-warning" markdown="1" style="margin-right: 120px; margin-top: 12px">La page demandée n'est pour le moment pas disponible en français. Voici à la place la version en anglais. Si vous souhaitez commencer une traduction de cette page, vous pouvez vous rendre sur [cette page](https://yunohost.org/#/apps_wishlist_fr).</div>
 
+<div class="alert alert-warning" markdown="1" style="margin-right: 120px; margin-top: 12px">La page demandée n'est pour le moment pas disponible en français. Voici à la place la version en anglais. Si vous souhaitez commencer une traduction de cette page, vous pouvez vous rendre sur [cette page](https://yunohost.org/#/apps_wishlist_fr).</div>
+
 # Apps wishlist
 
 <div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps">apps list</a></div>
@@ -18,6 +20,7 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
 - [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions) / [github](https://github.com/Bitmessage/PyBitmessage)
 - [Beehive](https://github.com/muesli/beehive)
+- [BigBlueButton](https://bigbluebutton.org) / [install instruction](http://docs.bigbluebutton.org/2.2/install.html) / [github](https://github.com/bigbluebutton/bigbluebutton) Complete open source web conferencing system.
 - [Bludit](https://www.bludit.com) / [github](https://github.com/bludit/bludit)
 - [Blynk](https://github.com/blynkkk/blynk-library)
 - [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)

From aec09ed77504eaf7732055189f3dd45a237fcb18 Mon Sep 17 00:00:00 2001
From: Maniack Crudelis <maniackcrudelis@users.noreply.github.com>
Date: Sun, 5 Apr 2020 12:51:15 +0200
Subject: [PATCH 356/360] Update link to dev-ci script

---
 packaging_apps_ci_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_ci_fr.md b/packaging_apps_ci_fr.md
index 67aeaabb..65105e3f 100644
--- a/packaging_apps_ci_fr.md
+++ b/packaging_apps_ci_fr.md
@@ -25,7 +25,7 @@ Cependant, pour éviter tout problème de sécurité, votre connexion ssh sera t
 Vous ne pouvez utiliser que `sftp` ou `rsync` pour copier vos applications dans ce répertoire. `Git` n'est pas disponible, ni la plupart des commandes bash habituelles.  
 Pour faciliter votre utilisation de ce CI, un petit script peut être utilisé pour copier vos applications dans votre répertoire.
 
-Copiez ce [script](https://raw.githubusercontent.com/YunoHost/CI_package_check/master/dev_CI/Send%20CI%20dev.sh) dans votre répertoire de travail habituel et indiquez vos informations.
+Copiez ce [script](https://raw.githubusercontent.com/YunoHost/CI_package_check/master/dev_CI/send_to_dev_ci.sh) dans votre répertoire de travail habituel et indiquez vos informations.
 
 ---
 

From 62d75c108eee2e450f10e9a10fa6d87aeb1e19da Mon Sep 17 00:00:00 2001
From: Maniack Crudelis <maniackcrudelis@users.noreply.github.com>
Date: Sun, 5 Apr 2020 12:51:19 +0200
Subject: [PATCH 357/360] Update link to dev-ci script

---
 packaging_apps_ci.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging_apps_ci.md b/packaging_apps_ci.md
index 0401e0df..543da54d 100644
--- a/packaging_apps_ci.md
+++ b/packaging_apps_ci.md
@@ -25,7 +25,7 @@ However, to prevent any security issues, your ssh connection will be very limite
 You can only use `sftp` or `rsync` to copy your apps into that directory. `Git` isn't available, neither most of the usual bash commands.  
 To ease your usage of this CI, a small script can be used to copy your apps to your directory.
 
-Copy this [script](https://raw.githubusercontent.com/YunoHost/CI_package_check/master/dev_CI/Send%20CI%20dev.sh) into your usual working directory and fill it with your info.
+Copy this [script](https://raw.githubusercontent.com/YunoHost/CI_package_check/master/dev_CI/send_to_dev_ci.sh) into your usual working directory and fill it with your info.
 
 Make sure the content of your `check_process` file is correct then transfer your files.
 When your files have been transfered, you can monitor the CI pipeline on https://ci-apps-dev.yunohost.org.

From 40e291afbac7731a883eef788512a3a1b898857f Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Sun, 5 Apr 2020 20:10:24 +0200
Subject: [PATCH 358/360] Update apps_wishlist.md

---
 apps_wishlist.md | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/apps_wishlist.md b/apps_wishlist.md
index 10b95362..153f5799 100644
--- a/apps_wishlist.md
+++ b/apps_wishlist.md
@@ -1,7 +1,3 @@
-<div class="alert alert-warning" markdown="1" style="margin-right: 120px; margin-top: 12px">La page demandée n'est pour le moment pas disponible en français. Voici à la place la version en anglais. Si vous souhaitez commencer une traduction de cette page, vous pouvez vous rendre sur [cette page](https://yunohost.org/#/apps_wishlist_fr).</div>
-
-<div class="alert alert-warning" markdown="1" style="margin-right: 120px; margin-top: 12px">La page demandée n'est pour le moment pas disponible en français. Voici à la place la version en anglais. Si vous souhaitez commencer une traduction de cette page, vous pouvez vous rendre sur [cette page](https://yunohost.org/#/apps_wishlist_fr).</div>
-
 # Apps wishlist
 
 <div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps">apps list</a></div>
@@ -157,4 +153,4 @@ The following list is a compiled wishlist of applications that would be nice-to-
 - [Zoneminder](https://github.com/ZoneMinder/zoneminder)
 - [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)
 - [Yggdrasil](https://yggdrasil-network.github.io/) / [github](https://github.com/yggdrasil-network/yggdrasil-go)
-- [WiseMapping](http://www.wisemapping.com/inyourserver.html) / [developpement](https://bitbucket.org/wisemapping/wisemapping-open-source)
\ No newline at end of file
+- [WiseMapping](http://www.wisemapping.com/inyourserver.html) / [developpement](https://bitbucket.org/wisemapping/wisemapping-open-source)

From 0899cdc0877df2790e2c5e9ebae945e35a6682d0 Mon Sep 17 00:00:00 2001
From: Yunobot <simone@yunohost.org>
Date: Sun, 5 Apr 2020 20:29:50 +0000
Subject: [PATCH 359/360] Put the version into the CLI as occ requires at leat
 PHP 7.2 and the used default seems to be PHP 7.0

---
 app_nextcloud.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_nextcloud.md b/app_nextcloud.md
index 44bfa713..4bd63778 100644
--- a/app_nextcloud.md
+++ b/app_nextcloud.md
@@ -128,7 +128,7 @@ Run a scan of the new directory by Nextcloud:
 
 ```bash
 cd /var/www/nextcloud
-sudo -u nextcloud php occ files:scan --all
+sudo -u nextcloud php7.3 occ files:scan --all
 ```
 
 It's over now. Now test if everything is fine, try connecting to your Nextcloud instance, upload a file, check its proper synchronization.

From 9c6fb9819abacc593f4e7af5f32a2f4ebaa8f11a Mon Sep 17 00:00:00 2001
From: Alexandre Aubin <alex.aubin@mailoo.org>
Date: Mon, 6 Apr 2020 00:40:43 +0200
Subject: [PATCH 360/360] Propagate to french version

---
 app_nextcloud_fr.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md
index 4fcfa6f2..e5dc9000 100644
--- a/app_nextcloud_fr.md
+++ b/app_nextcloud_fr.md
@@ -128,7 +128,7 @@ Lancez un scan du nouveau répertoire par Nextcloud:
 
 ```bash
 cd /var/www/nextcloud
-sudo -u nextcloud php occ files:scan --all
+sudo -u nextcloud php7.3 occ files:scan --all
 ```
 
 C'est terminé. À présent testez si tout va bien, essayez de vous connecter à votre instance Nextcloud, envoyer un fichier, vérifiez sa bonne synchronisation.