diff --git a/.gitignore b/.gitignore
index 783a4aee..5d23856f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
-*~
-*.sw[op]
+/*
+!/pages
+!/images
+!/themes
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 18a27402..38a1a730 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,5 +2,3 @@ language: bash
script:
- bash tests/dead_links.sh
- - bash tests/unreferenced_pages.sh
- - bash tests/check_code_block_syntax.sh
diff --git a/README.md b/README.md
index ed5d3ad2..28f1a260 100644
--- a/README.md
+++ b/README.md
@@ -8,3 +8,19 @@ Please report [issues on YunoHost bugtracker](https://github.com/YunoHost/issues
You can live test any changes by adding `/edit` to the URL on
[yunohost.org](https://yunohost.org). For example, if you make changes to
[apps.md](./apps.md), you can test them on [yunohost.org/#/apps/edit](https://yunohost.org/#/apps/edit).
+
+## Regenerate the css
+
+We use scss to manage the css. If you want to change it, you must rebuild it.
+
+First install npm, then in the root folder of this repo, install sass: `npm install sass`
+
+Finally you can rebuild the css with (You can replace `expanded` by `compressed` if you want):
+
+```bash
+./node_modules/sass/sass.js themes/yunohost-docs/scss:themes/yunohost-docs/css --style expanded
+```
+
+Source:
+https://sass-lang.com/guide
+
diff --git a/admindoc.md b/admindoc.md
deleted file mode 100644
index 1bf8daf3..00000000
--- a/admindoc.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# Administrator documentation
-
-* Discovering self-hosting
- * [What is Self-hosting](/selfhosting)
- * [What is YunoHost](/whatsyunohost)
- * [Try YunoHost](/try)
- * [How to host yourself](howtohostyourself)
- * [Choosing hardware](/hardware)
- * [About the friendliness of internet service providers](/isp)
-* [Installing YunoHost](/install)
- * [On a regular computer](/install_iso)
- * [On a dedicated or a virtual private server](/install_on_vps)
- * [On a Raspberry Pi](/install_on_raspberry)
- * [On an ARM board](/install_on_arm_board)
- * [On Debian](/install_on_debian)
- * [On VirtualBox](/install_on_virtualbox)
-* Finalizing your setup
- * [Post-installation](/postinstall)
- * [Configuring port forwarding](/isp_box_config)
- * [Configuring DNS records](/dns_config)
- * [Installing an SSL certificate](/certificate)
- * [Diagnose if your setup is working properly](/diagnostic)
-* Getting to know YunoHost
- * [Overview of YunoHost](/overview)
- * [General advices and guidelines](/guidelines)
- * [Web administration interface](/admin)
- * [SSH](/ssh) and [command-line administration](/commandline)
- * [Users and the SSO](/users)
- * [Groups and permissions](/groups_and_permissions)
- * [Applications](/apps_overview)
- * [Domains, DNS and certificates](/domains)
- * [Email](/email)
- * [Forms to remove its IP address from the black lists](/blacklist_forms)
- * [XMPP](/XMPP)
- * [Backup](/backup)
- * [Updating the system](/update) and [apps](/app_update)
- * [Security](/security)
-* Going further
- * Domain names
- * [Noho.st / nohost.me / ynh.fr domain names](/dns_nohost_me)
- * [Configure a dynamic DNS with a dynamic IP address](/dns_dynamicip)
- * [DNS and subdomains for apps](/dns_subdomains)
- * [Managing DNS records at OVH](/OVH)
- * Notes about some French ISPs
- * [SFR](/isp_sfr)
- * [Orange](/isp_orange)
- * [Free](/isp_free)
- * [Specific apps documentations](/appsdoc)
- * [Equivalence between Framasoft service and apps](/apps_framasoft)
- * [Exchange files with your server using a graphical interface](/filezilla)
- * [Customize the appearance of the YunoHost portal](/theming)
- * [Adding an external storage](/external_storage)
- * [Moving an app folder to an other storage](/moving_app_folder)
- * [Migrating emails to YunoHost](/email_migration)
- * [Hide services with Tor](/torhiddenservice)
- * [Using certificates other than Let's Encrypt](/certificate_custom)
- * [A discussion about the advantages of using a VPN](/vpn_advantage)
- * [Stretch->Buster migration procedure](stretch_buster_migration)
- * [(old) Jessie->Stretch migration procedure](jessie_stretch_migration)
-* Troubleshooting
- * [Changing the administration password](/change_admin_password)
- * [Recover access to your server](/noaccess)
- * [Unban IPs in IPiptables/Fail2Ban](/fail2ban)
- * [Configuring IPv6](/ipv6)
diff --git a/admindoc_de.md b/admindoc_de.md
deleted file mode 100644
index 462b4e0e..00000000
--- a/admindoc_de.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Administrator-Dokumentation
-
-* Self-Hosting entdecken
- * [Was ist Self-Hosting](/selfhosting)
- * [Was ist YunoHost](/whatsyunohost)
- * [Probiere YunoHost aus](/try)
- * [Wie du selber hostest](howtohostyourself)
- * [Wähle die Hardware](/hardware)
- * [Über die Freundlichkeit von Internet-Service-Providern](/isp)
-* [YunoHost installieren](/install)
- * [Auf einem normalen Computer](/install_iso)
- * [Auf einem eigenen oder virtuellen Server](/install_on_vps)
- * [Auf einem Raspberry Pi](/install_on_raspberry)
- * [Auf einem ARM-Board](/install_on_arm_board)
- * [Auf Debian](/install_on_debian)
- * [Auf VirtualBox](/install_on_virtualbox)
-* Setup abschließen
- * [Nach der Installation](/postinstall)
- * [Port-Forwarding konfigurieren](/isp_box_config)
- * [DNS-Einträge konfigurieren](/dns_config)
- * [SSL-Zertifikate installieren](/certificate)
- * [Diagnostiziere deine Installation](/diagnostic)
-* YunoHost kennenlernen
- * [Übersicht über YunoHost](/overview)
- * [Allgemeine Hinweise und Hilfestellungen](/guidelines)
- * [Web-Administrations-Interface](/admin)
- * [SSH](/ssh) and [command-line administration](/commandline)
- * [Benutzer und SSO (Single-Sign-On)](/users)
- * [Applikationen](/apps_overview)
- * [Domains, DNS und Zertifikate](/domains)
- * [E-Mail](/email)
- * [XMPP](/XMPP)
- * [Datensicherung](/backup)
- * [System-Update](/update) and [apps](/app_update)
- * [Sicherheit](/security)
-* Weiteres
- * [Noho.st / nohost.me / ynh.fr Domain-Namen](/dns_nohost_me)
- * [Grafischer Dateiaustausch mit deinem Server](/filezilla)
- * [Passe das Aussehen vom Yunohost-Portal an](/theming)
- * [Für externen Speicher hinzu](/external_storage)
- * [Migriere E-Mails zu Yunohost](/email_migration)
- * [Verstecke Services mit Tor](/torhiddenservice)
-* Hinweise zur Fehlersuche
- * [Entsperren von IPs in Fail2Ban](/fail2ban)
- * [Administrator-Passwort ändern](/change_admin_password)
diff --git a/admindoc_fr.md b/admindoc_fr.md
deleted file mode 100644
index d9a972eb..00000000
--- a/admindoc_fr.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# Documentation pour les administrateurs YunoHost
-
-* Découvrir l'auto-hébergement
- * [Qu'est-ce que l'auto-hébergement](/selfhosting)
- * [Qu'est-ce que YunoHost](/whatsyunohost)
- * [Essayer YunoHost](/try)
- * [Choisir son mode d'hébergement](/howtohostyourself)
- * [Matériel compatible](/hardware)
- * [À propos des fournisseurs d'accès internet](/isp)
-* [Guide d’installation](/install)
- * [Sur un ordinateur "standard"](/install_iso)
- * [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps)
- * [Sur un Raspberry Pi](/install_on_raspberry)
- * [Sur une carte ARM](/install_on_arm_board)
- * [Sur Debian](/install_on_debian)
- * [Sur VirtualBox](/install_on_virtualbox)
-* Finaliser son installation
- * [Post-installation](/postinstall)
- * [Configurer les redirections de port](/isp_box_config)
- * [Configurer les enregistrements DNS](/dns_config)
- * [Installer un certificat SSL](/certificate)
- * [Diagnostic du bon fonctionnement du YunoHost](/diagnostic)
-* Apprendre à connaitre YunoHost
- * [Vue d'ensemble de YunoHost](/overview)
- * [Conseil généraux](/guidelines)
- * [L'interface d'administration web](/admin)
- * [SSH](/ssh) et [l'administration en ligne de commande](/commandline)
- * [Les utilisateurs et le SSO](/users)
- * [Les groupes et les permissions](/groups_and_permissions)
- * [Les applications](/apps_overview)
- * [Les domaines, la configuration DNS et les certificats](/domains)
- * [Les emails](/email)
- * [Formulaires pour enlever son adresse IP des listes noires](/blacklist_forms)
- * [XMPP](/XMPP)
- * [Les sauvegardes](/backup)
- * [Mettre à jour le système](/update) et [les applications](/app_update)
- * [La sécurité](/security)
-* Pour aller plus loin
- * Noms de domaine
- * [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me)
- * [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip)
- * [DNS et installation d’une application sur un sous-domaine](/dns_subdomains)
- * [Gérer les enregistrements DNS chez OVH](/OVH)
- * Notes à propos de certains fournisseurs d'accès à Internet
- * [SFR](/isp_sfr)
- * [Orange](/isp_orange)
- * [Free](/isp_free)
- * [Documentation spécifique à certaines apps](/appsdoc)
- * [Équivalence entre service Framasoft et apps](/apps_framasoft)
- * [Échanger des fichiers avec son serveur à l'aide d'une interface graphique](/filezilla)
- * [Modifier l'apparence du portail utilisateur](/theming)
- * [Ajouter un stockage externe](/external_storage)
- * [Déplacer un dossier d'app vers un autre stockage](/moving_app_folder)
- * [Migrer ses emails vers YunoHost](/email_migration)
- * [YunoHost avec un service caché Tor](/torhiddenservice)
- * [Utilisation de certificats autres que Let's Encrypt](/certificate_custom)
- * [Une discussion sur les avantages d'utiliser un VPN](/vpn_advantage)
- * [Procedure de Migration Stretch->Buster](stretch_buster_migration)
- * [(vieux) Procedure de Migration Jessie->Stretch](jessie_stretch_migration)
-* Dépannage
- * [Changer le mot de passe d’administration](/change_admin_password)
- * [Récupérer l'accès à son serveur](/noaccess)
- * [Débannir une IP dans Fail2Ban/IPtables](/fail2ban)
- * [Configurer l'IPv6](/ipv6)
diff --git a/app_jappix.md b/app_jappix.md
deleted file mode 100644
index 900961e9..00000000
--- a/app_jappix.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Jappix
-
-Jappix is a web client for [XMPP](/XMPP).
diff --git a/app_jappix_fr.md b/app_jappix_fr.md
deleted file mode 100644
index 7e8b4531..00000000
--- a/app_jappix_fr.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Jappix
-
-Jappix est un client web [XMPP](/XMPP).
diff --git a/app_nextcloud_calendar.md b/app_nextcloud_calendar.md
deleted file mode 120000
index 7800f978..00000000
--- a/app_nextcloud_calendar.md
+++ /dev/null
@@ -1 +0,0 @@
-default.md
\ No newline at end of file
diff --git a/app_nextcloud_carnet.md b/app_nextcloud_carnet.md
deleted file mode 120000
index 7800f978..00000000
--- a/app_nextcloud_carnet.md
+++ /dev/null
@@ -1 +0,0 @@
-default.md
\ No newline at end of file
diff --git a/app_nextcloud_contact.md b/app_nextcloud_contact.md
deleted file mode 120000
index 7800f978..00000000
--- a/app_nextcloud_contact.md
+++ /dev/null
@@ -1 +0,0 @@
-default.md
\ No newline at end of file
diff --git a/app_pleroma.md b/app_pleroma.md
deleted file mode 100644
index 595e2038..00000000
--- a/app_pleroma.md
+++ /dev/null
@@ -1 +0,0 @@
-Unfortunately, this page only exists [in french here](app_pleroma_fr) for now.
diff --git a/app_shaarli.md b/app_shaarli.md
deleted file mode 100644
index 7f24e1a5..00000000
--- a/app_shaarli.md
+++ /dev/null
@@ -1 +0,0 @@
-(This page only exists in french for now)
diff --git a/app_update.md b/app_update.md
deleted file mode 100644
index ac1361e9..00000000
--- a/app_update.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Upgrade your applications
-
-Once you installed applications, you may need to upgrade them, sooner or later.
-
-**Caution:** please be advised to backup your databases (using phpMyAdmin application for example) and files before any upgrade.
-
-### Upgrade using the admin panel
-Go to Tools > Update system
-
-Once the applications packages list is retrieved, you will be able to update official applications that have a pending upgrade.
-
-### Upgrade using command line
-First, connect to your server through SSH and type in the following command (WordPress update):
-```bash
-yunohost app upgrade wordpress
-```
-**Note:** in case you have multiple instances of the same type (ex: 2 wordpress) installed, you will need to specify the instance name (ex: wordpress or wordpress__2).
-
-#### Upgrade an unofficial application
-Specify the Git repository containing the upgrade.
-
-For intance, to upgrade LimeSurvey:
-```bash
-yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh
-```
-
-**Note:** be cautious when installing unofficial applications and upgrades. Be sure that theses updates are stables and are not a step in the development process. There may be a good reason if an application is not listed in the official repository.
-
-**Caution:** be sure to check the content of any update; installing or upgrading an unofficial application allows it to run scripts with the highest privileges.
-
-#### Command line options
-
-When upgrading apps from the command line, you can specify specific options to change the behaviour of the upgrade script.
-To set those options, set the corresponding variable before the upgrade command: `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress`
-
-Available options are:
-- `NO_BACKUP_UPGRADE`: Do not perform the backup before the upgrade. Which means the upgrade will be operated without a security backup.
-- `YNH_FORCE_UPGRADE`: Force the upgrade of the app and the package, even if the app is already up to date.
diff --git a/app_update_fr.md b/app_update_fr.md
deleted file mode 100644
index 05093042..00000000
--- a/app_update_fr.md
+++ /dev/null
@@ -1,39 +0,0 @@
-#Mettre à jour ses applications
-
-Une fois que vous avez installé des applications, il est nécessaire de les mettre à jour. Plusieurs méthodes existent et sont détaillées ci-dessous.
-
-** Attention : ** il est recommandé de faire une sauvegarde de la base de données (par exemple via l’application [phpMyAdmin](https://github.com/YunoHost-apps/phpmyadmin_ynh) ([installer](https://install-app.yunohost.org/?app=phpmyadmin))) ainsi que des fichiers avant une opération de mise à jour.
-
-### Mise à jour par l’interface Web
-Pour cela, il faut aller dans l’onglet "Mettre à jour le système".
-
-Une fois la liste des paquets et des applications rafraîchie, il sera proposé de mettre à jour les applications et paquets qui peuvent l’être.
-
-
-### Mise à jour en ligne de commande
-Il faut d’abord se connecter sur le serveur en SSH, puis entrer la commande suivante (dans le cas d’une mise à jour WordPress) :
-```bash
-yunohost app upgrade wordpress
-```
-**Note :** dans le cas où plusieurs applications du même type (ex : deux WordPress) sont installées sur le serveur, il est nécessaire de spécifier le nom d’instance (ex : wordpress ou wordpress__2).
-
-#### Mise à jour d’une application non officielle
-Il faut pour cela indiquer le dépôt Git qui contient la mise à jour.
-
-Par exemple, pour mettre à jour LimeSurvey, entrer :
-```bash
-yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh
-```
-
-**Note :** faites attention aux applications/mises à jour non officielles que vous installez. Assurez-vous que ces mises à jour sont stables et ne constituent pas une étape de développement. Si une application ou une mise à jour n’est pas intégrée au dépôt officiel, il y a sûrement une raison.
-
-**Attention :** assurez-vous du contenu de cette mise à jour ; l’installation ou la mise à jour d’une application non officielle permet à cette dernière d’exécuter des scripts avec les privilèges les plus élevés. Si le script est malicieux, il pourrait nuire à votre vie privée en communiquant à des tiers toute donnée présente sur le serveur, ou bien les détruire irrémédiablement.
-
-##### Options de ligne de commande
-
-Lorsque vous mettez à jour des applications à partir de la ligne de commande, vous pouvez spécifier des options spécifiques pour modifier le comportement du script d'upgrade.
-Pour définir ces options, définissez la variable correspondante avant la commande d'upgrade : `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress`
-
-Les options disponibles sont:
-- `NO_BACKUP_UPGRADE`: Ne pas effectuer le backup avant la mise à jour. Ce qui veut dire que la mise à jour se fera sans sauvegarde de sécurité.
-- `YNH_FORCE_UPGRADE`: Force la mise à jour de l'application et du package, même si l'application est déjà à jour.
diff --git a/app_yunofav.md b/app_yunofav.md
deleted file mode 100644
index 9b4e3e99..00000000
--- a/app_yunofav.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Yunofav: (unofficial) Page of favorite links for YunoHost
-
-homepage: https://github.com/YunoHost-Apps/yunofav_ynh
-
-Functionality: Creates a page for your favorite links, using the YunoHost tiles look and feel.
\ No newline at end of file
diff --git a/app_yunofav_fr.md b/app_yunofav_fr.md
deleted file mode 100644
index d904a78e..00000000
--- a/app_yunofav_fr.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Yunofav : (non officiel) Page de liens favoris pour YunoHost
-
-page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh
-
-
-Fonctionnalité : Crée une page pour vos liens préférés, en utilisant le style et le fonctionnement des tuiles YunoHost.
\ No newline at end of file
diff --git a/apps.md b/apps.md
deleted file mode 100644
index 9bc87380..00000000
--- a/apps.md
+++ /dev/null
@@ -1,379 +0,0 @@
-# Application catalog
-
-
-This page requires JavaScript enabled to display properly :s.
-
-
-
-
-
-
-
The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the corresponding code repositories.
-
-
- Applications flagged as low quality may be working, but they may not respect good packaging practices or lack integration of some features like backup/restore or single authentication. Be cautious when installing them.
-
-
-
- Applications flagged as not working are known to be broken and/or are still in development. **Do not install them** in a production environment!
-
-
-
-
-
If you don't find the app you are looking for, you can try to look for a appname_ynh repository on GitHub or on the internet, or add it to the apps wishlist.
L'équipe de packaging d'applications sera heureuse de recevoir vos commentaires ! Si vous trouvez des problèmes ou des améliorations possibles en installant une app, n'hésitez pas à contribuer en créant un ticket (issue) directement sur le dépôt de code.
-
-
- Les applications étiquettées low quality fonctionnent peut-être, mais ne respectent pas les bonnes pratiques de packaging ou ne supportent pas certaines fonctionnalités comme les sauvegardes/restauration ou l'authentication unifiée. Soyez prudent si vous les installez.
-
-
-
- Les applications étiquettées not working sont connues pour être cassées et/ou encore en développement. **Ne les installez pas** sur un serveur de production !
-
-
-
-
-
Si vous ne trouvez pas une application précise que vous recherchez, vous pouvez chercher un dépôt nommé nomdelapp_ynh sur GitHub ou internet, ou bien l'ajouter à la liste d'apps souhaitées.
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps_framasoft.md b/apps_framasoft.md
deleted file mode 100644
index b8965af1..00000000
--- a/apps_framasoft.md
+++ /dev/null
@@ -1 +0,0 @@
-Unfortunately, this page only exists [in french here](apps_framasoft_fr) for now.
diff --git a/apps_framasoft_fr.md b/apps_framasoft_fr.md
deleted file mode 100644
index d57bcdbd..00000000
--- a/apps_framasoft_fr.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# Équivalence avec les applications Framasoft
-
-| App Framasoft | Équivalent | Package |
-| :---: | :---: | :---: |
-| Framabag | Wallabag | [](https://github.com/YunoHost-Apps/wallabag2_ynh)   |
-| Framabee | Searx | [](https://github.com/YunoHost-Apps/searx_ynh)   |
-| Framabin | PrivateBin | [](https://github.com/YunoHost-apps/zerobin_ynh)   |
-| Framaboard | Kanboard | [](https://github.com/YunoHost-Apps/kanboard_ynh)   |
-| Framabookin | BicBucStriim | [](https://github.com/YunoHost-Apps/bicbucstriim_ynh)   |
-| Framacalc | Ethercalc | [](https://github.com/YunoHost-Apps/ethercalc_ynh)   |
-| Framacarte | uMap | [](https://github.com/YunoHost-Apps/umap_ynh)   |
-| Framaclic | Matomo | [](https://github.com/YunoHost-Apps/matomo_ynh)   |
-| Framadate | OpenSondage | [](https://github.com/YunoHost-Apps/opensondage_ynh)   |
-| Framadrive | Nextcloud | [](https://github.com/YunoHost-apps/nextcloud_ynh)   |
-| Framadrop | Lufi | [](https://github.com/YunoHost-Apps/lufi_ynh)   |
-| Framaestro | Framaestro | [](https://github.com/YunoHost-Apps/framaestro_ynh)   |
-| Framaforms | Framaforms | [](https://github.com/YunoHost-Apps/framaforms_ynh)   |
-| Framagames | Framagames | [](https://github.com/YunoHost-Apps/framagames_ynh)   |
-| Framagenda | (Agenda Nextcloud) | c.f. Nextcloud |
-| Framagit | GitLab | [](https://github.com/YunoHost-Apps/gitlab_ynh)   |
-| | Gogs | [](https://github.com/YunoHost-Apps/gogs_ynh)   |
-| Frama.link | Lstu | [](https://github.com/YunoHost-Apps/lstu_ynh)   |
-| Framalistes | Mailman | [](https://github.com/YunoHost-Apps/mailman_ynh)   |
-| | Sympa | [](https://github.com/alexAubin/sympa_ynh)   |
-| Framanews | TinyTinyRSS | [](https://github.com/YunoHost-apps/ttrss_ynh)   |
-| Framanotes | Turtl | [](https://github.com/YunoHost-Apps/turtl_ynh)   |
-| Framapad | Etherpad + mypads | [](https://github.com/YunoHost-Apps/etherpad_mypads_ynh)   |
-| Framapiaf | Mastodon | [](https://github.com/YunoHost-Apps/mastodon_ynh)   |
-| Framapic | Lutim | [](https://github.com/YunoHost-Apps/lutim_ynh)   |
-| Framasites | Grav | [](https://github.com/YunoHost-Apps/grav_ynh)   |
-| Framaslides | Strut | [](https://github.com/YunoHost-Apps/strut_ynh)   |
-| Framasphère | Diaspora | [](https://github.com/aymhce/diaspora_ynh)   |
-| Framatalk | Jitsi Meet | [](https://github.com/YunoHost-Apps/jitsi_ynh)   |
-| Framateam | Mattermost | [](https://github.com/YunoHost-Apps/mattermost_ynh)   |
-| Framatrad | ? | Non packagé |
-| Framatube | Peertube | [](https://github.com/YunoHost-Apps/peertube_ynh)   |
-| Framavectoriel | SVG-Edit | [](https://github.com/YunoHost-Apps/svgedit_ynh)   |
-| Framavox | Loomio | Non packagé |
-| Framemo | Scrumblr | [](https://github.com/YunoHost-Apps/scrumblr_ynh)   |
-| Framindmap | Wisemapping | [](https://github.com/YunoHost-Apps/wisemapping_ynh)   |
-| Framinetest | Minetest | [](https://github.com/YunoHost-Apps/minetest_ynh)   |
-| MyFrama | Shaarli | [](https://github.com/YunoHost-Apps/shaarli_ynh)   |
-
-### Voir aussi
-
-- [Liste complète des applications packagées](/apps)
-- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)
-
diff --git a/boot_and_graphical_install.md b/boot_and_graphical_install.md
deleted file mode 100644
index de3b7dec..00000000
--- a/boot_and_graphical_install.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Graphical installation
-
-Now that your YunoHost install medium, you can start with the installation.
-
-## 1. Plug the network cable
-
-If you want the network configuration to be set up automatically, you have to plug your server with an **Ethernet** cable **right behind your main router**.
-
-The wireless connections are not supported yet, and if you use intermediate routers, the network ports opening will not be automatic: Your server will not be accessible externally.
-
-
-## 2. Boot on CD / USB stick
-
-Boot up your server with the USB stick or a CD-ROM inserted, and select it as **bootable device** by pressing one of the following keys (hardware specific):
-``````, ``````, ``````, ``````, `````` or ``````
-
-## 3. Launch graphical installation
-
-You should see a screen like this:
-
-
-
-
-* Select `Graphical install`
-
-* Select your language, your location and your keyboard layout
-
-* If a partitioning screen appears, confirm.
-
-
Caution: This will totally erase the data on your hard drive
-
-
-* Let the installer do the rest, it will download required packages and install them.
-
-
If it fails, you probably have an Internet connection issue.
-Check that your computer is physically connected and retry.
-
-* It should reboot automatically.
-
-## 4. Log in
-
-After the reboot, you should see a black screen with a few words asking you to
-log in. You can log with the following credentials :
-
-* User: **root**
-* Password: **yunohost**
-
-## 5. Proceed to post-installation
-
-Post-install documentation
-
-
diff --git a/boot_and_graphical_install_fr.md b/boot_and_graphical_install_fr.md
deleted file mode 100644
index 96f1287d..00000000
--- a/boot_and_graphical_install_fr.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Installation graphique
-
-Maintenant que vous possédez un support YunoHost, vous pouvez procéder à l’installation.
-
-## 1. Brancher le câble réseau
-
-Si vous souhaitez que la configuration réseau soit configurée automatiquement, vous devez brancher votre serveur avec un câble **Ethernet** directement **derrière votre routeur (ou box) principal**.
-
-Les connexions sans-fil ne sont pas supportées pour le moment, et si vous utilisez des routeurs intermédiaires, l’ouverture des ports réseau ne se fera pas automatiquement : votre serveur ne sera pas accessible depuis l’extérieur.
-
-## 2. Démarrer sur le CD/la clé USB
-
-Démarrez votre serveur avec la clé USB ou le CD-ROM inséré, et sélectionnez-le comme **périphérique de démarrage** en pressant l’une des touches suivantes (dépendant de votre ordinateur) :
-```<Échap>```, ``````, ``````, ``````, `````` or ``````
-
-## 3. Lancer l’installation graphique
-
-Vous devriez voir un écran comme ça :
-
-
-
-
-* Sélectionnez `Graphical install`
-
-* Sélectionnez votre langue, votre localisation et votre agencement de clavier.
-
-* Si un écran de partitionnement apparaît, confirmez simplement.
-
-
Attention : Cette opération effacera totalement les données sur votre disque dur
-
-* Laissez l’installateur faire le reste, il téléchargera les paquets requis et les installera.
-
-
Si cette opération échoue, vous avez probablement un problème de connexion à Internet.
-Vérifiez que votre serveur est bien branché et réessayez.
-
-* L’ordinateur devrait redémarrer automatiquement à la fin de l’installation.
-
-## 4. Log in
-
-Après avoir redémarré, votre machine devrait afficher un écran noir avec
-quelques mots vous invitant à vous identifier. Vous pouvez utiliser les
-identifiants suivants :
-
-* User: **root**
-* Password: **yunohost**
-
-## 5. Procéder à la post-installation
-
-Documentation de la post-installation
-
diff --git a/burn_or_copy_iso.md b/burn_or_copy_iso.md
deleted file mode 100644
index eabe16e9..00000000
--- a/burn_or_copy_iso.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Flashing the YunoHost ISO
-
-Now that you downloaded the ISO image of YunoHost, you should flash/burn it on a physical medium. Typically, this is done on a **USB stick** or an **SD card**.
-
-
-
-
-
-
-### (Recommended) With Etcher
-
-Download Etcher for your operating system and install it.
-
-
-
-Plug your USB stick, select your YunoHost ISO and click "Flash"
-
-### With UNetbootin
-
-Download UNetbootin for your operating system and install it.
-
-
-
-Put your USB stick on, select your YunoHost ISO and click "OK"
-
-
-### With `dd`
-
-If you are on GNU/Linux / macOS and know your way around command line, you may also flash your USB stick or SD card with `dd`. You can identify which device corresponds to your USB stick or SD card with `fdisk -l` or `lsblk`. A typical SD card name is something like `/dev/mmcblk0`. BE CAREFUL and make sure you got the right name.
-
-Then run :
-
-```bash
-# Replace /dev/mmcblk0 if the name of your device is different...
-dd if=/path/to/yunohost.img of=/dev/mmcblk0
-```
-
-### Burning a CD/DVD
-
-For older devices, you might want to burn a CD/DVD. The software to use depends on your operating system.
-
-* On Windows, use [ImgBurn](http://www.imgburn.com/) to write the image file on the disc
-
-* On macOS, use [Disk Utility](http://support.apple.com/kb/ph7025)
-
-* On GNU/Linux, you have plenty of choices, like [Brasero](https://wiki.gnome.org/Apps/Brasero) or [K3b](http://www.k3b.org/)
diff --git a/burn_or_copy_iso_fr.md b/burn_or_copy_iso_fr.md
deleted file mode 100644
index ecc60dff..00000000
--- a/burn_or_copy_iso_fr.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Flasher l’ISO YunoHost
-
-Maintenant que vous avez téléchargé l’image ISO de YunoHost, vous devez la mettre sur un support physique. Classiquement, il s'agit d'une **Clé USB** ou d'une **Carte SD**.
-
-
-
-
-
-
----
-
-### (Recommandé) Avec Etcher
-
-Téléchargez Etcher pour votre système d'exploitation et installez-le.
-
-
-
-Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'Flash'
-
-### Avec UNetbootin
-
-Téléchargez UNetbootin pour votre système d'exploitation et installez-le.
-
-
-
-Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'OK'
-
-### Avec `dd`
-
-Si vous êtes familier avec la ligne de commande, il est possible de flasher la clef USB ou carte SD avec `dd`. Vous pouvez identifier le nom du périphérique avec `fdisk -l` ou `lsblk`. Une carte SD s'apelle typiquement `/dev/mmcblk0`. ATTENTION à faire attention de prendre le bon nom !
-
-```bash
-# Remplacer /dev/mmcblk0 par le nom de votre périphérique
-dd if=/chemin/de/yunohost.iso of=/dev/mmcblk0
-```
-
-### CD/DVD
-
-Pour les anciens matériels, il vous faut peut-être utiliser un CD/DVD. Le logiciel à utiliser est différent suivant votre système d’exploitation.
-
-* Sur Windows, utilisez [ImgBurn](http://www.imgburn.com/) pour écrire l’image sur le disque
-
-* Sur macOS, utilisez [Disk Utility](http://support.apple.com/kb/ph7025)
-
-* Sur GNU/Linux, vous avez plusieurs choix, tels que [Brasero](https://wiki.gnome.org/Apps/Brasero) ou [K3b](http://www.k3b.org/)
diff --git a/commandline.md b/commandline.md
deleted file mode 100644
index 47bbb507..00000000
--- a/commandline.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Administrate YunoHost in command line
-
-The command line interface (CLI) is, in the computer world, the original (and more technical) way of interacting with a computer compared to graphical interface. Command line interfaces are generally said to be more complete, powerful or efficient than a graphical interface, though it is more difficult to learn.
-
-In the context of YunoHost, or system administration in general, the CLI is commonly used to remotely control machines after connecting through [connecting to it via SSH](/ssh).
-
-
-Providing a full tutorial about the command line is quite beyond the scope of the YunoHost documentation : for this, consider reading a dedicated tutorial such as [this one](https://ryanstutorials.net/linuxtutorial/) or [this one](http://linuxcommand.org/). But be reassured that you don't need to be a CLI expert to start using it !
-
-
-The `yunohost` command can be used to administrate your server and perform the various actions similarly to what you do on the webadmin. The command must be launched either from the `root` user or from the `admin` user by preceeding them with `sudo`. (ProTip™ : you can become `root` with the command `sudo su` as `admin`).
-
-YunoHost commands usually have this kind of structure :
-
-```bash
-yunohost app install wordpress --label Webmail
- ^ ^ ^ ^
- | | | |
- category action argument options
-```
-
-Don't hesitate to browse and ask for more information about a given category or action using the the `--help` option. For instance, those commands :
-
-```bash
-yunohost --help
-yunohost user --help
-yunohost user create --help
-```
-
-will successively list all the categories available, then the actions available in the `user` category, then the usage of the action `user create`. You might notice that the YunoHost command tree is built with a structure similar to the YunoHost admin pages.
diff --git a/commandline_es.md b/commandline_es.md
deleted file mode 100644
index eb240053..00000000
--- a/commandline_es.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Administrar YunoHost con la interfaz de línea de comandos
-
-La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla.
-
-En el contexto de YunoHost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh).
-
-
-Proveer un tutorial completo sobre la línea de comandos saldría del marco de la documentación de YunoHost : por eso, refiérete a totorales como [éste](https://www.fing.edu.uy/inco/cursos/sistoper/recursosLaboratorio/tutorial0.pdf) o [éste (en)](http://linuxcommand.org/). Pero no te preocupes : no hace falta ser un experto para comenzar a utilizarla !
-
-
-El comando `yunohost` puede ser utilizado para administrar tu servidor o realizar las mismas acciones que en la interfaz gráfica webadmin. Hay que iniciarla como usuario `root`, o como el usuario `admin` poniendo `sudo` antes del comando. (ProTip™ : puedes convertirte en usuario `root` vía el comando `sudo su` cuando eres `admin`.)
-
-Los comandos YunoHost tienen este tipo de estructura :
-
-```bash
-yunohost app install wordpress --label Webmail
- ^ ^ ^ ^
- | | | |
- categoría acción argumento opción
-```
-
-No dudes en navegar ni en pedir información a propósito de una categoría o acción utilizando la opción `--help`. Por ejemplo, estos comandos :
-
-```bash
-yunohost --help
-yunohost user --help
-yunohost user create --help
-```
-
-de manera sucesiva van a enumerar todas las categorías disponibles, luego las acciones de la categoría `user`, y luego explicar cómo utilizar la acción `user create`. Deberías notar que el árbol de los comandos YunoHost tiene la misma estructura que las páginas del webadmin.
\ No newline at end of file
diff --git a/commandline_fr.md b/commandline_fr.md
deleted file mode 100644
index 003d524f..00000000
--- a/commandline_fr.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Administrer YunoHost en ligne de commande
-
-L'interface en ligne de commande (CLI) est, en informatique, la manière originale (et plus technique) d'interagir avec un ordinateur comparé aux interfaces graphiques. La ligne de commande est généralement considéré comme plus complète, puissante et efficace que les interfaces graphiques, bien que plus difficile à apprendre.
-
-Dans le contexte de YunoHost, ou de l'administration système en général, la ligne de commande est communément utilisée après s'être [connecté en SSH](/ssh).
-
-
-Fournir un tutorial complet sur la ligne de commande est bien au dela du cadre de la documentation de YunoHost : pour cela, référez-vous à des tutoriaux comme [celui-ci](https://doc.ubuntu-fr.org/tutoriel/console_ligne_de_commande) ou [celui-ci (en)](http://linuxcommand.org/). Mais soyez rassuré qu'il n'y a pas besoin d'être un expert pour commencer à l'utiliser !
-
-YunoHost depends exclusively on the participation of people like you.
-
-
----
-
-
-
- Spread the word
-
-
-Talk about software freedom, [self-hosting](/selfhosting) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3
-
-
-
----
-
-
-
- Testing
-
-
-We need people able to test YunoHost deeply. If you find a bug, try to identify it, and report it on our bug tracker.
-
-
-
----
-
-
-
- Helping users
-
-
-Our support relies on contributors like you. Just come to [the support chatroom](/help) and help new users getting started, or pick a question on the Forum.
-
-
-
----
-
-
-
- Coding
-
-
-You can involve in the YunoHost's development regardless of your skill.
-Sysadmins, web developers, designers and pythonists are welcome!
-
-Learn [how to contribute](/dev), and join us on the [development chat room](xmpp:dev@conference.yunohost.org?join).
-
-
-
----
-
-
-
- Localization
-
-
-Get involved by making YunoHost interfaces available in your language.
-Get started!
-
-
-
----
-
-
-
- Write
-
-
-Improve this documentation by [writing new pages](/write_documentation) or translating existing ones to your language.
-
-
-
-
-
-
-
- Packaging
-
-
-Extend YunoHost capabilities by [packaging new services and web applications](/packaging_apps).
-Have a look of [what has been done yet](/apps)!
-
-
-
----
-
-
-
In any case, please come chat with us on [the dev chatroom](/chat_rooms) :-)
-إنّ مصير واي يونوهوست YunoHost يُقرّره أناس و أنتم مِن بين هؤلاء
-
-
----
-
-
-
- تحدثوا عن المشروع مِن حولكم
-
-
-تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3>
-
-
----
-
-
-
- جَرّبُوا
-
-
-نحن بحاجة إلى تجريب حثيث لواي يونوهوست YunoHost. فإن صادفتم مشكلة، يرجى القيام بتحديد الخلل و ثم الإبلاغ عنه عبر
-مُتعقب الأخطاء.
-
-
-
----
-
-
-
- ساعدوا المستخدمِين
-
-
-Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du Forum. Vous pouvez aussi organiser des ateliers de formation.
-
-
-
----
-
-
-
- أكتبوا الشفرة
-
-
-Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes sont les bienvenus.
-Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) !
-
-
-
----
-
-
-
- ترجِموا
-
-
-ساهموا في توفير واجهات واي يونوهوست YunoHost بلغتكم. إبدأوا الآن !
-
-
-
----
-
-
-
- أكتبوا
-
-
-ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation) أو بترجمة صفحاته إلى لغتكم.
-
-
-
----
-
-
-
- ساهموا في التحزيم
-
-
-Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
-
-Un [salon de développement](xmpp:dev@conference.yunohost.org?join) est également disponible.
-
-
-
----
-
-
-
-
على أي حال تعالوا و انضموا إلى [غرفة المحادثة الخاصة بالمطوّرين](xmpp:dev@conference.yunohost.org?join) إن كنتم ترغبون في المساهمة :-)
-YunoHost dépend entièrement de la participation de gens comme vous.
-
-
----
-
-
-
- Passez le mot
-
-
-Parlez de logiciel libre, d’[auto-hébergement](/selfhosting), de YunoHost à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3
-
-
-
----
-
-
-
- Testez
-
-
-Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essayez de l’identifier, puis reportez-le sur notre bug tracker.
-
-
-
----
-
-
-
- Aidez les utilisateurs
-
-
-Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du Forum. Vous pouvez aussi organiser des ateliers de formation.
-
-
-
----
-
-
-
- Codez
-
-
-Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes sont les bienvenus.
-Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) !
-
-
-
----
-
-
-
- Traduisez
-
-
-Participez en rendant les interfaces de YunoHost disponibles dans votre langue. Lancez-vous !
-
-
-
----
-
-
-
- Écrivez
-
-
-Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation) ou en traduisant les existantes dans votre langue.
-
-
-
----
-
-
-
- Packagez
-
-
-Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
-
-
-
----
-
-
-
-
Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)
-
diff --git a/contributordoc.md b/contributordoc.md
deleted file mode 100644
index 1f76aa15..00000000
--- a/contributordoc.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Contributor documentation
-
-* [General ways of contributing to YunoHost](/contribute)
-* [Chat rooms](/chat_rooms)
-* [Writing documentation](/write_documentation)
- * [Documentation writing guide](/doc_writing_guide)
- * [Markdown guide](/doc_markdown_guide)
- * [Power your code using Git & GitHub](/doc_use_git)
-* Application packaging
- * [Apps wishlist](/apps_wishlist)
- * [General introduction to app packaging](/packaging_apps_start)
- * [Technical introduction to app packaging](/packaging_apps)
- * [How to use Git to package apps](/packaging_apps_git)
- * [Setting up a dev environment with VirtualBox](/packaging_apps_virtualbox)
- * [Manifest](/packaging_apps_manifest)
- * [Scripts](/packaging_apps_scripts)
- * [Arguments management](/packaging_apps_arguments_management)
- * [Arguments format](/packaging_apps_arguments_format)
- * [NGINX configuration](/packaging_apps_nginx_conf)
- * [User groups and permissions](/groups_and_permissions)
- * [Multi-instance](/packaging_apps_multiinstance)
- * [Helpers](/packaging_apps_helpers)
- * [Trap usage](/packaging_apps_trap)
- * [App permissions](/packaging_apps_permissions)
- * [Adding your app to the apps list](https://github.com/YunoHost/Apps/#contributing)
- * [Advanced packaging features](/packaging_apps_advanced)
- * [Application actions](/packaging_apps_actions)
- * [Application configuration panel](/packaging_apps_config_panel)
- * Quality tests
- * [Package linter](https://github.com/YunoHost/package_linter)
- * [Package check](https://github.com/YunoHost/package_check)
- * [Applications levels](/packaging_apps_levels)
- * [App Continuous Integration](https://ci-apps.yunohost.org)
- * [App CI dashboard](https://dash.yunohost.org/appci/branch/stable)
- * [App Continuous Integration for packagers](/packaging_apps_ci)
- * [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines)
-* [Contributing to the YunoHost core](/dev)
- * [Setting up a dev environment with ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
- * [Deb build chain](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
- * Image building
- * [x86 ISO](https://github.com/YunoHost/cd_build)
- * [Raspberry Pi images](https://github.com/YunoHost/rpi-image)
- * [Other ARM board images](https://github.com/YunoHost/arm-images)
-* [Using the YunoHost API outside of the webadmin](/admin_api)
-* [A discussion about shell variable scope](/shell_variables_scope)
diff --git a/contributordoc_fr.md b/contributordoc_fr.md
deleted file mode 100644
index 7fb2222f..00000000
--- a/contributordoc_fr.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Guide du contributeur
-
-* [Liste des façons de contribuer à YunoHost](/contribute)
-* [Salons de discussion](/chat_rooms)
-* [Écrire de la documentation](/write_documentation)
- * [Guide de rédaction de la documentation](/doc_writing_guide)
- * [Guide Markdown](/doc_markdown_guide)
- * [Propulser son code avec Git & GitHub](/doc_use_git)
- * [Trame pour la rédaction des pages de documentations](/app_writing_guide)
-* Packaging d'application
- * [Liste d'applications souhaitées par la communauté (en)](/apps_wishlist)
- * [Introduction générale au packaging d'apps](/packaging_apps_start)
- * [Introduction technique au packaging d'apps](/packaging_apps)
- * [Comment utiliser Git pour packager les applications](/packaging_apps_git)
- * [Déployer un environnement de développement avec VirtualBox](/packaging_apps_virtualbox)
- * [Manifest](/packaging_apps_manifest)
- * [Scripts](/packaging_apps_scripts)
- * [Gestion des arguments](/packaging_apps_arguments_management)
- * [Format des arguments (en)](/packaging_apps_arguments_format)
- * [Configuration NGINX](/packaging_apps_nginx_conf)
- * [Groupes et permissions](/groups_and_permissions)
- * [Multi-instance](/packaging_apps_multiinstance)
- * [Fonctions utiles (en)](/packaging_apps_helpers)
- * [Utilisation de 'trap'](/packaging_apps_trap)
- * [App permissions (en)](/packaging_apps_permissions)
- * [Ajouter son application à la liste des apps (en)](https://github.com/YunoHost/Apps/#contributing)
- * [Feature de packaging avancées (en)](/packaging_apps_advanced)
- * [Actions pour une application (en)](/packaging_apps_actions)
- * [Panneau de configuration pour une application (en)](/packaging_apps_config_panel)
- * Tests de qualité
- * [Package linter (en)](https://github.com/YunoHost/package_linter)
- * [Package check (en)](https://github.com/YunoHost/package_check)
- * [Niveaux des applications](/packaging_apps_levels)
- * [Intégration continue des apps (en)](https://ci-apps.yunohost.org)
- * [Tableau de bord du CI des apps (en)](https://dash.yunohost.org/appci/branch/stable)
- * [Intégration continue pour packagers (en)](/packaging_apps_ci)
- * [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines)
-* [Contribuer à la partie "core" de YunoHost](/dev)
- * [Déployer un environnement de dev avec ynh-dev (en)](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
- * [Construction des paquets Debian (en)](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
- * [Feuilles de route du projet (en)](https://github.com/YunoHost/issues/milestones?direction=asc&sort=title&state=open)
- * Construction des images
- * [x86 ISO (en)](https://github.com/YunoHost/cd_build)
- * [Images Raspberry Pi (en)](https://github.com/YunoHost/rpi-image)
- * [Autres images pour cartes ARM (en)](https://github.com/YunoHost/arm-images)
-* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api)
-* [Une discussion sur la portée des variables en bash](/shell_variables_scope)
diff --git a/diagnostic.md b/diagnostic.md
deleted file mode 100644
index c4d74bd9..00000000
--- a/diagnostic.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Diagnose YunoHost functioning
-
-To diagnose that all critical aspects of your server are properly configured,
-you should run a diagnosis from the webadmin in the "Diagnosis" section. (This
-feature was added in YunoHost 3.8).
-
-TODO: elaborate on the fact that the diagnosis runs periodically, sends an email
-to root which is forwarded to the very first user created, and that issues
-should either be fixed or ignored (if they are understood/not relevant)
-otherwise an email will be sent twice a day..
diff --git a/diagnostic_fr.md b/diagnostic_fr.md
deleted file mode 100644
index 9e47e78f..00000000
--- a/diagnostic_fr.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Diagnostic du bon fonctionnement de YunoHost
-
-Pour vérifier que tous les aspects critiques de votre serveur sont correctement
-configurés, il est recommandé d'utiliser le système de diagnostic disponible
-dans la webadmin de YunoHost. (Cette fonctionnalité a été ajoutée dans la version
-3.8)
-
-Quelques points à retenir:
-* Le diagnostique tourne périodiquement
-* Un email est envoyé à root, qui est normalement forwardé vers le premier utilisateur créé
-* Les problèmes trouvés doivent soient être réglé, soit ignorés (si ils sont
-compris ou ne sont pas pertinents) autrement un mail est envoyé deux fois par
-jour.
diff --git a/docker.md b/docker.md
deleted file mode 100644
index bbf8122b..00000000
--- a/docker.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Docker and YunoHost
-
-
-
-YunoHost doesn’t support Docker officially since issues with versions 2.4+.
-In question, YunoHost 2.4+ doesn’t work anymore on Docker
-because YunoHost requires systemd and Docker has chosen to not support it natively (and
-there are other problems link to the firewall and services).
-
-
-
-## Community images
-
-However, community images exist and are available on Docker Hub:
-
- * AMD64 (classic)
- * https://hub.docker.com/r/domainelibre/yunohost/ (YunoHost v4+)
- * I386 (old computers)
- * https://hub.docker.com/r/domainelibre/yunohost-i386/ (YunoHost v4+)
- * ARMV7 (Raspberry Pi 2/3 ...)
- * https://hub.docker.com/r/domainelibre/yunohost-arm/ (YunoHost v4+)
- * ARMV6 (Raspberry Pi 1)
- * https://hub.docker.com/r/tuxalex/yunohost-armv6/ (old yunoHost version)
diff --git a/docker_fr.md b/docker_fr.md
deleted file mode 100644
index 548b4819..00000000
--- a/docker_fr.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Docker et YunoHost
-
-
-
-YunoHost ne supporte plus officiellement Docker depuis les problèmes rencontrés avec la version 2.4+.
-En cause, YunoHost dépend désormait de systemd et docker a décidé qu’ils ne le
-supporteraient pas nativement (et il y a d'autres problèmes liés au firewall et aux
-services).
-
-
-
-## Images communautaires
-
-Cependant il existe des images communautaires disponibles sur Docker Hub :
-
- * AMD64 (classique)
- * https://hub.docker.com/r/domainelibre/yunohost/ (YunoHost v4+)
- * I386 (anciens pc)
- * https://hub.docker.com/r/domainelibre/yunohost-i386/ (YunoHost v4+)
- * ARMV7 (Raspberry Pi 2/3 ...)
- * https://hub.docker.com/r/domainelibre/yunohost-arm/ (YunoHost v4+)
- * ARMV6 (Raspberry Pi 1)
- * https://hub.docker.com/r/tuxalex/yunohost-armv6/ (ancienne version de YunoHost)
diff --git a/docs.md b/docs.md
deleted file mode 100644
index 9dd3f53e..00000000
--- a/docs.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Documentation
-
-
-YunoHost's documentation has 2 different sections:
-
Contiene tutto quello che devi sapere su di noi e su come lavoriamo
-
-
-
-
-* Vita del progetto :
- * [Frequently asked questions](/faq)
- * [Project organization](/project_organization)
- * [Blog](https://forum.yunohost.org/c/announcement)
- * [Forum](https://forum.yunohost.org)
- * [Chat rooms](/chat_rooms)
- * [Communication](/communication)
- * [Supporto / Aiuto](/help)
-
-* Usa l'esempio :
- * [YunoHost per le organizzazioni senza scopo di lucro](/use_case_non-profit_organisations)
diff --git a/finding_the_local_ip.md b/finding_the_local_ip.md
deleted file mode 100644
index 0d0050e9..00000000
--- a/finding_the_local_ip.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Finding your server's local IP
-
-On an installation at home, your server should typically be accessible using the `yunohost.local` domain. If for any reason this does not work, you may need to find the *local* IP of your server.
-
-The local IP is the address used to refer to your server inside the local network (typically your home) where multiple devices are connected to a router (your internet box). The local IP typically looks like `192.168.x.y` (or sometimes `10.0.x.y`)
-
-Any of these tricks should allow you to find the local IP of your server:
-
-- Connect to your internet box / router interface to list the machines connected, or check the logs;
-- If you're using Linux, you can open a terminal and use `sudo arp-scan --local` to list the IP on your local network (this may also work in Windows);
- - If the `arp-scan` command displays a confusing number of devices, you can check which ones are open to SSH with `nmap -p 22 192.168.1.0/24` to sort them out (adapt the IP range to your local network)
-- Plug a screen on your server, log in and type `hostname --all-ip-address`.
-
-If you are unable to find your server using any of the previous tricks, maybe your server did not boot correctly:
-
-- Make sure that your server is properly plugged in;
-- If you're using an SD card, make sure the connector is not too dusty;
-- Plug a screen on your server and try to reboot to check that it's properly booting;
-- Make sure that your ethernet cable is working and properly plugged in;
diff --git a/finding_the_local_ip_fr.md b/finding_the_local_ip_fr.md
deleted file mode 100644
index 5ccf0269..00000000
--- a/finding_the_local_ip_fr.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Trouver l'IP locale de son serveur
-
-Dans le cas d'une installation à la maison, votre serveur devrait typiquement être accessible (depuis son réseau local) avec le domaine `yunohost.local`. Si pour une raison cela ne fonctionne pas, il vous faut peut-être trouver l'IP locale de votre serveur.
-
-L'IP locale d'une machine est utilisée pour y faire référence à l'intérieur d'un réseau local (typiquement le réseau dans une maison) où plusieurs appareils se connectent à un même routeur (votre box internet). Une adresse IP locale ressemble généralement à `192.168.x.y` (ou parfois `10.0.x.y`)
-
-L'une de ces astuces devrait permettre de trouver l'IP locale de votre serveur :
-
-- Utilisez l'interface de votre box internet pour lister les machines connectées, ou regarder les logs ;
-- Si vous êtes sous Linux, ouvrez un terminal et tapez `sudo arp-scan --local` pour lister les IP des machines sur le réseau local (ceci fonctionne aussi peut-être sous Windows) ;
- - Si la commande `arp-scan` vous affiche beaucoup de machines, vous pouvez vérifier lesquelles sont ouvertes au SSH avec `nmap -p 22 192.168.1.0/24` pour faire du tri (adaptez la plage IP selon votre réseau local)
-- Branchez un écran sur votre serveur, loggez-vous et tapez `hostname --all-ip-address`.
-
-Si vous n'êtes pas capable de trouver votre serveur avec les méthodes précédentes, alors peut-être que votre serveur n'a pas démarré correctement
-
-- Assurez-vous que le serveur est correctement branché ;
-- Si votre serveur a une carte SD, essayez de vous assurer que la connectique n'est pas trop poussièreuse ;
-- Branchez un écran sur le serveur et essayez de le redémarrer pour valider que le serveur démarre bien ;
-- Assurez-vous que le cable ethernet est fonctionnel et correctement branché ;
diff --git a/hardware.md b/hardware.md
deleted file mode 100644
index 017d16ee..00000000
--- a/hardware.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Hardware
-
-YunoHost can be installed on the following hardware:
-- ARM boards (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.);
-- 'Old' desktop computers or laptops;
-- Remote servers, a.k.a Virtual Private Servers (VPS).
-
-Corresponding installation guides can be found on [this page](/install).
-
-### Minimum requirements
-
-* 500 MHz CPU
-* 512 MB RAM (recommended : 1 GB in order to run all the services and apps properly)
-* 8 GB storage capacity (recommended : 32 GB to store mails and documents)
diff --git a/hardware_de.md b/hardware_de.md
deleted file mode 100644
index 198f0ee6..00000000
--- a/hardware_de.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# 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_es.md b/hardware_es.md
deleted file mode 100644
index 10b21f70..00000000
--- a/hardware_es.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Hardware
-
-YunoHost puede ser instalado en este hardware :
-- Tarjetas ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.) ;
-- 'Viejos' ordenadores de escritorio ou portátiles ;
-- Servidores remotos, también llamado Virtual Private Servers (VPS).
-
-Los guías de instalación se encuentran en [esta página](/install).
-
-### Configuración minimal
-
-* Procesador 500 MHz
-* 512 Mo de RAM (recomendado : 1Go para que los servicios y las aplicaciones funcionen correctamente
-* 8 Go de espacio de almacenamiento (recomendado : 32 Go para poder almacenar emails y documentos)
diff --git a/hardware_fr.md b/hardware_fr.md
deleted file mode 100644
index 9301fd69..00000000
--- a/hardware_fr.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Matériel
-
-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).
-
-Les guides d'installations peuvent être trouvés sur [cette page](/install).
-
-### Configuration minimale
-
-* Processeur 500 MHz
-* 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/help.md b/help.md
deleted file mode 100644
index 9e1f0be5..00000000
--- a/help.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# Looking for help?
-
-
Connect to the support chatroom
-
-
-ProTips™
-
-
Don't ask to ask, just ask !
-
Be patient, it can take a few minutes before someone sees your messages.
-
-
-
-
-
-
-
-Note : this room is available via IRC (#yunohost on freenode - using kiwiirc), via XMPP (support@conference.yunohost.org), or Matrix (#freenode_#yunohost:matrix.org - using Riot)
-
-
-
... or ask on the forum !
-
-
-
-
-
-
You've found a bug ?
-
-
-
-Please report it on our bugtracker or contact the developers
-
-
-
-
-Note : you can also connect to the devrooms, using your favorite XMPP client, to
-dev@conference.yunohost.org and apps@conference.yunohost.org
-or with a Matrix client to
-#freenode_#yunohost-dev:matrix.org
-
Pas besoin de demander si vous pouvez poser une question - posez-la directement !
-
Soyez patient, cela peut prendre plusieurs minutes avant que quelqu'un remarque vos messages.
-
-
-
-
-
-
-
-Note : ce salon est accessible via IRC (#yunohost sur freenode en utilisant Kiwiirc), via XMPP (support@conference.yunohost.org), ou Matrix (#freenode_#yunohost:matrix.org - en utilisant Element).
-
-
-
... ou demandez sur le forum !
-
-
-
-
-
-
Vous avez trouvé un bug ?
-
-
-
-Vous pouvez rapporter le bug sur le bugtracker ou contacter les développeurs
-
-
-
-
-Note : vous pouvez aussi vous connecter aux salons de dev, via votre client XMPP favori, à
-dev@conference.yunohost.org et apps@conference.yunohost.org
-ou bien via votre client matrix préféré, à
-#freenode_#yunohost-dev:matrix.org
-
-
-
-
diff --git a/images/angryip.png b/images/angryip.png
new file mode 100644
index 00000000..129dc680
Binary files /dev/null and b/images/angryip.png differ
diff --git a/images/dekko_config_1.png b/images/dekko_config_1.png
old mode 100755
new mode 100644
diff --git a/images/dekko_config_2.png b/images/dekko_config_2.png
old mode 100755
new mode 100644
diff --git a/images/dekko_config_3.png b/images/dekko_config_3.png
old mode 100755
new mode 100644
diff --git a/images/dekko_config_4.png b/images/dekko_config_4.png
old mode 100755
new mode 100644
diff --git a/images/diagnostic.png b/images/diagnostic.png
new file mode 100644
index 00000000..b24b65a1
Binary files /dev/null and b/images/diagnostic.png differ
diff --git a/images/github_fork_button.png b/images/github_fork_button.png
new file mode 100644
index 00000000..faf800ff
Binary files /dev/null and b/images/github_fork_button.png differ
diff --git a/images/github_fork_title.png b/images/github_fork_title.png
new file mode 100644
index 00000000..e95d56a7
Binary files /dev/null and b/images/github_fork_title.png differ
diff --git a/images/images_check.sh b/images/images_check.sh
old mode 100755
new mode 100644
diff --git a/images/internetcube.png b/images/internetcube.png
new file mode 100644
index 00000000..af590f1c
Binary files /dev/null and b/images/internetcube.png differ
diff --git a/images/odroidhc4.png b/images/odroidhc4.png
new file mode 100644
index 00000000..c7f0b1c0
Binary files /dev/null and b/images/odroidhc4.png differ
diff --git a/orga/organization_schema.png b/images/organization_schema.png
similarity index 100%
rename from orga/organization_schema.png
rename to images/organization_schema.png
diff --git a/images/rpi0.jpg b/images/rpi0.jpg
new file mode 100644
index 00000000..75ff577b
Binary files /dev/null and b/images/rpi0.jpg differ
diff --git a/images/rpi1.jpg b/images/rpi1.jpg
new file mode 100644
index 00000000..bcb6fc62
Binary files /dev/null and b/images/rpi1.jpg differ
diff --git a/images/sdcard_with_adapter.png b/images/sdcard_with_adapter.png
new file mode 100644
index 00000000..21a1b5d0
Binary files /dev/null and b/images/sdcard_with_adapter.png differ
diff --git a/images/slingcode_logo.svg b/images/slingcode_logo.svg
old mode 100755
new mode 100644
diff --git a/images/tada.png b/images/tada.png
new file mode 100644
index 00000000..863661cd
Binary files /dev/null and b/images/tada.png differ
diff --git a/images/usbimager.png b/images/usbimager.png
new file mode 100644
index 00000000..474f20a5
Binary files /dev/null and b/images/usbimager.png differ
diff --git a/images/vps_ynh_arn.png b/images/vps_ynh_arn.png
new file mode 100644
index 00000000..fd6cc5a4
Binary files /dev/null and b/images/vps_ynh_arn.png differ
diff --git a/install.md b/install.md
deleted file mode 100644
index 39ec8e87..00000000
--- a/install.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# Installation guide
-
-There are multiple ways to install YunoHost. The process may differ slightly depending on whether it takes place at home or on a remote server, and depending on the hardware used: **[See the requirements](/hardware)**
-
-This page lists a few installation guides.
-
----
-
-
- Local associative ISP near you might be able to provide you with a *Virtual Private Server* (VPS), managed by human beings who respect users and care about [Net Neutrality](https://en.wikipedia.org/wiki/Net_neutrality) ! Check out [this page](https://db.ffdn.org/) for more information.
-
-يمكن تنصيب واي يونوهوست بِعدّة طُرُق و أساليب. فطريقة التنصيب تختلف قليلاً فقط إذا ما كُنتم تودون تثّبيتَهُ مَحلّياً في المنزل أو عَنْ بُعد و كذا نوع الجهاز : **[إطّلعوا على الأجهزة المتوافقة](/hardware)**
-
-
-تقوم هذه الصفحة بإحصاء الطرق المختلفة للتنصيب مُرتبةً حسب المواضيع.
-
diff --git a/install_es.md b/install_es.md
deleted file mode 100644
index a6b597e8..00000000
--- a/install_es.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# Guía de instalación
-
-Existen varias maneras de instalar YunoHost. El método y el hardware difieren un poco si quieres instalarlo en tu casa o en acceso remoto : **[ver el hardware compatible](/hardware)**
-
-Esta página enumera varios tipos de instalaciones, clasificados por categorías.
-
----
-
-
- Proveedores de Internet asociativos cerna de ti pueden proponerte un *Servidor Virtual Privado* (VPS), administrado por humanos que respetan los usuarios y la [Neutralitad de Internet](https://es.wikipedia.org/wiki/Neutralidad_de_red) ! Ver [esta página](https://db.ffdn.org/) por mas informaciones.
-
diff --git a/install_fr.md b/install_fr.md
deleted file mode 100644
index f1e4b827..00000000
--- a/install_fr.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# Guide d’installation
-
-Il existe plusieurs manières d’installer YunoHost. La méthode d’installation diffère légèrement si vous souhaitez l’installer chez vous ou à distance, et du matériel utilisé : **[voir le matériel compatible](/hardware)**
-
-Cette page liste plusieurs types d’installations, classés par catégories.
-
----
-
-
- Des FAI associatifs près de chez vous sont peut-être capable de vous fournir un *Serveur Privé Virtuel* (VPS), géré par des humains qui respectent les utilisateurs et la [Neutralité du Net](https://fr.wikipedia.org/wiki/Neutralit%C3%A9_du_r%C3%A9seau) ! Voir [cette page](https://db.ffdn.org/) pour plus d'informations.
-
diff --git a/install_iso.md b/install_iso.md
deleted file mode 100644
index 43575844..00000000
--- a/install_iso.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Install on a regular computer
-
-*Find other ways to install YunoHost **[here](/install)**.*
-
-### Requirements
-
-
-
-
-
-* A x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop.
-You can use any computer with **256MB RAM or more**.
-* Another computer to read this guide and access to your server.
-* A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth
-* A **USB stick** of at least 1GB capacity **OR** a standard **blank CD**
-* ***Particular case*** : If your server has no graphic card, [prepare iso for booting with serial port](https://github.com/luffah/debian-mkserialiso).
-
----
-
-## Installation steps
-
-
-0. Download the YunoHost ISO image
-
-1. Burn the ISO image on a USB stick
-
-2. Boot the machine and run the installation
-
-3. Proceed with the initial configuration (post-installation)
-
----
-
-To connect directly to your computer or with [SSH](/ssh) (only on local network:
-* User: **root**
-* Password: **yunohost**
-
diff --git a/install_iso_de.md b/install_iso_de.md
deleted file mode 100644
index f25dc7d6..00000000
--- a/install_iso_de.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Instalation auf einem normalen Computer
-
-*Um andere Wege zu finden, YunoHost zu instalieren, klicke **[hier](/install)**.*
-
-### Anforderungen
-
-
-
-
-
-* Einen x86-kompatibele Hardware für YunoHost: Laptop, Netbook oder Desktop.
-Du kannst jeden Computer nutzen der **256MB RAM oder mehr** hat.
-* Einen anderen Computer, um diesen Guide zu lesen und der auf deinen Server zugreift.
-* Einen [angemessenen Internet-Provider](/isp), am besten mit guter und unlimitierter Bandweite.
-* Einen **USB Stick** mit mindestens 1GB Speicher **ODER** eine normale **Blanko-CD**
-* ***Sonderfall*** : Wenn dein Server keine Grafikkarte hat, bereite die ISO für einen Start mit Seriellem Port vor (https://github.com/luffah/debian-mkserialiso).
-
----
-
-## Instalationsschritte
-
-
-0. Lade die YunoHost ISO Imagedatei herunter image
-
-1. Brenne die Iso-Datei auf einen USB-Stick oder eine CD
-
-2. Starte die Maschine und führe die Instalation aus
-
-3. Fahre fort mit der Erstkonfiguration (Nachinstalation)
-
----
-
-Um dich direkt mit dem Computer oder mit [SSH](/ssh) (only on local network) zu verbinden:
-* Benutzername: **root**
-* Passwort: **yunohost**
diff --git a/install_iso_es.md b/install_iso_es.md
deleted file mode 100644
index fe9f9896..00000000
--- a/install_iso_es.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Instalación en un ordenador
-
-*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.*
-
-## Prerrequisitos
-
-
-
-
-
-* Un ordenador compatible x86 dedicado a YunoHost : portátil, netbook, ordenador de escritorio. Puedes reutilizar calquiera máquina con **256 Mo de RAM mínimo**
-* Otro ordenador para examinar esta guía y acceder a tu servidor
-* Un [proveedor de Internet ético](/isp), de preferencia con acceso de buena velocidad (ascendente)
-* Una **memoria USB** con capacidad mínima de 1Go **O** un **CD en blanco** estándar
-* ***Casos particulares*** : si tu servidor no tiene tarjeta gráfica, hay que preparar un ISO que se inicie sobre el puerto de serie](https://github.com/luffah/debian-mkserialiso).
-
----
-
-## Etapas de instalación
-
-0. Descargar la imagen ISO
-
-1. Copiar la imagen ISO
-
-2. Encender e instalar
-
-3. Post-instalación
-
----
-
-Para conectarse directamente al ordenador (únicamente en local) :
-* Usuario : **root**
-* Contraseña : **yunohost**
-
-
-## Casos específicos / avanzados
-
-si el ordenador no tiene tarjeta gráfica pero sí tiene un puerto de serie : hay que modificar el ISO para un inicio con la consola de serie. Una solución es utilizar [un script que modifica las opciones de inicio](https://github.com/luffah/debian-mkserialiso).
diff --git a/install_iso_fr.md b/install_iso_fr.md
deleted file mode 100644
index 9b119b6e..00000000
--- a/install_iso_fr.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Installation sur ordinateur
-
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
-
-## Prérequis
-
-
-
-
-
-* Un matériel compatible x86 dédié à YunoHost : portable, netbook, ordinateur. Vous pouvez réutiliser n’importe quelle machine avec **256 Mo de RAM minimum**
-* Un autre ordinateur pour parcourir ce guide et accéder à votre serveur
-* Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse de téléversement (débit montant)
-* Une **clé USB** d’une capacité minimum d’1 Go **OU** un **CD vierge** standard
-* ***Cas particulier*** : Si votre serveur n'a pas de carte graphique, il faut [préparer un ISO qui démarre sur le port série](https://github.com/luffah/debian-mkserialiso).
-
----
-
-## Étapes d’installation
-
-0. Télécharger l'image ISO de YunoHost
-
-1. Flasher l’image ISO sur une clef USB
-
-2. Démarrer la machine et installer YunoHost
-
-3. Effectuer la configuration initiale (post-installation)
-
----
-
-Pour se connecter directement sur l’ordinateur (uniquement en local) :
-* Utilisateur : **root**
-* Mot de passe : **yunohost**
-
-
-## Cas spécifiques / avancés
-
-Si l'ordinateur n'a pas de carte graphique mais a un port série : il faut modifier l'ISO pour démarrer avec la console série. Une solution est d'utiliser [un script qui modifie les options de démarrage](https://github.com/luffah/debian-mkserialiso).
diff --git a/install_iso_it.md b/install_iso_it.md
deleted file mode 100644
index f4c702bc..00000000
--- a/install_iso_it.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Installazione in un computer
-
-*Altri modi per installare YunoHost **[Clicca qui](/install)**.*
-
-### Requisiti
-
-
-
-
-
-* Un computer con architettura x86: laptop, nettop, netbook, desktop.
-Puoi usare qualsiasi computer con minimo 256 MB di ram**.
-* Un altro computer per leggere questa guida e per accedere al tuo server.
-* un [buon ISP](/isp), possibilmente con una banda illimitata.
-* una **chiavetta USB** da almeno 1 GO **O** un classico **CD/DVD vuoto**
-* ***casi particolari*** : se il tuo server non ha una scheda video, [prepara l'ISO per fare il boot con la porta seriale](https://github.com/luffah/debian-mkserialiso).
-
----
-
-## Installazione
-
-
-0. Scarica l'ISO di YunoHost
-
-1. Scrivi l'immagine disco su una chiavetta USB
-
-2. Accendi il computer facendo il boot da USB
-
-3. Procedi con la prima configurazione (post-installation)
-
----
-
-To connect directly to your computer or with [SSH](/ssh) (only on local network) :
-Per connettersi direttamente al computer o con [SSH](/ssh) (solo su rete locale) :
-* User : **root**
-* Password : **yunohost**
diff --git a/install_it.md b/install_it.md
deleted file mode 100644
index 94f95373..00000000
--- a/install_it.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# Guida all'installazione
-
-Ci sono diverse maniere per installare YunoHost. Il procedimento può essere leggermente diverso a seconda che si esegua a casa o su un server remoto, e dipende dall'hardware usato:
-**[Vedi i requisiti](/hardware)**
-
-Questa pagina elenca alcune guide all'installazione.
-
----
-
-
- ISP locali potrebbero essere in grado di fornire un *Server Privato Vrituale* (VPS), gesito da esseri umani che rispettano gli utenti e si preoccupano della [Net Neutrality](https://en.wikipedia.org/wiki/Net_neutrality) ! Guarda [questa pagina](https://db.ffdn.org/) per maggiori informazioni.
-
-This procedure only works on **Debian 10** machines (with **kernel >= 3.12**))
-
-
-Once you have access to a command line on your server (either directly or through SSH), you can install yunohost by running command as root :
-
-```bash
-curl https://install.yunohost.org | bash
-```
-
-*(If `curl` is not installed on your system, you might need to install it with `apt install curl`. Otherwise, if the command does not do anything, you might want to `apt install ca-certificates`)*
-
-Once the installation is finished, you may want to [**proceed to post-installation**](/postinstall)
-
----
-
-**Note for advanced users concerned with the `curl|bash` approach**
-
-If you strongly object to the `curl|bash` way (and similar commands) of installing software, consider reading ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) on Sandstom's blog, and possibly [this discussion on Hacker News](https://news.ycombinator.com/item?id=12766350).
-
diff --git a/install_manually_de.md b/install_manually_de.md
deleted file mode 100644
index 00680e44..00000000
--- a/install_manually_de.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# YunoHost manuell installieren
-
-
-Dieser Vorgang funktioniert nur unter **Debian 10** (mit **kernel >= 3.12**))
-
-
-Sobald Du Zugriff auf die Kommandozeile auf Deinem Server hast (entweder direkt oder über SSH), kannst Du yunohost installieren, in dem Du das folgende Kommando als root ausführst:
-
-```bash
-curl https://install.yunohost.org | bash
-```
-
-*(Falls `curl` noch nicht auf Deinem System installiert ist, musst Du es eventuell mit `apt install curl` installieren. Falls das Kommando fehlschlägt, ist eventuell ein `apt install ca-certificates` notwendig.)*
-
-Sobald die Installation abgeschlossen ist, fahre mit der [**Postinstallation**](/postinstall) fort.
-
----
-
-**Anmerkung für forgeschrittene Benutzer mit Sorge gegenüber dem `curl|bash` Ansatz**
-
-Falls Du stark gegen den `curl|bash` Weg (und ähnlicher Kommandos) zum installieren von Software eingestellt bist, empfehlen wir, ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) auf dem Sandstom Blog, und vielleicht [diese Diskussion auf Hacker News](https://news.ycombinator.com/item?id=12766350) zu lesen (beides Englisch).
\ No newline at end of file
diff --git a/install_manually_es.md b/install_manually_es.md
deleted file mode 100644
index 128d6b24..00000000
--- a/install_manually_es.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Instalar YunoHost manualmente
-
-
-This procedure only works on **Debian 10** machines (with **kernel >= 3.12**))
-
-
-Una vez que tienes acceso a tu servidor (directamente o con SSH), puedes instalar YunoHost ejecutando este comando como root :
-
-```bash
-curl https://install.yunohost.org | bash
-```
-
-*(Si `curl` no está instalado en tu sistema, tal vez tendrás que instalarlo con `apt install curl`. De otro modo, si el comando no muestra nada, puedes intentar `apt install ca-certificates`)*
-
-Cuando la instalación esté terminada, habrá que [**proceder a la post-instalación**](/postinstall)
-
----
-
-**Nota para los usuarios expertos preocupados por el enfoque `curl|bash`**
-
-Si no te gusta utilizar `curl|bash` (ou comandos similares) para desplegar software, toma el tiempo de leer ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) en el blog de Sandstorm, y también [esta discusión en Hacker News](https://news.ycombinator.com/item?id=12766350).
-
diff --git a/install_manually_fr.md b/install_manually_fr.md
deleted file mode 100644
index 101323ce..00000000
--- a/install_manually_fr.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Installer YunoHost manuellement
-
-
-Cette procédure fonctionne seulement sur des machines avec **Debian 10** (et **kernel >= 3.12**))
-
-
-Une fois que vous avez accès à votre serveur (directement ou par SSH), vous pouvez installer YunoHost en exécutant cette commande en tant que root :
-
-```bash
-curl https://install.yunohost.org | bash
-```
-
-*(Si `curl` n'est pas installé sur votre système, il vous faudra peut-être l'installer avec `apt install curl`. Autrement, si la commande n'affiche rien du tout, vous pouvez tenter `apt install ca-certificates`)*
-
-Une fois l'installation terminée, il vous faudra [**procéder à la post-installation**](/postinstall)
-
----
-
-**Note pour les utilisateurs avancés inquiets à propos de l'approche `curl|bash`**
-
-Si vous êtes suspicieux de la tendance à utiliser `curl|bash` (ou commandes similaires) pour déployer des logiciels, prenez le temps de lire ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) sur le blog de Sandstorm, et possiblement [cette discussion sur Hacker News](https://news.ycombinator.com/item?id=12766350).
-
diff --git a/install_on_arm_board.md b/install_on_arm_board.md
deleted file mode 100644
index a7c1b503..00000000
--- a/install_on_arm_board.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# Install YunoHost on ARM board
-
-*Find other ways to install YunoHost **[here](/install)**.*
-
-
-
-
-
-
-
-Before setting up a server at home, it is recommended that you know the [possible limitations imposed by your ISP](/isp). If they are too restrictive, you might consider using a VPN to bypass them.
-
-Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las [posibles restricciones impuestas por tu Proveedor de Internet](/isp). Si tu proveedor es demasiado restrictivo, puedes utilizar un VPN para eludir estas restricciones.
-
-
-- Una tarjeta ARM con un procesador de 500 MHz et 512 Mo de memoria RAM ;
-- Un adaptador de corriente para alimentar la tarjeta ;
-- Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
-- Un cable ethernet/RJ-45 para conectar la carte con el router / caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.)
-- Un [proveedor de Internet ético](/isp), de preferencia con una buena velocidad de upload.
-
----
-
-## Instalación con la imagen pre-instalada (recomendada)
-
-0. Descargar la imagen pre-instalada para tu tarjeta ARM
-
-Si 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
-
-2. Conectar y encender
-
-3. Proceder a la post-instalación
-
----
-
-## Instalación encima de ARMbian
-
-0. Descargar la imagen ARMbian para tu tarjeta ARM
-
-1. Poner la imagen en tu tarjeta SD
-
-2. Conectar y encender
-
-3. Conectarse en SSH
-
-4. Proceder a la post-instalación genérica
-
diff --git a/install_on_arm_board_fr.md b/install_on_arm_board_fr.md
deleted file mode 100644
index 21db1608..00000000
--- a/install_on_arm_board_fr.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Installer YunoHost sur carte ARM
-
-*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install)**.*
-
-
-
-
-
-
-
-Avant d'héberger un serveur chez vous, il est recommandé de prendre connaissance des [possibles limitations liées à votre FAI](/isp). Si votre FAI est trop contraignant, vous pouvez envisager d'utiliser un VPN pour contourner ces limitations.
-
-
-- Une carte ARM avec un processeur de 500 MHz et 512 Mo de mémoire vive ;
-- Un adaptateur secteur pour alimenter la carte ;
-- Une carte microSD : au moins **8 Go** et **Classe 10** (par exemple une [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
-- Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet. (Avec le Raspberry Pi 0, vous pouvez connecter votre carte avec un câble OTG et un adaptateur Wifi USB.)
-- Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse d’upload.
-
----
-
-## Installation avec l'image pré-installée (recommandée)
-
-0. Télécharger l'image pré-installée pour votre carte ARM
-
-Si 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
-
-2. Démarrer la carte et se connecter à l'interface web sur `yunohost.local`
-
-3. Effectuer la configuration initiale (post-installation)
-
----
-
-## Installation par dessus ARMbian
-
-0. Télécharger l'image ARMbian pour votre carte ARM
-
-1. Flasher la carte SD avec l'image
-
-2. Brancher & démarrer
-
-3. Se connecter en SSH
-
-4. Suivre la procédure d'installation générique
-
diff --git a/install_on_debian.md b/install_on_debian.md
deleted file mode 100644
index 99fc194f..00000000
--- a/install_on_debian.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Installation on Debian
-
-*Find other ways to install YunoHost **[here](/install)**.*
-
-### Requirements
-
-
-
-An ARM box, a VPS, a dedicated server, a standard x86 computer, an old Macintosh, ...
-
-* with **Debian 10** (Buster) installed (with kernel >= 3.12)
- * the Debian 10 ISO can be downloaded from [here](https://www.debian.org/releases/buster/debian-installer/). Take the 'netinst CD image' for your architecture.
- * N.B. : having a graphical environment is *not* recommended! Servers are meant to be administrated remotely!
-* connected to the Internet
-* with a direct **root access** or via SSH
-
----
-
-## Installation steps
-
-1. Install manually
-
-2. Post-install
-
diff --git a/install_on_debian_ar.md b/install_on_debian_ar.md
deleted file mode 100644
index 455830f8..00000000
--- a/install_on_debian_ar.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-# التنصيب على ديبيان
-
-*يمكنكم الإطلاع على طُرق أخرى لتنصيب واي يونوهوست YunoHost **[هنا](/install)**.*
-
-## المتطلبات
-
-
-
-على منصة ARM أو على خادوم إفتراضي خاص أو على خادوم إستضافة أو على حاسوب x86 عادي أو على حاسوب ماكينطوش قديم … إلخ
-
-* على **ديبيان 8** (جيسي) قد تم تنصيبه مِن قبل
-* مُتصل بالإنترنت عبر كابل إيثرنت
-* مباشرة عبر **النفاذ بالمستخدم الجذري root** أو عبر الـ SSH
-
----
-
-## خطوات التنصيب
-
-1. التنصيب يدويًا
-
-2. ما بعد التنصيب
-
diff --git a/install_on_debian_fr.md b/install_on_debian_fr.md
deleted file mode 100644
index 013a492e..00000000
--- a/install_on_debian_fr.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Installation sur Debian
-
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
-
-## Prérequis
-
-
-
-Sur une plateforme ARM, un VPS, un serveur dédié, un ordinateur x86 standard, un vieux Macintosh,...
-
-* avec **Debian 10** (Buster) installé (avec un kernel >= 3.12)
- * l'ISO Debian 10 ISO peut être téléchargée depuis [cette page](https://www.debian.org/releases/buster/debian-installer/). Prenez la 'netinst CD image' pour votre architecture
- * N.B. : Avoir un environnement graphique n'est *pas* recommandé ! Les serveurs sont généralement administrés à distance !
-* connecté à Internet
-* avec un **accès root** directement ou par SSH
-
----
-
-## Étapes d’installation
-
-1. Installer manuellement
-
-2. Post-installation
-
diff --git a/install_on_debian_it.md b/install_on_debian_it.md
deleted file mode 100644
index 844d77b5..00000000
--- a/install_on_debian_it.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 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 10** (Buster) installato (con un kernel >= 3.12)
- * l'immagine ISO di Debian 10 può essere scaricata da [qui](https://www.debian.org/releases/buster/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
diff --git a/install_on_raspberry.md b/install_on_raspberry.md
deleted file mode 100644
index fa5706cd..00000000
--- a/install_on_raspberry.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Install YunoHost on a Raspberry Pi
-
-*Find all the ways to install YunoHost **[here](/install)**.*
-
-
-
-
-
-
-
-Before setting up a server at home, it is recommended that you know the [possible limitations imposed by your ISP](/isp). If they are too restrictive, you might consider using a VPN to bypass them.
-
-
-## Pre-requisites
-
-- A Raspberry Pi 2, 3 or 4 (RPi 0 and 1 may work but require some tweaking... see [this issue](https://github.com/YunoHost/issues/issues/1423)) ;
-- An microSD card: **8GB** capacity (at least) and **Class 10** speed rate are highly recommended (like the [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
-- A power supply (either an adapter or a MicroUSB cable)i ;
-- An ethernet cable (RJ-45) to connect your Raspberry Pi to your router. (Raspberry Pi Zero users can connect the Pi using an OTG cable, [Wifi dongle](https://core-electronics.com.au/tutorials/raspberry-pi-zerow-headless-wifi-setup.html).) ;
-- A [reasonable ISP](/isp), preferably with a good and unlimited upload bandwidth.
-
----
-
-## Install with the pre-installed image (recommended)
-
-0. Download the pre-installed image for Raspberry Pi
-
-1. Flash the SD card with the image
-
-2. Boot the board and connect to the web interface at `yunohost.local`
-
-3. Proceed with the initial configuration (post-installation)
-
----
-
-## Manual installation (advanced users)
-
-
-We do not recommend the manual installation because it is more technical and longer than using the pre-installed image. This documentation is only intended for advanced users.
-
-
-
-The latest Raspberry Pi OS images requires a screen and a keyboard, as it is no longer possible to connect directly to the Raspberry through SSH. Nevertheless it is possible to re-enable SSH at boot: before starting your Raspberry, put in the boot partition of the SD card an empty file named `ssh` (without extension).
-
-
-0. Install Raspberry Pi OS Lite on the SD card ([instructions](https://www.raspberrypi.org/downloads/raspberry-pi-os/)). The Raspberry Pi OS Lite can be found here: https://downloads.raspberrypi.org/raspbian_lite/images/
-
-1. Connect to your Raspberry Pi with the user `pi`. Set the root password with
-```bash
-sudo passwd root
-```
-
-2. Edit `/etc/ssh/sshd_config` to allow SSH login for root, by replacing `PermitRootLogin without-password` with `PermitRootLogin yes`. Reload the SSH daemon with `service ssh reload`.
-
-3. Disconnect and reconnect, this time as root.
-
-4. Then follow the generic manual install procedure.
-
diff --git a/install_on_raspberry_de.md b/install_on_raspberry_de.md
deleted file mode 100644
index f9d32bf1..00000000
--- a/install_on_raspberry_de.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# YunoHost auf einem Raspberry Pi installieren
-
-*Alle Arten YunoHost zu installieren findest du **[hier](/install)**.*
-
-
-
-
-
-
-
-Vor der Einrichtung eines Servers zuhause ist es empfehlenswert [mögliche Einschränkungen deines Providers](/isp) zu kennen. Wenn er zu viele Einschränkungen vornimmt, kann es sinnvoll sein ein VPN zu nutzen um diese zum umgehen.
-
-
-## Voraussetzungen
-
-- Einen Raspberry Pi 2, 3 oder 4 (RPi 0 and 1 may work but require some tweaking ... see [this issue](https://github.com/YunoHost/issues/issues/1423)) ;
-- Eine microSD Karte: **8 GB** Speicherplatz (mindestens) und **Class 10** Geschwindigkeit werden empfohlen (wie zum Beispiel die [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
-- Ein Netzeil (entweder ein Steckernetzteil oder ein MicroUSB Kabel) ;
-- An Netzwerkkabel (RJ-45) um den Raspberry mit dem router zu verbinden. (Raspberry Pi Zero Nutzer können ein OTG Kabel nutzen, [Wifi dongle](https://core-electronics.com.au/tutorials/raspberry-pi-zerow-headless-wifi-setup.html).) ;
-- Einen [geeigneten Provider](/isp), am Besten einen mit einer guten upload Geschwindigkeit.
-
----
-
-## Install with the pre-installed image (recommended)
-
-0. Download the pre-installed image for Raspberry Pi
-
-1. Flash the SD card with the image
-
-2. Boot the board and connect to the web interface at `yunohost.local`
-
-4. Proceed to post-installation
-
----
-
-## Manual installation (advanced users)
-
-
-We do not recommend the manual installation because it is more technical and longer than using the pre-installed image. This documentation is only intended for advanced users.
-
-
-
-The latest Raspberry Pi OS Lite images requires a screen and a keyboard, as it is no longer possible to connect directly to the Raspberry through SSH. Nevertheless it is possible to re-enable SSH at boot: before starting your Raspberry, put in the boot partition of the SD card an empty file named `ssh` (without extension).
-
-
-0. Install Raspberry Pi OS Lite on the SD card ([instructions](https://www.raspberrypi.org/downloads/raspberry-pi-os/)).
-
-1. Connect to your Raspberry Pi with the user `pi`. Set the root password with
-```bash
-sudo passwd root
-```
-
-2. Edit `/etc/ssh/sshd_config` to allow SSH login for root, by replacing `PermitRootLogin without-password` with `PermitRootLogin yes`. Reload the SSH daemon with `service ssh reload`.
-
-3. Disconnect and reconnect, this time as root.
-
-4. Then follow the generic manual install procedure.
-
diff --git a/install_on_raspberry_es.md b/install_on_raspberry_es.md
deleted file mode 100644
index 66d99394..00000000
--- a/install_on_raspberry_es.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Instalar YunoHost en un Raspberry Pi
-
-*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.*
-
-
-
-
-
-
-
-Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las [posibles restricciones impuestas por tu Proveedor de Internet](/isp). Si tu proveedor es demasiado restrictivo, puedes utilizar un VPN para eludir estas restricciones.
-
-
-## Prerrequisitos
-
-- Un Raspberry Pi 2, 3 o 4 (RPi 0 and 1 may work but require some tweaking ... see [this issue](https://github.com/YunoHost/issues/issues/1423)) ; ;
-- Un adaptador de corriente para alimentar la tarjeta ;
-- Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
-- Un cable ethernet/RJ-45 para conectar la tarjeta con tu enrutador o tu caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.)
-- Un [proveedor de Internet ético](/isp), de preferencia con buena velocidad de upload.
-
----
-
-## Instalación con la imagen pre-instalada (recomendada)
-
-1. Descargar la imagen para Raspberry Pi
-
-2. Poner la imagen en tu tarjeta SD
-
-3. Conectar y encender
-
-4. Proceder a la post-instalación
-
----
-
-## Instalación manual (desaconsejada)
-
-
-No recomendamos la instalación manual porque es más técnica y más larga que la instalación vía la imagen per-instalada. Esta documentación sobre todo está destinada a los usuarios expertos.
-
-
-
-Las últimas versiones de Raspberry Pi OS necesitan una pantalla y un teclado porque ya no es posible conectarse directamente por SSH al Raspberry por defecto. Sin embargo, es posible reactivar el inicio de SSH al boot : solo hay que poner un archivo llamado `ssh` (vacío, sin extensión) en la partición boot de la tarjeta SD.
-
-
-0. Instalar Raspberry Pi OS Lite ([instrucciones](https://www.raspberrypi.org/downloads/raspberry-pi-os/)) en la tarjeta SD.
-
-1. Conéctate con SSH al Raspberry Pi con el usuario pi. Define una contraseña root con
-```bash
-sudo passwd root
-```
-
-2. Modifica `/etc/ssh/sshd_config` para autorizar root a que se conecte con ssh, reemplazando `PermitRootLogin without-password` por `PermitRootLogin yes`. Recarga el daemon ssh con `service ssh reload`, y luego re-conéctate como root.
-
-3. Desconéctate et reconéctate con el usuario root esta vez.
-
-4. Sigue con el procedimiento de instalación manual genérico.
-
diff --git a/install_on_raspberry_fr.md b/install_on_raspberry_fr.md
deleted file mode 100644
index e9a18419..00000000
--- a/install_on_raspberry_fr.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# Installer YunoHost sur Raspberry Pi
-
-*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install)**.*
-
-
-
-
-
-
-
-Avant d'héberger un serveur chez vous, il est recommandé de prendre connaissance des [possibles limitations liées à votre FAI](/isp). Si votre FAI est trop contraignant, vous pouvez envisager d'utiliser un VPN pour contourner ces limitations.
-
-
-## Prérequis
-
-- Un Raspberry Pi 2, 3 ou 4 (Les RPi 0 et 1 peuvent fonctionner mais nécessitent de bricoler un peu ... voir [cette issue](https://github.com/YunoHost/issues/issues/1423)) ;
-- Un adaptateur secteur pour alimenter la carte ;
-- Une carte microSD : au moins **8 Go** et **Classe 10** (par exemple une [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ;
-- Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet. (Avec le Raspberry Pi 0, vous pouvez connecter votre carte avec un câble OTG et un adaptateur Wifi USB.)
-- Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse d’upload.
-
----
-
-## Installation avec l'image pré-installée (recommandée)
-
-1. Télécharger l'image pour Raspberry Pi
-
-2. Flasher la carte SD avec l'image
-
-3. Démarrer la carte et se connecter à l'interface web sur `yunohost.local`
-
-4. Effectuer la configuration initiale (post-installation)
-
----
-
-## Installation manuelle (déconseillée)
-
-
-Nous déconseillons l'installation manuelle car elle est plus technique et plus longue que l'installation via l'image pré-installée. Cette documentation est surtout destinée aux utilisateurs avancés.
-
-
-
-Les dernières versions de Raspbian nécessitent un écran et un clavier, car il n'est plus possible de se connecter directement en SSH au Raspberry par défaut. Néanmoins, il est possible de réactiver le lancement de SSH au boot : il suffit de placer dans la partition boot de la carte SD un fichier nommé `ssh`, vide et sans extension.
-
-
-0. Installez Raspberry Pi OS Lite ([instructions](https://www.raspberrypi.org/downloads/raspberry-pi-os/)) sur la carte SD.
-Le lien vers Raspberry Pi OS Lite est ici : https://downloads.raspberrypi.org/raspbian_lite/images/
-
-1. Connectez-vous en SSH au Raspberry Pi avec l'utilisateur pi. Définissez un mot de passe root avec
-```bash
-sudo passwd root
-```
-
-2. Modifiez `/etc/ssh/sshd_config` pour autoriser root à se logger en SSH, en remplaçant `PermitRootLogin without-password` par `PermitRootLogin yes`. Rechargez le daemon SSH avec `service ssh reload`, puis re-connectez-vous en root.
-
-3. Déconnectez-vous et reconnectez-vous avec l'utilisateur root cette fois.
-
-4. Poursuivez avec la procédure d'installation manuelle générique.
-
diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md
deleted file mode 100644
index 96eff312..00000000
--- a/install_on_virtualbox.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# Install YunoHost on VitualBox
-
-*Find other ways to install YunoHost **[here](/install)**.*
-
-## Requirements
-
-
-
-* An x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine.
-* The latest stable **YunoHost ISO image**, available [here](/images).
-
-
-N.B. : Installing YunoHost in a VirtualBox is usually intended for testing. To
-run an actual server on the long-term, you usually need a dedicated physical
-machine (old computer, ARM board...) or a VPS online.
-
-
----
-
-## 1. Create a new virtual machine
-
-
-
-
-
-* It's okay if you can only have 32-bit versions, just be sure that you downloaded the 32-bit image previously.
-* 256MB RAM is the minimum required, but at least 512MB is recommended (1Go or more if you can).
-* 8GB storage is the minimum required for the system, add whatever is necessary for your apps.
-
----
-
-## 2. Change network settings
-
-**NB:** You must carry out this step. If not, the install will fail.
-
-Go to **Settings** > **Network**:
-
-
-
-
-
-* Select `Bridged adapter`
-
-* Select your interface's name:
-
- **wlan0** if you are connected wirelessly, else **eth0**.
-
----
-
-## 3. Boot up the virtual machine
-
-Start the virtual machine
-
-
-
-
-
-You will have to select your ISO image here, then you should see the YunoHost's boot screen.
-
-
-
-If you encounter the error "VT-x is not available", you need probably need to enable Virtualization in the BIOS of your computer.
-
-
-
-
-
-
-
-* Select `Graphical install`
-
-* Select your language, your location, your keyboard layout and let the installer do the rest :-)
-
----
-
-## 4. Proceed to post-installation
-
-After the reboot, the system should ask you to proceed with the
-post-installation
-
-Post-install documentation
-
-
-
diff --git a/install_on_virtualbox_es.md b/install_on_virtualbox_es.md
deleted file mode 100644
index e359db06..00000000
--- a/install_on_virtualbox_es.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# Instalar YunoHost en VirtualBox
-
-*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.*
-
-## Prerrequisitos
-
-
-
-* Un ordenador x86 con VirtualBox instalado y bastante RAM disponible para iniciar una pequeña máquina virtual.
-* La última **imagen ISO YunoHost** estable, disponible [aquí](/images).
-
-
-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.
-
-
----
-
-## 1. Crear una nueva máquina virtual
-
-
-
-
-
-* No es grave si sólo la versión 32-bit está disponible, pero en este caso asegúrate que 32 bit previamente.
-* 256Mo de RAM es el requisito mínimo, 512Mo está recomendado (1Go o más si puedes).
-* 8Go de almacenaje mínimo requisito.
-
----
-
-## 2. Modificar la configuración de la red
-
-Ir a **Settings** > **Network** :
-
-
-
-
-
-* Selectiona `Bridged adapter`
-
-* Elige tu interfaz según su nombre :
-
- **wlan0** si estás conectado sin hilo, **eth0** de otro modo.
-
----
-
-## 3. Inicia tu máquina virtual
-
-Inicia tu máquina virtual
-
-
-
-
-
-Aquí tienes que seleccionar la imagen ISO, luego deberías ver esta pantalla de bienvenida.
-
-
-
-Si te encuentras con el error "VT-x is not available", probablement hay que activar (enable) la virtualización en la opciones del BIOS de tu ordenador.
-
-
-
-
-
-
-
-* Elige `Instalación gráfica`
-
-* Selecciona tu idioma, tu ubicación, la distribución de tu teclado y deja el ordenador terminar el proceso :-)
-
----
-
-## 4. Efectuar la post-instalación
-
-Después del reinicio, la máquina debería proponerte de efectuar la post-instalación :
-
-Documentación de post-instalación
diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md
deleted file mode 100644
index 8b851596..00000000
--- a/install_on_virtualbox_fr.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# Installer YunoHost sur VirtualBox
-
-*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).
-
-
-N.B. : Installer YunoHost dans une VirtualBox est utile pour tester la
-distribution. Pour réellement s'autohéberger sur le long terme, il vous faudra
-probablement une machine physique (vieil ordinateur, carte ARM...) ou un VPS en
-ligne.
-
-
----
-
-## 1. Créer une nouvelle machine virtuelle
-
-
-
-
-
-* Ce n'est pas grave si seulement la version 32-bit est dispo, mais dans ce cas soyez sur d'avoir téléchargé l'image 32 bit précédemment.
-* 256Mo de RAM est le minimum requis, 512Mo est recommandé (1Go ou plus si vous pouvez).
-* 8Go de stockage minimum requis pour le système, y ajouter l'espace pour vos applications.
-
----
-
-## 2. Modifier la configuration réseau
-
-Allez dans **Réglages** > **Réseau** :
-
-
-
-
-
-* Sélectionnez `Accès par pont`
-
-* Choisissez votre interface selon son nom :
-
- **wlan0** si vous êtes connecté sans-fil, **eth0** sinon.
-
----
-
-## 3. Lancer votre machine virtuelle
-
-Démarrez votre machine virtuelle
-
-
-
-
-
-Vous devez sélectionner ici l’image ISO, puis vous devriez voir cet écran d’accueil YunoHost.
-
-
-
-Si vous rencontrez l'erreur "VT-x is not available", il vous faut probablement activer (enable) la virtualisation dans les options du BIOS de votre ordinateur.
-
-
-
-
-
-
-
-* Choisissez `Installation graphique`
-
-* Sélectionnez votre langue, votre emplacement, la disposition de votre clavier et laissez l’installeur faire le reste :-)
-
----
-
-## 4. Effectuer la post-installation
-
-Après le redémarrage, la machine devrait vous proposer d'effectuer la
-post-installation :
-
-Post-install
-documentation
diff --git a/install_on_vps.md b/install_on_vps.md
deleted file mode 100644
index 16578276..00000000
--- a/install_on_vps.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Install on a dedicated server
-
-*Find other ways to install YunoHost **[here](/install)**.*
-
-### Pre-requisite
-
-
-
-* A dedicated or virtual private server
-* with at least **512MB** RAM
-* and **Debian 10.x (Buster) 64bits** as operating system
-
----
-
-## Installation steps
-
-1. Install manually
-
-2. Proceed with the initial configuration (post-installation)
diff --git a/install_on_vps_de.md b/install_on_vps_de.md
deleted file mode 100644
index 57916779..00000000
--- a/install_on_vps_de.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Installation auf einem dedizierten Server
-
-*Andere Wege Yunohost zu installieren findest Du **[hier](/install)**.*
-
-### Vorraussetzungen
-
-
-
-* Ein dedizierter (Root-Server) oder virtueller privater Server (VPS)
-* mit mindestens **512MB** RAM
-* und **Debian 10.x (Buster) 64bits** als Betriebssystem
-
----
-
-## Installationsschritte
-
-1. Manuelle Installation
-
-2. Weiter mit der Erstkonfiguration (nach der Installation)
-
diff --git a/install_on_vps_es.md b/install_on_vps_es.md
deleted file mode 100644
index abf498f4..00000000
--- a/install_on_vps_es.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Instalación en un servidor dedicado
-
-*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.*
-
-## Prerrequisitos
-
-
-
-* Un servidor dedicado o virtual
-* con al menos **512MB** RAM
-* y **Debian 10.x (Buster) 64bits** como sistema operativo
-
----
-
-## Etapas de instalación
-
-1. Instalar manualmente
-
-2. Post-instalación
-
diff --git a/install_on_vps_fr.md b/install_on_vps_fr.md
deleted file mode 100644
index 09d224db..00000000
--- a/install_on_vps_fr.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Installation sur un serveur dédié
-
-*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.*
-
-## Prérequis
-
-
-
-* Un serveur dédié ou virtuel
-* avec au moins **512MB** RAM
-* et **Debian 10.x (Buster) 64bits** comme système d'exploitation
-
----
-
-## Étapes d’installation
-
-1. Installer manuellement
-
-2. Effectuer la configuration initiale (post-installation)
diff --git a/install_on_vps_it.md b/install_on_vps_it.md
deleted file mode 100644
index 66658d32..00000000
--- a/install_on_vps_it.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Installa su un server dedicato
-
-*Scopri altri modi di installare YunoHost **[qui](/install)**.*
-
-### Pre-requisiti
-
-
-
-* Un server dedicato o un server privato virtuale (VPS)
-* con almeno **512MB** di RAM
-* e **Debian 10.x (Buster) 64bits** come sistema operativo
-
----
-
-## Procedura di installazione
-
-1. Installa manualmente
-
-2. Post-installazione
-
diff --git a/isp_free.md b/isp_free.md
deleted file mode 100644
index e97c35fb..00000000
--- a/isp_free.md
+++ /dev/null
@@ -1 +0,0 @@
-Unfortunately, this page only exists [in french here](isp_free_fr) for now.
diff --git a/isp_orange.md b/isp_orange.md
deleted file mode 100644
index 6649ed5f..00000000
--- a/isp_orange.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 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_sfr.md b/isp_sfr.md
deleted file mode 100644
index e5002600..00000000
--- a/isp_sfr.md
+++ /dev/null
@@ -1 +0,0 @@
-Unfortunately, this page only exists [in french here](isp_sfr_fr) for now.
diff --git a/noaccess.md b/noaccess.md
deleted file mode 100644
index a2ed2d20..00000000
--- a/noaccess.md
+++ /dev/null
@@ -1 +0,0 @@
-Unfortunately, this page only exists [in french here](noaccess_fr) for now.
diff --git a/orga/README.md b/orga/README.md
deleted file mode 120000
index aa9ff0cb..00000000
--- a/orga/README.md
+++ /dev/null
@@ -1 +0,0 @@
-yunohost_project_organization_fr.md
\ No newline at end of file
diff --git a/default_es.md b/orphaned/default.es.md
similarity index 100%
rename from default_es.md
rename to orphaned/default.es.md
diff --git a/default_fr.md b/orphaned/default.fr.md
similarity index 100%
rename from default_fr.md
rename to orphaned/default.fr.md
diff --git a/default_it.md b/orphaned/default.it.md
similarity index 100%
rename from default_it.md
rename to orphaned/default.it.md
diff --git a/default.md b/orphaned/default.md
similarity index 100%
rename from default.md
rename to orphaned/default.md
diff --git a/dns_es.md b/orphaned/dns.es.md
similarity index 92%
rename from dns_es.md
rename to orphaned/dns.es.md
index 988399df..b4a5f53b 100644
--- a/dns_es.md
+++ b/orphaned/dns.es.md
@@ -10,7 +10,7 @@ DNS significa « Domain Name Server » en inglés, y está frecuentemente empl
**Por ejemplo** : `yunohost.org` apunta hacia `88.191.153.110`.
-Este sistema fue creado para poder memorizar más fácilmente las direcciones de servidores. Existen registros DNS en los cuales hay que apuntarse. Esto se hace con **registrars** que te alquilarán estos nombres de dominio a cambio de cierto importe (entre cinco y algunas centenas de euros). Estos [registrars](registrar) son entidades privadas autorizadas por el [ICANN](https://es.wikipedia.org/wiki/Corporaci%C3%B3n_de_Internet_para_la_Asignaci%C3%B3n_de_Nombres_y_N%C3%BAmeros), tales como [Gandi](http://gandi.net), [OVH](http://ovh.com) o [BookMyName](http://bookmyname.com).
+Este sistema fue creado para poder memorizar más fácilmente las direcciones de servidores. Existen registros DNS en los cuales hay que apuntarse. Esto se hace con **registrars** que te alquilarán estos nombres de dominio a cambio de cierto importe (entre cinco y algunas centenas de euros). Estos [registrars](/registrar) son entidades privadas autorizadas por el [ICANN](https://es.wikipedia.org/wiki/Corporaci%C3%B3n_de_Internet_para_la_Asignaci%C3%B3n_de_Nombres_y_N%C3%BAmeros), tales como [Gandi](http://gandi.net), [OVH](http://ovh.com) o [BookMyName](http://bookmyname.com).
Es importante notar que los subdominios no necesariamente apuntan al dominio principal.
diff --git a/dns_fr.md b/orphaned/dns.fr.md
similarity index 95%
rename from dns_fr.md
rename to orphaned/dns.fr.md
index 120d4f28..444ceadf 100644
--- a/dns_fr.md
+++ b/orphaned/dns.fr.md
@@ -14,7 +14,7 @@ DNS signifie « Domain Name Server » en anglais, et est souvent employé pour
**Par exemple** : `yunohost.org` renvoie vers `88.191.153.110`.
-Ce système a été créé pour pouvoir retenir plus facilement les adresses de serveur. Il existe donc des registres DNS dans lesquels il faut s’inscrire. Ceci peut être fait auprès de **registrars** qui vous feront louer ces noms de domaine contre une certaine somme (entre cinq et quelques centaines d’euros). Ces [registrars](registrar) sont des entités privées autorisées par l’[ICANN](http://fr.wikipedia.org/wiki/ICANN), telles que [Gandi](http://gandi.net), [OVH](http://ovh.com) ou [BookMyName](http://bookmyname.com).
+Ce système a été créé pour pouvoir retenir plus facilement les adresses de serveur. Il existe donc des registres DNS dans lesquels il faut s’inscrire. Ceci peut être fait auprès de **registrars** qui vous feront louer ces noms de domaine contre une certaine somme (entre cinq et quelques centaines d’euros). Ces [registrars](/registrar) sont des entités privées autorisées par l’[ICANN](http://fr.wikipedia.org/wiki/ICANN), telles que [Gandi](http://gandi.net), [OVH](http://ovh.com) ou [BookMyName](http://bookmyname.com).
Il est important de noter que les sous-domaines ne renvoient pas nécessairement au domaine principal.
Si `yunohost.org` renvoie vers `88.191.153.110`, ça ne signifie pas que `backup.yunohost.org` renvoie vers la même IP. Vous devez donc configurer **tous** les domaines et sous-domaines que vous souhaitez utiliser.
diff --git a/dns.md b/orphaned/dns.md
similarity index 86%
rename from dns.md
rename to orphaned/dns.md
index e6694149..9666ec73 100644
--- a/dns.md
+++ b/orphaned/dns.md
@@ -10,7 +10,7 @@ DNS stands for "Domain Name Server", and is often used for the configuration of
**For example**: `yunohost.org` points to the server at `88.191.153.110`.
-This system was created to more easily keep track of server addresses. There are DNS registries for Internet names that you must register with. They are called "registrars", which will let you rent certain domain names for a price (between $5 or a few hundred, depending on the root domain and the chosen name). These [registrars](registrar) are private entities authorised by [ICANN](http://en.wikipedia.org/wiki/ICANN), such as [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). A privacy respecting registrar is [Njalla](https://njal.la/) or [Njalla Onion Site](http://njalladnspotetti.onion). With Njalla, you can register a domain name with just an email or XMPP address (N.B. : you won't have full control and ownership of the domain though).
+This system was created to more easily keep track of server addresses. There are DNS registries for Internet names that you must register with. They are called "registrars", which will let you rent certain domain names for a price (between $5 or a few hundred, depending on the root domain and the chosen name). These [registrars](/registrar) are private entities authorised by [ICANN](http://en.wikipedia.org/wiki/ICANN), such as [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). A privacy respecting registrar is [Njalla](https://njal.la/) or [Njalla Onion Site](http://njalladnspotetti.onion). With Njalla, you can register a domain name with just an email or XMPP address (N.B. : you won't have full control and ownership of the domain though).
It is important to note that subdomains do not necessarily have to send you to wherever the principal domain is pointing. If `yunohost.org` sends to `88.191.153.110`, that doesn't mean that `backup.yunohost.org` has to point at the same IP. You must therefore configure **all** of the domains and subdomains that you want to use.
@@ -26,7 +26,7 @@ You have several choices here. Note that you can mix and match solutions if you
**This is the recommended option if you are just starting out with self-hosting.**
-2. You can use the DNS service offered by your **registrar** (Gandi, NameCheap, BookMyName or others) to configure your domain name. Here is the [standard DNS configuration](/dns_config). The DNS service of your router can also be used, more info on [how to setup a local domain](dns_local_network).
+2. You can use the DNS service offered by your **registrar** (Gandi, NameCheap, BookMyName or others) to configure your domain name. Here is the [standard DNS configuration](/dns_config). The DNS service of your router can also be used, more info on [how to setup a local domain](/dns_local_network).
You can also check out these pages for specific [registrar](/registrar) documentation: [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com).
**Warning**: If you choose this option, you will have more configuration possibilities, but nothing will be done for you. For example, if you want to use `webmail.my-server.org`, you must add it manually to the DNS records with your registrar.
diff --git a/index_ar.md b/orphaned/index.ar.md
similarity index 100%
rename from index_ar.md
rename to orphaned/index.ar.md
diff --git a/index_de.md b/orphaned/index.de.md
similarity index 100%
rename from index_de.md
rename to orphaned/index.de.md
diff --git a/index_es.md b/orphaned/index.es.md
similarity index 100%
rename from index_es.md
rename to orphaned/index.es.md
diff --git a/index_fr.md b/orphaned/index.fr.md
similarity index 100%
rename from index_fr.md
rename to orphaned/index.fr.md
diff --git a/index_it.md b/orphaned/index.it.md
similarity index 100%
rename from index_it.md
rename to orphaned/index.it.md
diff --git a/index.md b/orphaned/index.md
similarity index 100%
rename from index.md
rename to orphaned/index.md
diff --git a/index_oc.md b/orphaned/index.oc.md
similarity index 100%
rename from index_oc.md
rename to orphaned/index.oc.md
diff --git a/news.md b/orphaned/news.md
similarity index 100%
rename from news.md
rename to orphaned/news.md
diff --git a/registrar_fr.md b/orphaned/registrar.fr.md
similarity index 100%
rename from registrar_fr.md
rename to orphaned/registrar.fr.md
diff --git a/registrar.md b/orphaned/registrar.md
similarity index 100%
rename from registrar.md
rename to orphaned/registrar.md
diff --git a/packaging_apps_helpers.md b/packaging_apps_helpers.md
deleted file mode 100644
index 1cf5d699..00000000
--- a/packaging_apps_helpers.md
+++ /dev/null
@@ -1,5572 +0,0 @@
-
-
-
App helpers
-
-
Doc auto-generated by this script on 02/03/2021 (Yunohost version 4.1.7.1)
Define and install dependencies with a equivs control file
-
-
-
-
-
- Usage: ynh_install_app_dependencies dep [dep [...]]
-
-
-
-
- Arguments:
-
-
-
-
dep : the package name to install in dependence. Writing "dep3|dep4|dep5" can be used to specify alternatives. For example : dep1 dep2 "dep3|dep4|dep5" will require to install dep1 and dep 2 and (dep3 or dep4 or dep5).
-
-
-
-
-
-
-
-
-
-
- Details:
-
- This helper can/should only be called once per appexample : ynh_install_app_dependencies dep1 dep2 "dep3|dep4|dep5"Requires YunoHost version 2.6.4 or higher.
-
-s, --src_path= : file or directory to bind or symlink or copy. it shouldn't be in the backup dir.
-
-
-
-
-d, --dest_path= : destination file or directory inside the backup dir
-
-
-
-
-b, --is_big : Indicate data are big (mail, video, image ...)
-
-
-
-
-m, --not_mandatory : Indicate that if the file is missing, the backup can ignore it.
-
-
-
-
arg : Deprecated arg
-
-
-
-
-
-
-
-
-
-
- Details:
-
- This helper can be used both in a system backup hook, and in an app backup scriptDetails: ynh_backup writes SRC and the relative DEST into a CSV file. And itcreates the parent destination directoryIf DEST is ended by a slash it complete this path with the basename of SRC.Example in the context of a wordpress appynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"# => This line will be added into CSV file# "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf"ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/nginx.conf"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf"#Deprecated usages (maintained for retro-compatibility)ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "${backup_dir}/conf/nginx.conf"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "/conf/"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"How to use --is_big:--is_big is used to specify that this part of the backup can be quite huge.So, you don't want that your package does backup that part during ynh_backup_before_upgrade.In the same way, an user may doesn't want to backup this big part of the app for each of his backup. And so handle that part differently.As this part of your backup may not be done, your restore script has to handle it.In your restore script, use --not_mandatory with ynh_restore_fileAs well in your remove script, you should not remove those data ! Or an user may end up with a failed upgrade restoring an app without data anymore !To have the benefit of --is_big while doing a backup, you can whether set the environement variable BACKUP_CORE_ONLY to 1 (BACKUP_CORE_ONLY=1) before the backup command. It will affect only that backup command.Or set the config do_not_backup_data to 1 into the settings.yml of the app. This will affect all backups for this app until the setting is removed.Requires YunoHost version 2.4.0 or higher.Requires YunoHost version 3.5.0 or higher for the argument --not_mandatory
-
-o, --origin_path= : Path where was located the file or the directory before to be backuped or relative path to $YNH_CWD where it is located in the backup archive
-
-
-
-
-d, --dest_path= : Path where restore the file or the dir, if unspecified, the destination will be ORIGIN_PATH or if the ORIGIN_PATH doesn't exist in the archive, the destination will be searched into backup.csv
-
-
-
-
-m, --not_mandatory : Indicate that if the file is missing, the restore process can ignore it.
-
-
-
-
-
-
-
-
-
- Examples:
-
-
- ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
-
-
-
-
- You can also use relative paths:
-
-
-
-
- ynh_restore_file "conf/nginx.conf"
-
-
-
-
-
-
-
-
- Details:
-
- Use the registered path in backup_list by ynh_backup to restore the file atthe right place.If DEST_PATH already exists and is lighter than 500 Mo, a backup will be made in/home/yunohost.conf/backup/. Otherwise, the existing file is removed.if apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf exists, restore it into/etc/nginx/conf.d/$domain.d/$app.confif no, search for a match in the csv (eg: conf/nginx.conf) and restore it into/etc/nginx/conf.d/$domain.d/$app.confRequires YunoHost version 2.6.4 or higher.Requires YunoHost version 3.5.0 or higher for the argument --not_mandatory
-
Create a dedicated fail2ban config (jail and filter conf files)
-
-
-
-
-
- Usage: 1: ynh_add_fail2ban_config --logpath=log_file --failregex=filter [--max_retry=max_retry] [--ports=ports]
-2: ynh_add_fail2ban_config --use_template [--others_var="list of others variables to replace"]
-| for example : 'var_1 var_2 ...'
-
-
-
-
- Arguments:
-
-
-
-
-l, --logpath= : Log file to be checked by fail2ban
-
-
-
-
-r, --failregex= : Failregex to be looked for by fail2ban
-
-
-
-
-m, --max_retry= : Maximum number of retries allowed before banning IP address - default: 3
-
-
-
-
-p, --ports= : Ports blocked for a banned IP address - default: http,https
-
-
-
-
-t, --use_template : Use this helper in template mode
-
-
-
-
-v, --others_var= : List of others variables to replace separeted by a space
-
-
-
-
-
-
-
-
-
-
- Details:
-
- -----------------------------------------------------------------------------This will use a template in ../conf/f2b_jail.conf and ../conf/f2b_filter.conf __APP__ by $appYou can dynamically replace others variables by example : __VAR_1__ by $var_1 __VAR_2__ by $var_2Generally your template will look like that by example (for synapse):f2b_jail.conf: [__APP__] enabled = true port = http,https filter = __APP__ logpath = /var/log/__APP__/logfile.log maxretry = 3f2b_filter.conf: [INCLUDES] before = common.conf [Definition]# Part of regex definition (just used to make more easy to make the global regex) __synapse_start_line = .? \- synapse\..+ \-# Regex definition. failregex = ^%(__synapse_start_line)s INFO \- POST\-(\d+)\- \- \d+ \- Received request\: POST /_matrix/client/r0/login\??%(__synapse_start_line)s INFO \- POST\-\1\- Got login request with identifier: \{u'type': u'm.id.user', u'user'\: u'(.+?)'\}, medium\: None, address: None, user\: u'\5'%(__synapse_start_line)s WARNING \- \- (Attempted to login as @\5\:.+ but they do not exist|Failed password login for user @\5\:.+)$ignoreregex =-----------------------------------------------------------------------------Note about the "failregex" option: regex to match the password failure messages in the logfile. The host must be matched by a group named "host". The tag "" can be used for standard IP/hostname matching and is only an alias for (?:::f{4,6}:)?(?P[\w\-.^_]+)You can find some more explainations about how to make a regex here : https://www.fail2ban.org/wiki/index.php/MANUAL_0_8#FiltersNote that the logfile need to exist before to call this helper !!To validate your regex you can test with this command:fail2ban-regex /var/log/YOUR_LOG_FILE_PATH /etc/fail2ban/filter.d/YOUR_APP.confRequires YunoHost version 3.5.0 or higher.
-
Return 0 or 1 depending if the system has a given amount of RAM+swap free or total
-
-
-
-
-
- Usage: ynh_require_ram --required=RAM required in Mb [--free|--total] [--ignore_swap|--only_swap]
-| exit: Return 1 if the ram is under the requirement, 0 otherwise.
-
-
-
-
- Arguments:
-
-
-
-
-r, --required= : The amount to require, in Mb
-
-
-
-
-f, --free : Count free RAM+swap
-
-
-
-
-t, --total : Count total RAM+swap
-
-
-
-
-s, --ignore_swap : Ignore swap, consider only real RAM
-
-
-
-
-o, --only_swap : Ignore real RAM, consider only swap
- When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
-
- When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
-
- When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
-
- When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
-
- When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
-
- WARNING: You should be careful with this helper, and never forget to use ynh_print_ON as soon as possible to restore the logging.Requires YunoHost version 3.2.0 or higher.
-
-w, --weight= : The weight for this progression. This value is 1 by default. Use a bigger value for a longer part of the script.
-
-
-
-
-t, --time : Print the execution time since the last call to this helper. Especially usefull to define weights. The execution time is given for the duration since the previous call. So the weight should be applied to this previous call.
-
-
-
-
-l, --last : Use for the last call of the helper, to fill the progression bar.
- When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.5.0 or higher.
-
-n, --nonappend : (optional) Replace the config file instead of appending this new config.
-
-
-
-
-u, --specific_user= : run logrotate as the specified user and group. If not specified logrotate is runned as root.
-
-
-
-
-
-
-
-
-
-
- Details:
-
- If no --logfile is provided, /var/log/${app} will be used as default.logfile can be just a directory, or a full path to a logfile :/parentdir/logdir/parentdir/logdir/logfile.logIt's possible to use this helper multiple times, each config will be added tothe same logrotate config file. Unless you use the option --non-appendRequires YunoHost version 2.6.4 or higher.Requires YunoHost version 3.2.0 or higher for the argument --specific_user
-
-p, --db_pwd= : Password of the database. If not provided, a password will be generated
-
-
-
-
-
-
-
-
-
-
- Details:
-
- After executing this helper, the password of the created database will be available in $db_pwdIt will also be stored as "mysqlpwd" into the app settings.Requires YunoHost version 2.6.4 or higher.
-
-
- Usage: ynh_add_nginx_config "list of others variables to replace"
-
-
-
-
- Arguments:
-
-
-
-
list : (Optional) list of others variables to replace separated by spaces. For example : 'path_2 port_2 ...'
-
-
-
-
-
-
-
-
-
-
- Details:
-
- This will use a template in ../conf/nginx.conf __PATH__ by $path_url __DOMAIN__ by $domain __PORT__ by $port __NAME__ by $app __FINALPATH__ by $final_path __PHPVERSION__ by $YNH_PHP_VERSION ($YNH_PHP_VERSION is either the default php version or the version defined for the app)And dynamic variables (from the last example) : __PATH_2__ by $path_2 __PORT_2__ by $port_2Requires YunoHost version 2.7.2 or higher.Requires YunoHost version 2.7.13 or higher for dynamic variables
-
Load the version of node for an app, and set variables.
-
-
-
-
-
- Usage: ynh_use_nodejs
-
-
-
-
-
-
-
-
- Details:
-
- ynh_use_nodejs has to be used in any app scripts before using node for the first time.This helper will provide alias and variables to use in your scripts.To use npm or node, use the alias `ynh_npm` and `ynh_node`Those alias will use the correct version installed for the appFor example: use `ynh_npm install` instead of `npm install`With `sudo` or `ynh_exec_as`, use instead the fallback variables `$ynh_npm` and `$ynh_node`And propagate $PATH to sudo with $ynh_node_load_PATHExemple: `ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install`$PATH contains the path of the requested version of node.However, $PATH is duplicated into $node_PATH to outlast any manipulation of $PATHYou can use the variable `$ynh_node_load_PATH` to quickly load your node version in $PATH for an usage into a separate script.Exemple: $ynh_node_load_PATH $final_path/script_that_use_npm.sh`Finally, to start a nodejs service with the correct version, 2 solutions Either the app is dependent of node or npm, but does not called it directly. In such situation, you need to load PATH `Environment="__NODE_ENV_PATH__"` `ExecStart=__FINALPATH__/my_app` You will replace __NODE_ENV_PATH__ with $ynh_node_load_PATHOr node start the app directly, then you don't need to load the PATH variable `ExecStart=__YNH_NODE__ my_app run` You will replace __YNH_NODE__ with $ynh_node2 other variables are also available - $nodejs_path: The absolute path to node binaries for the chosen version. - $nodejs_version: Just the version number of node for this app. Stored as 'nodejs_version' in settings.yml.Requires YunoHost version 2.7.12 or higher.
-
-n, --nodejs_version= : Version of node to install. When possible, your should prefer to use major version number (e.g. 8 instead of 8.10.0). The crontab will then handle the update of minor versions when needed.
-
-
-
-
-
-
-
-
-
-
- Details:
-
- ynh_install_nodejs will install the version of node provided as argument by using n.n (Node version management) uses the PATH variable to store the path of the version of node it is going to use.That's how it changes the versionRefer to ynh_use_nodejs for more information about available commands and variablesRequires YunoHost version 2.7.12 or higher.
-
- This helper will check if another app uses the same version of node,if not, this version of node will be removed.If no other app uses node, n will be also removed.Requires YunoHost version 2.7.12 or higher.
-
-
- Usage: ynh_permission_create --permission="permission" [--url="url"] [--additional_urls="second-url" [ "third-url" ]] [--auth_header=true|false]
- [--allowed=group1 [ group2 ]] [--label="label"] [--show_tile=true|false]
- [--protected=true|false]
-| Not that if 'show_tile' is enabled, this URL will be the URL of the tile.
-| Default is "APP_LABEL (permission name)".
-| Default is false (for the permission different than 'main').
-| won't be able to add or remove the visitors group of this permission.
-| By default it's 'false'
-
-
-
-
- Arguments:
-
-
-
-
-p, : - the name for the permission (by default a permission named "main" already exist)
-
-
-
-
-u, : - (optional) URL for which access will be allowed/forbidden.
-
-
-
-
-A, : - (optional) List of additional URL for which access will be allowed/forbidden
-
-
-
-
-h, : - (optional) Define for the URL of this permission, if SSOwat pass the authentication header to the application. Default is true
-
-
-
-
-a, : - (optional) A list of group/user to allow for the permission
-
-
-
-
-l, : - (optional) Define a name for the permission. This label will be shown on the SSO and in the admin.
-
-
-
-
-t, : - (optional) Define if a tile will be shown in the SSO. If yes the name of the tile will be the 'label' parameter.
-
-
-
-
-P, : - (optional) Define if this permission is protected. If it is protected the administrator
-
-
-
-
-
-
-
-
-
-
- Details:
-
- example 1: ynh_permission_create --permission=admin --url=/admin --additional_urls=domain.tld/admin /superadmin --allowed=alice bob \ --label="My app admin" --show_tile=trueThis example will create a new permission permission with this following effect:- A tile named "My app admin" in the SSO will be available for the users alice and bob. This tile will point to the relative url '/admin'.- Only the user alice and bob will have the access to theses following url: /admin, domain.tld/admin, /superadminexample 2: ynh_permission_create --permission=api --url=domain.tld/api --auth_header=false --allowed=visitors \ --label="MyApp API" --protected=trueThis example will create a new protected permission. So the admin won't be able to add/remove the visitors group of this permission.In case of an API with need to be always public it avoid that the admin break anything.With this permission all client will be allowed to access to the url 'domain.tld/api'.Note that in this case no tile will be show on the SSO.Note that the auth_header parameter is to 'false'. So no authentication header will be passed to the application.Generally the API is requested by an application and enabling the auth_header has no advantage and could bring some issues in some case.So in this case it's better to disable this option for all API.If provided, 'url' or 'additional_urls' is assumed to be relative to the app domain/path if theystart with '/'. For example: / -> domain.tld/app /admin -> domain.tld/app/admin domain.tld/app/api -> domain.tld/app/api'url' or 'additional_urls' can be treated as a PCRE (not lua) regex if it starts with "re:".For example: re:/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$ re:domain.tld/app/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$Note that globally the parameter 'url' and 'additional_urls' are same. The only difference is:- 'url' is only one url, 'additional_urls' can be a list of urls. There are no limitation of 'additional_urls'- 'url' is used for the url of tile in the SSO (if enabled with the 'show_tile' parameter)About the authentication header (auth_header parameter).The SSO pass (by default) to the application theses following HTTP header (linked to the authenticated user) to the application: - "Auth-User": username - "Remote-User": username - "Email": user emailGenerally this feature is usefull to authenticate automatically the user in the application but in some case the application don't work with theses header and theses header need to be disabled to have the application to work correctly.See https://github.com/YunoHost/issues/issues/1420 for more informationsRequires YunoHost version 3.7.0 or higher.
-
-
- Usage: ynh_permission_url --permission "permission" [--url="url"] [--add_url="new-url" [ "other-new-url" ]] [--remove_url="old-url" [ "other-old-url" ]]
- [--auth_header=true|false] [--clear_urls]
-| Note that if you want to remove url you can pass an empty sting as arguments ("").
-
-
-
-
- Arguments:
-
-
-
-
-p, : - the name for the permission (by default a permission named "main" is removed automatically when the app is removed)
-
-
-
-
-u, : - (optional) URL for which access will be allowed/forbidden.
-
-
-
-
-a, : - (optional) List of additional url to add for which access will be allowed/forbidden.
-
-
-
-
-r, : - (optional) List of additional url to remove for which access will be allowed/forbidden
-
-
-
-
-h, : - (optional) Define for the URL of this permission, if SSOwat pass the authentication header to the application
-
-
-
-
-c, : - (optional) Clean all urls (url and additional_urls)
-
- Usage: ynh_permission_update --permission "permission" [--add="group" ["group" ...]] [--remove="group" ["group" ...]]
- [--label="label"] [--show_tile=true|false] [--protected=true|false]
-| won't be able to add or remove the visitors group of this permission.
-
-
-
-
- Arguments:
-
-
-
-
-p, : - the name for the permission (by default a permission named "main" already exist)
-
-
-
-
-a, : - the list of group or users to enable add to the permission
-
-
-
-
-r, : - the list of group or users to remove from the permission
-
-
-
-
-l, : - (optional) Define a name for the permission. This label will be shown on the SSO and in the admin.
-
-
-
-
-t, : - (optional) Define if a tile will be shown in the SSO
-
-
-
-
-P, : - (optional) Define if this permission is protected. If it is protected the administrator
-
- Usage: ynh_permission_has_user --permission=permission --user=user
-| exit: Return 1 if the permission doesn't have that user or doesn't exist, 0 otherwise
-
-
- Example: if ynh_legacy_permissions_exists then ynh_legacy_permissions_delete_all # You can recreate the required permissions here with ynh_permission_create fi Requires YunoHost version 4.1.2 or higher.
-
-
- Usage: 1: ynh_add_fpm_config [--phpversion=7.X] [--use_template] [--package=packages] [--dedicated_service]
-2: ynh_add_fpm_config [--phpversion=7.X] --usage=usage --footprint=footprint [--package=packages] [--dedicated_service]
-low - Less than 20 MB of RAM by pool.
-medium - Between 20 MB and 40 MB of RAM by pool.
-high - More than 40 MB of RAM by pool.
-Or specify exactly the footprint, the load of the service as MB by pool instead of having a standard value.
-To have this value, use the following command and stress the service.
-watch -n0.5 ps -o user,cmd,%cpu,rss -u APP
-
-
-
-
- Arguments:
-
-
-
-
-v, --phpversion= : Version of PHP to use.
-
-
-
-
-t, --use_template : Use this helper in template mode.
-
-
-
-
-p, --package= : Additionnal PHP packages to install
-
-
-
-
-d, --dedicated_service : Use a dedicated PHP-FPM service instead of the common one.
-
-
-
-
-v, --phpversion= : Version of PHP to use.
-
-
-
-
-f, --footprint= : Memory footprint of the service (low/medium/high).
-
-
-
-
-u, --usage= : Expected usage of the service (low/medium/high).
-
-
-
-
-p, --package= : Additionnal PHP packages to install for a specific version of PHP
-
-
-
-
-d, --dedicated_service : Use a dedicated PHP-FPM service instead of the common one.
-
-
-
-
-
-
-
-
-
-
- Details:
-
- -----------------------------------------------------------------------------The footprint of the service will be used to defined the maximum footprint we can allow, which is half the maximum RAM.So it will be used to defined 'pm.max_children'A lower value for the footprint will allow more children for 'pm.max_children'. And so for 'pm.start_servers', 'pm.min_spare_servers' and 'pm.max_spare_servers' which are defined from the value of 'pm.max_children'NOTE: 'pm.max_children' can't exceed 4 times the number of processor's cores.The usage value will defined the way php will handle the children for the pool.A value set as 'low' will set the process manager to 'ondemand'. Children will start only if the service is used, otherwise no child will stay alive. This config gives the lower footprint when the service is idle. But will use more proc since it has to start a child as soon it's used.Set as 'medium', the process manager will be at dynamic. If the service is idle, a number of children equal to pm.min_spare_servers will stay alive. So the service can be quick to answer to any request. The number of children can grow if needed. The footprint can stay low if the service is idle, but not null. The impact on the proc is a little bit less than 'ondemand' as there's always a few children already available.Set as 'high', the process manager will be set at 'static'. There will be always as many children as 'pm.max_children', the footprint is important (but will be set as maximum a quarter of the maximum RAM) but the impact on the proc is lower. The service will be quick to answer as there's always many children ready to answer.Requires YunoHost version 2.7.2 or higher.Requires YunoHost version 3.5.1 or higher for the argument --phpversionRequires YunoHost version 3.8.1 or higher for the arguments --use_template, --usage, --footprint, --package and --dedicated_service
-
-p, --db_pwd= : Password of the database. If not provided, a password will be generated
-
-
-
-
-
-
-
-
-
-
- Details:
-
- After executing this helper, the password of the created database will be available in $db_pwdIt will also be stored as "psqlpwd" into the app settings.Requires YunoHost version 2.7.13 or higher.
-
Create a master password and set up global settings
-It also make sure that postgresql is installed and running
-Please always call this script in install and restore scripts
-m, --match_string= : String to be searched and replaced in the file
-
-
-
-
-r, --replace_string= : String that will replace matches
-
-
-
-
-f, --target_file= : File in which the string will be replaced.
-
-
-
-
-
-
-
-
-
-
- Details:
-
- As this helper is based on sed command, regular expressions andreferences to sub-expressions can be used(see sed manual page for more information)Requires YunoHost version 2.6.4 or higher.
-
-m, --match_string= : String to be searched and replaced in the file
-
-
-
-
-r, --replace_string= : String that will replace matches
-
-
-
-
-t, --target_file= : File in which the string will be replaced.
-
-
-
-
-
-
-
-
-
-
- Details:
-
- This helper will use ynh_replace_string, but as you can use specialcharacters, you can't use some regular expressions and sub-expressions.Requires YunoHost version 2.7.7 or higher.
-
-
- Usage: ynh_add_systemd_config [--service=service] [--template=template]
-ynh_add_systemd_config [--service=service] [--template=template] [--others_var="list of others variables to replace"]
-
-
-
-
- Arguments:
-
-
-
-
-s, --service= : Service name (optionnal, $app by default)
-
-
-
-
-t, --template= : Name of template file (optionnal, this is 'systemd' by default, meaning ./conf/systemd.service will be used as template)
-
-
-
-
-v, --others_var= : List of others variables to replace separated by a space. For example: 'var_1 var_2 ...'
-
-
-
-
-
-
-
-
-
-
- Details:
-
- This will use the template ../conf/.serviceto generate a systemd config, by replacing the following keywordswith global variables that should be defined before callingthis helper :__APP__ by $app __FINALPATH__ by $final_pathAnd dynamic variables (from the last example) : __VAR_1__ by $var_1 __VAR_2__ by $var_2Requires YunoHost version 2.7.11 or higher.
-
-n, --service_name= : Name of the service to start. Default : $app
-
-
-
-
-a, --action= : Action to perform with systemctl. Default: start
-
-
-
-
-l, --line_match= : Line to match - The line to find in the log to attest the service have finished to boot. If not defined it don't wait until the service is completely started. WARNING: When using --line_match, you should always add `ynh_clean_check_starting` into your `ynh_clean_setup` at the beginning of the script. Otherwise, tail will not stop in case of failure of the script. The script will then hang forever.
-
-
-
-
-p, --log_path= : Log file - Path to the log file. Default : /var/log/$app/$app.log
-
-
-
-
-t, --timeout= : Timeout - The maximum time to wait before ending the watching. Default : 300 seconds.
-
-
-
-
-e, --length= : Length of the error log : Default : 20
-u, --username= : Name of the system user that will be create
-
-
-
-
-h, --home_dir= : Path of the home dir for the user. Usually the final path of the app. If this argument is omitted, the user will be created without home
-
-
-
-
-s, --use_shell : Create a user using the default login shell if present. If this argument is omitted, the user will be created with /usr/sbin/nologin shell
-
-
-
-
-
-
-
-
-
- Examples:
-
-
- Create a nextcloud user with no home directory and /usr/sbin/nologin login shell (hence no login capability)
-
-
-
-
- ynh_system_user_create --username=nextcloud
-
-
-
-
- Create a discourse user using /var/www/discourse as home directory and the default login shell
-
-
-
-
- ynh_system_user_create --username=discourse --home_dir=/var/www/discourse --use_shell
-
-
-
-
Exits if an error occurs during the execution of the script.
-
-
-
-
-
- Usage: ynh_abort_if_errors
-
-
-
-
-
-
-
-
- Details:
-
- This configure the rest of the script execution such that, if an error occursor if an empty variable is used, the execution of the script stopsimmediately and a call to `ynh_clean_setup` is triggered if it has beendefined by your script.Requires YunoHost version 2.6.4 or higher.
-
-d, --dest_dir= : Directory where to setup sources
-
-
-
-
-s, --source_id= : Name of the app, if the package contains more than one app
-
-
-
-
-
-
-
-
-
-
- Details:
-
- The file conf/app.src need to contains:SOURCE_URL=Address to download the app archiveSOURCE_SUM=Control sum# (Optional) Program to check the integrity (sha256sum, md5sum...)# default: sha256SOURCE_SUM_PRG=sha256# (Optional) Archive format# default: tar.gzSOURCE_FORMAT=tar.gz# (Optional) Put false if sources are directly in the archive root# default: true# Instead of true, SOURCE_IN_SUBDIR could be the number of sub directories# to remove.SOURCE_IN_SUBDIR=false# (Optionnal) Name of the local archive (offline setup support)# default: ${src_id}.${src_format}SOURCE_FILENAME=example.tar.gz# (Optional) If it set as false don't extract the source.# (Useful to get a debian package or a python wheel.)# default: trueSOURCE_EXTRACT=(true|false)Details:This helper downloads sources from SOURCE_URL if there is no local sourcearchive in /opt/yunohost-apps-src/APP_ID/SOURCE_FILENAMENext, it checks the integrity with "SOURCE_SUM_PRG -c --status" command.If it's ok, the source archive will be uncompressed in $dest_dir. If theSOURCE_IN_SUBDIR is true, the first level directory of the archive will beremoved.If SOURCE_IN_SUBDIR is a numeric value, 2 for example, the 2 first leveldirectories will be removedFinally, patches named sources/patches/${src_id}-*.patch and extra files insources/extra_files/$src_id will be applied to dest_dirRequires YunoHost version 2.6.4 or higher.
-
- For multiple calls, cookies are persisted between each call for the same app$domain and $path_url should be defined externally (and correspond to the domain.tld and the /path (of the app?))Requires YunoHost version 2.6.4 or higher.
-
- The template can be by default the name of a file in the conf directoryof a YunoHost Package, a relative path or an absolute pathThe helper will use the template $template to generate a config file$destination by replacing the following keywords with global variablesthat should be defined before calling this helper : __PATH__ by $path_url __NAME__ by $app __NAMETOCHANGE__ by $app __USER__ by $app __FINALPATH__ by $final_path __PHPVERSION__ by $YNH_PHP_VERSION __YNH_NODE_LOAD_PATH__ by $ynh_node_load_PATHAnd any dynamic variables that should be defined before calling this helper like: __DOMAIN__ by $domain __APP__ by $app __VAR_1__ by $var_1 __VAR_2__ by $var_2The helper will verify the checksum and backup the destination fileif it's different before applying the new template.And it will calculate and store the destination file checksuminto the app settings when configuration is done.Requires YunoHost version 4.1.0 or higher.
-
- Returns: the version number of the upstream app
-
-
-
-
-
-
- Details:
-
- The version number in the manifest is defined by ~ynhFor example : 4.3-2~ynh3This include the number before ~ynhIn the last example it return 4.3-2Requires YunoHost version 3.5.0 or higher.
-
- The version number in the manifest is defined by ~ynhFor example : 4.3-2~ynh3This include the number after ~ynhIn the last example it return 3Requires YunoHost version 3.5.0 or higher.
-
Checks the app version to upgrade with the existing app version and returns:
-
-
-
-
-
- Usage: ynh_check_app_version_changed
-
-
-
-
-
-
-
-
- Details:
-
- - UPGRADE_PACKAGE if only the YunoHost package has changed- UPGRADE_APP otherwiseThis helper should be used to avoid an upgrade of an app, or the upstream partof it, when it's not neededTo force an upgrade, even if the package is up to date,you have to use the parameter --force (or -F).example: sudo yunohost app upgrade MyApp --forceRequires YunoHost version 3.5.0 or higher.
-
Compare the current package version against another version given as an argument.
-This is really useful when we need to do some actions only for some old package versions.
-
-
-
-
-
- Usage: ynh_compare_current_package_version --comparison lt|le|eq|ne|ge|gt
-| eq (equal), ne (not equal), ge (greater or equal), gt (greater than)
-
-
-
-
- Arguments:
-
-
-
-
--comparison : Comparison type. Could be : lt (lower than), le (lower or equal),
-
-
-
-
--version : The version to compare. Need to be a version in the yunohost package version type (like 2.3.1~ynh4)
-
-
-
-
-
-
-
-
- Example: ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1 This example will check if the installed version is lower than (lt) the version 2.3.2~ynh1
-
-
-
-
-
- Details:
-
- Generally you might probably use it as follow in the upgrade scriptif ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1then # Do something that is needed for the package version older than 2.3.2~ynh1fiReturn 0 if the evaluation is true. 1 if false.Requires YunoHost version 3.8.0 or higher.
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/00.home/docs.fr.md b/pages/00.home/docs.fr.md
new file mode 100644
index 00000000..99504d71
--- /dev/null
+++ b/pages/00.home/docs.fr.md
@@ -0,0 +1,30 @@
+---
+title: Bienvenue!
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/docs'
+ aliases:
+ - '/'
+visible: false
+---
+
+Ce site contiens la documentation de [YunoHost, un système d'exploitation libre qui vise à simplifier l'administration d'un serveur et à démocratiser l'auto-hébergement](/whatsyunohost).
+
+En tant que futur jardinier de votre propre serveur, commencez par visiter le [guide de l'administrateur](/admindoc) pour en savoir plus sur l'autohébergement, comment installer votre serveur, et installer vos premières applications.
+
+Vous pouvez explorer ici le [catalogue d'application](/apps) installable sur votre serveur (bien qu'il soit aussi consultable directement depuis votre interface d'administration !)
+
+La [communauté](/community) est là si vous avez besoin d'aide : venez discuter sur les [salons de discussions](/chat_rooms) ou posez vos questions sur le [forum](/community/forum) !
+
+[center]
+
+ Guide d'administration
+ Applications
+ Communauté
+ Contribuer
+
+[/center]
+
+!!!! Pour naviguer dans cette documentation, vous pouvez utiliser les flèches gauches et droites. Utilisez le [fa=bars /] panneau latéral pour aller directement dans les sections qui vous intéresse ou en utilisant la [fa=search /] barre de recherche. Enjoy!
diff --git a/pages/00.home/docs.md b/pages/00.home/docs.md
new file mode 100644
index 00000000..62ee92cc
--- /dev/null
+++ b/pages/00.home/docs.md
@@ -0,0 +1,30 @@
+---
+title: Welcome!
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/docs'
+ aliases:
+ - '/'
+visible: false
+---
+
+This is the documentation for [YunoHost, a libre operating system aiming to simplify server administration and democratize self-hosting](/whatsyunohost).
+
+As a soon-to-be administrator of your own server, go to the [Admin guide](/admindoc) to learn more about self-hosting, how to install your YunoHost server and install your first apps.
+
+You can check out the [application catalog](/apps) to browse apps that can be installed on a server (though you can also explore it directly from your admin interface !)
+
+The [Community](/community) is here for you if you need some help : come [chat](/chat_rooms) with us or reach out on the [forum](/community/forum) !
+
+[center]
+
+ Administrator's guide
+ Applications
+ Community
+ Get involved
+
+[/center]
+
+!!!! To navigate this documentation, you can use your left and right arrow keys. Browse directly to the section you want with the [fa=bars /] side panel, or using the [fa=search /] search box. Enjoy!
diff --git a/selfhosting_de.md b/pages/01.administrate/01.selfhosting/selfhosting.de.md
similarity index 97%
rename from selfhosting_de.md
rename to pages/01.administrate/01.selfhosting/selfhosting.de.md
index 4272963c..892d5178 100644
--- a/selfhosting_de.md
+++ b/pages/01.administrate/01.selfhosting/selfhosting.de.md
@@ -1,4 +1,11 @@
-# Self-Hosting
+---
+title: Self-Hosting
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/selfhosting'
+---
Self-Hosting ist das Hosten von Daten oder Software auf eigener IT-Infrastruktur.
Ihren eigenen Server zu Hause zu haben und zu verwalten, um Ihre persönlichen Daten und Dienste selbst zu hosten, anstatt sich ausschließlich auf Dritte zu verlassen. Beispielsweise können Sie Ihren Blog selbst hosten, sodass er auf einem Computer "lebt", über den Sie die Kontrolle haben, anstatt ihn im Austausch gegen Geld, Werbung oder private Daten auf dem Computer eines anderen Benutzers (a.k.a. The Cloud) zu haben.
diff --git a/selfhosting_fr.md b/pages/01.administrate/01.selfhosting/selfhosting.fr.md
similarity index 97%
rename from selfhosting_fr.md
rename to pages/01.administrate/01.selfhosting/selfhosting.fr.md
index 86b40080..cfa35316 100644
--- a/selfhosting_fr.md
+++ b/pages/01.administrate/01.selfhosting/selfhosting.fr.md
@@ -1,4 +1,11 @@
-# L’auto-hébergement
+---
+title: L'auto-hébergement
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/selfhosting'
+---
L'auto-hébergement est le fait d'avoir et d'administrer son propre serveur, typiquement chez soi, pour héberger soi-même ses données personnelles et des services plutôt que de se reposer exclusivement sur des tiers. Par exemple, il est possible d'auto-héberger son blog de sorte qu'il "vive" dans une machine que vous contrôlez, au lieu qu'il soit sur l'ordinateur de quelqu'un d'autre (a.k.a. le Cloud) en échange d'argent, de publicités ou de données privées.
diff --git a/selfhosting.md b/pages/01.administrate/01.selfhosting/selfhosting.md
similarity index 97%
rename from selfhosting.md
rename to pages/01.administrate/01.selfhosting/selfhosting.md
index 2ab4f82c..9dadb2b1 100644
--- a/selfhosting.md
+++ b/pages/01.administrate/01.selfhosting/selfhosting.md
@@ -1,4 +1,11 @@
-# Self-hosting
+---
+title: Self-hosting
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/selfhosting'
+---
Self-hosting is the activity of having and administrating your own server, typically at home, to host your personal data and services yourself instead of relying exclusively on third-parties. For instance, you can self-host your blog, such that it 'lives' on a machine that you have control of, instead of having it on somebody else's computer (a.k.a. The Cloud) in exchange for money, advertisement or private data.
diff --git a/selfhosting_ru.md b/pages/01.administrate/01.selfhosting/selfhosting.ru.md
similarity index 89%
rename from selfhosting_ru.md
rename to pages/01.administrate/01.selfhosting/selfhosting.ru.md
index ec11365b..8453bd6c 100644
--- a/selfhosting_ru.md
+++ b/pages/01.administrate/01.selfhosting/selfhosting.ru.md
@@ -1,10 +1,17 @@
-# Самостоятельное развертывание (свой хостинг)
+---
+title: Самостоятельное развертывание (свой хостинг)
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/selfhosting'
+---
#### Значение
**Свой хостинг** - это сервер, расположенный у вас дома и предназначенный для размещения информации для личных нужд.
#### Обязанности администратора
-Свой хостинг создает для вас определенные обязанности, если вы хотите разместить на нём сайт, [e-mail](/email), а также запустить [систему мгновенных сообщений](XMPP), ваш сервер должен работать и оставаться онлайн 24/7.
+Свой хостинг создает для вас определенные обязанности, если вы хотите разместить на нём сайт, [e-mail](/email), а также запустить [систему мгновенных сообщений](/XMPP), ваш сервер должен работать и оставаться онлайн 24/7.
Распространенные проблемы, по причине которых сервер может быть недоступен включают в себя: отсутствие электроэнергии, потеря доступа к Интернету, итд.
@@ -20,7 +27,7 @@
* Вы - единственный хозяин ваших данных и сервисов;
* Возможность децентрализации и использования распределенных сетей;
-
+
#### Другие проекты, предназначенные для самостоятельного развертывания
##### В активной разработке
diff --git a/whatsyunohost_ar.md b/pages/01.administrate/02.whatisyunohost/whatsyunohost.ar.md
similarity index 71%
rename from whatsyunohost_ar.md
rename to pages/01.administrate/02.whatisyunohost/whatsyunohost.ar.md
index d1776397..dc13bdf2 100644
--- a/whatsyunohost_ar.md
+++ b/pages/01.administrate/02.whatisyunohost/whatsyunohost.ar.md
@@ -1,17 +1,21 @@
-#
واي يونوهوست YunoHost هو **نظام لتشغيل الخوادم** صُمِّم لتسهيل الإستضافة الذاتية لخدمات الإنترنت.
-هو مُرتكز و منسجم كافة الإنسجام مع توزيعة [غنو/لينكس ديبيان](https://debian.org).
-
-
-
+هو مُرتكز و منسجم كافة الإنسجام مع توزيعة غنو/لينكس ديبيان.
---
-###
خصائصه
+### خصائصه
-
- متعدد المستعملين مع تكامُل LDAP
- متعدد النطاقات
- خدمة البريد الإلكتروني
@@ -20,68 +24,59 @@
- نظام للتطبيقات
- نظام للنسخ الإحتياطي
- نظام لإعادة توليد الإعدادات و الخدمات
-
-
-
---
-###
أصل فكرة المشروع
+### أصل فكرة المشروع
+
-
تعود نشأة فكرة مشروع واي يونوهوست YunoHost إلى شهر فيفري مِن عام 2012 بعد محادثة بدأت على هذا الشكل تقريبًا :
-
-
« تبًا، لقد سئِمتُ مِن إعادة إعداد خادم البريد الإلكتروني ... Beudbeud، كيف قُمتَ بإعداد خادومك الجميل حول LDAP ؟ »
+
+
« تبًا، لقد سئِمتُ مِن إعادة إعداد خادم البريد الإلكتروني ... Beudbeud، كيف قُمتَ بإعداد خادومك الجميل حول LDAP ؟ »
Kload، فيفري 2012
-
Il ne manquait en fait qu’une interface d’administration au serveur de Beudbeud pour en faire quelque chose d’exploitable, alors Kload a décidé de la développer. Finalement, après l’automatisation de quelques configurations et le packaging de quelques applications web, la première version de YunoHost était sortie.
Constatant l’engouement croissant autour de YunoHost et de l’auto-hébergement en général, les développeurs et les nouveaux contributeurs ont alors décidé de prendre le cap d’une version 2, plus accessible, plus extensible, plus puissante, et qui prépare du bon café commerce équitable pour les lutins de Laponie.
-
---
-###
الهدف
-
+### الهدف
+
يهدف واي يونوهوست YunoHost إلى تسهيل عملية تنصيب و تثبيت و إدارة أي خادمٍ لأكبر عدد ممكن مِن الناس و ذلك دون المساس بجودة و موثوقية البرمجيات.
لم يُدَّخر أي جهد لتسهيل عملية التنصيب و الإنبساط وذلك على أكبر عدد ممكن مِن الأجهزة مهما اختلفت مميزات كل جهاز (في المنزل أو على خادوم إستضافة أو على خادوم شخصي إفتراضي)
-
---
-###
التسمية
+### التسمية
-
-**YunoHost** مُستمَدٌّ مِن لُغة الإنترنت العاميّة « Y U NO Host » و بالمعنى التقريبي « لماذا لا تستضيف نفسك بنفسك ». [ميم الإنترنت](https://ar.m.wikipedia.org/wiki/%D9%85%D9%8A%D9%85_%D8%A5%D9%86%D8%AA%D8%B1%D9%86%D8%AA) الذي يصف المعنى بالتقريب هو :
-
-
+**YunoHost** مُستمَدٌّ مِن لُغة الإنترنت العاميّة « Y U NO Host » و بالمعنى التقريبي « لماذا لا تستضيف نفسك بنفسك ». ميم الإنترنت الذي يصف المعنى بالتقريب هو :
+
---
-###
التطوير
+### التطوير
YunoHost est développé pour être le plus **simple** et le moins intrusif possible pour garder la compatibilité avec Debian. Il propose uniquement un ensemble de configurations automatiques et opère via des interfaces accessibles.
Le tout est bien entendu **entièrement libre**. La philosophie de l’[الإستضافة الذاتية](/selfhosting) étant à nos yeux incompatible avec tout autre modèle de développement logiciel.
-لا تتردّدوا في زيارة صفحة « [ساهموا](/contribute) ».
-
+### الأمان
+
+لقد بُذِلت كل المجهودات مِن أجل تأمين واي يونوهوست YunoHost و **تعمية و تشفير البروتوكولات** . بإمكانكم الإطلاع على الشرح بتفاصيليه هنا.
-لقد بُذِلت كل المجهودات مِن أجل تأمين واي يونوهوست YunoHost و **تعمية و تشفير البروتوكولات** . بإمكانكم الإطلاع على الشرح بتفاصيليه [هنا](/security).
-
---
-###
واي يونوهوست YunoHost ليس
+### واي يونوهوست YunoHost ليس
Même si YunoHost est multi-domaine et multi-utilisateur, il reste **inapproprié pour un usage mutualisé**.
Premièrement parce que le logiciel est trop jeune, donc non-testé et non-optimisé pour être mis en production pour des centaines d’utilisateurs en même temps. Et quand bien même, ce n’est pas le chemin que l’on souhaite faire suivre à YunoHost. La virtualisation se démocratise, et c’est une façon bien plus étanche et sécurisée de faire de la mutualisation.
Vous pouvez héberger vos amis, votre famille ou votre entreprise sans problème, mais vous devez **avoir confiance** en vos utilisateurs, et ils doivent de la même façon avoir confiance en vous. Si vous souhaitez tout de même fournir des services YunoHost à des inconnus, **un VPS entier par utilisateur** sera la meilleure solution.
-
+
diff --git a/pages/01.administrate/02.whatisyunohost/whatsyunohost.de.md b/pages/01.administrate/02.whatisyunohost/whatsyunohost.de.md
new file mode 100644
index 00000000..6ab27348
--- /dev/null
+++ b/pages/01.administrate/02.whatisyunohost/whatsyunohost.de.md
@@ -0,0 +1,56 @@
+---
+title: Was ist YunoHost?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/whatsyunohost'
+---
+
+
+
+YunoHost ist ein **Betriebssystem**, das auf die einfachste Verwaltung eines **Servers** abzielt und daher das [Self-Hosting](/selfhosting) demokratisiert, wobei sichergestellt wird, dass es zuverlässig, sicher, ethisch einwandfrei und leichtgewichtig bleibt. Es ist ein Copylefted-Libre-Softwareprojekt, das ausschließlich von Freiwilligen betrieben wird. Technisch gesehen kann es als eine Distribution angesehen werden, die auf [Debian GNU/Linux](https://debian.org) basiert und auf [vielen Arten von Hardware](/install) installiert werden kann.
+
+## Features
+
+-  Basierend auf Debian ;
+-  Verwalten Sie Ihren Server über eine **benutzerfreundliche Weboberfläche** ;
+-  Bereitstellen von **Apps mit nur wenigen Klicks** ;
+-  Verwalten Sie **Benutzer** (basierend auf LDAP) ;
+-  Verwalten Sie Ihre **Domainnamen** ;
+-  Erstellen und Wiederherstellen von **Backups** ;
+-  Stellen Sie über das **Benutzerportal** (NGINX, SSOwat) gleichzeitig eine Verbindung zu allen Apps her ;
+-  Enthält einen **vollständigen E-Mail-Stack** (Postfix, Dovecot, Rspamd, DKIM) ;
+-  … sowie **einen Instant Messaging Server** (XMPP) ;
+-  Verwaltet **SSL-Zertifikate** (basierend auf Let's Encrypt) ;
+-  … und **Sicherheitssysteme** (fail2ban, yunohost-firewall) ;
+
+## Ursprung
+
+YunoHost wurde im Februar 2012 aus folgender Situation heraus erstellt:
+
+
"Scheiße, ich bin zu faul, um meinen Mailserver neu zu konfigurieren ... Beudbeud, wie hast Du deinen kleinen Server mit LDAP zum Laufen gebracht?"
Kload, Februar 2012
+
+Alles, was benötigt wurde, war eine Administrationsoberfläche für Beudbeud's Server, um etwas nutzbar zu machen, also entschied sich Kload, eine zu entwickeln. Schließlich wurde YunoHost v1, nach der Automatisierung mehrerer Konfigurationen und der Paketierung in einigen Webanwendungen, fertiggestellt.
+
+Angesichts der wachsenden Begeisterung für YunoHost und für das Selbst-Hosting im Allgemeinen beschlossen die ursprünglichen Entwickler zusammen mit neuen Mitarbeitern, mit der Arbeit an Version 2 zu beginnen, einer erweiterbaren, leistungsfähigeren, benutzerfreundlicheren und damit einfacheren Version eine schöne Tasse Fairtrade-Kaffee für die Elfen von Lappland.
+
+Der Name **YunoHost** stammt aus dem Jargon "Y U NO Host". Das [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) sollte dies veranschaulichen:
+
+
+## Was YunoHost nicht ist?
+
+Selbst wenn YunoHost mehrere Domains und mehrere Benutzer verwalten kann, ist es **nicht als ein mutualisiertes System gedacht**.
+
+Erstens ist die Software noch sehr jung, nicht auf ihre Skalierbarkeit getestet und daher wahrscheinlich nicht gut genug optimiert für Hunderte von Benutzern gleichzeitig. Vor diesem Hintergrund möchten wir die Software nicht in diese Richtung lenken. Die Virtualisierung demokratisiert sich und ihre Verwendung wird empfohlen, da sie eine wasserdichtere Methode zur Erzielung von Gegenseitigkeit darstellt als ein "Full-Stack"-System wie YunoHost.
+
+Sie können Ihre Freunde, Ihre Familie und Ihr Unternehmen sicher und problemlos aufnehmen, aber Sie müssen **Ihren Benutzern vertrauen**, und diese müssen vor allem Ihnen vertrauen. Wenn Sie ohnehin YunoHost-Dienste für unbekannte Personen bereitstellen möchten, ist ein vollständiger VPS pro Benutzer in Ordnung, und wir glauben, dass dies ein besserer Weg ist.
+
+## Artworks
+
+Schwarz und Weiss YunoHost PNG logo by ToZz (400 × 400 px):
+
+
+
+
+Licence: CC-BY-SA 4.0
diff --git a/pages/01.administrate/02.whatisyunohost/whatsyunohost.es.md b/pages/01.administrate/02.whatisyunohost/whatsyunohost.es.md
new file mode 100644
index 00000000..417f9676
--- /dev/null
+++ b/pages/01.administrate/02.whatisyunohost/whatsyunohost.es.md
@@ -0,0 +1,57 @@
+---
+title: Qué es YunoHost?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/whatsyunohost'
+---
+
+
+
+YunoHost es un **sistema operativo** que persigue simplificar la administración de un **servidor** para democratizar el [autoalojamiento](/selfhosting), asegurando que se mantiene fiable, seguro, ético y ligero. Es un proyecto de software libre copyleft mantenido exclusivamente por voluntarios. Se puede considerar técnicamente como una distribución basada en [Debian GNU/Linux](https://debian.org) y se puede instalar en [muchos tipos de hardware](/install).
+
+## Características
+
+-  Basado en Debian ;
+-  Administra tu servidor mediante un **interfaz web amigable** ;
+-  Despliega **apps en sólo unos pocos clics** ;
+-  Administra **usuarios** (con soporte en LDAP);
+-  Administra **nombres de dominio** ;
+-  Crea y restaura **copias de respaldo** ;
+-  Conecta simultáneamente a todas las apps mediante el **portal del usuario** (NGINX, SSOwat) ;
+-  Incluye una **instalación completa de correo electrónico** (Postfix, Dovecot, Rspamd, DKIM) ;
+-  … así como **un servidor de mensajería instanea** (XMPP) ;
+-  Administra **certificados SSL** (apoyándose en Let's Encrypt) ;
+-  … y **sistemas de seguridad** (fail2ban, yunohost-firewall) ;
+
+## Origen
+
+YunoHost se creó en Febrero de 2012 tras algo así:
+
+
"¡Mierda, soy muy vago para reconfigurar mi servidor de correo!… Beudbeud, ¿Cómo hiciste para conectar tu pequeño servidor a LDAP?"
+Kload, Febrero de 2012
+
+Todo lo que se necesitaba para hacer algo útil era un interfaz de admin para el servidor de Beudbeud, así que Kload decidió desarrollar uno. Finalmente, tras automatizar varias configuraciones y empaquetar algunas apps web, YunoHost v1 quedó terminado.
+
+Notando un entusiasmo creciente alrededor de YunoHost y el autoalojamiento en general, los desarrolladores originales junto con nuevos participantes decidieron comenzar a trabajar en la versión 2, más extensible, potente, fácil de usar, y ya de paso preparar una taza de café de comercio justo para los elfos de Laponia.
+
+El nombre **YunoHost** viene de la jerga "Y U NO Host". El [meme de Internet ](https://en.wikipedia.org/wiki/Internet_meme) debería ilustrarlo:
+
+
+## ¿Qué no es YunoHost?
+
+Incluso aunque YunoHost puede manejar multiples dominios y multiples usuarios, **no está diseñado para ser un sistema mancomunado**.
+
+Primero, el software es demasiado joven, no está probado a gran escala y por tanto probáblemente tampoco suficientemente optimizado para centenares de usuarios a la vez. Dicho esto, no queremos llevar al software en esa dirección. La virtualización se democratiza y se recomienda usarla ya que es un modo más impermeable de lograr mutualización que un sistema "monolítico" como YunoHost.
+
+Puedes alojar a tus amistades, tu familia y a tu compañía con facilidad y seguridad, pero tienes que **confiar en tus usarios**, y sobre todo ellos tienen que confiar en tí. Si aún así quieres proveer servicios YunoHost a desconocidos, creemos que es mejor un VPS por usuario.
+
+## Arte
+
+PNG con el logotipo de YunoHost en blanco y negro por ToZz (400 × 400 px):
+
+
+
+
+Licencia: CC-BY-SA 4.0
diff --git a/whatsyunohost_fr.md b/pages/01.administrate/02.whatisyunohost/whatsyunohost.fr.md
similarity index 58%
rename from whatsyunohost_fr.md
rename to pages/01.administrate/02.whatisyunohost/whatsyunohost.fr.md
index 6ab914a1..c140cb52 100644
--- a/whatsyunohost_fr.md
+++ b/pages/01.administrate/02.whatisyunohost/whatsyunohost.fr.md
@@ -1,22 +1,29 @@
-# Qu’est-ce que YunoHost ?
+---
+title: Qu'est-ce que YunoHost ?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/whatsyunohost'
+---
-
+
YunoHost est un **système d’exploitation** qui vise à simplifier autant que possible l'administration d'un **serveur** pour ainsi démocratiser [l’auto-hébergement](/selfhosting) tout en restant fiable, sécurisé, éthique et léger. C'est un projet de logiciel libre maintenu exclusivement par des bénévoles. Techniquement, il peut être vu comme une distribution basée sur [Debian GNU/Linux](https://debian.org) et peut s'installer sur [de nombreux types de matériel](/install).
## Fonctionnalités
-- basé sur Debian ;
-- administration via une **interface web simple et claire** ;
-- déployez des **applications en quelques clics** ;
-- ajoutez des **utilisateurs** (gérés via un annuaire LDAP) ;
-- gérez des **noms de domaine** ;
-- créez et restaurez des **sauvegardes** ;
-- connexion simultanée à toutes les apps via un **portail utilisateur** (nginx, SSOwat) ;
-- fourni avec un **serveur mail complet** (Postfix, Dovecot, Rspamd, DKIM) ;
-- ... ainsi qu'un **serveur de messagerie instantanée** (XMPP) ;
-- gère les **certificats SSL** (basé sur Let's Encrypt) ;
-- ... et des **systèmes de sécurité** (Fail2Ban, yunohost-firewall) ;
+-  basé sur Debian ;
+-  administration via une **interface web simple et claire** ;
+-  déployez des **applications en quelques clics** ;
+-  ajoutez des **utilisateurs** (gérés via un annuaire LDAP) ;
+-  gérez des **noms de domaine** ;
+-  créez et restaurez des **sauvegardes** ;
+-  connexion simultanée à toutes les apps via un **portail utilisateur** (nginx, SSOwat) ;
+-  fourni avec un **serveur mail complet** (Postfix, Dovecot, Rspamd, DKIM) ;
+-  ... ainsi qu'un **serveur de messagerie instantanée** (XMPP) ;
+-  gère les **certificats SSL** (basé sur Let's Encrypt) ;
+-  ... et des **systèmes de sécurité** (Fail2Ban, yunohost-firewall) ;
## Origine
@@ -30,7 +37,7 @@ Il ne manquait en fait qu’une interface d’administration au serveur de Beudb
Constatant l’engouement croissant autour de YunoHost et de l’auto-hébergement en général, les développeurs et les nouveaux contributeurs ont alors décidé de prendre le cap d’une version 2, plus accessible, plus extensible, plus puissante, et qui prépare du bon café commerce équitable pour les lutins de Laponie.
Le nom **YunoHost** vient de l’argot Internet anglais « Y U NO Host » signifiant approximativement « Pourquoi toi ne pas héberger ». Le [mème Internet](http://fr.wikipedia.org/wiki/M%C3%A8me_Internet) qui l’illustre est à peu près celui-ci :
-
+
## Qu’est-ce que YunoHost n’est pas ?
@@ -44,10 +51,7 @@ Vous pouvez héberger vos amis, votre famille ou votre entreprise sans problème
Logo YunoHost noir et blanc réalisé par ToZz (400 × 400 px) :
-
-
-
-
-Cliquer pour télécharger.
+[](image://ynh_logo_black_300dpi.png)
+[](image://ynh_logo_white_300dpi.png)
Licence: CC-BY-SA 4.0
diff --git a/pages/01.administrate/02.whatisyunohost/whatsyunohost.md b/pages/01.administrate/02.whatisyunohost/whatsyunohost.md
new file mode 100644
index 00000000..f4ba7e3f
--- /dev/null
+++ b/pages/01.administrate/02.whatisyunohost/whatsyunohost.md
@@ -0,0 +1,57 @@
+---
+title: What is YunoHost?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/whatsyunohost'
+---
+
+
+
+YunoHost is an **operating system** aiming for the simplest administration of a **server**, and therefore democratize [self-hosting](/selfhosting), while making sure it stays reliable, secure, ethical and lightweight. It is a copylefted libre software project maintained exclusively by volunteers. Technically, it can be seen as a distribution based on [Debian GNU/Linux](https://debian.org) and can be installed on [many kinds of hardware](/install).
+
+## Features
+
+-  Based on Debian;
+-  Administrate your server through a **friendly web interface** ;
+-  Deploy **apps in just a few clicks**;
+-  Manage **users** (based on LDAP);
+-  Manage **domain names**;
+-  Create and restore **backups**;
+-  Connect to all apps simultaneously through the **user portal** (NGINX, SSOwat);
+-  Includes a **full e-mail stack** (Postfix, Dovecot, Rspamd, DKIM);
+- ... as well as **an instant messaging server** (XMPP);
+-  Manages **SSL certificates** (based on Let's Encrypt) ;
+- ... and **security systems** (Fail2ban, yunohost-firewall);
+
+## Origin
+
+YunoHost was created in February 2012 after something like this:
+
+
"Shit, I'm too lazy to reconfigure my mail server... Beudbeud, how were you able to get your little server running with LDAP?"
+Kload, February 2012
+
+All that was needed was an admin interface for Beudbeud's server to make something usable, so Kload decided to develop one. Finally, after automating several configs and packaging in some web apps, YunoHost v1 was finished.
+
+Noting the growing enthusiasm around YunoHost and around self-hosting in general, the original developers along with new contributors decided to start work on version 2, a more extensible, more powerful, more easy-to-use, and at that, one that makes a nice cup of fair-trade coffee for the elves of Lapland.
+
+The name **YunoHost** comes from the jargon "Y U NO Host". The [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) should illustrate it:
+
+
+## What YunoHost is not?
+
+Even if YunoHost can handle multiple domains and multiple users, it is **not meant to be a mutualized system**.
+
+First, the software is too young, not tested at scale and thus probably not optimized well enough for hundreds of users at the same time. With that said, we do not want to lead the software in that direction. Virtualization democratizes, and its usage is recommended since it is a more watertight way to achieve mutualization than a "full-stack" system like YunoHost.
+
+You can host your friends, your family and your company safely and with ease, but you must **trust your users**, and they must trust you above all. If you want to provide YunoHost services for unknown persons anyway, a full VPS per user will be just fine, and we believe a better way to go.
+
+## Artworks
+
+Black and white YunoHost PNG logo by ToZz (400 × 400 px):
+
+
+
+
+Licence: CC-BY-SA 4.0
diff --git a/pages/01.administrate/03.tryyunohost/try.ar.md b/pages/01.administrate/03.tryyunohost/try.ar.md
new file mode 100644
index 00000000..3ee773d8
--- /dev/null
+++ b/pages/01.administrate/03.tryyunohost/try.ar.md
@@ -0,0 +1,24 @@
+---
+title: تجريب YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/try'
+---
+
+! **ملاحظة :** يمكن لهذا السيرفر التجريبي أن يتوقف من وقت إلى آخر.
+
+[center]
+[columns]
+[[fa=user /] واجهة المستخدم](https://demo.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+إسم المستخدم : demo
+كلمة السر : demo
+
+[[fa=cog /] واجهة الإدارة](https://demo.yunohost.org/yunohost/admin/?target=_blank&classes=btn,btn-lg,btn-primary)
+كلمة السر : demo
+
+[/columns]
+[/center]
+
+!!!! **تم توفير الخادم التجريبي بفضل [Gitoyen](https://www.gitoyen.net?target=_blank) [fa=heart /]**
diff --git a/pages/01.administrate/03.tryyunohost/try.ca.md b/pages/01.administrate/03.tryyunohost/try.ca.md
new file mode 100644
index 00000000..2f285899
--- /dev/null
+++ b/pages/01.administrate/03.tryyunohost/try.ca.md
@@ -0,0 +1,24 @@
+---
+title: Prova YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/try'
+---
+
+! **Nota:** Aquest és un servidor de demostració, podria estar caigut de tant en tant.
+
+[center]
+[columns]
+[[fa=user /] Interfície d'usuària](https://demo.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+Nom d'usuària: demo
+Contrasenya: demo
+
+[[fa=cog /] Interfície d'administració](https://demo.yunohost.org/yunohost/admin/?target=_blank&classes=btn,btn-lg,btn-primary)
+Contrasenya: demo
+
+[/columns]
+[/center]
+
+!!!! **Servidor de demostració amablement ofert per [Gitoyen](https://www.gitoyen.net?target=_blank) [fa=heart /]**
diff --git a/pages/01.administrate/03.tryyunohost/try.de.md b/pages/01.administrate/03.tryyunohost/try.de.md
new file mode 100644
index 00000000..fbcfb2a1
--- /dev/null
+++ b/pages/01.administrate/03.tryyunohost/try.de.md
@@ -0,0 +1,24 @@
+---
+title: YunoHost ausprobieren
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/try'
+---
+
+! **Hinweis:** Dieser Demo-Server könnte zeitweilig nicht erreichbar sein.
+
+[center]
+[columns]
+[[fa=user /] Anwendungen](https://demo.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+Username: demo
+Password: demo
+
+[[fa=cog /] Verwaltung](https://demo.yunohost.org/yunohost/admin/?target=_blank&classes=btn,btn-lg,btn-primary)
+Password: demo
+
+[/columns]
+[/center]
+
+!!!! **Demo-Server freundlicherweise zur Verfügung gestellt von [Gitoyen](https://www.gitoyen.net?target=_blank) [fa=heart /]**
diff --git a/pages/01.administrate/03.tryyunohost/try.es.md b/pages/01.administrate/03.tryyunohost/try.es.md
new file mode 100644
index 00000000..b6a7d411
--- /dev/null
+++ b/pages/01.administrate/03.tryyunohost/try.es.md
@@ -0,0 +1,24 @@
+---
+title: Probar YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/try'
+---
+
+! **Nota :** Este demo puede dejar de functionar de vez en cuando.
+
+[center]
+[columns]
+[[fa=user /] Interfaz de usuario](https://demo.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+Usuario : demo
+Contraseña : demo
+
+[[fa=cog /] Interfaz de administración](https://demo.yunohost.org/yunohost/admin/?target=_blank&classes=btn,btn-lg,btn-primary)
+Contraseña : demo
+
+[/columns]
+[/center]
+
+!!!! **El servidor de demo es ofrecido generosamente por [Gitoyen](https://www.gitoyen.net?target=_blank) [fa=heart /]**
diff --git a/pages/01.administrate/03.tryyunohost/try.fr.md b/pages/01.administrate/03.tryyunohost/try.fr.md
new file mode 100644
index 00000000..da8a3c86
--- /dev/null
+++ b/pages/01.administrate/03.tryyunohost/try.fr.md
@@ -0,0 +1,24 @@
+---
+title: Essayer YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/try'
+---
+
+! **Note :** Cette démo peut cesser de fonctionner de temps en temps.
+
+[center]
+[columns]
+[[fa=user /] Interface utilisateur](https://demo.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+Utilisateur : demo
+Mot de passe: demo
+
+[[fa=cog /] Interface d’administration](https://demo.yunohost.org/yunohost/admin/?target=_blank&classes=btn,btn-lg,btn-primary)
+Mot de passe: demo
+
+[/columns]
+[/center]
+
+!!!! **Le serveur de démo est fourni généreusement par [Gitoyen](https://www.gitoyen.net?target=_blank) [fa=heart /]**
diff --git a/pages/01.administrate/03.tryyunohost/try.it.md b/pages/01.administrate/03.tryyunohost/try.it.md
new file mode 100644
index 00000000..916e4770
--- /dev/null
+++ b/pages/01.administrate/03.tryyunohost/try.it.md
@@ -0,0 +1,24 @@
+---
+title: Prova YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/try'
+---
+
+! **Nota:** A volte questo server demo può essere irraggiungibile
+
+[center]
+[columns]
+[[fa=user /] Interfaccia utente](https://demo.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+Nome utente: demo
+Password: demo
+
+[[fa=cog /] Interfaccia amministrazione](https://demo.yunohost.org/yunohost/admin/?target=_blank&classes=btn,btn-lg,btn-primary)
+Password: demo
+
+[/columns]
+[/center]
+
+!!!! **Il server demo è gentilmente fornito da [Gitoyen](https://www.gitoyen.net?target=_blank) [fa=heart /]**
\ No newline at end of file
diff --git a/pages/01.administrate/03.tryyunohost/try.md b/pages/01.administrate/03.tryyunohost/try.md
new file mode 100644
index 00000000..024579ea
--- /dev/null
+++ b/pages/01.administrate/03.tryyunohost/try.md
@@ -0,0 +1,24 @@
+---
+title: Try YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/try'
+---
+
+! This demo server could be down from time to time.
+
+[center]
+[columns]
+[[fa=user /] User interface](https://demo.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+Username: demo
+Password: demo
+
+[[fa=cog /] Administration interface](https://demo.yunohost.org/yunohost/admin/?target=_blank&classes=btn,btn-lg,btn-primary)
+Password: demo
+
+[/columns]
+[/center]
+
+!!!! **Demo server gracefully provided by [Gitoyen](https://www.gitoyen.net?target=_blank) [fa=heart /]**
diff --git a/howtohostyourself_de.md b/pages/01.administrate/04.howtohostyourself/howtohostyourself.de.md
similarity index 93%
rename from howtohostyourself_de.md
rename to pages/01.administrate/04.howtohostyourself/howtohostyourself.de.md
index d764b8e3..24a513e4 100644
--- a/howtohostyourself_de.md
+++ b/pages/01.administrate/04.howtohostyourself/howtohostyourself.de.md
@@ -1,4 +1,11 @@
-# So hosten Sie selbst ?
+---
+title: So hosten Sie selbst ?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/howtohostyourself'
+---
Sie können zu Hause (auf einem kleinen Computer) oder auf einem Remote-Server hosten. Jede Lösung hat ihre Vor- und Nachteile:
@@ -7,7 +14,7 @@ Sie können zu Hause (auf einem kleinen Computer) oder auf einem Remote-Server h
Sie können zu Hause mit einem Einplatinencomputer oder einem überarbeiteten regulären Computer, der mit Ihrem Heimrouter verbunden ist, hosten.
- **Pros** : Sie haben die physische Kontrolle über die Maschine und müssen nur die Hardware kaufen;
-- **Cons** : Sie müssen [Ihre Internet-Router manuell konfigurieren](isp_box_config) und [sind möglicherweise von Ihrem Internet-Service-Provider eingeschränkt](isp).
+- **Cons** : Sie müssen [Ihre Internet-Router manuell konfigurieren](/isp_box_config) und [sind möglicherweise von Ihrem Internet-Service-Provider eingeschränkt](/isp).
### Zu Hause hinter einem VPN
@@ -25,7 +32,7 @@ Sie können einen virtuellen privaten Server oder eine dedizierte Maschine von [
### Summary
-
+
@@ -60,7 +67,7 @@ Sie können einen virtuellen privaten Server oder eine dedizierte Maschine von [
diff --git a/howtohostyourself_fr.md b/pages/01.administrate/04.howtohostyourself/howtohostyourself.fr.md
similarity index 92%
rename from howtohostyourself_fr.md
rename to pages/01.administrate/04.howtohostyourself/howtohostyourself.fr.md
index 497dee37..5f421888 100644
--- a/howtohostyourself_fr.md
+++ b/pages/01.administrate/04.howtohostyourself/howtohostyourself.fr.md
@@ -1,4 +1,11 @@
-# Choisir son mode d’autohébergement
+---
+title: Choisir son mode d'autohébergement
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/howtohostyourself'
+---
Vous pouvez vous auto-héberger à la maison (sur un petit ordinateur), ou sur un serveur distant. Chaque solution a ses avantages et inconvénients :
@@ -7,7 +14,7 @@ Vous pouvez vous auto-héberger à la maison (sur un petit ordinateur), ou sur u
Vous pouvez vous héberger chez vous, sur une carte ARM ou un vieil ordinateur, connecté à votre box internet.
- **Avantages** : vous aurez un contrôle physique sur la machine et avez seulement besoin d'acheter le matériel initial ;
-- **Inconvénients** : il vous faudra [configurer manuellement votre box internet](isp_box_config) et serez possiblement [limité par certains aspects de votre fournisseur d'accès internet](isp).
+- **Inconvénients** : il vous faudra [configurer manuellement votre box internet](/isp_box_config) et serez possiblement [limité par certains aspects de votre fournisseur d'accès internet](/isp).
### À la maison, derrière un VPN
@@ -25,7 +32,7 @@ Vous pouvez louer un serveur privé virtuel ou une machine dédiée à des hébe
### Résumé
-
+
@@ -60,7 +67,7 @@ Vous pouvez louer un serveur privé virtuel ou une machine dédiée à des hébe
@@ -80,4 +87,4 @@ Vous pouvez louer un serveur privé virtuel ou une machine dédiée à des hébe
Généralement bonne
-
+
\ No newline at end of file
diff --git a/howtohostyourself.md b/pages/01.administrate/04.howtohostyourself/howtohostyourself.md
similarity index 94%
rename from howtohostyourself.md
rename to pages/01.administrate/04.howtohostyourself/howtohostyourself.md
index b6ea7d0f..1be0dd10 100644
--- a/howtohostyourself.md
+++ b/pages/01.administrate/04.howtohostyourself/howtohostyourself.md
@@ -1,4 +1,11 @@
-# How to host yourself?
+---
+title: How to host yourself?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/howtohostyourself'
+---
You can host yourself at home (on a small computer), or on a remote server. Each solution has their pros and cons:
@@ -7,7 +14,7 @@ You can host yourself at home (on a small computer), or on a remote server. Each
You can host yourself at home with an ARM board or a re-purposed regular computer, connected to your home router/box.
- **Pros** : you will have physical control of the machine and only need to buy the hardware;
-- **Cons** : you will have to [manually configure your internet box](isp_box_config) and [might be limited by your ISP](isp).
+- **Cons** : you will have to [manually configure your internet box](/isp_box_config) and [might be limited by your ISP](/isp).
### At home, behind a VPN
@@ -25,7 +32,7 @@ You can rent a virtual private server or a dedicated machine from [associative](
### Summary
-
+
@@ -60,7 +67,7 @@ You can rent a virtual private server or a dedicated machine from [associative](
@@ -80,4 +87,4 @@ You can rent a virtual private server or a dedicated machine from [associative](
Typically pretty good
-
+
\ No newline at end of file
diff --git a/pages/01.administrate/05.install/02.findinglocalip/finding_the_local_ip.fr.md b/pages/01.administrate/05.install/02.findinglocalip/finding_the_local_ip.fr.md
new file mode 100644
index 00000000..a119007c
--- /dev/null
+++ b/pages/01.administrate/05.install/02.findinglocalip/finding_the_local_ip.fr.md
@@ -0,0 +1,64 @@
+---
+title: Trouver l'IP locale de son serveur
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/finding_the_local_ip'
+---
+
+Dans le cas d'une installation à la maison, votre serveur devrait typiquement être accessible (depuis son réseau local) avec le domaine `yunohost.local`. Si pour une raison quelconque cela ne fonctionne pas, il vous faut peut-être trouver l'IP locale de votre serveur.
+
+## Qu'est ce qu'une IP locale ?
+L'IP locale d'une machine est utilisée pour y faire référence à l'intérieur d'un réseau local (typiquement le réseau dans une maison) où plusieurs appareils se connectent à un même routeur (votre box internet). Une adresse IP locale ressemble généralement à `192.168.x.y` (ou parfois `10.0.x.y` ou `172.16.x.y`)
+
+## Comment la trouver ?
+L'une de ces astuces devrait permettre de trouver l'IP locale de votre serveur :
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="(Recommandé) Avec AngryIP"]
+
+Vous pouvez utiliser le logiciel [AngryIP](https://angryip.org/download/) pour y parvenir. Vous devez juste scanner ces plages d'IP dans cet ordre jusqu'à trouver l'IP correspondante à votre serveur :
+- `192.168.0.0` -> `192.168.0.255`
+- `192.168.1.0` -> `192.168.1.255`
+- `192.168.2.0` -> `192.168.255.255`
+- `10.0.0.0` -> `10.0.255.255`
+- `172.16.0.0` -> `172.31.255.255`
+
+!!! **Astuces**:
+!!! - vous pouvez ordonner par ping comme dans cette capture d'écran, pour voir plus facilement toutes les IP effectivement actives.
+!!! - votre serveur devrait être monté comme écoutant sur les ports 80 et 443
+!!! - en cas de doute, tapez directement dans votre navigateur `https://192.168.x.y` pour voir si c'est un Yunohost ou non.
+
+
+
+[/ui-tab]
+[ui-tab title="Avec votre box internet"]
+Utilisez l'interface de votre box internet pour lister les machines connectées.
+[/ui-tab]
+[ui-tab title="With arp-scan"]
+Si vous êtes sous Linux, ouvrez un terminal et tapez `sudo arp-scan --local` pour lister les IP des machines sur le réseau local (ceci fonctionne aussi peut-être sous Windows) ;
+
+Si la commande `arp-scan` vous affiche beaucoup de machines, vous pouvez vérifier lesquelles sont ouvertes au SSH avec `nmap -p 22 192.168.1.0/24` pour faire du tri (adaptez la plage IP selon votre réseau local)
+[/ui-tab]
+[ui-tab title="With a screen"]
+Branchez un écran sur votre serveur, loggez-vous et tapez `hostname --all-ip-address`.
+
+Les identifiants par défaut (avant la post-installation!) sont:
+- login: root
+- mot de passe: yunohost
+
+(Si vous utilisez une image Armbian brute plutôt que les images Yunohost pré-installées, les identifiants sont root / 1234)
+
+
+
+[/ui-tab]
+[/ui-tabs]
+
+
+## Je ne trouve toujours pas mon IP locale
+Si vous n'êtes pas capable de trouver votre serveur avec les méthodes précédentes, alors peut-être que votre serveur n'a pas démarré correctement
+
+- Assurez-vous que le serveur est correctement branché ;
+- Si votre serveur a une carte SD, essayez de vous assurer que la connectique n'est pas trop poussièreuse ;
+- Branchez un écran sur le serveur et essayez de le redémarrer pour valider que le serveur démarre bien ;
+- Assurez-vous que le cable ethernet est fonctionnel et correctement branché ;
diff --git a/pages/01.administrate/05.install/02.findinglocalip/finding_the_local_ip.md b/pages/01.administrate/05.install/02.findinglocalip/finding_the_local_ip.md
new file mode 100644
index 00000000..459ff0d9
--- /dev/null
+++ b/pages/01.administrate/05.install/02.findinglocalip/finding_the_local_ip.md
@@ -0,0 +1,62 @@
+---
+title: Finding your server's local IP
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/finding_the_local_ip'
+---
+
+On an installation at home, your server should typically be accessible using the `yunohost.local` domain. If for any reason this does not work, you may need to find the *local* IP of your server.
+
+## What is a local IP ?
+The local IP is the address used to refer to your server inside the local network (typically your home) where multiple devices are connected to a router (your internet box). The local IP typically looks like `192.168.x.y` (or sometimes `10.0.x.y` or `172.16.x.y`)
+
+## How to find it ?
+Any of these tricks should allow you to find the local IP of your server:
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="(Recommended) With AngryIP"]
+
+You can use the [AngryIP](https://angryip.org/download/) software to achieve that. You just need to scan these local ip ranges in this order until you find the active IP corresponding to your server:
+- `192.168.0.0` -> `192.168.0.255`
+- `192.168.1.0` -> `192.168.1.255`
+- `192.168.2.0` -> `192.168.255.255`
+- `10.0.0.0` -> `10.0.255.255`
+- `172.16.0.0` -> `172.31.255.255`
+
+!!! **Tips**:
+!!! - you can order by ping like on this screenshot to easily see effectively-used IP.
+!!! - your server should typically be displayed as listening on port 80 and 443
+!!! - in case of doubt, just type `https://192.168.x.y` in your browser to check if it's a Yunohost or not.
+
+
+
+[/ui-tab]
+[ui-tab title="With your internet router / box"]
+Connect to your internet box / router interface to list the machines connected.
+[/ui-tab]
+[ui-tab title="With arp-scan"]
+If you're using Linux, you can open a terminal and use `sudo arp-scan --local` to list the IP on your local network (this may also work in Windows);
+
+If the `arp-scan` command displays a confusing number of devices, you can check which ones are open to SSH with `nmap -p 22 192.168.1.0/24` to sort them out (adapt the IP range to your local network)
+[/ui-tab]
+[ui-tab title="With a direct access on the server"]
+Plug a screen on your server, log in and type `hostname --all-ip-address`.
+
+The default credentials (before post-installation!) to log in are:
+- login: root
+- password: yunohost
+
+(If you are using a raw Armbian image instead of the pre-installed Yunohost image, the credentials are root / 1234)
+
+[/ui-tab]
+[/ui-tabs]
+
+## I still can't find my local IP
+
+If you are unable to find your server using any of the previous tricks, maybe your server did not boot correctly:
+
+- Make sure that your server is properly plugged in;
+- If you're using an SD card, make sure the connector is not too dusty;
+- Plug a screen on your server and try to reboot to check that it's properly booting;
+- Make sure that your ethernet cable is working and properly plugged in;
diff --git a/isp_box_config_es.md b/pages/01.administrate/05.install/03.isp_box_config/isp_box_config.es.md
similarity index 68%
rename from isp_box_config_es.md
rename to pages/01.administrate/05.install/03.isp_box_config/isp_box_config.es.md
index 022cc596..e8fc229b 100644
--- a/isp_box_config_es.md
+++ b/pages/01.administrate/05.install/03.isp_box_config/isp_box_config.es.md
@@ -1,6 +1,21 @@
-# Configurar la redirección de los puertos
+---
+title: Configurar la redirección de los puertos
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp_box_config'
+ aliases:
+ - '/port_forwarding'
+---
-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.
+Si te estás auto-alojando en casa y sin VPN, tienes que redirigirse los puertos de tu router (caja/box).
+
+El esquema aquí abajo intenta explicar brevemente el rol de la redirección de los puertos durante la instalación de un servidor en tu casa.
+
+[figure caption="Ilustración de la importancia del redirección de puertos"][/figure]
+
+[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
@@ -33,9 +48,7 @@ Luego tienes que redirigir cada uno de los puertos listados a continuación haci
* [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) por más informaciones.
-
+! [fa=exclamation-triangle /] 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/pages/01.administrate/05.install/03.isp_box_config/isp_box_config.fr.md
similarity index 67%
rename from isp_box_config_fr.md
rename to pages/01.administrate/05.install/03.isp_box_config/isp_box_config.fr.md
index 640044dc..58964b21 100644
--- a/isp_box_config_fr.md
+++ b/pages/01.administrate/05.install/03.isp_box_config/isp_box_config.fr.md
@@ -1,6 +1,19 @@
-# Configurer la redirection des ports
+---
+title: Configurer la redirection des ports
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp_box_config'
+ aliases:
+ - '/port_forwarding'
+---
-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.
+Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Le schéma ci-dessous tente d'expliquer brièvement le rôle de la redirection des ports lors de la mise en place d'un serveur à la maison.
+
+[figure caption="Illustration de l'importance de la redirection des ports"][/figure]
+
+[Cette page](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs
### 0. Diagnostiquer les ports ouverts
@@ -36,9 +49,7 @@ Il vous faut ensuite rediriger chacun des ports listés ci-dessous vers l'IP loc
* [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) pour plus d'informations.
-
+! [fa=exclamation-triangle /] 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_box_config.md b/pages/01.administrate/05.install/03.isp_box_config/isp_box_config.md
similarity index 69%
rename from isp_box_config.md
rename to pages/01.administrate/05.install/03.isp_box_config/isp_box_config.md
index 93247eb6..9b64dfd7 100644
--- a/isp_box_config.md
+++ b/pages/01.administrate/05.install/03.isp_box_config/isp_box_config.md
@@ -1,6 +1,17 @@
-# Configure port-forwarding
+---
+title: Configure port-forwarding
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp_box_config'
+ aliases:
+ - '/port_forwarding'
+---
-If you are self-hosting at home and without a VPN, you need to forward ports on your home router ("Internet box"). If you want a short explanation on what is and why you need port forwarding, have a look to [this page](port_forwarding).
+If you are self-hosting at home and without a VPN, you need to forward ports on your home router ("Internet box"). The sketch below tries to briefly summarize the role and necessity of port forwarding when setting up a server at home.
+
+[figure caption="Illustration of the importance of port-forwarding"][/figure]
### 0. Diagnose ports opened
@@ -9,7 +20,7 @@ correctly exposed.
### 1. Access your box/router administration interface
-Your box/router admin interface is usually reachable via http://192.168.0.1 or http://192.168.1.1. Then, you will probably need to authenticate yourself with your internet server provider's credentials.
+Your box/router admin interface is usually reachable via [http://192.168.0.1](http://192.168.0.1) or [http://192.168.1.1](http://192.168.1.1). Then, you will probably need to authenticate yourself the credentials given by your internet server provider.
### 2. Find the local IP of your server
@@ -37,9 +48,7 @@ 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) for more info.
-
+! [fa=exclamation-triangle /] 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/dns_config_es.md b/pages/01.administrate/05.install/04.dns/dns_config.es.md
similarity index 97%
rename from dns_config_es.md
rename to pages/01.administrate/05.install/04.dns/dns_config.es.md
index 77562be7..769a0694 100644
--- a/dns_config_es.md
+++ b/pages/01.administrate/05.install/04.dns/dns_config.es.md
@@ -1,4 +1,11 @@
-# Configuración de la zona DNS
+---
+title: Configuración de la zona DNS
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_config'
+---
DNS (sistema de nombre de dominios) es un elemento esencial de Internet que permite convertir direcciones comprensibles por seres humanos (los nombres de dominio) en direcciones comprensibles por la máquina (los IPs). Para que tu servidor esté fácilemente por otros seres humanos, y para que servicios como el mail funcionen correctamente, es preciso configurar la zona DNS de tu dominio.
diff --git a/dns_config_fr.md b/pages/01.administrate/05.install/04.dns/dns_config.fr.md
similarity index 97%
rename from dns_config_fr.md
rename to pages/01.administrate/05.install/04.dns/dns_config.fr.md
index 2d8528b7..33967a0e 100644
--- a/dns_config_fr.md
+++ b/pages/01.administrate/05.install/04.dns/dns_config.fr.md
@@ -1,4 +1,11 @@
-# Configuration de la zone DNS
+---
+title: Configuration de la zone DNS
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_config'
+---
DNS (système de nom de domaine) est un élément essentiel d'Internet qui permet
de convertir des adresses compréhensible par les êtres humains (les noms de
diff --git a/dns_config.md b/pages/01.administrate/05.install/04.dns/dns_config.md
similarity index 97%
rename from dns_config.md
rename to pages/01.administrate/05.install/04.dns/dns_config.md
index 7ec00ca4..8ac273e0 100644
--- a/dns_config.md
+++ b/pages/01.administrate/05.install/04.dns/dns_config.md
@@ -1,4 +1,11 @@
-# DNS zone configuration
+---
+title: DNS zone configuration
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_config'
+---
DNS (domain name system) is a system that converts human-readable addresses
(domain names) into machine-understandable addresses (IP). For your server to be
diff --git a/certificate_es.md b/pages/01.administrate/05.install/06.certificate/certificate.es.md
similarity index 91%
rename from certificate_es.md
rename to pages/01.administrate/05.install/06.certificate/certificate.es.md
index 1fb0798b..3d1b2d80 100644
--- a/certificate_es.md
+++ b/pages/01.administrate/05.install/06.certificate/certificate.es.md
@@ -1,11 +1,18 @@
-# Certificado
+---
+title: Certificado
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/certificate'
+---
Los certificados sirven para garantizar la confidencialidad y la autenticidad de las comunicaciones entre un navegador web y tu servidor. En particular, permite proteger los visitantes contra atacantes que podrían intentar de robar la identidad del servidor.
Por defecto, YunoHost provee un certificado **auto-firmado**, lo que significa que es tu servidor el que garantiza la validez del certificado. Es suficiente **en el caso de un uso personal**, porque puedes confiar en tu propio servidor, pero esto planteará problemas si piensas en abrir el acceso a tu servidor a personas anónimas, por ejemplo si quieres alojar un sitio web.
En efecto, los usuarios deberán pasar por una pantalla de este tipo :
-
+
Esta pantalla equivale a que te pidan ** ¿ Confías en el servidor que aloja este sitio ? ***. Esto puede asustar tu usuarios (con toda la razón).
@@ -21,20 +28,20 @@ Antes de intentar la instalación de un certificado Let's Encrypt, primero debes
En la categoría 'Dominio' de la interfaz de administración, y luego en la sección dedicada a tu dominio, encontrarás un botón 'Certificado SSL'.
-
+
En la sección 'Certificado SSL', puedes ver el estado corriente del certificado.
Si acabas de añadir el dominio, ya dispone de un certificado auto-firmado.
-
+
Si tu dominio está configurado correctamente, es posible instalar un certificado Let's Encrypt vía el botón verde.
-
+
Una vez la instalación terminada, puedes ir a tu dominio vía tu navegador, en HTTPS, para comprobar que tu certificado está bien firmado por Let's Encrypt. El certificado se renovará automáticamente al cabo de cada periodo de tres meses.
-
+
#### Vía línea de comandos
diff --git a/certificate_fr.md b/pages/01.administrate/05.install/06.certificate/certificate.fr.md
similarity index 92%
rename from certificate_fr.md
rename to pages/01.administrate/05.install/06.certificate/certificate.fr.md
index 6aeef3d5..f2ad4b01 100644
--- a/certificate_fr.md
+++ b/pages/01.administrate/05.install/06.certificate/certificate.fr.md
@@ -1,11 +1,18 @@
-# Certificat
+---
+title: Certificat
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/certificate'
+---
Les certificats sont utilisés pour garantir la confidentialité et l'authenticité des communications entre un navigateur web et votre serveur. En particulier, il permet de protéger les visiteurs contre des attaquants qui chercheraient à usurper l'identité du serveur.
YunoHost fournit par défaut un certificat **auto-signé**, ce qui veut dire que c’est votre serveur qui garantit la validité du certificat. C’est suffisant **pour un usage personnel**, car vous pouvez avoir confiance en votre serveur, en revanche cela posera problème si vous comptez ouvrir l’accès à votre serveur à des anonymes, par exemple pour héberger un site web.
En effet, les utilisateurs devront passer par un écran de ce type :
-
+
Cet écran revient à demander **« Avez-vous confiance au serveur qui héberge ce site ? »**.
Cela peut effrayer vos utilisateurs (à juste titre).
@@ -26,24 +33,24 @@ de votre serveur) et que votre site est accessible en HTTP depuis l'extérieur
Rendez-vous dans la partie 'Domaine' de l'interface d'administration, puis dans
la section dédiée à votre domaine. Vous trouverez un bouton 'Certificat SSL'.
-
+
Dans la section 'Certificat SSL', vous pourrez voir l'état actuel du certificat.
Si vous venez d'ajouter le domaine, il dispose d'un certificat auto-signé.
-
+
Si votre domaine est correctement configuré, il vous est alors possible de
passer à un certificat Let's Encrypt via le bouton vert.
-
+
Une fois l'installation effectuée, vous pouvez vous rendre sur votre domaine
via votre navigateur, en HTTPS, pour vérifier que votre certificat est bien
signé par Let's Encrypt. Le certificat sera renouvelé automatiquement tous les
trois mois environ.
-
+
#### Via la ligne de commande
diff --git a/certificate.md b/pages/01.administrate/05.install/06.certificate/certificate.md
similarity index 87%
rename from certificate.md
rename to pages/01.administrate/05.install/06.certificate/certificate.md
index c9d06c71..2c6144cd 100644
--- a/certificate.md
+++ b/pages/01.administrate/05.install/06.certificate/certificate.md
@@ -1,4 +1,11 @@
-# Certificate
+---
+title: Certificate
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/certificate'
+---
Certificates are used to guarantee the confidentiality and authenticity of the communication between a web browser and your server. In particular, they protect against attackers trying to impersonate your server.
@@ -6,7 +13,7 @@ YunoHost provides a **self-signed** certificate, it means that your server guara
In practice, visitors will see a screen list this:
-
+
Which basically asks the visitor : **"Do you trust the server hosting this website?"**. This can rightfully frighten a lot of people.
@@ -16,25 +23,27 @@ To avoid this confusion, it's possible to get a certificate signed a known autho
Before attempting to install a Let's Encrypt certificate, you should make sure that your DNS is correctly configured (your.domain.tld should point to your server's IP) and that your domain is accessible through HTTP from outside your local network (i.e. at least port 80 should be forwarded to your server).
-#### From the web administration interface
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="From the web interface"]
Go to the 'Domain' part of the admin interface, then in the section dedicated to your.domain.tld. You should find a 'SSL certificate' button:
-
+
In the 'SSL certificate' section, you can see the status of the current certificate. If you just added the domain, it should be a self-signed certificate.
-
+
If your domain is correctly configured, it is then possible to install the Let's Encrypt certificate via the green button.
-
+
Once the install is made, you can check that the certificate is live via your browser by going to your domain in HTTPS. The certificate will automatically be renewed every three months.
-
+
-#### From the command line interface
+[/ui-tab]
+[ui-tab title="From the command line"]
Connect to your server through SSH.
@@ -59,6 +68,9 @@ Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD!
Once this is done, you can check that the certificate is live via your browser by going to your domain in HTTPS. The certificate will automatically be renewed every three months.
+[/ui-tab]
+[/ui-tabs]
+
##### Troubleshooting
If due to some bad tweaking, your certificate ends up in a bad state (e.g. lost the certificate or unable to read the files), you should be able to clean the situation by regenerating a self-signed certificate:
diff --git a/images_ar.md b/pages/01.administrate/05.install/10.images/images.ar.md
similarity index 58%
rename from images_ar.md
rename to pages/01.administrate/05.install/10.images/images.ar.md
index f9213a43..9ef16d52 100644
--- a/images_ar.md
+++ b/pages/01.administrate/05.install/10.images/images.ar.md
@@ -1,7 +1,16 @@
-# الصور
+---
+title: الصور
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/images'
+---
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+{% if not virtualbox %}
+
+{% if arm %}
+##  Flasher l'image {{image_type}}
+{% else %}
+##  Flasher l'image YunoHost
+{% endif %}
+
+Maintenant que vous avez téléchargé l’image de {{image_type}}, vous devez la mettre sur {% if arm %}une carte microSD{% else %}une clé USB ou un CD/DVD.{% endif %}
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="(Recommandé) Avec Etcher"]
+
+Téléchargez Etcher pour votre système d'exploitation et installez-le.
+
+Branchez votre {% if arm %}carte microSD{% else %}clé USB{% endif %}, selectionnez votre image et cliquez "Flash".
+
+
+
+[/ui-tab]
+[ui-tab title="Avec USBimager"]
+
+Téléchargez [USBimager](https://bztsrc.gitlab.io/usbimager/) pour votre système d'exploitation et installez-le.
+
+Branchez votre {% if arm %}carte microSD{% else %}clé USB{% endif %}, selectionnez votre image et cliquez "Write".
+
+
+
+[/ui-tab]
+[ui-tab title="Avec dd"]
+
+Si vous êtes sur GNU/Linux / macOS et que vous êtes familier avec la ligne de commande, il est possible de flasher la clef USB ou carte SD avec dd. Vous pouvez identifier le nom du périphérique avec `fdisk -l` ou `lsblk`. Une carte SD s'apelle typiquement `/dev/mmcblk0`. ATTENTION à faire attention de prendre le bon nom !
+
+Ensuite lancez :
+
+```bash
+# Remplacez /dev/mmcblk0 si le nom de votre périphérique est différent...
+dd if=/path/to/yunohost.img of=/dev/mmcblk0
+```
+
+[/ui-tab]
+{% if regular %}
+[ui-tab title="Copier un CD/DVD"]
+Pour les anciens matériels, il vous faut peut-être utiliser un CD/DVD. Le logiciel à utiliser est différent suivant votre système d’exploitation.
+
+* Sur Windows, utilisez [ImgBurn](http://www.imgburn.com/) pour écrire l’image sur le disque
+
+* Sur macOS, utilisez [Disk Utility](http://support.apple.com/kb/ph7025)
+
+* Sur GNU/Linux, vous avez plusieurs choix, tels que [Brasero](https://wiki.gnome.org/Apps/Brasero) ou [K3b](http://www.k3b.org/)
+
+[/ui-tab]
+{% endif %}
+[/ui-tabs]
+
+{% else %}
+
+## Créer une nouvelle machine virtuelle
+
+
+
+! Ce n'est pas grave si seulement la version 32-bit est dispo, mais dans ce cas soyez sur d'avoir téléchargé l'image 32 bit précédemment.
+
+## Modifier la configuration réseau
+
+! Cette étape est importante pour exposer proprement la machine virtuelle sur le réseau
+
+Allez dans **Réglages** > **Réseau** :
+
+* Sélectionnez `Accès par pont`
+* Choisissez votre interface selon son nom :
+ **wlan0** si vous êtes connecté sans-fil, **eth0** or **eno1** sinon.
+
+
+
+{% endif %}
+
+
+
+
+
+
+
+
+
+{% if arm %}
+## [fa=plug /] Démarrer la carte
+
+* Branchez le câble ethernet (un côté sur votre box, l'autre côté à votre carte).
+ * Pour les utilisateurs et utilisatrices souhaitant configurer la carte pour la connecter via le WiFi à la place, voir [cet exemple](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md).
+* Mettez la carte SD dans le serveur
+* (Faculatif) Il est possible de brancher un écran et clavier sur votre serveur en cas de soucis ou pour vérifier que le processus de démarrage (boot) se passe bien ou encore pour avoir un accès direct en console.
+* Branchez l'alimentation
+* Laissez quelques minutes à votre serveur pour s'autoconfigurer durant le premier démarrage
+* Assurez vous que votre ordinateur (de bureau ou portable) est connecté au même réseau local (c'est-à-dire la même box internet) que votre serveur.
+
+{% elseif virtualbox %}
+## [fa=plug /] Lancer la machine virtuelle
+
+Démarrez votre machine virtuelle aprés avoir sélectionné l'image YunoHost.
+
+
+
+! Si vous rencontrez l'erreur "VT-x is not available", il vous faut probablement activer (enable) la virtualisation dans les options du BIOS de votre ordinateur.
+
+{% else %}
+## [fa=plug /] Démarrer la machine sur la clé USB
+
+* Branchez le cable ethernet (un cé à votre box, de l'autre côté à votre carte).
+* Démarrez votre serveur avec la clé USB ou le CD-ROM inséré, et sélectionnez-le comme **périphérique de démarrage (bootable device)** en pressant l’une des touches suivantes (dépendant de votre ordinateur) :
+``, ``, ``, ``, `` or ``.
+ * N.B. : si le serveur était précédemment installé avec une version récente de Windows (8+), vous devez d'abord demander à Windows de "redémarrer réellement". Vous pouvez le faire dans une oiption du menu "Options de démarrage avancées".
+{% endif %}
+
+{% if regular or virtualbox %}
+## [fa=rocket /] Lancer l’installation graphique
+
+!! N.B. : L'installation effacera totalement les données sur votre disque dur!
+
+Vous devriez voir un écran comme ça :
+
+[figure class="nomargin" caption="Capture d'écran du menu de l'ISO"]
+
+[/figure]
+
+ 1. Sélectionnez `Graphical install`
+ 2. Sélectionnez votre langue, votre localisation et votre agencement de clavier.
+ 3. L'installateur va ensuite télécharger les paquets requis et les installer.
+
+{% endif %}
+
+
+{% if rpi1 or rpi0 %}
+## [fa=bug /] Se connecter à la carte et corriger l'image
+Les Raspberry Pi 1 et 0 ne sont pas totalement supportés à cause de [problèmes de compilation pour cette architecture](https://github.com/YunoHost/issues/issues/1423).
+
+Cependant, il est possible de corriger l'image par vous même avant de lancer la configuration initiale.
+
+Pour y parvenir, vous devez vous connectez à votre Raspberry Pi en tant que root [via SSH](/ssh) avec le mot de passe temporaire `yunohost`:
+```
+ssh root@yunohost.local
+```
+
+Ensuite, lancez les commandes suivantes pour contourner le dysfonctionnement de metronome :
+```
+mv /usr/bin/metronome{,.bkp}
+mv /usr/bin/metronomectl{,.bkp}
+ln -s /usr/bin/true /usr/bin/metronome
+ln -s /usr/bin/true /usr/bin/metronomectl
+```
+
+Et celle-ci pour contourner celui de upnpc :
+```
+sed -i 's/import miniupnpc/#import miniupnpc/g' /usr/lib/moulinette/yunohost/firewall.py
+```
+
+! Cette dernière commande nécessite d'être lancée après chaque mise à jour de YunoHost :/
+
+{% elseif arm_unsup %}
+## [fa=terminal /] Se connecter à la carte
+
+Ensuite, il vous faut [trouver l'adresse IP locale de votre serveur](/finding_the_local_ip) pour vous connecter en tant que root [via SSH](/ssh) avec le mot de passe temporaire `1234`.
+
+```
+ssh root@192.168.x.xxx
+```
+
+{% endif %}
+
+{% endif %}
+
+
+{% if vps_debian or arm_unsup %}
+## [fa=rocket /] Lancer le script d'installation
+
+- Ouvrez la ligne de commande sur votre serveur (soit directement, soit avec [SSH](/ssh))
+- Assurez-vous d'être connecté en tant que root (ou tapez `sudo -i` pour le devenir)
+- Lancez la commande suivante :
+
+```bash
+curl https://install.yunohost.org | bash
+```
+!!! Si `curl` n'est pas installé sur votre système, il vous faudra peut-être l'installer avec `apt install curl`.
+!!! Autrement, si la commande n'affiche rien du tout, vous pouvez tenter `apt install ca-certificates`
+
+!!! **Note pour les utilisateurs avancés inquiets à propos de l'approche `curl|bash` :** prenez le temps de lire ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) sur le blog de Sandstorm, et possiblement [cette discussion sur Hacker News](https://news.ycombinator.com/item?id=12766350&noprocess).
+
+{% endif %}
+
+
+## [fa=cog /] Lancer la configuration initiale
+
+!!! Si vous êtes en train de restaurer une sauvegarde YunoHost, vous devez sauter cette étape et vous référer à la section [Restaurer durant la postinstallation à la place de cette étape de configuration initiale](/backup#restoring-during-the-postinstall).
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="A partir de l'interface web"]
+{%if at_home %}
+Dans un navigateur web, tapez dans la barre d'adresse **{% if internetcube %}`https://internetcube.local`{% else %}`https://yunohost.local`{% endif %}**.
+
+!!! Si ça ne fonctionne pas, vous devez [chercher l'adresse IP locale du serveur](/finding_the_local_ip). L'adresse ressemble typiquement à `192.168.x.y`, et vous devriez taper `https://192.168.x.y` dans la barre d'adresse du navigateur.
+{% else %}
+Vous pouvez lancer la configuration initiale à partir du navigateur en tapant l'**adresse IP publique de votre serveur**. Généralement, votre fournisseur de VPS vous indique l'IP dans un mail ou sur sa console de gestion.
+{% endif %}
+
+! Lors de la première visite, vous rencontrerez très probablement un avertissement de sécurité lié au certificat utilisé. Pour le moment, votre serveur utilise un certificat auto-signé. Vous pourrez plus tard ajouter un certificat automatiquement reconnus par les navigateurs comme décrit dans [la page sur les certificats](/certificate). En attendant, ajoutez une exception de sécurité pour accepter le certificat actuel. Toutefois, **s'il-vous-plait**, ne prenez pas l'habitude d'accepter ce genre d'alerte de sécurité !
+
+{% if not internetcube %}
+Vous devriez ensuite obtenir cette page :
+
+[figure class="nomargin" caption="Capture d'écran de la page de configuration initiale"]
+
+[/figure]
+
+{% endif %}
+[/ui-tab]
+[ui-tab title="A partir de la ligne de commande"]
+
+Vous pouvez aussi lancer la post-installation avec la commande`yunohost tools postinstall` directement sur le serveur ou [via SSH](/ssh).
+
+[figure class="nomargin" caption="Capture d'écran de la configuration initiale en ligne de commande"]
+
+[/figure]
+
+[/ui-tab]
+[/ui-tabs]
+
+{% if not internetcube %}
+
+##### [fa=globe /] Domaine principal
+
+C’est le nom de domaine qui permettra l’accès à votre serveur ainsi qu’au **portail d’authentification** des utilisateurs. Vous pourrez ensuite ajouter d'autres domaines, et changer celui qui sera le domaine principale si besoin.
+
+* Si l'auto-hébergement est tout neuf pour vous et que vous n'avez pas encore de nom de domaine, nous recommandons d'utiliser un domaine en **.nohost.me** / **.noho.st** / **.ynh.fr** (exemple : `homersimpson.nohost.me`). S'il n'est pas déjà utilisé, le domaine sera automatiquement rattaché à votre serveur YunoHost, et vous n’aurez pas d’étape de configuration supplémentaire. Toutefois, notez que l'utilisation d'un de ces noms de domaines implique que vous n'aurez pas le contôle complet sur votre configuration DNS.
+
+* SI en revanche vous avez déjà votre propre nom de domaine, vous souhaitez probablement l'utiliser. Vous aurez donc besoin ensuite de configurer les enregistrements DNS comme expliqué [ici](/dns_config).
+
+!!! Oui, vous *devez* configurer un nom de domaine. Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en **.nohost.me**, **.noho.st** ou **.ynh.fr**, vous pouvez utilisez un "faux" domaine comme par exemple `yolo.test` et modifier votre fichier `/etc/hosts` pour que ce domaine pointe vers l'IP de votre serveur, comme expliqué [ici](/dns_local_network).
+
+##### [fa=key /] Mot de passe d’administration
+C’est le mot de passe qui vous permettra d’accéder à l’interface d’administration de votre serveur. Vous pourrez également l’utiliser pour vous connecter à distance [via SSH](/ssh), ou [en SFTP](/filezilla) pour transférer des fichiers. De manière générale, c’est la **clé d’entrée à votre système**, pensez donc à la choisir attentivement.
+
+## [fa=user /] Créer un premier utilisateur
+
+Une fois la configuration initiale faite, vous devriez être capable de vous connecter à l'interface d'administration web en utilisant le mot de passe d'administration.
+
+Bien que votre serveur dispose maintenant d'un utilisateur `admin`, cet utilisateur `admin` n'est pas un utilisateur "standard" et ne peut pas se connecter sur le [portail utilisateur](/users).
+
+Par conséquent, vous devriez ajouter un premier utilisateur "standard".
+
+!!! Le premier utilisateur que vous créez est un peu spéciale : il recevra les emails envoyé à `root@votredomaine.tld` et `admin@votredomaine.tld`. Ces emails peuvent être utilisés pour envoyer des informations ou des alertes techniques.
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="A partir de l'interface web"]
+
+Allez dans `Users > Add`
+
+TODO: add a screenshot
+[/ui-tab]
+[ui-tab title="A partir de la ligne de commande"]
+```
+yunohost user create johndoe
+```
+TODO : copypasta an actual shell session will all info asked etc..
+
+[/ui-tab]
+[/ui-tabs]
+{% endif %}
+
+## [fa=stethoscope /] Lancer le diagnostic
+
+Le système de diagnostique est conçu pour fournir un moyen facile de valider que tous les aspects critiques de votre serveur sont proprement configuré et pour vous guider dans la résolution des problèmes soulevés. Le diagnostique se lance deux fois par jour et envoie une alerte si un dysfonctionnement est détecté.
+
+!!! N.B. : **ne partez pas en courant** ! La première fois que vous lancerez le diagnostique, il est assez normal d'avoir plusieurs alertes rouges ou jaunes car vous devez généralement [configurer les enregistrements DNS](/dns_config) (si vous n'utilisez pas un domaine `.nohost.me`, `.noho.st` ou `.ynh.fr`){%if at_home %} et/ou [configurer la redirection des ports](/isp_box_config){% endif %}.
+
+!!! Si une alerte n'est pas pertinente (par exemple parce que vous ne pensez pas utiliser une fonctionnalité spécifique), il est tout à fait convenable d'indiquer le dysfonctionnement comme "A ignorer" en allant dans l'administration web > Diagnostic, et en cliquant sur bouton "Ignorer" pour ce dysfonctionnement spécifique.
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="(Recommandé) A partir de l'interface web"]
+Pour lancer le diagnostique, allez dans l'Administration Web dans la partie Diagnostique. Vous devriez obtenir un écran comme celui-ci :
+
+[figure class="nomargin" caption="Capture d'écran du panneau de diagnostic"]
+
+[/figure]
+
+[/ui-tab]
+[ui-tab title="A partir de la ligne de commande"]
+```
+yunohost diagnosis run
+yunohost diagnosis show --issues --human-readable
+```
+[/ui-tab]
+[/ui-tabs]
+
+## [fa=lock /] Obtenir un certificat Let's Encrypt
+
+Une fois que vous avez configuré, si nécessaire, les enregistrements DNS et la redirection de ports, vous devriez être en mesure d'installer un certificat Let's Encrypt. Ceci permettra de supprimer l'étrange alerte de sécurité vue plus tôt.
+
+Pour plus d'instructions détaillées, ou pour en savoir plus à propos des certificats SSL/TLS, voir [la page correspondante ici](/certificate).
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="A partir de l'interface web"]
+
+[figure class="nomargin" caption="Capture d'écran du panneau pour installer un certificat Let's Encrypt"]
+
+[/figure]
+
+[/ui-tab]
+[ui-tab title="A partir de la ligne de commande"]
+```
+yunohost domain cert-install
+```
+[/ui-tab]
+[/ui-tabs]
+{% endif %}
+
+##  Félicitations !
+
+Vous avez maintenant un serveur plutôt bien configuré. Si vous découvrez YunoHost, nous vous recommandons de jeter un oeil à [la visite guidée](/overview). Vous devriez aussi être en mesure d'[installer vos applications favorites](/apps). N'oubliez pas de [prévoir des sauvegardes](/backup) !
+
+{% endif %}
diff --git a/pages/01.administrate/05.install/install.md b/pages/01.administrate/05.install/install.md
new file mode 100644
index 00000000..c93578a8
--- /dev/null
+++ b/pages/01.administrate/05.install/install.md
@@ -0,0 +1,610 @@
+---
+title: Install YunoHost
+template: docs
+taxonomy:
+ category: docs
+never_cache_twig: true
+twig_first: true
+process:
+ markdown: true
+ twig: true
+page-toc:
+ active: true
+ depth: 2
+routes:
+ default: '/install'
+ aliases:
+ - '/docker'
+ - '/install_iso'
+ - '/install_on_vps'
+ - '/install_manually'
+ - '/install_on_raspberry'
+ - '/install_on_arm_board'
+ - '/install_on_debian'
+ - '/install_on_virtualbox'
+ - '/plug_and_boot'
+ - '/burn_or_copy_iso'
+ - '/boot_and_graphical_install'
+ - '/postinstall'
+---
+{% set image_type = 'YunoHost' %}
+{% set arm, at_home, regular, rpi2plus, rpi1, rpi0, arm_sup, arm_unsup, vps, vps_debian, vps_ynh, virtualbox, internetcube, docker = false, false, false, false, false, false, false, false, false, false, false, false, false, false %}
+{% set hardware = uri.param('hardware') %}
+
+{% if hardware == 'regular' %}
+ {% set regular = true %}
+{% elseif hardware == 'internetcube' %}
+ {% set arm, arm_sup, internetcube = true, true, true %}
+ {% set image_type = 'Internet Cube' %}
+{% elseif hardware == 'rpi2plus' %}
+ {% set arm, rpi2plus = true, true %}
+{% elseif hardware == 'rpi1' %}
+ {% set arm, rpi1 = true, true %}
+{% elseif hardware == 'rpi0' %}
+ {% set arm, rpi0 = true, true %}
+{% elseif hardware == 'arm_sup' %}
+ {% set arm, arm_sup = true, true %}
+{% elseif hardware == 'arm_unsup' %}
+ {% set arm, arm_unsup = true, true %}
+ {% set image_type = 'Armbian' %}
+{% elseif hardware == 'vps_debian' %}
+ {% set vps, vps_debian = true, true %}
+{% elseif hardware == 'vps_ynh' %}
+ {% set vps, vps_ynh = true, true %}
+{% elseif hardware == 'virtualbox' %}
+ {% set at_home, virtualbox = true, true %}
+{% elseif hardware == 'docker' %}
+ {% set docker = true %}
+{% endif %}
+
+{% if arm or regular %}
+ {% set at_home = true %}
+{% endif %}
+
+Select the hardware on which you want install YunoHost :
+[div class="flex-container"]
+
+[div class="flex-child hardware{%if virtualbox %} active{% endif %}"]
+[[figure caption="VirtualBox"][/figure]](/install/hardware:virtualbox)
+[/div]
+
+[div class="flex-child hardware{%if rpi2plus or rpi1 or rpi0 %} active{% endif %}"]
+[[figure caption="Raspberry Pi"][/figure]](/install/hardware:rpi2plus)
+[/div]
+
+[div class="flex-child hardware{%if arm_sup or arm_unsup or internetcube %} active{% endif %}"]
+[[figure caption="ARM board"][/figure]](/install/hardware:arm_sup)
+[/div]
+
+[div class="flex-child hardware{%if regular %} active{% endif %}"]
+[[figure caption="Regular computer"][/figure]](/install/hardware:regular)
+[/div]
+
+[div class="flex-child hardware{%if vps_debian or vps_ynh %} active{% endif %}"]
+[[figure caption="Remote server"][/figure]](/install/hardware:vps_debian)
+[/div]
+
+[/div]
+[div class="flex-container pt-2"]
+
+{% if rpi2plus or rpi1 or rpi0 %}
+[div class="flex-child hardware{%if rpi2plus %} active{% endif %}"]
+[[figure caption="Raspberry Pi 2, 3 or 4"][/figure]](/install/hardware:rpi2plus)
+[/div]
+
+[div class="flex-child hardware{%if rpi1 %} active{% endif %}"]
+[[figure caption="Raspberry Pi 1"][/figure]](/install/hardware:rpi1)
+[/div]
+
+[div class="flex-child hardware{%if rpi0 %} active{% endif %}"]
+[[figure caption="Raspberry Pi zero"][/figure]](/install/hardware:rpi0)
+[/div]
+{% elseif arm_sup or arm_unsup or internetcube %}
+
+[div class="flex-child hardware{%if internetcube %} active{% endif %}"]
+[[figure caption="Internet cube With VPN"][/figure]](/install/hardware:internetcube)
+[/div]
+
+[div class="flex-child hardware{%if arm_sup and not internetcube %} active{% endif %}"]
+[[figure caption="Olinuxino lime1&2 or Orange Pi PC+"][/figure]](/install/hardware:arm_sup)
+[/div]
+
+[div class="flex-child hardware{%if arm_unsup %} active{% endif %}"]
+[[figure caption="Others boards"][/figure]](/install/hardware:arm_unsup)
+[/div]
+{% elseif vps_debian or vps_ynh %}
+
+[div class="flex-child hardware{%if vps_debian %} active{% endif %}"]
+[[figure caption="VPS or dedicated server with Debian 10"][/figure]](/install/hardware:vps_debian)
+[/div]
+
+[div class="flex-child hardware{%if vps_ynh %} active{% endif %}"]
+[[figure caption="VPS or dedicated server with YunoHost pre-installed"][/figure]](/install/hardware:vps_ynh)
+[/div]
+
+{% endif %}
+
+[/div]
+
+
+{% if hardware != '' %}
+
+{% if docker %}
+!! **YunoHost doesn’t support Docker officially since issues with versions 2.4+. In question, YunoHost 2.4+ doesn’t work anymore on Docker because YunoHost requires systemd and Docker has chosen to not support it natively (and there are other problems link to the firewall and services).**
+!!
+!! **We strongly discourage you to run YunoHost on docker with those images**
+
+## Community images
+
+However, community images exist and are available on Docker Hub:
+
+ * [AMD64 (classic) (old YunoHost version)](https://hub.docker.com/r/domainelibre/yunohost/)
+ * [I386 (old computers) (old YunoHost version)](https://hub.docker.com/r/domainelibre/yunohost-i386/)
+ * [ARMV7 (Raspberry Pi 2/3 ...) (old YunoHost version)](https://hub.docker.com/r/domainelibre/yunohost-arm/)
+ * [ARMV6 (Raspberry Pi 1) (old yunoHost version)](https://hub.docker.com/r/tuxalex/yunohost-armv6/)
+{% else %}
+
+
+## [fa=list-alt /] Pre-requisites
+
+{% if regular %}
+* A x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop with 512MB RAM and 16GB capacity (at least)
+{% elseif rpi2plus %}
+* A Raspberry Pi 2, 3 or 4
+{% elseif rpi1 %}
+* A Raspberry Pi 1 with at least 512MB RAM
+{% elseif rpi0 %}
+* A Raspberry Pi zero
+{% elseif internetcube %}
+* An Orange Pi PC+ or an Olinuxino Lime 1 or 2
+* A VPN with a dedicated public IP and a `.cube` file
+{% elseif arm_sup %}
+* An Orange Pi PC+ or an Olinuxino Lime 1 or 2
+{% elseif arm_unsup %}
+* An ARM board with at least 512MB RAM
+{% elseif vps_debian %}
+* A dedicated or virtual private server with Debian 10 (Buster) (with **kernel >= 3.12**) preinstalled, 512MB RAM and 16GB capacity (at least)
+{% elseif vps_ynh %}
+* A dedicated or virtual private server with yunohost preinstalled, 512MB RAM and 16GB capacity (at least)
+{% elseif virtualbox %}
+* An x86 computer with [VirtualBox installed](https://www.virtualbox.org/wiki/Downloads) and enough RAM capacity to be able to run a small virtual machine with 512MB RAM and 8GB capacity (at least)
+{% endif %}
+{% if arm %}
+* A power supply (either an adapter or a MicroUSB cable) for your board;
+* A microSD card: 16GB capacity (at least), [class "A1"](https://en.wikipedia.org/wiki/SD_card#Class) highly recommended (such as [this SanDisk A1 card](https://www.amazon.fr/SanDisk-microSDHC-Adaptateur-homologu%C3%A9e-Nouvelle/dp/B073JWXGNT/));
+{% endif %}
+{% if regular %}
+* A USB stick with at least 1GB capacity OR a standard blank CD
+{% endif %}
+{% if at_home %}
+* A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth
+{% if rpi0 %}
+* An usb OTG or a wifi dongle to connect your Raspberry Pi Zero
+{% elseif not virtualbox %}
+* An ethernet cable (RJ-45) to connect your server to your router.
+{% endif %}
+* A computer to read this guide, flash the image and access your server.
+{% endif %}
+{% if not at_home %}
+* A computer or a smartphone to read this guide and access your server.
+{% endif %}
+
+{% if virtualbox %}
+! N.B. : Installing YunoHost in a VirtualBox is usually intended for testing. To run an actual server on the long-term, you usually need a dedicated physical machine (old computer, ARM board...) or a server online.
+{% endif %}
+
+
+
+
+{% if vps_ynh %}
+## YunoHost VPS providers
+Here are some VPS providers supporting YunoHost natively :
+
+[div class="flex-container"]
+
+[div class="flex-child"]
+[[figure caption="Alsace Réseau Neutre - FR"][/figure]](https://vps.arn-fai.net)
+[/div]
+
+[/div]
+{% endif %}
+
+
+{% if at_home %}
+## [fa=download /] Download the {{image_type}} image
+
+{% if virtualbox or regular %}
+!!! If your host OS is 32 bits, be sure to download the 32-bit image.
+{% elseif arm_unsup %}
+[fa=external-link] Download the image for your board on Armbian's website
+
+!!! N.B.: you should download the image Armbian Buster.
+{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% if not virtualbox %}
+
+{% if arm %}
+##  Flash the {{image_type}} image
+{% else %}
+##  Flash the YunoHost image
+{% endif %}
+
+Now that you downloaded the image of {{image_type}}, you should flash it on {% if arm %}a microSD card{% else %}a USB stick or a CD/DVD.{% endif %}
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="(Recommended) With Etcher"]
+
+Download Etcher for your operating system and install it.
+
+Plug your {% if arm %}SD card{% else %}USB stick{% endif %}, select your image and click "Flask"
+
+
+
+[/ui-tab]
+[ui-tab title="With USBimager"]
+
+Download [USBimager](https://bztsrc.gitlab.io/usbimager/) for your operating system and install it.
+
+Plug your {% if arm %}SD card{% else %}USB stick{% endif %}, select your image and click "Write"
+
+
+
+[/ui-tab]
+[ui-tab title="With dd"]
+
+If you are on GNU/Linux / macOS and know your way around command line, you may also flash your USB stick or SD card with `dd`. You can identify which device corresponds to your USB stick or SD card with `fdisk -l` or `lsblk`. A typical SD card name is something like `/dev/mmcblk0`. BE CAREFUL and make sure you got the right name.
+
+Then run :
+
+```bash
+# Replace /dev/mmcblk0 if the name of your device is different...
+dd if=/path/to/yunohost.img of=/dev/mmcblk0
+```
+[/ui-tab]
+{% if regular %}
+[ui-tab title="Burning a CD/DVD"]
+For older devices, you might want to burn a CD/DVD. The software to use depends on your operating system.
+
+* On Windows, use [ImgBurn](http://www.imgburn.com/) to write the image file on the disc
+
+* On macOS, use [Disk Utility](http://support.apple.com/kb/ph7025)
+
+* On GNU/Linux, you have plenty of choices, like [Brasero](https://wiki.gnome.org/Apps/Brasero) or [K3b](http://www.k3b.org/)
+[/ui-tab]
+{% endif %}
+[/ui-tabs]
+
+{% else %}
+
+## Create a new virtual machine
+
+
+
+! It's okay if you can only have 32-bit versions, just be sure that you downloaded the 32-bit image previously.
+
+## Tweak network settings
+
+! This step is important to properly expose the virtual machine on the network
+
+Go to **Settings** > **Network**:
+
+* Select `Bridged adapter`
+* Select your interface's name:
+ **wlan0** if you are connected wirelessly, or **eth0** otherwise.
+
+
+
+{% endif %}
+
+
+
+
+
+
+
+
+
+{% if arm %}
+## [fa=plug /] Power up the board
+
+* Plug the ethernet cable (one side on your main router, the other on your board).
+ * For advanced users willing to configure the board to connect to WiFi instead, see for example [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md).
+* Plug the SD card in your board
+* (Optional) You can connect a screen+keyboard directly on your board if you want to troubleshoot the boot process or if you're more comfortable to "see what happens" or want a direct access to the board.
+* Power up the board
+* Wait a couple minutes while the board autoconfigure itself during the first boot
+* Make sure that your computer (desktop/laptop) is connected to the same local network (i.e. same internet box) as your server.
+
+{% elseif virtualbox %}
+## [fa=plug /] Boot up the virtual machine
+
+Start the virtual machine after selecting the YunoHost image.
+
+
+
+! If you encounter the error "VT-x is not available", you probably need to enable Virtualization in the BIOS of your computer.
+
+
+{% else %}
+## [fa=plug /] Boot the machine on your USB stick
+
+* Plug the ethernet cable (one side on your main router, the other on your server).
+* Boot up your server with the USB stick or a CD-ROM inserted, and select it as **bootable device** by pressing one of the following keys (hardware specific):
+``, ``, ``, ``, `` or ``.
+ * N.B. : if the server was previously installed with a recent version of Windows (8+), you first need to tell Windows, to "actually reboot". This can be done somewhere in "Advanced startup options".
+{% endif %}
+
+{% if regular or virtualbox %}
+## [fa=rocket /] Launch the graphical install
+
+!! N.B. : The installation will totally erase the data on the server's hard drive!
+
+You should see a screen like this:
+
+[figure class="nomargin" caption="Preview of the ISO menu"]
+
+[/figure]
+
+ 1. Select `Graphical install`
+ 2. Select your language, your location and your keyboard layout
+ 3. The installer will then download and install all required packages.
+
+{% endif %}
+
+
+{% if rpi1 or rpi0 %}
+## [fa=bug /] Connect to the board and hotfix the image
+Raspberry Pi 1 and 0 are not totally supported due to [compilation issues for this architecture](https://github.com/YunoHost/issues/issues/1423).
+
+However, it is possible to fix by yourself the image before to run the initial configuration.
+
+To achieve this, you need to connect on your raspberry pi as root user [via SSH](/ssh) with the temporary password `yunohost`:
+```
+ssh root@yunohost.local
+```
+
+Then run the following commands to work around the metronome issue:
+```
+mv /usr/bin/metronome{,.bkp}
+mv /usr/bin/metronomectl{,.bkp}
+ln -s /usr/bin/true /usr/bin/metronome
+ln -s /usr/bin/true /usr/bin/metronomectl
+```
+
+And this one to work around the upnpc issue:
+```
+sed -i 's/import miniupnpc/#import miniupnpc/g' /usr/lib/moulinette/yunohost/firewall.py
+```
+
+! This last command need to be run after each yunohost upgrade :/
+
+{% elseif arm_unsup %}
+## [fa=terminal /] Connect to the board
+
+Next you need to [find the local IP address of your server](/finding_the_local_ip) to connect as root user [via SSH](/ssh) with the temporary password `1234`.
+
+```
+ssh root@192.168.x.xxx
+```
+
+{% endif %}
+
+{% endif %}
+
+
+{% if vps_debian or arm_unsup %}
+## [fa=rocket /] Run the install script
+
+- Open a command line prompt on your server (either directly or [through SSH](/ssh))
+- Make sure you are root (or type `sudo -i` to become root)
+- Run the following command:
+
+```bash
+curl https://install.yunohost.org | bash
+```
+
+!!! If `curl` is not installed on your system, you might need to install it with `apt install curl`.
+!!! Otherwise, if the command does not do anything, you might want to `apt install ca-certificates`
+
+!!! **Note for advanced users concerned with the `curl|bash` approach:** consider reading ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) on Sandstom's blog, and possibly [this discussion on Hacker News](https://news.ycombinator.com/item?id=12766350&noprocess).
+
+{% endif %}
+
+
+## [fa=cog /] Proceed with the initial configuration
+
+!!! If you are in the process of restoring a server using a YunoHost backup, you should skip this step and instead [restore the backup instead of the postinstall step](/backup#restoring-during-the-postinstall).
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="From the web interface"]
+{%if at_home %}
+In an internet browser, type **{% if internetcube %}`https://internetcube.local`{% else %}`https://yunohost.local`{% endif %}**.
+
+!!! If this doesn't work, you can [look for the the local IP address of your server](/finding_the_local_ip). The address typically looks like `192.168.x.y`, and you should therefore type `https://192.168.x.y` in your browser's address bar.
+{% else %}
+You can perform the initial configuration with the web interface by typing in the adress bar of your web browser **the public IP address of your server**. Typically, your VPS provider should have provided you with the IP of the server.
+{% endif %}
+
+! During the first visit, you will very likely encounter a security warning related to the certificate used by the server. For now, your server uses a self-signed certificate. You will later be able to add a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). For now, you should add a security exception to accept the current certificate. (Though PLEASE, don't take the habit to blindly accepting this kind of security alerts !)
+
+{% if not internetcube %}
+You should then land on this page :
+
+[figure class="nomargin" caption="Preview of the Web initial configuration page"]
+
+[/figure]
+
+{% endif %}
+[/ui-tab]
+[ui-tab title="From the command line"]
+
+You can also perform the postinstallation with the command `yunohost tools postinstall` directly on the server, or [via SSH](/ssh).
+
+[figure class="nomargin" caption="Preview of the command-line post-installation"]
+
+[/figure]
+
+[/ui-tab]
+[/ui-tabs]
+
+{% if not internetcube %}
+
+##### [fa=globe /] Main domain
+
+This will be the domain used by your server's users to access the **authentication portal**. You can later add other domains, and change which one is the main domain if needed.
+
+* If you're new to self-hosting and do not already have a domain name, we recommend using a **.nohost.me** / **.noho.st** / **.ynh.fr** (e.g. `homersimpson.nohost.me`). Provided that it's not already taken, the domain will be configured automatically and you won't need any further configuration step. Please note that the downside is that you won't have full-control over the DNS configuration.
+
+* If you already own a domain name, you probably want to use it here. You will later need to configure DNS records as explained [here](/dns_config).
+
+!!! Yes, you *have to* configure a domain name. If you don't have any domain name and don't want a **.nohost.me** / **.noho.st** / **.ynh.fr** either, you can set up a dummy domain such as `yolo.test` and tweak your `/etc/hosts` file such that this dummy domain points to the appropriate IP, as explained [here](/dns_local_network)).
+
+##### [fa=key /] Administration password
+
+This password will be used to access to your server's administration interface. You will also use it to connect [via **SSH**](/ssh) or [**SFTP**](/filezilla). In general terms, this is your **system's key**, choose it carefully!
+
+## [fa=user /] Create a first user
+
+Once the postinstall is done, you should be able to actually log in the web admin interface using the administration password.
+
+So far, your server now has an `admin` user - but `admin` is not a "regular" user and *can't* be used to log on [the user portal](/users).
+
+Let's therefore add a first "regular" user.
+
+!!! The first user you create is a bit special : it will receive emails sent to `root@yourdomain.tld` and `admin@yourdomain.tld`. These emails may be used to send technical informations or alerts.
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="From the web interface"]
+
+Go in Users > Add
+
+TODO: add a screenshot
+[/ui-tab]
+[ui-tab title="From the command line"]
+```
+yunohost user create johndoe
+```
+TODO : copypasta an actual shell session will all info asked etc..
+
+[/ui-tab]
+[/ui-tabs]
+{% endif %}
+
+## [fa=stethoscope /] Run the initial diagnosis
+
+The diagnosis system is meant to provide an easy way to validate that all critical aspects of your server are properly configured - and guide you in how to fix issues. The diagnosis will run twice a day and send an alert if issues are detected.
+
+!!! N.B. : **don't run away** ! The first time you run the diagnosis, it is quite expected to see a bunch of yellow/red alerts because you typically need to [configure DNS records](/dns_config) (if not using a `.nohost.me`/`noho.st`/`ynh.fr` domain){% if at_home %} and/or [port forwarding](/isp_box_config){% endif %}.
+
+!!! If an alert is not relevant (for example because you don't intend on using a specific feature), it is perfectly fine to flag the issue as 'ignored' by going in the webadmin > Diagnosis, and clicking the ignore button for this specifc issue.
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="(Recommended) From the web interface"]
+To run a diagnosis, go on Web Admin in the Diagnosis section. You should get a screen like this :
+
+[figure class="nomargin" caption="Preview of the diagnostic panel"]
+
+[/figure]
+
+[/ui-tab]
+[ui-tab title="From the command line"]
+```
+yunohost diagnosis run
+yunohost diagnosis show --issues --human-readable
+```
+[/ui-tab]
+[/ui-tabs]
+
+## [fa=lock /] Get a Let's Encrypt certificate
+
+Once you configured DNS records and port forwarding (if needed), you should be able to install a a Let's Encrypt certificate. This will get rid of the spooky security warning from earlier for new visitors.
+
+For more detailled instructions, or to lean more about SSL/TLS certificates, see [the corresponding page here](/certificate).
+
+[ui-tabs position="top-left" active="0" theme="lite"]
+[ui-tab title="From the web interface"]
+
+[figure class="nomargin" caption="Preview of the diagnostic panel"]
+
+[/figure]
+
+[/ui-tab]
+[ui-tab title="From the command line"]
+```
+yunohost domain cert-install
+```
+[/ui-tab]
+[/ui-tabs]
+{% endif %}
+
+##  Congratz!
+
+You now have a pretty well configured server. If you're new to YunoHost, we recommend to have a look at [the guided tour](/overview). You should also be able to [install your favourite applications](/apps). Don't forget to [plan backups](/backup) !
+
+{% endif %}
diff --git a/guidelines_fr.md b/pages/01.administrate/06.overview/02.guidelines/guidelines.fr.md
similarity index 97%
rename from guidelines_fr.md
rename to pages/01.administrate/06.overview/02.guidelines/guidelines.fr.md
index c26fb6ef..f5a57c30 100644
--- a/guidelines_fr.md
+++ b/pages/01.administrate/06.overview/02.guidelines/guidelines.fr.md
@@ -1,4 +1,11 @@
-# Conseil généraux
+---
+title: Conseil généraux
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/guidelines'
+---
Cette page énumère quelques conseils et lignes directrices que tout administrateur de YunoHost devrait connaître pour prendre soin de son serveur :).
diff --git a/guidelines.md b/pages/01.administrate/06.overview/02.guidelines/guidelines.md
similarity index 97%
rename from guidelines.md
rename to pages/01.administrate/06.overview/02.guidelines/guidelines.md
index 25873591..f01d788c 100644
--- a/guidelines.md
+++ b/pages/01.administrate/06.overview/02.guidelines/guidelines.md
@@ -1,4 +1,11 @@
-# Advices and guidelines
+---
+title: Advices and guidelines
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/guidelines'
+---
This page lists a few advices and guidelines which every YunoHost administrator should be aware to take care of a YunoHost server :).
diff --git a/admin_es.md b/pages/01.administrate/06.overview/03.admin/admin.es.md
similarity index 56%
rename from admin_es.md
rename to pages/01.administrate/06.overview/03.admin/admin.es.md
index ba253324..c95fa880 100644
--- a/admin_es.md
+++ b/pages/01.administrate/06.overview/03.admin/admin.es.md
@@ -1,4 +1,11 @@
-# La interfaz de administración web
+---
+title: La interfaz de administración web
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/admin_interface'
+---
YunoHost tiene una interfaz gráfica de administración. El otro método consiste en utilizar la [linea de comando](/commandline).
@@ -6,6 +13,4 @@ YunoHost tiene una interfaz gráfica de administración. El otro método consist
La interfaz admin está accesible desde tu instancia YunoHost en esta dirección : https://ejemplo.org/yunohost/admin (reemplaza ejemplo.org por tu nombre de dominio)
-
-
-
+
diff --git a/admin_fr.md b/pages/01.administrate/06.overview/03.admin/admin.fr.md
similarity index 56%
rename from admin_fr.md
rename to pages/01.administrate/06.overview/03.admin/admin.fr.md
index 64329b9a..016792ad 100644
--- a/admin_fr.md
+++ b/pages/01.administrate/06.overview/03.admin/admin.fr.md
@@ -1,4 +1,11 @@
-# L’interface d’administration Web
+---
+title: L'interface d'administration Web
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/admin_interface'
+---
YunoHost est fourni avec une interface graphique d’administration. L’autre méthode est d’utiliser la [ligne de commande](/commandline).
@@ -6,7 +13,5 @@ YunoHost est fourni avec une interface graphique d’administration. L’autre m
L’interface admin est accessible depuis votre instance YunoHost à l’adresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur)
-
-
-
+
diff --git a/admin.md b/pages/01.administrate/06.overview/03.admin/admin.md
similarity index 56%
rename from admin.md
rename to pages/01.administrate/06.overview/03.admin/admin.md
index fcfbff27..4b2f6004 100644
--- a/admin.md
+++ b/pages/01.administrate/06.overview/03.admin/admin.md
@@ -1,4 +1,11 @@
-# Administrator web interface
+---
+title: Administrator web interface
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/admin_interface'
+---
YunoHost has an administrator web interface. The other way to administrate your YunoHost install is through the [command line](/commandline).
@@ -6,6 +13,4 @@ YunoHost has an administrator web interface. The other way to administrate your
You can access your administrator web interface at this address: https://example.org/yunohost/admin (replace 'example.org' with your own domain name)
-
-
-
+
diff --git a/ssh_de.md b/pages/01.administrate/06.overview/04.commandline/ssh.de.md
similarity index 63%
rename from ssh_de.md
rename to pages/01.administrate/06.overview/04.commandline/ssh.de.md
index c112663e..ce0facd5 100644
--- a/ssh_de.md
+++ b/pages/01.administrate/06.overview/04.commandline/ssh.de.md
@@ -1,4 +1,15 @@
-# SSH
+---
+title: SSH
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/ssh'
+ aliases:
+ - '/commandline'
+page-toc:
+ active: true
+---
## Was ist SSH?
@@ -26,9 +37,7 @@ ssh root@111.222.333.444
A password will be asked. If this is a VPS, your VPS provided should have communicated you the password. If you used a pre-installed image (for x86 computer or ARM board), the password should be `yunohost`.
-
-Since YunoHost 3.4, after running the postinstallation, you won't be able to login as `root` anymore. Instead, **you should login using the `admin` user !** In the event that the LDAP server is broken and the `admin` user is unusable, you may still however still be able to login using `root` from the local network.
-
+! Since YunoHost 3.4, after running the postinstallation, you won't be able to login as `root` anymore. Instead, **you should login using the `admin` user !** In the event that the LDAP server is broken and the `admin` user is unusable, you may still however still be able to login using `root` from the local network.
#### Change the password!
@@ -36,7 +45,7 @@ After logging in for the first time, you should change the root password. The se
#### Let's configure !
-We're now ready to begin the [post-installation](postinstall).
+We're now ready to begin the [post-installation](/postinstall).
## After installing YunoHost
@@ -48,7 +57,7 @@ If you only know the IP address of your server :
ssh admin@111.222.333.444
```
-Then, you need to enter your administrator password created at [post-installation step](postinstall).
+Then, you need to enter your administrator password created at [post-installation step](/postinstall).
If you configured your DNS (or tweaked your `/etc/hosts`), you can simply use your domain name :
@@ -62,9 +71,7 @@ If you changed the SSH port, you need to add `-p ` to the command, e
ssh -p 2244 admin@your.domain.tld
```
-
-If you are connected as `admin` and would like to become `root` for more comfort (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su`.
-
+!!! If you are connected as `admin` and would like to become `root` for more comfort (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su`.
## Which users?
@@ -95,3 +102,29 @@ yunohost user ssh list-keys
N.B. : `fail2ban` will ban your IP for 10 mimutes if you perform 5 failed login attempts. If you need to unban the IP, have a look at the page about [Fail2Ban](/fail2ban)
A more extensive discussion about security & SSH can be found on the [dedicated page](/security).
+
+
+## Yunohost command line
+
+!!! Providing a full tutorial about the command line is quite beyond the scope of the YunoHost documentation : for this, consider reading a dedicated tutorial such as [this one](https://ryanstutorials.net/linuxtutorial/) or [this one](http://linuxcommand.org/). But be reassured that you don't need to be a CLI expert to start using it !
+
+The `yunohost` command can be used to administrate your server and perform the various actions similarly to what you do on the webadmin. The command must be launched either from the `root` user or from the `admin` user by preceeding them with `sudo`. (ProTip™ : you can become `root` with the command `sudo su` as `admin`).
+
+YunoHost commands usually have this kind of structure :
+
+```bash
+yunohost app install wordpress --label Webmail
+ ^ ^ ^ ^
+ | | | |
+ category action argument options
+```
+
+Don't hesitate to browse and ask for more information about a given category or action using the the `--help` option. For instance, those commands :
+
+```bash
+yunohost --help
+yunohost user --help
+yunohost user create --help
+```
+
+will successively list all the categories available, then the actions available in the `user` category, then the usage of the action `user create`. You might notice that the YunoHost command tree is built with a structure similar to the YunoHost admin pages.
diff --git a/ssh_es.md b/pages/01.administrate/06.overview/04.commandline/ssh.es.md
similarity index 61%
rename from ssh_es.md
rename to pages/01.administrate/06.overview/04.commandline/ssh.es.md
index 6466fa6c..10b2ab0c 100644
--- a/ssh_es.md
+++ b/pages/01.administrate/06.overview/04.commandline/ssh.es.md
@@ -1,9 +1,22 @@
-# SSH
+---
+title: SSH
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/ssh'
+ aliases:
+ - '/commandline'
+page-toc:
+ active: true
+---
## ¿ Qué es SSH ?
**SSH** est un acrónimo por Secure Shell, y representa un protocolo que permite controlar remotamente una máquina vía la línea de comandos (CLI). También es un comando básico disponible en los terminales de GNU/Linux y macOS. En Windows, hace falta utilizar el programa [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (después de haberlo iniciado, clicar sobre Session y luego SSH).
+La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla.
+
## Durante la instalación de YunoHost
#### Encontrar su IP
@@ -26,9 +39,7 @@ ssh root@111.222.333.444
Ahora te piden una contraseña. Si es un VPS, tu proveedor ya te hará comunicado la contraseña. Si utilizaste una imagen pre-instalada (para x86 o tarjetas ARM), el password debería ser `yunohost`.
-
-Desde YunoHost 3.4, después de la post-instalación ya no es posible conectarse con el usuario `root`. En lugar de eso, hace falta **conectarse con el usuario `admin`**. Incluso si el servidor LDAP fuera quebrado (haciendo que el usuario `admin` ya no fuera utilizable) todavía deberías poder conectarte con el usuario `root` desde la red local.
-
+! Desde YunoHost 3.4, después de la post-instalación ya no es posible conectarse con el usuario `root`. En lugar de eso, hace falta **conectarse con el usuario `admin`**. Incluso si el servidor LDAP fuera quebrado (haciendo que el usuario `admin` ya no fuera utilizable) todavía deberías poder conectarte con el usuario `root` desde la red local.
#### ¡ Cambiar la contraseña root !
@@ -59,9 +70,7 @@ Si cambiaste el puerto SSH, hay que añadir `-p ` al comando, p
ssh -p 2244 admin@tu.dominio.tld
```
-
-Si estás conectado como `admin` y quieres ser `root` para tener más confort (por ejemplo, para no teclear `sudo` con cada comando), puedes convertirte en `root` tecleando `sudo su`.
-
+!!! Si estás conectado como `admin` y quieres ser `root` para tener más confort (por ejemplo, para no teclear `sudo` con cada comando), puedes convertirte en `root` tecleando `sudo su`.
## ¿ Qué usuarios ?
@@ -89,3 +98,28 @@ yunohost user ssh list-keys
N.B. : `fail2ban` proscribirá tu IP durante 10 minutos si fracasas más de 5 veces consecutivas en identificarte. Si esto ocurre y que quieres re-validar tu IP, puedes echar un vistazo a la página [Fail2Ban](/fail2ban)
Encontrarás explicaciones más completa sobre la seguridad y SSH en [la página dedicada](/security).
+
+## YunoHost de línea de comandos
+
+!!! Proveer un tutorial completo sobre la línea de comandos saldría del marco de la documentación de YunoHost : por eso, refiérete a totorales como [éste](https://www.fing.edu.uy/inco/cursos/sistoper/recursosLaboratorio/tutorial0.pdf) o [éste (en)](http://linuxcommand.org/). Pero no te preocupes : no hace falta ser un experto para comenzar a utilizarla !
+
+El comando `yunohost` puede ser utilizado para administrar tu servidor o realizar las mismas acciones que en la interfaz gráfica webadmin. Hay que iniciarla como usuario `root`, o como el usuario `admin` poniendo `sudo` antes del comando. (ProTip™ : puedes convertirte en usuario `root` vía el comando `sudo su` cuando eres `admin`.)
+
+Los comandos YunoHost tienen este tipo de estructura :
+
+```bash
+yunohost app install wordpress --label Webmail
+ ^ ^ ^ ^
+ | | | |
+ categoría acción argumento opción
+```
+
+No dudes en navegar ni en pedir información a propósito de una categoría o acción utilizando la opción `--help`. Por ejemplo, estos comandos :
+
+```bash
+yunohost --help
+yunohost user --help
+yunohost user create --help
+```
+
+de manera sucesiva van a enumerar todas las categorías disponibles, luego las acciones de la categoría `user`, y luego explicar cómo utilizar la acción `user create`. Deberías notar que el árbol de los comandos YunoHost tiene la misma estructura que las páginas del webadmin.
diff --git a/ssh_fr.md b/pages/01.administrate/06.overview/04.commandline/ssh.fr.md
similarity index 64%
rename from ssh_fr.md
rename to pages/01.administrate/06.overview/04.commandline/ssh.fr.md
index 4f2f4acc..5083bd22 100644
--- a/ssh_fr.md
+++ b/pages/01.administrate/06.overview/04.commandline/ssh.fr.md
@@ -1,9 +1,22 @@
-# SSH
+---
+title: SSH et la ligne de commande
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/ssh'
+ aliases:
+ - '/commandline'
+page-toc:
+ active: true
+---
## Qu’est-ce que SSH ?
**SSH** est un acronyme pour Secure Shell, et désigne un protocole qui permet de contrôler et administrer à distance une machine via la ligne de commande (CLI). C'est aussi une commande disponible de base dans les terminaux de GNU/Linux et macOS. Sous Windows, il vous faudra utiliser le logiciel [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (après l'avoir lancé, cliquer sur Session puis SSH).
+L'interface en ligne de commande (CLI) est, en informatique, la manière originale (et plus technique) d'interagir avec un ordinateur comparé aux interfaces graphiques. La ligne de commande est généralement considéré comme plus complète, puissante et efficace que les interfaces graphiques, bien que plus difficile à apprendre.
+
## Quelle adresse utiliser pour se connecter au serveur ?
Si vous hébergez votre serveur **à la maison** (par ex. Raspberry Pi ou OLinuXino ou vieil ordinateur)
@@ -52,9 +65,7 @@ Si vous avez changé le port SSH, il faut rajouter l'option `-p `
ssh -p 2244 admin@votre.domaine.tld
```
-
-Si vous êtes connecté en tant qu'`admin` et souhaitez devenir `root` pour plus de confort (par exemple, ne pas avoir à taper `sudo` à chaque commande), vous pouvez devenir `root` en tapant `sudo su` ou `sudo -i`.
-
+!!! Si vous êtes connecté en tant qu'`admin` et souhaitez devenir `root` pour plus de confort (par exemple, ne pas avoir à taper `sudo` à chaque commande), vous pouvez devenir `root` en tapant `sudo su` ou `sudo -i`.
## Quels utilisateurs ?
@@ -82,3 +93,28 @@ yunohost user ssh list-keys
N.B. : `fail2ban` bannira votre IP pour 10 minutes si vous échouez plus de 5 fois à vous identifier. Pour débannir une IP, vous pouvez regarder la page sur [Fail2Ban](/fail2ban)
Une discussion plus complète de la sécurité et de SSH peut être trouvée sur [la page dédiée](/security).
+
+## La ligne de commande Yunohost
+
+!!! Fournir un tutorial complet sur la ligne de commande est bien au dela du cadre de la documentation de YunoHost : pour cela, référez-vous à des tutoriaux comme [celui-ci](https://doc.ubuntu-fr.org/tutoriel/console_ligne_de_commande) ou [celui-ci (en)](http://linuxcommand.org/). Mais soyez rassuré qu'il n'y a pas besoin d'être un expert pour commencer à l'utiliser !
+
+La commande `yunohost` peut être utilisée pour administrer votre serveur ou réaliser les mêmes actions que celles disponibles sur la webadmin. Elle doit être lancée en depuis l'utilisateur `root`, ou bien depuis l'utilisateur `admin` en précédant la commande de `sudo`. (ProTip™ : il est possible de devenir `root` via la commande `sudo su` en tant qu'`admin`.)
+
+Les commandes YunoHost ont ce type de structure :
+
+```bash
+yunohost app install wordpress --label Webmail
+ ^ ^ ^ ^
+ | | | |
+ categorie action argument options
+```
+
+N'hesitez pas à naviguer et demander des informations à propos d'une catégorie ou action donnée via l'option `--help`. Par exemple, ces commandes :
+
+```bash
+yunohost --help
+yunohost user --help
+yunohost user create --help
+```
+
+vont successivement lister toutes les catégories disponibles, puis les actions de la catégorie `user`, puis expliquer comment utiliser l'action `user create`. Vous devriez remarquer que l'arbre des commandes YunoHost suit une structure similaire aux pages de la webadmin.
diff --git a/ssh_it.md b/pages/01.administrate/06.overview/04.commandline/ssh.it.md
similarity index 63%
rename from ssh_it.md
rename to pages/01.administrate/06.overview/04.commandline/ssh.it.md
index 83689950..6a2a5047 100644
--- a/ssh_it.md
+++ b/pages/01.administrate/06.overview/04.commandline/ssh.it.md
@@ -1,4 +1,15 @@
-# SSH
+---
+title: SSH
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/ssh'
+ aliases:
+ - '/commandline'
+page-toc:
+ active: true
+---
## Cos'è SSH?
@@ -25,9 +36,7 @@ ssh root@111.222.333.444
Ti verrà richiesta una password. Nel caso tu stia utilizzando un VPS questa ti dovrebbe essere stata comunicata dal provider. Se invece stai utilizzando un'immagine pre-installata (per computer di tipo x86 o ARM) la password sarà `yunohost`.
-
-Dalla versione 3.4 di YunoHost, dopo aver completato il processo di post installazione, non sarà più possibile fare login da `root`: invece **sarà necessario fare login usando l'utente `admin`!**. Nel caso in cui il server LDAP non stia funzionando e l'utente `admin` sia inutilizzabile sarà sempre possibile fare login da `root` solo dalla rete locale.
-
+! Dalla versione 3.4 di YunoHost, dopo aver completato il processo di post installazione, non sarà più possibile fare login da `root`: invece **sarà necessario fare login usando l'utente `admin`!**. Nel caso in cui il server LDAP non stia funzionando e l'utente `admin` sia inutilizzabile sarà sempre possibile fare login da `root` solo dalla rete locale.
#### Cambio della password
@@ -43,7 +52,7 @@ Se conosci esclusivamente l'indirizzo IP del tuo server:
ssh admin@111.222.333.444
```
-Dopo di che dovrai inserire la password di amministratore creata nella [procedura di postinstallazione](postinstall).
+Dopo di che dovrai inserire la password di amministratore creata nella [procedura di postinstallazione](/postinstall).
Se invece hai configurato il DNS (o hai modificato il file `/etc/hosts`), puoi semplicemente usare il tuo nome di dominio:
@@ -57,9 +66,7 @@ Se hai modificato la porta in ascolto per SSH devi aggiungere l'opzione `-p
-Se sei loggato come `admin` ma vuoi usare l'utente `root` per maggiore comodità (ad esempio per evitare di scrivere `sudo` prima di ogni comando) puoi usare il comando `sudo su`.
-
+!!! Se sei loggato come `admin` ma vuoi usare l'utente `root` per maggiore comodità (ad esempio per evitare di scrivere `sudo` prima di ogni comando) puoi usare il comando `sudo su`.
## Utenti abilitati
@@ -90,3 +97,28 @@ yunohost user ssh list-keys
N.B.: `fail2ban` bannerà il tuo IP per 10 minuti nel caso di almeno 5 tentativi di accesso falliti. Se devi togliere il ban al tuo IP leggi la pagina relativa [Fail2Ban](/fail2ban)
Una discussione più approfondita relativa a sicurezza & SSH è su [questa pagina](/security).
+
+## Yunohost command line
+
+!!! Providing a full tutorial about the command line is quite beyond the scope of the YunoHost documentation : for this, consider reading a dedicated tutorial such as [this one](https://ryanstutorials.net/linuxtutorial/) or [this one](http://linuxcommand.org/). But be reassured that you don't need to be a CLI expert to start using it !
+
+The `yunohost` command can be used to administrate your server and perform the various actions similarly to what you do on the webadmin. The command must be launched either from the `root` user or from the `admin` user by preceeding them with `sudo`. (ProTip™ : you can become `root` with the command `sudo su` as `admin`).
+
+YunoHost commands usually have this kind of structure :
+
+```bash
+yunohost app install wordpress --label Webmail
+ ^ ^ ^ ^
+ | | | |
+ category action argument options
+```
+
+Don't hesitate to browse and ask for more information about a given category or action using the the `--help` option. For instance, those commands :
+
+```bash
+yunohost --help
+yunohost user --help
+yunohost user create --help
+```
+
+will successively list all the categories available, then the actions available in the `user` category, then the usage of the action `user create`. You might notice that the YunoHost command tree is built with a structure similar to the YunoHost admin pages.
diff --git a/ssh.md b/pages/01.administrate/06.overview/04.commandline/ssh.md
similarity index 59%
rename from ssh.md
rename to pages/01.administrate/06.overview/04.commandline/ssh.md
index 9417769d..e0e9c6fc 100644
--- a/ssh.md
+++ b/pages/01.administrate/06.overview/04.commandline/ssh.md
@@ -1,9 +1,22 @@
-# SSH
+---
+title: SSH and command line
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/ssh'
+ aliases:
+ - '/commandline'
+page-toc:
+ active: true
+---
## What's SSH?
**SSH** stands for Secure Shell, and refers to a protocol that allows to remotely control and administrate a machine using the command line interface (CLI). It is available by default in any terminal on GNU/Linux and macOS. On Windows, you may want to use [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (after launching it, click on Session then SSH).
+The command line interface (CLI) is, in the computer world, the original (and more technical) way of interacting with a computer compared to graphical interface. Command line interfaces are generally said to be more complete, powerful or efficient than a graphical interface, though also more difficult to learn.
+
## What address to use to connect to your server?
If you are **installing at home** (e.g. on a Raspberry Pi or OLinuXino or old computer):
@@ -11,19 +24,20 @@ If you are **installing at home** (e.g. on a Raspberry Pi or OLinuXino or old co
- if `yunohost.local` does not work, your need to [find out the local IP of the server](/finding_the_local_ip).
- if you installed a server at home but are attempting to connect from outside your local network, make sure port 22 is correctly forwarded to your server.
-If you server is a remote server (VPS), your provider should have communicated you the IP address of the machine
+
+If your server is a remote server (VPS), your provider should have communicated you the IP address of the machine
In any cases, if you already configured a domain name pointing to the appropriate IP, it's much better to use `yourdomain.tld` instead of the IP address.
## Login credentials
-### BEFORE running the post-installation
+#### BEFORE running the post-installation
- If you are **installing at home**, the default credentials are login: `root` and password: `yunohost`
- If you are **installing a remote server (VPS)**, your provider should have communicated you the login and password (or allowed you to configure an SSH key)
-### AFTER running the post-installation
+#### AFTER running the post-installation
During the postinstall, you've been asked to choose an administration password. This password becomes the new password for the `root` and `admin` users. Additionally, **the `root` SSH login becomes disabled after the postinstall and you should log in using the `admin` user !**. The only exception is that you may still be able to login using `root` *from the local network - or from a direct console on the server* (this is to cover the event where the LDAP server is broken and the `admin` user is unusable).
@@ -54,9 +68,7 @@ If you changed the SSH port, you need to add `-p ` to the command, e
ssh -p 2244 admin@your.domain.tld
```
-
-If you connected as `admin` and would like to become `root` for convenience (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su` or `sudo -i`.
-
+!!! If you connected as `admin` and would like to become `root` for convenience (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su` or `sudo -i`.
## Which other users may connect to the server?
@@ -87,3 +99,28 @@ yunohost user ssh list-keys
N.B. : `fail2ban` will ban your IP for 10 minutes if you perform 5 failed login attempts. If you need to unban the IP, have a look at the page about [Fail2Ban](/fail2ban)
A more extensive discussion about security & SSH can be found on the [dedicated page](/security).
+
+## Yunohost command line
+
+!!! Providing a full tutorial about the command line is quite beyond the scope of the YunoHost documentation : for this, consider reading a dedicated tutorial such as [this one](https://ryanstutorials.net/linuxtutorial/) or [this one](http://linuxcommand.org/). But be reassured that you don't need to be a CLI expert to start using it !
+
+The `yunohost` command can be used to administrate your server and perform the various actions similarly to what you do on the webadmin. The command must be launched either from the `root` user or from the `admin` user by preceeding them with `sudo`. (ProTip™ : you can become `root` with the command `sudo su` as `admin`).
+
+YunoHost commands usually have this kind of structure :
+
+```bash
+yunohost app install wordpress --label Webmail
+ ^ ^ ^ ^
+ | | | |
+ category action argument options
+```
+
+Don't hesitate to browse and ask for more information about a given category or action using the the `--help` option. For instance, those commands :
+
+```bash
+yunohost --help
+yunohost user --help
+yunohost user create --help
+```
+
+will successively list all the categories available, then the actions available in the `user` category, then the usage of the action `user create`. You might notice that the YunoHost command tree is built with a structure similar to the YunoHost admin pages.
diff --git a/users_fr.md b/pages/01.administrate/06.overview/05.users/users.fr.md
similarity index 58%
rename from users_fr.md
rename to pages/01.administrate/06.overview/05.users/users.fr.md
index fe236849..a949b6ee 100644
--- a/users_fr.md
+++ b/pages/01.administrate/06.overview/05.users/users.fr.md
@@ -1,4 +1,11 @@
-# Les utilisateurs et le SSO
+---
+title: Les utilisateurs et le SSO
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/users'
+---
## Utilisateurs
@@ -6,30 +13,26 @@ Les utilisateurs sont les êtres humains qui ont accès aux applications et autr
Le premier utilisateur créé reçoit aussi automatiquement les alias email `root@main.domain.tld` et `admin@main.domain.tld`, de sorte que le courrier envoyé à ces adresses se retrouvera dans la boîte aux lettres de cet utilisateur.
-
-Vous devriez faire attention à qui vous donnez l'accès à votre serveur. En termes de sécurité, cela augmente considérablement la surface d'attaque pour quelqu'un qui veut perturber le serveur d'une manière ou d'une autre.
-
+! Vous devriez faire attention à qui vous donnez l'accès à votre serveur. En termes de sécurité, cela augmente considérablement la surface d'attaque pour quelqu'un qui veut perturber le serveur d'une manière ou d'une autre.
## Le portail utilisateur, ou SSO
-
+[center]
+
+[/center]
Le portail utilisateur, également appelé SSO pour 'Single Sign On', permet à l'utilisateur de naviguer facilement entre les différentes applications auxquelles il a accès. En particulier, le terme 'Single Sign On' vient du fait que l'utilisateur n'a qu'à se connecter au portail pour être automatiquement connecté à toutes les applications qui nécessitent une authentification (ou du moins celles qui sont intégrées avec le SSO/LDAP, car cela est parfois techniquement compliqué ou pas possible du tout).
Dans le portail, les utilisateurs peuvent également cliquer sur l'avatar en haut à gauche pour configurer d'autres paramètres tels que leur identité, les alias de messagerie, les transferts automatiques de courrier ou changer leur mot de passe.
-
-Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (c.-à-d. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (c.-à-d. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_network).
-
+!!! Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (c.-à-d. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (c.-à-d. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](/dns_local_network).
## Gestion des groupes d'utilisateurs et permissions
-Voir [cette page de documentation dédiée](groups_and_permissions).
+Voir [cette page de documentation dédiée](/groups_and_permissions).
## Accès SSH
Les utilisateurs peuvent également être autorisés à se connecter via SSH, et des clés SSH peuvent être ajoutées à cette fin. Jusqu'à présent, ceci ne peut être configuré que via la ligne de commande. Voir `yunohost user ssh --help` pour des commandes spécifiques.
-
-Faites attention à qui vous donnez accès à SSH. Cela augmente encore plus la surface d'attaque disponible pour un utilisateur malveillant.
-
+! Faites attention à qui vous donnez accès à SSH. Cela augmente encore plus la surface d'attaque disponible pour un utilisateur malveillant.
diff --git a/users.md b/pages/01.administrate/06.overview/05.users/users.md
similarity index 55%
rename from users.md
rename to pages/01.administrate/06.overview/05.users/users.md
index a5c7154d..0ef31724 100644
--- a/users.md
+++ b/pages/01.administrate/06.overview/05.users/users.md
@@ -1,4 +1,11 @@
-# Users and the SSO
+---
+title: Users and the SSO
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/users'
+---
## Users
@@ -6,30 +13,26 @@ Users are human being who have access to applications and other services on your
The first user created also automatically gets email aliases `root@main.domain.tld` and `admin@main.domain.tld`, such that mail sent to these adresses will end up in the first user's mailbox.
-
-You should be careful about who you give your server access to. In terms of security, this largely increase the attack surface for someone who wants to mess with the server one way or another.
-
+! You should be careful about who you give your server access to. In terms of security, this largely increase the attack surface for someone who wants to mess with the server one way or another.
## The user portal, or SSO
-
+[center]
+
+[/center]
The user portal, also called the SSO for 'Single Sign On' allows user to browse easily between the different apps they have access to. In particular, the term 'Single Sign On' comes from the fact that user only need to log in the portal to automatically be logged to all apps that require authentication (or at least those who are integrated with the SSO/LDAP, since this is sometimes technically complicated or not possible at all).
In the portal, users can also click on the avatar in the top-left to configure some other settings such as their identify, mail aliases, automatic mail forwards, or change their password.
-
-You should be aware that the SSO can only be reached through the actual domain name (i.e. `https://the.domain.tld/yunohost/sso`), and NOT by just using the IP of the server (i.e. `https://11.22.33.44/yunohost/sso`), contrarily to the webadmin ! This is a bit confusing but is necessary for technical reason. If you are in a situation where you need to access the SSO without having your DNS properly configured for some reason, you might consider tweaking your `/etc/hosts` as described in [this page](dns_local_network).
-
+!!! You should be aware that the SSO can only be reached through the actual domain name (i.e. `https://the.domain.tld/yunohost/sso`), and NOT by just using the IP of the server (i.e. `https://11.22.33.44/yunohost/sso`), contrarily to the webadmin ! This is a bit confusing but is necessary for technical reason. If you are in a situation where you need to access the SSO without having your DNS properly configured for some reason, you might consider tweaking your `/etc/hosts` as described in [this page](/dns_local_network).
## User groups and permissions
-See [this dedicated page](groups_and_permissions).
+See [this dedicated page](/groups_and_permissions).
## SSH access
Users can also be allowed to connect through SSH, and SSH keys can be added for this purpose. So far, this can only be configured via the command line. See `yunohost user ssh --help` for specific commands.
-
-Be careful who you give SSH access to. This increases even more the attack surface available to a malicious user.
-
+! Be careful who you give SSH access to. This increases even more the attack surface available to a malicious user.
diff --git a/apps_overview_fr.md b/pages/01.administrate/06.overview/06.apps/apps_overview.fr.md
similarity index 77%
rename from apps_overview_fr.md
rename to pages/01.administrate/06.overview/06.apps/apps_overview.fr.md
index 795ba4ea..6f9524be 100644
--- a/apps_overview_fr.md
+++ b/pages/01.administrate/06.overview/06.apps/apps_overview.fr.md
@@ -1,4 +1,11 @@
-# Applications
+---
+title: Les applications
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/apps_overview'
+---
L'une des fonctionnalités principales de YunoHost est la possibilité d'installer facilement des applications immédiatement utilisables. Pour donner des exemples d'application, il est possible d'installer un système de blog, un "cloud" (pour héberger et synchroniser des fichiers), un site web, un lecteur RSS...
@@ -6,11 +13,7 @@ Les applications doivent être packagées manuellement par les packageurs/mainte
Les applications peuvent être installées et gérées via l'interface webadmin dans la partie 'Applications', ou via les commandes de la catégorie `yunohost app`.
-## Listes d'applications
-
-Du point de vue technique, les applications sont des dépôts de code public (comme [celui-ci](https://github.com/YunoHost-Apps/wordpress_ynh)). Les applications existantes sont indexées à l'aide de "listes d'applications". Ces listes peuvent être gérées dans Applications > Installer > Gérer les listes d'applications, ou avec des commandes telles que `yunohost app fetchlist`.
-
-La liste des applications existantes peut être consultée sur [cette page](/apps).
+Il est possible de naviguer dans le catalogue d'application dans la webadmin (dans Applications > Installer) ou bien [ici](/apps).
## Niveaux d'intégration et de qualité
@@ -26,8 +29,8 @@ Certaines applications peuvent être installées plusieurs fois (à différents
## Gestion de l'accès des utilisateurs
-L'accès aux applications peut être limité à certains utilisateurs seulement. Ceci peut être configuré via la webadmin sur la page [Groupes et permissions](groups_and_permissions), ou de la même manière via la sous-catégorie de commandes `yunohost user permission`.
+L'accès aux applications peut être limité à certains utilisateurs seulement. Ceci peut être configuré via la webadmin sur la page [Groupes et permissions](/groups_and_permissions), ou de la même manière via la sous-catégorie de commandes `yunohost user permission`.
## Packaging d'applications
-Si vous voulez apprendre ou contribuer à l'empaquetage des applications, veuillez consulter la [documentation des contributeurs](contributordoc).
+Si vous voulez apprendre ou contribuer à l'empaquetage des applications, veuillez consulter la [documentation des contributeurs](/contributordoc).
diff --git a/apps_overview.md b/pages/01.administrate/06.overview/06.apps/apps_overview.md
similarity index 79%
rename from apps_overview.md
rename to pages/01.administrate/06.overview/06.apps/apps_overview.md
index fa0e33f1..7e3a421c 100644
--- a/apps_overview.md
+++ b/pages/01.administrate/06.overview/06.apps/apps_overview.md
@@ -1,4 +1,11 @@
-# Applications
+---
+title: Applications
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/apps_overview'
+---
One of the key feature of YunoHost is the ability to easily install applications which are then immediately usable. Example of applications include a blog system, a "cloud" (to host and sync files), a website, an RSS reader...
@@ -6,11 +13,7 @@ Applications must be packaged manually by application packagers/maintainers. App
Applications can be installed and managed through the webadmin interface in 'Applications' or through commands of the `yunohost app` category.
-## Application lists
-
-From the technical point of view, applications are public code repository (such as [this one](https://github.com/YunoHost-Apps/wordpress_ynh)). Existing applications are indexed using "application lists". Those lists can be managed in Applications > Install > Manage applications lists or with commands such as `yunohost app fetchlist`.
-
-The full list of application can be browsed at [this page](/apps).
+The application catalog can be browsed in the webadmin (in Applications > Install) or [here](/apps).
## Integration and quality levels
@@ -30,4 +33,4 @@ Access to apps can be restricted to some users only. This can be configured via
## Packaging applications
-If you want to learn or contribute to app packaging, please check the [contributor documentation](contributordoc).
+If you want to learn or contribute to app packaging, please check the [contributor documentation](/contributordoc).
diff --git a/domains_fr.md b/pages/01.administrate/06.overview/07.domains/domains.fr.md
similarity index 89%
rename from domains_fr.md
rename to pages/01.administrate/06.overview/07.domains/domains.fr.md
index f1469e4c..f5e28cf7 100644
--- a/domains_fr.md
+++ b/pages/01.administrate/06.overview/07.domains/domains.fr.md
@@ -1,8 +1,15 @@
-# Domaines, configuration DNS et certificats
+---
+title: Domaines, configurations DNS, et certificats
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/domains'
+---
YunoHost permet de gérer et de servir plusieurs domaines sur un même serveur. Vous pouvez donc héberger, par exemple, un blog et un Nextcloud sur un premier domaine `yolo.com`, et un client de messagerie web sur un second domaine `swag.nohost.me`. Chaque domaine est automatiquement configuré pour pouvoir gérer des services web, des courriels et une messagerie instantannée XMPP.
-Les domaines peuvent être gérés dans la section 'Domaine' de la webadmin, ou via la catégorie `yunohost domain` de la ligne de commande. Chaque fois que vous ajoutez un domaine, il est supposé que vous avez acheté (ou en tout cas que vous contrôliez) le domaine, de sorte que vous puissiez gérer la [configuration DNS](dns) ce celui-ci. Une exception concerne les [domaines en `.nohost.me`, `.noho.st` et `ynh.fr`](/dns_nohost_me) qui sont offerts par le Projet YunoHost, et peuvent être directement intégrés avec YunoHost grâce à une configuration dynDNS automatique. (Pour limiter les abus et les coûts, une instance ne peut avoir qu'un seul domaine offert à la fois).
+Les domaines peuvent être gérés dans la section 'Domaine' de la webadmin, ou via la catégorie `yunohost domain` de la ligne de commande. Chaque fois que vous ajoutez un domaine, il est supposé que vous avez acheté (ou en tout cas que vous contrôliez) le domaine, de sorte que vous puissiez gérer la [configuration DNS](/dns_config) ce celui-ci. Une exception concerne les [domaines en `.nohost.me`, `.noho.st` et `ynh.fr`](/dns_nohost_me) qui sont offerts par le Projet YunoHost, et peuvent être directement intégrés avec YunoHost grâce à une configuration dynDNS automatique. (Pour limiter les abus et les coûts, une instance ne peut avoir qu'un seul domaine offert à la fois).
Le domaine choisi lors de la postinstall est défini comme le domaine principal du serveur : c'est là que le SSO et l'interface d'administration web seront disponibles. Le domaine principal peut être modifié ultérieurement via la webadmin dans Domaines > (le domaine) > Définir par défaut, ou avec la ligne de commande `yunohost tools maindomain`.
diff --git a/domains.md b/pages/01.administrate/06.overview/07.domains/domains.md
similarity index 87%
rename from domains.md
rename to pages/01.administrate/06.overview/07.domains/domains.md
index c98175cb..cd38a758 100644
--- a/domains.md
+++ b/pages/01.administrate/06.overview/07.domains/domains.md
@@ -1,8 +1,15 @@
-# Domains, DNS conf and certificate
+---
+title: Domains, DNS conf, and certificate
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/domains'
+---
YunoHost allows you to manage and serve several domains on the same server. For instance, you can host a blog and Nextcloud on a first domain `yolo.com`, and a web mail client on a second domain `swag.nohost.me`. Each domain is automatically configured to handle web services, mail services and XMPP services.
-Domains can be managed in the 'Domain' section of the webadmin, or through the `yunohost domain` category of the command line. Each time you add a domain, it is expected that you bought it (or own it) on a domain registrar, so you can manage the [DNS configuration](dns). The exception is the [`.nohost.me`, `.noho.st` and `ynh.fr` domains](/dns_nohost_me) which are paid for by the YunoHost Project, and can be directly integrated with YunoHost thanks to an automated dynDNS setup. (To limit costs and abuses, each instance may only have one of these domains setup at any given time).
+Domains can be managed in the 'Domain' section of the webadmin, or through the `yunohost domain` category of the command line. Each time you add a domain, it is expected that you bought it (or own it) on a domain registrar, so you can manage the [DNS configuration](/dns_config). The exception is the [`.nohost.me`, `.noho.st` and `ynh.fr` domains](/dns_nohost_me) which are paid for by the YunoHost Project, and can be directly integrated with YunoHost thanks to an automated dynDNS setup. (To limit costs and abuses, each instance may only have one of these domains setup at any given time).
The domain chosen during the postinstall is defined as the main domain of the server : this is where the SSO and the web admin interface will be available. The main domain can later be changed through the web admin in Domains > (the domain) > Set default, or with the command line `yunohost tools maindomain`.
@@ -20,7 +27,7 @@ YunoHost can generate a recommended DNS configuration for each domain, including
## SSL/HTTPS certificates
-Another important aspect of domain configuration is the SSL/HTTPS certificate. YunoHost is integrated with Let's Encrypt, so once your server is correctly reachable from anybody on the internet through the domain name, the administrator can request a Let's Encrypt certificate. See the documentation about [certificates](certificate) for more information.
+Another important aspect of domain configuration is the SSL/HTTPS certificate. YunoHost is integrated with Let's Encrypt, so once your server is correctly reachable from anybody on the internet through the domain name, the administrator can request a Let's Encrypt certificate. See the documentation about [certificates](/certificate) for more information.
## Subpaths vs. individual domains per apps
diff --git a/email_configure_client_es.md b/pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.es.md
similarity index 69%
rename from email_configure_client_es.md
rename to pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.es.md
index 2cbda3c6..871841d6 100644
--- a/email_configure_client_es.md
+++ b/pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.es.md
@@ -1,4 +1,11 @@
-## Cómo configurar un cliente de correo electrónico
+---
+title: Configurar un cliente de correo electrónico
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email_configure_client'
+---
Es posible de consultar y enviar correos de tu YunoHost con un cliente de correo electrónico como Mozilla Thunderbird o K-9 Mail en el teléfono.
Normalmente, al añadir tu cuenta en el cliente de correo se va a configurar automáticamente, pero por si acaso no funciona, puedes configurarlo manualmente.
@@ -12,20 +19,21 @@ A continuación puedes encontrar los elementos a configurar en el cliente de cor
| IMAP | 993 | SSL/TLS | Normal password | `nombre_de_usuario` (sin `@domain.tld`) |
| SMTP | 587 | STARTTLS | Normal password | `nombre_de_usuario` (sin `@domain.tld`) |
-### Configurar Mozilla Thunderbird (en un ordenador)
+
+###  Configurar Mozilla Thunderbird (en un ordenador)
Para configurar manualmente un nuevo cuenta en Thunderbird, añadir las informaciones de la cuenta, y después seleccionar el puerto 993 con SSL/TLS para IMAP, y puerto 587 con STARTTLS para SMTP. Después seleccionar 'Normal Password' para Autenticación y haz click en el botón 'Advanced Config'. Se puede que tendrás que aceptar los certificados para que todo funciona normalmente.
-
-
+
+
* [Gestionar un alias para una dirección de correo electrónico](https://support.mozilla.org/es/kb/configurar-un-alias-para-una-direccin-de-correo-el)
-### Configurar K-9 Mail (en Android)
+###  Configurar K-9 Mail (en Android)
Seguir los pasos a continuación. (Como para Thunderbird, se puede que tendrás que aceptar los certificados para que funciona normalmente.)
-
-
-
-
+
+
+
+
diff --git a/email_configure_client_fr.md b/pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.fr.md
similarity index 70%
rename from email_configure_client_fr.md
rename to pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.fr.md
index 185173df..cde298ef 100644
--- a/email_configure_client_fr.md
+++ b/pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.fr.md
@@ -1,4 +1,11 @@
-## Configurer un client email
+---
+title: Configurer un client email
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email_configure_client'
+---
Vous pouvez récupérer et envoyer des emails avec votre instance YunoHost grâce à des logiciels comme Mozilla Thunderbird, ou sur votre smartphone grâce à des applications comme K-9 Mail.
@@ -13,31 +20,32 @@ Voici les éléments que vous devrez entrer pour configurer manuellement votre c
| IMAP | 993 | SSL/TLS | Mot de passe normal | `nom_dutilisateur` (sans `@domain.tld`) |
| SMTP | 587 | STARTTLS | Mot de passe normal | `nom_dutilisateur` (sans `@domain.tld`) |
-### Configurer Mozilla Thunderbird
+
+###  Configurer Mozilla Thunderbird
Pour configurer manuellement un nouveau compte dans Thunderbird commencez par remplir les informations de base (Nom, adresse et mot de passe), cliquez sur Continuer puis Configuration Manuelle. Enlevez le `.` avant le nom de domaine. Sélectionnez le port 993 avec SSL/TLS pour IMAP, et le port 587 avec STARTTLS pour SMTP. Sélectionnez 'Mot de passe normal' pour l'authentification. Testez la configuration puis validez. (Il vous faudra ensuite possiblement accepter des certificats pour que tout fonctionne correctement.)
-
-
+
+
* [Gérer les alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases)
-### Configurer K-9 Mail (sur Android)
+###  Configurer K-9 Mail (sur Android)
Suivez les instructions suivantes. (Comme pour Thunderbird, il vous faudra peut-être accepter des certificats à un moment)
-
-
-
-
+
+
+
+
-### Configure Dekko (on Ubuntu Touch)
+###  Configure Dekko (on Ubuntu Touch)
La première fois, vous pouvez simplement choisir "Ajouter un compte". Si vous avez déjà un compte configuré, appuyez sur le menu hamburger puis sur le rouage, choisissez Courrier, Comptes et appuyez sur le symbole " + ".
Sélectionnez ensuite IMAP. Remplissez les champs et appuyez sur Suivant. Dekko va ensuite chercher la configuration. Vérifiez que tous les champs sont corrects. Assurez-vous d'avoir votre nom d'utilisateur yunohost, PAS votre adresse email et choisissez "Autoriser les certificats non fiables". Faites ceci pour IMAP et SMTP et appuyez sur Suivant. Dekko va ensuite synchroniser le compte après quoi vous aurez terminé. Félicitations !
-
-
-
-
+
+
+
+
diff --git a/email_configure_client.md b/pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.md
similarity index 66%
rename from email_configure_client.md
rename to pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.md
index a2511674..67388a3e 100644
--- a/email_configure_client.md
+++ b/pages/01.administrate/06.overview/08.emails/02.emailclients/email_configure_client.md
@@ -1,4 +1,11 @@
-## Configuring email client
+---
+title: Configuring email client
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email_configure_client'
+---
You can fetch and send emails using your YunoHost instance from desktop email clients such as Mozilla Thunderbird or on your smartphone with applications like K-9 Mail.
@@ -13,31 +20,32 @@ Here are the element you should enter to manually configure your mail client (`d
| IMAP | 993 | SSL/TLS | Normal password | `username` (without the `@domain.tld`) |
| SMTP | 587 | STARTTLS | Normal password | `username` (without the `@domain.tld`) |
-### Configure Mozilla Thunderbird (on a desktop computer)
+###  Configure Mozilla Thunderbird (on a desktop computer)
To manually configure a new account in Thunderbird, add the account information, then select port 993 with SSL/TLS for IMAP, and port 587 with STARTTLS for SMTP. Afterwards select 'Normal Password' for Authentication and click on 'Advanced Config'. You may need to accept the certificate exceptions for fetching mails and after you send your first mail. Don't forget to remove the dot before the domain name.
-
-
+
+
* [Manage alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases)
-### Configure K-9 Mail (on Android)
+###  Configure K-9 Mail (on Android)
Follow the following steps. (As for Thunderbird, you might need to accept certificates at some points)
-
-
-
-
+
+
+
+
-### Configure Dekko (on Ubuntu Touch)
+
+###  Configure Dekko (on Ubuntu Touch)
The first time you can simply choose "Add account". If you already have an account configured, tap the hamburger menu then tap the gear, choose Mail, Accounts and press the '+'-symbol.
Then you choose IMAP. Fill in the fields and press Next. Now Dekko will look for the configuration. Check that all fields are correct. Make sure you have your yunohost username, NOT your mailadress and choose "Allow untrusted certificates". Do this for IMAP and SMTP and press Next. Dekko will now synchronise the account after which you are done. Congratz!
-
-
-
-
+
+
+
+
diff --git a/email_de.md b/pages/01.administrate/06.overview/08.emails/email.de.md
similarity index 97%
rename from email_de.md
rename to pages/01.administrate/06.overview/08.emails/email.de.md
index a0565b4f..c6cd979f 100644
--- a/email_de.md
+++ b/pages/01.administrate/06.overview/08.emails/email.de.md
@@ -1,4 +1,11 @@
-# E-Mails
+---
+title: E-Mails
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email'
+---
YunoHost wird mit einem kompletten Mail-Stack geliefert, der es Ihnen ermöglicht, Ihren eigenen E-Mail-Server zu hosten und somit Ihre eigenen E-Mail-Adressen in ```irgendjemand@deine.domain.tld``` zu haben.
diff --git a/email_es.md b/pages/01.administrate/06.overview/08.emails/email.es.md
similarity index 97%
rename from email_es.md
rename to pages/01.administrate/06.overview/08.emails/email.es.md
index d5d6107d..7bbcc224 100644
--- a/email_es.md
+++ b/pages/01.administrate/06.overview/08.emails/email.es.md
@@ -1,4 +1,11 @@
-# Emails
+---
+title: Emails
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email'
+---
YunoHost integra un ecosistema completo de servidor mail, permitiéndote de alojar tu propia mensajería electrónica, y pues de tener tus propias direcciones email en `algo@tu.dominio.tld`.
diff --git a/email_fr.md b/pages/01.administrate/06.overview/08.emails/email.fr.md
similarity index 89%
rename from email_fr.md
rename to pages/01.administrate/06.overview/08.emails/email.fr.md
index e00220b2..75aca04c 100644
--- a/email_fr.md
+++ b/pages/01.administrate/06.overview/08.emails/email.fr.md
@@ -1,4 +1,11 @@
-# Emails
+---
+title: Emails
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email'
+---
YunoHost est livré avec un écosystème complet de serveur mail, vous permettant d'héberger votre propre serveur de messagerie, et donc d'avoir vos propres adresses email dans `quelquechose@votre.domaine.tld`.
@@ -9,16 +16,16 @@ Cet écosystème comprend un serveur SMTP (postfix), un serveur IMAP (Dovecot),
Les emails sont un écosystème compliqué et un grand nombre de détails peuvent les empêcher de fonctionner correctement.
Pour valider que votre configuration est correcte :
-- si vous vous hébergez chez vous et n'utilisez pas de VPN, assurez-vous que [votre FAI ne bloque pas le port 25](isp) ;
-- routez les ports selon [cette documentation](isp_box_config) ;
-- configurez soigneusement les enregistrements DNS du courrier électronique selon [cette documentation](dns_config) ;
+- si vous vous hébergez chez vous et n'utilisez pas de VPN, assurez-vous que [votre FAI ne bloque pas le port 25](/isp) ;
+- routez les ports selon [cette documentation](/isp_box_config) ;
+- configurez soigneusement les enregistrements DNS du courrier électronique selon [cette documentation](/dns_config) ;
- Testez votre configuration en utilisant [Mail-tester.com](https://mail-tester.com) (attention : seuls 3 tests par domaine et par jour sont autorisés) ;
Un score d'au moins 8~9/10 est un but raisonnable.
## Clients de messagerie
-Pour interagir avec le serveur de mail, c'est-à-dire lire et envoyer des emails, vous pouvez soit installer un client web comme Roundcube ou Rainloop sur votre serveur - ou configurer un client de bureau ou mobile comme décrit dans [cette page](email_configure_client).
+Pour interagir avec le serveur de mail, c'est-à-dire lire et envoyer des emails, vous pouvez soit installer un client web comme Roundcube ou Rainloop sur votre serveur - ou configurer un client de bureau ou mobile comme décrit dans [cette page](/email_configure_client).
Les clients de bureau ou mobile ont l'avantage de copier vos emails sur l'équipement permettant ainsi la consultation hors ligne et une protection relative face à d'éventuelles pannes matériel de votre serveur.
@@ -41,5 +48,5 @@ Pour s’assurer que l’adresse IP de votre serveur n’est pas dans ces listes
## Pour aller plus loin
-- Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](email_migration).
+- Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](/email_migration).
- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.octopuce.fr/conference-lemail-vaste-sujet-par-benjamin-sonntag/)(en français).
diff --git a/email.md b/pages/01.administrate/06.overview/08.emails/email.md
similarity index 89%
rename from email.md
rename to pages/01.administrate/06.overview/08.emails/email.md
index 9188b9a9..171955fc 100644
--- a/email.md
+++ b/pages/01.administrate/06.overview/08.emails/email.md
@@ -1,4 +1,11 @@
-# Emails
+---
+title: Emails
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email'
+---
YunoHost comes with a complete mail stack allowing you to host your own email server, and therefore to have your own email addresses in `something@your.domain.tld`.
@@ -9,16 +16,16 @@ The mail stack includes a SMTP server (postfix), an IMAP server (Dovecot), an an
Email is a complicated ecosystem and quite a few details can prevent it from working properly.
To validate your setup:
-- if you are self-hosting at home and not using a VPN, ensure [your ISP won't block port 25](isp) ;
-- route ports according to [this documentation](isp_box_config) ;
-- carefully configure mail DNS records according to [this documentation](dns_config) ;
+- if you are self-hosting at home and not using a VPN, ensure [your ISP won't block port 25](/isp) ;
+- route ports according to [this documentation](/isp_box_config) ;
+- carefully configure mail DNS records according to [this documentation](/dns_config) ;
- test your setup using [Mail-tester.com](https://mail-tester.com) (be careful : only 3 tests per domain per day are allowed) ;
A score of at least 8~9/10 is a reasonnable goal.
## Email clients
-To interact with the email sever (read and send emails), you can either install a webclient such as Roundcube or Rainloop on your server - or configure a desktop/mobile client as described in [this page](email_configure_client).
+To interact with the email sever (read and send emails), you can either install a webclient such as Roundcube or Rainloop on your server - or configure a desktop/mobile client as described in [this page](/email_configure_client).
Desktop and mobile clients have the advantage of copying your emails to the device, allowing offline viewing and relative protection against possible hardware failures of your server.
@@ -39,8 +46,8 @@ To ensure that your servers’ IP address isn’t into this blacklists and to re
## Migrating email from an email provider to a YunoHost instance
-See [this page](email_migration).
+See [this page](/email_migration).
## Configuring SMTP relay
-See [this page](email_configure_relay).
\ No newline at end of file
+See [this page](/email_configure_relay).
\ No newline at end of file
diff --git a/XMPP_es.md b/pages/01.administrate/06.overview/09.xmpp/XMPP.es.md
similarity index 94%
rename from XMPP_es.md
rename to pages/01.administrate/06.overview/09.xmpp/XMPP.es.md
index 87ee1799..69466c08 100644
--- a/XMPP_es.md
+++ b/pages/01.administrate/06.overview/09.xmpp/XMPP.es.md
@@ -1,4 +1,13 @@
-# Chat, VoIP y red local con
+---
+title: Chat, VoIP y red local con XMPP
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/XMPP'
+---
+
+
YunoHost está instalado con un servidor de mensajería instantánea Metronome que implementa el [protocolo XMPP](https://es.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol).
diff --git a/XMPP_fr.md b/pages/01.administrate/06.overview/09.xmpp/XMPP.fr.md
similarity index 94%
rename from XMPP_fr.md
rename to pages/01.administrate/06.overview/09.xmpp/XMPP.fr.md
index 5a8871b7..56765e0b 100644
--- a/XMPP_fr.md
+++ b/pages/01.administrate/06.overview/09.xmpp/XMPP.fr.md
@@ -1,4 +1,13 @@
-# Chat, VoIP et réseau social avec
+---
+title: Chat, VoIP et réseau social avec XMPP
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/XMPP'
+---
+
+
YunoHost est installé par défaut avec un serveur de messagerie instantanée Metronome qui implémente le [protocole XMPP](https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (anciennement connu sous le nom Jabber).
diff --git a/XMPP.md b/pages/01.administrate/06.overview/09.xmpp/XMPP.md
similarity index 94%
rename from XMPP.md
rename to pages/01.administrate/06.overview/09.xmpp/XMPP.md
index 92d53158..03767c82 100644
--- a/XMPP.md
+++ b/pages/01.administrate/06.overview/09.xmpp/XMPP.md
@@ -1,4 +1,13 @@
-# Chat, VoIP and social network with
+---
+title: Chat, VoIP and social network with XMPP
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/XMPP'
+---
+
+
By default, YunoHost comes installed with an instant messaging server called Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (previously known as Jabber).
diff --git a/backup_fr.md b/pages/01.administrate/06.overview/10.backups/backup.fr.md
similarity index 88%
rename from backup_fr.md
rename to pages/01.administrate/06.overview/10.backups/backup.fr.md
index 9aa81911..7ffa29c7 100644
--- a/backup_fr.md
+++ b/pages/01.administrate/06.overview/10.backups/backup.fr.md
@@ -1,4 +1,11 @@
-# Sauvegarder son serveur et ses apps
+---
+title: Sauvegarder son serveur et ses apps
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/backup'
+---
Dans le contexte de l'auto-hébergement, les sauvegardes (backup) sont un élément important pour pallier les événements inattendus (incendies, corruption de base de données, perte d'accès au serveur, serveur compromis...). La politique de sauvegardes à mettre en place dépend de l'importance des services et des données que vous gérez. Par exemple, sauvegarder un serveur de test aura peu d'intérêt, tandis que vous voudrez être très prudent si vous gérez des données critiques pour une association ou une entreprise - et dans ce genre de cas, vous souhaiterez stocker les sauvegardes *dans un endroit différent*.
@@ -16,7 +23,7 @@ La méthode de sauvegarde actuelle consiste à créer des archives `.tar.gz` qui
Vous pouvez facilement créer des archives depuis la webadmin en allant dans Sauvegardes > Archives locales et en cliquant sur "Nouvelle sauvegarde". Vous pourrez ensuite sélectionner les éléments à sauvegarder (configuration, données "système", applications).
-
+
#### Depuis la ligne de commande
@@ -82,7 +89,7 @@ scp /path/to/your/.tar.gz admin@your.domain.tld:/home/yunohost.ba
Allez dans Sauvegardes > Sauvegardes locales et sélectionnez l'archive. Vous pouvez ensuite choisir les différents éléments que vous voulez restaurer puis cliquer sur "Restaurer".
-
+
#### Depuis la ligne de commande
@@ -147,18 +154,22 @@ Il existe aussi l'application Archivist qui permet un système similaire : https
#### Éviter de sauvegarder certains dossiers
Si besoin, vous pouvez spécifier que certains dossiers `home` d'utilisateurs ne soient pas sauvegardés par la commande `yunohost backup`, en créant un fichier vide nommé `.nobackup` à l'intérieur.
-#### Backup complet avec `dd`
-Si vous êtes sur une carte ARM, une autre méthode pour créer une sauvegarde complète consiste à créer une image (copie) de la carte SD. Pour cela, éteignez votre serveur, insérez la carte SD dans votre ordinateur et créez une image avec une commande comme :
+#### Pour les cartes ARM: backup complet avec USBimager ou `dd`
+
+Si vous êtes sur une carte ARM, une autre méthode de backup consiste à créer une image de la carte SD.
+
+Ceci peut être effectué avec [USBimager](https://bztsrc.gitlab.io/usbimager/) (N.B. : assurez-vous de télécharger la version 'Read-write' ! Pas la version 'Write-only' !). Le processus consiste ensuite à "l'inverse" du processus de flashage de la carte SD:
+- Éteignez votre serveur
+- Récupérez la carte SD et branchez la dans votre ordinateur
+- Dans USBimager, cliquez "Read" pour créer une image ("photographie") de la carte SD. Vous pouvez utiliser le fichier obtenu pour plus tard restaurer le système en entier.
+
+Plus de détails dans [la doc d'USBimager](https://gitlab.com/bztsrc/usbimager/#creating-backup-image-file-from-device)
+
+Il est possible d'obtenir la même chose avec `dd` si vous êtes à l'aise avec la ligne de commande:
```bash
-dd if=/dev/mmcblk0 of=./backup.img status=progress
+dd if=/dev/mmcblk0 | gzip > ./my_snapshot.gz
```
(remplacez `/dev/mmcblk0` par le vrai nom de votre carte SD)
-
-Vous pouvez aussi compresser l'image à l'aide de gzip :
-
-```bash
-dd if=/dev/mmcblk0 | gzip > ./image.gz
-```
diff --git a/backup_it.md b/pages/01.administrate/06.overview/10.backups/backup.it.md
similarity index 86%
rename from backup_it.md
rename to pages/01.administrate/06.overview/10.backups/backup.it.md
index 1dfc3c28..168d7129 100644
--- a/backup_it.md
+++ b/pages/01.administrate/06.overview/10.backups/backup.it.md
@@ -1,4 +1,11 @@
-# Eseguire il backup del vostro server e delle app
+---
+title: Eseguire il backup del vostro server e delle app
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/backup'
+---
Eseguire il backup del vostro server, delle app e dei dati è un compito importante nell'amministrazione di un server poiché vi protegge da eventi inaspettati ma sempre possibili (come server distrutto da un incendio, corruzione del database, perdita delle credenziali di accesso, compromissione del server e altro). La policy di backup che adotterete dipende dall'importanza dei dati che state gestendo: ad esempio non sarà tanto importante avere il backup di un server di prova mentre lo sarà per un server contenente dati importanti per un'associazione o una ditta e sarà altrettanto importante tenere questo backup *in un luogo fisico diverso dal server stesso*.
@@ -16,7 +23,7 @@ Il metodo di default attuale crea degli archivi `.tar.gz` contenenti tutti i fil
Potete creare gli archivi di backup dalla pagina web di amministrazione andando in Backup > Archivi locali e cliccare su "Nuovo backup". Vi verrà chiesto di selezionare quale configurazione, dati e di quale app volete fare il backup.
-
+
### Dalla riga di comando
@@ -92,7 +99,7 @@ scp /path/to/your/.tar.gz admin@your.domain.tld:/home/yunohost.back
Dovete andare in Backup > Archivi locali e selezionare il vostro archivio. È possibile selezionare ciò che volete ripristinare e poi cliccare su 'Ripristina'.
-
+
### Dalla riga di comando
@@ -157,13 +164,21 @@ Potete seguire questo tutorial sul forum per impostare Borg fra due server:
-#### Backup completo con `dd`
+#### For ARM boards: full backup with USBimager or `dd`
-Se state usando una board ARM un altro metodo per eseguire un backup completo è quello di creare un'immagine della card SD. Per fare questo innanzitutto spegnete la vostra board ARM, prendete la card SD e createne un'immagine completa con un comando come il seguente:
+If you are using an ARM board, another method for doing a full backup can be to create an image of the SD card.
+This can be done easily using [USBimager](https://bztsrc.gitlab.io/usbimager/) (N.B. be sure to get the Read-Write version! Not the write-only version!). The process is basically the *reverse* of flashing the SD card.
+- Poweroff your server
+- Get the SD card and plug it into your computer
+- Using USBimager, click the *Read* button to create an image (snapshot) of the sd card. You can use it later to restore the entire system.
+
+More details [in the USBimager doc](https://gitlab.com/bztsrc/usbimager/#creating-backup-image-file-from-device)
+
+Alternatively you can use `dd` if you're comfortable with the command line with something like:
```bash
-dd if=/dev/mmcblk0 of=./backup.img status=progress
+dd if=/dev/mmcblk0 | gzip > ./my_snapshot.gz
```
-(modificate `/dev/mmcblk0` con il device reale della vostra card)
\ No newline at end of file
+(replace `/dev/mmcblk0` with the actual device of your SD card)
diff --git a/backup.md b/pages/01.administrate/06.overview/10.backups/backup.md
similarity index 88%
rename from backup.md
rename to pages/01.administrate/06.overview/10.backups/backup.md
index 611cf67d..c08552d1 100644
--- a/backup.md
+++ b/pages/01.administrate/06.overview/10.backups/backup.md
@@ -1,4 +1,11 @@
-# Backing up your server and apps
+---
+title: Backing up your server and apps
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/backup'
+---
Backing up your server, apps and data is an important concern when administrating a server. This protects you from unexpected events that could happen (server lost in a fire, database corruption, loss of access, server compromised...). The backup policy you will put in place depends of the importance of the services and data hosted. For instance you won't care too much about having backup on a test server, but you will care about having a backup of critical data of your association or company, and having this backup *in a different physical place*.
@@ -16,7 +23,7 @@ The current default method consists in creating a `.tar.gz` archive containing a
You can easily create backup archives from the webadmin by going in Backups > Local storage and clicking on "New backup". You will then be asked to select which configuration, data and apps you want to backup.
-
+
### From the command line
@@ -87,7 +94,7 @@ scp /path/to/your/.tar.gz admin@your.domain.tld:/home/yunohost.back
Go in Backup > Local storage and select your archive. You can then select which items you want to restore, then click on 'Restore'.
-
+
### From the command line
@@ -154,17 +161,21 @@ Alternatively, the app Archivist allows to setup a similar system: ./my_snapshot.gz
```
(replace `/dev/mmcblk0` with the actual device of your SD card)
-
-You can also create a compressed image using gzip this way:
-```bash
-dd if=/dev/mmcblk0 | gzip > ./image.gz
-```
diff --git a/pages/01.administrate/06.overview/11.update/upgrade.fr.md b/pages/01.administrate/06.overview/11.update/upgrade.fr.md
new file mode 100644
index 00000000..f692c6fe
--- /dev/null
+++ b/pages/01.administrate/06.overview/11.update/upgrade.fr.md
@@ -0,0 +1,34 @@
+---
+title: Mises à jour
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/update'
+ aliases:
+ - '/upgrade'
+---
+
+## Depuis la webadmin
+
+Dans la partie administration, choisir Mettre à jour le système. YunoHost va mettre à jour le catalogue des paquets sytème et le catalogue des applications, et afficher les mise à jour disponibles.
+
+Cliquez sur les boutons verts pour lancer les mises à jours du système et des applications.
+
+## Depuis la ligne de commande
+
+Voici quelques exemples de ligne de commande correspondantes :
+
+``` bash
+# Aller chercher les mises à jour disponibles
+yunohost tools update
+
+# Mettre à jour tous les paquets systèmes
+yunohost tools upgrade --system
+
+# Mettre à jour toutes les applications
+yunohost tools upgrade --apps
+
+# Mettre à jour une application en particulier
+yunohost app upgrade wordpress
+```
diff --git a/pages/01.administrate/06.overview/11.update/upgrade.md b/pages/01.administrate/06.overview/11.update/upgrade.md
new file mode 100644
index 00000000..40ab28f2
--- /dev/null
+++ b/pages/01.administrate/06.overview/11.update/upgrade.md
@@ -0,0 +1,34 @@
+---
+title: Upgrades
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/update'
+ aliases:
+ - '/upgrade'
+---
+
+## From the webadmin
+
+On the administraton panel, click on Upgrade the system. YunoHost will refresh the system package catalog as well as the application catalog, and display available upgrades.
+
+Click on green upgrade buttons to upgrade the system and applications.
+
+## From the command line
+
+Here are some example of corresponding command lines:
+
+``` bash
+# Fetch available updates
+yunohost tools update
+
+# Upgrade all system packages
+yunohost tools upgrade --system
+
+# Upgrade all apps
+yunohost tools upgrade --apps
+
+# Upgrade a specific application
+yunohost app upgrade wordpress
+```
diff --git a/security_fr.md b/pages/01.administrate/06.overview/12.security/security.fr.md
similarity index 95%
rename from security_fr.md
rename to pages/01.administrate/06.overview/12.security/security.fr.md
index 539eed2f..76d5bf11 100644
--- a/security_fr.md
+++ b/pages/01.administrate/06.overview/12.security/security.fr.md
@@ -1,4 +1,11 @@
-# Sécurité
+---
+title: Sécurité
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/security'
+---
YunoHost a été développé dans l’optique de fournir une sécurité maximale tout en restant accessible et facilement installable.
@@ -34,9 +41,7 @@ Par défaut, l’authentification SSH se fait avec le mot de passe d’administr
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub
```
-
-Si vous êtes sur Ubuntu 16.04 vous devez faire `ssh-add` pour initialiser l'agent ssh
-
+!!! Si vous êtes sur Ubuntu 16.04 vous devez faire `ssh-add` pour initialiser l'agent ssh
Entrez le mot de passe d’administration et votre clé publique devrait être copiée sur votre serveur.
@@ -125,9 +130,7 @@ ssh -p admin@
Afin d’éviter de multiples tentatives de forçage du login admin par des robots, on peut éventuellement changer l’utilisateur autorisé à se connecter.
-
-Dans le cas d’une authentification par clé, la force brute n’a aucune chance de réussir. Cette étape n’est donc pas vraiment utile dans ce cas
-
+!!! Dans le cas d’une authentification par clé, la force brute n’a aucune chance de réussir. Cette étape n’est donc pas vraiment utile dans ce cas
**Sur votre serveur**, ajoutez un utilisateur.
```bash
diff --git a/security.md b/pages/01.administrate/06.overview/12.security/security.md
similarity index 92%
rename from security.md
rename to pages/01.administrate/06.overview/12.security/security.md
index 7552e072..570ef5df 100644
--- a/security.md
+++ b/pages/01.administrate/06.overview/12.security/security.md
@@ -1,4 +1,11 @@
-# Security
+---
+title: Security
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/security'
+---
YunoHost has been developed to provide the best security without too much complication. Every protocol used in YunoHost is **encrypted**, only password's hashes are stored and by default each user is able to access their personal directory only.
@@ -8,16 +15,16 @@ Two things remain important to note:
* The fact that YunoHost is a well-spread software increases the chances of an attack. If a flaw is discovered, it could potentially affect all the YunoHost instances at once. Keep your system **up-to-date** to remain safe.
-*If you need advice, do not hesitate to [ask us](/help).*
+!!!! If you need advice, do not hesitate to [ask us](/help).
-*To talk about security flaws, contact the [YunoHost security team](/security_team).*
+!! [fa=shield /] To discuss security flaws, contact the [YunoHost security team](/security_team).
---
## Improve security
If your YunoHost server is used in a critical production environment, or if you want to improve its safety, you may want to follow those good practices.
-**Attention:** *Following those instructions requires advanced knowledge of system administration.*
+! **Attention:** Following those instructions requires advanced knowledge of system administration.
### SSH authentication via key
By default, the SSH authentication uses the administration password. Deactivating this kind of authentication and replacing it by a key mechanism is advised.
@@ -116,9 +123,7 @@ ssh -p admin@
To avoid multiple forced login attempts to the admin account by robots, change the authorized user who can connect.
-
-In the case of a key authentication, a brute force attack has no chance of succeeding. This step is not really useful in this case.
-
+!!! In the case of a key authentication, a brute force attack has no chance of succeeding. This step is not really useful in this case.
**On your server**, add a user
```bash
diff --git a/groups_and_permissions_fr.md b/pages/01.administrate/06.overview/13.permissions/groups_and_permissions.fr.md
similarity index 91%
rename from groups_and_permissions_fr.md
rename to pages/01.administrate/06.overview/13.permissions/groups_and_permissions.fr.md
index 6e4f76b7..377f3dfa 100644
--- a/groups_and_permissions_fr.md
+++ b/pages/01.administrate/06.overview/13.permissions/groups_and_permissions.fr.md
@@ -1,9 +1,16 @@
-# Groupes et permissions
+---
+title: Groupes et permissions
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/groups_and_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
@@ -22,7 +29,7 @@ Vous ne pouvez pas changer le contenu de ces groupes, seulement les permissions
### 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 :
@@ -41,7 +48,7 @@ groups:
### 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
@@ -52,11 +59,11 @@ $ 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` :
@@ -87,7 +94,7 @@ groups:
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
@@ -103,7 +110,7 @@ Le mécanisme de permissions permet de restreindre l'accès aux services (par ex
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
@@ -126,7 +133,7 @@ Plus de détails peuvent être affichés en ajoutant l'option `--full` qui affic
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 :
@@ -136,7 +143,7 @@ $ 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 :
@@ -168,7 +175,7 @@ Notez que certaines permissions peuvent être "protégées", ce qui signifie que
La webadmin émettra un avertissement si vous définissez une permission qui est remplacée par une permission plus large.
-
+
### Montrer/cacher les tuiles dans le portail utilisateur
diff --git a/groups_and_permissions.md b/pages/01.administrate/06.overview/13.permissions/groups_and_permissions.md
similarity index 89%
rename from groups_and_permissions.md
rename to pages/01.administrate/06.overview/13.permissions/groups_and_permissions.md
index b75831c0..a85c0ae0 100644
--- a/groups_and_permissions.md
+++ b/pages/01.administrate/06.overview/13.permissions/groups_and_permissions.md
@@ -1,9 +1,16 @@
-# User groups and permissions
+---
+title: Users groups and permissions
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/groups_and_permissions'
+---
You can access the *groups and permissions* management interface from the webadmin
by going into the 'Users' section and clicking the corresponding button:
-
+
## Managing groups
@@ -23,7 +30,7 @@ The content of those groups cannot be changed, only the permissions given to the
The existing groups are listed at the top of the *groups and permissions* page.
-
+
To list the currently existing groups in CLI :
@@ -43,7 +50,7 @@ groups:
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.
-
+
In CLI, to create a new group called `yolo_crew`
@@ -55,11 +62,11 @@ $ yunohost user group create yolo_crew
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:
@@ -90,7 +97,7 @@ groups:
To delete a group, click on the red cross on the top right of the group panel. You will be asked for confirmation.
-
+
To delete the group `yolo_crew` in CLI, you may run
@@ -106,7 +113,7 @@ The permission mechanism allow to restrict access to services (for example mail,
The groups page lists the permissions given to each group, including the special groups `all_users` and `visitors`.
-
+
To list permissions and corresponding accesses in CLI:
@@ -131,7 +138,7 @@ More details can be displayed by adding the `--full` option which will display t
To add a permission to a group, simply click the "+" button in the group panel, scroll to the desired permission, then click on it.
-
+
To allow a group to access the WordPress admin interface in CLI:
@@ -141,7 +148,7 @@ $ yunohost user permission update wordpress.admin --add yolo_crew
Note that you can also allow a single user, by using the specific panel at the bottom of the page.
-
+
or in CLI:
@@ -169,9 +176,9 @@ $ yunohost user permission update mail --remove all_users --add bob
Note that some permissions may be "protected", meaning that you won't be able to add/remove the visitor group to this permission. Generally, this is because it would make no sense (or is a security risk) to do so.
-The webadmin will issue a warning if you set a permission that is superseeded by a wider permission.
+The webadmin will issue a warning if you set a permission that is superseded by a wider permission.
-
+
### Hide/display specific tiles in the user portal
diff --git a/overview_fr.md b/pages/01.administrate/06.overview/overview.fr.md
similarity index 88%
rename from overview_fr.md
rename to pages/01.administrate/06.overview/overview.fr.md
index 7aed44ef..358bdc68 100644
--- a/overview_fr.md
+++ b/pages/01.administrate/06.overview/overview.fr.md
@@ -1,8 +1,16 @@
-# Vue d’ensemble de l’écosystème YunoHost
-
+---
+title: Vue d'ensemble de l'écosystème YunoHost
+menu: Visite guidée
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/overview'
+---
+
Cette page pose une vue d'ensemble de l'écosystème d'un serveur sous YunoHost. Bien que celle-ci contienne des approximations et des raccourcis, elle permet de poser une première représentation générale avant de rentrer plus dans le détail des différents aspects.
-
+
Tout commence avec l'utilisateur spécial, **admin**. Il s'agit de l'administrateur de la machine qui peut installer, configurer et gérer le serveur à travers l'interface web d'administration, ou via SSH et la ligne de commande. *(Si vous êtes familier avec GNU/Linux, il est similaire à root. YunoHost possède cet utilisateur supplémentaire 'admin' pour plusieurs raisons techniques.)*
diff --git a/overview.md b/pages/01.administrate/06.overview/overview.md
similarity index 88%
rename from overview.md
rename to pages/01.administrate/06.overview/overview.md
index d075c2ea..d1ac3688 100644
--- a/overview.md
+++ b/pages/01.administrate/06.overview/overview.md
@@ -1,8 +1,16 @@
-# Overview of the YunoHost ecosystem
+---
+title: Overview of the YunoHost ecosystem
+menu: Guided tour
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/overview'
+---
This page provide an overview of the ecosystem of a YunoHost server. While this overview contains several approximations, the purpose here is to introduce the global picture before digging into the different aspects.
-
+
Everything starts with the special user **admin**. This is the administrator of the machine who can install, configure and manage things on the server through the web administration interface, or via SSH and the command line interface. *(If you are already familiar with GNU/Linux, it is quite similar to root. YunoHost has this additional 'admin' user for several technical reasons.)*
diff --git a/dns_nohost_me_es.md b/pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.es.md
similarity index 96%
rename from dns_nohost_me_es.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.es.md
index e27a0589..a3aa8723 100644
--- a/dns_nohost_me_es.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.es.md
@@ -1,4 +1,11 @@
-# Nombres de dominios automáticos
+---
+title: Nombres de dominios automáticos
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_nohost_me'
+---
Para hacer que el auto-alojamiento esté lo más accesible posible, el Proyecto YunoHost provee un servicio de nombres de dominio *ofertos* y *automáticamente configurados*. Cuando utilizas este servicio, no tienes que configurar tú mismo la [configuración de los registros DNS](/dns_config) que es bastante técnica.
diff --git a/dns_nohost_me_fr.md b/pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.fr.md
similarity index 96%
rename from dns_nohost_me_fr.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.fr.md
index 95600928..236e3040 100644
--- a/dns_nohost_me_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.fr.md
@@ -1,4 +1,11 @@
-# Noms de domaines automatiques
+---
+title: Noms de domaines automatiques
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_nohost_me'
+---
Afin de rendre l'auto-hébergement le plus accessible possible, le Projet YunoHost fournit un service de noms de domaine *offerts* et *automatiquement configurés*. En utilisant ce service, vous n'avez donc pas à réaliser vous-même la [configuration des enregistrements DNS](/dns_config) qui est assez technique.
diff --git a/dns_nohost_me.md b/pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.md
similarity index 91%
rename from dns_nohost_me.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.md
index 5a8b6a1f..606bf5fa 100644
--- a/dns_nohost_me.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/01.dns_nohost_me/dns_nohost_me.md
@@ -1,4 +1,11 @@
-# Nohost.me domains
+---
+title: Nohost.me domains
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_nohost_me'
+---
In order to make self-hosting as accessible as possible, the YunoHost Project provides a *free* and *automatically configured* domain name service. By using this service, you won't have to [configure DNS records](/dns_config) yourself, which can be tedious and technical.
@@ -9,7 +16,7 @@ The following (sub)domains are proposed:
To use this service, you simply have to choose such a domain during the post-installation. It will then be automatically configured by YunoHost!
-N.B.: As a fairness measure, each instance may only have **one such domain** setup at any given time.
+!!! As a fairness measure, each instance may only have **one such domain** setup at any given time.
### Subdomains
@@ -49,8 +56,7 @@ If you reinstall your server and want to use a domain already used previously, y
If you wish to use a different automatic domain, you first have to remove your present domain registration. This is done in 3 steps:
-1. Remove the domain from your instance (via webadmin or the `yunohost domain remove` CLI).
-**/!\ Caution: this will remove any app installed on this domain, along with its data.**
+1. Remove the domain from your instance (via webadmin or the `yunohost domain remove` in the CLI).
2. Ask for registration removal [in the dedicated forum thread](https://forum.yunohost.org/t/nohost-domain-recovery/442).
3. Remove automatic domain configuration files on your server, via CLI only: `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns`
diff --git a/dns_dynamicip_fr.md b/pages/01.administrate/07.specific_use_cases/01.domains/02.dns_dynamic_ip/dns_dynamicip.fr.md
similarity index 72%
rename from dns_dynamicip_fr.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/02.dns_dynamic_ip/dns_dynamicip.fr.md
index 33589f54..5a74e6d1 100644
--- a/dns_dynamicip_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/02.dns_dynamic_ip/dns_dynamicip.fr.md
@@ -1,6 +1,13 @@
-# DNS avec une IP dynamique
+---
+title: DNS avec une IP dynamique
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_dynamicip'
+---
-
Avant d’aller plus loin, assurez-vous que votre adresse IP publique est dynamique à l’aide de : [ip.yunohost.org](http://ip.yunohost.org/). L’adresse IP publique de votre box change à peu près tous les jours.
+! Avant d’aller plus loin, assurez-vous que votre adresse IP publique est dynamique à l’aide de : [ip.yunohost.org](http://ip.yunohost.org/). L’adresse IP publique de votre box change à peu près tous les jours.
Ce tutoriel a pour but de contourner le problème d’IP dynamique qui est le suivant : lorsque l’adresse IP publique de la box change, la zone DNS n’est pas mise à jour pour pointer vers la nouvelle adresse IP.
@@ -22,13 +29,13 @@ Voici des sites qui proposent un service de DynDNS gratuitement :
Créer un compte chez l’un d’eux.
#### 2. Déplacer les zones DNS
-Déplacer les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar) où vous avez acheté votre nom de domaine vers le DNS dynamique où vous avez créé un compte à l’étape 1.
+Déplacer les [zones DNS](/dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar) où vous avez acheté votre nom de domaine vers le DNS dynamique où vous avez créé un compte à l’étape 1.
#### 3. Basculer la gestion de votre nom de domaine vers le serveur DNS dynamique
Cette étape consiste à faire savoir au [bureau d’enregistrement](/registrar) que le service de DNS sera assuré par le service de DynDNS.
Redirigez le champ NS vers l’adresse IP donnée par le service de DynDNS.
-Ensuite, supprimez les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar).
+Ensuite, supprimez les [zones DNS](/dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar).
#### 4. Créer un identifiant de DNS dynamique
Sur le service de DNS dynamique créer un identifiant qui sera entré dans un client de DNS dynamique.
@@ -38,4 +45,4 @@ Nous allons utiliser le client de la box qui est plus simple à mettre en place.
#### 5. Configurer la box
Mettez l’identifiant du DNS dynamique et l’[adresse IP publique](http://ip.yunohost.org/) dans votre box.
-
+
diff --git a/dns_dynamicip.md b/pages/01.administrate/07.specific_use_cases/01.domains/02.dns_dynamic_ip/dns_dynamicip.md
similarity index 63%
rename from dns_dynamicip.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/02.dns_dynamic_ip/dns_dynamicip.md
index 9d4223a5..8152e52b 100644
--- a/dns_dynamicip.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/02.dns_dynamic_ip/dns_dynamicip.md
@@ -1,11 +1,25 @@
-# DNS with a dynamic IP
+---
+title: DNS with a dynamic IP
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_dynamicip'
+---
-
Before going further, make sure your global IP address is dynamic with: [ip.yunohost.org](http://ip.yunohost.org/). The global IP address of your box changes almost every day.
+! Before going further, make sure your global IP address is dynamic with: [ip.yunohost.org](http://ip.yunohost.org/). The global IP address of your box changes almost every day.
This tutorial aim to get around dynamic IP issue which is: when the IP public address of your (Internet Service Provider-) box changes, the DNS zone is not updated to point towards the new IP address, and consequently your server is no more reachable via its domain name. After setting up the solution proposed in this tutorial, the redirection from your domain name to the actual IP address of your server will not be lost anymore.
The method proposed here consists of automatizing the fact the box annonces its global IP adress change to the dynamic DNS, so that the DNS zone will automatically be updated.
+Here are some examples of registrars, companies where you can buy domain names:
+* [OVH](http://ovh.com/)
+* [GoDaddy](https://godaddy.com/)
+* [Gandi](http://gandi.net/)
+* [Namecheap](https://www.namecheap.com/)
+* [BookMyName](https://www.bookmyname.com/)
+
If you own a domain name at **OVH**, you may go to step 4 and follow this [tutorial](/OVH), given that OVH proposes a DynDNS service.
#### 1. Create an account to a Dynamic DNS service
@@ -20,14 +34,19 @@ Here are sites which offer a DynDNS service free of charge:
Register to one of them. It should provide you with one (or more) IP address to reach the service, and a login (that you may be able to self-define).
#### 2. Move the DNS zones
-Copy the [DNS zones](dns_config), except for the NS fields, from the [registrar](/registrar) where you bought your domain name from to the dynamic DNS service you registrer at in step 1.
+Copy the [DNS zones](/dns_config), except for the NS fields, from the [registrar](/registrar) where you bought your domain name from to the dynamic DNS service you registrer at in step 1.
#### 3. Switch the management of your domain name to the dynamic DNS server
This step consists in declaring to your [registrar](/registrar) that the DNS service will now be managed by the DynDNS service provider.
For this, fisrt declare in the NS field(s) the IP address provided by the DynDNS service.
-Then, remove any other item in the [DNS zones](dns_config) (except the previous NS fields), from the [registrar](/registrar).
+Then, remove any other item in the [DNS zones](/dns_config) (except the previous NS fields), from the registrar. Here are from examples of registrars:
+* [OVH](http://ovh.com/)
+* [GoDaddy](https://godaddy.com/)
+* [Gandi](http://gandi.net/)
+* [Namecheap](https://www.namecheap.com/)
+* [BookMyName](https://www.bookmyname.com/)
#### 4. Configure the client
This client could be your ISP-box, or a package installed on your server, such as `ddclient`.
@@ -35,6 +54,6 @@ Here, we will use the client provided by the box, which is the more easy way.
Enter the login of the dynamic DNS and its public IP address in your box (interface details may vary by ISP).
-
+
You're good to go !
diff --git a/dns_subdomains_fr.md b/pages/01.administrate/07.specific_use_cases/01.domains/03.dns_subdomains/dns_subdomains.fr.md
similarity index 86%
rename from dns_subdomains_fr.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/03.dns_subdomains/dns_subdomains.fr.md
index aa47ac2d..53a070d6 100644
--- a/dns_subdomains_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/03.dns_subdomains/dns_subdomains.fr.md
@@ -1,4 +1,11 @@
-## DNS et sous-domaines pour les applications
+---
+title: DNS et sous-domaines pour les applications
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_subdomains'
+---
### Sous-domaines
@@ -10,11 +17,11 @@ Dans la configuration de son DNS, on aura donc une entrée A avec l’adresse IP
Nom Type Valeur
```bash
@ A XYZ.XYZ.XYZ.XYZ
-@ AAAA 1234:1234:1234:FFAA:FFAA:FFAA:FFAA:AAFF
-* CNAME mondomaine.fr.
-agenda CNAME mondomaine.fr.
-blog CNAME mondomaine.fr.
-rss CNAME mondomaine.fr.
+@ AAAA 1234:1234:1234:FFAA:FFAA:FFAA:FFAA:AAFF
+* CNAME mondomaine.fr.
+agenda CNAME mondomaine.fr.
+blog CNAME mondomaine.fr.
+rss CNAME mondomaine.fr.
```
permet d’avoir un `agenda.mondomaine.fr`, un `blog.mondomaine.fr` etc.
diff --git a/dns_subdomains.md b/pages/01.administrate/07.specific_use_cases/01.domains/03.dns_subdomains/dns_subdomains.md
similarity index 94%
rename from dns_subdomains.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/03.dns_subdomains/dns_subdomains.md
index b6112c6c..c70a0291 100644
--- a/dns_subdomains.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/03.dns_subdomains/dns_subdomains.md
@@ -1,4 +1,11 @@
-## DNS and subdomains for the applications
+---
+title: DNS and subdomains for the applications
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_subdomains'
+---
### Subdomains
diff --git a/dns_local_network_es.md b/pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.es.md
similarity index 90%
rename from dns_local_network_es.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.es.md
index 562de563..dcb362d7 100644
--- a/dns_local_network_es.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.es.md
@@ -1,4 +1,11 @@
-# Local network access to your server
+---
+title: Local network access to your server
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_local_network'
+---
After completing your server installation, it is possible that your domain will not be accessible through the local network. This is an issue known as [hairpinning](http://en.wikipedia.org/wiki/Hairpinning) - a feature that is not well supported by some internet routers.
@@ -9,7 +16,7 @@ To solve this issue you can:
### Find the local IP address of your server
First you need to find out the local IP of your server
-- either using the tricks lister [here](finding_the_local_ip)
+- either using the tricks lister [here](/finding_the_local_ip)
- or if in the webadmin, in the Diagnosis section, under Internet Connectivity, IPv4, click on 'Details' and you should find an entry for 'Local IP'
- or using the command line on the server : `hostname -I`
diff --git a/dns_local_network_fr.md b/pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.fr.md
similarity index 91%
rename from dns_local_network_fr.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.fr.md
index 88dd13d3..312bbbe9 100644
--- a/dns_local_network_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.fr.md
@@ -1,4 +1,11 @@
-# Accéder à son serveur depuis le réseau local
+---
+title: Accéder à son serveur depuis le réseau local
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_local_network'
+---
Après installation de votre serveur, il est possible que votre nom de domaine ne soit pas accessible depuis le réseau local où se trouve le serveur. Ceci est un problème connu sous le nom de [hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) - une fonctionnalité mal supportée par certaines box internet.
@@ -9,7 +16,7 @@ Pour résoudre ce problème:
### Trouver l’adresse IP locale du serveur
Tout d'abord il vous faut trouver l'adresse IP locale du serveur
-- soit en utilisant l'une de astuces expliquées [ici](finding_the_local_ip)
+- soit en utilisant l'une de astuces expliquées [ici](/finding_the_local_ip)
- ou en utilisant la webadmin, dans l'écran Diagnostique, section Connection Internet, IPv4, cliquer sur 'Détails' et vous devriez trouver une entrée pour 'IP locale'.
- ou en ligne de commande sur le serveur: `hostname -I`
diff --git a/dns_local_network.md b/pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.md
similarity index 91%
rename from dns_local_network.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.md
index d182796c..54385178 100644
--- a/dns_local_network.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/04.dns_local_network/dns_local_network.md
@@ -1,4 +1,11 @@
-# Local network access to your server
+---
+title: Local network access to your server
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dns_local_network'
+---
After completing your server installation, it is possible that your domain will not be accessible through the local network. This is an issue known as [hairpinning](http://en.wikipedia.org/wiki/Hairpinning) - a feature that is not well supported by some internet routers.
@@ -9,7 +16,7 @@ To solve this issue you can:
### Find the local IP address of your server
First you need to find out the local IP of your server
-- either using the tricks lister [here](finding_the_local_ip)
+- either using the tricks lister [here](/finding_the_local_ip)
- or if in the webadmin, in the Diagnosis section, under Internet Connectivity, IPv4, click on 'Details' and you should find an entry for 'Local IP'
- or using the command line on the server : `hostname -I`
diff --git a/OVH_fr.md b/pages/01.administrate/07.specific_use_cases/01.domains/05.OVH/OVH.fr.md
similarity index 88%
rename from OVH_fr.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/05.OVH/OVH.fr.md
index 317b6841..1b17b7a3 100644
--- a/OVH_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/05.OVH/OVH.fr.md
@@ -1,14 +1,21 @@
-# Configuration DNS avec OVH
+---
+title: Configuration DNS avec OVH
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/OVH'
+---
Nous allons voir comment configurer le DNS avec [OVH](http://www.ovh.com).
Après achat de votre nom de domaine, rendez vous dans l'espace client pour retrouver le panneau de configuration d'OVH, et cliquez sur votre domaine à gauche :
-
+
Cliquez sur l'onglet **Zone DNS**, puis sur **Ajouter une entrée** :
-
+
Cliquer sur "Modifier en mode textuel", garder les 4 premières lignes :
```bash
diff --git a/OVH.md b/pages/01.administrate/07.specific_use_cases/01.domains/05.OVH/OVH.md
similarity index 84%
rename from OVH.md
rename to pages/01.administrate/07.specific_use_cases/01.domains/05.OVH/OVH.md
index 4dfff7e2..9255877a 100644
--- a/OVH.md
+++ b/pages/01.administrate/07.specific_use_cases/01.domains/05.OVH/OVH.md
@@ -1,14 +1,21 @@
-# DNS Configuration with OVH
+---
+title: DNS Configuration with OVH
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/OVH'
+---
Let's see how to properly set the DNS redirections with [OVH](http://www.ovh.com).
Once you bought your domain name, got to the Web Control Panel, and click on you domain name on the left side:
-
+
Click on the **DNS Zone** tab, then on **Add an entry**:
-
+
Now you need to add the DNS redirections as specified by the [standard DNS zone configuration](/dns_config)
@@ -24,7 +31,7 @@ then erase everything below, and replace it with the configuration generated by
### Dynamic IP
-[General tutorial on dynamic IP](dns_dynamicip).
+[General tutorial on dynamic IP](/dns_dynamicip).
You should follow this part if you have a dynamic IP.
diff --git a/isp_sfr_fr.md b/pages/01.administrate/07.specific_use_cases/02.isp/01.sfr/isp_sfr.fr.md
similarity index 72%
rename from isp_sfr_fr.md
rename to pages/01.administrate/07.specific_use_cases/02.isp/01.sfr/isp_sfr.fr.md
index 73413126..b5c0f6c8 100644
--- a/isp_sfr_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/02.isp/01.sfr/isp_sfr.fr.md
@@ -1,14 +1,23 @@
-# SFR
+---
+title: SFR
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp_sfr'
+---
+
*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.
-
+
#### Courrier électronique
Pour pouvoir envoyer des mails, il faut désactiver le filtrage.
-
+
Source : https://assistance.sfr.fr/sfrmail-appli/sfrmail/envoyer-e-mail-serveur-smtp.html
diff --git a/isp_orange_fr.md b/pages/01.administrate/07.specific_use_cases/02.isp/02.orange/isp_orange.fr.md
similarity index 86%
rename from isp_orange_fr.md
rename to pages/01.administrate/07.specific_use_cases/02.isp/02.orange/isp_orange.fr.md
index b6584b4a..73c9430e 100644
--- a/isp_orange_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/02.isp/02.orange/isp_orange.fr.md
@@ -1,4 +1,11 @@
-# Orange
+---
+title: Orange
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp_orange'
+---
*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.*
@@ -8,6 +15,9 @@ La box d’Orange bloque le port 25 pour limiter l’envoi de spam.
La solution restante pour héberger son courrier chez soi consiste à le faire passer par les serveurs SMTP d’Orange.
+! YunoHost intègre depuis la version 4.1 une intégration de la configuration des relais SMTP
+! Cette section devrait donc être retravaillée (voire supprimée) au profit de [cette page](/email_configure_relay)
+
Pour cela, il faut éditer le fichier de configuration de postfix avec la commande :
```bash
diff --git a/isp_free_fr.md b/pages/01.administrate/07.specific_use_cases/02.isp/03.free/isp_free.fr.md
similarity index 96%
rename from isp_free_fr.md
rename to pages/01.administrate/07.specific_use_cases/02.isp/03.free/isp_free.fr.md
index 58ebb590..aa8a9387 100644
--- a/isp_free_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/02.isp/03.free/isp_free.fr.md
@@ -1,4 +1,11 @@
-# Free
+---
+title: Free
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp_free'
+---
*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.*
diff --git a/isp_es.md b/pages/01.administrate/07.specific_use_cases/02.isp/isp.es.md
similarity index 92%
rename from isp_es.md
rename to pages/01.administrate/07.specific_use_cases/02.isp/isp.es.md
index 6c5ad805..bfb0afa3 100644
--- a/isp_es.md
+++ b/pages/01.administrate/07.specific_use_cases/02.isp/isp.es.md
@@ -1,6 +1,13 @@
-# Proveedores de acceso a Internet
+---
+title: Proveedores de acceso a Internet
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp'
+---
- Configuración general del router
+[div class="btn btn-lg btn-default"] [ Configuración general del router](/isp_box_config) [/div]
Aquí tienes una lista (no exhaustiva) de proveedores de acceso a Internet por país, con criterios de compatibilidad con el [self-hosting](/selfhosting).
@@ -44,4 +51,4 @@ Para obtener una lista más completa y precisa, refiérete a la muy buena docume
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **Orange** | Livebox2 | sí (activado) | no | **no** | **no** | **no** |
| **Moov** | | sí (activado) | | | | |
-| **MTN** | | sí (activado) | | | | |
\ No newline at end of file
+| **MTN** | | sí (activado) | | | | |
diff --git a/isp_fr.md b/pages/01.administrate/07.specific_use_cases/02.isp/isp.fr.md
similarity index 94%
rename from isp_fr.md
rename to pages/01.administrate/07.specific_use_cases/02.isp/isp.fr.md
index 1630b19e..c8a60f1f 100644
--- a/isp_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/02.isp/isp.fr.md
@@ -1,6 +1,13 @@
-# Fournisseurs d’accès à Internet
+---
+title: Fournisseurs d'accès à Internet
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp'
+---
- Configuration générale box
+[div class="btn btn-lg btn-default"] [ Configuration générale box](/isp_box_config) [/div]
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).
diff --git a/isp.md b/pages/01.administrate/07.specific_use_cases/02.isp/isp.md
similarity index 93%
rename from isp.md
rename to pages/01.administrate/07.specific_use_cases/02.isp/isp.md
index 477f175b..58dd9b52 100644
--- a/isp.md
+++ b/pages/01.administrate/07.specific_use_cases/02.isp/isp.md
@@ -1,12 +1,19 @@
-# Internet service providers
+---
+title: Internet service providers
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/isp'
+---
- Main configuration box
+[div class="btn btn-lg btn-default"] [ Main configuration box](/isp_box_config) [/div]
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).
+(For the list of ISP in France/Belgian, check the french version of this page)
### 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/filezilla_fr.md b/pages/01.administrate/07.specific_use_cases/03.filezilla/filezilla.fr.md
similarity index 80%
rename from filezilla_fr.md
rename to pages/01.administrate/07.specific_use_cases/03.filezilla/filezilla.fr.md
index a8b5c8de..dfc84239 100644
--- a/filezilla_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/03.filezilla/filezilla.fr.md
@@ -1,4 +1,11 @@
-# Échanger des fichiers avec son serveur à l’aide d’une interface graphique
+---
+title: Échanger des fichiers avec son serveur à l'aide d'une interface graphique
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/filezilla'
+---
Cette page explique comment échanger des fichiers (sauvegardes, musiques, photos, films...) avec son serveur à l'aide d'un outil graphique. C'est donc une méthode alternative au fait d'utiliser la commande `scp` qui peut être jugée technique et cryptique, ou de devoir installer Nextcloud.
@@ -14,27 +21,23 @@ Installez le programme et lancez *Filezilla*.
1. Cliquez sur l'icône *Gestionnaire de Sites* en haut à gauche de sorte à crééer une configuration utilisable ultérieurement.
- 
+ 
2. Cliquez sur **Nouveau site** et donnez un nom au serveur que vous allez utiliser. Par exemple "Famille". Remplissez les paramètres comme sur la capture d'écran (en remplaçant l'adresse du serveur par la votre). Une fois terminé, cliquez sur **Connexion**. (N.B. : si vous souhaitez éditer les fichiers de l'application [custom webapp](https://github.com/YunoHost-Apps/my_webapp_ynh), il vous faudra utiliser un autre utilisateur que admin. Se référer à la documentation de custom webapp.)
- 
+ 
3. Vous recevrez un avertissement. *Vous pouvez l'ignorer si il s'agit de la première connexion*.
- 
+ 
4. Filezilla vous demande maintenant le mot de passe `admin` pour vous connecter à votre serveur
- 
+ 
5. Une fois cette configuration créée, elle sera réutilisable les fois suivanteS.
- 
-
-
- Vous pouvez désormais utiliser cette configuration pour vous connecter.
-
+ 
## Utilisation
@@ -42,17 +45,15 @@ Installez le programme et lancez *Filezilla*.
La partie gauche correspond à votre ordinateur. La partie droite correspond au serveur YunoHost distant. Vous pouvez naviguer dans les dossiers et faire des glisser-déposer entre les deux panneaux.
- 
+ 
2. Dans le panneau de droite, vous pouvez aller dans `/home/yunohost.backup/archives/` pour trouver les archives de [sauvegardes](/backup).
- 
+ 
-
- Assurez-vous de télécharger à la fois le fichier `.tar.gz` et le fichier `.json`
-
+! [fa=cloud-download /] Assurez-vous de télécharger à la fois le fichier `.tar.gz` et le fichier `.json`
-
+
----
diff --git a/filezilla.md b/pages/01.administrate/07.specific_use_cases/03.filezilla/filezilla.md
similarity index 76%
rename from filezilla.md
rename to pages/01.administrate/07.specific_use_cases/03.filezilla/filezilla.md
index 505fac54..875f86c7 100644
--- a/filezilla.md
+++ b/pages/01.administrate/07.specific_use_cases/03.filezilla/filezilla.md
@@ -1,4 +1,11 @@
-# Exchange files with your server using a graphical interface
+---
+title: Exchange files with your server using a graphical interface
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/filezilla'
+---
This page explains how to exchange files (backup archives, music, pictures, movies...) with your server using a graphical interface for the (S)FTP protocol. This is an alternative to using `scp` which can be deemed technical and cryptic, or using an app like Nextcloud.
@@ -14,27 +21,23 @@ Install the program and run *Filezilla*.
1. Click the *Site Manager* icon in the upper left to begin.
- 
+ 
2. Click **New Site** and give a name the server you will be using : *Family* here. Fill the settings as on the screenshot (replace the server adress with your own), and click on **Connect**. (N.B. : if you want to interact with the [custom webapp](https://github.com/YunoHost-Apps/my_webapp_ynh) files, you should use a different user than `admin`. Refer to the custom webapp documentation.)
- 
+ 
3. You will get a warning as you connect for the first time to the server. *You can ignore it safely the first time you get it.*
- 
+ 
4. Filezilla is now asking the `admin` password to connect to your server.
- 
+ 
5. Once bookmarked, your server will be backup up and you will get this screen.
- 
-
-
- You can now use your new bookmark to connect to the server
-
+ 
## Usage
@@ -42,17 +45,15 @@ Install the program and run *Filezilla*.
The left panel corresponds to your computer. The right panel corresponds to your remote YunoHost server. You can browse folders and drag-and-drop files between the two panels.
- 
+ 
2. In the right panel, you can browse to `/home/yunohost.backup/archives/` to find [backup archives](/backup).
- 
+ 
-
- Be sure to download both the `.tar.gz` and `.json` files.
-
+! [fa=cloud-download /] Be sure to download both the `.tar.gz` and `.json` files.
-
+
----
diff --git a/theming_fr.md b/pages/01.administrate/07.specific_use_cases/04.theming/theming.fr.md
similarity index 78%
rename from theming_fr.md
rename to pages/01.administrate/07.specific_use_cases/04.theming/theming.fr.md
index c79f1678..d645dc99 100644
--- a/theming_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/04.theming/theming.fr.md
@@ -1,4 +1,11 @@
-# Personnaliser l’apparence du portail utilisateur
+---
+title: Personnaliser l'apparence du portail utilisateur
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/theming'
+---
## Utiliser un thème
@@ -19,17 +26,13 @@ Ensuite, vous pouvez utiliser `nano /etc/ssowat/conf.json.persistent` pour activ
}
```
-
-Vous devrez peut-être forcer le rafraîchissement du cache de votre navigateur pour que le thème se propage complètement. Vous pouvez le faire avec Ctrl+Maj+R sur Firefox.
-
+!!! Vous devrez peut-être forcer le rafraîchissement du cache de votre navigateur pour que le thème se propage complètement. Vous pouvez le faire avec Ctrl+Maj+R sur Firefox.
## Ajouter le thème de quelqu'un d'autre
Vous pouvez ajouter des thèmes créés par d'autres personnes en téléchargeant et en extrayant les fichiers correspondants dans un nouveau dossier `nom_du_theme` dans `/usr/share/ssowat/portal/assets/themes/`.
-
-**Attention** : l'ajout de thèmes provenant d'inconnus sur Internet **est un risque de sécurité**. Cela équivaut à exécuter du code écrit par quelqu'un d'autre sur votre machine, et peut donc être utilisé à des fins malveillantes comme voler des mots de passe !
-
+! **Attention** : l'ajout de thèmes provenant d'inconnus sur Internet **est un risque de sécurité**. Cela équivaut à exécuter du code écrit par quelqu'un d'autre sur votre machine, et peut donc être utilisé à des fins malveillantes comme voler des mots de passe !
## Créer votre propre thème
diff --git a/theming.md b/pages/01.administrate/07.specific_use_cases/04.theming/theming.md
similarity index 78%
rename from theming.md
rename to pages/01.administrate/07.specific_use_cases/04.theming/theming.md
index 9cc9a19f..75a8c7a0 100644
--- a/theming.md
+++ b/pages/01.administrate/07.specific_use_cases/04.theming/theming.md
@@ -1,4 +1,11 @@
-# Customize the appearance of the user portal
+---
+title: Customize the appearance of the user portal
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/theming'
+---
## Using a theme
@@ -19,17 +26,13 @@ Then you can use `nano /etc/ssowat/conf.json.persistent` to enable the theme you
}
```
-
-You might need to force the refresh of your browser's cache for the theme to fully propagate. You can do so with Ctrl+Shift+R on Firefox.
-
+!!! You might need to force the refresh of your browser's cache for the theme to fully propagate. You can do so with Ctrl+Shift+R on Firefox.
## Adding someone else's theme
You may add themes created by other people by downloading and extracting the corresponding files in a new folder `the_theme_name` in `/usr/share/ssowat/portal/assets/themes/`.
-
-**Beware** that adding third-party themes from random strangers on the internet **is a security risk**. It is equivalent to running someone's else code on your machine, which can be used for malicious purpose such as stealing credentials!
-
+! **Beware** that adding third-party themes from random strangers on the internet **is a security risk**. It is equivalent to running someone's else code on your machine, which can be used for malicious purpose such as stealing credentials!
## Creating your own theme
diff --git a/external_storage_fr.md b/pages/01.administrate/07.specific_use_cases/05.external_storage/external_storage.fr.md
similarity index 93%
rename from external_storage_fr.md
rename to pages/01.administrate/07.specific_use_cases/05.external_storage/external_storage.fr.md
index 2283324f..4b12b35c 100644
--- a/external_storage_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/05.external_storage/external_storage.fr.md
@@ -1,4 +1,11 @@
-# Ajouter un stockage externe à son serveur
+---
+title: Ajouter un stockage externe à son serveur
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/external_storage'
+---
## Introduction
@@ -37,9 +44,7 @@ mmcblk0 179:0 0 14.9G 0 disk
Ici, `mmcblk0` corresponds à une carte SD de 16Go (on voit que les partitions `mmcblk0p1` et `mmcblk0p2` correspondent à la partition de démarrage `/boot` et à la partition système `/`). Le disque dur branché correspond à `sda` qui fait environ 1To, et contient une seule partition `sda1` qui n'est pas monté (pas de "MOUNTPOINT").
-
- Sur un autre système, il se peut que votre système soit installé sur `sda` et que votre disque soit alors `sdb` par exemple.
-
+! [fa=exclamation-triangle /] Sur un autre système, il se peut que votre système soit installé sur `sda` et que votre disque soit alors `sdb` par exemple.
## 2. (Optionnel) Formater le disque
diff --git a/external_storage.md b/pages/01.administrate/07.specific_use_cases/05.external_storage/external_storage.md
similarity index 89%
rename from external_storage.md
rename to pages/01.administrate/07.specific_use_cases/05.external_storage/external_storage.md
index d9c436c7..9e5d5825 100644
--- a/external_storage.md
+++ b/pages/01.administrate/07.specific_use_cases/05.external_storage/external_storage.md
@@ -1,4 +1,11 @@
-# Adding an external storage to your server
+---
+title: Adding an external storage to your server
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/external_storage'
+---
## Introduction
@@ -37,9 +44,7 @@ mmcblk0 179:0 0 14.9G 0 disk
Here, `mmcblk0` corresponds to an SD card of 16Go (the partitions `mmcblk0p1` et `mmcblk0p2` are used as the boot partition `/boot` and the system partition `/`). The external drive is `sda` which is about 1TB and has only one partition `sda1` which is not mounted (no "MOUNTPOINT").
-
- On a different setup, your system partition might be `sda` and so your external drive might be `sdb` for instance.
-
+! [fa=exclamation-triangle /] On a different setup, your system partition might be `sda` and so your external drive might be `sdb` for instance.
## 2. (Optional) Format the disk
@@ -57,7 +62,7 @@ Check with `lsblk` that your disk really does contain a single partition.
Before you can use your disk it has to be formatted.
-You should be aware that **formating a drive implies to erasing every data on it !** If your disk is already "clean", you may ignore this step.
+! You should be aware that **formating a drive implies to erasing every data on it!** If your disk is already "clean", you may ignore this step.
To format the partition :
diff --git a/email_migration_fr.md b/pages/01.administrate/07.specific_use_cases/06.email_migration/email_migration.fr.md
similarity index 90%
rename from email_migration_fr.md
rename to pages/01.administrate/07.specific_use_cases/06.email_migration/email_migration.fr.md
index 7e81a4d4..c8782a3e 100644
--- a/email_migration_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/06.email_migration/email_migration.fr.md
@@ -1,4 +1,11 @@
-# Migrer ses emails d’un ancien serveur mail vers YunoHost
+---
+title: Migrer ses emails d'un ancien serveur mail vers YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email_migration'
+---
*[Documentation en rapport avec l’email de YunoHost](/email)*.
diff --git a/email_migration.md b/pages/01.administrate/07.specific_use_cases/06.email_migration/email_migration.md
similarity index 89%
rename from email_migration.md
rename to pages/01.administrate/07.specific_use_cases/06.email_migration/email_migration.md
index 149fc4cc..20d40c0e 100644
--- a/email_migration.md
+++ b/pages/01.administrate/07.specific_use_cases/06.email_migration/email_migration.md
@@ -1,4 +1,11 @@
-# Migrating email from an email provider to a YunoHost instance
+---
+title: Migrating email from an email provider to a YunoHost instance
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email_migration'
+---
*[Documentation linked to YunoHost email](/email)*.
diff --git a/email_configure_relay_fr.md b/pages/01.administrate/07.specific_use_cases/07.email_relay/email_configure_relay.fr.md
similarity index 70%
rename from email_configure_relay_fr.md
rename to pages/01.administrate/07.specific_use_cases/07.email_relay/email_configure_relay.fr.md
index 068a1514..b3541daa 100644
--- a/email_configure_relay_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/07.email_relay/email_configure_relay.fr.md
@@ -1,4 +1,11 @@
-# Configurer un relais SMTP
+---
+title: Configurer un relais SMTP
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email_configure_relay'
+---
Si votre fournisseur internet bloque le port 25, ou si vous rencontrez un problème d’utilisation du serveur SMTP natif de YunoHost, vous pouvez configurer votre serveur YunoHost pour utiliser un relais SMTP.
@@ -7,11 +14,7 @@ Si votre fournisseur internet bloque le port 25, ou si vous rencontrez un probl
C'est un serveur SMTP tiers qui va envoyer les e-mails à la place de votre propre serveur SMTP.
Une fois correctement installé, le changement est totalement transparent pour l’utilisateur. Vos correspondants verront vos e-mails comme s’ils venaient de votre propre serveur, mais ils auront été envoyés depuis le relais SMTP que vous aurez choisi et configuré.
-
-
-Il est important de noter que dans le monde de l'auto-hébergement, utiliser un relai SMTP est un énorme compromis ! En effet, le relais SMTP ne sera pas seulement capable d'envoyer les e-mails, mais il a également accès au contenu entier de l’e-mail que vous envoyez.
-Il faut faire attention également que vous n'aurez pas le choix, tout le trafic e-mails passera par ce relais une fois la configuration terminée.
-
+! [fa=exclamation-triangle /] Il est important de noter que dans le monde de l'auto-hébergement, utiliser un relai SMTP est un énorme compromis ! En effet, le relais SMTP ne sera pas seulement capable d'envoyer les e-mails, mais il a également accès au contenu entier de l’e-mail que vous envoyez. Il faut faire attention également que vous n'aurez pas le choix, tout le trafic e-mails passera par ce relais une fois la configuration terminée.
## Comment utiliser le relais SMTP avec YunoHost ?
@@ -27,10 +30,7 @@ Une fois inscrit, le paramétrage du relais SMTP demande de modifier la zone DNS
Habituellement les fournisseurs ont une documentation à ce sujet.
-
-
-Attention une fois la zone DNS enregistrée, le relais SMTP peut envoyer des e-mails à votre nom sans que vous ne le sachiez
-
+! [fa=exclamation-triangle /] Attention une fois la zone DNS enregistrée, le relais SMTP peut envoyer des e-mails à votre nom sans que vous ne le sachiez
## Étape 3 :Configurer YunoHost correctement
@@ -59,10 +59,7 @@ C'est une bonne idée de confirmer les informations en faisant `sudo yunohost se
Votre relais SMTP est maintenant configuré !
-
-
-Maintenant le relais SMTP est capable de lire et d'utiliser toutes les informations contenues dans les emails que vous envoyer sans votre accord. Mais ne sera pas capable de lire les informations des emails que vous recevez.
-
+! [fa=exclamation-triangle /] Maintenant le relais SMTP est capable de lire et d'utiliser toutes les informations contenues dans les emails que vous envoyer sans votre accord. Mais ne sera pas capable de lire les informations des emails que vous recevez.
## Vérifier la configuration
diff --git a/email_configure_relay.md b/pages/01.administrate/07.specific_use_cases/07.email_relay/email_configure_relay.md
similarity index 75%
rename from email_configure_relay.md
rename to pages/01.administrate/07.specific_use_cases/07.email_relay/email_configure_relay.md
index 504167d8..f3dfb734 100644
--- a/email_configure_relay.md
+++ b/pages/01.administrate/07.specific_use_cases/07.email_relay/email_configure_relay.md
@@ -1,4 +1,11 @@
-# Configure SMTP relay
+---
+title: Configure SMTP relay
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/email_configure_relay'
+---
If your ISP blocks port 25, if you can't set a reverseDNS on your server, or if you have any other troubles using the built-in SMTP server on YunoHost, you may want to setup your YunoHost server to use a SMTP relay.
@@ -7,10 +14,7 @@ If your ISP blocks port 25, if you can't set a reverseDNS on your server, or if
A SMTP relay is basically a third party hosted SMTP server that will send emails on behalf of your own SMTP server (Postfix service on YunoHost).
Once setup correctly on YunoHost, it will operate in a totally transparent manner, both for you and for your correspondents: they will see emails as coming from your YunoHost main URL, but all the sending will be delegated to the SMTP relay you have chosen and configured.
-
-
-It's important to note that using a SMTP relay has to be seen as a (big) compromise in the world of self-hosting. Indeed, when using a SMTP relay, you will not only let a third party send emails on your behalf, but also be able to access to the full content of all the emails you'll send. Be also aware that a SMTP relay is setup for your whole YunoHost server: you can't choose which emails or which users go through it because all future emails will.
-
+! [fa=exclamation-triangle /] It's important to note that using a SMTP relay has to be seen as a (big) compromise in the world of self-hosting. Indeed, when using a SMTP relay, you will not only let a third party send emails on your behalf, but also be able to access to the full content of all the emails you'll send. Be also aware that a SMTP relay is setup for your whole YunoHost server: you can't choose which emails or which users go through it because all future emails will.
## How to use a SMTP relay with YunoHost?
@@ -30,10 +34,7 @@ Usually, the SMTP relay provider will provide you with a guide on how to modify
Please note that modifying your DNS records could sometimes take over 24h to take effect, so be patient!
-
-
-From now on, a non trusty SMTP relay provider could send emails from your main domain without telling you.
-
+! [fa=exclamation-triangle /] From now on, a non trusty SMTP relay provider could send emails from your main domain without telling you.
### Step 3: Setup YunoHost correctly
@@ -65,10 +66,7 @@ sudo yunohost settings list
Your SMTP relay is now configured!
-
-
-From now on, a non trusty SMTP relay provider could read or use the data of all the emails you send without telling you (but still won't be able to read nor to use the data from emails you receive).
-
+! [fa=exclamation-triangle /] From now on, a non trusty SMTP relay provider could read or use the data of all the emails you send without telling you (but still won't be able to read nor to use the data from emails you receive).
### Step 4: Check your setup
diff --git a/torhiddenservice_fr.md b/pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.fr.md
similarity index 74%
rename from torhiddenservice_fr.md
rename to pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.fr.md
index a546f680..a79d5fac 100644
--- a/torhiddenservice_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.fr.md
@@ -1,8 +1,13 @@
-## Utiliser YunoHost comme un service caché Tor
-
-Ce tuto n'est pas complet ! Des données peuvent être récupérée avec cette installation comme le nom de domaine principal de votre yunohost, donc ce n'est pas un "service caché".
-
-Voir https://www.torproject.org/docs/tor-hidden-service.html.en (anglais)
+---
+title: Utiliser YunoHost comme un service caché Tor
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/torhiddenservice'
+---
+
+! Ce tuto n'est pas complet ! Des données peuvent être récupérée avec cette installation comme le nom de domaine principal de votre yunohost, donc ce n'est pas un "service caché". Voir https://www.torproject.org/docs/tor-hidden-service.html.en (anglais)
### Installer Tor
```bash
diff --git a/torhiddenservice_it.md b/pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.it.md
similarity index 69%
rename from torhiddenservice_it.md
rename to pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.it.md
index 155c4250..406e2fa3 100644
--- a/torhiddenservice_it.md
+++ b/pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.it.md
@@ -1,9 +1,13 @@
-## Collegarsi a YunoHost attraverso un Hidden Service
-
-Questo tutorial non è completo! Con queste impostazioni alcuni dati possono essere rivelati come ad esempio il dominio principale del tuo yunohost, di conseguenza non può essere considerato un reale "Hidden service".
-
+---
+title: Collegarsi a YunoHost attraverso un Hidden Service
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/torhiddenservice'
+---
-Vedi https://www.torproject.org/docs/tor-hidden-service.html
+! Questo tutorial non è completo! Con queste impostazioni alcuni dati possono essere rivelati come ad esempio il dominio principale del tuo yunohost, di conseguenza non può essere considerato un reale "Hidden service". Vedi https://www.torproject.org/docs/tor-hidden-service.html
### Installare Tor
```bash
diff --git a/torhiddenservice.md b/pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.md
similarity index 73%
rename from torhiddenservice.md
rename to pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.md
index 5c1fc0ca..71dadd67 100644
--- a/torhiddenservice.md
+++ b/pages/01.administrate/07.specific_use_cases/08.tor/torhiddenservice.md
@@ -1,9 +1,13 @@
-## Using YunoHost as a Tor Hidden Service
-
-This tuto is not finished ! Some data could leak with this setup like the main domain of your yunohost, so it's not a "Hidden Service".
-
+---
+title: Using YunoHost as a Tor Hidden Service
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/torhiddenservice'
+---
-See https://www.torproject.org/docs/tor-hidden-service.html.en
+! This tuto is not finished ! Some data could leak with this setup like the main domain of your yunohost, so it's not a "Hidden Service". See https://www.torproject.org/docs/tor-hidden-service.html.en
### Installing Tor
```bash
diff --git a/certificate_custom_fr.md b/pages/01.administrate/07.specific_use_cases/09.certificate_custom/certificate_custom.fr.md
similarity index 97%
rename from certificate_custom_fr.md
rename to pages/01.administrate/07.specific_use_cases/09.certificate_custom/certificate_custom.fr.md
index fd097dd5..20b94a81 100644
--- a/certificate_custom_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/09.certificate_custom/certificate_custom.fr.md
@@ -1,3 +1,12 @@
+---
+title: Certificats personnalisés
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/certificate_custom'
+---
+
**Note :** depuis la version 2.5, YunoHost intègre la gestion automatisée de certificats Let's Encrypt. Vous pouvez donc facilement et gratuitement [installer un certificat Let's Encrypt](/certificate). Le document suivant décrit la méthodologie pour installer un certificat, payant, d'une autre autorité de certification (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**).
Quelques changements ont eu lieu qui impactent les procédures indiquées ci-dessous :
diff --git a/certificate_custom.md b/pages/01.administrate/07.specific_use_cases/09.certificate_custom/certificate_custom.md
similarity index 90%
rename from certificate_custom.md
rename to pages/01.administrate/07.specific_use_cases/09.certificate_custom/certificate_custom.md
index 34666ca6..ee6eeb54 100644
--- a/certificate_custom.md
+++ b/pages/01.administrate/07.specific_use_cases/09.certificate_custom/certificate_custom.md
@@ -1,4 +1,13 @@
-**Note:** since version 2.5, YunoHost integrates Let's Encrypt certificates automated management. You can easily and freely [install a Let's Encrypt certificate](/certificate). The following document describes the steps for installing a paid certificate from a certification authority (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**).
+---
+title: Custom certificates
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/certificate_custom'
+---
+
+! **Note:** since version 2.5, YunoHost integrates Let's Encrypt certificates automated management. You can easily and freely [install a Let's Encrypt certificate](/certificate). The following document describes the steps for installing a paid certificate from a certification authority (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**).
Some changes have taken place which impact the procedures indicated below:
diff --git a/vpn_advantage_fr.md b/pages/01.administrate/07.specific_use_cases/10.vpn/vpn_advantage.fr.md
similarity index 93%
rename from vpn_advantage_fr.md
rename to pages/01.administrate/07.specific_use_cases/10.vpn/vpn_advantage.fr.md
index 26a22708..183b5e9d 100644
--- a/vpn_advantage_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/10.vpn/vpn_advantage.fr.md
@@ -1,10 +1,15 @@
-# Avantage d’un VPN pour l’auto-hébergement
+---
+title: Avantage d'un VPN pour l'auto-hébergement
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/vpn_advantage'
+---
L'installation d'un serveur chez soi étant une pratique peu courante, la plupart des connexions Internet fournies aux particuliers sont inadaptées à sa mise en pratique. Un VPN respectant la neutralité du net et fournissant une adresse IPv4 fixe et des adresses IPv6 peut permettre de contourner certaines limitations ou certaines difficultés.
-
-Attention : tous les fournisseurs VPN existants ne remplissent pas ces conditions, assurez-vous bien que celui que vous choisissez les remplis.
-
+! Attention : tous les fournisseurs VPN existants ne remplissent pas ces conditions, assurez-vous bien que celui que vous choisissez les remplis.
## Avantages
diff --git a/moving_app_folder_fr.md b/pages/01.administrate/07.specific_use_cases/11.moving_app_folder/moving_app_folder.fr.md
similarity index 87%
rename from moving_app_folder_fr.md
rename to pages/01.administrate/07.specific_use_cases/11.moving_app_folder/moving_app_folder.fr.md
index 88df7bb4..6f3f3c32 100644
--- a/moving_app_folder_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/11.moving_app_folder/moving_app_folder.fr.md
@@ -1,4 +1,11 @@
-# Déplacer un dossier d’application vers un autre espace de stockage
+---
+title: Déplacer un dossier d'application vers un autre espace de stockage
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/moving_app_folder'
+---
Les dossiers d'application se trouvent (*habituellement*) dans `/var/www/$nom_application`
diff --git a/moving_app_folder.md b/pages/01.administrate/07.specific_use_cases/11.moving_app_folder/moving_app_folder.md
similarity index 80%
rename from moving_app_folder.md
rename to pages/01.administrate/07.specific_use_cases/11.moving_app_folder/moving_app_folder.md
index 941d3d03..1c8ca116 100644
--- a/moving_app_folder.md
+++ b/pages/01.administrate/07.specific_use_cases/11.moving_app_folder/moving_app_folder.md
@@ -1,10 +1,15 @@
-# Moving an app folder to a different storage
+---
+title: Moving an app folder to a different storage
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/moving_app_folder'
+---
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).
+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).
diff --git a/admin_api_fr.md b/pages/01.administrate/07.specific_use_cases/12.api/admin_api.fr.md
similarity index 93%
rename from admin_api_fr.md
rename to pages/01.administrate/07.specific_use_cases/12.api/admin_api.fr.md
index b794606b..52b21df3 100644
--- a/admin_api_fr.md
+++ b/pages/01.administrate/07.specific_use_cases/12.api/admin_api.fr.md
@@ -1,4 +1,11 @@
-# Administration depuis l’API ou une application externe
+---
+title: Administration depuis l'API ou une application externe
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/admin_api'
+---
Toutes les actions exécutables en ligne de commande le sont également via une API. L’API est accessible à l’adresse https://votre.serveur/yunohost/api.
Pour le moment, il n'existe pas de documentation des différentes routes... mais vous pouvez trouver l'actionmap [ici](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml) (en particulier les clefs `api`)
diff --git a/admin_api.md b/pages/01.administrate/07.specific_use_cases/12.api/admin_api.md
similarity index 93%
rename from admin_api.md
rename to pages/01.administrate/07.specific_use_cases/12.api/admin_api.md
index 5fbf4ede..108deead 100644
--- a/admin_api.md
+++ b/pages/01.administrate/07.specific_use_cases/12.api/admin_api.md
@@ -1,4 +1,11 @@
-# Administration from the API or an external application
+---
+title: Administration from the API or an external application
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/admin_api'
+---
All command line actions can also be ran from the web API. The API is available at https://your.server/yunohost/api. For now there's no documentation on the various routes... but you can get an idea by looking at the actionmap [here](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml) (in particular the `api` stuff).
diff --git a/pages/01.administrate/07.specific_use_cases/specific_use_cases.fr.md b/pages/01.administrate/07.specific_use_cases/specific_use_cases.fr.md
new file mode 100644
index 00000000..e4b84c34
--- /dev/null
+++ b/pages/01.administrate/07.specific_use_cases/specific_use_cases.fr.md
@@ -0,0 +1,10 @@
+---
+title: Cas d'usage spécifiques
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/specific_use_cases'
+---
+
+Dans les pages suivantes, vous trouverez des explications spécifiques à certains cas d'utilisation
diff --git a/pages/01.administrate/07.specific_use_cases/specific_use_cases.md b/pages/01.administrate/07.specific_use_cases/specific_use_cases.md
new file mode 100644
index 00000000..d610070d
--- /dev/null
+++ b/pages/01.administrate/07.specific_use_cases/specific_use_cases.md
@@ -0,0 +1,10 @@
+---
+title: Specific use cases
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/specific_use_cases'
+---
+
+In the following pages you will find tutorials for specific use cases.
diff --git a/fail2ban_fr.md b/pages/01.administrate/08.troubleshooting/01.fail2ban/fail2ban.fr.md
similarity index 96%
rename from fail2ban_fr.md
rename to pages/01.administrate/08.troubleshooting/01.fail2ban/fail2ban.fr.md
index ef2f3de3..2858c20a 100644
--- a/fail2ban_fr.md
+++ b/pages/01.administrate/08.troubleshooting/01.fail2ban/fail2ban.fr.md
@@ -1,4 +1,11 @@
-# Fail2Ban
+---
+title: Fail2Ban
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/fail2ban'
+---
**Fail2Ban** est un logiciel de prévention des intrusions qui protège les serveurs informatiques contre les attaques de brute-force. Il surveille certains journaux et bannira les adresses IP qui montrent un comportement de brute-forcing.
diff --git a/fail2ban.md b/pages/01.administrate/08.troubleshooting/01.fail2ban/fail2ban.md
similarity index 96%
rename from fail2ban.md
rename to pages/01.administrate/08.troubleshooting/01.fail2ban/fail2ban.md
index 8f9ebc17..74d22c6d 100644
--- a/fail2ban.md
+++ b/pages/01.administrate/08.troubleshooting/01.fail2ban/fail2ban.md
@@ -1,4 +1,11 @@
-# Fail2Ban
+---
+title: Fail2Ban
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/fail2ban'
+---
**Fail2Ban** is an intrusion prevention software that protects computer servers against brute-force attacks. It monitors certain logs and will ban IP addresses that show brute-force-like behavior.
diff --git a/change_admin_password_fr.md b/pages/01.administrate/08.troubleshooting/02.admin_password/change_admin_password.fr.md
similarity index 76%
rename from change_admin_password_fr.md
rename to pages/01.administrate/08.troubleshooting/02.admin_password/change_admin_password.fr.md
index 02ada64f..6a3eef38 100644
--- a/change_admin_password_fr.md
+++ b/pages/01.administrate/08.troubleshooting/02.admin_password/change_admin_password.fr.md
@@ -1,4 +1,11 @@
-# Changer le mot de passe d’administration
+---
+title: Changer le mot de passe d'administration
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/change_admin_password'
+---
Vous voudrez peut-être changer votre mot de passe d'administrateur pour des raisons de sécurité ou parce que vous l'avez oublié.
@@ -8,7 +15,7 @@ SSH (à partir de votre réseau local ! ou en utilisant un mode rescure si vous
## Sur l'interface d'administration web
-1. Connectez-vous à [l’administration web](/admin).
+1. Connectez-vous à l'interface web d'administration.
2. Allez dans la section Outis > Changer le mot de passe d’administration.
diff --git a/change_admin_password.md b/pages/01.administrate/08.troubleshooting/02.admin_password/change_admin_password.md
similarity index 73%
rename from change_admin_password.md
rename to pages/01.administrate/08.troubleshooting/02.admin_password/change_admin_password.md
index 5aec634c..1abba53a 100644
--- a/change_admin_password.md
+++ b/pages/01.administrate/08.troubleshooting/02.admin_password/change_admin_password.md
@@ -1,4 +1,11 @@
-# Changing the administration password
+---
+title: Changing the administration password
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/change_admin_password'
+---
You may want to change your administrator password for security reason or because you forgot it.
@@ -8,7 +15,7 @@ SSH (from your local network! or using a rescue mode if you're on a VPS...)
## Using the web administration interface
-First, connect to your [web administration](/admin).
+First, connect to your web administration.
Then go to Tools > Change administration password.
diff --git a/noaccess_fr.md b/pages/01.administrate/08.troubleshooting/03.noaccess/noaccess.fr.md
similarity index 98%
rename from noaccess_fr.md
rename to pages/01.administrate/08.troubleshooting/03.noaccess/noaccess.fr.md
index 360a13a7..15879610 100644
--- a/noaccess_fr.md
+++ b/pages/01.administrate/08.troubleshooting/03.noaccess/noaccess.fr.md
@@ -1,4 +1,11 @@
-# Récupérer l’accès à son YunoHost
+---
+title: Récupérer l'accès à son YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/noaccess'
+---
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.
diff --git a/pages/01.administrate/08.troubleshooting/03.noaccess/noaccess.md b/pages/01.administrate/08.troubleshooting/03.noaccess/noaccess.md
new file mode 100644
index 00000000..0f352330
--- /dev/null
+++ b/pages/01.administrate/08.troubleshooting/03.noaccess/noaccess.md
@@ -0,0 +1,131 @@
+---
+title: Get access back into YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/noaccess'
+---
+
+There are several reasons that could lead to one administrator's access being partially or completely blocked off their YunoHost server. In numerous cases, one of the access methods is blocked, but others are not.
+
+This page will help you diagnose the issue, get back access, and if needed repair your system. Most common causes are listed first, so follow the tutorial from top to bottom.
+
+## You have access to the server with its local IP address, but not its domain name.
+
+#### If you are self-hosted at home: fix ports forwarding
+
+Check that you are getting access to the server by using its public IP (you can find at [https://ip.yunohost.org](https://ip.yunohost.org). If this does not work:
+ - Make sure you have [set up forwarding](/isp_box_config)
+ - Some ISP routers do not support *hairpinning*, which prevents you from reaching your server by its domain name from within your local network. If so, you can use a cellular connection, or tweak your `hosts` file on your computer to make it bind your domain name to the local IP address instead of the public one.
+
+#### Configure DNS records
+
+! This is not a problem if you are using a domain from `nohost.me`, `noho.st` or `ynh.fr`)
+
+You have to configure your [DNS records](/dns_config) (at least `A` records, and `AAAA` if you have an IPv6 connection).
+
+You can check that the DNS records are correct by comparing the results given by [this service](https://www.whatsmydns.net/) with the [IP given by our service](https://ip.yunohost.org).
+
+#### Other probable causes
+
+- You domain `noho.st`, `nohost.me`, or `ynh.fr` is unreachable following a failure on YunoHost's infrastructure. Check the [forum](https://forum.yunohost.org/) for announcements or people posting about the same issue.
+- Your domain name may be expired. Check that on your registrar's client panel, or by using the command `whois yourdomain.tld`.
+- You have a dynamic IP address. In that case, you need to set up a script or a client that takes care of regularly update it. Refer to the page on [DNS with a dynamic IP](/dns_dynamicip) to see how. You can also use a domain `nohost.me`, `noho.st` or `ynh.fr` that includes this features.
+
+## You are getting a certificate error that prevents you from reaching the webadmin
+
+- A certificate error may be displayed if you have made a typo in the address bar of your browser.
+
+- If you have just installed your server, or just installed a new domain, it uses a self-signed certificate. In that case, it is possible and understandable to add a *temporary* security exception so that you can [install a Let's Encrypt certificate](/certificate), provided you have a secure Internet connection.
+
+## You have access via SSH but not via the webadmin, or inversely
+
+#### You are trying to log in with SSH as `root` instead of `admin` user.
+
+By default, SSH connection has to be made as `admin`. It possible to log into the server as `root` *only from the local network of the server*. If your server is a VPS, the web console or VNC provided by VPS providers may work.
+
+If you are running `yunohost` commands in the CLI as `admin`, you have to call them with `sudo` before (for example `sudo yunohost user list`). You can also become `root` by running `sudo su`.
+
+#### You have been temporarily banned
+
+Your YunoHost server includes a service, Fail2ban, which automatically bans IPs that fail several times in a row to log in. In some cases it can be software (e.g. Nextcloud client) that are confifured with an old password, or a user who has the same IP as you have.
+
+If you have been banned while trying to access a web page, and only web pages are unreachable, you may have access to your server via SSH. Similarly, if you have been banned from SSH, webadmin access may work.
+
+If you have been banned from both SSH and webadmin, you can try to reach your server through another IP address. For example through the cellular network of your phone, a VPN, Tor, or another proxy.
+
+See also : [unban an IP on Fail2Ban](/fail2ban)
+
+!!!! Ban are usually 10 to 12-minute-long, and on IPv4 only.
+
+#### NGINX web server is broken
+
+Maybe the NGINX web server is out of order. You can check that [trough SSH](/ssh) with the command `yunohost service status ssh`. If it is failinf, check that its configuration is correct by running `nginx -t`. If it is indeed broken, it may be due to the installation or removal of a low-quality app... If you need support, [ask for it](/help).
+
+The NGINX or SSH servers may have been killed due to a lack of storage space, RAM, or swap.
+
+- Try restarting the service with `systemctl restart nginx`.
+- You can check used storage with `df -h`. If one of your partitions is full, you need to identify what fills it and make rooù. You can use `ncdu` command (install it with `apt install ncdu` to browse from the root directory: `ncdu /`
+- You can check RAM and swap usage with `free -h`. Depending on the result, it may be necessary to optimize your server to use less RAM (removal of heavy or unused apps...), add more RAM or add a swap file.
+
+#### Your server is reachable by IPv6, but not IPv4, or inversely
+
+You can check that by `ping`ing it:
+
+```bash
+ping -4 yourdomain.tld # or its IPv4
+ping -6 yourdomain.tld # or its IPv6
+```
+
+If one of the two is working, use it to connect by SSH or the webadmin.
+
+If none are working, you need to resolv your connection issue. In some cases, an update of your router may have enabled IPv6 and DNS configuration may be disrupted.
+
+## Webadmin is working, but some web apps are returning 502 errors.
+
+It is highly probable that the underlying service for these apps is failing (e.g. PHP apps requiring `php7.0-fpm` or `php7.3-fpm`). You can then try to restart the services, and/or ask for [help](/help)
+
+## You have lost your admin password, or the password is seemingly wrong
+
+If you can reach the webadmin login page (force reload with `CTRL + F5` to be sure), and you cannot log in, your password is probably wrong.
+
+If yoy are sure of your passord, it may be due to the `slapd` service failing. If that's the case, log into the server by SSH as `root`.
+- If your server is at home, you most likely have access to the local network. From this network, you can follow the [SSH instructions](/ssh)`.
+- If your server is a VPS, your provider may offer a web console.
+
+Once logged in, you have to check the state of the service with `yunohost service status slapd` and/or reset your admin password with `yunohost tools adminpw`.
+
+If this is still failing, on a VPS you may be able to reboot in rescue mode. Do not hesitate to ask for [help](/help)
+
+!!! To be completed.
+
+## Your VPN expired or does not connect any more
+
+If you have a VPN with fixed IP, maybe it has expired, or the provider's infrastructure is failing.
+
+In that case, contact your VPN provider to renew it and update the parameters of the VPN Client app.
+
+Meanwhile, try reaching your server if it is at home, by:
+- its local IP, retrievable from your router configuration panel or `sudo arp-scan --local`
+- reaching it at `yunohost.local`, if it is at home and that you have only one YunoHost server in your network.
+
+!!! To be completed.
+
+## Your server does not boot
+
+In some cases your server may be stuck at boot. It may come from a new, buggy, kernel. Try changing to another kernel on the boot screen (via VNC for VPS).
+
+If you are in "rescue" mode with `grub`, it may be due a misconfiguration of `grub`, or a corrupted drive.
+
+In that case, access the storage drive from another system (your provider's "rescue" mode, live USB drive, read the SD or drive on another computer) and try to check partitions integrity with `smartctl`, `fsck`, and `mount`.
+
+If disks are corrupted or hard to miunt, you have to save your data and maybe reformat, reinstall, and/or change the drive. If you succeed in mounting the drive, you can use `systemd-nspawn` to access its database.
+
+Otherwise, run `grub-update`, `grub-install` again with `chroot` or with `systemd-nspawn`.
+
+## VNC or screen access does not work
+
+It may be due hardware issue on your server, or with the hypervisor if it is on a VPS.
+
+If you are renting your server, contact the support of your provider. Otherwise, try fixing your machine by replacing failing components.
diff --git a/ipv6_fr.md b/pages/01.administrate/08.troubleshooting/04.ipv6/ipv6.fr.md
similarity index 87%
rename from ipv6_fr.md
rename to pages/01.administrate/08.troubleshooting/04.ipv6/ipv6.fr.md
index 6c37e224..40d5c39e 100644
--- a/ipv6_fr.md
+++ b/pages/01.administrate/08.troubleshooting/04.ipv6/ipv6.fr.md
@@ -1,4 +1,11 @@
-# Configuration de l’IPv6
+---
+title: Configuration de l'IPv6
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/ipv6'
+---
L'IPv6 peut fonctionner directement dans certains cas. Mais dans d'autres, ou chez certains hébergeurs spécifiques, vous devez activer l'IPv6 manuellement.
@@ -21,9 +28,8 @@ Sur le panneau de gestion d'OVH, vous aller récupérer 3 informations :
Sur votre VPS, vous aller créer une sauvegarde de votre fichier de configuration des interfaces réseau dans votre répertoire home avec la commande : `cp /etc/network/interfaces ~/interfaces`.
Ensuite, vous pouvez modifier le fichier de configuration `/etc/network/interfaces`.
-
-Dans cet exemple, nous considérons que votre interface réseau est `eth0`. Si elle est différente (vérifiez avec `ip a`) vous devez adapter l'exemple pour correspondre à votre situation.
-
+
+! Dans cet exemple, nous considérons que votre interface réseau est `eth0`. Si elle est différente (vérifiez avec `ip a`) vous devez adapter l'exemple pour correspondre à votre situation.
```plaintext
iface eth0 inet6 static
diff --git a/ipv6.md b/pages/01.administrate/08.troubleshooting/04.ipv6/ipv6.md
similarity index 87%
rename from ipv6.md
rename to pages/01.administrate/08.troubleshooting/04.ipv6/ipv6.md
index fc183f2d..0748792d 100644
--- a/ipv6.md
+++ b/pages/01.administrate/08.troubleshooting/04.ipv6/ipv6.md
@@ -1,4 +1,11 @@
-# Setting up IPv6
+---
+title: Setting up IPv6
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/ipv6'
+---
IPv6 may work out of the box in many cases. But in some cases or some specific provider, you may need to tweak things manually to enable IPv6.
@@ -21,9 +28,7 @@ On the OVH panel, you will copy 3 element :
On your VPS, create a backup of the network configuration with : `cp /etc/network/interfaces ~/interfaces` in home directory.
Then, you can edit the configuration file (`/etc/network/interfaces`) with the following. It is assumed that :
-
-In this example, it is assumed that your network interface is `eth0`. If it's different (check with `ip a`) you need to adapt the example below.
-
+! In this example, it is assumed that your network interface is `eth0`. If it's different (check with `ip a`) you need to adapt the example below.
```plaintext
iface eth0 inet6 static
diff --git a/blacklist_forms_fr.md b/pages/01.administrate/08.troubleshooting/05.unblacklisting/blacklist_forms.fr.md
similarity index 88%
rename from blacklist_forms_fr.md
rename to pages/01.administrate/08.troubleshooting/05.unblacklisting/blacklist_forms.fr.md
index f7c9f1b1..d45f637e 100644
--- a/blacklist_forms_fr.md
+++ b/pages/01.administrate/08.troubleshooting/05.unblacklisting/blacklist_forms.fr.md
@@ -1,4 +1,11 @@
-# Formulaires de retrait de liste noire
+---
+title: Formulaires de retrait de liste noire
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/blacklist_forms'
+---
Il peut arriver que votre serveur (son adresse IP) soit ajouté à la liste noire de certains fournisseurs d’adresse de courrier électronique ou de services anti-spam. Les courriels envoyés à ces adresses sont alors filtrés et n’arrivent pas à destination.
diff --git a/blacklist_forms.md b/pages/01.administrate/08.troubleshooting/05.unblacklisting/blacklist_forms.md
similarity index 85%
rename from blacklist_forms.md
rename to pages/01.administrate/08.troubleshooting/05.unblacklisting/blacklist_forms.md
index f67eeaa5..168ec91e 100644
--- a/blacklist_forms.md
+++ b/pages/01.administrate/08.troubleshooting/05.unblacklisting/blacklist_forms.md
@@ -1,4 +1,11 @@
-# Blacklist forms
+---
+title: Unblacklisting forms
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/blacklist_forms'
+---
It could happen sometimes that your IP is blacklisted by some email provider, or anti-spam services.
diff --git a/jessie_stretch_migration_fr.md b/pages/01.administrate/08.troubleshooting/06.jessie_stretch/jessie_stretch_migration.fr.md
similarity index 97%
rename from jessie_stretch_migration_fr.md
rename to pages/01.administrate/08.troubleshooting/06.jessie_stretch/jessie_stretch_migration.fr.md
index 067f782d..9b77a26d 100644
--- a/jessie_stretch_migration_fr.md
+++ b/pages/01.administrate/08.troubleshooting/06.jessie_stretch/jessie_stretch_migration.fr.md
@@ -1,4 +1,11 @@
-# Migrer vers Stretch
+---
+title: Migrer vers Stretch
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/jessie_stretch_migration'
+---
L'objectif cette page est de décrire le processus de migration d'une instance en YunoHost 2.7.x (tournant sous Debian Jessie/8.x) vers YunoHost 3.0 (tournant sous Debian Stretch/9.x)
diff --git a/jessie_stretch_migration.md b/pages/01.administrate/08.troubleshooting/06.jessie_stretch/jessie_stretch_migration.md
similarity index 96%
rename from jessie_stretch_migration.md
rename to pages/01.administrate/08.troubleshooting/06.jessie_stretch/jessie_stretch_migration.md
index b2c78bce..17ff656b 100644
--- a/jessie_stretch_migration.md
+++ b/pages/01.administrate/08.troubleshooting/06.jessie_stretch/jessie_stretch_migration.md
@@ -1,4 +1,11 @@
-# Migrating an existing instance to Stretch
+---
+title: Migrating an existing instance to Stretch
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/jessie_stretch_migration'
+---
This page is dedicated to help you migrating an instance from YunoHost 2.7.x (running on Debian Jessie/8.x) to YunoHost 3.0 (running on Debian Stretch/9.x).
diff --git a/stretch_buster_migration_fr.md b/pages/01.administrate/08.troubleshooting/07.stretch_buster/stretch_buster_migration.fr.md
similarity index 97%
rename from stretch_buster_migration_fr.md
rename to pages/01.administrate/08.troubleshooting/07.stretch_buster/stretch_buster_migration.fr.md
index e3b3997b..02ec15b9 100644
--- a/stretch_buster_migration_fr.md
+++ b/pages/01.administrate/08.troubleshooting/07.stretch_buster/stretch_buster_migration.fr.md
@@ -1,4 +1,11 @@
-# Migrer vers Buster
+---
+title: Migrer vers Buster
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/stretch_buster_migration'
+---
L'objectif cette page est de décrire le processus de migration d'une instance en YunoHost 3.8.x (tournant sous Debian Stretch/9.x) vers YunoHost 4.x (tournant sous Debian Buster/10.x)
diff --git a/stretch_buster_migration.md b/pages/01.administrate/08.troubleshooting/07.stretch_buster/stretch_buster_migration.md
similarity index 95%
rename from stretch_buster_migration.md
rename to pages/01.administrate/08.troubleshooting/07.stretch_buster/stretch_buster_migration.md
index 84c47b1a..b4a28ea3 100644
--- a/stretch_buster_migration.md
+++ b/pages/01.administrate/08.troubleshooting/07.stretch_buster/stretch_buster_migration.md
@@ -1,4 +1,11 @@
-# Migrating an existing instance to Buster
+---
+title: Migrating an existing instance to Buster
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/stretch_buster_migration'
+---
This page is dedicated to help you migrating an instance from YunoHost 3.8.x (running on Debian Stretch/9.x) to YunoHost 4.x (running on Debian Buster/10.x).
diff --git a/pages/01.administrate/08.troubleshooting/troubleshooting.fr.md b/pages/01.administrate/08.troubleshooting/troubleshooting.fr.md
new file mode 100644
index 00000000..a6f1e415
--- /dev/null
+++ b/pages/01.administrate/08.troubleshooting/troubleshooting.fr.md
@@ -0,0 +1,26 @@
+---
+title: Dépannage
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/troubleshooting'
+---
+
+Voici quelques conseils généraux à suivre lorsque vous rencontrez des problèmes avec votre serveur.
+
+## 0. Ne paniquez pas.
+
+Restez calme. La plupart des problèmes sont moins grave que ce que les débutants pensent. Pour l'amour de Dieu (ou de votre déité, animal, nourriture préférée), ne sautez pas à pieds joint dans la "spirate de réinstallation" en pensant que réinstaller à partir de zéro va magiquement résoudre vos problèmes. Réinstaller est une opération lourde et n'est pas une bonne stratégie sur le long-terme pour résoudre les problèmes. Vous finirez par vous lasser et n'apprendrez rien.
+
+## 1. Regardez sur le forum ou bugtrackers si quelqu'un a eu un problème similaire.
+
+Cherchez dans [le forum](https://forum.yunohost.org) des fils de discussions qui discutent de choses similaire aux problème que vous rencontrez. Si vous avez un soucis lié à une application en particulier, vous pouvez également tenter de chercher un ticket similaire sur le bugtracker de l'application, par exemple [ici se trouve le bugtracker de l'app wordpress](https://github.com/YunoHost-Apps/wordpress_ynh/issues).
+
+## 2. Demandez de l'aide
+
+Soit sur [le forum](https://forum.yunohost.org) ou bien le chat : c.f. [cette page](/help)
+
+!!! POUR L'AMOUR DE DIEU, PRIÈRE DE fournir du contexte ! Les bénévoles ne peuvent PAS vous aider si vous ne prenez pas *cinq* petites minutes pour décrire votre contexte : quel type de hardware, quelle version de Yunohost, qu'est-ce que vous essayez de faire, ce qui s'est passé, et **les journaux (logs) correspondants**.
+
+
diff --git a/pages/01.administrate/08.troubleshooting/troubleshooting.md b/pages/01.administrate/08.troubleshooting/troubleshooting.md
new file mode 100644
index 00000000..8cf90dbc
--- /dev/null
+++ b/pages/01.administrate/08.troubleshooting/troubleshooting.md
@@ -0,0 +1,26 @@
+---
+title: Troubleshooting
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/troubleshooting'
+---
+
+Here are some general advices when encountering issues with your server.
+
+## 0. Don't panic.
+
+Stay calm. Most issues are less worse than newcomers usually think. For the love of God (or your favourite deity / animal / food), please don't jump into the "reinstallation spiral" thinking reinstalling your serve from scratch will magically fix stuff. Reinstalling is a heavy operation and is not a good long-term strategy for fixing problems. You will get tired and won't learn anything.
+
+## 1. Look for similar issues on the forum or bugtrackers.
+
+Search [the forum](https://forum.yunohost.org) for topics similar to the issue you're encountering. If you have issues with a specific app, you may also want to check the corresponding bugtracker of the app, for example [here is the bugtracker for the Wordpress app](https://github.com/YunoHost-Apps/wordpress_ynh/issues).
+
+## 2. Ask for help
+
+Either on [the forum](https://forum.yunohost.org) or the chat : c.f. [this page](/help)
+
+!!! FOR THE LOVE OF GOD, PLEASE provide basic context ! Volunteers can NOT help you if you do not take *five* minutes to describe your context : which kind of hardware, which Yunohost version, what you are trying to do, what you tried, what happened and **the corresponding logs**.
+
+
diff --git a/pages/01.administrate/admindoc.fr.md b/pages/01.administrate/admindoc.fr.md
new file mode 100644
index 00000000..bedfb7c6
--- /dev/null
+++ b/pages/01.administrate/admindoc.fr.md
@@ -0,0 +1,12 @@
+---
+title: Guide d'administration
+template: chapter
+taxonomy:
+ category: docs
+routes:
+ default: '/admindoc'
+---
+
+### Administrer
+
+# Découvrez l'auto-hébergement, comment installer et utiliser YunoHost
diff --git a/pages/01.administrate/admindoc.md b/pages/01.administrate/admindoc.md
new file mode 100644
index 00000000..244b461a
--- /dev/null
+++ b/pages/01.administrate/admindoc.md
@@ -0,0 +1,12 @@
+---
+title: Admin guide
+template: chapter
+taxonomy:
+ category: docs
+routes:
+ default: '/admindoc'
+---
+
+### Administrate
+
+# Discover self-hosting, how to install and use YunoHost
diff --git a/pages/02.applications/01.catalog/apps.fr.md b/pages/02.applications/01.catalog/apps.fr.md
new file mode 100644
index 00000000..1e3c36c7
--- /dev/null
+++ b/pages/02.applications/01.catalog/apps.fr.md
@@ -0,0 +1,134 @@
+---
+title: Catalogue d'applications
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/apps'
+twig_first: true
+process:
+ twig: true
+---
+
+
+Cette page requiert que JavaScript soit activé pour s'afficher correctement :s.
+
+
+
+
+
+
+
+!!! L'équipe de packaging d'applications sera heureuse de recevoir vos commentaires ! Si vous trouvez des problèmes ou des améliorations possibles en installant une app, n'hésitez pas à contribuer en créant un ticket (issue) directement sur le dépôt de code.
+
+! Les applications étiquettées mauvaise qualité fonctionnent peut-être, mais ne respectent pas les bonnes pratiques de packaging ou ne supportent pas certaines fonctionnalités comme les sauvegardes/restauration ou l'authentication unifiée. Soyez prudent si vous les installez.
+
+{% set catalog = read_file('/var/www/app_yunohost/apps/builds/default/doc_catalog/apps.json')|json_decode(true) %}
+
+
+{% for app_id, infos in catalog.apps %}
+
+{% if grav.language.getActive in infos.description %}
+ {% set descr_lang = grav.language.getActive %}
+{% else %}
+ {% set descr_lang = 'en' %}
+{% endif %}
+
+
+
+! Si vous ne trouvez pas une application précise que vous recherchez, vous pouvez l'ajouter à la [liste d'apps souhaitées](/apps_wishlist).
+
+
+
+
diff --git a/pages/02.applications/01.catalog/apps.md b/pages/02.applications/01.catalog/apps.md
new file mode 100644
index 00000000..421795f8
--- /dev/null
+++ b/pages/02.applications/01.catalog/apps.md
@@ -0,0 +1,136 @@
+---
+title: Application catalog
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/apps'
+twig_first: true
+process:
+ twig: true
+---
+
+
+This page requires JavaScript enabled to display properly :s.
+
+
+
+
+
+
+
+!!! The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the corresponding code repositories.
+
+! Applications flagged as low quality may be working, but they may not respect good packaging practices or lack integration of some features like backup/restore or single authentication. Be cautious when installing them.
+
+{% set catalog = read_file('/var/www/app_yunohost/apps/builds/default/doc_catalog/apps.json')|json_decode(true) %}
+
+
+{% for app_id, infos in catalog.apps %}
+
+{% if grav.language.getActive in infos.description %}
+ {% set descr_lang = grav.language.getActive %}
+{% else %}
+ {% set descr_lang = 'en' %}
+{% endif %}
+
+
diff --git a/app_dokuwiki_fr.md b/pages/02.applications/02.docs/dokuwiki/app_dokuwiki.fr.md
similarity index 90%
rename from app_dokuwiki_fr.md
rename to pages/02.applications/02.docs/dokuwiki/app_dokuwiki.fr.md
index 48798e6e..755e6c99 100644
--- a/app_dokuwiki_fr.md
+++ b/pages/02.applications/02.docs/dokuwiki/app_dokuwiki.fr.md
@@ -1,4 +1,13 @@
-# DokuWiki
+---
+title: DokuWiki
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_dokuwiki'
+---
+
+
[](https://install-app.yunohost.org/?app=dokuwiki) [](https://dash.yunohost.org/appci/app/dokuwiki)
diff --git a/app_dokuwiki.md b/pages/02.applications/02.docs/dokuwiki/app_dokuwiki.md
similarity index 89%
rename from app_dokuwiki.md
rename to pages/02.applications/02.docs/dokuwiki/app_dokuwiki.md
index affc03ea..2f737c9e 100644
--- a/app_dokuwiki.md
+++ b/pages/02.applications/02.docs/dokuwiki/app_dokuwiki.md
@@ -1,4 +1,13 @@
-# DokuWiki
+---
+title: DokuWiki
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_dokuwiki'
+---
+
+
[](https://install-app.yunohost.org/?app=dokuwiki) [](https://dash.yunohost.org/appci/app/dokuwiki)
diff --git a/app_dolibarr_fr.md b/pages/02.applications/02.docs/dolibarr/app_dolibarr.fr.md
similarity index 89%
rename from app_dolibarr_fr.md
rename to pages/02.applications/02.docs/dolibarr/app_dolibarr.fr.md
index 13043607..7a1afd2f 100644
--- a/app_dolibarr_fr.md
+++ b/pages/02.applications/02.docs/dolibarr/app_dolibarr.fr.md
@@ -1,4 +1,13 @@
-# Dolibarr
+---
+title: Dolibarr
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_dolibarr'
+---
+
+
[](https://install-app.yunohost.org/?app=dolibarr) [](https://dash.yunohost.org/appci/app/dolibarr)
diff --git a/app_dolibarr.md b/pages/02.applications/02.docs/dolibarr/app_dolibarr.md
similarity index 89%
rename from app_dolibarr.md
rename to pages/02.applications/02.docs/dolibarr/app_dolibarr.md
index 01dcd21f..ae1c5406 100644
--- a/app_dolibarr.md
+++ b/pages/02.applications/02.docs/dolibarr/app_dolibarr.md
@@ -1,4 +1,13 @@
-# Dolibarr
+---
+title: Dolibarr
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_dolibarr'
+---
+
+
[](https://install-app.yunohost.org/?app=dolibarr) [](https://dash.yunohost.org/appci/app/dolibarr)
diff --git a/app_dotclear2_fr.md b/pages/02.applications/02.docs/dotclear2/app_dotclear2.fr.md
similarity index 90%
rename from app_dotclear2_fr.md
rename to pages/02.applications/02.docs/dotclear2/app_dotclear2.fr.md
index 3e0cc64d..87b356a3 100644
--- a/app_dotclear2_fr.md
+++ b/pages/02.applications/02.docs/dotclear2/app_dotclear2.fr.md
@@ -1,4 +1,13 @@
-# Dotclear 2
+---
+title: Dotclear 2
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_dotclear2'
+---
+
+
[](https://install-app.yunohost.org/?app=dotclear2) [](https://dash.yunohost.org/appci/app/dotclear2)
diff --git a/app_dotclear2.md b/pages/02.applications/02.docs/dotclear2/app_dotclear2.md
similarity index 89%
rename from app_dotclear2.md
rename to pages/02.applications/02.docs/dotclear2/app_dotclear2.md
index 7532e805..10998e55 100644
--- a/app_dotclear2.md
+++ b/pages/02.applications/02.docs/dotclear2/app_dotclear2.md
@@ -1,4 +1,13 @@
-# Dotclear 2
+---
+title: Dotclear 2
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_dotclear2'
+---
+
+
[](https://install-app.yunohost.org/?app=dotclear2) [](https://dash.yunohost.org/appci/app/dotclear2)
diff --git a/app_drupal_fr.md b/pages/02.applications/02.docs/drupal/app_drupal.fr.md
similarity index 86%
rename from app_drupal_fr.md
rename to pages/02.applications/02.docs/drupal/app_drupal.fr.md
index 6950eb41..812f09b7 100644
--- a/app_drupal_fr.md
+++ b/pages/02.applications/02.docs/drupal/app_drupal.fr.md
@@ -1,4 +1,13 @@
-# Drupal
+---
+title: Drupal
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_drupal'
+---
+
+
[](https://install-app.yunohost.org/?app=drupal) [](https://dash.yunohost.org/appci/app/drupal)
diff --git a/app_drupal.md b/pages/02.applications/02.docs/drupal/app_drupal.md
similarity index 88%
rename from app_drupal.md
rename to pages/02.applications/02.docs/drupal/app_drupal.md
index f4adfb31..1a45177f 100644
--- a/app_drupal.md
+++ b/pages/02.applications/02.docs/drupal/app_drupal.md
@@ -1,4 +1,13 @@
-# Drupal
+---
+title: Drupal
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_drupal'
+---
+
+
[](https://install-app.yunohost.org/?app=drupal) [](https://dash.yunohost.org/appci/app/drupal)
diff --git a/app_drupal7_fr.md b/pages/02.applications/02.docs/drupal7/app_drupal7.fr.md
similarity index 87%
rename from app_drupal7_fr.md
rename to pages/02.applications/02.docs/drupal7/app_drupal7.fr.md
index 882ddf1a..9d72a3fe 100644
--- a/app_drupal7_fr.md
+++ b/pages/02.applications/02.docs/drupal7/app_drupal7.fr.md
@@ -1,4 +1,13 @@
-# Drupal 7
+---
+title: Drupal 7
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_drupal7'
+---
+
+
[](https://install-app.yunohost.org/?app=drupal) [](https://dash.yunohost.org/appci/app/drupal)
diff --git a/app_drupal7.md b/pages/02.applications/02.docs/drupal7/app_drupal7.md
similarity index 89%
rename from app_drupal7.md
rename to pages/02.applications/02.docs/drupal7/app_drupal7.md
index 73388808..6539cd6d 100644
--- a/app_drupal7.md
+++ b/pages/02.applications/02.docs/drupal7/app_drupal7.md
@@ -1,4 +1,13 @@
-# Drupal 7
+---
+title: Drupal 7
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_drupal7'
+---
+
+
[](https://install-app.yunohost.org/?app=drupal) [](https://dash.yunohost.org/appci/app/drupal)
diff --git a/app_etherpad_mypads_fr.md b/pages/02.applications/02.docs/etherpad_mypads/app_etherpad_mypads.fr.md
similarity index 87%
rename from app_etherpad_mypads_fr.md
rename to pages/02.applications/02.docs/etherpad_mypads/app_etherpad_mypads.fr.md
index 3ff67fff..97a49f9a 100644
--- a/app_etherpad_mypads_fr.md
+++ b/pages/02.applications/02.docs/etherpad_mypads/app_etherpad_mypads.fr.md
@@ -1,4 +1,13 @@
-# Etherpad (avec plugin MyPads)
+---
+title: Etherpad avec plugin MyPads
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_etherpad_mypads'
+---
+
+
[](https://install-app.yunohost.org/?app=etherpad_mypads) [](https://dash.yunohost.org/appci/app/etherpad_mypads)
diff --git a/app_etherpad_mypads.md b/pages/02.applications/02.docs/etherpad_mypads/app_etherpad_mypads.md
similarity index 87%
rename from app_etherpad_mypads.md
rename to pages/02.applications/02.docs/etherpad_mypads/app_etherpad_mypads.md
index cbcd4caa..ceea1437 100644
--- a/app_etherpad_mypads.md
+++ b/pages/02.applications/02.docs/etherpad_mypads/app_etherpad_mypads.md
@@ -1,4 +1,13 @@
-# Etherpad (with MyPads's plugin)
+---
+title: Etherpad with MyPads plugin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_etherpad_mypads'
+---
+
+
[](https://install-app.yunohost.org/?app=etherpad_mypads) [](https://dash.yunohost.org/appci/app/etherpad_mypads)
diff --git a/app_fallback_fr.md b/pages/02.applications/02.docs/fallback/app_fallback.fr.md
similarity index 89%
rename from app_fallback_fr.md
rename to pages/02.applications/02.docs/fallback/app_fallback.fr.md
index 906755bb..300f83a1 100644
--- a/app_fallback_fr.md
+++ b/pages/02.applications/02.docs/fallback/app_fallback.fr.md
@@ -1,4 +1,13 @@
-# Fallback
+---
+title: Fallback
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_fallback'
+---
+
+
[](https://install-app.yunohost.org/?app=fallback) [](https://dash.yunohost.org/appci/app/fallback)
diff --git a/app_fallback.md b/pages/02.applications/02.docs/fallback/app_fallback.md
similarity index 88%
rename from app_fallback.md
rename to pages/02.applications/02.docs/fallback/app_fallback.md
index 59c5c607..81da072d 100644
--- a/app_fallback.md
+++ b/pages/02.applications/02.docs/fallback/app_fallback.md
@@ -1,4 +1,13 @@
-# Fallback
+---
+title: Fallback
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_fallback'
+---
+
+
[](https://install-app.yunohost.org/?app=fallback) [](https://dash.yunohost.org/appci/app/fallback)
diff --git a/app_ffsync_fr.md b/pages/02.applications/02.docs/ffsync/app_ffsync.fr.md
similarity index 92%
rename from app_ffsync_fr.md
rename to pages/02.applications/02.docs/ffsync/app_ffsync.fr.md
index 2e6e6e20..dedf3a39 100644
--- a/app_ffsync_fr.md
+++ b/pages/02.applications/02.docs/ffsync/app_ffsync.fr.md
@@ -1,4 +1,13 @@
-# Firefox Sync
+---
+title: Firefox Sync
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_ffsync'
+---
+
+
[](https://install-app.yunohost.org/?app=ffsync) [](https://dash.yunohost.org/appci/app/ffsync)
diff --git a/app_ffsync_it.md b/pages/02.applications/02.docs/ffsync/app_ffsync.it.md
similarity index 83%
rename from app_ffsync_it.md
rename to pages/02.applications/02.docs/ffsync/app_ffsync.it.md
index c83e4b64..80c7ff03 100644
--- a/app_ffsync_it.md
+++ b/pages/02.applications/02.docs/ffsync/app_ffsync.it.md
@@ -1,4 +1,12 @@
-# Firefox Sync
+---
+title: FireFox Sync
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_ffsync'
+---
+
Firefox Sync permette la sincronizzazione di plugin, schede, segnalibri, preferiti e cronologia fra diverse istanze di Firefox.
## Configurazione di Firefox
diff --git a/app_ffsync.md b/pages/02.applications/02.docs/ffsync/app_ffsync.md
similarity index 91%
rename from app_ffsync.md
rename to pages/02.applications/02.docs/ffsync/app_ffsync.md
index e0eba9b3..7d75f891 100644
--- a/app_ffsync.md
+++ b/pages/02.applications/02.docs/ffsync/app_ffsync.md
@@ -1,4 +1,13 @@
-# Firefox Sync
+---
+title: Firefox Sync
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_ffsync'
+---
+
+
[](https://install-app.yunohost.org/?app=ffsync) [](https://dash.yunohost.org/appci/app/ffsync)
diff --git a/app_firefly-iii_fr.md b/pages/02.applications/02.docs/firefly-iii/app_firefly-iii.fr.md
similarity index 87%
rename from app_firefly-iii_fr.md
rename to pages/02.applications/02.docs/firefly-iii/app_firefly-iii.fr.md
index 145eab49..8d342327 100644
--- a/app_firefly-iii_fr.md
+++ b/pages/02.applications/02.docs/firefly-iii/app_firefly-iii.fr.md
@@ -1,4 +1,13 @@
-# Firefly III
+---
+title: Firefly III
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_firefly-iii'
+---
+
+
[](https://install-app.yunohost.org/?app=firefly-iii) [](https://dash.yunohost.org/appci/app/firefly-iii)
diff --git a/app_firefly-iii.md b/pages/02.applications/02.docs/firefly-iii/app_firefly-iii.md
similarity index 86%
rename from app_firefly-iii.md
rename to pages/02.applications/02.docs/firefly-iii/app_firefly-iii.md
index f1164fa3..a23d3172 100644
--- a/app_firefly-iii.md
+++ b/pages/02.applications/02.docs/firefly-iii/app_firefly-iii.md
@@ -1,4 +1,13 @@
-# Firefly III
+---
+title: Firefly III
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_firefly-iii'
+---
+
+
[](https://install-app.yunohost.org/?app=firefly-iii) [](https://dash.yunohost.org/appci/app/firefly-iii)
diff --git a/app_flarum_fr.md b/pages/02.applications/02.docs/flarum/app_flarum.fr.md
similarity index 83%
rename from app_flarum_fr.md
rename to pages/02.applications/02.docs/flarum/app_flarum.fr.md
index ee2d3695..de15fd5b 100644
--- a/app_flarum_fr.md
+++ b/pages/02.applications/02.docs/flarum/app_flarum.fr.md
@@ -1,4 +1,13 @@
-# Flarum
+---
+title: Flarum
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_flarum'
+---
+
+
[](https://install-app.yunohost.org/?app=flarum) [](https://dash.yunohost.org/appci/app/flarum)
diff --git a/app_flarum.md b/pages/02.applications/02.docs/flarum/app_flarum.md
similarity index 83%
rename from app_flarum.md
rename to pages/02.applications/02.docs/flarum/app_flarum.md
index 84f3ed01..621c773c 100644
--- a/app_flarum.md
+++ b/pages/02.applications/02.docs/flarum/app_flarum.md
@@ -1,4 +1,13 @@
-# Flarum
+---
+title: Flarum
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_flarum'
+---
+
+
[](https://install-app.yunohost.org/?app=flarum) [](https://dash.yunohost.org/appci/app/flarum)
diff --git a/app_fluxbb_fr.md b/pages/02.applications/02.docs/fluxbb/app_fluxbb.fr.md
similarity index 88%
rename from app_fluxbb_fr.md
rename to pages/02.applications/02.docs/fluxbb/app_fluxbb.fr.md
index 3de6520d..08c6ee7a 100644
--- a/app_fluxbb_fr.md
+++ b/pages/02.applications/02.docs/fluxbb/app_fluxbb.fr.md
@@ -1,4 +1,13 @@
-# FluxBB
+---
+title: FluxBB
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_fluxbb'
+---
+
+
[](https://install-app.yunohost.org/?app=fluxbb) [](https://dash.yunohost.org/appci/app/fluxbb)
diff --git a/app_fluxbb.md b/pages/02.applications/02.docs/fluxbb/app_fluxbb.md
similarity index 87%
rename from app_fluxbb.md
rename to pages/02.applications/02.docs/fluxbb/app_fluxbb.md
index 76a73533..bbbcc858 100644
--- a/app_fluxbb.md
+++ b/pages/02.applications/02.docs/fluxbb/app_fluxbb.md
@@ -1,4 +1,13 @@
-# FluxBB
+---
+title: FluxBB
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_fluxbb'
+---
+
+
[](https://install-app.yunohost.org/?app=fluxbb) [](https://dash.yunohost.org/appci/app/fluxbb)
diff --git a/app_framaforms_fr.md b/pages/02.applications/02.docs/framaforms/app_framaforms.fr.md
similarity index 88%
rename from app_framaforms_fr.md
rename to pages/02.applications/02.docs/framaforms/app_framaforms.fr.md
index 8afcdbe0..caba4108 100644
--- a/app_framaforms_fr.md
+++ b/pages/02.applications/02.docs/framaforms/app_framaforms.fr.md
@@ -1,4 +1,13 @@
-# Framaforms
+---
+title: Framaforms
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_framaforms'
+---
+
+
[](https://install-app.yunohost.org/?app=framaforms) [](https://dash.yunohost.org/appci/app/framaforms)
diff --git a/app_framaforms.md b/pages/02.applications/02.docs/framaforms/app_framaforms.md
similarity index 91%
rename from app_framaforms.md
rename to pages/02.applications/02.docs/framaforms/app_framaforms.md
index da5d380d..6b3ff6ce 100644
--- a/app_framaforms.md
+++ b/pages/02.applications/02.docs/framaforms/app_framaforms.md
@@ -1,4 +1,11 @@
-# Framaforms
+---
+title: Framaforms
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_framaforms'
+---
[](https://install-app.yunohost.org/?app=framaforms) [](https://dash.yunohost.org/appci/app/framaforms)
diff --git a/app_freshrss_fr.md b/pages/02.applications/02.docs/freshrss/app_freshrss.fr.md
similarity index 91%
rename from app_freshrss_fr.md
rename to pages/02.applications/02.docs/freshrss/app_freshrss.fr.md
index 8df18c09..f66db945 100644
--- a/app_freshrss_fr.md
+++ b/pages/02.applications/02.docs/freshrss/app_freshrss.fr.md
@@ -1,4 +1,13 @@
-# FreshRSS
+---
+title: FreshRSS
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_freshrss'
+---
+
+
[](https://install-app.yunohost.org/?app=freshrss) [](https://dash.yunohost.org/appci/app/freshrss)
diff --git a/app_freshrss.md b/pages/02.applications/02.docs/freshrss/app_freshrss.md
similarity index 91%
rename from app_freshrss.md
rename to pages/02.applications/02.docs/freshrss/app_freshrss.md
index 074ee80a..d698fcd9 100644
--- a/app_freshrss.md
+++ b/pages/02.applications/02.docs/freshrss/app_freshrss.md
@@ -1,4 +1,13 @@
-# FreshRSS
+---
+title: FreshRSS
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_freshrss'
+---
+
+
[](https://install-app.yunohost.org/?app=freshrss) [](https://dash.yunohost.org/appci/app/freshrss)
diff --git a/app_friendica_fr.md b/pages/02.applications/02.docs/friendica/app_friendica.fr.md
similarity index 92%
rename from app_friendica_fr.md
rename to pages/02.applications/02.docs/friendica/app_friendica.fr.md
index 5ecb8b8b..e44804a8 100644
--- a/app_friendica_fr.md
+++ b/pages/02.applications/02.docs/friendica/app_friendica.fr.md
@@ -1,4 +1,13 @@
-# Friendica
+---
+title: Friendica
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_friendica'
+---
+
+
[](https://install-app.yunohost.org/?app=friendica) [](https://dash.yunohost.org/appci/app/friendica)
diff --git a/app_friendica.md b/pages/02.applications/02.docs/friendica/app_friendica.md
similarity index 91%
rename from app_friendica.md
rename to pages/02.applications/02.docs/friendica/app_friendica.md
index c14d50ed..de0f9262 100644
--- a/app_friendica.md
+++ b/pages/02.applications/02.docs/friendica/app_friendica.md
@@ -1,4 +1,13 @@
-# Friendica
+---
+title: Friendica
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_friendica'
+---
+
+
[](https://install-app.yunohost.org/?app=friendica) [](https://dash.yunohost.org/appci/app/friendica)
diff --git a/app_funkwhale_fr.md b/pages/02.applications/02.docs/funkwhale/app_funkwhale.fr.md
similarity index 90%
rename from app_funkwhale_fr.md
rename to pages/02.applications/02.docs/funkwhale/app_funkwhale.fr.md
index 91dfbe76..12b9ac10 100644
--- a/app_funkwhale_fr.md
+++ b/pages/02.applications/02.docs/funkwhale/app_funkwhale.fr.md
@@ -1,4 +1,13 @@
-# Funkwhale
+---
+title: Funkwhale
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_funkwhale'
+---
+
+
[](https://install-app.yunohost.org/?app=funkwhale) [](https://dash.yunohost.org/appci/app/funkwhale)
diff --git a/app_funkwhale.md b/pages/02.applications/02.docs/funkwhale/app_funkwhale.md
similarity index 89%
rename from app_funkwhale.md
rename to pages/02.applications/02.docs/funkwhale/app_funkwhale.md
index 34700206..c557b1fe 100644
--- a/app_funkwhale.md
+++ b/pages/02.applications/02.docs/funkwhale/app_funkwhale.md
@@ -1,4 +1,13 @@
-# Funkwhale
+---
+title: Funkwhale
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_funkwhale'
+---
+
+
[](https://install-app.yunohost.org/?app=funkwhale) [](https://dash.yunohost.org/appci/app/funkwhale)
diff --git a/app_galene_fr.md b/pages/02.applications/02.docs/galene/app_galene.fr.md
similarity index 92%
rename from app_galene_fr.md
rename to pages/02.applications/02.docs/galene/app_galene.fr.md
index 0fe4ed54..0e113586 100644
--- a/app_galene_fr.md
+++ b/pages/02.applications/02.docs/galene/app_galene.fr.md
@@ -1,4 +1,11 @@
-# Galène
+---
+title: Galène
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_galene'
+---
[](https://install-app.yunohost.org/?app=galene) [](https://dash.yunohost.org/appci/app/galene)
diff --git a/app_galene.md b/pages/02.applications/02.docs/galene/app_galene.md
similarity index 91%
rename from app_galene.md
rename to pages/02.applications/02.docs/galene/app_galene.md
index ade5e1f1..c52bc7bd 100644
--- a/app_galene.md
+++ b/pages/02.applications/02.docs/galene/app_galene.md
@@ -1,4 +1,11 @@
-# Galène
+---
+title: Galène
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_galene'
+---
[](https://install-app.yunohost.org/?app=galene) [](https://dash.yunohost.org/appci/app/galene)
diff --git a/app_garradin_fr.md b/pages/02.applications/02.docs/garradin/app_garradin.fr.md
similarity index 91%
rename from app_garradin_fr.md
rename to pages/02.applications/02.docs/garradin/app_garradin.fr.md
index ce6fd8b6..25f510c4 100644
--- a/app_garradin_fr.md
+++ b/pages/02.applications/02.docs/garradin/app_garradin.fr.md
@@ -1,4 +1,13 @@
-# Garradin
+---
+title: Garradin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_garradin'
+---
+
+
[](https://install-app.yunohost.org/?app=garradin) [](https://dash.yunohost.org/appci/app/garradin)
diff --git a/app_garradin.md b/pages/02.applications/02.docs/garradin/app_garradin.md
similarity index 91%
rename from app_garradin.md
rename to pages/02.applications/02.docs/garradin/app_garradin.md
index ff782081..8d63cf2c 100644
--- a/app_garradin.md
+++ b/pages/02.applications/02.docs/garradin/app_garradin.md
@@ -1,4 +1,13 @@
-# Garradin
+---
+title: Garradin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_garradin'
+---
+
+
[](https://install-app.yunohost.org/?app=garradin) [](https://dash.yunohost.org/appci/app/garradin)
diff --git a/app_gitea_fr.md b/pages/02.applications/02.docs/gitea/app_gitea.fr.md
similarity index 92%
rename from app_gitea_fr.md
rename to pages/02.applications/02.docs/gitea/app_gitea.fr.md
index fe0bb9c0..d4aa293b 100644
--- a/app_gitea_fr.md
+++ b/pages/02.applications/02.docs/gitea/app_gitea.fr.md
@@ -1,4 +1,13 @@
-# Gitea
+---
+title: Gitea
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gitea'
+---
+
+
[](https://install-app.yunohost.org/?app=gitea) [](https://dash.yunohost.org/appci/app/gitea)
diff --git a/app_gitea.md b/pages/02.applications/02.docs/gitea/app_gitea.md
similarity index 91%
rename from app_gitea.md
rename to pages/02.applications/02.docs/gitea/app_gitea.md
index dfcda241..32070fe0 100644
--- a/app_gitea.md
+++ b/pages/02.applications/02.docs/gitea/app_gitea.md
@@ -1,4 +1,13 @@
-# Gitea
+---
+title: Gitea
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gitea'
+---
+
+
[](https://install-app.yunohost.org/?app=gitea) [](https://dash.yunohost.org/appci/app/gitea)
diff --git a/app_gitlab-runner_fr.md b/pages/02.applications/02.docs/gitlab-runner/app_gitlab-runner.fr.md
similarity index 84%
rename from app_gitlab-runner_fr.md
rename to pages/02.applications/02.docs/gitlab-runner/app_gitlab-runner.fr.md
index b4537f11..81c4f7f8 100644
--- a/app_gitlab-runner_fr.md
+++ b/pages/02.applications/02.docs/gitlab-runner/app_gitlab-runner.fr.md
@@ -1,4 +1,13 @@
-# GitLab Runner
+---
+title: Gitlab Runner
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gitlab-runner'
+---
+
+
[](https://install-app.yunohost.org/?app=gitlab-runner) [](https://dash.yunohost.org/appci/app/gitlab-runner)
diff --git a/app_gitlab-runner.md b/pages/02.applications/02.docs/gitlab-runner/app_gitlab-runner.md
similarity index 83%
rename from app_gitlab-runner.md
rename to pages/02.applications/02.docs/gitlab-runner/app_gitlab-runner.md
index 03c40312..21dbf58c 100644
--- a/app_gitlab-runner.md
+++ b/pages/02.applications/02.docs/gitlab-runner/app_gitlab-runner.md
@@ -1,4 +1,13 @@
-# GitLab Runner
+---
+title: Gitlab Runner
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gitlab-runner'
+---
+
+
[](https://install-app.yunohost.org/?app=gitlab-runner) [](https://dash.yunohost.org/appci/app/gitlab-runner)
diff --git a/app_gitlab_fr.md b/pages/02.applications/02.docs/gitlab/app_gitlab.fr.md
similarity index 93%
rename from app_gitlab_fr.md
rename to pages/02.applications/02.docs/gitlab/app_gitlab.fr.md
index b7260eb0..56d6471b 100644
--- a/app_gitlab_fr.md
+++ b/pages/02.applications/02.docs/gitlab/app_gitlab.fr.md
@@ -1,4 +1,13 @@
-# GitLab
+---
+title: Gitlab
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gitlab'
+---
+
+
[](https://install-app.yunohost.org/?app=gitlab) [](https://dash.yunohost.org/appci/app/gitlab)
diff --git a/app_gitlab.md b/pages/02.applications/02.docs/gitlab/app_gitlab.md
similarity index 92%
rename from app_gitlab.md
rename to pages/02.applications/02.docs/gitlab/app_gitlab.md
index 72b783f7..8b5921c8 100644
--- a/app_gitlab.md
+++ b/pages/02.applications/02.docs/gitlab/app_gitlab.md
@@ -1,4 +1,13 @@
-# GitLab
+---
+title: Gitlab
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gitlab'
+---
+
+
[](https://install-app.yunohost.org/?app=gitlab) [](https://dash.yunohost.org/appci/app/gitlab)
diff --git a/app_glowing_bear_fr.md b/pages/02.applications/02.docs/glowing_bear/app_glowing_bear.fr.md
similarity index 89%
rename from app_glowing_bear_fr.md
rename to pages/02.applications/02.docs/glowing_bear/app_glowing_bear.fr.md
index 47b75e10..1849dc64 100644
--- a/app_glowing_bear_fr.md
+++ b/pages/02.applications/02.docs/glowing_bear/app_glowing_bear.fr.md
@@ -1,4 +1,13 @@
-# Glowing Bear
+---
+title: Glowing Bear
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_glowing_bear'
+---
+
+
[](https://install-app.yunohost.org/?app=glowingbear) [](https://dash.yunohost.org/appci/app/glowingbear)
diff --git a/app_glowing_bear.md b/pages/02.applications/02.docs/glowing_bear/app_glowing_bear.md
similarity index 89%
rename from app_glowing_bear.md
rename to pages/02.applications/02.docs/glowing_bear/app_glowing_bear.md
index baa5000d..29e1088d 100644
--- a/app_glowing_bear.md
+++ b/pages/02.applications/02.docs/glowing_bear/app_glowing_bear.md
@@ -1,4 +1,13 @@
-# Glowing Bear
+---
+title: Glowing Bear
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_glowing_bear'
+---
+
+
[](https://install-app.yunohost.org/?app=glowingbear) [](https://dash.yunohost.org/appci/app/glowingbear)
diff --git a/app_gogs_fr.md b/pages/02.applications/02.docs/gogs/app_gogs.fr.md
similarity index 88%
rename from app_gogs_fr.md
rename to pages/02.applications/02.docs/gogs/app_gogs.fr.md
index c6982e1d..134922fa 100644
--- a/app_gogs_fr.md
+++ b/pages/02.applications/02.docs/gogs/app_gogs.fr.md
@@ -1,4 +1,13 @@
-# Gogs
+---
+title: Gogs
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gogs'
+---
+
+
[](https://install-app.yunohost.org/?app=gogs) [](https://dash.yunohost.org/appci/app/gogs)
diff --git a/app_gogs.md b/pages/02.applications/02.docs/gogs/app_gogs.md
similarity index 86%
rename from app_gogs.md
rename to pages/02.applications/02.docs/gogs/app_gogs.md
index d719ae81..5a953063 100644
--- a/app_gogs.md
+++ b/pages/02.applications/02.docs/gogs/app_gogs.md
@@ -1,4 +1,13 @@
-# Gogs
+---
+title: Gogs
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gogs'
+---
+
+
[](https://install-app.yunohost.org/?app=gogs) [](https://dash.yunohost.org/appci/app/gogs)
diff --git a/app_gotify_fr.md b/pages/02.applications/02.docs/gotify/app_gotify.fr.md
similarity index 91%
rename from app_gotify_fr.md
rename to pages/02.applications/02.docs/gotify/app_gotify.fr.md
index 6f9477d6..d6d2506f 100644
--- a/app_gotify_fr.md
+++ b/pages/02.applications/02.docs/gotify/app_gotify.fr.md
@@ -1,4 +1,13 @@
-# Gotify
+---
+title: Gotify
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gotify'
+---
+
+
[](https://install-app.yunohost.org/?app=gotify) [](https://dash.yunohost.org/appci/app/gotify)
diff --git a/app_gotify.md b/pages/02.applications/02.docs/gotify/app_gotify.md
similarity index 90%
rename from app_gotify.md
rename to pages/02.applications/02.docs/gotify/app_gotify.md
index fad28143..5fecc32f 100644
--- a/app_gotify.md
+++ b/pages/02.applications/02.docs/gotify/app_gotify.md
@@ -1,4 +1,13 @@
-# Gotify
+---
+title: Gotify
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_gotify'
+---
+
+
[](https://install-app.yunohost.org/?app=gotify) [](https://dash.yunohost.org/appci/app/gotify)
diff --git a/app_grav_fr.md b/pages/02.applications/02.docs/grav/app_grav.fr.md
similarity index 90%
rename from app_grav_fr.md
rename to pages/02.applications/02.docs/grav/app_grav.fr.md
index d745195f..5bdde736 100644
--- a/app_grav_fr.md
+++ b/pages/02.applications/02.docs/grav/app_grav.fr.md
@@ -1,4 +1,13 @@
-# Grav
+---
+title: Grav
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_grav'
+---
+
+
[](https://install-app.yunohost.org/?app=grav) [](https://dash.yunohost.org/appci/app/grav)
diff --git a/app_grav.md b/pages/02.applications/02.docs/grav/app_grav.md
similarity index 89%
rename from app_grav.md
rename to pages/02.applications/02.docs/grav/app_grav.md
index 950b1331..9617e073 100644
--- a/app_grav.md
+++ b/pages/02.applications/02.docs/grav/app_grav.md
@@ -1,4 +1,13 @@
-# Grav
+---
+title: Grav
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_grav'
+---
+
+
[](https://install-app.yunohost.org/?app=grav) [](https://dash.yunohost.org/appci/app/grav)
diff --git a/app_halcyon_fr.md b/pages/02.applications/02.docs/halcyon/app_halcyon.fr.md
similarity index 88%
rename from app_halcyon_fr.md
rename to pages/02.applications/02.docs/halcyon/app_halcyon.fr.md
index 66b885d2..ce0b74ef 100644
--- a/app_halcyon_fr.md
+++ b/pages/02.applications/02.docs/halcyon/app_halcyon.fr.md
@@ -1,4 +1,13 @@
-# Halcyon
+---
+title: Halcyon
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_halcyon'
+---
+
+
[](https://install-app.yunohost.org/?app=halcyon) [](https://dash.yunohost.org/appci/app/halcyon)
diff --git a/app_halcyon.md b/pages/02.applications/02.docs/halcyon/app_halcyon.md
similarity index 88%
rename from app_halcyon.md
rename to pages/02.applications/02.docs/halcyon/app_halcyon.md
index ca240189..3282e5c7 100644
--- a/app_halcyon.md
+++ b/pages/02.applications/02.docs/halcyon/app_halcyon.md
@@ -1,4 +1,13 @@
-# Halcyon
+---
+title: Halcyon
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_halcyon'
+---
+
+
[](https://install-app.yunohost.org/?app=halcyon) [](https://dash.yunohost.org/appci/app/halcyon)
diff --git a/app_haste_fr.md b/pages/02.applications/02.docs/haste/app_haste.fr.md
similarity index 89%
rename from app_haste_fr.md
rename to pages/02.applications/02.docs/haste/app_haste.fr.md
index 2471ebaa..354a7fc4 100644
--- a/app_haste_fr.md
+++ b/pages/02.applications/02.docs/haste/app_haste.fr.md
@@ -1,4 +1,13 @@
-# Haste
+---
+title: Haste
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_haste'
+---
+
+
[](https://install-app.yunohost.org/?app=haste) [](https://dash.yunohost.org/appci/app/haste)
diff --git a/app_haste.md b/pages/02.applications/02.docs/haste/app_haste.md
similarity index 89%
rename from app_haste.md
rename to pages/02.applications/02.docs/haste/app_haste.md
index 27be8d39..935cc0fc 100644
--- a/app_haste.md
+++ b/pages/02.applications/02.docs/haste/app_haste.md
@@ -1,4 +1,13 @@
-# Haste
+---
+title: Haste
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_haste'
+---
+
+
[](https://install-app.yunohost.org/?app=haste) [](https://dash.yunohost.org/appci/app/haste)
diff --git a/app_hedgedoc_fr.md b/pages/02.applications/02.docs/hedgedoc/app_hedgedoc.fr.md
similarity index 89%
rename from app_hedgedoc_fr.md
rename to pages/02.applications/02.docs/hedgedoc/app_hedgedoc.fr.md
index b41a3f62..f8d47f23 100644
--- a/app_hedgedoc_fr.md
+++ b/pages/02.applications/02.docs/hedgedoc/app_hedgedoc.fr.md
@@ -1,4 +1,13 @@
-# HedgeDoc
+---
+title: HedgeDoc
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_hedgedoc'
+---
+
+
[](https://install-app.yunohost.org/?app=hedgedoc) [](https://dash.yunohost.org/appci/app/hedgedoc)
diff --git a/app_hedgedoc.md b/pages/02.applications/02.docs/hedgedoc/app_hedgedoc.md
similarity index 88%
rename from app_hedgedoc.md
rename to pages/02.applications/02.docs/hedgedoc/app_hedgedoc.md
index a01394ab..c75a4632 100644
--- a/app_hedgedoc.md
+++ b/pages/02.applications/02.docs/hedgedoc/app_hedgedoc.md
@@ -1,4 +1,13 @@
-# HedgeDoc
+---
+title: HedgeDoc
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_hedgedoc'
+---
+
+
[](https://install-app.yunohost.org/?app=hedgedoc) [](https://dash.yunohost.org/appci/app/hedgedoc)
diff --git a/app_hextris_fr.md b/pages/02.applications/02.docs/hextris/app_hextris.fr.md
similarity index 85%
rename from app_hextris_fr.md
rename to pages/02.applications/02.docs/hextris/app_hextris.fr.md
index b584b7a9..6ebe08cf 100644
--- a/app_hextris_fr.md
+++ b/pages/02.applications/02.docs/hextris/app_hextris.fr.md
@@ -1,4 +1,13 @@
-# Hextris
+---
+title: Hextrix
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_hextris'
+---
+
+
[](https://install-app.yunohost.org/?app=hextris) [](https://dash.yunohost.org/appci/app/hextris)
diff --git a/app_hextris.md b/pages/02.applications/02.docs/hextris/app_hextris.md
similarity index 85%
rename from app_hextris.md
rename to pages/02.applications/02.docs/hextris/app_hextris.md
index 3d604c85..84f6d4a4 100644
--- a/app_hextris.md
+++ b/pages/02.applications/02.docs/hextris/app_hextris.md
@@ -1,4 +1,13 @@
-# Hextris
+---
+title: Hextris
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_hextris'
+---
+
+
[](https://install-app.yunohost.org/?app=hextris) [](https://dash.yunohost.org/appci/app/hextris)
diff --git a/app_horde_fr.md b/pages/02.applications/02.docs/horde/app_horde.fr.md
similarity index 88%
rename from app_horde_fr.md
rename to pages/02.applications/02.docs/horde/app_horde.fr.md
index a56c7ee3..d9f596c4 100644
--- a/app_horde_fr.md
+++ b/pages/02.applications/02.docs/horde/app_horde.fr.md
@@ -1,4 +1,13 @@
-# Horde
+---
+title: Horde
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_horde'
+---
+
+
[](https://install-app.yunohost.org/?app=horde) [](https://dash.yunohost.org/appci/app/horde)
diff --git a/app_horde.md b/pages/02.applications/02.docs/horde/app_horde.md
similarity index 87%
rename from app_horde.md
rename to pages/02.applications/02.docs/horde/app_horde.md
index ca12df16..f2e9c3fe 100644
--- a/app_horde.md
+++ b/pages/02.applications/02.docs/horde/app_horde.md
@@ -1,4 +1,13 @@
-# Horde
+---
+title: Horde
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_horde'
+---
+
+
[](https://install-app.yunohost.org/?app=horde) [](https://dash.yunohost.org/appci/app/horde)
diff --git a/app_hubzilla_fr.md b/pages/02.applications/02.docs/hubzilla/app_hubzilla.fr.md
similarity index 89%
rename from app_hubzilla_fr.md
rename to pages/02.applications/02.docs/hubzilla/app_hubzilla.fr.md
index ae163ff0..63b7fa84 100644
--- a/app_hubzilla_fr.md
+++ b/pages/02.applications/02.docs/hubzilla/app_hubzilla.fr.md
@@ -1,4 +1,13 @@
-# Hubzilla
+---
+title: Hubzilla
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_hubzilla'
+---
+
+
[](https://install-app.yunohost.org/?app=hubzilla) [](https://dash.yunohost.org/appci/app/hubzilla)
diff --git a/app_hubzilla.md b/pages/02.applications/02.docs/hubzilla/app_hubzilla.md
similarity index 88%
rename from app_hubzilla.md
rename to pages/02.applications/02.docs/hubzilla/app_hubzilla.md
index f4848580..bf7fdb38 100644
--- a/app_hubzilla.md
+++ b/pages/02.applications/02.docs/hubzilla/app_hubzilla.md
@@ -1,4 +1,13 @@
-# Hubzilla
+---
+title: Hubzilla
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_hubzilla'
+---
+
+
[](https://install-app.yunohost.org/?app=hubzilla) [](https://dash.yunohost.org/appci/app/hubzilla)
diff --git a/app_invoiceninja.md b/pages/02.applications/02.docs/invoiceninga/app_invoiceninja.md
similarity index 85%
rename from app_invoiceninja.md
rename to pages/02.applications/02.docs/invoiceninga/app_invoiceninja.md
index 3d6dee2a..1f52a6cf 100644
--- a/app_invoiceninja.md
+++ b/pages/02.applications/02.docs/invoiceninga/app_invoiceninja.md
@@ -1,4 +1,13 @@
-# Invoice Ninja
+---
+title: Invoice Ninja
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_invoiceninja'
+---
+
+
[](https://install-app.yunohost.org/?app=invoiceninja)
[](https://dash.yunohost.org/appci/app/invoiceninja)
diff --git a/pages/02.applications/02.docs/jappix/app_jappix.fr.md b/pages/02.applications/02.docs/jappix/app_jappix.fr.md
new file mode 100644
index 00000000..06077e7b
--- /dev/null
+++ b/pages/02.applications/02.docs/jappix/app_jappix.fr.md
@@ -0,0 +1,12 @@
+---
+title: Jappix
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_jappix'
+---
+
+
+
+Jappix est un client web [XMPP](/XMPP).
diff --git a/pages/02.applications/02.docs/jappix/app_jappix.md b/pages/02.applications/02.docs/jappix/app_jappix.md
new file mode 100644
index 00000000..58dc2201
--- /dev/null
+++ b/pages/02.applications/02.docs/jappix/app_jappix.md
@@ -0,0 +1,12 @@
+---
+title: Jappix
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_jappix'
+---
+
+
+
+Jappix is a web client for [XMPP](/XMPP).
diff --git a/app_jirafeau_fr.md b/pages/02.applications/02.docs/jirafeau/app_jirafeau.fr.md
similarity index 93%
rename from app_jirafeau_fr.md
rename to pages/02.applications/02.docs/jirafeau/app_jirafeau.fr.md
index ef802ddc..4454aee7 100644
--- a/app_jirafeau_fr.md
+++ b/pages/02.applications/02.docs/jirafeau/app_jirafeau.fr.md
@@ -1,4 +1,13 @@
-# Jirafeau
+---
+title: Jirafeau
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_jirafeau'
+---
+
+
[](https://install-app.yunohost.org/?app=jirafeau) [](https://dash.yunohost.org/appci/app/jirafeau)
diff --git a/app_jirafeau.md b/pages/02.applications/02.docs/jirafeau/app_jirafeau.md
similarity index 93%
rename from app_jirafeau.md
rename to pages/02.applications/02.docs/jirafeau/app_jirafeau.md
index 7e3dfa7e..6969624a 100644
--- a/app_jirafeau.md
+++ b/pages/02.applications/02.docs/jirafeau/app_jirafeau.md
@@ -1,4 +1,13 @@
-# Jirafeau
+---
+title: Jirafeau
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_jirafeau'
+---
+
+
[](https://install-app.yunohost.org/?app=jirafeau) [](https://dash.yunohost.org/appci/app/jirafeau)
diff --git a/app_jitsi_fr.md b/pages/02.applications/02.docs/jitsi/app_jitsi.fr.md
similarity index 93%
rename from app_jitsi_fr.md
rename to pages/02.applications/02.docs/jitsi/app_jitsi.fr.md
index 40188169..fc54e095 100644
--- a/app_jitsi_fr.md
+++ b/pages/02.applications/02.docs/jitsi/app_jitsi.fr.md
@@ -1,4 +1,13 @@
-# Jitsi
+---
+title: Jitsi
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_jitsi'
+---
+
+
[](https://install-app.yunohost.org/?app=jitsi) [](https://dash.yunohost.org/appci/app/jitsi)
diff --git a/app_jitsi.md b/pages/02.applications/02.docs/jitsi/app_jitsi.md
similarity index 93%
rename from app_jitsi.md
rename to pages/02.applications/02.docs/jitsi/app_jitsi.md
index df73c65d..7138c908 100644
--- a/app_jitsi.md
+++ b/pages/02.applications/02.docs/jitsi/app_jitsi.md
@@ -1,4 +1,13 @@
-# Jitsi
+---
+title: Jitsi
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_jitsi'
+---
+
+
[](https://install-app.yunohost.org/?app=jitsi) [](https://dash.yunohost.org/appci/app/jitsi)
diff --git a/app_jupyterlab_fr.md b/pages/02.applications/02.docs/jupyterlab/app_jupyterlab.fr.md
similarity index 86%
rename from app_jupyterlab_fr.md
rename to pages/02.applications/02.docs/jupyterlab/app_jupyterlab.fr.md
index 6795ce0e..3ab1d675 100644
--- a/app_jupyterlab_fr.md
+++ b/pages/02.applications/02.docs/jupyterlab/app_jupyterlab.fr.md
@@ -1,4 +1,13 @@
-# JupyterLab
+---
+title: JupyterLab
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_jupyterlab'
+---
+
+
[](https://install-app.yunohost.org/?app=jupyterlab) [](https://dash.yunohost.org/appci/app/jupyterlab)
diff --git a/app_jupyterlab.md b/pages/02.applications/02.docs/jupyterlab/app_jupyterlab.md
similarity index 86%
rename from app_jupyterlab.md
rename to pages/02.applications/02.docs/jupyterlab/app_jupyterlab.md
index cf7b7cd6..2df0a866 100644
--- a/app_jupyterlab.md
+++ b/pages/02.applications/02.docs/jupyterlab/app_jupyterlab.md
@@ -1,4 +1,13 @@
-# JupyterLab
+---
+title: JupyterLab
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_jupyterlab'
+---
+
+
[](https://install-app.yunohost.org/?app=jupyterlab) [](https://dash.yunohost.org/appci/app/jupyterlab)
diff --git a/app_kanboard_fr.md b/pages/02.applications/02.docs/kanboard/app_kanboard.fr.md
similarity index 90%
rename from app_kanboard_fr.md
rename to pages/02.applications/02.docs/kanboard/app_kanboard.fr.md
index c34a02ba..de56ca41 100644
--- a/app_kanboard_fr.md
+++ b/pages/02.applications/02.docs/kanboard/app_kanboard.fr.md
@@ -1,4 +1,13 @@
-# Kanboard
+---
+title: Kanboard
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_kanboard'
+---
+
+
[](https://install-app.yunohost.org/?app=kanboard) [](https://dash.yunohost.org/appci/app/kanboard)
diff --git a/app_kanboard.md b/pages/02.applications/02.docs/kanboard/app_kanboard.md
similarity index 89%
rename from app_kanboard.md
rename to pages/02.applications/02.docs/kanboard/app_kanboard.md
index c0a2973f..00a2a1ea 100644
--- a/app_kanboard.md
+++ b/pages/02.applications/02.docs/kanboard/app_kanboard.md
@@ -1,4 +1,13 @@
-# Kanboard
+---
+title: Kanboard
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_kanboard'
+---
+
+
[](https://install-app.yunohost.org/?app=kanboard) [](https://dash.yunohost.org/appci/app/kanboard)
diff --git a/app_keeweb_fr.md b/pages/02.applications/02.docs/keeweb/app_keeweb.fr.md
similarity index 88%
rename from app_keeweb_fr.md
rename to pages/02.applications/02.docs/keeweb/app_keeweb.fr.md
index ec78ead3..84da5c7f 100644
--- a/app_keeweb_fr.md
+++ b/pages/02.applications/02.docs/keeweb/app_keeweb.fr.md
@@ -1,4 +1,13 @@
-# KeeWeb
+---
+title: KeeWeb
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_keeweb'
+---
+
+
[](https://install-app.yunohost.org/?app=keeweb) [](https://dash.yunohost.org/appci/app/keeweb)
diff --git a/app_keeweb.md b/pages/02.applications/02.docs/keeweb/app_keeweb.md
similarity index 87%
rename from app_keeweb.md
rename to pages/02.applications/02.docs/keeweb/app_keeweb.md
index f22e39f9..770f9c76 100644
--- a/app_keeweb.md
+++ b/pages/02.applications/02.docs/keeweb/app_keeweb.md
@@ -1,4 +1,13 @@
-# KeeWeb
+---
+title: KeeWeb
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_keeweb'
+---
+
+
[](https://install-app.yunohost.org/?app=keeweb) [](https://dash.yunohost.org/appci/app/keeweb)
diff --git a/app_kresus_fr.md b/pages/02.applications/02.docs/kresus/app_kresus.fr.md
similarity index 91%
rename from app_kresus_fr.md
rename to pages/02.applications/02.docs/kresus/app_kresus.fr.md
index acda511b..a96680e8 100644
--- a/app_kresus_fr.md
+++ b/pages/02.applications/02.docs/kresus/app_kresus.fr.md
@@ -1,4 +1,13 @@
-# Kresus
+---
+title: Kresus
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_kresus'
+---
+
+
[](https://install-app.yunohost.org/?app=kresus) [](https://dash.yunohost.org/appci/app/kresus)
diff --git a/app_kresus.md b/pages/02.applications/02.docs/kresus/app_kresus.md
similarity index 90%
rename from app_kresus.md
rename to pages/02.applications/02.docs/kresus/app_kresus.md
index 432572f9..3039fcfe 100644
--- a/app_kresus.md
+++ b/pages/02.applications/02.docs/kresus/app_kresus.md
@@ -1,4 +1,13 @@
-# Kresus
+---
+title: Kresus
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_kresus'
+---
+
+
[](https://install-app.yunohost.org/?app=kresus) [](https://dash.yunohost.org/appci/app/kresus)
diff --git a/app_leed_fr.md b/pages/02.applications/02.docs/leed/app_leed.fr.md
similarity index 88%
rename from app_leed_fr.md
rename to pages/02.applications/02.docs/leed/app_leed.fr.md
index a29f5ed8..5ac55db2 100644
--- a/app_leed_fr.md
+++ b/pages/02.applications/02.docs/leed/app_leed.fr.md
@@ -1,4 +1,13 @@
-# Leed
+---
+title: Leed
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_leed'
+---
+
+
[](https://install-app.yunohost.org/?app=leed) [](https://dash.yunohost.org/appci/app/leed)
diff --git a/app_leed.md b/pages/02.applications/02.docs/leed/app_leed.md
similarity index 87%
rename from app_leed.md
rename to pages/02.applications/02.docs/leed/app_leed.md
index af344f9b..fa8214e9 100644
--- a/app_leed.md
+++ b/pages/02.applications/02.docs/leed/app_leed.md
@@ -1,4 +1,13 @@
-# Leed
+---
+title: Leed
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_leed'
+---
+
+
[](https://install-app.yunohost.org/?app=leed) [](https://dash.yunohost.org/appci/app/leed)
diff --git a/app_limesurvey_fr.md b/pages/02.applications/02.docs/limesurvey/app_limesurvey.fr.md
similarity index 86%
rename from app_limesurvey_fr.md
rename to pages/02.applications/02.docs/limesurvey/app_limesurvey.fr.md
index c7ab8f49..b07f0cd9 100644
--- a/app_limesurvey_fr.md
+++ b/pages/02.applications/02.docs/limesurvey/app_limesurvey.fr.md
@@ -1,4 +1,13 @@
-# LimeSurvey
+---
+title: LimeSurvey
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_limesurvey'
+---
+
+
[](https://install-app.yunohost.org/?app=limesurvey) [](https://dash.yunohost.org/appci/app/limesurvey)
diff --git a/app_limesurvey.md b/pages/02.applications/02.docs/limesurvey/app_limesurvey.md
similarity index 86%
rename from app_limesurvey.md
rename to pages/02.applications/02.docs/limesurvey/app_limesurvey.md
index 4c4d0659..d23b67cc 100644
--- a/app_limesurvey.md
+++ b/pages/02.applications/02.docs/limesurvey/app_limesurvey.md
@@ -1,4 +1,13 @@
-# LimeSurvey
+---
+title: LimeSurvey
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_limesurvey'
+---
+
+
[](https://install-app.yunohost.org/?app=limesurvey) [](https://dash.yunohost.org/appci/app/limesurvey)
diff --git a/app_lstu_fr.md b/pages/02.applications/02.docs/lstu/app_lstu.fr.md
similarity index 89%
rename from app_lstu_fr.md
rename to pages/02.applications/02.docs/lstu/app_lstu.fr.md
index 249e785d..a717292f 100644
--- a/app_lstu_fr.md
+++ b/pages/02.applications/02.docs/lstu/app_lstu.fr.md
@@ -1,4 +1,13 @@
-# Lstu
+---
+title: Lstu
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_lstu'
+---
+
+
[](https://install-app.yunohost.org/?app=lstu) [](https://dash.yunohost.org/appci/app/lstu)
diff --git a/app_lstu.md b/pages/02.applications/02.docs/lstu/app_lstu.md
similarity index 88%
rename from app_lstu.md
rename to pages/02.applications/02.docs/lstu/app_lstu.md
index 9b3a98ce..c6e84bb4 100644
--- a/app_lstu.md
+++ b/pages/02.applications/02.docs/lstu/app_lstu.md
@@ -1,4 +1,13 @@
-# Lstu
+---
+title: Lstu
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_lstu'
+---
+
+
[](https://install-app.yunohost.org/?app=lstu) [](https://dash.yunohost.org/appci/app/lstu)
diff --git a/app_lufi_fr.md b/pages/02.applications/02.docs/lufi/app_lufi.fr.md
similarity index 89%
rename from app_lufi_fr.md
rename to pages/02.applications/02.docs/lufi/app_lufi.fr.md
index ce9e1700..2aa3bc8f 100644
--- a/app_lufi_fr.md
+++ b/pages/02.applications/02.docs/lufi/app_lufi.fr.md
@@ -1,4 +1,13 @@
-# Lufi
+---
+title: Lufi
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_lufi'
+---
+
+
[](https://install-app.yunohost.org/?app=lufi) [](https://dash.yunohost.org/appci/app/lufi)
diff --git a/app_lufi.md b/pages/02.applications/02.docs/lufi/app_lufi.md
similarity index 87%
rename from app_lufi.md
rename to pages/02.applications/02.docs/lufi/app_lufi.md
index 13d376d4..4e1a4d15 100644
--- a/app_lufi.md
+++ b/pages/02.applications/02.docs/lufi/app_lufi.md
@@ -1,4 +1,13 @@
-# Lufi
+---
+title: Lufi
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_lufi'
+---
+
+
[](https://install-app.yunohost.org/?app=lufi) [](https://dash.yunohost.org/appci/app/lufi)
diff --git a/app_lutim_fr.md b/pages/02.applications/02.docs/lutim/app_lutim.fr.md
similarity index 87%
rename from app_lutim_fr.md
rename to pages/02.applications/02.docs/lutim/app_lutim.fr.md
index 7baa0f2d..88c0f8bf 100644
--- a/app_lutim_fr.md
+++ b/pages/02.applications/02.docs/lutim/app_lutim.fr.md
@@ -1,4 +1,13 @@
-# Lutim
+---
+title: Lutim
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_lutim'
+---
+
+
[](https://install-app.yunohost.org/?app=lutim) [](https://dash.yunohost.org/appci/app/lutim)
diff --git a/app_lutim.md b/pages/02.applications/02.docs/lutim/app_lutim.md
similarity index 87%
rename from app_lutim.md
rename to pages/02.applications/02.docs/lutim/app_lutim.md
index a616e92b..0e762862 100644
--- a/app_lutim.md
+++ b/pages/02.applications/02.docs/lutim/app_lutim.md
@@ -1,4 +1,13 @@
-# Lutim
+---
+title: Lutim
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_lutim'
+---
+
+
[](https://install-app.yunohost.org/?app=lutim) [](https://dash.yunohost.org/appci/app/lutim)
diff --git a/app_lychee_fr.md b/pages/02.applications/02.docs/lychee/app_lychee.fr.md
similarity index 88%
rename from app_lychee_fr.md
rename to pages/02.applications/02.docs/lychee/app_lychee.fr.md
index c98a7c4c..9072ac27 100644
--- a/app_lychee_fr.md
+++ b/pages/02.applications/02.docs/lychee/app_lychee.fr.md
@@ -1,4 +1,13 @@
-# Lychee
+---
+title: Lychee
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_lychee'
+---
+
+
[](https://install-app.yunohost.org/?app=lychee) [](https://dash.yunohost.org/appci/app/lychee)
diff --git a/app_lychee.md b/pages/02.applications/02.docs/lychee/app_lychee.md
similarity index 87%
rename from app_lychee.md
rename to pages/02.applications/02.docs/lychee/app_lychee.md
index c2559647..f71cdf39 100644
--- a/app_lychee.md
+++ b/pages/02.applications/02.docs/lychee/app_lychee.md
@@ -1,4 +1,13 @@
-# Lychee
+---
+title: Lychee
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_lychee'
+---
+
+
[](https://install-app.yunohost.org/?app=lychee) [](https://dash.yunohost.org/appci/app/lychee)
diff --git a/app_mailman_fr.md b/pages/02.applications/02.docs/mailman/app_mailman.fr.md
similarity index 84%
rename from app_mailman_fr.md
rename to pages/02.applications/02.docs/mailman/app_mailman.fr.md
index d799d526..f0d78a52 100644
--- a/app_mailman_fr.md
+++ b/pages/02.applications/02.docs/mailman/app_mailman.fr.md
@@ -1,4 +1,13 @@
-# Mailman
+---
+title: Mailman
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mailman'
+---
+
+
[](https://install-app.yunohost.org/?app=mailman) [](https://dash.yunohost.org/appci/app/mailman)
diff --git a/app_mailman.md b/pages/02.applications/02.docs/mailman/app_mailman.md
similarity index 83%
rename from app_mailman.md
rename to pages/02.applications/02.docs/mailman/app_mailman.md
index 0f106418..05ad19a5 100644
--- a/app_mailman.md
+++ b/pages/02.applications/02.docs/mailman/app_mailman.md
@@ -1,4 +1,13 @@
-# Mailman
+---
+title: Mailman
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mailman'
+---
+
+
[](https://install-app.yunohost.org/?app=mailman) [](https://dash.yunohost.org/appci/app/mailman)
diff --git a/app_mantis_fr.md b/pages/02.applications/02.docs/mantis/app_mantis.fr.md
similarity index 87%
rename from app_mantis_fr.md
rename to pages/02.applications/02.docs/mantis/app_mantis.fr.md
index e9e11931..d11d8927 100644
--- a/app_mantis_fr.md
+++ b/pages/02.applications/02.docs/mantis/app_mantis.fr.md
@@ -1,4 +1,13 @@
-# Mantis
+---
+title: Mantis
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mantis'
+---
+
+
[](https://install-app.yunohost.org/?app=mantis) [](https://dash.yunohost.org/appci/app/mantis)
diff --git a/app_mantis.md b/pages/02.applications/02.docs/mantis/app_mantis.md
similarity index 86%
rename from app_mantis.md
rename to pages/02.applications/02.docs/mantis/app_mantis.md
index 1eb2291e..29989711 100644
--- a/app_mantis.md
+++ b/pages/02.applications/02.docs/mantis/app_mantis.md
@@ -1,4 +1,13 @@
-# Mantis
+---
+title: Mantis
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mantis'
+---
+
+
[](https://install-app.yunohost.org/?app=mantis) [](https://dash.yunohost.org/appci/app/mantis)
diff --git a/app_matomo_fr.md b/pages/02.applications/02.docs/matomo/app_matomo.fr.md
similarity index 87%
rename from app_matomo_fr.md
rename to pages/02.applications/02.docs/matomo/app_matomo.fr.md
index a7bfb1ce..c8944fc8 100644
--- a/app_matomo_fr.md
+++ b/pages/02.applications/02.docs/matomo/app_matomo.fr.md
@@ -1,4 +1,13 @@
-# Matomo
+---
+title: Matomo
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_matomo'
+---
+
+
[](https://install-app.yunohost.org/?app=matomo) [](https://dash.yunohost.org/appci/app/matomo)
diff --git a/app_matomo.md b/pages/02.applications/02.docs/matomo/app_matomo.md
similarity index 87%
rename from app_matomo.md
rename to pages/02.applications/02.docs/matomo/app_matomo.md
index 0347c64c..77ed88b6 100644
--- a/app_matomo.md
+++ b/pages/02.applications/02.docs/matomo/app_matomo.md
@@ -1,4 +1,13 @@
-# Matomo
+---
+title: Matomo
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_matomo'
+---
+
+
[](https://install-app.yunohost.org/?app=matomo) [](https://dash.yunohost.org/appci/app/matomo)
diff --git a/app_mattermost_fr.md b/pages/02.applications/02.docs/mattermost/app_mattermost.fr.md
similarity index 88%
rename from app_mattermost_fr.md
rename to pages/02.applications/02.docs/mattermost/app_mattermost.fr.md
index 305fde86..8d8ec5fd 100644
--- a/app_mattermost_fr.md
+++ b/pages/02.applications/02.docs/mattermost/app_mattermost.fr.md
@@ -1,4 +1,13 @@
-# Mattermost
+---
+title: Mattermost
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mattermost'
+---
+
+
[](https://install-app.yunohost.org/?app=mattermost) [](https://dash.yunohost.org/appci/app/mattermost)
diff --git a/app_mattermost.md b/pages/02.applications/02.docs/mattermost/app_mattermost.md
similarity index 87%
rename from app_mattermost.md
rename to pages/02.applications/02.docs/mattermost/app_mattermost.md
index 6f08cef4..fc44e7bb 100644
--- a/app_mattermost.md
+++ b/pages/02.applications/02.docs/mattermost/app_mattermost.md
@@ -1,4 +1,13 @@
-# Mattermost
+---
+title: Mattermost
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mattermost'
+---
+
+
[](https://install-app.yunohost.org/?app=mattermost) [](https://dash.yunohost.org/appci/app/mattermost)
diff --git a/app_mediawiki_fr.md b/pages/02.applications/02.docs/mediawiki/app_mediawiki.fr.md
similarity index 80%
rename from app_mediawiki_fr.md
rename to pages/02.applications/02.docs/mediawiki/app_mediawiki.fr.md
index aebd7337..134d45fc 100644
--- a/app_mediawiki_fr.md
+++ b/pages/02.applications/02.docs/mediawiki/app_mediawiki.fr.md
@@ -1,4 +1,13 @@
-# MediaWiki
+---
+title: MediaWiki
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mediawiki'
+---
+
+
[](https://install-app.yunohost.org/?app=mediawiki) [](https://dash.yunohost.org/appci/app/mediawiki)
@@ -14,4 +23,4 @@ MediaWiki est un ensemble wiki à base de logiciels libres Open source, dévelop
+ Documentation officielle : https://www.mediawiki.org/wiki
+ Support Desk : https://www.mediawiki.org/wiki/Project:Support_desk
+ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mediawiki](https://github.com/YunoHost-Apps/mediawiki_ynh)
-+ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/mediawiki/issues](https://github.com/YunoHost-Apps/mediawiki_ynh/issues)
\ No newline at end of file
++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/mediawiki/issues](https://github.com/YunoHost-Apps/mediawiki_ynh/issues)
diff --git a/app_mediawiki.md b/pages/02.applications/02.docs/mediawiki/app_mediawiki.md
similarity index 81%
rename from app_mediawiki.md
rename to pages/02.applications/02.docs/mediawiki/app_mediawiki.md
index 71cdb187..d5a8136b 100644
--- a/app_mediawiki.md
+++ b/pages/02.applications/02.docs/mediawiki/app_mediawiki.md
@@ -1,4 +1,13 @@
-# MediaWiki
+---
+title: MediaWiki
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mediawiki'
+---
+
+
[](https://install-app.yunohost.org/?app=mediawiki) [](https://dash.yunohost.org/appci/app/mediawiki)
@@ -14,4 +23,4 @@ MediaWiki is a free and open source software wiki package written in PHP, origin
+ Official documentation: [mediawiki.org/wiki/] https://www.mediawiki.org/wiki/
+ Support Desk: https://www.mediawiki.org/wiki/Project:Support_desk
+ Application software repository: [github.com - YunoHost-Apps/mediawiki](https://github.com/YunoHost-Apps/mattermost_ynh)
-+ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/mediawiki/issues](https://github.com/YunoHost-Apps/mediawiki_ynh/issues)
\ No newline at end of file
++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/mediawiki/issues](https://github.com/YunoHost-Apps/mediawiki_ynh/issues)
diff --git a/app_mindmaps_fr.md b/pages/02.applications/02.docs/mindmaps/app_mindmaps.fr.md
similarity index 90%
rename from app_mindmaps_fr.md
rename to pages/02.applications/02.docs/mindmaps/app_mindmaps.fr.md
index 97ae63ab..0596a976 100644
--- a/app_mindmaps_fr.md
+++ b/pages/02.applications/02.docs/mindmaps/app_mindmaps.fr.md
@@ -1,4 +1,11 @@
-# Mindmaps
+---
+title: Mindmaps
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mindmaps'
+---
[](https://install-app.yunohost.org/?app=mindmaps) [](https://dash.yunohost.org/appci/app/mindmaps)
@@ -16,4 +23,4 @@ Cependant, il n'y a aucune raison de changer quoi que ce soit et cela rend la ba
+ Site web : [www.mindmaps.app](https://www.mindmaps.app/)
+ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mindmaps](https://github.com/YunoHost-Apps/mindmaps_ynh)
-+ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/mindmaps/issues](https://github.com/YunoHost-Apps/mindmaps_ynh/issues)
\ No newline at end of file
++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/mindmaps/issues](https://github.com/YunoHost-Apps/mindmaps_ynh/issues)
diff --git a/app_mindmaps.md b/pages/02.applications/02.docs/mindmaps/app_mindmaps.md
similarity index 92%
rename from app_mindmaps.md
rename to pages/02.applications/02.docs/mindmaps/app_mindmaps.md
index 6be77ca9..bda0b507 100644
--- a/app_mindmaps.md
+++ b/pages/02.applications/02.docs/mindmaps/app_mindmaps.md
@@ -1,4 +1,11 @@
-# Mindmaps
+---
+title: Mindmaps
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mindmaps'
+---
[](https://install-app.yunohost.org/?app=mindmaps) [](https://dash.yunohost.org/appci/app/mindmaps)
diff --git a/app_minetest_fr.md b/pages/02.applications/02.docs/minetest/app_minetest.fr.md
similarity index 88%
rename from app_minetest_fr.md
rename to pages/02.applications/02.docs/minetest/app_minetest.fr.md
index 651b4572..27a1c2fc 100644
--- a/app_minetest_fr.md
+++ b/pages/02.applications/02.docs/minetest/app_minetest.fr.md
@@ -1,4 +1,13 @@
-# Minetest
+---
+title: Minetest
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_minetest'
+---
+
+
[](https://install-app.yunohost.org/?app=minetest) [](https://dash.yunohost.org/appci/app/minetest)
diff --git a/app_minetest.md b/pages/02.applications/02.docs/minetest/app_minetest.md
similarity index 88%
rename from app_minetest.md
rename to pages/02.applications/02.docs/minetest/app_minetest.md
index 5335f897..f2fd500a 100644
--- a/app_minetest.md
+++ b/pages/02.applications/02.docs/minetest/app_minetest.md
@@ -1,4 +1,13 @@
-# Minetest
+---
+title: Minetest
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_minetest'
+---
+
+
[](https://install-app.yunohost.org/?app=minetest) [](https://dash.yunohost.org/appci/app/minetest)
diff --git a/app_minidlna_fr.md b/pages/02.applications/02.docs/minidlna/app_minidlna.fr.md
similarity index 93%
rename from app_minidlna_fr.md
rename to pages/02.applications/02.docs/minidlna/app_minidlna.fr.md
index 55a40d97..a0465bde 100644
--- a/app_minidlna_fr.md
+++ b/pages/02.applications/02.docs/minidlna/app_minidlna.fr.md
@@ -1,4 +1,13 @@
-# MiniDLNA (Ready Media)
+---
+title: MiniDLNA (Ready Media)
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_minidlna'
+---
+
+
[](https://install-app.yunohost.org/?app=minidlna) [](https://dash.yunohost.org/appci/app/minidlna)
diff --git a/app_minidlna.md b/pages/02.applications/02.docs/minidlna/app_minidlna.md
similarity index 92%
rename from app_minidlna.md
rename to pages/02.applications/02.docs/minidlna/app_minidlna.md
index 00e1f55b..c5850be7 100644
--- a/app_minidlna.md
+++ b/pages/02.applications/02.docs/minidlna/app_minidlna.md
@@ -1,4 +1,13 @@
-# MiniDLNA (Ready Meadia)
+---
+title: MiniDLNA (Ready Media)
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_minidlna'
+---
+
+
[](https://install-app.yunohost.org/?app=minidlna) [](https://dash.yunohost.org/appci/app/minidlna)
diff --git a/app_mobilizon_fr.md b/pages/02.applications/02.docs/mobilizon/app_mobilizon.fr.md
similarity index 90%
rename from app_mobilizon_fr.md
rename to pages/02.applications/02.docs/mobilizon/app_mobilizon.fr.md
index 747b0011..2c313219 100644
--- a/app_mobilizon_fr.md
+++ b/pages/02.applications/02.docs/mobilizon/app_mobilizon.fr.md
@@ -1,4 +1,13 @@
-# Mobilizon
+---
+title: Mobilizon
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mobilizon'
+---
+
+
[](https://install-app.yunohost.org/?app=mobilizon) [](https://dash.yunohost.org/appci/app/mobilizon)
diff --git a/app_mobilizon.md b/pages/02.applications/02.docs/mobilizon/app_mobilizon.md
similarity index 87%
rename from app_mobilizon.md
rename to pages/02.applications/02.docs/mobilizon/app_mobilizon.md
index 02299cce..7391971a 100644
--- a/app_mobilizon.md
+++ b/pages/02.applications/02.docs/mobilizon/app_mobilizon.md
@@ -1,4 +1,13 @@
-# Mobilizon
+---
+title: Mobilizon
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mobilizon'
+---
+
+
[](https://install-app.yunohost.org/?app=mobilizon) [](https://dash.yunohost.org/appci/app/mobilizon)
diff --git a/app_moodle_fr.md b/pages/02.applications/02.docs/moodle/app_moodle.fr.md
similarity index 90%
rename from app_moodle_fr.md
rename to pages/02.applications/02.docs/moodle/app_moodle.fr.md
index da768328..b0dd2025 100644
--- a/app_moodle_fr.md
+++ b/pages/02.applications/02.docs/moodle/app_moodle.fr.md
@@ -1,4 +1,13 @@
-# Moodle
+---
+title: Moodle
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_moodle'
+---
+
+
[](https://install-app.yunohost.org/?app=moodle) [](https://dash.yunohost.org/appci/app/moodle)
diff --git a/app_moodle.md b/pages/02.applications/02.docs/moodle/app_moodle.md
similarity index 89%
rename from app_moodle.md
rename to pages/02.applications/02.docs/moodle/app_moodle.md
index 3d730639..f2af924b 100644
--- a/app_moodle.md
+++ b/pages/02.applications/02.docs/moodle/app_moodle.md
@@ -1,4 +1,13 @@
-# Moodle
+---
+title: Moodle
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_moodle'
+---
+
+
[](https://install-app.yunohost.org/?app=moodle) [](https://dash.yunohost.org/appci/app/moodle)
diff --git a/app_mumbleserver_fr.md b/pages/02.applications/02.docs/mumbleserver/app_mumbleserver.fr.md
similarity index 89%
rename from app_mumbleserver_fr.md
rename to pages/02.applications/02.docs/mumbleserver/app_mumbleserver.fr.md
index 313b16e3..6e8b836a 100644
--- a/app_mumbleserver_fr.md
+++ b/pages/02.applications/02.docs/mumbleserver/app_mumbleserver.fr.md
@@ -1,4 +1,13 @@
-# Mumble server
+---
+title: Mumble server
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mumbleserver'
+---
+
+
[](https://install-app.yunohost.org/?app=mumbleserver) [](https://dash.yunohost.org/appci/app/mumbleserver)
diff --git a/app_mumbleserver.md b/pages/02.applications/02.docs/mumbleserver/app_mumbleserver.md
similarity index 88%
rename from app_mumbleserver.md
rename to pages/02.applications/02.docs/mumbleserver/app_mumbleserver.md
index 177bbd60..88b7b165 100644
--- a/app_mumbleserver.md
+++ b/pages/02.applications/02.docs/mumbleserver/app_mumbleserver.md
@@ -1,4 +1,13 @@
-# Mumble server
+---
+title: Mumble server
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_mumbleserver'
+---
+
+
[](https://install-app.yunohost.org/?app=mumbleserver) [](https://dash.yunohost.org/appci/app/mumbleserver)
diff --git a/app_my_webapp_fr.md b/pages/02.applications/02.docs/my_webapp/app_my_webapp.fr.md
similarity index 93%
rename from app_my_webapp_fr.md
rename to pages/02.applications/02.docs/my_webapp/app_my_webapp.fr.md
index b454209e..e2e45c79 100644
--- a/app_my_webapp_fr.md
+++ b/pages/02.applications/02.docs/my_webapp/app_my_webapp.fr.md
@@ -1,4 +1,11 @@
-# Documentation My_webapp
+---
+title: My_webapp
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_my_webapp'
+---
En complément du Readme.md de l'application, voici des astuces utiles.
diff --git a/app_my_webapp.md b/pages/02.applications/02.docs/my_webapp/app_my_webapp.md
similarity index 92%
rename from app_my_webapp.md
rename to pages/02.applications/02.docs/my_webapp/app_my_webapp.md
index 9a626334..c36bb9bc 100644
--- a/app_my_webapp.md
+++ b/pages/02.applications/02.docs/my_webapp/app_my_webapp.md
@@ -1,4 +1,11 @@
-# Documentation My_webapp
+---
+title: My_webapp
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_my_webapp'
+---
In addition to the application's Readme.md, here are some useful tips.
diff --git a/app_navidrome_fr.md b/pages/02.applications/02.docs/navidrome/app_navidrome.fr.md
similarity index 84%
rename from app_navidrome_fr.md
rename to pages/02.applications/02.docs/navidrome/app_navidrome.fr.md
index 94f44197..b5fc1a01 100644
--- a/app_navidrome_fr.md
+++ b/pages/02.applications/02.docs/navidrome/app_navidrome.fr.md
@@ -1,4 +1,13 @@
-# Navidrome
+---
+title: Navidrome
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_navidrome'
+---
+
+
[](https://install-app.yunohost.org/?app=navidrome) [](https://dash.yunohost.org/appci/app/navidrome)
diff --git a/app_navidrome.md b/pages/02.applications/02.docs/navidrome/app_navidrome.md
similarity index 83%
rename from app_navidrome.md
rename to pages/02.applications/02.docs/navidrome/app_navidrome.md
index 06a64c7e..888511b6 100644
--- a/app_navidrome.md
+++ b/pages/02.applications/02.docs/navidrome/app_navidrome.md
@@ -1,4 +1,13 @@
-# Navidrome
+---
+title: Navidrome
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_navidrome'
+---
+
+
[](https://install-app.yunohost.org/?app=navidrome) [](https://dash.yunohost.org/appci/app/navidrome)
diff --git a/app_netdata_fr.md b/pages/02.applications/02.docs/netdata/app_netdata.fr.md
similarity index 99%
rename from app_netdata_fr.md
rename to pages/02.applications/02.docs/netdata/app_netdata.fr.md
index a73c587e..28613697 100644
--- a/app_netdata_fr.md
+++ b/pages/02.applications/02.docs/netdata/app_netdata.fr.md
@@ -1,4 +1,11 @@
-## NetData
+---
+title: NetData
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_netdata'
+---
[NetData](http://my-netdata.io/) est un système distribué de **surveillance des performances et de la santé en temps réel**.
Il fournit un **aperçu inégalé, en temps réel**, de tout ce qui se passe sur lesystème qu'il exécute (y compris les applications telles que les serveurs web et de base de données), en utilisantdes **tableaux de bord modernes et interactifs sur le web**.
diff --git a/app_netdata.md b/pages/02.applications/02.docs/netdata/app_netdata.md
similarity index 95%
rename from app_netdata.md
rename to pages/02.applications/02.docs/netdata/app_netdata.md
index 68427e05..2365cbdf 100644
--- a/app_netdata.md
+++ b/pages/02.applications/02.docs/netdata/app_netdata.md
@@ -1,262 +1,269 @@
-## NetData
-
-[NetData](http://my-netdata.io/) is a system for **distributed real-time performance and health monitoring**.
-It provides **unparalleled insights, in real-time**, of everything happening on the
-system it runs (including applications such as web and database servers), using
-**modern interactive web dashboards**.
-
-_netdata is **fast** and **efficient**, designed to permanently run on all systems
-(**physical** & **virtual** servers, **containers**, **IoT** devices), without
-disrupting their core function._
-
-[](https://install-app.yunohost.org/?app=netdata)
-
-**Customization brought by the package:**
-
-* grant MySQL statistics access via a `netdata` user
-* NGINX root log statistics via putting `netdata` user in the `adm` group
-* Dovecot statistics via giving access to Dovecot stats stocket to `netdata` user (works only with Dovecot 2.2.16+)
-
-**Further recommendations:**
-We don't allow YunoHost packages to make sensible changes to system files. So here are further customizations you can make to allow more monitoring:
-
-* NGINX:
- * requests/connections: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#nginx) to enable `/stab_status` (for example by putting the `location` section in `/etc/nginx/conf.d/yunohost_admin.conf`
- * weblogs: you can monitor all your NGINX weblogs for errors; follow [these recommendations](https://github.com/firehol/netdata/tree/master/python.d#nginx_log)
-* PHP-FPM: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#phpfpm)
-
-## Features
-
-
-
-
-
- - **Stunning interactive bootstrap dashboards**
- mouse and touch friendly, in 2 themes: dark, light
-
- - **Amazingly fast**
- responds to all queries in less than 0.5 ms per metric,
- even on low-end hardware
-
- - **Highly efficient**
- collects thousands of metrics per server per second,
- with just 1% CPU utilization of a single core, a few MB of RAM and no disk I/O at all
-
- - **Sophisticated alarming**
- hundreds of alarms, **out of the box**!
- supports dynamic thresholds, hysteresis, alarm templates,
- multiple role-based notification methods (such as email, slack.com,
- pushover.net, pushbullet.com, telegram.org, twilio.com, messagebird.com)
-
- - **Extensible**
- you can monitor anything you can get a metric for,
- using its Plugin API (anything can be a NetData plugin,
- BASH, Python, Perl, Node.JS, Java, Go, Ruby, etc.)
-
- - **Embeddable**
- it can run anywhere a Linux kernel runs (even IoT)
- and its charts can be embedded on your web pages too
-
- - **Customizable**
- custom dashboards can be built using simple HTML (no JavaScript necessary)
-
- - **Zero configuration**
- auto-detects everything, it can collect up to 5000 metrics
- per server out of the box
-
- - **Zero dependencies**
- it is even its own web server, for its static web files and its web API
-
- - **Zero maintenance**
- you just run it, it does the rest
-
- - **scales to infinity**
- requiring minimal central resources
-
- - **several operating modes**
- autonomous host monitoring, headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations.
- Each node may have different metrics retention policy and run with or without health monitoring.
-
- - **time-series back-ends supported**
- can archive its metrics on `graphite`, `opentsdb`, `prometheus`, JSON document DBs, in the same or lower detail
- (lower: to prevent it from congesting these servers due to the amount of data collected)
-
-
-
----
-
-## What does it monitor?
-
-netdata collects several thousands of metrics per device.
-All these metrics are collected and visualized in real-time.
-
-> _Almost all metrics are auto-detected, without any configuration._
-
-This is a list of what it currently monitors:
-
-- **CPU**
- usage, interrupts, softirqs, frequency, total and per core, CPU states
-
-- **Memory**
- RAM, swap and kernel memory usage, KSM (Kernel Samepage Merging), NUMA
-
-- **Disks**
- per disk: I/O, operations, backlog, utilization, space, software RAID (md)
-
- 
-
-- **Network interfaces**
- per interface: bandwidth, packets, errors, drops
-
- 
-
-- **IPv4 networking**
- bandwidth, packets, errors, fragments,
- TCP: connections, packets, errors, handshake,
- UDP: packets, errors,
- broadcast: bandwidth, packets,
- multicast: bandwidth, packets
-
-- **IPv6 networking**
- bandwidth, packets, errors, fragments, ECT,
- UDP: packets, errors,
- UDP-Lite: packets, errors,
- broadcast: bandwidth,
- multicast: bandwidth, packets,
- ICMP: messages, errors, echos, router, neighbor, MLDv2, group membership,
- break down by type
-
-- **Interprocess Communication - IPC**
- such as semaphores and semaphores arrays
-
-- **netfilter / iptables Linux firewall**
- connections, connection tracker events, errors
-
-- **Linux DDoS protection**
- SYNPROXY metrics
-
-- **fping** latencies
- for any number of hosts, showing latency, packets and packet loss
-
- 
-
-
-- **Processes**
- running, blocked, forks, active
-
-- **Entropy**
- random numbers pool, using in cryptography
-
-- **NFS file servers and clients**
- NFS v2, v3, v4: I/O, cache, read ahead, RPC calls
-
-- **Network QoS**
- the only tool that visualizes network `tc` classes in realtime
-
- 
-
-- **Linux Control Groups**
- containers: systemd, lxc, docker
-
-- **Applications**
- by grouping the process tree and reporting CPU, memory, disk reads,
- disk writes, swap, threads, pipes, sockets - per group
-
- 
-
-- **Users and User Groups resource usage**
- by summarizing the process tree per user and group,
- reporting: CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets
-
-- **Apache and lighttpd web servers**
- `mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers
-
-- **NGINX web servers**
- `stub-status`, for multiple servers
-
-- **Tomcat**
- accesses, threads, free memory, volume
-
-- **web server log files**
- extracting in real-time, web server performance metrics and applying several health checks
-
-- **mySQL databases**
- multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues,
- tmp operations, connections, binlog metrics, threads, innodb metrics, and more
-
-- **Postgres databases**
- multiple servers, each showing: per database statistics (connections, tuples
- read - written - returned, transactions, locks), backend processes, indexes,
- tables, write ahead, background writer and more
-
-- **Redis databases**
- multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves
-
-- **mongodb**
- operations, clients, transactions, cursors, connections, asserts, locks, etc.
-
-- **memcached databases**
- multiple servers, each showing: bandwidth, connections, items
-
-- **elasticsearch**
- search and index performance, latency, timings, cluster statistics, threads statistics, etc.
-
-- **ISC Bind name servers**
- multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics
-
-- **NSD name servers**
- queries, zones, protocols, query types, transfers, etc.
-
-- **Postfix email servers**
- message queue (entries, size)
-
-- **exim email servers**
- message queue (emails queued)
-
-- **Dovecot** POP3/IMAP servers
-
-- **ISC dhcpd**
- pools utilization, leases, etc.
-
-- **IPFS**
- bandwidth, peers
-
-- **Squid proxy servers**
- multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests
-
-- **HAproxy**
- bandwidth, sessions, backends, etc.
-
-- **varnish**
- threads, sessions, hits, objects, backends, etc.
-
-- **OpenVPN**
- status per tunnel
-
-- **Hardware sensors**
- `lm_sensors` and `IPMI`: temperature, voltage, fans, power, humidity
-
-- **NUT and APC UPSes**
- load, charge, battery voltage, temperature, utility metrics, output metrics
-
-- **PHP-FPM**
- multiple instances, each reporting connections, requests, performance
-
-- **hddtemp**
- disk temperatures
-
-- **smartd**
- disk S.M.A.R.T. values
-
-- **SNMP devices**
- can be monitored too (although you will need to configure these)
-
-- **statsd**
- [netdata is a fully featured statsd server](https://github.com/firehol/netdata/wiki/statsd)
-
-And you can extend it, by writing plugins that collect data from any source, using any computer language.
-
-## Links
-
- * Report a bug: https://github.com/YunoHost-Apps/netdata_ynh/issues
- * NetData website: http://my-netdata.io/
\ No newline at end of file
+---
+title: NetData
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_netdata'
+---
+
+[NetData](http://my-netdata.io/) is a system for **distributed real-time performance and health monitoring**.
+It provides **unparalleled insights, in real-time**, of everything happening on the
+system it runs (including applications such as web and database servers), using
+**modern interactive web dashboards**.
+
+_netdata is **fast** and **efficient**, designed to permanently run on all systems
+(**physical** & **virtual** servers, **containers**, **IoT** devices), without
+disrupting their core function._
+
+[](https://install-app.yunohost.org/?app=piwigo)
+
+**Customization brought by the package:**
+
+* grant MySQL statistics access via a `netdata` user
+* NGINX root log statistics via putting `netdata` user in the `adm` group
+* Dovecot statistics via giving access to Dovecot stats stocket to `netdata` user (works only with Dovecot 2.2.16+)
+
+**Further recommendations:**
+We don't allow YunoHost packages to make sensible changes to system files. So here are further customizations you can make to allow more monitoring:
+
+* NGINX:
+ * requests/connections: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#nginx) to enable `/stab_status` (for example by putting the `location` section in `/etc/nginx/conf.d/yunohost_admin.conf`
+ * weblogs: you can monitor all your NGINX weblogs for errors; follow [these recommendations](https://github.com/firehol/netdata/tree/master/python.d#nginx_log)
+* PHP-FPM: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#phpfpm)
+
+## Features
+
+
+
+
+
+ - **Stunning interactive bootstrap dashboards**
+ mouse and touch friendly, in 2 themes: dark, light
+
+ - **Amazingly fast**
+ responds to all queries in less than 0.5 ms per metric,
+ even on low-end hardware
+
+ - **Highly efficient**
+ collects thousands of metrics per server per second,
+ with just 1% CPU utilization of a single core, a few MB of RAM and no disk I/O at all
+
+ - **Sophisticated alarming**
+ hundreds of alarms, **out of the box**!
+ supports dynamic thresholds, hysteresis, alarm templates,
+ multiple role-based notification methods (such as email, slack.com,
+ pushover.net, pushbullet.com, telegram.org, twilio.com, messagebird.com)
+
+ - **Extensible**
+ you can monitor anything you can get a metric for,
+ using its Plugin API (anything can be a NetData plugin,
+ BASH, Python, Perl, Node.JS, Java, Go, Ruby, etc.)
+
+ - **Embeddable**
+ it can run anywhere a Linux kernel runs (even IoT)
+ and its charts can be embedded on your web pages too
+
+ - **Customizable**
+ custom dashboards can be built using simple HTML (no JavaScript necessary)
+
+ - **Zero configuration**
+ auto-detects everything, it can collect up to 5000 metrics
+ per server out of the box
+
+ - **Zero dependencies**
+ it is even its own web server, for its static web files and its web API
+
+ - **Zero maintenance**
+ you just run it, it does the rest
+
+ - **scales to infinity**
+ requiring minimal central resources
+
+ - **several operating modes**
+ autonomous host monitoring, headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations.
+ Each node may have different metrics retention policy and run with or without health monitoring.
+
+ - **time-series back-ends supported**
+ can archive its metrics on `graphite`, `opentsdb`, `prometheus`, JSON document DBs, in the same or lower detail
+ (lower: to prevent it from congesting these servers due to the amount of data collected)
+
+
+
+---
+
+## What does it monitor?
+
+netdata collects several thousands of metrics per device.
+All these metrics are collected and visualized in real-time.
+
+> _Almost all metrics are auto-detected, without any configuration._
+
+This is a list of what it currently monitors:
+
+- **CPU**
+ usage, interrupts, softirqs, frequency, total and per core, CPU states
+
+- **Memory**
+ RAM, swap and kernel memory usage, KSM (Kernel Samepage Merging), NUMA
+
+- **Disks**
+ per disk: I/O, operations, backlog, utilization, space, software RAID (md)
+
+ 
+
+- **Network interfaces**
+ per interface: bandwidth, packets, errors, drops
+
+ 
+
+- **IPv4 networking**
+ bandwidth, packets, errors, fragments,
+ TCP: connections, packets, errors, handshake,
+ UDP: packets, errors,
+ broadcast: bandwidth, packets,
+ multicast: bandwidth, packets
+
+- **IPv6 networking**
+ bandwidth, packets, errors, fragments, ECT,
+ UDP: packets, errors,
+ UDP-Lite: packets, errors,
+ broadcast: bandwidth,
+ multicast: bandwidth, packets,
+ ICMP: messages, errors, echos, router, neighbor, MLDv2, group membership,
+ break down by type
+
+- **Interprocess Communication - IPC**
+ such as semaphores and semaphores arrays
+
+- **netfilter / iptables Linux firewall**
+ connections, connection tracker events, errors
+
+- **Linux DDoS protection**
+ SYNPROXY metrics
+
+- **fping** latencies
+ for any number of hosts, showing latency, packets and packet loss
+
+ 
+
+
+- **Processes**
+ running, blocked, forks, active
+
+- **Entropy**
+ random numbers pool, using in cryptography
+
+- **NFS file servers and clients**
+ NFS v2, v3, v4: I/O, cache, read ahead, RPC calls
+
+- **Network QoS**
+ the only tool that visualizes network `tc` classes in realtime
+
+ 
+
+- **Linux Control Groups**
+ containers: systemd, lxc, docker
+
+- **Applications**
+ by grouping the process tree and reporting CPU, memory, disk reads,
+ disk writes, swap, threads, pipes, sockets - per group
+
+ 
+
+- **Users and User Groups resource usage**
+ by summarizing the process tree per user and group,
+ reporting: CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets
+
+- **Apache and lighttpd web servers**
+ `mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers
+
+- **NGINX web servers**
+ `stub-status`, for multiple servers
+
+- **Tomcat**
+ accesses, threads, free memory, volume
+
+- **web server log files**
+ extracting in real-time, web server performance metrics and applying several health checks
+
+- **mySQL databases**
+ multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues,
+ tmp operations, connections, binlog metrics, threads, innodb metrics, and more
+
+- **Postgres databases**
+ multiple servers, each showing: per database statistics (connections, tuples
+ read - written - returned, transactions, locks), backend processes, indexes,
+ tables, write ahead, background writer and more
+
+- **Redis databases**
+ multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves
+
+- **mongodb**
+ operations, clients, transactions, cursors, connections, asserts, locks, etc.
+
+- **memcached databases**
+ multiple servers, each showing: bandwidth, connections, items
+
+- **elasticsearch**
+ search and index performance, latency, timings, cluster statistics, threads statistics, etc.
+
+- **ISC Bind name servers**
+ multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics
+
+- **NSD name servers**
+ queries, zones, protocols, query types, transfers, etc.
+
+- **Postfix email servers**
+ message queue (entries, size)
+
+- **exim email servers**
+ message queue (emails queued)
+
+- **Dovecot** POP3/IMAP servers
+
+- **ISC dhcpd**
+ pools utilization, leases, etc.
+
+- **IPFS**
+ bandwidth, peers
+
+- **Squid proxy servers**
+ multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests
+
+- **HAproxy**
+ bandwidth, sessions, backends, etc.
+
+- **varnish**
+ threads, sessions, hits, objects, backends, etc.
+
+- **OpenVPN**
+ status per tunnel
+
+- **Hardware sensors**
+ `lm_sensors` and `IPMI`: temperature, voltage, fans, power, humidity
+
+- **NUT and APC UPSes**
+ load, charge, battery voltage, temperature, utility metrics, output metrics
+
+- **PHP-FPM**
+ multiple instances, each reporting connections, requests, performance
+
+- **hddtemp**
+ disk temperatures
+
+- **smartd**
+ disk S.M.A.R.T. values
+
+- **SNMP devices**
+ can be monitored too (although you will need to configure these)
+
+- **statsd**
+ [netdata is a fully featured statsd server](https://github.com/firehol/netdata/wiki/statsd)
+
+And you can extend it, by writing plugins that collect data from any source, using any computer language.
+
+## Links
+
+ * Report a bug: https://github.com/YunoHost-Apps/netdata_ynh/issues
+ * NetData website: http://my-netdata.io/
diff --git a/app_nextcloud_fr.md b/pages/02.applications/02.docs/nextcloud/app_nextcloud.fr.md
similarity index 83%
rename from app_nextcloud_fr.md
rename to pages/02.applications/02.docs/nextcloud/app_nextcloud.fr.md
index 7c32edd0..9dfe5f6a 100644
--- a/app_nextcloud_fr.md
+++ b/pages/02.applications/02.docs/nextcloud/app_nextcloud.fr.md
@@ -1,4 +1,13 @@
-# Nextcloud
+---
+title: Nextcloud
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_nextcloud'
+---
+
+
- [Découverte de l'environnement de Nextcloud](#EnvironnementNextcloud)
- [Logiciels Clients pour mobile et ordinateur](#LogicielsClients)
@@ -156,12 +165,44 @@ Les options à désactiver (Off) sont :
Sauvegarder et nettoyer vos caches (Cloudflare, navigateur...) et le tour est joué.
-## Applications Tiers
+## À propos de Keeweb
- + [Calendrier](/app_nextcloud_calendar)
- + [Contact](/app_nextcloud_contact)
- + [KeeWeb](/app_nextcloud_keeweb)
- + [Carnet](/app_nextcloud_carnet)
+L'application Keeweb sur le catalogue de nextcloud - [apps.nextcloud.com/keeweb](https://apps.nextcloud.com/apps/keeweb)
+
+L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud.
+
+Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela,
+[une solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) existe.
+
+Se rendre dans le répertoire de configuration de Nextcloud :
+
+```bash
+cd /var/www/nextcloud/config/
+```
+
+S'il n'existe pas, créer le fichier *mimetypemapping.json* dont le propriétaire est l'utilisateur *nextcloud* :
+
+```bash
+sudo su nextcloud -c "nano mimetypemapping.json"
+```
+
+Puis ajouter dans ce fichier le texte suivent :
+
+```bash
+{
+ "kdbx": ["x-application/kdbx"]
+}
+```
+
+Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
+
+Ensuite lancer un scan en tant que root :
+
+```bash
+sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all
+```
+
+À présent, le problème est corrigé.
## Quelques liens utiles
diff --git a/app_nextcloud.md b/pages/02.applications/02.docs/nextcloud/app_nextcloud.md
similarity index 84%
rename from app_nextcloud.md
rename to pages/02.applications/02.docs/nextcloud/app_nextcloud.md
index ab6729dc..ed92f8cb 100644
--- a/app_nextcloud.md
+++ b/pages/02.applications/02.docs/nextcloud/app_nextcloud.md
@@ -1,4 +1,13 @@
-# Nextcloud
+---
+title: Nextcloud
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_nextcloud'
+---
+
+
- [Discovering the Nextcloud environment](#EnvironmentNextcloud)
- [Mobile and computer client software](#ClientSoftware)
@@ -156,12 +165,41 @@ The options to disable (Off) are:
Save and clean your caches (Cloudflare, browser...) and that's it.
-## Third Party Applications
+## About Keeweb
- - [Calendrier](app_nextcloud_calendar)
- - [Contact](app_nextcloud_contact)
- - [KeeWeb](app_nextcloud_keeweb)
- - [Carnet](app_nextcloud_carnet)
+The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance.
+But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this,
+[a solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) exists.
+
+Go to the Nextcloud configuration directory:
+
+```bash
+cd /var/www/nextcloud/config/
+```
+
+If it does not exist, create the *mimetypemapping.json* file whose owner is the user *nextcloud* :
+
+```bash
+sudo su nextcloud -c "nano mimetypemapping.json"
+```
+
+Then add in this file the following text:
+
+```bash
+{
+ "kdbx": ["x-application/kdbx"]
+}
+```
+
+Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
+
+Then run a scan by executing next command as root:
+
+```bash
+sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all
+```
+
+Now the problem is fixed.
## Useful links
diff --git a/app_nextcloud_keeweb_fr.md b/pages/02.applications/02.docs/nextcloud_keeweb/app_nextcloud_keeweb.fr.md
similarity index 90%
rename from app_nextcloud_keeweb_fr.md
rename to pages/02.applications/02.docs/nextcloud_keeweb/app_nextcloud_keeweb.fr.md
index 42e4867a..68aa53bf 100644
--- a/app_nextcloud_keeweb_fr.md
+++ b/pages/02.applications/02.docs/nextcloud_keeweb/app_nextcloud_keeweb.fr.md
@@ -1,4 +1,11 @@
-# L'application KeeWeb pour NextCloud
+---
+title: KeeWeb pour Nextcloud
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_nextcloud_keeweb'
+---
L'application Keeweb sur le catalogue de nextcloud - [apps.nextcloud.com/keeweb](https://apps.nextcloud.com/apps/keeweb)
diff --git a/app_nextcloud_keeweb.md b/pages/02.applications/02.docs/nextcloud_keeweb/app_nextcloud_keeweb.md
similarity index 88%
rename from app_nextcloud_keeweb.md
rename to pages/02.applications/02.docs/nextcloud_keeweb/app_nextcloud_keeweb.md
index a6039426..5d50ce28 100644
--- a/app_nextcloud_keeweb.md
+++ b/pages/02.applications/02.docs/nextcloud_keeweb/app_nextcloud_keeweb.md
@@ -1,4 +1,11 @@
-# The KeeWeb application for NextCloud
+---
+title: KeeWeb for Nextcloud
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_nextcloud_keeweb'
+---
The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance.
But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this,
diff --git a/app_noalyss_fr.md b/pages/02.applications/02.docs/noalyss/app_noalyss.fr.md
similarity index 82%
rename from app_noalyss_fr.md
rename to pages/02.applications/02.docs/noalyss/app_noalyss.fr.md
index 67246fa3..28ded15c 100644
--- a/app_noalyss_fr.md
+++ b/pages/02.applications/02.docs/noalyss/app_noalyss.fr.md
@@ -1,4 +1,11 @@
-# Noalyss
+---
+title: Noalyss
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_noalyss'
+---
Logiciel de comptabilité open source développé en PHP.
@@ -10,4 +17,4 @@ Le github du module YunoHost est [ici](https://github.com/YunoHost-Apps/noalyss_
Vous pouvez essayer le projet [ici](http://demo.noalyss.eu/index.php) avec les identifiants : demo /demo
-Enfin pour ne pas galérer comme moi. Les identifiants et mot de passe administrateur lors de la première connexion sont : phpcompta / phpcompta
\ No newline at end of file
+Enfin pour ne pas galérer comme moi. Les identifiants et mot de passe administrateur lors de la première connexion sont : phpcompta / phpcompta
diff --git a/app_noalyss.md b/pages/02.applications/02.docs/noalyss/app_noalyss.md
similarity index 76%
rename from app_noalyss.md
rename to pages/02.applications/02.docs/noalyss/app_noalyss.md
index 7fb61ad6..8ae0d519 100644
--- a/app_noalyss.md
+++ b/pages/02.applications/02.docs/noalyss/app_noalyss.md
@@ -1,4 +1,11 @@
-# Noalyss
+---
+title: Noalyss
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_noalyss'
+---
Open source accounting software developed in PHP.
@@ -10,4 +17,4 @@ The github of the YunoHost module is [here](https://github.com/YunoHost-Apps/noa
You can try the project [here](http://demo.noalyss.eu/index.php) with the identifiers: demo /demo
-I mean, not to have to struggle like me. The administrator IDs and passwords for the first login are: phpcompta / phpcompta
\ No newline at end of file
+I mean, not to have to struggle like me. The administrator IDs and passwords for the first login are: phpcompta / phpcompta
diff --git a/app_onlyoffice_fr.md b/pages/02.applications/02.docs/onlyoffice/app_onlyoffice.fr.md
similarity index 91%
rename from app_onlyoffice_fr.md
rename to pages/02.applications/02.docs/onlyoffice/app_onlyoffice.fr.md
index ddaee9d5..3699f453 100644
--- a/app_onlyoffice_fr.md
+++ b/pages/02.applications/02.docs/onlyoffice/app_onlyoffice.fr.md
@@ -1,4 +1,13 @@
-# OnlyOffice Server
+---
+title: OnlyOffice Server
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_onlyoffice'
+---
+
+
[](https://install-app.yunohost.org/?app=onlyoffice) [](https://dash.yunohost.org/appci/app/onlyoffice)
diff --git a/app_onlyoffice.md b/pages/02.applications/02.docs/onlyoffice/app_onlyoffice.md
similarity index 91%
rename from app_onlyoffice.md
rename to pages/02.applications/02.docs/onlyoffice/app_onlyoffice.md
index bba13c1c..c0f907cc 100644
--- a/app_onlyoffice.md
+++ b/pages/02.applications/02.docs/onlyoffice/app_onlyoffice.md
@@ -1,4 +1,13 @@
-# OnlyOffice Server
+---
+title: OnlyOffice Server
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_onlyoffice'
+---
+
+
[](https://install-app.yunohost.org/?app=onlyoffice) [](https://dash.yunohost.org/appci/app/onlyoffice)
diff --git a/app_opensondage_fr.md b/pages/02.applications/02.docs/opensondage/app_opensondage.fr.md
similarity index 87%
rename from app_opensondage_fr.md
rename to pages/02.applications/02.docs/opensondage/app_opensondage.fr.md
index d90a428d..0869c92a 100644
--- a/app_opensondage_fr.md
+++ b/pages/02.applications/02.docs/opensondage/app_opensondage.fr.md
@@ -1,4 +1,13 @@
-# Opensondage
+---
+title: Opensondage
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_opensondage'
+---
+
+
[](https://install-app.yunohost.org/?app=opensondage) [](https://dash.yunohost.org/appci/app/opensondage)
diff --git a/app_opensondage.md b/pages/02.applications/02.docs/opensondage/app_opensondage.md
similarity index 87%
rename from app_opensondage.md
rename to pages/02.applications/02.docs/opensondage/app_opensondage.md
index 7255f74d..e3557f80 100644
--- a/app_opensondage.md
+++ b/pages/02.applications/02.docs/opensondage/app_opensondage.md
@@ -1,4 +1,13 @@
-# Opensondage
+---
+title: Opensondage
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_opensondage'
+---
+
+
[](https://install-app.yunohost.org/?app=opensondage) [](https://dash.yunohost.org/appci/app/opensondage)
diff --git a/app_osticket_fr.md b/pages/02.applications/02.docs/osticket/app_osticket.fr.md
similarity index 90%
rename from app_osticket_fr.md
rename to pages/02.applications/02.docs/osticket/app_osticket.fr.md
index 4eed3ab4..95ea9a4f 100644
--- a/app_osticket_fr.md
+++ b/pages/02.applications/02.docs/osticket/app_osticket.fr.md
@@ -1,4 +1,13 @@
-# osTicket
+---
+title: osTicket
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_osticket'
+---
+
+
[](https://install-app.yunohost.org/?app=osticket) [](https://dash.yunohost.org/appci/app/osticket)
diff --git a/app_osticket.md b/pages/02.applications/02.docs/osticket/app_osticket.md
similarity index 89%
rename from app_osticket.md
rename to pages/02.applications/02.docs/osticket/app_osticket.md
index 4728addc..88863f67 100644
--- a/app_osticket.md
+++ b/pages/02.applications/02.docs/osticket/app_osticket.md
@@ -1,4 +1,13 @@
-# OsTicket
+---
+title: osTicket
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_osticket'
+---
+
+
[](https://install-app.yunohost.org/?app=osticket) [](https://dash.yunohost.org/appci/app/osticket)
diff --git a/app_peertube_fr.md b/pages/02.applications/02.docs/peertube/app_peertube.fr.md
similarity index 88%
rename from app_peertube_fr.md
rename to pages/02.applications/02.docs/peertube/app_peertube.fr.md
index 234c92d9..fcf7ca6b 100644
--- a/app_peertube_fr.md
+++ b/pages/02.applications/02.docs/peertube/app_peertube.fr.md
@@ -1,4 +1,13 @@
-# PeerTube
+---
+title: PeerTube
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_peertube'
+---
+
+
[](https://install-app.yunohost.org/?app=peertube) [](https://dash.yunohost.org/appci/app/peertube)
diff --git a/app_peertube.md b/pages/02.applications/02.docs/peertube/app_peertube.md
similarity index 87%
rename from app_peertube.md
rename to pages/02.applications/02.docs/peertube/app_peertube.md
index ddbd96c3..7c32126e 100644
--- a/app_peertube.md
+++ b/pages/02.applications/02.docs/peertube/app_peertube.md
@@ -1,4 +1,13 @@
-# PeerTube
+---
+title: PeerTube
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_peertube'
+---
+
+
[](https://install-app.yunohost.org/?app=peertube) [](https://dash.yunohost.org/appci/app/peertube)
diff --git a/app_phpmyadmin_fr.md b/pages/02.applications/02.docs/phpmyadmin/app_phpmyadmin.fr.md
similarity index 87%
rename from app_phpmyadmin_fr.md
rename to pages/02.applications/02.docs/phpmyadmin/app_phpmyadmin.fr.md
index e3705a31..52301afb 100644
--- a/app_phpmyadmin_fr.md
+++ b/pages/02.applications/02.docs/phpmyadmin/app_phpmyadmin.fr.md
@@ -1,4 +1,13 @@
-# phpMyAdmin
+---
+title: phpMyAdmin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_phpmyadmin'
+---
+
+
[](https://install-app.yunohost.org/?app=phpmyadmin) [](https://dash.yunohost.org/appci/app/phpmyadmin)
diff --git a/app_phpmyadmin.md b/pages/02.applications/02.docs/phpmyadmin/app_phpmyadmin.md
similarity index 87%
rename from app_phpmyadmin.md
rename to pages/02.applications/02.docs/phpmyadmin/app_phpmyadmin.md
index 8ef95e1c..fff12f83 100644
--- a/app_phpmyadmin.md
+++ b/pages/02.applications/02.docs/phpmyadmin/app_phpmyadmin.md
@@ -1,4 +1,13 @@
-# phpMyAdmin
+---
+title: phpMyAdmin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_phpmyadmin'
+---
+
+
[](https://install-app.yunohost.org/?app=phpmyadmin) [](https://dash.yunohost.org/appci/app/phpmyadmin)
diff --git a/app_phpsysinfo_fr.md b/pages/02.applications/02.docs/phpsysinfo/app_phpsysinfo.fr.md
similarity index 83%
rename from app_phpsysinfo_fr.md
rename to pages/02.applications/02.docs/phpsysinfo/app_phpsysinfo.fr.md
index 6a23110e..92aa48c3 100644
--- a/app_phpsysinfo_fr.md
+++ b/pages/02.applications/02.docs/phpsysinfo/app_phpsysinfo.fr.md
@@ -1,4 +1,13 @@
-# phpSysInfo
+---
+title: phpSysInfo
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_phpsysinfo'
+---
+
+
[](https://install-app.yunohost.org/?app=phpsysinfo) [](https://dash.yunohost.org/appci/app/phpsysinfo)
diff --git a/app_phpsysinfo.md b/pages/02.applications/02.docs/phpsysinfo/app_phpsysinfo.md
similarity index 83%
rename from app_phpsysinfo.md
rename to pages/02.applications/02.docs/phpsysinfo/app_phpsysinfo.md
index d30af4e3..bce139c9 100644
--- a/app_phpsysinfo.md
+++ b/pages/02.applications/02.docs/phpsysinfo/app_phpsysinfo.md
@@ -1,4 +1,13 @@
-# phpSysInfo
+---
+title: phpSysInfo
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_phpsysinfo'
+---
+
+
[](https://install-app.yunohost.org/?app=phpsysinfo) [](https://dash.yunohost.org/appci/app/phpsysinfo)
diff --git a/app_pihole_fr.md b/pages/02.applications/02.docs/pihole/app_pihole.fr.md
similarity index 96%
rename from app_pihole_fr.md
rename to pages/02.applications/02.docs/pihole/app_pihole.fr.md
index ceae0a34..d7150f78 100644
--- a/app_pihole_fr.md
+++ b/pages/02.applications/02.docs/pihole/app_pihole.fr.md
@@ -1,4 +1,13 @@
-# Pi-hole
+---
+title: Pi-hole
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_pihole'
+---
+
+
[](https://install-app.yunohost.org/?app=pihole)[](https://dash.yunohost.org/appci/app/pihole)
@@ -70,4 +79,4 @@ sudo ifconfig eth0 0.0.0.0 && sudo dhclient eth0
+ Documentation officielle : [docs.pi-hole.net (en)](https://docs.pi-hole.net/)
+ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/pihole](https://github.com/YunoHost-Apps/pihole_ynh)
+ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/pihole/issues](https://github.com/YunoHost-Apps/pihole_ynh/issues)
-
\ No newline at end of file
+
diff --git a/app_pihole.md b/pages/02.applications/02.docs/pihole/app_pihole.md
similarity index 95%
rename from app_pihole.md
rename to pages/02.applications/02.docs/pihole/app_pihole.md
index 1b334491..6138b73a 100644
--- a/app_pihole.md
+++ b/pages/02.applications/02.docs/pihole/app_pihole.md
@@ -1,4 +1,13 @@
-# Pi-hole
+---
+title: Pi-hole
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_pihole'
+---
+
+
[](https://install-app.yunohost.org/?app=pihole) [](https://dash.yunohost.org/appci/app/pihole)
diff --git a/app_piwigo_fr.md b/pages/02.applications/02.docs/piwigo/app_piwigo.fr.md
similarity index 90%
rename from app_piwigo_fr.md
rename to pages/02.applications/02.docs/piwigo/app_piwigo.fr.md
index 37e7104d..25e5d931 100644
--- a/app_piwigo_fr.md
+++ b/pages/02.applications/02.docs/piwigo/app_piwigo.fr.md
@@ -1,4 +1,13 @@
-# Piwigo
+---
+title: Piwigo
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_piwigo'
+---
+
+
[](https://install-app.yunohost.org/?app=piwigo) [](https://dash.yunohost.org/appci/app/piwigo)
diff --git a/app_piwigo.md b/pages/02.applications/02.docs/piwigo/app_piwigo.md
similarity index 87%
rename from app_piwigo.md
rename to pages/02.applications/02.docs/piwigo/app_piwigo.md
index 817d7375..6e2f01bf 100644
--- a/app_piwigo.md
+++ b/pages/02.applications/02.docs/piwigo/app_piwigo.md
@@ -1,29 +1,38 @@
-# Piwigo
-
-[](https://install-app.yunohost.org/?app=piwigo) [](https://dash.yunohost.org/appci/app/piwigo)
-
-### Index
-
-- [Useful links](#useful-links)
-
-[Piwigo](http://piwigo.org) is a photo gallery software for the Web, built by an active community of users and developers.
-Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and opensource.
-
-
-
-## Features
-
-In addition to Piwigo [core features](http://piwigo.org/basics/features), the following are made available with
-this package:
-
- * Integrate with YunoHost users and SSO:
- * private mode: limit access to YunoHost users
- * public mode:
- * SSO for YunoHost users
- * allow other users management, and guest mode
- * Allow one YunoHost user to be the administrator (set at the installation)
-
-## Links
-
- * Report a bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues
- * Piwigo website: http://piwigo.org/
+---
+title: Piwigo
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_piwigo'
+---
+
+
+
+[](https://install-app.yunohost.org/?app=piwigo) [](https://dash.yunohost.org/appci/app/piwigo)
+
+### Index
+
+- [Useful links](#useful-links)
+
+[Piwigo](http://piwigo.org) is a photo gallery software for the Web, built by an active community of users and developers.
+Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and opensource.
+
+
+
+## Features
+
+In addition to Piwigo [core features](http://piwigo.org/basics/features), the following are made available with
+this package:
+
+ * Integrate with YunoHost users and SSO:
+ * private mode: limit access to YunoHost users
+ * public mode:
+ * SSO for YunoHost users
+ * allow other users management, and guest mode
+ * Allow one YunoHost user to be the administrator (set at the installation)
+
+## Links
+
+ * Report a bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues
+ * Piwigo website: http://piwigo.org/
diff --git a/app_pleroma_fr.md b/pages/02.applications/02.docs/pleroma/app_pleroma.fr.md
similarity index 63%
rename from app_pleroma_fr.md
rename to pages/02.applications/02.docs/pleroma/app_pleroma.fr.md
index 44a4cdb1..2b09e298 100644
--- a/app_pleroma_fr.md
+++ b/pages/02.applications/02.docs/pleroma/app_pleroma.fr.md
@@ -1,4 +1,13 @@
-# Pleroma
+---
+title: Pleroma
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_pleroma'
+---
+
+
- [Découverte de l'interface de Pleroma](#d%C3%A9couverte-de-linterface-de-pleroma)
- [Logiciels Clients pour mobile et ordinateur](#applications-clients)
@@ -12,18 +21,18 @@ Pour celles et ceux qui n'ont pas ou peu l'habitude des réseaux sociaux, voici
### Accueil de l'interface
-
+
1. Barre de menu
- + Le bouton à gauche portant le nom de l'instance - dans la capture ci-dessus *Meta - Pleroma* - renvoie vers la page d'accueil de l'instance. Dans le cas où vous êtes connecté⋅e cela vous renverra vers la visualisation de votre *journal*, si ce n'est pas le cas vers *Le réseau connu*.
- + Si vous êtes connecté⋅e vous aurez trois boutons, si vous ne l'êtes pas il n'y en aura que deux. Dans l'ordre, de gauche à droite :
- + Permet d'ajouter de nouveaux utilisateurs et nouvelles utilisatrices afin de les suivre et ainsi vous abonner à leurs publications. Il est possible de rechercher un·e utilisateur·trice avec seulement son pseudonyme (par exemple : *yunohost*) ou alors sous la forme @pseudonyme@instance.domaine (par exemple : *@yunohost@mastodon.social*)
- + Permet d'accéder aux paramétres d'affichages de votre session.
+ +  Le bouton à gauche portant le nom de l'instance - dans la capture ci-dessus *Meta - Pleroma* - renvoie vers la page d'accueil de l'instance. Dans le cas où vous êtes connecté⋅e cela vous renverra vers la visualisation de votre *journal*, si ce n'est pas le cas vers *Le réseau connu*.
+ +  Si vous êtes connecté⋅e vous aurez trois boutons, si vous ne l'êtes pas il n'y en aura que deux. Dans l'ordre, de gauche à droite :
+ +  Permet d'ajouter de nouveaux utilisateurs et nouvelles utilisatrices afin de les suivre et ainsi vous abonner à leurs publications. Il est possible de rechercher un·e utilisateur·trice avec seulement son pseudonyme (par exemple : *yunohost*) ou alors sous la forme @pseudonyme@instance.domaine (par exemple : *@yunohost@mastodon.social*)
+ +  Permet d'accéder aux paramétres d'affichages de votre session.
/!\ Si vous n'êtes pas connecté·e les modifications effectuées ne seront valables qu'un temps (jusqu'à ce que les cookies de fonctionnement soient effacés).
- + Permet de se déconnecter de l'instance. Si vous n'êtes pas sur votre ordinateur personnel pensez-y !
+ +  Permet de se déconnecter de l'instance. Si vous n'êtes pas sur votre ordinateur personnel pensez-y !
2. Espace de Publications / Fenêtre de connexion
- Si vous êtes connecté·e cet espace vous permet de publier vos messages et d'y joindre un média (images, GIF, vidéos, etc). Vous êtes limité⋅e dans le nombre de caractères, avec Pleroma la limitation est définie par l'administrateur·trice de l'instance. Si vous avez des questions envoyez lui un message.
+ Si vous êtes connecté·e cet espace vous permet de publier vos messages et d'y joindre un média (images, GIF, vidéos, etc). Vous êtes limité⋅e dans le nombre de caractères, avec Pleroma la limitation est définie par l'administrateur·trice de l'instance. Si vous avez des questions envoyez lui un message.
3. Fenêtre de visualisations
C'est ici le centre ~~du monde~~ de Pleroma, vous pourrez y voir les différentes publications de vos contacts ou qui circulent sur l'instance ainsi que les re-toots et qui a publié.
diff --git a/pages/02.applications/02.docs/pleroma/app_pleroma.md b/pages/02.applications/02.docs/pleroma/app_pleroma.md
new file mode 100644
index 00000000..5885a7b2
--- /dev/null
+++ b/pages/02.applications/02.docs/pleroma/app_pleroma.md
@@ -0,0 +1,10 @@
+---
+title: Pleroma
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_pleroma'
+---
+
+Unfortunately, this page only exists in french for now.
diff --git a/app_plume_fr.md b/pages/02.applications/02.docs/plume/app_plume.fr.md
similarity index 88%
rename from app_plume_fr.md
rename to pages/02.applications/02.docs/plume/app_plume.fr.md
index d343cc97..01671ae0 100644
--- a/app_plume_fr.md
+++ b/pages/02.applications/02.docs/plume/app_plume.fr.md
@@ -1,4 +1,13 @@
-# Plume
+---
+title: Plume
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_plume'
+---
+
+
[](https://install-app.yunohost.org/?app=plume) [](https://dash.yunohost.org/appci/app/plume)
diff --git a/app_plume.md b/pages/02.applications/02.docs/plume/app_plume.md
similarity index 87%
rename from app_plume.md
rename to pages/02.applications/02.docs/plume/app_plume.md
index 9e6f5db0..7dd1aa11 100644
--- a/app_plume.md
+++ b/pages/02.applications/02.docs/plume/app_plume.md
@@ -1,4 +1,13 @@
-# Plume
+---
+title: Plume
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_plume'
+---
+
+
[](https://install-app.yunohost.org/?app=plume) [](https://dash.yunohost.org/appci/app/plume)
diff --git a/app_pluxml_fr.md b/pages/02.applications/02.docs/pluxml/app_pluxml.fr.md
similarity index 72%
rename from app_pluxml_fr.md
rename to pages/02.applications/02.docs/pluxml/app_pluxml.fr.md
index 4cd94e10..569d0e48 100644
--- a/app_pluxml_fr.md
+++ b/pages/02.applications/02.docs/pluxml/app_pluxml.fr.md
@@ -1,12 +1,19 @@
-# PluXml
+---
+title: PluXml
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_pluxml'
+---
-
+
PluXml est un moteur de blog/CMS stockant ces données en XML et ne nécessitant pas de base de données SQL.
## Aperçu
-
+
## Plugins et thèmes
@@ -20,4 +27,4 @@ Pour sauvegarder votre blog, il est nécessaire de réaliser une copie du dossie
PluXml : https://www.pluxml.org/
Documentation : https://wiki.pluxml.org/
-Forum : https://forum.pluxml.org/
\ No newline at end of file
+Forum : https://forum.pluxml.org/
diff --git a/app_pluxml.md b/pages/02.applications/02.docs/pluxml/app_pluxml.md
similarity index 67%
rename from app_pluxml.md
rename to pages/02.applications/02.docs/pluxml/app_pluxml.md
index ace7045a..4fe7d8fb 100644
--- a/app_pluxml.md
+++ b/pages/02.applications/02.docs/pluxml/app_pluxml.md
@@ -1,12 +1,19 @@
-# PluXml
+---
+title: PluXml
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_pluxml'
+---
-
+
PluXml is a blog/CMS storing data in XML and not in a SQL database.
## Overview
-
+
## Plugins and themes
@@ -20,4 +27,4 @@ To restore your blog, you should keep a copy of the folder `/var/www/pluxml/data
PluXml : https://www.pluxml.org/
Documentation : https://wiki.pluxml.org/
-Forum : https://forum.pluxml.org/
\ No newline at end of file
+Forum : https://forum.pluxml.org/
diff --git a/app_privatebin_fr.md b/pages/02.applications/02.docs/privatebin/app_privatebin.fr.md
similarity index 89%
rename from app_privatebin_fr.md
rename to pages/02.applications/02.docs/privatebin/app_privatebin.fr.md
index 6711103d..d385ae73 100644
--- a/app_privatebin_fr.md
+++ b/pages/02.applications/02.docs/privatebin/app_privatebin.fr.md
@@ -1,4 +1,13 @@
-# PrivateBin
+---
+title: PrivateBin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_privatebin'
+---
+
+
[](https://install-app.yunohost.org/?app=privatebin) [](https://dash.yunohost.org/appci/app/privatebin)
diff --git a/app_privatebin.md b/pages/02.applications/02.docs/privatebin/app_privatebin.md
similarity index 88%
rename from app_privatebin.md
rename to pages/02.applications/02.docs/privatebin/app_privatebin.md
index b77764e4..5d585cf4 100644
--- a/app_privatebin.md
+++ b/pages/02.applications/02.docs/privatebin/app_privatebin.md
@@ -1,4 +1,13 @@
-# Privatebin
+---
+title: PrivateBin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_privatebin'
+---
+
+
[](https://install-app.yunohost.org/?app=privatebin) [](https://dash.yunohost.org/appci/app/privatebin)
diff --git a/app_radicale_fr.md b/pages/02.applications/02.docs/radicale/app_radicale.fr.md
similarity index 98%
rename from app_radicale_fr.md
rename to pages/02.applications/02.docs/radicale/app_radicale.fr.md
index c93f2917..6dfd034a 100644
--- a/app_radicale_fr.md
+++ b/pages/02.applications/02.docs/radicale/app_radicale.fr.md
@@ -1,4 +1,11 @@
-# Radicale
+---
+title: Radicale
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_radicale'
+---
Radicale est un serveur de calendrier et de contact CalDAV/CardDAV. Il ne dispose pas d’interface graphique d’administration.
diff --git a/app_radicale.md b/pages/02.applications/02.docs/radicale/app_radicale.md
similarity index 90%
rename from app_radicale.md
rename to pages/02.applications/02.docs/radicale/app_radicale.md
index 37221398..59a35ee0 100644
--- a/app_radicale.md
+++ b/pages/02.applications/02.docs/radicale/app_radicale.md
@@ -1,8 +1,15 @@
-# Radicale
+---
+title: Radicale
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_radicale'
+---
-Radical is a calendar and contact server CalDAV/CardDAV. It does not have a graphical administration interface.
+Radicale is a calendar and contact server CalDAV/CardDAV. It does not have a graphical administration interface.
-Radical is installed by default with the web client InfCloud that will view and edit your calendars and address books.
+Radicale is installed by default with the web client InfCloud that will view and edit your calendars and address books.
To connect another client to radical, we must inform these addresses:
@@ -19,8 +26,7 @@ To connect another client to radical, we must inform these addresses:
- Exemple: https://example.org/radicale/me/AddressBook.vcf/
### Create a new schedule or a new address book
-Create a new schedule or a new address book is very simple with radical, just go there! Radical create all new calendar or notebook to nonexistent addresses if you try to access it.
-
+Create a new schedule or a new address book is very simple with Radicale, just go there! Radicale creates all new calendar or notebook to nonexistent addresses if you try to access it.
So just log on (as before) to a calendar or a nonexistent address book to create it.
This can be done simply with a browser, to appear in a collection already connected to a client.
diff --git a/app_rainloop_fr.md b/pages/02.applications/02.docs/rainloop/app_rainloop.fr.md
similarity index 94%
rename from app_rainloop_fr.md
rename to pages/02.applications/02.docs/rainloop/app_rainloop.fr.md
index c052fe7c..a722efad 100644
--- a/app_rainloop_fr.md
+++ b/pages/02.applications/02.docs/rainloop/app_rainloop.fr.md
@@ -1,4 +1,13 @@
-# Rainloop
+---
+title: Rainloop
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_rainloop'
+---
+
+
[](https://install-app.yunohost.org/?app=rainloop) [](https://dash.yunohost.org/appci/app/rainloop)
diff --git a/app_rainloop.md b/pages/02.applications/02.docs/rainloop/app_rainloop.md
similarity index 93%
rename from app_rainloop.md
rename to pages/02.applications/02.docs/rainloop/app_rainloop.md
index 639318a3..d605bda3 100644
--- a/app_rainloop.md
+++ b/pages/02.applications/02.docs/rainloop/app_rainloop.md
@@ -1,4 +1,13 @@
-# Rainloop
+---
+title: Rainloop
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_rainloop'
+---
+
+
[](https://install-app.yunohost.org/?app=rainloop) [](https://dash.yunohost.org/appci/app/rainloop)
diff --git a/app_roundcube_fr.md b/pages/02.applications/02.docs/roundcube/app_roundcube.fr.md
similarity index 93%
rename from app_roundcube_fr.md
rename to pages/02.applications/02.docs/roundcube/app_roundcube.fr.md
index be4663a7..45aa9ba4 100644
--- a/app_roundcube_fr.md
+++ b/pages/02.applications/02.docs/roundcube/app_roundcube.fr.md
@@ -1,4 +1,13 @@
-# Roundcube
+---
+title: Roundcube
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_roundcube'
+---
+
+
[](https://install-app.yunohost.org/?app=roundcube) [](https://dash.yunohost.org/appci/app/roundcube)
diff --git a/app_roundcube.md b/pages/02.applications/02.docs/roundcube/app_roundcube.md
similarity index 92%
rename from app_roundcube.md
rename to pages/02.applications/02.docs/roundcube/app_roundcube.md
index f06ff08b..261c1a61 100644
--- a/app_roundcube.md
+++ b/pages/02.applications/02.docs/roundcube/app_roundcube.md
@@ -1,4 +1,13 @@
-# Roundcube
+---
+title: Roundcube
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_roundcube'
+---
+
+
[](https://install-app.yunohost.org/?app=roundcube) [](https://dash.yunohost.org/appci/app/roundcube)
diff --git a/app_searx_fr.md b/pages/02.applications/02.docs/searx/app_searx.fr.md
similarity index 89%
rename from app_searx_fr.md
rename to pages/02.applications/02.docs/searx/app_searx.fr.md
index 39f06f44..82251b98 100644
--- a/app_searx_fr.md
+++ b/pages/02.applications/02.docs/searx/app_searx.fr.md
@@ -1,4 +1,13 @@
-# Searx
+---
+title: Searx
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_searx'
+---
+
+
[](https://install-app.yunohost.org/?app=searx) [](https://dash.yunohost.org/appci/app/searx)
diff --git a/app_searx.md b/pages/02.applications/02.docs/searx/app_searx.md
similarity index 89%
rename from app_searx.md
rename to pages/02.applications/02.docs/searx/app_searx.md
index 23c0e790..108a9ebc 100644
--- a/app_searx.md
+++ b/pages/02.applications/02.docs/searx/app_searx.md
@@ -1,4 +1,13 @@
-# Searx
+---
+title: Searx
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_searx'
+---
+
+
[](https://install-app.yunohost.org/?app=searx) [](https://dash.yunohost.org/appci/app/searx)
diff --git a/app_shaarli_fr.md b/pages/02.applications/02.docs/shaarli/app_shaarli.fr.md
similarity index 88%
rename from app_shaarli_fr.md
rename to pages/02.applications/02.docs/shaarli/app_shaarli.fr.md
index 3982414c..b272dffa 100644
--- a/app_shaarli_fr.md
+++ b/pages/02.applications/02.docs/shaarli/app_shaarli.fr.md
@@ -1,4 +1,11 @@
-# Shaarli
+---
+title: Shaarli
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_shaarli'
+---
## Présentation
@@ -14,4 +21,4 @@ Shaarli est intéressant pour toutes celles et tous ceux qui souhaitent conserve
- [Page officielle](https://sebsauvage.net/wiki/doku.php?id=php:shaarli) de Shaarli
- [Application Shaarlier](https://f-droid.org/fr/packages/com.dimtion.shaarlier/) sur Android
-- [Fil de discussion](https://forum.yunohost.org/t/shaarli-version-0-10-4/2200) concernant Shaarli sur le forum
\ No newline at end of file
+- [Fil de discussion](https://forum.yunohost.org/t/shaarli-version-0-10-4/2200) concernant Shaarli sur le forum
diff --git a/pages/02.applications/02.docs/shaarli/app_shaarli.md b/pages/02.applications/02.docs/shaarli/app_shaarli.md
new file mode 100644
index 00000000..cdf6c315
--- /dev/null
+++ b/pages/02.applications/02.docs/shaarli/app_shaarli.md
@@ -0,0 +1,10 @@
+---
+title: Shaarli
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_shaarli'
+---
+
+(This page only exists in french for now)
diff --git a/app_shellinabox_fr.md b/pages/02.applications/02.docs/shellinabox/app_shellinabox.fr.md
similarity index 86%
rename from app_shellinabox_fr.md
rename to pages/02.applications/02.docs/shellinabox/app_shellinabox.fr.md
index 6274f80e..3b0a4311 100644
--- a/app_shellinabox_fr.md
+++ b/pages/02.applications/02.docs/shellinabox/app_shellinabox.fr.md
@@ -1,4 +1,13 @@
-# Shellinabox
+---
+title: Shellinabox
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_shellinabox'
+---
+
+
[](https://install-app.yunohost.org/?app=shellinabox) [](https://dash.yunohost.org/appci/app/shellinabox)
diff --git a/app_shellinabox.md b/pages/02.applications/02.docs/shellinabox/app_shellinabox.md
similarity index 86%
rename from app_shellinabox.md
rename to pages/02.applications/02.docs/shellinabox/app_shellinabox.md
index 38e8e75a..70a09274 100644
--- a/app_shellinabox.md
+++ b/pages/02.applications/02.docs/shellinabox/app_shellinabox.md
@@ -1,4 +1,13 @@
-# Shellinabox
+---
+title: Shellinabox
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_shellinabox'
+---
+
+
[](https://install-app.yunohost.org/?app=shellinabox) [](https://dash.yunohost.org/appci/app/shellinabox)
diff --git a/app_simple-torrent_fr.md b/pages/02.applications/02.docs/simple-torrent/app_simple-torrent.fr.md
similarity index 84%
rename from app_simple-torrent_fr.md
rename to pages/02.applications/02.docs/simple-torrent/app_simple-torrent.fr.md
index aa035d82..de351cec 100644
--- a/app_simple-torrent_fr.md
+++ b/pages/02.applications/02.docs/simple-torrent/app_simple-torrent.fr.md
@@ -1,4 +1,13 @@
-# Simple Torrent
+---
+title: Simple Torrent
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_simple-torrent'
+---
+
+
[](https://install-app.yunohost.org/?app=simple-torrent) [](https://dash.yunohost.org/appci/app/simple-torrent)
diff --git a/app_simple-torrent.md b/pages/02.applications/02.docs/simple-torrent/app_simple-torrent.md
similarity index 83%
rename from app_simple-torrent.md
rename to pages/02.applications/02.docs/simple-torrent/app_simple-torrent.md
index a320b6a7..f9abb112 100644
--- a/app_simple-torrent.md
+++ b/pages/02.applications/02.docs/simple-torrent/app_simple-torrent.md
@@ -1,4 +1,13 @@
-# Simple Torrent
+---
+title: Simple Torrent
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_simple-torrent'
+---
+
+
[](https://install-app.yunohost.org/?app=simple-torrent) [](https://dash.yunohost.org/appci/app/simple-torrent)
diff --git a/app_slingcode_fr.md b/pages/02.applications/02.docs/slingcode/app_slingcode.fr.md
similarity index 85%
rename from app_slingcode_fr.md
rename to pages/02.applications/02.docs/slingcode/app_slingcode.fr.md
index bab0933a..f6ddcd28 100644
--- a/app_slingcode_fr.md
+++ b/pages/02.applications/02.docs/slingcode/app_slingcode.fr.md
@@ -1,4 +1,13 @@
-# Slingcode
+---
+title: Slingcode
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_slingcode'
+---
+
+
[](https://install-app.yunohost.org/?app=slingcode) [](https://dash.yunohost.org/appci/app/slingcode)
diff --git a/app_slingcode.md b/pages/02.applications/02.docs/slingcode/app_slingcode.md
similarity index 84%
rename from app_slingcode.md
rename to pages/02.applications/02.docs/slingcode/app_slingcode.md
index c1ff60fe..f7167e86 100644
--- a/app_slingcode.md
+++ b/pages/02.applications/02.docs/slingcode/app_slingcode.md
@@ -1,4 +1,13 @@
-# Slingcode
+---
+title: Slingcode
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_slingcode'
+---
+
+
[](https://install-app.yunohost.org/?app=slingcode) [](https://dash.yunohost.org/appci/app/slingcode)
diff --git a/app_sogo_fr.md b/pages/02.applications/02.docs/sogo/app_sogo.fr.md
similarity index 67%
rename from app_sogo_fr.md
rename to pages/02.applications/02.docs/sogo/app_sogo.fr.md
index 2dde8e13..ee7de8c9 100644
--- a/app_sogo_fr.md
+++ b/pages/02.applications/02.docs/sogo/app_sogo.fr.md
@@ -1,4 +1,13 @@
-# SOGo
+---
+title: SOGo
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_sogo'
+---
+
+
[](https://install-app.yunohost.org/?app=sogo) [](https://dash.yunohost.org/appci/app/sogo)
@@ -6,7 +15,7 @@
- [Liens utiles](#liens-utiles)
-SOGo est un service de webmail pour votre serveur email, c'est une alternative à [RoundCube](app_roundcube). Il permet aussi la gestion des agendas et contacts présents sur le serveur.
+SOGo est un service de webmail pour votre serveur email, c'est une alternative à [RoundCube](/app_roundcube). Il permet aussi la gestion des agendas et contacts présents sur le serveur.
## Quelques liens utiles
diff --git a/app_sogo.md b/pages/02.applications/02.docs/sogo/app_sogo.md
similarity index 81%
rename from app_sogo.md
rename to pages/02.applications/02.docs/sogo/app_sogo.md
index 34515d44..441920f7 100644
--- a/app_sogo.md
+++ b/pages/02.applications/02.docs/sogo/app_sogo.md
@@ -1,4 +1,13 @@
-# SOGo
+---
+title: SOGo
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_sogo'
+---
+
+
[](https://install-app.yunohost.org/?app=sogo) [](https://dash.yunohost.org/appci/app/sogo)
diff --git a/app_spip_fr.md b/pages/02.applications/02.docs/spip/app_spip.fr.md
similarity index 91%
rename from app_spip_fr.md
rename to pages/02.applications/02.docs/spip/app_spip.fr.md
index dd616db2..b9470359 100644
--- a/app_spip_fr.md
+++ b/pages/02.applications/02.docs/spip/app_spip.fr.md
@@ -1,4 +1,11 @@
-# SPIP for YunoHost
+---
+title: SPIP
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_spip'
+---
### SPIP c'est quoi ?
diff --git a/app_spip.md b/pages/02.applications/02.docs/spip/app_spip.md
similarity index 91%
rename from app_spip.md
rename to pages/02.applications/02.docs/spip/app_spip.md
index 093c4126..9fd0ecec 100644
--- a/app_spip.md
+++ b/pages/02.applications/02.docs/spip/app_spip.md
@@ -1,4 +1,11 @@
-# SPIP for YunoHost
+---
+title: SPIP
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_spip'
+---
#### SPIP is what?
diff --git a/app_strut_fr.md b/pages/02.applications/02.docs/strut/app_strut.fr.md
similarity index 87%
rename from app_strut_fr.md
rename to pages/02.applications/02.docs/strut/app_strut.fr.md
index 6bed8a57..6d048d14 100644
--- a/app_strut_fr.md
+++ b/pages/02.applications/02.docs/strut/app_strut.fr.md
@@ -1,4 +1,13 @@
-# Strut
+---
+title: Strut
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_strut'
+---
+
+
[](https://install-app.yunohost.org/?app=strut) [](https://dash.yunohost.org/appci/app/strut)
diff --git a/app_strut.md b/pages/02.applications/02.docs/strut/app_strut.md
similarity index 86%
rename from app_strut.md
rename to pages/02.applications/02.docs/strut/app_strut.md
index 1555b425..bd8a08c3 100644
--- a/app_strut.md
+++ b/pages/02.applications/02.docs/strut/app_strut.md
@@ -1,4 +1,13 @@
-# Strut
+---
+title: Strut
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_strut'
+---
+
+
[](https://install-app.yunohost.org/?app=strut) [](https://dash.yunohost.org/appci/app/strut)
diff --git a/app_transmission_fr.md b/pages/02.applications/02.docs/transmission/app_transmission.fr.md
similarity index 90%
rename from app_transmission_fr.md
rename to pages/02.applications/02.docs/transmission/app_transmission.fr.md
index 64317142..936d0a35 100644
--- a/app_transmission_fr.md
+++ b/pages/02.applications/02.docs/transmission/app_transmission.fr.md
@@ -1,4 +1,13 @@
-# Transmission
+---
+title: Transmission
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_transmission'
+---
+
+ Transmission
### C’est quoi Transmission ?
Transmission est un logiciel de téléchargement et de partage de fichiers basé sur le protocole BitTorrent.
@@ -39,4 +48,4 @@ Pour plus de détails sur le transfert de fichier avec *scp* voir ici : http://
Si vous rencontrez des problèmes de droits `Permission denied` après l’ajout de fichiers à seeder, changez l’utilisateur qui possède les droits sur ces fichiers :
```bash
chown -R debian-transmission: /home/yunohost.transmission/completed/*
-```
\ No newline at end of file
+```
diff --git a/app_transmission.md b/pages/02.applications/02.docs/transmission/app_transmission.md
similarity index 88%
rename from app_transmission.md
rename to pages/02.applications/02.docs/transmission/app_transmission.md
index 11dfe22e..6e1ed3a9 100644
--- a/app_transmission.md
+++ b/pages/02.applications/02.docs/transmission/app_transmission.md
@@ -1,4 +1,13 @@
-# Transmission
+---
+title: Transmission
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_transmission'
+---
+
+
### What is Transmission?
diff --git a/app_ttrss_fr.md b/pages/02.applications/02.docs/ttrss/app_ttrss.fr.md
similarity index 91%
rename from app_ttrss_fr.md
rename to pages/02.applications/02.docs/ttrss/app_ttrss.fr.md
index e7240517..0808cbb9 100644
--- a/app_ttrss_fr.md
+++ b/pages/02.applications/02.docs/ttrss/app_ttrss.fr.md
@@ -1,4 +1,13 @@
-# Tiny Tiny RSS
+---
+title: Tiny Tiny RSS
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_ttrss'
+---
+
+
[](https://install-app.yunohost.org/?app=ttrss) [](https://dash.yunohost.org/appci/app/ttrss)
diff --git a/app_ttrss.md b/pages/02.applications/02.docs/ttrss/app_ttrss.md
similarity index 90%
rename from app_ttrss.md
rename to pages/02.applications/02.docs/ttrss/app_ttrss.md
index faf07ad4..61c7c0c8 100644
--- a/app_ttrss.md
+++ b/pages/02.applications/02.docs/ttrss/app_ttrss.md
@@ -1,4 +1,13 @@
-# Tiny Tiny RSS
+---
+title: Tiny Tiny RSS
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_ttrss'
+---
+
+
[](https://install-app.yunohost.org/?app=ttrss) [](https://dash.yunohost.org/appci/app/ttrss)
diff --git a/app_unattended_upgrades_fr.md b/pages/02.applications/02.docs/unattended_upgrades/app_unattended_upgrades.fr.md
similarity index 86%
rename from app_unattended_upgrades_fr.md
rename to pages/02.applications/02.docs/unattended_upgrades/app_unattended_upgrades.fr.md
index cda78510..063a4231 100644
--- a/app_unattended_upgrades_fr.md
+++ b/pages/02.applications/02.docs/unattended_upgrades/app_unattended_upgrades.fr.md
@@ -1,4 +1,13 @@
-# Unattended_upgrades
+---
+title: Unattented upgrades
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_unattended_upgrades'
+---
+
+
[](https://install-app.yunohost.org/?app=unattended_upgrades) [](https://dash.yunohost.org/appci/app/unattended_upgrades)
diff --git a/app_unattended_upgrades.md b/pages/02.applications/02.docs/unattended_upgrades/app_unattended_upgrades.md
similarity index 85%
rename from app_unattended_upgrades.md
rename to pages/02.applications/02.docs/unattended_upgrades/app_unattended_upgrades.md
index b4776c0d..cfb5bbc0 100644
--- a/app_unattended_upgrades.md
+++ b/pages/02.applications/02.docs/unattended_upgrades/app_unattended_upgrades.md
@@ -1,4 +1,13 @@
-# Unattended_upgrades
+---
+title: Unattended upgrades
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_unattended_upgrades'
+---
+
+
[](https://install-app.yunohost.org/?app=unattended_upgrades) [](https://dash.yunohost.org/appci/app/unattended_upgrades)
diff --git a/app_wallabag2_fr.md b/pages/02.applications/02.docs/wallabag2/app_wallabag2.fr.md
similarity index 92%
rename from app_wallabag2_fr.md
rename to pages/02.applications/02.docs/wallabag2/app_wallabag2.fr.md
index a169ac02..8c4e7544 100644
--- a/app_wallabag2_fr.md
+++ b/pages/02.applications/02.docs/wallabag2/app_wallabag2.fr.md
@@ -1,4 +1,13 @@
-# Wallabag2
+---
+title: Wallabag2
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_wallabag2'
+---
+
+
[](https://install-app.yunohost.org/?app=wallabag2) [](https://dash.yunohost.org/appci/app/wallabag2)
diff --git a/app_wallabag2.md b/pages/02.applications/02.docs/wallabag2/app_wallabag2.md
similarity index 90%
rename from app_wallabag2.md
rename to pages/02.applications/02.docs/wallabag2/app_wallabag2.md
index 1b16655b..d919d84b 100644
--- a/app_wallabag2.md
+++ b/pages/02.applications/02.docs/wallabag2/app_wallabag2.md
@@ -1,4 +1,13 @@
-# Wallabag2
+---
+title: Wallabag2
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_wallabag2'
+---
+
+
[](https://install-app.yunohost.org/?app=wallabag2) [](https://dash.yunohost.org/appci/app/wallabag2)
diff --git a/app_weblate_fr.md b/pages/02.applications/02.docs/weblate/app_weblate.fr.md
similarity index 90%
rename from app_weblate_fr.md
rename to pages/02.applications/02.docs/weblate/app_weblate.fr.md
index c346749e..b150ac0a 100644
--- a/app_weblate_fr.md
+++ b/pages/02.applications/02.docs/weblate/app_weblate.fr.md
@@ -1,4 +1,13 @@
-# Weblate
+---
+title: Weblate
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_weblate'
+---
+
+
[](https://install-app.yunohost.org/?app=weblate) [](https://dash.yunohost.org/appci/app/weblate)
diff --git a/app_weblate.md b/pages/02.applications/02.docs/weblate/app_weblate.md
similarity index 90%
rename from app_weblate.md
rename to pages/02.applications/02.docs/weblate/app_weblate.md
index ebdcc16d..0b1d993e 100644
--- a/app_weblate.md
+++ b/pages/02.applications/02.docs/weblate/app_weblate.md
@@ -1,4 +1,13 @@
-# Weblate
+---
+title: Weblate
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_weblate'
+---
+
+
[](https://install-app.yunohost.org/?app=weblate) [](https://dash.yunohost.org/appci/app/weblate)
diff --git a/app_webtrees_fr.md b/pages/02.applications/02.docs/webtrees/app_webtrees.fr.md
similarity index 75%
rename from app_webtrees_fr.md
rename to pages/02.applications/02.docs/webtrees/app_webtrees.fr.md
index 0f206728..fca91947 100644
--- a/app_webtrees_fr.md
+++ b/pages/02.applications/02.docs/webtrees/app_webtrees.fr.md
@@ -1,7 +1,14 @@
-# Webtrees
+---
+title: Webtrees
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_webtrees'
+---
webtrees est le chef de file sur le Web des logiciels de généalogie conversationnels en ligne. C'est un logiciel Open Source et il coûte zéro $ - oui, totalement GRATUIT !
Vous n'avez besoin que d'un serveur web avec PHP et MySQL.
-Il exploite les fichiers de généalogie au format GEDCOM standard, par conséquent, il est compatible avec toutes les applications de bureau majeures; il vise à être efficient et efficace en utilisant la bonne combinaison d'outils tiers, des techniques de conception et des normes d'ouverture standards.
\ No newline at end of file
+Il exploite les fichiers de généalogie au format GEDCOM standard, par conséquent, il est compatible avec toutes les applications de bureau majeures; il vise à être efficient et efficace en utilisant la bonne combinaison d'outils tiers, des techniques de conception et des normes d'ouverture standards.
diff --git a/app_webtrees.md b/pages/02.applications/02.docs/webtrees/app_webtrees.md
similarity index 83%
rename from app_webtrees.md
rename to pages/02.applications/02.docs/webtrees/app_webtrees.md
index 6e95e85d..603a3d74 100644
--- a/app_webtrees.md
+++ b/pages/02.applications/02.docs/webtrees/app_webtrees.md
@@ -1,8 +1,15 @@
-# Webtrees
+---
+title: Webtrees
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_webtrees'
+---
webtrees is the web's leading online collaborative genealogy application.
* It works from standard GEDCOM files, and is therefore compatible with every major desktop application.
* It aims to to be efficient and effective by using the right combination of third-party tools, design techniques and open standards.
-webtrees allows you to view and edit your genealogy on your website. It has full editing capabilities, full privacy functions, and supports imedia such as photos and document images. As an online program, it fosters extended family participation and good ancestral recording habits, as it simplifies the process of collaborating with others working on your family lines. Your latest information is always on your web site and available for others to see, defined by viewing rules you set.
\ No newline at end of file
+webtrees allows you to view and edit your genealogy on your website. It has full editing capabilities, full privacy functions, and supports imedia such as photos and document images. As an online program, it fosters extended family participation and good ancestral recording habits, as it simplifies the process of collaborating with others working on your family lines. Your latest information is always on your web site and available for others to see, defined by viewing rules you set.
diff --git a/app_wekan_fr.md b/pages/02.applications/02.docs/wekan/app_wekan.fr.md
similarity index 87%
rename from app_wekan_fr.md
rename to pages/02.applications/02.docs/wekan/app_wekan.fr.md
index 25b4b7c1..34348259 100644
--- a/app_wekan_fr.md
+++ b/pages/02.applications/02.docs/wekan/app_wekan.fr.md
@@ -1,4 +1,13 @@
-# Wekan
+---
+title: Wekan
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_wekan'
+---
+
+
[](https://install-app.yunohost.org/?app=wekan) [](https://dash.yunohost.org/appci/app/wekan)
diff --git a/app_wekan.md b/pages/02.applications/02.docs/wekan/app_wekan.md
similarity index 87%
rename from app_wekan.md
rename to pages/02.applications/02.docs/wekan/app_wekan.md
index f408f1c9..b0d7a4e8 100644
--- a/app_wekan.md
+++ b/pages/02.applications/02.docs/wekan/app_wekan.md
@@ -1,4 +1,13 @@
-# Wekan
+---
+title: Wekan
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_wekan'
+---
+
+
[](https://install-app.yunohost.org/?app=wekan) [](https://dash.yunohost.org/appci/app/wekan)
diff --git a/app_wikijs_fr.md b/pages/02.applications/02.docs/wikijs/app_wikijs.fr.md
similarity index 85%
rename from app_wikijs_fr.md
rename to pages/02.applications/02.docs/wikijs/app_wikijs.fr.md
index b2a3fa65..828eb0bf 100644
--- a/app_wikijs_fr.md
+++ b/pages/02.applications/02.docs/wikijs/app_wikijs.fr.md
@@ -1,4 +1,13 @@
-# Wiki.js
+---
+title: Wiki.js
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_wikijs'
+---
+
+
[](https://install-app.yunohost.org/?app=wikijs) [](https://dash.yunohost.org/appci/app/wikijs)
diff --git a/app_wikijs.md b/pages/02.applications/02.docs/wikijs/app_wikijs.md
similarity index 84%
rename from app_wikijs.md
rename to pages/02.applications/02.docs/wikijs/app_wikijs.md
index 7475c620..66d32837 100644
--- a/app_wikijs.md
+++ b/pages/02.applications/02.docs/wikijs/app_wikijs.md
@@ -1,4 +1,13 @@
-# Wiki.js
+---
+title: Wiki.js
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_wikijs'
+---
+
+
[](https://install-app.yunohost.org/?app=wikijs) [](https://dash.yunohost.org/appci/app/wikijs)
diff --git a/app_wordpress_fr.md b/pages/02.applications/02.docs/wordpress/app_wordpress.fr.md
similarity index 92%
rename from app_wordpress_fr.md
rename to pages/02.applications/02.docs/wordpress/app_wordpress.fr.md
index ec6c8d75..0d058dda 100644
--- a/app_wordpress_fr.md
+++ b/pages/02.applications/02.docs/wordpress/app_wordpress.fr.md
@@ -1,4 +1,13 @@
-# WordPress
+---
+title: WordPress
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_wordpress'
+---
+
+
[](https://install-app.yunohost.org/?app=wordpress) [](https://dash.yunohost.org/appci/app/wordpress)
diff --git a/app_wordpress.md b/pages/02.applications/02.docs/wordpress/app_wordpress.md
similarity index 90%
rename from app_wordpress.md
rename to pages/02.applications/02.docs/wordpress/app_wordpress.md
index 8e8054ec..c1aefbba 100644
--- a/app_wordpress.md
+++ b/pages/02.applications/02.docs/wordpress/app_wordpress.md
@@ -1,4 +1,13 @@
-# WordPress
+---
+title: WordPress
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_wordpress'
+---
+
+
[](https://install-app.yunohost.org/?app=wordpress) [](https://dash.yunohost.org/appci/app/wordpress)
diff --git a/app_writing_guide_fr.md b/pages/02.applications/02.docs/writing_guide/app_writing_guide.fr.md
similarity index 94%
rename from app_writing_guide_fr.md
rename to pages/02.applications/02.docs/writing_guide/app_writing_guide.fr.md
index ac1abf48..08a456b4 100644
--- a/app_writing_guide_fr.md
+++ b/pages/02.applications/02.docs/writing_guide/app_writing_guide.fr.md
@@ -1,4 +1,13 @@
-# APPLICATION
+---
+title: Canevas pour la documentation des apps
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_writing_guide'
+---
+
+
[](https://install-app.yunohost.org/?app=APPLICATION) [](https://dash.yunohost.org/appci/app/APPLICATION)
diff --git a/app_writing_guide.md b/pages/02.applications/02.docs/writing_guide/app_writing_guide.md
similarity index 94%
rename from app_writing_guide.md
rename to pages/02.applications/02.docs/writing_guide/app_writing_guide.md
index 57e9d9f3..90b46e0f 100644
--- a/app_writing_guide.md
+++ b/pages/02.applications/02.docs/writing_guide/app_writing_guide.md
@@ -1,4 +1,13 @@
-# APPLICATION
+---
+title: Template for app documentation
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_writing_guide'
+---
+
+
[](https://install-app.yunohost.org/?app=APPLICATION) [](https://dash.yunohost.org/appci/app/APPLICATION)
diff --git a/pages/02.applications/02.docs/yunofav/app_yunofav.fr.md b/pages/02.applications/02.docs/yunofav/app_yunofav.fr.md
new file mode 100644
index 00000000..101f42c0
--- /dev/null
+++ b/pages/02.applications/02.docs/yunofav/app_yunofav.fr.md
@@ -0,0 +1,15 @@
+---
+title: Yunofav
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_yunofav'
+---
+
+### Page de liens favoris pour YunoHost
+
+page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh
+
+
+Fonctionnalité : Crée une page pour vos liens préférés, en utilisant le style et le fonctionnement des tuiles YunoHost.
diff --git a/pages/02.applications/02.docs/yunofav/app_yunofav.md b/pages/02.applications/02.docs/yunofav/app_yunofav.md
new file mode 100644
index 00000000..9a7b7fe5
--- /dev/null
+++ b/pages/02.applications/02.docs/yunofav/app_yunofav.md
@@ -0,0 +1,14 @@
+---
+title: Yunofav
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_yunofav'
+---
+
+### Page of favorite links for YunoHost
+
+homepage: https://github.com/YunoHost-Apps/yunofav_ynh
+
+Functionality: Creates a page for your favorite links, using the YunoHost tiles look and feel.
diff --git a/app_zerobin_fr.md b/pages/02.applications/02.docs/zerobin/app_zerobin.fr.md
similarity index 89%
rename from app_zerobin_fr.md
rename to pages/02.applications/02.docs/zerobin/app_zerobin.fr.md
index fdb0c8c0..d1ecd41a 100644
--- a/app_zerobin_fr.md
+++ b/pages/02.applications/02.docs/zerobin/app_zerobin.fr.md
@@ -1,4 +1,13 @@
-# Zerobin
+---
+title: Zerobin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_zerobin'
+---
+
+
[](https://install-app.yunohost.org/?app=zerobin) [](https://dash.yunohost.org/appci/app/zerobin)
diff --git a/app_zerobin.md b/pages/02.applications/02.docs/zerobin/app_zerobin.md
similarity index 89%
rename from app_zerobin.md
rename to pages/02.applications/02.docs/zerobin/app_zerobin.md
index 927bb7c1..4a276fc8 100644
--- a/app_zerobin.md
+++ b/pages/02.applications/02.docs/zerobin/app_zerobin.md
@@ -1,4 +1,13 @@
-# Zerobin
+---
+title: Zerobin
+template: docs
+taxonomy:
+ category: docs, apps
+routes:
+ default: '/app_zerobin'
+---
+
+
[](https://install-app.yunohost.org/?app=zerobin) [](https://dash.yunohost.org/appci/app/zerobin)
diff --git a/pages/02.applications/03.framasoft/apps_framasoft.fr.md b/pages/02.applications/03.framasoft/apps_framasoft.fr.md
new file mode 100644
index 00000000..5391bc14
--- /dev/null
+++ b/pages/02.applications/03.framasoft/apps_framasoft.fr.md
@@ -0,0 +1,55 @@
+---
+title: Équivalence avec les applications Framasoft
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/apps_framasoft'
+---
+
+| App Framasoft | Équivalent | Package |
+| :---: | :---: | :---: |
+| Framabag | Wallabag | [[fa=git /]](https://github.com/YunoHost-Apps/wallabag2_ynh)   |
+| Framabee | Searx | [[fa=git /]](https://github.com/YunoHost-Apps/searx_ynh)   |
+| Framabin | PrivateBin | [[fa=git /]](https://github.com/YunoHost-apps/zerobin_ynh)   |
+| Framaboard | Kanboard | [[fa=git /]](https://github.com/YunoHost-Apps/kanboard_ynh)   |
+| Framabookin | BicBucStriim | [[fa=git /]](https://github.com/YunoHost-Apps/bicbucstriim_ynh)   |
+| Framacalc | Ethercalc | [[fa=git /]](https://github.com/YunoHost-Apps/ethercalc_ynh)   |
+| Framacarte | uMap | [[fa=git /]](https://github.com/YunoHost-Apps/umap_ynh)   |
+| Framaclic | Matomo | [[fa=git /]](https://github.com/YunoHost-Apps/matomo_ynh)   |
+| Framadate | OpenSondage | [[fa=git /]](https://github.com/YunoHost-Apps/opensondage_ynh)   |
+| Framadrive | Nextcloud | [[fa=git /]](https://github.com/YunoHost-apps/nextcloud_ynh)   |
+| Framadrop | Lufi | [[fa=git /]](https://github.com/YunoHost-Apps/lufi_ynh)   |
+| Framaestro | Framaestro | [[fa=git /]](https://github.com/YunoHost-Apps/framaestro_ynh)   |
+| Framaforms | Framaforms | [[fa=git /]](https://github.com/YunoHost-Apps/framaforms_ynh)   |
+| Framagames | Framagames | [[fa=git /]](https://github.com/YunoHost-Apps/framagames_ynh)   |
+| Framagenda | (Agenda Nextcloud) | c.f. Nextcloud |
+| Framagit | GitLab | [[fa=git /]](https://github.com/YunoHost-Apps/gitlab_ynh)   |
+| | Gogs | [[fa=git /]](https://github.com/YunoHost-Apps/gogs_ynh)   |
+| Frama.link | Lstu | [[fa=git /]](https://github.com/YunoHost-Apps/lstu_ynh)   |
+| Framalistes | Mailman | [[fa=git /]](https://github.com/YunoHost-Apps/mailman_ynh)   |
+| | Sympa | [[fa=git /]](https://github.com/alexAubin/sympa_ynh)   |
+| Framanews | TinyTinyRSS | [[fa=git /]](https://github.com/YunoHost-apps/ttrss_ynh)   |
+| Framanotes | Turtl | [[fa=git /]](https://github.com/YunoHost-Apps/turtl_ynh)   |
+| Framapad | Etherpad + mypads | [[fa=git /]](https://github.com/YunoHost-Apps/etherpad_mypads_ynh)   |
+| Framapiaf | Mastodon | [[fa=git /]](https://github.com/YunoHost-Apps/mastodon_ynh)   |
+| Framapic | Lutim | [[fa=git /]](https://github.com/YunoHost-Apps/lutim_ynh)   |
+| Framasites | Grav | [[fa=git /]](https://github.com/YunoHost-Apps/grav_ynh)   |
+| Framaslides | Strut | [[fa=git /]](https://github.com/YunoHost-Apps/strut_ynh)   |
+| Framasphère | Diaspora | [[fa=git /]](https://github.com/aymhce/diaspora_ynh)   |
+| Framatalk | Jitsi Meet | [[fa=git /]](https://github.com/YunoHost-Apps/jitsi_ynh)   |
+| Framateam | Mattermost | [[fa=git /]](https://github.com/YunoHost-Apps/mattermost_ynh)   |
+| Framatrad | ? | Non packagé |
+| Framatube | Peertube | [[fa=git /]](https://github.com/YunoHost-Apps/peertube_ynh)   |
+| Framavectoriel | SVG-Edit | [[fa=git /]](https://github.com/YunoHost-Apps/svgedit_ynh)   |
+| Framavox | Loomio | Non packagé |
+| Framemo | Scrumblr | [[fa=git /]](https://github.com/YunoHost-Apps/scrumblr_ynh)   |
+| Framindmap | Wisemapping | [[fa=git /]](https://github.com/YunoHost-Apps/wisemapping_ynh)   |
+| Framinetest | Minetest | [[fa=git /]](https://github.com/YunoHost-Apps/minetest_ynh)   |
+| MyFrama | Shaarli | [[fa=git /]](https://github.com/YunoHost-Apps/shaarli_ynh)   |
+
+### Voir aussi
+
+- [Liste complète des applications packagées](/apps)
+- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)
+
diff --git a/apps_wishlist.md b/pages/02.applications/04.wishlist/apps_wishlist.md
similarity index 99%
rename from apps_wishlist.md
rename to pages/02.applications/04.wishlist/apps_wishlist.md
index 7816a7d2..07c9bba4 100644
--- a/apps_wishlist.md
+++ b/pages/02.applications/04.wishlist/apps_wishlist.md
@@ -1,4 +1,11 @@
-# Apps wishlist
+---
+title: Apps wishlist
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/apps_wishlist'
+---
The following list is a compiled wishlist of applications that would be nice-to-have.
@@ -243,6 +250,7 @@ You can [contribute to this list by adding something you'd like to be packaged](
| shuri | URL Shortener | [Upstream](https://github.com/pips-/shuri) | [Package Draft](https://github.com/YunoHost-Apps/shuri_ynh) |
| sickbeard | Automatic TV show downloader | | [Package Draft](https://github.com/YunoHost-Apps/sickbeard_ynh) |
| [sickrage](https://sickchill.github.io/) | Automatic TV shows downloader | | [Package Draft](https://github.com/YunoHost-Apps/sickrage_ynh) |
+| [Signal Proxy](https://signal.org/blog/help-iran-reconnect/) | Fight censorship and bypass traffic securely to the Signal service | [Upstream](https://github.com/signalapp/Signal-TLS-Proxy) | |
| simpad | Simple markdown editor | [Upstream](https://github.com/beli3ver/SiMPad) | [Package Draft](https://github.com/YunoHost-Apps/simpad_ynh) |
| [SimpleLogin](https://simplelogin.io) | Privacy-first e-mail forwarding and identity provider service | [Upstream](https://github.com/simple-login/app) | |
| [smokeping](https://oss.oetiker.ch/smokeping/) | | [Upstream](https://github.com/oetiker/SmokePing) | |
diff --git a/pages/03.community/01.forum/forum.fr.md b/pages/03.community/01.forum/forum.fr.md
new file mode 100644
index 00000000..8bd374e9
--- /dev/null
+++ b/pages/03.community/01.forum/forum.fr.md
@@ -0,0 +1,5 @@
+---
+title: Forum
+template: docs
+redirect: 'https://forum.yunohost.org/tag/fr'
+---
diff --git a/pages/03.community/01.forum/forum.md b/pages/03.community/01.forum/forum.md
new file mode 100644
index 00000000..6a686595
--- /dev/null
+++ b/pages/03.community/01.forum/forum.md
@@ -0,0 +1,5 @@
+---
+title: Forum
+template: docs
+redirect: 'https://forum.yunohost.org/tag/en'
+---
diff --git a/chat_rooms_es.md b/pages/03.community/02.chat_rooms/chat_rooms.es.md
similarity index 95%
rename from chat_rooms_es.md
rename to pages/03.community/02.chat_rooms/chat_rooms.es.md
index 70adbcd4..63248221 100644
--- a/chat_rooms_es.md
+++ b/pages/03.community/02.chat_rooms/chat_rooms.es.md
@@ -1,4 +1,11 @@
-## Salas de chat
+---
+title: Salas de chat
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/chat_rooms'
+---
El proyecto YunoHost utiliza salas de chat como medio de communicación.
diff --git a/chat_rooms_fr.md b/pages/03.community/02.chat_rooms/chat_rooms.fr.md
similarity index 95%
rename from chat_rooms_fr.md
rename to pages/03.community/02.chat_rooms/chat_rooms.fr.md
index bbbe0877..2b75c282 100644
--- a/chat_rooms_fr.md
+++ b/pages/03.community/02.chat_rooms/chat_rooms.fr.md
@@ -1,4 +1,11 @@
-## Salons de discussions
+---
+title: Salons de discussions
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/chat_rooms'
+---
Parmi d’autres outils, le projet YunoHost se sert de salons de discussions pour communiquer.
diff --git a/chat_rooms.md b/pages/03.community/02.chat_rooms/chat_rooms.md
similarity index 95%
rename from chat_rooms.md
rename to pages/03.community/02.chat_rooms/chat_rooms.md
index c72c6961..b4d58572 100644
--- a/chat_rooms.md
+++ b/pages/03.community/02.chat_rooms/chat_rooms.md
@@ -1,4 +1,11 @@
-## Chat rooms
+---
+title: Chat rooms
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/chat_rooms'
+---
Amoung other communication tools, YunoHost project use chat rooms to communicate.
diff --git a/help_ar.md b/pages/03.community/03.help/help.ar.md
similarity index 74%
rename from help_ar.md
rename to pages/03.community/03.help/help.ar.md
index 26a2b558..95b53c00 100644
--- a/help_ar.md
+++ b/pages/03.community/03.help/help.ar.md
@@ -1,33 +1,37 @@
-#
هل تبحث عن مساعدة ؟
+---
+title: هل تبحث عن مساعدة
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/help'
+---
+
+
إتصل بغرفة المساعدة
+
+!!! **ProTips™**
+!!! - Non c'è bisogno di chiedere se puoi chiedere qualcosa, chiedi e basta !
+!!! - *Sii paziente*, potrebbero servire alcuni minuti prima che qualcuno veda i tuoi messaggi.
+!!! - لا تطرح سؤالا لمُجرّد الطرح، بل إطرح سؤالك !
+!!! - تحلّى بالصبر، في بعض الأحيان يمكن أن تمر بضع دقائق قبل أن يرى أحد المستخدمين سؤالك.
-
إتصل بغرفة المساعدة
-
-ProTips™
-
-
لا تطرح سؤالا لمُجرّد الطرح، بل إطرح سؤالك !
-
تحلّى بالصبر، في بعض الأحيان يمكن أن تمر بضع دقائق قبل أن يرى أحد المستخدمين سؤالك.
-
-
-
الإسم المستعار :
-
+
+الإسم المستعار :
-
ملاحظة : يمكن الإتصال كذلك بغرفة المحادثة باستخدام تطبيق XMPP الخاص بك على العنوان التالي
support@conference.yunohost.org
kiwiirc باستخدام freenode على #yunohost IRC أو
Riot باستخدام Matrix أو
-
-
... أو إطرح سؤالك في المنتدى !
+
... أو إطرح سؤالك في المنتدى !
-
@@ -50,7 +53,6 @@ support@conference.yunohost.org
-
ملاحظة : يمكن الإتصال كذلك بغرفة التطوير باستخدام تطبيق XMPP الخاص بك على العناوين التالية
dev@conference.yunohost.org and apps@conference.yunohost.org
diff --git a/pages/03.community/03.help/help.fr.md b/pages/03.community/03.help/help.fr.md
new file mode 100644
index 00000000..44b1740d
--- /dev/null
+++ b/pages/03.community/03.help/help.fr.md
@@ -0,0 +1,41 @@
+---
+title: Besoin d'aide ?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/help'
+---
+
+## Connectez-vous au salon de support
+
+!!! **ProTips™**
+!!! - Don't ask to ask, just ask !
+!!! - *Be patient*, it can take a few minutes before someone sees your messages.
+
+[center]
+
+[/center]
+
+!!! **Note:** ce salon est accessible via
+!!! - Matrix (`#freenode_#yunohost:matrix.org` [en utilisant Element](https://app.element.io/#/room/#freenode_yunohost:matrix.org))
+!!! - IRC (`#yunohost` on freenode, [en utilisant Kiwiirc](https://kiwiirc.com/nextclient/?settings=7b72a0a81838360686798199ed53624f&target=blank))
+!!! - XMPP (`support@conference.yunohost.org`)
+
+## ... or ask on the forum !
+
+[center]
+[[fa=comment /] Aller sur le forum](https://forum.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+[/center]
+
+## You've found a bug ?
+
+!!!! Please report bugs on our bugtracker or contact the developers
+
+[center]
+
+[[fa=exclamation-circle /] Rapporter un bug](https://github.com/yunohost/issues/issues?target=_blank&classes=btn,btn-lg,btn-warning) [[fa=comment /] Contacter les développeur.euse.s](https://kiwiirc.com/client/irc.freenode.net/yunohost-dev?target=_blank&classes=btn,btn-lg,btn-warning)
+
+[/center]
+
+!!! Note : vous pouvez aussi vous connecter aux salons de discussions dev et apps, voir [la page correspondante](/chat_rooms)
diff --git a/help_it.md b/pages/03.community/03.help/help.it.md
similarity index 85%
rename from help_it.md
rename to pages/03.community/03.help/help.it.md
index ab7a10bd..0b10d9d2 100644
--- a/help_it.md
+++ b/pages/03.community/03.help/help.it.md
@@ -1,14 +1,19 @@
-# Cerchi aiuto?
+---
+title: Cerchi aiuto?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/help'
+---
Connettiti alla chat di supporto
+
+!!! **ProTips™**
+!!! - Non c'è bisogno di chiedere se puoi chiedere qualcosa, chiedi e basta !
+!!! - *Sii paziente*, potrebbero servire alcuni minuti prima che qualcuno veda i tuoi messaggi.
+
-
-ProTips™
-
-
Non c'è bisogno di chiedere se puoi chiedere qualcosa, chiedi e basta !
-
Sii paziente, potrebbero servire alcuni minuti prima che qualcuno veda i tuoi messaggi.
-
-
diff --git a/pages/03.community/03.help/help.md b/pages/03.community/03.help/help.md
new file mode 100644
index 00000000..a2722496
--- /dev/null
+++ b/pages/03.community/03.help/help.md
@@ -0,0 +1,41 @@
+---
+title: Looking for help?
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/help'
+---
+
+## Connect to the support chatroom
+
+!!! **ProTips™**
+!!! - Don't ask to ask, just ask !
+!!! - *Be patient*, it can take a few minutes before someone sees your messages.
+
+[center]
+
+[/center]
+
+!!! **Note:** this room is available via
+!!! - Matrix (`#freenode_#yunohost:matrix.org` [using Element](https://riot.im/app/#/room/#yunohost:matrix.org?target=_blank))
+!!! - IRC (`#yunohost` on freenode, [using kiwiirc](https://kiwiirc.com/nextclient/?settings=7b72a0a81838360686798199ed53624f&target=blank))
+!!! - XMPP (`support@conference.yunohost.org`)
+
+## ... or ask on the forum !
+
+[center]
+[[fa=comment /] Go to the forum](https://forum.yunohost.org/?target=_blank&classes=btn,btn-lg,btn-success)
+[/center]
+
+## You've found a bug ?
+
+!!!! Please report bugs on our bugtracker or contact the developers
+
+[center]
+
+[[fa=exclamation-circle /] Report a bug](https://github.com/yunohost/issues/issues?target=_blank&classes=btn,btn-lg,btn-warning) [[fa=comment /] Contact the developers](https://kiwiirc.com/client/irc.freenode.net/yunohost-dev?target=_blank&classes=btn,btn-lg,btn-warning)
+
+[/center]
+
+!!! Note : you can also connect to the dev and apps chatrooms, see [the corresponding page](/chat_rooms)
diff --git a/faq_de.md b/pages/03.community/04.faq/faq.de.md
similarity index 96%
rename from faq_de.md
rename to pages/03.community/04.faq/faq.de.md
index 3ad70759..5a066f24 100644
--- a/faq_de.md
+++ b/pages/03.community/04.faq/faq.de.md
@@ -1,4 +1,11 @@
-# Häufig gestellte Fragen
+---
+title: Häufig gestellte Fragen
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/faq'
+---
#### Unter welcher Lizenz wird YunoHost angeboten ?
@@ -24,7 +31,7 @@ YunoHost könnte eine Distribution oder ein Betriebssystem genannt werden, aber
Zum Beispiel, wenn Sie Wordpress installieren möchten, müssten Sie einige Befehle eintippen, um Benutzer zu generieren, einen Webserver einrichten, einen SQL Server einrichten, das Wordpress Archiv herunterladen, entpacken, den Webserver konfigurieren, die SQL Datenbank konfigurieren und schließlich Wordpress einrichten. YunoHost übernimmt all das für Sie, zähmt das technische Chaos und "tippt alle Befehle für Sie", sodass Sie sich auf das konzentrieren können, was wirklich wichtig ist.
-Mehr Informationen finden Sie [hier](whatsyunohost) !
+Mehr Informationen finden Sie [hier](/whatsyunohost) !
#### Kann ich meine eigene, persönliche Internetseite mit YunoHost betreiben ?
@@ -63,7 +70,7 @@ Wenn Ihnen das möglich ist, können Sie auch gerne Sachspenden leisten (ein Tei
#### Wie kann ich zum Projekt beitragen ?
-Es gibt viele Wege [zum Projekt beizutragen](contribute) :).
+Es gibt viele Wege [zum Projekt beizutragen](/contribute) :).
Zögern Sie nicht, mit uns über Ihre Ideen zu sprechen!
@@ -72,7 +79,7 @@ Es ist ein weit verbreitetes Missverständnis, dass Neulinge bei offenen Softwar
#### Was sind YunoHost organisatorische Grundsätze ?
-Das beschreiben wir in [diesem Dokument](project_organization) :).
+Das beschreiben wir in [diesem Dokument](/project_organization) :).
#### Werdet ihr YunoHosts für [Lieblingsdistribution hier einfügen] portieren ?
diff --git a/faq_fr.md b/pages/03.community/04.faq/faq.fr.md
similarity index 96%
rename from faq_fr.md
rename to pages/03.community/04.faq/faq.fr.md
index 288733d6..6aa06f9c 100644
--- a/faq_fr.md
+++ b/pages/03.community/04.faq/faq.fr.md
@@ -1,4 +1,11 @@
-# Foire aux questions
+---
+title: Foire aux questions
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/faq'
+---
#### Sous quelle licence est distribué YunoHost ?
@@ -24,7 +31,7 @@ YunoHost peut être appelé une distribution ou un système d’exploitation, ma
Par exemple, pour installer un WordPress à la main, il vous faudrait taper toute une série de commandes pour créer des utilisateurs, mettre en place un serveur web, mettre en place un serveur SQL, télécharger l’archive de WordPress, la décompresser, configurer le serveur web, configurer la base de données SQL, et finalement configurer WordPress. YunoHost gère toute cette partie technique et « tape les commandes à votre place », pour que vous puissiez vous concentrer sur ce qui compte vraiment.
-Plus d’informations sur [cette page](whatsyunohost) !
+Plus d’informations sur [cette page](/whatsyunohost) !
#### Puis-je gérer mon propre site web avec YunoHost ?
@@ -62,7 +69,7 @@ Si vous le pouvez, vous pouvez aussi faire des contributions en nature (une part
#### Comment puis-je contribuer au projet ?
-Il existe [plusieurs façons de contribuer](contribute) :).
+Il existe [plusieurs façons de contribuer](/contribute) :).
N’hésitez pas à venir nous parler de vos idées !
@@ -70,7 +77,7 @@ Une idée répandue parmi les nouveaux contributeurs aux logiciels libres est de
#### Quel est le modèle politique de YunoHost ?
-Il est décrit dans [ce document](project_organization) :).
+Il est décrit dans [ce document](/project_organization) :).
#### Pouvez-vous porter YunoHost sur [ma distro préférée] ?
diff --git a/faq.md b/pages/03.community/04.faq/faq.md
similarity index 95%
rename from faq.md
rename to pages/03.community/04.faq/faq.md
index 9aa5d2a4..49bf873c 100644
--- a/faq.md
+++ b/pages/03.community/04.faq/faq.md
@@ -1,4 +1,11 @@
-# Frequently Asked Questions
+---
+title: Frequently Asked Questions
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/faq'
+---
#### Under which license is YunoHost distributed?
@@ -24,7 +31,7 @@ YunoHost may be called a distribution or an operating system, but it's actually
For instance, if you wanted to install WordPress, you would need to type a bunch of commands to create some users, setup a web server, setup a SQL server, download the WordPress archive, uncompress it, configure the web server, configure the SQL database, and finally configure WordPress. YunoHost handles the technical details and "types all these commands for you", so that you can focus on what really matters.
-More info on [this page](whatsyunohost)!
+More info on [this page](/whatsyunohost)!
#### Can I host my own personal website with YunoHost?
@@ -60,7 +67,7 @@ If you can, you can also make in-kind contributions, like servers (some of our i
#### How can I contribute to the project?
-There are [many ways to contribute](contribute) :).
+There are [many ways to contribute](/contribute) :).
Don't hesitate to come talk to us about your ideas!
@@ -69,7 +76,7 @@ A common misconception for newcomers in free software projects is to think that
#### What's YunoHost's political model?
-It is described in [this document](project_organization) :).
+It is described in [this document](/project_organization) :).
#### Will you port YunoHost to [insert favorite distro]?
diff --git a/orga/yunohost_project_organization_fr.md b/pages/03.community/05.project_organization/yunohost_project_organization.fr.md
similarity index 98%
rename from orga/yunohost_project_organization_fr.md
rename to pages/03.community/05.project_organization/yunohost_project_organization.fr.md
index dde31a57..c867617c 100644
--- a/orga/yunohost_project_organization_fr.md
+++ b/pages/03.community/05.project_organization/yunohost_project_organization.fr.md
@@ -1,6 +1,18 @@
-# Organisation du projet YunoHost
+---
+title: Organisation du projet
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/yunohost_project_organization'
+ aliases:
+ - '/project_organization'
+---
+
+! This page is outdated and should be reworked
## Objectif du document
+
Ce document a pour objectif de permettre aux contributeurs de se sentir légitimes d’effectuer une contribution dans le projet YunoHost avec un avis collectif. Il vise également à renforcer le projet en le structurant autour de groupes de travail autonomes pouvant résister au départ ou à l'absence de certains contributeurs.
Le projet étant communautaire, les décisions prises hâtivement et discrètement par un groupe restreint de contributeurs peuvent entraîner des frustrations postérieures.
Pour pallier ce problème, la solution proposée ici est de faire en sorte que les décisions soient prises collectivement, qu’elles soient suffisamment réfléchies, et qu'elles soient documentées ou rendues publiques.
diff --git a/orga/yunohost_project_organization.md b/pages/03.community/05.project_organization/yunohost_project_organization.md
similarity index 98%
rename from orga/yunohost_project_organization.md
rename to pages/03.community/05.project_organization/yunohost_project_organization.md
index ce306c83..89b046e7 100644
--- a/orga/yunohost_project_organization.md
+++ b/pages/03.community/05.project_organization/yunohost_project_organization.md
@@ -1,4 +1,15 @@
-# YunoHost project organisation
+---
+title: Project organisation
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/yunohost_project_organization'
+ aliases:
+ - '/project_organization'
+---
+
+! This page is outdated and should be reworked
## Document objective
diff --git a/sponsors_partners_fr.md b/pages/03.community/06.project_sponsors/sponsors_partners.fr.md
similarity index 94%
rename from sponsors_partners_fr.md
rename to pages/03.community/06.project_sponsors/sponsors_partners.fr.md
index 72ea6165..ec7d13ad 100644
--- a/sponsors_partners_fr.md
+++ b/pages/03.community/06.project_sponsors/sponsors_partners.fr.md
@@ -1,4 +1,11 @@
-# Mécènes et partenaires
+---
+title: Mécénes et partenaires
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/sponsors_partners'
+---
Afin d'avancer et de faire fonctionner le projet, en plus du travail des bénévoles et des dons, YunoHost bénéficie du soutien de mécènes et de partenaires.
diff --git a/sponsors_partners.md b/pages/03.community/06.project_sponsors/sponsors_partners.md
similarity index 93%
rename from sponsors_partners.md
rename to pages/03.community/06.project_sponsors/sponsors_partners.md
index 640ff41b..7cb0e06e 100644
--- a/sponsors_partners.md
+++ b/pages/03.community/06.project_sponsors/sponsors_partners.md
@@ -1,4 +1,11 @@
-# Sponsors and partners
+---
+title: Sponsors and partners
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/sponsors_partners'
+---
In order to advance and make the project works, in addition to the work of volunteers and donations, YunoHost benefits from the support of sponsors and partners.
diff --git a/project_budget_fr.md b/pages/03.community/07.project_budget/project_budget.fr.md
similarity index 89%
rename from project_budget_fr.md
rename to pages/03.community/07.project_budget/project_budget.fr.md
index 608578bf..b2b5a3c6 100644
--- a/project_budget_fr.md
+++ b/pages/03.community/07.project_budget/project_budget.fr.md
@@ -1,4 +1,11 @@
-# Budget du projet
+---
+title: Budget du projet
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/project_budget'
+---
# Budget prévisionnel pour 2019/2020
diff --git a/project_budget.md b/pages/03.community/07.project_budget/project_budget.md
similarity index 88%
rename from project_budget.md
rename to pages/03.community/07.project_budget/project_budget.md
index 7d00f71b..19f4e059 100644
--- a/project_budget.md
+++ b/pages/03.community/07.project_budget/project_budget.md
@@ -1,4 +1,11 @@
-# Project budget
+---
+title: Project budget
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/project_budget'
+---
# Estimated budget for 2020/2021
diff --git a/communication.md b/pages/03.community/08.project_press/communication.md
similarity index 92%
rename from communication.md
rename to pages/03.community/08.project_press/communication.md
index 0ccaab57..93e0ce5e 100644
--- a/communication.md
+++ b/pages/03.community/08.project_press/communication.md
@@ -1,4 +1,11 @@
-# Communication
+---
+title: Communication
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/communication'
+---
## Talks / conf
@@ -21,10 +28,9 @@
## Articles / Press review
-
-
-
-
+[](https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic)
+[](https://www.linux-pratique.com/2016/07/et-si-vous-passiez-a-lauto-hebergement/)
+[](https://www.linux-magazine.com/Issues/2018/208/YunoHost)
* LinuxFr (french):
- [YunoHost 2.0 : self hosting at click range](https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic)
- [Internet cube and YunoHost projects evolutions](https://linuxfr.org/news/evolutions-des-projets-la-brique-internet-et-yunohost-des-versions-2-2-2-4-et-2-5)
diff --git a/security_team_fr.md b/pages/03.community/09.security_team/security_team.fr.md
similarity index 85%
rename from security_team_fr.md
rename to pages/03.community/09.security_team/security_team.fr.md
index a3ae1720..3186cffb 100644
--- a/security_team_fr.md
+++ b/pages/03.community/09.security_team/security_team.fr.md
@@ -1,4 +1,11 @@
-# Équipe sécurité
+---
+title: Équipe sécurité
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/security_team'
+---
Contactez l'équipe sécurité par email : `security@yunohost.org`.
diff --git a/security_team.md b/pages/03.community/09.security_team/security_team.md
similarity index 80%
rename from security_team.md
rename to pages/03.community/09.security_team/security_team.md
index a0e1686f..fd97120b 100644
--- a/security_team.md
+++ b/pages/03.community/09.security_team/security_team.md
@@ -1,4 +1,11 @@
-# Security team
+---
+title: Security team
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/security_team'
+---
Contact the security team by mail: `security@yunohost.org`.
@@ -12,4 +19,4 @@ uid YunoHost Security
sub 4096R/446838AF 2016-07-01
```
-See https://gist.github.com/opi/4496024dc3ff29ab2e068fd57092ab7c or https://twitter.com/yunohost/status/748975105393459200 for other trustable fingerprints
\ No newline at end of file
+See https://gist.github.com/opi/4496024dc3ff29ab2e068fd57092ab7c or https://twitter.com/yunohost/status/748975105393459200 for other trustable fingerprints
diff --git a/use_case_non-profit_organisations_ca.md b/pages/03.community/10.ngo/use_case_non-profit_organisations.ca.md
similarity index 97%
rename from use_case_non-profit_organisations_ca.md
rename to pages/03.community/10.ngo/use_case_non-profit_organisations.ca.md
index 55d1a1ba..23deee39 100644
--- a/use_case_non-profit_organisations_ca.md
+++ b/pages/03.community/10.ngo/use_case_non-profit_organisations.ca.md
@@ -1,16 +1,13 @@
-# YunoHost per a organitzacions sense ànim de lucre
-
-## Taula de continguts
-* [Introducció](#introduction)
-* [Qui](#who)
-* [Què](#what)
-* [Quan](#when)
-* [On](#where)
-* [Per què](#why)
-* [Com](#how)
-* [Conclusió](#conclusion)
-
-## Introducció
+---
+title: Use cases for NGOs
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/use_case_non-profit_organisations'
+page-toc:
+ active: true
+---
L'objectiu d'aquest document és presentar un cas d'ús específic de [YunoHost](https://yunohost.org) per a organitzacions sense ànim de lucre.
diff --git a/use_case_non-profit_organisations_fr.md b/pages/03.community/10.ngo/use_case_non-profit_organisations.fr.md
similarity index 97%
rename from use_case_non-profit_organisations_fr.md
rename to pages/03.community/10.ngo/use_case_non-profit_organisations.fr.md
index dcf43fda..7d217971 100644
--- a/use_case_non-profit_organisations_fr.md
+++ b/pages/03.community/10.ngo/use_case_non-profit_organisations.fr.md
@@ -1,16 +1,13 @@
-# YunoHost pour les organisations à but non lucratif
-
-## Table des matières
-* [Introduction](#introduction)
-* [Qui ](#qui)
-* [Quoi](#quoi)
-* [Quand](#quand)
-* [Où](#o-)
-* [Pourquoi](#pourquoi)
-* [Comment](#comment)
-* [Conclusion](#conclusion)
-
-## Introduction
+---
+title: Cas d'usages pour associations
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/use_case_non-profit_organisations'
+page-toc:
+ active: true
+---
L'objet de ce document est de présenter une utilisation spécifique de [YunoHost](https://yunohost.org/) pour des organisations à but non lucratif.
diff --git a/use_case_non-profit_organisations.md b/pages/03.community/10.ngo/use_case_non-profit_organisations.md
similarity index 95%
rename from use_case_non-profit_organisations.md
rename to pages/03.community/10.ngo/use_case_non-profit_organisations.md
index a63dafe7..0b585731 100644
--- a/use_case_non-profit_organisations.md
+++ b/pages/03.community/10.ngo/use_case_non-profit_organisations.md
@@ -1,18 +1,15 @@
-# YunoHost for non-profit organizations
+---
+title: Use cases for NGOs
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/use_case_non-profit_organisations'
+page-toc:
+ active: true
+---
-## Table of Contents
-* [Introduction](#introduction)
-* [Who](#who)
-* [What](#what)
-* [When](#when)
-* [Where](#where)
-* [Why](#why)
-* [How](#how)
-* [Conclusion](#conclusion)
-
-## Introduction
-
-The object of this document is to present a specific use of [YunoHost](https://yunohost.org/) for non-profit organizations.
+The purpose of this document is to present a specific use of [YunoHost](https://yunohost.org/) for non-profit organizations.
## Who
diff --git a/use_case_non-profit_organisations_oc.md b/pages/03.community/10.ngo/use_case_non-profit_organisations.oc.md
similarity index 97%
rename from use_case_non-profit_organisations_oc.md
rename to pages/03.community/10.ngo/use_case_non-profit_organisations.oc.md
index 26297a99..563c0fd7 100644
--- a/use_case_non-profit_organisations_oc.md
+++ b/pages/03.community/10.ngo/use_case_non-profit_organisations.oc.md
@@ -1,16 +1,13 @@
-# YunoHost per organizacion sens tòca lucrativa
-
-## Ensenhador
-* [Introduccion](#introduccion)
-* [Qual ](#qual)
-* [Qué](#qué)
-* [Quand](#quand)
-* [Ont](#ont)
-* [Perque](#perque)
-* [Cossí](#cossí)
-* [Conclusion](#conclusion)
-
-## Introduccion
+---
+title: Use cases for NGOs
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/use_case_non-profit_organisations'
+page-toc:
+ active: true
+---
L'objectiu d’aqueste document es de presentar una utilizacion especifica de [YunoHost](https://yunohost.org/) per d’organizacions sens tòca lucrativa.
diff --git a/pages/03.community/11.chatons/chatons.fr.md b/pages/03.community/11.chatons/chatons.fr.md
new file mode 100644
index 00000000..40519d6b
--- /dev/null
+++ b/pages/03.community/11.chatons/chatons.fr.md
@@ -0,0 +1,5 @@
+---
+title: Créer son CHATONS avec YunoHost
+template: docs
+redirect: 'https://wiki.chatons.org/doku.php/yunohost'
+---
diff --git a/pages/03.community/11.chatons/chatons.md b/pages/03.community/11.chatons/chatons.md
new file mode 100644
index 00000000..df888eec
--- /dev/null
+++ b/pages/03.community/11.chatons/chatons.md
@@ -0,0 +1,5 @@
+---
+title: Creating a CHATONS with YunoHost
+template: docs
+redirect: 'https://wiki.chatons.org/doku.php/yunohost'
+---
diff --git a/pages/03.community/community.fr.md b/pages/03.community/community.fr.md
new file mode 100644
index 00000000..5a297ef5
--- /dev/null
+++ b/pages/03.community/community.fr.md
@@ -0,0 +1,10 @@
+---
+title: Communauté
+template: chapter
+taxonomy:
+ category: docs
+routes:
+ default: '/community'
+---
+
+# Communauté
diff --git a/pages/03.community/community.md b/pages/03.community/community.md
new file mode 100644
index 00000000..6c3134eb
--- /dev/null
+++ b/pages/03.community/community.md
@@ -0,0 +1,10 @@
+---
+title: Community
+template: chapter
+taxonomy:
+ category: docs
+routes:
+ default: '/community'
+---
+
+# Community
diff --git a/doc_writing_guide_fr.md b/pages/04.contribute/02.write_documentation/01.writing_documentation_guide/doc_writing_guide.fr.md
similarity index 92%
rename from doc_writing_guide_fr.md
rename to pages/04.contribute/02.write_documentation/01.writing_documentation_guide/doc_writing_guide.fr.md
index e8eb73eb..d8f8a481 100644
--- a/doc_writing_guide_fr.md
+++ b/pages/04.contribute/02.write_documentation/01.writing_documentation_guide/doc_writing_guide.fr.md
@@ -1,4 +1,11 @@
-# Guide de rédaction de la documentation des applications
+---
+title: Guide de rédaction de la documentation des applications
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/doc_writing_guide'
+---
## Page de documentation utilisateurs·rices / administrateurs⋅rices
diff --git a/doc_writing_guide.md b/pages/04.contribute/02.write_documentation/01.writing_documentation_guide/doc_writing_guide.md
similarity index 92%
rename from doc_writing_guide.md
rename to pages/04.contribute/02.write_documentation/01.writing_documentation_guide/doc_writing_guide.md
index 605c840f..0b9451f8 100644
--- a/doc_writing_guide.md
+++ b/pages/04.contribute/02.write_documentation/01.writing_documentation_guide/doc_writing_guide.md
@@ -1,4 +1,11 @@
-# Guide to writing application documentation
+---
+title: Guide to writing application documentation
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/doc_writing_guide'
+---
## Users / Administrators documentation pages
diff --git a/doc_markdown_guide_fr.md b/pages/04.contribute/02.write_documentation/02.markdown_guide/doc_markdown_guide.fr.md
similarity index 95%
rename from doc_markdown_guide_fr.md
rename to pages/04.contribute/02.write_documentation/02.markdown_guide/doc_markdown_guide.fr.md
index 1483e0df..2ab742ab 100644
--- a/doc_markdown_guide_fr.md
+++ b/pages/04.contribute/02.write_documentation/02.markdown_guide/doc_markdown_guide.fr.md
@@ -1,4 +1,11 @@
-# Guide Markdown
+---
+title: Guide Markdown
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/doc_markdown_guide'
+---
Le Markdown est un langage de balisage créé en 2004, de nombreux add-on développant les possibilités de ce langage existent. L'objectif de ce guide est de tendre vers l’exhaustivité des possibilités de ce langage de formatage dans le cadre de la documentation de YunoHost et non des langages Markdown en général.
@@ -87,16 +94,16 @@ Il ne reste plus qu'à désigner l'ancre au texte que l'on souhaite rendre inter
Pour afficher des images, le principe est identique aux liens, excepté l'ajout d'un `!` avant le texte à afficher qui est ici considéré comme le texte à afficher en cas d'impossibilité de chargement de l'image. Une description de l'image convient.
```markdown
-
+
```
-
+
Il est possible de faire un lien avec une image, exemple :
```markdown
-[](/write_documentation)
+[](/write_documentation)
```
-[](/write_documentation)
+[](/write_documentation)
L'encart de *texte à afficher en cas d'impossibilité de chargement de l'image* entre les crochets dans le lien de l'image n'est pas obligatoire mais fortement recommandé.
@@ -210,14 +217,14 @@ Pour créer un tableau, il faut utiliser la barre verticale `|` (appelé 'pipe')
| **Un tableau** | Une colonne | Une seconde | Autant que l'on veut |
|:--------------:|:-----------:|:-----------:|:--------------------:|
| Une ligne formatée | | Et du **texte en gras** | Ou en *italique* |
-| D'autres lignes | | | [Ou un lien](/contributordoc) |
+| D'autres lignes | | | [Ou un lien](/contributordoc) |
```
Ce qui affichera ça :
| **Un tableau** | Une colonne | Une seconde | Autant que l'on veut |
|:--------------:|:-----------:|:-----------:|:--------------------:|
| Une ligne formatée | | Et du **texte en gras** | Ou en *italique* |
-| D'autres lignes | | | [Ou un lien](/contributordoc) |
+| D'autres lignes | | | [Ou un lien](/contributordoc) |
## Bloc de codes
diff --git a/doc_markdown_guide.md b/pages/04.contribute/02.write_documentation/02.markdown_guide/doc_markdown_guide.md
similarity index 95%
rename from doc_markdown_guide.md
rename to pages/04.contribute/02.write_documentation/02.markdown_guide/doc_markdown_guide.md
index bf1b6933..17ab7cf8 100644
--- a/doc_markdown_guide.md
+++ b/pages/04.contribute/02.write_documentation/02.markdown_guide/doc_markdown_guide.md
@@ -1,4 +1,11 @@
-# Guide Markdown
+---
+title: Guide Markdown
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/doc_markdown_guide'
+---
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.
@@ -87,16 +94,16 @@ All that remains is to designate the anchor to the text you want to make interac
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)
```
-[](/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.
@@ -210,14 +217,14 @@ To create an array, use the vertical bar `|` and dashes `--`. It is mandatory to
| **One table** | One column | One second | As many as you want |
|:-------------:|:----------:|:----------:|:-------------------:|
| | And formatted line | | And bold text | | Or *italic* |
-| More lines | | | [Or a link](/contributordoc) |
+| More lines | | | [Or a link](/contributordoc) |
```
Which would say this:
| **One table** | One column | One second | As many as you want |
|:-------------:|:----------:|:----------:|:-------------------:|
| | And formatted line | | And bold text | | Or *italic* |
-| More lines | | | [Or a link](/contributordoc) |
+| More lines | | | [Or a link](/contributordoc) |
## Code block
diff --git a/doc_use_git_fr.md b/pages/04.contribute/02.write_documentation/03.git/doc_use_git.fr.md
similarity index 95%
rename from doc_use_git_fr.md
rename to pages/04.contribute/02.write_documentation/03.git/doc_use_git.fr.md
index 30336f45..ddcf1516 100644
--- a/doc_use_git_fr.md
+++ b/pages/04.contribute/02.write_documentation/03.git/doc_use_git.fr.md
@@ -1,4 +1,11 @@
-# Propulser une contribution avec Git
+---
+title: Propulser une contribution avec Git
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/doc_use_git'
+---
Il est bien sûr possible de contribuer directement sur la documentation de YunoHost, mais ce n’est pas la manière la plus pratique de le faire tant pour le·la contributeur·rice que pour la personne qui va injecter votre contribution dans la documentation. Voici un tutoriel pour comprendre et créer une contribution à la documentation de YunoHost en utilisant l’outil [Git (en)](https://git-scm.com/) et [github.com](http://github.com/) qui est le service de forge Git qui héberge et stocke le code source de YunoHost ainsi que sa documentation.
@@ -11,10 +18,10 @@ Vous n’êtes pas obligé·e de donner vos noms et prénoms, vous pouvez utilis
Forker le code source permet de créer une nouvelle branche de développement d’un code source de logiciel ou dans le cas présent, le code source de la documentation. En créant une nouvelle branche, cela vous permet de modifier le code et d’ajouter vos contributions sans altérer le code de la branche `master` qui est le rendu public de la documentation. Ce qui vous permet de ne pas devoir tout marquer mais le faire en plusieurs étapes. (Notamment pour les contributions demandant plus de temps de travail).
Forker un projet sur GitHub est extrêmement simple, il suffit de cliquer sur le bouton Fork, cela créera un nouveau dépôt sur votre espace de GitHub.
-
+
Dans le titre du nouveau dépôt, vous verrez de quelle provenance vient le dépôt, dans le cas présent `YunoHost/doc`
-
+
> **Point de vigilance !**
diff --git a/doc_use_git.md b/pages/04.contribute/02.write_documentation/03.git/doc_use_git.md
similarity index 94%
rename from doc_use_git.md
rename to pages/04.contribute/02.write_documentation/03.git/doc_use_git.md
index 8fb30563..7726cfa7 100644
--- a/doc_use_git.md
+++ b/pages/04.contribute/02.write_documentation/03.git/doc_use_git.md
@@ -1,4 +1,11 @@
-# Propel a contribution with GitHub
+---
+title: Propel a contribution with GitHub
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/doc_use_git'
+---
It is of course possible to contribute directly to the YunoHost documentation, but this is not the most convenient way to do so for both the contributor and the person who will inject your contribution into the documentation. Here is a tutorial to understand and create a contribution to the YunoHost documentation using [Git](https://git-scm.com/) and [github.com](http://github.com/) which is the Git forge service that hosts and stores the YunoHost source code and documentation.
@@ -10,9 +17,9 @@ You don't have to give your first and last names, you can use a nickname (when y
To fork the source code allows you to create a new branch of development of a software source code or in this case the source code of the documentation. By creating a new branch, this allows you to modify the code and add your contributions without altering the code of the `master` branch, which is the public release of the documentation. This allows you not to have to write down everything at once, but to do it in several steps. (Especially for contributions that require more time).
Forking a project on GitHub is extremely simple, just click on the Fork button, this will create a new repository on your GitHub account.
-
+
In the title of the new repository, you will see where the repository comes from, in this case `YunoHost/doc`.
-
+
> **Point of vigilance !**
> If you forge the repository of another contributor than yunohost, you'll get the same files. Except that when you send your changes, they will be sent to the contributor and not to the yunohost repository. The advantage is that it allows you to develop another branch created by the contributor and work with another person on an improvement before submitting it to the main repository.
diff --git a/write_documentation_fr.md b/pages/04.contribute/02.write_documentation/write_documentation.fr.md
similarity index 72%
rename from write_documentation_fr.md
rename to pages/04.contribute/02.write_documentation/write_documentation.fr.md
index 9edde852..4ab275bc 100644
--- a/write_documentation_fr.md
+++ b/pages/04.contribute/02.write_documentation/write_documentation.fr.md
@@ -1,4 +1,13 @@
-# Rédaction de la documentation
+---
+title: Rédaction de la documentation
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/write_documentation'
+---
+
+! This page is outdated and should be reworked
## Sur le site
@@ -14,4 +23,4 @@ La documentation de YunoHost est gérée par un [dépot Git](https://github.com/
## Syntaxe
-La documentation utilise la syntaxe Markdown. Veuillez vous référer à la [documentation](doc_markdown_guide) pour plus d’informations.
+La documentation utilise la syntaxe Markdown. Veuillez vous référer à la [documentation](/doc_markdown_guide) pour plus d’informations.
diff --git a/write_documentation.md b/pages/04.contribute/02.write_documentation/write_documentation.md
similarity index 79%
rename from write_documentation.md
rename to pages/04.contribute/02.write_documentation/write_documentation.md
index 377c0628..755e63bf 100644
--- a/write_documentation.md
+++ b/pages/04.contribute/02.write_documentation/write_documentation.md
@@ -1,4 +1,13 @@
-# Write documentation
+---
+title: Write documentation
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/write_documentation'
+---
+
+! This page is outdated and should be reworked
## Online
@@ -18,4 +27,4 @@ Because the online editor doesn't support uploading files, using Git is the pref
## Syntax
-This page uses the markdown syntax, please refer to the [documentation](doc_markdown_guide) for further information.
+This page uses the markdown syntax, please refer to the [documentation](/doc_markdown_guide) for further information.
diff --git a/packaging_apps_fr.md b/pages/04.contribute/04.packaging_apps/02.technical_intro/packaging_apps.fr.md
similarity index 68%
rename from packaging_apps_fr.md
rename to pages/04.contribute/04.packaging_apps/02.technical_intro/packaging_apps.fr.md
index 0a396835..9f8a1d75 100644
--- a/packaging_apps_fr.md
+++ b/pages/04.contribute/04.packaging_apps/02.technical_intro/packaging_apps.fr.md
@@ -1,7 +1,18 @@
-# Packaging d’applications
+---
+title: Packaging d'applications
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps'
+---
+
+
Ce document a pour but de vous apprendre à packager une application pour YunoHost.
+! This page is outdated and should be reworked
+
### 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 ;
@@ -20,60 +31,30 @@ Un paquet YunoHost est composé :
* d’un fichier `LICENSE` contenant la licence du paquet
* d’une page de présentation du paquet contenu dans un fichier `README.md`
-Paquet de base n’hésitez pas à vous en servir comme base de travail.
+[div class="btn btn-lg btn-default"] [Paquet de base](https://github.com/YunoHost/example_ynh) [/div] n’hésitez pas à vous en servir comme base de travail.
## Manifeste
-Manifeste
+[div class="btn btn-lg btn-default"] [Manifeste](/packaging_apps_manifest) [/div]
## Les scripts
-Scripts
+[div class="btn btn-lg btn-default"] [Scripts](/packaging_apps_scripts) [/div]
### 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
+[div class="btn btn-lg btn-default"] [Gestion des arguments](/packaging_apps_arguments_management) [/div]
### Configuration NGINX
-Configuration NGINX
+[div class="btn btn-lg btn-default"] [Configuration NGINX](/packaging_apps_nginx_conf) [/div]
### Multi-instance
-Multi-instance
+[div class="btn btn-lg btn-default"] [Multi-instance](/packaging_apps_multiinstance) [/div]
### Hooks
-Hooks
+[div class="btn btn-lg btn-default"] [Hooks](/packaging_apps_hooks) [/div]
### 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`.
-
-Il est possible de spécifier la date de début en commençant le nom de fichier par la date `YYYYMMDD-HHMMSS`.
-
-Exemple de fichier de log d'indexation :
-```bash
-log_path: /chemin/vers/le/fichier.log
-```
-
-Il est possible d'afficher des infos complémentaires, la variable env sera affichée dans la partie "Contexte" :
-```bash
-extra:
- env:
- args1: value1
- args2: value2
- args3: value3
-```
-
-Il est possible de rattacher le log à une application précise et/ou un service, un nom de domaine, une personne :
-```bash
-related_to:
- - ['app', 'APPNAME']
- - ['service', 'SERVICE1']
- - ['service', 'SERVICE2']
- - ['domain', 'DOMAIN.TLD']
-```
-
-Ces informations seront utilisées pour permettre de filtrer les logs en relation avec une de ces entités application, service, domaine, personne.
+[div class="btn btn-lg btn-default"] [Commandes pratiques](/packaging_apps_helpers) [/div]
### Améliorer la qualité du paquet d’installation
@@ -89,7 +70,7 @@ Vous trouverez ci-dessous une liste des points à vérifier concernant la qualit
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
+[div class="btn btn-lg btn-default"] [Vérificateur de paquets](https://github.com/YunoHost/package_checker) [/div]
Il s’agit d’un script Python qui vérifie :
* que le paquet est à jour concernant les dernières spécifications
@@ -100,7 +81,7 @@ Il s’agit d’un script Python qui vérifie :
### Intégration continue
Un serveur d'intégration continue est a disposition des packagers désirant tester leurs applications.
-Intégration continue
+[div class="btn btn-lg btn-default"] [Intégration continue](packaging_apps_ci) [/div]
### Publiez et demandez des tests de votre application
diff --git a/packaging_apps.md b/pages/04.contribute/04.packaging_apps/02.technical_intro/packaging_apps.md
similarity index 73%
rename from packaging_apps.md
rename to pages/04.contribute/04.packaging_apps/02.technical_intro/packaging_apps.md
index e6b32749..33da1b70 100644
--- a/packaging_apps.md
+++ b/pages/04.contribute/04.packaging_apps/02.technical_intro/packaging_apps.md
@@ -1,7 +1,18 @@
-# App packaging
+---
+title: App packaging
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps'
+---
+
+
The purpose of this document is to teach you how to package an application for YunoHost.
+! This page is outdated and should be reworked
+
### 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;
@@ -17,25 +28,25 @@ A YunoHost package is composed of:
* A `LICENSE` file containing the license of the package
* A presentation page of your package in a `README.md` file
- A basic package
+[div class="btn btn-lg btn-default"] [ A basic package](https://github.com/YunoHost/example_ynh) [/div]
feel free to use it as a framework.
## Manifest
-Manifest
+[div class="btn btn-lg btn-default"] [Manifest](/packaging_apps_manifest) [/div]
## Scripts
-Scripts
+[div class="btn btn-lg btn-default"] [Scripts](/packaging_apps_scripts) [/div]
### 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
+[div class="btn btn-lg btn-default"] [Arguments management](/packaging_apps_arguments_management) [/div]
### NGINX configuration
-NGINX configuration
+[div class="btn btn-lg btn-default"] [NGINX configuration](/packaging_apps_nginx_conf) [/div]
### Multi-instance
-Multi-instance
+[div class="btn btn-lg btn-default"] [Multi-instance](/packaging_apps_multiinstance) [/div]
### Hooks
YunoHost provides a hook system, which is accessible via the packager's script callbacks in command line.
@@ -46,38 +57,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
-
-### Registering a log file
-
-In a lot of case, you might want to register a log file created by your app, to make it available in the webadmin. To register a log, you can create a reference file `/var/log/yunohost/categories/app/APPNAME.yml`.
-
-You can specify a start date by starting the file name with the date formatted as `YYYYMMDD-HHMMSS`.
-
-Example of yml metadata log file:
-```bash
-log_path: /path/to/your/log/file.log
-```
-
-If you want display some context info, you can add:
-```bash
-extra:
- env:
- args1: value1
- args2: value2
- args3: value3
-```
-
-You can attach the log to an app, domain, service or user like this :
-```bash
-related_to:
- - ['app', 'APPNAME']
- - ['service', 'SERVICE1']
- - ['service', 'SERVICE2']
- - ['domain', 'DOMAIN.TLD']
-```
-
-This will be used to filter logs and display all log related to an entity like a user, a domain, an app or a service.
+[div class="btn btn-lg btn-default"] [Helpers](/packaging_apps_helpers) [/div]
### Test it!
In order to test your package, you can execute your script standalone as `admin` (do not forget to append required arguments):
@@ -104,10 +84,10 @@ Here is a list of best practices for application install scripts:
* scripts should be tested on Debian Buster 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), 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
+[div class="btn btn-lg btn-default"] [Package checker](https://github.com/YunoHost/package_checker) [/div]
This Python script checks:
* that the package is up to date wich last specifications
@@ -118,7 +98,7 @@ This Python script checks:
### Continuous integration
A continuous integration server is available for packagers who want to test their apps.
-Continuous integration
+[div class="btn btn-lg btn-default"] [Continuous integration](packaging_apps_ci) [/div]
### Publish and ask for testing your application
diff --git a/packaging_apps_git_fr.md b/pages/04.contribute/04.packaging_apps/03.git/packaging_apps_git.fr.md
similarity index 97%
rename from packaging_apps_git_fr.md
rename to pages/04.contribute/04.packaging_apps/03.git/packaging_apps_git.fr.md
index 599c4078..c2ed3187 100644
--- a/packaging_apps_git_fr.md
+++ b/pages/04.contribute/04.packaging_apps/03.git/packaging_apps_git.fr.md
@@ -1,4 +1,11 @@
-# Comment utiliser Git pour packager les applications
+---
+title: Utiliser Git pour packager les applications
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_git'
+---
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.
@@ -23,14 +30,14 @@ La branche master est la branche qui contient la version de l'application que le
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.
@@ -39,7 +46,7 @@ Si vous avez la permission d'écrire, vous allez simplement modifier le fichier,
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.
@@ -67,7 +74,7 @@ Il se peut que vous deviez tout de même forker sur votre propre compte pour pou
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.
@@ -116,7 +123,7 @@ Dans le contexte d'un nouveau package, vous devrez également créer un dépôt
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.
diff --git a/packaging_apps_git.md b/pages/04.contribute/04.packaging_apps/03.git/packaging_apps_git.md
similarity index 97%
rename from packaging_apps_git.md
rename to pages/04.contribute/04.packaging_apps/03.git/packaging_apps_git.md
index 6093cef1..58062371 100644
--- a/packaging_apps_git.md
+++ b/pages/04.contribute/04.packaging_apps/03.git/packaging_apps_git.md
@@ -1,4 +1,11 @@
-# How to use Git to package apps
+---
+title: Use Git to package apps
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_git'
+---
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.
@@ -23,14 +30,14 @@ The master branch is the branch that contains the version of the app users will
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.
@@ -39,7 +46,7 @@ If you have the permission to write, you will just edit the file, without forkin
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.
@@ -67,7 +74,7 @@ You may still need to fork on your own account to be able to save your modificat
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.
@@ -116,7 +123,7 @@ In the context of a new package, you will also need to create a repository on Gi
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.
diff --git a/packaging_apps_virtualbox_fr.md b/pages/04.contribute/04.packaging_apps/04.virtualbox/packaging_apps_virtualbox.fr.md
similarity index 93%
rename from packaging_apps_virtualbox_fr.md
rename to pages/04.contribute/04.packaging_apps/04.virtualbox/packaging_apps_virtualbox.fr.md
index b2ef0158..7911e92d 100644
--- a/packaging_apps_virtualbox_fr.md
+++ b/pages/04.contribute/04.packaging_apps/04.virtualbox/packaging_apps_virtualbox.fr.md
@@ -1,4 +1,11 @@
-# Créer un environnement de développement avec VirtualBox
+---
+title: Créer un environnement de développement avec VirtualBox
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_virtualbox'
+---
Cette page de documentation va vous expliquer comment mettre en place un serveur YunoHost virtuel, avec VirtualBox, pour travailler sur le packaging d'application.
@@ -40,14 +47,14 @@ Avant de commencer à jouer avec la machine virtuelle, il convient de faire un p
Arrêtez la machine virtuelle avant tout.
La gestion des instantanés se fait dans l'onglet "Instantanés"
-
+
Et on crée un premier instantané
-
+
À présent on peut commencer à travailler sur la machine virtuelle et créer autant d'instantanés que souhaité pour jalonner le travail.
-
+
Dans cet exemple, on pourra facilement revenir en arrière, après avoir testé la suppression du package par exemple et restaurer la machine virtuelle dans l'état précédent avec le package encore installé avec succès.
Et lorsque le package sera pleinement fonctionnel, il suffira de supprimer les instantanés liés à ce package pour revenir à l'état initial de la machine virtuelle.
@@ -57,14 +64,14 @@ Nous disposerons ainsi d'un serveur YunoHost vierge de toute installation d'appl
En plus de l'usage d'instantanés successifs, il est également possible de dériver un nouvel état actuel et de nouveaux instantanés depuis un instantané plus ancien que le dernier.
-
+
Dans cet exemple, j'ai dérivé deux branches depuis mon installation réussie du package, pour tester indépendamment la suppression simple de l'application, l'upgrade et le backup/restore.
Finalement je suis reparti de la base de la machine virtuelle pour démarrer un nouveau test sur un autre package, sans pour autant abandonner le précédent test.
À tout moment, il est possible de revenir sur un instantané précédent en le restaurant.
La machine démarrera toujours sur l'"État actuel".
-
+
> Il est toujours possible de créer un nouvel instantané, que la machine soit à l'arrêt ou non.
Mais pour restaurer un instantané, la machine ne doit pas être en cours d'exécution.
@@ -87,6 +94,6 @@ ssh admin@11.22.33.44
Pour copier facilement les fichiers du package ou utiliser un éditeur de texte graphique, on peut également se connecter en sftp avec un explorateur de fichier.
Il suffit de se connecter à l'adresse `sftp://admin@mon.domain/` avec l'explorateur.
-
+
> Sur Windows ou macOS, l'explorateur de fichier ne supporte pas nativement le protocole sftp…
diff --git a/packaging_apps_virtualbox.md b/pages/04.contribute/04.packaging_apps/04.virtualbox/packaging_apps_virtualbox.md
similarity index 92%
rename from packaging_apps_virtualbox.md
rename to pages/04.contribute/04.packaging_apps/04.virtualbox/packaging_apps_virtualbox.md
index 3516b4b8..0a3b6c9a 100644
--- a/packaging_apps_virtualbox.md
+++ b/pages/04.contribute/04.packaging_apps/04.virtualbox/packaging_apps_virtualbox.md
@@ -1,4 +1,11 @@
-# Create a development environment with VirtualBox
+---
+title: Create a development environment with VirtualBox
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_virtualbox'
+---
This documentation page aims at explaining how to setup a YunoHost virtual server, using VirtualBox, to work on application packaging.
@@ -40,14 +47,14 @@ Before starting to play with the virtual machine, now is a good time to take a f
First, stop the virtual machine.
Managing snapshots is done in the 'Snapshots' tab
-
+
Here, we're creating a first snapshot
-
+
We can now start to work on the virtual machine and create as many snapshots as desired for each milestone of our modifications.
-
+
In this example, after having validated our particular package removal works fine, we can easily get back in time by restoring the virtual machine to its previous state with the package still installed.
Once the package will be fully functional, it will just be a matter of deleting the snaphots associated with this package work to get the virtual machine back to its initial state.
@@ -57,14 +64,14 @@ For our next test, we will then be back to a freshly installed YunoHost serveur,
In addition to successive snapshots, it is also possible to create a new machine state and additional snapshots from an older machine snapshot/state.
-
+
In this example, I have created two branches since my successful package installation, so as to independently test just the application removal, upgrade and backup/restore steps.
I eventually got back to the virtual machine base state to start a new test on another package, without dropping my former test whatsoever.
At any time, it is possible to get back to a previous snapshot simply by restoring it.
The machine always start on the "Current state" state.
-
+
> It is always possible to create a new snapshot, whether the machine is stopped or not. To restore a snapshot however, the machine cannot be running.
@@ -86,6 +93,6 @@ We can now work on the virtual machine using the commandline.
To easily copy the package files or use a graphical text editor, one can also connect via `sftp` using a file explorer.
It's a simple matter of using the `sftp://admin@my.domain/` address.
-
+
> Note: on Windows or macOS, the file explorer does not natively support the `sftp` protocol...
diff --git a/packaging_apps_manifest_fr.md b/pages/04.contribute/04.packaging_apps/05.manifest/packaging_apps_manifest.fr.md
similarity index 97%
rename from packaging_apps_manifest_fr.md
rename to pages/04.contribute/04.packaging_apps/05.manifest/packaging_apps_manifest.fr.md
index 50a9c611..5942df1a 100644
--- a/packaging_apps_manifest_fr.md
+++ b/pages/04.contribute/04.packaging_apps/05.manifest/packaging_apps_manifest.fr.md
@@ -1,4 +1,11 @@
-Packaging d’application
+---
+title: Packaging d'application
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_manifest'
+---
## Manifeste
Le fichier `manifest.json` définit les constantes de l’application, un ensemble de valeurs dont YunoHost a besoin pour identifier l’application et l’installer correctement. Voici un exemple :
diff --git a/packaging_apps_manifest.md b/pages/04.contribute/04.packaging_apps/05.manifest/packaging_apps_manifest.md
similarity index 96%
rename from packaging_apps_manifest.md
rename to pages/04.contribute/04.packaging_apps/05.manifest/packaging_apps_manifest.md
index f4407aa1..e01a0e97 100644
--- a/packaging_apps_manifest.md
+++ b/pages/04.contribute/04.packaging_apps/05.manifest/packaging_apps_manifest.md
@@ -1,4 +1,11 @@
-Application packaging
+---
+title: Application packaging
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_manifest'
+---
## Manifest
The `manifest.json` file defines the app's constants, a bunch of values that YunoHost needs to identify the app and install it correctly. It looks like this:
diff --git a/packaging_apps_scripts_fr.md b/pages/04.contribute/04.packaging_apps/06.scripts/packaging_apps_scripts.fr.md
similarity index 96%
rename from packaging_apps_scripts_fr.md
rename to pages/04.contribute/04.packaging_apps/06.scripts/packaging_apps_scripts.fr.md
index 8854f287..ce5869b2 100644
--- a/packaging_apps_scripts_fr.md
+++ b/pages/04.contribute/04.packaging_apps/06.scripts/packaging_apps_scripts.fr.md
@@ -1,6 +1,11 @@
-Packaging d’application
-
-## Les scripts
+---
+title: Scripts
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_scripts'
+---
Un paquet YunoHost doit contenir cinq scripts Shell : `install`, `remove`, `upgrade`, `backup` et `restore`. Un 6ème script `change_url` peut aussi être ajouté de façon optionnelle.
Ces scripts seront exécutés en tant que `root` sur les serveurs YunoHost.
diff --git a/packaging_apps_scripts.md b/pages/04.contribute/04.packaging_apps/06.scripts/packaging_apps_scripts.md
similarity index 95%
rename from packaging_apps_scripts.md
rename to pages/04.contribute/04.packaging_apps/06.scripts/packaging_apps_scripts.md
index 6e4f6f88..28862b55 100644
--- a/packaging_apps_scripts.md
+++ b/pages/04.contribute/04.packaging_apps/06.scripts/packaging_apps_scripts.md
@@ -1,6 +1,11 @@
-Application packaging
-
-## Scripts
+---
+title: Scripts
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_scripts'
+---
For now, a YunoHost package must contain five Shell scripts: `install`, `remove`, `upgrade`, `backup` and `restore`. A 6th script `change_url` can also be added optionally.
These scripts will be executed as `root` on the YunoHost instances.
diff --git a/packaging_apps_arguments_format.md b/pages/04.contribute/04.packaging_apps/07.arguments/01.arguments_format/packaging_apps_arguments_format.md
similarity index 97%
rename from packaging_apps_arguments_format.md
rename to pages/04.contribute/04.packaging_apps/07.arguments/01.arguments_format/packaging_apps_arguments_format.md
index 7663d2a9..010748c8 100644
--- a/packaging_apps_arguments_format.md
+++ b/pages/04.contribute/04.packaging_apps/07.arguments/01.arguments_format/packaging_apps_arguments_format.md
@@ -1,4 +1,11 @@
-# YunoHost Arguments Format
+---
+title: YunoHost Arguments Format
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_arguments_format'
+---
In YunoHost application developpement there are several places where you end up
writting questions for your user like in the `manifest.json/toml`, the
diff --git a/packaging_apps_arguments_management_fr.md b/pages/04.contribute/04.packaging_apps/07.arguments/packaging_apps_arguments_management.fr.md
similarity index 88%
rename from packaging_apps_arguments_management_fr.md
rename to pages/04.contribute/04.packaging_apps/07.arguments/packaging_apps_arguments_management.fr.md
index 6694ac94..729ea1b8 100644
--- a/packaging_apps_arguments_management_fr.md
+++ b/pages/04.contribute/04.packaging_apps/07.arguments/packaging_apps_arguments_management.fr.md
@@ -1,6 +1,12 @@
-Packaging d’application
+---
+title: Gestion des arguments
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_arguments_management'
+---
-## Gestion des arguments
#### Récupérer les arguments du manifeste dans le script d’installation
Les arguments sont passés au script d’installation dans l’ordre du manifeste. Par exemple pour Roundcube, les arguments `domain` et `path` seront respectivement récupérés via les variables d’environnement ou les paramètres `$1` et `$2` dans le script d’installation.
diff --git a/packaging_apps_arguments_management.md b/pages/04.contribute/04.packaging_apps/07.arguments/packaging_apps_arguments_management.md
similarity index 86%
rename from packaging_apps_arguments_management.md
rename to pages/04.contribute/04.packaging_apps/07.arguments/packaging_apps_arguments_management.md
index 130e3de4..03300782 100644
--- a/packaging_apps_arguments_management.md
+++ b/pages/04.contribute/04.packaging_apps/07.arguments/packaging_apps_arguments_management.md
@@ -1,6 +1,12 @@
-Application packaging
+---
+title: Arguments management
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_arguments_management'
+---
-## Arguments management
#### Retrieve arguments in the install script from manifest
Arguments are given to the install script from the manifest in it's order. For instance, for Roundcube, `domain` and `path` arguments will respectively be retreived from environment variables or from `$1` and `$2` parameters in the install script.
diff --git a/packaging_apps_permissions.md b/pages/04.contribute/04.packaging_apps/08.groups_permissions/packaging_apps_permissions.md
similarity index 97%
rename from packaging_apps_permissions.md
rename to pages/04.contribute/04.packaging_apps/08.groups_permissions/packaging_apps_permissions.md
index 0a36b39e..637932a7 100644
--- a/packaging_apps_permissions.md
+++ b/pages/04.contribute/04.packaging_apps/08.groups_permissions/packaging_apps_permissions.md
@@ -1,4 +1,11 @@
-# User groups and permissions
+---
+title: User groups and permissions
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_permissions'
+---
Installing an app creates the permission `app.main` with `all_users` allowed by default.
diff --git a/packaging_apps_nginx_conf_fr.md b/pages/04.contribute/04.packaging_apps/09.nginx/packaging_apps_nginx_conf.fr.md
similarity index 69%
rename from packaging_apps_nginx_conf_fr.md
rename to pages/04.contribute/04.packaging_apps/09.nginx/packaging_apps_nginx_conf.fr.md
index 0061701e..14dc2e5f 100644
--- a/packaging_apps_nginx_conf_fr.md
+++ b/pages/04.contribute/04.packaging_apps/09.nginx/packaging_apps_nginx_conf.fr.md
@@ -1,4 +1,11 @@
-# Configuration NGINX
+---
+title: Configuration NGINX
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_nginx_conf'
+---
Ce tutoriel a pour but d’aider à la mise en place d’une configuration NGINX pour le packaging d’application.
@@ -7,24 +14,24 @@ La configuration doit être mise dans `conf/nginx.conf`. Il s’agira d’utilis
* **FastCGI** est utilisé dans les applications PHP :
```nginx
location YNH_EXAMPLE_PATH {
- alias YNH_WWW_PATH ;
- if ($scheme = http) {
- rewrite ^ https://$server_name$request_uri? permanent;
- }
- index index.php;
- try_files $uri $uri/ index.php;
- location ~ [^/]\.php(/|$) {
- fastcgi_split_path_info ^(.+?\.php)(/.*)$;
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi_params;
- fastcgi_param REMOTE_USER $remote_user;
- fastcgi_param PATH_INFO $fastcgi_path_info;
- fastcgi_param SCRIPT_FILENAME $request_filename;
- }
+ alias YNH_WWW_PATH ;
+ if ($scheme = http) {
+ rewrite ^ https://$server_name$request_uri? permanent;
+ }
+ index index.php;
+ try_files $uri $uri/ index.php;
+ location ~ [^/]\.php(/|$) {
+ fastcgi_split_path_info ^(.+?\.php)(/.*)$;
+ fastcgi_pass unix:/var/run/php5-fpm.sock;
+ fastcgi_index index.php;
+ include fastcgi_params;
+ fastcgi_param REMOTE_USER $remote_user;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ fastcgi_param SCRIPT_FILENAME $request_filename;
+ }
- # Include SSOWAT user panel.
- include conf.d/yunohost_panel.conf.inc;
+ # Include SSOWAT user panel.
+ include conf.d/yunohost_panel.conf.inc;
}
```
diff --git a/packaging_apps_nginx_conf.md b/pages/04.contribute/04.packaging_apps/09.nginx/packaging_apps_nginx_conf.md
similarity index 66%
rename from packaging_apps_nginx_conf.md
rename to pages/04.contribute/04.packaging_apps/09.nginx/packaging_apps_nginx_conf.md
index 2d50ee27..f6999fb6 100644
--- a/packaging_apps_nginx_conf.md
+++ b/pages/04.contribute/04.packaging_apps/09.nginx/packaging_apps_nginx_conf.md
@@ -1,4 +1,11 @@
-# NGINX configuration
+---
+title: NGINX configuration
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_nginx_conf'
+---
This tutorial aim to help setup NGINX configuration for application packaging.
@@ -7,24 +14,24 @@ Configuration must be in `conf/nginx.conf`. We must use **FastCGI** or a **proxy
* **FastCGI** is used with PHP applications:
```nginx
location YNH_EXAMPLE_PATH {
- alias YNH_WWW_PATH ;
- if ($scheme = http) {
- rewrite ^ https://$server_name$request_uri? permanent;
- }
- index index.php;
- try_files $uri $uri/ index.php;
- location ~ [^/]\.php(/|$) {
- fastcgi_split_path_info ^(.+?\.php)(/.*)$;
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi_params;
- fastcgi_param REMOTE_USER $remote_user;
- fastcgi_param PATH_INFO $fastcgi_path_info;
- fastcgi_param SCRIPT_FILENAME $request_filename;
- }
+ alias YNH_WWW_PATH ;
+ if ($scheme = http) {
+ rewrite ^ https://$server_name$request_uri? permanent;
+ }
+ index index.php;
+ try_files $uri $uri/ index.php;
+ location ~ [^/]\.php(/|$) {
+ fastcgi_split_path_info ^(.+?\.php)(/.*)$;
+ fastcgi_pass unix:/var/run/php5-fpm.sock;
+ fastcgi_index index.php;
+ include fastcgi_params;
+ fastcgi_param REMOTE_USER $remote_user;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ fastcgi_param SCRIPT_FILENAME $request_filename;
+ }
- # Include SSOWAT user panel.
- include conf.d/yunohost_panel.conf.inc;
+ # Include SSOWAT user panel.
+ include conf.d/yunohost_panel.conf.inc;
}
```
diff --git a/packaging_apps_multiinstance_fr.md b/pages/04.contribute/04.packaging_apps/10.multi_instance/packaging_apps_multiinstance.fr.md
similarity index 89%
rename from packaging_apps_multiinstance_fr.md
rename to pages/04.contribute/04.packaging_apps/10.multi_instance/packaging_apps_multiinstance.fr.md
index b6c72f1d..df26be28 100644
--- a/packaging_apps_multiinstance_fr.md
+++ b/pages/04.contribute/04.packaging_apps/10.multi_instance/packaging_apps_multiinstance.fr.md
@@ -1,6 +1,12 @@
-Packaging d’application
+---
+title: Multi-instances
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_multiinstance'
+---
-### Multi-instances
Le multi-instance est la capacité d’une application à être installée plusieurs fois.
#### Scripts
diff --git a/packaging_apps_multiinstance.md b/pages/04.contribute/04.packaging_apps/10.multi_instance/packaging_apps_multiinstance.md
similarity index 88%
rename from packaging_apps_multiinstance.md
rename to pages/04.contribute/04.packaging_apps/10.multi_instance/packaging_apps_multiinstance.md
index 55d2433a..a9318a6a 100644
--- a/packaging_apps_multiinstance.md
+++ b/pages/04.contribute/04.packaging_apps/10.multi_instance/packaging_apps_multiinstance.md
@@ -1,6 +1,12 @@
-Application packaging
+---
+title: Multi-instances
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_multiinstance'
+---
-### Multi-instance
Multi-instance is application capacity to be installed several times.
#### Scripts
diff --git a/pages/04.contribute/04.packaging_apps/11.helpers/packaging_apps_helpers.md b/pages/04.contribute/04.packaging_apps/11.helpers/packaging_apps_helpers.md
new file mode 100644
index 00000000..9ab374f1
--- /dev/null
+++ b/pages/04.contribute/04.packaging_apps/11.helpers/packaging_apps_helpers.md
@@ -0,0 +1,3364 @@
+---
+title: App helpers
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_helpers'
+---
+
+Doc auto-generated by [this script](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/doc/generate_helper_doc.py) on 02/07/2021 (Yunohost version 4.1.7)
+
+
+### APT
+
+**ynh_package_is_installed**
+[details summary="Check either a package is installed or not" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_package_is_installed --package=name`
+
+
+**Arguments**:
+
+
+- `-p`, `--package=`: the package name to check
+
+
+
+
+
+**Example**: `ynh_package_is_installed --package=yunohost && echo "ok"`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L56)
+[/details]
+----------------
+
+**ynh_package_version**
+[details summary="Get the version of an installed package" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_package_version --package=name`
+
+
+**Arguments**:
+
+
+- `-p`, `--package=`: the package name to get version
+
+
+
+
+
+**Returns**: the version or an empty string
+
+
+**Example**: `version=$(ynh_package_version --package=yunohost)`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L78)
+[/details]
+----------------
+
+**ynh_package_update**
+[details summary="Update package index files" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_package_update`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L111)
+[/details]
+----------------
+
+**ynh_package_install**
+[details summary="Install package(s)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_package_install name [name [...]]`
+
+
+**Arguments**:
+
+
+- `name`: the package name to install
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L121)
+[/details]
+----------------
+
+**ynh_package_remove**
+[details summary="Remove package(s)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_package_remove name [name [...]]`
+
+
+**Arguments**:
+
+
+- `name`: the package name to remove
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L132)
+[/details]
+----------------
+
+**ynh_package_autoremove**
+[details summary="Remove package(s) and their uneeded dependencies" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_package_autoremove name [name [...]]`
+
+
+**Arguments**:
+
+
+- `name`: the package name to remove
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L142)
+[/details]
+----------------
+
+**ynh_package_autopurge**
+[details summary="Purge package(s) and their uneeded dependencies" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_package_autopurge name [name [...]]`
+
+
+**Arguments**:
+
+
+- `name`: the package name to autoremove and purge
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.2 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L152)
+[/details]
+----------------
+
+**ynh_install_app_dependencies**
+[details summary="Define and install dependencies with a equivs control file" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_install_app_dependencies dep [dep [...]]`
+
+
+**Arguments**:
+
+
+- `dep`: the package name to install in dependence. Writing "dep3|dep4|dep5" can be used to specify alternatives. For example : dep1 dep2 "dep3|dep4|dep5" will require to install dep1 and dep 2 and (dep3 or dep4 or dep5).
+
+
+
+
+
+
+
+
+**Details**:
+This helper can/should only be called once per appexample : ynh\_install\_app\_dependencies dep1 dep2 "dep3|dep4|dep5"Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L222)
+[/details]
+----------------
+
+**ynh_add_app_dependencies**
+[details summary="Add dependencies to install with ynh_install_app_dependencies" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_add_app_dependencies --package=phpversion [--replace]`
+
+
+**Arguments**:
+
+
+- `-p`, `--package=`: Packages to add as dependencies for the app.
+
+
+
+- `-r`, `--replace`: Replace dependencies instead of adding to existing ones.
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.8.1 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L295)
+[/details]
+----------------
+
+**ynh_remove_app_dependencies**
+[details summary="Remove fake package and its dependencies" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_remove_app_dependencies`
+
+
+
+
+
+
+**Details**:
+Dependencies will removed only if no other package need them.Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L327)
+[/details]
+----------------
+
+**ynh_install_extra_app_dependencies**
+[details summary="Install packages from an extra repository properly." class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_install_extra_app_dependencies --repo="repo" --package="dep1 dep2" [--key=key_url] [--name=name]`
+
+
+**Arguments**:
+
+
+- `-r`, `--repo=`: Complete url of the extra repository.
+
+
+
+- `-p`, `--package=`: The packages to install from this extra repository
+
+
+
+- `-k`, `--key=`: url to get the public key.
+
+
+
+- `-n`, `--name=`: Name for the files for this repo, $app as default value.
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.8.1 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/apt#L341)
+[/details]
+----------------
+
+
+### BACKUP
+
+**ynh_backup**
+[details summary="Add a file or a directory to the list of paths to backup" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_backup --src_path=src_path [--dest_path=dest_path] [--is_big] [--not_mandatory]`
+
+
+**Arguments**:
+
+
+- `-s`, `--src_path=`: file or directory to bind or symlink or copy. it shouldn't be in the backup dir.
+
+
+
+- `-d`, `--dest_path=`: destination file or directory inside the backup dir
+
+
+
+- `-b`, `--is_big`: Indicate data are big (mail, video, image ...)
+
+
+
+- `-m`, `--not_mandatory`: Indicate that if the file is missing, the backup can ignore it.
+
+
+
+- `arg`: Deprecated arg
+
+
+
+
+
+
+
+
+**Details**:
+This helper can be used both in a system backup hook, and in an app backup scriptDetails: ynh\_backup writes SRC and the relative DEST into a CSV file. And itcreates the parent destination directoryIf DEST is ended by a slash it complete this path with the basename of SRC.Example in the context of a wordpress appynh\_backup "/etc/nginx/conf.d/$domain.d/$app.conf"# => This line will be added into CSV file# "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf"ynh\_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/nginx.conf"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"ynh\_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"ynh\_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf"#Deprecated usages (maintained for retro-compatibility)ynh\_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "${backup\_dir}/conf/nginx.conf"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"ynh\_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "/conf/"# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"How to use --is\_big:--is\_big is used to specify that this part of the backup can be quite huge.So, you don't want that your package does backup that part during ynh\_backup\_before\_upgrade.In the same way, an user may doesn't want to backup this big part of the app for each of his backup. And so handle that part differently.As this part of your backup may not be done, your restore script has to handle it.In your restore script, use --not\_mandatory with ynh\_restore\_fileAs well in your remove script, you should not remove those data ! Or an user may end up with a failed upgrade restoring an app without data anymore !To have the benefit of --is\_big while doing a backup, you can whether set the environement variable BACKUP\_CORE\_ONLY to 1 (BACKUP\_CORE\_ONLY=1) before the backup command. It will affect only that backup command.Or set the config do\_not\_backup\_data to 1 into the settings.yml of the app. This will affect all backups for this app until the setting is removed.Requires YunoHost version 2.4.0 or higher.Requires YunoHost version 3.5.0 or higher for the argument --not\_mandatory
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/backup#L63)
+[/details]
+----------------
+
+**ynh_restore**
+[details summary="Restore all files that were previously backuped in a core backup script or app backup script" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_restore`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/backup#L186)
+[/details]
+----------------
+
+**ynh_restore_file**
+[details summary="Restore a file or a directory" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_restore_file --origin_path=origin_path [--dest_path=dest_path] [--not_mandatory]`
+
+
+**Arguments**:
+
+
+- `-o`, `--origin_path=`: Path where was located the file or the directory before to be backuped or relative path to $YNH_CWD where it is located in the backup archive
+
+
+
+- `-d`, `--dest_path=`: Path where restore the file or the dir, if unspecified, the destination will be ORIGIN_PATH or if the ORIGIN_PATH doesn't exist in the archive, the destination will be searched into backup.csv
+
+
+
+- `-m`, `--not_mandatory`: Indicate that if the file is missing, the restore process can ignore it.
+
+
+
+
+
+
+
+**Examples**:
+
+
+- ` ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"`
+
+
+
+- `You can also use relative paths:`
+
+
+
+- ` ynh_restore_file "conf/nginx.conf"`
+
+
+
+
+
+**Details**:
+Use the registered path in backup\_list by ynh\_backup to restore the file atthe right place.If DEST\_PATH already exists and is lighter than 500 Mo, a backup will be made in/home/yunohost.conf/backup/. Otherwise, the existing file is removed.if apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf exists, restore it into/etc/nginx/conf.d/$domain.d/$app.confif no, search for a match in the csv (eg: conf/nginx.conf) and restore it into/etc/nginx/conf.d/$domain.d/$app.confRequires YunoHost version 2.6.4 or higher.Requires YunoHost version 3.5.0 or higher for the argument --not\_mandatory
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/backup#L247)
+[/details]
+----------------
+
+**ynh_store_file_checksum**
+[details summary="Calculate and store a file checksum into the app settings" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_store_file_checksum --file=file`
+
+
+**Arguments**:
+
+
+- `-f`, `--file=`: The file on which the checksum will performed, then stored.
+
+
+
+
+
+
+
+
+**Details**:
+$app should be defined when calling this helperRequires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/backup#L325)
+[/details]
+----------------
+
+**ynh_backup_if_checksum_is_different**
+[details summary="Verify the checksum and backup the file if it's different" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_backup_if_checksum_is_different --file=file`
+
+
+**Arguments**:
+
+
+- `-f`, `--file=`: The file on which the checksum test will be perfomed.
+
+
+
+
+
+**Returns**: the name of a backup file, or nothing
+
+
+
+
+
+**Details**:
+This helper is primarily meant to allow to easily backup personalised/manuallymodified config files.Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/backup#L357)
+[/details]
+----------------
+
+**ynh_delete_file_checksum**
+[details summary="Delete a file checksum from the app settings" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_delete_file_checksum --file=file`
+
+
+**Arguments**:
+
+
+- `-f`, `--file=`: The file for which the checksum will be deleted
+
+
+
+
+
+
+
+
+**Details**:
+$app should be defined when calling this helperRequires YunoHost version 3.3.1 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/backup#L390)
+[/details]
+----------------
+
+**ynh_backup_before_upgrade**
+[details summary="Make a backup in case of failed upgrade" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_backup_before_upgrade
+ ynh_clean_setup () {
+ ynh_restore_upgradebackup
+ }
+ ynh_abort_if_errors`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.2 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/backup#L412)
+[/details]
+----------------
+
+**ynh_restore_upgradebackup**
+[details summary="Restore a previous backup if the upgrade process failed" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_backup_before_upgrade
+ ynh_clean_setup () {
+ ynh_restore_upgradebackup
+ }
+ ynh_abort_if_errors`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.2 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/backup#L461)
+[/details]
+----------------
+
+
+### FAIL2BAN
+
+**ynh_add_fail2ban_config**
+[details summary="Create a dedicated fail2ban config (jail and filter conf files)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `1: ynh_add_fail2ban_config --logpath=log_file --failregex=filter [--max_retry=max_retry] [--ports=ports]
+2: ynh_add_fail2ban_config --use_template [--others_var="list of others variables to replace"]
+| for example : 'var_1 var_2 ...'`
+
+
+**Arguments**:
+
+
+- `-l`, `--logpath=`: Log file to be checked by fail2ban
+
+
+
+- `-r`, `--failregex=`: Failregex to be looked for by fail2ban
+
+
+
+- `-m`, `--max_retry=`: Maximum number of retries allowed before banning IP address - default: 3
+
+
+
+- `-p`, `--ports=`: Ports blocked for a banned IP address - default: http,https
+
+
+
+- `-t`, `--use_template`: Use this helper in template mode
+
+
+
+- `-v`, `--others_var=`: List of others variables to replace separeted by a space
+
+
+
+
+
+
+
+
+**Details**:
+-----------------------------------------------------------------------------This will use a template in ../conf/f2b\_jail.conf and ../conf/f2b\_filter.conf \_\_APP\_\_ by $appYou can dynamically replace others variables by example : \_\_VAR\_1\_\_ by $var\_1 \_\_VAR\_2\_\_ by $var\_2Generally your template will look like that by example (for synapse):f2b\_jail.conf: [\_\_APP\_\_] enabled = true port = http,https filter = \_\_APP\_\_ logpath = /var/log/\_\_APP\_\_/logfile.log maxretry = 3f2b\_filter.conf: [INCLUDES] before = common.conf [Definition]# Part of regex definition (just used to make more easy to make the global regex) \_\_synapse\_start\_line = .? \- synapse\..+ \-# Regex definition. failregex = ^%(\_\_synapse\_start\_line)s INFO \- POST\-(\d+)\- \- \d+ \- Received request\: POST /\_matrix/client/r0/login\??%(\_\_synapse\_start\_line)s INFO \- POST\-\1\- Got login request with identifier: \{u'type': u'm.id.user', u'user'\: u'(.+?)'\}, medium\: None, address: None, user\: u'\5'%(\_\_synapse\_start\_line)s WARNING \- \- (Attempted to login as @\5\:.+ but they do not exist|Failed password login for user @\5\:.+)$ignoreregex =-----------------------------------------------------------------------------Note about the "failregex" option: regex to match the password failure messages in the logfile. The host must be matched by a group named "host". The tag "" can be used for standard IP/hostname matching and is only an alias for (?:::f{4,6}:)?(?P[\w\-.^\_]+)You can find some more explainations about how to make a regex here : https://www.fail2ban.org/wiki/index.php/MANUAL\_0\_8#FiltersNote that the logfile need to exist before to call this helper !!To validate your regex you can test with this command:fail2ban-regex /var/log/YOUR\_LOG\_FILE\_PATH /etc/fail2ban/filter.d/YOUR\_APP.confRequires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/fail2ban#L65)
+[/details]
+----------------
+
+**ynh_remove_fail2ban_config**
+[details summary="Remove the dedicated fail2ban config (jail and filter conf files)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_remove_fail2ban_config`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/fail2ban#L150)
+[/details]
+----------------
+
+
+### GETOPTS
+
+
+### HARDWARE
+
+**ynh_get_ram**
+[details summary="Get the total or free amount of RAM+swap on the system" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_get_ram [--free|--total] [--ignore_swap|--only_swap]`
+
+
+**Arguments**:
+
+
+- `-f`, `--free`: Count free RAM+swap
+
+
+
+- `-t`, `--total`: Count total RAM+swap
+
+
+
+- `-s`, `--ignore_swap`: Ignore swap, consider only real RAM
+
+
+
+- `-o`, `--only_swap`: Ignore real RAM, consider only swap
+
+
+
+
+
+**Returns**: the amount of free ram
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.8.1 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/hardware#L13)
+[/details]
+----------------
+
+**ynh_require_ram**
+[details summary="Return 0 or 1 depending if the system has a given amount of RAM+swap free or total" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_require_ram --required=RAM required in Mb [--free|--total] [--ignore_swap|--only_swap]
+| exit: Return 1 if the ram is under the requirement, 0 otherwise.`
+
+
+**Arguments**:
+
+
+- `-r`, `--required=`: The amount to require, in Mb
+
+
+
+- `-f`, `--free`: Count free RAM+swap
+
+
+
+- `-t`, `--total`: Count total RAM+swap
+
+
+
+- `-s`, `--ignore_swap`: Ignore swap, consider only real RAM
+
+
+
+- `-o`, `--only_swap`: Ignore real RAM, consider only swap
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.8.1 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/hardware#L82)
+[/details]
+----------------
+
+
+### LOGGING
+
+**ynh_die**
+[details summary="Print a message to stderr and exit" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_die --message=MSG [--ret_code=RETCODE]`
+
+
+**Arguments**:
+
+
+- `-m`, `--message=`: Message to display
+
+
+
+- `-c`, `--ret_code=`: Exit code to exit with
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.4.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L10)
+[/details]
+----------------
+
+**ynh_print_info**
+[details summary="Display a message in the 'INFO' logging category" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_print_info --message="Some message"`
+
+
+**Arguments**:
+
+
+- `-m`, `--message=`: Message to display
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L30)
+[/details]
+----------------
+
+**ynh_print_warn**
+[details summary="Print a warning on stderr" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_print_warn --message="Text to print"`
+
+
+**Arguments**:
+
+
+- `-m`, `--message=`: The text to print
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L75)
+[/details]
+----------------
+
+**ynh_print_err**
+[details summary="Print an error on stderr" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_print_err --message="Text to print"`
+
+
+**Arguments**:
+
+
+- `-m`, `--message=`: The text to print
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L92)
+[/details]
+----------------
+
+**ynh_exec_err**
+[details summary="Execute a command and print the result as an error" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_exec_err your_command
+ynh_exec_err "your_command | other_command"`
+
+
+**Arguments**:
+
+
+- `command`: command to execute
+
+
+
+
+
+
+
+
+**Details**:
+When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L114)
+[/details]
+----------------
+
+**ynh_exec_warn**
+[details summary="Execute a command and print the result as a warning" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_exec_warn your_command
+ynh_exec_warn "your_command | other_command"`
+
+
+**Arguments**:
+
+
+- `command`: command to execute
+
+
+
+
+
+
+
+
+**Details**:
+When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L129)
+[/details]
+----------------
+
+**ynh_exec_warn_less**
+[details summary="Execute a command and force the result to be printed on stdout" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_exec_warn_less your_command
+ynh_exec_warn_less "your_command | other_command"`
+
+
+**Arguments**:
+
+
+- `command`: command to execute
+
+
+
+
+
+
+
+
+**Details**:
+When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L144)
+[/details]
+----------------
+
+**ynh_exec_quiet**
+[details summary="Execute a command and redirect stdout in /dev/null" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_exec_quiet your_command
+ynh_exec_quiet "your_command | other_command"`
+
+
+**Arguments**:
+
+
+- `command`: command to execute
+
+
+
+
+
+
+
+
+**Details**:
+When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L159)
+[/details]
+----------------
+
+**ynh_exec_fully_quiet**
+[details summary="Execute a command and redirect stdout and stderr in /dev/null" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_exec_fully_quiet your_command
+ynh_exec_fully_quiet "your_command | other_command"`
+
+
+**Arguments**:
+
+
+- `command`: command to execute
+
+
+
+
+
+
+
+
+**Details**:
+When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L174)
+[/details]
+----------------
+
+**ynh_print_OFF**
+[details summary="Remove any logs for all the following commands." class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_print_OFF`
+
+
+
+
+
+
+**Details**:
+WARNING: You should be careful with this helper, and never forget to use ynh\_print\_ON as soon as possible to restore the logging.Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L185)
+[/details]
+----------------
+
+**ynh_print_ON**
+[details summary="Restore the logging after ynh_print_OFF" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_print_ON`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.2.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L194)
+[/details]
+----------------
+
+**ynh_script_progression**
+[details summary="Print a progress bar showing the progression of an app script" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_script_progression --message=message [--weight=weight] [--time]`
+
+
+**Arguments**:
+
+
+- `-m`, `--message=`: The text to print
+
+
+
+- `-w`, `--weight=`: The weight for this progression. This value is 1 by default. Use a bigger value for a longer part of the script.
+
+
+
+- `-t`, `--time`: Print the execution time since the last call to this helper. Especially usefull to define weights. The execution time is given for the duration since the previous call. So the weight should be applied to this previous call.
+
+
+
+- `-l`, `--last`: Use for the last call of the helper, to fill the progression bar.
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L222)
+[/details]
+----------------
+
+**ynh_return**
+[details summary="Return data to the Yunohost core for later processing
+(to be used by special hooks like app config panel and core diagnosis)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_return somedata`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.6.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L307)
+[/details]
+----------------
+
+**ynh_debug**
+[details summary="Debugger for app packagers" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_debug [--message=message] [--trace=1/0]`
+
+
+**Arguments**:
+
+
+- `-m`, `--message=`: The text to print
+
+
+
+- `-t`, `--trace=`: Turn on or off the trace of the script. Usefull to trace nonly a small part of a script.
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L318)
+[/details]
+----------------
+
+**ynh_debug_exec**
+[details summary="Execute a command and print the result as debug" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_debug_exec your_command
+ynh_debug_exec "your_command | other_command"`
+
+
+**Arguments**:
+
+
+- `command`: command to execute
+
+
+
+
+
+
+
+
+**Details**:
+When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logging#L375)
+[/details]
+----------------
+
+
+### LOGROTATE
+
+**ynh_use_logrotate**
+[details summary="Use logrotate to manage the logfile" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_use_logrotate [--logfile=/log/file] [--nonappend] [--specific_user=user/group]`
+
+
+**Arguments**:
+
+
+- `-l`, `--logfile=`: absolute path of logfile
+
+
+
+- `-n`, `--nonappend`: (optional) Replace the config file instead of appending this new config.
+
+
+
+- `-u`, `--specific_user=`: run logrotate as the specified user and group. If not specified logrotate is runned as root.
+
+
+
+
+
+
+
+
+**Details**:
+If no --logfile is provided, /var/log/${app} will be used as default.logfile can be just a directory, or a full path to a logfile :/parentdir/logdir/parentdir/logdir/logfile.logIt's possible to use this helper multiple times, each config will be added tothe same logrotate config file. Unless you use the option --non-appendRequires YunoHost version 2.6.4 or higher.Requires YunoHost version 3.2.0 or higher for the argument --specific\_user
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logrotate#L20)
+[/details]
+----------------
+
+**ynh_remove_logrotate**
+[details summary="Remove the app's logrotate config." class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_remove_logrotate`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/logrotate#L108)
+[/details]
+----------------
+
+
+### MYSQL
+
+**ynh_mysql_connect_as**
+[details summary="Open a connection as a user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_mysql_connect_as --user=user --password=password [--database=database]`
+
+
+**Arguments**:
+
+
+- `-u`, `--user=`: the user name to connect as
+
+
+
+- `-p`, `--password=`: the user password
+
+
+
+- `-d`, `--database=`: the database to connect to
+
+
+
+
+
+**Example**: `ynh_mysql_connect_as --user="user" --password="pass" <<< "UPDATE ...;" example: ynh_mysql_connect_as --user="user" --password="pass" < /path/to/file.sql`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/mysql#L16)
+[/details]
+----------------
+
+**ynh_mysql_execute_as_root**
+[details summary="Execute a command as root user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_mysql_execute_as_root --sql=sql [--database=database]`
+
+
+**Arguments**:
+
+
+- `-s`, `--sql=`: the SQL command to execute
+
+
+
+- `-d`, `--database=`: the database to connect to
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/mysql#L37)
+[/details]
+----------------
+
+**ynh_mysql_execute_file_as_root**
+[details summary="Execute a command from a file as root user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_mysql_execute_file_as_root --file=file [--database=database]`
+
+
+**Arguments**:
+
+
+- `-f`, `--file=`: the file containing SQL commands
+
+
+
+- `-d`, `--database=`: the database to connect to
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/mysql#L63)
+[/details]
+----------------
+
+**ynh_mysql_dump_db**
+[details summary="Dump a database" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_mysql_dump_db --database=database`
+
+
+**Arguments**:
+
+
+- `-d`, `--database=`: the database name to dump
+
+
+
+
+
+**Returns**: the mysqldump output
+
+
+**Example**: `ynh_mysql_dump_db --database=roundcube > ./dump.sql`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/mysql#L135)
+[/details]
+----------------
+
+**ynh_mysql_user_exists**
+[details summary="Check if a mysql user exists" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_mysql_user_exists --user=user
+| exit: Return 1 if the user doesn't exist, 0 otherwise.`
+
+
+**Arguments**:
+
+
+- `-u`, `--user=`: the user for which to check existence
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/mysql#L167)
+[/details]
+----------------
+
+**ynh_mysql_setup_db**
+[details summary="Create a database, an user and its password. Then store the password in the app's config" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_mysql_setup_db --db_user=user --db_name=name [--db_pwd=pwd]`
+
+
+**Arguments**:
+
+
+- `-u`, `--db_user=`: Owner of the database
+
+
+
+- `-n`, `--db_name=`: Name of the database
+
+
+
+- `-p`, `--db_pwd=`: Password of the database. If not provided, a password will be generated
+
+
+
+
+
+
+
+
+**Details**:
+After executing this helper, the password of the created database will be available in $db\_pwdIt will also be stored as "mysqlpwd" into the app settings.Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/mysql#L207)
+[/details]
+----------------
+
+**ynh_mysql_remove_db**
+[details summary="Remove a database if it exists, and the associated user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_mysql_remove_db --db_user=user --db_name=name`
+
+
+**Arguments**:
+
+
+- `-u`, `--db_user=`: Owner of the database
+
+
+
+- `-n`, `--db_name=`: Name of the database
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/mysql#L232)
+[/details]
+----------------
+
+
+### NETWORK
+
+**ynh_find_port**
+[details summary="Find a free port and return it" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_find_port --port=begin_port`
+
+
+**Arguments**:
+
+
+- `-p`, `--port=`: port to start to search
+
+
+
+
+
+**Returns**: the port number
+
+
+**Example**: `port=$(ynh_find_port --port=8080)`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/network#L12)
+[/details]
+----------------
+
+**ynh_port_available**
+[details summary="Test if a port is available" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_find_port --port=XYZ
+| exit: Return 1 if the port is already used by another process.`
+
+
+**Arguments**:
+
+
+- `-p`, `--port=`: port to check
+
+
+
+
+
+**Example**: `ynh_port_available --port=1234 || ynh_die "Port 1234 is needs to be available for this app"`
+
+
+
+
+**Details**:
+Requires YunoHost version 3.8.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/network#L37)
+[/details]
+----------------
+
+**ynh_validate_ip4**
+[details summary="Validate an IPv4 address" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_validate_ip4 --ip_address=ip_address`
+
+
+**Arguments**:
+
+
+- `-i`, `--ip_address=`: the ipv4 address to check
+
+
+
+
+
+**Returns**: 0 for valid ipv4 addresses, 1 otherwise
+
+
+**Example**: `ynh_validate_ip4 111.222.333.444`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/network#L99)
+[/details]
+----------------
+
+**ynh_validate_ip6**
+[details summary="Validate an IPv6 address" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_validate_ip6 --ip_address=ip_address`
+
+
+**Arguments**:
+
+
+- `-i`, `--ip_address=`: the ipv6 address to check
+
+
+
+
+
+**Returns**: 0 for valid ipv6 addresses, 1 otherwise
+
+
+**Example**: `ynh_validate_ip6 2000:dead:beef::1`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/network#L121)
+[/details]
+----------------
+
+
+### NGINX
+
+**ynh_add_nginx_config**
+[details summary="Create a dedicated nginx config" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_add_nginx_config "list of others variables to replace"`
+
+
+**Arguments**:
+
+
+- `list`: (Optional) list of others variables to replace separated by spaces. For example : 'path_2 port_2 ...'
+
+
+
+
+
+
+
+
+**Details**:
+This will use a template in ../conf/nginx.conf \_\_PATH\_\_ by $path\_url \_\_DOMAIN\_\_ by $domain \_\_PORT\_\_ by $port \_\_NAME\_\_ by $app \_\_FINALPATH\_\_ by $final\_path \_\_PHPVERSION\_\_ by $YNH\_PHP\_VERSION ($YNH\_PHP\_VERSION is either the default php version or the version defined for the app)And dynamic variables (from the last example) : \_\_PATH\_2\_\_ by $path\_2 \_\_PORT\_2\_\_ by $port\_2Requires YunoHost version 2.7.2 or higher.Requires YunoHost version 2.7.13 or higher for dynamic variables
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/nginx#L23)
+[/details]
+----------------
+
+**ynh_remove_nginx_config**
+[details summary="Remove the dedicated nginx config" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_remove_nginx_config`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.2 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/nginx#L77)
+[/details]
+----------------
+
+
+### NODEJS
+
+**ynh_use_nodejs**
+[details summary="Load the version of node for an app, and set variables." class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_use_nodejs`
+
+
+
+
+
+
+**Details**:
+ynh\_use\_nodejs has to be used in any app scripts before using node for the first time.This helper will provide alias and variables to use in your scripts.To use npm or node, use the alias `ynh\_npm` and `ynh\_node`Those alias will use the correct version installed for the appFor example: use `ynh\_npm install` instead of `npm install`With `sudo` or `ynh\_exec\_as`, use instead the fallback variables `$ynh\_npm` and `$ynh\_node`And propagate $PATH to sudo with $ynh\_node\_load\_PATHExemple: `ynh\_exec\_as $app $ynh\_node\_load\_PATH $ynh\_npm install`$PATH contains the path of the requested version of node.However, $PATH is duplicated into $node\_PATH to outlast any manipulation of $PATHYou can use the variable `$ynh\_node\_load\_PATH` to quickly load your node version in $PATH for an usage into a separate script.Exemple: $ynh\_node\_load\_PATH $final\_path/script\_that\_use\_npm.sh`Finally, to start a nodejs service with the correct version, 2 solutions Either the app is dependent of node or npm, but does not called it directly. In such situation, you need to load PATH `Environment="\_\_NODE\_ENV\_PATH\_\_"` `ExecStart=\_\_FINALPATH\_\_/my\_app` You will replace \_\_NODE\_ENV\_PATH\_\_ with $ynh\_node\_load\_PATHOr node start the app directly, then you don't need to load the PATH variable `ExecStart=\_\_YNH\_NODE\_\_ my\_app run` You will replace \_\_YNH\_NODE\_\_ with $ynh\_node2 other variables are also available - $nodejs\_path: The absolute path to node binaries for the chosen version. - $nodejs\_version: Just the version number of node for this app. Stored as 'nodejs\_version' in settings.yml.Requires YunoHost version 2.7.12 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/nodejs#L68)
+[/details]
+----------------
+
+**ynh_install_nodejs**
+[details summary="Install a specific version of nodejs" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_install_nodejs --nodejs_version=nodejs_version`
+
+
+**Arguments**:
+
+
+- `-n`, `--nodejs_version=`: Version of node to install. When possible, your should prefer to use major version number (e.g. 8 instead of 8.10.0). The crontab will then handle the update of minor versions when needed.
+
+
+
+
+
+
+
+
+**Details**:
+ynh\_install\_nodejs will install the version of node provided as argument by using n.n (Node version management) uses the PATH variable to store the path of the version of node it is going to use.That's how it changes the versionRefer to ynh\_use\_nodejs for more information about available commands and variablesRequires YunoHost version 2.7.12 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/nodejs#L106)
+[/details]
+----------------
+
+**ynh_remove_nodejs**
+[details summary="Remove the version of node used by the app." class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_remove_nodejs`
+
+
+
+
+
+
+**Details**:
+This helper will check if another app uses the same version of node,if not, this version of node will be removed.If no other app uses node, n will be also removed.Requires YunoHost version 2.7.12 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/nodejs#L187)
+[/details]
+----------------
+
+
+### PERMISSION
+
+**ynh_permission_create**
+[details summary="Create a new permission for the app" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_permission_create --permission="permission" [--url="url"] [--additional_urls="second-url" [ "third-url" ]] [--auth_header=true|false]
+ [--allowed=group1 [ group2 ]] [--label="label"] [--show_tile=true|false]
+ [--protected=true|false]
+| Not that if 'show_tile' is enabled, this URL will be the URL of the tile.
+| Default is "APP_LABEL (permission name)".
+| Default is false (for the permission different than 'main').
+| won't be able to add or remove the visitors group of this permission.
+| By default it's 'false'`
+
+
+**Arguments**:
+
+
+- `-p,`: - the name for the permission (by default a permission named "main" already exist)
+
+
+
+- `-u,`: - (optional) URL for which access will be allowed/forbidden.
+
+
+
+- `-A,`: - (optional) List of additional URL for which access will be allowed/forbidden
+
+
+
+- `-h,`: - (optional) Define for the URL of this permission, if SSOwat pass the authentication header to the application. Default is true
+
+
+
+- `-a,`: - (optional) A list of group/user to allow for the permission
+
+
+
+- `-l,`: - (optional) Define a name for the permission. This label will be shown on the SSO and in the admin.
+
+
+
+- `-t,`: - (optional) Define if a tile will be shown in the SSO. If yes the name of the tile will be the 'label' parameter.
+
+
+
+- `-P,`: - (optional) Define if this permission is protected. If it is protected the administrator
+
+
+
+
+
+
+
+
+**Details**:
+example 1: ynh\_permission\_create --permission=admin --url=/admin --additional\_urls=domain.tld/admin /superadmin --allowed=alice bob \ --label="My app admin" --show\_tile=trueThis example will create a new permission permission with this following effect:- A tile named "My app admin" in the SSO will be available for the users alice and bob. This tile will point to the relative url '/admin'.- Only the user alice and bob will have the access to theses following url: /admin, domain.tld/admin, /superadminexample 2: ynh\_permission\_create --permission=api --url=domain.tld/api --auth\_header=false --allowed=visitors \ --label="MyApp API" --protected=trueThis example will create a new protected permission. So the admin won't be able to add/remove the visitors group of this permission.In case of an API with need to be always public it avoid that the admin break anything.With this permission all client will be allowed to access to the url 'domain.tld/api'.Note that in this case no tile will be show on the SSO.Note that the auth\_header parameter is to 'false'. So no authentication header will be passed to the application.Generally the API is requested by an application and enabling the auth\_header has no advantage and could bring some issues in some case.So in this case it's better to disable this option for all API.If provided, 'url' or 'additional\_urls' is assumed to be relative to the app domain/path if theystart with '/'. For example: / -> domain.tld/app /admin -> domain.tld/app/admin domain.tld/app/api -> domain.tld/app/api'url' or 'additional\_urls' can be treated as a PCRE (not lua) regex if it starts with "re:".For example: re:/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$ re:domain.tld/app/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$Note that globally the parameter 'url' and 'additional\_urls' are same. The only difference is:- 'url' is only one url, 'additional\_urls' can be a list of urls. There are no limitation of 'additional\_urls'- 'url' is used for the url of tile in the SSO (if enabled with the 'show\_tile' parameter)About the authentication header (auth\_header parameter).The SSO pass (by default) to the application theses following HTTP header (linked to the authenticated user) to the application: - "Auth-User": username - "Remote-User": username - "Email": user emailGenerally this feature is usefull to authenticate automatically the user in the application but in some case the application don't work with theses header and theses header need to be disabled to have the application to work correctly.See https://github.com/YunoHost/issues/issues/1420 for more informationsRequires YunoHost version 3.7.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/permission#L69)
+[/details]
+----------------
+
+**ynh_permission_delete**
+[details summary="Remove a permission for the app (note that when the app is removed all permission is automatically removed)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_permission_delete --permission="permission"`
+
+
+**Arguments**:
+
+
+- `-p`, `--permission=`: the name for the permission (by default a permission named "main" is removed automatically when the app is removed)
+
+
+
+
+
+**Example**: `ynh_permission_delete --permission=editors`
+
+
+
+
+**Details**:
+Requires YunoHost version 3.7.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/permission#L164)
+[/details]
+----------------
+
+**ynh_permission_exists**
+[details summary="Check if a permission exists" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_permission_exists --permission=permission
+| exit: Return 1 if the permission doesn't exist, 0 otherwise`
+
+
+**Arguments**:
+
+
+- `-p`, `--permission=`: the permission to check
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.7.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/permission#L181)
+[/details]
+----------------
+
+**ynh_permission_url**
+[details summary="Redefine the url associated to a permission" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_permission_url --permission "permission" [--url="url"] [--add_url="new-url" [ "other-new-url" ]] [--remove_url="old-url" [ "other-old-url" ]]
+ [--auth_header=true|false] [--clear_urls]
+| Note that if you want to remove url you can pass an empty sting as arguments ("").`
+
+
+**Arguments**:
+
+
+- `-p,`: - the name for the permission (by default a permission named "main" is removed automatically when the app is removed)
+
+
+
+- `-u,`: - (optional) URL for which access will be allowed/forbidden.
+
+
+
+- `-a,`: - (optional) List of additional url to add for which access will be allowed/forbidden.
+
+
+
+- `-r,`: - (optional) List of additional url to remove for which access will be allowed/forbidden
+
+
+
+- `-h,`: - (optional) Define for the URL of this permission, if SSOwat pass the authentication header to the application
+
+
+
+- `-c,`: - (optional) Clean all urls (url and additional_urls)
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.7.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/permission#L204)
+[/details]
+----------------
+
+**ynh_permission_update**
+[details summary="Update a permission for the app" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_permission_update --permission "permission" [--add="group" ["group" ...]] [--remove="group" ["group" ...]]
+ [--label="label"] [--show_tile=true|false] [--protected=true|false]
+| won't be able to add or remove the visitors group of this permission.`
+
+
+**Arguments**:
+
+
+- `-p,`: - the name for the permission (by default a permission named "main" already exist)
+
+
+
+- `-a,`: - the list of group or users to enable add to the permission
+
+
+
+- `-r,`: - the list of group or users to remove from the permission
+
+
+
+- `-l,`: - (optional) Define a name for the permission. This label will be shown on the SSO and in the admin.
+
+
+
+- `-t,`: - (optional) Define if a tile will be shown in the SSO
+
+
+
+- `-P,`: - (optional) Define if this permission is protected. If it is protected the administrator
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.7.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/permission#L280)
+[/details]
+----------------
+
+**ynh_permission_has_user**
+[details summary="Check if a permission has an user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_permission_has_user --permission=permission --user=user
+| exit: Return 1 if the permission doesn't have that user or doesn't exist, 0 otherwise`
+
+
+**Arguments**:
+
+
+- `-p`, `--permission=`: the permission to check
+
+
+
+- `-u`, `--user=`: the user seek in the permission
+
+
+
+
+
+**Example**: `ynh_permission_has_user --permission=main --user=visitors`
+
+
+
+
+**Details**:
+Requires YunoHost version 3.7.1 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/permission#L355)
+[/details]
+----------------
+
+**ynh_legacy_permissions_exists**
+[details summary="Check if a legacy permissions exist" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_legacy_permissions_exists
+| exit: Return 1 if the permission doesn't exist, 0 otherwise`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 4.1.2 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/permission#L378)
+[/details]
+----------------
+
+**ynh_legacy_permissions_delete_all**
+[details summary="Remove all legacy permissions" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_legacy_permissions_delete_all`
+
+
+
+**Example**: `if ynh_legacy_permissions_exists then ynh_legacy_permissions_delete_all # You can recreate the required permissions here with ynh_permission_create fi Requires YunoHost version 4.1.2 or higher.`
+
+
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/permission#L399)
+[/details]
+----------------
+
+
+### PHP
+
+**ynh_add_fpm_config**
+[details summary="Create a dedicated PHP-FPM config" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `1: ynh_add_fpm_config [--phpversion=7.X] [--use_template] [--package=packages] [--dedicated_service]
+2: ynh_add_fpm_config [--phpversion=7.X] --usage=usage --footprint=footprint [--package=packages] [--dedicated_service]
+low - Less than 20 MB of RAM by pool.
+medium - Between 20 MB and 40 MB of RAM by pool.
+high - More than 40 MB of RAM by pool.
+Or specify exactly the footprint, the load of the service as MB by pool instead of having a standard value.
+To have this value, use the following command and stress the service.
+watch -n0.5 ps -o user,cmd,%cpu,rss -u APP`
+
+
+**Arguments**:
+
+
+- `-v`, `--phpversion=`: Version of PHP to use.
+
+
+
+- `-t`, `--use_template`: Use this helper in template mode.
+
+
+
+- `-p`, `--package=`: Additionnal PHP packages to install
+
+
+
+- `-d`, `--dedicated_service`: Use a dedicated PHP-FPM service instead of the common one.
+
+
+
+- `-v`, `--phpversion=`: Version of PHP to use.
+
+
+
+- `-f`, `--footprint=`: Memory footprint of the service (low/medium/high).
+
+
+
+- `-u`, `--usage=`: Expected usage of the service (low/medium/high).
+
+
+
+- `-p`, `--package=`: Additionnal PHP packages to install for a specific version of PHP
+
+
+
+- `-d`, `--dedicated_service`: Use a dedicated PHP-FPM service instead of the common one.
+
+
+
+
+
+
+
+
+**Details**:
+-----------------------------------------------------------------------------The footprint of the service will be used to defined the maximum footprint we can allow, which is half the maximum RAM.So it will be used to defined 'pm.max\_children'A lower value for the footprint will allow more children for 'pm.max\_children'. And so for 'pm.start\_servers', 'pm.min\_spare\_servers' and 'pm.max\_spare\_servers' which are defined from the value of 'pm.max\_children'NOTE: 'pm.max\_children' can't exceed 4 times the number of processor's cores.The usage value will defined the way php will handle the children for the pool.A value set as 'low' will set the process manager to 'ondemand'. Children will start only if the service is used, otherwise no child will stay alive. This config gives the lower footprint when the service is idle. But will use more proc since it has to start a child as soon it's used.Set as 'medium', the process manager will be at dynamic. If the service is idle, a number of children equal to pm.min\_spare\_servers will stay alive. So the service can be quick to answer to any request. The number of children can grow if needed. The footprint can stay low if the service is idle, but not null. The impact on the proc is a little bit less than 'ondemand' as there's always a few children already available.Set as 'high', the process manager will be set at 'static'. There will be always as many children as 'pm.max\_children', the footprint is important (but will be set as maximum a quarter of the maximum RAM) but the impact on the proc is lower. The service will be quick to answer as there's always many children ready to answer.Requires YunoHost version 2.7.2 or higher.Requires YunoHost version 3.5.1 or higher for the argument --phpversionRequires YunoHost version 3.8.1 or higher for the arguments --use\_template, --usage, --footprint, --package and --dedicated\_service
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/php#L61)
+[/details]
+----------------
+
+**ynh_remove_fpm_config**
+[details summary="Remove the dedicated PHP-FPM config" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_remove_fpm_config`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.2 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/php#L288)
+[/details]
+----------------
+
+
+### POSTGRESQL
+
+**ynh_psql_connect_as**
+[details summary="Open a connection as a user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_connect_as --user=user --password=password [--database=database]`
+
+
+**Arguments**:
+
+
+- `-u`, `--user=`: the user name to connect as
+
+
+
+- `-p`, `--password=`: the user password
+
+
+
+- `-d`, `--database=`: the database to connect to
+
+
+
+
+
+
+
+**Examples**:
+
+
+- ` ynh_psql_connect_as 'user' 'pass' <<< "UPDATE ...;"`
+
+
+
+- ` ynh_psql_connect_as 'user' 'pass' < /path/to/file.sql`
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L18)
+[/details]
+----------------
+
+**ynh_psql_execute_as_root**
+[details summary="Execute a command as root user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_execute_as_root --sql=sql [--database=database]`
+
+
+**Arguments**:
+
+
+- `-s`, `--sql=`: the SQL command to execute
+
+
+
+- `-d`, `--database=`: the database to connect to
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L39)
+[/details]
+----------------
+
+**ynh_psql_execute_file_as_root**
+[details summary="Execute a command from a file as root user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_execute_file_as_root --file=file [--database=database]`
+
+
+**Arguments**:
+
+
+- `-f`, `--file=`: the file containing SQL commands
+
+
+
+- `-d`, `--database=`: the database to connect to
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L65)
+[/details]
+----------------
+
+**ynh_psql_dump_db**
+[details summary="Dump a database" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_dump_db --database=database`
+
+
+**Arguments**:
+
+
+- `-d`, `--database=`: the database name to dump
+
+
+
+
+
+**Returns**: the psqldump output
+
+
+**Example**: `ynh_psql_dump_db 'roundcube' > ./dump.sql`
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L137)
+[/details]
+----------------
+
+**ynh_psql_user_exists**
+[details summary="Check if a psql user exists" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_user_exists --user=user
+| exit: Return 1 if the user doesn't exist, 0 otherwise`
+
+
+**Arguments**:
+
+
+- `-u`, `--user=`: the user for which to check existence
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L170)
+[/details]
+----------------
+
+**ynh_psql_database_exists**
+[details summary="Check if a psql database exists" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_database_exists --database=database
+| exit: Return 1 if the database doesn't exist, 0 otherwise`
+
+
+**Arguments**:
+
+
+- `-d`, `--database=`: the database for which to check existence
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L193)
+[/details]
+----------------
+
+**ynh_psql_setup_db**
+[details summary="Create a database, an user and its password. Then store the password in the app's config" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_setup_db --db_user=user --db_name=name [--db_pwd=pwd]`
+
+
+**Arguments**:
+
+
+- `-u`, `--db_user=`: Owner of the database
+
+
+
+- `-n`, `--db_name=`: Name of the database
+
+
+
+- `-p`, `--db_pwd=`: Password of the database. If not provided, a password will be generated
+
+
+
+
+
+
+
+
+**Details**:
+After executing this helper, the password of the created database will be available in $db\_pwdIt will also be stored as "psqlpwd" into the app settings.Requires YunoHost version 2.7.13 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L232)
+[/details]
+----------------
+
+**ynh_psql_remove_db**
+[details summary="Remove a database if it exists, and the associated user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_remove_db --db_user=user --db_name=name`
+
+
+**Arguments**:
+
+
+- `-u`, `--db_user=`: Owner of the database
+
+
+
+- `-n`, `--db_name=`: Name of the database
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.13 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L263)
+[/details]
+----------------
+
+**ynh_psql_test_if_first_run**
+[details summary="Create a master password and set up global settings
+It also make sure that postgresql is installed and running
+Please always call this script in install and restore scripts" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_psql_test_if_first_run`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.13 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/postgresql#L295)
+[/details]
+----------------
+
+
+### SETTING
+
+**ynh_app_setting_get**
+[details summary="Get an application setting" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_app_setting_get --app=app --key=key`
+
+
+**Arguments**:
+
+
+- `-a`, `--app=`: the application id
+
+
+
+- `-k`, `--key=`: the setting to get
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/setting#L10)
+[/details]
+----------------
+
+**ynh_app_setting_set**
+[details summary="Set an application setting" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_app_setting_set --app=app --key=key --value=value`
+
+
+**Arguments**:
+
+
+- `-a`, `--app=`: the application id
+
+
+
+- `-k`, `--key=`: the setting name to set
+
+
+
+- `-v`, `--value=`: the setting value to set
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/setting#L34)
+[/details]
+----------------
+
+**ynh_app_setting_delete**
+[details summary="Delete an application setting" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_app_setting_delete --app=app --key=key`
+
+
+**Arguments**:
+
+
+- `-a`, `--app=`: the application id
+
+
+
+- `-k`, `--key=`: the setting to delete
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/setting#L58)
+[/details]
+----------------
+
+**ynh_webpath_available**
+[details summary="Check availability of a web path" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_webpath_available --domain=domain --path_url=path`
+
+
+**Arguments**:
+
+
+- `-d`, `--domain=`: the domain/host of the url
+
+
+
+- `-p`, `--path_url=`: the web path to check the availability of
+
+
+
+
+
+**Example**: `ynh_webpath_available --domain=some.domain.tld --path_url=/coffee`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/setting#L118)
+[/details]
+----------------
+
+**ynh_webpath_register**
+[details summary="Register/book a web path for an app" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_webpath_register --app=app --domain=domain --path_url=path`
+
+
+**Arguments**:
+
+
+- `-a`, `--app=`: the app for which the domain should be registered
+
+
+
+- `-d`, `--domain=`: the domain/host of the web path
+
+
+
+- `-p`, `--path_url=`: the web path to be registered
+
+
+
+
+
+**Example**: `ynh_webpath_register --app=wordpress --domain=some.domain.tld --path_url=/coffee`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/setting#L140)
+[/details]
+----------------
+
+
+### STRING
+
+**ynh_string_random**
+[details summary="Generate a random string" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_string_random [--length=string_length]`
+
+
+**Arguments**:
+
+
+- `-l`, `--length=`: the string length to generate (default: 24)
+
+
+
+
+
+**Returns**: the generated string
+
+
+**Example**: `pwd=$(ynh_string_random --length=8)`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/string#L12)
+[/details]
+----------------
+
+**ynh_replace_string**
+[details summary="Substitute/replace a string (or expression) by another in a file" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_replace_string --match_string=match_string --replace_string=replace_string --target_file=target_file`
+
+
+**Arguments**:
+
+
+- `-m`, `--match_string=`: String to be searched and replaced in the file
+
+
+
+- `-r`, `--replace_string=`: String that will replace matches
+
+
+
+- `-f`, `--target_file=`: File in which the string will be replaced.
+
+
+
+
+
+
+
+
+**Details**:
+As this helper is based on sed command, regular expressions andreferences to sub-expressions can be used(see sed manual page for more information)Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/string#L38)
+[/details]
+----------------
+
+**ynh_replace_special_string**
+[details summary="Substitute/replace a special string by another in a file" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_replace_special_string --match_string=match_string --replace_string=replace_string --target_file=target_file`
+
+
+**Arguments**:
+
+
+- `-m`, `--match_string=`: String to be searched and replaced in the file
+
+
+
+- `-r`, `--replace_string=`: String that will replace matches
+
+
+
+- `-t`, `--target_file=`: File in which the string will be replaced.
+
+
+
+
+
+
+
+
+**Details**:
+This helper will use ynh\_replace\_string, but as you can use specialcharacters, you can't use some regular expressions and sub-expressions.Requires YunoHost version 2.7.7 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/string#L67)
+[/details]
+----------------
+
+**ynh_sanitize_dbid**
+[details summary="Sanitize a string intended to be the name of a database
+(More specifically : replace - and . by _)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_sanitize_dbid --db_name=name`
+
+
+**Arguments**:
+
+
+- `-n`, `--db_name=`: name to correct/sanitize
+
+
+
+
+
+**Returns**: the corrected name
+
+
+**Example**: `dbname=$(ynh_sanitize_dbid $app)`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/string#L98)
+[/details]
+----------------
+
+
+### SYSTEMD
+
+**ynh_add_systemd_config**
+[details summary="Create a dedicated systemd config" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_add_systemd_config [--service=service] [--template=template]
+ynh_add_systemd_config [--service=service] [--template=template] [--others_var="list of others variables to replace"]`
+
+
+**Arguments**:
+
+
+- `-s`, `--service=`: Service name (optionnal, $app by default)
+
+
+
+- `-t`, `--template=`: Name of template file (optionnal, this is 'systemd' by default, meaning ./conf/systemd.service will be used as template)
+
+
+
+- `-v`, `--others_var=`: List of others variables to replace separated by a space. For example: 'var_1 var_2 ...'
+
+
+
+
+
+
+
+
+**Details**:
+This will use the template ../conf/.serviceto generate a systemd config, by replacing the following keywordswith global variables that should be defined before callingthis helper :\_\_APP\_\_ by $app \_\_FINALPATH\_\_ by $final\_pathAnd dynamic variables (from the last example) : \_\_VAR\_1\_\_ by $var\_1 \_\_VAR\_2\_\_ by $var\_2Requires YunoHost version 2.7.11 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/systemd#L24)
+[/details]
+----------------
+
+**ynh_remove_systemd_config**
+[details summary="Remove the dedicated systemd config" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_remove_systemd_config [--service=service]`
+
+
+**Arguments**:
+
+
+- `-s`, `--service=`: Service name (optionnal, $app by default)
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.2 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/systemd#L71)
+[/details]
+----------------
+
+**ynh_systemd_action**
+[details summary="Start (or other actions) a service, print a log in case of failure and optionnaly wait until the service is completely started" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_systemd_action [--service_name=service_name] [--action=action] [ [--line_match="line to match"] [--log_path=log_path] [--timeout=300] [--length=20] ]`
+
+
+**Arguments**:
+
+
+- `-n`, `--service_name=`: Name of the service to start. Default : $app
+
+
+
+- `-a`, `--action=`: Action to perform with systemctl. Default: start
+
+
+
+- `-l`, `--line_match=`: Line to match - The line to find in the log to attest the service have finished to boot. If not defined it don't wait until the service is completely started. WARNING: When using --line_match, you should always add `ynh_clean_check_starting` into your `ynh_clean_setup` at the beginning of the script. Otherwise, tail will not stop in case of failure of the script. The script will then hang forever.
+
+
+
+- `-p`, `--log_path=`: Log file - Path to the log file. Default : /var/log/$app/$app.log
+
+
+
+- `-t`, `--timeout=`: Timeout - The maximum time to wait before ending the watching. Default : 300 seconds.
+
+
+
+- `-e`, `--length=`: Length of the error log : Default : 20
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/systemd#L101)
+[/details]
+----------------
+
+**ynh_clean_check_starting**
+[details summary="Clean temporary process and file used by ynh_check_starting
+(usually used in ynh_clean_setup scripts)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_clean_check_starting`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/systemd#L203)
+[/details]
+----------------
+
+
+### USER
+
+**ynh_user_exists**
+[details summary="Check if a YunoHost user exists" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_user_exists --username=username
+| exit: Return 1 if the user doesn't exist, 0 otherwise`
+
+
+**Arguments**:
+
+
+- `-u`, `--username=`: the username to check
+
+
+
+
+
+**Example**: `ynh_user_exists 'toto' || exit 1`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/user#L12)
+[/details]
+----------------
+
+**ynh_user_get_info**
+[details summary="Retrieve a YunoHost user information" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_user_get_info --username=username --key=key`
+
+
+**Arguments**:
+
+
+- `-u`, `--username=`: the username to retrieve info from
+
+
+
+- `-k`, `--key=`: the key to retrieve
+
+
+
+
+
+**Returns**: string - the key's value
+
+
+**Example**: `mail=$(ynh_user_get_info 'toto' 'mail')`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/user#L33)
+[/details]
+----------------
+
+**ynh_user_list**
+[details summary="Get the list of YunoHost users" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_user_list`
+
+
+
+**Returns**: string - one username per line
+
+
+**Example**: `for u in $(ynh_user_list); do ...`
+
+
+
+
+**Details**:
+Requires YunoHost version 2.4.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/user#L53)
+[/details]
+----------------
+
+**ynh_system_user_exists**
+[details summary="Check if a user exists on the system" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_system_user_exists --username=username
+| exit: Return 1 if the user doesn't exist, 0 otherwise`
+
+
+**Arguments**:
+
+
+- `-u`, `--username=`: the username to check
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.2.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/user#L65)
+[/details]
+----------------
+
+**ynh_system_group_exists**
+[details summary="Check if a group exists on the system" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_system_group_exists --group=group
+| exit: Return 1 if the group doesn't exist, 0 otherwise`
+
+
+**Arguments**:
+
+
+- `-g`, `--group=`: the group to check
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0.2 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/user#L83)
+[/details]
+----------------
+
+**ynh_system_user_create**
+[details summary="Create a system user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_system_user_create --username=user_name [--home_dir=home_dir] [--use_shell]`
+
+
+**Arguments**:
+
+
+- `-u`, `--username=`: Name of the system user that will be create
+
+
+
+- `-h`, `--home_dir=`: Path of the home dir for the user. Usually the final path of the app. If this argument is omitted, the user will be created without home
+
+
+
+- `-s`, `--use_shell`: Create a user using the default login shell if present. If this argument is omitted, the user will be created with /usr/sbin/nologin shell
+
+
+
+
+
+
+
+**Examples**:
+
+
+- `Create a nextcloud user with no home directory and /usr/sbin/nologin login shell (hence no login capability)`
+
+
+
+- ` ynh_system_user_create --username=nextcloud`
+
+
+
+- `Create a discourse user using /var/www/discourse as home directory and the default login shell`
+
+
+
+- ` ynh_system_user_create --username=discourse --home_dir=/var/www/discourse --use_shell`
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/user#L108)
+[/details]
+----------------
+
+**ynh_system_user_delete**
+[details summary="Delete a system user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_system_user_delete --username=user_name`
+
+
+**Arguments**:
+
+
+- `-u`, `--username=`: Name of the system user that will be create
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/user#L144)
+[/details]
+----------------
+
+**ynh_exec_as**
+[details summary="Execute a command as another user" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_exec_as $USER COMMAND [ARG ...]`
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 4.1.7 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/user#L172)
+[/details]
+----------------
+
+
+### UTILS
+
+**ynh_abort_if_errors**
+[details summary="Exits if an error occurs during the execution of the script." class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_abort_if_errors`
+
+
+
+
+
+
+**Details**:
+This configure the rest of the script execution such that, if an error occursor if an empty variable is used, the execution of the script stopsimmediately and a call to `ynh\_clean\_setup` is triggered if it has beendefined by your script.Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L54)
+[/details]
+----------------
+
+**ynh_setup_source**
+[details summary="Download, check integrity, uncompress and patch the source from app.src" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_setup_source --dest_dir=dest_dir [--source_id=source_id]`
+
+
+**Arguments**:
+
+
+- `-d`, `--dest_dir=`: Directory where to setup sources
+
+
+
+- `-s`, `--source_id=`: Name of the app, if the package contains more than one app
+
+
+
+
+
+
+
+
+**Details**:
+The file conf/app.src need to contains:SOURCE\_URL=Address to download the app archiveSOURCE\_SUM=Control sum# (Optional) Program to check the integrity (sha256sum, md5sum...)# default: sha256SOURCE\_SUM\_PRG=sha256# (Optional) Archive format# default: tar.gzSOURCE\_FORMAT=tar.gz# (Optional) Put false if sources are directly in the archive root# default: true# Instead of true, SOURCE\_IN\_SUBDIR could be the number of sub directories# to remove.SOURCE\_IN\_SUBDIR=false# (Optionnal) Name of the local archive (offline setup support)# default: ${src\_id}.${src\_format}SOURCE\_FILENAME=example.tar.gz# (Optional) If it set as false don't extract the source.# (Useful to get a debian package or a python wheel.)# default: trueSOURCE\_EXTRACT=(true|false)Details:This helper downloads sources from SOURCE\_URL if there is no local sourcearchive in /opt/yunohost-apps-src/APP\_ID/SOURCE\_FILENAMENext, it checks the integrity with "SOURCE\_SUM\_PRG -c --status" command.If it's ok, the source archive will be uncompressed in $dest\_dir. If theSOURCE\_IN\_SUBDIR is true, the first level directory of the archive will beremoved.If SOURCE\_IN\_SUBDIR is a numeric value, 2 for example, the 2 first leveldirectories will be removedFinally, patches named sources/patches/${src\_id}-*.patch and extra files insources/extra\_files/$src\_id will be applied to dest\_dirRequires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L105)
+[/details]
+----------------
+
+**ynh_local_curl**
+[details summary="Curl abstraction to help with POST requests to local pages (such as installation forms)" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_local_curl "page_uri" "key1=value1" "key2=value2" ...`
+
+
+**Arguments**:
+
+
+- `page_uri`: Path (relative to $path_url) of the page where POST data will be sent
+
+
+
+- `key1=value1`: (Optionnal) POST key and corresponding value
+
+
+
+- `key2=value2`: (Optionnal) Another POST key and corresponding value
+
+
+
+- `...`: (Optionnal) More POST keys and values
+
+
+
+
+
+**Example**: `ynh_local_curl "/install.php?installButton" "foo=$var1" "bar=$var2"`
+
+
+
+
+**Details**:
+For multiple calls, cookies are persisted between each call for the same app$domain and $path\_url should be defined externally (and correspond to the domain.tld and the /path (of the app?))Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L230)
+[/details]
+----------------
+
+**ynh_add_config**
+[details summary="Create a dedicated config file from a template" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_add_config --template="template" --destination="destination"`
+
+
+**Arguments**:
+
+
+- `-t`, `--template=`: Template config file to use
+
+
+
+- `-d`, `--destination=`: Destination of the config file
+
+
+
+
+
+
+
+**Examples**:
+
+
+- ` ynh_add_config --template=".env" --destination="$final_path/.env"`
+
+
+
+- ` ynh_add_config --template="../conf/.env" --destination="$final_path/.env"`
+
+
+
+- ` ynh_add_config --template="/etc/nginx/sites-available/default" --destination="etc/nginx/sites-available/mydomain.conf"`
+
+
+
+
+
+**Details**:
+The template can be by default the name of a file in the conf directoryof a YunoHost Package, a relative path or an absolute pathThe helper will use the template $template to generate a config file$destination by replacing the following keywords with global variablesthat should be defined before calling this helper : \_\_PATH\_\_ by $path\_url \_\_NAME\_\_ by $app \_\_NAMETOCHANGE\_\_ by $app \_\_USER\_\_ by $app \_\_FINALPATH\_\_ by $final\_path \_\_PHPVERSION\_\_ by $YNH\_PHP\_VERSION \_\_YNH\_NODE\_LOAD\_PATH\_\_ by $ynh\_node\_load\_PATHAnd any dynamic variables that should be defined before calling this helper like: \_\_DOMAIN\_\_ by $domain \_\_APP\_\_ by $app \_\_VAR\_1\_\_ by $var\_1 \_\_VAR\_2\_\_ by $var\_2The helper will verify the checksum and backup the destination fileif it's different before applying the new template.And it will calculate and store the destination file checksuminto the app settings when configuration is done.Requires YunoHost version 4.1.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L302)
+[/details]
+----------------
+
+**ynh_get_debian_release**
+[details summary="Fetch the Debian release codename" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_get_debian_release`
+
+
+
+**Returns**: The Debian release codename (i.e. jessie, stretch, ...)
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.7.12 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L436)
+[/details]
+----------------
+
+**ynh_secure_remove**
+[details summary="Remove a file or a directory securely" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_secure_remove --file=path_to_remove`
+
+
+**Arguments**:
+
+
+- `-f`, `--file=`: File or directory to remove
+
+
+
+
+
+
+
+
+**Details**:
+Requires YunoHost version 2.6.4 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L466)
+[/details]
+----------------
+
+**ynh_read_manifest**
+[details summary="Read the value of a key in a ynh manifest file" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_read_manifest --manifest="manifest.json" --key="key"`
+
+
+**Arguments**:
+
+
+- `-m`, `--manifest=`: Path of the manifest to read
+
+
+
+- `-k`, `--key=`: Name of the key to find
+
+
+
+
+
+**Returns**: the value associate to that key
+
+
+
+
+
+**Details**:
+Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L547)
+[/details]
+----------------
+
+**ynh_app_upstream_version**
+[details summary="Read the upstream version from the manifest, or from the env variable $YNH_APP_MANIFEST_VERSION if not given" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_app_upstream_version [--manifest="manifest.json"]`
+
+
+**Arguments**:
+
+
+- `-m`, `--manifest=`: Path of the manifest to read
+
+
+
+
+
+**Returns**: the version number of the upstream app
+
+
+
+
+
+**Details**:
+The version number in the manifest is defined by ~ynhFor example : 4.3-2~ynh3This include the number before ~ynhIn the last example it return 4.3-2Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L576)
+[/details]
+----------------
+
+**ynh_app_package_version**
+[details summary="Read package version from the manifest" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_app_package_version [--manifest="manifest.json"]`
+
+
+**Arguments**:
+
+
+- `-m`, `--manifest=`: Path of the manifest to read
+
+
+
+
+
+**Returns**: the version number of the package
+
+
+
+
+
+**Details**:
+The version number in the manifest is defined by ~ynhFor example : 4.3-2~ynh3This include the number after ~ynhIn the last example it return 3Requires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L607)
+[/details]
+----------------
+
+**ynh_check_app_version_changed**
+[details summary="Checks the app version to upgrade with the existing app version and returns:" class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_check_app_version_changed`
+
+
+
+
+
+
+**Details**:
+- UPGRADE\_PACKAGE if only the YunoHost package has changed- UPGRADE\_APP otherwiseThis helper should be used to avoid an upgrade of an app, or the upstream partof it, when it's not neededTo force an upgrade, even if the package is up to date,you have to use the parameter --force (or -F).example: sudo yunohost app upgrade MyApp --forceRequires YunoHost version 3.5.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L634)
+[/details]
+----------------
+
+**ynh_compare_current_package_version**
+[details summary="Compare the current package version against another version given as an argument.
+This is really useful when we need to do some actions only for some old package versions." class="helper-card-subtitle text-muted"]
+
+
+**Usage**: `ynh_compare_current_package_version --comparison lt|le|eq|ne|ge|gt
+| eq (equal), ne (not equal), ge (greater or equal), gt (greater than)`
+
+
+**Arguments**:
+
+
+- `--comparison`: Comparison type. Could be : lt (lower than), le (lower or equal),
+
+
+
+- `--version`: The version to compare. Need to be a version in the yunohost package version type (like 2.3.1~ynh4)
+
+
+
+
+
+**Example**: `ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1 This example will check if the installed version is lower than (lt) the version 2.3.2~ynh1`
+
+
+
+
+**Details**:
+Generally you might probably use it as follow in the upgrade scriptif ynh\_compare\_current\_package\_version --comparison lt --version 2.3.2~ynh1then # Do something that is needed for the package version older than 2.3.2~ynh1fiReturn 0 if the evaluation is true. 1 if false.Requires YunoHost version 3.8.0 or higher.
+
+
+[Dude, show me the code!](https://github.com/YunoHost/yunohost/blob/adc83b4c9c2c30e9ef75f3609c538b646f91f1db/data/helpers.d/utils#L666)
+[/details]
+----------------
+
diff --git a/packaging_apps_hooks_fr.md b/pages/04.contribute/04.packaging_apps/12.hooks/packaging_apps_hooks.fr.md
similarity index 98%
rename from packaging_apps_hooks_fr.md
rename to pages/04.contribute/04.packaging_apps/12.hooks/packaging_apps_hooks.fr.md
index 6339cc69..2e3cf0ec 100644
--- a/packaging_apps_hooks_fr.md
+++ b/pages/04.contribute/04.packaging_apps/12.hooks/packaging_apps_hooks.fr.md
@@ -1,4 +1,11 @@
-# Usage des hooks YunoHost
+---
+title: Hooks
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_hooks'
+---
Les hooks permettent de déclencher un script lorsqu'une action est effectuée par le système.
Le cas le plus évident, est l'ajout d'un utilisateur. Si l'app dispose d'un hook `post_user_create`, ce hook sera déclenché dés qu'un utilisateur sera ajouté.
diff --git a/packaging_apps_hooks.md b/pages/04.contribute/04.packaging_apps/12.hooks/packaging_apps_hooks.md
similarity index 97%
rename from packaging_apps_hooks.md
rename to pages/04.contribute/04.packaging_apps/12.hooks/packaging_apps_hooks.md
index 247301d2..16056b85 100644
--- a/packaging_apps_hooks.md
+++ b/pages/04.contribute/04.packaging_apps/12.hooks/packaging_apps_hooks.md
@@ -1,4 +1,11 @@
-# The use of YunoHost hooks
+---
+title: Hooks
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_hooks'
+---
Hooks allow you to trigger a script when an action is performed by the system.
The most obvious case is adding a user. If the app has a `post_user_create` hook, this hook will be triggered as soon as a user is added.
diff --git a/packaging_apps_actions.md b/pages/04.contribute/04.packaging_apps/14.advanced/01.actions/packaging_apps_actions.md
similarity index 96%
rename from packaging_apps_actions.md
rename to pages/04.contribute/04.packaging_apps/14.advanced/01.actions/packaging_apps_actions.md
index e165e031..f3f338d4 100644
--- a/packaging_apps_actions.md
+++ b/pages/04.contribute/04.packaging_apps/14.advanced/01.actions/packaging_apps_actions.md
@@ -1,4 +1,11 @@
-# Applications Actions
+---
+title: Actions
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_actions'
+---
For now, all those features are EXPERIMENTAL
and aren't ready for production and are probably going to change again, if you
@@ -35,7 +42,7 @@ For example those could be:
Actions looks like this in the admin interface:
-
+
## How to add actions to your application
diff --git a/packaging_apps_config_panel.md b/pages/04.contribute/04.packaging_apps/14.advanced/02.config_panel/packaging_apps_config_panel.md
similarity index 97%
rename from packaging_apps_config_panel.md
rename to pages/04.contribute/04.packaging_apps/14.advanced/02.config_panel/packaging_apps_config_panel.md
index b2296e52..b39c03a8 100644
--- a/packaging_apps_config_panel.md
+++ b/pages/04.contribute/04.packaging_apps/14.advanced/02.config_panel/packaging_apps_config_panel.md
@@ -1,4 +1,11 @@
-# Applications Configuration Panel
+---
+title: Configuration panel
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_config_panel'
+---
For now, all those features are EXPERIMENTAL
and aren't ready for production and are probably going to change again, if you
@@ -23,7 +30,7 @@ doable and very worth it if you need it.
Here how it looks like in the admin interface:
-
+
## Usage
@@ -97,7 +104,7 @@ name = "stuff"
And a real world example with the rendered admin:
-
+
As a text format:
diff --git a/packaging_apps_advanced.md b/pages/04.contribute/04.packaging_apps/14.advanced/packaging_apps_advanced.md
similarity index 75%
rename from packaging_apps_advanced.md
rename to pages/04.contribute/04.packaging_apps/14.advanced/packaging_apps_advanced.md
index a4e8eef8..2ae41820 100644
--- a/packaging_apps_advanced.md
+++ b/pages/04.contribute/04.packaging_apps/14.advanced/packaging_apps_advanced.md
@@ -1,4 +1,11 @@
-# Advanced features of apps packaging
+---
+title: Advanced features of apps packaging
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_advanced'
+---
For now, all those features are EXPERIMENTALS
and aren't ready for production and are probably going to change again, if you
@@ -16,11 +23,11 @@ application, for example that could be:
* start a procedure
* regenerate a local cache
-[Full documentation](packaging_apps_actions)
+[Full documentation](/packaging_apps_actions)
Example in the admin:
-
+
## Configuration Panel
@@ -33,8 +40,8 @@ possible inside the application itself.
This is generally also the place where you want to add the option to make an
application public or not.
-[Full documentation](packaging_apps_config_panel)
+[Full documentation](/packaging_apps_config_panel)
Example in the admin:
-
+
diff --git a/packaging_apps_levels_fr.md b/pages/04.contribute/04.packaging_apps/15.quality_tests/01.apps_levels/packaging_apps_levels.fr.md
similarity index 98%
rename from packaging_apps_levels_fr.md
rename to pages/04.contribute/04.packaging_apps/15.quality_tests/01.apps_levels/packaging_apps_levels.fr.md
index ff75b387..8c12625e 100644
--- a/packaging_apps_levels_fr.md
+++ b/pages/04.contribute/04.packaging_apps/15.quality_tests/01.apps_levels/packaging_apps_levels.fr.md
@@ -1,4 +1,11 @@
-# Niveaux de qualité des packages d’applications YunoHost
+---
+title: Niveaux de qualité des packages d'applications YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_levels'
+---
Afin de faciliter le packaging d'applications par des étapes successives à atteindre, chaque package est affublé d'un niveau de qualité, de 0 à 10.
Un package doit satisfaire un certain nombre de critères pour atteindre chaque niveau. De plus pour atteindre un niveau, le package doit avoir préalablement atteint le niveau précédent.
diff --git a/packaging_apps_levels.md b/pages/04.contribute/04.packaging_apps/15.quality_tests/01.apps_levels/packaging_apps_levels.md
similarity index 95%
rename from packaging_apps_levels.md
rename to pages/04.contribute/04.packaging_apps/15.quality_tests/01.apps_levels/packaging_apps_levels.md
index ee953e66..05a31018 100644
--- a/packaging_apps_levels.md
+++ b/pages/04.contribute/04.packaging_apps/15.quality_tests/01.apps_levels/packaging_apps_levels.md
@@ -1,4 +1,11 @@
-# Quality levels of YunoHost application packages
+---
+title: Quality levels of YunoHost application packages
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_levels'
+---
In order to facilitate the packaging of applications by providing successive steps to achieve, each package is assigned a quality level, from 0 to 10.
A package must meet a number of criteria to reach each level. In addition, to reach a level, the package must have previously reached the previous level.
diff --git a/packaging_apps_guidelines_fr.md b/pages/04.contribute/04.packaging_apps/15.quality_tests/02.yep/packaging_apps_guidelines.fr.md
similarity index 99%
rename from packaging_apps_guidelines_fr.md
rename to pages/04.contribute/04.packaging_apps/15.quality_tests/02.yep/packaging_apps_guidelines.fr.md
index 64c1e63e..cfbcf9ea 100644
--- a/packaging_apps_guidelines_fr.md
+++ b/pages/04.contribute/04.packaging_apps/15.quality_tests/02.yep/packaging_apps_guidelines.fr.md
@@ -1,15 +1,17 @@
-# Packaging d’applications : les bonnes pratiques
-
-
-
-Cette page est en cours d'élaboration. Tant que cet avertissement n'est pas enlevé. Considérez ces informations comme potentiellement fausse.
-Le nom YEP n'est à priori pas définitif, ni les niveaux, ni les bonnes pratiques en elle-même.
-
-
+---
+title: Packaging d'applications : les bonnes pratiques
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_guidelines'
+---
### Introduction
Ce document a pour but de lister les différentes bonnes pratiques concernant la création de paquet d'application YunoHost.
+!!! This page is outdated and should be reworked
+
Chaque bonne pratique est numérotée avec un numéro suffixé par les lettres YEP (YunoHost Enhancement Proposals), ceci afin de pouvoir y faire référence facilement dans les outils d'analyse automatique de paquet ([package checker](https://github.com/YunoHost/package_check), [package linter](https://github.com/YunoHost/package_linter)), mais également lors des revues de code.
Chaque YEP est associée à :
diff --git a/packaging_apps_guidelines.md b/pages/04.contribute/04.packaging_apps/15.quality_tests/02.yep/packaging_apps_guidelines.md
similarity index 98%
rename from packaging_apps_guidelines.md
rename to pages/04.contribute/04.packaging_apps/15.quality_tests/02.yep/packaging_apps_guidelines.md
index 933c4c4c..a70075b1 100644
--- a/packaging_apps_guidelines.md
+++ b/pages/04.contribute/04.packaging_apps/15.quality_tests/02.yep/packaging_apps_guidelines.md
@@ -1,15 +1,17 @@
-# Packing Applications: Good Practise Guidelines
-
-
-
-This page is under development. As long as this warning is not removed. Consider this information as potentially false.
-The name YEP is not a priori definitive, neither the levels nor the good practices in itself.
-
-
+---
+title: Packing Applications: Good Practise Guidelines
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_guidelines'
+---
### Introduction
The purpose of this document is to list the various best practices concerning the creation of YunoHost application packages.
+!!! This page is outdated and should be reworked
+
Each good practice is numbered with a number suffixed by the letters YEP (YunoHost Enhancement Proposals), so that it can be easily referenced in the ([package checker](https://github.com/YunoHost/package_check) and [package linter](https://github.com/YunoHost/package_linter)) tools, but also during the reviews of code.
Each YEP is associated with:
diff --git a/packaging_apps_ci_fr.md b/pages/04.contribute/04.packaging_apps/15.quality_tests/03.ci_packagers/packaging_apps_ci.fr.md
similarity index 92%
rename from packaging_apps_ci_fr.md
rename to pages/04.contribute/04.packaging_apps/15.quality_tests/03.ci_packagers/packaging_apps_ci.fr.md
index 65105e3f..bfefe5be 100644
--- a/packaging_apps_ci_fr.md
+++ b/pages/04.contribute/04.packaging_apps/15.quality_tests/03.ci_packagers/packaging_apps_ci.fr.md
@@ -1,8 +1,17 @@
-# Intégration continue
+---
+title: Intégration continue
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_ci'
+---
+
+! This page is outdated and should be reworked
Un serveur d'intégration continue est disponible pour tout packager souhaitant tester une application avec [Package_check](https://github.com/YunoHost/package_check).
-ci-apps-dev
+[ci-apps-dev](https://ci-apps-dev.yunohost.org?classes=btn,btn-lg,btn-primary)
Ce serveur est libre d'accès pour chacun d'entre vous, vous avez juste besoin d'un compte.
Pour ce faire, demandez à un membre du groupe Apps sur notre [chatroom Applications](/chat_rooms)
diff --git a/packaging_apps_ci.md b/pages/04.contribute/04.packaging_apps/15.quality_tests/03.ci_packagers/packaging_apps_ci.md
similarity index 92%
rename from packaging_apps_ci.md
rename to pages/04.contribute/04.packaging_apps/15.quality_tests/03.ci_packagers/packaging_apps_ci.md
index 543da54d..f5294e19 100644
--- a/packaging_apps_ci.md
+++ b/pages/04.contribute/04.packaging_apps/15.quality_tests/03.ci_packagers/packaging_apps_ci.md
@@ -1,8 +1,17 @@
-# Continuous integration
+---
+title: Continuous integration
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_ci'
+---
+
+! This page is outdated and should be reworked
A continuous integration server is available for any packager willing to test an app with [Package_check](https://github.com/YunoHost/package_check).
-ci-apps-dev
+[ci-apps-dev](https://ci-apps-dev.yunohost.org?classes=btn,btn-lg,btn-primary)
This server is free to use for any of you, you just need an account.
To do so, ask to a member of the Apps group on our [Applications chatroom](/chat_rooms)
diff --git a/shell_variables_scope_fr.md b/pages/04.contribute/04.packaging_apps/20.bash_tips/07.shell_variables_scope/shell_variables_scope.fr.md
similarity index 97%
rename from shell_variables_scope_fr.md
rename to pages/04.contribute/04.packaging_apps/20.bash_tips/07.shell_variables_scope/shell_variables_scope.fr.md
index 179f3252..7226dd7b 100644
--- a/shell_variables_scope_fr.md
+++ b/pages/04.contribute/04.packaging_apps/20.bash_tips/07.shell_variables_scope/shell_variables_scope.fr.md
@@ -1,4 +1,11 @@
-### Portée générales des variables
+---
+title: Portée générales des variables
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/shell_variables_scope'
+---
Les variables existent pour le shell courant et ses enfants uniquement.
Un script exécuté depuis le script n'est pas un enfant, c'est un autre shell qui n'héritera que des variables d'environnement du script appelant, pas des variables globales ou locales.
diff --git a/shell_variables_scope.md b/pages/04.contribute/04.packaging_apps/20.bash_tips/07.shell_variables_scope/shell_variables_scope.md
similarity index 97%
rename from shell_variables_scope.md
rename to pages/04.contribute/04.packaging_apps/20.bash_tips/07.shell_variables_scope/shell_variables_scope.md
index aba9d163..c32b5515 100644
--- a/shell_variables_scope.md
+++ b/pages/04.contribute/04.packaging_apps/20.bash_tips/07.shell_variables_scope/shell_variables_scope.md
@@ -1,4 +1,11 @@
-### General scope of variables
+---
+title: General scope of variables
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/shell_variables_scope'
+---
Variables exists for the current shell and its children only.
Another script executed from the script is not a child, it's another shell which herited only the environment variables from its caller script, not its globals or locals variables.
diff --git a/packaging_apps_trap_fr.md b/pages/04.contribute/04.packaging_apps/20.bash_tips/13.trap/packaging_apps_trap.fr.md
similarity index 97%
rename from packaging_apps_trap_fr.md
rename to pages/04.contribute/04.packaging_apps/20.bash_tips/13.trap/packaging_apps_trap.fr.md
index 41836279..03d1b13b 100644
--- a/packaging_apps_trap_fr.md
+++ b/pages/04.contribute/04.packaging_apps/20.bash_tips/13.trap/packaging_apps_trap.fr.md
@@ -1,4 +1,11 @@
-# Usage de trap
+---
+title: Trap
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_trap'
+---
Trap est une commande interne du shell permettant de capturer les signaux de sorties des commandes exécutées dans le shell courant et ses sous-shell.
diff --git a/packaging_apps_trap.md b/pages/04.contribute/04.packaging_apps/20.bash_tips/13.trap/packaging_apps_trap.md
similarity index 97%
rename from packaging_apps_trap.md
rename to pages/04.contribute/04.packaging_apps/20.bash_tips/13.trap/packaging_apps_trap.md
index a0071e01..29783395 100644
--- a/packaging_apps_trap.md
+++ b/pages/04.contribute/04.packaging_apps/20.bash_tips/13.trap/packaging_apps_trap.md
@@ -1,4 +1,11 @@
-# Trap usage
+---
+title: Trap
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_trap'
+---
Trap is an internal shell command used to capture the output signals of commands executed in the current shell and its subshells.
diff --git a/packaging_apps_start_fr.md b/pages/04.contribute/04.packaging_apps/packaging_apps_start.fr.md
similarity index 97%
rename from packaging_apps_start_fr.md
rename to pages/04.contribute/04.packaging_apps/packaging_apps_start.fr.md
index 182be676..e492ff23 100644
--- a/packaging_apps_start_fr.md
+++ b/pages/04.contribute/04.packaging_apps/packaging_apps_start.fr.md
@@ -1,4 +1,11 @@
-# Introduction au packaging
+---
+title: Introduction au packaging
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_start'
+---
Petite introduction au packaging d'application, pour comprendre de quoi nous parlons et comment ça marche.
Cette documentation s'adresse avant tout aux packageurs débutants qui ne sont pas à l'aise avec les concepts de shell, parsing et administration système de manière générale.
diff --git a/packaging_apps_start.md b/pages/04.contribute/04.packaging_apps/packaging_apps_start.md
similarity index 96%
rename from packaging_apps_start.md
rename to pages/04.contribute/04.packaging_apps/packaging_apps_start.md
index d6c27ea9..cbdad804 100644
--- a/packaging_apps_start.md
+++ b/pages/04.contribute/04.packaging_apps/packaging_apps_start.md
@@ -1,4 +1,11 @@
-# Introduction to packaging
+---
+title: Introduction to packaging
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/packaging_apps_start'
+---
This documentation is here is to provide all the basic concepts and vocabulary needed to understand app packaging. eg: shell, parsing, system administration...
diff --git a/dev_fr.md b/pages/04.contribute/05.dev/dev.fr.md
similarity index 98%
rename from dev_fr.md
rename to pages/04.contribute/05.dev/dev.fr.md
index 6fbe804a..72aee113 100644
--- a/dev_fr.md
+++ b/pages/04.contribute/05.dev/dev.fr.md
@@ -1,4 +1,11 @@
-## Contribuer au cœur de YunoHost
+---
+title: Contribuer au cœur de YunoHost
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dev'
+---
Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne savez pas comment procéder ? Ce guide parcourt les étapes du développement et du processus de contribution.
diff --git a/dev.md b/pages/04.contribute/05.dev/dev.md
similarity index 98%
rename from dev.md
rename to pages/04.contribute/05.dev/dev.md
index d82731f3..8158ac28 100644
--- a/dev.md
+++ b/pages/04.contribute/05.dev/dev.md
@@ -1,4 +1,11 @@
-## Contributing to the YunoHost core
+---
+title: Contributing to the YunoHost core
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/dev'
+---
You wish to add a new feature in the YunoHost core, but don't know how to
proceed? This guide takes you through the various steps of the development and
diff --git a/pages/04.contribute/contributordoc.fr.md b/pages/04.contribute/contributordoc.fr.md
new file mode 100644
index 00000000..c34cb505
--- /dev/null
+++ b/pages/04.contribute/contributordoc.fr.md
@@ -0,0 +1,120 @@
+---
+title: Contribuer
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/contributordoc'
+ aliases:
+ - '/contribute'
+---
+
+
+
+YunoHost dépend entièrement de la participation de gens comme vous.
+
+
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=heart /] Passez le mot
+[/size]
+[/center]
+
+[center]
+Parlez de logiciel libre, d’[auto-hébergement](/selfhosting), de YunoHost à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=user /] Aidez les utilisateurices
+[/size]
+[/center]
+
+[center]
+Notre support est communautaire et s’appuie sur des contributeurices comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du Forum.
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=edit /] Écrivez
+[/size]
+[/center]
+
+[center]
+Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation) ou en traduisant les existantes dans votre langue.
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=globe /] Traduisez
+[/size]
+[/center]
+
+[center]
+Participez en rendant les interfaces de YunoHost disponibles dans votre langue. Lancez-vous !
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=flask /] Testez
+[/size]
+[/center]
+
+[center]
+Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essayez de l’identifier, puis reportez-le sur notre bug tracker.
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=gift /] Packagez
+[/size]
+[/center]
+
+[center]
+Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=cog /] Codez
+[/size]
+[/center]
+
+[center]
+Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes sont les bienvenus. Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) !
+[/center]
+[/columns]
+
+---
+
+[center]
+### Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)
+[/center]
diff --git a/pages/04.contribute/contributordoc.md b/pages/04.contribute/contributordoc.md
new file mode 100644
index 00000000..00a70704
--- /dev/null
+++ b/pages/04.contribute/contributordoc.md
@@ -0,0 +1,123 @@
+---
+title: Get involved
+template: docs
+taxonomy:
+ category: docs
+routes:
+ default: '/contributordoc'
+ aliases:
+ - '/contribute'
+---
+
+
+YunoHost depends exclusively on the participation of people like you.
+
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=heart /] Spread the word
+[/size]
+[/center]
+
+[center]
+Talk about software freedom, [self-hosting](/selfhosting) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=user /] Helping users
+[/size]
+[/center]
+
+[center]
+Our support relies on contributors like you. Just come to [the support chatroom](/help) and help new users getting started, or pick a question on the Forum.
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=edit /] Write
+[/size]
+[/center]
+
+[center]
+Improve this documentation by [writing new pages](/write_documentation) or translating existing ones to your language.
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=globe /] Localization
+[/size]
+[/center]
+
+[center]
+Get involved by making YunoHost interfaces available in your language
+Get started!
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=flask /] Testing
+[/size]
+[/center]
+
+[center]
+We need people able to test YunoHost deeply. If you find a bug, try to identify it, and report it on our bug tracker.
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=gift /] Packaging
+[/size]
+[/center]
+
+[center]
+Extend YunoHost capabilities by [packaging new services and web applications](/packaging_apps).
+Have a look of [what has been done yet](/apps)!
+[/center]
+[/columns]
+
+
+
+[columns]
+[center]
+[size=30]
+[fa=cog /] Coding
+[/size]
+[/center]
+
+[center]
+You can involve in the YunoHost's development regardless of your skill.
+Sysadmins, web developers, designers and pythonists are welcome!
+Learn [how to contribute](/dev), and join us on the [development chat room](xmpp:dev@conference.yunohost.org?join).
+[/center]
+[/columns]
+
+
+---
+
+[center]
+### In any case, please come chat with us on [the dev chatroom](/chat_rooms) :-)
+[/center]
diff --git a/plug_and_boot.md b/plug_and_boot.md
deleted file mode 100644
index ad25113e..00000000
--- a/plug_and_boot.md
+++ /dev/null
@@ -1,30 +0,0 @@
-
-# Boot and connect to your server
-
-* Plug the SD card (for ARM boards)
-* Plug the ethernet cable
-* Plug the power supply
-* Wait a couple minutes for your server to boot
-
-### Connecting to your server
-
-* Make sure that your computer (desktop/laptop) is connected to the same local network (i.e. same internet box) as your server.
-* Open a browser and type `https://yunohost.local` in the address bar.
-* If your server is up, you will very likely encounter a security warning. This is because your server is for now using what's called a "self-signed certificate" - and because we're accessing the server through a special `.local` domain. You will later be able to add a proper domain and install a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). In the meantime, you should add a security exception to accept the current certificate.
-* If you are NOT able to join your server using the `yunohost.local` domain, try to [find the local IP of your server](/finding_the_local_ip) - then in your browser's address bar, type `https://192.168.x.y`
-* [Proceed with the initial configuration (post-installation)](/postinstall)
-
----
-
-#### [Optional] Connecting your server to the internet through WiFi
-
-* If you want your server to connect using WiFi, you may configure it as explained [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md).
-* Alternatively, you can mount the second partition of the SD card and edit the `wpa-supplicant.conf` file prior to boot the card for the first time. On Windows you can use [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/) for this - just don't forget to unmount everytime for changes to take effect.
-
----
-
-#### [Optional] Direct access with a screen and keyboard
-
-You can also boot your server with a screen and keyboard connected to it to see how the boot process is going on (which can also be useful to troubleshoot issues) and to have a direct access to it.
-
-
diff --git a/plug_and_boot_es.md b/plug_and_boot_es.md
deleted file mode 100644
index d73cdd0d..00000000
--- a/plug_and_boot_es.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Conectar e iniciar el servidor
-
-* Conecta tu servidor con un cable Ethernet (RJ-45) **directamente sobre tu router principal**. También puedes configurar la conexión wifi como explicado [aquí (fr)](http://raspbian-france.fr/connecter-wifi-raspberry-pi-3/). El wifi también puede configurarse sin haber iniciado la tarjeta, "montando" la segunda partición de la tarjeta y finalmente editando el archivo wpa-supplicant.conf. En Windows, puedes utilizar [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), no olvides de "unmount" para que los cambios estén integrados.
-
-* No te olvides de **conectar una pantalla** si quieres observar cómo ocurre el inicio, y un teclado si quieres un acceso con **línea de comandos** a tu servidor.
-
-* Inicia el servidor, el Raspberry Pi va a reiniciarse si-mismo una primera vez, pues espera hasta que veas un gran `Y` cuadrado :
-
-
-
-
-
-
-*Nota el valor `IP` visible en la pantalla : esto es **la dirección IP local** de tu servidor.*
-
-
-
diff --git a/plug_and_boot_fr.md b/plug_and_boot_fr.md
deleted file mode 100644
index 9304e31d..00000000
--- a/plug_and_boot_fr.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Démarrer et se connecter à son serveur
-
-* Mettez la carte SD dans le serveur (pour le cas des cartes ARM)
-* Branchez le cable ethernet
-* Branchez l'alimentation
-* Laissez quelques minutes à votre serveur pour démarrer
-
-### Se connecter à son serveur
-
-* Assurez vous que votre ordianteur (de bureau ou portable) est connecté au même réseau local (c'est-à-dire la même box internet) que votre serveur.
-* Ouvrez un navigateur internet et tapez `https://yunohost.local` dans la barre d'adresse.
-* Si votre serveur est actif, vous rencontrerez très probablement un avertissement de sécurité. Cet avertissement viens du fait que votre serveur utilise pour le moment ce qui s'appelle un "certificat auto-signé" - et que nous utisons un domaine spécial en `.local`. Vous pourrez plus tard ajouter 'vrai' domaine et un certificat automatiquement reconnus par les navigateurs comme décrit dans la page sur les [Certificats](/certificate). En attendant, ajoutez une exception de sécurité pour accepter le certificat actuel.
-* Si vous n'arrivez pas à contacter votre serveur avec `yunohost.local`, essayez de [trouver l'IP locale de votre serveur](/finding_the_local_ip) - puis dans la barre d'adresse de votre navigateur, tapez `https://192.168.x.y`
-* [Effectuer la configuration initiale (post-installation)](/postinstall)
-
----
-
-#### [Optionnel] Connecter le serveur à internet en WiFi
-
-* Vous pouvez aussi configurer la connexion wifi comme expliqué [ici](http://raspbian-france.fr/connecter-wifi-raspberry-pi-3/).
-* La configuration wifi peut aussi se faire sans avoir booté sur la carte, en "montant" la deuxième partition de la carte et enfin éditer le fichier `wpa-supplicant.conf`. Sur Windows vous pouvez utiliser [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/). Ne pas oublier de "unmount" pour que les changements soient pris en compte.
-
----
-
-#### [Optionnel] Accès direct avec un écran et clavier
-
-* Il est possible de brancher un écran et clavier sur votre serveur pour vérifier que le processus de démarrage (boot) se passe bien et pour avoir un accès direct en console.
-
-
diff --git a/port_forwarding.md b/port_forwarding.md
deleted file mode 100644
index c24f5542..00000000
--- a/port_forwarding.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Port forwarding
-
-The sketch below tries to briefly summarize the role and necessity of port
-forwarding when setting up a server at home.
-
-
diff --git a/port_forwarding_es.md b/port_forwarding_es.md
deleted file mode 100644
index 3ff93dc3..00000000
--- a/port_forwarding_es.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Redirección de puertos
-
-El esquema aquí abajo intenta explicar brevemente el rol de la redirección de los puertos durante la instalación de un servidor en tu casa.
-
-
diff --git a/port_forwarding_fr.md b/port_forwarding_fr.md
deleted file mode 100644
index 1793b27b..00000000
--- a/port_forwarding_fr.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Redirection de ports
-
-Le schéma ci-dessous tente d'expliquer brièvement le rôle de la redirection des
-ports lors de la mise en place d'un serveur à la maison.
-
-
diff --git a/postinstall.md b/postinstall.md
deleted file mode 100644
index c9e671b9..00000000
--- a/postinstall.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Post-Installation
-
-The step called "**post-installation**" is actually the initial configuration of YunoHost. It has to be done just after the installation of the system itself.
-
-NB: if you are in the process of restoring a server from scratch **and** you have a yunohost-made backup, you can skip this process and follow through with the "restoring during the postinstall" step, in the [backup](/backup) page.
-
-### From the web interface
-
-You can perform the post-installation with the web interface by entering in your browser :
-* **`yunohost.local`** OR **the local IP address of your server** if it is on your local network (e.g. at home !). The address typically looks like `192.168.x.y` (see [finding your local IP](/finding_the_local_ip))
-* **the public IP address of your server** if your server is not on your local network. Typically, if you own a VPS, your VPS provider should have given you the IP of the server.
-
-During the first visit, you will very likely encounter a security warning related to the certificate used by the server. For now, your server uses a self-signed certificate. You will later be able to add a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). For now, you should add a security exception to accept the current certificate.
-
-You should then land on this page :
-
-
-
-
Preview of the Web post-installation
-
-### From the command line
-
-You can also perform the postinstallation with the command `yunohost tools postinstall` directly on the server, or [via SSH](/ssh).
-
-
-
-
Preview of the command-line post-installation
-
-
-
-## Informations asked
-
-### Main domain
-
-This is the first domain name linked to your YunoHost server, but also the one which will be used by your server's users to access the **authentication portal**. It will thus be **visible by everyone**, choose it wisely.
-
-* If you do not have a domain name, or if you want to use the YunoHost's DynDNS service, choose a sub-domain of **.nohost.me**, **.noho.st** or **.ynh.fr** (e.g. `homersimpson.nohost.me`). Provided that it's not already taken, the domain will be configured automatically and you won't need any further configuration step.
-
-* If you do know what **DNS** is, you probably want to configure your own domain name here. In this case, please refer to the [DNS page](/dns) page for more informations.
-
-* If you don't own a domain name and don't want a **.nohost.me**, **.noho.st** or **.ynh.fr**, you can use a local domain. More information on how to setup a local domain can be found [here](dns_local_network).
-
-### Administration password
-
-This password will be used to access to your server's [administration interface](/admin). You would also use it to connect via **SSH** or **SFTP**. In general terms, this is your **system's key**, [choose it carefully](http://www.wikihow.com/Choose-a-Secure-Password).
-
-
-
----
-
-## Congratz!
-
-If you got so far and saw 'YunoHost has been successfully installed' (web
-postinstall) or 'YunoHost has been correctly configured', then congratulations!
-
-### What now ?
-
-- If you're self-hosting at home and without a VPN, you need to [make sure to
- correctly forward ports on your router/Internet box](isp_box_config) ;
-- If you're using your own domain name (i.e. not a .nohost.me / .noho.st), you
- need to [configure it according to the recommended DNS
- configuration](dns_config) ;
-- If you cannot configure your domain name yet (because you didn't register it
- yet, or because this is a test domain), see last paragraph
- [here](dns_local_network) for a workaround ;
-- Don't be too afraid of the [certificate warning](certificate), you'll probably
- be able to install a Let's Encrypt certificate :).
-- Have a look at [the available apps](apps) !
-
diff --git a/postinstall_es.md b/postinstall_es.md
deleted file mode 100644
index f7566951..00000000
--- a/postinstall_es.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Post-instalación
-
-La etapa que llamamos « **post-instalación** » de hecho es la etapa de configuración inicial de YunoHost. Se ejecuta después de la **instalación** del sistema mismo.
-
-NB : Si estàs en el proceso de instalar de nuevo a un servidor **y** que ya tienes un archivo creada por yunohost, no debes seguir a està etapa y encontro seguir a la seccion "Restoring during the postinstall" de la pagina [backup](/backup).
-
-### Vía la interfaz web
-
-Puedes acceder a la post-instalación gráfica entrando en un navegador web :
-* la dirección **IP local de tu servidor** si éste está conectado a tu red local (en general `192.168.x.x`, ver ['Encontrar mi IP' en la página sobre SSH](/ssh))
-* la dirección **IP pública de tu servidor** si éste no está conectado a tu red local (por ejemplo, si es un VPS, tu proveedor debería haberte transmitido la dirección IP).
-
-Durante la primera visita, encontrarás muy probablemente una advertencia de seguridad relacionada al certificado utilizado. De momento, tu servidor utiliza un certificado autofirmado. Después, podrás utilizar un certificado automáticamente reconocido por los navegadores como descrito en la página sobre los [Certificados](/certificate). Mientras tanto, añade una excepción de seguridad para aceptar el certificado vigente.
-
-Luego, llegas en esta página :
-
-
-
-*
Vistazo de la post-instalación Web
*
-
-### Vía la interfaz de línea de comando
-
-También puedes acceder a la post-instalación entrando el comando `yunohost tools postinstall` directamente en el servidor o [en SSH](/ssh).
-
-
-
-*
Vistazo de la post-instalación con línea de comando
*
-
-## Informaciones solicitadas
-
-### Dominio principal
-
-Es el nombre de dominio que permitirá el acceso a tu servidor así como al portal de autenticación de los usuarios. Entonces estará **visible por todo el mundo** : elígelo en consecuencia.
-
-* YunoHost te propone un DNS dinámico, proveando nombres de dominio del tipo *midominio.nohost.me*, *midominio.noho.st* o *midominio.ynh.fr*. Si no posees un nombre de dominio y/o que quieres aprovechar de este servicio, elige un dominio terminando con `.nohost.me`, `.noho.st` o `.ynh.fr`. Si no está utlizado ya, el dominio automáticamente estará vinculado a tu servidor YunoHost, y no tendrás más etapas de configuración.
-
-* Si, en cambio, dominas la noción de **DNS**, puedes utilizar tu propio nombre de dominio. En este caso, refiérete a la página [yunohost.org/dns](/dns) por más información.
-
-* Si no tienes nombre de dominio y que no quieres uno que acabe con *.nohost.me*, *.noho.st* ou *.ynh.fr*, puedes utilizar un dominio local. Más información sobre cómo [acceder a tu servidor desde la red local](/dns_local_network).
-
-
-### Contraseña de administración
-
-Es la contraseña que permitirá acceder a la [interfaz de administración](/admin) de tu servidor. También podrás utilizarla para conectarte remotamente vía **SSH**, o vía **SFTP** para transferir archivos.
-
-De manera general, ésta es la **llave de entrada en tu sistema**, pues piensa en **[elegirla atentamente](https://es.wikihow.com/escoger-una-contrase%C3%B1a-segura)**.
-
-
-
----
-
-## Enhorabuena !
-
-Si llegas aquí después de haber visto “YunoHost fue instalado con éxito" desde tu navegador ou tu interfaz de línea de comando, pues felicitaciones !
-
-
-### ¿ Y ahora ?
-
-- Si te auto-alojas en casa y sin VPN, tienes que asegurarte que [los puertos de tu caja internet estén redirigidos](/isp_box_config) ;
-- Si utilizas tu propio nombre de dominio (i.e. que no sea un nohost.me /
- noho.st), tienes que [configurar el nombre de dominio según la configuración recomendada](/dns_config) ;
-- Si no puedes configurar el nombre de dominio de momento (porque todavía no lo has comprado, ou porque es un dominio test), puedes solucionar temporalmente el problema con las instrucciones del último párrafo [aquí](/dns_local_network) ;
-- No te asustes demasiado por [la advertencia a propósito del certificado](/certificate), tendrás la posibilidad de obtener un certificado Let's Encrypt :).
-- Echa un vistazo a las [aplicaciones disponibles](/apps) !
-
diff --git a/postinstall_fr.md b/postinstall_fr.md
deleted file mode 100644
index 1bd4d004..00000000
--- a/postinstall_fr.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# Post-Installation
-
-L’étape appelée « **post-installation** » est en fait l’étape de configuration initiale de YunoHost. Il faut l’exécuter après l’**installation** du système en lui-même.
-
-NB : Si vous êtes en train de restaurer un système complet **et** que vous disposez d'un fichier de sauvegarde généré par YunoHost, vous devez sauter cette étape et vous référer à la section "Restaurer durant la postinstallation" sur la page [sauvegardes](/backup).
-
-### Via l'interface web
-
-Vous pouvez accéder à la post-installation graphique en entrant dans un navigateur web :
-* l'adresse **`yunohost.local`** OU l’adresse **IP locale de votre serveur** si celui-ci est connecté à votre réseau local (généralement `192.168.x.x`, voir ['Trouver son IP locale'](/finding_the_local_ip))
-* l’adresse **IP publique de votre serveur** si celui-ci n’est pas connecté à votre réseau local (par exemple dans le cas d'un VPS, votre fournisseur devrait vous avoir transmis l'adresse IP).
-
-Lors de la première visite, vous rencontrerez très probablement un avertissement de sécurité lié au certificat utilisé. Pour le moment, votre serveur utilise un certificat auto-signé. Vous pourrez plus tard ajouter un certificat automatiquement reconnus par les navigateurs comme décrit dans la page sur les [Certificats](/certificate). En attendant, ajoutez une exception de sécurité pour accepter le certificat actuel.
-
-Vous arrivez ensuite sur cette page :
-
-
-
-*
Aperçu de la post-installation Web
*
-
-### Via la ligne de commande
-
-Vous pouvez aussi y accéder en entrant la commande `yunohost tools postinstall` directement sur le serveur ou [en SSH](/ssh).
-
-
-
-*
Aperçu de la post-installation en ligne de commande
*
-
-## Informations demandées
-
-### Domaine principal
-
-C’est le nom de domaine qui permettra l’accès à votre serveur ainsi qu’au portail d’authentification des utilisateurs. Il sera donc **visible par tout le monde**, choisissez-le en conséquence.
-
-* YunoHost propose un service de DNS dynamique fournissant des noms de domaine de type *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*. Si vous ne possédez pas de nom de domaine et/ou que vous souhaitez profiter de ce service, choisissez un domaine se terminant en `.nohost.me`, `.noho.st` ou `.ynh.fr`. S'il n'est pas déjà utilisé, le domaine sera automatiquement rattaché à votre serveur YunoHost, et vous n’aurez pas d’étape de configuration supplémentaire.
-
-* Si en revanche vous maîtrisez la notion de **DNS**, vous pouvez utiliser votre propre nom de domaine. Dans ce cas, référez-vous à la page [yunohost.org/dns](/dns) pour plus d’informations.
-
-* Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*, vous pouvez utilisez un domaine local. Plus d'infos sur comment [accéder à son serveur depuis le réseau local](/dns_local_network).
-
-
-### Mot de passe d’administration
-
-C’est le mot de passe qui vous permettra d’accéder à l’[interface d’administration](/admin) de votre serveur. Vous pourrez également l’utiliser pour vous connecter à distance via **SSH**, ou en **SFTP** pour transférer des fichiers.
-
-De manière générale, c’est la **clé d’entrée à votre système**, pensez donc à la **[choisir attentivement](http://www.commentcamarche.net/faq/8275-choisir-un-bon-mot-de-passe)**.
-
-
-
----
-
-## Félicitations !
-
-Si vous arrivez ici après avoir vu "YunoHost a été installé avec succès" depuis
-votre navigateur ou la ligne de commande, alors félicitations !
-
-### Et maintenant ?
-
-- Si vous vous auto-hébergez à la maison et sans VPN, il faut vous assurer
- de bien [rediriger les ports de votre box internet](/isp_box_config) ;
-- Si vous utilisez votre propre nom de domaine (c.-à-d. pas un nohost.me /
- noho.st), il vous faut [configurer le nom de domaine d'après la configuration
- recommandée](/dns_config) ;
-- Si vous ne pouvez pas configurer le nom de domaine pour le moment (parce qu'il
- n'est pas encore acheté, ou parce que c'est un domaine de test), vous pouvez
- contourner temporairement le problème avec les instructions du dernier
- paragraphe [ici](/dns_local_network) ;
-- Ne soyez pas trop effrayé par [l'avertissement à propos du
- certificat](/certificate), vous aurez probablement la possibilité
- d'installer un certificat Let's Encrypt :).
-- Jetez un œil aux [applications disponibles](/apps) !
diff --git a/project_organization.md b/project_organization.md
deleted file mode 120000
index c69cb700..00000000
--- a/project_organization.md
+++ /dev/null
@@ -1 +0,0 @@
-orga/yunohost_project_organization.md
\ No newline at end of file
diff --git a/project_organization_fr.md b/project_organization_fr.md
deleted file mode 120000
index 87648596..00000000
--- a/project_organization_fr.md
+++ /dev/null
@@ -1 +0,0 @@
-orga/yunohost_project_organization_fr.md
\ No newline at end of file
diff --git a/tests/check_code_block_syntax.sh b/tests/check_code_block_syntax.sh
deleted file mode 100644
index 62e83a0f..00000000
--- a/tests/check_code_block_syntax.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-returncode=0
-for FILE in $(ls *.md)
-do
- NB_OPENING=$(grep -E "^ *\`\`\` *\w+ *$" $FILE | wc -l)
- NB_CLOSE=$(grep -E "^ *\`\`\` *$" $FILE | wc -l)
- if [[ "$NB_OPENING" != "$NB_CLOSE" ]]
- then
- echo "There are some mistakes in code block syntax in $FILE ..."
- returncode=1
- fi
-done
-
-if [[ $returncode == 1 ]]
-then
- echo "Make sure that all the code block in the problematic files do specific the language in the opening backticks (for example, \`\`\`bash). Otherwise, rendering in the actual website will be broken because of a bug in markdown parsing lib..."
- exit 1
-fi
diff --git a/tests/dead_links.sh b/tests/dead_links.sh
index c9fd27ce..08bf59b8 100644
--- a/tests/dead_links.sh
+++ b/tests/dead_links.sh
@@ -1,19 +1,17 @@
returncode=0
-# Find all markdown links and generate a list of filename.md:N:linktarget (with N the line number)
-for LINK in $(grep -nr -o -E "\]\(\/?(\w|-)+\)" ./*.md | tr -d ']()/')
-do
- PAGE=$(echo $LINK | awk -F: '{print $3}')
- [ -e "$PAGE.md" ] || echo "This Markdown link looks dead (page doesn't exist in english?) $LINK"
- [ -e "$PAGE.md" ] || returncode=1
-done
+# Parse default routes
+grep -roh "^ *default: .*" ./pages | awk '{print $2}' | tr -d "'" | sort | uniq > .known_pages
-# Find all HTML/href links and generate a list of filename.md:N:linktarget (with N the line number)
-for LINK in $(grep -nr -o -E 'href="\/?(\w|-)+\"' ./*.md | sed -E 's@href="/?@@g' | tr -d '"')
+# Parse aliases
+grep -rh "^---$" ./pages -B 50 | grep "^ *\- '/" | awk '{print $2}' | tr -d "'" | sort | uniq >> .known_pages
+
+# Find all markdown links and generate a list of filename.md:N:linktarget (with N the line number)
+for LINK in $(grep -nr -o -E "\]\(\/?(\w|-)+\)" ./pages)
do
- PAGE=$(echo $LINK | awk -F: '{print $3}')
- [ -e "$PAGE.md" ] || echo "This HTML link looks dead (page doesn't exist in english?) $LINK"
- [ -e "$PAGE.md" ] || returncode=1
+ PAGE=$(echo $LINK | awk -F: '{print $3}' | tr -d ']()/')
+
+ grep -qw "$PAGE" ./.known_pages || { echo $LINK; returncode=1; }
done
exit $returncode
diff --git a/tests/uniformize_links.sh b/tests/uniformize_links.sh
deleted file mode 100644
index e0e1613d..00000000
--- a/tests/uniformize_links.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-for FILE in $(ls *.md);
-do
- grep -q "Unfortunately, this page only exists" $FILE && continue
-
- # Replace markdown links with full url ... we only need the relative url
- sed -i -E 's@\(https://yunohost.org/#/(\w+)\)@(/\1)@g' $FILE
-
- # Replace (/foo_fr) to (foo)
- sed -i -E 's@\(\/?((\w|-)+)_(en|fr|es|it|ar|de|oc|ca)\)@(/\1)@g' $FILE
-
- # Replace href="/foo_fr" to href="foo"
- sed -i -E 's@href="/?((\w|-)+)_(en|fr|es|it|ar|de|oc|ca)"@href="/\1"@g' $FILE;
-done
-
-git checkout project_organization.md project_organization_fr.md
diff --git a/tests/unreferenced_pages.sh b/tests/unreferenced_pages.sh
deleted file mode 100644
index dbe83931..00000000
--- a/tests/unreferenced_pages.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-MARKDOWN_TARGETS=$(grep -nr -o -E "\]\(\/?(\w|-)+\)" ./*.md | tr -d ']()/' | awk -F: '{print $3}' | sort | uniq)
-HTML_TARGETS=$(grep -nr -o -E 'href="\/?(\w|-)+\"' ./*.md | sed -E 's@href="/?@@g' | tr -d '"' | awk -F: '{print $3}' | sort | uniq)
-
-ALL_TARGETS=$(echo $MARKDOWN_TARGETS $HTML_TARGETS)
-
-PAGES=$(ls *.md | sed -E 's/(_(fr|it|de|ar|oc|es|ru|ca))?\.md//g' | sort | uniq)
-
-returncode=0
-
-for PAGE in $PAGES
-do
- if [[ $PAGE == "index" ]] || [[ $PAGE == "README" ]] || [[ $PAGE == "default" ]]
- then
- continue
- fi
- if ! echo $ALL_TARGETS | grep -q -w $PAGE
- then
- returncode=1
- echo "The following page is not referenced by any other page :( -> $PAGE"
- fi
-done
-
-exit $returncode
diff --git a/themes/.gitkeep b/themes/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/themes/learn4/.eslintrc b/themes/learn4/.eslintrc
new file mode 100644
index 00000000..35d3a0a3
--- /dev/null
+++ b/themes/learn4/.eslintrc
@@ -0,0 +1,168 @@
+{
+ "env": {
+ "browser": true,
+ "node": true,
+ "es6": true
+ },
+
+ "parser": "babel-eslint",
+
+ "parserOptions": {
+ "ecmaVersion": 7,
+ "sourceType": "module"
+ },
+
+ "rules": {
+ "accessor-pairs": 2,
+ "array-bracket-spacing": 0,
+ "block-scoped-var": 0,
+ "brace-style": [2, "1tbs", { "allowSingleLine": true }],
+ "camelcase": 0,
+ "comma-dangle": [2, "never"],
+ "comma-spacing": [2, { "before": false, "after": true }],
+ "comma-style": [2, "last"],
+ "complexity": 0,
+ "computed-property-spacing": 0,
+ "consistent-return": 0,
+ "consistent-this": 0,
+ "constructor-super": 2,
+ "curly": [2, "multi-line"],
+ "default-case": 0,
+ "dot-location": [2, "property"],
+ "dot-notation": 0,
+ "eol-last": 2,
+ "eqeqeq": [2, "allow-null"],
+ "func-names": 0,
+ "func-style": 0,
+ "generator-star-spacing": [2, { "before": true, "after": true }],
+ "guard-for-in": 0,
+ "handle-callback-err": [2, "^(err|error)$" ],
+ "indent": [2, 4, { "SwitchCase": 1 }],
+ "key-spacing": [2, { "beforeColon": false, "afterColon": true }],
+ "linebreak-style": 0,
+ "lines-around-comment": 0,
+ "max-nested-callbacks": 0,
+ "new-cap": [2, { "newIsCap": true, "capIsNew": false }],
+ "new-parens": 2,
+ "newline-after-var": 0,
+ "no-alert": 0,
+ "no-array-constructor": 2,
+ "no-caller": 2,
+ "no-catch-shadow": 0,
+ "no-cond-assign": 2,
+ "no-console": 0,
+ "no-constant-condition": 0,
+ "no-continue": 0,
+ "no-control-regex": 2,
+ "no-debugger": 2,
+ "no-delete-var": 2,
+ "no-div-regex": 0,
+ "no-dupe-args": 2,
+ "no-dupe-keys": 2,
+ "no-duplicate-case": 2,
+ "no-else-return": 0,
+ "no-empty": 0,
+ "no-empty-character-class": 2,
+ "no-eq-null": 0,
+ "no-eval": 2,
+ "no-ex-assign": 2,
+ "no-extend-native": 2,
+ "no-extra-bind": 2,
+ "no-extra-boolean-cast": 2,
+ "no-extra-parens": 0,
+ "no-extra-semi": 0,
+ "no-fallthrough": 2,
+ "no-floating-decimal": 2,
+ "no-func-assign": 2,
+ "no-implied-eval": 2,
+ "no-inline-comments": 0,
+ "no-inner-declarations": [2, "functions"],
+ "no-invalid-regexp": 2,
+ "no-irregular-whitespace": 2,
+ "no-iterator": 2,
+ "no-label-var": 2,
+ "no-labels": 2,
+ "no-lone-blocks": 2,
+ "no-lonely-if": 0,
+ "no-loop-func": 0,
+ "no-mixed-requires": 0,
+ "no-mixed-spaces-and-tabs": 2,
+ "no-multi-spaces": 2,
+ "no-multi-str": 2,
+ "no-multiple-empty-lines": [2, { "max": 1 }],
+ "no-native-reassign": 2,
+ "no-negated-in-lhs": 2,
+ "no-nested-ternary": 0,
+ "no-new": 2,
+ "no-new-func": 0,
+ "no-new-object": 2,
+ "no-new-require": 2,
+ "no-new-wrappers": 2,
+ "no-obj-calls": 2,
+ "no-octal": 2,
+ "no-octal-escape": 2,
+ "no-param-reassign": 0,
+ "no-path-concat": 0,
+ "no-process-env": 0,
+ "no-process-exit": 0,
+ "no-proto": 0,
+ "no-redeclare": 2,
+ "no-regex-spaces": 2,
+ "no-restricted-modules": 0,
+ "no-return-assign": 2,
+ "no-script-url": 0,
+ "no-self-compare": 2,
+ "no-sequences": 2,
+ "no-shadow": 0,
+ "no-shadow-restricted-names": 2,
+ "no-spaced-func": 2,
+ "no-sparse-arrays": 2,
+ "no-sync": 0,
+ "no-ternary": 0,
+ "no-this-before-super": 2,
+ "no-throw-literal": 2,
+ "no-trailing-spaces": 2,
+ "no-undef": 2,
+ "no-undef-init": 2,
+ "no-undefined": 0,
+ "no-underscore-dangle": 0,
+ "no-unexpected-multiline": 2,
+ "no-unneeded-ternary": 2,
+ "no-unreachable": 2,
+ "no-unused-expressions": 0,
+ "no-unused-vars": [2, { "vars": "all", "args": "none" }],
+ "no-use-before-define": 0,
+ "no-var": 0,
+ "no-void": 0,
+ "no-warning-comments": 0,
+ "no-with": 2,
+ "object-curly-spacing": 0,
+ "object-shorthand": 0,
+ "one-var": [2, { "initialized": "never" }],
+ "operator-assignment": 0,
+ "operator-linebreak": [2, "after", { "overrides": { "?": "before", ":": "before" } }],
+ "padded-blocks": 0,
+ "prefer-const": 0,
+ "quote-props": 0,
+ "quotes": [2, "single", "avoid-escape"],
+ "radix": 2,
+ "semi": [2, "always"],
+ "semi-spacing": 0,
+ "sort-vars": 0,
+ "keyword-spacing": [2, {"after": true, "overrides": {"throw": { "after": true}, "return": { "before": true }}}],
+ "space-before-blocks": [2, "always"],
+ "space-before-function-paren": [2, "never"],
+ "space-in-parens": [2, "never"],
+ "space-infix-ops": 2,
+ "space-unary-ops": [2, { "words": true, "nonwords": false }],
+ "spaced-comment": [2, "always", { "markers": ["global", "globals", "eslint", "eslint-disable", "*package", "!"] }],
+ "strict": 0,
+ "use-isnan": 2,
+ "valid-jsdoc": 0,
+ "valid-typeof": 2,
+ "vars-on-top": 0,
+ "wrap-iife": [2, "any"],
+ "wrap-regex": 0,
+ "yoda": [2, "never"]
+ }
+}
diff --git a/themes/learn4/.gitignore b/themes/learn4/.gitignore
new file mode 100644
index 00000000..07e6e472
--- /dev/null
+++ b/themes/learn4/.gitignore
@@ -0,0 +1 @@
+/node_modules
diff --git a/themes/learn4/CHANGELOG.md b/themes/learn4/CHANGELOG.md
new file mode 100644
index 00000000..11d1af97
--- /dev/null
+++ b/themes/learn4/CHANGELOG.md
@@ -0,0 +1,167 @@
+# v2.0.0-rc.2
+## mm/dd/2019
+
+1. [](#improved)
+ * Updated [Spectre.css](https://picturepan2.github.io/spectre/) to latest `0.5.8` version
+
+# v2.0.0-rc.1
+## 02/07/2019
+
+1. [](#improved)
+ * Support for 2FA panel styling
+ * Updated to Yarn 4.0 syntax
+1. [](#bugfix)
+ * Some checkboxes fixes for Forms 3.0
+
+# v2.0.0-beta.4
+## 12/07/2018
+
+1. [](#improved)
+ * Updated to include latest `v1.2.5` improvements
+
+# v2.0.0-beta.3
+## 11/12/2018
+
+1. [](#improved)
+ * Updated to include latest `v1.2.4` improvements
+1. [](#bugfix)
+ * More Twig 2.0 compatibility fixes
+
+# v2.0.0-beta.2
+## 11/05/2018
+
+1. [](#improved)
+ * Updated to include latest `v1.2.3` improvements
+1. [](#bugfix)
+ * Fixed a Twig 2.0 issue with assets rendering
+
+# v2.0.0-beta.1
+## 10/24/2018
+
+1. [](#new)
+ * Use new `deferred` Twig blocks (requires Grav 1.6+)
+1. [](#improved)
+ * Updated to use new `GRAV` core language prefix
+
+# v1.2.5
+## 12/07/2018
+
+1. [](#improved)
+ * Updated [Spectre.css](https://picturepan2.github.io/spectre/) to latest `0.5.7` version
+1. [](#bugfix)
+ * Fixed missing `