-In the context of self-hosting, it is recommended that your SD card be at least
-8 GB (to have a reasonable space available for the system and a few data) and at
-least Class 10 (to ensure reasonable performances).
-
-
-
-This step is optional as it should be performed automatically during the first
-boot on recent images.
-
-
-By default, the root partition of your SD card is very small.
-You can resize it by using software like `resize2fs` (command-line) or `gparted`
-(graphical).
-
-
-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).
-
-
-
-Esta etapa es opcional porque normalmente la realiza automáticamente el sistema durante el primer inicio sobre las imágenes recientes.
-
-
-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.
-
-
-Dans le contexte de l'auto-hébergement, il est recommandé que votre carte SD
-fasse au moins 8 Go (pour disposer d'un espace raisonnable pour le système et
-quelques données) et soit au moins certifiée classe 10 (pour avoir des
-performances raisonnables).
-
-
-
-Cette étape est optionnelle car elle est normalement effectuée automatiquement
-par le système lors du premier démarrage sur les images récentes.
-
-
-Par défaut, la partition root installée sur votre carte SD avec la commande `dd`
-est très petite. Vous pouvez la redimensionner avec un logiciel comme
-`resize2fs` (ligne de commande) ou `Gparted` (interface graphique) en étendant
-la partition ext4 au maximum de façon à utiliser tout l’espace non alloué.
-
-This page is deprecated / obsolete. Information it contains should be updated (or should be removed).
-
-### Presentation
-YunoHost provide a DNS service for DNS name resolution. Usually, your server is not configured to use it, it's your ISP DNS. For instance, for the Free ISP with Freebox router the DNS resolver IP is `192.168.0.254`.
-
-How to known: watch the file `/etc/resolv.conf`. This file is not modifiable because it is rewriten by the DHCP service. A DHCP client is configured, it requests the router to get DNS resolver IPs.
-This IPs is provided by your ISP.
-
-### Configuration
-To use YunoHost DNS resolver of your server, modify your DHCP configuration client: remove DNS name server request, and add static IP of your server `127.0.0.1`.
-
-Edit the file `/etc/dhcp/dhclient.conf`, add the line `supersede` and remove in the line `request` the word `domain-name-servers`:
-```bash
-supersede domain-name-servers 127.0.0.1, 192.168.0.254;
-request subnet-mask, broadcast-address, time-offset, routers,
- domain-name, domain-search, host-name,
- dhcp6.name-servers, dhcp6.domain-search,
- netbios-name-servers, netbios-scope, interface-mtu,
- rfc3442-classless-static-routes, ntp-servers;
-```
-Apply this modification by rebooting the DNS server:
-
-```bash
-service dnsmasq restart
-```
-
-(TODO: It's possible to restart a service to take into account the modification -DHCP?-, but didn't work for me).
-It's possible to do same modification in all machine in local network by replacing *127.0.0.1* by IP server.
diff --git a/dns_resolver_fr.md b/dns_resolver_fr.md
deleted file mode 100644
index 8f9060eb..00000000
--- a/dns_resolver_fr.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# Résolveur DNS de YunoHost
-
-Cette page est dépréciée / obsolète. Les informations présentées ont besoin d'être mise à jour (ou doivent être retirée).
-
-### Présentation
-YunoHost est installé avec un service DNS pour la résolution des noms de domaine. En général, votre serveur n’est pas configuré, c’est celui de votre FAI.
-Par exemple pour une Freebox la résolution se fait par l’adresse `192.168.0.254`.
-
-Comment savoir ? Regarder le contenu du fichier `/etc/resolv.conf`. Ce fichier n’est pas modifiable car il est réécrit par le service DHCP.
-Un client DHCP est configuré, celui-ci interroge votre routeur pour les adresses IP de vos serveurs de résolution de DNS. Ces IPs sont fournis par votre FAI.
-
-### Configuration
-Afin d’utiliser le résolveur DNS de votre instance YunoHost, il faut modifier la configuration DHCP pour ne pas faire de requêtes à votre routeur. Il faut donc mettre de façon statique la nouvelle adresse à savoir dans ce cas `127.0.0.1`.
-
-Éditer le fichier `/etc/dhcp/dhclient.conf`, ajouter une ligne `supersede` et supprimer de la ligne `request` le mot `domain-name-servers` :
-```bash
-supersede domain-name-servers 127.0.0.1, 192.168.0.254;
-request subnet-mask, broadcast-address, time-offset, routers,
- domain-name, domain-search, host-name,
- dhcp6.name-servers, dhcp6.domain-search,
- netbios-name-servers, netbios-scope, interface-mtu,
- rfc3442-classless-static-routes, ntp-servers;
-```
-
-Afin de prendre en compte la modification, redémarrer le serveur DNS :
-
-```bash
-service dnsmasq restart
-```
-
-(TODO : il doit être possible de reconfigurer à chaud, mais ça n’a pas fonctionné).
-Il est possible de faire la même modification sur toutes vos machines du réseau local en remplaçant 127.0.0.1 par l’IP de votre serveur.
diff --git a/dns_subdomains_fr.md b/dns_subdomains_fr.md
index d2356ea4..132ffe18 100644
--- a/dns_subdomains_fr.md
+++ b/dns_subdomains_fr.md
@@ -6,7 +6,7 @@ YunoHost permet l’usage de sous-domaine. Il faut avoir un nom de domaine par e
### Configuration chez Gandi
-Dans la configuration de son DNS, on aura donc une entrée A avec l’adresse IPv4, une entrée AAAA avec l’adresse IPv6 et ensuite différents CNAME pour le sous-domaines que l’on souhaite créer.
+Dans la configuration de son DNS, on aura donc une entrée A avec l’adresse IPv4, une entrée AAAA avec l’adresse IPv6 et ensuite différents CNAME pour les sous-domaines que l’on souhaite créer.
Nom Type Valeur
```bash
@ A XYZ.XYZ.XYZ.XYZ
@@ -20,19 +20,19 @@ permet d’avoir un `agenda.mondomaine.fr`, un `blog.mondomaine.fr` etc…
### Installer une application sur un sous-domaine
-Pour installer une application sur un sous-domaine, par exemple `blog.mondomaine.fr`, dans YunoHost, tout ce fait via la partie administration. On ajoute tout d’abord le sous-domaine à la liste des domaines disponibles. La création d’un sous-domaine dans YunoHost créera les fichiers de configuration correspondant pour Nginx (le serveur web de YunoHost).
+Pour installer une application sur un sous-domaine, par exemple `blog.mondomaine.fr`, dans YunoHost, tout se fait via la partie administration. On ajoute tout d’abord le sous-domaine à la liste des domaines disponibles. La création d’un sous-domaine dans YunoHost créera les fichiers de configuration correspondants pour Nginx (le serveur web de YunoHost).
-Puis dans la partie installation d’une application, on installe l’application de façon traditionnelle en en choisissant ce sous-domaine comme domaine (par exemple `blog.mondomaine.fr`) et en indiquant comme chemin `/` (et non `/wordpress` qui est le chemin par défaut). On a alors un message d’avertissement indiquant qu’on ne pourra plus installer d’applications sur ce sous-domaine. On valide. Ça s’installe.
+Puis dans la partie installation d’une application, on installe l’application de façon traditionnelle en choisissant ce sous-domaine comme domaine (par exemple `blog.mondomaine.fr`) et en indiquant comme chemin `/` (et non `/wordpress` qui est le chemin par défaut). On a alors un message d’avertissement indiquant qu’on ne pourra plus installer d’applications sur ce sous-domaine. On valide. Ça s’installe.
L’application est alors accessible via `blog.mondomaine.fr` (et non via `mondomaine.fr/wordpress`).
### Déplacer une application sur un sous-domaine ?
-Que ce passe-t-il si on a déjà installé l’application ? On veut par exemple passer de `mondomaine.fr/wordpress` à `blog.mondomaine.fr`.
+Que se passe-t-il si on a déjà installé l’application ? On veut par exemple passer de `mondomaine.fr/wordpress` à `blog.mondomaine.fr`.
Pour l’instant il n’y a pas de façon simple (via l’interface graphique de l’administration de YunoHost) pour déplacer une application sur un sous-domaine.
Solution : réinstaller l’application
### Réinstallation de l’application
-On sauvegarde ses données (base de données etc. via un script sql par exemple, les fichiers etc.). On désinstalle l’application via l’interface graphique d’administration de YunoHost. Et on la réinstalle en suivant la procédure ci-dessus.
+On sauvegarde ses données (base de données etc. via un script SQL par exemple, les fichiers etc.). On désinstalle l’application via l’interface graphique d’administration de YunoHost. Et on la réinstalle en suivant la procédure ci-dessus.
diff --git a/doc_markdown_guide.md b/doc_markdown_guide.md
new file mode 100644
index 00000000..cb004e8a
--- /dev/null
+++ b/doc_markdown_guide.md
@@ -0,0 +1,252 @@
+# Guide Markdown
+
+Markdown is a markup language created in 2004, many add-ons developing the possibilities of this language exist. The objective of this guide is to aim for the exhaustiveness of the possibilities of this formatting language within the framework of the YunoHost documentation and not Markdown languages in general.
+
+Markdown allows text to be formatted using tags, it allows *human* reading of the text; even with formatting. Even if only one notepad is needed there are many markdowns software (Markdown on [framalibre.org (fr)](https://framalibre.org/recherche-par-crit-res?keys=markdown)). It is relatively easy to use.
+
+## The different levels of titles
+
+By writing titles as follows:
+```markdown
+# Level 1 title
+## Level 2 title
+### Level 3 title
+#### Level 4 title
+##### Level 5 title
+###### Level 6 title
+```
+
+They appear like this:
+# Level 1 title
+## Level 2 title
+### Level 3 title
+#### Level 4 title
+##### Level 5 title
+###### Level 6 title
+
+## Formatting in paragraphs
+
+To type a line break without creating a new paragraph, it is necessary to type **two consecutive spaces**. Otherwise, the text will continue in a row respecting the general constraints of the page style.
+
+By writing this :
+
+```markdown
+For text in *italic you have to frame it with an asterisk* `*`
+To write **bold text by two asterisks** `**`
+You can also ~~bar the text~~ by framing it with two tildes `~`
+```
+
+It reads like this:
+
+For text in *italic you have to frame it with an asterisk* `*`
+To write **bold text by two asterisks** `**`
+You can also ~~bar the text~~ by framing it with two tildes `~`
+
+## Create links
+
+To create a link to a site outside of the YunoHost documentation:
+
+```markdown
+[Text to display](https://lelien.tld)
+```
+
+will be displayed as such:
+[Text to display](https://lelien.tld)
+
+It is the same for the documentation pages, except that the link is internal. It refers to the wiki file, without language and file extension (the `_fr.md`) :
+```markdown
+[Wiki Page](/write_documentation)
+```
+
+The link will return to the page with the correct language setting if the page exists.
+[Wiki page](/write_documentation)
+
+### Create anchors
+An anchor allows you to make a link to a specific point in a page, that's how the indexes at the top of the page work. To create an anchor, you need to insert code at the anchor location in the following form :
+
+```markdown
+Text that will be doesn't even know it has an anchor.
+```
+
+What's displayed is:
+Text that will be doesn't even know it has an anchor.
+
+It is also possible to return an anchor directly to the title, noting the link in lower case with `-`s instead of spaces.
+All that remains is to designate the anchor to the text you want to make interactive:
+
+```markdown
+[My Anchor Returns to Lists](#anchorname)
+[My Anchor that refers to the title of the tables](#tables)
+```
+
+[My Anchor Returns to Lists](#anchorame)
+[My Anchor that refers to the title of the tables](#tables)
+
+## Displaying images
+
+To display images, the principle is the same as for links, except that a `!` is added before the text to be displayed, which is considered here as the text to be displayed if the image cannot be loaded. A description of the image is appropriate.
+
+```markdown
+
+```
+
+
+
+It is possible to make a link with an image, for example :
+```markdown
+[](/write_documentation)
+```
+[](/write_documentation)
+
+The insert of *text to be displayed if the image cannot be loaded* between the brackets in the image link is not mandatory but strongly recommended.
+
+## Format a quote
+
+Quotes are used to highlight a statement made by another person, the wiki itself manages the way it is highlighted. Markdown uses a closing chevron, this symbol: `>`, to announce a quote. Just add it before the quote, as such:
+
+```markdown
+>First level quotation text
+>which can be formatted in different lines
+
+>> And a second quote
+>> with double rafters
+```
+Will be displayed :
+
+>First level quotation text
+>which can be formatted in different lines
+
+>> And a second quote
+>> with double rafters
+
+## Lists
+
+Lists allow to display a series of texts in an easy presentation, this is how indexes such as the [contributing documentation](/contributordoc) page are written.
+
+### Ordered lists
+
+The ordered lists can be incremented as much as you wish, it is not necessary to give the right match to the number. It is possible to write down with `1.` and put in three spaces to mark the increment. For a better understanding of the plain text, it may be fine to use the numbers in ascending order to mark the increment, but it is the three consistent `spaces' before the sub-list that will mark the increment.
+
+```markdown
+1. List 1
+1. List 2
+1. list 3
+ 1. List 3a
+ 1. List 3b
+ 1. List 3b1
+ 1. List 3b2
+ 1. List 3b3
+ 1. List 1
+ 1. List 2
+ 1. list 3
+1. List 4
+1. List 5
+1. list 6
+```
+
+You get:
+
+1. List 1
+1. List 2
+1. list 3
+ 1. List 3a
+ 1. List 3b
+ 1. List 3b1
+ 1. List 3b2
+ 1. List 3b3
+ 1. List 1
+ 1. List 2
+ 1. list 3
+5. List 4
+3. List 5
+4. list 6
+
+### Unordered lists
-
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.
+
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ères ». Ce n’est pas le cas des paquets Debian.
-
Il se trouve que l’objectif des paquets d’application YunoHost est subtilement différent des paquets traditionnels (comme les .deb de Debian) qui remplissent le rôle d’installer des éléments bas-niveaux tels que des fichiers, commandes, programmes ou services sur le système. Il est à la charge de l’administrateur de les configurer ensuite proprement, simplement parce qu’il n’existe pas d’environnement standard. Typiquement, les applications web requièrent beaucoup de configuration car elles ont besoin de s’interfacer avec un serveur web et une base de données (et le système de connexion unique / SSO).
+
Il se trouve que l’objectif des paquets d’application YunoHost est subtilement différent de celui des paquets traditionnels (comme les .deb de Debian) qui remplissent le rôle d’installer des éléments bas-niveau tels que des fichiers, commandes, programmes ou services sur le système. Il est à la charge de l’administrateur de les configurer ensuite proprement, simplement parce qu’il n’existe pas d’environnement standard. Typiquement, les applications web requièrent beaucoup de configuration car elles ont besoin de s’interfacer avec un serveur web et une base de données (et le système de connexion unique / SSO).
YunoHost manipule des abstractions haut-niveau (apps, domaines, utilisateurs…) et définit un environnement standard (Nginx, Postfix, Metronome, SSOwat…) et, grâce à cela, peut gérer la configuration à la place de l’administrateur.
diff --git a/groups_and_permissions.md b/groups_and_permissions.md
index 752b2698..97d7e35c 100644
--- a/groups_and_permissions.md
+++ b/groups_and_permissions.md
@@ -1,7 +1,7 @@
User groups and permissions
===========================
-You can access the group and permissions management interface from the webadmin
+You can access the *groups and permissions* management interface from the webadmin
by going into the 'Users' section and clicking the corresponding button:

@@ -9,15 +9,27 @@ by going into the 'Users' section and clicking the corresponding button:
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.
+The group mechanism can be used to define groups 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 on a user-per-user basis.
-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.
+Using groups is however useful for semantics, for example if you host multiple groups of friends, associations or businesses on your server, you might want to create groups like `association1` and `association2` and add members of each association to the relevant group.
+
+### Default groups
+
+By default, two special groups are created:
+- `all_users`, that contain all users registered on YunoHost,
+- `visitors`, that applies to people viewing the server while not logged in.
+
+The content of those groups cannot be changed, only the permissions given to them.
### List existing groups
-To list the currently existing groups :
+The existing groups are listed at the top of the *groups and permissions* page.
-```bash
+
+
+To list the currently existing groups in CLI :
+
+```shell
$ yunohost user group list
groups:
all_users:
@@ -28,19 +40,32 @@ groups:
- 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`
+To create a new group, simply click on the "New Group" button at the top of the page. You may only choose a name formed with letters (uper- and lowercase) and spaces. The group is created empty and without any permission.
-```bash
+
+
+In CLI, to create a new group called `yolo_crew`
+
+```shell
$ yunohost user group create yolo_crew
```
-Let's add Charlie and Delphine to this group:
+### Updating a group
-```bash
+Let's add a first to this group: in the group panel, click the button "add a user" and scroll to the desired user, then click on it.
+
+
+
+To remove a user, click on the cross next to their username, in the group panel.
+
+
+
+In CLI, use the following command to add `charlie` and `delphine`to the `yolo_crew` group:
+
+```shell
$ yunohost user group update yolo_crew --add charlie delphine
```
@@ -48,7 +73,7 @@ $ yunohost user group update yolo_crew --add charlie delphine
Now in the group list we should see :
-```bash
+```shell
$ yunohost user group list
groups:
all_users:
@@ -65,22 +90,30 @@ groups:
### Deleting groups
-To delete the group `yolo_crew`, you may run
+To delete a group, click on the red cross on the top right of the group panel. You will be asked for confirmation.
-```bash
+
+
+To delete the group `yolo_crew` in CLI, you may run
+
+```shell
$ 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).
+The permission mechanism allow to restrict access to services (for example mail, xmpp, ...) and apps, or even specific parts of the apps (for example the administration interface of wordpress).
### List permissions
-To list permissions and corresponding accesses:
+The groups page lists the permissions given to each group, including the special groups `all_users` and `visitors`.
-```bash
+
+
+To list permissions and corresponding accesses in CLI:
+
+```shell
$ yunohost user permission list
permissions:
mail.main:
@@ -93,27 +126,35 @@ permissions:
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.
+Here, we find that all registered users can use email, 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:
+To add a permission to a group, simply click the "+" button in the group panel, scroll to the desired permission, then click on it.
-```bash
+
+
+To allow a group to access the wordpress admin interface in CLI:
+
+```shell
$ yunohost user permission update wordpress.admin --add yolo_crew
```
-Note that you can also allow a single user:
+Note that you can also allow a single user, by using the specific panel at the bottom of the page.
-```bash
+
+
+or in CLI:
+
+```shell
$ 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
+```shell
$ yunohost user permission list
[...]
wordpress.admin:
@@ -123,26 +164,29 @@ $ yunohost user permission list
[...]
```
-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 :
+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, by deleting it from the `all_users` group panel, or in CLI :
-```bash
+```shell
$ yunohost user permission update mail --remove all_users --add bob
```
+The webadmin will issue a warning if you set a permission that is superseeded by a wider permission.
+
+
Notes for apps packagers
------------------------
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`:
+If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special group `visitors`:
-```bash
+```shell
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:
-```bash
+```shell
ynh_permission_create --permission "admin" --url "/admin" --allowed "$admin_user"
```
@@ -150,7 +194,7 @@ You don't need to take care of removing permissions or backing up/restoring them
### 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!
+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 of 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 ;
@@ -207,7 +251,7 @@ 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:
+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 added or removed from this permission:
`post_app_addaccess`:
@@ -280,6 +324,6 @@ 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)
+Here are 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.
+If you have any question, please contact someone from the apps-group.
diff --git a/groups_and_permissions_fr.md b/groups_and_permissions_fr.md
new file mode 100644
index 00000000..7f3a2af7
--- /dev/null
+++ b/groups_and_permissions_fr.md
@@ -0,0 +1,176 @@
+Groupes et permissions
+===========================
+
+Vous pouvez accéder à l'interface de gestion des *groupes et des permissions* depuis la webadmin
+en allant dans la section "Utilisateurs" et en cliquant sur le bouton correspondant :
+
+
+
+Gestion des groupes
+---------------
+Le mécanisme de groupe peut être utilisé pour définir des groupes d'utilisateurs qui peuvent ensuite être utilisés pour restreindre les autorisations pour les applications et autres services (tels que l'email ou xmpp). Notez qu'il n'est *pas* obligatoire de créer un groupe pour ce faire : vous pouvez également restreindre l'accès à une application ou à un service de manière individuelle.
+
+L'utilisation de groupes est cependant utile pour la sémantique, par exemple si vous hébergez plusieurs groupes d'amis, des associations ou des entreprises sur votre serveur, vous pouvez créer des groupes comme "association1" et "association2" et ajouter les membres de chaque association au groupe concerné.
+
+
+### Groupes par défaut
+Par défaut, deux groupes spéciaux sont créés :
+- `all_users`, qui contient tous les utilisateurs enregistrés sur YunoHost,
+- `visitors`, c'est-à-dire les personnes qui consultent le serveur sans être connectées.
+
+Vous ne pouvez pas changer le contenu de ces groupes, seulement les permissions qui leur sont accordées.
+
+### Lister les groupes existants
+Les groupes existants sont listés en haut de la page *groupes et autorisations*.
+
+
+
+Pour obtenir la liste des groupes existants en CLI :
+
+
+```shell
+$ yunohost user group list
+groups:
+ all_users:
+ members:
+ - alice
+ - bob
+ - charlie
+ - delphine
+```
+
+
+### Créer un nouveau groupe
+Pour créer un nouveau groupe, il suffit de cliquer sur le bouton "Nouveau groupe" en haut de la page. Vous ne pouvez choisir qu'un nom formé de lettres (majuscules et minuscules) et d'espaces. Le groupe est créé vide et sans aucune permissions.
+
+
+
+Dans la CLI, pour créer un nouveau groupe appelé `yolo_crew`, il faut utiliser
+
+```shell
+$ yunohost user group create yolo_crew
+```
+
+### Mettre à jour un groupe
+Ajoutons un premier utilisateur à ce groupe : dans le panneau du groupe, cliquez sur le bouton "ajouter un utilisateur" et faites défiler jusqu'à l'utilisateur souhaité, puis cliquez dessus.
+
+
+
+Pour supprimer un utilisateur, cliquez sur la croix à côté de son nom d'utilisateur, dans le panneau du groupe.
+
+
+
+En CLI, utilisez la commande suivante pour ajouter `charlie` et `delphine` au groupe `yolo_crew` :
+
+```shell
+$ yunohost user group update yolo_crew --add charlie delphine
+```
+
+(De même, `--remove` peut être utilisé pour retirer des membres d'un groupe)
+
+Dans la liste des groupes, nous devrions voir :
+
+```shell
+$ yunohost user group list
+groups:
+ all_users:
+ members:
+ - alice
+ - bob
+ - charlie
+ - delphine
+ yolo_crew:
+ members:
+ - charlie
+ - delphine
+```
+
+### Supprimer un groupe
+
+Pour supprimer un groupe, cliquez sur la croix rouge en haut à droite du panneau du groupes. Une confirmation vous sera demandée.
+
+
+
+Pour supprimer le groupe `yolo_crew` dans CLI, vous pouvez exécuter
+
+```shell
+$ yunohost user group delete yolo_crew
+```
+
+Gestion des permissions
+--------------------
+
+Le mécanisme de permissions permet de restreindre l'accès aux services (par exemple mail, xmpp, ...) et aux applications, ou même à des parties spécifiques des applications (par exemple l'interface d'administration de wordpress).
+
+### Liste des permissions
+
+La page des groupes liste les permissions données à chaque groupe, y compris les groupes spéciaux `all_users` et `visitors`.
+
+
+
+Pour répertorier les permissions et les accès correspondants en CLI :
+```shell
+$ yunohost user permission list
+permissions:
+ mail.main:
+ allowed: all_users
+ wordpress.admin:
+ allowed:
+ wordpress.main:
+ allowed: all_users
+ xmpp.main:
+ allowed: all_users
+```
+Ici, nous constatons que tous les utilisateurs enregistrés peuvent utiliser le courrier électronique, xmpp, et accéder au blog wordpress. Cependant, personne ne peut accéder à l'interface d'administration de wordpress.
+
+Plus de détails peuvent être affichés en ajoutant l'option `--full` qui affichera la liste des utilisateurs correspondant aux groupes autorisés, ainsi que les urls associées à une permission (pertinent pour les applications web).
+
+### Ajouter des permissions à un groupe ou un utilisateur
+
+Pour ajouter une permission à un groupe, il suffit de cliquer sur le bouton "+" dans le panneau du groupe, de faire défiler jusqu'à la permission souhaitée, puis de cliquer dessus.
+
+
+
+Pour permettre à un groupe d'accéder à l'interface d'administration de wordpress via la CLI :
+
+```shell
+$ yunohost user permission update wordpress.admin --add yolo_crew
+```
+
+Notez que vous pouvez également autoriser un seul utilisateur, en utilisant le panneau spécifique en bas de la page.
+
+
+
+ou en CLI :
+
+```shell
+$ yunohost user permission update wordpress.admin --add alice
+```
+
+Et maintenant, nous pouvons voir que YoloCrew et Alice ont tous deux accès à l'interface d'administration de Wordpress :
+
+```shell
+$ yunohost user permission list
+ [...]
+ wordpress.admin:
+ allowed:
+ - yolo_crew
+ - alice
+ [...]
+```
+
+Notez que, par exemple, si nous voulons restreindre la permission pour le courrier électronique
+afin que seul Bob soit autorisé à envoyer des courriels, nous devons également supprimer `all_users`
+de la permission, en la supprimant du panneau de groupe `all_users`, ou en CLI :
+
+```shell
+$ yunohost user permission update mail --remove all_users --add bob
+```
+
+La webadmin émettra un avertissement si vous définissez une permission qui est remplacée par une permission plus large.
+
+
+Notes pour les packageurs d'applications
+------------------------
+
+[Voir la version anglaise de cette page](groups_and_permissions).
diff --git a/hardware_de.md b/hardware_de.md
new file mode 100644
index 00000000..effdc0e1
--- /dev/null
+++ b/hardware_de.md
@@ -0,0 +1,14 @@
+# Hardware
+
+YunoHost kann auf folgender Hardware installiert werden:
+- ARM Boards (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc...) ;
+- 'Alte' Desktop Computer oder Laptops/Notebooks ;
+- Remote servers, auch bekannt als Virtual Private Servers (VPS).
+
+Entsprechende Installationsanleitungen finden Sie auf [dieser Seite](/install).
+
+### Minimale Voraussetzungen
+
+* 500 MHz CPU
+* 512 MB RAM (empfohlen : 1 GB um alle Apps und Programme schnell ausführen zu können)
+* 8 GB Speicher/HDD (empfohlen : 32 GB bei Nutzung als Mail oder Dokumentenserver)
diff --git a/hardware_fr.md b/hardware_fr.md
index 93b7ebe8..b5e721b9 100644
--- a/hardware_fr.md
+++ b/hardware_fr.md
@@ -1,6 +1,6 @@
# Matériel
-YunoHost peut être installé sur les types de matériel suivant :
+YunoHost peut être installé sur les types de matériel suivants :
- Cartes ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc...) ;
- 'Vieux' ordinateurs de bureau ou portables ;
- Serveurs distants, aussi appelé Virtual Private Servers (VPS).
@@ -10,5 +10,5 @@ Les guides d'installations peuvent être trouvés sur [cette page](/install).
### Configuration minimale
* Processeur 500MHz
-* 512 Mo de RAM (recommandée : 1Go pour pouvoir faire tourner les services et applications correctement)
+* 512 Mo de RAM (recommandé : 1 Go pour pouvoir faire tourner les services et applications correctement)
* 8 Go d'espace de stockage (recommandé : 32 Go pour pouvoir stocker emails et documents)
diff --git a/images/button_to_go_to_permission_interface_fr.png b/images/button_to_go_to_permission_interface_fr.png
new file mode 100644
index 00000000..3d524b5e
Binary files /dev/null and b/images/button_to_go_to_permission_interface_fr.png differ
diff --git a/images/github_branch.png b/images/github_branch.png
new file mode 100644
index 00000000..47987fb2
Binary files /dev/null and b/images/github_branch.png differ
diff --git a/images/github_commit.png b/images/github_commit.png
new file mode 100644
index 00000000..d299c878
Binary files /dev/null and b/images/github_commit.png differ
diff --git a/images/github_create_new_repo.png b/images/github_create_new_repo.png
new file mode 100644
index 00000000..b96969a1
Binary files /dev/null and b/images/github_create_new_repo.png differ
diff --git a/images/github_edit.png b/images/github_edit.png
new file mode 100644
index 00000000..619e483e
Binary files /dev/null and b/images/github_edit.png differ
diff --git a/images/github_pull_request.png b/images/github_pull_request.png
new file mode 100644
index 00000000..13e2eb5f
Binary files /dev/null and b/images/github_pull_request.png differ
diff --git a/images/groups_add-permission-group.png b/images/groups_add-permission-group.png
new file mode 100644
index 00000000..bb083791
Binary files /dev/null and b/images/groups_add-permission-group.png differ
diff --git a/images/groups_add-permission-user.png b/images/groups_add-permission-user.png
new file mode 100644
index 00000000..0a62a541
Binary files /dev/null and b/images/groups_add-permission-user.png differ
diff --git a/images/groups_alerte-permission.png b/images/groups_alerte-permission.png
new file mode 100644
index 00000000..2b52b6d5
Binary files /dev/null and b/images/groups_alerte-permission.png differ
diff --git a/images/groups_button-add-user.png b/images/groups_button-add-user.png
new file mode 100644
index 00000000..1a4f3897
Binary files /dev/null and b/images/groups_button-add-user.png differ
diff --git a/images/groups_button-delete-group.png b/images/groups_button-delete-group.png
new file mode 100644
index 00000000..41f2e3f8
Binary files /dev/null and b/images/groups_button-delete-group.png differ
diff --git a/images/groups_button-new-group.png b/images/groups_button-new-group.png
new file mode 100644
index 00000000..a50f0981
Binary files /dev/null and b/images/groups_button-new-group.png differ
diff --git a/images/groups_button-remove-user.png b/images/groups_button-remove-user.png
new file mode 100644
index 00000000..3c6c8e59
Binary files /dev/null and b/images/groups_button-remove-user.png differ
diff --git a/images/groups_default-groups.png b/images/groups_default-groups.png
new file mode 100644
index 00000000..52870fd4
Binary files /dev/null and b/images/groups_default-groups.png differ
diff --git a/images/groups_default-with-permissions.png b/images/groups_default-with-permissions.png
new file mode 100644
index 00000000..6dafb1ed
Binary files /dev/null and b/images/groups_default-with-permissions.png differ
diff --git a/images/pihole_logo.png b/images/pihole_logo.png
new file mode 100644
index 00000000..178c085d
Binary files /dev/null and b/images/pihole_logo.png differ
diff --git a/images/virtualbox_packaging1-en.png b/images/virtualbox_packaging1-en.png
new file mode 100644
index 00000000..ec1eaec0
Binary files /dev/null and b/images/virtualbox_packaging1-en.png differ
diff --git a/images/virtualbox_packaging1.jpg b/images/virtualbox_packaging1-fr.jpg
similarity index 100%
rename from images/virtualbox_packaging1.jpg
rename to images/virtualbox_packaging1-fr.jpg
diff --git a/images/virtualbox_packaging2-en.png b/images/virtualbox_packaging2-en.png
new file mode 100644
index 00000000..87af1cca
Binary files /dev/null and b/images/virtualbox_packaging2-en.png differ
diff --git a/images/virtualbox_packaging2.jpg b/images/virtualbox_packaging2-fr.jpg
similarity index 100%
rename from images/virtualbox_packaging2.jpg
rename to images/virtualbox_packaging2-fr.jpg
diff --git a/images/virtualbox_packaging3-en.png b/images/virtualbox_packaging3-en.png
new file mode 100644
index 00000000..6802a50b
Binary files /dev/null and b/images/virtualbox_packaging3-en.png differ
diff --git a/images/virtualbox_packaging3.jpg b/images/virtualbox_packaging3-fr.jpg
similarity index 100%
rename from images/virtualbox_packaging3.jpg
rename to images/virtualbox_packaging3-fr.jpg
diff --git a/images/virtualbox_packaging4-en.png b/images/virtualbox_packaging4-en.png
new file mode 100644
index 00000000..9e0f7684
Binary files /dev/null and b/images/virtualbox_packaging4-en.png differ
diff --git a/images/virtualbox_packaging4.jpg b/images/virtualbox_packaging4-fr.jpg
similarity index 100%
rename from images/virtualbox_packaging4.jpg
rename to images/virtualbox_packaging4-fr.jpg
diff --git a/images/virtualbox_packaging5-en.png b/images/virtualbox_packaging5-en.png
new file mode 100644
index 00000000..942026ab
Binary files /dev/null and b/images/virtualbox_packaging5-en.png differ
diff --git a/images/virtualbox_packaging5.jpg b/images/virtualbox_packaging5-fr.jpg
similarity index 100%
rename from images/virtualbox_packaging5.jpg
rename to images/virtualbox_packaging5-fr.jpg
diff --git a/install_on_arm_board.md b/install_on_arm_board.md
index 9703b54f..b6d96620 100644
--- a/install_on_arm_board.md
+++ b/install_on_arm_board.md
@@ -29,7 +29,7 @@ YunoHost doesn't yet support ARM64 boards. For more information, see [this issue
0. Download the pre-installed image for your boardIf no pre-installed image exists for your board, you can follow the instructions to "Install on top of ARMbian"
-
1. Flash the SD card with the image
+
1. Flash the SD card with the image
2. Power up the board and let it boot
@@ -43,7 +43,7 @@ YunoHost doesn't yet support ARM64 boards. For more information, see [this issue
0. Download the ARMbian image for your board
-
1. Flash the SD card with the image
+
1. Flash the SD card with the image
2. Plug & boot
diff --git a/install_on_arm_board_es.md b/install_on_arm_board_es.md
index 8a3d5278..6f6d636f 100644
--- a/install_on_arm_board_es.md
+++ b/install_on_arm_board_es.md
@@ -27,7 +27,7 @@ YunoHost todavía no es compatible con las tarjetas ARM64. Para obtener más inf
0. Descargar la imagen pre-instalada para tu tarjeta ARMSi no existe una imagen dedicada a tu tarjeta, puedes seguir la sección "Instalación encima de ARMbian".
-
1. Poner la imagen en tu tarjeta SD
+
1. Poner la imagen en tu tarjeta SD
2. Conectar y encender
@@ -41,7 +41,7 @@ YunoHost todavía no es compatible con las tarjetas ARM64. Para obtener más inf
0. Descargar la imagen ARMbian para tu tarjeta ARM
-
1. Poner la imagen en tu tarjeta SD
+
1. Poner la imagen en tu tarjeta SD
2. Conectar y encender
diff --git a/install_on_arm_board_fr.md b/install_on_arm_board_fr.md
index 68be4675..d373ee28 100644
--- a/install_on_arm_board_fr.md
+++ b/install_on_arm_board_fr.md
@@ -27,7 +27,7 @@ YunoHost ne supporte pour le moment pas les cartes ARM64. Pour plus d'informatio
0. Télécharger l'image pré-installée pour votre carte ARMSi il n'existe pas d'image pré-installée pour votre carte, vous pouvez suivre la section "Installation par dessus ARMbian".
-
1. Flasher la carte SD avec l'image
+
1. Flasher la carte SD avec l'image
2. Brancher la carte et la laisser démarrer
@@ -41,7 +41,7 @@ YunoHost ne supporte pour le moment pas les cartes ARM64. Pour plus d'informatio
0. Télécharger l'image ARMbian pour votre carte ARM
-
1. Flasher la carte SD avec l'image
+
1. Flasher la carte SD avec l'image
2. Brancher & démarrer
diff --git a/install_on_debian_it.md b/install_on_debian_it.md
new file mode 100644
index 00000000..e306592d
--- /dev/null
+++ b/install_on_debian_it.md
@@ -0,0 +1,23 @@
+# Installazione su Debian
+
+*Altri sistemi per installare Debian **[qui](/install)**.*
+
+### Requisiti
+
+

+
+Su un computer ARM, un VPS, un server dedicato, un computer x86 standard, un vecchio Macintosh, ...
+
+* con **Debian 9** (Stretch) installato
(con un kernel >= 3.12)
+ * l'immagine ISO di Debian 9 può essere scaricata da [qui](https://www.debian.org/releases/stretch/debian-installer/). Scegli l'immagine 'netinst CD' per la tua architettura.
+ * N.B.: l'uso di un'interfaccia grafica *non* è raccomandato! I server dovrebbero essere amministrati da remoto!
+* connesso ad Internet
+* con un **accesso root** diretto o via SSH
+
+---
+
+## Passi per l'installazione
+
+
1. Installazione manuale
+
+
2. Post-installazione
\ No newline at end of file
diff --git a/install_on_raspberry.md b/install_on_raspberry.md
index fa204721..ceef5c12 100644
--- a/install_on_raspberry.md
+++ b/install_on_raspberry.md
@@ -25,7 +25,7 @@ Before setting up a server at home, it is recommended that you know the [possibl
0. Download the pre-installed image for Raspberry Pi
-
1. Flash the SD card with the image
+
1. Flash the SD card with the image
2. Power up the board and let it boot
diff --git a/install_on_raspberry_de.md b/install_on_raspberry_de.md
index 5105d8b7..c57f34de 100644
--- a/install_on_raspberry_de.md
+++ b/install_on_raspberry_de.md
@@ -25,7 +25,7 @@ Vor der Einrichtung eines Servers zuhause ist es empfehlenswert [mögliche Einsc
0. Download the pre-installed image for Raspberry Pi
-
1. Flash the SD card with the image
+
1. Flash the SD card with the image
2. Plug & boot
diff --git a/install_on_raspberry_es.md b/install_on_raspberry_es.md
index b4fd51bf..9ab592f8 100644
--- a/install_on_raspberry_es.md
+++ b/install_on_raspberry_es.md
@@ -25,7 +25,7 @@ Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las
1. Descargar la imagen para Raspberry Pi
-
2. Poner la imagen en tu tarjeta SD
+
2. Poner la imagen en tu tarjeta SD
3. Conectar y encender
diff --git a/install_on_raspberry_fr.md b/install_on_raspberry_fr.md
index c3fd6452..8ddbd031 100644
--- a/install_on_raspberry_fr.md
+++ b/install_on_raspberry_fr.md
@@ -25,7 +25,7 @@ Avant d'héberger un serveur chez vous, il est recommandé de prendre connaissan
1. Télécharger l'image pour Raspberry Pi
-
2. Flasher la carte SD avec l'image
+
2. Flasher la carte SD avec l'image
3. Brancher la carte et la laisser démarrer
diff --git a/install_on_raspberry_it.md b/install_on_raspberry_it.md
deleted file mode 100644
index 1b3ca866..00000000
--- a/install_on_raspberry_it.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Installa YunoHost su Raspberry Pi
-
-*Consulta la guida completa in inglese [qui](/install_on_raspberry)*
diff --git a/isp_orange.md b/isp_orange.md
index c89a3e28..87a29d12 100644
--- a/isp_orange.md
+++ b/isp_orange.md
@@ -1 +1,85 @@
-Unfortunately, this page only exists [in french here](isp_orange_fr) for now.
+# Orange
+*Find the list of other Internet service providers **[here](/isp)**.*
+
+#### Email
+
+The Orange box has port 25 closed so as to limit the amount of spam that could be sent from a compromised home connection.
+
+The remaining solution to host one own's email at home is to route it through the Orange SMTP servers.
+
+To that end, one has to edit the postfix configuration file with the following command:
+
+```bash
+sudo nano /etc/postfix/main.cf
+```
+
+then, add the SMTP Orange server as a relay on the associated line:
+
+```bash
+relayhost = smtp.orange.fr
+```
+
+restart Postfix :
+
+```bash
+sudo service postfix restart
+```
+
+##### Problems
+
+If you are having an "Authentication required" error, the solution is as follows (note: french website): **[source](http://viruslocker.free.fr/?page_id=1749)**.
+
+Edit the postfix configuration file
+
+```bash
+sudo nano /etc/postfix/main.cf
+```
+then, add the following lines:
+
+```bash
+smtp_sasl_password_maps = hash:/etc/postfix/sasl/mdp_fai.conf
+smtp_sasl_auth_enable = yes
+smtp_sasl_security_options = noanonymous
+relayhost = [smtp.orange.fr]:25
+```
+
+Create the `mdp_fai.conf` file :
+
+```bash
+sudo nano /etc/postfix/sasl/mdp_fai.conf
+```
+
+add
+
+```bash
+# mdp_fai.conf
+[smtp.orange.fr]:25 emailaddress@at.orange:my-own-password
+```
+with your Orange account password.
+
+Integrate the password into Postfix :
+
+```bash
+sudo postmap /etc/postfix/sasl/mdp_fai.conf
+sudo postconf -e smtp_sasl_password_maps=hash:/etc/postfix/sasl/mdp_fai.conf
+```
+
+If you are having an "(SASL authentication failed; cannot authenticate to server smtp-auth.nowhere.com[38.123.22.160]: no mechanism available)" error
+
+Check that `libsasl2-modules` and `sasl2-bin` are present :
+
+```bash
+apt search libsasl2-modules
+apt search sasl2-bin
+```
+
+If they are not present, do install them :
+
+```bash
+apt install libsasl2-modules sasl2-bin
+```
+
+It is possible that postfix does not immediately take into account your modifications. To force it to do so, run
+```bash
+systemctl restart postfix
+```
diff --git a/isp_orange_fr.md b/isp_orange_fr.md
index 1c80f9fe..ffde62c6 100644
--- a/isp_orange_fr.md
+++ b/isp_orange_fr.md
@@ -66,7 +66,7 @@ sudo postconf -e smtp_sasl_password_maps=hash:/etc/postfix/sasl/mdp_fai.conf
Si vous avez une erreur "(SASL authentication failed; cannot authenticate to server smtp-auth.nowhere.com[38.123.22.160]: no mechanism available)"
-Vérifier la présence de libsasl2-modules et de sasl2-bin :
+Vérifier la présence de `libsasl2-modules` et de `sasl2-bin` :
```bash
apt search libsasl2-modules
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.

-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
diff --git a/moving_app_folder.md b/moving_app_folder.md
new file mode 100644
index 00000000..941d3d03
--- /dev/null
+++ b/moving_app_folder.md
@@ -0,0 +1,38 @@
+# Moving an app folder to a different storage
+
+Applications folder are (*usually*) located in `/var/www/$appname`
+
+If an application folder is expected to get bigger because of the amount of data
+it contains, it might be relevant to move it to another storage (like an
+external hard drive).
+
+Here's a summary of how to do this the application wordpress. Here, is is assumed that
+[you already mounted the external hard-drive](/external_storage).
+
+#### 1. Move the entire wordpress folder to an external hard drive
+
+```shell
+mv /var/www/wordpress /media/externalharddrive/
+```
+
+#### 2. Create a symbolic link
+
+So that programs looking for files in /var/www/wordpress will actually take them from the harddrive
+
+```shell
+ln -s /media/externalharddrive/wordpress /var/www/wordpress
+```
+
+#### 3. Tweak permissions (maybe?)
+
+After this, note that you may need to tweak the permissions of `/media/externalharddrive` so that `www-data` (or the user corresponding to the app) is able to read through the folder... Something like :
+
+```shell
+chgrp www-data /media/externalharddrive
+chmod g+rx /media/externalharddrive
+
+```
+
+(but it depends on your exact setup... Please update this doc page if you figure
+out what to do exactly)
+
diff --git a/noaccess_fr.md b/noaccess_fr.md
index 94d19af8..ec69c1cd 100644
--- a/noaccess_fr.md
+++ b/noaccess_fr.md
@@ -1,144 +1,151 @@
# 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.
+
+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 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 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 accès au serveur via l'adresse IP, mais pas avec le nom de domaine ?
+
+#### Si vous êtes auto-hébergé à la maison : il faut configurer les redirection de ports
+
+Vérifier que vous arrivez à accéder au serveur en utilisant son IP globale (que vous pouvez trouver sur https://ip.yunohost.org). Si cela ne fonctionne pas:
+ - Assurez-vous d'avoir [configuré les redirections de ports](/isp_box_config)
+ - Certaines box de FAI ne supportent pas le hairpinning et vous ne pouvez pas accéder à votre serveur depuis l'intérieur du réseau local (sauf à passer par l'IP locale). Pour contourner le problème, vous pouvez tester d'accéder à votre serveur en passant par un proxy comme proxfree.com
+
+#### Il faut configurer vos enregistrement DNS
+
+(N.B.: ce n'est pas nécessaire si vous utilisez un domaine de type nohost.me, noho.st ou ynh.fr)
+
+Il vous faut configurer vos enregistrement DNS comme expliqué sur [cette page](/dns_config) (à minima l'enregistrement A, et AAAA si vous avez de l'IPv6).
+
+Vous pouvez valider que les enregistrements DNS sont corrects en comparant le résultat de https://www.whatsmydns.net/ avec l'IP globale de votre serveur (si vous êtes hébergé à la maison, vous pouvez obtenir cette IP sur https://ip.yunohost.org)
+
+
+#### Autres causes possibles
+
+- Votre nom de domaine noho.st, nohost.me ou ynh.fr est inaccessible suite à une panne de l'infra YunoHost. Vérifiez sur le forum si d'autre personnes signalent le même problème.
+- Votre nom de domaine est peut-être expiré. 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`.
+- Vous avez une IP dynamique. Dans ce cas, il faut mettre en place un script qui se charge de mettre à jour régulièrement votre IP (ou d'utiliser un nom de domaine en nohost.me, noho.st ou ynh.fr qui inclue un tel mécanisme)
+
+
+
+
+## Vous êtes face à une erreur de certificat qui vous empêche d'accéder à la webadmin
+
+Si vous venez d'installer votre serveur ou d'ajouter un nouveau domaine, il utilise pour le moment un certificat auto-signé. Dans ce cas, il devrait être possible et légitime d'ajouter *exceptionnellement* une exception de sécurité le temps d'[installer un certificat Let's Encrypt](/certificate) à condition d'être sur une connexion internet sûre (pas avec Tor Browser par exemple).
+
+Une erreur de certificat peut également être affichée dans certain cas où vous avez fait une faute de frappe dans la barre d'adresse de votre navigateur.
+
-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 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.
+
+#### Vous essayez de vous connecter en SSH avec `root` plutôt qu'avec `admin`
+
+Par défaut, la connexion en SSH doit s'effectuer avec l'utilisateur `admin`. Il est possible de se connecter à la machine avec l'utilisateur `root` *seulement depuis le réseau local* sur lequel se situe le serveur (ou bien via la console web / VNC pour des VPS).
+
+Lorsque vous exécutez des commandes `yunohost` en tant qu'admin, il faut les précéder de la commande `sudo` (par exemple `sudo yunohost user list`). Vous pouvez également devenir `root` en tapant `sudo su`.
+
+#### Vous avez été banni temporairement
+
+Votre serveur YunoHost inclut un mécanisme (fail2ban) qui banni automatiquement les IPs qui échouent plusieurs fois à s'authentifier. Dans certains cas, il peut s'agir d'un programme (par exemple un client Nextcloud) 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 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 bannissement dure en général quelques minutes. Le bannissement n'est actif qu'en IPv4.
+Voir aussi: [débannir une IP sur Fail2ban](/fail2ban)
-### 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.
+NB: le bannissement dure en général 10 à 12 minutes. Le bannissement n'est actif qu'en IPv4.
-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.
+#### Le serveur web nginx est cassé
-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.
+Peut-être que le serveur web nginx est en panne. Vous pouvez vérifier cela [en ssh](/ssh) avec `yunohost service status ssh`. Si il est en panne, vérifiez que la configuration ne comporte pas d'erreur avec `nginx -t`. Si la configuration est cassée, ceci est peut-être du à une l'installation ou désinstallation d'une application de mauvaise qualité... Si vous êtes perdu, [demandez de l'aide](/help).
-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`
+Il se peut également que le serveur web (nginx) ou le serveur ssh aient été tués suite à un manque d'espace disque ou de RAM / swap.
+- Tentez de relancer le service avec `systemctl restart nginx`.
+- Vous pouvez contrôler l'espace disque utilisé avec `df -h`. Si une de vos partitions est remplie à 100%, il faut identifier ce qui prend de la place sur votre système et faire de la place. Il est possible d'installer l'utilitaire `ncdu` avec `apt install ncdu` puis de faire `ncdu /` pour analyser la taille des dossiers de toute l'arborescence.
+- Vous pouvez contrôler l'utilisation de la RAM / swap avec `free -h`. En fonction des résultats, il peut être nécessaire d'optimiser votre serveur pour qu'il utilise moins de RAM (suppression d'app lourdes et inutiles, ...), d'ajouter de la RAM ou d'ajouter un fichier 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.
+#### Votre serveur est accessible en IPv6 mais pas en IPv4 ou inversement
-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 le vérifier en tentant de faire des ping sur votre serveur en IPv4 et en IPv6.
-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 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, entraînant 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.
+
+
+
+
+
+
+
+## La webadmin fonctionne, mais certaines applications web me renvoient une erreur 502.
+
+Il est fort probablement que le service correspondant à ces applications soit en panne (typiquement pour les applications PHP, il s'agit de php7.0-fpm ou php7.3-fpm). Vous pouvez alors tenter de relancer le service, et si cela ne fonctionne pas, regarder les logs du service correspondant et/ou [demander de l'aide](/help).
+
+
+
+
+## Vous avez perdu votre mot de passe administrateur ? (ou bien le mot de passe est refusé)
+
+Si vous arrivez à afficher la page web d'administration (forcez 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é.
+
+Si vous êtes certain du mot de passe, il est possible que le service SLAPD qui gère l'authentification soit en panne. Si c'est le cas, il vous faut vous connecter en `root`.
+- Si votre serveur est chez vous, vous avez sans doute accès au réseau local du serveur. Depuis ce réseau, vous pouvez vous connecter [en SSH](/ssh) avec l'utilisateur `root`.
+- Si vous êtes sur un VPS, votre hébergeur vous fournit peut-être la possibilité d'avoir une console sur votre serveur depuis le navigateur web.
+Une fois connecté, il vous faut regarder l'état du service avec la commande `yunohost service status slapd` et/ou tenter de réinitialiser votre mot de passe avec la commande `yunohost tools adminpw`.
+
+Si vous ne pouvez pas ou ne réussissez pas non plus à vous connecter en `root`, vous allez devoir opérer en mode rescue.
+
+TODO: à compléter
+
## 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 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:
+Pour connaître votre IP locale, certaines BOX proposent une cartographie du réseau en cours avec les équipements connectés. Sinon, en ligne de commande avec linux:
```bash
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.
+Vous pouvez aussi essayer avec le domaine `yunohost.local` s'il n'y a qu'un seul YunoHost sur votre réseau.
Il faut voir avec votre fournisseur de VPN pour renouveler le VPN et mettre à jour les paramètre de l'app VPN Client.
-TODO
+TODO: à compléter
-## 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é.
+## Votre serveur est coincé au démarrage
-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.
+Dans certains cas, votre serveur peut rester coincé 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.
-## 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.
+Si vous êtes en mode `rescue` avec `grub`, dans ce cas il peut s'agir d'un problème de configuration de `grub` ou d'un disque corrompu.
-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 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`.
-Dans ce cas il faut renouveler le nom de domaine (si ile st encore temps.
+Si les disques sont corrompus et difficiles à 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ées.
-### 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.
+Sinon, relancer `grub-update` et `grub-install` en `chroot` ou avec `systemd-nspawn`.
-Si c'est un nom de domaine fournit par YunoHost, lancez
-```bash
-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 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.
+## L'accès en VNC ou via écran ne fonctionne pas
-## 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’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.
-
-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 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.
-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.
+Si c'est une machine louée contactez le support de votre fournisseur. Sinon, essayez de dépanner votre machine en retirant les composants qui peuvent être en panne.
diff --git a/orga/yunohost_project_organization.md b/orga/yunohost_project_organization.md
index 4fdfe208..b464be93 100644
--- a/orga/yunohost_project_organization.md
+++ b/orga/yunohost_project_organization.md
@@ -62,8 +62,7 @@ Groups are structured as a result of the fact that YunoHost counts many sub-proj
- [yunopaste](http://paste.yunohost.org/)
- ##### Apps Group
- - Official apps
- - Community-based apps
+ - apps.json list
- App development tools (package_checker, package linter)
- ##### Communication Group
diff --git a/packaging_apps.md b/packaging_apps.md
index 5da09827..bf2c2601 100644
--- a/packaging_apps.md
+++ b/packaging_apps.md
@@ -5,7 +5,7 @@ The purpose of this document is to teach you how to package an application for Y
### Requirements
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;
+* Basic knowledge of [git](/packaging_apps_git), bash shell and other programming stuff;
* 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
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.
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.
---
diff --git a/packaging_apps_fr.md b/packaging_apps_fr.md
index df480230..a0c1f114 100644
--- a/packaging_apps_fr.md
+++ b/packaging_apps_fr.md
@@ -5,7 +5,7 @@ Ce document a pour but de vous apprendre à packager une application pour YunoHo
### Prérequis
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 ;
+* Maîtriser un minimum [git](/packaging_apps_git), le Shell et d’autres notions de programmation ;
* 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.
diff --git a/packaging_apps_git.md b/packaging_apps_git.md
new file mode 100644
index 00000000..1ddb6ff2
--- /dev/null
+++ b/packaging_apps_git.md
@@ -0,0 +1,201 @@
+# How to use Git to package apps
+
+Git... Our dear beloved Git, which can be described also as "Goddamn Idiotic Truckload of sh*t", according to Linus.
+Be sure if you don't know Git yet that you will soon agree with that description.
+
+YunoHost and all our apps are on the Git forge GitHub. Which means that if you want to work on an app, sooner or later you're going to have to deal with Git.
+So let's see how to work with Git to be able to contribute in the context of YunoHost.
+
+## Working with GitHub
+
+Let's go first for the easy part, GitHub comes with an "easy" web interface to deal with.
+
+*First things first, unfortunately there's no way around, you need an account on GitHub.*
+
+#### Branches
+
+Then, probably one of the most important thing, **do not work directly on the master branch**.
+Sorry, it has to be said !
+
+Branches are, as GitHub explains, "*a parallel version of a repository. It is contained within the repository, but does not affect the other branches. Allowing you to work freely without disrupting the "live" version.*"
+
+The master branch is the branch that contains the version of the app users will actually install and use.
+The usual thing to do is to work from the testing branch, and when everything is settled and tested, you can merge the testing branch in master, so users will enjoy the new release of your package.
+
+To see and change the current branch, use this button:
+

+
+#### Edit a file
+
+Now that you're on the right branch, let's see how to edit a file on GitHub.
+
+You can edit any file by using the small pencil icon:
+

+
+If you don't have the permission to write on the repository, you will see (as on the picture) that you're going to create a fork (we'll see below what a fork is).
+If you have the permission to write, you will just edit the file, without forking.
+
+#### Commit your changes
+
+When you're done with your modification on the file, you can commit your changes.
+Behind that word, the idea is quite simple, you're just going to save your changes...
+

+
+The first field is the name of your commit, a very short sentence to explain why you did this modification.
+The second field is a large one for a more complete explanation, if you need it.
+
+Finally, if you're editing a repository on which you have permission to write, you can either commit directly to the current branch or create a new branch.
+It's usually better to create a new branch, that way you keep your modifications on a *parallel* version of the repository. Your modifications will be discussed in a pull request (explained below) then finally merged into the original branch.
+
+#### To fork or not to fork
+
+A fork is a copy of a repository into your own account.
+We have seen before that if you don't have permission to write into a repository, editing a file will automatically create a fork.
+Because the fork is on your account, you always have the permission to write on it.
+But even if a fork is not the real repository, but just a copy, a fork is always linked to its parent. We'll see later that to create a fork is really useful when opening a pull request.
+
+When you create a new package, it's common to use the [example app](https://github.com/YunoHost/example_ynh) as a base.
+But, because you don't want to keep that link to the example app, you should not fork the example app. You will rather clone the app.
+Unfortunately, to clone an app is a little bit trickier on GitHub. We will see later how to clone to a local repository instead.
+
+We have seen how to edit a file, and how this could fork the app.
+But, when you want to edit multiple files, the GitHub interface isn't really the best way. In such situation, you would rather clone the repository and work on a local repository.
+You may still need to fork on your own account to be able to save your modifications if you don't have the permission on the distant repository.
+
+#### Pull request
+
+After you have committed your changes, whether on a branch or a fork, you want to propose your modifications to be integrated into the main repository, or the original branch.
+To do so, you're going to *create a pull request*. GitHub usually ask you directly if you want to do so.
+Otherwise, you'll find the button to create a pull request just here:
+

+
+When creating a pull request from a fork, to ease the work of the reviewers, **do never** uncheck the checkbox *Allow edits from maintainers*. That option simply allow the maintainers of the original repository to edit directly your work.
+
+#### YunoHost-Apps organization
+
+Following the [YEP 1.7](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines.md#yep-17), your app has to be into the YunoHost-Apps organization, but if you have never contributed to an app before or never had any app into this organization you may not have the permission.
+
+First, you need the permission to write into the organization, to do so, ask to the Apps group on the Apps xmpp room.
+
+To transfer your app to the YunoHost-Apps organization, go to your repository and to *Settings* tab.
+At the bottom of the page, you will find *Transfer ownership*.
+Into the field *New owner’s GitHub username or organization name*, type *YunoHost-Apps*.
+Your repo will be moved into the organization, you don't have to remove the original repository.
+
+
+## Working with Git locally
+
+As we have seen, you can do a lot of things directly on GitHub.
+But when you need to edit multiple files, or when you need to work on your code on your own, it's better to work directly on your computer.
+
+Before going to the hellish part of Git, let's see 2 different ways to start working with Git.
+
+#### First case: Creating a new package
+
+You have shockingly discovered that the wonderful app you love to use everyday does not yet have its YunoHost package. And because you're nice, you decided to create yourself the package, so everyone will enjoy that app the way you do.
+What a good idea !
+
+The best is to start from the [example app](https://github.com/YunoHost/example_ynh). But as we have explained before, you don't want to fork, because if you do so, you're going to keep that link to the example app and it's really annoying.
+So, you're going to do it differently. You're going to clone !
+
+##### git clone
+
+To clone, you're going to do:
+```bash
+git clone https://github.com/YunoHost/example_ynh
+```
+`git clone` will download a copy of the repository. You will have the complete repository, with its branches, commits, and everything (into that apparently little `.git` directory).
+
+To git clone is usually the starting point of any local work with Git.
+
+*A side note though, if you expect to send your modifications back to the distant repository on GitHub, be sure to have the permission to write on this repository. Otherwise, fork before and clone your fork, on which you do have the permission.*
+
+##### My brand new package, continued
+
+In the context of a new package, you will also need to create a repository on GitHub to nest your package.
+Which is as simple as a big green *New* button.
+Don't bother with README, .gitignore or license. Just create the repository itself.
+you can now git clone that new repository.
+

+
+You now have 2 repositories cloned on your computer.
+Copy all the files from the example_ynh app, **except the .git directory** (You just want the files themselves) to your new package.
+
+*If you want, you can remove the example_ynh app. We don't need it anymore.*
+
+You're ready to work on your new package !
+
+#### Second case: Working locally on a repository
+
+You already have a repository, but what you want is just to work locally, so you can modify multiple files.
+Simply clone the repository, the .git directory is the link to the distant repository. Nothing else to do than a `git clone`.
+
+#### Branches
+
+You do have your local copy of the repository, but because you have read carefully this documentation until then, you know that you should be sure to be on the testing branch before starting to work.
+
+To see the branches, and to know on which you actually are, while into the directory of your repository, type `git branch`.
+The current branch is highlighted and preceded by a `*`.
+
+#### git checkout
+
+If it appears that you're not on the branch you wanted to be, or you're actually on master (which is bad !), you can move to another branch with `git checkout`
+```bash
+git checkout testing
+```
+*Read carefully what Git says when you validate a command, do never forget that Git is sneaky...*
+
+#### Git pull before anything else
+
+You're finally on the right branch, and ready to work.
+**Wait ! A nasty trap is waiting for you...**
+Before ending up in an inextricable situation. Start with a `git pull` to update your branch to the latest change from the distant repository.
+
+*Sometimes, you will encounter an impossible situation where Git is saying that you can't pull because you have local changes. But you don't care of those local modifications, you just want to get the last version of the distant branch. But Git don't care about what YOU want...*
+*I have to admit that my only solution is as highly efficient as dirty... A good old `rm -r` of the repository and a `git clone`*
+
+#### Let's work
+
+Eventually, you can work on your code.
+When you are finally ok with what you have done, it's time to validate your work.
+
+The first step is to inform Git about which file(s) to validate. To do so, we'll use `git add`
+```bash
+git add my_file
+git add my_other_file and_also_this_one
+```
+If you want to validate all your work, you can also simply do
+```bash
+git add --all
+```
+
+To check the current status of your validation, you can use `git status`. It will show you which files will be included into your commit, and which files are modified, but not yet included.
+`git status -v` will show also which part of the files are modified. A good way to be sure that you didn't make a mistake before committing.
+
+#### git checkout -b
+
+Before committing, or after, or before starting to work. Whenever you feel like it !
+You should consider adding your work to a separate branch, that way, it will be easy to create a pull request to merge into the testing branch and discuss with the other packagers what you suggest to change.
+
+To create a new branch and move to this branch, you can use `git checkout -b my_new_branch`.
+
+#### Commit
+
+To commit is simply to validate your work in Git. As you can do in GitHub.
+To have the same fields that you had on GitHub, with the name of the commit, and a longer explanation. You can simply use `git commit`.
+The first line, before the comments, is for the name of the commit.
+After all the comments, you can add an explanation if you want to.
+
+If you want to commit with only a name for your commit, you can use a simple command:
+```bash
+git commit -m "My commit name"
+```
+
+#### Push to the distant repository
+
+Your changes are validated, but only on your local clone of the repository. Now, you have to send those modifications back to the distant repository on GitHub.
+In order to do that, you need to know what is your current branch. (If you don't know, `git branch` will give you that info).
+Then you can git push
+```bash
+git push -u origin BRANCH_NAME
+```
diff --git a/packaging_apps_git_fr.md b/packaging_apps_git_fr.md
new file mode 100644
index 00000000..95172258
--- /dev/null
+++ b/packaging_apps_git_fr.md
@@ -0,0 +1,201 @@
+# Comment utiliser Git pour packager les applications
+
+Git... Notre cher Git bien-aimé, que l'on peut aussi décrire comme "Goddamn Idiotic Truckload of sh*t" (Un stupide putain gros tas de m\*rde), selon Linus.
+Si vous ne connaissez pas encore Git, soyez sûr que vous serez bientôt d'accord avec cette description.
+
+YunoHost et toutes nos applications sont sur la forge Git GitHub. Ce qui veut dire que si vous voulez travailler sur une application, tôt ou tard vous allez devoir faire face à Git.
+Alors voyons comment travailler avec Git pour pouvoir contribuer dans le contexte de YunoHost.
+
+## Travailler avec GitHub
+
+Commençons par la partie facile, GitHub est livré avec une interface web "facile" à utiliser.
+
+*Tout d'abord et malheureusement, il n'y a pas moyen de contourner ça, vous devez avoir un compte sur GitHub.*
+
+#### Branches
+
+Ensuite, et c'est probablement l'une des choses les plus importantes, **ne travaillez pas directement sur la branche master**.
+Désolé, il fallait que ce soit dit !
+
+Les branches sont, comme l'explique GitHub, "*une version parallèle d'un dépôt. Elle est contenue dans le dépôt, mais n'affecte pas les autres branches. Elle vous permet de travailler librement sans perturber la version "live".*"
+
+La branche master est la branche qui contient la version de l'application que les utilisateurs installeront et utiliseront effectivement.
+La bonne habitude à prendre est de travailler à partir de la branche testing, et lorsque tout est réglé et testé, vous pouvez fusionner la branche testing dans master, afin que les utilisateurs puissent profiter de la nouvelle version de votre package.
+
+Pour voir et modifier la branche actuelle, utilisez ce bouton :
+

+
+#### Modifier un fichier
+
+Maintenant que vous êtes sur la bonne branche, voyons comment éditer un fichier sur GitHub.
+
+Vous pouvez éditer n'importe quel fichier en utilisant l'icône du petit crayon :
+

+
+Si vous n'avez pas la permission d'écrire sur le dépôt, vous verrez (comme sur l'image) que vous allez créer un fork (nous verrons plus loin ce qu'est un fork).
+Si vous avez la permission d'écrire, vous allez simplement modifier le fichier, sans forker.
+
+#### Validez vos modifications
+
+Lorsque vous avez fini de modifier le fichier, vous pouvez faire un commit de vos modifications.
+Derrière ce mot, l'idée est assez simple, vous allez juste enregistrer vos modifications...
+

+
+Le premier champ est le nom de votre commit, une phrase très courte pour expliquer pourquoi vous avez fait cette modification.
+Le deuxième champ est un champ plus grand pour une explication plus complète, si vous en avez besoin.
+
+Enfin, si vous modifiez un dépôt sur lequel vous avez la permission d'écrire, vous pouvez soit faire un commit directement sur la branche en cours, soit créer une nouvelle branche.
+Il est généralement préférable de créer une nouvelle branche, de cette façon vous gardez vos modifications sur une version *parallèle* du dépôt. Vos modifications seront discutées dans une pull request (expliquée ci-dessous) puis finalement fusionnées dans la branche d'origine.
+
+#### Forker ou ne pas forker
+
+Un fork est une copie d'un dépôt sur votre propre compte.
+Nous avons déjà vu que si vous n'avez pas l'autorisation d'écrire dans un dépôt, la modification d'un fichier créera automatiquement un fork.
+Comme le fork est sur votre compte, vous avez toujours la permission d'écrire dessus.
+Mais même si un fork n'est pas le véritable dépôt, mais juste une copie, un fork est toujours lié à son parent. Nous verrons plus tard que la création d'un fork est vraiment utile lors de l'ouverture d'une pull request.
+
+Lorsque vous créez un nouveau package, il est courant d'utiliser l'[application exemple](https://github.com/YunoHost/example_ynh) comme base.
+Mais, comme vous ne voulez pas garder ce lien vers l'application d'exemple, vous ne devez pas forker l'application d'exemple. Vous la clonerez plutôt.
+Malheureusement, cloner une application est un peu plus compliqué sur GitHub. Nous verrons plus tard comment cloner vers un dépôt local à la place.
+
+Nous avons vu comment éditer un fichier, et comment cela peut forker l'application.
+Mais, lorsque vous voulez éditer plusieurs fichiers, l'interface GitHub n'est pas vraiment la meilleure solution. Dans une telle situation, vous préférerez cloner le dépôt et travailler sur un dépôt local.
+Il se peut que vous deviez tout de même forker sur votre propre compte pour pouvoir enregistrer vos modifications si vous n'avez pas les autorisations sur le dépôt distant.
+
+#### Pull request
+
+Après avoir effectué vos commits, que ce soit sur une branche ou un fork, vous souhaitez proposer vos modifications pour qu'elles soient intégrées dans le dépôt principal, ou dans la branche d'origine.
+Pour ce faire, vous allez créer une pull request. GitHub vous demande généralement directement si vous souhaitez le faire.
+Sinon, vous trouverez le bouton de création d'une pull request juste ici :
+

+
+Lors de la création d'une pull request à partir d'un fork, pour faciliter le travail de révision du code, **ne jamais** décocher la case *Allow edits from maintainers*. Cette option permet simplement aux mainteneurs du dépôt d'origine de modifier directement votre travail.
+
+#### Organisation YunoHost-Apps
+
+Conformément à la [YEP 1.7](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines.md#yep-17), votre application doit être intégrée à l'organisation YunoHost-Apps, mais si vous n'avez jamais contribué à une application auparavant ou si vous n'avez jamais eu d'application dans cette organisation, vous n'en aurez peut-être pas l'autorisation.
+
+Tout d'abord, vous devez avoir la permission d'écrire dans l'organisation, pour ce faire, demandez au groupe Apps sur le salon xmpp Apps.
+
+Pour transférer votre application sur l'organisation YunoHost-Apps, allez dans votre dépôt et dans l'onglet *Settings*.
+En bas de la page, vous trouverez *Transfer ownership*.
+Dans le champ *New owner’s GitHub username or organization name*, tapez *YunoHost-Apps*.
+Votre dépôt sera déplacé dans l'organisation, vous n'avez pas besoin de supprimer le dépôt d'origine.
+
+
+## Travailler avec Git en local
+
+Comme nous l'avons vu, vous pouvez faire beaucoup de choses directement sur GitHub.
+Mais lorsque vous devez modifier plusieurs fichiers, ou lorsque vous devez travailler sur votre code de votre côté, il est préférable de travailler directement sur votre ordinateur.
+
+Avant d'aller dans la partie infernale de Git, voyons 2 façons différentes de commencer à travailler avec Git.
+
+#### Premier cas : Créer un nouveau package
+
+Vous avez découvert, choqué, que la merveilleuse application que vous aimez utiliser tous les jours n'a pas encore son package YunoHost. Et parce que vous êtes sympa, vous avez décidé de créer vous-même le package, pour que tout le monde puisse apprécier cette application.
+Quelle bonne idée !
+
+Le mieux est de commencer par l'[application d'exemple](https://github.com/YunoHost/example_ynh). Mais comme nous l'avons déjà expliqué, vous ne voulez pas forker, parce que si vous le faites, vous allez garder ce lien vers l'application d'exemple et c'est vraiment ennuyeux.
+Donc, vous allez le faire différemment. Vous allez cloner !
+
+##### git clone
+
+Pour cloner, vous allez faire :
+```bash
+git clone https://github.com/YunoHost/example_ynh
+```
+`git clone` téléchargera une copie du dépôt. Vous aurez le dépôt complet, avec ses branches, ses commits, et tout le reste (dans cet apparent petit répertoire `.git`).
+
+git clone est généralement le point de départ de tout travail local avec Git.
+
+*Toutefois, si vous comptez envoyer vos modifications sur le dépôt distant sur GitHub, assurez-vous d'avoir les droits d'écriture sur ce dépôt. Sinon, forkez avant et clonez votre fork, pour lequel vous avez la permission.*
+
+##### Mon nouveau package, suite
+
+Dans le contexte d'un nouveau package, vous devrez également créer un dépôt sur GitHub pour y mettre votre package.
+Ce qui n'est pas plus compliqué qu'un gros bouton vert *New*.
+Ne vous embêtez pas avec des README, .gitignore ou licence. Créez simplement le dépôt lui-même.
+vous pouvez maintenant cloner ce nouveau dépôt avec Git.
+

+
+Vous disposez maintenant de 2 dépôts clonés sur votre ordinateur.
+Copiez tous les fichiers de l'application example_ynh, **excepté le répertoire .git** (vous voulez juste les fichiers eux-mêmes) dans votre nouveau package.
+
+*Si vous le souhaitez, vous pouvez supprimer l'application example_ynh. Nous n'en avons plus besoin.*
+
+Vous êtes prêt à travailler sur votre nouveau package !
+
+#### Deuxième cas : Travailler localement sur un dépôt
+
+Vous disposez déjà d'un dépôt, mais ce que vous voulez, c'est travailler localement, de sorte que vous puissiez modifier plusieurs fichiers.
+Il vous suffit de cloner le dépôt, le répertoire .git est le lien vers le dépôt distant. Rien d'autre à faire qu'un `git clone`.
+
+#### Branches
+
+Vous avez bien votre copie local du dépôt, mais comme vous avez lu attentivement cette documentation jusque-là, vous savez que vous devez vous assurer d'être sur la branche testing avant de commencer à travailler.
+
+Pour voir les branches, et savoir sur quelle branche vous êtes réellement, alors que vous êtes dans le répertoire de votre dépôt, tapez `git branch`.
+La branche courante est mise en évidence et précédée d'un "*".
+
+#### git checkout
+
+S'il apparaît que vous n'êtes pas sur la branche où vous vouliez être, ou que vous êtes en fait sur master (ce qui est mal !), vous pouvez passer à une autre branche avec `git checkout`.
+```bash
+git checkout testing
+```
+*Lisez attentivement ce que Git dit quand vous validez une commande, n'oubliez jamais que Git est sournois...*
+
+#### git pull avant tout
+
+Vous êtes enfin dans la bonne branche, et prêt à travailler.
+**Attendez ! Un vilain piège vous attend...**
+Avant de vous retrouver dans une situation inextricable. Commencez par un `git pull` pour mettre à jour votre branche avec les derniers changements du dépôt distant.
+
+*Parfois, vous rencontrerez une situation impossible où Git vous dira que vous ne pouvez pas pull parce que vous avez des changements locaux. Mais vous ne vous souciez pas de ces modifications locales, vous voulez juste obtenir la dernière version de la branche distante. Mais Git ne se soucie pas de ce que VOUS voulez...*
+*Je dois admettre que ma seule solution est aussi efficace que sale... Un bon vieux `rm -r` du dépôt et un `git clone`*
+
+#### Il est temps de travailler
+
+Vous pouvez finalement travailler sur votre code.
+Lorsque vous êtes enfin d'accord avec ce que vous avez fait, il est temps de valider votre travail.
+
+La première étape consiste à informer Git sur le(s) fichier(s) à valider. Pour ce faire, nous utiliserons `git add`.
+```bash
+git add mon_fichier
+ajouter mon_autre_fichier et_aussi_celui_ci
+```
+Si vous souhaitez valider l'ensemble de votre travail, vous pouvez aussi simplement faire
+```bash
+git add --all
+```
+
+Pour vérifier l'état actuel de votre validation, vous pouvez utiliser `git status`. Il vous montrera quels fichiers seront inclus dans votre commit, et quels fichiers sont modifiés, mais pas encore inclus.
+`git status -v` vous indiquera également quelle partie des fichiers est modifiée. Une bonne façon de s'assurer que vous n'avez pas fait d'erreur avant de faire un commit.
+
+#### git checkout -b
+
+Avant de faire un commit, ou après, ou avant de commencer à travailler. Quand vous en avez envie !
+Vous devriez envisager d'ajouter votre travail à une branche séparée, de cette façon, il sera facile de créer une pull request dans la branche testing et de discuter avec les autres packagers de ce que vous suggérez de changer.
+
+Pour créer une nouvelle branche et passer à cette branche, vous pouvez utiliser `git checkout -b my_new_branch`.
+
+#### Commit
+
+Faire un commit, c'est simplement valider son travail dans Git. Comme vous pouvez le faire dans GitHub.
+Pour avoir les mêmes champs que vous aviez sur GitHub, avec le nom du commit, et une explication plus longue. Vous pouvez simplement utiliser `git commit`.
+La première ligne, avant les commentaires, est pour le nom du commit.
+Après tous les commentaires, vous pouvez ajouter une explication si vous le souhaitez.
+
+Si vous voulez faire un commit avec seulement un nom pour votre commit, vous pouvez utiliser une simple commande :
+```bash
+git commit -m "My commit name"
+```
+
+#### Push vers le dépôt distant
+
+Vos modifications sont validées, mais uniquement sur votre clone local du dépôt. Maintenant, vous devez renvoyer ces modifications sur le dépôt distant sur GitHub.
+Pour ce faire, vous devez savoir quelle est votre branche actuelle. (Si vous ne le savez pas, `git branch` vous donnera cette information).
+Ensuite, vous pouvez git push
+```bash
+git push -u origin BRANCH_NAME
+```
diff --git a/packaging_apps_guidelines.md b/packaging_apps_guidelines.md
index 41fe5afb..2bf888de 100644
--- a/packaging_apps_guidelines.md
+++ b/packaging_apps_guidelines.md
@@ -119,9 +119,9 @@ For the `apps.json` list maintained by the project team, registration is on [the
##### Indicate the license associated with the package | draft | AUTO | WORKING |
The license of the packet must be specified in a `LICENSE` file at the root of the packet. Be careful not to confuse with the license of the application that will be installed whose acronym is to be entered in the `license` field of the manifest.
-The application lists official.json and community.json only accept packages with a free license, as well as the license for the contained application. Some free applications require non-free dependencies (example: mp3, drivers, etc.). In this case, you should add `&dep-non-free` to the acronym and if possible give details in the README.md of the package, in this case the integration will be accepted on a case-by-case basis.
+The application list apps.json only accept packages with a free license, as well as the license for the contained application. Some free applications require non-free dependencies (example: mp3, drivers, etc.). In this case, you should add `&dep-non-free` to the acronym and if possible give details in the README.md of the package, in this case the integration will be accepted on a case-by-case basis.
-**NB:** Apps not included in offical lists may still be installed: either manually with the URL to the app, or in a more practical way using non-official lists (which can be created and maintained by the community).
+**NB:** Apps not included in apps.json lists may still be installed: either manually with the URL to the app, or in a more practical way using non-official lists (which can be created and maintained by the community).
In the future, YunoHost will probably display details about the license of the application. To achieve this, the acronym must be the one from this [list of licenses listed in the SPDX](https://spdx.org/licenses/) (if there are 2 acronyms, the one containing the version number). For consistency, the case must be respected.
diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md
index 847367d4..bffee5b9 100644
--- a/packaging_apps_guidelines_fr.md
+++ b/packaging_apps_guidelines_fr.md
@@ -89,7 +89,7 @@ La YEP 1 est une meta YEP, elle explique ce qu'il faut faire pour échanger avec
##### Nommer son app et son dépôt | validé | manuel | NOTWORKING |
Chaque application YunoHost possède un id inscrit dans le manifeste de l'application.
Cet identifiant doit être unique entre chaque paquet d'application.
-Il est donc recommandé de vérifier sa disponibilité en consultant la liste des applications référencées dans les dépôts d'applications connus (official, community, internetcube).
+Il est donc recommandé de vérifier sa disponibilité en consultant la liste des applications référencées dans les dépôts d'applications connus (apps, internetcube).
De plus l'identifiant doit respecter l'expression régulière suivante `^[a-z1-9]((_|-)?[a-z1-9])+$`. Autrement dit, il doit respecter les règles suivantes :
* être en minuscule
@@ -114,15 +114,15 @@ Ces dépôts ont plusieurs fonctions :
* indiquer l'état de fonctionnement du paquet ;
* indiquer des informations sur le support d'un paquet.
-Pour les listes `official.json` et `community.json` maintenues par l'équipe du projet Yunohost, l'inscription se fait sur [le dépôt git "apps"](https://github.com/YunoHost/apps). D'autres listes non-officielles (notamment celles incluant des applications non-libres) peuvent exister, se réferer au [Forum](https://forum.yunohost.org) de la communauté.
+Pour la liste `apps.json` maintenue par l'équipe du projet Yunohost, l'inscription se fait sur [le dépôt git "apps"](https://github.com/YunoHost/apps). D'autres listes non-officielles (notamment celles incluant des applications non-libres) peuvent exister, se réferer au [Forum](https://forum.yunohost.org) de la communauté.
#### YEP 1.3
##### Indiquer la licence associée au paquet | brouillon | AUTO | WORKING |
La licence du paquet est à indiquer dans un fichier `LICENSE` à la racine du paquet. Attention à ne pas confondre avec la licence de l'application qui va être installée dont l'acronyme est à renseigner dans le champ `license` du manifeste.
-Les listes d'applications official.json et community.json n'acceptent que les paquets dont la licence est libre, de même pour la licence de l'application contenue. Certaines applications libres nécessitent des dépendances non-libres (exemple: mp3, drivers, etc.). Dans ce cas, il faut ajouter `&dep-non-free` à l'acronyme et si possible donner des précisions dans le README.md du paquet, l'intégration sera dans ce cas acceptée au cas par cas.
+La liste d'application apps.json n'accepte que les paquets dont la licence est libre, de même pour la licence de l'application contenue. Certaines applications libres nécessitent des dépendances non-libres (exemple: mp3, drivers, etc.). Dans ce cas, il faut ajouter `&dep-non-free` à l'acronyme et si possible donner des précisions dans le README.md du paquet, l'intégration sera dans ce cas acceptée au cas par cas.
-**NB :** Les applications non-présentes dans les listes maintenues par le projet peuvent tout de même être installées : soit manuellement via le lien de l'application, soit de manière plus intégrée via des listes non-officielles (qui peuvent être créées et maintenues par la communauté).
+**NB :** Les applications non-présentes dans la liste maintenue par le projet peuvent tout de même être installées : soit manuellement via le lien de l'application, soit de manière plus intégrée via des listes non-officielles (qui peuvent être créées et maintenues par la communauté).
Dans le futur, YunoHost affichera sans doute des détails sur la licence de l'application. Pour y parvenir, l'acronyme doit être celui issu de cette [liste de licences répertoriées du SPDX](https://spdx.org/licenses/) (si il y a 2 acronymes, il faut prendre celui contenant le numéro de version). Pour plus de cohérence, la casse doit être respectée.
@@ -170,7 +170,7 @@ Une fois l’invitation acceptée, [transférer son dépôt sur l’organisation
#### YEP 1.8
##### Publier des demandes de test | validé | manuel | OFFICIAL |
-Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie Apps du forum](https://forum.yunohost.org/c/apps).
+Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie Apps du forum](https://forum.yunohost.org/c/support/apps).
Il est recommandé d'indiquer si certains tests n'ont pas été menés.
diff --git a/packaging_apps_helpers.md b/packaging_apps_helpers.md
index 71cb32f7..476d7822 100644
--- a/packaging_apps_helpers.md
+++ b/packaging_apps_helpers.md
@@ -2,6 +2,7 @@
App helpers
+
Doc auto-generated by this script on 03/30/2020 (Yunohost version 3.7.0.12)
apt
@@ -411,7 +412,7 @@
- Dude, show me the code !
+ Dude, show me the code !
@@ -1428,14 +1429,13 @@ ynh_exec_fully_quiet "your_command | other_command"