N.B. : Instalar YunoHost en VirtualBox es útil para probar la distribución. Para realmente autoalojarse a largo plazo, probablement necesitarás una máquina virtual (viejo ordenador, tarjeta ARM...) o un VPS.
@@ -73,4 +73,4 @@ Si te encuentras con el error "VT-x is not available", probablement hay que acti
Después del reinicio, la máquina debería proponerte de efectuar la post-instalación :
-
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
index f83a3151..d99807af 100644
--- a/install_on_virtualbox_fr.md
+++ b/install_on_virtualbox_fr.md
@@ -1,13 +1,13 @@
# Installer YunoHost sur VirtualBox
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install_fr)**.*
+*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
## Prérequis
* Un ordinateur x86 avec VirtualBox installé et assez de RAM disponible pour lancer une petite machine virtuelle.
-* La dernière **image ISO YunoHost** stable, disponible [ici](/images_fr).
+* La dernière **image ISO YunoHost** stable, disponible [ici](/images).
N.B. : Installer YunoHost dans une VirtualBox est utile pour tester la
diff --git a/install_on_vps_es.md b/install_on_vps_es.md
index 0263d71f..f6eb2eb7 100644
--- a/install_on_vps_es.md
+++ b/install_on_vps_es.md
@@ -1,6 +1,6 @@
# Instalación en un servidor dedicado
-*Encontrar otros medios de instalar Yunohost **[aquí](/install_es)**.*
+*Encontrar otros medios de instalar Yunohost **[aquí](/install)**.*
## Prerrequisitos
@@ -14,7 +14,7 @@
## Etapas de instalación
-
1. Instalar manualmente
+
1. Instalar manualmente
-
2. Post-instalación
+
2. Post-instalación
diff --git a/install_on_vps_fr.md b/install_on_vps_fr.md
index 9194d9b7..a0924cb8 100644
--- a/install_on_vps_fr.md
+++ b/install_on_vps_fr.md
@@ -1,6 +1,6 @@
# Installation sur un serveur dédié
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install_fr)**.*
+*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
## Prérequis
@@ -14,6 +14,6 @@
## Étapes d’installation
-
1. Installer manuellement
+
1. Installer manuellement
-
2. Effectuer la configuration initiale (post-installation)
+
2. Effectuer la configuration initiale (post-installation)
diff --git a/isp.md b/isp.md
index d84d9e87..ba3f8626 100644
--- a/isp.md
+++ b/isp.md
@@ -1,12 +1,12 @@
# Internet service providers
-
Main configuration box
+
Main configuration box
Here is a non-comprehensive list of internet service providers by country, which contains criteria about tolerance to self-hosting.
A "no" may cause problems for using your server or may require you to make additional configuration changes. Status in brackets indicates the default behavior.
-A list of French and Belgian ISPs is available on the [french page](/isp_fr).
+A list of French and Belgian ISPs is available on the [french page](/isp).
### USA
| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP |
diff --git a/isp_box_config.md b/isp_box_config.md
index 465a82eb..883889c0 100644
--- a/isp_box_config.md
+++ b/isp_box_config.md
@@ -28,16 +28,16 @@ In your router admin interface, look for something like 'router configuration' o
Opening the ports listed below is necessary for the various services available in YunoHost to work. For each of them, the 'TCP' forwarding is needed. Some interfaces refer to 'external' and 'internal' ports : these are the same in our case.
* Web: 80
(HTTP), 443
(HTTPS)
-* [SSH](/ssh_en): 22
-* [XMPP](/XMPP_en): 5222
(clients), 5269
(servers)
-* [Email](/email_en): 25, 587
(SMTP), 993
(IMAP)
+* [SSH](/ssh): 22
+* [XMPP](/XMPP): 5222
(clients), 5269
(servers)
+* [Email](/email): 25, 587
(SMTP), 993
(IMAP)
If you use both a modem and a router, then you need to do the following:
1. first on the modem (the box closest to the internet) create rules to forward the above ports to your router;
2. then on the router (the box between the modem and your devices) create rules to forward the above ports to the static IP address for your server.
- Some internet service providers block port 25 (mail SMTP) by default to fight spam. Some other ISP don't allow to use port 80/443 (web) freely, though it's less likely. Depending on the ISP, it might be possible to open them in the admin interface... Check [this page](isp_en) for more info.
+ Some internet service providers block port 25 (mail SMTP) by default to fight spam. Some other ISP don't allow to use port 80/443 (web) freely, though it's less likely. Depending on the ISP, it might be possible to open them in the admin interface... Check [this page](/isp) for more info.
## Automatic port forwarding / UPnP
diff --git a/isp_box_config_es.md b/isp_box_config_es.md
index dc239ef0..3d5b93f3 100644
--- a/isp_box_config_es.md
+++ b/isp_box_config_es.md
@@ -1,6 +1,6 @@
# Configurar la redirección de los puertos
-Si te estás auto-alojando en casa y sin VPN, tienes que redirigirse los puertos de tu router (caja/box). Si quieres una explicación sencilla de lo que es y por qué necesitas redirigir los puertos, puedes echar un vistazo a [esta página](port_forwarding_es). [Esta página](https://www.testdevelocidad.es/configuraciones/abrir-correctamente-los-puertos-router/) también propone explicaciones detalladas sobre el funcionamiento de los puertos, y las etapas de configuración para un router genérico.
+Si te estás auto-alojando en casa y sin VPN, tienes que redirigirse los puertos de tu router (caja/box). Si quieres una explicación sencilla de lo que es y por qué necesitas redirigir los puertos, puedes echar un vistazo a [esta página](/port_forwarding). [Esta página](https://www.testdevelocidad.es/configuraciones/abrir-correctamente-los-puertos-router/) también propone explicaciones detalladas sobre el funcionamiento de los puertos, y las etapas de configuración para un router genérico.
### 0. Diagnosticar los puertos abiertos
@@ -29,12 +29,12 @@ En la interfaz de administración de tu router/caja/box, tienes que encontrar un
Luego tienes que redirigir cada uno de los puertos listados a continuación hacia la IP local de tu router para que los varios servicios de Yunohost funcionen. Para cada uno de ellos, una redirección 'TCP' es necesaria. En algunas interfaces, tal vez encontrarás referencias a un puerto 'externo' y un puerto 'interno' : en nuestro caso, se trata del mismo número de puerto, que sea interno o externo.
* Web: 80
(HTTP), 443
(HTTPS)
-* [SSH](/ssh_es): 22
-* [XMPP](/XMPP_es): 5222
(clients), 5269
(servers)
-* [Email](/email_es): 25, 587
(SMTP), 993
(IMAP)
+* [SSH](/ssh): 22
+* [XMPP](/XMPP): 5222
(clients), 5269
(servers)
+* [Email](/email): 25, 587
(SMTP), 993
(IMAP)
- Algunos proveedores de acceso a Internet bloquean el puerto 25 (mail SMTP) por defecto para luchar con el spam. Otros (más escasos) no permiten utilizar libremente los puertos 80/443. Dependiendo de tu proveedor, puede ser posible de abrir estos puertos en la interfaz... Ver [esta página](isp_es) por más informaciones.
+ Algunos proveedores de acceso a Internet bloquean el puerto 25 (mail SMTP) por defecto para luchar con el spam. Otros (más escasos) no permiten utilizar libremente los puertos 80/443. Dependiendo de tu proveedor, puede ser posible de abrir estos puertos en la interfaz... Ver [esta página](/isp) por más informaciones.
## Redirección automática / UPnP
diff --git a/isp_box_config_fr.md b/isp_box_config_fr.md
index 866b38b0..31b38b1d 100644
--- a/isp_box_config_fr.md
+++ b/isp_box_config_fr.md
@@ -1,6 +1,6 @@
# Configurer la redirection des ports
-Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Si vous souhaitez une explication courte de ce qu'est et pourquoi vous avez besoin de rediriger les ports, vous pouvez jeter un œil à [cette page-ci](port_forwarding_fr). [Cette page-là](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs.
+Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Si vous souhaitez une explication courte de ce qu'est et pourquoi vous avez besoin de rediriger les ports, vous pouvez jeter un œil à [cette page-ci](/port_forwarding). [Cette page-là](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs.
### 0. Diagnostiquer les ports ouverts
@@ -33,12 +33,12 @@ nom diffère suivant le type / marque de la box...
Il vous faut ensuite rediriger chacun des ports listés ci-dessous vers l'IP locale de votre serveur pour que les différents services de YunoHost fonctionnent. Pour chacun d'eux, une redirection 'TCP' est nécessaire. Certains interfaces font références à un port 'externe' et un port 'interne' : dans notre cas il s'agit du même.
* Web: 80
(HTTP), 443
(HTTPS)
-* [SSH](/ssh_fr): 22
-* [XMPP](/XMPP_fr): 5222
(clients), 5269
(servers)
-* [Email](/email_en): 25, 587
(SMTP), 993
(IMAP)
+* [SSH](/ssh): 22
+* [XMPP](/XMPP): 5222
(clients), 5269
(servers)
+* [Email](/email): 25, 587
(SMTP), 993
(IMAP)
- Certains fournisseurs d'accès internet bloquent le port 25 (mail SMTP) par défaut pour combattre le spam. D'autres (plus rares) ne permettent pas d'utiliser librement les ports 80/443. En fonction de votre FAI, il peut être possible d'ouvrir ces ports dans l'interface... Voir [cette page](isp_fr) pour plus d'informations.
+ Certains fournisseurs d'accès internet bloquent le port 25 (mail SMTP) par défaut pour combattre le spam. D'autres (plus rares) ne permettent pas d'utiliser librement les ports 80/443. En fonction de votre FAI, il peut être possible d'ouvrir ces ports dans l'interface... Voir [cette page](/isp) pour plus d'informations.
## Redirection automatique / UPnP
diff --git a/isp_es.md b/isp_es.md
index e0c42cf0..fed12f76 100644
--- a/isp_es.md
+++ b/isp_es.md
@@ -1,8 +1,8 @@
# Proveedores de acceso a Internet
-
Configuración general del router
+
Configuración general del router
-Aquí tienes una lista (no exhaustiva) de proveedores de acceso a Internet por país, con criterios de compatibilidad con el [self-hosting](selfhosting_es).
+Aquí tienes una lista (no exhaustiva) de proveedores de acceso a Internet por país, con criterios de compatibilidad con el [self-hosting](/selfhosting).
Un « **no** » puede implicar problemas de utilización del servidor o puede obligarte a hacer configuraciones adicionales. El estatus entre paréntesis indica el comportamiento por defecto.
@@ -14,14 +14,14 @@ Todos los proveedores de acceso a Internet [miembros de la Federación French Da
* ✔ : sí
* ✘ : no
-| Proveedor de acceso | OVH | [Free](/isp_free_fr) | [SFR](/isp_sfr_fr) | [Orange](/isp_orange_fr) | Bouygues
Télécom | Darty |
+| Proveedor de acceso | OVH | [Free](/isp_free) | [SFR](/isp_sfr) | [Orange](/isp_orange) | Bouygues
Télécom | Darty |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **Box/router** | Personal/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox |
| **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| **[Puerto 25 que se abre](email_fr)**
(cerrado por defecto) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
+| **[Puerto 25 que se abre](/email)**
(cerrado por defecto) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)
personalizable ** | ✔ | ✔ (excepto IPv6) | … | ✘ | ✘ | ✘ |
-| **[IP fija](/dns_dynamicip_es)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
+| **[IP fija](/dns_dynamicip)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
| **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … |
| **[No listado en el DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | … | ✘ | … | … | … | … |
Para obtener una lista más completa y precisa, refiérete a la muy buena documentación (fr) de [wiki.auto-hebergement.fr](http://wiki.auto-hebergement.fr/fournisseurs/fai#d%C3%A9tail_des_fai).
@@ -30,7 +30,7 @@ Para obtener una lista más completa y precisa, refiérete a la muy buena docume
### Bélgica
-| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
+| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **Proximus** | BBox2 | sí (activado) | sí | **no** | **no** | **no** |
| | BBox3 | sí (activado) | sí | **no** | **no** | **no** |
@@ -40,7 +40,7 @@ Para obtener una lista más completa y precisa, refiérete a la muy buena docume
### Costa de Marfil
-| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
+| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **Orange** | Livebox2 | sí (activado) | no | **no** | **no** | **no** |
| **Moov** | | sí (activado) | | | | |
diff --git a/isp_fr.md b/isp_fr.md
index 1e8a3900..35e6d8be 100644
--- a/isp_fr.md
+++ b/isp_fr.md
@@ -1,8 +1,8 @@
# Fournisseurs d’accès à Internet
-
Configuration générale box
+
Configuration générale box
-Voici une liste non exhaustive des fournisseurs d’accès à Internet par pays, contenant les critères de tolérance à l’[auto-hébergement](selfhosting_fr).
+Voici une liste non exhaustive des fournisseurs d’accès à Internet par pays, contenant les critères de tolérance à l’[auto-hébergement](/selfhosting).
Un « **non** » peut entraîner des problèmes d’utilisation de votre serveur ou peut vous obliger à faire des configurations supplémentaires. Le statut entre parenthèses indique le comportement par défaut.
@@ -12,14 +12,14 @@ Tous les fournisseurs d’accès à Internet [membres de la Fédération French
* ✔ : oui
* ✘ : non
-| Fournisseur d’accès | OVH | [Free](/isp_free_fr) | [SFR](/isp_sfr_fr) | [Orange](/isp_orange_fr) | Bouygues
Télécom | Darty |
+| Fournisseur d’accès | OVH | [Free](/isp_free) | [SFR](/isp_sfr) | [Orange](/isp_orange) | Bouygues
Télécom | Darty |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **Box/routeur** | Personnel/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox |
| **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| **[Port 25 ouvrable](email_fr)**
(fermé par défaut) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
+| **[Port 25 ouvrable](/email)**
(fermé par défaut) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✔ (depuis la Livebox 4) | ✔ | ✔ |
| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)
personnalisable ** | ✔ | ✔ (sauf IPv6) pas de support | … | ✘ | ✘ | ✘ |
-| **[IP fixe](/dns_dynamicip_fr)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
+| **[IP fixe](/dns_dynamicip)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ |
| **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … |
| **[Non listé sur le DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | … | ✘ | … | … | … | … |
Pour une liste plus complète et précise, référez-vous à la très bonne documentation de [wiki.auto-hebergement.fr](http://wiki.auto-hebergement.fr/fournisseurs/fai#d%C3%A9tail_des_fai).
@@ -28,7 +28,7 @@ Pour une liste plus complète et précise, référez-vous à la très bonne docu
### Belgique
-| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe |
+| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **Proximus** | BBox2 | oui (activé) | oui | **non** | **non** | **non** |
| | BBox3 | oui (activé) | oui | **non** | **non** | **non** |
@@ -38,7 +38,7 @@ Pour une liste plus complète et précise, référez-vous à la très bonne docu
### Côte d'Ivoire
-| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](email_fr)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe |
+| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **Orange** | Livebox2 | oui (activé) | non | **non** | **non** | **non** |
| **Moov** | | oui (activé) | | | | |
diff --git a/isp_free.md b/isp_free.md
new file mode 100644
index 00000000..e97c35fb
--- /dev/null
+++ b/isp_free.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](isp_free_fr) for now.
diff --git a/isp_free_fr.md b/isp_free_fr.md
index 59242ee9..58ebb590 100644
--- a/isp_free_fr.md
+++ b/isp_free_fr.md
@@ -1,6 +1,6 @@
# Free
-*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp_fr)**.*
+*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.*
#### Accès à l’administration de la box (v5/v6)
@@ -14,13 +14,13 @@ Allez à l’adresse : [mafreebox.free.fr](http://mafreebox.free.fr/) puis authe
#### Ouverture des ports
-[Liste des ports à ouvrir](/isp_box_config_fr).
+[Liste des ports à ouvrir](/isp_box_config).
##### Freebox ≤ v5
Cela se passe dans la section *Ma Freebox / Configurer mon routeur*. Il faut :
-- Rediriger les [ports à ouvrir](/isp_box_config_fr) vers l'adresse locale de votre serveur YunoHost.
+- Rediriger les [ports à ouvrir](/isp_box_config) vers l'adresse locale de votre serveur YunoHost.
- Définir une DMZ vers votre serveur YunoHost.
La présence conjointe de ces deux règles permettent d'accéder à votre serveur de l'extérieur comme de l'intérieur de votre réseau local.
diff --git a/isp_orange.md b/isp_orange.md
new file mode 100644
index 00000000..87a29d12
--- /dev/null
+++ b/isp_orange.md
@@ -0,0 +1,85 @@
+# 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 56cabf4d..ffde62c6 100644
--- a/isp_orange_fr.md
+++ b/isp_orange_fr.md
@@ -1,5 +1,5 @@
# Orange
-*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp_fr)**.*
+*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.*
#### Le courrier électronique
@@ -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.md b/isp_sfr.md
new file mode 100644
index 00000000..e5002600
--- /dev/null
+++ b/isp_sfr.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](isp_sfr_fr) for now.
diff --git a/isp_sfr_fr.md b/isp_sfr_fr.md
index a163878f..43c311fb 100644
--- a/isp_sfr_fr.md
+++ b/isp_sfr_fr.md
@@ -1,5 +1,5 @@
#SFR
-*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp_fr)**.*
+*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.*
#### Accès à l’administration de la box
* Allez à cette adresse : http://192.168.1.1.
* Authentifiez-vous, soit en appuyant sur le bouton de la box pendant 5 secondes soit avec les identifiants d’administration.
@@ -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/noaccess.md b/noaccess.md
new file mode 100644
index 00000000..a2ed2d20
--- /dev/null
+++ b/noaccess.md
@@ -0,0 +1 @@
+Unfortunately, this page only exists [in french here](noaccess_fr) for now.
diff --git a/noaccess_fr.md b/noaccess_fr.md
index 059fc32a..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
-```
-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/packaging_apps.md b/packaging_apps.md
index dee9331a..bf2c2601 100644
--- a/packaging_apps.md
+++ b/packaging_apps.md
@@ -5,8 +5,8 @@ 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;
-* A testing [virtual machine or a distant server](/install_en), or a development environement, [ynh-dev](https://github.com/yunohost/ynh-dev) or [VirtualBox](/packaging_apps_virtualbox_fr), to package and test the package.
+* 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
A YunoHost package is composed of:
@@ -21,21 +21,21 @@ A YunoHost package is composed of:
feel free to use it as a framework.
## Manifest
-
Manifest
+
Manifest
## Scripts
-
Scripts
+
Scripts
### Architecture and arguments
Since YunoHost has a unified architecture, you will be able to guess most of the settings you need. But if you need variable ones, like the domain or web path, you will have to ask the administrator at installation (see `arguments` section in the manifest above).
-
Arguments management
+
Arguments management
### Nginx configuration
-
Nginx configuration
+
Nginx configuration
### Multi-instance
-
Multi-instance
+
Multi-instance
### Hooks
YunoHost provides a hook system, which is accessible via the packager's script callbacks in command line.
@@ -46,7 +46,7 @@ The scripts have to be placed in the `hooks` repository at the root of the YunoH
Take a look at the [Nextcloud package](https://github.com/YunoHost-Apps/nextcloud_ynh/) for a working example.
### Helpers
-
Helpers
+
Helpers
### Registering a log file
@@ -85,7 +85,7 @@ In order to test your package, you can execute your script standalone as `admin`
su - admin -c "/bin/bash /path/to/my/script my_arg1 my_arg2"
```
-Or you can use [command line](/commandline_en):
+Or you can use [command line](/commandline):
```bash
yunohost app install /path/to/my/app/package
```
@@ -97,14 +97,14 @@ yunohost app install https://github.com/author/my_app_package.git
### Packaging best practices
Here is a list of best practices for application install scripts:
* scripts should use `sudo cp -a ../sources/. $final_path` instead of `sudo cp -a ../sources/* $final_path`;
-* install script must contain support in case of script errors to delete residuals files thanks to `set -e` and [trap](packaging_apps_trap_fr);
+* install script must contain support in case of script errors to delete residuals files thanks to `set -e` and [trap](/packaging_apps_trap);
* install script should use the command-line method instead of calls to curl through web install form;
* install script should save install answers;
* application sources should be checked with a control sum (sha256, sha1 or md5) or a PGP signature;
* scripts should be tested on Debian Stretch 32 bits, 64 bits and ARM architectures;
* backup and restore scripts should be present and functional.
-To be define the quality of a package, it'll obtained a [level](packaging_apps_levels_fr), determined according to somes criteria of installation and according to respect to [package guidelines](packaging_apps_guidelines).
+To be define the quality of a package, it'll obtained a [level](/packaging_apps_levels), determined according to somes criteria of installation and according to respect to [package guidelines](packaging_apps_guidelines).
### Package script checker
Package checker
@@ -124,7 +124,7 @@ A continuous integration server is available for packagers who want to test thei
* Publishing a [post on the Forum](https://forum.yunohost.org/) with the [`App integration` category](https://forum.yunohost.org/c/app-integration), to ask for testing and feedback on your application.
-* If your application is released under a free software license, you may ask the YunoHost app team to integrate your application to the [app repository](https://github.com/YunoHost/apps) (c.f. also the [app list](apps_en)). You can add your application even if it is not stable or working yet : the current state can be specified to `notworking`, `inprogress`, or `working`.
+* If your application is released under a free software license, you may ask the YunoHost app team to integrate your application to the [app repository](https://github.com/YunoHost/apps) (c.f. also the [app list](/apps)). You can add your application even if it is not stable or working yet : the current state can be specified to `notworking`, `inprogress`, or `working`.
* If your application is *not* free software, then in the future, a non-official list might be created to handle them but is non-existent yet.
diff --git a/packaging_apps_arguments_management.md b/packaging_apps_arguments_management.md
index e967af6b..130e3de4 100644
--- a/packaging_apps_arguments_management.md
+++ b/packaging_apps_arguments_management.md
@@ -1,4 +1,4 @@
-
Application packaging
+
Application packaging
## Arguments management
#### Retrieve arguments in the install script from manifest
diff --git a/packaging_apps_arguments_management_fr.md b/packaging_apps_arguments_management_fr.md
index 28471773..5d66e707 100644
--- a/packaging_apps_arguments_management_fr.md
+++ b/packaging_apps_arguments_management_fr.md
@@ -1,4 +1,4 @@
-
Packaging d’application
+
Packaging d’application
## Gestion des arguments
#### Récupérer les arguments du manifeste dans le script d’installation
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 7e06bae8..a0c1f114 100644
--- a/packaging_apps_fr.md
+++ b/packaging_apps_fr.md
@@ -5,11 +5,11 @@ 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 ;
-* Une [machine virtuelle ou sur un serveur distant](/install_fr) ou un environnement de développement, [ynh-dev](https://github.com/yunohost/ynh-dev) ou [VirtualBox](/packaging_apps_virtualbox_fr), pour packager et tester son paquet.
+* 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.
-Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/packaging_apps_start_fr).
+Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/packaging_apps_start).
### Contenu
Un paquet YunoHost est composé :
@@ -23,27 +23,27 @@ Un paquet YunoHost est composé :
Paquet de base n’hésitez pas à vous en servir comme base de travail.
## Manifeste
-
Manifeste
+
Manifeste
## Les scripts
-
Scripts
+
Scripts
### Architecture et arguments
Comme les instances de YunoHost possèdent une architecture unifiée, vous serez capable de deviner la plupart des réglages nécessaires. Mais si vous avez besoin de réglages spécifiques, comme le nom de domaine ou un chemin web pour configurer l’application, vous devrez les demander aux administrateurs lors de l’installation (voir la section `arguments` dans le § **Manifeste** ci-dessus).
-
Gestion des arguments
+
Gestion des arguments
### Configuration Nginx
-
Configuration Nginx
+
Configuration Nginx
### Multi-instance
-
Multi-instance
+
Multi-instance
### Hooks
-
Hooks
+
Hooks
### Commandes pratiques
-
Commandes pratiques
+
Commandes pratiques
### Référencement des logs
Dans de nombreuses situations, vous pouvez vouloir indexer un fichier de log pour qu'il soit affiché dans la webadmin. Pour indexer un log, il faut créer un fichier d'indexation dans `/var/log/yunohost/categories/app/APPNAME.yml`.
@@ -79,14 +79,14 @@ Ces informations seront utilisées pour permettre de filtrer les logs en relatio
### Améliorer la qualité du paquet d’installation
Vous trouverez ci-dessous une liste des points à vérifier concernant la qualité de vos scripts :
* Vos scripts utilisent bien `sudo cp -a ../sources/. $final_path` plutôt que `sudo cp -a ../sources/* $final_path` ;
-* Votre script d’installation contient une gestion en cas d’erreurs du script pour supprimer les fichiers résiduels à l’aide de `set -e` et de [trap](/packaging_apps_trap_fr) ;
+* Votre script d’installation contient une gestion en cas d’erreurs du script pour supprimer les fichiers résiduels à l’aide de `set -e` et de [trap](/packaging_apps_trap) ;
* Votre script d’installation utilise une méthode d’installation en ligne de commande plutôt qu’un appel curl via un formulaire web d’installation ;
* Votre script d’installation enregistre les réponses de l’utilisateur ;
* Vous avez vérifié les sources de l’application avec une somme de contrôle (sha256, sha1 ou md5) ou une signature PGP ;
* Vos scripts ont été testés sur Debian Stretch 32 bits, 64 bits et ARM ;
* Les scripts backup et restore sont présents et fonctionnels.
-Pour mesurer la qualité d'un paquet, celui-ci obtiendra un [niveau](packaging_apps_levels_fr), déterminé en fonction de divers critères d'installation et selon le respect des [règles de packaging](packaging_apps_guidelines_fr).
+Pour mesurer la qualité d'un paquet, celui-ci obtiendra un [niveau](/packaging_apps_levels), déterminé en fonction de divers critères d'installation et selon le respect des [règles de packaging](/packaging_apps_guidelines).
### Script de vérification du paquet
Vérificateur de paquets
@@ -106,7 +106,7 @@ Un serveur d'intégration continue est a disposition des packagers désirant tes
* Demandez des tests et des retours sur votre application en publiant un [post sur le Forum](https://forum.yunohost.org/) dans la [catégorie `App integration`](https://forum.yunohost.org/c/app-integration).
-* Si votre paquet et l'application qu'il contient sont sous licence libre, faites une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) (voir aussi [la liste des apps](apps_fr)). Vous pouvez ajouter une application même si celle-ci n'est pour le moment pas fonctionelle : l'état d'avancement peut être `notworking`, `inprogress` ou `working`.
+* Si votre paquet et l'application qu'il contient sont sous licence libre, faites une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) (voir aussi [la liste des apps](/apps)). Vous pouvez ajouter une application même si celle-ci n'est pour le moment pas fonctionelle : l'état d'avancement peut être `notworking`, `inprogress` ou `working`.
* Si votre application n'est *pas* sous licence libre, il se peut qu'une liste non-officielle soit créée pour gérer ces applications. Ce n'est pour l'instant pas le cas.
diff --git a/packaging_apps_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 b9607d37..41fe5afb 100644
--- a/packaging_apps_guidelines.md
+++ b/packaging_apps_guidelines.md
@@ -113,7 +113,7 @@ These deposits have several functions:
* indicate the state of operation of the packet;
* indicate information about the support of a package.
-For the `official.json` and` community.json` lists maintained by the project team, registration is on [the git apps repository](https://github.com/YunoHost/apps). Other non-official lists may exists (including those for non-free apps for example), see more about that in the [community forum](https//forum.yunohost.org).
+For the `apps.json` list maintained by the project team, registration is on [the git apps repository](https://github.com/YunoHost/apps). Other non-official lists may exists (including those for non-free apps for example), see more about that in the [community forum](https//forum.yunohost.org).
#### YEP 1.3
##### Indicate the license associated with the package | draft | AUTO | WORKING |
@@ -164,7 +164,7 @@ Adding an app to the [YunoHost-Apps organization](https://github.com/YunoHost-Ap
It is also a way to quickly deploy a security patch if necessary in the event that the maintainer is unavailable.
-Transfer Procedure: Ask the [chat room](chat_rooms_en) to be invited to the organization by providing the name of their GitHub account.
+Transfer Procedure: Ask the [chat room](/chat_rooms) to be invited to the organization by providing the name of their GitHub account.
Once the invitation is accepted, [transfer its deposit to the organization by following this tutorial](https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/# Transferring-a-repository-to-another-user-account-or-to-an-organization).
#### YEP 1.8
@@ -221,7 +221,7 @@ Keep your code as easy as possible, keep everything a script needs directly into
#### Stabilize an app
#### YEP 2.1
##### Respect the manifest format | validated | Home | INPROGRESS |
-The manifest allows to describe an app so that YunoHost can apply the good treatments. For more information see [dedicated documentation](https://yunohost.org/#/packaging_apps_manifest).
+The manifest allows to describe an app so that YunoHost can apply the good treatments. For more information see [dedicated documentation](/packaging_apps_manifest).
#### YEP 2.2
##### Using bash for main scripts | validated | Home | WORKING |
@@ -287,7 +287,7 @@ It is advisable to make the scripts as generic as possible, a good way to do thi
In order to simplify packaging, standardize practices, avoid errors and increase the lifetime of a script vis-à-vis future versions of YunoHost. A set of helpers to do many actions is proposed.
For more information :
-* consult [helpers documentation](https://yunohost.org/#/packaging_apps_helpers)
+* consult [helpers documentation](/packaging_apps_helpers)
* explore [helpers directory](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d)
#### YEP 2.13
diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md
index 4048f777..80925dc5 100644
--- a/packaging_apps_guidelines_fr.md
+++ b/packaging_apps_guidelines_fr.md
@@ -165,12 +165,12 @@ L'ajout d'une app sur l'[organisation YunoHost-Apps](https://github.com/YunoHost
C'est aussi un moyen pour permettre de déployer rapidement un correctif de sécurité si nécessaire dans le cas où le mainteneur ne serait pas disponible.
-Procédure de transfert : demander sur le [salon de discussion `Apps`](chat_rooms_fr) à être invité à l’organisation en lui fournissant le nom de son compte GitHub.
+Procédure de transfert : demander sur le [salon de discussion `Apps`](/chat_rooms) à être invité à l’organisation en lui fournissant le nom de son compte GitHub.
Une fois l’invitation acceptée, [transférer son dépôt sur l’organisation en suivant ce tutoriel](https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/#transferring-a-repository-to-another-user-account-or-to-an-organization).
#### YEP 1.8
##### 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.
@@ -222,7 +222,7 @@ Gardez votre code aussi simple que possible, gardez tout ce dont un script a bes
#### Stabiliser une app
#### YEP 2.1
##### Respecter le format du manifeste | validé | auto | INPROGRESS |
-Le manifeste permet de décrire une app afin que YunoHost puisse lui appliquer les bons traitements. Pour plus d'information voir la [documentation dédiée](https://yunohost.org/#/packaging_apps_manifest).
+Le manifeste permet de décrire une app afin que YunoHost puisse lui appliquer les bons traitements. Pour plus d'information voir la [documentation dédiée](/packaging_apps_manifest).
#### YEP 2.2
##### Utiliser bash pour les scripts principaux | validé | auto | WORKING |
@@ -289,7 +289,7 @@ Il est conseillé de rendre les scripts le plus générique possible, un bon moy
Afin de simplifier le packaging, d'uniformiser les pratiques, d'éviter les erreurs et d'augmenter la durée de vie d'un script vis-à-vis des futures versions de YunoHost. Un ensemble de helpers permettant de faire de nombreuses actions est proposé.
Pour plus d'informations :
-* consulter [la documentation des helpers](https://yunohost.org/#/packaging_apps_helpers_fr)
+* consulter [la documentation des helpers](/packaging_apps_helpers)
* explorer [le répertoire des helpers](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d)
#### YEP 2.13
diff --git a/packaging_apps_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 !
@@ -1562,7 +1562,7 @@ The execution time is given for the duration since the previous call. So the wei