Merge branch 'master' into yep-3-7

This commit is contained in:
Alexandre Aubin 2018-09-03 17:48:24 +02:00 committed by GitHub
commit a96f409a5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
251 changed files with 6956 additions and 4707 deletions

View file

@ -2,7 +2,7 @@
Nous allons voir comment configurer le DNS avec [OVH](http://www.ovh.com). 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 la panneau de configuration d'OVH, et cliquez sur votre domaine à gauche: 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:
<img src="/images/ovh_control_panel.png" width=800> <img src="/images/ovh_control_panel.png" width=800>
@ -17,7 +17,7 @@ Il suffit maintenant d'ajouter les redirections DNS comme indiqué dans la [conf
[Tutoriel plus général sur lIP dynamique](dns_dynamicip_fr). [Tutoriel plus général sur lIP dynamique](dns_dynamicip_fr).
Cette partie est à suivre que si votre IP est dynamique. Cette partie est à suivre, que si votre IP est dynamique.
Pour savoir si votre fournisseur daccès internet vous fournit une IP dynamique [voir ici](/isp_fr). Pour savoir si votre fournisseur daccès internet vous fournit une IP dynamique [voir ici](/isp_fr).

View file

@ -3,5 +3,4 @@
* [Web Site](https://yunohost.org) * [Web Site](https://yunohost.org)
* Based on [Simone](https://github.com/YunoHost/Simone) * Based on [Simone](https://github.com/YunoHost/Simone)
Please report [issues on YunoHost bugtracker](https://dev.yunohost.org/projects/yunohost/issues) (no registration needed). Please report [issues on YunoHost bugtracker](https://github.com/YunoHost/issues/issues).

View file

@ -2,15 +2,14 @@
<abbr title="Extensible Messaging and Presence Protocol">XMPP</abbr> is a communication protocol of instant messaging, VoIP (Voice over IP), videoconferencing. <abbr title="Extensible Messaging and Presence Protocol">XMPP</abbr> is a communication protocol of instant messaging, VoIP (Voice over IP), videoconferencing.
YunoHost provide: YunoHost provide:
* [Metronome](http://www.lightwitch.org/metronome): a XMPP server * [Metronome](https://metronome.im/): a XMPP server
* [Jappix](/apps): a web XMPP client
## Desktop XMPP client ## Desktop XMPP client
You can connect to your XMPP server with any standard desktop XMPP client, such as [Pidgin](http://pidgin.im/), [Gajim](http://gajim.org), [Jitsi](http://jitsi.org/) or [Adium](https://adium.im/). You can connect to your XMPP server with any standard desktop XMPP client, such as [Pidgin](http://pidgin.im/), [Gajim](http://gajim.org), [Jitsi](http://jitsi.org/) or [Adium](https://adium.im/).
The credentials to give are : The credentials to give are :
* The first part of your email address (without the @domain.tld) * Your email address (with the @domain.tld)
* Your standard YunoHost password * Your standard YunoHost password
Your XMPP server runs on the standard port 5222. Your administrator might need to forward this port if the server is behind a router. Your XMPP server runs on the standard port 5222. Your administrator might need to forward this port if the server is behind a router.

View file

@ -2,11 +2,9 @@
Yunohost est installé avec un serveur de messagerie instantanée <abbr title="Extensible Messaging and Presence Protocol">XMPP</abbr> (metronome). Yunohost est installé avec un serveur de messagerie instantanée <abbr title="Extensible Messaging and Presence Protocol">XMPP</abbr> (metronome).
Vous pouvez discuter simplement avec des contacts XMPP/Jabber en installant lapplication [Jappix](https://jappix.com/) depuis linterface dadministration.
[XMPP](https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) est un protocole ouvert et extensible qui permet également de créer des salons de discussions, de partager des statuts et des données, de passer des appels en VoIP et de faire de la visioconférence. [XMPP](https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) est un protocole ouvert et extensible qui permet également de créer des salons de discussions, de partager des statuts et des données, de passer des appels en VoIP et de faire de la visioconférence.
Toutes les applications basées sur XMPP sont compatibles entre-elles : lorsque vous utilisez un client XMPP vous pouvez discuter avec nimporte quel possesseur.e dun compte XMPP/Jabber. Ce protocole est déjà utilisé par des millions de personnes dans le monde. Toutes les applications basées sur XMPP sont compatibles entre-elles : lorsque vous utilisez un client XMPP vous pouvez discuter avec nimporte quel possesseur dun compte XMPP/Jabber. Ce protocole est déjà utilisé par des millions de personnes dans le monde.
### Compte XMPP/Jabber ### Compte XMPP/Jabber
@ -14,9 +12,9 @@ Un compte XMPP/Jabber est basé sur un identifiant sous la forme `utilisateur@do
Sous yunohost, cet identifiant correspond simplement à ladresse courriel principale dun utilisateur. Le mot de passe est celui du compte de lutilisateur. Sous yunohost, cet identifiant correspond simplement à ladresse courriel principale dun utilisateur. Le mot de passe est celui du compte de lutilisateur.
### Utiliser un autre client XMPP ### Se connecter à XMPP
En plus de Jappix, il existe dautres clients web orientés réseau social, comme [Movim](https://pod.movim.eu) ou [Libervia/Salut à Toi](http://salut-a-toi.org/). Il existe des clients web orientés réseau social, comme [Movim](https://pod.movim.eu) ou [Libervia/Salut à Toi](http://salut-a-toi.org/).
Vous pouvez également utiliser un client desktop comme [Pidgin](http://pidgin.im/) (multiplateforme), [Gajim](http://gajim.org/index.fr.html) (Linux), [thunderbird](https://www.mozilla.org/fr/thunderbird/) (multiplateforme), [Jitsi](http://jitsi.org/) (multiplateforme) ou [Adium](https://adium.im/) (Mac OS). Vous pouvez également utiliser un client desktop comme [Pidgin](http://pidgin.im/) (multiplateforme), [Gajim](http://gajim.org/index.fr.html) (Linux), [thunderbird](https://www.mozilla.org/fr/thunderbird/) (multiplateforme), [Jitsi](http://jitsi.org/) (multiplateforme) ou [Adium](https://adium.im/) (Mac OS).
@ -27,21 +25,20 @@ Vous pouvez également utiliser un client desktop comme [Pidgin](http://pidgin.i
Voici une liste plus exhaustive des clients XMPP : https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP Voici une liste plus exhaustive des clients XMPP : https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP
### Chiffrer ses conversations avec OTR ### Chiffrer ses conversations avec OMEMO
Il est possible de chiffrer ses conversations XMPP à laide de [OTR](https://otr.cypherpunks.ca/index.php#downloads), notamment en utilisant Pidgin : Il est possible de chiffrer ses conversations XMPP à laide de [OMEMO](https://xmpp.org/extensions/xep-0384.html), notamment en utilisant Gajim :
* Installer `pidgin` et le plugin [`pidgin-otr`](https://otr.cypherpunks.ca/index.php#downloads)(sous linux il devrait être disponible avec votre gestionnaire de paquet) * Installer `gajim` et le plugin `gajim-omemo`
* Activez le plugins dans `Outils > Plugins` * Activez le plugins dans `Outils > Plugins`
* Faite `produire` pour générer une empreinte * L'activer
* Activez le chiffrement dans une conversation avec un contact disposant de lOTR. * Activez le chiffrement dans une conversation avec un contact disposant de OMEMO.
### Salon de discussion ### Salon de discussion
Pour créer un salon de discussion (Multi-user chat) sur votre serveur Yunohost utilisez lidentifiant nomsalon@muc.domaine.tld (ou domaine.tld est le domaine principal de votre serveur). Pour créer un salon de discussion (Multi-user chat) sur votre serveur Yunohost utilisez lidentifiant nomsalon@muc.domaine.tld (où domaine.tld est le domaine principal de votre serveur).
Si vous utilisez un nom de domaine personnel, il est nécessaire d[ajouter une redirection de `type CNAME` pour le sous domaine `muc.`](dns_config_fr) au niveau de votre serveur DNS. Si vous utilisez un nom de domaine personnel, il est nécessaire d[ajouter une redirection de `type CNAME` pour le sous domaine `muc.`](dns_config_fr) au niveau de votre serveur DNS.
### VoIP et visioconférence ### VoIP et visioconférence
Un moyen pratique dappeler un contact XMPP, en VoIP ou en appel vidéo, est dutiliser le client [Jitsi](http://jitsi.org/). Un moyen pratique dappeler un contact XMPP, en VoIP ou en appel vidéo, est dutiliser le client [Jitsi](http://jitsi.org/).

View file

@ -1,3 +0,0 @@
#Accounting
If you want to contribute to this documentation, you have to [ask an admin to create an account](/support) **OR** send merge requests to the pages' [git repository](https://github.com/YunoHost/doc).

View file

@ -1,3 +0,0 @@
#Comptes utilisateur
Si vous voulez contribuer à cette documentation, vous devez [demander à un administrateur de vous créer un compte](/support_fr), ou modifier directement le répertoire des pages via le [dépôt Git](https://github.com/YunoHost/doc).

View file

@ -1,8 +1,6 @@
# Administrator web interface # Administrator web interface
Yunohost has an administrator web interface. The other way to administer your Yunohost install is through the [CLI called "moulinette"](/moulinette) Yunohost has an administrator web interface. The other way to administrate your Yunohost install is through the [command line](/commandline).
**Please note** that the web interface is an active work-in-progress and has far fewer features than the CLI moulinette.
### Access ### Access
@ -12,20 +10,9 @@ You can access your administrator web interface at this address: https://example
<img src="/images/manage_en.png" style="max-width:100%;"> <img src="/images/manage_en.png" style="max-width:100%;">
</div> </div>
### Reset admin password ### Reset admin password
#### On Yunohost 2.5
The script to reset the admin password is not directly available, but can be downloaded and executed (as root) :
```bash
$ wget https://raw.githubusercontent.com/YunoHost/yunohost/testing/sbin/yunohost-reset-ldap-password
$ chmod +x yunohost-reset-ldap-password
$ ./yunohost-reset-ldap-password
```
#### From Yunohost 2.6
To reset the admin password (as root) : To reset the admin password (as root) :
```bash ```bash
@ -34,6 +21,7 @@ $ yunohost-reset-ldap-password
A temporary password will be created, which you can use to define the new password. A temporary password will be created, which you can use to define the new password.
### How to move application folder ### How to move application folder
To change an application folder, only a few commands are needed: move content, create a symlink and set access rights. To change an application folder, only a few commands are needed: move content, create a symlink and set access rights.

View file

@ -1,30 +1,18 @@
# Linterface dadministration web # Linterface dadministration web
YunoHost est fourni avec une interface graphique dadministration. Lautre méthode est dutiliser la [moulinette](/moulinette_fr) ligne de commande. YunoHost est fourni avec une interface graphique dadministration. Lautre méthode est dutiliser la [ligne de commande](/commandline_fr).
**Attention** : linterface dadministration donne accès à beaucoup moins de fonctionnalités que la moulinette, car elle est en développement actif.
### Accès ### Accès
Linterface admin est accessible depuis votre instance YunoHost à ladresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur) Linterface admin est accessible depuis votre instance YunoHost à ladresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur)
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"> <div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
<img src="/images/manage.png" style="max-width:100%;"> <img src="/images/manage.png" style="max-width:100%;">
</div> </div>
### Réinitialiser le mot de passe administrateur ### Réinitialiser le mot de passe administrateur
#### Sous Yunohost 2.5
Le script pour réinitialiser le mot de passe adminstrateur n'est pas directement disponible, mais peut être téléchargé puis executé (à partir de l'utilisateur root) :
```bash
$ wget https://raw.githubusercontent.com/YunoHost/yunohost/testing/sbin/yunohost-reset-ldap-password
$ chmod +x yunohost-reset-ldap-password
$ ./yunohost-reset-ldap-password
```
#### À partir de Yunohost 2.6
Pour réinitialiser le mot de passe administrateur de YunoHost (à partir de l'utilisateur root) : Pour réinitialiser le mot de passe administrateur de YunoHost (à partir de l'utilisateur root) :
```bash ```bash
@ -34,10 +22,9 @@ $ yunohost-reset-ldap-password
Un mot de passe temporaire sera créé, que vous pouvez utiliser pour ensuite définir un nouveau mot de passe. Un mot de passe temporaire sera créé, que vous pouvez utiliser pour ensuite définir un nouveau mot de passe.
### Comment déplacer le dossier dune application ### Comment déplacer le dossier dune application
Pour changer le dossier contenant une application, seules quelques commandes sont nécessaires : déplacer le contenu créer un lien symbolique et définir les droits daccès. Pour changer le dossier contenant une application, seules quelques commandes sont nécessaires : déplacer le contenu, créer un lien symbolique et définir les droits daccès.
Exemple avec WordPress : Exemple avec WordPress :
```bash ```bash

View file

@ -1,35 +1,37 @@
# Administrator documentation # Administrator documentation
*For want of anything better, here is an index of interesting pages for the YunoHost server's administrator.* * Discovering self-hosting
* [What is Self-hosting](/selfhosting)
* [What is Self-hosting](/selfhosting) * [What is YunoHost](/whatsyunohost)
* [Compatible hardware](/hardware) * Before installing
* [Installation guide](/install) * [Try YunoHost](/try)
* [On an OLinuXino board](/install_on_olinuxino) * [Choosing hardware](/hardware)
* [On an ARM board](/install_on_arm_board) * [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 a Raspberry Pi](/install_on_raspberry)
* [From an ISO](/install_iso) * [On an ARM board](/install_on_arm_board)
* [On Debian](/install_on_debian) * [On Debian](/install_on_debian)
* [On VirtualBox](/install_on_virtualbox) * [On VirtualBox](/install_on_virtualbox)
* [On Vagrant](/vagrant) * Finalizing your setup
* [On a dedicated or a virtual private server](/install_on_vps) * [Post-installation](/postinstall)
* Installation steps * [Configuring port forwarding](/isp_box_config)
* [Burn or copy iso](/burn_or_copy_iso) * [Configuring DNS records](/dns_config)
* [Boot and graphical install](/boot_and_graphical_install) * [Installing an SSL certificate](/certificate)
* [Copy YunoHost image on SD card](/copy_image) * [Diagnose if your setup is working properly](/diagnostic)
* [Manual instalation](/install_manually) * Getting to know YunoHost
* [Plug and boot your server](/plug_and_boot) * [Web administration interface](/admin)
* [Post-instalation](/postinstall) * [Connecting to your server using SSH](/ssh)
* [Available applications](/apps) * [Command-line administration](/commandline)
* [Administration interface usage](/admin) * [Application catalog](/apps)
* [Command-line interface usage](/moulinette) * [Updating your server](/update) and [apps](/app_update)
* [List of friendly ISPs](/isp) * [Backup](/backup)
* [Security](/security) * Going further
* [Hide services with Tor](/torhiddenservice) * [Improving security](/security)
* [DNS understanding](/dns) * [Adding an external storage](/external_storage)
* [What is YunoHost](/whatsyunohost) * [Migrating emails to YunoHost](/email_migration)
* [Unlock IP in iptables](/fail2ban) * [Hide services with Tor](/torhiddenservice)
* [SSL certificate installation](/certificate) * [Troubleshooting guide](/troubleshooting_guide)
* [Troubleshooting guide](/troubleshooting_guide_en) * [Unlock IP in iptables](/fail2ban)
* [Backup](/backup) * [Changing the administration password](/change_admin_password)
* [Update](/update)

View file

@ -1,72 +1,49 @@
# Documentation pour les administrateurs YunoHost # Documentation pour les administrateurs YunoHost
* [Lauto-hébergement](/selfhosting_fr) * Découvrir l'auto-hébergement
* [Matériel compatible](/hardware_fr) * [Qu'est-ce que l'auto-hébergement](/selfhosting_fr)
* [Qu'est-ce que YunoHost](/whatsyunohost_fr)
* Avant de se lancer
* [Essayer YunoHost](/try_fr)
* [Matériel compatible](/hardware_fr)
* [À propos des fournisseurs d'accès internet](/isp_fr)
* [Guide dinstallation](/install_fr) * [Guide dinstallation](/install_fr)
* [Sur une carte OLinuXino](/install_on_olinuxino_fr) * [Sur un ordinateur "standard"](/install_iso_fr)
* [Sur une carte ARM](/install_on_arm_board_fr) * [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps_fr)
* [Sur un Raspberry Pi](/install_on_raspberry_fr) * [Sur un Raspberry Pi](/install_on_raspberry_fr)
* [À partir de lISO](/install_iso_fr) * [Sur une carte ARM](/install_on_arm_board_fr)
* [Sur Debian](/install_on_debian_fr) * [Sur Debian](/install_on_debian_fr)
* [Sur VirtualBox](/install_on_virtualbox_fr) * [Sur VirtualBox](/install_on_virtualbox_fr)
* [Sur Vagrant](/vagrant_fr) * Finaliser son installation
* [Sur un serveur dédié](/install_on_vps_fr)
* Étapes dinstallation
* [Graver ou copier lISO](/burn_or_copy_iso_fr)
* [Démarrage et installation graphique](/boot_and_graphical_install_fr)
* [Copier limage YunoHost sur une carte SD](/copy_image_fr)
* [Installation manuelle](/install_manually_fr)
* [Brancher et démarrer votre serveur](/plug_and_boot_fr)
* [Post-installation](/postinstall_fr) * [Post-installation](/postinstall_fr)
* [Configurer les redirections de port](/isp_box_config_fr)
* [Configurer les enregistrements DNS](/dns_config_fr)
* [Installer un certificat SSL](/certificate_fr)
* [Diagnostic du bon fonctionnement du YunoHost](/diagnostic_fr) * [Diagnostic du bon fonctionnement du YunoHost](/diagnostic_fr)
* [DNS - Système de nom de domaine](/dns_fr) * Apprendre à connaitre YunoHost
* [Bureaux denregistrements de nom de domaine - Registrar](registrar_fr) * [L'interface d'administration web](/admin_fr)
* [Configuration du DNS chez son registrar](/dns_config_fr) * [Se connecter à son serveur via SSH](/ssh_fr)
* [Administrer son serveur en ligne de commande](/commandline_fr)
* [Catalogue d'applications](/apps_fr)
* [Mettre à jour son serveur](/update_fr) et [les apps](/app_update_fr)
* [Les sauvegardes](/backup_fr)
* Pour aller plus loin
* [Améliorer la sécurité](/security_fr)
* Noms de domaine
* [Nom de domaine en noho.st / nohost.me](/dns_nohost_me_fr)
* [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip_fr)
* [DNS et installation dune application sur un sous-domaine](/dns_subdomains_fr) * [DNS et installation dune application sur un sous-domaine](/dns_subdomains_fr)
* [Utiliser le résolveur DNS](/dns_resolver_fr) * [Utiliser le résolveur DNS local](/dns_resolver_fr)
* [Configurer un DNS dynamique avec une adresse IP dynamique](dns_dynamicip_fr) * [Gérer les enregistrements DNS chez OVH](/OVH_fr)
* [Avec OVH](/OVH_fr) * Notes à propos de certains fournisseurs d'accès à Internet
* [Accéder à son domaine depuis le réseau local](/dns_local_network_fr)
* [Nom de domaine en Nohost.me](/dns_nohost_me_fr)
* [Applications officielles](/apps_fr)
* [Mettre à jour ses applications](app_update_fr)
* [Applications en cours](apps_in_progress_fr)
* [Applications souhaitées](apps_wishlist_fr)
* [Nextcloud](app_nextcloud_fr)
* [Fournisseurs daccès à Internet](/isp_fr)
* [Configuration générale dune box](/isp_box_config_fr)
* [SFR](/isp_sfr_fr) * [SFR](/isp_sfr_fr)
* [Orange](/isp_orange_fr) * [Orange](/isp_orange_fr)
* [Free](/isp_free_fr) * [Free](/isp_free_fr)
* [Administration via linterface en ligne](/admin_fr) * [Ajouter un stockage externe](/external_storage_fr)
* [Administration via lAPI](/admin_api_fr) * [Migrer ses emails vers YunoHost](/email_migration_fr)
* [Sécurité](/security_fr) * [YunoHost avec un service caché Tor](/torhiddenservice_fr)
* [Authentification SSH par clé](/security_fr) * [Utilisation de certificats autres que Let's Encrypt](/certificate_custom_fr)
* [Modifier le port SSH](/security_fr)
* [Changer lutilisateur autorisé à se connecter par SSH](/security_fr)
* [Désactivation de lAPI YunoHost](/security_fr)
* [Connexion à son serveur en ligne de commande avec SSH](/ssh_fr)
* [Guide de dépannage](/troubleshooting_guide_fr) * [Guide de dépannage](/troubleshooting_guide_fr)
* [Notes générales](/troubleshooting_guide_fr) * [Débloquer une IP dans Fail2ban](/fail2ban_fr)
* [Mise à jour](/troubleshooting_guide_fr) * [Changer le mot de passe dadministration](/change_admin_password_fr)
* [Les services](/troubleshooting_guide_fr) * [Formulaires pour enlever son IP des listes noires](/blacklist_forms_fr)
* [Journaux système](/troubleshooting_guide_fr)
* [Utilisation de la RAM](/troubleshooting_guide_fr)
* [Espace disque](/troubleshooting_guide_fr)
* [Applications](/troubleshooting_guide_fr)
* [Applications PHP](/troubleshooting_guide_fr)
* [Applications Python](/troubleshooting_guide_fr)
* [Applications Node.js](/troubleshooting_guide_fr)
* [Autres (Go, Java…)](/troubleshooting_guide_fr)
* [Ladministration en ligne de commande avec la Moulinette](/moulinette_fr)
* [Changer le mot de passe dadministration](/change_admin_password_fr)
* [Courrier électronique](email_fr)
* [Formulaires pour enlever son IP des listes noires](blacklist_forms_fr)
* [La signature du serveur via DKIM](dkim_fr)
* [Gestion des certificats](/certificate_fr)
* [Régénérer un certificat](/regenerate_certificate_fr)
* [Utiliser Let's Encrypt](/certmanager_fr)
* [YunoHost avec un service caché Tor](/torhiddenservice_fr)
* [Débloquer une IP avec Fail2ban](/fail2ban_fr)
* [Les sauvegardes](/backup_fr)
* [Les mises à jour](/update_fr)

View file

@ -11,7 +11,6 @@ The user name specified is "admin" followed by the specific password choosen at
### Example of creating a new user: ### Example of creating a new user:
Go to the "settings" tab, select "Digest" in "WebDAV authentication type".
Add users to the "Users and resources" tab. Add users to the "Users and resources" tab.
## CalDAV Connection ## CalDAV Connection

View file

@ -43,7 +43,7 @@ Ajoutez un nouveau carnet dadresses en allant dans Paramètres > Préférence
Renseigner : Renseigner :
* Nom du carnet dadresses : `default` * Nom du carnet dadresses : `default`
* Nom dutilisateur : `username` * Nom dutilisateur : `username`
* Mot de passe : `leMotDePasseAssociéAUsername` * Mot de passe : `leMotDePasseAssociéAUusername`
* URL : `https://example.com/baikal/card.php/addressbooks/username/default` * URL : `https://example.com/baikal/card.php/addressbooks/username/default`
*En prenant soin de remplacer « example.com » par votre domaine et « username » par votre nom dutilisateur* *En prenant soin de remplacer « example.com » par votre domaine et « username » par votre nom dutilisateur*

View file

@ -14,4 +14,4 @@ Remplacez lURL par la vôtre : https://mondomaine.tld/adresse/token/1.0/sync
Créez un compte chez Mozilla : https://accounts.firefox.com/signup Créez un compte chez Mozilla : https://accounts.firefox.com/signup
#### Firefox mobile #### Firefox mobile
Avec la dernière version de firefox mobile c'est identique que firefox pour le bureau. Avec la dernière version de firefox mobile c'est identique à firefox pour le bureau.

6
app_firefly_iii.md Normal file
View file

@ -0,0 +1,6 @@
# Firefly III
For support and notes regarding the installation and use of Firefly III on YunoHost, please see these pages:
* [The official documentation](http://firefly-iii.readthedocs.io/en/latest/)
* [The pages on YunoHost specifically](http://firefly-iii.readthedocs.io/en/latest/installation/yunohost.html)

View file

@ -1,6 +1,6 @@
#<img src="/images/limesurvey.png">LimeSurvey #<img src="/images/limesurvey.png">LimeSurvey
LimeSurvey est un outil de création et diffusion de sondage/formulaire en ligne.. LimeSurvey est un outil de création et diffusion de sondage/formulaire en ligne.
### Comment créer un questionnaire ### Comment créer un questionnaire
Pour créer un questionnaire, il faut accéder à l'interface d'administration. Pour créer un questionnaire, il faut accéder à l'interface d'administration.

262
app_netdata.md Normal file
View file

@ -0,0 +1,262 @@
## 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._
[![Install Piwigo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](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)
* phpfpm: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#phpfpm)
## Features
<p align="center">
<img src="https://cloud.githubusercontent.com/assets/2662304/19168687/f6a567be-8c19-11e6-8561-ce8d589e8346.gif"/>
</p>
- **Stunning interactive bootstrap dashboards**<br/>
mouse and touch friendly, in 2 themes: dark, light
- **Amazingly fast**<br/>
responds to all queries in less than 0.5 ms per metric,
even on low-end hardware
- **Highly efficient**<br/>
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**<br/>
hundreds of alarms, **out of the box**!<br/>
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**<br/>
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**<br/>
it can run anywhere a Linux kernel runs (even IoT)
and its charts can be embedded on your web pages too
- **Customizable**<br/>
custom dashboards can be built using simple HTML (no javascript necessary)
- **Zero configuration**<br/>
auto-detects everything, it can collect up to 5000 metrics
per server out of the box
- **Zero dependencies**<br/>
it is even its own web server, for its static web files and its web API
- **Zero maintenance**<br/>
you just run it, it does the rest
- **scales to infinity**<br/>
requiring minimal central resources
- **several operating modes**<br/>
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**<br/>
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)
![netdata](https://cloud.githubusercontent.com/assets/2662304/14092712/93b039ea-f551-11e5-822c-beadbf2b2a2e.gif)
---
## 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**<br/>
usage, interrupts, softirqs, frequency, total and per core, CPU states
- **Memory**<br/>
RAM, swap and kernel memory usage, KSM (Kernel Samepage Merging), NUMA
- **Disks**<br/>
per disk: I/O, operations, backlog, utilization, space, software RAID (md)
![sda](https://cloud.githubusercontent.com/assets/2662304/14093195/c882bbf4-f554-11e5-8863-1788d643d2c0.gif)
- **Network interfaces**<br/>
per interface: bandwidth, packets, errors, drops
![dsl0](https://cloud.githubusercontent.com/assets/2662304/14093128/4d566494-f554-11e5-8ee4-5392e0ac51f0.gif)
- **IPv4 networking**<br/>
bandwidth, packets, errors, fragments,
tcp: connections, packets, errors, handshake,
udp: packets, errors,
broadcast: bandwidth, packets,
multicast: bandwidth, packets
- **IPv6 networking**<br/>
bandwidth, packets, errors, fragments, ECT,
udp: packets, errors,
udplite: packets, errors,
broadcast: bandwidth,
multicast: bandwidth, packets,
icmp: messages, errors, echos, router, neighbor, MLDv2, group membership,
break down by type
- **Interprocess Communication - IPC**<br/>
such as semaphores and semaphores arrays
- **netfilter / iptables Linux firewall**<br/>
connections, connection tracker events, errors
- **Linux DDoS protection**<br/>
SYNPROXY metrics
- **fping** latencies</br>
for any number of hosts, showing latency, packets and packet loss
![image](https://cloud.githubusercontent.com/assets/2662304/20464811/9517d2b4-af57-11e6-8361-f6cc57541cd7.png)
- **Processes**<br/>
running, blocked, forks, active
- **Entropy**<br/>
random numbers pool, using in cryptography
- **NFS file servers and clients**<br/>
NFS v2, v3, v4: I/O, cache, read ahead, RPC calls
- **Network QoS**<br/>
the only tool that visualizes network `tc` classes in realtime
![qos-tc-classes](https://cloud.githubusercontent.com/assets/2662304/14093004/68966020-f553-11e5-98fe-ffee2086fafd.gif)
- **Linux Control Groups**<br/>
containers: systemd, lxc, docker
- **Applications**<br/>
by grouping the process tree and reporting CPU, memory, disk reads,
disk writes, swap, threads, pipes, sockets - per group
![apps](https://cloud.githubusercontent.com/assets/2662304/14093565/67c4002c-f557-11e5-86bd-0154f5135def.gif)
- **Users and User Groups resource usage**<br/>
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**<br/>
`mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers
- **Nginx web servers**<br/>
`stub-status`, for multiple servers
- **Tomcat**<br/>
accesses, threads, free memory, volume
- **web server log files**<br/>
extracting in real-time, web server performance metrics and applying several health checks
- **mySQL databases**<br/>
multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues,
tmp operations, connections, binlog metrics, threads, innodb metrics, and more
- **Postgres databases**<br/>
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**<br/>
multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves
- **mongodb**<br/>
operations, clients, transactions, cursors, connections, asserts, locks, etc
- **memcached databases**<br/>
multiple servers, each showing: bandwidth, connections, items
- **elasticsearch**<br/>
search and index performance, latency, timings, cluster statistics, threads statistics, etc
- **ISC Bind name servers**<br/>
multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics
- **NSD name servers**<br/>
queries, zones, protocols, query types, transfers, etc.
- **Postfix email servers**<br/>
message queue (entries, size)
- **exim email servers**<br/>
message queue (emails queued)
- **Dovecot** POP3/IMAP servers<br/>
- **ISC dhcpd**<br/>
pools utilization, leases, etc.
- **IPFS**<br/>
bandwidth, peers
- **Squid proxy servers**<br/>
multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests
- **HAproxy**<br/>
bandwidth, sessions, backends, etc
- **varnish**<br/>
threads, sessions, hits, objects, backends, etc
- **OpenVPN**<br/>
status per tunnel
- **Hardware sensors**<br/>
`lm_sensors` and `IPMI`: temperature, voltage, fans, power, humidity
- **NUT and APC UPSes**<br/>
load, charge, battery voltage, temperature, utility metrics, output metrics
- **PHP-FPM**<br/>
multiple instances, each reporting connections, requests, performance
- **hddtemp**<br/>
disk temperatures
- **smartd**<br/>
disk S.M.A.R.T. values
- **SNMP devices**<br/>
can be monitored too (although you will need to configure these)
- **statsd**<br/>
[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/

View file

@ -1,19 +1,143 @@
#Nextcloud # Ajouter de l'espace de stockage
### Utiliser un autre support mémoire La solution I) permet d'ajouter un lien vers un dossier local ou distant.
La solution II) permet de déplacer l'espace de stockage principal de nextcloud.
**Prérequis :** connaître les commandes dadministration Unix ## I) Ajouter un espace de stockage externe
Le répertoire des donnés de Nextcloud (contenant les fichiers) sont dans `/home/yunohost.app/nextcloud/data` Paramètre => [Administration] Stockages externe.
Il est possible de déplacer ces données sur autre support mémoire. En bas de la liste vous pouvez rajouter un dossier (Il est possible de définir un sous dossier en utilisant la convention `dossier/sousDossier`.)
Sélectionner un type de stockage et indiquez les information de connexion demandés.
Vous pouvez restreindre ce dossier à un ou plusieurs utilisateurs nextcloud avec la colonne `Disponible pour`.
Avec l'engrenage vous pouvez autoriser ou interdire la prévisualisation et le partage des fichiers.
Enfin cliquer sur la coche pour valider le dossier.
Pour cela, il faut spécifier le nouveau chemin dans le fichier `/var/www/nextcloud/config/config.php` à la ligne `datadirectory` ## II) Migrer les données de Nextcloud dans une partition plus grosse
Il faut également sassurer de donner les droits à Nextcloud sur ce répertoire **Remarque** : Ce qui suit suppose que vous avez un disque dur monté sur `/media/stockage`. Référez-vous à [cet article](/external_storage_fr) pour préparer votre système.
**Remarque** : Remplacez `nextcloud` par le nom de son instance, si vous avez plusieurs apps Nextcloud installées.
Commencez par éteindre le serveur web avec la commande:
```bash ```bash
chown -R nextcloud /le/chemin systemctl stop nginx
``` ```
Il faut également que ce support mémoire soit automatiquement monté au démarrage de YunoHost. ### Choix de l'emplacement
#### Cas A : Stockage vierge, exclusif à Nextcloud
Pour l'instant seul root peut y écrire dans `/media/stockage`; ce qui signifie que nginx et nextcloud ne pourront donc pas l'utiliser.
```bash
chown -R nextcloud:www-data /media/stockage
chmod 775 -R /media/stockage
```
#### Cas B : Stockage partagé, données déjà présentes, données Nextcloud dans un sous-dossier
Si vous souhaitez utiliser ce disque pour d'autres applications, vous pouvez créer un sous-dossier appartenant à Nextcloud.
```bash
mkdir -p /media/stockage/nextcloud_data
chown -R nextcloud /media/stockage/nextcloud_data
chmod 775 -R /media/stockage/nextcloud_data
```
### Migrer les données
Migrez vos données vers le nouveau disque. Pour ce faire *(soyez patient, cela peut être long)* :
```bash
Cas A : cp -ir /home/yunohost.app/nextcloud /media/stockage
Cas B : cp -ir /home/yunohost.app/nextcloud /media/stockage/nextcloud_data
```
L'option `i` permet de vous demander quoi faire en cas de conflit de fichier, notamment si vous écrasez un ancien dossier de données Owncloud ou Nextcloud.
Pour vérifier que tout s'est bien passé, comparer ce qu'affichent ces deux commandes (le contenu doit être identique):
```bash
ls -la /home/yunohost.app/nextcloud
Cas A : ls -al /media/stockage
Cas B : ls -al /media/stockage/nextcloud_data
```
### Configurer Nextcloud
Pour informer Nextcloud de son nouveau répertoire, modifiez le fichier `/var/www/nextcloud/config/config.php` avec la commande:
```bash
nano /var/www/nextcloud/config/config.php
```
Cherchez la ligne:
```bash
'datadirectory' => '/home/yunohost.app/nextcloud/data',
```
Que vous modifiez :
```bash
CAS A : 'datadirectory' => '/media/stockage',
CAS B : 'datadirectory' => '/media/stockage/nextcloud_data',
```
Sauvegardez avec `ctrl+x` puis `y` ou `o` (dépend de la locale de votre serveur).
Relancez le serveur web :
```bash
systemctl start nginx
```
Ajouter le fichier .ocdata
```bash
CAS A : nano /media/stockage/.ocdata
CAS B : nano /media/stockage/nextcloud_data/.ocdata
```
Ajouter un espace au fichier pour pouvoir le sauvegarder
Sauvegardez avec `ctrl+x` puis `y` ou `o` (dépend de la locale de votre serveur).
Lancez un scan du nouveau répertoire par Nextcloud:
```bash
cd /var/www/nextcloud
sudo -u nextcloud php occ files:scan --all
```
C'est terminé. À présent testez si tout va bien, essayez de vous connecter à votre instance Nextcloud, envoyer un fichier, vérifiez sa bonne synchronisation.
# L'application KeeWeb
L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud.
Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela,
[une solution](https://github.com/jhass/nextcloud-keeweb/issues/34) existe.
Ce rendre dans le répertoire de configuration de Nextcloud :
```bash
cd /var/www/nextcloud/config/
```
S'il n'existe pas, créer le fichier *mimetypemapping.json* dont le propriétaire est l'utilisateur *nextcloud* :
```bash
sudo su nextcloud -c "nano mimetypemapping.json"
```
Puis ajouter dans ce fichier le texte suivent :
```bash
{
"kdbx": ["x-application/kdbx"]
}
```
Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
A présent, le problème est corrigé.

14
app_noalyss_fr.md Normal file
View file

@ -0,0 +1,14 @@
# Noalyss
Logiciel de comptabilité open source développé en PHP.
Toute les infos sur ce logiciel sont disponible sur le [site du projet](http://www.noalyss.eu)
Pour apprendre à l'utiliser je vous invite à lire le [wiki du projet](http://www.noalyss.eu/?page_id=46&lang=fr_FR)
Le github du module Yunohost est [ici](https://github.com/YunoHost-Apps/noalyss_ynh)
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

32
app_piwigo.md Normal file
View file

@ -0,0 +1,32 @@
## <img src="https://yunohost.org/images/piwigo.png">
[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.
[![Install Piwigo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=piwigo)
![](http://piwigo.org/screenshots/homepage/piwigo-batch-manager.png)
## 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/

30
app_piwigo_fr.md Normal file
View file

@ -0,0 +1,30 @@
## <img src="https://yunohost.org/images/piwigo.png">
[Piwigo](http://piwigo.org) est un logiciel de galerie photo pour le web, bâti par une communauté active d'utilisateurs et de développeurs.
Les extensions rendent Piwigo facilement personnalisable. Cerise sur le gâteau, Piwigo est libre et gratuit.
[![Installer Piwigo avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=piwigo)
![](http://piwigo.org/screenshots/homepage/piwigo-batch-manager.png)
## Fonctionnalités
En plus des [fonctionnalités principales](Piwigo) de Piwigo, ce paquet propose également:
* une intégration avec le système de gestion des utilisateurs et le SSO de Yunohost :
* installation privée : limitée aux utilisateurs de YunoHost
* installation publique :
* SSO pour les utilisateurs YunoHost
* permet de gérer l'accès à d'autres utilisateurs, et mode invité possible
* de permettre à un utilisateur d'être administrateur (réglage lors de l'installation)
## Liens
* Rapport de bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues
* Site web Piwigo : http://piwigo.org/

19
app_rainloop.md Normal file
View file

@ -0,0 +1,19 @@
# Rainloop
Rainloop is a lightweight webmail.
To configure it, go to http://DOMAIN.TLD/rainloop/app/?admin
- The default login is : admin
- The default password is : Password chosen during install
- If you lost the admin password, you can retrieve it using ``sudo yunohost app settings rainloop password``
Each user can add a remote carddav server from their own parameters interface.
- If you use baikal, the CardDav address is: https://DOMAIN.TLD/baikal/card.php/addressbooks/USER/default/
- If you use NextCloud, the CardDav address is: https://DOMAIN.TLD/nextcloud/remote.php/carddav/addressbooks/USER/contacts
Rainloop saves your PGP private keys in the browser storage. This means that you will loose your private keys if you clear your browser storage (e.g., private browsing, different computer...). This packages integrates [PGPback by chtixof](https://github.com/chtixof/pgpback_ynh) so you can store your PGP private keys on the server securely. Go to **http://DOMAIN.TLD/rainloop/pgpback** to backup your PGP keys on the server or restore them.
To upgrade the app once a new rainloop version is available, simply run in a local shell via ssh or otherwise :
``sudo yunohost app upgrade -u https://github.com/YunoHost-Apps/rainloop_ynh rainloop``

19
app_rainloop_fr.md Normal file
View file

@ -0,0 +1,19 @@
# Rainloop
Rainloop est un webmail simple et léger.
Pour le configurer après l'installation, veuillez vous rendre sur http://DOMAIN.TLD/rainloop/app/?admin
- Le nom d'utilisateur admin par défaut est : admin
- Le mot de passe admin par défaut est : Mot de passe choisi lors de l'installation
- Si vous avez oublié votre mot de passe, vous pouvez le retrouver avec ``sudo yunohost app settings rainloop password``
Chaque utilisateur peut ajouter un carnet d'adresse distant CardDav via leur propre paramètres.
- Si vous utilisez Baikal, l'adresse à renseigner est du type : https://DOMAIN.TLD/baikal/card.php/addressbooks/UTILISATEUR/default/
- Si vous utilisez NextCloud, l'adresse à renseigner est du type : https://DOMAIN.TLD/nextcloud/remote.php/carddav/addressbooks/USER/contacts
Rainloop stocke les clés PGP privées dans le stockage de navigateur. Cela implique que vos clés seront perdues quand vous videz le stockage de navigateur (navigation incognito, changement d'ordinateur, ...). Ce paquet intègre [PGPback de chtixof](https://github.com/chtixof/pgpback_ynh) pour que vous puissiez stocker vos clés privées PGP de manière sécurisée sur le serveur. Rendez-vous **http://DOMAIN.TLD/rainloop/pgpback** pour stocker vos clés privées PGP sur le serveur ou les restaurer dans un nouveau navigateur.
Pour mettre à jour rainloop lorsqu'une nouvelle version est disponible, lancez en console locale (ssh ou autre) :
``sudo yunohost app upgrade -u https://github.com/YunoHost-Apps/rainloop_ynh rainloop

View file

@ -1,4 +1,4 @@
#<img src="/images/ttrss.png">Tiny Tiny RSS # <img src="/images/ttrss.png">Tiny Tiny RSS
Tiny Tiny RSS is a news feed reader using RSS and atom protocols. Tiny Tiny RSS is a news feed reader using RSS and atom protocols.
@ -10,11 +10,11 @@ In order to do so, go to Actions -> Configuration -> feed tab -> OPML section ->
You can read your feeds on Android using ttrss-reader application: You can read your feeds on Android using ttrss-reader application:
**[ttrss-reader](https://f-droid.org/repository/browse/?fdfilter=rss&fdid=org.ttrssreader)** **[ttrss-reader](https://f-droid.org/packages/org.ttrssreader/)**
To use it, you need to go to Actions -> Configuration, in TTRSS web interface and select "Activate API". To use it, you need to go to Actions -> Configuration, in TTRSS web interface and select "Activate API".
Then, in your android ttrss-reader, fill the TTRSS server adress: "https://yourdomain.org/ttrss", username, password (no need to use HTTP authentification). Then, in your android ttrss-reader, fill the TTRSS server adress: "https://yourdomain.org/ttrss", username, password (no need to use HTTP authentification).
**Note** : you may need to uninstall and reinstall the TTRSS application through the Yunohost admin panel in order to be able to connect. **Note** : you may need to uninstall and reinstall the TTRSS application through the Yunohost admin panel in order to be able to connect.
* [Tiny Tiny RSS Website](http://tt-rss.org/redmine/projects/tt-rss/wiki) * [Tiny Tiny RSS Website](https://git.tt-rss.org/git/tt-rss/wiki)

View file

@ -1,4 +1,4 @@
#<img src="/images/ttrss.png">Tiny Tiny RSS # <img src="/images/ttrss.png">Tiny Tiny RSS
Tiny Tiny RSS est un lecteur de flux dactualité utilisant les protocoles RSS et atom. Tiny Tiny RSS est un lecteur de flux dactualité utilisant les protocoles RSS et atom.
@ -11,11 +11,11 @@ Pour cela, il faut aller dans Actions -> Configuration -> onglet flux -> chapitr
Il est possible dutiliser le client Android ttrss-reader pour consulter ces flux : Il est possible dutiliser le client Android ttrss-reader pour consulter ces flux :
**[ttrss-reader](https://f-droid.org/repository/browse/?fdfilter=rss&fdid=org.ttrssreader)** **[ttrss-reader](https://f-droid.org/packages/org.ttrssreader/)**
Sur linterface web, dans Actions -> Configuration, cochez « Activer laccès par API » Sur linterface web, dans Actions -> Configuration, cochez « Activer laccès par API »
puis dans ttrss-reader sur Android, ladresse du serveur TTRSS : « https://votredomaine.org/ttrss », nom dutilisateur, mot de passe. (pas besoin dutiliser lauthentification HTTP) puis dans ttrss-reader sur Android, ladresse du serveur TTRSS : « https://votredomaine.org/ttrss », nom dutilisateur, mot de passe. (pas besoin dutiliser lauthentification HTTP)
**Note** : vous pouvez avoir besoin de désinstaller, puis réinstaller entièrement lapp ttrss via ladministration de YunoHost pour que la connexion puisse se faire. **Note** : vous pouvez avoir besoin de désinstaller, puis réinstaller entièrement lapp ttrss via ladministration de YunoHost pour que la connexion puisse se faire.
* [Site de Tiny Tiny RSS](http://tt-rss.org/redmine/projects/tt-rss/wiki) * [Site de Tiny Tiny RSS](https://git.tt-rss.org/git/tt-rss/wiki)

View file

@ -1,29 +1,30 @@
#Mettre à jour ses applications #Mettre à jour ses applications
Une fois que vous avez installé des applications, il est nécessaire de les mettre à jour. 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 lapplication phpmyadmin) ainsi que des fichiers avant une opération de mise à jour. ** Attention : ** il est recommandé de faire une sauvegarde de la base de données (par exemple via lapplication [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 linterface web ### Mise à jour par linterface web
Pour cela, il faut aller dans Outils > Mettre à jour le système. Pour cela, il faut aller dans longlet "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.
Une fois la liste des paquets dapplications récupérée la page proposera de mettre à jour les applications officielles qui ont une mise à jour en attente.
### Mise à jour en ligne de commande ### Mise à jour en ligne de commande
Il faut dabord se connecter sur le serveur en ssh, puis taper cette commande (dans le cas dune mise à jour WordPress). Il faut dabord se connecter sur le serveur en ssh, puis entrer la commande suivante (dans le cas dune mise à jour WordPress) :
```bash ```bash
yunohost app upgrade wordpress yunohost app upgrade wordpress
``` ```
** Note : ** dans le cas où plusieurs applications du même type (ex : deux WordPress) sont installés, il est nécessaire de spécifier le nom dinstance (ex : wordpress ou wordpress__2). ** 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 dinstance (ex : wordpress ou wordpress__2).
#### Mise à jour dune application non officielle #### Mise à jour dune application non officielle
Il faut pour cela indiquer le dépôt git qui contient la mise à jour. Il faut pour cela indiquer le dépôt git qui contient la mise à jour.
Par exemple pour mettre à jour LimeSurvey : Par exemple, pour mettre à jour LimeSurvey, entrer :
```bash ```bash
yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh 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 nest pas intégrée au dépôt officiel, il y a peut-être une raison. ** 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 nest 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; linstallation ou la mise à jour dune application non officielle permet à cette application dexécuter des scripts avec les privilèges les plus élevés. ** Attention : ** assurez-vous du contenu de cette mise à jour; linstallation ou la mise à jour dune application non officielle permet à cette dernière dexé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.

33
app_wallabag2.md Normal file
View file

@ -0,0 +1,33 @@
## <img src="https://yunohost.org/images/Logo-wallabag-svg.svg">
[Wallabag](https://www.wallabag.org/) is a self hostable Read-It-Later application allowing
you to not miss any content anymore. Click, save, read it when you can.
It extracts content so that you can read it when you have time.
[![Install Wallabag v2 with
YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wallabag2)
It provides a web interface, browser (Firefox / Chrome / Opera) add-ons, mobile apps (Android / iOS / Windows Phone) and even on e-reader (PocketBook / Kobo)
### Features
In addition to Wallabag core features, the following are made available with
this package:
* Integrate with YunoHost users and SSO - i.e. logout button
* Allow one user to be the administrator (set at the installation)
* Asynchronous import using Redis (need to be enabled in the *Internal Settings*). RabbitMQ import not supported (yet ?)
### Links
* Report a bug: https://github.com/YunoHost-Apps/wallabag2_ynh/issues
* Wallabag website: https://www.wallabag.org/
* Wallabag documentation: https://doc.wallabag.org/ (fr/en/it/de)
* [Video demo](https://vimeo.com/video/167435064)
----
### Upgrade from v1.x
No automatic upgrade process is available. You need a manual (but simple) migration from [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh).
Please take a look at the [official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).

30
app_wallabag2_fr.md Normal file
View file

@ -0,0 +1,30 @@
## <img src="https://yunohost.org/images/Logo-wallabag-svg.svg">
[Wallabag](https://www.wallabag.org/) est une application de lecture différée : elle permet simplement darchiver une page web en ne conservant que le contenu. Les éléments superflus (menus, publicités, etc.) sont supprimés.
Sont disponibles: une interface web, des add-ons pour navigateurs (Firefox / Chrome / Opera), des applications pour mobile (Android / iOS / Windows Phone) et même sur liseuse (PocketBook / Kobo).
[![Installer avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wallabag2)
### Fonctionnalités
En plus des fonctionnalités principales de Wallabag, ce paquet propose également:
* Une intégration avec le système de gestion des utilisateurs et le SSO de Yunohost - e.g. un bouton de déconnexion
* De permettre à un utilisateur d'être administrateur (réglage lors de l'installation)
* Un import asynchrone utilisant Redis (à activer dans les *Paramètres Internes*). L'import via RabbitMQ n'est pas (encore ?) supporté.
### Liens
* Rapport de bug: https://github.com/YunoHost-Apps/wallabag2_ynh/issues
* Site web de Wallabag: https://www.wallabag.org/
* Documentation de Wallabag: https://doc.wallabag.org/ (fr/en/it/de)
* [Demo vidéo](https://player.vimeo.com/video/167435064)
----
### Mettre à niveau depuis la v1.x
La mise à niveau depuis le paquet Yunohost de [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) demande une opération manuelle, c'est pourquoi un nouveau paquet est fournit.
Pour le processus de migration, merci de vous référer à [la documentation officiel de Wallabag](https://doc.wallabag.org/fr/user/import/wallabagv1.html).

302
apps.md
View file

@ -1,44 +1,142 @@
#Official apps # Apps
<img src="/images/roundcube.png" width=50> <div class="input-group">
<img src="/images/ttrss.png" width=50> <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
<img src="/images/wordpress.png" width=50> <input type="text" id="filter-app-cards" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
<img src="/images/transmission.png" width=50> <div class="input-group-btn">
<img src="/images/logo-jirafeau.jpeg" width=50> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img src="/images/Logo-wallabag-svg.svg" width=50> <span id="app-cards-list-filter-text">Only official apps</span> <span class="caret"></span>
<img src="/images/Searx_logo.svg" width=50> </button>
<img src="/images/rainloop_logo.png" width=40> <ul class="dropdown-menu">
<img src="/images/Nextcloud_Logo.svg" width=70> <li><a href="#" id="app-cards-list-validated">Only official apps</a></li>
<img src="/images/privatebin_icon.svg" width=40> <li><a href="#" id="app-cards-list-working">Only working apps</a></li>
<li><a href="#" id="app-cards-list-working-inprogress">In progress/not working apps</a></li>
<a class="btn btn-lg btn-default disabled" href="/apps_en">Official apps</a> <a class="btn btn-lg btn-default" href="/apps_in_progress_en">Apps in progress</a> <a class="btn btn-lg btn-default" href="/apps_wishlist_en">Apps wishlist</a> <li><a href="#" id="app-cards-list-all-apps">All apps</a></li>
</ul>
<div class="clearfix" style="margin-bottom: 1em;"> </div>
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion .collapse">View all</div>
</div> </div>
<br />
<div id="community-app-list-warrant" class="alert alert-danger">
<p>Only apps tagged <span class="label label-success label-as-badge">validated</span> are officially supported by the package team. </p>
<div class="panel-group" id="app-accordion"></div> <p>Apps tagged <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are from community repository, you can test and use them **at your own risk**.</p>
<p>Important: it's the application maintaineur that qualify his application as working, not the YunoHost core team. Install it at your own risks. We won't provide support for it.</p>
</div>
<div class="alert alert-info">The packagers will appreciate your remarks. If you install them and find issues, or ideas for improvement, do not hesitate to file issues directly on their repositories project page.</div>
<div class="app-cards-list" id="app-cards-list"></div>
<div class="alert alert-warning">If you don't find the app you are searching for, you can search it in community app repository (working, inprogress and not working apps) or fill the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
<style>
/*=================================================
Search bar
=================================================*/
#filter-app-cards, #app-cards-list {
width:100%;
}
/*===============================================*/
/*=================================================
Force return space after card list
=================================================*/
#app-cards-list:after {
content:'';
display:block;
clear: both;
}
/*===============================================*/
/*=================================================
App card
=================================================*/
.app-card {
margin-bottom:20px;
width:270px;
float:left;
min-height: 1px;
margin-right: 10px;
margin-left: 10px;
}
/*===============================================*/
/*=================================================
App card body
=================================================*/
.app-card .panel-body > h3 {
margin-top:0;
margin-bottom:5px;
font-size:1.2em;
}
.app-card .category {
height:35px;
}
.app-card .category .label, .app-card-date-maintainer {
font-size:0.7em;
}
.app-card-date-maintainer {
text-align:right;
max-height: 18px;
margin-bottom: 3px;
margin-right: 7px;
margin-top: -5px;
}
.app-card .unmaintained {
color: #e0aa33;
}
.app-card-desc {
height:100px;
overflow: hidden;
}
/*===============================================*/
/*=================================================
App card footer
=================================================*/
.app-card .btn-group {
width:100%;
margin-left: 0px;
}
.app-card > .btn-group > .btn{
border-bottom:0;
}
.app-card > .btn-group > .btn:first-child {
border-left:0;
border-top-left-radius:0;
}
.app-card > .btn-group > .btn:last-child {
border-right:0;
border-top-right-radius:0;
margin-left: 0px;
width: 33.6%;
}
/*===============================================*/
</style>
<script type="text/template" id="app-template2">
<div class="app-card_{app_id} app-card panel panel-default">
<script type="text/template" id="app-template">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title">
<a data-toggle="collapse" data-parent="#app-accordion" href="apps_en/#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
</div>
</div>
<div class="panel-collapse collapse app_{app_id}">
<div class="panel-body"> <div class="panel-body">
<p><strong>Description</strong>: {app_description}</p> <h3>{app_name}</h3>
<p><strong>Last update (UTC)</strong>: {app_update}</p> <div class="category"></div>
<p><strong>Level</strong>: {app_level}</p>
<p><strong>Maintainer</strong>: {app_maintainer} <small class="text-muted">({app_mail})</small></p> <div class="app-card-desc">{app_description}</div>
<p><strong>Git repository</strong>: <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
<a href="#/app_{app_id}" target="_blank" class="btn btn-default">Documentation</a>
</div> </div>
<div class="app-card-date-maintainer">
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
</div>
<div class="btn-group" role="group">
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
<a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
</div>
</div> </div>
</script> </script>
<br />
<div class="alert alert-info">All official applications are under free licenses.</div>
<script> <script>
function timeConverter(UNIX_timestamp) { function timeConverter(UNIX_timestamp) {
@ -51,46 +149,156 @@ function timeConverter(UNIX_timestamp) {
var min = a.getMinutes(); var min = a.getMinutes();
if (hour < 10) { hour = '0' + hour; } if (hour < 10) { hour = '0' + hour; }
if (min < 10) { min = '0' + min; } if (min < 10) { min = '0' + min; }
var time = date+' '+month+' '+year+' at '+hour+':'+min; var time = date+' '+month+' '+year;//+' at '+hour+':'+min
return time; return time;
} }
$(document).ready(function () { $(document).ready(function () {
$.getJSON('https://app.yunohost.org/official.json', function(app_list) { // Hide warrant about community list
// Cast as array $('#community-app-list-warrant').hide();
var app_list = $.map(app_list, function(el) { return el; }); var filters = ["validated"];
function filter(){
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
var valThis = $('#filter-app-cards').val().toLowerCase();
$('.app-card').each(function(){
var text = $(this).find('h3').text().toLowerCase();
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
});
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
}
//=================================================
// Search & filter bar event
//=================================================
$('#filter-app-cards').keyup(filter);
$('#app-cards-list-validated').click(function(){
filters = ["validated"];
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
filter();
});
$('#app-cards-list-working').click(function(){
filters = ["validated", "working"];
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
filter();
});
$('#app-cards-list-working-inprogress').click(function(){
filters = ["notworking", "inprogress"];
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
filter();
});
$('#app-cards-list-all-apps').click(function(){
filters = ["validated", "working", "inprogress", "notworking"];
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
filter();
});
//=================================================
//=================================================
// Upload apps lists
//=================================================
var app_list={};
$.when(
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
app_list.community = $.map(community, function(el) { return el; });
}),
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
app_list.official = $.map(official, function(el) { return el; });
})
).then(function() {
app_list = app_list.official.concat(app_list.community);
// Sort alpha // Sort alpha
app_list.sort(function(a, b){ app_list.sort(function(a, b){
if (a.manifest.id > b.manifest.id) {return 1;} a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
else if (a.manifest.id < b.manifest.id) {return -1;} b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
return 0; if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
else if (a.manifest.id == b.manifest.id) {return 0;}
return -1;
}); });
$.each(app_list, function(k, infos) { $.each(app_list, function(k, infos) {
app_id = infos.manifest.id; app_id = infos.manifest.id;
html = $('#app-template').html() app_install_bootstrap = "success";
if (infos.state === "validated") {
app_state_bootstrap = "success";
} else if (infos.state === "working") {
app_state_bootstrap = "success";
} else if (infos.state === "inprogress") {
app_state_bootstrap = "warning";
app_install_bootstrap = "danger";
} else if (infos.state === "notworking") {
app_state_bootstrap = "danger";
app_install_bootstrap = "danger";
}
if (infos.level == null ) {
infos.level = '?';
}
if (infos.level == 0 ) {
app_level_bootstrap = "danger";
app_install_bootstrap = "danger";
} else if (infos.level <= 2) {
app_level_bootstrap = "warning";
app_install_bootstrap = "danger";
} else if (infos.level >= 7) {
app_level_bootstrap = "success";
} else {
app_level_bootstrap = "default";
}
// Fill the template
html = $('#app-template2').html()
.replace(/{app_id}/g, app_id) .replace(/{app_id}/g, app_id)
.replace(/{app_name}/g, infos.manifest.name) .replace(/{app_name}/g, infos.manifest.name)
.replace('{app_description}', infos.manifest.description.en) .replace('{app_description}', infos.manifest.description.en)
.replace(/{app_git}/g, infos.git.url) .replace(/{app_git}/g, infos.git.url)
.replace('{app_branch}', infos.git.branch) .replace('{app_branch}', infos.git.branch)
.replace('{app_level}', infos.level) .replace('{app_level}', infos.level)
.replace('{app_update}', timeConverter(infos.lastUpdate)); .replace('{app_update}', timeConverter(infos.lastUpdate))
.replace('{app_state_bootstrap}', app_state_bootstrap)
.replace('{app_install_bootstrap}', app_install_bootstrap);
if (infos.maintained == false)
{
html = html
.replace('{maintained_state}', 'unmaintained')
.replace('{maintained_icon}', 'warning-sign')
.replace('{app_maintainer}', "Unmaintained")
.replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
} else {
if (infos.manifest.developer) { if (infos.manifest.developer) {
html = html html = html
.replace('{maintained_state}', 'maintained')
.replace('{maintained_icon}', 'user')
.replace('{app_maintainer}', infos.manifest.developer.name) .replace('{app_maintainer}', infos.manifest.developer.name)
.replace('{app_mail}', infos.manifest.developer.email); .replace('{maintained_help}', "Current maintainer of this package");
} }
if (infos.manifest.maintainer) { if (infos.manifest.maintainer) {
html = html html = html
.replace('{maintained_state}', 'maintained')
.replace('{maintained_icon}', 'user')
.replace('{app_maintainer}', infos.manifest.maintainer.name) .replace('{app_maintainer}', infos.manifest.maintainer.name)
.replace('{app_mail}', infos.manifest.maintainer.email); .replace('{maintained_help}', "Current maintainer of this package");;
}
}
// Fill the template
$('#app-cards-list').append(html);
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
if (infos.manifest.license && infos.manifest.license != 'free') {
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
} }
$('#app-accordion').append(html);
$('.app_'+ app_id).attr('id', 'app_'+ app_id);
}); });
filter();
}); });
//=================================================
}); });
</script> </script>

289
apps_ar.md Normal file
View file

@ -0,0 +1,289 @@
# <div dir="rtl">التطبيقات</div>
<div dir="rtl" class="input-group">
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
<input type="text" id="filter-app-cards" class="form-control" placeholder="البحث عن تطبيقات ..." aria-describedby="basic-addon1"/>
<div dir="rtl" class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span id="app-cards-list-filter-text">التطبيقات الرسمية فقط</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#" id="app-cards-list-validated">التطبيقات الرسمية فقط</a></li>
<li><a href="#" id="app-cards-list-working">التطبيقات "التي تعمل" فقط</a></li>
<li><a href="#" id="app-cards-list-working-inprogress">التطبيقات "الجاري العمل عليها"/"و التي لاتعمل"</a></li>
<li><a href="#" id="app-cards-list-all-apps">كافة التطبيقات</a></li>
</ul>
</div>
</div>
<br />
<div dir="rtl" id="community-app-list-warrant" class="alert alert-danger">
<p>إلّا التطبيقات المحددة بعلامة <span class="label label-success label-as-badge">validated</span> تعتبر مدعومة رسميا من طرف فريق التحزيم. </p>
<p>Les apps marquées <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont des applications non officielles maintenues par la communauté, vous pouvez les tester et les utiliser **à vos risques et périls**.</p>
<p>Important: c'est le mainteneur de l'application qui définit son application comme "working" et non pas l'équipe d'empaquetage de Yunohost. Installez ces apps à vos risques et périls. Nous ne fournissons pas de support pour elles.</p>
</div>
<div dir="rtl"class="alert alert-info">إنّ فريق التحزيم سوف يأخذ بعين الإعتبار ملاحظاتكم. مثال، إن قمتم بتنصيب تطبيقاتهم و عارضتكم مشاكل أو إن كلمة عندكم أفكارا لتحسين التطبيقات، فلا تبخلوا التحو تذكرة مباشرة على صفحات مستودعات المشاريع نفسها</div>
<div class="app-cards-list" id="app-cards-list"></div>
<div dir="rtl" class="alert alert-warning">إن لم تتمكنوا من العثور على التطبيق الذي تبحثون عنه هنا، يمكنكم البحث كذلك في مستودع تطبيقات المجتمع (التي تعمل، الجاري العمل عليها و التي لا تعمل) أو قوموا بإضافتها إلى <a href="/apps_wishlist_fr">قائمة التطبيقات المرغوب فيها</a>.</div>
<style>
/*=================================================
Search bar
=================================================*/
#filter-app-cards, #app-cards-list {
width:100%;
}
/*===============================================*/
/*=================================================
Force return space after card list
=================================================*/
#app-cards-list:after {
content:'';
display:block;
clear: both;
}
/*===============================================*/
/*=================================================
App card
=================================================*/
.app-card {
margin-bottom:20px;
width:270px;
float:left;
min-height: 1px;
margin-right: 10px;
margin-left: 10px;
}
/*===============================================*/
/*=================================================
App card body
=================================================*/
.app-card .panel-body > h3 {
margin-top:0;
margin-bottom:5px;
font-size:1.2em;
}
.app-card .category {
height:35px;
}
.app-card .category .label, .app-card-date-maintainer {
font-size:0.7em;
}
.app-card-date-maintainer {
text-align:right;
max-height: 18px;
margin-bottom: 3px;
margin-right: 7px;
margin-top: -5px;
}
.app-card-desc {
height:100px;
overflow: hidden;
}
/*===============================================*/
/*=================================================
App card footer
=================================================*/
.app-card .btn-group {
width:100%;
margin-left: 0px;
}
.app-card > .btn-group > .btn{
border-bottom:0;
}
.app-card > .btn-group > .btn:first-child {
border-left:0;
border-top-left-radius:0;
}
.app-card > .btn-group > .btn:last-child {
border-right:0;
border-top-right-radius:0;
margin-left: 0px;
width: 33.6%;
}
/*===============================================*/
</style>
<script type="text/template" id="app-template2">
<div class="app-card_{app_id} app-card panel panel-default">
<div class="panel-body">
<h3>{app_name}</h3>
<div class="category"></div>
<div class="app-card-desc">{app_description}</div>
</div>
<div class="app-card-date-maintainer">
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
<span class="glyphicon glyphicon-user"></span> {app_maintainer}
</div>
<div class="btn-group" role="group">
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> الشفرة</a>
<a href="#/app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> الدليل</a>
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">تنصيب</a>
</div>
</div>
</script>
<script>
function timeConverter(UNIX_timestamp) {
var a = new Date(UNIX_timestamp*1000);
var months = ['جانفي','فيفري','مارس','أفريل','ماي','جوان','جويلية','أوت','سبتمبر','أكتوبر','نوفمبر','ديسمبر'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
if (hour < 10) { hour = '0' + hour; }
if (min < 10) { min = '0' + min; }
var time = date+' '+month+' '+year;//+' at '+hour+':'+min
return time;
}
$(document).ready(function () {
// Hide warrant about community list
$('#community-app-list-warrant').hide();
var filters = ["validated"];
function filter(){
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
var valThis = $('#filter-app-cards').val().toLowerCase();
$('.app-card').each(function(){
var text = $(this).find('h3').text().toLowerCase();
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
});
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
}
//=================================================
// Search & filter bar event
//=================================================
$('#filter-app-cards').keyup(filter);
$('#app-cards-list-validated').click(function(){
filters = ["validated"];
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
filter();
});
$('#app-cards-list-working').click(function(){
filters = ["validated", "working"];
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
filter();
});
$('#app-cards-list-working-inprogress').click(function(){
filters = ["notworking", "inprogress"];
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
filter();
});
$('#app-cards-list-all-apps').click(function(){
filters = ["validated", "working", "inprogress", "notworking"];
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
filter();
});
//=================================================
//=================================================
// Upload apps lists
//=================================================
var app_list={};
$.when(
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
app_list.community = $.map(community, function(el) { return el; });
}),
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
app_list.official = $.map(official, function(el) { return el; });
})
).then(function() {
app_list = app_list.official.concat(app_list.community);
// Sort alpha
app_list.sort(function(a, b){
a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
else if (a.manifest.id == b.manifest.id) {return 0;}
return -1;
});
$.each(app_list, function(k, infos) {
app_id = infos.manifest.id;
app_install_bootstrap = "success";
if (infos.state === "validated") {
app_state_bootstrap = "success";
} else if (infos.state === "working") {
app_state_bootstrap = "success";
} else if (infos.state === "inprogress") {
app_state_bootstrap = "warning";
app_install_bootstrap = "danger";
} else if (infos.state === "notworking") {
app_state_bootstrap = "danger";
app_install_bootstrap = "danger";
}
if (infos.level == null ) {
infos.level = '?';
}
if (infos.level == 0 ) {
app_level_bootstrap = "danger";
app_install_bootstrap = "danger";
} else if (infos.level <= 2) {
app_level_bootstrap = "warning";
app_install_bootstrap = "danger";
} else if (infos.level >= 7) {
app_level_bootstrap = "success";
} else {
app_level_bootstrap = "default";
}
// Fill the template
html = $('#app-template2').html()
.replace(/{app_id}/g, app_id)
.replace(/{app_name}/g, infos.manifest.name)
.replace('{app_description}', infos.manifest.description.fr)
.replace(/{app_git}/g, infos.git.url)
.replace('{app_branch}', infos.git.branch)
.replace('{app_level}', infos.level)
.replace('{app_update}', timeConverter(infos.lastUpdate))
.replace('{app_state_bootstrap}', app_state_bootstrap)
.replace('{app_install_bootstrap}', app_install_bootstrap);
if (infos.manifest.developer) {
html = html
.replace('{app_maintainer}', infos.manifest.developer.name)
.replace('{app_mail}', infos.manifest.developer.email);
}
if (infos.manifest.maintainer) {
html = html
.replace('{app_maintainer}', infos.manifest.maintainer.name)
.replace('{app_mail}', infos.manifest.maintainer.email);
}
// Fill the template
$('#app-cards-list').append(html);
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
if (infos.manifest.license && infos.manifest.license != 'free') {
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
}
});
filter();
});
//=================================================
});
</script>

View file

@ -1,49 +1,144 @@
#Apps officielles # Apps
<img src="/images/roundcube.png" width=50> <div class="input-group">
<img src="/images/ttrss.png" width=50> <span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
<img src="/images/wordpress.png" width=50> <input type="text" id="filter-app-cards" class="form-control" placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
<img src="/images/transmission.png" width=50> <div class="input-group-btn">
<img src="/images/logo-jirafeau.jpeg" width=50> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img src="/images/Logo-wallabag-svg.svg" width=50> <span id="app-cards-list-filter-text">Apps officielles seulement</span> <span class="caret"></span>
<img src="/images/Searx_logo.svg" width=50> </button>
<img src="/images/rainloop_logo.png" width=40> <ul class="dropdown-menu">
<img src="/images/Nextcloud_Logo.svg" width=70> <li><a href="#" id="app-cards-list-validated">Apps officielles seulement</a></li>
<img src="/images/privatebin_icon.svg" width=40> <li><a href="#" id="app-cards-list-working">Apps "working" seulement</a></li>
<li><a href="#" id="app-cards-list-working-inprogress">Apps "in progress"/"not working"</a></li>
<a class="btn btn-lg btn-default" href="/apps_fr" disabled>Apps officielles</a> <a class="btn btn-lg btn-default" href="/apps_in_progress_fr">Apps en cours</a> <a class="btn btn-lg btn-default" href="/apps_wishlist_fr">Apps souhaitées</a> <li><a href="#" id="app-cards-list-all-apps">Toutes les apps</a></li>
</ul>
<div class="clearfix" style="margin-bottom: 1em;"> </div>
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion .collapse">Tout déplier</div>
</div> </div>
<br />
<div id="community-app-list-warrant" class="alert alert-danger">
<p>Seules les apps marquées <span class="label label-success label-as-badge">validated</span> sont officiellement supportées par l'équipe de développement d'applications. </p>
<div class="panel-group" id="app-accordion"></div> <p>Les apps marquées <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont des applications non officielles maintenues par la communauté, vous pouvez les tester et les utiliser **à vos risques et périls**.</p>
<p>Important: c'est le mainteneur de l'application qui définit son application comme "working" et non pas l'équipe de développement d'applications de Yunohost. Installez ces apps à vos risques et périls. Nous ne fournissons pas de support pour elles.</p>
</div>
<div class="alert alert-info">Les développeurs d'applications apprécieront vos remarques. Si vous installez leurs apps et trouvez des dysfonctionnement, ou si vous avez des idées d'amélioration, n'hésitez pas à créer des tickets directement sur les pages de dépots des projets.</div>
<div class="app-cards-list" id="app-cards-list"></div>
<div class="alert alert-warning">Si vous ne trouvez pas l'application que vous recherchez, vous pouvez la rechercher dans les apps communautaires (working, inprogress et notworking) ou remplir la <a href="/apps_wishlist_fr">liste d'apps souhaitées</a>.</div>
<style>
/*=================================================
Search bar
=================================================*/
#filter-app-cards, #app-cards-list {
width:100%;
}
/*===============================================*/
/*=================================================
Force return space after card list
=================================================*/
#app-cards-list:after {
content:'';
display:block;
clear: both;
}
/*===============================================*/
/*=================================================
App card
=================================================*/
.app-card {
margin-bottom:20px;
width:270px;
float:left;
min-height: 1px;
margin-right: 10px;
margin-left: 10px;
}
/*===============================================*/
/*=================================================
App card body
=================================================*/
.app-card .panel-body > h3 {
margin-top:0;
margin-bottom:5px;
font-size:1.2em;
}
.app-card .category {
height:35px;
}
.app-card .category .label, .app-card-date-maintainer {
font-size:0.7em;
}
.app-card-date-maintainer {
text-align:right;
max-height: 18px;
margin-bottom: 3px;
margin-right: 7px;
margin-top: -5px;
}
.app-card-desc {
height:100px;
overflow: hidden;
}
/*===============================================*/
/*=================================================
App card footer
=================================================*/
.app-card .btn-group {
width:100%;
margin-left: 0px;
}
.app-card > .btn-group > .btn{
border-bottom:0;
}
.app-card > .btn-group > .btn:first-child {
border-left:0;
border-top-left-radius:0;
}
.app-card > .btn-group > .btn:last-child {
border-right:0;
border-top-right-radius:0;
margin-left: 0px;
width: 33.6%;
}
/*===============================================*/
</style>
<script type="text/template" id="app-template2">
<div class="app-card_{app_id} app-card panel panel-default">
<script type="text/template" id="app-template">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title">
<a data-toggle="collapse" data-parent="#app-accordion" href="#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
</div>
</div>
<div class="panel-collapse collapse app_{app_id}">
<div class="panel-body"> <div class="panel-body">
<p><strong>Description</strong> : {app_description}</p> <h3>{app_name}</h3>
<p><strong>Dernière mise à jour (UTC)</strong> : {app_update}</p> <div class="category"></div>
<p><strong>Niveau</strong>: {app_level}</p>
<p><strong>Mainteneur</strong> : {app_maintainer} <small class="text-muted">({app_mail})</small></p> <div class="app-card-desc">{app_description}</div>
<p><strong>Dépôt git</strong> : <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
<a href="#/app_{app_id}_fr" target="_blank" class="btn btn-default">Documentation</a>
</div> </div>
<div class="app-card-date-maintainer">
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
<span class="glyphicon glyphicon-user"></span> {app_maintainer}
</div>
<div class="btn-group" role="group">
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
<a href="#/app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">Installer</a>
</div>
</div> </div>
</script> </script>
<br />
<div class="alert alert-info">Toutes les applications officielles sont sous licences libres.</div>
<script> <script>
function timeConverter(UNIX_timestamp) { function timeConverter(UNIX_timestamp) {
var a = new Date(UNIX_timestamp*1000); var a = new Date(UNIX_timestamp*1000);
var months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre']; var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var year = a.getFullYear(); var year = a.getFullYear();
var month = months[a.getMonth()]; var month = months[a.getMonth()];
var date = a.getDate(); var date = a.getDate();
@ -51,33 +146,118 @@ function timeConverter(UNIX_timestamp) {
var min = a.getMinutes(); var min = a.getMinutes();
if (hour < 10) { hour = '0' + hour; } if (hour < 10) { hour = '0' + hour; }
if (min < 10) { min = '0' + min; } if (min < 10) { min = '0' + min; }
var time = date+' '+month+' '+year+' à '+hour+':'+min; var time = date+' '+month+' '+year;//+' at '+hour+':'+min
return time; return time;
} }
$(document).ready(function () { $(document).ready(function () {
$.getJSON('https://app.yunohost.org/official.json', function(app_list) { // Hide warrant about community list
// Cast as array $('#community-app-list-warrant').hide();
var app_list = $.map(app_list, function(el) { return el; }); var filters = ["validated"];
function filter(){
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
var valThis = $('#filter-app-cards').val().toLowerCase();
$('.app-card').each(function(){
var text = $(this).find('h3').text().toLowerCase();
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
});
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
}
//=================================================
// Search & filter bar event
//=================================================
$('#filter-app-cards').keyup(filter);
$('#app-cards-list-validated').click(function(){
filters = ["validated"];
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
filter();
});
$('#app-cards-list-working').click(function(){
filters = ["validated", "working"];
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
filter();
});
$('#app-cards-list-working-inprogress').click(function(){
filters = ["notworking", "inprogress"];
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
filter();
});
$('#app-cards-list-all-apps').click(function(){
filters = ["validated", "working", "inprogress", "notworking"];
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
filter();
});
//=================================================
//=================================================
// Upload apps lists
//=================================================
var app_list={};
$.when(
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
app_list.community = $.map(community, function(el) { return el; });
}),
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
app_list.official = $.map(official, function(el) { return el; });
})
).then(function() {
app_list = app_list.official.concat(app_list.community);
// Sort alpha // Sort alpha
app_list.sort(function(a, b){ app_list.sort(function(a, b){
if (a.manifest.id > b.manifest.id) {return 1;} a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
else if (a.manifest.id < b.manifest.id) {return -1;} b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
return 0; if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
else if (a.manifest.id == b.manifest.id) {return 0;}
return -1;
}); });
$.each(app_list, function(k, infos) { $.each(app_list, function(k, infos) {
app_id = infos.manifest.id; app_id = infos.manifest.id;
if (typeof infos.manifest.description.fr === 'undefined') { app_install_bootstrap = "success";
infos.manifest.description.fr = infos.manifest.description.en; if (infos.state === "validated") {
app_state_bootstrap = "success";
} else if (infos.state === "working") {
app_state_bootstrap = "success";
} else if (infos.state === "inprogress") {
app_state_bootstrap = "warning";
app_install_bootstrap = "danger";
} else if (infos.state === "notworking") {
app_state_bootstrap = "danger";
app_install_bootstrap = "danger";
} }
html = $('#app-template').html() if (infos.level == null ) {
infos.level = '?';
}
if (infos.level == 0 ) {
app_level_bootstrap = "danger";
app_install_bootstrap = "danger";
} else if (infos.level <= 2) {
app_level_bootstrap = "warning";
app_install_bootstrap = "danger";
} else if (infos.level >= 7) {
app_level_bootstrap = "success";
} else {
app_level_bootstrap = "default";
}
// Fill the template
html = $('#app-template2').html()
.replace(/{app_id}/g, app_id) .replace(/{app_id}/g, app_id)
.replace(/{app_name}/g, infos.manifest.name) .replace(/{app_name}/g, infos.manifest.name)
.replace('{app_description}', infos.manifest.description.fr) .replace('{app_description}', infos.manifest.description.fr)
.replace(/{app_git}/g, infos.git.url) .replace(/{app_git}/g, infos.git.url)
.replace('{app_branch}', infos.git.branch) .replace('{app_branch}', infos.git.branch)
.replace('{app_level}', infos.level) .replace('{app_level}', infos.level)
.replace('{app_update}', timeConverter(infos.lastUpdate)); .replace('{app_update}', timeConverter(infos.lastUpdate))
.replace('{app_state_bootstrap}', app_state_bootstrap)
.replace('{app_install_bootstrap}', app_install_bootstrap);
if (infos.manifest.developer) { if (infos.manifest.developer) {
html = html html = html
@ -91,9 +271,19 @@ $(document).ready(function () {
.replace('{app_mail}', infos.manifest.maintainer.email); .replace('{app_mail}', infos.manifest.maintainer.email);
} }
$('#app-accordion').append(html); // Fill the template
$('.app_'+ app_id).attr('id', 'app_'+ app_id); $('#app-cards-list').append(html);
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
if (infos.manifest.license && infos.manifest.license != 'free') {
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
}
}); });
filter();
}); });
//=================================================
}); });
</script> </script>

43
apps_framasoft.md Normal file
View file

@ -0,0 +1,43 @@
# Équivalence avec les applications Framasoft
| App Framasoft | Équivalent | Package | Status |
| :---: | :---: | :---: | :---: |
| Framapad | Etherpad + mypads | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/etherpad_mypads_ynh) | ![](https://dash.yunohost.org/integration/etherpad_mypads.svg) |
| Framadrive | Nextcloud | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/nextcloud_ynh) | ![](https://dash.yunohost.org/integration/nextcloud.svg) |
| Framagit | GitLab | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gitlab_ynh) | ![](https://dash.yunohost.org/integration/gitlab.svg) |
| | Gogs | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gogs_ynh) | ![](https://dash.yunohost.org/integration/gogs.svg) |
| Framadrop | Lufi | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lufi_ynh) | ![](https://dash.yunohost.org/integration/lufi.svg) |
| Framapiaf | Mastodon | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mastodon_ynh) | ![](https://dash.yunohost.org/integration/mastodon.svg) |
| Framapic | Lutim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lutim_ynh) | ![](https://dash.yunohost.org/integration/lutim.svg) |
| Framabin | PrivateBin | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/zerobin_ynh) | ![](https://dash.yunohost.org/integration/zerobin.svg) |
| Frama.link | Lstu | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lstu_ynh) | ![](https://dash.yunohost.org/integration/lstu.svg) |
| Framatube | Mediadrop | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mediadrop_ynh) | ![](https://dash.yunohost.org/integration/mediadrop.svg) |
| Framanews | TinyTinyRSS | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/ttrss_ynh) | ![](https://dash.yunohost.org/integration/ttrss.svg) |
| Framabee | Searx | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/searx_ynh) | ![](https://dash.yunohost.org/integration/searx.svg) |
| Framabag | Wallabag | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wallabag_ynh) | ![](https://dash.yunohost.org/integration/wallabag.svg) |
| Framacalc | Ethercalc | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/ethercalc_ynh) | ![](https://dash.yunohost.org/integration/ethercalc.svg) |
| Framaboard | Kanboard | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/kanboard_ynh) | ![](https://dash.yunohost.org/integration/kanboard.svg) |
| Framadate | OpenSondage | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/opensondage_ynh) | ![](https://dash.yunohost.org/integration/opensondage.svg) |
| Framasphère | Diaspora* | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/aymhce/diaspora_ynh) | ![](https://dash.yunohost.org/integration/diaspora.svg) |
| Framabookin | BicBucStriim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/BicBucStriim_ynh) | ![](https://dash.yunohost.org/integration/BicBucStriim.svg) |
| Framanotes | Turtl | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/Turtl_ynh) | ![](https://dash.yunohost.org/integration/Turtl.svg) |
| Framemo | Scrumblr | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/scrumblr_ynh) | ![](https://dash.yunohost.org/integration/scumblr.svg) |
| Framinetest | Minetest | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/minetest_ynh) | ![](https://dash.yunohost.org/integration/minetest.svg) |
| Framatalk | Jitsi Meet | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_ynh) | ![](https://dash.yunohost.org/integration/jitsi.svg) |
| Framalistes | Mailman | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh) | ![](https://dash.yunohost.org/integration/mailman.svg) |
| | Sympa | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/alexAubin/sympa_ynh) | ![](https://dash.yunohost.org/integration/sympa.svg) |
| Framindmap | Wisemapping | Non packagé | |
| Framavectoriel | SVG-Edit | Non packagé | |
| Framacarte | uMap | Non packagé | |
| Framaforms | WebForms? | Non packagé | |
| Framaestro | Framaestro | Non packagé | |
| Framavox | ? | Non packagé | |
| Framagenda | (Agenda Nextcloud) | Non packagé | |
| Framagames | ? | Non packagé | |
| MyFrama | ? | Non packagé | |
### Voir aussi
- [Liste complète des applications packagées](/apps)
- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)

46
apps_group_PR_model.md Normal file
View file

@ -0,0 +1,46 @@
## Problem
- *Description of why you made this PR*
## Solution
- *And how you fix that*
## PR Status
*Obviously, you should really check these affirmations*
Work finished. Package_check, basic tests and upgrade from last version OK.
Could be reviewed and tested.
## Validation
---
*Minor decision*
- [ ] **Upgrade previous version** :
- [ ] **Code review** :
- [ ] **Approval (LGTM)** :
- [ ] **Approval (LGTM)** :
- [ ] **CI succeeded** : [![Build Status](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*
When the PR is mark as ready to merge, you have to wait for 3 days before really merge it.
*Medium decision*
- [ ] **Complete test** :
- [ ] **Upgrade previous version** :
- [ ] **Code review** :
- [ ] **Code review** :
- [ ] **Approval (LGTM)** :
- [ ] **Approval (LGTM)** :
- [ ] **Approval (LGTM)** :
- [ ] **CI succeeded** : [![Build Status](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*
When the PR is mark as ready to merge, you have to wait for 7 days before really merge it.
*Major decision*
- [ ] **Complete test** :
- [ ] **Complete test** :
- [ ] **Upgrade previous version** :
- [ ] **Upgrade previous version** :
- [ ] **Code review** :
- [ ] **Code review** :
- [ ] **Code review** :
- [ ] **Approval (LGTM)** :
- [ ] **Approval (LGTM)** :
- [ ] **Approval (LGTM)** :
- [ ] **Approval (LGTM)** :
- [ ] **CI succeeded** : [![Build Status](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*
When the PR is mark as ready to merge, you have to wait for 7 days before really merge it.

View file

@ -1,134 +0,0 @@
# Apps in progress
<img src="/images/freshrss_logo.png" width=40>
<img src="/images/Icons_mumble.svg" width=40>
<img src="/images/Lutim_small.png" width=30>
<img src="/images/PluXml-logo_transparent.png" width=60>
<img src="/images/Etherpad.svg" width=40>
<img src="/images/gogs.svg" width=40>
<img src="/images/movim_logo.png" width=40>
<img src="/images/duniter-logo.svg" width=40>
<img src="/images/Zeronet_logo.png" width=40>
<img src="/images/jappix.png" width=50>
<a class="btn btn-lg btn-default" href="/apps_en">Official apps</a>
<a class="btn btn-lg btn-default disabled" href="/apps_in_progress_en">Apps in progress</a>
<a class="btn btn-lg btn-default" href="/apps_wishlist_en">Apps wishlist</a>
The following applications are being packaged on by a growing number of packagers.
<div class="alert alert-danger">They are **NOT** validated by the packaging team, and as such, **no official support is provided** for them.<br>
You can test and use them **at your own risk**.
</div>
You can install them through the [administration web interface](/admin) by choosing "Install custom app", or using the [moulinette](/moulinette):
```bash
yunohost app install https://github.com/<packager>/<app_repository>
```
The packagers will appreciate your remarks. If you test them and find issues, or ideas for improvement, do not hesitate to file issues directly on their repositories project page.
<div class="clearfix" style="margin-bottom: 1em;">
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-notworking .collapse">Collapse broken</div>
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-inprogress .collapse">Collapse in progress</div>
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-working .collapse">Collapse working</div>
</div>
<h2>Declared as working applications</h2>
<p><b style="color: red">Important: it's the application maintaineur that qualify his application as working, not the YunoHost core team. Install it at your own risks. We won't provide support for it.</b></p>
<div class="panel-group" id="app-accordion2-working"></div>
<h2>Work in progress applications</h2>
<p>Those are <b>not yet finished</b> applications, we <b>strongly advise against installing them</b> except if you know what you are doing.</p>
<div class="panel-group" id="app-accordion2-inprogress"></div>
<h2>Broken applications</h2>
<p>Do <b>NOT</b> install them, they are here as reference while they aren't fixed.</p>
<div class="panel-group" id="app-accordion2-notworking"></div>
<script type="text/template" id="app-template2">
<div class="panel panel-default panel-{app_state_bootstrap}">
<div class="panel-heading">
<div class="panel-title">
<a data-toggle="collapse" data-parent="#app-accordion" href="apps_in_progress/#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
</div>
</div>
<div class="panel-collapse collapse app_{app_id}">
<div class="panel-body">
<p><strong>Description</strong>: {app_description}</p>
<p><strong>Last update (UTC)</strong>: {app_update}</p>
<p><strong>Level</strong>: {app_level}</p>
<p><strong>Maintainer</strong>: {app_maintainer} <small class="text-muted">({app_mail})</small></p>
<p><strong>Git repository</strong>: <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
<p><strong>Software license</strong>: {app_license}</p>
</div>
</div>
</script>
<script>
function timeConverter(UNIX_timestamp) {
var a = new Date(UNIX_timestamp*1000);
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
if (hour < 10) { hour = '0' + hour; }
if (min < 10) { min = '0' + min; }
var time = date+' '+month+' '+year+' at '+hour+':'+min;
return time;
}
$(document).ready(function () {
$.getJSON('https://app.yunohost.org/community.json', function(app_list) {
// Cast as array
var app_list = $.map(app_list, function(el) { return el; });
// Sort alpha
app_list.sort(function(a, b){
if (a.manifest.id > b.manifest.id) {return 1;}
else if (a.manifest.id < b.manifest.id) {return -1;}
return 0;
});
$.each(app_list, function(k, infos) {
app_id = infos.manifest.id;
if (infos.state === "working") {
app_state_bootstrap = "default";
} else if (infos.state === "inprogress") {
app_state_bootstrap = "warning";
} else if (infos.state === "notworking") {
app_state_bootstrap = "danger";
}
html = $('#app-template2').html()
.replace(/{app_id}/g, app_id)
.replace(/{app_name}/g, infos.manifest.name)
.replace('{app_description}', infos.manifest.description.en)
.replace(/{app_git}/g, infos.git.url)
.replace('{app_branch}', infos.git.branch)
.replace('{app_level}', infos.level)
.replace('{app_update}', timeConverter(infos.lastUpdate))
.replace('{app_state}', infos.state)
.replace('{app_state_bootstrap}', app_state_bootstrap)
.replace('{app_license}', infos.manifest.license);
if (infos.manifest.developer) {
html = html
.replace('{app_maintainer}', infos.manifest.developer.name)
.replace('{app_mail}', infos.manifest.developer.email);
}
if (infos.manifest.maintainer) {
html = html
.replace('{app_maintainer}', infos.manifest.maintainer.name)
.replace('{app_mail}', infos.manifest.maintainer.email);
}
$('#app-accordion2-' + infos.state).append(html);
$('.app_'+ app_id).attr('id', 'app_'+ app_id);
});
});
});
</script>

View file

@ -1,137 +0,0 @@
# Apps en cours
<img src="/images/freshrss_logo.png" width=40>
<img src="/images/Icons_mumble.svg" width=40>
<img src="/images/Lutim_small.png" width=30>
<img src="/images/PluXml-logo_transparent.png" width=60>
<img src="/images/Etherpad.svg" width=40>
<img src="/images/gogs.svg" width=40>
<img src="/images/movim_logo.png" width=40>
<img src="/images/duniter-logo.svg" width=40>
<img src="/images/Zeronet_logo.png" width=40>
<img src="/images/jappix.png" width=50>
<a class="btn btn-lg btn-default" href="/apps_fr">Apps officielles</a>
<a class="btn btn-lg btn-default disabled" href="/apps_in_progress_fr">Apps en cours</a>
<a class="btn btn-lg btn-default" href="/apps_wishlist_fr">Apps souhaitées</a>
De plus en plus dapplications sont mises à disposition par les packagers.
<div class="alert alert-danger">Ces applications **nont pas** été validées par léquipe YunoHost et **ne sont pas** officiellement prises en charge.<br>Vous pouvez les tester et les utiliser à **vos risques et périls**.
</div>
Elles sont installables avec l[interface web dadministration](/admin) ou avec la moulinette :
```bash
yunohost app install https://github.com/<packageur>/<dépôt_app>
```
Nhésitez pas à vous créer un compte GitHub pour faire part de vos remarques aux packagers (sous forme d«&nbsp;issues&nbsp;») ou à leur proposer des améliorations (sous forme de «&nbsp;pull requests&nbsp;»).
<div class="clearfix" style="margin-bottom: 1em;">
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-notworking .collapse">Déplier cassées</div>
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-inprogress .collapse">Déplier en cours</div>
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-working .collapse">Déplier fonctionnelles</div>
</div>
<h2>Applications dites fonctionnelles</h2>
<p><b style="color: red">Remarque : c'est le mainteneur de l'application qui la décrit comme fonctionnelle, pas l'équipe de YunoHost. Installez la à vos risques et péril et soyez conscient que ne fournirons aucune assistance dessus.</b></p>
<div class="panel-group" id="app-accordion2-working"></div>
<h2>Applications en cours de développement</h2>
<p>Il s'agit d'application <b>pas encore fonctionnelles</b> mais en cours de développement, nous vous <b>déconseillons fortement de les installer</b> sauf si vous savez ce que vous faites.</p>
<div class="panel-group" id="app-accordion2-inprogress"></div>
<h2>Applications cassées</h2>
<p>Ne les installez <b>PAS</b>, elles sont là pour référence le temps d'être réparées.</p>
<div class="panel-group" id="app-accordion2-notworking"></div>
<script type="text/template" id="app-template2">
<div class="panel panel-default panel-{app_state_bootstrap}">
<div class="panel-heading">
<div class="panel-title">
<a data-toggle="collapse" data-parent="#app-accordion" href="#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
</div>
</div>
<div class="panel-collapse collapse app_{app_id}">
<div class="panel-body">
<p><strong>Description</strong> : {app_description}</p>
<p><strong>Dernière mise à jour (UTC)</strong> : {app_update}</p>
<p><strong>Niveau</strong>: {app_level}</p>
<p><strong>Mainteneur</strong> : {app_maintainer} <small class="text-muted">({app_mail})</small></p>
<p><strong>Dépôt git</strong> : <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
<p><strong>Licence de lapplication</strong> : {app_license}</p>
</div>
</div>
</script>
<script>
function timeConverter(UNIX_timestamp) {
var a = new Date(UNIX_timestamp*1000);
var months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
if (hour < 10) { hour = '0' + hour; }
if (min < 10) { min = '0' + min; }
var time = date+' '+month+' '+year+' at '+hour+':'+min;
return time;
}
$(document).ready(function () {
$.getJSON('https://app.yunohost.org/community.json', function(app_list) {
// Cast as array
var app_list = $.map(app_list, function(el) { return el; });
// Sort alpha
app_list.sort(function(a, b){
if (a.manifest.id > b.manifest.id) {return 1;}
else if (a.manifest.id < b.manifest.id) {return -1;}
return 0;
});
$.each(app_list, function(k, infos) {
app_id = infos.manifest.id;
if (typeof infos.manifest.description.fr === 'undefined') {
infos.manifest.description.fr = infos.manifest.description.en;
}
if (infos.state === "working") {
app_state_bootstrap = "default";
} else if (infos.state === "inprogress") {
app_state_bootstrap = "warning";
} else if (infos.state === "notworking") {
app_state_bootstrap = "danger";
}
html = $('#app-template2').html()
.replace(/{app_id}/g, app_id)
.replace(/{app_name}/g, infos.manifest.name)
.replace('{app_description}', infos.manifest.description.fr)
.replace(/{app_git}/g, infos.git.url)
.replace('{app_branch}', infos.git.branch)
.replace('{app_level}', infos.level)
.replace('{app_update}', timeConverter(infos.lastUpdate))
.replace('{app_state}', infos.state)
.replace('{app_state_bootstrap}', app_state_bootstrap)
.replace('{app_license}', infos.manifest.license);
if (infos.manifest.developer) {
html = html
.replace('{app_maintainer}', infos.manifest.developer.name)
.replace('{app_mail}', infos.manifest.developer.email);
}
if (infos.manifest.maintainer) {
html = html
.replace('{app_maintainer}', infos.manifest.maintainer.name)
.replace('{app_mail}', infos.manifest.maintainer.email);
}
$('#app-accordion2-' + infos.state).append(html);
$('.app_'+ app_id).attr('id', 'app_'+ app_id);
});
});
});
</script>

View file

@ -1,6 +1,6 @@
# Apps wishlist # Apps wishlist
<a class="btn btn-lg btn-default" href="/apps_en">Official apps</a> <a class="btn btn-lg btn-default" href="/apps_in_progress_en">Apps in progress</a> <a class="btn btn-lg btn-default disabled" href="/apps_wishlist_en">Apps wishlist</a> <div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps_en">apps list</a></div>
The following list is a compiled wishlist of applications that would be nice-to-have. The following list is a compiled wishlist of applications that would be nice-to-have.
@ -9,153 +9,171 @@ The following list is a compiled wishlist of applications that would be nice-to-
- [List of awesome selfhosted apps](https://github.com/Kickball/awesome-selfhosted) - [List of awesome selfhosted apps](https://github.com/Kickball/awesome-selfhosted)
- [List of awesome sysadmin apps](https://github.com/kahun/awesome-sysadmin) - [List of awesome sysadmin apps](https://github.com/kahun/awesome-sysadmin)
- [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects) - [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects)
- [List of SIP softwares/applications](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license)
- [10er10](https://github.com/dready92/10er10) - [10er10](https://github.com/dready92/10er10)
- [Airsonic](https://github.com/airsonic/airsonic)
- [Airtime](https://www.sourcefabric.org/en/airtime/) - [Airtime](https://www.sourcefabric.org/en/airtime/)
- [Ajenti](http://ajenti.org) - [Ajenti](http://ajenti.org)
- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) - [aMule](https://github.com/amule-project/amule)
- [Auth0 SSO Dashboard](https://github.com/auth0/auth0-sso-dashboard) - [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
- [Bitwarden](https://bitwarden.com/)
- [Beehive](https://github.com/muesli/beehive)
- [Blynk](https://github.com/blynkkk/blynk-library)
- [Bolt](http://bolt.cm) - [Bolt](http://bolt.cm)
- [Bookstack](https://www.bookstackapp.com/)
- [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html) - [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
- [Calibre](https://manual.calibre-ebook.com/server.html)
- [Caliopen](https://www.caliopen.org) - [Caliopen](https://www.caliopen.org)
- [Candy](https://candy-chat.github.io/candy) - [Candy](https://candy-chat.github.io/candy)
- [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate) - [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
- [cgit](http://git.zx2c4.com/cgit/about) - [cgit](http://git.zx2c4.com/cgit/about)
- [CheckUp](https://sourcegraph.github.io/checkup) - [CheckUp](https://sourcegraph.github.io/checkup)
- [CiviCRM](https://civicrm.org) - [CiviCRM](https://civicrm.org)
- [Collabora Online](https://www.collaboraoffice.com/code/) - [Cockpit](http://cockpit-project.org/)
- [Collabora Online server](https://nextcloud.com/collaboraonline/) (to be able to use Collabora inside Nextcloud)
- [Commafeed](https://github.com/Athou/commafeed) - [Commafeed](https://github.com/Athou/commafeed)
- [Converse.js](https://conversejs.org) - [Converse.js](https://conversejs.org)
- [Coquelicot](https://coquelicot.potager.org) [package](https://github.com/M5oul/coquelicot_ynh) - [Cozy](https://github.com/cozy)
- [Cryptpad](https://github.com/xwiki-labs/cryptpad)
- [Cronkeep](https://github.com/cronkeep/cronkeep) - [Cronkeep](https://github.com/cronkeep/cronkeep)
- [CronWeb](https://github.com/fisherinnovation/CronWeb)
- [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption. - [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
- [CumulusClips](http://cumulusclips.org) - [CumulusClips](http://cumulusclips.org)
- [Cyclos](https://www.cyclos.org)
- [Darkwire.io](https://github.com/seripap/darkwire.io) - [Darkwire.io](https://github.com/seripap/darkwire.io)
- [Deluge](http://deluge-torrent.org) (with WebUI) - [Deluge](http://deluge-torrent.org) (with WebUI)
- [DemocracyOS](http://democracyos.org)
- [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister) - [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
- [Discourse](http://discourse.org) - [Discourse](https://discourse.org)
- [DNSchain](https://github.com/okTurtles/dnschain) - [DNSchain](https://github.com/okTurtles/dnschain)
- [Emby](https://emby.media) - [Emby](https://emby.media)
- [Emoncms](https://github.com/emoncms/emoncms)
- [ERPnext](https://erpnext.com/download) - [ERPnext](https://erpnext.com/download)
- [Ethersheet](https://ethersheet.org) - [Ethersheet](https://github.com/ethersheet-collective/EtherSheet)
- [Fail2web](https://github.com/Sean-Der/fail2web) - [Fail2web](https://github.com/Sean-Der/fail2web)
- [Ferment](https://github.com/mmckegg/ferment) - [Ferment](https://github.com/mmckegg/ferment)
- [FEX](http://fex.rus.uni-stuttgart.de/)
- [FileTea](https://filetea.me) - [FileTea](https://filetea.me)
- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
- [Fossil](http://www.fossil-scm.org) - [Fossil](http://www.fossil-scm.org)
- [Framaslides](https://framagit.org/framasoft/framaslides/) - [Framaslides](https://framagit.org/framasoft/framaslides/)
- [Geneweb](https://geneweb.tuxfamily.org)
- [GetSimple CMS](http://get-simple.info) - [GetSimple CMS](http://get-simple.info)
- [Git-annex](http://git-annex.branchable.com) - [Git-annex](http://git-annex.branchable.com)
- [Gitit](http://gitit.net) - [Gitit](https://github.com/jgm/gitit)
- [GitLab](http://gitlab.org) - [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
- [Gollum](https://github.com/gollum/gollum) - [Gollum](https://github.com/gollum/gollum)
- [Goploader](https://github.com/Depado/goploader) - [Goploader](https://github.com/Depado/goploader)
- [Granary](https://github.com/snarfed/granary)
- [Guacamole](http://guac-dev.org) - [Guacamole](http://guac-dev.org)
- [h5ai](http://larsjung.de/h5ai) - [h5ai](http://larsjung.de/h5ai)
- [HackMD CE](https://github.com/hackmdio/hackmd)
- [Hackpad](https://github.com/dropbox/hackpad) - [Hackpad](https://github.com/dropbox/hackpad)
- [Headphones](https://github.com/rembo10/headphones) - [Headphones](https://github.com/rembo10/headphones)
- [Hi Buddy](http://hibuddy.monkeypatch.me) - [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
- [Huginn](https://github.com/cantino/huginn) - [Huginn](https://github.com/cantino/huginn)
- [Hugo](http://gohugo.io) - [Hugo](http://gohugo.io)
- [Icecast 2](http://www.icecast.org) - [Icecast 2](http://www.icecast.org)
- [ikiwiki](http://ikiwiki.info) - [ikiwiki](http://ikiwiki.info)
- [img.bi](https://img.bi) - [img.bi](https://github.com/imgbi/img.bi)
- [Inbox](https://www.inboxapp.com)
- [InfCloud](https://www.inf-it.com/open-source/clients/infcloud) - [InfCloud](https://www.inf-it.com/open-source/clients/infcloud)
- [Invoice Ninja](https://www.invoiceninja.com)
- [InvoicePlane](https://invoiceplane.com) - [InvoicePlane](https://invoiceplane.com)
- [IPFS](https://ipfs.io) - [IPFS](https://ipfs.io)
- [Jeedom](http://www.jeedom.fr) [package](https://github.com/lunarok/jeedom_ynh) - [Joplin](http://joplin.cozic.net/)
- [Joomla!](https://www.joomla.org)
- [JS Bin](http://jsbin.com/help/2-second-setup) - [JS Bin](http://jsbin.com/help/2-second-setup)
- [Kaiwa](http://getkaiwa.com) - [Kaiwa](http://getkaiwa.com)
- [Keepass](http://keepass.info)
- [Kin calendar](https://github.com/KinToday) - [Kin calendar](https://github.com/KinToday)
- [Kinto](https://github.com/Kinto/formbuilder) - [Kinto](https://github.com/Kinto/formbuilder)
- [Kiwix](http://www.kiwix.org/) Offline wikipedia - [Kiwix](http://www.kiwix.org/) Offline wikipedia
- [Known](https://withknown.com) - [Known](https://withknown.com)
- [Koel](http://koel.phanan.net) - [Koel](http://koel.phanan.net)
- [Kontalk](http://kontalk.org) - [Kontalk](https://kontalk.org)
- [Koozip](http://koozic.net) - [Koozip](http://koozic.net)
- [Kresus](https://framagit.org/bnjbvr/kresus) - [Kresus](https://framagit.org/bnjbvr/kresus)
- [KrISS feed](https://github.com/tontof/kriss_feed) - [KrISS feed](https://github.com/tontof/kriss_feed)
- [Koken](http://koken.me)
- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29) - [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
- [Lessy](https://lessy.io)
- [LibreNews-Server](https://librenews.io)
- [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online) - [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
- [LiquidSoap](http://savonet.sourceforge.net/) - [LiquidSoap](http://savonet.sourceforge.net/)
- [Logstalgia](http://logstalgia.io) - [Logstalgia](http://logstalgia.io)
- [Loomio](https://www.loomio.org) - [Loomio](https://www.loomio.org)
- [The Lounge](https://thelounge.github.io), cf. https://github.com/Kloadut/shout_ynh/issues/4 - [The Lounge](https://thelounge.github.io), cf. https://github.com/Kloadut/shout_ynh/issues/4
- [LSTU](https://github.com/ldidry/lstu)
- [MaidSafe](http://maidsafe.net) - [MaidSafe](http://maidsafe.net)
- [Mailpile](https://www.mailpile.is) - [Mailpile](https://www.mailpile.is)
- [MatterMost](https://github.com/mattermost/platform) - [Matomo](https://matomo.org/) (formerly Piwik)
- [MediaCrush](https://imgrush.com) - [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
- [MinigalNano](https://github.com/sebsauvage/MinigalNano) - [MinigalNano](https://github.com/sebsauvage/MinigalNano) (/!\ last update: Jun 24, 2016)
- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) - [Mirakel](http://mirakel.azapps.de/taskwarrior.html) (/!\ SSL-Warning)
- [Modoboa](http://modoboa.org) - [Modoboa](http://modoboa.org)
- [MotionEye](https://github.com/ccrisan/motioneye)
- [MPD](http://www.musicpd.org) - [MPD](http://www.musicpd.org)
- [NetData](https://github.com/firehol/netdata) - [Museek+](https://github.com/eLvErDe/museek-plus)
- [Nibbleblog](http://www.nibbleblog.com) - [Nibbleblog](http://www.nibbleblog.com)
- [NodeBB](https://nodebb.org) - [Nuage](https://nuage.kerjean.me/login)
- [ONLYOFFICE](http://onlyoffice.org)
- [ONLYOFFICE Document Server](http://helpcenter.onlyoffice.com/server/linux/document/linux-installation.aspx) (to be able to use ONLYOFFICE inside Nextcloud) - [ONLYOFFICE Document Server](http://helpcenter.onlyoffice.com/server/linux/document/linux-installation.aspx) (to be able to use ONLYOFFICE inside Nextcloud)
- [ONLYOFFICE](http://onlyoffice.org)
- [OpenBazaar](https://openbazaar.org) - [OpenBazaar](https://openbazaar.org)
- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) - [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
- [Paperless](https://github.com/danielquinn/paperless) - [Paperless](https://github.com/danielquinn/paperless)
- [Paperwork](http://paperwork.rocks) - [Paperwork](http://paperwork.rocks)
- [pdfy](https://github.com/joepie91/pdfy) - [pdfy](https://github.com/joepie91/pdfy) (/!\ last update: Aug 5, 2014)
- [PeerTube](https://github.com/Chocobozzz/PeerTube) - [Pelias](https://github.com/pelias/pelias)
- [Pelican](http://blog.getpelican.com)
- [Peps](https://github.com/MLstate/PEPS) - [Peps](https://github.com/MLstate/PEPS)
- [PHPList](http://www.phplist.com) - [PHPList](http://www.phplist.com)
- [PHProxy](http://sourceforge.net/projects/poxy) - [PHProxy](http://sourceforge.net/projects/poxy)
- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) - [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#)
- [Pico](http://picocms.org) - [Pico](http://picocms.org)
- [Pix](http://pix.toile-libre.org) - [Pix](http://pix.toile-libre.org)
- [PPTP VPN](https://packages.debian.org/sv/squeeze/pptpd) - [Playmaker](https://github.com/NoMore201/playmaker)
- [Pleroma](https://git.pleroma.social/pleroma/pleroma)
- [Privoxy](http://www.privoxy.org) - [Privoxy](http://www.privoxy.org)
- [ProcessMaker](http://www.processmaker.com) - [ProcessMaker](http://www.processmaker.com)
- [Pulse](https://ind.ie/pulse) - [PyLoad](https://github.com/pyload/pyload)
- [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
- [Pump.io](http://pump.io) - [Pump.io](http://pump.io)
- [qBittorrent](https://github.com/qbittorrent/qBittorrent)
- [racktables](http://racktables.org) - [racktables](http://racktables.org)
- [remotestorage-server](http://remotestorage.io/provide) - [Redmine](https://www.redmine.org)
- [remotestorage-server](https://remotestorage.io/)
- [Request Tracker](https://bestpractical.com) - [Request Tracker](https://bestpractical.com)
- [Respawn 2.0](https://github.com/broncowdd/respawn) - [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)
- [Restya](http://restya.com) - [Restya](http://restya.com)
- [uMap](https://umap.openstreetmap.fr/en) - [SABnzbd](https://sabnzbd.org)
- [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
- [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble) - [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
- [Scribbleton](https://scribbleton.com) - [Scribbleton](https://scribbleton.com)
- [ShareLatex](https://www.sharelatex.com) - [ShareLatex](https://www.sharelatex.com)
- [Shleuder](http://schleuder2.nadir.org) - [Shleuder](http://schleuder2.nadir.org)
- [Simone](https://github.com/Kloadut/Simone) - [Simone](https://github.com/Kloadut/Simone)
- [SIP](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license) - [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
- [Sonarr](https://sonarr.tv) - [Sonarr](https://sonarr.tv)
- [Stackedit](https://stackedit.io) - [Stackedit](https://stackedit.io)
- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion. - [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.
- [Streama](https://github.com/dularion/streama) - [Streama](https://github.com/dularion/streama)
- [Streisand](https://github.com/jlund/streisand) - [Streisand](https://github.com/jlund/streisand)
- [SVG-Edit](https://github.com/SVG-Edit/svgedit) - [SVG-Edit](https://github.com/SVG-Edit/svgedit)
- [Sympa](http://www.sympa.org)
- [Taskwarrior](https://taskwarrior.org)
- [Taiga](https://taiga.io) - [Taiga](https://taiga.io)
- [Tania](http://gettania.org/)
- [Taskwarrior](https://taskwarrior.org)
- [TorChat](https://github.com/prof7bit/TorChat) - [TorChat](https://github.com/prof7bit/TorChat)
- [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client) - [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
- [Total Respawn](https://github.com/broncowdd/TotalRespawn) - [Total Respawn](https://github.com/broncowdd/TotalRespawn)
- [Twister](http://twister.net.co) - [Twister](http://twister.net.co)
- [Unvis](https://github.com/phixofor/unvis.it) - [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
- [Unsee](https://github.com/unsee-cc) - [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
- [Vaultier](http://www.vaultier.org) - [Vaultier](http://www.vaultier.org)
- [Weblate](http://weblate.org)
- [Webmpc](https://github.com/ushis/webmpc) - [Webmpc](https://github.com/ushis/webmpc)
- [WebODF](http://webodf.org) - [WebODF](http://webodf.org)
- [webSync](http://furier.github.io/websync) - [webSync](http://furier.github.io/websync)
- [WebTorrent](https://github.com/feross/webtorrent) - [WebTorrent](https://github.com/feross/webtorrent)
- [Wekan](http://wekan.io)
- [WID](https://wid.chorem.com/site/home)
- [Wisemapping](http://www.wisemapping.com) - [Wisemapping](http://www.wisemapping.com)
- [Xonotic](http://xonotic.org) - [Xonotic](http://xonotic.org)
- [Yacy](http://yacy.net) [package](https://github.com/M5oul/yacy_ynh) - [YellowCMS](https://datenstrom.se/yellow)
- [YellowCMS](http://datenstrom.se/yellow) - [YesWiki](https://yeswiki.net)
- [YesWiki](http://yeswiki.net/wa.php?wiki=AccueiL) - [ZeroTier](https://github.com/zerotier/ZeroTierOne)
- [Zone-project](https://github.com/descl/ZONE)
- [ZNC](http://wiki.znc.in/ZNC) - [ZNC](http://wiki.znc.in/ZNC)
- [Zone-project](https://github.com/descl/ZONE)
- [Zoneminder](https://github.com/ZoneMinder/zoneminder)
- [microblog.pub](https://microblog.pub)

View file

@ -1,7 +1,3 @@
# Apps souhaitées # Apps souhaitées
<a class="btn btn-lg btn-default" href="/apps_fr">Apps officielles</a>
<a class="btn btn-lg btn-default" href="/apps_in_progress_fr">Apps en cours</a>
<a class="btn btn-lg btn-default disabled" href="/apps_wishlist_fr">Apps souhaitées</a>
La liste des applications souhaitées nest maintenue quen <a href="/apps_wishlist_en">version anglaise</a>. Merci de vous y référer. La liste des applications souhaitées nest maintenue quen <a href="/apps_wishlist_en">version anglaise</a>. Merci de vous y référer.

View file

@ -1,10 +0,0 @@
#Art Works
Black and white YunoHost png logo done by ToZz (400 × 400 px):
<a href="/images/ynh_logo_black.png"><img src="/images/ynh_logo_black.png" width=220></a>
<a href="/images/ynh_logo_white.png"><img src="/images/ynh_logo_white.png" width=220></a>
Click to download.
Licence: CC-BY-SA 4.0

View file

@ -1,10 +0,0 @@
#Travail artistique
Logo Yunohost noir et blanc réalisé par ToZz (400 × 400 px) :
<a href="/images/ynh_logo_black.png"><img src="/images/ynh_logo_black.png" width=220></a>
<a href="/images/ynh_logo_white.png"><img src="/images/ynh_logo_white.png" width=220></a>
Cliquer pour télécharger.
Licence: CC-BY-SA 4.0

284
backup.md
View file

@ -1,165 +1,149 @@
# Backup Backing up your server and apps
===============================
First make sure that the `archives` folder exists in `/home/yunohost.backup/`. If it does not, create it with: 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*.
Backups in the context of YunoHost
----------------------------------
YunoHost comes with a backup system, that allows to backup (and restore) system configurations and data (e.g. mails) and apps if they support it.
You can manage backups either from the command line (`yunohost backup --help`) or from the web administration (in the Backups section) though some features are not yet available in the webadmin.
The current default method consists in creating a `.tar.gz` archive containing all relevant files. In the future, YunoHost plans to support [Borg](https://www.borgbackup.org/) which is a more flexible, efficient and powerful solution.
Creating backups
----------------
#### From the webadmin
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.
![](/images/backup.png)
#### From the command line
You can create a new backup archive with the command line. Here are a few simple example of commands and their corresponding behavior :
- Backing up everything (all system parts and apps) :
```bash ```bash
sudo mkdir /home/yunohost.backup/archives yunohost backup create
``` ```
Launch a backup via - Backing up only apps
```bash ```bash
sudo yunohost backup create yunohost backup create --apps
``` ```
- Backing up only two apps (wordpress and shaarli)
In this version you can backup with cli or with the web admin. The cli way allows you to do more things. The webadmin way is more accessible.
## Web admin
Basically with the webadmin, you can:
- backup into `/home/yunohost/archives/`
- choose to backup one or more data among:
- apps data
- emails
- home data
- configuration
- list backups
- see what there is in a backup
- restore selectively a backup
**Caution:** to do a backup, you need to have enough free disk spaces in the destination directory. For example, if you have 20GB in `/home/data` you need to have enough space to contain this 20GB compressed in a tar.gz. To do the tar.gz, yunohost backup uses shallow copies, to avoid to need more spaces to be able to create the tar.gz.
**Caution:** If you use selective restore, be sure to not create discordant operation. For example, if you restore an app using a domain that has been deleted from YunoHost, you need to read the domain or to restore all configuration files.
Here's a list of missing but planned features:
- backup in another memory device
- download/upload backups
- encrypt backups
Some features are almost ready in the webadmin, but the API is not for the moment.
## Command line
### Backup
You can make a full backup by running this command:
```bash ```bash
admin@yunohost:~# sudo yunohost backup create yunohost backup create --apps wordpress shaarli
Exécution des scripts de sauvegarde...
Attention : backup script '/etc/yunohost/apps/phpmyadmin/scripts/backup' not found
Attention : App 'phpmyadmin' will not be saved
Lancement du script de sauvegarde de l'application 'odoo'...
Création de l'archive de sauvegarde...
Succès ! Sauvegarde terminée
archive:
hooks:
conf_ssh: /usr/share/yunohost/hooks/backup/08-conf_ssh
conf_ynh_firewall: /usr/share/yunohost/hooks/backup/20-conf_ynh_firewall
data_mail: /usr/share/yunohost/hooks/backup/23-data_mail
conf_cron: /usr/share/yunohost/hooks/backup/32-conf_cron
conf_ynh_certs: /usr/share/yunohost/hooks/backup/21-conf_ynh_certs
conf_ynh_mysql: /usr/share/yunohost/hooks/backup/11-conf_ynh_mysql
conf_xmpp: /usr/share/yunohost/hooks/backup/26-conf_xmpp
data_home: /usr/share/yunohost/hooks/backup/17-data_home
conf_nginx: /usr/share/yunohost/hooks/backup/29-conf_nginx
conf_ssowat: /usr/share/yunohost/hooks/backup/14-conf_ssowat
conf_ldap: /usr/share/yunohost/hooks/backup/05-conf_ldap
created_at: 1448540733
apps:
odoo:
version: -
name: Odoo
description: Odoo est une collection d'apps de gestion d'entreprise (ERP : CRM, Comptabilité, Point de Vente, RH, Achats, ...).
description:
name: 20151126-132533
admin@yunohost:~# sudo ls /home/yunohost.backup/archives/
20151126-132533.info.json 20151126-132533.tar.gz
``` ```
By default, it backups in `/home/yunohost.backup/archives/`, but you can set your own directory with `-o` option. It could be an usb key or an other mounted filesystem.
If an app has no backup script it warns you. - Backing up only mails
As you can see in the answer, there is 2 hooks which backup data (data_home and data_mail). By default, the mysql data aren't saved, because the apps should save themselves their databases.
**Note:** `yunohost backup` is not able currently to create diff backup. But you can use `-r` option to avoid compression and use an other backup tool to make diff backup.
### Restore
To do a restore
```bash ```bash
admin@yunohost:~# sudo yunohost backup restore 20151126-132533 yunohost backup create --system data_mail
``` ```
You can choose to apply only some parts of the backup, by selecting which restore hooks and which apps to restore.
## Packaging information - Backing up mails and wordpress
You can see an example to make backup and restore scripts here
https://github.com/YunoHost/example_ynh/tree/testing
and
https://github.com/zamentur/strut_ynh/
There is some helpers to do shadow copy if you have big quantity of data to backup (owncloud, video apps, etc...).
**Note:** during a backup operation, the restore script associated is saved. So in a restore operation, yunohost use the saved restore script and not the most recent script.
If you want modify a general conf file, you should use hooks to trigger a modification of the conf file after each call of `yunohost regenconf`.
You can also use the regeneration configuration system to do index your conf file, and allow your user to be warn if an upgrade of your app has change a config file.
## Annex
```bash ```bash
usage: yunohost backup create [-h] [-d DESCRIPTION] [-o OUTPUT_DIRECTORY] yunohost backup create --system data_mail --apps wordpress
[-n NAME] [--ignore-hooks]
[--hooks [HOOKS [HOOKS ...]]]
[--apps [APPS [APPS ...]]] [-r] [--ignore-apps]
optional arguments:
-h, --help show this help message and exit
-d DESCRIPTION, --description DESCRIPTION
Short description of the backup
-o OUTPUT_DIRECTORY, --output-directory OUTPUT_DIRECTORY
Output directory for the backup
-n NAME, --name NAME Name of the backup archive
--ignore-hooks Do not execute backup hooks
--hooks [HOOKS [HOOKS ...]]
List of backup hooks names to execute
--apps [APPS [APPS ...]]
List of application names to backup
-r, --no-compress Do not create an archive file
--ignore-apps Do not backup apps
usage: yunohost backup restore [-h] [--force] [--hooks [HOOKS [HOOKS ...]]]
[--ignore-hooks] [--apps [APPS [APPS ...]]]
[--ignore-apps]
name
positional arguments:
name Name of the local backup archive
optional arguments:
-h, --help show this help message and exit
--force Force restauration on an already installed system
--hooks [HOOKS [HOOKS ...]]
List of restauration hooks names to execute
--ignore-hooks Do not restore hooks
--apps [APPS [APPS ...]]
List of application names to restore
--ignore-apps Do not restore apps
usage: yunohost backup [-h] {info,restore,create,list,delete} ...
optional arguments:
-h, --help show this help message and exit
actions:
{info,restore,create,list,delete}
info Show info about a local backup archive
restore Restore from a local backup archive
create Create a backup local archive
list List available local backup archives
delete Delete a backup archive
root@staging1:/home/admin# sudo yunohost backup list --help
usage: yunohost backup list [-h] [-i] [-H]
optional arguments:
-h, --help show this help message and exit
-i, --with-info Show backup information for each archive
-H, --human-readable Print sizes in human readable format
``` ```
For more informations and options about backup creation, consult `yunohost backup create --help`. You can also list system parts that can be backuped with `yunohost hook list backup`.
#### Apps-specific configuration
Some apps such as nextcloud may be related to a large quantity of data which are not backuped by default. This practice is referred to "backing up only the core" (of the app). However it's possible to enable the backup of all data of this app with `yunohost app setting nextcloud backup_core_only -v 0`. Be careful though that your archive might get huge if there's too much data to be backuped...
Downloading and uploading backups
---------------------------------
After creating backup archives, it is possible to list and inspect them via the corresponding views in the webadmin, or via `yunohost backup list` and `yunohost backup info <archivename>` from the command line. By default, backups are stored in `/home/yunohost.backup/archives/`.
There is currently no straightfoward way to dowload or upload a backup archive.
One solution consists in using `scp` (a program based on [`ssh`](/ssh)) to copy files between two machines via the command line. Hence, from a machine running linux, you should be able to run the following to download a specific backup :
```bash
scp admin@your.domain.tld:/home/yunohost.backup/archives/<archivename>.tar.gz ./
```
Similarly, you can upload a backup from a machine to your server with
```bash
scp /path/to/your/<archivename>.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/
```
Alternatively, a solution can be to install Nextcloud or a similar app and configure it to be able to access files in `/home/yunohost.backup/archives/` from a web browser.
Restoring backups
-----------------
#### From the webadmin
Go in Backup > Local storage and select your archive. You can then select which items you want to restore, then click 'Restore'.
![](/images/restore.png)
#### From the command line
From the command line, you can run `yunohost backup restore <archivename>` (without the `.tar.gz`) to restore an archive. As for `yunohost backup create`, this will restore everything in the archive by default. If you want to restore only specific items, you can use for instance `yunohost backup restore --apps wordpress` which will restore only the wordpress app.
#### Constrains
To restore an app, the domain on which it was installed should already be configured (or you need to restore the corresponding system configuration). You also cannot restore an app which is already installed ... which means that to restore an old version of an app, you must first uninstall it.
#### Restoring during the postinstall
One specific feature is the ability to restore a full archive *instead* of the postinstall step. This makes it useful when you want to reinstall a system entirely from an existing backup. To be able to do this, you will need to upload the archive on the server and place it in `/home/yunohost.backup/archives` though. Then, instead of `yunohost tools poinstall` you can run :
```bash
yunohost backup restore <archivename>
```
To go futher
------------
#### Storing backups on a different drive
If you want, you can connect and mount an external drive to store backup archives on it (among other things). For this, we first move the existing archives then add a symbolic link.
```bash
PATH_TO_DRIVE="/media/my_external_drive" # For instance, depends of where you mounted your drive
mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives
ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives
```
#### Automatic backups
You can add a simple cron job to trigger automatic backups regularly. For instance, to backup your wordpress weekly, create a file `/etc/cron.weekly/backup-wordpress` with the following content :
```bash
#!/bin/bash
yunohost backup create --apps wordpress
```
then make it executable :
```bash
chown +x /etc/cron.weekly/backup-wordpress
```
Be careful what you backup exactly and when : you don't want to end up with your whole disk space saturated because you backuped 30 Go of data every day.
#### Backing your server on a remote server
You can follow this tutorial on the forum to setup Borg between two servers : https://forum.yunohost.org/t/how-to-backup-your-yunohost-server-on-another-server/3153
Alternatively, the app Archivist allows to setup a similar system : https://forum.yunohost.org/t/new-app-archivist/3747
#### Full backup with `dd`
If you are using an ARM board, another method for doing a full backup can be to create an image of the SD card. For this, poweroff your ARM board, get the SD card in your computer then create a full image with something like :
```bash
dd if=/dev/mmcblk0 of=./backup.img
```
(replace `/dev/mmcblk0` with the actual device of your sd card)

View file

@ -1,48 +1,149 @@
# Les sauvegardes Sauvegarder son serveur et ses apps
===================================
**Prérequis :** vérifier que le dossier `archives` existe bien dans le dossier `/home/yunohost.backup/` Dans le contexte de l'auto-hébergement, les sauvegardes (backup) sont un élément important pour palier à des événements inattendus (incendies, corruption de base de données, perte d'accès au serveur, serveur compromis, ...). La politique de sauvegarder à 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*.
sinon le créer via un
Les sauvegardes avec YunoHost
-----------------------------
YunoHost contient un système de sauvegarde, qui permet de sauvegarder (et restaurer) les configurations du système, les données "système" (comme les mails) et les applications si elles le supportent.
Vous pouvez gérer vos sauvegardes via la ligne de commande (`yunohost backup --help`) ou la webadmin (dans la section Sauvegardes) bien que certaines fonctionnalités ne soient pas disponible via celle-ci.
Actuellement, la méthode de sauvegarde actuelle consiste à créer des archives `.tar.gz` qui contiennent les fichiers pertinents. Pour le futur, YunoHost envisage de supporter nativement [Borg](https://www.borgbackup.org/) qui est une solution plus flexible, performante et puissante pour gérer des sauvegardes.
Créer des sauvegardes
---------------------
#### Depuis la webadmin
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 quoi sauvegarder (configuration, données "système", applications).
![](/images/backup.png)
#### Depuis la ligne de commande
Vous pouvez créer de nouvelles archives depuis la ligne de commande. Voici quelques exemples de commandes et leur comportement correspondant:
- Tout sauvegarder (système et application)
```bash ```bash
sudo mkdir /home/yunohost.backup/archives yunohost backup create
```
Lancer la sauvegarde via
```bash
sudo yunohost backup create
```
Un fichier portant un numéro et une extension .tar.gz est crée
(exemple 1452694078.tar.gz)
Cette archive contient une copie des dossiers suivants et fichiers de configurations dans les répertoires suivants
- cron
- home (car les données downcloud se trouvent dans `/home/yunohost.apps/owncloud` par exemple)
- ldap
- mail
- mysql
- nginx
- ssh
- ssowat
- xmpp
- yunohost
Cette sauvegarde sous forme darchive est à copier sur un autre support (support mémoire, répertoire réseau…)
Pour récupérer une sauvegarde depuis son serveur vers le /home de son ordinateur (avec 1234 comme port SSH ; avec IP_ou_NDD comme adresse IP [locale ou pas] ou NDD son Nom De Domaine ; avec $USER son nom d'utilisateur ; avec aaaammjj-hhmmss comme par exemple 20161002-084907 [nom de la sauvegarde YunoHost]) :
```bash
scp -P 1234 root@IP_ou_NDD:/home/yunohost.backup/archives/aaaammjj-hhmmss.tar.gz /home/$USER
scp -P 1234 root@IP_ou_NDD:/home/yunohost.backup/archives/aaaammjj-hhmmss.info.json /home/$USER
``` ```
Sur le même principe que précédemment, envoyer une sauvegarde depuis le /home de son ordinateur vers son serveur (s'assurer que le dossier archive existe bien sinon lancer une première sauvegarde ou bien en dernier recours créer le dossier en root : mkdir /home/yunohost.backup/archives) : - Sauvegarder seulement les apps
```bash ```bash
scp -P 1234 /home/$USER/aaaammjj-hhmmss.info.json root@IP_ou_NDD:/home/yunohost.backup/archives yunohost backup create --apps
scp -P 1234 /home/$USER/aaaammjj-hhmmss.tar.gz root@IP_ou_NDD:/home/yunohost.backup/archives
``` ```
# Pour restaurer une sauvegarde : - Sauvegarder seulement deux apps (wordpress et shaarli)
```bash ```bash
yunohost backup restore nom_de_la_sauvegarde yunohost backup create --apps wordpress shaarli
``` ```
# Pour déplacer ses sauvegardes sur un autre disque dur - Sauvegarder seulement les mails
```bash
yunohost backup create --system data_mail
```
Il suffit de monter son disque dur dans le dossier /home/yunohost.backup/archives - Sauvegarder les mails et wordpress
```bash
yunohost backup create --system data_mail --apps wordpress
```
Pour plus d'informations et d'option sur la création d'archives, consultez `yunohost backup create --help`. Vous pouvez également lister les parties de système qui sont sauvegardable avec `yunohost hook list backup`.
#### Configuration spécifiques à certaines apps
Certaines apps comme Nextcloud sont potentiellement rattachées à des quantités importantes de données, qui ne sont pas sauvegardées par défaut. Dans ce cas, on dit que l'app "sauvegarde uniquement le core" (de l'app). Néanmoins, il est possible d'activer la sauvegarde de toutes les données de cette application avec (dans le cas de Nextcloud) `yunohost app setting nextcloud backup_core_only -v 0`. Soyez prudent: en fonction des données stockées dans nextcloud, il se peut que l'archive que vous obtenez ensuite devienne énorme...
Télécharger et téléverser des sauvegardes
-----------------------------------------
Après avoir créé des sauvegardes, il est possible de les lister et de les inspecter grâce aux vues correspondantes dans la webadmin, ou via `yunohost backup list` et `yunohost backup info <nom_d'archive>` depuis la ligne de commande. Par défaut, les sauvegardes sont stockées dans `/home/yunohost.backup/archives/`.
Il n'existe actuellement pas de solution "rapide et facile" pour télécharger ou téléverser une archive depuis une autre machine.
Une solution consiste à utiliser `scp` (un programme basé sur [`ssh`](/ssh)) pour copier des fichiers entre deux machines grâce à la ligne de commande. Ainsi, depuis une machine sous Linux, vous pouvez utiliser la commande suivante pour télécharger une archive:
```bash
scp admin@your.domain.tld:/home/yunohost.backup/archives/<nom_d'archive>.tar.gz ./
```
De façon similaire, vous pouvez téléverser une sauvegarde depuis une machine vers votre serveur avec:
```bash
scp /path/to/your/<nom_d'archive>.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/
```
Une solution alternative consiste à installer une application comme Nextcloud et à la configurer pour être en mesure d'accéder aux fichiers dans `/home/yunohost.backup/archives/` depuis un navigateur web.
Restaurer des sauvegardes
-------------------------
#### Depuis la webadmin
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".
![](/images/restore.png)
#### Depuis la ligne de commande
Depuis la ligne de commande, vous pouvez utiliser `yunohost backup restore <nom_d'archive>` (sans le `.tar.gz`) pour restaurer une archive. Tout comme `yunohost backup create`, cela restaure tout le contenu par défaut. Si vous souhaitez restaurer seulement certaines parties, vous pouvez utiliser par exemple `yunohost backup restore --apps wordpress` qui restaurera seulement l'app wordpress.
#### Contraintes
Pour restaurer une application, le domaine sur laquelle elle est installée doit déjà être configuré (ou il vous faut restaurer en même temps la configuration correspondante). Aussi, il n'est pas possible de restaurer une application déjà installée... ce qui veut dire que pour restaurer une sauvegarde d'une app, il vous faut déjà la désinstaller.
#### Restauration d'une archive à la place de la post-installation
Une fonctionnalité particulière est la possibilité de restaurer une archive entière *à la place* de faire la post-installation. Ceci est utile pour réinstaller un système entièrement à partir d'une sauvegarde existante. Pour faire cela, il vous faudra d'abord téléverser l'archive sur le server et la placer dans `/home/yunohost.backup/archives`. Ensuite, à la place de `yunohost tools poinstall` vous pouvez faire:
```bash
yunohost backup restore <nom_d'archive>
```
Pour aller plus loin
--------------------
#### Stocker les archives sur un autre disque
Si vous le souhaitez, vous pouvez connecter un disque externe à votre serveur pour (parmi d'autres choses) stocker les archives de backup dessus. Pour cela, il faut d'abord déplacer les archives existantes vers le disque, puis créer un lien symbolique:
```bash
PATH_TO_DRIVE="/media/mon_disque_externe" # Par exemple - Tout dépend d'où le disque est monté
mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives
ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives
```
#### Sauvegardes automatiques
Vous pouvez ajouter une tâche cron pour déclencher automatiquement une sauvegarde régulièrement. Par exemple pour sauvegarder l'application wordpress toutes les semaines, créez un fichier `/etc/cron.weekly/backup-wordpress` avec le contenu suivant:
```bash
#!/bin/bash
yunohost backup create --apps wordpress
```
puis rendez-le exécutable:
```bash
chown +x /etc/cron.weekly/backup-wordpress
```
Soyez prudent à propos de ce que vous sauvegardez et de la fréquence: il vaut mieux éviter de se retrouver avec un disque saturé car vous avez voulu sauvegarder 30 Go de données tous les jours...
#### Sauvegarder sur un serveur distant
Vous pouvez suivre ce tutoriel sur le forum pour mettre en place Borg entre deux serveurs: https://forum.yunohost.org/t/how-to-backup-your-yunohost-server-on-another-server/3153
Il existe aussi l'application Archivist qui permet un système similaire: https://forum.yunohost.org/t/new-app-archivist/3747
#### 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:
```bash
dd if=/dev/mmcblk0 of=./backup.img
```
(remplacez `/dev/mmcblk0` par le vrai nom de votre carte SD)

View file

@ -37,26 +37,16 @@ Check that your computer is physically connected and retry.</div>
* It should reboot automatically. * It should reboot automatically.
## <small>4.</small> Proceed to post-installation ## <small>4.</small> Log in
Once booted, your computer should display a screen like this: 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 :
<img src="/images/virtualbox_4.png"> * User: **root**
* Password: **yunohost**
You can proceed to post-installation right away, or access the **IP** address shown on this screen from another computer's web browser (usually `http://192.168.x.x`) ## <small>5.</small> Proceed to post-installation
<img src="/images/postinstall_error.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"> <a class="btn btn-lg btn-default" href="/postinstall">Post-install documentation</a>
If you encounter this kind of error, click on "**Proceed**" or "**Add an exception**".
This means that you have to trust the certificate which secures your server's connections.
Since this is your server, you can bypass it serenely here :-)
<br>
<img src="/images/postinstall_web.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
---
#### More information on the post-installation here:
**[yunohost.org/postinstall](/postinstall)**

View file

@ -15,7 +15,7 @@ Démarrez votre serveur avec la clé USB ou le CD-ROM inséré, et sélectionnez
## <small>3.</small> Lancer linstallation graphique ## <small>3.</small> Lancer linstallation graphique
Vous devriez voit un écran comme ça : Vous devriez voir un écran comme ça :
<img src="/images/virtualbox_3.png"> <img src="/images/virtualbox_3.png">
@ -35,26 +35,16 @@ Vérifiez que votre serveur est bien branché et réessayez.</div>
* Lordinateur devrait redémarrer automatiquement à la fin de linstallation. * Lordinateur devrait redémarrer automatiquement à la fin de linstallation.
## <small>4.</small> Procéder à la post-installation ## <small>4.</small> Log in
Une fois démarré, votre serveur devrait afficher un écran comme celui-ci : 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 :
<img src="/images/virtualbox_4.png"> * User: **root**
* Password: **yunohost**
Vous pouvez procéder à la post-installation directement, ou accéder à ladresse **IP** affichée sur cet écran depuis un navigateur web dun autre ordinateur (généralement `http://192.168.x.x`) ## <small>5.</small> Procéder à la post-installation
<img src="/images/postinstall_error.png" style="max-width:100%; border-radius: 5px; border: 1px solid rgba(0,0,0,0.15); box-shadow: 0 5px 15px rgba(0,0,0,0.35);"> <a class="btn btn-lg btn-default" href="/postinstall_fr">Documentation de la post-installation</a>
Si vous rencontrez une erreur de ce type, cliquez sur « **Poursuivre quand même** » ou « **Ajouter une exception** ».
Cela signifie que vous devez faire confiance au certificat qui sécurise les connexions avec votre serveur.
Comme cest le votre, vous pouvez le valider sereinement ici :-)
<br>
<img src="/images/postinstall_web.png" style="max-width:100%; border-radius: 5px; border: 1px solid rgba(0,0,0,0.15); box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
---
#### Plus dinformations sur la post-installation ici :
**[yunohost.org/postinstall](/postinstall)**

View file

@ -1,124 +0,0 @@
# Build ARM image
This tutorial's goal is to build a plug-and-play image for YunoHost for ARM boards.
It could be used on many ARM board (Rasberry Pi, Olimex, Cubieboard…).
This tutorial is based on [Yunocubian](https://github.com/M5oul/Yunocubian).
You could find [ARM image builder from Debian Jessie](https://github.com/YunoHost/install_script/pull/36).
**All these steps can be executed with variations of [this script](https://github.com/likeitneverwentaway/rpi_buildbot/blob/master/build_image.sh).**
### Download minimal Debian Jessie
Download a Debian Jessie image compatible with the hardware **without desktop environnement** installed:
* [ARMbian](http://www.armbian.com/download/) (Olimex, Cubieboard, Banana Pi…)
* [Raspbian Jessie Lite](https://www.raspberrypi.org/downloads/raspbian/)
### Copy image and install YunoHost
<a class="btn btn-lg btn-default" href="/copy_image">Copy image to the SD card</a>
<a class="btn btn-lg btn-default" href="/plug_and_boot">Plug & boot</a>
* Connect via [SSH](ssh): **pi@exemple.tld/ip_address** with the password **raspberry** (or any variations for other distros than Raspbian).
* Set a root password :
```bash
sudo passwd
```
and login as root:
```bash
su
```
* You should be **root** for next operations.
<a class="btn btn-lg btn-default" href="/install_on_raspberry">Manually install YunoHost on a Raspberry Pi</a>
If you encounter problems during installation check out [this installation guide](http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie) for the Raspberry Pi, based on suggestion [from this thread](https://forum.yunohost.org/t/installation-de-yunohost-2-4-sur-raspbian-jessie-minimal-sur-un-raspberry-pi-3/1597).
<div class="alert alert-danger">Do not proceed to **post-installation**.</div>
### Clean image
* Update image:
```bash
apt-get update && apt-get dist-upgrade && apt-get autoremove
```
* Change hostname:
```bash
sed -i "s/$(hostname)/YunoHost/g" /etc/hosts
sed -i "s/$(hostname)/YunoHost/g" /etc/hostname
```
* Allow SSH connection as root:
```bash
sed -i '0,/without-password/s/without-password/yes/g' /etc/ssh/sshd_config
```
* Delete the **pi** user (this step must be perform directly as root, not logged in as pi and then login as root):
```bash
deluser remove-all-files pi
```
* Set the first boot script:
```bash
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/yunohost-firstboot -P /etc/init.d/
# Give executable right
chmod a+x /etc/init.d/yunohost-firstboot
# Make it execute at next boot
insserv /etc/init.d/yunohost-firstboot
```
* Set the boot promtp script:
```bash
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.service -P /etc/systemd/system/
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.sh -P /usr/bin/
chmod a+x /usr/bin/boot_prompt.sh
systemctl enable boot_prompt.service
```
* Tell the boot_prompt script that the next boot is the first boot:
```bash
touch /etc/yunohost/firstboot
```
* Turn off your board:
```bash
shutdown
```
Don't forget to reset **wpa-supplicant.conf** if you changed it. You could also delete the command history with
```bash
history -c
```
or by editing **/root/.bash_history**.
### Copy image
Plug your SD card on your desktop computer and copy it:
<div class="alert alert-danger">Be carefull to not erase your data.</div>
```bash
sudo dd bs=1M if=/dev/sdd of=~/yunohost-jessie-board-year-month-day.img
```
You can also use the **Read** function of [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/).
### Verify image
<a class="btn btn-lg btn-default" href="/copy_image">Copy image to the SD card</a>
<a class="btn btn-lg btn-default" href="/plug_and_boot">Plug & boot</a>
<a class="btn btn-lg btn-default" href="/postinstall">Post-install</a>
<div class="alert alert-info">If everything is alright, you could publish your image.</div>
### Publish image
* Reduce size by zipping the image:
```bash
zip yunohost-jessie-board-year-month-day.img.zip yunohost-jessie-board-year-month-day.img
```
* Publish: you could post your image on the [forum](https://forum.yunohost.org/).

View file

@ -1,126 +0,0 @@
# Build ARM image
Le but de ce tutoriel est de créer une image YunoHost prête à l'emploi pour les cartes ARM.
Elle pourra être utilisée sur de nombreuses cartes (Rasberry Pi, Olimex, Cubieboard…).
Ce tutoriel est basé sur [Yunocubian](https://github.com/M5oul/Yunocubian).
Vous pouvez trouvez le script [ARM image builder from Debian Jessie](https://github.com/YunoHost/install_script/pull/36).
**Toutes ces étapes peuvent être executées en utilisant des variations de [ce script](https://github.com/likeitneverwentaway/rpi_buildbot/blob/master/build_image.sh).**
### Télechargez une version minimale de Debian Jessie
Télechargez une image Debian Jessie compatible avec la carte **sans environnement graphique** installé:
* [ARMbian](http://www.armbian.com/download/) (Olimex, Cubieboard, Banana Pi…)
* [Raspbian Jessie Lite](https://www.raspberrypi.org/downloads/raspbian/)
### Copiez l'image et installez YunoHost
<a class="btn btn-lg btn-default" href="/copy_image_fr">Copie de l'image sur la carte SD</a>
<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">Plug & boot</a>
* Connewion via [SSH](ssh): **pi@exemple.tld/ip_address** avec le mot de passe **raspberry** (ou toute autre variation pour des distros différentes de Raspbian).
* Mettez un mot de passe root :
```bash
sudo passwd
```
et se connecter en tant que root:
```bash
su
```
* Vous devriez être **root** pour les étapes suivantes.
<a class="btn btn-lg btn-default" href="/install_on_raspberry_fr">Installez manuellement YunoHost sur un Raspberry Pi</a>
Si vous rencontrez des problèmes durant l'installation regardez [ce guide d'installation](http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie) pour le Raspberry Pi, sur les suggestions [de ce thread](https://forum.yunohost.org/t/installation-de-yunohost-2-4-sur-raspbian-jessie-minimal-sur-un-raspberry-pi-3/1597).
<div class="alert alert-danger">Ne pas faire la **post-installation**.</div>
### Nettoyage de l'image
* Mise à jour de l'image:
```bash
apt-get update && apt-get dist-upgrade && apt-get autoremove
```
* Changez l'hostname:
```bash
sed -i "s/$(hostname)/YunoHost/g" /etc/hosts
sed -i "s/$(hostname)/YunoHost/g" /etc/hostname
```
* Permettre les connections SSH en tant que root:
```bash
sed -i '0,/without-password/s/without-password/yes/g' /etc/ssh/sshd_config
```
* Supprimer l'user pi (cette étape doit être effectuer directement en tant que root, pas connecté avec l'user pi puis root):
```bash
deluser remove-all-files pi
```
* Mise en place du script de premier boot:
```bash
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/yunohost-firstboot -P /etc/init.d/
# Droit d'execution au script
chmod a+x /etc/init.d/yunohost-firstboot
# Execute le script au prochain boot
insserv /etc/init.d/yunohost-firstboot
```
* Mise en place du script boot promtp:
```bash
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.service -P /etc/systemd/system/
wget https://raw.githubusercontent.com/likeitneverwentaway/rpi_buildbot/master/boot_prompt.sh -P /usr/bin/
chmod a+x /usr/bin/boot_prompt.sh
systemctl enable boot_prompt.service
```
* Dites au script boot_promt que le prochain boot est le premier boot:
```bash
touch /etc/yunohost/firstboot
```
* Éteindre la carte:
```bash
shutdown
```
Ne pas oublier de reset le fichier **wpa-supplicant.conf** si vous l'avez modifié. Vous pouvez aussi supprimer l'historique des commandes avec
```bash
history -c
```
ou en éditant **/root/.bash_history**.
### Copie de l'image
Branchez la carte SD à votre ordinateur et faites en une copie:
<div class="alert alert-danger">Faites attention de ne pas supprimer vos données.</div>
```bash
sudo dd bs=1M if=/dev/sdd of=~/yunohost-jessie-board-year-month-day.img
```
Vous pouvez aussi utiliser la fonction **Read** de [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/).
### Verifer l' image
<a class="btn btn-lg btn-default" href="/copy_image_fr">Copier l'image sur la carte SD</a>
<a class="btn btn-lg btn-default" href="/plug_and_boot_fr">Plug & boot</a>
<a class="btn btn-lg btn-default" href="/postinstall_fr">Post-install</a>
<div class="alert alert-info">Si tous va bien, vous pouvez publiez votre image.</div>
### Publier l'image
* Reduire la taille en zippant l'image:
```bash
zip yunohost-jessie-board-year-month-day.img.zip yunohost-jessie-board-year-month-day.img
```
* Publication: vous pouvez publier l'image sur le [forum](https://forum.yunohost.org/).

View file

@ -1,70 +0,0 @@
# YunoHost Debian Packages
## Architecture
YunoHost packages are located on the yunohost.org workstation, in the `/home/yunohost/packages.git` folder.
Build system is based on debuild and pbuilder. It will generate a chroot, embedding every dependencies and Debian build tools.
Configuration is defined in the `/etc/pbuilder/megusta-amd64` file and allows to make packages without any specific architecture.
<div class="alert alert-info">
**Caution:** be advised not to be logged in as "root" to execute the following commands (except those starting with `sudo`).
</div>
## Package update
#### Packages with external sources
Packages based on GitHub sources (moulinette, moulinette-yunohost, ssowat, et yunohost-admin) require the latest modifications:
```bash
[yunohost@yunohost] ~/packages.git/moulinette $ cd src
[yunohost@yunohost] ~/packages.git/moulinette/src $ git pull
```
Then, start package build (**caution: you need to be located in the package root folder**):
```bash
[yunohost@yunohost] ~/packages.git/moulinette/src $ cd ..
[yunohost@yunohost] ~/packages.git/moulinette $ commit-and-build "Message de commit"
```
---
#### Configuration Packages
To update a yunohost-config-* package, move to the root folder, make your changes (for example: change a `debian/postinst` script), and type in the same command as for packages with sources:
```bash
[yunohost@yunohost] ~/packages.git/yunohost-config-nginx $ commit-and-build "Commit message"
```
The build command will update the Debian changelog (`debian/changelog`) and start the package creation. Once created, it will automatically added in the repository test`.
---
#### Update in a production environment
To add a package in the `megusta` (stable) (`debian/changelog`):
```bash
[yunohost@yunohost] ~/packages.git/monpaquet $ commit-and-build "Commit message" production
```
Once modifications are applied, you may execute `git push` to send your modifications to GitHub.
## Add a package to a repository manually
You can add Debian packages into the repository. NodeJS package is an example.
```bash
sudo reprepro -Vb /var/www/repo.yunohost.org/ includedeb repository_name package_name.deb
```
`repository_name` may be `test` or `megusta`.
## Delete a package from a repository
Delete a Debian package from a repository in order to empty the test repository for example:
```bash
sudo reprepro -Vb /var/www/repo.yunohost.org/ includedeb repository_name package_name
```
## TODO
Modify commit-build script to retrieve git commit messages and generate Debian changelog with `git-dch` command.

View file

@ -1,77 +0,0 @@
# Les paquets Debian YunoHost
## Architecture
Les paquets YunoHost se trouvent sur la machine yunohost.org dans le répertoire `/home/yunohost/packages.git`.
Le système de build est basé sur debuild et pbuilder. Le fonctionnement de cet ensemble est de générer un chroot qui va embarquer lensemble des dépendances et des outils de build Debian.
La configuration de cet environnement est définie dans le fichier `/etc/pbuilder/megusta-amd64` et permet de construire les paquets sans architecture spécifique.
<div class="alert alert-info">
**Attention :** il nest pas conseillé dêtre en root pour exécuter les actions suivantes (sauf celles précédées de `sudo`)
</div>
## Mise à jour dun paquet
<br>
#### Paquets avec sources externes
Pour les paquets basés sur des sources GitHub (moulinette, moulinette-yunohost, ssowat, et yunohost-admin), il faut dabord récupérer les dernières modifications :
```bash
[yunohost@yunohost] ~/packages.git/moulinette $ cd src
[yunohost@yunohost] ~/packages.git/moulinette/src $ git pull
```
Puis lancer la commande de build du paquet (**attention : vous devez la lancer à la racine du répertoire du paquet**)
```bash
[yunohost@yunohost] ~/packages.git/moulinette/src $ cd ..
[yunohost@yunohost] ~/packages.git/moulinette $ commit-and-build "Message de commit"
```
---
#### Paquets de configuration
Pour mettre à jour un paquet yunohost-config-* il faut se rendre dans le répertoire, faire les modifications voulues sur le paquet (typiquement modifier un script `debian/postinst`), puis lancer la même commande que pour les paquets avec source :
```bash
[yunohost@yunohost] ~/packages.git/yunohost-config-nginx $ commit-and-build "Message de commit"
```
La commande de build va mettre à jour le fichier changelog Debian (`debian/changelog`) et lancer la création du paquet. Une fois le paquet créé il est automatiquement ajouté dans le dépôt `test`.
---
#### Mettre à jour en production
Pour ajouter le paquet dans le dépôt de `megusta` (stable), il vous faudra exécuter la commande :
```bash
[yunohost@yunohost] ~/packages.git/monpaquet $ commit-and-build "Message de commit" production
```
Une fois les modifications effectuées, vous pouvez exécuter `git push` pour envoyer les modifications sur GitHub.
## Ajout manuel de paquets dans un dépôt
Il est possible dajouter directement des paquets Debian dans le dépôt, cest le cas notamment pour les paquets nodejs.
```bash
sudo reprepro -Vb /var/www/repo.yunohost.org/ includedeb nom_du_dépôt nom_du_paquet.deb
```
`nom_du_dépôt` peut être `test` ou `megusta`.
## Supprimer un paquet dun dépôt
Il est possible de supprimer des paquets Debian dans un dépôt, par exemple pour vider lensemble des paquets du dépôt test.
```bash
sudo reprepro -Vb /var/www/repo.yunohost.org/ includedeb nom_du_dépôt nom_du_paquet
```
## TODO
Modifier le script commit-build pour récupérer les messages de commit git et générer le changelog Debian avec la commande `git-dch`.

View file

@ -1,195 +0,0 @@
#Debian package creation
## Architecture
The system contains `rebuildd`, a front-end for `pbuilder`, some chroot pbuilder for i386, amd64, armhf and `reprepro` for debian repository system.
---
## Workflow
There is 3 repositories (`unstable`, `testing` & `stable`):
* Packages from `unstable` (aka `daily`) are the latest version from git and are build automatically every night.
* Packages from `testing` (aka `test`) allow to set up a new package version to be tested.
* Packages from `stable` (aka `megusta`) contains only production versions.
This workflow purpose is to avoid any manual interaction (script launch, ...) on your server and to focus on package management through Github only.
Thus, each yunohost package has three branches, matching the three repositories (`unstable`, `testing` et `stable`). The build server will **automatically** build and deploy Debian source packages and binaries into the corresponding state on Github
### Unstable branch
Commits to the unstable branch will not modify the `debian/changelog` file because it is automatically updated during daily builds with corresponding date and time.
Any commit that will alter a package behaviour need to be done to the `unstable` branch first.
**`TODO`** Add pre-commit hook to avoid errors ?
### Testing et stable branch - standard workflow
No commit can be done directly in those branches. You need to use merges (merge from `unstable` to `testing` & merge from `testing` to `stable`).
The only specific changes that occur on the repositories are version changes (modification of `debian/changelog`, then tag).
As a YunoHost application maintainer, you may find specific tools in the repository [yunohost-debhelper](https://github.com/YunoHost/yunohost-debhelper)
```bash
git clone https://github.com/YunoHost/yunohost-debhelper
yunohost-debhelper/setup_git_alias.sh
```
The previous instructions will configure a new git alias named `yunobump`. It is global and located at `~/.gitconfig`, therefore accessible through any local git repository.
<div class="alert alert-warning">
**Cauttion:** this helper `yunobump` only works for Ubuntu or Debian Jessie for the moment. You **need** to install `git` and `git-buildpackage` packages in order to make this helper work properly.
</div>
#### Without helper
1. Go into the repository you wish to build
2. Make sure `unstable` branch contains all modifications you wish to apply
3. Get the current version number: `head debian/changelog`
4. Move to the `testing` or `stable` branch
5. Merge or cherry-pick commits you want to insert into the `unstable` branch
6. Add to `debian/changelog` the corresponding commits messages (or use `git-dch` to do it automatically)
7. Tag the current branch (`testing` or `stable`) with the next superior value for version number
8. Push modifications **and tags** into GitHub repository
9. Go back to `unstable` branch
10. Merge changelog
11. Push `unstable` branch
#### With helper
```bash
# You Only Clone Once
$ git clone git@github.com:YunoHost/yunohost.git
$ cd yunohost
# Be sure to be up-to-date, and don't forget to get the tags !
$ git fetch --tags
# Checkout your branch: stable or testing
$ git checkout testing
# Do your 'functional' modifications: either merge unstable in testing, or merge testing in stable
$ git pull origin unstable
# Or just
$ git merge unstable
# What is the current version number in test?
$ dpkg-parsechangelog | grep "^Version" | cut -d ' ' -f 2
# Or just
$ head debian/changelog
# Update changelog and do a proper tag (explained below)
$ git yunobump x.y.z
# Push the branch state AND the tags to the remote repository
$ git push origin --tags testing:testing
# Merge changelog modifications to the `unstable` branch
$ git checkout unstable
$ git merge testing
$ git push origin unstable
```
**`TODO`** Tag format policy: actually $branch/$version to enable the same version into two different branches. Is it necessary?
**`TODO`** Under normal circumstances, every push to test or stable, the last commit will result in a changelog commit properly tagged. It should be possible to set a pre-push git hook that prevents from pushing unfinished work
#### Test and stable branches - hotfix
Exceptionally, you may hotfix (for security purposes for example) `stable` or `test` packages, leading to a merge into daily branch which is not acceptable (too much new features in development).
** This MUST remain exceptional **
**`TODO`** Describe
**`TODO`** Develop a 'git yunohotfix ...' helper that commit into stable and cherry-pick right away into daily? or the opposite?
#### Not YunoHost packages
« not-YunoHost » packages (`python-bottle` for example) don't go through `unstable` repository. Once package tests are completed, they need to be manually transferred into `backport` repository.
---
## Version number
So far, YunoHost global base version is **2**. The current convention for the version number is **2.x.x**.
The second section of the number string is incremented if a major functional change has occured: addition of a new functionality, modification of a behaviour. For now, all packages are versionned **2.1.x**.
The third section of the number string is incremented if a bugfix or a minor functional change has occured. For example, you may currently find **2.1.3** or **2.1.5** packages
A fourth section is dedicated for exceptional cases like bugfixes in stable branch. In this case, we want to pass on a unique change directly into stable branch, therefore we add **-x** to the number string. This may result into something like this: **2.1.3-1**.
---
## Packages management
#### Daily build
A cron task defined for `pbuilder` user is executed **every day at 01:00**. The script will update the `packages` git repository and submodules (`ssowat`, `moulinette`, `yunohost` & `yunohost-admin`).
Once sources are up to date, the script will rebuild packages that have been updated the day.
Sources packages will then need to be created and moved into `/var/www/repo.yunohost.org/daily/incomming` folder.
Launch source file addition to the repository. This will automatically launch a `rebuildd` job (see daily repository configuration: `/var/www/repo.yunohost.org/daily/conf/distribustion`).
Once packages are built, they are added to the `unstable` repository.
#### (Re)build a YunoHost package
You may manualy launch a package build by typing:
```bash
$ daily_build -p package_name
```
#### Build a not YunoHost package
```bash
$ build_deb /path/of/package
```
**`TODO`** Describe : need to bump the version to pass from test to stable
### Passing from `daily` to `test`
```bash
$ push-packages-test -p package_name
```
You may add the `-v` argument to manually define the package version.
The script will get the `daily` sources package and define the version and changelist into the changelog. Build package will be added to the rebuildd jobs list that will pass everything to the `test` repository.
**Attention :** Version name must not contain `daily` otherwise the package will be added to the `daily` repository.
### Passing from `test` to `stable`
```bash
$ push-package-stable -p package_name
```
The previous command only passes the package from `test` to `stable` repository, without rebuild.
### Repository management with `reprepro`
* Delete a package
```bash
$ reprepro -V -b /var/www/repo.yunohost.org/repo_name/ remove megusta package_name
```
* Add a Debian package into a repository
```bash
$ reprepro -V -b /var/www/repo.yunohost.org/repo_name/ includedeb megusta package_name.deb
```
### Backports management
Packages from backports repository can be quickly into Yunohost `test` repository.
To do so, you need to add the package name into the `/var/www/repo.yunohost.org/test/conf/list` file and type in the following command:
```bash
$ reprepro -V -b /var/www/repo.yunohost.org/test update megusta
```
Now packages will be downloaded and added to `test` repository.

View file

@ -1,258 +0,0 @@
# Système de construction des paquets
## Dépôts
Tout dabord, aussi bien au niveau des dépôts que des paquets YunoHost, il faut savoir quil y a trois *composants* (`unstable`, `testing` et `stable`) :
* `unstable` correspondent à la dernière version du dépôt git sur la branche `unstable`, et sont reconstruits de façon automatisée toutes les nuits sil y a eu une modification sur la cette branche.
* `testing` permet de mettre en place une nouvelle version dun paquet qui sera ensuite testée.
* `stable` contient la version de production.
Le terme *composant* vient de la façon dont les dépôts sont configurés. Afin de se rapprocher de la façon dont les dépôts sont structurés dans Debian, lentrée à ajouter dans les sources APT se construit ainsi :
```bash
deb http://repo.yunohost.org/debian/ nom_de_code composant [composant...]
```
Avec *nom_de_code* la « version » de Debian installée sur lhôte (ex. : `jessie`). Pour les composants, il est nécessaire de spécifier au moins `stable`, puis les différents intermédiaires. Par exemple, sur un système sous Debian Jessie, voici les différentes possibilités :
```bash
# composant stable
deb http://repo.yunohost.org/debian/ jessie stable
# composant testing
deb http://repo.yunohost.org/debian/ jessie stable testing
# composant unstable
deb http://repo.yunohost.org/debian/ jessie stable testing unstable
```
## Workflow
Le but du workflow est déviter toute intervention manuelle (lancement dun script, etc.) sur le serveur, et de maîtriser la gestion des paquets via GitHub uniquement.
Ainsi, les dépôts de chaque paquet yunohost possèdent trois branches correspondant aux trois composants (`unstable`, `testing` et `stable`). Le serveur de build construit et déploie **automatiquement** les paquets sources et binaires Debian correspondant à létat de ces trois branches sur GitHub.
### Branche unstable
Aucun commit dans la branche unstable ne modifie le fichier `debian/changelog` car celui-ci est modifié automatiquement lors du build quotidien, avec une version correspondant à la date/heure de construction.
Tout commit modifiant fonctionnellement les paquets doit se faire dabord dans cette branche `unstable`.
**TODO** ajouter un pre-commit hook pour éviter les erreurs?
### Branche testing et stable - workflow standard
Aucun commit fonctionnel nest effectué directement dans ces branches. On ne fait que des merges (merge de `unstable` dans `testing` et merge de `testing` dans `stable`).
Les seules modifications spécifiques à ces dépôts sont les changements de versions (modification de `debian/changelog`, puis tag).
Des outils à destination des mainteneurs de paquets sont disponibles sur le dépôt [yunohost-debhelper](https://github.com/YunoHost/yunohost-debhelper)
```bash
git clone https://github.com/YunoHost/yunohost-debhelper
yunohost-debhelper/setup_git_alias.sh
```
Ceci va configurer un nouvel alias git nommé `yunobump`, global (stocké dans `~/.gitconfig` et donc accessible depuis nimporte quel dépôt git local).
<div class="alert alert-warning">
**Attention :** pour le moment ce helper `yunobump` ne fonctionne que sous Ubuntu ou Debian Jessie. Vous **devez** installer les paquets `git` et `git-buildpackage` pour que le helper fonctionne correctement.
</div>
#### Sans helper
1. Rendez-vous dans le repo du paquet que vous voulez builder
2. Assurez-vous que la branche `unstable` contient toutes les modifications que vous voulez intégrer dans votre build
3. Récupérez le numéro de version actuel : `head debian/changelog`
4. Rendez-vous sur la branche `testing` ou `stable`
5. Mergez ou cherry-pickez les commits que vous voulez intégrer à la version depuis la branche `unstable`
6. Modifiez le `debian/changelog` en intégrant les messages de commits correspondant aux modifications que vous avez intégrées (ou utilisez `git-dch` pour le faire automatiquement)
7. Taguez la branche actuelle (`testing` ou `stable`) du numéro de version juste supérieur à lactuel
8. Pushez vos modifications **ainsi que vos tags** sur le repo GitHub
9. Retournez sur la branche `unstable`
10. Mergez le changelog mis à jour précédemment
11. Pushez la branche `unstable`
#### Avec helper
```bash
# You Only Clone Once
$ git clone git@github.com:YunoHost/yunohost.git
$ cd yunohost
# Be sure to be up-to-date, and don't forget to get the tags !
$ git fetch --tags
# Checkout your branch : stable or testing
$ git checkout testing
# Do your 'functional' modifications: either merge unstable in testing, or merge testing in stable
$ git pull origin unstable
# Or just
$ git merge unstable
# What is the current version number in test ?
$ dpkg-parsechangelog | grep "^Version" | cut -d ' ' -f 2
# Or just
$ head debian/changelog
# Update changelog and do a proper tag (explained below)
$ git yunobump x.y.z
# Push the branch state AND the tags to the remote repository
$ git push origin --tags testing:testing
# Merge changelog modifications to the `unstable` branch
$ git checkout unstable
$ git merge testing
$ git push origin unstable
```
**TODO** politique sur les formats de tag, actuellement $branch/$version pour autoriser la même version dans deux branches différentes. Est-ce vraiment souhaitable?
**TODO** normalement à chaque push sur test ou stable, le dernier commit est un commit de changelog et il est tagué proprement. On doit pouvoir implémenter un hook git de pre-push qui empêche de pousser des trucs à moitié faits (une erreur dans git yunobump, un git tag -d, un commit à la main...)
#### Branche test et stable - faire un hotfix
Il peut arriver, de façon exceptionnelle, quon ait besoin de faire un hotfix (de sécurité par exemple) sur les paquets en `stable` ou en `test`, pour lequel le merge de la branche daily nest pas acceptable (car trop de nouvelles fonctionnalités en développement sur daily).
**Cette situation doit rester exceptionnelle**
Pour faire un hotfix, il faut donc travailler sur la branche `stable` directement. Une fois la correction effectuée et commitée, il faut immédiatement créer la release stable avec l'outil yunobump (Voir les sections XX et "Numéros de version").
Ensuite, il faut appliquer ce hotfix aux branches `testing` et `unstable`. Il est fortement conseillé de l'appliquer immédiatement après avoir créer la release stable.
Pour cela, passer sur la branche `testing` et merger la branche `stable`; Un "commit de merge" doit etre réalisé. L'historique de la branche `testing` doit donc ressembler à :
```bash
456def Merge branch 'stable' into testing
123abc Hotfix commit message.
```
Puis passer dans la branche `unstable` et merger la branche `testing`. Un nouveau commit de merge est réalisé, l'historique de la branche unstable ressemble donc à :
```bash
789ghi Merge branch 'testing' into unstable
456def Merge branch 'stable' into testing
123abc Hotfix commit message.
```
**TODO** dev un helper 'git yunohotfix...' qui commit dans stable et cherry-pick tout de suite dans daily? ou linverse?
#### Publier une release testing ou stable
Pour l'instant, on passe par une release via GitHub pour déclencher le build du paquet.
Aller sur https://github.com/YunoHost/{moulinette, yunohost, yunohost-admin, ssowat}/releases/new
1/ Choisir la branche cible en premier (testing ou stable).
Ex: "target: Testing"
2/ Choisir le tag concerné, généralement le dernier
Ex: "debian/2.4.1"
3/ Release title: "v2.4.1" ("v" + le numéro de version)
4/ Commentaire
Reprendre le changelog depuis `debian/changelog`. Remercier les contributeurs/traducteurs
( Pour voir le dernier commit : `git show HEAD` )
#### Paquets non YunoHost
Pour les paquets « non-YunoHost » (par exemple `rspamd`) le paquet ne passe pas par le composant `unstable`, mais uniquement `testing` et `stable` une fois les tests effectués sur ce paquet.
## Numéros de version
La version dun paquet YunoHost est sous la forme : ``X.x.y[.z]``.
La première partie, ``X``, correspond à la version majeure de YunoHost, actuellement **2**.
La deuxième partie, ``x``, sincrémente lors dun changement fonctionnel important : ajout dune nouvelle fonctionnalité, modification dune façon de fonctionner... Les chiffres pairs correspondent à une version ``stable`` (ex. : **2.4.x**), tandis que les chiffres impairs à une version ``testing``.
La troisième partie, ``y``, sincrémente quasi-arbitrairement, lors dun lot de bugfixes ou dun changement fonctionnel mineur. On peut trouver par exemple des paquets en **2.1.3** ou **2.1.5**.
Enfin, une quatrième partie, ``z``, est réservée dans les cas exceptionnels de bugfix. Dans ce cas, on veut faire passer un changement unique, généralement directement dans la branche ``stable`` (voir la partie sy rapportant). Cela donne, par exemple, **2.1.3.1**.
Note : les paquets de YunoHost étant natif pour Debian (dans le sens où nous gérons directement le *packaging* Debian avec le paquet), il ny a pas de révision Debian dans le numéro de version (caractérisé par **-debian_revision**). Pour plus de détails sur les numéros de version, voir le [Debian Policy Manual](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version).
## Gestion des paquets
### Outils et méthode
#### Logiciels et scripts utilisés
Les principaux logiciels utilisés pour la gestion et construction des paquets sont les suivants :
* [reprepro](https://mirrorer.alioth.debian.org/) : gérer localement un dépôt de paquets Debian
* [rebuildd](https://julien.danjou.info/projects/rebuildd) : reconstruire des paquets Debian, avec un historique, une interface Web,...
Pour plus de flexibilité, *rebuildd* délègue la construction du paquet à [pbuilder](https://pbuilder.alioth.debian.org/). Ce dernier permet notamment davoir différents environnements, architectures...
Enfin, pour gérer au mieux ces outils, deux scripts ont été développés, stockés dans `/usr/local/bin` :
* `daily_build` : construire un ou tous les paquets YunoHost dans le composant **unstable** uniquement
* `build_deb` : construire un paquet Debian depuis un répertoire, dans un composant et un nom de code donné
À noter également que dautres scripts ont été faits pour *rebuildd* et *reprepro*, afin notamment de faire le pont entre les deux. Ils se trouvent dans `/usr/local/bin/{rebuildd,reprepro}`.
#### Déroulement de la construction dun paquet
Tout est déclenché par *reprepro*, configuré (voir `/var/www/repo/debian/conf/distribution`) pour exécuter le script `/usr/local/bin/repo/process-include` chaque fois quun paquet est inclus dans un dépôt (plus précisément, quun fichier `.changes` est inclus, via la commande `reprepro include`). Ce dernier va vérifier un certain nombre de choses, dont le fait quil sagit bien dun paquet source, puis va ajouter une nouvelle tâche pour *rebuildd*, afin que le paquet soit créé.
Lorsque la tâche est reçue par *rebuildd*, si le paquet correspond bien à une distribution et architecture supportée (voir `/etc/rebuildd/rebuilddrc`), trois scripts seront exécutés les uns après les autres, si aucune erreur nintervient :
1. `/usr/local/bin/rebuildd/get-sources` : récupération des sources depuis le dépôt local pour le paquet et la version demandée
2. `/usr/local/bin/rebuildd/build-binaries` : construction du paquet via *pbuilder* et lenvironnement correspondant à la distribution et larchitecture
3. `/usr/local/bin/rebuildd/upload-binaries` : ajout du paquet binaire précédemment créé à *reprepro* dans le bon dépôt et composant
### Utilisation de daily\_build
Un cron défini pour lutilisateur `pbuilder` se lance **tous les jours à 01:00**, qui exécute le script `daily_build`. Pour chaque paquet (`ssowat`, `moulinette`, `yunohost` et `yunohost-admin`), le script met dabord à jour le dépôt git correspondant depuis la branche *unstable*. Si de nouveaux commits ont été faits depuis la veille, une nouvelle version du paquet sera construite.
Plus précisément, une nouvelle entrée dans le *changelog* sera dabord ajoutée, avec une version sous la forme **YYYY.MM.DD+HHMM**. Un paquet source sera ensuite construit, avant de passer le relais au script `/usr/local/bin/repo/include-changes`. Ce dernier va exécuter les bonnes commandes pour *reprepro* afin dinclure dans le bon dépôt et composant le paquet source fraîchement créé.
#### (Re)build dun paquet YunoHost
Il est possible de relancer manuellement le build dun paquet :
```bash
$ daily_build -p <nom_du_paquet>
```
Il est aussi possible dutiliser une branche autre que *unstable* :
```bash
$ daily_build -p <nom_du_paquet> -b <branch>
```
*Notez bien que ce script permet uniquement de construire des paquets dans le composant **unstable**! *
### Utilisation de build\_deb
Ce script permet de construire un paquet Debian quelconque, et de linclure dans un dépôt donné. Il est notamment utilisé pour construire les paquets `rspamd` et `rmilter`. Une fois le paquet source récupéré et extrait, il suffit de lancer la commande suivante :
```bash
$ build_deb -c distribution -d <composant> /chemin/du/paquet/source
```
### Gestion du dépôt
#### Lister les paquets
```bash
$ reprepro -V -b /var/www/repo/debian -C <composant> list <nom_de_code>
```
#### Suppression dun paquet
```bash
$ reprepro -V -b /var/www/repo/debian -C <composant> remove <nom_de_code> nom_du_paquet
```
#### Gestion des backports
Pour la gestion des paquets venant du dépôt backport, il est possible de les intégrer rapidement dans le dépôt de yunohost.
Pour ce faire il faut ajouter le nom du paquet dans le fichier `/var/www/repo/debian/conf/<nom_de_code>-<composant>.list`, puis exécuter la commande :
```bash
$ reprepro -V -b /var/www/repo/debian -C <composant> update <nom_de_code>
```

View file

@ -1,21 +1,38 @@
# Copy ISO image # Flashing YunoHost ISO on a USB key or CD/DVD
Now that you have the ISO image of YunoHost, you have to put it on a physical medium: **USB key** or **CD/DVD** Now that you have the ISO image of YunoHost, you have to put it on a physical medium: **USB key** or **CD/DVD**
<img src="/images/usb_key.png"> <img src="/images/usb_key.png" width=150>
<img src="/images/cd.jpg" width=200> <img src="/images/cd.jpg" width=150>
--- ---
## USB key ## USB key
Download <a href="http://unetbootin.sourceforge.net/" target="_blank">UnetBootin</a> for your operating system and install it. ### With Etcher
Download <a href="https://etcher.io/" target="_blank">Etcher</a> for your operating system and install it.
<img src="/images/etcher.gif">
Put your USB key on, select your YunoHost ISO and click "Flash"
### With UNetbootin
Download <a href="https://unetbootin.github.io/">UNetbootin</a> for your operating system and install it.
<img src="/images/unetbootin.png"> <img src="/images/unetbootin.png">
Put your USB key on, select your YunoHost ISO and click "OK" Put your USB key on, select your YunoHost ISO and click "OK"
### With `dd`
If you know your way around command line, you may also flash your USB key with
`dd`. Assuming your USB key is `/dev/sdb` (be careful !!), you may run :
```bash
dd if=/path/to/yunohost.iso of=/dev/sdb
```
--- ---

View file

@ -1,20 +1,39 @@
# Copier limage ISO # Flasher l'ISO YunoHost sur une clef USB ou un CD/DVD
Maintenant que vous avez limage ISO de YunoHost, vous devez la mettre sur un support physique : **Clé USB** ou **CD/DVD** Maintenant que vous avez téléchargé limage ISO de YunoHost, vous devez la mettre sur un support physique : une **Clé USB** ou un **CD/DVD**.
<img src="/images/usb_key.png"> <img src="/images/usb_key.png" width=150>
<img src="/images/cd.jpg" width=200> <img src="/images/cd.jpg" width=150>
--- ---
## Clé USB ## Clé USB
Téléchargez la version d<a href="http://unetbootin.sourceforge.net/" target="_blank">UnetBootin</a> pour votre système dexploitation et installez-la. ### Avec Etcher
Téléchargez <a href="https://etcher.io/" target="_blank">Etcher</a> pour votre système d'exploitation et installez-le.
<img src="/images/etcher.gif">
Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'Flash'
### Avec UNetbootin
Téléchargez <a href="https://unetbootin.github.io/">UNetbootin</a> pour votre système d'exploitation et installez-le.
<img src="/images/unetbootin.png"> <img src="/images/unetbootin.png">
Insérez votre clé USB, sélectionnez limage ISO YunoHost et cliquez sur **OK**. Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'OK'
### Avec `dd`
Si vous êtes familier avec la ligne de commande, il est possible de flasher la
clef USB avec `dd`. En supposant que votre clef USB soit `/dev/sdb` (faites
attention !!), vous pouvez exécuter :
```bash
dd if=/chemin/de/yunohost.iso of=/dev/sdb
```
--- ---

View file

@ -1,121 +1,92 @@
#Certificate # Certificate
Certificates are used to certify that your server is the genuine one and not a falsified one. Certificates are used to certify that your server is the genuine one, and not an attacker trying to impersonate it.
YunoHost provides a **self-signed** certificate, it means that your server guaranty the certificate validity. It's enough **for personal usage**, because you trust your own server. But this could be a problem if you want to open access to anonymous like web user for a website. YunoHost provides a **self-signed** certificate, it means that your server guaranties the certificate validity. It's enough **for personal usage**, because you trust your own server. But this could be a problem if you want to open access to anonymous like web user for a website.
Concretely users will go throw a screen like this:
In practice, visitors will see a screen list this:
<img src="/images/postinstall_error.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"> <img src="/images/postinstall_error.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
This screen ask to the user : **"Do you trust this server that host this website?"** Which basically asks the visitor : **"Do you trust the server hosting this website?"**. This can rightfully frighten a lot of people.
It could afraid a lot of users (rightly).
To avoid this confusion, it's possible to get a signed certificate by a "known" authority : **Gandi**, **RapidSSL**, **StartSSL**, **CaCert**. To avoid this confusion, it's possible to get a certificate signed a known
In these cases, the point is to replace the self-signed certificate with the one that has been certified by a certificate authority, and the users won't have this warning screen anymore. authority named **Let's Encrypt** which provide free certificates directly
recognized by browsers. YunoHost allows to directly install this certificate
from the web administration interface or from the command line.
### Add a signed certificate by an authority ### Install a Let's Encrypt certificate
Get your certificate from your CA, you must get a private key, file key and a public certificate (file .crt) Before attempting to install a Let's Encrypt certificate, you should make sure
> Be carefull, the key file is very critical, it's strictly personal and have to be secured. that your DNS is correctly configured (votre.domaine.tld should point to
your server's IP) and that your domain is accessible though HTTP from outside
your local network (i.e. at least port 80 should be forwarded to your server).
Copy this two files on the server, if not. #### From the web administration 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 :
![](./images/domain-certificate-button.png)
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.
![](./images/certificate-before-LE.png)
If your domain is correctly configured, it is then possible to install the
Let's Encrypt certificate via the green button.
![](./images/certificate-after-LE.png)
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.
![](./images/certificate-signed-by-LE.png)
#### From the command line interface
Connect to your server through SSH.
You can check the status of your current certificate with :
```bash ```bash
scp CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt yunohost domain cert-status your.domain.tld
scp CLE.key admin@DOMAIN.TLD:ssl.key
``` ```
From Windows, scp can be used with putty, download [pscp](http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe) Install a Let's Encrypt certificate with
```bash ```bash
pscp -P 22 CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt yunohost domain cert-install your.domain.tld
pscp -P 22 CLE.key admin@DOMAIN.TLD:ssl.key``` ```
Now the files are in the server. Open a shell on the server use [ssh](https://yunohost.org/#/ssh_fr) or locally. This should return :
First, create a directory for archive the certificates.
```bash ```bash
sudo mkdir /etc/yunohost/certs/DOMAIN.TLD/ae_certs Success! The SSOwat configuration has been generated
sudo mv ssl.key ssl.crt /etc/yunohost/certs/DOMAIN.TLD/ae_certs/``` Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD!
```
Then go to the parent directory and go on. 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.
##### 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 :
```bash ```bash
cd /etc/yunohost/certs/DOMAIN.TLD/``` yunohost domain cert-install your.domain.tld --self-signed --force
```
Make a backup of the YunoHost original certificates , to be safe! If YunoHost thinks that your domain is badly configured despite the fact that
you checked the DNS configuration and you have access in HTTP to your server
from outside your local network, then you can :
```bash - add a line `127.0.0.1 your.domain.tld` to the file `/etc/hosts` on your server ;
sudo mkdir yunohost_self_signed - if the certificate installation still doesn't work, you can disable the checks with `--no-checks` after the `cert-install` command.
sudo mv *.pem *.cnf yunohost_self_signed/```
Depends on the CA, intermediate certificates and root have to be downloaded.
> **StartSSL**
> ```bash
> sudo wget http://www.startssl.com/certs/ca.pem -O ae_certs/ca.pem
> sudo wget http://www.startssl.com/certs/sub.class1.server.ca.pem -O ae_certs/intermediate_ca.pem```
> **Gandi**
> ```bash
> sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA.pem -O ae_certs/intermediate_ca.pem```
> **RapidSSL**
> ```bash
> sudo wget https://knowledge.rapidssl.com/library/VERISIGN/INTERNATIONAL_AFFILIATES/RapidSSL/AR1548/RapidSSLCABundle.txt -O ae_certs/intermediate_ca.pem```
> **Cacert**
> ```bash
> sudo wget http://www.cacert.org/certs/root.crt -O ae_certs/ca.pem
> sudo wget http://www.cacert.org/certs/class3.crt -O ae_certs/intermediate_ca.pem```
Intermediate certificates and root must be merged with certificates obtained to create a unified chain certificates.
```bash
cat ae_certs/ssl.crt ae_certs/intermediate_ca.pem ae_certs/ca.pem | sudo tee crt.pem```
The private key have to be converted in PEM format.
```bash
sudo openssl rsa -in ae_certs/ssl.key -out key.pem -outform PEM```
Check certificates syntaxe, check file contents.
```bash
cat crt.pem key.pem```
Certificates and private key look like this :
`-----BEGIN CERTIFICATE-----`
`MIICVDCCAb0CAQEwDQYJKoZIhvcNAQEEBQAwdDELMAkGA1UEBhMCRlIxFTATBgNV`
`BAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExC`
`MREwDwYDVQQLEwhCVFMgSU5GTzEbMBkGA1UEAxMSc2VydmV1ci5idHNpbmZvLmZy`
`MB4XDTA0MDIwODE2MjQyNloXDTA0MDMwOTE2MjQyNlowcTELMAkGA1UEBhMCRlIx`
`FTATBgNVBAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UE`
`ChMDTExCMREwDwYDVQQLEwhCVFMgSU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZv`
`LmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12`
`kSbN/NWP0QUiPlksOkF2NkPfwW/mf55dD1hSndlOM/5kLbSBo5ieE3TgikF0Iktj`
`BWm5xSqewM5QDYzXFt031DrPX63Fvo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLW`
`wc0BzEgFZGGw7wiMF6wt5QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALD640iwKPMf`
`pqdYtfvmLnA7CiEuao60i/pzVJE2LIXXXbwYjNAM+7Lov+dFT+b5FcOUGqLymSG3`
`kSK6OOauBHItgiGI7C87u4EJaHDvGIUxHxQQGsUM0SCIIVGK7Lwm+8e9I2X0G2GP`
`9t/rrbdGzXXOCl3up99naL5XAzCIp6r5`
`-----END CERTIFICATE-----`
At last, secure files of your certificate
```bash
sudo chown root:metronome crt.pem key.pem
sudo chmod 640 crt.pem key.pem
sudo chown root:root -R ae_certs
sudo chmod 600 -R ae_certs```
Reload Nginx configuration to take into account the new certificate.
```bash
sudo service nginx reload```
Your certificate is ready to serve. You can check that every thing is correct byan external service like <a href="https://www.geocerts.com/ssl_checker" target="_blank">geocerts</a>

117
certificate_custom_fr.md Normal file
View file

@ -0,0 +1,117 @@
**Note :** depuis la version 2.5, Yunohost intègre la gestion automatisée de certificats Let's Encrypt. Vous pouvez donc facilement et gratuitement [installer un certificat Let's Encrypt](certificate_fr). Le document suivant décrit la méthodologie pour installer un certificat, payant, d'une autre autorité de certification (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**).
### Ajout dun certificat signé par une autorité (autre que Let's Encrypt)
Après création du certificat auprès de votre autorité denregistrement, vous devez être en possession dune clé privée, le fichier key et dun certificat public, le fichier crt.
> Attention, le fichier key est très sensible, il est strictement personnel et doit être très bien sécurisé.
Ces deux fichiers doivent être copiés sur le serveur, sils ne sy trouvent pas déjà.
```bash
scp CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt
scp CLE.key admin@DOMAIN.TLD:ssl.key
```
Depuis Windows, scp est exploitable avec putty, en téléchargeant loutil [pscp](http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe)
```bash
pscp -P 22 CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt
pscp -P 22 CLE.key admin@DOMAIN.TLD:ssl.key
```
Dès lors que les fichiers sont sur le serveur, le reste du travail se fera sur celui-ci. En [ssh](https://yunohost.org/#/ssh_fr) ou en local.
Tout dabord, créez un dossier pour stocker les certificats obtenus.
```bash
sudo mkdir /etc/yunohost/certs/DOMAIN.TLD/ae_certs
sudo mv ssl.key ssl.crt /etc/yunohost/certs/DOMAIN.TLD/ae_certs/
```
Puis allez dans le dossier parent pour poursuivre.
```bash
cd /etc/yunohost/certs/DOMAIN.TLD/
```
Faites une sauvegarde des certificats dorigine de yunohost, par précaution.
```bash
sudo mkdir yunohost_self_signed
sudo mv *.pem *.cnf yunohost_self_signed/
```
En fonction de lautorité denregistrement, des certificats intermédiaires et racines doivent être obtenus.
> **StartSSL**
> ```bash
> sudo wget http://www.startssl.com/certs/ca.pem -O ae_certs/ca.pem
> sudo wget http://www.startssl.com/certs/sub.class1.server.ca.pem -O ae_certs/intermediate_ca.pem
>```
> **Gandi**
> ```bash
> sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA2.pem -O ae_certs/intermediate_ca.pem
>```
> **RapidSSL**
> ```bash
> sudo wget https://knowledge.rapidssl.com/library/VERISIGN/INTERNATIONAL_AFFILIATES/RapidSSL/AR1548/RapidSSLCABundle.txt -O ae_certs/intermediate_ca.pem
>```
> **Cacert**
> ```bash
> sudo wget http://www.cacert.org/certs/root.crt -O ae_certs/ca.pem
> sudo wget http://www.cacert.org/certs/class3.crt -O ae_certs/intermediate_ca.pem
>```
Les certificats intermédiaires et root doivent être réunis avec le certificat obtenu pour créer une chaîne de certificats unifiés.
```bash
cat ae_certs/ssl.crt ae_certs/intermediate_ca.pem ae_certs/ca.pem | sudo tee crt.pem
```
La clé privée doit être, elle, convertie au format pem.
```bash
sudo openssl rsa -in ae_certs/ssl.key -out key.pem -outform PEM
```
Afin de sassurer de la syntaxe des certificats, vérifiez le contenu des fichiers.
```bash
cat crt.pem key.pem
```
Les certificats et la clé privée doivent ressembler à cela :
`-----BEGIN CERTIFICATE-----`<br/>
`MIICVDCCAb0CAQEwDQYJKoZIhvcNAQEEBQAwdDELMAkGA1UEBhMCRlIxFTATBgNV`<br/>
`BAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExC`<br/>
`MREwDwYDVQQLEwhCVFMgSU5GTzEbMBkGA1UEAxMSc2VydmV1ci5idHNpbmZvLmZy`<br/>
`MB4XDTA0MDIwODE2MjQyNloXDTA0MDMwOTE2MjQyNlowcTELMAkGA1UEBhMCRlIx`<br/>
`FTATBgNVBAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UE`<br/>
`ChMDTExCMREwDwYDVQQLEwhCVFMgSU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZv`<br/>
`LmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12`<br/>
`kSbN/NWP0QUiPlksOkF2NkPfwW/mf55dD1hSndlOM/5kLbSBo5ieE3TgikF0Iktj`<br/>
`BWm5xSqewM5QDYzXFt031DrPX63Fvo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLW`<br/>
`wc0BzEgFZGGw7wiMF6wt5QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALD640iwKPMf`<br/>
`pqdYtfvmLnA7CiEuao60i/pzVJE2LIXXXbwYjNAM+7Lov+dFT+b5FcOUGqLymSG3`<br/>
`kSK6OOauBHItgiGI7C87u4EJaHDvGIUxHxQQGsUM0SCIIVGK7Lwm+8e9I2X0G2GP`<br/>
`9t/rrbdGzXXOCl3up99naL5XAzCIp6r5`<br/>
`-----END CERTIFICATE-----`
Enfin, sécurisez les fichiers de votre certificat.
```bash
sudo chown root:metronome crt.pem key.pem
sudo chmod 640 crt.pem key.pem
sudo chown root:root -R ae_certs
sudo chmod 600 -R ae_certs
```
Rechargez la configuration de nginx pour prendre en compte le nouveau certificat.
```bash
sudo service nginx reload
```
Votre certificat est prêt à servir. Vous pouvez toutefois vous assurez de sa mise en place en testant le certificat à laide du service de <a href="https://www.geocerts.com/ssl_checker" target="_blank">geocerts</a>.

View file

@ -3,120 +3,92 @@
Un certificat est utilisé pour garantir la confidentialité des échanges entre votre serveur et votre client. Un certificat est utilisé pour garantir la confidentialité des échanges entre votre serveur et votre client.
YunoHost fournit par défaut un certificat **auto-signé**, ce qui veut dire que cest votre serveur qui garantit la validité du certificat. Cest suffisant **pour un usage personnel**, car vous pouvez avoir confiance en votre serveur, en revanche cela posera problème si vous comptez ouvrir laccès à votre serveur à des anonymes, par exemple pour héberger un site web. YunoHost fournit par défaut un certificat **auto-signé**, ce qui veut dire que cest votre serveur qui garantit la validité du certificat. Cest suffisant **pour un usage personnel**, car vous pouvez avoir confiance en votre serveur, en revanche cela posera problème si vous comptez ouvrir laccè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 : En effet, les utilisateurs devront passer par un écran de ce type :
<img src="/images/postinstall_error.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"> <img src="/images/postinstall_error.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
Cet écran revient à demander **« Avez-vous confiance au serveur qui héberge ce site? »**. Cet écran revient à demander **« Avez-vous confiance au serveur qui héberge ce site? »**.
Cela peut effrayer vos utilisateurs (à juste titre). Cela peut effrayer vos utilisateurs (à juste titre).
Pour éviter cette confusion, il est possible dobtenir un certificat signé par une autorité « connue » : **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**. Pour éviter cette confusion, il est possible dobtenir un certificat, reconnu directement par les navigateurs, signé par une autorité « connue » : **Let's Encrypt**, **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**.
Dans ce cas, il sagira de remplacer le certificat auto-signé par celui qui a été reconnu par une autorité de certification, et vos utilisateurs nauront plus à passer par cet écran davertissement.
### Ajout dun certificat signé par une autorité **Let's Encrypt** propose des certificats gratuits. Depuis la version 2.5, YunoHost permet d'installer directement un tel certificat depuis l'interface d'administration ou la ligne de commande. La suite du document détaille l'installation et la gestion d'un tel certificat. Vous pouvez également [installer un certificat d'une autre autorité que Let's Encrypt](/certificate_custom_fr).
Après création du certificat auprès de votre autorité denregistrement, vous devez être en possession dune clé privée, le fichier key et dun certificat public, le fichier crt. ### Installer un certificat Let's Encrypt
> Attention, le fichier key est très sensible, il est strictement personnel et doit être très bien sécurisé.
Ces deux fichiers doivent être copiés sur le serveur, sils ne sy trouvent pas déjà. Avant de chercher à installer un certificat Let's Encrypt, assurez vous que
votre DNS est correctement configuré (votre.domaine.tld doit pointer sur l'IP
de votre serveur) et que votre site est accessible en HTTP depuis l'extérieur
(i.e. qu'au moins le port 80 est correctement redirigé vers votre serveur).
#### Via l'interface d'administration web
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'.
![](./images/domain-certificate-button-fr.png)
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é.
![](./images/certificate-before-LE-fr.png)
Si votre domaine est correctement configuré, il vous est alors possible de
passer à un certificat Let's Encrypt via le bouton vert.
![](./images/certificate-after-LE-fr.png)
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.
![](./images/certificate-signed-by-LE.png)
#### Via la ligne de commande
Connectez-vous sur votre serveur en SSH.
Vous pouvez vérifier le statut actuel de votre certificat via
```bash ```bash
scp CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt yunohost domain cert-status votre.domaine.tld
scp CLE.key admin@DOMAIN.TLD:ssl.key
``` ```
Depuis Windows, scp est exploitable avec putty, en téléchargeant loutil [pscp](http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe) Installez le certificat Let's Encrypt via
```bash ```bash
pscp -P 22 CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt yunohost domain cert-install votre.domaine.tld
pscp -P 22 CLE.key admin@DOMAIN.TLD:ssl.key``` ```
Dès lors que les fichiers sont sur le serveur, le reste du travail se fera sur celui-ci. En [ssh](https://yunohost.org/#/ssh_fr) ou en local. Cette commande doit retourner :
Tout dabord, créez un dossier pour stocker les certificats obtenus.
```bash ```bash
sudo mkdir /etc/yunohost/certs/DOMAIN.TLD/ae_certs Success! The SSOwat configuration has been generated
sudo mv ssl.key ssl.crt /etc/yunohost/certs/DOMAIN.TLD/ae_certs/``` Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD!
```
Puis allez dans le dossier parent pour poursuivre. 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.
##### En cas de problème
Si suite à une mauvaise manipulation, un certificat se retrouve dans une
situation fâcheuse (e.g. perte du certificat ou impossible de lire le
certificat), il est possible de repartir sur des bases propres en regénérant un
certificat auto-signé :
```bash ```bash
cd /etc/yunohost/certs/DOMAIN.TLD/``` yunohost domain cert-install votre.domaine.tld --self-signed --force
```
Faites une sauvegarde des certificats dorigine de yunohost, par précaution. Si YunoHost trouve que votre domaine est mal configuré quand bien même vous
avez bien vérifié votre configuration DNS et avez bien accès à votre serveur en
HTTP depuis l'extérieur, vous pouvez tenter :
```bash - d'ajouter une ligne `127.0.0.1 votre.domaine.tld` au fichier `/etc/hosts` sur votre serveur ;
sudo mkdir yunohost_self_signed - si l'installation ne fonctionne toujours pas, désactiver les vérifications en ajoutant `--no-checks` à la commande `cert-install`.
sudo mv *.pem *.cnf yunohost_self_signed/```
En fonction de lautorité denregistrement, des certificats intermédiaires et racines doivent être obtenus.
> **StartSSL**
> ```bash
> sudo wget http://www.startssl.com/certs/ca.pem -O ae_certs/ca.pem
> sudo wget http://www.startssl.com/certs/sub.class1.server.ca.pem -O ae_certs/intermediate_ca.pem```
> **Gandi**
> ```bash
> sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA.pem -O ae_certs/intermediate_ca.pem```
> Attention si votre certificat expire après le 01/01/2017, choisissez le certificat intermédiaire SHA2 suivant (à la place du certificat SHA1 précédent)
> ```bash
> sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA2.pem -O ae_certs/intermediate_ca.pem```
> **RapidSSL**
> ```bash
> sudo wget https://knowledge.rapidssl.com/library/VERISIGN/INTERNATIONAL_AFFILIATES/RapidSSL/AR1548/RapidSSLCABundle.txt -O ae_certs/intermediate_ca.pem```
> **Cacert**
> ```bash
> sudo wget http://www.cacert.org/certs/root.crt -O ae_certs/ca.pem
> sudo wget http://www.cacert.org/certs/class3.crt -O ae_certs/intermediate_ca.pem```
Les certificats intermédiaires et root doivent être réunis avec le certificat obtenu pour créer une chaîne de certificats unifiés.
```bash
cat ae_certs/ssl.crt ae_certs/intermediate_ca.pem ae_certs/ca.pem | sudo tee crt.pem```
La clé privée doit être, elle, convertie au format pem.
```bash
sudo openssl rsa -in ae_certs/ssl.key -out key.pem -outform PEM```
Afin de sassurer de la syntaxe des certificats, vérifiez le contenu des fichiers.
```bash
cat crt.pem key.pem```
Les certificats et la clé privée doivent ressembler à cela :
`-----BEGIN CERTIFICATE-----`
`MIICVDCCAb0CAQEwDQYJKoZIhvcNAQEEBQAwdDELMAkGA1UEBhMCRlIxFTATBgNV`
`BAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExC`
`MREwDwYDVQQLEwhCVFMgSU5GTzEbMBkGA1UEAxMSc2VydmV1ci5idHNpbmZvLmZy`
`MB4XDTA0MDIwODE2MjQyNloXDTA0MDMwOTE2MjQyNlowcTELMAkGA1UEBhMCRlIx`
`FTATBgNVBAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UE`
`ChMDTExCMREwDwYDVQQLEwhCVFMgSU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZv`
`LmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12`
`kSbN/NWP0QUiPlksOkF2NkPfwW/mf55dD1hSndlOM/5kLbSBo5ieE3TgikF0Iktj`
`BWm5xSqewM5QDYzXFt031DrPX63Fvo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLW`
`wc0BzEgFZGGw7wiMF6wt5QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALD640iwKPMf`
`pqdYtfvmLnA7CiEuao60i/pzVJE2LIXXXbwYjNAM+7Lov+dFT+b5FcOUGqLymSG3`
`kSK6OOauBHItgiGI7C87u4EJaHDvGIUxHxQQGsUM0SCIIVGK7Lwm+8e9I2X0G2GP`
`9t/rrbdGzXXOCl3up99naL5XAzCIp6r5`
`-----END CERTIFICATE-----`
Enfin, sécurisez les fichiers de votre certificat.
```bash
sudo chown root:metronome crt.pem key.pem
sudo chmod 640 crt.pem key.pem
sudo chown root:root -R ae_certs
sudo chmod 600 -R ae_certs```
Rechargez la configuration de nginx pour prendre en compte le nouveau certificat.
```bash
sudo service nginx reload```
Votre certificat est prêt à servir. Vous pouvez toutefois vous assurez de sa mise en place en testant le certificat à laide du service de <a href="https://www.geocerts.com/ssl_checker" target="_blank">geocerts</a>.

View file

@ -15,7 +15,7 @@ command line with `yunohost domain cert-status`, `cert-install` and
Your server needs to be reachable from the rest of Internet on port 80 (and Your server needs to be reachable from the rest of Internet on port 80 (and
443), and make your `domain.tld` points to your server's public IP in your DNS 443), and make your `domain.tld` points to your server's public IP in your DNS
configuration. See [this documentation](hdiagnostic) if you need help. configuration. See [this documentation](diagnostic_en) if you need help.
#### Will my certificate be automatically be renewed ? #### Will my certificate be automatically be renewed ?

View file

@ -127,7 +127,7 @@ deux choses :
- la confidentialité, ce qui veut dire qu'un attaquant ne sera pas capable de déchiffrer le contenu d'une communication si elle est interceptée ; - la confidentialité, ce qui veut dire qu'un attaquant ne sera pas capable de déchiffrer le contenu d'une communication si elle est interceptée ;
- l'identification du serveur, ce qui veut dire qu'un serveur peut et doit prouver qui il prétend être, dans le but d'éviter les [attaques man-in-the-middle](https://en.wikipedia.org/wiki/Man-in-the-middle_attack). - l'identification du serveur, ce qui veut dire qu'un serveur peut et doit prouver qui il prétend être, dans le but d'éviter les [attaques man-in-the-middle](https://en.wikipedia.org/wiki/Man-in-the-middle_attack).
Les certificats SSL sont utilisés par les serveurs pour prouver leur identitié. Les certificats SSL sont utilisés par les serveurs pour prouver leur identité.
Le processus général repose sur la confiance en des tiers, appelés Autorité Le processus général repose sur la confiance en des tiers, appelés Autorité
de Certification (CA), dont le rôle est de vérifier l'identité d'un serveur (par ex. de Certification (CA), dont le rôle est de vérifier l'identité d'un serveur (par ex.
qu'une machine donnée contrôle bien le domaine `jaimelecafe.com`) avant qu'une machine donnée contrôle bien le domaine `jaimelecafe.com`) avant

View file

@ -18,3 +18,9 @@ Puis allez dans la section `Outils` > `Changer le mot de passe dadministratio
```bash ```bash
yunohost tools adminpw yunohost tools adminpw
``` ```
Si vous avez oublié votre mot de passe, utilisez plutôt:
```bash
yunohost-reset-ldap-password
```

View file

@ -1,27 +0,0 @@
# Changelog 2.0
<a class="btn btn-lg btn-default" href="/changelog_2_0_en">2.0</a> <a class="btn btn-lg btn-default" href="/changelog_2_2_en">2.2</a> <a class="btn btn-lg btn-default" href="/roadmap_en">Roadmap</a>
## v2.0 <small><small>12 june 2014</small></small>
* ✔ Add sexiness and a menu to YunoHost.org frontpage *(kload)*
* ✔ **DOCUMENTATIONNNNNNN** *(everyone <3)*
---
## v2.0 RC
* ✔ Email forward configuration *(kload, beudbeud)*
* ✔ Make pending official apps *(Ju)*
* ✔ SFTP *(kload)*
* ✔ Fix DNS zone *(kload)*
* ✔ SSOwat stuffs (presistent rules, public root website) *(ezpen)*
* ✔ Email configuration tests *(beudbeud)*
* ✔ Test and upgrade official apps like Owncloud, Roundcube and Radicale *(app maintainers)*
* ✔ Upgrade function + view *(beudbeud, opi)*
* ✔ uPnP rework *(kload, titoko)*
* ✔ Add warning in a sample backup view *(opi)*
* ✔ User interface design *(Courgette, opi)*
* ✔ Moulinette/API refactoring *(jerome)*
* ✔ Security check and complete patterns
* ✔ Internationalization I18n *(opi, jerome)*
* ✔ Lack of hairpinning hack *(kload)*

View file

@ -1,38 +0,0 @@
# Changelog 2.2
<a class="btn btn-lg btn-default" href="/changelog_2_0_en">2.0</a> <a class="btn btn-lg btn-default" href="/changelog_2_2_en">2.2</a> <a class="btn btn-lg btn-default" href="/roadmap_en">Roadmap</a>
## v2.2 <small><small>12 may 2015</small></small>
Core:
* ✔ Migrate YunoHost to Debian Jessie
* ✔ Update Metronome to v3.6 and make a more Debian-friendly package *(jerome)*
* ✔ Update of Nginx, Postfix and Dovecot regarding the late Poodle attack
* ✔ Migrate Bind9 to Dnsmasq *(kload)*
* ✔ Add email quota *(beudbeud, jerome)*
* ✔ Implement a simple backup and restore system *(jerome, kload)*
* ✔ Add logging to the moulinette for each action *(jerome)*
* ✔ Review the app manifest format and integrate it *(app maintainers, jerome, opi)*
* ✔ Fix a security bug in SSOwat *(kload)*
Web administration:
* ✔ Install unofficial apps *(opi)*
* ✔ Add firewall *(opi)*
* ✔ Warn admin about security updates *(opi)*
* ✔ Fix websocket issue for Raspberry Pi *(jerome, kload)*
Apps:
* ✔ 21 official apps and 88 unofficial apps *(app maintainers)*
* ✔ Migrate to Baikal and deprecate Radicale *(ju)*
* ✔ Add Shell in a box and remove GateOne from official apps *(kload)*
* ✔ OpenVPN configuration page and access control *(kload)*
* ✔ Add a download files button on Transmission interface *(opi)*
Installs:
* ✔ Create an image for La Brique Internet on Olimex *(kload)*
* ✔ Create an image for Raspberry Pi 1 and 2 *(matlink)*
* ✔ Create an image for Cubieboard 2 *(Moul)*
* ✔ Update Docker image *(kload)*
Others:
* ✔ Install and switch to a new build system on a new server *(beudbeud)*
* ✔ Improve documentation, to make YunoHost more accessible *(Moul)*

View file

@ -2,23 +2,33 @@
Amoung other communication tools, YunoHost project use chat rooms to communicate. Amoung other communication tools, YunoHost project use chat rooms to communicate.
This instant messaging chat rooms, which uses [XMPP protocol](XMPP_en), are hosted on our XMPP server. You could join those chat rooms using :
- an [IRC Client](https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients) for example [kiwiirc](https://kiwiirc.com/client/irc.freenode.net/yunohost)
- an [XMPP client](https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients)
- a [Matrix client](https://matrix.org/docs/guides/faq.html#what-clients-are-available%3F)
You could join this chat rooms with an [XMPP client](https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients#XMPP-related_features).
### Chat rooms #### Help and support chatroom
#### Mutual aid
[Mutual aid](support_en) chat room is here to allow YunoHost's users to help each other.
- A [web client](https://chat.yunohost.org) is here to easily join _mutual aid_ chat room. There is a [support](support_fr) chatroom for YunoHost users mutual support and help.
- **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)**
#### Development - IRC: **#yunohost** on irc.freenode.net ;
YunoHost core development chat room. Currently, the main chat room for contributions on YunoHost project. - Matrix: **#freenode_#yunohost:matrix.org** ;
For help, thanks to do it on `support` chat room. - XMPP: **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)**
- **[dev@conference.yunohost.org](xmpp:dev@conference.yunohost.org?join)**
#### Applications #### Development chatroom
YunoHost core development chat room :
- IRC: **#yunohost-dev** on irc.freenode.net ;
- Matrix: **#freenode_#yunohost-dev:matrix.org** ;
- XMPP: **[dev@conference.yunohost.org](xmpp:dev@conference.yunohost.org?join)**
Currently, the main chat room for contributions on YunoHost project.
For help, please see **#yunohost** chat room above.
#### Applications chatroom
Application packaging development chat room. It allow packagers to help each other. Application packaging development chat room. It allow packagers to help each other.
It also allow to discuss packaging evolution, continuous integration tools. It also allow to discuss packaging evolution, continuous integration tools :
- **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)** - IRC: **#yunohost-apps** on irc.freenode.net
- Matrix: **#freenode_#yunohost-apps:matrix.org**
- XMPP: **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)**

View file

@ -1,24 +1,31 @@
## Salons de discussions ## Salons de discussions
Parmi dautres outils de communications, le projet YunoHost se sert de salons de discussions pour communiquer. Parmi dautres outils, le projet YunoHost se sert de salons de discussions pour communiquer.
Ces salons de messagerie instantanées, qui utilisent le [protocole XMPP](XMPP_fr), sont hébergés sur notre serveur XMPP. Vous pouvez rejoindre ces salons avec:
- un [Client IRC](https://fr.wikipedia.org/wiki/Liste_de_clients_IRC)
- un [Client XMPP](https://fr.wikipedia.org/wiki/Clients_XMPP)
- un [Client Matrix](https://linuxfr.org/news/matrix-pour-decentraliser-skype-whatsapp-signal-slack-et-discord)
Vous pouvez rejoindre ces salons avec un [client XMPP](https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP).
### Salons #### Salon d'entraide et de support
#### Entraide Le salon d[entraide](support_fr) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement.
Salon d[entraide](support_fr) est là pour permettre aux utilisateurs de YunoHost de sentraider. - IRC : **#yunohost** sur irc.freenode.net (voir kiwiirc ci-dessus)
- Matrix : **#freenode_#yunohost:matrix.org**
- Un [client web](https://chat.yunohost.org) est à votre disposition pour rejoindre facilement le salon dentraide. - XMPP : **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)**
- **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)**
#### Développement #### Développement
Salon de développement du cœur de YunoHost. Actuellement utilisé comme salon principal pour les contributions autour du projet. Salon de développement du cœur de YunoHost:
Pour de laide, merci de le faire sur le salon dentraide. - IRC : **#yunohost-dev** sur irc.freenode.net
- **[dev@conference.yunohost.org](xmpp:dev@conference.yunohost.org?join)** - Matrix : **#freenode_#yunohost-dev:matrix.org**
- XMP : **[dev@conference.yunohost.org](xmpp:dev@conference.yunohost.org?join)**
C'est le salon principal pour les contributions autour du projet.
Pour chercher de laide, merci d'aller sur le salon dentraide ci-dessus.
#### Applications #### Applications
Salon de développement du packaging dapplication. Il permet aux packageurs de sentraider. Salon de développement du packaging dapplication. Il permet aux packageurs de sentraider.
Il sert également à discuter de lévolution du packaging, des outils dintégration continue sur les applications. Il sert également à discuter de lévolution du packaging, des outils dintégration continue sur les applications.
- **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)** - IRC : **#yunohost-apps** sur irc.freenode.net
- Matrix : **#freenode_#yunohost-apps:matrix.org**
- XMPP : **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)**

View file

@ -1,45 +0,0 @@
## Consulter les fichiers de log du système
### Accéder à un fichier de log
#### Via linterface dadministration
[Administration web](admin_fr)
#### En ligne de commande
Un fichier de log est un simple fichier texte utilisé par certains programmes du système (et notamment les services) pour inscrire lhistorique de leur fonctionnement. Consulter un fichier de log consiste donc à afficher son contenu pour lire les messages qui sy trouvent.
Pour accéder aux fichiers de log, la méthode traditionnelle consiste à [se connecter au serveur en ligne de commande via SSH](ssh_fr). Une fois connecté, utilisez la commande `tail` qui affiche uniquement la fin du fichier, car les fichiers de log sont très longs et quuniquement lhistorique récent nous intéresse.
### Services
#### Courriel
* Postfix
* Dovecot
* mail.log
* amavis
#### Serveur web
* Nginx
* php5-fpm
#### Serveur XMPP metronome
* Metronome
#### Surveillance du serveur
* Glances
#### Bases de données
* MySQL
* Postgrey
#### SSH
#### yunohost-api
#### Torrents
* transmission-daemon
#### LDAP
* slapdStatut
#### DNS
* Dnsmasq
* Bind9

26
collabora_fr.md Normal file
View file

@ -0,0 +1,26 @@
# Installer Collabora avec Nextcloud
**Note :** la marche à suivre detaillée et realisée ici à partir dune instance Yunohost sur Debian 8 (celle-ci n'a pas été testée suite a la migration sur la version 3 de Yunohost) et celle-ci part du principe que les domaines/sous-domaines sont correctement configurés au niveau des DNS et de votre instance Yunohost (voir [DNS](/dns_fr) , [DNS et installation dune application sur un sous-domaine](/dns_subdomains_fr) ,[Configurer les enregistrements DNS](/dns_config_fr) et [Nom de domaine en noho.st / nohost.me](/dns_nohost_me_fr) )
### Installer Nextcloud
Si Nexcloud n'est pas déja installée sur votre instance Yunohost, vous pouvez linstaller depuis le lien suivant :
[Installer nextcloud](https://install-app.yunohost.org/?app=nextcloud)
### Installer l'application Collabora dans yunohost
**dans l'interface d'Administration :**
Applications > Installer > En bas de la page _Installer une application personnalisée_ > Renseigner lurl « https://github.com/aymhce/collaboradocker_ynh » > Définir le nom de domaine secondaire/sous-domaine dédié à l'application Collabora .
### Configuration dans nextcloud
**Ajouter l'application Collabora Online à Nextcloud :**
Cliquer sur l'icone de l'utilisateur en haut à droite > Applications > Bureautique & texte > Sous « Collabora Online » cliquer sur Activer
**Configurer Collabora sur Nextcloud :**
Cliquer sur l'icone de l'utilisateur en haut à droite > Paramètres > Sous _Administration_, _Collabora en ligne_
Renseigner le « Serveur Collabora en ligne » par le nom de domaine choisi lors de linstallation de collabora dans yunohost (précédé de « https:// »).

View file

@ -143,5 +143,11 @@ yunohost tools [-h] {postinstall,maindomain,ldapinit,adminpw} ...
postinstall YunoHost post-install postinstall YunoHost post-install
maindomain Main domain change tool maindomain Main domain change tool
ldapinit YunoHost LDAP initialization ldapinit YunoHost LDAP initialization
adminpw Change admin password adminpw Change admin password # Existing password required. See workaround below.
```
### admin
```bash
yunohost-reset-ldap-password Reset the admin account (Web GUI) password
``` ```

View file

@ -1,5 +1,33 @@
# Communication # Communication
## Talks / conf
* (FR) [Capitole du libre 2017 - YunoHost : vers l'auto-hébergement et au-delà - JimboJoe](https://2017.capitoledulibre.org/programme/#yunohost-vers-lauto-hebergement-et-au-dela) ([slides](https://github.com/YunoHost/yunohost-cdl-2017/raw/master/YunoHost-CDL2017.pdf))
* (FR) [PSES 2017 Construire lInternet du Futur avec YunoHost Aleks, ljf](https://data.passageenseine.org/2017/aleks-ljf_internet-futur-yunohost.webm) ([slides](https://data.passageenseine.org/2017/aleks-ljf_internet-futur-yunohost.pdf))
* (FR) [Université de technologie de compiègne 2017 Agir pour un internet éthique LJF](http://webtv.utc.fr/watch_video.php?v=O34AA7RBR1AH)
* (EN) [FOSDEM 2017 Internet Cube kload](https://archive.fosdem.org/2017/schedule/event/internet_cube/)
* (EN) [FOSDEM 2017 YunoHost Bram](https://archive.fosdem.org/2017/schedule/event/yunohost/)
* (FR) [Capitole du libre 2016 1 an et ½ de Brique Internet Bram](http://videos2016.capitoledulibre.org/communaute-du-libre/bram-1-an-et-demi-de-brique-internet.mp4)
* (FR) [PSES 2015 - La Brique Internet](http://www.youtube.com/watch?v=NCRn0yRfkIE)
* (FR) [THSF 2015 beudbeud](https://vimeo.com/128055751)
* (FR) [RMLL 2014 - Hébergez-vous ! kload & beudbeud]()
* (FR) [Capitole du libre 2013 - Lauto-hébergement pour tous avec YunoHost - beudbeud](http://2013.capitoledulibre.org/conferences/internet-libre/lauto-hebergement-pour-tous-avec-yunohost.html)
* (EN) [FOSDEM 2013 — kload](https://www.youtube.com/watch?v=siN1OLAgGJk)
## Articles / Press review
<a href="https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic"><img src="/images/Linuxfr.png" width=180></a> <a href="https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic"><img src="/images/Linuxfr.png" width=180></a>
<a href="https://en.wikipedia.org/wiki/YunoHost"><img src="/images/Wikipedia-logo-v2-fr.svg" width=180></a> <a href="https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic"><img src="/images/Linuxfr.png" width=180></a>
* LinuxFr (french): [YunoHost 2.0 : self hosting at click range](https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic) <a href="https://www.linux-pratique.com/2016/07/et-si-vous-passiez-a-lauto-hebergement/"><img src="/images/linux-pratique-96.jpg" width=150 /></a>
* Twitter [@yunohost](https://twitter.com/yunohost) [#yunohost](https://twitter.com/hashtag/yunohost?src=hash) <a href="http://www.linux-magazine.com/Issues/2018/208/YunoHost"><img src="/images/linux-magazine-208.jpg" width=150 /></a>
* 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)
- [Linux Pratique n°96 YunoHost, lauto-hébergement à portée de main juillet 2016](http://connect.ed-diamond.com/Linux-Pratique/LP-096/YunoHost-l-auto-hebergement-a-portee-de-main)
- [Linux Magazine n°208 YunoHost, Personal server for a private cloud Mars 2018](http://www.linux-magazine.com/Issues/2018/208/YunoHost)
## YunoHost was cited in :
* [EXPERIMENTA 2018](https://livestream.com/accounts/26482307/events/8034656/player?width=960&height=540&enableInfoAndActivity=true&defaultDrawer=&autoPlay=true&mute=false) at 57.47 (depuis https://www.experimenta.fr/direct/)
* [Capitole du libre 2017 - « Contributopia », Dégoogliser ne suffit pas](https://www.youtube.com/watch?v=ip6_VMkWpr8&feature=youtu.be&t=4793)
* [Contributopia - Essaimage (Framasoft)](https://contributopia.org/fr/essaimage/)

View file

@ -1,9 +0,0 @@
# Communication
<a href="https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic"><img src="/images/Linuxfr.png" width=180></a>
<a href="https://fr.wikipedia.org/wiki/YunoHost"><img src="/images/Wikipedia-logo-v2-fr.svg" width=180></a>
<a href="http://www.linux-pratique.com/2016/07/et-si-vous-passiez-a-lauto-hebergement/"><img src="/images/linux-pratique-96.jpg" width=150 /></a>
* LinuxFr :
- [YunoHost 2.0 : lauto-hébergement à portée de clic](https://linuxfr.org/news/yunohost-2-0-l-auto-hebergement-a-portee-de-clic)
- [Évolutions des projets La Brique Internet et YunoHost des versions 2.2, 2.4 et 2.5](https://linuxfr.org/news/evolutions-des-projets-la-brique-internet-et-yunohost-des-versions-2-2-2-4-et-2-5)
* Twitter [@yunohost](https://twitter.com/yunohost) [#yunohost](https://twitter.com/hashtag/yunohost?src=hash)
- [Linux Pratique n°96 YunoHost, lauto-hébergement à portée de main juillet 2016](http://connect.ed-diamond.com/Linux-Pratique/LP-096/YunoHost-l-auto-hebergement-a-portee-de-main)

View file

@ -1,10 +0,0 @@
# Conférences
- [Université de technologie de compiègne 2017 Agir pour un internet éthique LJF](http://webtv.utc.fr/watch_video.php?v=O34AA7RBR1AH)
- [FOSDEM 2017 YunoHost/Internet Cube Bram/kload](https://video.fosdem.org/2017/AW1.125/)
- [Capitole du libre 2016 1 an et ½ de Brique Internet Bram](http://videos2016.capitoledulibre.org/communaute-du-libre/bram-1-an-et-demi-de-brique-internet.mp4)
* [PSES 2015 - La Brique Internet](http://www.youtube.com/watch?v=NCRn0yRfkIE)
* [THSF 2015 beudbeud](https://vimeo.com/128055751)
* [RMLL 2014 - Hébergez-vous ! kload & beudbeud]()
* [Capitole du libre 2013 - Lauto-hébergement pour tous avec YunoHost - beudbeud](http://2013.capitoledulibre.org/conferences/internet-libre/lauto-hebergement-pour-tous-avec-yunohost.html)
* [FOSDEM 2013 — kload](https://www.youtube.com/watch?v=siN1OLAgGJk)

View file

@ -22,7 +22,7 @@ Talk about software freedom, [self-hosting](selfhosting_en) and YunoHost to your
<span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;&nbsp; Testing <span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;&nbsp; Testing
</div> </div>
<div class="col col-md-8" markdown="1"> <div class="col col-md-8" markdown="1">
We need people able to test YunoHost deeply. If you find a bug, try to identify it, and report it on our <a href="https://dev.yunohost.org/projects/yunohost/issues/new" target="_blank">bug tracker</a>. We need people able to test YunoHost deeply. If you find a bug, try to identify it, and report it on our <a href="https://github.com/YunoHost/issues/issues" target="_blank">bug tracker</a>.
</div> </div>
</div> </div>
@ -33,7 +33,7 @@ We need people able to test YunoHost deeply. If you find a bug, try to identify
<span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; Helping users <span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; Helping users
</div> </div>
<div class="col col-md-8" markdown="1"> <div class="col col-md-8" markdown="1">
Our support relies on contributors like you. Just come to [the XMPP chatroom](/support) and help new users getting started, or pick a question on the <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. 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 <a href="https://forum.yunohost.org/" target="_blank">Forum</a>.
</div> </div>
</div> </div>
@ -88,53 +88,8 @@ A <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/apps">mailing-list<
</div> </div>
</div> </div>
<!--
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon glyphicon-upload"></span>&nbsp;&nbsp; Seed
</div>
<div class="col col-md-8" markdown="1">
Seed (share) YunoHost images with Torrent system: [live](http://build.yunohost.org/yunohost-live.iso.torrent), [32 bits](http://build.yunohost.org/yunohostv2-latest-i386.iso.torrent) and [64 bits](http://build.yunohost.org/yunohostv2-latest-amd64.iso.torrent).
</div>
</div>
---
-->
--- ---
<br> <br>
<p class="lead" markdown="1">In any case, please [come to dev chatroom](xmpp:dev@conference.yunohost.org?join) to contribute :-)</p> <p class="lead" markdown="1">In any case, please [come to dev chatroom](xmpp:dev@conference.yunohost.org?join) to contribute :-)</p>
<script type="text/javascript" src="/jappix/javascripts/mini.min.js"></script>
<script type="text/javascript">
// Jappix mini chat
$(".actions").css('opacity', 0);
jQuery.ajaxSetup({cache: false});
var ADS_ENABLE = 'off';
var JAPPIX_STATIC = '/jappix/';
var HOST_BOSH = 'https://im.yunohost.org/http-bind/';
var ANONYMOUS = 'on';
JappixMini.launch({
connection: {
domain: "anonymous.yunohost.org",
},
application: {
network: {
autoconnect: false,
},
interface: {
showpane: false,
animate: false,
},
groupchat: {
open: ['dev@conference.yunohost.org'],
suggest: ['support@conference.yunohost.org']
}
},
});
</script>

92
contribute_ar.md Normal file
View file

@ -0,0 +1,92 @@
# <div dir="rtl">المساهمة</div>
<p dir="rtl" class="lead">
إنّ مصير واي يونوهوست YunoHost يُقرّره أناس و أنتم مِن بين هؤلاء
</p>
---
<div dir="rtl" class="row">
<div dit="rtl" class="col col-md-3 lead">
<span class="glyphicon glyphicon-heart"></span>&nbsp;&nbsp; تحدثوا عن المشروع مِن حولكم
</div>
<div class="col col-md-8" markdown="1">
تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting_fr)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3></div>
</div>
---
<div dir="rtl" class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;&nbsp; جَرّبُوا
</div>
<div class="col col-md-8" markdown="1">
نحن بحاجة إلى تجريب حثيث لواي يونوهوست YunoHost. فإن صادفتم مشكلة، يرجى القيام بتحديد الخلل و ثم الإبلاغ عنه عبر
<a href="https://github.com/YunoHost/issues/issues" target="_blank">مُتعقب الأخطاء</a>.
</div>
</div>
---
<div dir="rtl" class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; ساعدوا المستخدمِين
</div>
<div class="col col-md-8" markdown="1">
Notre support est communautaire et sappuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help_fr), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
</div>
</div>
---
<div dir="rtl" class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-cog"></span>&nbsp;&nbsp; أكتبوا الشفرة
</div>
<div dir="rtl" class="col col-md-8" markdown="1">
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
</div>
</div>
---
<div dir="rtl" class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-globe"></span>&nbsp;&nbsp; ترجِموا
</div>
<div class="col col-md-8" markdown="1">
ساهموا في توفير واجهات واي يونوهوست YunoHost بلغتكم. <a href="https://translate.yunohost.org/" target="_blank">إبدأوا الآن</a>!
</div>
</div>
---
<div dir="rtl" class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-edit"></span>&nbsp;&nbsp; أكتبوا
</div>
<div class="col col-md-8" markdown="1">
ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation_fr) أو بترجمة صفحاته إلى لغتكم.
</div>
</div>
---
<div dir="rtl" class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-gift"></span>&nbsp;&nbsp; ساهموا في التحزيم
</div>
<div class="col col-md-8" markdown="1">
Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps_fr). Jetez un œil à [ce qui a déjà été fait](/apps_fr)!
<br>
Un [salon de développement](xmpp:dev@conference.yunohost.org?join) et une <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/apps">mailing-list</a> est également disponible.
</div>
</div>
---
<br>
<br>
<p dir="rtl" class="lead" markdown="1">على أي حال تعالوا و انضموا إلى [غرفة المحادثة الخاصة بالمطوّرين](xmpp:dev@conference.yunohost.org?join) إن كنتم ترغبون في المساهمة :-)</p>

View file

@ -22,7 +22,7 @@ Parlez de logiciel libre, d[auto-hébergement](/selfhosting_fr), de YunoHost
<span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;&nbsp; Testez <span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;&nbsp; Testez
</div> </div>
<div class="col col-md-8" markdown="1"> <div class="col col-md-8" markdown="1">
Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essayez de lidentifier, puis reportez-le sur notre <a href="https://dev.yunohost.org/projects/yunohost/issues/new" target="_blank">bug tracker</a>. Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essayez de lidentifier, puis reportez-le sur notre <a href="https://github.com/YunoHost/issues/issues/new" target="_blank">bug tracker</a>.
</div> </div>
</div> </div>
@ -33,7 +33,7 @@ Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essa
<span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; Aidez les utilisateurs <span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; Aidez les utilisateurs
</div> </div>
<div class="col col-md-8" markdown="1"> <div class="col col-md-8" markdown="1">
Notre support est communautaire et sappuie sur des contributeurs comme vous. Venez simplement sur le [salon de discussion XMPP](/support_fr), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>. Notre support est communautaire et sappuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help_fr), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
</div> </div>
</div> </div>
@ -86,51 +86,7 @@ Un [salon de développement](xmpp:dev@conference.yunohost.org?join) et une <a hr
--- ---
<!--
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon glyphicon-upload"></span>&nbsp;&nbsp; Seedez
</div>
<div class="col col-md-8" markdown="1">
Seedez (partagez) avec le système de Torrent les images de YunoHost : [live](http://build.yunohost.org/yunohost-live.iso.torrent), [32 bits](http://build.yunohost.org/yunohostv2-latest-i386.iso.torrent) et [64 bits](http://build.yunohost.org/yunohostv2-latest-amd64.iso.torrent).
</div>
</div>
---
-->
<br> <br>
<br> <br>
<p class="lead" markdown="1">Dans tous les cas, venez sur le [salon de développement](xmpp:dev@conference.yunohost.org?join) pour contribuer :-)</p> <p class="lead" markdown="1">Dans tous les cas, venez sur le [salon de développement](xmpp:dev@conference.yunohost.org?join) pour contribuer :-)</p>
<script type="text/javascript" src="/jappix/javascripts/mini.min.js"></script>
<script type="text/javascript">
// Jappix mini chat
$(".actions").css('opacity', 0);
jQuery.ajaxSetup({cache: false});
var ADS_ENABLE = 'off';
var JAPPIX_STATIC = '/jappix/';
var HOST_BOSH = 'https://im.yunohost.org/http-bind/';
var ANONYMOUS = 'on';
JappixMini.launch({
connection: {
domain: "anonymous.yunohost.org",
},
application: {
network: {
autoconnect: false,
},
interface: {
showpane: false,
animate: false,
},
groupchat: {
open: ['dev@conference.yunohost.org'],
suggest: ['support@conference.yunohost.org']
}
},
});
</script>

View file

@ -1,12 +1,32 @@
# Contributor documentation # Contributor documentation
* [How to contribute](/contribute) * [General ways of contributing to YunoHost](/contribute)
* [What is YunoHost](/whatsyunohost) * [Writing documentation](/write_documentation)
* Developement * Application packaging
* [Roadmap](/roadmap) * [Apps wishlist](/apps_wishlist)
* [List of available applications](/apps) * [General introduction to app packaging](/packaging_apps_start)
* [Package new applications](/packaging_apps) * [Technical introduction to app packaging](/packaging_apps)
* [Develop on Docker](/docker) * [Setting up a dev environment with VirtualBox](packaging_apps_virtualbox_fr)
* Documentation * [Manifest](packaging_apps_manifest)
* [Account creation to edit documentation](/accounting) * [Scripts](packaging_apps_scripts)
* [Write documentation](/write_documentation) * [Arguments management](packaging_apps_arguments_management)
* [Nginx configuration](packaging_apps_nginx_conf)
* [Multi-instance](packaging_apps_multiinstance)
* [Helpers](packaging_apps_helpers)
* [Trap usage](packaging_apps_trap_fr)
* [Adding your app to the community list](https://github.com/YunoHost/Apps/#contributing)
* Quality tests
* [Package linter](https://github.com/YunoHost/package_linter)
* [Package check](https://github.com/YunoHost/package_check)
* [Applications levels](packaging_apps_levels_fr)
* [App Continuous Integration](https://ci-apps.yunohost.org/jenkins/)
* [App CI dashboard](https://dash.yunohost.org/appci/branch/stable)
* [YEP - YunoHost Enhancement Proposals](packaging_apps_guidelines_fr)
* [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_fr)

View file

@ -1,14 +1,33 @@
# Documentation contributeur YunoHost # Guide du contributeur
* [Guide du contributeur](/contribute_fr) * [Liste des façons de contribuer à YunoHost](/contribute_fr)
* [Quest-ce que YunoHost ?](/whatsyunohost_fr) * [Écrire de la documentation](/write_documentation_fr)
* Développement * Packaging d'application
* <a href='https://dev.yunohost.org/projects/yunohost/roadmap' target='_BLANK'>Feuille de route du projet</a> * [Liste d'apps souhaitées par la communauté](/apps_wishlist_fr)
* [Liste des applications disponibles](/apps_fr) * [Introduction générale au packaging d'apps](/packaging_apps_start_fr)
* [Préparer/empaqueter une nouvelle application](/packaging_apps_fr) * [Introduction technique au packaging d'apps](/packaging_apps_fr)
* [Développer avec Docker](/docker_fr) * [Déployer un environnement de développement avec VirtualBox](packaging_apps_virtualbox_fr)
* [Présentation du fonctionnement de YunoHost](/package_list_fr) * [Manifest](packaging_apps_manifest_fr)
* [Se créer un environnement de développement](/ynh_dev_fr) * [Scripts](packaging_apps_scripts_fr)
* Documentation * [Gestion des arguments](packaging_apps_arguments_management_fr)
* [Création dun compte pour modifier la documentation](/accounting_fr) * [Configuration nginx](packaging_apps_nginx_conf_fr)
* [Écrire de la documentation](/write_documentation_fr) * [Multi-instance](packaging_apps_multiinstance_fr)
* [Fonctions utiles](packaging_apps_helpers_fr)
* [Utilisation de 'trap'](packaging_apps_trap_fr)
* [Ajouter son application à la liste community](https://github.com/YunoHost/Apps/#contributing)
* Tests de qualité
* [Package linter](https://github.com/YunoHost/package_linter)
* [Package check](https://github.com/YunoHost/package_check)
* [Niveaux des applications](packaging_apps_levels_fr)
* [Intégration continue des apps](https://ci-apps.yunohost.org/jenkins/)
* [Tableau de bord du CI des apps](https://dash.yunohost.org/appci/branch/stable)
* [YEP - YunoHost Enhancement Proposals](packaging_apps_guidelines_fr)
* [Contribuer à la partie "core" de YunoHost](/dev_fr)
* [Déployer un environnement de dev avec ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
* [Construction des paquets debian](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
* [Feuilles de route du projet](https://github.com/YunoHost/issues/milestones?direction=asc&sort=title&state=open)
* Construction des images
* [x86 ISO](https://github.com/YunoHost/cd_build)
* [Images Raspberry Pi](https://github.com/YunoHost/rpi-image)
* [Autres images pour cartes ARM](https://github.com/YunoHost/arm-images)
* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api_fr)

View file

@ -1,46 +1,46 @@
# Copy an image to an SD card # Flashing an SD card
Now that you have the YunoHost image, you have to copy its content to an SD card. Now that you download the YunoHost image, you have to copy its content to an SD
The process differs regarding your operating system. card. This step is also sometimes called 'flashing' the SD card.
<div class="alert alert-warning" markdown="1">
In the context of self-hosting, it is recommended that your SD card be at least
8 GB (to have a reasonable space available for the system and a few data) and at
least Class 10 (to ensure reasonable performances).
</div>
<img src="/images/sdcard.jpg" width=150><img src="https://yunohost.org/images/micro-sd-card.jpg"> <img src="/images/sdcard.jpg" width=150><img src="https://yunohost.org/images/micro-sd-card.jpg">
## On Windows ### With Etcher
* Download and install **[Win32 Disk Imager](http://sourceforge.net/projects/win32diskimager/)** Download <a href="https://etcher.io/" target="_blank">Etcher</a> for your
* Plug your SD card in operating system and install it.
* Copy the `.img` file to your SD card using Win32 Disk Imager.
<img src="/images/win32diskimager.png"> <img src="/images/etcher.gif">
## On GNU/Linux, BSD or Mac OS Plug your SD card, select your YunoHost image and click "Flash"
* Open a terminal ### With `dd`
* Plug your SD card in
* Identify the device name by typing: If you are on Linux / Mac and know your way around command line, you may also
flash your SD card with `dd`. You can identify which device corresponds to your
SD card with `fdisk -l` or `lsblk`. Assuming your SD card is `/dev/mmcblk0` (be
careful !!), you may run :
```bash ```bash
sudo fdisk -l dd if=/path/to/yunohost.img of=/dev/mmcblk0
``` ```
It should be `/dev/diskN`, where `N` is a number, or `/dev/sdX`, where `X` is a letter.
Carefull to not put the digit `N` cause it will create an [non-functional SD card](https://raspberrypi.stackexchange.com/questions/11880/sd-card-doesnt-works-after-dd).
* Copy the image by typing:
```bash
sudo dd if=/path/to/your/.img of=/your/device/name
```
<span class="glyphicon glyphicon-warning-sign"></span> Do not forget to change `/path/to/your/.img` and `/your/device/name` with the appropriate values.
The command may take a few minutes, then your SD card will be ready to use. **:-)**
## Expand the root partition <small>(optional)</small> ## Expand the root partition <small>(optional)</small>
<div class="alert alert-warning" markdown="1">
This step is optionnal as it should be performed automatically during the first
boot on recent images.
</div>
By default, the root partition of your SD card is very small. By default, the root partition of your SD card is very small.
You can resize it by using software like `resize2fs` (command-line) or `gparted` (graphical). You can resize it by using software like `resize2fs` (command-line) or `gparted`
(graphical).
<img src="/images/gparted.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"> <img src="/images/gparted.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">

View file

@ -1,45 +1,51 @@
# Copier limage sur une carte SD # Flasher une carte SD
Maintenant que vous avez limage ISO YunoHost, vous devez la copier sur une carte SD. Le processus est différent suivant votre système dexploitation. Maintenant que vous avez téléchargé l'image de YunoHost, il vous faut copier son
contenu sur une carte SD. Cette étape est aussi souvent appelé 'flasher' la
carte SD.
<div class="alert alert-warning" markdown="1">
Dans le contexte de l'auto-hébergement, il est recommandé que votre carte SD
fasse au moins 8 Go (pour disposer d'un espace raisonnable pour le système et
quelques données) et soit au moins certifiée classe 10 (pour avoir des
performances raisonnables).
</div>
<img src="/images/sdcard.jpg" width=150><img src="https://yunohost.org/images/micro-sd-card.jpg"> <img src="/images/sdcard.jpg" width=150><img src="https://yunohost.org/images/micro-sd-card.jpg">
## Sous Windows ### Avec Etcher
* Téléchargez et installez **[Win32 Disk Imager](http://sourceforge.net/projects/win32diskimager/)**. Télécharger <a href="https://etcher.io/" target="_blank">Etcher</a> pour votre
* Insérez votre carte SD. système d'exploitation, et installez-le.
* Copiez le fichier `.img` sur votre carte SD en utilisant *Win32 Disk Imager*.
<img src="/images/win32diskimager.png"> <img src="/images/etcher.gif">
## Sous GNU/Linux, BSD ou Mac OS Connectez votre carte SD, sélectionnez votre image YunoHost, puis cliquez sur
'Flash'.
* Ouvrez un terminal. ### Avec `dd`
* Insérez votre carte SD.
* Identifiez votre matériel en tapant : Si vous êtes sous Linux / Mac et que vous être à l'aise avec la ligne de
commande, vous pouvez aussi flasher votre carte SD avec `dd`. Commencez par
identifier le périphérique correspondant à votre carte SD avec `fdisk -l` ou
`lsblk`. En supposant que votre carte SD soit `/dev/mmcblk0` (faites attention
!), vous pouvez lancer :
```bash ```bash
sudo fdisk -l dd if=/chemin/vers/yunohost.img of=/dev/mmcblk0
``` ```
Ça devrait être `/dev/diskN`, où `N` est un chiffre, ou `/dev/sdX`, où `X` est une lettre, ou `/dev/mmcblk0`. ## Étendre la partition root <small>(optionnel)</small>
Attention à ne pas mettre le chiffre `N` car ça créera une [carte SD non fonctionnelle](https://raspberrypi.stackexchange.com/questions/11880/sd-card-doesnt-works-after-dd). <div class="alert alert-warning" markdown="1">
Cette étape est optionnelle car elle est normalement effectuée automatiquement
par le système lors du premier démarrage sur les images récentes.
</div>
* Copiez limage en tapant : Par défaut, la partition root installée sur votre carte SD avec la commande `dd`
est très petite. Vous pouvez la redimensionner avec un logiciel comme
```bash `resize2fs` (ligne de commande) ou `Gparted` (interface graphique) en étendant
sudo dd if=/chemin/vers/votre/.img of=/nom/du/matériel la partition ext4 au maximum de façon à utiliser tout lespace non alloué.
```
<span class="glyphicon glyphicon-warning-sign"></span> Noubliez pas de changer `/chemin/vers/votre/.img` et `/nom/du/matériel` par les valeurs appropriées.
La commande peut prendre quelques minutes, puis votre carte SD sera prête à être utilisée. **:-)**
## Étendre la partition root <small>(facultatif, mais conseillé)</small>
Par défaut, la partition root installée sur votre carte SD avec la commande `dd` est très petite.
Vous pouvez la redimensionner avec un logiciel comme `resize2fs` (ligne de commande) ou `Gparted` (interface graphique) en étendant la partition ext4 au maximum de façon à utiliser tout lespace non alloué.
<img src="/images/gparted.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);"> <img src="/images/gparted.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">

View file

@ -1,5 +1,8 @@
# Create a YunoHost Live ISO # Create a YunoHost Live ISO
<div class="alert alert-danger">This page is deprecated / obsolete / outdated. Information
it contains should be updated (or should be removed).</div>
Tested on Debian Wheezy (should work on Ubuntu as well). Tested on Debian Wheezy (should work on Ubuntu as well).
Original tutorial here: http://willhaley.com/blog/create-a-custom-debian-live-environment/ Original tutorial here: http://willhaley.com/blog/create-a-custom-debian-live-environment/

View file

@ -1,5 +1,8 @@
# Créer une Live ISO de YunoHost # Créer une Live ISO de YunoHost
<div class="alert alert-danger">This page is deprecated / obsolete / outdated. Information
it contains should be updated (or should be removed).</div>
Testé sur Debian Wheezy (devrait marcher sur Ubuntu également). Testé sur Debian Wheezy (devrait marcher sur Ubuntu également).
Tutoriel original : http://willhaley.com/blog/create-a-custom-debian-live-environment/ Tutoriel original : http://willhaley.com/blog/create-a-custom-debian-live-environment/

View file

@ -2,7 +2,7 @@
This page is not created yet, you can edit it by pressing ```<ESC>``` on your keyboard or by clicking the "edit" button on the bottom-right side of your screen. You will be able to preview your changes by pressing ```<ESC>``` again or by clicking the "preview" button. This page is not created yet, you can edit it by pressing ```<ESC>``` on your keyboard or by clicking the "edit" button on the bottom-right side of your screen. You will be able to preview your changes by pressing ```<ESC>``` again or by clicking the "preview" button.
** Note: ** If you don't have any account you will have to send the modifications manually. ** Note: ** You will need to provide an email adress to validate your submission.
###Syntax ###Syntax

View file

@ -2,7 +2,7 @@
Cette page nexiste pas encore, vous pouvez léditer en appuyant sur la touche ```<Échap>``` de votre clavier, ou en cliquant sur le bouton "Éditer" en bas à droite de votre écran. Vous pourrez avoir un aperçu de vos changements en appuyant à nouveau sur la touche ```<Échap>``` ou en cliquant sur le bouton "Aperçu". Cette page nexiste pas encore, vous pouvez léditer en appuyant sur la touche ```<Échap>``` de votre clavier, ou en cliquant sur le bouton "Éditer" en bas à droite de votre écran. Vous pourrez avoir un aperçu de vos changements en appuyant à nouveau sur la touche ```<Échap>``` ou en cliquant sur le bouton "Aperçu".
** Note : ** Si vous navez pas de compte vous devrez envoyer vos modifications manuellement. ** Note : ** Vous aurez besoin d'une adresse email pour valider votre proposition.
### Syntaxe ### Syntaxe

33
dev.md
View file

@ -5,7 +5,7 @@ proceed? This guide takes you through the various steps of the development and
contribution process. contribution process.
If you're looking for stuff to implement or fix, the bug-tracker is If you're looking for stuff to implement or fix, the bug-tracker is
[here](https://dev.yunohost.org/issues/) ! [here](https://github.com/YunoHost/issues/issues) !
**Come say hi to us in the [dev chatroom](xmpp:dev@conference.yunohost.org?join)** ! If you don't have an XMPP client, you can join using the widget at the bottom right of this page. **Come say hi to us in the [dev chatroom](xmpp:dev@conference.yunohost.org?join)** ! If you don't have an XMPP client, you can join using the widget at the bottom right of this page.
@ -122,34 +122,3 @@ If you're looking for stuff to implement or fix, the bug-tracker is
should be merged in `testing` (?) ! should be merged in `testing` (?) !
<script type="text/javascript" src="/jappix/javascripts/mini.min.js"></script>
<script type="text/javascript">
// Jappix mini chat
$(".actions").css('opacity', 0);
jQuery.ajaxSetup({cache: false});
var ADS_ENABLE = 'off';
var JAPPIX_STATIC = '/jappix/';
var HOST_BOSH = 'https://im.yunohost.org/http-bind/';
var ANONYMOUS = 'on';
JappixMini.launch({
connection: {
domain: "anonymous.yunohost.org",
},
application: {
network: {
autoconnect: false,
},
interface: {
showpane: false,
animate: false,
},
groupchat: {
open: ['dev@conference.yunohost.org'],
suggest: ['support@conference.yunohost.org']
}
},
});
</script>

View file

@ -5,7 +5,7 @@ savez pas comment procéder ? Ce guide parcours les étapes du développement et
processus de contribution. processus de contribution.
Si vous chercher quelque chose à implémenter ou un bug à réparer, le Si vous chercher quelque chose à implémenter ou un bug à réparer, le
bug tracker est [ici](https://dev.yunohost.org/issues/) ! bug tracker est [ici](https://github.com/yunohost/issues/issues) !
**Venez dire coucou sur le [salon de **Venez dire coucou sur le [salon de
dev](xmpp:dev@conference.yunohost.org?join)** ! Si vous n'avez pas de client dev](xmpp:dev@conference.yunohost.org?join)** ! Si vous n'avez pas de client
@ -15,7 +15,7 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
- **Utilisez [ynh-dev](https://github.com/YunoHost/ynh-dev)** (voir le README) - **Utilisez [ynh-dev](https://github.com/YunoHost/ynh-dev)** (voir le README)
pour mettre en place un environnement de développement - en local sur une pour mettre en place un environnement de développement - en local sur une
machine virtuel, ou bien sur un VPS. machine virtuelle, ou bien sur un VPS.
Ceci installera une instance fonctionelle de YunoHost, en utilisant Ceci installera une instance fonctionelle de YunoHost, en utilisant
directement les dépôts git à l'aide de liens symboliques. De cette façon, il directement les dépôts git à l'aide de liens symboliques. De cette façon, il
vous sera possible de modifier les fichiers, de tester les changements en vous sera possible de modifier les fichiers, de tester les changements en
@ -32,7 +32,7 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
- Allez dans `/vagrant/yunohost/`. - Allez dans `/vagrant/yunohost/`.
- Executez `/vagrant/ynh-dev use-git yunohost`. - Exécutez `/vagrant/ynh-dev use-git yunohost`.
- Le fichier actionsmap (`data/actionsmap/yunohost.yml`) définit les différentes - Le fichier actionsmap (`data/actionsmap/yunohost.yml`) définit les différentes
catégories, actions et arguments de la ligne de commande YunoHost. Choisissez catégories, actions et arguments de la ligne de commande YunoHost. Choisissez
@ -89,7 +89,7 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
- `js/yunohost/controllers` contiens les parties javascript, et définit quelles - `js/yunohost/controllers` contiens les parties javascript, et définit quelles
requêtes faire à l'API pendant le chargement d'une page donnée de l'interface, requêtes faire à l'API pendant le chargement d'une page donnée de l'interface,
et comment traîter les données récupérées pour générer la page, en utilisant et comment traiter les données récupérées pour générer la page, en utilisant
des templates. des templates.
- `views` contient les templates des pages de l'interface. Dans le template, - `views` contient les templates des pages de l'interface. Dans le template,
@ -131,34 +131,4 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
- Après relecture, test et validation par les autres contributeurs, votre - Après relecture, test et validation par les autres contributeurs, votre
branche sera mergée dans `testing` (?) ! branche sera mergée dans `testing` (?) !
<script type="text/javascript" src="/jappix/javascripts/mini.min.js"></script>
<script type="text/javascript">
// Jappix mini chat
$(".actions").css('opacity', 0);
jQuery.ajaxSetup({cache: false});
var ADS_ENABLE = 'off';
var JAPPIX_STATIC = '/jappix/';
var HOST_BOSH = 'https://im.yunohost.org/http-bind/';
var ANONYMOUS = 'on';
JappixMini.launch({
connection: {
domain: "anonymous.yunohost.org",
},
application: {
network: {
autoconnect: false,
},
interface: {
showpane: false,
animate: false,
},
groupchat: {
open: ['dev@conference.yunohost.org'],
suggest: ['support@conference.yunohost.org']
}
},
});
</script>

View file

@ -46,7 +46,7 @@ You can also redirect ports manually to your server's local IP address on the ro
--- ---
### <small>4.</small> Do your router has hairpinning ? ### <small>4.</small> Does your router have hairpinning ?
If the server is accessible from outside your local network, but unreachable with its domain name on the local network, then your router probably lacks <a href="https://en.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>. If the server is accessible from outside your local network, but unreachable with its domain name on the local network, then your router probably lacks <a href="https://en.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>.

166
dkim.md
View file

@ -1,166 +0,0 @@
# DKIM
<div class="alert alert-danger">This page is deprecated. DKIM is now by default integrated in YunoHost with [Rspamd](https://rspamd.com)/rmilter.</div>
Now you just need to add a zone in your DNS configuration according to the file /etc/dkim/yourdomainname.tld.mail.txt</div>
##### Note:
* This is the 2nd revision of this Work In Progress How-To activate [DKIM](https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail) and [SPF](https://en.wikipedia.org/wiki/Sender_Policy_Framework) in YunoHost.
* Le DKIM and SPF prevent emails which could be sent with your domain name from a non legitim server. This avoid spam.
* Untill, this is not natively integrated in YunoHost core, it will mean to that Postfix configuration will be blocked (or each time there is a change some configuration lines will need to be added to the end of `/etc/postfix/main.cf`).
* To be fully functionnal DKIM requires a modification of your [DNS zone](/dns_config_en), which propagantion can take up to 24h.
##### Sources:
* This tutorial has been initially based on the DKMI section of: http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/ from Drew Crawford.
* This tutorial has been reviewed based on https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy from Popute Sebastian Armin
Replace `DOMAIN.TLD` by your own domain name.
Changes in 2n revision:
Much easier to manage more than one DOMAIN.TLD (future proof).
Updated configuration as it seemed that the previous one was based on old software.
So, here is the thing:
### With a script
Fully automatic script: (single domain)
```bash
git clone https://github.com/polytan02/yunohost_auto_config_basic
cd yunohost_auto_config_basic
sudo ./5_opendkim.sh
```
### Manually
We start by installing the right software:
```bash
sudo aptitude install opendkim opendkim-tools
```
Then we configure opendkim
```bash
sudo nano /etc/opendkim.conf
```
Text to be placed in the text file:
```bash
AutoRestart Yes
AutoRestartRate 10/1h
UMask 022
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:8891@127.0.0.1
Selector mail
```
Connect the milter to Postfix:
```bash
sudo nano /etc/default/opendkim
```
Text to be placed in the text file:
```bash
SOCKET="inet:8891@localhost"
```
Configure Postfix to use this milter:
```bash
sudo nano /etc/postfix/main.cf
```
Text to be placed **at the end** in the text file:
```bash
# OpenDKIM milter
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
```
Create a directory structure that will hold the trusted hosts, key tables, signing tables and crypto keys:
```bash
sudo mkdir -pv /etc/opendkim/keys/DOMAIN.TLD
```
Specify trusted hosts:
```bash
sudo nano /etc/opendkim/TrustedHosts
```
Text to be placed in the text file:
```bash
127.0.0.1
localhost
192.168.0.1/24
*.DOMAIN.TLD
```
Create a key table:
```bash
sudo nano /etc/opendkim/KeyTable
```
Text to be placed in the text file: be very careful, it needs to be on a **single line** for each domain.
```bash
mail._domainkey.DOMAIN.TLD DOMAIN.TLD:mail:/etc/opendkim/keys/DOMAIN.TLD/mail.private
```
Create a signing table:
```bash
sudo nano /etc/opendkim/SigningTable
```
Text to be placed in the text file:
```bash
*@DOMAIN.TLD mail._domainkey.DOMAIN.TLD
```
Now we generate the keys! smile
```bash
sudo cd /etc/opendkim/keys/DOMAIN.TLD
sudo opendkim-genkey -s mail -d DOMAIN.TLD
```
Output the DKIM DNS line to the terminal. Then, we install it on our DNS server. My ZONE file looks like this. (Be very careful with the formatting, the "p=...." needs to be in a single line.)
```bash
cat mail.txt
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=AAAKKUHGCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPFrBM54eXlZPXLJ7EFphiA8qGAcgu4lWuzhzxDDcIHcnA/fdklG2gol1B4r27p87rExxz9hZehJclaiqlaD8otWt8r/UdrAUYNLKNBFGHJ875467jstoAQAB" ; ----- DKIM key mail for DOMAIN.TLD
```
And we don't forget to put the right rights otherwise opendkim will get grumpy...
```bash
chown -Rv opendkim:opendkim /etc/opendkim*
```
And finally, we restart everything:
```bash
sudo service opendkim restart
sudo service postfix restart
```
To test if it is all working well (don't forget that the DNS propagation can take a bit of take…) you can simply go to [mail-tester.com](http://www.mail-tester.com) and send an e-mail to the address indicated. Then follow the link and the result will appear.
# SPF
Lastly, don't forget to add a SPF key in your [DNS zone](/dns_config_en) such as:
```bash
DOMAIN.TLD 300 TXT "v=spf1 a:DOMAIN.TLD ip4:<server public IPv4> ip6:<server public IPv6> mx ?all"
```
As reminder, the SPF field shows that the only machine using the IP address shows in your DNS zone are authorized to send emails.
If you don't have IPv6 on your email server, simply delete le ip6:<...> section

View file

@ -1,171 +0,0 @@
# DKIM
<div class="alert alert-danger">Cette page nest plus à jour. Le DKIM est a présent intégré par défaut dans YunoHost avec [Rspamd](https://rspamd.com)/rmilter.
Il suffit désormais de créer une zone DNS en s'inspirant du fichier /etc/dkim/yourdomainname.tld.mail.txt</div>
Le protocole SMTP ne prévoit pas de mécanisme de vérification de lexpéditeur. Il est donc possible denvoyer un courrier avec une adresse dexpéditeur factice ou usurpée. SPF et DKIM sont deux mécanismes dauthentification de lexpéditeur dun email.
#### Notes :
* Ceci est la deuxième version de ce travail en cours concernant lactivation de [DKIM](https://fr.wikipedia.org/wiki/DomainKeys_Identified_Mail) et [SPF](https://fr.wikipedia.org/wiki/Sender_Policy_Framework) dans YunoHost.
* Le DKIM et le SPF empêchent le fait que des courriels puissent être envoyés avec votre nom de domaine à partir dun autre serveur que le serveur légitime. Ceci évite le spam.
* En attendant que tout ceci soit intégré nativement dans YunoHost, cela nécessitera une modification de la configuration de Postfix dans `/etc/postfix/main.cf`.
* Pour fonctionner correctement, DKIM nécessite une modification de votre [zone DNS](/dns_config_fr). Noubliez pas que la propagation de linformation DNS une fois modifiée peut prendre jusquà 24h!
#### Sources :
* Ce document a été initialement basé sur : http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/ de Drew Crawford.
* Cette 2e révision sappuie beaucoup sur : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy from Popute Sebastian Armin
Dans la suite de ce document, replacez `DOMAIN.TLD` par votre propre nom de domaine.
Changement dans la 2de révision :
* La configuration sadapte très facilement à plusieurs noms de domaines simultanés.
* Mise à jour des paramètres de configuration avec la dernière version de OpenDKIM disponible dans Debian 7.
Rentrons maintenant dans le cœur du sujet :
### Avec un script
Utiliser un script tout fait et répondez aux questions :
```bash
git clone https://github.com/polytan02/yunohost_auto_config_basic
cd yunohost_auto_config_basic
sudo ./5_opendkim.sh
```
### À la main
On commence par installer les logiciels :
```bash
sudo aptitude install opendkim opendkim-tools
```
Ensuite on configure openDKIM :
```bash
sudo nano /etc/opendkim.conf
```
Texte à insérer dans le document :
```bash
AutoRestart Yes
AutoRestartRate 10/1h
UMask 022
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:8891@127.0.0.1
Selector mail
```
On connecte ensuite le milter à Postfix :
```bash
sudo nano /etc/default/opendkim
```
Texte à insérer dans le document :
```bash
SOCKET="inet:8891@localhost"
```
Configurer Postfix pour utiliser ce milter :
```bash
sudo nano /etc/postfix/main.cf
```
Texte à insérer à la fin du document :
```bash
# OpenDKIM milter
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
```
Créer la structure de dossiers qui contiendra la clé, les hôtes connues et quelques tableaux de données :
```bash
sudo mkdir -pv /etc/opendkim/keys/DOMAIN.TLD
```
On précise les hôtes de confiance :
```bash
sudo nano /etc/opendkim/TrustedHosts
```
Texte à insérer dans le document :
```bash
127.0.0.1
localhost
192.168.0.1/24
*.DOMAIN.TLD
```
Créer le tableau des clés :
```bash
sudo nano /etc/opendkim/KeyTable
```
(Texte à insérer dans le document : faites très attention, ça doit rester ** sur une seule ligne ** pour chaque nom de domaine)
mail._domainkey.DOMAIN.TLD DOMAIN.TLD:mail:/etc/opendkim/keys/DOMAIN.TLD/mail.private
Créer un tableau des signatures :
```bash
sudo nano /etc/opendkim/SigningTable
```
Texte à insérer dans le document :
```bash
*@DOMAIN.TLD mail._domainkey.DOMAIN.TLD
```
Maintenant on peut générer nos clés!
```bash
sudo cd /etc/opendkim/keys/DOMAIN.TLD
sudo opendkim-genkey -s mail -d DOMAIN.TLD
```
On affiche les paramètres DNS de DKIM générés par opendkim dans le terminal.
Ensuite, on installera la clé DKIM dans notre DNS. Ma zone DNS ressemble à lexemple ci-dessous.
(Faites très attention à la casse, le "p=...." doit rester sur une seule ligne dans le DNS et pas sur plusieurs, sinon cela ne sera pas accepté ni reconnu)
```bash
cat mail.txt
```
```bash
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=AAAKKUHGCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPFrBM54eXlZPXLJ7EFphiA8qGAcgu4lWuzhzxDDcIHcnA/fdklG2gol1B4r27p87rExxz9hZehJclaiqlaD8otWt8r/UdrAUYNLKNBFGHJ875467jstoAQAB" ; ----- DKIM key mail for DOMAIN.TLD
```
Et surtout, on noublie pas de donner les bons droits daccès à opendkim aux fichiers créés par root...
```bash
chown -Rv opendkim:opendkim /etc/opendkim*
```
Et enfin, on redémarre le tout :
```bash
sudo service opendkim restart
sudo service postfix restart
```
Pour tester que tout fonctionne bien (noubliez pas que la propagation DNS peut prendre jusquà 24h...) vous pouvez tout simplement vous rendre sur [mail-tester.com](http://www.mail-tester.com/), envoyer un courriel à ladresse indiquée et cliquer pour voir le résultat.
# SPF
Enfin, noubliez pas dajouter une clé SPF dans votre [zone DNS](/dns_config_fr) (ou un champ TXT si SPF nest pas disponible) :
```bash
DOMAIN.TLD 1800 TXT "v=spf1 a:DOMAIN.TLD ip4:<IPv4 publique du serveur> ip6:<IPv6 publique> mx ?all"
```
Pour rappel, le champ SPF indique que seule la machine utilisant ladresse IP indiquée dans votre zone DNS est autorisée à envoyer des courriels.
Si vous navez pas dIPv6 sur votre serveur, supprimez simplement la section ip6:<…>

9
dns.md
View file

@ -22,17 +22,18 @@ There are also different **types** of DNS records, which means that a domain can
You have several choices here. Note that you can mix and match solutions if you have multiple domains: for example, you can have `my-server.nohost.me` using solution **1.**, and `my-server.org` using solution **2.**, both leading to the same Yunohost server. You have several choices here. Note that you can mix and match solutions if you have multiple domains: for example, you can have `my-server.nohost.me` using solution **1.**, and `my-server.org` using solution **2.**, both leading to the same Yunohost server.
1. You can use YunoHost's DNS service, which will automatically configure your DNS for you. You must choose a domain that ends with `.nohost.me` or `noho.st` for this, which may be inconvenient for you (you would then only be able to use an email address like `john@my-server.noho.st`). 1. You can use YunoHost's DNS service, which will automatically configure your DNS for you. You must choose a domain that ends with `.nohost.me`, `.noho.st` or `.ynh.fr` for this, which may be inconvenient for you (you would then only be able to use an email address like `john@my-server.noho.st`).
**This is the recommended option if you are just starting out with self-hosting.**
**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_en) documentation: [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). You can also check out these pages for specific [registrar](/registrar_en) 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. **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.
3. Your YunoHost instance has its own DNS service, which means it will automatically configure its own DNS records, and that you can leave the setup to the instance itself. To do this, you must explain to your **registrar** that your YunoHost instance is the authoritative DNS server for your domain name. 3. Your YunoHost instance has its own DNS service, which means it will automatically configure its own DNS records, and that you can leave the setup to the instance itself. To do this, you must explain to your **registrar** that your YunoHost instance is the authoritative DNS server for your domain name.
<br>**Warning**: If you choose this option, all configuration options will be done automatically, you will retain a good deal of flexibility, but if your server gets knocked offline you will run into many problems. **Choose this only if you are certain.** **Warning**: If you choose this option, all configuration options will be done automatically, you will retain a good deal of flexibility, but if your server gets knocked offline you will run into many problems. **Choose this only if you are certain.**
4. Once your DNS service is running, your server can use it but it needs to be configured, this is the [DNS resolver](/dns_resolver_en). 4. Once your DNS service is running, your server can use it but it needs to be configured, this is the [DNS resolver](/dns_resolver_en).

View file

@ -1,64 +1,82 @@
## DNS zone configuration # DNS zone configuration
Sample DNS zone configuration for `domain.tld` domain name: DNS (domain name system) is a system that converts human-readable addresses
(domain names) into machine-understandable addresses (IP). For your server to be
easily accessible by human beings, and for some services like mail to work
properly, DNS must be configured.
#### Use yunohost command to generate my DNS ZONE If you're using a nohost.me / noho.st domain, the configuration should be
performed automatically. If you're using your own domain name (e.g. bought via
a registrar), you should manually configure your domain on your registrar's
interface.
## Recommended DNS configuration
YunoHost provides a recommended DNS configuration, available via :
- the webadmin, in Domain > your.domain.tld > DNS configuration ;
- or the command line, `yunohost domain dns-conf your.domain.tld`
For specific needs or specific setups, and if you know what you're doing, you
might want or have to tweak these or add additional ones (e.g. to handle
subdomains).
The recommended configuration typically looks like this :
Connect to your server using yunohost and run the following as root
```bash ```bash
yunohost domain dns-conf domain.tld #
# Basic ipv4/ipv6 records
#
@ 3600 IN A 111.222.33.44
* 3600 IN A 111.222.33.44
# (If your server is IPv6 capable, there are some AAAA records)
@ 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111
* 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111
#
# XMPP
#
_xmpp-client._tcp 3600 IN SRV 0 5 5222 your.domain.tld.
_xmpp-server._tcp 3600 IN SRV 0 5 5269 your.domain.tld.
muc 3600 IN CNAME @
pubsub 3600 IN CNAME @
vjud 3600 IN CNAME @
#
# Mail (MX, SPF, DKIM and DMARC)
#
@ 3600 IN MX 10 your.domain.tld.
@ 3600 IN TXT "v=spf1 a mx ip4:111.222.33.44 -all"
mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=someHuuuuuuugeKey"
_dmarc 3600 IN TXT "v=DMARC1; p=none"
``` ```
#### Redirection from the domain name to the IP address Though it might be easier to understand it if displayed like this :
```bash
@ 1800 IN A 111.222.333.444 # (Minimal) IPv4
@ 1800 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 # IPv6
```
#### Redirection from the domain name and subdomains to the IP address
```bash
* 1800 IN A 111.222.333.444 # Wildcard: *.domain.tld and domain.tld redirection to the IP address
* 1800 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788
```
#### Subdomains | Type | Name | Value |
```bash | :-----: | :--------------------: | :--------------------------------------------------: |
www 1800 IN CNAME @ # accesible at www.domain.tld | **A** | **@** | `111.222.333.444` (your IPv4) |
``` | A | * | `111.222.333.444` (your IPv4) |
| AAAA | @ | `2222:444:8888:3333:bbbb:5555:3333:1111` (your IPv6) |
| AAAA | * | `2222:444:8888:3333:bbbb:5555:3333:1111` (your IPv6) |
| **SRV** | **_xmpp-client._tcp** | `0 5 5222 your.domain.tld.` |
| **SRV** | **_xmpp-server._tcp** | `0 5 5269 your.domain.tld.` |
| CNAME | muc | `@` |
| CNAME | pubsub | `@` |
| CNAME | vjud | `@` |
| **MX** | **@** | `your.domain.tld.` (and priority: 10) |
| TXT | @ | `"v=spf1 a mx ip4:111.222.33.44 -all"` |
| TXT | mail._domainkey | `"v=DKIM1; k=rsa; p=someHuuuuuuugeKey"` |
| TXT | _dmarc | `"v=DMARC1; p=none"` |
#### XMPP #### A few notes about this table
```bash
_xmpp-client._tcp 1800 IN SRV 0 5 5222 domain.tld. # (Minimal) clients connection
_xmpp-server._tcp 1800 IN SRV 0 5 5269 domain.tld. # (Minimal) servers connection
muc 1800 IN CNAME @ # multi-user chat rooms at muc.domain.tld - Not all these lines are absolutely necessary. For a minimal setup, you only need the records in bold.
anonymous 1800 IN CNAME @ # connection without account at `anonymous.domain.tld` - The dot at the end of `your.domain.tld.` is important ;) ;
bosh 1800 CNAME @ # BOSH - `@` corresponds to `your.domain.tld`, and e.g. `muc` corresponds to `muc.your.domain.tld` ;
_xmppconnect 1800 TXT "_xmpp-client-xbosh=https://bosh.domain.tld:5281/http-bind" - These are example values ! See your generated conf for the actual values you should use ;
pubsub 1800 IN CNAME @ - We recommend a [TTL](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) of 3600 (1 hour). But you can use something else if you
vjud 1800 IN CNAME @ know what you're doing ;
``` - Don't put an IPv6 record if you're not sure IPv6 really works on your server !
You might have issues with Let's Encrypt if it doesn't.
#### Email
```bash
@ 1800 IN MX 10 domain.tld. # (Minimal)
@ 1800 IN TXT "v=spf1 a mx -all"
```
You should also consult the [DKIM documentation](#/dkim). DKIM allows yours mails not to be considered by spam by other mail service. In fact DKIM ask you to add an entry in your zone.
#### Set up
Replace:
- "`domain.tld`" with your own domain preserving the dot at the end.
- IP samples values with your server IP addresses:
* `111.222.333.444`: [IPv4](http://ip.yunohost.org/).
* `2001:AABB:CCDD:EEFF:1122:3344:5566:7788`: [IPv6](http://ip6.yunohost.org/).
DNS lines for subdomains, XMPP and email does not work without a redirection from the domain name to the IP address (one line is enough) because they depend on it.
<div class="alert alert-info"><b>To begin:</b> lines with "(Minimal)" are the minimal required DNS entries to make redirection work from the domain name to the IP adress, XMPP and email.</div>
<div class="alert alert-warning"><b>Warning:</b> <b>@</b> is the default domain name currently defined, some registrar (like OVH) does not accept it, so replace @ by your domain name (domain.tld**.**) with a dot at the end.</div>
#### Time to live
All DNS lines above have `1800` value (30 minutes). It corresponds to [Time to live (TTL)](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) which represents and indicate time, in seconds, during which the DNS line can be kept in the cache. After this time, the information must me considered obsolete and must be updated.

View file

@ -1,66 +1,82 @@
## Configuration de la zone DNS # Configuration de la zone DNS
Exemple de configuration des entrées de la zone DNS pour le nom de domaine `domain.tld` : 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
domaines) en adresses compréhensibles par la machine (les IPs). Pour que
votre serveur soit facilement accessible par d'autres êtres humains, et pour
que certains services comme le mail fonctionnent correctement, il est nécessaire
de configurer la zone DNS de votre domaine.
#### Utiliser la commande yunohost pour générer ma zone DNS Si vous utilisez un domaine en nohost.me / noho.st domain, la configuration
devrait être faite automatiquement. Si vous utilisez votre propre nom de domaine
(e.g. acheté chez un registrar), il vous faut configurer manuellement votre
domaine via l'interface de votre registrar.
## Configuration DNS recommandée
YunoHost fournit une configuration DNS recommandée, accessible via :
- la webadmin, dans Domaines > votre.domain.tld > Configuration DNS ;
- ou la ligne de commande, `yunohost domain dns-conf votre.domaine.tld`
Pour certains besoins ou installations particulières, et si vous savez ce que
vous faites, il vous faudra peut-être modifier cette recommandation ou ajouter
d'autres enregistrements (e.g. pour gérer des sous-domaines).
La configuration recommandée ressemble typiquement à :
Connecter vous à votre serveur et lancer la commande suivante.
```bash ```bash
yunohost domain dns-conf domain.tld #
# Enregistrements IPv4/IPv6 basiques
#
@ 3600 IN A 111.222.33.44
* 3600 IN A 111.222.33.44
# (Si votre serveur supporter l'IPv6, il a des enregistrements AAAA)
@ 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111
* 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111
#
# XMPP
#
_xmpp-client._tcp 3600 IN SRV 0 5 5222 votre.domaine.tld.
_xmpp-server._tcp 3600 IN SRV 0 5 5269 votre.domaine.tld.
muc 3600 IN CNAME @
pubsub 3600 IN CNAME @
vjud 3600 IN CNAME @
#
# Mail (MX, SPF, DKIM et DMARC)
#
@ 3600 IN MX 10 votre.domaine.tld.
@ 3600 IN TXT "v=spf1 a mx ip4:111.222.33.44 -all"
mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=uneGrannnnndeClef"
_dmarc 3600 IN TXT "v=DMARC1; p=none"
``` ```
#### Redirection du nom de domaine vers ladresse IP Mais il est peut-être plus facile de la comprendre si affichée de la façon
```bash suivante :
@ 1800 IN A 111.222.333.444 # (Minimum) IPv4
@ 1800 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 # IPv6
```
#### Redirection du nom de domaine et de tous les sous-domaines vers ladresse IP | Type | Nom | Valeur |
```bash | :-----: | :--------------------: | :----------------------------------------------------: |
* 1800 IN A 111.222.333.444 # Wildcard : *.domain.tld et domain.tld pointent vers ladresse IP. | **A** | **@** | `111.222.333.444` (votre IPv4) |
* 1800 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 | A | * | `111.222.333.444` (votre IPv4) |
``` | AAAA | @ | `2222:444:8888:3333:bbbb:5555:3333:1111` (votre IPv6) |
| AAAA | * | `2222:444:8888:3333:bbbb:5555:3333:1111` (votre IPv6) |
| **SRV** | **_xmpp-client._tcp** | `0 5 5222 votre.domaine.tld.` |
| **SRV** | **_xmpp-server._tcp** | `0 5 5269 votre.domaine.tld.` |
| CNAME | muc | `@` |
| CNAME | pubsub | `@` |
| CNAME | vjud | `@` |
| **MX** | **@** | `votre.domaine.tld.` (et priorité: 10) |
| TXT | @ | `"v=spf1 a mx ip4:111.222.33.44 -all"` |
| TXT | mail._domainkey | `"v=DKIM1; k=rsa; p=uneGrannnndeClef"` |
| TXT | _dmarc | `"v=DMARC1; p=none"` |
#### Sous-domaines #### Quelques notes à propos de cette table
```bash
www 1800 IN CNAME @ # accessible sur www.domain.tld
```
#### XMPP - Tous ces enregistrements ne sont pas nécessaires. Pour une installation minimale, seuls les enregistrements en gras sont nécessaires.
```bash - Le point à la fin de `votre.domaine.tld.` est important ;) ;
_xmpp-client._tcp 1800 IN SRV 0 5 5222 domain.tld. # (Minimum) connexions avec les clients - `@` corresponds à `votre.domaine.tld`, et par ex. `muc` corresponds à `muc.votre.domaine.tld` ;
_xmpp-server._tcp 1800 IN SRV 0 5 5269 domain.tld. # (Minimum) connexions entre serveurs - Les valeurs montrées sont des valeurs d'exemple ! Référez-vous à la configuration générée chez vous pour savoir quelles valeurs utiliser.
- Nous recommandons un [TTL](https://fr.wikipedia.org/wiki/Time_to_Live#Le_Time_to_Live_dans_le_DNS) de 3600 (1 heure). Mais vous pouvez utiliser une autre valeur si vous savez ce que vous faîtes ;
muc 1800 IN CNAME @ # salons de discussion sur `muc.domain.tld` - Ne mettez pas d'enregistrement IPv6 si vous n'êtes pas certains que l'IPv6 fonctionne sur votre serveur ! Vous aurez des problèmes avec Let's Encrypt si ce n'est pas le cas.
anonymous 1800 IN CNAME @ # connexion sans compte sur `anonymous.domain.tld`
bosh 1800 CNAME @ # BOSH
_xmppconnect 1800 TXT "_xmpp-client-xbosh=https://bosh.domain.tld:5281/http-bind"
pubsub 1800 IN CNAME @
vjud 1800 IN CNAME @
```
#### Email
```bash
@ 1800 IN MX 10 domain.tld. # (Minimum)
@ 1800 IN TXT "v=spf1 a mx -all"
```
<br />
Vous devriez aussi consulter [la documentation de DKIM](#/dkim_fr). DKIM permet d'éviter que vos mails soit considérés comme SPAM et DKIM nécessite une entrée spécifique dans votre zone DNS.
#### Mise en place
Remplacez :
* « `domain.tld` » par votre propre nom de domaine en conservant le point à la fin.
* les adresses IP dexemple par celles de votre serveur :
* `111.222.333.444` : [IPv4](http://ip.yunohost.org/).
* `2001:AABB:CCDD:EEFF:1122:3344:5566:7788` : [IPv6](http://ip6.yunohost.org/).
Les entrées DNS sous domaines, XMPP et email ne fonctionnent pas sans une redirection du nom de domaine vers ladresse IP (une ligne est suffisante) étant donné quelles en sont dépendantes.
<div class="alert alert-info">**Pour débuter :** les lignes avec « (Minimum) » sont les entrées DNS minimales requises pour avoir une redirection du nom de domaine vers ladresse IP, XMPP et le courrier électronique qui fonctionnent.</div>
<div class="alert alert-warning">**Attention :** le **@** représente le nom de domaine par défaut que lon est en train de définir, certains bureaux denregistrement ne lacceptent pas (ex : OVH). Il faut donc remplacer le « @ » par votre nom de domaine (domain.tld**.**) sans oublier un point à la fin.</div>
#### Time to live
Toutes les entrées DNS ci-dessus ont la valeur `1800` (30 minutes). Elle correspond au
[Time to live (TTL)](https://fr.wikipedia.org/wiki/Time_to_Live#Le_Time_to_Live_dans_le_DNS) qui représente et indique le temps, en secondes, durant lequel lentrée DNS peut être conservée en cache. Passé ce délai, linformation doit être considérée comme obsolète et doit être mise à jour.

View file

@ -6,7 +6,7 @@ La configuration des DNS est une étape cruciale pour que votre serveur soit acc
### Quest-ce que cest? ### Quest-ce que cest?
**Nhésitez à pas regarder la très bonne conférence de Stéphane Bortzmeyer : **Nhésitez pas à regarder la très bonne conférence de Stéphane Bortzmeyer :
http://www.iletaitunefoisinternet.fr/dns-bortzmeyer/** http://www.iletaitunefoisinternet.fr/dns-bortzmeyer/**
DNS signifie « Domain Name Server » en anglais, et est souvent employé pour désigner la configuration de vos noms de domaine. Vos noms de domaines doivent en effet pointer vers quelque chose (en général une adresse IP). DNS signifie « Domain Name Server » en anglais, et est souvent employé pour désigner la configuration de vos noms de domaine. Vos noms de domaines doivent en effet pointer vers quelque chose (en général une adresse IP).
@ -27,7 +27,7 @@ Il existe également des **types** denregistrement DNS, ce qui veut dire qu
Plusieurs choix soffrent à vous. Notez que vous pouvez cumuler ces solutions si vous possédez plusieurs domaines : par exemple vous pouvez avoir `mon-serveur.nohost.me` en utilisant la solution **1.**, et `mon-serveur.org` en utilisant la solution **2.**, redirigeant vers le même serveur YunoHost. Plusieurs choix soffrent à vous. Notez que vous pouvez cumuler ces solutions si vous possédez plusieurs domaines : par exemple vous pouvez avoir `mon-serveur.nohost.me` en utilisant la solution **1.**, et `mon-serveur.org` en utilisant la solution **2.**, redirigeant vers le même serveur YunoHost.
1. Vous pouvez utiliser le service de DNS de YunoHost, qui soccupera de configurer tout seul les DNS de votre instance YunoHost. Vous devrez en revanche choisir un domaine se terminant par `.nohost.me` ou `.noho.st`, ce qui peut être inconvenant (vous aurez alors des adresses email telles que `jean@mon-serveur.noho.st`). 1. Vous pouvez utiliser le service de DNS de YunoHost, qui soccupera de configurer tout seul les DNS de votre instance YunoHost. Vous devrez en revanche choisir un domaine se terminant par `.nohost.me`, `.noho.st` ou `.ynh.fr`, ce qui peut être inconvenant (vous aurez alors des adresses email telles que `jean@mon-serveur.noho.st`).
**Cest la méthode recommandée si vous débutez.** **Cest la méthode recommandée si vous débutez.**
2. Vous pouvez utiliser le service de DNS de votre **registrar** (Gandi, OVH, BookMyName ou autre) pour configurer vos noms de domaine. Voici la [configuration DNS standard](/dns_config_fr). Il est aussi possible d'utiliser une redirection DNS locale, plus d'infos sur comment [Accéder à son serveur depuis le réseau local](/dns_local_network_fr). 2. Vous pouvez utiliser le service de DNS de votre **registrar** (Gandi, OVH, BookMyName ou autre) pour configurer vos noms de domaine. Voici la [configuration DNS standard](/dns_config_fr). Il est aussi possible d'utiliser une redirection DNS locale, plus d'infos sur comment [Accéder à son serveur depuis le réseau local](/dns_local_network_fr).

View file

@ -19,7 +19,7 @@ You may retrieve your server private IP adress through different means:
## Configure DNS of Internet box or router ## Configure DNS of Internet box or router
The goal here is to create a network wide redirection handled by your router. The idea is to create a DNS redirection to your server's IP. You should access your router's configuration and look for DNS configuration, then add a redirection to your server's IP (e.g. redirect "yunohot.local" to 192.168.1.21). The goal here is to create a network wide redirection handled by your router. The idea is to create a DNS redirection to your server's IP. You should access your router's configuration and look for DNS configuration, then add a redirection to your server's IP (e.g. redirect "yunohost.local" to 192.168.1.21).
### SFR Box ### SFR Box
If you haven't found your server private IP, you may find it using the SFR box admin panel: If you haven't found your server private IP, you may find it using the SFR box admin panel:

View file

@ -19,7 +19,7 @@ Vous pouvez retrouver ladresse privée de votre serveur de différentes mani
## Configurer le DNS de la box ou du routeur ## Configurer le DNS de la box ou du routeur
L'idée ici est de créer une redirection qui sera active sur tout votre réseau. Le but est de créer une redirection DNS vers l'ip de votre serveur YunoHost dans votre box. Il faut donc accéder à l'interface de configuration de votre box et aux parametrages DNS, puis créer la redirection locale (par exemple, yunohost.local renvoi sur 192.168.21). L'idée ici est de créer une redirection qui sera active sur tout votre réseau. Le but est de créer une redirection DNS vers l'ip de votre serveur YunoHost dans votre box. Il faut donc accéder à l'interface de configuration de votre box et aux paramétrages DNS, puis créer la redirection locale (par exemple, yunohost.local renvoi sur 192.168.21).
### Box SFR ### Box SFR
Si vous ne disposez toujours pas de ladresse IP privée de votre serveur, vous pouvez la trouver sur linterface de votre box SFR : Si vous ne disposez toujours pas de ladresse IP privée de votre serveur, vous pouvez la trouver sur linterface de votre box SFR :

View file

@ -1,5 +1,7 @@
# YunoHost DNS Resolver # YunoHost DNS Resolver
+<div class="alert alert-danger">This page is deprecated / obsolete. Information it contains should be updated (or should be removed).</div>
### Presentation ### Presentation
YunoHost provide a DNS service for DNS name resolution. Usually, your server is not configured to use it, it's your ISP DNS. For instance, for the Free ISP with Freebox router the DNS resolver IP is `192.168.0.254`. YunoHost provide a DNS service for DNS name resolution. Usually, your server is not configured to use it, it's your ISP DNS. For instance, for the Free ISP with Freebox router the DNS resolver IP is `192.168.0.254`.

View file

@ -1,5 +1,7 @@
# Résolveur DNS de YunoHost # Résolveur DNS de YunoHost
<div class="alert alert-danger">Cette page est dépréciée / obsolète. Les informations présentées ont besoin d'être mise à jour (ou doivent être retirée).</div>
### Présentation ### Présentation
YunoHost est installé avec un service DNS pour la résolution des noms de domaine. En général, votre serveur nest pas configuré, cest celui de votre FAI. YunoHost est installé avec un service DNS pour la résolution des noms de domaine. En général, votre serveur nest pas configuré, cest celui de votre FAI.
Par exemple pour une Freebox la résolution se fait par ladresse `192.168.0.254`. Par exemple pour une Freebox la résolution se fait par ladresse `192.168.0.254`.

View file

@ -2,8 +2,20 @@
<div class="alert alert-danger"> <div class="alert alert-danger">
<b> <b>
This page isn't valid anymore, YunoHost 2.4 doesn't work anymore on Docker Yunohost doesn't support Docker officially since issues with versions 2.4+.
because YunoHost requires systemdn and Docker has chosen to not support it (and 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). there are other problems link to the firewall and services).
</b> </b>
</div> </div>
## Community images
However, community images exist and are available on Docker Hub :
* AMD64 (classic)
* https://hub.docker.com/r/domainelibre/yunohost2/ (Yunohost v2.7)
* ARMV7 (raspberry pi 2/3 ...)
* https://hub.docker.com/r/domainelibre/yunohost2-arm/ (Yunohost v2.7)
* ARMV6 (raspberry pi 1)
* https://hub.docker.com/r/tuxalex/yunohost-armv6/

View file

@ -2,9 +2,20 @@
<div class="alert alert-danger"> <div class="alert alert-danger">
<b> <b>
Cette page n'est plus valide, YunoHost 2.4 ne marche PLUS sous Docker car Yunohost ne supporte plus officiellement Docker depuis les problèmes rencontrés avec la version 2.4+.
YunoHost dépend désormait de systemd et que docker a décidé qu'ils ne le En cause, YunoHost dépend désormait de systemd et docker a décidé qu'ils ne le
supporteraient pas (et il y a d'autres problèmes liés au firewall et aux supporteraient pas nativement (et il y a d'autres problèmes liés au firewall et aux
services). services).
</b> </b>
</div> </div>
## Images communautaires
Cependant il existe des images communautaires disponibles sur Docker Hub :
* AMD64 (classique)
* https://hub.docker.com/r/domainelibre/yunohost2/ (Yunohost v2.7)
* ARMV7 (raspberry pi 2/3 ...)
* https://hub.docker.com/r/domainelibre/yunohost2-arm/ (Yunohost v2.7)
* ARMV6 (raspberry pi 1)
* https://hub.docker.com/r/tuxalex/yunohost-armv6/

14
docs.md
View file

@ -23,9 +23,11 @@ YunoHost's documentation has 3 different sections:
</div> </div>
<div class="row text-center" style="margin-top: 2em;"> * Project's life:
<div class="col col-md-5 col-md-offset-3"> * [Frequently asked questions](/faq_en)
<a class="btn btn-default btn-lg" href="/sitemap"><span class="glyphicon glyphicon-list"></span> Sitemap</a> * [Project organization](/project_organization)
<p><small class="text-muted">List of all pages of the web site</small></p> * [Blog](https://forum.yunohost.org/c/announcement)
</div> * [Forum](https://forum.yunohost.org)
</div> * [Chat rooms](/chat_rooms_en)
* [Communication](/communication_en)
* [Support / Help](/help)

33
docs_ar.md Normal file
View file

@ -0,0 +1,33 @@
#<div dir="auto">الدليل</div>
<p dir="rtl" class="lead">
دليل واي يونوهوست YunoHost يرتكز أساسًا على ثلاثة محاور :
</p>
<div class="row text-center">
<div dir="rtl" class="col col-md-4 col-md-offset-1">
<a class="btn btn-success btn-lg" href="/userdoc_fr"><span class="glyphicon glyphicon-user"></span> دليل المستخدم</a>
<p><small class="text-muted">كل ما يخص طريقة استخدام السيرفر يوميًا</small></p>
</div>
<div dir="rtl" class="col col-md-4 col-md-offset-1">
<a class="btn btn-primary btn-lg" href="/admindoc_fr"><span class="glyphicon glyphicon-lock"></span> دليل المدير</a>
<p><small class="text-muted">يتطرق إلى طريقة التنصيب و إدارة السيرفر و التطبيقات</small></p>
</div>
<div dir="rtl" class="col col-md-5 col-md-offset-3">
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> دليل المساهم</a>
<p><small class="text-muted">يحتوي على كافة المعلومات التي تخصنا و أسلوب عملنا و مساهمتنا</small></p>
</div>
</div>
* Project's life:
* [Frequently asked questions](/faq_en)
* [Project organization](/project_organization)
* [Blog](https://forum.yunohost.org/c/announcement)
* [Forum](https://forum.yunohost.org)
* [Chat rooms](/chat_rooms_en)
* [Communication](/communication_en)
* [Support / Help](/help)

View file

@ -23,10 +23,11 @@ La documentation de YunoHost sarticule autour de trois sections :
</div> </div>
<div class="row text-center" style="margin-top: 2em;"> * Vie du projet :
<div class="col col-md-5 col-md-offset-3"> * [Foire aux questions](/faq_fr)
<a class="btn btn-default btn-lg" href="/sitemap_fr"><span class="glyphicon glyphicon-list"></span> Plan du site</a> - [Organisation du projet](project_organization_fr)
<p><small class="text-muted">Liste de toutes les pages du site</small></p> * [Blog](https://forum.yunohost.org/c/announcement)
</div> - [Forum](https://forum.yunohost.org)
- [Salons de discussions](/chat_rooms_fr)
</div> * [Communication extérieure](/communication)
* [Support / Aide](/help_fr)

View file

@ -1,15 +0,0 @@
# Email
### Summary
* [Configure email client](email_configure_client_en)
* [MX DNS zone](/dns_config_en)
* [Open ports on the router](/isp_box_config_en)
* [Migrate emails](email_migration_en)
* [Forms to remove blacklisting of your IP address](blacklist_forms_en)
* [Use DKIM](dkim_en)
#### YunoHost provides
* [Postfix](http://www.postfix.org): a SMTP email server
* [Dovecot](http://www.dovecot.org): an IMAP email server
* [Rspamd](https://rspamd.com): an antispam
* [RoundCube](/apps): a webmail

View file

@ -1,40 +1,28 @@
## Configuration desktop email client ## Configuring email client
*[Documentation linked to YunoHost email](/email_fr)*. 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.
You can access your emails via desktop email clients such as Mozilla Thunderbird. ##### Generic settings
#### Requirements | Protocol | Port | Encryption | Authentication | Username |
* Email address | :--: | :-: | :--: | :--: | :--: |
* Password of the user account | IMAP | 993 | SSL/TLS | Normal password | `username` (without the `@domain.tld`) |
| SMTP | 587 | STARTTLS | Normal password | `username` (without the `@domain.tld`) |
##### Settings ### <img src="images/thunderbird.png" width=50> Configure Mozilla Thunderbird (on a desktop computer)
| Protocol | Port | Encryption |
| :--: | :-: | :--: |
| IMAP | 993 | SSL/TLS |
| SMTP | 465 | SSL/TLS |
#### Mozilla Thunderbird The automatic detection tool of Thunderbird does not work yet with YunoHost. You will need to set it up manually. To do so, add the account information, then select port 993 with SSL/TLS for IMAP, and port 587 with STARTTLS for SMTP. Afterwards select 'Normal Password' for Authentication and click on 'Advanced Config'. You will need to accept the certificate exceptions for fetching mails and after you send your first mail. Don't forget to remove the dot before the domain name.
The automatic detection tool of Thunderbird does not work with YunoHost. You will need to set it up manually. To do so, add the account information, then select SSL/TLS for IMAP and SMTP. Afterwards select 'Normal Password' for Authentication and click on 'Advanced Config'. You will need to accept the certificate exceptions for fetching mails and after you send your first mail. Remove dot before domain name. <img src="/images/thunderbird_config_1.png" width=900>
<img src="/images/thunderbird_config_2.png" width=900>
<img src="/images/thunderbird-config.png" width=900>
* [Manage alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases) * [Manage alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases)
#### For Android ### <img src="images/k9mail.png" width=50> Configure K-9 Mail (on Android)
[K-9 Mail](https://en.wikipedia.org/wiki/K-9_Mail) application works.
#### For Firefox OS Follow the following steps. (As for thunderbird, you might need to accept certificates at some points)
Tested with Firefox OS 2.6. <a href="/images/k9mail_config_1.png"><img src="/images/k9mail_config_1.png" width=200/></a>
On the home screen, enter the user name and the email address. Then use manual configuration: <a href="/images/k9mail_config_2.png"><img src="/images/k9mail_config_2.png" width=200/></a>
<a href="/images/k9mail_config_3.png"><img src="/images/k9mail_config_3.png" width=200/></a>
<a href="/images/ffos_email_config_home_screen_empty.png"><img src="/images/ffos_email_config_home_screen_empty.png" width=200/></a> <a href="/images/ffos_email_config_home_screen_fill.png"><img src="/images/ffos_email_config_home_screen_fill.png" width=200/></a> <a href="/images/k9mail_config_4.png"><img src="/images/k9mail_config_4.png" width=200/></a>
Configure manually the form as shown on following screenshots:
<a href="/images/ffos_email_config_manual_conf_empty.png"><img src="/images/ffos_email_config_manual_conf_empty.png" width=200/></a> <a href="/images/ffos_email_config_manual_conf_fill.png"><img src="/images/ffos_email_config_manual_conf_fill.png" width=200/></a>
<a href="/images/ffos_email_config_manual_conf_2_empty.png"><img src="/images/ffos_email_config_manual_conf_2_empty.png" width=200/></a> <a href="/images/ffos_email_config_manual_conf_2_fill.png"><img src="/images/ffos_email_config_manual_conf_2_fill.png" width=200/></a>

View file

@ -1,40 +1,28 @@
## Configuration client email de bureau ## Configuration desktop email client
*[Documentation en rapport avec lemail de YunoHost](/email_fr)*. 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.
Il est possible daccéder à ses emails grâce à un client lourd de messagerie électronique tel que Mozilla Thunderbird. ##### Réglages génériques
#### Prérequis | Protocole | Port | Chiffrement | Authentification | Login |
* Adresse email principale | :--: | :-: | :--: | :--: | :--: |
* Mot de passe du compte utilisateur | 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`) |
#### Réglages génériques ### <img src="images/thunderbird.png" width=50> Configurer Mozilla Thunderbird
| Protocole | Port | Chiffrement |
| :--: | :-: | :--: |
| IMAP | 993 | SSL/TLS |
| SMTP | 465 | SSL/TLS |
#### Mozilla Thunderbird L'outil de détection automatique de Thunderbird ne fonctionne actuellement pas avec YunoHost. Il vous faudra remplir les champs manuellement. Commencez par remplir les informations de base (Nom, adresse et mot de passe), cliquez sur Continuer puis Configuration Manuelle. Enlevez le `.` avant le nom de domaine. Sélectionnez le port 993 avec SSL/TLS pour IMAP, et le port 587 avec STARTTLS pour SMTP. Sélectionnez 'Mot de passe normal' pour l'authentification. Testez la configuration puis validez. (Il vous faudra ensuite possiblement accepter des certificats pour que tout fonctionne correctement.)
Lutilitaire de détection automatique de Thunderbird ne fonctionne pas avec le serveur email de YunoHost. Il faut donc passer en configuration manuelle. Noubliez pas denlever le point devant le nom de domaine.
<img src="/images/thunderbird-config.png" width=900> <img src="/images/thunderbird_config_1.png" width=900>
<img src="/images/thunderbird_config_2.png" width=900>
* [Gestion des alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases) * [Gérer les alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases)
#### Pour Android ### <img src="images/k9mail.png" width=50> Configurer K-9 Mail (sur Android)
Lapplication [K-9 Mail](https://github.com/k9mail) fonctionne.
Suivez les instructions suivantes. (Comme pour Thunderbird, il vous faudra peut-être accepter des certificats à un moment)
#### Pour Firefox OS <a href="/images/k9mail_config_1.png"><img src="/images/k9mail_config_1.png" width=200/></a>
<a href="/images/k9mail_config_2.png"><img src="/images/k9mail_config_2.png" width=200/></a>
Testé avec Firefox OS 2.6. <a href="/images/k9mail_config_3.png"><img src="/images/k9mail_config_3.png" width=200/></a>
Sur la page daccueil, entrez votre nom dutilisateur et ladresse email, puis allez dans la configuration manuelle : <a href="/images/k9mail_config_4.png"><img src="/images/k9mail_config_4.png" width=200/></a>
<a href="/images/ffos_email_config_home_screen_empty.png"><img src="/images/ffos_email_config_home_screen_empty.png" width=200/></a> <a href="/images/ffos_email_config_home_screen_fill.png"><img src="/images/ffos_email_config_home_screen_fill.png" width=200/></a>
Configurer manuellement le formulaire comme indiqué sur les captures décran suivantes :
<a href="/images/ffos_email_config_manual_conf_empty.png"><img src="/images/ffos_email_config_manual_conf_empty.png" width=200/></a> <a href="/images/ffos_email_config_manual_conf_fill.png"><img src="/images/ffos_email_config_manual_conf_fill.png" width=200/></a>
<a href="/images/ffos_email_config_manual_conf_2_empty.png"><img src="/images/ffos_email_config_manual_conf_2_empty.png" width=200/></a> <a href="/images/ffos_email_config_manual_conf_2_fill.png"><img src="/images/ffos_email_config_manual_conf_2_fill.png" width=200/></a>

Some files were not shown because too many files have changed in this diff Show more