diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..783a4aee --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*~ +*.sw[op] diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..18a27402 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,6 @@ +language: bash + +script: + - bash tests/dead_links.sh + - bash tests/unreferenced_pages.sh + - bash tests/check_code_block_syntax.sh diff --git a/OVH.md b/OVH.md new file mode 100644 index 00000000..4dfff7e2 --- /dev/null +++ b/OVH.md @@ -0,0 +1,42 @@ +# DNS Configuration with OVH + +Let's see how to properly set the DNS redirections with [OVH](http://www.ovh.com). + +Once you bought your domain name, got to the Web Control Panel, and click on you domain name on the left side: + + + +Click on the **DNS Zone** tab, then on **Add an entry**: + + + +Now you need to add the DNS redirections as specified by the [standard DNS zone configuration](/dns_config) + +Click on "Change in text format", keep the first four lines: +```bash +$TTL 3600 +@ IN SOA dns104.ovh.net. tech.ovh.net. (2020083101 86400 3600 3600000 60) + IN NS dns104.ovh.net. + IN NS ns104.ovh.net. +``` +then erase everything below, and replace it with the configuration generated by YunoHost as explained in [this page](/dns_config). + + +### Dynamic IP + +[General tutorial on dynamic IP](dns_dynamicip). + +You should follow this part if you have a dynamic IP. + +Find out if your ISP provides you with a dynamic IP adress [here](/isp). + +Let's create a DynHost id. + +Follow [this tutorial](http://blog.developpez.com/brutus/p6316/ubuntu/configurer_dynhost_ovh_avec_ddclient) to install ddclient. +ddclient will take care of telling OVH that the IP has changed. Then OVH will update the IP. + +You need to add in the configuration file: +* your login and password DynHost +* your domain name + +You should also check out [OVH's guide on DynHost](https://www.ovh.co.uk/g2024.hosting_dynhost). diff --git a/OVH_fr.md b/OVH_fr.md new file mode 100644 index 00000000..317b6841 --- /dev/null +++ b/OVH_fr.md @@ -0,0 +1,40 @@ +# Configuration DNS avec OVH + +Nous allons voir comment configurer le DNS avec [OVH](http://www.ovh.com). + +Après achat de votre nom de domaine, rendez vous dans l'espace client pour retrouver le panneau de configuration d'OVH, et cliquez sur votre domaine à gauche : + + + +Cliquez sur l'onglet **Zone DNS**, puis sur **Ajouter une entrée** : + + + +Cliquer sur "Modifier en mode textuel", garder les 4 premières lignes : +```bash +$TTL 3600 +@ IN SOA dns104.ovh.net. tech.ovh.net. (2020083101 86400 3600 3600000 60) + IN NS dns104.ovh.net. + IN NS ns104.ovh.net. +``` +puis effacer tout ce qu'il y a en-dessous, et le remplacer par la configuration donnée par votre serveur, comme indiqué dans la [configuration DNS standard](/dns_config). + + +### IP dynamique + +[Tutoriel plus général sur l’IP dynamique](/dns_dynamicip). + +Cette partie est à suivre, que si votre IP est dynamique. + +Pour savoir si votre fournisseur d’accès internet vous fournit une IP dynamique [voir ici](/isp). + +Commencez par créer un identifiant DynHost. + +Suivez [ce tutoriel](http://blog.developpez.com/brutus/p6316/ubuntu/configurer_dynhost_ovh_avec_ddclient) pour l’installation de ddclient. +ddclient annonce à OVH le changement d’IP. OVH va alors changer votre IP. + +Il faut ajouter dans le fichier de configuration : +* votre identifiant et votre mot de passe DynHost +* votre nom de domaine + +Il existe un [guide d'utilisation DynHost fait par OVH](https://docs.ovh.com/fr/fr/web/domains/utilisation-dynhost/). diff --git a/README.md b/README.md new file mode 100644 index 00000000..ed5d3ad2 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# YunoHost Documentation + +* [Web Site](https://yunohost.org) +* Based on [Simone](https://github.com/YunoHost/Simone) + +Please report [issues on YunoHost bugtracker](https://github.com/YunoHost/issues/issues). + +You can live test any changes by adding `/edit` to the URL on +[yunohost.org](https://yunohost.org). For example, if you make changes to +[apps.md](./apps.md), you can test them on [yunohost.org/#/apps/edit](https://yunohost.org/#/apps/edit). diff --git a/XMPP.md b/XMPP.md new file mode 100644 index 00000000..92d53158 --- /dev/null +++ b/XMPP.md @@ -0,0 +1,62 @@ +# Chat, VoIP and social network with + +By default, YunoHost comes installed with an instant messaging server called Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (previously known as Jabber). + +This protocol is already used by millions of people around the world—it is an open protocol. +All applications based on XMPP are compatible with each other: When using an XMPP client, you can interact with anybody who has an XMPP account. + +XMPP is an extensible protocol—this means users can configure "extensions" to chatrooms, share messages and files, and make voice and video calls using XMPP. + +## XMPP account + +To use an XMPP account you need a username, in the format: `user@domain.tld`, and a password. + +With YunoHost, an XMPP account is created for all YunoHost users automatically. +The XMPP account credentials corresponds to the user's main e-mail address and password. + +## Connecting to your YunoHost XMPP account + +You can connect to your YunoHost XMPP account in different ways. + +### Web clients + +- [Movim](https://movim.eu) +- [ConverseJS](https://conversejs.org/) +- [Libervia/Salut à Toi](https://salut-a-toi.org/) + +### Desktop clients + +- [Gajim](https://gajim.org/) (Linux, Windows) +- [Dino](https://dino.im) (Linux) +- [Thunderbird](https://www.thunderbird.net/fr/) (multiplatform) +- [Beagle IM](https://beagle.im/) (macOS) +- [Profanity](https://profanity-im.github.io/) (Linux) + +### Mobile clients + +- [Conversations](https://conversations.im/) (Android) +- [Xabber](https://xabber.com) (Android) +- [Movim](https://movim.eu) (Android) +- [ChatSecure](https://chatsecure.org/) (iOS) +- [Monal](https://monal.im/) (iOS) +- [Siskin IM](https://siskin.im/) (iOS) +- [Kaidan](https://www.kaidan.im/) (Ubuntu Touch / Plasma Mobile) + +Here is an exhaustive list of XMPP clients: https://xmpp.org/software/clients.html + +## Encrypt conversations with OMEMO + +XMPP chats can be made secure and private using [OMEMO encryption](https://xmpp.org/extensions/xep-0384.html), for instance using Gajim: +- Install `gajim` and the plugin `gajim-omemo`. +- Turn on the plugin in `Tools > Plugins`. +- Turn on the encryption in the chat with somebody who also has OMEMO. + +## Chatrooms + +To create a chatroom (multi-user chat) on your YunoHost server, use the identifier `chatroomname@muc.yourdomain.tld`. + +For this to work you need to [add the corresponding `muc.` DNS record](/dns_config) in the DNS configuration. + +## VoIP and videoconferences + +A practical tool to call an XMPP client, either with voice or voice+video, is to use the [Jitsi](https://jitsi.org/) client. diff --git a/XMPP_es.md b/XMPP_es.md new file mode 100644 index 00000000..87ee1799 --- /dev/null +++ b/XMPP_es.md @@ -0,0 +1,53 @@ +# Chat, VoIP y red local con + +YunoHost está instalado con un servidor de mensajería instantánea Metronome que implementa el [protocolo XMPP](https://es.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol). + +XMPP es un protocolo abierto y extensible que también permite crear salones de discusión, compartir status y datos, echar llamadas en VoIP y hacer videoconferencias. + +Todas las aplicaciones basadas en XMPP son compatibles entre ellas : cuando utilizas un cliente XMPP puedes discutir con cualquier persona que tenga una cuenta XMPP/Jabber. Este protocolo ya es utilizado por millones de personas en el mundo. + +## Cuenta XMPP/Jabber + +Una cuenta XMPP/Jabber está basada en un ID bajo la forma `usuario@dominio.tld`, así como una contraseña. La contraseña es la de la cuenta del usuario de YunoHost. + +## Conectarse a XMPP + +Existen varios clientes web de tipo red social, como : +- [Movim](https://movim.eu) +- [ConverseJS](https://conversejs.org/) +- [Libervia/Salut à Toi](https://salut-a-toi.org/) + +También puedes utilizar un cliente Desktop como : +- [Gajim](https://gajim.org/es/) (Linux, Windows) +- [Dino](https://dino.im) (Linux) +- [Thunderbird](https://www.thunderbird.net/es-ES/) (multiplataformas) +- [Beagle IM](https://beagle.im/) (macOS) +- [Profanity](https://profanity-im.github.io/) (Linux) + +... o un cliente smartphone : +- [Conversations](https://conversations.im/) (Android) +- [Xabber](http://xabber.com) (Android) +- [Movim](https://movim.eu) (Android) +- [ChatSecure](https://chatsecure.org/) (iOS) +- [Siskin IM](https://siskin.im/) (iOS) +- [Monal](https://monal.im/) (iOS) +- [Kaidan](https://www.kaidan.im/) (Ubuntu Touch / Plasma Mobile) + +Aquí tienes una lista más exhaustiva de clientes XMPP (en) : https://xmpp.org/software/clients.html + +### Cifrar tu conversaciones con OMEMO : + +Es posible cifrar tu conversaciones XMPP con la ayuda de [OMEMO](https://xmpp.org/extensions/xep-0384.html), por ejemplo utilizando Gajim : +* Instalar `gajim` y el plugin `gajim-omemo` +* Activar el plugin en `Tools > Plugins` +* Activar el cifrado en una conversación con un contacto que también tiene OMEMO activado. + +### Salón de discusión + +Para crear un salón de discusión (Multi-user chat) en tu servidor YunoHost, utiliza el ID nombredelsalon@muc.dominio.tld (donde dominio.tld es el dominio principal de tu servidor). + +Si utilizas un nombre de dominio personal, es necesario [añadir una redirección de tipo CNAME para el subdominio `muc.`](/dns_config) en tu servidor DNS. + +### VoIP y videoconferencias + +Un buen medio de llamar a un contacto XMPP en VoIP o en llamada video, es utilizar el cliente [Jitsi](http://jitsi.org/). diff --git a/XMPP_fr.md b/XMPP_fr.md new file mode 100644 index 00000000..5a8871b7 --- /dev/null +++ b/XMPP_fr.md @@ -0,0 +1,60 @@ +# Chat, VoIP et réseau social avec + +YunoHost est installé par défaut avec un serveur de messagerie instantanée Metronome qui implémente le [protocole XMPP](https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (anciennement connu sous le nom Jabber). + +Ce protocole est déjà utilisé par des millions de personnes dans le monde - c'est un protocole ouvert. Toutes les applications basées sur XMPP sont compatibles entre elles : lorsque vous utilisez un client XMPP, vous pouvez interagir avec quiconque possède un compte XMPP. + +XMPP est un protocole extensible - cela signifie que les utilisateurs peuvent configurer des "extensions" pour les salons de discussions, partager des messages et des fichiers, et passer des appels voix et vidéo en utilisant XMPP. + +## Compte XMPP + +Pour utiliser XMPP, il est nécessaire de disposer d'un compte dont l'identifiant prends la forme `utilisateur@domaine.tld`, ainsi qu’un mot de passe. + +Sous YunoHost, un compte XMPP est créé automatiquement pour chaque utilisateur. Les identifiants XMPP sont simplement l’adresse courriel principale de l'utilisateur ainsi que son mot de passe. + +## Se connecter à son compte XMPP YunoHost + +Il existe différents types de clients pour se connecter à XMPP. + +### Clients web + +- [Movim](https://movim.eu) +- [ConverseJS](https://conversejs.org/) +- [Libervia/Salut à Toi](https://salut-a-toi.org/) + +### Clients de bureau + +- [Gajim](http://gajim.org/fr/) (Linux, Windows) +- [Dino](https://dino.im) (Linux) +- [Thunderbird](https://www.thunderbird.net/) (multiplateforme) +- [Beagle IM](https://beagle.im/) (macOS) +- [Profanity](https://profanity-im.github.io/) (Linux) + +### Clients sur mobile + +- [Conversations](https://conversations.im/) (Android) +- [Xabber](http://xabber.com) (Android) +- [Movim](https://movim.eu) (Android) +- [Monal](https://monal.im/) (iOS) +- [ChatSecure](https://chatsecure.org/) (iOS) +- [Siskin IM](https://siskin.im/) (iOS) +- [Kaidan](https://www.kaidan.im/) (Ubuntu Touch / Plasma Mobile) + +Voici une liste plus exhaustive des clients XMPP : https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP + +## Chiffrer ses conversations avec OMEMO + +Il est possible de rendre les conversations plus sécurisées et privées en les chiffrants à l'aide de [OMEMO](https://xmpp.org/extensions/xep-0384.html), notamment en utilisant Gajim : +- Installer `gajim` et le plugin `gajim-omemo` +- Activez le plugin dans `Outils > Plugins` +- Activez le chiffrement dans une conversation avec un contact disposant de OMEMO. + +## Salon de discussion + +Pour créer un salon de discussion (Multi-user chat) sur votre serveur YunoHost utilisez l’identifiant nomsalon@muc.domaine.tld (où domaine.tld est le domaine principal de votre serveur). + +Si vous utilisez un nom de domaine personnel, il est nécessaire d’[ajouter une redirection de type CNAME pour le sous domaine `muc.`](/dns_config) au niveau de votre serveur DNS. + +## VoIP et visioconférence + +Un moyen pratique d’appeler un contact XMPP, en VoIP ou en appel vidéo, est d’utiliser le client [Jitsi](http://jitsi.org/). diff --git a/admin.md b/admin.md new file mode 100644 index 00000000..fcfbff27 --- /dev/null +++ b/admin.md @@ -0,0 +1,11 @@ +# Administrator web interface + +YunoHost has an administrator web interface. The other way to administrate your YunoHost install is through the [command line](/commandline). + +### Access + +You can access your administrator web interface at this address: https://example.org/yunohost/admin (replace 'example.org' with your own domain name) + +
+ +
diff --git a/admin_api.md b/admin_api.md new file mode 100644 index 00000000..5fbf4ede --- /dev/null +++ b/admin_api.md @@ -0,0 +1,55 @@ +# Administration from the API or an external application + +All command line actions can also be ran from the web API. The API is available at https://your.server/yunohost/api. For now there's no documentation on the various routes... but you can get an idea by looking at the actionmap [here](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml) (in particular the `api` stuff). + +## Using cURL + +You must first retrieve a login cookie to perform the actions. Here is an example with cURL: + +```bash +# Login (with admin password) +curl -k -H "X-Requested-With: customscript" \ + -d "password=supersecretpassword" \ + -dump-header headers \ + https://your.server/yunohost/api/login + +# GET example +curl -k -i -H "Accept: application/json" \ + -H "Content-Type: application/json" \ + -L -b headers -X GET https://your.server/yunohost/api/ROUTE \ + | grep } | python -mjson.tool +``` + +## Using a PHP class + +To simplify the remote administration of a YunoHost instance in CHATONS/Librehosters projects, API classes have been developed by users. + +For example, this [PHP class](https://github.com/scith/yunohost-api-php) will allow you to administer your YunoHost instance from a PHP application (website, capacity management tool...). + +Here is an example of PHP code to add a user to your YunoHost instance: + +```php +require("ynh_api.class.php"); +$ynh = new YNH_API("adresse IP du serveur YunoHost ou nom d’hôte", "mot de passe administrateur"); + +if ($ynh->login()) { + $domains = $ynh->get("/domains"); + $first_domain = $domains['domains'][0]; + + $arguments = array( + 'username' => 'test', + 'password' => 'yunohost', + 'firstname' => 'Prénom', + 'lastname' => 'Nom', + 'mail' => 'test@'.$first_domain, + 'mailbox_quota' => '500M' + ); + + $user_add = $ynh->post("/users", $arguments); + print_r($user_add); + +} else { + print("Login to YunoHost failed.\n"); + exit; +} +``` diff --git a/admin_api_fr.md b/admin_api_fr.md new file mode 100644 index 00000000..b794606b --- /dev/null +++ b/admin_api_fr.md @@ -0,0 +1,56 @@ +# Administration depuis l’API ou une application externe + +Toutes les actions exécutables en ligne de commande le sont également via une API. L’API est accessible à l’adresse https://votre.serveur/yunohost/api. +Pour le moment, il n'existe pas de documentation des différentes routes... mais vous pouvez trouver l'actionmap [ici](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml) (en particulier les clefs `api`) + +## Avec cURL + +Il faut d’abord récupérer un cookie de connexion pour ensuite réaliser les actions. Voici un exemple avec cURL : + +```bash +# Login (avec mot de passe admin) +curl -k -H "X-Requested-With: customscript" \ + -d "password=supersecretpassword" \ + -dump-header headers \ + https://your.server/yunohost/api/login + +# Example de GET +curl -k -i -H "Accept: application/json" \ + -H "Content-Type: application/json" \ + -L -b headers -X GET https://your.server/yunohost/api/ROUTE \ + | grep } | python -mjson.tool +``` + +## Avec une classe PHP + +Pour simplifier l’administration à distance d’une instance YunoHost dans le cadre d’un projet CHATONS/Librehosters, des classes API ont été développées par des utilisateurs. + +Par exemple, cette [classe PHP](https://github.com/scith/yunohost-api-php) vous permettra d’administrer votre instance YunoHost depuis une application PHP (site Web, outil de gestion de capacité...). + +Voici un exemple de code PHP permettant d’ajouter un utilisateur dans votre instance YunoHost : + +```php +require("ynh_api.class.php"); +$ynh = new YNH_API("adresse IP du serveur YunoHost ou nom d’hôte", "mot de passe administrateur"); + +if ($ynh->login()) { + $domains = $ynh->get("/domains"); + $first_domain = $domains['domains'][0]; + + $arguments = array( + 'username' => 'test', + 'password' => 'yunohost', + 'firstname' => 'Prénom', + 'lastname' => 'Nom', + 'mail' => 'test@'.$first_domain, + 'mailbox_quota' => '500M' + ); + + $user_add = $ynh->post("/users", $arguments); + print_r($user_add); + +} else { + print("Login to YunoHost failed.\n"); + exit; +} +``` diff --git a/admin_es.md b/admin_es.md new file mode 100644 index 00000000..ba253324 --- /dev/null +++ b/admin_es.md @@ -0,0 +1,11 @@ +# La interfaz de administración web + +YunoHost tiene una interfaz gráfica de administración. El otro método consiste en utilizar la [linea de comando](/commandline). + +### Acceso + +La interfaz admin está accesible desde tu instancia YunoHost en esta dirección : https://ejemplo.org/yunohost/admin (reemplaza ejemplo.org por tu nombre de dominio) + +
+ +
diff --git a/admin_fr.md b/admin_fr.md new file mode 100644 index 00000000..64329b9a --- /dev/null +++ b/admin_fr.md @@ -0,0 +1,12 @@ +# L’interface d’administration Web + +YunoHost est fourni avec une interface graphique d’administration. L’autre méthode est d’utiliser la [ligne de commande](/commandline). + +### Accès + +L’interface admin est accessible depuis votre instance YunoHost à l’adresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur) + +
+ +
+ diff --git a/admindoc.md b/admindoc.md new file mode 100644 index 00000000..1bf8daf3 --- /dev/null +++ b/admindoc.md @@ -0,0 +1,64 @@ +# Administrator documentation + +* Discovering self-hosting + * [What is Self-hosting](/selfhosting) + * [What is YunoHost](/whatsyunohost) + * [Try YunoHost](/try) + * [How to host yourself](howtohostyourself) + * [Choosing hardware](/hardware) + * [About the friendliness of internet service providers](/isp) +* [Installing YunoHost](/install) + * [On a regular computer](/install_iso) + * [On a dedicated or a virtual private server](/install_on_vps) + * [On a Raspberry Pi](/install_on_raspberry) + * [On an ARM board](/install_on_arm_board) + * [On Debian](/install_on_debian) + * [On VirtualBox](/install_on_virtualbox) +* Finalizing your setup + * [Post-installation](/postinstall) + * [Configuring port forwarding](/isp_box_config) + * [Configuring DNS records](/dns_config) + * [Installing an SSL certificate](/certificate) + * [Diagnose if your setup is working properly](/diagnostic) +* Getting to know YunoHost + * [Overview of YunoHost](/overview) + * [General advices and guidelines](/guidelines) + * [Web administration interface](/admin) + * [SSH](/ssh) and [command-line administration](/commandline) + * [Users and the SSO](/users) + * [Groups and permissions](/groups_and_permissions) + * [Applications](/apps_overview) + * [Domains, DNS and certificates](/domains) + * [Email](/email) + * [Forms to remove its IP address from the black lists](/blacklist_forms) + * [XMPP](/XMPP) + * [Backup](/backup) + * [Updating the system](/update) and [apps](/app_update) + * [Security](/security) +* Going further + * Domain names + * [Noho.st / nohost.me / ynh.fr domain names](/dns_nohost_me) + * [Configure a dynamic DNS with a dynamic IP address](/dns_dynamicip) + * [DNS and subdomains for apps](/dns_subdomains) + * [Managing DNS records at OVH](/OVH) + * Notes about some French ISPs + * [SFR](/isp_sfr) + * [Orange](/isp_orange) + * [Free](/isp_free) + * [Specific apps documentations](/appsdoc) + * [Equivalence between Framasoft service and apps](/apps_framasoft) + * [Exchange files with your server using a graphical interface](/filezilla) + * [Customize the appearance of the YunoHost portal](/theming) + * [Adding an external storage](/external_storage) + * [Moving an app folder to an other storage](/moving_app_folder) + * [Migrating emails to YunoHost](/email_migration) + * [Hide services with Tor](/torhiddenservice) + * [Using certificates other than Let's Encrypt](/certificate_custom) + * [A discussion about the advantages of using a VPN](/vpn_advantage) + * [Stretch->Buster migration procedure](stretch_buster_migration) + * [(old) Jessie->Stretch migration procedure](jessie_stretch_migration) +* Troubleshooting + * [Changing the administration password](/change_admin_password) + * [Recover access to your server](/noaccess) + * [Unban IPs in IPiptables/Fail2Ban](/fail2ban) + * [Configuring IPv6](/ipv6) diff --git a/admindoc_de.md b/admindoc_de.md new file mode 100644 index 00000000..462b4e0e --- /dev/null +++ b/admindoc_de.md @@ -0,0 +1,45 @@ +# Administrator-Dokumentation + +* Self-Hosting entdecken + * [Was ist Self-Hosting](/selfhosting) + * [Was ist YunoHost](/whatsyunohost) + * [Probiere YunoHost aus](/try) + * [Wie du selber hostest](howtohostyourself) + * [Wähle die Hardware](/hardware) + * [Über die Freundlichkeit von Internet-Service-Providern](/isp) +* [YunoHost installieren](/install) + * [Auf einem normalen Computer](/install_iso) + * [Auf einem eigenen oder virtuellen Server](/install_on_vps) + * [Auf einem Raspberry Pi](/install_on_raspberry) + * [Auf einem ARM-Board](/install_on_arm_board) + * [Auf Debian](/install_on_debian) + * [Auf VirtualBox](/install_on_virtualbox) +* Setup abschließen + * [Nach der Installation](/postinstall) + * [Port-Forwarding konfigurieren](/isp_box_config) + * [DNS-Einträge konfigurieren](/dns_config) + * [SSL-Zertifikate installieren](/certificate) + * [Diagnostiziere deine Installation](/diagnostic) +* YunoHost kennenlernen + * [Übersicht über YunoHost](/overview) + * [Allgemeine Hinweise und Hilfestellungen](/guidelines) + * [Web-Administrations-Interface](/admin) + * [SSH](/ssh) and [command-line administration](/commandline) + * [Benutzer und SSO (Single-Sign-On)](/users) + * [Applikationen](/apps_overview) + * [Domains, DNS und Zertifikate](/domains) + * [E-Mail](/email) + * [XMPP](/XMPP) + * [Datensicherung](/backup) + * [System-Update](/update) and [apps](/app_update) + * [Sicherheit](/security) +* Weiteres + * [Noho.st / nohost.me / ynh.fr Domain-Namen](/dns_nohost_me) + * [Grafischer Dateiaustausch mit deinem Server](/filezilla) + * [Passe das Aussehen vom Yunohost-Portal an](/theming) + * [Für externen Speicher hinzu](/external_storage) + * [Migriere E-Mails zu Yunohost](/email_migration) + * [Verstecke Services mit Tor](/torhiddenservice) +* Hinweise zur Fehlersuche + * [Entsperren von IPs in Fail2Ban](/fail2ban) + * [Administrator-Passwort ändern](/change_admin_password) diff --git a/admindoc_fr.md b/admindoc_fr.md new file mode 100644 index 00000000..d9a972eb --- /dev/null +++ b/admindoc_fr.md @@ -0,0 +1,64 @@ +# Documentation pour les administrateurs YunoHost + +* Découvrir l'auto-hébergement + * [Qu'est-ce que l'auto-hébergement](/selfhosting) + * [Qu'est-ce que YunoHost](/whatsyunohost) + * [Essayer YunoHost](/try) + * [Choisir son mode d'hébergement](/howtohostyourself) + * [Matériel compatible](/hardware) + * [À propos des fournisseurs d'accès internet](/isp) +* [Guide d’installation](/install) + * [Sur un ordinateur "standard"](/install_iso) + * [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps) + * [Sur un Raspberry Pi](/install_on_raspberry) + * [Sur une carte ARM](/install_on_arm_board) + * [Sur Debian](/install_on_debian) + * [Sur VirtualBox](/install_on_virtualbox) +* Finaliser son installation + * [Post-installation](/postinstall) + * [Configurer les redirections de port](/isp_box_config) + * [Configurer les enregistrements DNS](/dns_config) + * [Installer un certificat SSL](/certificate) + * [Diagnostic du bon fonctionnement du YunoHost](/diagnostic) +* Apprendre à connaitre YunoHost + * [Vue d'ensemble de YunoHost](/overview) + * [Conseil généraux](/guidelines) + * [L'interface d'administration web](/admin) + * [SSH](/ssh) et [l'administration en ligne de commande](/commandline) + * [Les utilisateurs et le SSO](/users) + * [Les groupes et les permissions](/groups_and_permissions) + * [Les applications](/apps_overview) + * [Les domaines, la configuration DNS et les certificats](/domains) + * [Les emails](/email) + * [Formulaires pour enlever son adresse IP des listes noires](/blacklist_forms) + * [XMPP](/XMPP) + * [Les sauvegardes](/backup) + * [Mettre à jour le système](/update) et [les applications](/app_update) + * [La sécurité](/security) +* Pour aller plus loin + * Noms de domaine + * [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me) + * [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip) + * [DNS et installation d’une application sur un sous-domaine](/dns_subdomains) + * [Gérer les enregistrements DNS chez OVH](/OVH) + * Notes à propos de certains fournisseurs d'accès à Internet + * [SFR](/isp_sfr) + * [Orange](/isp_orange) + * [Free](/isp_free) + * [Documentation spécifique à certaines apps](/appsdoc) + * [Équivalence entre service Framasoft et apps](/apps_framasoft) + * [Échanger des fichiers avec son serveur à l'aide d'une interface graphique](/filezilla) + * [Modifier l'apparence du portail utilisateur](/theming) + * [Ajouter un stockage externe](/external_storage) + * [Déplacer un dossier d'app vers un autre stockage](/moving_app_folder) + * [Migrer ses emails vers YunoHost](/email_migration) + * [YunoHost avec un service caché Tor](/torhiddenservice) + * [Utilisation de certificats autres que Let's Encrypt](/certificate_custom) + * [Une discussion sur les avantages d'utiliser un VPN](/vpn_advantage) + * [Procedure de Migration Stretch->Buster](stretch_buster_migration) + * [(vieux) Procedure de Migration Jessie->Stretch](jessie_stretch_migration) +* Dépannage + * [Changer le mot de passe d’administration](/change_admin_password) + * [Récupérer l'accès à son serveur](/noaccess) + * [Débannir une IP dans Fail2Ban/IPtables](/fail2ban) + * [Configurer l'IPv6](/ipv6) diff --git a/app_adminer.md b/app_adminer.md new file mode 100644 index 00000000..beddffab --- /dev/null +++ b/app_adminer.md @@ -0,0 +1,15 @@ +# Adminer's logo Adminer + +[![Install Adminer with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=adminer) [![Integration level](https://dash.yunohost.org/integration/adminer.svg)](https://dash.yunohost.org/appci/app/adminer) + +### Index + +- [Useful links](#useful-links) + +Adminer (formerly phpMinAdmin better alternate to phpMyAdmin) is a full-featured database management tool (MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, SimpleDB, Elasticsearch, MongoDB). Replace phpMyAdmin with Adminer and you will get a tidier user interface, better support for MySQL features, higher performance and more security. [See detailed comparison](https://www.adminer.org/en/phpmyadmin). + +## Useful links + ++ Website: [adminer.org](https://www.adminer.org/) ++ Application software repository: [github.com - YunoHost-Apps/adminer](https://github.com/YunoHost-Apps/adminer_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/adminer/issues](https://github.com/YunoHost-Apps/adminer_ynh/issues) diff --git a/app_adminer_fr.md b/app_adminer_fr.md new file mode 100644 index 00000000..f190e4fd --- /dev/null +++ b/app_adminer_fr.md @@ -0,0 +1,15 @@ +# logo d'Adminer Adminer + +[![Install Adminer with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=adminer) [![Integration level](https://dash.yunohost.org/integration/adminer.svg)](https://dash.yunohost.org/appci/app/adminer) + +### Index + +- [Liens utiles](#liens-utiles) + +Adminer (anciennement phpMinAdmin, meilleure alternative à phpMyAdmin) est un outil de gestion de base de données (MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, SimpleDB, Elasticsearch, MongoDB). Remplacez phpMyAdmin par Adminer et vous obtiendrez une interface utilisateur plus ordonnée, une meilleure prise en charge des fonctionnalités MySQL, des performances plus élevées et plus de sécurité. [Voir comparaison détaillée](https://www.adminer.org/en/phpmyadmin). + +## Liens utiles + ++ Site web : [adminer.org (en)](https://www.adminer.org/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/adminer](https://github.com/YunoHost-Apps/adminer_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/adminer/issues](https://github.com/YunoHost-Apps/adminer_ynh/issues) diff --git a/app_airsonic.md b/app_airsonic.md new file mode 100644 index 00000000..0b0e501a --- /dev/null +++ b/app_airsonic.md @@ -0,0 +1,18 @@ +# airsonic's logo Airsonic + +[![Install airsonic with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=airsonic) [![Integration level](https://dash.yunohost.org/integration/airsonic.svg)](https://dash.yunohost.org/appci/app/airsonic) + +### Index + +- [Useful links](#useful-links) + +Airsonic is a free, web-based media streamer, providing ubiquitous access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. + +Airsonic is designed to handle very large music collections (hundreds of gigabytes). Although optimized for MP3 streaming, it works for any audio or video format that can stream over HTTP, for instance AAC and OGG. By using transcoder plug-ins, Airsonic supports on-the-fly conversion and streaming of virtually any audio format, including WMA, FLAC, APE, Musepack, WavPack and Shorten. + +## Useful links + + + Website: [airsonic.github.io](https://airsonic.github.io/) + + Official documentation: [airsonic.github.io - docs](https://airsonic.github.io/docs/) + + Application software repository: [github.com - YunoHost-Apps/airsonic](https://github.com/YunoHost-Apps/airsonic_ynh) + + Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/airsonic/issues](https://github.com/YunoHost-Apps/airsonic_ynh/issues) diff --git a/app_airsonic_fr.md b/app_airsonic_fr.md new file mode 100644 index 00000000..b84967ec --- /dev/null +++ b/app_airsonic_fr.md @@ -0,0 +1,18 @@ +# logo de Airsonic Airsonic + +[![Install airsonic with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=airsonic) [![Integration level](https://dash.yunohost.org/integration/airsonic.svg)](https://dash.yunohost.org/appci/app/airsonic) + +### Index + +- [Liens utiles](#liens-utiles) + +Airsonic est un streamer de médias gratuit basé sur le web, offrant un accès constant à votre musique. Utilisez-le pour partager votre musique avec vos amis ou pour écouter votre propre musique au travail. Vous pouvez diffuser en continu sur plusieurs lecteurs simultanément, par exemple sur un lecteur dans votre cuisine et un autre dans votre salon. + +Airsonic est conçu pour gérer de très grandes collections de musique (des centaines de gigaoctets). Bien qu'il soit optimisé pour le streaming MP3, il fonctionne pour tout format audio ou vidéo pouvant être diffusé via HTTP, par exemple AAC et OGG. En utilisant des plug-ins de transcodage, Airsonic prend en charge la conversion et la diffusion en continu à la volée de pratiquement tous les formats audio, y compris WMA, FLAC, APE, Musepack, WavPack et Shorten. + +## Liens utiles + + + Site web : [airsonic.github.io (en)](https://airsonic.github.io/) + + Documentation officielle : [airsonic.github.io/docs (en)](https://airsonic.github.io/docs/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/airsonic](https://github.com/YunoHost-Apps/airsonic_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/airsonic/issues](https://github.com/YunoHost-Apps/airsonic_ynh/issues) diff --git a/app_ampache.md b/app_ampache.md new file mode 100644 index 00000000..f31fdb44 --- /dev/null +++ b/app_ampache.md @@ -0,0 +1,21 @@ +# Ampache's logo Ampache + +[![Install Ampache with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=ampache) [![Integration level](https://dash.yunohost.org/integration/ampache.svg)](https://dash.yunohost.org/appci/app/ampache) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Ampache is libre audio streaming software. + +## Limitations with YunoHost + +Since SSO authentication does not work entirely from the user panel, we need to work on it. In fact, this can be disruptive to external Ampache clients such as Subsonic. + +## Useful links + ++ Website: [ampache.org](http://ampache.org/) ++ Official documentation: [github.com - Ampache/wiki](https://github.com/ampache/ampache/wiki) ++ Application software repository: [github.com - YunoHost-Apps/ampache](https://github.com/YunoHost-Apps/ampache_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/ampache/issues](https://github.com/YunoHost-Apps/ampache_ynh/issues) diff --git a/app_ampache_fr.md b/app_ampache_fr.md new file mode 100644 index 00000000..16c294b2 --- /dev/null +++ b/app_ampache_fr.md @@ -0,0 +1,21 @@ +# logo de Ampache Ampache + +[![Install Ampache with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=ampache) [![Integration level](https://dash.yunohost.org/integration/ampache.svg)](https://dash.yunohost.org/appci/app/ampache) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Ampache est un logiciel libre de streaming audio. + +## Limitations avec YunoHost + +L'authentification du SSO ne fonctionne pas entièrement à partir du panel d'utilisateurs, nous devons y travailler. En fait, cela peut perturber les clients Ampache externes comme Subsonic. + +## Liens utiles + ++ Site web : [ampache.org (en)](http://ampache.org/) ++ Documentation officielle : [github.com - Ampache/wiki (en)](https://github.com/ampache/ampache/wiki) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/ampache](https://github.com/YunoHost-Apps/ampache_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/ampache/issues](https://github.com/YunoHost-Apps/ampache_ynh/issues) diff --git a/app_anarchism.md b/app_anarchism.md new file mode 100644 index 00000000..436a8387 --- /dev/null +++ b/app_anarchism.md @@ -0,0 +1,15 @@ +# Anarchism's logo Anarchism + +[![Install anarchism with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=anarchism) [![Integration level](https://dash.yunohost.org/integration/anarchism.svg)](https://dash.yunohost.org/appci/app/anarchism) + +### Index + +- [Useful links](#useful-links) + +This is an anarchist FAQ. Its aim is to present what anarchism really stands for and indicate why you should become an anarchist. + +## Useful links + ++ Website: [salsa.debian.org - anarchism](https://salsa.debian.org/debian/anarchism) ++ Application software repository: [github.com - YunoHost-Apps/anarchism](https://github.com/YunoHost-Apps/anarchism_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/anarchism/issues](https://github.com/YunoHost-Apps/anarchism_ynh/issues) diff --git a/app_anarchism_fr.md b/app_anarchism_fr.md new file mode 100644 index 00000000..cf3b5140 --- /dev/null +++ b/app_anarchism_fr.md @@ -0,0 +1,15 @@ +# logo de Anarchism Anarchism + +[![Install anarchism with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=anarchism) [![Integration level](https://dash.yunohost.org/integration/anarchism.svg)](https://dash.yunohost.org/appci/app/anarchism) + +### Index + +- [Liens utiles](#liens-utiles) + +Ceci est une FAQ anarchiste. Son but est de présenter ce que l'anarchisme représente réellement et d'indiquer pourquoi vous devriez devenir anarchiste. + +## Liens utiles + ++ Site web : [salsa.debian.org - anarchism (en)](https://salsa.debian.org/debian/anarchism) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/anarchism](https://github.com/YunoHost-Apps/anarchism_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/anarchism/issues](https://github.com/YunoHost-Apps/anarchism_ynh/issues) diff --git a/app_anfora.md b/app_anfora.md new file mode 100644 index 00000000..89799ef9 --- /dev/null +++ b/app_anfora.md @@ -0,0 +1,15 @@ +# Anfora's logo Anfora + +[![Install Anfora with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=anfora) [![Integration level](https://dash.yunohost.org/integration/anfora.svg)](https://dash.yunohost.org/appci/app/anfora) + +### Index + +- [Useful links](#useful-links) + +Self-hosted photo gallery federated social network. + +## Useful links + ++ Website: [anfora.app](https://anfora.app/) ++ Application software repository: [github.com - YunoHost-Apps/anfora](https://github.com/YunoHost-Apps/anfora_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/anfora/issues](https://github.com/YunoHost-Apps/anfora_ynh/issues) diff --git a/app_anfora_fr.md b/app_anfora_fr.md new file mode 100644 index 00000000..5773d14a --- /dev/null +++ b/app_anfora_fr.md @@ -0,0 +1,15 @@ +# logo de Anfora Anfora + +[![Install Anfora with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=anfora) [![Integration level](https://dash.yunohost.org/integration/anfora.svg)](https://dash.yunohost.org/appci/app/anfora) + +### Index + +- [Liens utiles](#liens-utiles) + +Galerie de photos auto-hébergée, réseau social fédéré. + +## Liens utiles + ++ Site web : [anfora.app (en)](https://anfora.app/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/anfora](https://github.com/YunoHost-Apps/anfora_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/anfora/issues](https://github.com/YunoHost-Apps/anfora_ynh/issues) diff --git a/app_archivist.md b/app_archivist.md new file mode 100644 index 00000000..785e89f6 --- /dev/null +++ b/app_archivist.md @@ -0,0 +1,16 @@ +# Package Archivist + +[![Install archivist with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=archivist) [![Integration level](https://dash.yunohost.org/integration/archivist.svg)](https://dash.yunohost.org/appci/app/archivist) + +### Index + +- [Useful links](#useful-links) + +Archivist is an automatic backup system for your server. It is able to makes backups of your YunoHost core and your apps by using the YunoHost backup command. It can also makes backups of specified directories. +Your backups can be send to many other places, local or distant. Archivist is automatically launched periodicaly to update your backups and send the modifications to the other places. + +## Useful links + ++ Website: [github.com - maniackcrudelis/archivist](https://github.com/maniackcrudelis/archivist) ++ Application software repository: [github.com - YunoHost-Apps/archivist](https://github.com/YunoHost-Apps/archivist_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/archivist/issues](https://github.com/YunoHost-Apps/archivist_ynh/issues) diff --git a/app_archivist_fr.md b/app_archivist_fr.md new file mode 100644 index 00000000..e09752cf --- /dev/null +++ b/app_archivist_fr.md @@ -0,0 +1,16 @@ +# Package Archivist + +[![Install archivist with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=archivist) [![Integration level](https://dash.yunohost.org/integration/archivist.svg)](https://dash.yunohost.org/appci/app/archivist) + +### Index + +- [Liens utiles](#liens-utiles) + +Archivist est un système de sauvegarde automatique de votre serveur. Il est capable de faire des sauvegardes de votre noyau YunoHost et de vos applications en utilisant la commande de sauvegarde YunoHost. Il peut également effectuer des sauvegardes de répertoires spécifiques. +Vos sauvegardes peuvent être envoyées à de nombreux autres endroits, locaux ou distants. Archivist est automatiquement lancé périodiquement pour mettre à jour vos sauvegardes et envoyer les modifications aux autres endroits. + +## Liens utiles + ++ Site web : [github.com - maniackcrudelis/archivist](https://github.com/maniackcrudelis/archivist) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/archivist](https://github.com/YunoHost-Apps/archivist_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/archivist/issues](https://github.com/YunoHost-Apps/archivist_ynh/issues) diff --git a/app_baikal.md b/app_baikal.md new file mode 100644 index 00000000..95e4e7b6 --- /dev/null +++ b/app_baikal.md @@ -0,0 +1,74 @@ +# Baïkal's logo Baïkal + +[![Install Baïkal with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=baikal) [![Integration level](https://dash.yunohost.org/integration/baikal.svg)](https://dash.yunohost.org/appci/app/baikal) + +### Index + +- [Configuration](#Configuration) + - [Login to admin interface](#Login-to-administration-interface) + - [Creating a new user](#Create-a-new-user) +- [CalDAV connection](#CalDAV-connection) + - [Connecting Thunderbird with Lightning](#Connecting-Thunderbird-with-Lightning) + - [Connecting to AgenDAV](#Connecting-to-AgenDAV) +- [CardDAV Connection](#CardDAV-Connection) +- [Useful links](#Useful-links) + +Baïkal is a server for calendars and address books, which uses the CalDav and CardDav protocol. Baïkal can be synced with a lot of clients, like Thunderbird + Lightning. + +**WARNING**: Baïkal will not work if you have installed a **Nextcloud** (the Nextcloud CardDav/CalDav functions conflict). + +## Configuration + +### Connecting to the administration interface + +To configure the app, go to the address: `sub.domain.tld/admin` or `domain.tld/baikal/admin`. +The username to specify is `admin`, followed by the specific password you chose when installing Baïkal. The password can contain any special characters. + +### LDAP authentication + +By default, Baïkal is configured to look for users in YunoHost's LDAP +directory. YunoHost's users will appear under `User and ressources` menu after their +first authentication. + +## CalDAV connection + +### Connecting Thunderbird with Lightning + +Add a new agenda with type "Network" and "CalDAV" + +The new URL to add is: + +https://domain.org/baikal/cal.php/calendars/username/default + +Be careful to replace "domain.org" with your own domain and the "username" with your username. + +### Connecting to AgenDAV + +AgenDAV is a web client for using your calendars. It's packaged for YunoHost and you can used it after installing Baïkal. + +AgenDAV is already connected to Baïkal, any other configuration is necessary. If you create a new entry in Thunderbird + Lightning calendar, refresh your AgenDAV page is enough to see your modifications. + +AgenDAV also allows you to create a new calendars very easily. + +## CardDAV Connection + +Using the example with RoundCube Add a new address book by going to Settings > Preferences > CardDAV. + +Make sure it is filled with: +* Addressbook name: `default` +* Username: `username` +* Password: `thePasswordAssociatedToUsername` +* URL : `https://example.com/baikal/card.php/addressbooks/username/default` + +* Make sure to replace "example.com" with your domain and "username" with your username* + +Save. + +Now, the adressbook is accessible. + +## Useful links + + + Website: [www.baikal-server.com](http://www.baikal-server.com/) + + Official documentation: [sabre.io - baikal](https://sabre.io/baikal/) + + Apps software repository: [github.com - YunoHost-Apps/bikal](https://github.com/YunoHost-apps/baikal_ynh) + + Fix a bug or suggest an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/baikal/issues](https://github.com/YunoHost-apps/baikal_ynh/issues) diff --git a/app_baikal_fr.md b/app_baikal_fr.md new file mode 100644 index 00000000..ee65eb56 --- /dev/null +++ b/app_baikal_fr.md @@ -0,0 +1,72 @@ +# Baïkal's logo Baïkal + +[![Install Baïkal with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=baikal) [![Integration level](https://dash.yunohost.org/integration/baikal.svg)](https://dash.yunohost.org/appci/app/baikal) + +### Index + +- [Configuration](#Configuration) + - [Connexion à l'interface d'administration](#Connexion-à-l-interface-d-administration) + - [Création d'un nouvel utilisateur](#Création-d-un-nouvel-utilisateur) +- [Connexion CalDAV](#Connexion-CalDAV) + - [Connexion de Thunderbird avec Lightning](#Connexion-de-Thunderbird-avec-Lightning) + - [Connexion de AgenDAV](#Connexion-de-AgenDAV) +- [Connexion CardDAV](#Connexion-CardDAV) +- [Liens utiles](#liens-utiles) + +Baïkal est un serveur de calendriers et de contacts accessible par les protocoles CalDAV (calendriers) et CardDAV (carnets d’adresses), autorisant ainsi la synchronisation avec de nombreux clients (Thunderbird + Lightning par exemple). + +**AVERTISSEMENT** : Baïkal ne fonctionnera pas si vous avez installé un **Nextcloud** (leurs fonctions cardav/caldav entrent en conflit). + +## Configuration + +### Connexion à l’interface d’administration + +Pour configurer l'appliation il faut se rendre à l'adresse : `sous.domaine.tld/admin` ou `domaine.tld/baikal/admin` +Le nom d’utilisateur à spécifier est `admin` suivi du mot de passe spécifique que vous avez choisi lors de l’installation de Baïkal. Attention, le mot de passe ne doit pas contenir de carractères spéciaux. + +### Authentification LDAP + +Par défaut, Baïkal est configuré pour importer les utilisateurs depuis l'annuaire LDAP de YunoHost. Les utilisateurs YunoHost apparaîtront dans le menu `Users and ressources` après une première authentification. + +## Connexion CalDAV + +### Connexion de Thunderbird avec Lightning + +Ajoutez un nouvel agenda de type « Réseau » puis « CalDAV ». + +L’URL à entrer est la suivante : + +`https://example.com/baikal/cal.php/calendars/username/default` + +*En prenant soin de remplacer « example.com » par votre domaine puis « username » par votre nom d’utilisateur* + +### Connexion de AgenDAV + +AgenDAV est un client web permettant de manipuler vos calendriers. Il est packagé pour YunoHost et vous pouvez donc l’installer juste après avoir installé Baïkal. + +AgenDAV est déjà connecté à Baïkal, aucune manipulation n’est nécessaire. Si vous créez une entrée dans le calendrier Thunderbird + Lightning, il vous suffit d’actualiser votre page AgenDAV pour voir les modifications apparaître. + +AgenDAV vous permet également de créer de nouveaux calendriers très simplement. + +## Connexion CardDAV + +En utilisant l'exemple avec RoundCube Ajoutez un nouveau carnet d’adresses en allant dans Paramètres > Préférences > CardDAV. + +Renseigner : ++ Nom du carnet d’adresses : `default` ++ Nom d’utilisateur : `username` ++ Mot de passe : `leMotDePasseAssociéAUusername` ++ 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 d’utilisateur* + +Enregistrer + +Le carnet d’adresses est maintenant accessible. + +## Liens utiles + + + Site web : [www.baikal-server.com (en)](http://www.baikal-server.com/) + + Documentation officielle : [sabre.io - baikal (en)](https://sabre.io/baikal/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/bikal](https://github.com/YunoHost-apps/baikal_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/baikal/issues](https://github.com/YunoHost-apps/baikal_ynh/issues) diff --git a/app_bibliogram.md b/app_bibliogram.md new file mode 100644 index 00000000..59bb4254 --- /dev/null +++ b/app_bibliogram.md @@ -0,0 +1,15 @@ +# Bibliogram Logo Bibliogram + +[![Install Bibliogram with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bibliogram) [![Integration level](https://dash.yunohost.org/integration/bibliogram.svg)](https://dash.yunohost.org/appci/app/bibliogram) + +### Index + +- [Useful links](#useful-links) + +Bibliogram is a website that takes data from Instagram's public profile views and puts it into a friendlier page that loads faster, gives downloadable images, eliminates ads, generates RSS feeds, and doesn't urge you to sign up. + +## Useful links + ++ Website: [git.sr.ht - bibliogram](https://git.sr.ht/~cadence/bibliogram) ++ Application software repository: [github.com - YunoHost-Apps/bibliogram](https://github.com/YunoHost-Apps/bibliogram_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/bibliogram/issues](https://github.com/YunoHost-Apps/bibliogram_ynh/issues) diff --git a/app_bibliogram_fr.md b/app_bibliogram_fr.md new file mode 100644 index 00000000..06ed95c6 --- /dev/null +++ b/app_bibliogram_fr.md @@ -0,0 +1,15 @@ +# Logo Bibliogram Bibliogram + +[![Installer Bibliogram avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bibliogram) [![Integration level](https://dash.yunohost.org/integration/bibliogram.svg)](https://dash.yunohost.org/appci/app/bibliogram) + +### Index + +- [Liens utiles](#useful-links) + +Bibliogram est un site Web qui prend les données de profil public d'Instagram et les met dans une page plus conviviale qui se charge plus rapidement, donne des images téléchargeables, élimine les publicités, génère des flux RSS et ne vous invite pas à vous inscrire. + +## Liens utiles + ++ Site web : [git.sr.ht - bibliogram](https://git.sr.ht/~cadence/bibliogram) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/bibliogram](https://github.com/YunoHost-Apps/bibliogram_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/bibliogram/issues](https://github.com/YunoHost-Apps/bibliogram_ynh/issues) \ No newline at end of file diff --git a/app_bitwarden.md b/app_bitwarden.md new file mode 100644 index 00000000..4d7b7ccb --- /dev/null +++ b/app_bitwarden.md @@ -0,0 +1,44 @@ +# Bitwarden's logo Bitwarden + +[![Install Bitwarden with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bitwarden) [![Integration level](https://dash.yunohost.org/integration/bitwarden.svg)](https://dash.yunohost.org/appci/app/bitwarden) + +### Index + +- [Configuration](#configuration) +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Customer Applications](#customer-applications) +- [Useful links](#useful-links) + +Bitwarden is a freemium libre password manager under AGPL license, allowing generation and storage of passwords in a secure way. These are protected by a single password called the "master password". It was created in 2016 by Kyle Spearrin, a software architect. + +The software is available for most operating systems (GNU/Linux, Windows, macOS, iOS, Android and command-line), and as a web browser plug-in. It is also possible to view passwords from a website.[¹](#sources) + +## Configuration + +To configure the app, go to this address: `sub.domain.tld/admin` + +## Limitations with YunoHost + +HTTP and LDAP authentication are not supported. + +## Customer applications + +| Application name [²] | Platform | Multi-account | Source | Play Store | F-Droid | Apple Store | +|----------------------|----------|---------------|--------|------------|---------|-------------| +| Bitwarden | GNU/Linux / macOS / Windows | Oui | [bitwarden.com - download](https://bitwarden.com/#download) | +| Bitwarden | Android / iOS | ? | | [Playstore - Birwarden](https://play.google.com/store/apps/details?id=com.x8bit.bitwarden) | X | [App Store - Bitwarden](https://itunes.apple.com/app/bitwarden-free-password-manager/id1137397744?mt=8) | + +> [²]: (of) : Official / (un) : Unofficial + +## Useful links + ++ Website: [bitwarden.com](https://bitwarden.com/) ++ Official documentation: [help.bitwarden.com](https://help.bitwarden.com/) ++ Application software repository: [github.com - YunoHost-Apps/bitwarden](https://github.com/YunoHost-Apps/bitwarden_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/bitwarden/issues](https://github.com/YunoHost-Apps/bitwarden_ynh/issues) + +----- + +### Sources + +¹ [wikipedia.org - Bitwarden](https://en.wikipedia.org/wiki/Bitwarden) diff --git a/app_bitwarden_fr.md b/app_bitwarden_fr.md new file mode 100644 index 00000000..ea853c98 --- /dev/null +++ b/app_bitwarden_fr.md @@ -0,0 +1,45 @@ +# logo de Bitwarden Bitwarden + +[![Install Bitwarden with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bitwarden) [![Integration level](https://dash.yunohost.org/integration/bitwarden.svg)](https://dash.yunohost.org/appci/app/bitwarden) + +### Index + +- [Configuration](#configuration) +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Applications clientes](#applications-clientes) +- [Liens utiles](#liens-utiles) + +Bitwarden est un gestionnaire de mots de passe freemium et open source sous licence AGPL, qui permet de générer et de conserver des mots de passe de manière sécurisée. Ces éléments sont protégés par un seul et unique mot de passe appelé « mot de passe maître ». Il est créé en 2016 par Kyle Spearrin, un architecte logiciel. + +Le logiciel est disponible sur la plupart des systèmes d'exploitation (GNU/Linux, Windows, macOS, iOS, Android ainsi qu'en ligne de commande), et comme module d'extension pour navigateur web. Il est également possible de consulter ses mot de passe depuis un site web.[¹](#sources) + +## Configuration + +Pour configurer l'appliation il faut se rendre à l'adresse : `sous.domaine.tld/admin` + +## Limitations avec YunoHost + +Les authentification HTTP et LDAP ne sont pas pris en charges. + +## Applications clientes + +| Nom de l'application [²] | Plateforme | Multi-comptes | Source | Play Store | F-Droid | Apple Store | +|--------------------------|------------|---------------|--------|------------|---------|-------------| +| Bitwarden | GNU/Linux / macOS / Windows | Oui | [bitwarden.com - download](https://bitwarden.com/#download) | +| Bitwarden | Android / iOS | ? | | [Playstore - Birwarden](https://play.google.com/store/apps/details?id=com.x8bit.bitwarden) | X | [App Store - Bitwarden](https://itunes.apple.com/app/bitwarden-free-password-manager/id1137397744?mt=8) | + + +> [²]: (of) : Officielle / (no) : non officiel + +## Liens utiles + + + Site web : [bitwarden.com (en)](https://bitwarden.com/) + + Documentation officielle : [help.bitwarden.com (en)](https://help.bitwarden.com/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/bitwarden](https://github.com/YunoHost-Apps/bitwarden_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/bitwarden/issues](https://github.com/YunoHost-Apps/bitwarden_ynh/issues) + + ------ + + ### Sources + +¹ [wikipedia.org - Bitwarden](https://fr.wikipedia.org/wiki/Bitwarden) diff --git a/app_blogotext.md b/app_blogotext.md new file mode 100644 index 00000000..d5d35d16 --- /dev/null +++ b/app_blogotext.md @@ -0,0 +1,38 @@ +# BlogoText's logo BlogoText + +[![Install BlogoText with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=blogotext) [![Integration level](https://dash.yunohost.org/integration/blogotext.svg)](https://dash.yunohost.org/appci/app/blogotext) + +### Index + +- [Features](#features) +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +BlogoText is not only a blog engine but rather a portal dedicated to writing content. Indeed, the administrator interface offers, in addition to the traditional tools dedicated to the blog, an RSS feed reader, a file host and a tool to share links. + +The advantage of this CMS is that it is very light and will be perfect to take care of the blog or news part of your website. BlogoText is written in PHP, runs a SQLite database and needs only 2MB of disk space.[¹](#sources) + +## Features + + + Blog with comments and RSS feeds + + Links sharing + + RSS Reader + + Images/Files uploading and sharing + + JSON/ZIP/HTML import-export; WordPress import + + Support Addons + +## Limitations with YunoHost + +HTTP and LDAP authentication are not supported. The application is not multi-user. + +## Useful links + + + Website: [blogotext.org (fr)](https://blogotext.org) + + Application software repository: [github.com - YunoHost-Apps/blogotext](https://github.com/YunoHost-Apps/blogotext_ynh) + + Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/blogotext/issues](https://github.com/YunoHost-Apps/blogotext_ynh/issues) + + ----- + + ### Sources + +¹ [framalibre.org - BlogoText (fr)](https://framalibre.org/content/blogotext) diff --git a/app_blogotext_fr.md b/app_blogotext_fr.md new file mode 100644 index 00000000..46b517c3 --- /dev/null +++ b/app_blogotext_fr.md @@ -0,0 +1,38 @@ +# logo de BlogoText BlogoText + +[![Install BlogoText with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=blogotext) [![Integration level](https://dash.yunohost.org/integration/blogotext.svg)](https://dash.yunohost.org/appci/app/blogotext) + +### Index + +- [Fonctionnalités]( #fonctionnalités) +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +BlogoText n'est pas seulement un moteur de blog mais propose plutôt un portail dédié à l'écriture de contenu. En effet, l'interface administrateur propose, en plus des outils traditionnels dédiés au blog, un lecteur de flux RSS, un hébergeur de fichiers et un outil permettant de partager des liens. + +L'avantage de ce CMS est qu'il est très léger et sera parfait pour s'occuper de la partie blog ou actualité de votre site web. BlogoText est écrit en PHP, exploite une base de données SQLite et à seulement besoin de 2Mo d'espace disque. [¹](#sources) + +## Fonctionnalités + + + Blog avec commentaires et flux RSS + + Partage de liens + + Lecteur RSS + + Téléversement et partage d'images/fichiers + + import-export au format JSON/ZIP/HTML; import WordPress + + Support Addons + +## Limitations avec YunoHost + +Les authentification HTTP et LDAP ne sont pas pris en charges. L'application n'est pas multi-utilisateurs⋅trices. + +## Liens utiles + + + Site web : [blogotext.org](https://blogotext.org) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/blogotext](https://github.com/YunoHost-Apps/blogotext_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/blogotext/issues](https://github.com/YunoHost-Apps/blogotext_ynh/issues) + +------ + +### Sources + +¹ [framalibre.org - BlogoText](https://framalibre.org/content/blogotext) diff --git a/app_bludit.md b/app_bludit.md new file mode 100644 index 00000000..71886ed2 --- /dev/null +++ b/app_bludit.md @@ -0,0 +1,16 @@ +# Bludit's logo Bludit + +[![Install Bludit with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bludit) [![Integration level](https://dash.yunohost.org/integration/bludit.svg)](https://dash.yunohost.org/appci/app/bludit) + +### Index + +- [Useful links](#useful-links) + +Bludit is a web application to build your own website or blog in seconds; it's completely free and open source. Bludit is a Flat-File CMS, which (in this case) means that Bludit uses files in the JSON format to store the content. You don't need to install or configure a database; you only need a web server with PHP support. + +## Useful links + ++ Website: [www.bludit.com (en)](https://www.bludit.com/) ++ Official documentation: [docs.bludit.com - (en)](https://docs.bludit.com/en/) ++ Application software repository: [github.com - YunoHost-Apps/bludit](https://github.com/YunoHost-Apps/bludit_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/bludit/issues](https://github.com/YunoHost-Apps/bludit_ynh/issues) diff --git a/app_bludit_fr.md b/app_bludit_fr.md new file mode 100644 index 00000000..fc65bbb4 --- /dev/null +++ b/app_bludit_fr.md @@ -0,0 +1,16 @@ +# logo de Bludit> Bludit
+
+[![Install Bludit with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bludit) [![Integration level](https://dash.yunohost.org/integration/bludit.svg)](https://dash.yunohost.org/appci/app/bludit)
+
+### Index
+
+- [Liens utiles](#liens-utiles)
+
+Bludit est une application Web pour créer votre propre site Web ou blog en quelques secondes; c'est totalement gratuit et open source. Bludit est un CMS Flat-File, ce qui (dans ce cas) signifie que Bludit utilise des fichiers au format JSON pour stocker le contenu. Vous n'avez pas besoin d'installer ou de configurer une base de données; vous n'avez besoin que d'un serveur Web prenant en charge PHP.
+
+## Liens utiles
+
+ + Site web : [www.bludit.com (en)](https://www.bludit.com/)
+ + Documentation officielle : [docs.bludit.com - (en)](https://docs.bludit.com/en/)
+ + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/bludit](https://github.com/YunoHost-Apps/bludit_ynh)
+ + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/bludit/issues](https://github.com/YunoHost-Apps/bludit_ynh/issues)
diff --git a/app_bookstack.md b/app_bookstack.md
new file mode 100644
index 00000000..c46091ed
--- /dev/null
+++ b/app_bookstack.md
@@ -0,0 +1,16 @@
+# <img src= BookStack + +[![Install BookStack with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bookstack) [![Integration level](https://dash.yunohost.org/integration/bookstack.svg)](https://dash.yunohost.org/appci/app/bookstack) + +### Index + +- [Useful links](#useful-links) + +BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. + +## Useful links + ++ Website: [bookstackapp.com](https://www.bookstackapp.com/) ++ Official documentation: [bookstackapp.com/docs](https://www.bookstackapp.com/docs/) ++ Application software repository: [github.com - YunoHost-Apps/bookstack](https://github.com/YunoHost-Apps/bookstack_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/bookstack/issues](https://github.com/YunoHost-Apps/bookstack_ynh/issues) diff --git a/app_bookstack_fr.md b/app_bookstack_fr.md new file mode 100644 index 00000000..489d7001 --- /dev/null +++ b/app_bookstack_fr.md @@ -0,0 +1,17 @@ +# Logo BookStack BookStack + +[![Installer BookStack avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bookstack) [![Integration level](https://dash.yunohost.org/integration/bookstack.svg)](https://dash.yunohost.org/appci/app/bookstack) + +### Index + +- [Liens utiles](#useful-links) + +BookStack est une plate-forme simple, auto-hébergée et facile à utiliser pour organiser et stocker des informations. + + +## Liens utiles + ++ Site web : [bookstackapp.com](https://www.bookstackapp.com/) ++ Documentation officielle : [bookstackapp.com/docs](https://www.bookstackapp.com/docs/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/bookstack](https://github.com/YunoHost-Apps/bibliogram_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/bookstack/issues](https://github.com/YunoHost-Apps/bookstack_ynh/issues) \ No newline at end of file diff --git a/app_borg.md b/app_borg.md new file mode 100644 index 00000000..f4e99ea2 --- /dev/null +++ b/app_borg.md @@ -0,0 +1,24 @@ +# borg's logo Borg + +[![Install Borg with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=borg) [![Integration level](https://dash.yunohost.org/integration/borg.svg)](https://dash.yunohost.org/appci/app/borg) + +### Index + +- [Useful links](#useful-links) + +BorgBackup (short: Borg) is a deduplicating backup program. Optionally, it supports compression and authenticated encryption. + +The main goal of Borg is to provide an efficient and secure way to backup data. The data deduplication technique used makes Borg suitable for daily backups since only changes are stored. The authenticated encryption technique makes it suitable for backups to not fully trusted targets.[¹](#sources) + +## Useful links + ++ Website: [www.borgbackup.org](https://www.borgbackup.org/) ++ Official documentation: [borgbackup.readthedocs.io](https://borgbackup.readthedocs.io/en/stable/) ++ Application software repository: [github.com - YunoHost- Apps/borg](https://github.com/YunoHost-Apps/borg_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/borg/issues](https://github.com/YunoHost-Apps/borg_ynh/issues) + +------ + +### Sources + +¹ [borgbackup.readthedocs.io](https://borgbackup.readthedocs.io/en/stable/#what-is-borgbackup) diff --git a/app_borg_fr.md b/app_borg_fr.md new file mode 100644 index 00000000..25f9626c --- /dev/null +++ b/app_borg_fr.md @@ -0,0 +1,24 @@ +# logo de Borg Borg + +[![Install Borg with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=borg) [![Integration level](https://dash.yunohost.org/integration/borg.svg)](https://dash.yunohost.org/appci/app/borg) + +### Index + +- [Liens utiles](#liens-utiles) + +BorgBackup (abréviation : Borg) est un programme de sauvegarde par déduplication. En option, il prend en charge la compression et le cryptage authentifié. + +L'objectif principal de Borg est de fournir un moyen efficace et sûr de sauvegarder les données. La technique de déduplication des données utilisée rend Borg adapté aux sauvegardes quotidiennes puisque seules les modifications sont stockées. La technique de cryptage authentifié permet de sauvegarder des données sur des cibles qui ne sont pas totalement fiables.[¹](#sources) + +## Liens utiles + ++ Site web : [www.borgbackup.org (en)](https://www.borgbackup.org/) ++ Documentation officielle : [borgbackup.readthedocs.io (en)](https://borgbackup.readthedocs.io/en/stable/) ++ Dépôt logiciel de l'application : [github.com - YunoHost- Apps/borg](https://github.com/YunoHost-Apps/borg_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/borg/issues](https://github.com/YunoHost-Apps/borg_ynh/issues) + +------ + +### Sources + +¹ [borgbackup.readthedocs.io (en)](https://borgbackup.readthedocs.io/en/stable/#what-is-borgbackup) diff --git a/app_bozon.md b/app_bozon.md new file mode 100644 index 00000000..c393f8d2 --- /dev/null +++ b/app_bozon.md @@ -0,0 +1,15 @@ +# Package BoZoN + +[![Install BoZoN with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bozon) [![Integration level](https://dash.yunohost.org/integration/bozon.svg)](https://ci-apps.yunohost.org/jenkins/job/bozon%20%28Community%29/lastBuild/consoleFull) + +### Index + +- [Useful links](#useful-links) + +Minimalist Drag & drop file sharing app + +## Useful links + ++ Website: [github.com - broncowdd/BoZoN](https://github.com/broncowdd/BoZoN) ++ Application software repository: [github.com - YunoHost-Apps/bozon](https://github.com/YunoHost-Apps/bozon_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/bozon/issues](https://github.com/YunoHost-Apps/bozon_ynh/issues) diff --git a/app_bozon_fr.md b/app_bozon_fr.md new file mode 100644 index 00000000..4ed06bb5 --- /dev/null +++ b/app_bozon_fr.md @@ -0,0 +1,15 @@ +# Package BoZoN + +[![Install BoZoN with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=bozon) [![Integration level](https://dash.yunohost.org/integration/bozon.svg)](https://ci-apps.yunohost.org/jenkins/job/bozon%20%28Community%29/lastBuild/consoleFull) + +### Index + +- [Liens utiles](#liens-utiles) + +Application minimaliste de partage de fichiers par glisser-déposer + +## Liens utiles + ++ Site web : [github.com - broncowdd/BoZoN (en)](https://github.com/broncowdd/BoZoN) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/bozon](https://github.com/YunoHost-Apps/bozon_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/bozon/issues](https://github.com/YunoHost-Apps/bozon_ynh/issues) diff --git a/app_calibreweb.md b/app_calibreweb.md new file mode 100644 index 00000000..f6ca3261 --- /dev/null +++ b/app_calibreweb.md @@ -0,0 +1,15 @@ +# Package Calibre-Web + +[![Install calibreweb with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=calibreweb) [![Integration level](https://dash.yunohost.org/integration/calibreweb.svg)](https://ci-apps.yunohost.org/jenkins/job/calibreweb%20%28Community%29/lastBuild/consoleFull) + +### Index + +- [Useful links](#useful-links) + +Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. + +## Useful links + ++ Website: [github.com - janeczku/calibre-web](https://github.com/janeczku/calibre-web) ++ Application software repository: [github.com - YunoHost-Apps/calibreweb](https://github.com/YunoHost-Apps/calibreweb_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/calibreweb](https://github.com/YunoHost-Apps/calibreweb_ynh/issues) diff --git a/app_calibreweb_fr.md b/app_calibreweb_fr.md new file mode 100644 index 00000000..c7fc7d71 --- /dev/null +++ b/app_calibreweb_fr.md @@ -0,0 +1,15 @@ +# Package Calibre-Web + +[![Install calibreweb with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=calibreweb) [![Integration level](https://dash.yunohost.org/integration/calibreweb.svg)](https://ci-apps.yunohost.org/jenkins/job/calibreweb%20%28Community%29/lastBuild/consoleFull) + +### Index + +- [Liens utiles](#liens-utiles) + +Calibre-Web est une application web fournissant une interface propre pour naviguer, lire et télécharger des livres électroniques en utilisant une base de données Calibre existante. + +## Liens utiles + ++ Site web : [github.com - janeczku/calibre-web (en)](https://github.com/janeczku/calibre-web) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/calibreweb](https://github.com/YunoHost-Apps/calibreweb_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/calibreweb](https://github.com/YunoHost-Apps/calibreweb_ynh/issues) diff --git a/app_cheky.md b/app_cheky.md new file mode 100644 index 00000000..566d8d08 --- /dev/null +++ b/app_cheky.md @@ -0,0 +1,21 @@ +# Package Cheky + +[![Install Cheky with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=cheky) [![Integration level](https://dash.yunohost.org/integration/cheky.svg)](https://dash.yunohost.org/appci/app/cheky) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Cheky is a software written in PHP allowing you to receive new ads published on the websites Leboncoin.fr and SeLoger.com. You can receive alerts via different communication channels. + +## Limitations with YunoHost + +Updates from the old LBCAlerte package are not possible, the application is only in French. Cheky does not work with [SSO](https://yunohost.org/#/users). + +## Useful links + ++ Website: [www.cheky.net (fr)](https://www.cheky.net/) ++ Official documentation: [www.cheky.net - documentation (fr)](https://www.cheky.net/documentation) ++ Application software repository: [github.com - YunoHost-Apps/cheky](https://github.com/YunoHost-Apps/cheky_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/cheky](https://github.com/YunoHost-Apps/cheky_ynh/issues) diff --git a/app_cheky_fr.md b/app_cheky_fr.md new file mode 100644 index 00000000..59916b0c --- /dev/null +++ b/app_cheky_fr.md @@ -0,0 +1,21 @@ +# Package Cheky + +[![Install Cheky with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=cheky) [![Integration level](https://dash.yunohost.org/integration/cheky.svg)](https://dash.yunohost.org/appci/app/cheky) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Cheky est un logiciel écrit en PHP vous permettant de recevoir les nouvelles annonces publiées sur les sites internet Leboncoin.fr et SeLoger.com. Vous pouvez recevoir les alertes via différents canaux de communication. + +## Limitations avec YunoHost + +Les mises à jour depuis l'ancien package LBCAlerte ne sont pas possibles, l'application est uniquement en français. Cheky ne fonctionne pas avec le [SSO](https://yunohost.org/#/users). + +## Liens utiles + ++ Site web : [www.cheky.net](https://www.cheky.net/) ++ Documentation officielle : [www.cheky.net - documentation](https://www.cheky.net/documentation) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/cheky](https://github.com/YunoHost-Apps/cheky_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/cheky](https://github.com/YunoHost-Apps/cheky_ynh/issues) diff --git a/app_civicrm_drupal7.md b/app_civicrm_drupal7.md new file mode 100644 index 00000000..7f5cd983 --- /dev/null +++ b/app_civicrm_drupal7.md @@ -0,0 +1,22 @@ +# CiviCRM's logo CiviCRM + +[![Install CiviCRM on Drupal 7 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=civicrm_drupal7) [![Integration level](https://dash.yunohost.org/integration/civicrm_drupal7.svg)](https://dash.yunohost.org/appci/app/civicrm_drupal7) + +### Index + +- [Useful links](#useful-links) + +CiviCRM is a web-based suite of internationalized open-source software for constituency relationship management that falls under the broad rubric of customer relationship management. It is specifically designed for the needs of non-profit,non-governmental, and advocacy groups, and serves as an association-management system.[¹](#sources) + +## Useful links + ++ Website: [civicrm.org](https://civicrm.org/) ++ Official documentation: [docs.civicrm.org](https://docs.civicrm.org/) ++ Application software repository: [github.com - YunoHost-Apps/civicrm_drupal7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/civicrm_drupal7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh/issues) + +------ + +### Sources + +¹ [wikipedia.org - CiviCRM](https://en.wikipedia.org/wiki/CiviCRM) diff --git a/app_civicrm_drupal7_fr.md b/app_civicrm_drupal7_fr.md new file mode 100644 index 00000000..6c6c6549 --- /dev/null +++ b/app_civicrm_drupal7_fr.md @@ -0,0 +1,22 @@ +# logo de CiviCRM CiviCRM + +[![Install CiviCRM on Drupal 7 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=civicrm_drupal7) [![Integration level](https://dash.yunohost.org/integration/civicrm_drupal7.svg)](https://dash.yunohost.org/appci/app/civicrm_drupal7) + +### Index + +- [Liens utiles](#liens-utiles) + +CiviCRM est une solution Web Open Source de gestion de la relation client. Elle a été spécialement conçue pour répondre aux besoins des organismes à but non lucratif, des organisations non gouvernementales et des groupes de pression.[¹](#sources) + +## Liens utiles + ++ Site web : [civicrm.org (en)](https://civicrm.org/) ++ Documentation officielle : [docs.civicrm.org (en)](https://docs.civicrm.org/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/civicrm_drupal7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/civicrm_drupal7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh/issues) + +------ + +### Sources + +¹ [wikipedia.org - CiviCRM](https://fr.wikipedia.org/wiki/CiviCRM) diff --git a/app_codimd.md b/app_codimd.md new file mode 100644 index 00000000..562e0659 --- /dev/null +++ b/app_codimd.md @@ -0,0 +1,18 @@ +# CodiMD’s logo CodiMD + +[![Install CodiMD with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=codimd) [![Integration level](https://dash.yunohost.org/integration/codimd.svg)](https://dash.yunohost.org/appci/app/codimd) + +### Index + +- [Useful links](#useful-links) + +CodiMD is a collaborative, real-time word processing web service. It uses Markdown language, which is a simple way to format text. +CodiMD offers a wide range of features for all common uses of word processing, including title management, table of contents, insertion of images, tables, footnotes, video overlay, PDF viewers, LaTeX mathematical expressions with MathJax, diagrams, etc. +Different levels of permission allow you to choose who can read or edit the document. + +## Useful links + ++ Official demo: [https://demo.codimd.org/](https://demo.codimd.org/) ++ Official documentation: [github.com/codimd](https://github.com/codimd/server/tree/master/docs/) ++ Application software repository: [github.com - YunoHost-Apps/codimd](https://github.com/YunoHost-Apps/codimd_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/codimd/issues](https://github.com/YunoHost-Apps/codimd_ynh/issues) diff --git a/app_codimd_fr.md b/app_codimd_fr.md new file mode 100644 index 00000000..66eed39c --- /dev/null +++ b/app_codimd_fr.md @@ -0,0 +1,18 @@ +# logo de CodiMD CodiMD + +[![Installer CodiMD avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=codimd) [![Integration level](https://dash.yunohost.org/integration/codimd.svg)](https://dash.yunohost.org/appci/app/codimd) + +### Index + +- [Liens utiles](#liens-utiles) + +CodiMD est un service web de traitement de texte collaboratif en temps réel. Il utilise le langage Markdown, qui est un moyen simple pour formater un texte. +CodiMD propose un vaste choix de fonctionnalités pour toutes les utilisations courantes du traitement de texte parmi lesquelles gestion des titres, table de matières, insertion d’images, tableaux, notes de bas de page, incrustation de vidéos, visualisateurs PDF, expressions mathématiques LaTeX avec MathJax, diagrammes, etc. +Différents niveaux de permission permettent de choisir qui peut lire ou éditer le document. + +## Liens utiles + ++ Démo officielle : [https://demo.codimd.org/](https://demo.codimd.org/) ++ Documentation officielle : [github.com/codimd](https://github.com/codimd/server/tree/master/docs/) ++ Dépôt logiciel de l’application : [github.com - YunoHost-Apps/codimd](https://github.com/YunoHost-Apps/codimd_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/codimd/issues](https://github.com/YunoHost-Apps/codimd_ynh/issues) diff --git a/app_collabora.md b/app_collabora.md new file mode 100644 index 00000000..68926114 --- /dev/null +++ b/app_collabora.md @@ -0,0 +1,15 @@ +# collabora's logo Collabora + +[![Install collabora with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=collabora) [![Integration level](https://dash.yunohost.org/integration/collabora.svg)](https://dash.yunohost.org/appci/app/collabora) + +### Index + +- [Useful links](#useful-links) + +Collabora is an online office suite based on LibreOffice and usable with Nextcloud or ownCloud. It allows you to edit text documents, tables, slideshows. The online edition can be done simultaneously and allows you to export and print documents using the generated PDF format. + +## Useful links + ++ Website: [www.collaboraoffice.com](https://www.collaboraoffice.com/) ++ Application software repository: [github.com - YunoHost-Apps/collabora](https://github.com/YunoHost-Apps/collabora_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/collabora/issues](https://github.com/YunoHost-Apps/collabora_ynh/issues) diff --git a/app_collabora_fr.md b/app_collabora_fr.md new file mode 100644 index 00000000..659e2edb --- /dev/null +++ b/app_collabora_fr.md @@ -0,0 +1,15 @@ +# logo de collabora Collabora + +[![Install collabora with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=collabora) [![Integration level](https://dash.yunohost.org/integration/collabora.svg)](https://dash.yunohost.org/appci/app/collabora) + +### Index + +- [Liens utiles](#liens-utiles) + +Collabora est une suite bureautique en ligne basée sur LibreOffice et utilisable avec Nextcloud ou ownCloud. Elle permet d'éditer des documents textes, des tableaux, des diaporamas. L'édition en ligne peut se faire en simultanée et permet d'exporter et d'imprimer des documents grâce au format PDF généré. + +## Liens utiles + ++ Site web : [www.collaboraoffice.com](https://www.collaboraoffice.com/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/collabora](https://github.com/YunoHost-Apps/collabora_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/collabora/issues](https://github.com/YunoHost-Apps/collabora_ynh/issues) diff --git a/app_collaboradocker.md b/app_collaboradocker.md new file mode 100644 index 00000000..c6a10813 --- /dev/null +++ b/app_collaboradocker.md @@ -0,0 +1,32 @@ +# Install Collabora with Nextcloud, using Docker + +**Note:** This walkthrough is based on a Debian 8 instance, and has not been tested since version 3 upgrade of YunoHost. As a prerequisite, you must have configured your domains and sub-domains in the DNS, in compliance with: [DNS](/dns), [Sub-domain install of an app](/dns_subdomains), [DNS settings](/dns_config) and [noho.st / nohost.me / ynh.fr domains](/dns_nohost_me). + +### 0. Install Nextcloud + +If Nextcloud is not already installed on your YunoHost instance, you may do so with this link: [Install Nextcloud](https://install-app.yunohost.org/?app=nextcloud) + +### 1. Install Collabora app within YunoHost + +**In the admin interface:** + +Applications > Install > at the bottom _Install a custom application_ > enter this URL « https://github.com/aymhce/collaboradocker_ynh » > Enter the domain/subdomain name you wish for the Collabora application. + +### 2. Configuration within Nextcloud + + **Add the Collabora Online application in Nextcloud:** + +Click on the user icon (top right) > Applications > Desktop & Text > Under the « Collabora Online » tile, click on `Activate` . + +**Setup Collabora in Nextcloud:** + +Click on the user icon (top right) > Parametres > Under _Administration_, _Collabora Online_ . +Specify the « Online Collabora server » with the domain name chosen during the Collabora install in YunoHost (full with « https:// »). + +### 3. Reboot + +To allow all the pieces to work, system must be reboot. You can do so through the admin interface (Tools > Stop/reboot > `Reboot`) or via the command line interface: `sudo reboot now`. + +## Debugging + +Following some system, YunoHost or app updates, Collabora may display an error message such as "It's embarrassing...". To put things back in order, you just have to restart the docker machine, with the command `systemctl restart docker`. diff --git a/app_collaboradocker_fr.md b/app_collaboradocker_fr.md new file mode 100644 index 00000000..b5c12a2f --- /dev/null +++ b/app_collaboradocker_fr.md @@ -0,0 +1,33 @@ +# Installer Collabora avec Nextcloud avec Docker + +**Note :** la marche à suivre detaillée est réalisée ici à partir d’une instance YunoHost sur Debian 8 (celle-ci n'a pas été testée suite à la migration vers la version 3 de YunoHost). Ces instructions ont pour pré-requis que les domaines/sous-domaines sont correctement configurés au niveau des DNS et de votre instance YunoHost (voir [DNS](/dns), [DNS et installation d’une application sur un sous-domaine](/dns_subdomains), [Configurer les enregistrements DNS](/dns_config) et [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me)). + +### 0. Installer Nextcloud + +Si l'application Nexcloud n'est pas déja installée sur votre instance YunoHost, vous pouvez l’installer depuis le lien suivant : [Installer Nextcloud](https://install-app.yunohost.org/?app=nextcloud) + + +### 1. Installer l'application Collabora dans YunHost +**dans l'interface d'administration :** + +Applications > Installer > En bas de la page _Installer une application personnalisée_ > Renseigner l’URL « https://github.com/aymhce/collaboradocker_ynh » > Définir le nom de domaine secondaire/sous-domaine dédié à l'application Collabora. + + +### 2. Configuration dans Nextcloud + + **Ajouter l'application Collabora Online à Nextcloud :** + +Cliquer sur l'icône 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 l’installation de Collabora dans YunoHost (précédé de « https:// »). + +### 3. Reboot + +Pour permettre la mise en marche du lien collabora-Nextcloud, le système doit être rebooté. Faisable depuis l'interface d'administration : Outils > Arrêter/redémarrer > `Redémarrer`. Ou depuis la ligne de commande : ``sudo reboot now``. + +## Débug + +Suite à certaines mises à jour du système, de YunoHost ou des applications, Collabora peut afficher un message d'erreur du type "c'est embarrassant...". Pour remettre les choses en marche, il suffit de redémarrer la machine docker, avec la commande `systemctl restart docker`. diff --git a/app_concrete5.md b/app_concrete5.md new file mode 100644 index 00000000..948c62fc --- /dev/null +++ b/app_concrete5.md @@ -0,0 +1,18 @@ +# Concrete5's logo Concret5 + +[![Install concrete5 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=concrete5) [![Integration level](https://dash.yunohost.org/integration/concrete5.svg)](https://dash.yunohost.org/appci/app/concrete5) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +## Limitations with YunoHost + +LDAP and HTTP auth are not supported. + +## Useful links + ++ Website: [documentation.concrete5.org](https://documentation.concrete5.org/) ++ Application software repository: [github.com - YunoHost-Apps/concrete5](https://github.com/YunoHost-Apps/concrete5_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/concrete5/issues](https://github.com/YunoHost-Apps/concrete5_ynh/issues) diff --git a/app_concrete5_fr.md b/app_concrete5_fr.md new file mode 100644 index 00000000..81303902 --- /dev/null +++ b/app_concrete5_fr.md @@ -0,0 +1,18 @@ +# Logo de Concrete5 Concret5 + +[![Install concrete5 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=concrete5) [![Integration level](https://dash.yunohost.org/integration/concrete5.svg)](https://dash.yunohost.org/appci/app/concrete5) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +## Limitations avec YunoHost + +L'authentification LDAP et HTTP n'est pas prise en charge. + +## Liens utiles + ++ Site web : [documentation.concrete5.org (en)](https://documentation.concrete5.org/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/concrete5](https://github.com/YunoHost-Apps/concrete5_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/concrete5](https://github.com/YunoHost-Apps/concrete5_ynh/issues) diff --git a/app_cowyo.md b/app_cowyo.md new file mode 100644 index 00000000..15fafba2 --- /dev/null +++ b/app_cowyo.md @@ -0,0 +1,21 @@ +# Cowyo's logo Cowyo + +[![Install cowyo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=cowyo) [![Integration level](https://dash.yunohost.org/integration/cowyo.svg)](https://ci-apps.yunohost.org/ci/apps/cowyo/) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Cowyo is a self-contained wiki server that makes jotting notes easy and fast. The most important feature here is simplicity. Other features include versioning, page locking, self-destructing messages, encryption, and listifying. + +## Limitations with YunoHost + +By design, cowyo requires its own domain. He does not support multiple users. + +## Useful links + ++ Website (demo): [cowyo.com](https://cowyo.com) ++ Official documentation: [github.com - schollz/cowyo/README](https://github.com/schollz/cowyo/blob/master/README.md) ++ Application software repository: [github.com - YunoHost-Apps/cowyo](https://github.com/YunoHost-Apps/cowyo_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/cowyo/issues](https://github.com/YunoHost-Apps/cowyo_ynh/issues) diff --git a/app_cowyo_fr.md b/app_cowyo_fr.md new file mode 100644 index 00000000..5658891c --- /dev/null +++ b/app_cowyo_fr.md @@ -0,0 +1,21 @@ +# Logo de Cowyo Cowyo + +[![Install cowyo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=cowyo) [![Integration level](https://dash.yunohost.org/integration/cowyo.svg)](https://ci-apps.yunohost.org/ci/apps/cowyo/) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Cowyo est un serveur wiki autonome qui permet de prendre des notes facilement et rapidement. La caractéristique la plus importante ici est la simplicité. Les autres caractéristiques sont le versionnage, le verrouillage des pages, les messages autodestructeurs, le cryptage et la lisibilité. + +## Limitations avec YunoHost + +De par sa conception, Cowyo a besoin de son propre domaine dédié. Il ne supporte pas les multiples utilisateurs. + +## Liens utiles + ++ Site web (demo) : [cowyo.com](https://cowyo.com) ++ Documentation officielle : [github.com - schollz/cowyo/README (en)](https://github.com/schollz/cowyo/blob/master/README.md) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/cowyo](https://github.com/YunoHost-Apps/cowyo_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/cowyo](https://github.com/YunoHost-Apps/cowyo_ynh/issues) diff --git a/app_diagramsnet.md b/app_diagramsnet.md new file mode 100644 index 00000000..3aeabdd6 --- /dev/null +++ b/app_diagramsnet.md @@ -0,0 +1,24 @@ +# Diagrams.net's logo Diagrams.net + +[![Install diagramsnet with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=diagramsnet) [![Integration level](https://dash.yunohost.org/integration/diagramsnet.svg)](https://dash.yunohost.org/appci/app/diagramsnet) + +### Index + +- [Useful links](#useful-links) + +diagrams.net lets you create a wide range of diagrams, from simple tree and flow diagrams, to highly technical network, rack and electrical diagrams. + +It’s a free, online diagram editor and viewer with a wide variety of shapes, icons, connector and templates to help you get started quickly. It’s also feature-rich–experienced diagrammers will feel at home.[¹](#sources) + +## Useful links + ++ Website: [www.diagrams.net](https://www.diagrams.net/index.html) ++ Official documentation: [www.diagrams.net - doc](https://www.diagrams.net/doc/) ++ Application software repository: [github.com - YunoHost-Apps/diagramsnet](https://github.com/YunoHost-Apps/diagramsnet_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/diagramsnet/issues](https://github.com/YunoHost-Apps/diagramsnet_ynh/issues) + +----- + +### Sources + +¹ [www.diagrams.net - about](https://www.diagrams.net/about.html) diff --git a/app_diagramsnet_fr.md b/app_diagramsnet_fr.md new file mode 100644 index 00000000..d29fa9b2 --- /dev/null +++ b/app_diagramsnet_fr.md @@ -0,0 +1,24 @@ +# logo de Diagrams.net Diagrams.net + +[![Install diagramsnet with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=diagramsnet) [![Integration level](https://dash.yunohost.org/integration/diagramsnet.svg)](https://dash.yunohost.org/appci/app/diagramsnet) + +### Index + +- [Liens utiles](#liens-utiles) + +diagrams.net vous permet de créer un large éventail de diagrammes, allant de simples arborescences et organigrammes, à des diagrammes très techniques de réseaux, de baies et d'électricité. + +Il s'agit d'un éditeur et d'un visualiseur de diagrammes en ligne gratuit qui propose une grande variété de formes, d'icônes, de connecteurs et de modèles pour vous aider à démarrer rapidement. Il est également doté de fonctions qui permettent aux utilisateurs expérimentés de se sentir chez eux.[¹](#sources) + +## Liens utiles + + + Site web : [www.diagrams.net (en)](https://www.diagrams.net/index.html) + + Documentation officielle : [www.diagrams.net - doc (en)](https://www.diagrams.net/doc/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/diagramsnet](https://github.com/YunoHost-Apps/diagramsnet_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/diagramsnet/issues](https://github.com/YunoHost-Apps/diagramsnet_ynh/issues) + + ------ + +### Sources + + ¹ [www.diagrams.net - about (en)](https://www.diagrams.net/about.html) diff --git a/app_discourse.md b/app_discourse.md new file mode 100644 index 00000000..6e44c741 --- /dev/null +++ b/app_discourse.md @@ -0,0 +1,27 @@ +# Discourse's logo Discourse + +[![Install Discourse with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=discourse) [![Integration level](https://dash.yunohost.org/integration/discourse.svg)](https://ci-apps.yunohost.org/jenkins/job/discourse%20%28Community%29/lastBuild/consoleFull) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Discourse has all the usual features of a discussion forum: users, discussions, search, private messages, etc. The "mailing list" mode allows you to use most of the forum's functionalities via e-mail. Written in Ruby and JavaScript, it requires a PostgreSQL database and a mail server.[¹](#sources) + +## Limitations with YunoHost + +In the administration dashboard, The installed version is shown as unknown (due the fact that we don't use Git for installation); you can safely ignore that as the YunoHost package will be maintained. On ARM devices, default generated avatars are missing the profile initials (they are only a plain discus). + +## Useful links + ++ Website: [www.discourse.org](https://www.discourse.org/) ++ Official documentation: [www.discourse.org - customers](https://www.discourse.org/customers) ++ Application software repository: [github.com - YunoHost-Apps/discourse](https://github.com/YunoHost-Apps/discourse_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/discourse/issues](https://github.com/YunoHost-Apps/discourse_ynh/issues) + +----- + +### Sources + +¹ [framalibre.org - Discourse (fr)](https://framalibre.org/content/discourse) diff --git a/app_discourse_fr.md b/app_discourse_fr.md new file mode 100644 index 00000000..3a7bacf0 --- /dev/null +++ b/app_discourse_fr.md @@ -0,0 +1,27 @@ +# logo de Discourse Discourse + +[![Install Discourse with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=discourse) [![Integration level](https://dash.yunohost.org/integration/discourse.svg)](https://ci-apps.yunohost.org/jenkins/job/discourse%20%28Community%29/lastBuild/consoleFull) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Discourse dispose des fonctionnalités usuelles d’un forum de discussion : utilisateurs, discussions, recherche, messages privés, etc. Le mode « liste de diffusion » permet d’utiliser la plupart des fonctionnalités du forum via des courriers électroniques. Écrit en ruby et en JavaScript, il nécessite une base de données PostgreSQL et un serveur d’envoi de courrier électronique.[¹](#sources) + +## Limitations avec YunoHost + +Dans le tableau de bord de l'administration, la version installée est indiquée comme inconnue (du fait que nous n'utilisons pas Git pour l'installation) ; vous pouvez ignorer cela sans risque car le paquet YunoHost sera maintenu. Sur les appareils ARM, les avatars générés par défaut ne portent pas les initiales du profil (il ne s'agit que d'un simple disque). + +## Liens utiles + + + Site web : [www.discourse.org (en)](https://www.discourse.org/) + + Documentation officielle : [www.discourse.org - customers (en)](https://www.discourse.org/customers) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/discourse](https://github.com/YunoHost-Apps/discourse_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/discourse/issues](https://github.com/YunoHost-Apps/discourse_ynh/issues) + + ------ + +### Sources + +¹ [framalibre.org - Discourse](https://framalibre.org/content/discourse) diff --git a/app_distbin.md b/app_distbin.md new file mode 100644 index 00000000..f63b23c2 --- /dev/null +++ b/app_distbin.md @@ -0,0 +1,17 @@ +# Package Distbin + +[![Install distbin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=distbin) [![Integration level](https://dash.yunohost.org/integration/distbin.svg)](https://dash.yunohost.org/appci/app/distbin) + +### Index + +- [Useful links](#useful-links) + +A distributed pastebin. i.e. it is a service where anyone can post things on the web, and others can react by posting anywhere else on the web (including here). + +A networked place to store posted web documents. This is meant to allow for distributed social commentary and reaction around these documents using best practices recommended or noted by the W3C Social Web Working Group. + +## Useful links + ++ Official documentation: [github.com - gobengo/distbin](https://github.com/gobengo/distbin) ++ Application software repository: [github.com - YunoHost-Apps/distbin](https://github.com/YunoHost-Apps/distbin_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/distbin/issues](https://github.com/YunoHost-Apps/distbin_ynh/issues) diff --git a/app_distbin_fr.md b/app_distbin_fr.md new file mode 100644 index 00000000..d251f270 --- /dev/null +++ b/app_distbin_fr.md @@ -0,0 +1,17 @@ +# Package Distbin + +[![Install Distbin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=distbin) [![Integration level](https://dash.yunohost.org/integration/distbin.svg)](https://dash.yunohost.org/appci/app/distbin) + +### Index + +- [Liens utiles](#liens-utiles) + +Un pastebin distribué, c'est-à-dire un service où n'importe qui peut poster des choses sur le Web, et d'autres peuvent réagir en postant n'importe où ailleurs sur le Web (y compris ici). + +Un endroit en réseau pour stocker les documents Web postés. Ceci est destiné à permettre la distribution de commentaires et de réactions sociales autour de ces documents en utilisant les meilleures pratiques recommandées ou notées par le groupe de travail du W3C sur le Web social. + +## Liens utiles + + + Documentation officielle : [github.com - gobengo/distbin (en)](https://github.com/gobengo/distbin) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/distbin](https://github.com/YunoHost-Apps/distbin_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/distbin/issues](https://github.com/YunoHost-Apps/distbin_ynh/issues) diff --git a/app_dokuwiki.md b/app_dokuwiki.md new file mode 100644 index 00000000..affc03ea --- /dev/null +++ b/app_dokuwiki.md @@ -0,0 +1,27 @@ +# Dokuwiki's logo DokuWiki + +[![Installer DokuWiki grâce à YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=dokuwiki) [![Niveau d'intégration](https://dash.yunohost.org/integration/dokuwiki.svg)](https://dash.yunohost.org/appci/app/dokuwiki) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +DokuWiki is a standards-compliant, easy-to-use, standards-compliant GNU GPL free wiki engine whose main purpose is to create documentation of all kinds. This software is developed in PHP by Andreas Gohr. ...] It has a simple syntax that ensures the readability of data files outside of the wiki, and facilitates the creation of structured texts. All data is stored in text files, so no database is needed. [¹](#sources) + +## Limitations with YunoHost + +It is currently impossible to add and use internal DokuWiki users, only YunoHost users. + +## Useful links + ++ Website: [dokuwiki.org](https://dokuwiki.org) ++ Official documentation: [dokuwiki.org - Manual](https://www.dokuwiki.org/manual) ++ Application software repository: [github.com - YunoHost-App/dokuwiki](https://github.com/YunoHost-Apps/dokuwiki_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com -YunoHost-Apps/dokuwiki/issues](https://github.com/YunoHost-Apps/dokuwiki_ynh/issues) + +------ + +### Sources + +¹ [wikipedia.org - Dokuwiki (fr)](https://fr.wikipedia.org/wiki/DokuWiki) diff --git a/app_dokuwiki_fr.md b/app_dokuwiki_fr.md new file mode 100644 index 00000000..48798e6e --- /dev/null +++ b/app_dokuwiki_fr.md @@ -0,0 +1,27 @@ +# logo de Dokuwiki DokuWiki + +[![Installer DokuWiki grâce à YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=dokuwiki) [![Niveau d'intégration](https://dash.yunohost.org/integration/dokuwiki.svg)](https://dash.yunohost.org/appci/app/dokuwiki) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +DokuWiki est un moteur de wiki libre sous licence GNU GPL conforme aux standards, simple à utiliser, dont le but principal est de créer des documentations de toute sorte. Ce logiciel est développé en PHP par Andreas Gohr. [...] Il a une syntaxe simple qui assure la lisibilité des fichiers de données en dehors du Wiki, et facilite la création de textes structurés. Toutes les données sont stockées dans des fichiers texte, et donc aucune base de données n’est nécessaire.[¹](#sources) + +## Limitations avec YunoHost + +Il est pour le moment impossible d'ajouter et d'utiliser les utilisateurs internes de DokuWiki, seulement ceux de YunoHost. + +## Liens utiles + ++ Site web : [dokuwiki.org](https://www.dokuwiki.org/start?id=fr:dokuwiki) ++ Documentation officielle : [dokuwiki.org - Manuel Dokuwiki](https://www.dokuwiki.org/start?id=fr:manual) ++ Dépôt logiciel de l'application : [github.com - YunoHost-App/dokuwiki](https://github.com/YunoHost-Apps/dokuwiki_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/dokuwiki/issues](https://github.com/YunoHost-Apps/dokuwiki_ynh/issues) + +------ + +### Sources + +¹ [wikipedia.org - Dokuwiki](https://fr.wikipedia.org/wiki/DokuWiki) diff --git a/app_dolibarr.md b/app_dolibarr.md new file mode 100644 index 00000000..01dcd21f --- /dev/null +++ b/app_dolibarr.md @@ -0,0 +1,27 @@ +# Dolibarr's logo Dolibarr + +[![Install Dolibarr with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=dolibarr) [![Integration level](https://dash.yunohost.org/integration/dolibarr.svg)](https://dash.yunohost.org/appci/app/dolibarr) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Dolibarr ERP CRM is an open source, free software package for small and medium companies, foundations or freelancers. It includes different features for enterprise resource planning (ERP) and customer relationship management (CRM) but also other features for different activities.[¹](#sources) + +## Limitations with YunoHost + +Dolibarr must be a non-public application to be able to link YunoHost accounts. The deletion of an account is not taken into account in Dolibarr. + +## Useful links + ++ Website: [www.dolibarr.org](https://www.dolibarr.org/) ++ Official documentation: [www.dolibarr.org - documentation-home](https://www.dolibarr.org/documentation-home) ++ Application software repository: [github.com - YunoHost-Apps/dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/dolibarr/issues](https://github.com/YunoHost-Apps/dolibarr_ynh/issues) + +----- + +### Sources + +¹ [wikipedia.org - Dolibarr](https://en.wikipedia.org/wiki/Dolibarr) diff --git a/app_dolibarr_fr.md b/app_dolibarr_fr.md new file mode 100644 index 00000000..13043607 --- /dev/null +++ b/app_dolibarr_fr.md @@ -0,0 +1,27 @@ +# logo de Dolibarr Dolibarr + +[![Install Dolibarr with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=dolibarr) [![Integration level](https://dash.yunohost.org/integration/dolibarr.svg)](https://dash.yunohost.org/appci/app/dolibarr) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Dolibarr ERP/CRM est un progiciel de gestion intégré (PGI, ERP en anglais) et gestion de la relation client (GRC, CRM en anglais) open source pour les petites et moyennes entreprises, les indépendants, auto-entrepreneurs ou les associations.[¹](#sources) + +## Limitations avec YunoHost + +Dolibarr doit être une application non publique pour pouvoir relier les comptes des YunoHost. La suppression d'un compte n'est pas prise en compte dans Dolibarr. + +## Liens utiles + + + Site web : [www.dolibarr.fr](https://www.dolibarr.fr/) + + Documentation officielle : [www.dolibarr.fr - documentation](https://www.dolibarr.fr/documentation) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/dolibarr/issues](https://github.com/YunoHost-Apps/dolibarr_ynh/issues) + + ------ + +### Sources + + ¹ [wikipedia.org - Dolibarr](https://fr.wikipedia.org/wiki/Dolibarr) diff --git a/app_dotclear2.md b/app_dotclear2.md new file mode 100644 index 00000000..7532e805 --- /dev/null +++ b/app_dotclear2.md @@ -0,0 +1,24 @@ +# Dotclear's logo Dotclear 2 + +[![Install dotclear2 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=dotclear2) [![Integration level](https://dash.yunohost.org/integration/dotclear2.svg)](https://dash.yunohost.org/appci/app/dotclear2) + +### Index + +- [Useful links](#useful-links) + +Dotclear is an open-source blog publishing application distributed under the GNU GPLv2. Developed originally by Olivier Meunier from 2002, Dotclear has now attracted a solid team of developers. It is relatively popular in French speaking countries, where it is used by several major blogging platforms (Gandi Blogs, Marine nationale, etc.). + +Dotclear's proposed aim is to develop a software that fully respects web standards based on open source solutions, with multilingual interface and publishing capabilities. It is written in PHP. [¹](#sources) + +## Useful links + ++ Website: [dotclear.org](https://dotclear.org/) ++ Official documentation: [dotclear.org - documentation/2.0](https://dotclear.org/documentation/2.0) ++ Application software repository: [github.com - YunoHost-Apps/dotclear2](https://github.com/YunoHost-Apps/dotclear2_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/dotclear2/issues](https://github.com/YunoHost-Apps/dotclear2_ynh/issues) + +----- + +### Sources + +¹ [wikipedia.org - Dotclear](https://en.wikipedia.org/wiki/Dotclear) diff --git a/app_dotclear2_fr.md b/app_dotclear2_fr.md new file mode 100644 index 00000000..3e0cc64d --- /dev/null +++ b/app_dotclear2_fr.md @@ -0,0 +1,24 @@ +# Logo de Dotclear Dotclear 2 + +[![Install dotclear2 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=dotclear2) [![Integration level](https://dash.yunohost.org/integration/dotclear2.svg)](https://dash.yunohost.org/appci/app/dotclear2) + +### Index + +- [Liens utiles](#liens-utiles) + +Dotclear est une application de publication de blogs à code source libre distribuée sous la licence GNU GPLv2. Développé à l'origine par Olivier Meunier à partir de 2002, Dotclear a maintenant attiré une solide équipe de développeurs. Il est relativement populaire dans les pays francophones, où il est utilisé par plusieurs grandes plateformes de blogs (Gandi Blogs, Marine nationale, etc.). + +L'objectif proposé par Dotclear est de développer un logiciel qui respecte pleinement les standards du web basés sur des solutions open source, avec une interface et des capacités de publication multilingues. Il est écrit en PHP.[¹](#sources) + +## Liens utiles + + + Site web : [dotclear.org](https://fr.dotclear.org/) + + Documentation officielle : [dotclear.org - documentation](https://fr.dotclear.org/documentation/) + + Dépôt logiciel de l'application : [github.com - YunoHost- Apps/dotclear2](https://github.com/YunoHost-Apps/dotclear2_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/dotclear2/issues](https://github.com/YunoHost-Apps/dotclear2_ynh/issues) + + ------ + +### Sources + +¹ [wikipedia.org - Dotclear (en)](https://en.wikipedia.org/wiki/Dotclear) diff --git a/app_drupal.md b/app_drupal.md new file mode 100644 index 00000000..f4adfb31 --- /dev/null +++ b/app_drupal.md @@ -0,0 +1,22 @@ +# Drupal's logo Drupal + +[![Install Drupal with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=drupal) [![Integration level](https://dash.yunohost.org/integration/drupal.svg)](https://dash.yunohost.org/appci/app/drupal) + +### Index + +- [Useful links](#useful-links) + +Drupal is a free and open-source web content management framework written in PHP and distributed under the GNU General Public License. Drupal provides a back-end framework for at least 2.3% of all websites worldwide – ranging from personal blogs to corporate, political, and government sites. Systems also use Drupal for knowledge management and for business collaboration.[¹](#sources) + +## Useful links + ++ Website: [www.drupal.org](https://www.drupal.org/) ++ Official documentation: [www.drupal.org - documentation](https://www.drupal.org/documentation) ++ Application software repository: [github.com - YunoHost-Apps/drupal](https://github.com/YunoHost-Apps/drupal_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/drupal/issues](https://github.com/YunoHost-Apps/drupal_ynh/issues) + +----- + +### Sources + +¹ [wikipedia.org - Drupal](https://en.wikipedia.org/wiki/Drupal) diff --git a/app_drupal7.md b/app_drupal7.md new file mode 100644 index 00000000..73388808 --- /dev/null +++ b/app_drupal7.md @@ -0,0 +1,23 @@ +# Drupal's logo Drupal 7 + +[![Install Drupal with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=drupal) [![Integration level](https://dash.yunohost.org/integration/drupal.svg)](https://dash.yunohost.org/appci/app/drupal) + +### Index + +- [Useful links](#useful-links) + +Drupal is a free and open-source web content management framework written in PHP and distributed under the GNU General Public License. Drupal provides a back-end framework for at least 2.3% of all websites worldwide – ranging from personal blogs to corporate, political, and government sites. Systems also use Drupal for knowledge management and for business collaboration.[¹](#sources) + This YunoHost application offers only version 7 of Drupal, if you want the latest version available for YunoHost [see here](/app_drupal) + +## Useful links + ++ Website: [www.drupal.org](https://www.drupal.org/) ++ Official documentation: [www.drupal.fr - docs/7](https://www.drupal.org/docs/7) ++ Application software repository: [github.com - YunoHost-Apps/drupal](https://github.com/YunoHost-Apps/drupal_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/drupal/issues](https://github.com/YunoHost-Apps/drupal_ynh/issues) + +----- + +### Sources + +¹ [wikipedia.org - Drupal](https://en.wikipedia.org/wiki/Drupal) diff --git a/app_drupal7_fr.md b/app_drupal7_fr.md new file mode 100644 index 00000000..882ddf1a --- /dev/null +++ b/app_drupal7_fr.md @@ -0,0 +1,23 @@ +# Logo de Drupal Drupal 7 + +[![Install Drupal with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=drupal) [![Integration level](https://dash.yunohost.org/integration/drupal.svg)](https://dash.yunohost.org/appci/app/drupal) + +### Index + +- [Liens utiles](#liens-utiles) + +Drupal1 est un système de gestion de contenu (CMS) libre et open-source publié sous la licence publique générale GNU et écrit en PHP.[¹](#sources) + Cette application YunoHost propose uniquement la version 7 de Drupal, si vous désirez la dernière version disponible pour YunoHost [voir ici](/app_drupal) + +## Liens utiles + + + Site web : [www.drupal.fr](https://www.drupal.fr/) + + Documentation officielle : [www.drupal.org - docs/7 (en)](https://www.drupal.org/docs/7) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/drupal7](https://github.com/YunoHost-Apps/drupal7_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/drupal7/issues](https://github.com/YunoHost-Apps/drupal7_ynh/issues) + + ------ + +### Sources + + ¹ [wikipedia.org - Drupal](https://fr.wikipedia.org/wiki/Drupal) diff --git a/app_drupal_fr.md b/app_drupal_fr.md new file mode 100644 index 00000000..6950eb41 --- /dev/null +++ b/app_drupal_fr.md @@ -0,0 +1,22 @@ +# Logo de Drupal Drupal + +[![Install Drupal with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=drupal) [![Integration level](https://dash.yunohost.org/integration/drupal.svg)](https://dash.yunohost.org/appci/app/drupal) + +### Index + +- [Liens utiles](#liens-utiles) + +Drupal est un système de gestion de contenu (CMS) libre et open-source publié sous la licence publique générale GNU et écrit en PHP.[¹](#sources) + +## Liens utiles + + + Site web : [www.drupal.fr](https://www.drupal.fr/) + + Documentation officielle : [www.drupal.fr - documentation](https://www.drupal.fr/documentation) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/drupal](https://github.com/YunoHost-Apps/drupal_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/drupal/issues](https://github.com/YunoHost-Apps/drupal_ynh/issues) + + ------ + + ### Sources + + ¹ [wikipedia.org - Drupal](https://fr.wikipedia.org/wiki/Drupal) diff --git a/app_etherpad_mypads.md b/app_etherpad_mypads.md new file mode 100644 index 00000000..cbcd4caa --- /dev/null +++ b/app_etherpad_mypads.md @@ -0,0 +1,29 @@ +# Etherpad's logo Etherpad (with MyPads's plugin) + +[![Install Etherpad with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=etherpad_mypads) [![Integration level](https://dash.yunohost.org/integration/etherpad_mypads.svg)](https://dash.yunohost.org/appci/app/etherpad_mypads) + +### Index + +- [Configuration](#configuration) +- [Useful links](#useful-links) + +Etherpad is an online free text editor working in collaborative mode and in real time. It allows several people to share the simultaneous creation of a text, and to discuss it in parallel, via instant messaging. It can have pedagogical uses, especially for collaborative learning.[¹](#sources) + +## Configuration + +Two control panels can be accessed: + + for Etherpad: `domain.tld/admin`. + + for MyPads: `domain.tld/mypads/?/admin`. + +## Useful links + ++ Website: [etherpad.org](https://etherpad.org/) ++ Official documentation: [etherpad.org - doc](https://etherpad.org/doc/v1.8.4/) ++ Application software repository: [github.com - YunoHost-App/etherpad_mypads](https://github.com/YunoHost-Apps/etherpad_mypads_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/etherpad_mypads/issues](https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues) + +------ + +### Sources + +¹ [wikipedia.org - Etherpad (fr)](https://fr.wikipedia.org/wiki/Etherpad) diff --git a/app_etherpad_mypads_fr.md b/app_etherpad_mypads_fr.md new file mode 100644 index 00000000..3ff67fff --- /dev/null +++ b/app_etherpad_mypads_fr.md @@ -0,0 +1,29 @@ +# logo de Etherpad Etherpad (avec plugin MyPads) + +[![Installer Etherpad avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=etherpad_mypads) [![Niveau d'intégration](https://dash.yunohost.org/integration/etherpad_mypads.svg)](https://dash.yunohost.org/appci/app/etherpad_mypads) + +### Index + +- [Configuration](#configuration) +- [Liens utiles](#liens-utiles) + +Etherpad est un éditeur de texte libre en ligne fonctionnant en mode collaboratif et en temps réel. Il permet à plusieurs personnes de partager l'élaboration simultanée d'un texte, et d'en discuter en parallèle, via une messagerie instantanée. Il peut avoir des usages pédagogiques, notamment pour l'apprentissage collaboratif.[¹](#sources) + +## Configuration + +Il est possible d'accéder à deux panneaux de configurations : + + pour Etherpad : `domaine.tld/admin` + + pour MyPads : `domaine.tld/mypads/?/admin` + +## Liens utiles + ++ Site web : [etherpad.org (en)](https://etherpad.org/) ++ Documentation officielle : [etherpad.org - doc (en)](https://etherpad.org/doc/v1.8.4/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-App/etherpad_mypads](https://github.com/YunoHost-Apps/etherpad_mypads_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/etherpad_mypads/issues](https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues) + +------ + +### Sources + +¹ [wikipedia.org - Etherpad](https://fr.wikipedia.org/wiki/Etherpad) diff --git a/app_fallback.md b/app_fallback.md new file mode 100644 index 00000000..59c5c607 --- /dev/null +++ b/app_fallback.md @@ -0,0 +1,20 @@ +# Package Fallback + +[![Install Fallback with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=fallback) [![Integration level](https://dash.yunohost.org/integration/fallback.svg)](https://dash.yunohost.org/appci/app/fallback) + +### Index + +- [Configuration](#configuration) +- [Useful links](#useful-links) + +Fallback is a special app, only by command line interface, which provide a way to have a secondary server which you can used if your main server goes down. +This other server will allow you to deploy a copy of your server to bring back you to internet during your break down. + +## Configuration + +After the installation, you should not have anything else to configure. If you want anyway, you can find the list of app to backup in the file `/home/yunohost.app/fallback/app_list` and a global configuration in this other file `/home/yunohost.app/fallback/config.conf` + +## Useful links + ++ Application software repository: [github.com - YunoHost-Apps/fallback](https://github.com/YunoHost-Apps/fallback_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/fallback/issues](https://github.com/YunoHost-Apps/fallback_ynh/issues) diff --git a/app_fallback_fr.md b/app_fallback_fr.md new file mode 100644 index 00000000..906755bb --- /dev/null +++ b/app_fallback_fr.md @@ -0,0 +1,20 @@ +# Package Fallback + +[![Install fallback with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=fallback) [![Integration level](https://dash.yunohost.org/integration/fallback.svg)](https://dash.yunohost.org/appci/app/fallback) + +### Index + +- [Configuration](#configuration) +- [Liens utiles](#liens-utiles) + +Fallback est une application spéciale, uniquement par interface de ligne de commande, qui permet d'avoir un serveur secondaire que vous pouvez utiliser si votre serveur principal tombe en panne. +Cet autre serveur vous permettra de déployer une copie de votre serveur pour vous ramener sur internet pendant votre panne. + +## Configuration + +Après l'installation, vous ne devriez plus avoir rien à configurer. Si vous le souhaitez quand même, vous pouvez trouver la liste des applications à sauvegarder dans le fichier `/home/yunohost.app/fallback/app_list` et une configuration globale dans cet autre fichier `/home/yunohost.app/fallback/config.conf` + +## Liens utiles + + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/fallback](https://github.com/YunoHost-Apps/fallback_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/fallback/issues](https://github.com/YunoHost-Apps/fallback_ynh/issues) diff --git a/app_ffsync.md b/app_ffsync.md new file mode 100644 index 00000000..e0eba9b3 --- /dev/null +++ b/app_ffsync.md @@ -0,0 +1,38 @@ +# Firefox Sync's logo Firefox Sync + +[![Install Firefox Sync with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=ffsync) [![Integration level](https://dash.yunohost.org/integration/ffsync.svg)](https://dash.yunohost.org/appci/app/ffsync) + +### Index + +- [Configuration](#configuration) + - [Firefox desktop](#firefox-desktop) + - [Firefox mobile](#firefox-mobile) +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Firefox Sync permits synchronize plugins, tabs, bookmarks, favorites, history over many Firefox instances. + +## Configuration + +Once installed, the `domain.tld/path` site should display a page explaining how to configure it. +To use your personal Firefox sync server, you will need to configure your [Firefox](https://www.mozilla.org/fr/firefox/new/) web browser. + +### Firefox desktop + +1. In Firefox URL bar put: `about:config`. +2. Search for: `identity.sync.tokenserver.uri`. +3. Replace the URL by: https://mydomain.tld/path/token/1.0/sync/1.5 +4. Create an account at Mozilla: https://accounts.firefox.com/signup + +### Firefox mobile + +With the last version of firefox mobile it's same than for desktop. + +## Limitations with YunoHost + +By default, a configured server will report authentication to the account server hosted by Mozilla at https://accounts.firefox.com. You will still need to authenticate to Mozilla, but your information will be stored on your host. + +## Useful links + ++ Application software repository: [github.com - YunoHost-Apps/ffsync](https://github.com/YunoHost-Apps/ffsync_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/ffsync/issues](https://github.com/YunoHost-Apps/ffsync_ynh/issues) diff --git a/app_ffsync_fr.md b/app_ffsync_fr.md new file mode 100644 index 00000000..2e6e6e20 --- /dev/null +++ b/app_ffsync_fr.md @@ -0,0 +1,38 @@ +# logo de Firefox Sync Firefox Sync + +[![Install Firefox Sync with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=ffsync) [![Integration level](https://dash.yunohost.org/integration/ffsync.svg)](https://dash.yunohost.org/appci/app/ffsync) + +### Index + +- [Configuration](#configuration) + - [Firefox bureau](#firefox-bureau) + - [Firefox mobile](#firefox-mobile) +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Firefox Sync permet la synchronisation des favoris, des marques-pages, de l’historique, des onglets, des extensions entre plusieurs instances du navigateur web Firefox. + +## Configuration + +Une fois installé, le site `domain.tld/path` devrait afficher une page expliquant comment le configurer. +Pour utiliser votre serveur personnel de synchronisation Firefox, vous allez devoir configurer votre explorateur internet [Firefox](https://www.mozilla.org/fr/firefox/new/). + +### Firefox bureau + +1. Une fois Firefox lancé ouvrer cette adresse URL : `about:config` +2. Recherchez : `identity.sync.tokenserver.uri` +3. Remplacez l’URL par la vôtre : `https://mondomaine.tld/adresse/token/1.0/sync/1.5` +4. Créez un compte chez Mozilla : https://accounts.firefox.com/signup + +### Firefox mobile + +Avec les versions récentes de Firefox pour mobile la démarche est identique à la version bureau. + +## Limitations avec YunoHost + +Par défaut, un serveur configuré reportera l'authentification sur le serveur de comptes hébergé par Mozilla à l'adresse https://accounts.firefox.com. Vous devrez donc toujours vous authentifier sur Mozilla, mais le stockage de vos informations se fera sur votre hôte. + +## Liens utiles + + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/APPLICATION](https://github.com/YunoHost-Apps/ffsync_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/ffsync/issues](https://github.com/YunoHost-Apps/ffsync_ynh/issues) diff --git a/app_ffsync_it.md b/app_ffsync_it.md new file mode 100644 index 00000000..c83e4b64 --- /dev/null +++ b/app_ffsync_it.md @@ -0,0 +1,15 @@ +# Firefox Sync +Firefox Sync permette la sincronizzazione di plugin, schede, segnalibri, preferiti e cronologia fra diverse istanze di Firefox. + +## Configurazione di Firefox +### Firefox versione desktop +Nella barra degli indirizzi di Firefox inserite: `about:config`. + +Cercate: `identity.sync.tokenserver.uri`. + +Modificate l'indirizzo trovato in: https://mydomain.tld/path/token/1.0/sync/1.5 + +Create un account su Mozilla: https://accounts.firefox.com/signup + +### Firefox versione mobile +Nell'ultima versione di Firefox mobile la procedura è identica a quella per la versione desktop. diff --git a/app_firefly-iii.md b/app_firefly-iii.md new file mode 100644 index 00000000..f1164fa3 --- /dev/null +++ b/app_firefly-iii.md @@ -0,0 +1,16 @@ +# Firefly III's logo Firefly III + +[![Install Firefly III with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=firefly-iii) [![Integration level](https://dash.yunohost.org/integration/firefly-iii.svg)](https://dash.yunohost.org/appci/app/firefly-iii) + +### Index + +- [Useful links](#useful-links) + +"Firefly III" is a (self-hosted) manager for your personal finances. It can help you keep track of your expenses and income, so you can spend less and save more. Firefly III supports the use of budgets, categories and tags. It can import data from external sources and it has many neat financial reports available. + +## Useful links + ++ Website: [www.firefly-iii.org](https://www.firefly-iii.org/) ++ Official documentation: [docs.firefly-iii.org](https://docs.firefly-iii.org/about-firefly-iii/introduction) ++ Application software repository: [github.com - YunoHost-Apps/firefly-iii](https://github.com/YunoHost-Apps/firefly-iii_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/firefly-iii/issues](https://github.com/YunoHost-Apps/firefly-iii_ynh/issues) diff --git a/app_firefly-iii_fr.md b/app_firefly-iii_fr.md new file mode 100644 index 00000000..145eab49 --- /dev/null +++ b/app_firefly-iii_fr.md @@ -0,0 +1,16 @@ +# logo de Firefly III Firefly III + +[![Install Firefly III with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=firefly-iii) [![Integration level](https://dash.yunohost.org/integration/firefly-iii.svg)](https://dash.yunohost.org/appci/app/firefly-iii) + +### Index + +- [Liens utiles](#liens-utiles) + +"Firefly III" est un gestionnaire (auto-hébergé) de vos finances personnelles. Il peut vous aider à suivre vos dépenses et vos revenus, afin que vous puissiez dépenser moins et épargner plus. Firefly III permet d'utiliser des budgets, des catégories et des étiquettes. Il peut importer des données provenant de sources externes et il dispose de nombreux rapports financiers soignés. + +## Liens utiles + + + Site web : [www.firefly-iii.org (en)](https://www.firefly-iii.org/) + + Documentation officielle : [docs.firefly-iii.org (en)](https://docs.firefly-iii.org/about-firefly-iii/introduction) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/firefly-iii](https://github.com/YunoHost-Apps/firefly-iii_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/firefly-iii/issues](https://github.com/YunoHost-Apps/firefly-iii_ynh/issues) diff --git a/app_flarum.md b/app_flarum.md new file mode 100644 index 00000000..84f3ed01 --- /dev/null +++ b/app_flarum.md @@ -0,0 +1,16 @@ +# Flarum's logo Flarum + +[![Install Flarum with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=flarum) [![Integration level](https://dash.yunohost.org/integration/flarum.svg)](https://dash.yunohost.org/appci/app/flarum) + +### Index + +- [Useful links](#useful-links) + +Flarum is a forum system, it is possible to add multiple plugins to it. + +## Useful links + ++ Website: [flarum.org](https://flarum.org/) ++ Official documentation: [flarum.org - docs](https://flarum.org/docs/) ++ Application software repository: [github.com - YunoHost-Apps/flarum](https://github.com/YunoHost-Apps/flarum_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/flarum/issues](https://github.com/YunoHost-Apps/flarum_ynh/issues) diff --git a/app_flarum_fr.md b/app_flarum_fr.md new file mode 100644 index 00000000..ee2d3695 --- /dev/null +++ b/app_flarum_fr.md @@ -0,0 +1,16 @@ +# logo de Flarum Flarum + +[![Install Flarum with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=flarum) [![Integration level](https://dash.yunohost.org/integration/flarum.svg)](https://dash.yunohost.org/appci/app/flarum) + +### Index + +- [Liens utiles](#liens-utiles) + +Flarum est un système de forum, il est possible de lui adjoindre de multiples plugins. + +## Liens utiles + + + Site web : [flarum.org (en)](https://flarum.org/) + + Documentation officielle : [flarum.org - docs (en)](https://flarum.org/docs/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/flarum](https://github.com/YunoHost-Apps/flarum_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/flarum/issues](https://github.com/YunoHost-Apps/flarum_ynh/issues) diff --git a/app_fluxbb.md b/app_fluxbb.md new file mode 100644 index 00000000..76a73533 --- /dev/null +++ b/app_fluxbb.md @@ -0,0 +1,21 @@ +# FluxBB's logo FluxBB + +[![Install FluxBB with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=fluxbb) [![Integration level](https://dash.yunohost.org/integration/fluxbb.svg)](https://dash.yunohost.org/appci/app/fluxbb) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +FluxBB is fast, light, user-friendly forum software for your website. FluxBB is designed as a lighter, faster alternative to some of the traditional feature heavy forum applications. It is easy to use and has a proven track record of stability and security making it an ideal choice of forum for your website. + +## Limitations with YunoHost + +HTTP and LDAP authentication are not supported. + +## Useful links + ++ Website: [fluxbb.org](https://fluxbb.org/) ++ Official documentation: [fluxbb.org - docs](https://fluxbb.org/docs/) ++ Application software repository: [github.com - YunoHost-Apps/fluxbb](https://github.com/YunoHost-Apps/fluxbb_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/fluxbb/issues](https://github.com/YunoHost-Apps/fluxbb_ynh/issues) diff --git a/app_fluxbb_fr.md b/app_fluxbb_fr.md new file mode 100644 index 00000000..3de6520d --- /dev/null +++ b/app_fluxbb_fr.md @@ -0,0 +1,21 @@ +# logo de FluxBB FluxBB + +[![Install FluxBB with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=fluxbb) [![Integration level](https://dash.yunohost.org/integration/fluxbb.svg)](https://dash.yunohost.org/appci/app/fluxbb) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +FluxBB est un logiciel de forum rapide, léger et convivial pour votre site web. FluxBB est conçu comme une alternative plus légère et plus rapide à certaines des applications de forum traditionnelles lourdes en fonctionnalités. Il est facile à utiliser et a fait ses preuves en matière de stabilité et de sécurité, ce qui en fait un choix idéal de forum pour votre site web. + +## Limitations avec YunoHost + +Les authentification HTTP et LDAP ne sont pas pris en charges. + +## Liens utiles + + + Site web : [fluxbb.org (en)](https://fluxbb.org/) + + Documentation officielle : [fluxbb.org - docs (en)](https://fluxbb.org/docs/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/fluxbb](https://github.com/YunoHost-Apps/fluxbb_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/fluxbb/issues](https://github.com/YunoHost-Apps/fluxbb_ynh/issues) diff --git a/app_framaforms.md b/app_framaforms.md new file mode 100644 index 00000000..da5d380d --- /dev/null +++ b/app_framaforms.md @@ -0,0 +1,18 @@ +# framaforms's logo Framaforms + +[![Install framaforms with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=framaforms) [![Integration level](https://dash.yunohost.org/integration/framaforms.svg)](https://dash.yunohost.org/appci/app/framaforms) + +### Index + +- [Useful links](#useful-links) + +Framaforms is an online forms and survey service. Registered users are allowed to create forms, share them, collect and view the results through a simple interface. +It is possible to be notified of each response, retrieve responses in graphical or tabular form. Questionnaires can also be developed on several pages and have conditional or mandatory fields. + +## Useful links + ++ Website: [framaforms.org](https://framaforms.org/) ++ Official documentation: [docs.framasoft.org/fr/framaforms](https://docs.framasoft.org/fr/framaforms/) ++ Demonstration: [Demo](https://framaforms.org/) ++ Application software repository: [github.com - YunoHost-Apps/framaforms](https://github.com/YunoHost-Apps/framaforms_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/framaforms/issues](https://github.com/YunoHost-Apps/framaforms_ynh/issues) diff --git a/app_framaforms_fr.md b/app_framaforms_fr.md new file mode 100644 index 00000000..8afcdbe0 --- /dev/null +++ b/app_framaforms_fr.md @@ -0,0 +1,18 @@ +# logo de framaforms Framaforms + +[![Install framaforms with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=framaforms) [![Integration level](https://dash.yunohost.org/integration/framaforms.svg)](https://dash.yunohost.org/appci/app/framaforms) + +### Index + +- [Liens utiles](#liens-utiles) + +Framaforms est un service de formulaires et d'enquêtes en ligne. Les utilisateurs enregistrés sont autorisés à créer des formulaires, à les partager, à collecter et à visualiser les résultats par le biais d'une interface simple. +Il est possible d'être notifié de chaque réponse, de récupérer les réponses sous forme graphiques ou de tableaux. Les questionnaires peuvent être aussi élaborés sur plusieurs pages et présenter des champs conditionnels ou obligatoires. + +Liens utiles + ++ Site web : [framaforms.org](https://framaforms.org/) ++ Documentation officielle : [docs.framasoft.org/fr/framaforms](https://docs.framasoft.org/fr/framaforms/) ++ Démonstration: [Démo](https://framaforms.org/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/framaforms](https://github.com/YunoHost-Apps/framaforms_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/framaforms/issues](https://github.com/YunoHost-Apps/framaforms_ynh/issues) diff --git a/app_freshrss.md b/app_freshrss.md new file mode 100644 index 00000000..074ee80a --- /dev/null +++ b/app_freshrss.md @@ -0,0 +1,37 @@ +# APPLICATION's FreshRSS FreshRSS + +[![Install FreshRSS with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=freshrss) [![Integration level](https://dash.yunohost.org/integration/freshrss.svg)](https://dash.yunohost.org/appci/app/freshrss) + +### Index + +- [Configuration](#configuration) +- [Customer Applications](#customer-applications) +- [Useful links](#useful-links) + +FreshRSS is an RSS aggregator and reader. It allows you to read and follow several news websites at a glance without the need to browse from one website to another. + +FreshRSS has a lot of features including. + +## Configuration + +API (mini) How To +1. Into your user profile: `Settings > profil` +2. Setup an API password +3. Check the API is working: https://exemple.tld/rss/api/greader.php +4. Setup your client with: + + username: ynh user + + password: the password you just setup + + URL: https://exemple.tld/rss/api/greader.php + +## Customer applications + +| Application name | Platform | Multi-account | Play Store | F-Droid | Play Store | +|------------------|----------|---------------|------------|---------|------------| +| Fresh RSS | Android | ? | | [f-droid.org - Fresh RSS](https://f-droid.org/fr/packages/fr.chenry.android.freshrss/) | X | + +## Useful links + ++ Website: [www.freshrss.org](https://www.freshrss.org/) ++ Official documentation: [freshrss.github.io - FreshRSS](https://freshrss.github.io/FreshRSS/) ++ Application software repository: [github.com - YunoHost-Apps/freshrss](https://github.com/YunoHost-Apps/freshrss_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/freshrss/issues](https://github.com/YunoHost-Apps/freshrss_ynh/issues) diff --git a/app_freshrss_fr.md b/app_freshrss_fr.md new file mode 100644 index 00000000..8df18c09 --- /dev/null +++ b/app_freshrss_fr.md @@ -0,0 +1,37 @@ +# logo de FreshRSS FreshRSS + +[![Install FreshRSS with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=freshrss) [![Integration level](https://dash.yunohost.org/integration/freshrss.svg)](https://dash.yunohost.org/appci/app/freshrss) + +### Index + +- [Configuration](#configuration) +- [Applications clientes](#applications-clientes) +- [Liens utiles](#liens-utiles) + +FreshRSS est un agrégateur et lecteur de flux RSS. Il permet de regrouper l’actualité de plusieurs sites différents dans un endroit unique pour que vous puissiez la lire sans devoir aller de site en site. + +FreshRSS a été conçu comme un agrégateur puissant et propose des tas de fonctionnalités. + +## Configuration + +API (mini) Comment faire : +1. Dans votre profil utilisateur `Paramètres > profil` +2. Définir un mot de passe API +3. Vérifiez que l'API fonctionne : https://exemple.tld/rss/api/greader.php +4. Configurez votre client avec : + + username : ynh user + + password : le mot de passe que vous venez de configurer + + URL : https://exemple.tld/rss/api/greader.php + +## Applications clientes + +| Nom de l'applications | Plateforme | Multi-comptes | F-Droid | Play Store | +|-----------------------|------------|---------------|---------|------------| +| Fresh RSS | Android | ? | [f-droid.org - Fresh RSS](https://f-droid.org/fr/packages/fr.chenry.android.freshrss/) | X | + +## Liens utiles + + + Site web : [www.freshrss.org (en)](https://www.freshrss.org/) + + Documentation officielle : [freshrss.github.io - FreshRSS](https://freshrss.github.io/FreshRSS/fr/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/freshrss](https://github.com/YunoHost-Apps/freshrss_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/freshrss/issues](https://github.com/YunoHost-Apps/freshrss_ynh/issues) diff --git a/app_friendica.md b/app_friendica.md new file mode 100644 index 00000000..c14d50ed --- /dev/null +++ b/app_friendica.md @@ -0,0 +1,35 @@ +# friendica's logo Friendica + +[![Install friendica with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=friendica) [![Integration level](https://dash.yunohost.org/integration/friendica.svg)](https://dash.yunohost.org/appci/app/friendica) + +### Index + +- [Configuration](#configuration) +- [Useful links](#useful-links) + +Friendica is a decentralized communication platform that integrates social communication. The platform is linked to independent social projects and business services. + +Its aim is to free up friends, family and colleagues from companies that collect data; Friendica aims to make social communication free and open, while circulating between all providers as easily as email.[¹](#sources) + +## Configuration + +Before installing, read the Friendica installation instructions for important information about + +SSL certificate validation requirement (now with support for Let's Encrypt!). See Installation section below. +Dedicated domain (must install under web root like https://hub.example.com/ not https://example.com/hub/ ) + +Note: You can use accounts from YunoHost's LDAP. There are not yet active SSO. + +## Useful links + ++ Website : [friendi.ca](http://friendi.ca/) ++ Official documentation : [github.com/friendica/friendica/wiki](https://github.com/friendica/friendica/wiki) ++ Demonstration : [Demo](http://dir.friendica.social/servers) ++ Application software repository : [github.com - YunoHost-Apps/friendica](https://github.com/YunoHost-Apps/friendica_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/friendica/issues](https://github.com/YunoHost-Apps/friendica_ynh/issues) + +------ + +### Sources + +¹ [github.com - friendica/friendica](https://github.com/friendica/friendica) diff --git a/app_friendica_fr.md b/app_friendica_fr.md new file mode 100644 index 00000000..5ecb8b8b --- /dev/null +++ b/app_friendica_fr.md @@ -0,0 +1,35 @@ +# logo de friendica Friendica + +[![Install friendica with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=friendica) [![Integration level](https://dash.yunohost.org/integration/friendica.svg)](https://dash.yunohost.org/appci/app/friendica) + +### Index + +- [Configuration](#configuration) +- [Liens utiles](#liens-utiles) + +Friendica est une plateforme de communication décentralisée qui intègre la communication sociale. La plate-forme est liée à des projets sociaux indépendants et à des services aux entreprises. + +Son objectif est de libérer les amis, la famille et les collègues des entreprises qui récoltent des données ; Friendica vise à ce que la communication sociale soit libre et ouverte, tout en circulant entre tous les fournisseurs aussi facilement que le courrier électronique.[¹](#sources) + +## Configuration + +Avant l'installation, lisez les instructions d'installation de Friendica pour obtenir des informations à propos de l'installation + +Exigence de validation du certificat SSL (maintenant avec le support de Let's Encrypt !). Voir la section Installation ci-dessous. +Domaine dédié (doit être installé sous la racine web comme https://hub.example.com/ et non https://example.com/hub/ ) + +Note : Vous pouvez utiliser les comptes du LDAP de YunoHost. Il n'y a pas encore de SSO actif. + +## Liens utiles + ++ Site web : [friendi.ca](http://friendi.ca/) ++ Documentation officielle : [github.com/friendica/friendica/wiki](https://github.com/friendica/friendica/wiki) ++ Démonstration : [Démo](http://dir.friendica.social/servers) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/friendica](https://github.com/YunoHost-Apps/friendica_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/friendica/issues](https://github.com/YunoHost-Apps/friendica_ynh/issues) + +------ + +### Sources + +¹ [github.com - friendica/friendica (en)](https://github.com/friendica/friendica) diff --git a/app_funkwhale.md b/app_funkwhale.md new file mode 100644 index 00000000..34700206 --- /dev/null +++ b/app_funkwhale.md @@ -0,0 +1,32 @@ +# Funkwhale's logo Funkwhale + +[![Install Funkwhale with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=funkwhale) [![Integration level](https://dash.yunohost.org/integration/funkwhale.svg)](https://dash.yunohost.org/appci/app/funkwhale) + +### Index + +- [Administration](#administration) +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Funkwhale is a self-hosted, federated free music streaming server. Each utilisateur⋅trice has a library in which he/she can add the titles he/she wants, and which he/she can share with other users, whether they are on the same instance or not. [¹](#sources) + +## Administration + +The administration page is available at: `my.domain.tld/api/admin` + +## Limitations with YunoHost + +To install Funkwhale on your YunoHost server it is necessary to have a domain name dedicated to Funkwhale. + +## Useful links + ++ Website: [funkwhale.audio](https://funkwhale.audio/) ++ Official documentation: [docs.funkwhale.audio](https://docs.funkwhale.audio/) ++ Application software repository: [github.com - YunoHost-Apps/funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/funkwhale/issues](https://github.com/YunoHost-Apps/funkwhale_ynh/issues) + +----- + +### Sources + +¹ [wikipedia.org - Funkwhale](https://fr.wikipedia.org/wiki/Funkwhale) diff --git a/app_funkwhale_fr.md b/app_funkwhale_fr.md new file mode 100644 index 00000000..91dfbe76 --- /dev/null +++ b/app_funkwhale_fr.md @@ -0,0 +1,32 @@ +# logo de Funkwhale Funkwhale + +[![Install Funkwhale with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=funkwhale) [![Integration level](https://dash.yunohost.org/integration/funkwhale.svg)](https://dash.yunohost.org/appci/app/funkwhale) + +### Index + +- [Administration](#administration) +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Funkwhale est un serveur de flux continu de musique libre, auto-hébergé et fédéré. Chaque utilisateur⋅trice dispose d'une bibliothèque dans laquelle il/elle peut ajouter les titres qu'il/elle souhaite, et qu'il/elle peut partager avec d'autres utilisateurs, qu'ils soient sur la même instance ou non.[¹](#sources) + +## Administration + +La page d'admimnistration est disponible à l'adresse : `mon.domaine.tld/api/admin` + +## Limitations avec YunoHost + +Pour installer Funkwhale sur votre serveur YunoHost il est nécessaire d'avoir un nom de domaine dédié à Funkwhale. + +## Liens utiles + ++ Site web : [funkwhale.audio](https://funkwhale.audio/) ++ Documentation officielle : [docs.funkwhale.audio (en)](https://docs.funkwhale.audio/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/funkwhale/issues](https://github.com/YunoHost-Apps/funkwhale_ynh/issues) + +----- + +### Sources + +¹ [wikipedia.org - Funkwhale](https://fr.wikipedia.org/wiki/Funkwhale) diff --git a/app_galene.md b/app_galene.md new file mode 100644 index 00000000..ade5e1f1 --- /dev/null +++ b/app_galene.md @@ -0,0 +1,16 @@ +# Galène + +[![Install Galène with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=galene) [![Integration level](https://dash.yunohost.org/integration/galene.svg)](https://dash.yunohost.org/appci/app/galene) + +### Index + +- [Useful links](#useful-links) + +*Galène* is a videoconferencing server that is easy to deploy (just copy a few files and run the binary) and that requires moderate server resources. It was originally designed for lectures and conferences (where a single speaker streams audio and video to hundreds or thousands of users), but later evolved to be useful for student practicals (where users are divided into many small groups), and meetings (where a few dozen users interact with each other). + +## Useful links + ++ Website: [galene.org](https://galene.org/) ++ Demonstration: [Demo](https://galene.org:8443/) ++ Application software repository: [github.com - YunoHost-Apps/galene](https://github.com/YunoHost-Apps/galene_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/galene/issues](https://github.com/YunoHost-Apps/galene_ynh/issues) diff --git a/app_galene_fr.md b/app_galene_fr.md new file mode 100644 index 00000000..0fe4ed54 --- /dev/null +++ b/app_galene_fr.md @@ -0,0 +1,16 @@ +# Galène + +[![Installer Galène avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=galene) [![Integration level](https://dash.yunohost.org/integration/galene.svg)](https://dash.yunohost.org/appci/app/galene) + +### Index + +- [Liens utiles](#liens-utiles) + +*Galène* est un serveur de visioconférence facile à déployer (il suffit de copier quelques fichiers et d'exécuter le binaire) et qui nécessite des ressources serveur modérées. Il a été conçu à l'origine pour les conférences (où un seul orateur diffuse l'audio et la vidéo à des centaines ou des milliers d'utilisateurs), mais a ensuite évolué pour être utile pour les travaux pratiques des étudiants (où les utilisateurs sont divisés en plusieurs petits groupes) et les réunions (où un quelques dizaines d'utilisateurs interagissent les uns avec les autres). + +## Liens utiles + ++ Site web : [galene.org (en)](https://galene.org/) ++ Démonstration : [Démo](https://galene.org:8443/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/galene](https://github.com/YunoHost-Apps/galene_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/galene/issues](https://github.com/YunoHost-Apps/galene_ynh/issues) diff --git a/app_garradin.md b/app_garradin.md new file mode 100644 index 00000000..ff782081 --- /dev/null +++ b/app_garradin.md @@ -0,0 +1,29 @@ +# Garradin's logo Garradin + +[![Install Garradin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=garradin) [![Integration level](https://dash.yunohost.org/integration/garradin.svg)](https://dash.yunohost.org/appci/app/garradin) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Garradin (a word meaning silver in an Aboriginal dialect of northern Australia, pronounced "gar-a-dine "em) is a software program for associative management. It is the tool of choice to manage an association, a sports club, an NGO, etc. It is designed to meet the needs of a small to medium-sized structure: membership management, accounting, website, note-taking at meetings, archiving and sharing of the association's operating documents, discussion between members, etc.¹](#sources) + +## Limitations with YunoHost + +the SSO system is not implemented, nor direct installation. The admin user will have to create his account with the account creation form that he will find at the end of the installation. Several reasons led me not to implement SSO. [More information (fr)](https://github.com/YunoHost-Apps/garradin_ynh#probl%C3%A8mes--avertissements-) + +Applications available exclusively in French. + +## Useful links + ++ Website: [garradin.eu (fr)](https://garradin.eu) ++ Official documentation: [fossil.kd2.org - garradin (fr)](https://fossil.kd2.org/garradin/wiki?name=Garradin) ++ Application software repository: [github.com - YunoHost-Apps/garradin](https://github.com/YunoHost-Apps/garradin_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/garradin/issues](https://github.com/YunoHost-Apps/garradin_ynh/issues) + +------ + +### Sources + +¹ [garradin.eu - a-propos (fr)](https://garradin.eu/a-propos/) diff --git a/app_garradin_fr.md b/app_garradin_fr.md new file mode 100644 index 00000000..ce6fd8b6 --- /dev/null +++ b/app_garradin_fr.md @@ -0,0 +1,29 @@ +# logo de Garradin Garradin + +[![Install Garradin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=garradin) [![Integration level](https://dash.yunohost.org/integration/garradin.svg)](https://dash.yunohost.org/appci/app/garradin) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Garradin (mot signifiant argent dans un dialecte aborigène du nord de l'Australie, prononcé « gar-a-dine ») est un logiciel de gestion associative. Il est l'outil de prédilection pour gérer une association, un club sportif, une ONG, etc. Il est conçu pour répondre aux besoins d'une structure de petite à moyenne taille : gestion des adhérents, comptabilité, site Web, prise de notes en réunion, archivage et partage des documents de fonctionnement de l'association, discussion entre adhérents, etc.[¹](#sources) + +## Limitations avec YunoHost + +le système SSO n'est pas implémenté, ni l'installation directe. L'utilisateur admin devra créer son compte avec le formulaire de création de compte qu'il trouvera à la fin de l'installation. Plusieurs raisons m'ont poussé à ne pas implémenter le SSO. [Plus d'informations](https://github.com/YunoHost-Apps/garradin_ynh#probl%C3%A8mes--avertissements-) + +Applications disponible exclusivement en français. + +## Liens utiles + + + Site web : [garradin.eu](https://garradin.eu) + + Documentation officielle : [fossil.kd2.org - garradin](https://fossil.kd2.org/garradin/wiki?name=Garradin) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/garradin](https://github.com/YunoHost-Apps/garradin_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/garradin/issues](https://github.com/YunoHost-Apps/garradin_ynh/issues) + +------ + +### Sources + +¹ [garradin.eu - a-propos](https://garradin.eu/a-propos/) diff --git a/app_gitea.md b/app_gitea.md new file mode 100644 index 00000000..dfcda241 --- /dev/null +++ b/app_gitea.md @@ -0,0 +1,36 @@ +# Gitea's logo Gitea + +[![Install Gitea with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gitea) [![Integration level](https://dash.yunohost.org/integration/gitea.svg)](https://dash.yunohost.org/appci/app/gitea) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Customer Applications](#customer-applications) +- [Useful links](#useful-links) + +Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket, and GitLab. Gitea is a fork of Gogs.[¹](#sources) + +## Limitations with YunoHost + +If you want to use Git commands (like `git clone`, `git pull`, `git push`), you need to set this app as public. + +## Customer applications + +| Application name [²] | Platform | Multi-account |Source | Play Store | F-Droid | Apple Store | +|----------------------|----------|---------------|-------|------------|---------|-------------| +| GitNex (un) | Android | ? | [gitnex.com (en)](https://gitnex.com/) | [GitNex - PlayStore](https://play.google.com/store/apps/details?id=org.mian.gitnex) | [GitNex - F-Droid](https://f-droid.org/fr/packages/org.mian.gitnex/) | X | + +> [²]: (of) : Official / (un) : Unofficial + +## Useful links + ++ Website: [gitea.io](https://gitea.io/en-us/) ++ Official documentation: [docs.gitea.io](https://docs.gitea.io/en-us/) ++ Application software repository: [github.com - YunoHost-Apps/gitea](https://github.com/YunoHost-Apps/gitea_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/gitea/issues](https://github.com/YunoHost-Apps/gitea_ynh/issues) + +------ + +### Sources + +¹ [docs.gitea.io](https://docs.gitea.io/en-us/) diff --git a/app_gitea_fr.md b/app_gitea_fr.md new file mode 100644 index 00000000..fe0bb9c0 --- /dev/null +++ b/app_gitea_fr.md @@ -0,0 +1,36 @@ +# logo de Gitea Gitea + +[![Install Gitea with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gitea) [![Integration level](https://dash.yunohost.org/integration/gitea.svg)](https://dash.yunohost.org/appci/app/gitea) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Applications clientes](#applications-clients) +- [Liens utiles](#liens-utiles) + +Gitea est un service Git auto-hébergé très simple à installer et à utiliser. Il est similaire à GitHub, Bitbucket ou GitLab. Le développement initial provient sur Gogs, mais il a été forké puis renommé Gitea.[¹](#sources) + +## Limitations avec YunoHost + +Si vous voulez utiliser les commandes Git (comme `git clone`, `git pull`, `git push`), vous devez rendre cette application publique. + +## Applications clientes + +| Nom de l'application [²] | Plateforme | Multi-comptes | Source | Play Store | F-Droid | Apple Store | +|:------------------------:|:----------:|:-------------:|:------:|:----------:|:-------:|:-----------:| +| GitNex (no) | Android | ? | [gitnex.com (en)](https://gitnex.com/) | [GitNex - PlayStore](https://play.google.com/store/apps/details?id=org.mian.gitnex) | [GitNex - F-Droid](https://f-droid.org/fr/packages/org.mian.gitnex/) | X | + +> [²]: (of) : Officielle / (no) : non officiel + +## Liens utiles + + + Site web : [gitea.io (en)](https://gitea.io/en-us/) + + Documentation officielle : [docs.gitea.io](https://docs.gitea.io/fr-fr/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/gitea](https://github.com/YunoHost-Apps/gitea_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/gitea/issues](https://github.com/YunoHost-Apps/gitea_ynh/issues) + +------ + +### Sources + +¹ [docs.gitea.io](https://docs.gitea.io/fr-fr/) diff --git a/app_gitlab-runner.md b/app_gitlab-runner.md new file mode 100644 index 00000000..03c40312 --- /dev/null +++ b/app_gitlab-runner.md @@ -0,0 +1,20 @@ +# GitLab Runner's logo GitLab Runner + +[![Install GitLab Runner with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gitlab-runner) [![Integration level](https://dash.yunohost.org/integration/gitlab-runner.svg)](https://dash.yunohost.org/appci/app/gitlab-runner) + +### Index + +- [Configuration](#configuration) +- [Useful links](#useful-links) + +GitLab Runner is a continuous integration tool to use with a GitLab instance (YNH or not). + +## Configuration + +By the admin panel of GitLab or the settings "CI/CD" of your project. + +## Useful links + ++ Official documentation: [docs.gitlab.com - runner](https://docs.gitlab.com/runner/) ++ Application software repository: [github.com - YunoHost-Apps/APPLICATION](https://github.com/YunoHost-Apps/gitlab-runner_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/APPLICATION/issues](https://github.com/YunoHost-Apps/gitlab-runner_ynh/issues) diff --git a/app_gitlab-runner_fr.md b/app_gitlab-runner_fr.md new file mode 100644 index 00000000..b4537f11 --- /dev/null +++ b/app_gitlab-runner_fr.md @@ -0,0 +1,20 @@ +# logo de GitLab Runner GitLab Runner + +[![Install GitLab Runner with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gitlab-runner) [![Integration level](https://dash.yunohost.org/integration/gitlab-runner.svg)](https://dash.yunohost.org/appci/app/gitlab-runner) + +### Index + +- [Configuration](#configuration) +- [Liens utiles](#liens-utiles) + +GitLab Runner est un outil d'intégration continue à utiliser avec une instance GitLab (YNH ou non). + +## Configuration + +Via le panneau d'administration de GitLab ou les paramettres "CI/CD" de votre projet. + +## Liens utiles + + + Documentation officielle : [docs.gitlab.com - runner (en)](https://docs.gitlab.com/runner/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/gitlab-runner](https://github.com/YunoHost-Apps/gitlab-runner_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/gitlab-runner/issues](https://github.com/YunoHost-Apps/gitlab-runner_ynh/issues) diff --git a/app_gitlab.md b/app_gitlab.md new file mode 100644 index 00000000..72b783f7 --- /dev/null +++ b/app_gitlab.md @@ -0,0 +1,34 @@ +# GitLab's logo GitLab + +[![Install GitLab with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gitlab) [![Integration level](https://dash.yunohost.org/integration/gitlab.svg)](https://dash.yunohost.org/appci/app/gitlab) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Customer Applications](#customer-applications) +- [Useful links](#useful-links) + +GitLab is a Git web app forge very complete whith a dynamic development (a new version is released every 22nd of the month). GitLab is an open core software with two versions: A free community version and a proprietary enterprise version with more features. [¹](#sources) + +## Limitations with YunoHost + +The GitLab application is not compatible with 32-bit architectures. + +## Customer applications + +| Application name | Platform | Multi-account | Play Store | F-Droid | Apple Store | +|:----------------:|:--------:|:-------------:|:----------:|:-------:|:-----------:| +| LabCoat avec Deep Links for LabCoat | Android | ? | [play.google.com - LabCoat](https://play.google.com/store/apps/details?id=com.commit451.gitlab) / [play.google.com - Deep Links for LabCoat](https://play.google.com/store/apps/details?id=com.nomadlabs.labcoat.deeplinks) | [f-droid.org - LabCoat](https://f-droid.org/fr/packages/com.commit451.gitlab/) / [f-droid.org - Deep Links for LabCoat](https://f-droid.org/fr/packages/com.nomadlabs.labcoat.deeplinks/) | ? | + +## Useful links + ++ Website: [about.gitlab.com](https://about.gitlab.com/) ++ Official documentation: [docs.gitlab.com](https://docs.gitlab.com/) ++ Application software repository: [github.com - YunoHost-Apps/gitlab](https://github.com/YunoHost-Apps/gitlab_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com -YunoHost-Apps/gitlab/issues](https://github.com/YunoHost-Apps/gitlab_ynh/issues) + +------ + +### Sources + +¹ [framalibre.org - GitLab (fr)](https://framalibre.org/content/gitlab) diff --git a/app_gitlab_fr.md b/app_gitlab_fr.md new file mode 100644 index 00000000..b7260eb0 --- /dev/null +++ b/app_gitlab_fr.md @@ -0,0 +1,34 @@ +# logo de GitLab GitLab + +[![Install GitLab with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gitlab) [![Integration level](https://dash.yunohost.org/integration/gitlab.svg)](https://dash.yunohost.org/appci/app/gitlab) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Applications clientes](#applications-clientes) +- [Liens utiles](#liens-utiles) + +GitLab est une forge logicielle très complète dont le développement est très dynamique (une nouvelle version sort tous les 22 du mois). Elle permet d'héberger des projets collaboratifs utilisant Git ainsi que gérer des discussions, des rapports de bugs et la documentation... GitLab est un logiciel open source qui existe deux versions, une version communautaire libre et une version entreprise propriétaire possédant plus de fonctionnalités.[¹](#sources) + +## Limitations avec YunoHost + +L'application GitLab n'est pas compatible avec les architectures 32-bit. + +## Applications clientes + +| Nom de l'applications | Plateforme | Multi-comptes | Play Store | F-Droid | Apple Store | +|:---------------------:|:----------:|:-------------:|:----------:|:-------:|:-----------:| +| LabCoat avec Deep Links for LabCoat | Android | ? | [play.google.com - LabCoat](https://play.google.com/store/apps/details?id=com.commit451.gitlab) / [play.google.com - Deep Links for LabCoat](https://play.google.com/store/apps/details?id=com.nomadlabs.labcoat.deeplinks) | [f-droid.org - LabCoat](https://f-droid.org/fr/packages/com.commit451.gitlab/) / [f-droid.org - Deep Links for LabCoat](https://f-droid.org/fr/packages/com.nomadlabs.labcoat.deeplinks/) | | + +## Liens utiles + ++ Site web : [about.gitlab.com (en)](https://about.gitlab.com/) ++ Documentation officielle : [docs.gitlab.com (en)](https://docs.gitlab.com/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/gitlab](https://github.com/YunoHost-Apps/gitlab_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/gitlab/issues](https://github.com/YunoHost-Apps/gitlab_ynh/issues) + +------ + +### Sources + +¹ [framalibre.org - GitLab](https://framalibre.org/content/gitlab) diff --git a/app_glowing_bear.md b/app_glowing_bear.md new file mode 100644 index 00000000..baa5000d --- /dev/null +++ b/app_glowing_bear.md @@ -0,0 +1,22 @@ +# Glowing Bear's logo Glowing Bear + +[![Install Glowing Bear with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=glowingbear) [![Integration level](https://dash.yunohost.org/integration/glowingbear.svg)](https://dash.yunohost.org/appci/app/glowingbear) + +### Index + +- [Useful links](#useful-links) + +Glowing Bear is a web frontend for the WeeChat IRC client and strives to be a modern interface. It relies on WeeChat to do all the heavy lifting and then provides some nice features on top of that, like embedding images, videos, and other content. The best part, however, is that you can use it from any modern internet device - whether it's a computer, tablet, or smart phone - and all your stuff is there, wherever you are. You don't have to deal with the messy technical details, and all you need to have installed is a browser or our app.[¹](#sources) + +## Useful links + ++ Website: [www.glowing-bear.org](https://www.glowing-bear.org/) ++ Official documentation: [github.com - glowing-bear/glowing-bear](https://github.com/glowing-bear/glowing-bear) ++ Application software repository: [github.com - YunoHost-Apps/glowing_bear](https://github.com/YunoHost-Apps/glowing_bear_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/glowing_bear/issues](https://github.com/YunoHost-Apps/glowing_bear_ynh/issues) + +------ + +### Sources + +¹ [github.com - glowing-bear/glowing-bear](https://github.com/glowing-bear/glowing-bear) diff --git a/app_glowing_bear_fr.md b/app_glowing_bear_fr.md new file mode 100644 index 00000000..47b75e10 --- /dev/null +++ b/app_glowing_bear_fr.md @@ -0,0 +1,22 @@ +# logo de Glowing Bear Glowing Bear + +[![Install Glowing Bear with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=glowingbear) [![Integration level](https://dash.yunohost.org/integration/glowingbear.svg)](https://dash.yunohost.org/appci/app/glowingbear) + +### Index + +- [Liens utiles](#liens-utiles) + +Glowing Bear est un frontal web pour le client IRC WeeChat et s'efforce d'être une interface moderne. Il s'appuie sur WeeChat pour faire le gros du travail et offre en plus quelques fonctionnalités intéressantes, comme l'intégration d'images, de vidéos et d'autres contenus. Mais le meilleur, c'est que vous pouvez l'utiliser à partir de n'importe quel appareil Internet moderne - qu'il s'agisse d'un ordinateur, d'une tablette ou d'un smartphone - et que toutes vos affaires sont là, où que vous soyez. Vous n'avez pas à vous préoccuper des détails techniques compliqués, et tout ce qu'il vous faut, c'est un navigateur ou notre application.[¹](#sources) + +## Liens utiles + + + Site web : [www.glowing-bear.org](https://www.glowing-bear.org/) + + Documentation officielle : [github.com - glowing-bear/glowing-bear (en)](https://github.com/glowing-bear/glowing-bear) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/glowing_bear](https://github.com/YunoHost-Apps/glowing_bear_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/glowing_bear/issues](https://github.com/YunoHost-Apps/glowing_bear_ynh/issues) + +------ + +### Sources + +¹ [github.com - glowing-bear/glowing-bear (en)](https://github.com/glowing-bear/glowing-bear) diff --git a/app_gogs.md b/app_gogs.md new file mode 100644 index 00000000..d719ae81 --- /dev/null +++ b/app_gogs.md @@ -0,0 +1,18 @@ +# Gogs's logo Gogs + +[![Install Gogs with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gogs) [![Integration level](https://dash.yunohost.org/integration/gogs.svg)](https://dash.yunohost.org/appci/app/gogs) + +### Index + +- [Useful links](#useful-links) + +Gogs is a minimalist software forge using Git. Gogs has been designed to work best on low-powered hardware such as Raspberry Pi. +It is therefore suitable for self-hosting a Git forge. +To fully use the power of Gogs you need to understand what Git is and how to use version control software. + +## Useful links + ++ Website: [gogs.io](https://gogs.io/) ++ Official documentation: [gogs.io - docs](https://gogs.io/docs) ++ Application software repository: [github.com - YunoHost-Apps/gogs](https://github.com/YunoHost-Apps/gogs_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/gogs/issues](https://github.com/YunoHost-Apps/gogs_ynh/issues) diff --git a/app_gogs_fr.md b/app_gogs_fr.md new file mode 100644 index 00000000..c6982e1d --- /dev/null +++ b/app_gogs_fr.md @@ -0,0 +1,17 @@ +# logo de Gogs Gogs + +[![Installer Gogs avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gogs) [![Integration level](https://dash.yunohost.org/integration/gogs.svg)](https://dash.yunohost.org/appci/app/gogs) + +### Index + +- [Liens utiles](#liens-utiles) + +Gogs est une forge logiciel minimaliste utilisant Git. Gogs a été conçu pour pouvoir fonctionner de manières optimale sur du matériel peu puissant type Raspberry Pi. Il est donc adapté à l'auto-hébergement d'une forge Git. +Pour utiliser pleinement la puissance de Gogs vous devez avoir appréhender ce qu'est Git et l'utilisation d'un [logiciel de gestion de versions](https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions). + +## Liens utiles + + + Site web : [gogs.io](https://gogs.io) + + Documentation officielle : [gogs.io - docs](https://gogs.io/docs) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/gogs](https://github.com/YunoHost-Apps/gogs_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/gogs/issues](https://github.com/YunoHost-Apps/gogs_ynh/issues) diff --git a/app_gotify.md b/app_gotify.md new file mode 100644 index 00000000..fad28143 --- /dev/null +++ b/app_gotify.md @@ -0,0 +1,36 @@ +# Gotify's logo Gotify + +[![Install Gotify with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gotify) [![Integration level](https://dash.yunohost.org/integration/gotify.svg)](https://dash.yunohost.org/appci/app/gotify) + +### Index + +- [Configuration](#configuration) +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Customer Applications](#customer-applications) +- [Useful links](#useful-links) + +A simple server for sending and receiving messages. + +## Configuration + +Edit config.yml file via SSH. + +## Limitations with YunoHost + +Require dedicated domain like gotify.domain.tld. +No LDAP support (blocked until Gotify core upstream implements it) + +## Customer applications + +| Application name¹ | Platform | Multi-account | Play Store | F-Droid | Apple Store | +|:--------------------:|:--------:|:-------------:|:----------:|:-------:|:-----------:| +| Gotify (of) | Android | ? | [play.google.com - Gotify](https://play.google.com/store/apps/details?id=com.github.gotify) | [f-droid.org - Gotify](https://f-droid.org/de/packages/com.github.gotify/) | X | + +> ¹ (of) : Official / (un) : Unofficial + +## Useful links + ++ Website: [gotify.net](https://gotify.net/) ++ Official documentation: [https://gotify.net/docs/index](https://gotify.net/docs/index) ++ Application software repository: [github.com - YunoHost-Apps/gotify](https://github.com/YunoHost-Apps/gotify_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/gotify/issues](https://github.com/YunoHost-Apps/gotify_ynh/issues) diff --git a/app_gotify_fr.md b/app_gotify_fr.md new file mode 100644 index 00000000..6f9477d6 --- /dev/null +++ b/app_gotify_fr.md @@ -0,0 +1,36 @@ +# logo de Gotify Gotify + +[![Install Gotify with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=gotify) [![Integration level](https://dash.yunohost.org/integration/gotify.svg)](https://dash.yunohost.org/appci/app/gotify) + +### Index + +- [Configuration](#configuration) +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Applications clientes](#applications-clientes) +- [Liens utiles](#liens-utiles) + +Un simple serveur pour envoyer et recevoir des messages. + +## Configuration + +Editer le fichier config.yml via SSH. + +## Limitations avec YunoHost + +Exiger un domaine dédié comme gotify.domain.tld. +Pas de support LDAP (bloqué jusqu'à ce que le noyau Gotify en amont le mette en œuvre) + +## Applications clientes + +| Nom de l'application¹ | Plateforme | Multi-comptes | Play Store | F-Droid | Apple Store | +|:----------------------:|:----------:|:-------------:|:-----------:|:-------:|:-----------:| +| Gotify (of) | Android | ? | [play.google.com - Gotify](https://play.google.com/store/apps/details?id=com.github.gotify) | [f-droid.org - Gotify](https://f-droid.org/de/packages/com.github.gotify/) | X | + +> ¹ (of) : Officielle / (no) : non officiel + +## Liens utiles + + + Site web : [gotify.net (en)](https://gotify.net/) + + Documentation officielle : [gotify.net - docs (en)](https://gotify.net/docs/index) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/gotify](https://github.com/YunoHost-Apps/gotify_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/gotify/issues](https://github.com/YunoHost-Apps/gotify_ynh/issues) diff --git a/app_grav.md b/app_grav.md new file mode 100644 index 00000000..950b1331 --- /dev/null +++ b/app_grav.md @@ -0,0 +1,22 @@ +# Grav's logo Grav + +[![Install Grav with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=grav) [![Integration level](https://dash.yunohost.org/integration/grav.svg)](https://dash.yunohost.org/appci/app/grav) + +### Index + +- [Useful links](#useful-links) + +Grav is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are already up and running. It follows similar principles to other flat-file CMS platforms, but has a different design philosophy than most. Grav comes with a powerful Package Management System to allow for simple installation and upgrading of plugins and themes, as well as simple updating of Grav itself.[¹](#sources) + +## Useful links + ++ Website: [getgrav.org](https://getgrav.org/) ++ Official documentation: [learn.getgrav.org](https://learn.getgrav.org/16) ++ Application software repository: [github.com - YunoHost-Apps/grav](https://github.com/YunoHost-Apps/grav_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/grav/issues](https://github.com/YunoHost-Apps/grav_ynh/issues) + +------ + +### Sources + +¹ [github.com - getgrav/grav](https://github.com/getgrav/grav) diff --git a/app_grav_fr.md b/app_grav_fr.md new file mode 100644 index 00000000..d745195f --- /dev/null +++ b/app_grav_fr.md @@ -0,0 +1,22 @@ +# logo de Grav Grav + +[![Install Grav with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=grav) [![Integration level](https://dash.yunohost.org/integration/grav.svg)](https://dash.yunohost.org/appci/app/grav) + +### Index + +- [Liens utiles](#liens-utiles) + +Grav est une plateforme Web rapide, simple et flexible, basée sur des fichiers. Aucune installation n'est nécessaire. Il suffit d'extraire l'archive ZIP, et vous êtes déjà opérationnel. Il suit des principes similaires à ceux des autres plates-formes CMS à fichiers plats, mais sa philosophie de conception est différente de la plupart des autres. Grav est livré avec un puissant système de gestion des paquets qui permet une installation et une mise à jour simples des plugins et des thèmes, ainsi qu'une mise à jour simple de Grav lui-même.[¹](#sources) + +## Liens utiles + + + Site web : [getgrav.org (en)](https://getgrav.org/) + + Documentation officielle : [learn.getgrav.org (en)](https://learn.getgrav.org/16) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/grav](https://github.com/YunoHost-Apps/grav_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/grav/issues](https://github.com/YunoHost-Apps/grav_ynh/issues) + +------ + +### Sources + +¹ [github.com - getgrav/grav (en)](https://github.com/getgrav/grav) diff --git a/app_halcyon.md b/app_halcyon.md new file mode 100644 index 00000000..ca240189 --- /dev/null +++ b/app_halcyon.md @@ -0,0 +1,27 @@ +# Halcyon's logo Halcyon + +[![Install Halcyon with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=halcyon) [![Integration level](https://dash.yunohost.org/integration/halcyon.svg)](https://dash.yunohost.org/appci/app/halcyon) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Halcyon is a webclient for Mastodon and Pleroma which aims to recreate the simple and beautiful user interface of Twitter while keeping all advantages of decentral networks in focus.[¹](#sources) + +## Limitations with YunoHost + +The app require a dedicated domain like `halcyon.domain.tld` + +## Useful links + ++ Website: [www.halcyon.social](https://www.halcyon.social/) ++ Official documentation: [www.halcyon.social - documentation](https://www.halcyon.social/documentation.php) ++ Application software repository: [github.com - YunoHost-Apps/halcyon](https://github.com/YunoHost-Apps/halcyon_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/halcyon/issues](https://github.com/YunoHost-Apps/halcyon_ynh/issues) + +------ + +### sources + +¹ [www.halcyon.social](https://www.halcyon.social/) diff --git a/app_halcyon_fr.md b/app_halcyon_fr.md new file mode 100644 index 00000000..66b885d2 --- /dev/null +++ b/app_halcyon_fr.md @@ -0,0 +1,27 @@ +# logo de Halcyon Halcyon + +[![Install Halcyon with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=halcyon) [![Integration level](https://dash.yunohost.org/integration/halcyon.svg)](https://dash.yunohost.org/appci/app/halcyon) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +Halcyon est un client web pour Mastodon et Pleroma qui vise à recréer l'interface utilisateur simple et belle de Twitter tout en conservant tous les avantages des réseaux décentralisés.[¹](#sources) + +## Limitations avec YunoHost + +L'application nécessite un domaine dédié comme `halcyon.domaine.tld` + +## Liens utiles + + + Site web : [www.halcyon.social (en)](https://www.halcyon.social/) + + Documentation officielle : [www.halcyon.social - documentation (en)](https://www.halcyon.social/documentation.php) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/halcyon](https://github.com/YunoHost-Apps/halcyon_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/halcyon/issues](https://github.com/YunoHost-Apps/halcyon_ynh/issues) + +------ + +### Sources + +¹ [www.halcyon.social (en)](https://www.halcyon.social/) diff --git a/app_haste.md b/app_haste.md new file mode 100644 index 00000000..27be8d39 --- /dev/null +++ b/app_haste.md @@ -0,0 +1,28 @@ +# Package Haste + +[![Install Haste with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=haste) [![Integration level](https://dash.yunohost.org/integration/haste.svg)](https://dash.yunohost.org/appci/app/haste) + +### Index + +- [Configuration](#Configuration) +- [Useful links](#useful-links) + +Haste is an open-source pastebin software written in Node.js, which is easily installable in any network. YunoHost Project uses Haste as pastebin for log sharing: [paste.yunohost.org](https://paste.yunohost.org/) + +## Configuration + +This Haste package for YunoHost includes the [`haste` command](https://github.com/diethnis/standalones/blob/master/hastebin.sh), allowing you to share content from terminal: + +```bash +cat something | haste +https://haste.example.com/zuyejeduzu +``` +The [Haste-client](https://github.com/seejohnrun/haste-client) is a simple client for uploading data to you Haste server. + +Haste requires a dedicated domain like `haste.domain.tld`. + +## Useful links + ++ Official documentation: [hastebin.com - about](https://hastebin.com/about.md) ++ Application software repository: [github.com - YunoHost-Apps/haste](https://github.com/YunoHost-Apps/haste_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/haste/issues](https://github.com/YunoHost-Apps/haste_ynh/issues) diff --git a/app_haste_fr.md b/app_haste_fr.md new file mode 100644 index 00000000..2471ebaa --- /dev/null +++ b/app_haste_fr.md @@ -0,0 +1,27 @@ +# Package Haste + +[![Installer Haste avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=haste) [![Integration level](https://dash.yunohost.org/integration/haste.svg)](https://dash.yunohost.org/appci/app/haste) + +### Index + +- [Configuration](#Configuration) +- [Liens utiles](#useful-links) + +Haste est un logiciel pastebin open-source écrit en Node.js, facilement installable sur n'importe quel réseau. Le projet YunoHost utilise Haste comme pastebin pour le partage de log : [paste.yunohost.org](https://paste.yunohost.org/) + +## Configuration + +Ce paquet de Haste pour YunoHost comprend une commande [`haste`](https://github.com/diethnis/standalones/blob/master/hastebin.sh), vous permettant de partager du contenu avec le terminal : + +```bash +cat something | haste +https://haste.example.com/zuyejeduzu +``` + +Le [client Haste](https://github.com/seejohnrun/haste-client) est un client simple pour télécharger des données sur votre serveur Haste. + +## Liens utiles + ++ Documentation officielle : [hastebin.com - about](https://hastebin.com/about.md) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/haste](https://github.com/YunoHost-Apps/haste_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/haste/issues](https://github.com/YunoHost-Apps/haste_ynh/issues) diff --git a/app_hedgedoc.md b/app_hedgedoc.md new file mode 100644 index 00000000..a01394ab --- /dev/null +++ b/app_hedgedoc.md @@ -0,0 +1,18 @@ +# HedgeDoc’s logo HedgeDoc + +[![Install HedgeDoc with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=hedgedoc) [![Integration level](https://dash.yunohost.org/integration/hedgedoc.svg)](https://dash.yunohost.org/appci/app/hedgedoc) + +### Index + +- [Useful links](#useful-links) + +HedgeDoc is a collaborative, real-time word processing web service. It uses Markdown language, which is a simple way to format text. +HedgeDoc offers a wide range of features for all common uses of word processing, including title management, table of contents, insertion of images, tables, footnotes, video overlay, PDF viewers, LaTeX mathematical expressions with MathJax, diagrams, etc. +Different levels of permission allow you to choose who can read or edit the document. + +## Useful links + ++ Official demo: [https://demo.hedgedoc.org/](https://demo.hedgedoc.org/) ++ Official documentation: [github.com/hedgedoc](https://github.com/hedgedoc/hedgedoc/tree/master/docs) ++ Application software repository: [github.com - YunoHost-Apps/hedgedoc](https://github.com/YunoHost-Apps/hedgedoc_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/hedgedoc/issues](https://github.com/YunoHost-Apps/hedgedoc_ynh/issues) diff --git a/app_hedgedoc_fr.md b/app_hedgedoc_fr.md new file mode 100644 index 00000000..b41a3f62 --- /dev/null +++ b/app_hedgedoc_fr.md @@ -0,0 +1,18 @@ +# Logo de HedgeDoc HedgeDoc + +[![Installer HedgeDoc avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=hedgedoc) [![Integration level](https://dash.yunohost.org/integration/hedgedoc.svg)](https://dash.yunohost.org/appci/app/hedgedoc) + +### Index + +- [Liens utiles](#liens-utiles) + +HedgeDoc est un service web de traitement de texte collaboratif en temps réel. Il utilise le langage Markdown, qui est un moyen simple pour formater un texte. +HedgeDoc propose un vaste choix de fonctionnalités pour toutes les utilisations courantes du traitement de texte parmi lesquelles gestion des titres, table de matières, insertion d’images, tableaux, notes de bas de page, incrustation de vidéos, visualisateurs PDF, expressions mathématiques LaTeX avec MathJax, diagrammes, etc. +Différents niveaux de permission permettent de choisir qui peut lire ou éditer le document. + +## Liens utiles + ++ Démo officielle : [https://demo.hedgedoc.org/](https://demo.hedgedoc.org/) ++ Documentation officielle : [github.com/hedgedoc](https://github.com/hedgedoc/hedgedoc/tree/master/docs) ++ Dépôt logiciel de l’application : [github.com - YunoHost-Apps/hedgedoc](https://github.com/YunoHost-Apps/codimd_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/hedgedoc/issues](https://github.com/YunoHost-Apps/hedgedoc_ynh/issues) diff --git a/app_hextris.md b/app_hextris.md new file mode 100644 index 00000000..3d604c85 --- /dev/null +++ b/app_hextris.md @@ -0,0 +1,17 @@ +# Hextris's logo Hextris + +[![Install Hextris with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=hextris) [![Integration level](https://dash.yunohost.org/integration/hextris.svg)](https://dash.yunohost.org/appci/app/hextris) + +### Index + +- [Useful links](#useful-links) + +Because sometimes you have to know how to relax. Host your own fork of the famous Tetris and become the master of this infernal hexagon? Who will tame this infernal. + +## Useful links + ++ Website: [hextris.github.io](http://hextris.github.io/) ++ Official documentation: [github.com - Hextris](https://github.com/Hextris/Hextris) ++ Application software repository: [github.com - YunoHost-Apps/hextris](https://github.com/YunoHost-Apps/hextris_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/hextris/issues](https://github.com/YunoHost-Apps/hextris_ynh/issues) + hexagon? diff --git a/app_hextris_fr.md b/app_hextris_fr.md new file mode 100644 index 00000000..b584b7a9 --- /dev/null +++ b/app_hextris_fr.md @@ -0,0 +1,17 @@ +# logo de Hextris Hextris + +[![Install Hextris with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=hextris) [![Integration level](https://dash.yunohost.org/integration/hextris.svg)](https://dash.yunohost.org/appci/app/hextris) + +### Index + +- [Liens utiles](#liens-utiles) + +Car parfois il faut savoir se détendre. Hébergez votre propre fork du célèbre Tetris et devenez le maitre de cet infernal hexagone. +Qui domptera cet hexagone ? + +## Liens utiles + + + Site web : [hextris.github.io (en)](http://hextris.github.io/) + + Documentation officielle : [github.com - Hextris (en)](https://github.com/Hextris/Hextris) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/hextris](https://github.com/YunoHost-Apps/hextris_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/hextris/issues](https://github.com/YunoHost-Apps/hextris_ynh/issues) diff --git a/app_horde.md b/app_horde.md new file mode 100644 index 00000000..ca12df16 --- /dev/null +++ b/app_horde.md @@ -0,0 +1,22 @@ +# Horde's logo Horde + +[![Install Horde with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=horde) [![Integration level](https://dash.yunohost.org/integration/horde.svg)](https://dash.yunohost.org/appci/app/horde) + +### Index + +- [Useful links](#useful-links) + +Horde Groupware Webmail Edition is a free, enterprise ready, browser based communication suite. Users can read, send and organize email messages and manage and share calendars, contacts, tasks and notes with the standards compliant components from the Horde Project.[¹](#sources) + +## Useful links + ++ Website: [www.horde.org](https://www.horde.org/) ++ Official documentation: [wiki.horde.org](https://wiki.horde.org/) ++ Application software repository: [github.com - YunoHost-Apps/horde](https://github.com/YunoHost-Apps/horde_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/horde/issues](https://github.com/YunoHost-Apps/horde_ynh/issues) + +------ + +### Sources + +¹ [www.horde.org - apps](https://www.horde.org/apps) diff --git a/app_horde_fr.md b/app_horde_fr.md new file mode 100644 index 00000000..a56c7ee3 --- /dev/null +++ b/app_horde_fr.md @@ -0,0 +1,22 @@ +# logo de Horde Horde + +[![Install Horde with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=horde) [![Integration level](https://dash.yunohost.org/integration/horde.svg)](https://dash.yunohost.org/appci/app/horde) + +### Index + +- [Liens utiles](#liens-utiles) + +Horde Groupware Webmail Edition est une suite de communication libre, prête à l'emploi, basée sur un navigateur. Les utilisateurs peuvent lire, envoyer et organiser des messages électroniques et gérer et partager des calendriers, des contacts, des tâches et des notes avec les composants conformes aux normes du projet Horde.[¹](#sources) + +## Liens utiles + + + Site web : [www.horde.org (en)](https://www.horde.org/) + + Documentation officielle : [wiki.horde.org (en)](https://wiki.horde.org/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/horde](https://github.com/YunoHost-Apps/horde_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/horde/issues](https://github.com/YunoHost-Apps/horde_ynh/issues) + +------ + +### sources + +¹ [www.horde.org - apps (en)](https://www.horde.org/apps) diff --git a/app_hubzilla.md b/app_hubzilla.md new file mode 100644 index 00000000..f4848580 --- /dev/null +++ b/app_hubzilla.md @@ -0,0 +1,21 @@ +# Hubzilla's logo Hubzilla + +[![Install Hubzilla with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=hubzilla) [![Integration level](https://dash.yunohost.org/integration/hubzilla.svg)](https://dash.yunohost.org/appci/app/hubzilla) + +### Index + +- [Configuration](#Configuration) +- [Useful links](#useful-links) + +Hubzilla is a social networking platform built with control of your privacy at center stage. Your online communications can be as public as you wish or as private as you require. Private conversations, private photos, private videos. Your media isn't hidden behind an obscure URL which can be guessed, it is protected by state-of-the-art cross-domain authentication. What this all means for you: less drama. + +## Configuration + +Hubzilla requires a dedicated domain like `hubzilla.domain.tld`. + +## Useful links + ++ Website: [zotlabs.org - hubzilla/hubzilla-project](https://zotlabs.org/page/hubzilla/hubzilla-project) ++ Official documentation: [zotlabs.org - help/about](https://zotlabs.org/help/en/about/about) ++ Application software repository: [github.com - YunoHost-Apps/hubzilla](https://github.com/YunoHost-Apps/hubzilla_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/hubzilla/issues](https://github.com/YunoHost-Apps/hubzilla_ynh/issues) diff --git a/app_hubzilla_fr.md b/app_hubzilla_fr.md new file mode 100644 index 00000000..ae163ff0 --- /dev/null +++ b/app_hubzilla_fr.md @@ -0,0 +1,21 @@ +# logo de Hubzilla Hubzilla + +[![Install Hubzilla with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=hubzilla) [![Integration level](https://dash.yunohost.org/integration/hubzilla.svg)](https://dash.yunohost.org/appci/app/hubzilla) + +### Index + +- [Configuration](#configuration) +- [Liens utiles](#liens-utiles) + +Hubzilla est une plateforme de réseau social construite avec le contrôle de votre vie privée au centre. Vos communications en ligne peuvent être aussi publiques que vous le souhaitez ou aussi privées que vous le souhaitez. Conversations privées, photos privées, vidéos privées. Vos médias ne se cachent pas derrière une obscure URL que l'on peut deviner, ils sont protégés par une authentification de pointe à travers les domaines. Ce que tout cela signifie pour vous : moins de drame. + +## Configuration + +Hubzilla nécessite un domaine dédié comme par exemple `hubzilla.domaine.tld`. + +## Liens utiles + + + Site web : [zotlabs.org - hubzilla/hubzilla-project (en)](https://zotlabs.org/page/hubzilla/hubzilla-project) + + Documentation officielle : [zotlabs.org - help/about](https://zotlabs.org/help/fr/about/about) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/hubzilla](https://github.com/YunoHost-Apps/hubzilla_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/hubzilla/issues](https://github.com/YunoHost-Apps/hubzilla_ynh/issues) diff --git a/app_invoiceninja.md b/app_invoiceninja.md new file mode 100644 index 00000000..3d6dee2a --- /dev/null +++ b/app_invoiceninja.md @@ -0,0 +1,24 @@ +# Invoice Ninja logo Invoice Ninja + +[![Install Invoice Ninja with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=invoiceninja) +[![Integration level](https://dash.yunohost.org/integration/invoiceninja.svg)](https://dash.yunohost.org/appci/app/invoiceninja) + + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +Invoice Ninja is an open-source platform to create and email invoices, track payments, expenses, time billable tasks and projects for clients. + + +## Limitations with YunoHost + +There is no official LDAP support. The first user gets created after installing Invoice Ninja. Other users can be created from inside the application + +## Useful links + ++ Website: https://www.invoiceninja.org/ ++ Application software repository: https://github.com/YunoHost-Apps/invoiceninja_ynh ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/invoiceninja/issues](https://github.com/YunoHost-Apps/invoiceninja_ynh/issues) ++ Official documentation: [Invoice Ninja User Guide](https://docs.invoiceninja.com/) diff --git a/app_jappix.md b/app_jappix.md new file mode 100644 index 00000000..900961e9 --- /dev/null +++ b/app_jappix.md @@ -0,0 +1,3 @@ +# Jappix logo Jappix + +Jappix is a web client for [XMPP](/XMPP). diff --git a/app_jappix_fr.md b/app_jappix_fr.md new file mode 100644 index 00000000..7e8b4531 --- /dev/null +++ b/app_jappix_fr.md @@ -0,0 +1,3 @@ +# Jappix logo Jappix + +Jappix est un client web [XMPP](/XMPP). diff --git a/app_jirafeau.md b/app_jirafeau.md new file mode 100644 index 00000000..7e3dfa7e --- /dev/null +++ b/app_jirafeau.md @@ -0,0 +1,40 @@ +# Jirafeau's logo Jirafeau + +[![Install Jirafeau with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=jirafeau) [![Integration level](https://dash.yunohost.org/integration/jirafeau.svg)](https://dash.yunohost.org/appci/app/jirafeau) + +### Index + +- [Configuration](#configuration) + - [Changing the conditions of use of the service](#changing-the-conditions-of-use-of-the-service) + - [Administration](#administration) +- [Useful links](#useful-links) + +Jirafeau offers the possibility to host and share your files with ease. Choose a file, Jirafeau will provide you with a link with many options. +It is possible to protect your links with a password as well as to choose how long the file will be kept on the server. The file and the link will self-destruct after this time. +Downloads of transmitted files can be limited to a certain date, and each file can self-destruct after the first download. +Jirafeau allows you to configure maximum retention times and maximum size per file. Encryption is available as an option.[¹](#sources) + +## Configuration + +### Changing the conditions of use of the service + +The license text on the "Terms of Service" page, which is shipped with the default installation, is "based on the Open Source Initiative Terms of Service". +To change this text simply copy the file `/lib/tos.original.txt`, rename it to `/lib/tos.local.txt` and adapt it to your own needs. +If you update the installation, then only the `tos.original.txt` file may change eventually, not your `tos.local.txt` file. + +### Administration + +To administrate the files within Jirafeau it is enough to go to the address `jirafeau.domaine.tld/admin.php`. + +## Useful links + ++ Website: [jirafeau.net](https://jirafeau.net/) ++ Official documentation: [gitlab.com - mojo42/Jirafeau (en)](https://gitlab.com/mojo42/Jirafeau) ++ Application software repository: [github.com - YunoHost-Apps/jirafeau](https://github.com/YunoHost-Apps/jirafeau_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/jirafeau/issues](https://github.com/YunoHost-Apps/jirafeau_ynh/issues) + +------ + +### Sources + +¹ [framalibre.org (fr)](https://framalibre.org/content/jirafeau) diff --git a/app_jirafeau_fr.md b/app_jirafeau_fr.md new file mode 100644 index 00000000..ef802ddc --- /dev/null +++ b/app_jirafeau_fr.md @@ -0,0 +1,40 @@ +# logo de Jirafeau Jirafeau + +[![Install Jirafeau with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=jirafeau) [![Integration level](https://dash.yunohost.org/integration/jirafeau.svg)](https://dash.yunohost.org/appci/app/jirafeau) + +### Index + +- [Configuration](#configuration) + - [Changer les conditions d'utilisation du service](#changer-les-conditions-d'utilisation-du-service) + - [Administration](#administration) +- [Liens utiles](#liens-utiles) + +Jirafeau offre la possibilité d'héberger et de partager vos fichiers, le tout en toute simplicité. Choisissez un fichier, Jirafeau vous fournira un lien avec beaucoup d'options. +Il est possible de protéger vos liens avec mot de passe ainsi que de choisir la durée de rétention du fichier sur le serveur. Le fichier et le lien s'autodétruiront passé ce délai. +Les téléchargements des fichiers transmis peuvent être limités à une certaine date, et chaque fichier peut s'autodétruire après le premier téléchargement. +Jirafeau permet de configurer les temps maximum de rétention ainsi que la taille maximale par fichier. Le chiffrement est disponible en option.[¹](#sources) + +## Configuration + +### Changer les conditions d'utilisation du service + +Le texte de la licence sur la page "Conditions d'utilisation du service", qui est livrée avec l'installation par défaut, est basé sur les "Conditions d'utilisation du service de l'Initiative Open Source". +Pour modifier ce texte, il suffit de copier le fichier `/lib/tos.original.txt`, de le renommer en `/lib/tos.local.txt` et de l'adapter à vos propres besoins. +Si vous mettez à jour l'installation, alors seul le fichier `tos.original.txt` peut changer éventuellement, et non votre fichier `tos.local.txt`. + +### Administration + +Pour administrer les fichiers présents au sein de Jirafeau il suffit de se rendre à l'adresse `jirafeau.domaine.tld/admin.php`. + +## Liens utiles + + + Site web : [jirafeau.net](https://jirafeau.net/) + + Documentation officielle : [gitlab.com - mojo42/Jirafeau](https://gitlab.com/mojo42/Jirafeau) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/jirafeau](https://github.com/YunoHost-Apps/jirafeau_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/jirafeau/issues](https://github.com/YunoHost-Apps/jirafeau_ynh/issues) + +------ + +### Sources + +¹ [framalibre.org](https://framalibre.org/content/jirafeau) diff --git a/app_jitsi.md b/app_jitsi.md new file mode 100644 index 00000000..df73c65d --- /dev/null +++ b/app_jitsi.md @@ -0,0 +1,33 @@ +# Jitsi's logo Jitsi + +[![Install jitsi with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=jitsi) [![Integration level](https://dash.yunohost.org/integration/jitsi.svg)](https://dash.yunohost.org/appci/app/jitsi) + +### Index + +- [Limitations of YunoHost](#limitations-with-yunohost) +- [Customer Applications](#customer-applications) +- [Useful links](#useful-links) + +Jitsi Meet is an open source software (Apache) that offers high quality, secure and scalable video conferencing. Options for screen sharing, live chat, speech requests, as well as settings for video quality are offered to facilitate group meetings. + +## Limitations with YunoHost + +Jitsi for YunoHost for now as some limitations: + +* Can only be used using Chrome/Chromium (like [Iron](https://www.srware.net/iron/)) or [Firefox](https://www.mozilla.org/fr/firefox/browsers/) (since version 76) +* Is limited to two participants + + +## Customer applications + +| Application name | Platform | Multi-account | Other supported networks | Play Store | F-Droid | Apple Store | *Other* | +|-----------------------|------------|---------------|-------------------------|------------|---------|-------------|----------| +| Jitsi Meet | Android - iOS | | | [Jitsi Meet](https://play.google.com/store/apps/details?id=org.jitsi.meet) | [Jitsi Meet](https://f-droid.org/en/packages/org.jitsi.meet/) | [Jitsi Meet](https://apps.apple.com/us/app/jitsi-meet/id1165103905) | | +| Jitsi Meet Desktop | Windows - macOS - GNU/Linux | | | | | | [Download](https://desktop.jitsi.org/Main/Download) | + +## Useful links + + + Website : [jitsi.org](https://jitsi.org) + + Official documentation: [jitsi.org/user-faq](https://jitsi.org/user-faq/) + + Application software repository:: [github.com - YunoHost-Apps/jitsi](https://github.com/YunoHost-Apps/jitsi_ynh) + + Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/jitsi/issues](https://github.com/YunoHost-Apps/jitsi_ynh/issues) diff --git a/app_jitsi_fr.md b/app_jitsi_fr.md new file mode 100644 index 00000000..40188169 --- /dev/null +++ b/app_jitsi_fr.md @@ -0,0 +1,33 @@ +# logo de jitsi Jitsi + +[![Install jitsi with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=jitsi) [![Integration level](https://dash.yunohost.org/integration/jitsi.svg)](https://dash.yunohost.org/appci/app/jitsi) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Applications clientes](#applications-clientes) +- [Liens utiles](#liens-utiles) + +Jitsi Meet est un logiciel libre (Apache) qui propose des vidéos-conférences de haute qualité, sécurisées et évolutives. Des options de partages d'écran, de chats en direct, de demandes de prises de paroles, ainsi que de paramétrages de qualité de vidéo sont proposées pour faciliter les réunions de groupe. + +## Limitations avec YunoHost + +Jitsi-meet pour YunoHost est limité actuellement : + +* Il ne peut être utilisé qu'avec Chrome ou un navigateur basé sur Chromium (comme [Iron](https://www.srware.net/iron/)) ou [Firefox](https://www.mozilla.org/fr/firefox/browsers/) (à partir de la version 76) +* Il est actuellement limité à 2 participants par réunion + + +## Applications clientes + +| Nom de l'application | Plateforme | Multi-comptes | Autres réseaux supportés | Play Store | F-Droid | Apple Store | *Autres* | +|-----------------------|------------|---------------|-------------------------|------------|---------|-------------|----------| +| Jitsi Meet | Android - iOS | | | [Jitsi Meet](https://play.google.com/store/apps/details?id=org.jitsi.meet) | [Jitsi Meet](https://f-droid.org/en/packages/org.jitsi.meet/) | [Jitsi Meet](https://apps.apple.com/us/app/jitsi-meet/id1165103905) | | +| Jitsi Meet Desktop | Windows - macOS - GNU/Linux | | | | | | [Téléchargement](https://desktop.jitsi.org/Main/Download) | + +## Liens utiles + + + Site web : [jitsi.org](https://jitsi.org) + + Documentation officielle : [jitsi.org/user-faq](https://jitsi.org/user-faq/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/jitsi](https://github.com/YunoHost-Apps/jitsi_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/jitsi/issues](https://github.com/YunoHost-Apps/jitsi_ynh/issues) diff --git a/app_jupyterlab.md b/app_jupyterlab.md new file mode 100644 index 00000000..cf7b7cd6 --- /dev/null +++ b/app_jupyterlab.md @@ -0,0 +1,16 @@ +# JupyterLab Logo JupyterLab + +[![Install JupyterLab with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=jupyterlab) [![Integration level](https://dash.yunohost.org/integration/jupyterlab.svg)](https://dash.yunohost.org/appci/app/jupyterlab) + +### Index + +- [Useful links](#useful-links) + +JupyterLab is the next-generation user interface for Project Jupyter offering all the familiar building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser, rich outputs, etc.) in a flexible and powerful user interface. JupyterLab will eventually replace the classic Jupyter Notebook. + +## Useful links + ++ Website: [github.com - JupyterHub](https://github.com/jupyterhub/jupyterhub) ++ Official documentation: [jupyterlab.readthedocs.io](https://jupyterlab.readthedocs.io/en/stable/) ++ Application software repository: [github.com - YunoHost-Apps/jupyterlab](https://github.com/YunoHost-Apps/jupyterlab_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/jupyterlab/issues](https://github.com/YunoHost-Apps/jupyterlab_ynh/issues) diff --git a/app_jupyterlab_fr.md b/app_jupyterlab_fr.md new file mode 100644 index 00000000..6795ce0e --- /dev/null +++ b/app_jupyterlab_fr.md @@ -0,0 +1,16 @@ +# Logo de JupyterHub JupyterLab + +[![Installer JupyterLab avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=jupyterlab) [![Integration level](https://dash.yunohost.org/integration/jupyterlab.svg)](https://dash.yunohost.org/appci/app/jupyterlab) + +### Index + +- [Liens utiles](#liens-utiles) + +JupyterLab est une interface utilisateur de nouvelle génération pour le projet Jupyter offrant tous les modules de Jupyter Notebook (interpréteur Python, terminal, éditeur de texte, navigateur de fichiers, etc.) dans une interface utilisateur flexible et puissante. JupyterLab remplacera à terme Jupyter Notebook. + +## Liens utiles + ++ Site web : [github.com - JupyterHub](https://github.com/jupyterhub/jupyterhub) ++ Documentation officielle : [jupyterlab.readthedocs.io](https://jupyterlab.readthedocs.io/en/stable/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/jupyterlab](https://github.com/YunoHost-Apps/jupyterlab_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/jupyterlab/issues](https://github.com/YunoHost-Apps/jupyterlab_ynh/issues) diff --git a/app_kanboard.md b/app_kanboard.md new file mode 100644 index 00000000..c0a2973f --- /dev/null +++ b/app_kanboard.md @@ -0,0 +1,19 @@ +# kanboard's logo Kanboard + +[![Install kanboard with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=kanboard) [![Integration level](https://dash.yunohost.org/integration/kanboard.svg)](https://dash.yunohost.org/appci/app/kanboard) + +### Index + +- [Useful links](#useful-links) + +Kanboard is a visual task manager that makes it easy to manage small projects in a collaborative way. The tool is particularly suitable for people who use the Kanban method. Kanboard can be seen as a (Simplified) alternative to the proprietary Trello software. Kanboard is a minimalist software, it focuses only on the features that are really necessary. The user interface is simple and clear. +The tool is designed to run on a small machine such as a Raspberry Pi or a Virtual Private Server (VPS). There are no external dependencies, drag and drop of tasks uses the new HTML5 APIs. + + +## Useful links + ++ Website: [kanboard.org](https://kanboard.org) ++ Official documentation: [docs.kanboard.org/en/latest](https://docs.kanboard.org/en/latest) ++ Demonstration: [Demo](https://framaboard.org) ++ Application software repository: [github.com - YunoHost-Apps/kanboard](https://github.com/YunoHost-Apps/kanboard_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/kanboard/issues](https://github.com/YunoHost-Apps/kanboard_ynh/issues) diff --git a/app_kanboard_fr.md b/app_kanboard_fr.md new file mode 100644 index 00000000..c34a02ba --- /dev/null +++ b/app_kanboard_fr.md @@ -0,0 +1,18 @@ +# logo de kanboard Kanboard + +[![Install kanboard with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=kanboard) [![Integration level](https://dash.yunohost.org/integration/kanboard.svg)](https://dash.yunohost.org/appci/app/kanboard) + +### Index + +- [Liens utiles](#liens-utiles) + +Kanboard est un gestionnaire de tâches visuel qui permet de gérer facilement des petits projets de manière collaborative. L'outil est particulièrement adapté aux personnes qui utilisent la méthode Kanban. On peut voir Kanboard comme une alternative (simplifiée) au logiciel propriétaire Trello. Kanboard est un logiciel minimaliste, il se concentre uniquement sur les fonctionnalités réellement nécessaires. L'interface utilisateur est simple et clair. +L'outil est prévu pour fonctionner sur une petite machine tel qu'un Raspberry Pi ou un serveur virtuel privé (VPS). Il n'y a aucune dépendance externe, le glisser-déposer des tâches utilise les nouvelles API de HTML5. + +## Liens utiles + ++ Site web : [kanboard.org](https://kanboard.org) ++ Documentation officielle : [docs.kanboard.org/en/latest](https://docs.kanboard.org/fr/latest) ++ Démonstration : [Démo](https://framaboard.org) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/kanboard](https://github.com/YunoHost-Apps/kanboard_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/kanboard/issues](https://github.com/YunoHost-Apps/kanboard_ynh/issues) diff --git a/app_keeweb.md b/app_keeweb.md new file mode 100644 index 00000000..f22e39f9 --- /dev/null +++ b/app_keeweb.md @@ -0,0 +1,19 @@ +# keeweb's logo KeeWeb + +[![Install KeeWeb with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=keeweb) [![Integration level](https://dash.yunohost.org/integration/keeweb.svg)](https://dash.yunohost.org/appci/app/keeweb) + +### Index + +- [Useful links](#useful-links) + +An elegant and efficient web manager to manage your passwords remotely. +The file containing the passwords (.kdbx) can follow you locally on your PC, on a USB key or be stored on your server in WebDAV. +KeeWeb also manages files compatible with other password managers such as [KeePass](http://keepass.info), [KeePassX](https://www.keepassx.org/) or [KePassXC](https://keepassxc.org/). + +## Useful links + ++ Website: [keeweb.info](https://keeweb.info) ++ Official documentation: [keeweb.info](https://keeweb.info) ++ Demonstration: [Demo](https://app.keeweb.info) ++ Application software repository: [github.com - YunoHost-Apps/keeweb](https://github.com/YunoHost-Apps/keeweb_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/keeweb/issues](https://github.com/YunoHost-Apps/keeweb_ynh/issues) diff --git a/app_keeweb_fr.md b/app_keeweb_fr.md new file mode 100644 index 00000000..ec78ead3 --- /dev/null +++ b/app_keeweb_fr.md @@ -0,0 +1,19 @@ +# logo de keeweb KeeWeb + +[![Install KeeWeb with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=keeweb) [![Integration level](https://dash.yunohost.org/integration/keeweb.svg)](https://dash.yunohost.org/appci/app/keeweb) + +### Index + +- [Liens utiles](#liens-utiles) + +Un gestionnaire Web élégant et efficace pour gérer vos mots de passe à distance. +Le fichier contenant les mots de passe (.kdbx) peut vous suivre en local sur votre PC, sur une clef USB ou être stocké sur votre serveur en WebDAV. +KeeWeb gère aussi des fichiers compatibles avec les autres gestionnaires de mots de passe comme [KeePass](http://keepass.info), [KeePassX](https://www.keepassx.org/) ou [KeePassXC](https://keepassxc.org/). + +## Liens utiles + ++ Site web : [keeweb.info](https://keeweb.info) ++ Documentation officielle : [keeweb.info](https://keeweb.info) ++ Démonstration : [Démo](https://app.keeweb.info) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/keeweb](https://github.com/YunoHost-Apps/keeweb_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/keeweb/issues](https://github.com/YunoHost-Apps/keeweb_ynh/issues) diff --git a/app_kresus.md b/app_kresus.md new file mode 100644 index 00000000..432572f9 --- /dev/null +++ b/app_kresus.md @@ -0,0 +1,23 @@ +# kresus's logo Kresus + +[![Install kresus with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=kresus) [![Integration level](https://dash.yunohost.org/integration/kresus.svg)](https://dash.yunohost.org/appci/app/kresus) + +### Index + +- [Useful links](#useful-links) + +Kresus is a free and open source personal finance manager running on your server. It automatically and daily retrieves all your new banking transactions and allows you to categorize them, study them via +graphs, and budgeting. + +* Find all your accounts in one interface and view their balance at a glance! +* Set up simple email alerts on transaction amounts and balances to notify you of important events in your accounts. +* Define your own wording, no more "n°168468"! Sort your transactions by category. Perform complex searches on your transactions, by period, category, amount or date! +* Follow the evolution of your money movements at a glance with the graphs by category, by period and by type of movement (expenses or receipts of money). + +## Useful links + ++ Website : [kresus.org](https://kresus.org/) ++ Official documentation : [kresus.org/en/doc.html](https://kresus.org/en/doc.html) ++ Demonstration : [Demo](https://kresus.org/demo.html) ++ Application software repository : [github.com - YunoHost-Apps/kresus](https://github.com/YunoHost-Apps/kresus_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/kresus/issues](https://github.com/YunoHost-Apps/kresus_ynh/issues) diff --git a/app_kresus_fr.md b/app_kresus_fr.md new file mode 100644 index 00000000..acda511b --- /dev/null +++ b/app_kresus_fr.md @@ -0,0 +1,22 @@ +# logo de kresus Kresus + +[![Install kresus with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=kresus) [![Integration level](https://dash.yunohost.org/integration/kresus.svg)](https://dash.yunohost.org/appci/app/kresus) + +### Index + +- [Liens utiles](#liens-utiles) + +Kresus est un gestionnaire de finances personnelles gratuit et libre qui tourne sur votre serveur. Il récupère automatiquement et quotidiennement toutes vos nouvelles transactions bancaires et vous permet de les catégoriser, étudier via des graphiques, et établir un budget. + +* Retrouvez l'intégralité de vos comptes dans une même interface et visualisez leur solde en un coup d'œil ! +* Configurez simplement des alertes emails sur montant d'une transaction ou sur solde pour vous prévenir en cas d'événements importants sur vos comptes. +* Définissez vos propres libellés, finis les « Chèque n°168468 » ! Triez vos opérations par catégories. Effectuez des recherches complexes sur vos transactions, par période, catégorie, montant ou date ! +* Suivez l'évolution de vos mouvements d'argent en un clin d'œil avec les graphiques par catégorie, par période et par type de mouvement (dépenses ou rentrées d'argent). + +## Liens utiles + ++ Site web : [kresus.org](https://kresus.org/) ++ Documentation officielle : [kresus.org/en/doc.html](https://kresus.org/en/doc.html) ++ Démonstration : [Démo](https://kresus.org/demo.html) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/kresus](https://github.com/YunoHost-Apps/kresus_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/kresus/issues](https://github.com/YunoHost-Apps/kresus_ynh/issues) diff --git a/app_leed.md b/app_leed.md new file mode 100644 index 00000000..af344f9b --- /dev/null +++ b/app_leed.md @@ -0,0 +1,17 @@ +# leed's logo Leed + +[![Install leed with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=leed) [![Integration level](https://dash.yunohost.org/integration/leed.svg)](https://dash.yunohost.org/appci/app/leed) + +### Index + +- [Useful links](#useful-links) + +Leed (short for Light Feed) is a minimalist RSS/ATOM aggregator which offers fast RSS consultation and non-intrusive features. +This aggregator works with a system of automatic tasks in order to process the information transparently and display it as quickly as possible when you login. + +## Useful links + ++ Website: [git.idleman.fr/LeedRSS/Leed](http://git.idleman.fr/LeedRSS/Leed) ++ Official documentation: [git.idleman.fr/LeedRSS/Leed](http://git.idleman.fr/LeedRSS/Leed) ++ Application software repository: [github.com - YunoHost-Apps/leed](https://github.com/YunoHost-Apps/leed_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/leed/issues](https://github.com/YunoHost-Apps/leed_ynh/issues) diff --git a/app_leed_fr.md b/app_leed_fr.md new file mode 100644 index 00000000..a29f5ed8 --- /dev/null +++ b/app_leed_fr.md @@ -0,0 +1,17 @@ +# logo de leed Leed + +[![Install Leed with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=leed) [![Integration level](https://dash.yunohost.org/integration/leed.svg)](https://dash.yunohost.org/appci/app/leed) + +### Index + +- [Liens utiles](#liens-utiles) + +Leed (contraction de Light Feed) est un agrégateur RSS/ATOM minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive. +Cet agrégateur fonctionne avec un système de tâches automatiques afin de traiter les informations de manière transparente et de les afficher le plus rapidement possible lorsque vous vous y connectez. + +## Liens utiles + ++ Site web : [git.idleman.fr/LeedRSS/Leed](http://git.idleman.fr/LeedRSS/Leed) ++ Documentation officielle : [git.idleman.fr/LeedRSS/Leed](http://git.idleman.fr/LeedRSS/Leed) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/leed](https://github.com/YunoHost-Apps/leed_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/leed/issues](https://github.com/YunoHost-Apps/leed_ynh/issues) diff --git a/app_limesurvey.md b/app_limesurvey.md new file mode 100644 index 00000000..4c4d0659 --- /dev/null +++ b/app_limesurvey.md @@ -0,0 +1,26 @@ +# LimeSurvey's logo LimeSurvey + +[![Install LimeSurvey with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=limesurvey) [![Integration level](https://dash.yunohost.org/integration/limesurvey.svg)](https://dash.yunohost.org/appci/app/limesurvey) + +### Index + +- [Configuration](#configuration) +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +LimeSurvey is a tool for creating and distributing online surveys/forms. + +## Configuration + +To configure a questionnaire, go to `limesurvey.domain.tld/admin`. + +## Limitations with YunoHost + +Multi-user is not supported. + +## Useful links + ++ Website: [www.limesurvey.org](https://www.limesurvey.org/) ++ Official documentation: [manual.limesurvey.org](https://manual.limesurvey.org/LimeSurvey_Manual) ++ Application software repository: [github.com - YunoHost-Apps/limesurvey](https://github.com/YunoHost-Apps/limesurvey_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/limesurvey/issues](https://github.com/YunoHost-Apps/limesurvey_ynh/issues) diff --git a/app_limesurvey_fr.md b/app_limesurvey_fr.md new file mode 100644 index 00000000..c7ab8f49 --- /dev/null +++ b/app_limesurvey_fr.md @@ -0,0 +1,26 @@ +# logo de LimeSurvey LimeSurvey + +[![Install LimeSurvey with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=limesurvey) [![Integration level](https://dash.yunohost.org/integration/limesurvey.svg)](https://dash.yunohost.org/appci/app/limesurvey) + +### Index + +- [Configuration](#configuration) +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +LimeSurvey est un outil de création et diffusion de sondage/formulaire en ligne. + +## Configuration + +Pour configurer un questionnaire, il faut se rendre à `limesurvey.domaine.tld/admin`. + +## Limitations avec YunoHost + +Le multi-utilisateurs n'est pas supporté. + +## Liens utiles + + + Site web : [www.limesurvey.org](https://www.limesurvey.org/fr/) + + Documentation officielle : [manual.limesurvey.org](https://manual.limesurvey.org/LimeSurvey_Manual/fr) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/limesurvey](https://github.com/YunoHost-Apps/limesurvey_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/limesurvey/issues](https://github.com/YunoHost-Apps/limesurvey_ynh/issues) diff --git a/app_lstu.md b/app_lstu.md new file mode 100644 index 00000000..9b3a98ce --- /dev/null +++ b/app_lstu.md @@ -0,0 +1,17 @@ +# lstu's logo Lstu + +[![Install lstu with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=lstu) [![Integration level](https://dash.yunohost.org/integration/lstu.svg)](https://dash.yunohost.org/appci/app/lstu) + +### Index + +- [Useful links](#useful-links) + +LSTU stands for "Let's shorten that URL" and is a URL shortener. It allows you to reduce the size and customize a URL and generate an associated flashcode at the same time. You can thus relay a shorter URL in text messages, on paper publications or posters. It also offers an API to generate these links from calls to other applications. A browser extension also allows you to shorten any URL in one click. + +## Useful links + ++ Website : [lstu.fr](https://lstu.fr) ++ Official documentation : [framagit.org/fiat-tux/hat-softwares/lstu/-/wikis/home](https://framagit.org/fiat-tux/hat-softwares/lstu/-/wikis/home) ++ Demonstration : [Demo](https://lstu.fr) ++ Application software repository : [github.com - YunoHost-Apps/lstu](https://github.com/YunoHost-Apps/lstu_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/lstu/issues](https://github.com/YunoHost-Apps/lstu_ynh/issues) diff --git a/app_lstu_fr.md b/app_lstu_fr.md new file mode 100644 index 00000000..249e785d --- /dev/null +++ b/app_lstu_fr.md @@ -0,0 +1,17 @@ +# logo de lstu Lstu + +[![Install lstu with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=lstu) [![Integration level](https://dash.yunohost.org/integration/lstu.svg)](https://dash.yunohost.org/appci/app/lstu) + +### Index + +- [Liens utiles](#liens-utiles) + +LSTU est l'acronyme de "Let's shorten that URL" et est un raccourcisseur d'URL. Il permet de réduire la taille et de personnaliser une URL et de générer en même temps un flashcode associé. Vous pouvez ainsi relayer une URL plus courte dans des SMS, sur des publications papier ou des affiches. Il propose aussi une API permettant de générer ces liens à partir d'appel d'autres applications. Une extension de navigateur vous permet aussi de raccourcir n'importe quelle URL en un clic. + +## Liens utiles + ++ Site web : [lstu.fr](https://lstu.fr) ++ Documentation officielle : [framagit.org/fiat-tux/hat-softwares/lstu/-/wikis/home](https://framagit.org/fiat-tux/hat-softwares/lstu/-/wikis/home) ++ Démonstration : [Démo](https://lstu.fr) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/lstu](https://github.com/YunoHost-Apps/lstu_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/lstu/issues](https://github.com/YunoHost-Apps/lstu_ynh/issues) diff --git a/app_lufi.md b/app_lufi.md new file mode 100644 index 00000000..13d376d4 --- /dev/null +++ b/app_lufi.md @@ -0,0 +1,18 @@ +# Lufi's logo Lufi + +[![Install Lufi with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=lufi) [![Integration level](https://dash.yunohost.org/integration/lufi.svg)](https://dash.yunohost.org/appci/app/lufi) + +### Index + +- [Useful Links](#useful-links) + +Lufi is a free file hosting software. Files sent on an instance of Lufi are encrypted before being sent to the server: the server administrator cannot see the content of your files. +The administrator can only see the file name, size and mime type (file type: video, text, etc.). + +## Useful links + + + Website: [Framagit.org/luc/lufi](https://framagit.org/luc/lufi) + + Demonstration: [demo.lufi.io](https://demo.lufi.io/) + + Official documentation: [Framagit.org - fiat-tux](https://framagit.org/fiat-tux/hat-softwares/lufi/-/wikis/home) + + Application software repository: [github.com - YunoHost-Apps/lufi](https://github.com/YunoHost-Apps/lufi_ynh) + + Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/lufi/issues](https://github.com/YunoHost-Apps/lufi_ynh/issues) diff --git a/app_lufi_fr.md b/app_lufi_fr.md new file mode 100644 index 00000000..ce9e1700 --- /dev/null +++ b/app_lufi_fr.md @@ -0,0 +1,22 @@ +# logo de Lufi Lufi + +[![Installer Lufi avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=lufi) [![Integration level](https://dash.yunohost.org/integration/lufi.svg)](https://dash.yunohost.org/appci/app/lufi) + +### Index + +- [Liens utiles](#liens-utiles) + +Lufi est un logiciel libre d’hébergement de fichiers. Les fichiers envoyés sur une instance de Lufi sont chiffrés avant l’envoi au serveur : l’administrateur du serveur ne peut pas voir le contenu de vos fichiers. +L’administrateur ne peut voir que le nom du fichier, sa taille et son type mime (son type de fichier : vidéo, texte, etc.).[¹](#sources) + +## Liens utiles + + + Site web : [Framagit.org/luc/lufi](https://framagit.org/luc/lufi) + + Site de démonstration : [demo.lufi.io](https://demo.lufi.io/) + + Documentation officielle : [Framagit.org - fiat-tux](https://framagit.org/fiat-tux/hat-softwares/lufi/-/wikis/home) + + Dépôt logiciel de Lufi : [github.com - YunoHost-Apps/lufi](https://github.com/YunoHost-Apps/lufi_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/lufi/issues](https://github.com/YunoHost-Apps/lufi_ynh/issues) + +### Sources + +¹ (https://demo.lufi.io/about) diff --git a/app_lutim.md b/app_lutim.md new file mode 100644 index 00000000..a616e92b --- /dev/null +++ b/app_lutim.md @@ -0,0 +1,18 @@ +# Lutim's logo Lutim + +[![Install Lutim with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=lutim) [![Integration level](https://dash.yunohost.org/integration/lutim.svg)](https://dash.yunohost.org/appci/app/lutim) + +### Index + +- [Useful links](#useful-links) + +Lutim is a free and anonymous image hosting service. It is also the name of the (free) software that provides this service. +Images uploaded to Lutim can be stored indefinitely, or can be deleted on first viewing or after a period of time chosen from those offered. + +## Useful links + + + Website : [Framagit - lutim](https://framagit.org/fiat-tux/hat-softwares/lutim) + + Official documentation : [lut.im/about](https://lut.im/about) + + Demonstration [lut.im](https://lut.im) + + Application software repository : [github.com - YunoHost-Apps/lutim](https://github.com/YunoHost-Apps/lutim_ynh) + + Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/lutim/issues](https://github.com/YunoHost-Apps/lutim_ynh/issues) diff --git a/app_lutim_fr.md b/app_lutim_fr.md new file mode 100644 index 00000000..7baa0f2d --- /dev/null +++ b/app_lutim_fr.md @@ -0,0 +1,18 @@ +# logo de lutim Lutim + +[![Install Lutim with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=lutim) [![Integration level](https://dash.yunohost.org/integration/lutim.svg)](https://dash.yunohost.org/appci/app/lutim) + +### Index + +- [Liens utiles](#liens-utiles) + +Lutim est un service gratuit et anonyme d’hébergement d’images. Il s’agit aussi du nom du logiciel (libre) qui fournit ce service. +Les images déposées sur Lutim peuvent être stockées indéfiniment, ou s’effacer dès le premier affichage ou au bout du délai choisi parmi ceux proposés. + +## Liens utiles + + + Site web : [Framagit - lutim](https://framagit.org/fiat-tux/hat-softwares/lutim) + + Documentation officielle : [lut.im/about](https://lut.im/about) + + Démonstration [lut.im](https://lut.im) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/lutim](https://github.com/YunoHost-Apps/lutim_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/lutim/issues](https://github.com/YunoHost-Apps/lutim_ynh/issues) diff --git a/app_lychee.md b/app_lychee.md new file mode 100644 index 00000000..c2559647 --- /dev/null +++ b/app_lychee.md @@ -0,0 +1,17 @@ +# Lyfee's logo Lychee + +[![Install Lychee with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=lychee) [![Integration level](https://dash.yunohost.org/integration/lychee.svg)](https://dash.yunohost.org/appci/app/lychee) + +### Index + +- [Useful Links](#useful-links) + +Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely. + +## Useful links + + + Website: [lycheeorg.github.io](https://lycheeorg.github.io/) + + Demonstration: [lycheeorg.github.io/demo](https://lycheeorg.github.io/demo/) + + Official documentation: [lycheeorg.github.io/docs](https://lycheeorg.github.io/docs/) + + Application software repository: [github.com - YunoHost-Apps/lychee](https://github.com/YunoHost-Apps/lychee_ynh) + + Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/lychee/issues](https://github.com/YunoHost-Apps/lychee_ynh/issues) diff --git a/app_lychee_fr.md b/app_lychee_fr.md new file mode 100644 index 00000000..c98a7c4c --- /dev/null +++ b/app_lychee_fr.md @@ -0,0 +1,17 @@ +# Lyfee's logo Lychee + +[![Installer Lychee avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=lychee) [![Integration level](https://dash.yunohost.org/integration/lychee.svg)](https://dash.yunohost.org/appci/app/lychee) + +### Index + +- [Liens utiles](#liens-utiles) + +Lychee est un outil de gestion de photos gratuit, qui fonctionne sur votre serveur ou votre espace Web. L'installation est une question de secondes. Téléchargez, gérez et partagez des photos comme à partir d'une application native. Lychee est livré avec tout ce dont vous avez besoin et toutes vos photos sont stockées en toute sécurité. + +## Liens utiles + + + Site web : [lycheeorg.github.io](https://lycheeorg.github.io/) + + Site de démonstration : [lycheeorg.github.io/demo](https://lycheeorg.github.io/demo/) + + Documentation officielle : [lycheeorg.github.io/docs](https://lycheeorg.github.io/docs/) + + Dépôt logiciel de Lychee : [github.com - YunoHost-Apps/lychee](https://github.com/YunoHost-Apps/lychee_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/lychee/issues](https://github.com/YunoHost-Apps/lychee_ynh/issues) diff --git a/app_mailman.md b/app_mailman.md new file mode 100644 index 00000000..0f106418 --- /dev/null +++ b/app_mailman.md @@ -0,0 +1,16 @@ +# mailman's logo Mailman + +[![Install Mailman with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mailman) [![Integration level](https://dash.yunohost.org/integration/mailman.svg)](https://dash.yunohost.org/appci/app/mailman) + +### Index + +- [Useful links](#useful-links) + +Mailman is a (lightweight) free software for managing electronic mail discussion and e-newsletter lists. + +## Useful links + ++ Website : [www.list.org](http://www.list.org/) ++ Official documentation : [mailman.readthedocs.io](https://mailman.readthedocs.io/) ++ Application software repository : [github.com - YunoHost-Apps/mailman](https://github.com/YunoHost-Apps/mailman_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/mailman/issues](https://github.com/YunoHost-Apps/mailman_ynh/issues) diff --git a/app_mailman_fr.md b/app_mailman_fr.md new file mode 100644 index 00000000..d799d526 --- /dev/null +++ b/app_mailman_fr.md @@ -0,0 +1,16 @@ +# logo de mailman Mailman + +[![Install Mailman with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mailman) [![Integration level](https://dash.yunohost.org/integration/mailman.svg)](https://dash.yunohost.org/appci/app/mailman) + +### Index + +- [Liens utiles](#liens-utiles) + +Mailman est un logiciel gratuit (léger) de gestion de listes de discussion et de bulletins d'information électroniques (newsletter). + +## Liens utiles + ++ Site web : [www.list.org](http://www.list.org/) ++ Documentation officielle : [mailman.readthedocs.io](https://mailman.readthedocs.io/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mailman](https://github.com/YunoHost-Apps/mailman_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/mailman/issues](https://github.com/YunoHost-Apps/mailman_ynh/issues) diff --git a/app_mantis.md b/app_mantis.md new file mode 100644 index 00000000..1eb2291e --- /dev/null +++ b/app_mantis.md @@ -0,0 +1,16 @@ +# Mantis's logo Mantis + +[![Install Mantis with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mantis) [![Integration level](https://dash.yunohost.org/integration/mantis.svg)](https://dash.yunohost.org/appci/app/mantis) + +### Index + +- [Useful links](#useful-links) + +Mantis Bug Tracker is a free and open source, web-based bug tracking system. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool. + +## Useful links + ++ Website: [mantisbt.org](https://mantisbt.org) ++ Official documentation: [mantisbt.org/documentation.php](https://mantisbt.org/documentation.php) ++ Application software repository: [github.com - YunoHost-Apps/mantis](https://github.com/YunoHost-Apps/mantis_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/mantis/issues](https://github.com/YunoHost-Apps/mantis_ynh/issues) diff --git a/app_mantis_fr.md b/app_mantis_fr.md new file mode 100644 index 00000000..e9e11931 --- /dev/null +++ b/app_mantis_fr.md @@ -0,0 +1,16 @@ +# logo de Mantis Mantis + +[![Installer Mantis avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mantis) [![Integration level](https://dash.yunohost.org/integration/mantis.svg)](https://dash.yunohost.org/appci/app/mantis) + +### Index + +- [Liens utiles](#liens-utiles) + +Mantis Bug Tracker est un système de suivi des bogues gratuit et open source. L'utilisation la plus courante de MantisBT est de suivre les bogues logiciels. Cependant, MantisBT est souvent configuré par les utilisateurs pour servir de système de suivi des problèmes plus générique et d'outil de gestion de projet. + +## Liens utiles + ++ Site web : [mantisbt.org](https://mantisbt.org) ++ Documentation officielle : [mantisbt.org/documentation.php](https://mantisbt.org/documentation.php) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mantis](https://github.com/YunoHost-Apps/mantis_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/mantis/issues](https://github.com/YunoHost-Apps/mantis_ynh/issues) diff --git a/app_matomo.md b/app_matomo.md new file mode 100644 index 00000000..0347c64c --- /dev/null +++ b/app_matomo.md @@ -0,0 +1,16 @@ +# Matomo's logo Matomo + +[![Install Matomo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=matomo) [![Integration level](https://dash.yunohost.org/integration/matomo.svg)](https://dash.yunohost.org/appci/app/matomo) + +### Index + +- [Useful links](#useful-links) + +Matomo is the leading Free/Libre open analytics platform. It is a full-featured PHP MySQL software program that you download and install on your own webserver. At the end of the five-minute installation process, you will be given a JavaScript code. Simply copy and paste this tag on websites you wish to track and access your analytics reports in real-time. + +## Useful links + ++ Website: [matomo.org](https://matomo.org) ++ Official documentation: [https://matomo.org/docs](https://matomo.org/docs) ++ Application software repository: [github.com - YunoHost-Apps/matomo](https://github.com/YunoHost-Apps/matomo_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/matomo/issues](https://github.com/YunoHost-Apps/matomo_ynh/issues) diff --git a/app_matomo_fr.md b/app_matomo_fr.md new file mode 100644 index 00000000..a7bfb1ce --- /dev/null +++ b/app_matomo_fr.md @@ -0,0 +1,16 @@ +# Matomo's logo Matomo + +[![Install Matomo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=matomo) [![Integration level](https://dash.yunohost.org/integration/matomo.svg)](https://dash.yunohost.org/appci/app/matomo) + +### Index + +- [Liens utiles](#liens-utiles) + +Matomo est une plateforme d'analyse open source de mesure de statistiques Web. Il s'agit d'un logiciel PHP MySQL complet que vous téléchargez et installez sur votre propre serveur Web. À la fin du processus d'installation de cinq minutes, vous recevrez un code JavaScript. Copiez et collez simplement cette balise sur les sites Web que vous souhaitez suivre et accédez à vos rapports d'analyse en temps réel. + +## Liens utiles + ++ Site web : [matomo.org](https://matomo.org) ++ Documentation officielle : [https://matomo.org/docs](https://matomo.org/docs) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/matomo](https://github.com/YunoHost-Apps/matomo_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/matomo/issues](https://github.com/YunoHost-Apps/matomo_ynh/issues) diff --git a/app_mattermost.md b/app_mattermost.md new file mode 100644 index 00000000..6f08cef4 --- /dev/null +++ b/app_mattermost.md @@ -0,0 +1,21 @@ +# Mattermost's logo Mattermost + +[![Install Mattermost with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mattermost) [![Integration level](https://dash.yunohost.org/integration/mattermost.svg)](https://dash.yunohost.org/appci/app/mattermost) + +### Index + +- [Useful links](#useful-links) + +Mattermost is a decentralized team communication software. For Slack enthusiasts, importing your data is possible, allowing a smooth transition to this free tool. + +The platform allows: +* The sharing of messages and files on different devices: PCs, computers and tablets thanks to dedicated applications. +* The formatting of messages is done with the Markdown language. +* Continuous archiving and instant search, and support for notifications and integrations with your existing tools. + +## Useful links + ++ Website: [mattermost.com](https://mattermost.com) ++ Official documentation: [docs.mattermost.com/guides/user.html](https://docs.mattermost.com/guides/user.html) ++ Application software repository: [github.com - YunoHost-Apps/mattermost](https://github.com/YunoHost-Apps/mattermost_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/mattermost/issues](https://github.com/YunoHost-Apps/mattermost_ynh/issues) diff --git a/app_mattermost_fr.md b/app_mattermost_fr.md new file mode 100644 index 00000000..305fde86 --- /dev/null +++ b/app_mattermost_fr.md @@ -0,0 +1,21 @@ +# logo de Mattermost Mattermost + +[![Install Mattermost with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mattermost) [![Integration level](https://dash.yunohost.org/integration/mattermost.svg)](https://dash.yunohost.org/appci/app/mattermost) + +### Index + +- [Liens utiles](#liens-utiles) + +Mattermost est un logiciel décentralisé de communication en équipe. Pour les adeptes de Slack, l'importation de vos données est possible, permettant de faire la transition vers cet outil libre en douceur. + +La plate-forme permet : +* Le partage de messages et de fichiers sur différents appareils : PC, ordiphones et tablettes grâce aux applications dédiées. +* La mise en forme des messages se fait avec le langage Markdown. +* L'archivage continu et la recherche instantanée, et la prise en charge les notifications et les intégrations avec vos outils existants. + +## Liens utiles + ++ Site web : [mattermost.com](https://mattermost.com/) ++ Documentation officielle : [docs.mattermost.com/guides/user.html](https://docs.mattermost.com/guides/user.html) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mattermost](https://github.com/YunoHost-Apps/mattermost_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/mattermost/issues](https://github.com/YunoHost-Apps/mattermost_ynh/issues) diff --git a/app_mediawiki.md b/app_mediawiki.md new file mode 100644 index 00000000..71cdb187 --- /dev/null +++ b/app_mediawiki.md @@ -0,0 +1,17 @@ +# logo de MediaWiki MediaWiki + +[![Install MediaWiki with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mediawiki) [![Integration level](https://dash.yunohost.org/integration/mediawiki.svg)](https://dash.yunohost.org/appci/app/mediawiki) + +### Index + +- [Useful links](#useful-links) + +MediaWiki is a free and open source software wiki package written in PHP, originally for use on Wikipedia. + +## Useful links + ++ Website: [mediawiki.org] https://www.mediawiki.org/ ++ Official documentation: [mediawiki.org/wiki/] https://www.mediawiki.org/wiki/ ++ Support Desk: https://www.mediawiki.org/wiki/Project:Support_desk ++ Application software repository: [github.com - YunoHost-Apps/mediawiki](https://github.com/YunoHost-Apps/mattermost_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/mediawiki/issues](https://github.com/YunoHost-Apps/mediawiki_ynh/issues) \ No newline at end of file diff --git a/app_mediawiki_fr.md b/app_mediawiki_fr.md new file mode 100644 index 00000000..aebd7337 --- /dev/null +++ b/app_mediawiki_fr.md @@ -0,0 +1,17 @@ +# logo de MediaWiki MediaWiki + +[![Install MediaWiki with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mediawiki) [![Integration level](https://dash.yunohost.org/integration/mediawiki.svg)](https://dash.yunohost.org/appci/app/mediawiki) + +### Index + +- [Liens utiles](#liens-utiles) + +MediaWiki est un ensemble wiki à base de logiciels libres Open source, développé à l’origine pour Wikipédia. + +## Liens utiles + ++ Site Web : [mediawiki.org] https://www.mediawiki.org/ ++ Documentation officielle : https://www.mediawiki.org/wiki ++ Support Desk : https://www.mediawiki.org/wiki/Project:Support_desk ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mediawiki](https://github.com/YunoHost-Apps/mediawiki_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/mediawiki/issues](https://github.com/YunoHost-Apps/mediawiki_ynh/issues) \ No newline at end of file diff --git a/app_mindmaps.md b/app_mindmaps.md new file mode 100644 index 00000000..6be77ca9 --- /dev/null +++ b/app_mindmaps.md @@ -0,0 +1,19 @@ +# Mindmaps + +[![Install Mindmaps with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mindmaps) [![Integration level](https://dash.yunohost.org/integration/mindmaps.svg)](https://dash.yunohost.org/appci/app/mindmaps) + +### Index + +- [Useful links](#useful-links) + +Mindmaps is a HTML5 based mind mapping application. It lets you create neat looking mind maps in the browser. + +This project started in 2011 as an exploration into what's possible to do in browsers using modern APIs. Nowadays, most of this stuff is pretty common and the code base is a bit outdated. This was way before React, ES6, webpack. Heck, it doesn't even use Backbone. + +However, there is no reason to change any of that and it makes the code base quite easy to grok. There is no compilation step, no babel plugins, no frameworks. Just a JavaScript application and a very simple Model-View-Presenter pattern. + +## Useful links + ++ Website: [www.mindmaps.app](https://www.mindmaps.app/) ++ Application software repository: [github.com - YunoHost-Apps/mindmaps](https://github.com/YunoHost-Apps/mindmaps_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/mindmaps/issues](https://github.com/YunoHost-Apps/mindmaps_ynh/issues) diff --git a/app_mindmaps_fr.md b/app_mindmaps_fr.md new file mode 100644 index 00000000..97ae63ab --- /dev/null +++ b/app_mindmaps_fr.md @@ -0,0 +1,19 @@ +# Mindmaps + +[![Installer Mindmaps avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mindmaps) [![Integration level](https://dash.yunohost.org/integration/mindmaps.svg)](https://dash.yunohost.org/appci/app/mindmaps) + +### Index + +- [Liens utiles](#useful-links) + +Mindmaps est une application de carte mentale basée sur HTML5. Il vous permet de créer des cartes mentales soignées dans le navigateur. + +Ce projet a commencé en 2011 comme une exploration de ce qu'il est possible de faire dans les navigateurs utilisant des API modernes. De nos jours, la plupart de ces choses sont assez courantes et la base de code est un peu dépassée. C'était bien avant React, ES6, webpack. Heck, il n'utilise même pas Backbone. + +Cependant, il n'y a aucune raison de changer quoi que ce soit et cela rend la base de code assez facile à utiliser. Il n'y a pas d'étape de compilation, pas de plugins babel, pas de frameworks. Juste une application JavaScript et un modèle très simple de modèle-vue-présentateur. + +## Liens utiles + ++ Site web : [www.mindmaps.app](https://www.mindmaps.app/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mindmaps](https://github.com/YunoHost-Apps/mindmaps_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/mindmaps/issues](https://github.com/YunoHost-Apps/mindmaps_ynh/issues) \ No newline at end of file diff --git a/app_minetest.md b/app_minetest.md new file mode 100644 index 00000000..5335f897 --- /dev/null +++ b/app_minetest.md @@ -0,0 +1,18 @@ +# minetest's logo Minetest + +[![Install minetest with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=minetest) [![Integration level](https://dash.yunohost.org/integration/minetest.svg)](https://dash.yunohost.org/appci/app/minetest) + +### Index + +- [Useful links](#useful-links) + +A game of cubes in an unlimited space where picks and shovels are de rigueur to build imaginary constructions, dig tunnels, walk in the sandstone of his wishes, make encounters, pick up a few flowers here and there, swimming... +Minetest is the equivalent of Minecraft with the addition of free gameplay and the possibility of integrating a development team to improve the product. +Minetest is also a server that allows you to welcome your friends or just a few curious visitors or even experienced players. + +## Useful links + ++ Website: [minetest.net](https://www.minetest.net/) ++ Official documentation: [wiki.minetest.net](https://wiki.minetest.net) ++ Application software repository: [github.com - YunoHost-Apps/minetest](https://github.com/YunoHost-Apps/minetest_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/minetest/issues](https://github.com/YunoHost-Apps/minetest_ynh/issues) diff --git a/app_minetest_fr.md b/app_minetest_fr.md new file mode 100644 index 00000000..651b4572 --- /dev/null +++ b/app_minetest_fr.md @@ -0,0 +1,18 @@ +# logo de minetest Minetest + +[![Install minetest with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=minetest) [![Integration level](https://dash.yunohost.org/integration/minetest.svg)](https://dash.yunohost.org/appci/app/minetest) + +### Index + +- [Liens utiles](#liens-utiles) + +Un jeu de cubes dans un espace illimité ou pioches et pelles sont de rigueur pour édifier des constructions imaginaires, creuser des tunels, se promener au grès de ses envies, faire des rencontres, ramasser quelques fleurs de-ci de-là, nager... +Minetest c'est l'équivalent de Minecraft avec en supplément la gratuité du jeu et la possibilité d'intégrer une équipe de développement pour améliorer le produit. +Minetest, c'est aussi un serveur qui permet d'accueillir vos amis ou simplement quelques visiteurs curieux voire même des joueurs chevronnés. + +## Liens utiles + ++ Site web : [minetest.net](https://www.minetest.net/) ++ Documentation officielle : [wiki.minetest.net](https://wiki.minetest.net) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/minetest](https://github.com/YunoHost-Apps/minetest_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/minetest/issues](https://github.com/YunoHost-Apps/minetest_ynh/issues) diff --git a/app_minidlna.md b/app_minidlna.md new file mode 100644 index 00000000..00e1f55b --- /dev/null +++ b/app_minidlna.md @@ -0,0 +1,41 @@ +# Package MiniDLNA (Ready Meadia) + +[![Install MiniDLNA with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=minidlna) [![Integration level](https://dash.yunohost.org/integration/minidlna.svg)](https://dash.yunohost.org/appci/app/minidlna) + +### Index + +- [Configuration](#configuration) +- [Useful links](#useful-links) + +MiniDLNA (Ready Media) is a lightweight [DLNA](https://fr.wikipedia.org/wiki/Digital_Living_Network_Alliance) server. +It allows to easily share multimedia files with any compatible devices present on the LAN. + +MiniDLNA does not have a graphical interface, but it does not require any special configuration. + +## Configuration + +### What multimedia files are shared? +MiniDLNA (renamed Ready Media) sharing the folder `/home/yunohost.multimedia/share`, which is common to each user in `/home/$USER/Multimedia/Share`. +[More information about multimedia files here.](https://github.com/YunoHost-Apps/yunohost.multimedia) + +~~If [Transmission](https://github.com/Kloadut/transmission_ynh) is installed, the downloaded media will be available in DLNA.~~ + +### How to view and play media files shared by MiniDLNA? +To view and play media files, all you need is a compatible client DLNA/UPNP. + +The majority of set-top boxes provided by ISPs are DLNA compatible, simply look for sources of external media. +This is also true for the latest generation game consoles connected to internet. + +Some TV and Blu-ray player is also DLNA compatible. + +In any case, it is generally sufficient to seek external sources, USB etc., to find the DLNA server, displayed under the name **YunoHost DLNA**. + +There are a multitude of DLNA client for all platforms, including the following [not exhaustive list](https://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients#UPnP_AV_clients). +In general, a DLNA client does not require any special configuration to access the media sharing. + +## Useful links + ++ Website: [minidlna.sourceforge.net](http://minidlna.sourceforge.net) ++ Official : [help.ubuntu.com/community/MiniDLNA](https://help.ubuntu.com/community/MiniDLNA) ++ Application software repository: [github.com - YunoHost-Apps/minidlna](https://github.com/YunoHost-Apps/minidlna_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/minidlna/issues](https://github.com/YunoHost-Apps/minidlna_ynh/issues) diff --git a/app_minidlna_fr.md b/app_minidlna_fr.md new file mode 100644 index 00000000..55a40d97 --- /dev/null +++ b/app_minidlna_fr.md @@ -0,0 +1,41 @@ +# Package MiniDLNA (Ready Media) + +[![Install MiniDLNA with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=minidlna) [![Integration level](https://dash.yunohost.org/integration/minidlna.svg)](https://dash.yunohost.org/appci/app/minidlna) + +### Index + +- [Configuration](#configuration) +- [Liens utiles](#liens-utiles) + +MiniDLNA (renommé Ready Media) est un serveur [DLNA](https://fr.wikipedia.org/wiki/Digital_Living_Network_Alliance) ultra léger. +Il permet de partager très simplement les fichiers multimédias avec tous les appareils compatibles présents sur le réseau local. + +MiniDLNA ne dispose pas d’une interface graphique, mais ne nécessite pas de configuration particulière. + +## Configuration + +### Quels fichiers multimédias sont partagés ? +MiniDLNA partage le dossier `/home/yunohost.multimedia/share`, qui est commun à chaque utilisateur dans le dossier `/home/$USER/Multimedia/Share`. +[Plus d’informations sur les dossiers multimédias](https://github.com/YunoHost-Apps/yunohost.multimedia). + +~~Si [Transmission](https://github.com/Kloadut/transmission_ynh) est installé, les médias téléchargés seront disponibles en DLNA.~~ + +### Comment consulter et lire les fichiers multimédias partagés par MiniDLNA ? +Pour voir et lire les fichiers multimédias, il suffit de disposer d’un client compatible DLNA/UPNP. + +La majorité des décodeurs TV fournis par les FAI sont compatibles DLNA, il suffit de chercher les sources de médias externes. +C’est le cas également pour les consoles de jeux dernière génération connectée à internet. + +Certaines TV et lecteur Blu-ray sont également compatibles DLNA. + +Dans tous les cas, il suffit en général d’aller chercher les sources externes, USB etc., pour trouver le serveur DLNA, affiché sous le nom **YunoHost DLNA**. + +Il existe une multitude de clients DLNA pour toutes les plateformes, dont voici une [liste non exhaustive](https://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients#UPnP_AV_clients). +De manière générale, un client DLNA ne nécessite pas de configuration particulière pour accéder au partage de fichiers multimédias. + +## Liens utiles + + + Site web : [minidlna.sourceforge.net](http://minidlna.sourceforge.net/) + + Documentation : [doc.ubuntu-fr.org/minidlna](https://doc.ubuntu-fr.org/minidlna) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/minidlna](https://github.com/YunoHost-Apps/minidlna_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/minidlna/issues](https://github.com/YunoHost-Apps/minidlna_ynh/issues) diff --git a/app_mobilizon.md b/app_mobilizon.md new file mode 100644 index 00000000..02299cce --- /dev/null +++ b/app_mobilizon.md @@ -0,0 +1,18 @@ +# mobilizon's logo Mobilizon + +[![Install mobilizon with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mobilizon) [![Integration level](https://dash.yunohost.org/integration/mobilizon.svg)](https://dash.yunohost.org/appci/app/mobilizon) + +### Index + +- [Useful links](#useful-links) + +MobiliZon is your federated organization and mobilization platform. It's supported by Framasoft. +MobiliZon aims to solve existing platform's problems to organize events in a decentralised, libre and privacy friendly way. +Mobilizon is a tool designed to create platforms for managing communities and events. Its purpose is to help as many people as possible to free themselves from Facebook groups and events, from Meetup, etc. + +## Useful links + ++ Website: [joinmobilizon.org](https://joinmobilizon.org) ++ Official documentation: [joinmobilizon.org/fr/faq](https://joinmobilizon.org/en/faq) ++ Application software repository: [github.com - YunoHost-Apps/mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/mobilizon/issues](https://github.com/YunoHost-Apps/mobilizon_ynh/issues) diff --git a/app_mobilizon_fr.md b/app_mobilizon_fr.md new file mode 100644 index 00000000..747b0011 --- /dev/null +++ b/app_mobilizon_fr.md @@ -0,0 +1,25 @@ +# logo de mobilizon Mobilizon + +[![Install mobilizon with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mobilizon) [![Integration level](https://dash.yunohost.org/integration/mobilizon.svg)](https://dash.yunohost.org/appci/app/mobilizon) + +### Index + +- [Liens utiles](#liens-utiles) + +Mobilizon est un logiciel actuellement en cours de développement par Framasoft. Il permettra à chaque organisation ou individu de proposer sa propre plateforme de mobilisation. +Il sera possible de : + +* Publier des évènements, +* Créer des groupes, +* Dialoguer par messagerie, +* Avoir plusieurs identités avec un seul compte (pour séparer les évènements familiaux ou activités de loisirs de son activité militante, par exemple) +* Fédérer plusieurs instances Mobilizon pour échanger avec d’autres instances, afficher plus d’événements que juste ceux de son instance et favoriser les interactions (utilisation du protocole ActivityPub) + +Mobilizon sera un logiciel éthique permettant de s'émanciper de Facebook, Meetup, Eventbrite ou tout autre plateforme à but lucratif. Il sera respectueux de la vie privée et des données personnelles de ses utilisateurs. + +## Liens utiles + ++ Site web : [joinmobilizon.org](https://joinmobilizon.org) ++ Documentation officielle : [joinmobilizon.org/fr/faq](https://joinmobilizon.org/fr/faq) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/mobilizon/issues](https://github.com/YunoHost-Apps/mobilizon_ynh/issues) diff --git a/app_moodle.md b/app_moodle.md new file mode 100644 index 00000000..3d730639 --- /dev/null +++ b/app_moodle.md @@ -0,0 +1,19 @@ +# moodle's logo Moodle + +[![Install Moodle with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=moodle) [![Integration level](https://dash.yunohost.org/integration/moodle.svg)](https://dash.yunohost.org/appci/app/moodle) + +### Index + +- [Useful links](#useful-links) + +Moodle is a Learning Management System (LMS) for creating, sharing and animating learning and training resources. +At least it can be used to share course materials (in different formats), but above all, it allows the creation of rich learning activities focusing on interactions between users (learners like trainers). +It integrates about ten activities (quiz, lesson, forum, wiki, homework, survey, self-assessment workshop between peers...) and resource formats (pdf, text, audio-visual, image, scorm...) by default that can be enriched by modules +complementary (in particular to propose specific activities in certain areas). + +## Useful links + ++ Website: [moodle.org](https://moodle.org) ++ Official documentation: [docs.moodle.org](https://docs.moodle.org) ++ Application software repository: [github.com - YunoHost-Apps/moodle](https://github.com/YunoHost-Apps/moodle_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/moodle/issues](https://github.com/YunoHost-Apps/moodle_ynh/issues) diff --git a/app_moodle_fr.md b/app_moodle_fr.md new file mode 100644 index 00000000..da768328 --- /dev/null +++ b/app_moodle_fr.md @@ -0,0 +1,18 @@ +# logo de moodle Moodle + +[![Install Moodle with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=moodle) [![Integration level](https://dash.yunohost.org/integration/moodle.svg)](https://dash.yunohost.org/appci/app/moodle) + +### Index + +- [Liens utiles](#liens-utiles) + +Moodle est un LMS (Learning Management System ou environnement d'apprentissage) permettant de créér, partager, animer des ressources didactiques et de formation. +A minima on pourra l'utiliser pour partager des supports de cours (sous différents formats), mais il permet surtout de créer des activités d'apprentissage riches privilégiant les interactions entre les utilisateurs (apprenants comme formateurs). +Il intègre une dizaine d'activités (quiz, leçon, forum, wiki, devoir, sondage, atelier auto-évalué entre pairs...) et formats de ressources (pdf, texte, audio-visuel, image, scorm...) par défaut qui peuvent être enrichis par des modules complémentaires (notamment pour proposer des activités spécifiques à certains domaines). + +## Liens utiles + ++ Site web : [moodle.org](https://moodle.org) ++ Documentation officielle : [docs.moodle.org](https://docs.moodle.org) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/moodle](https://github.com/YunoHost-Apps/moodle_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/moodle/issues](https://github.com/YunoHost-Apps/moodle_ynh/issues) diff --git a/app_mumbleserver.md b/app_mumbleserver.md new file mode 100644 index 00000000..177bbd60 --- /dev/null +++ b/app_mumbleserver.md @@ -0,0 +1,20 @@ +# mumbleserver's logo Mumble server + +[![Install Mumble server with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mumbleserver) [![Integration level](https://dash.yunohost.org/integration/mumbleserver.svg)](https://dash.yunohost.org/appci/app/mumbleserver) + +### Index + +- [Useful links](#useful-links) + +Mumble is an efficient and stable Voice over IP software that allows you to create audio rooms for multiple people. It is a VoIP software that allows its users to benefit from very low latency and very high quality while providing excellent sound quality. Mumble also incorporates a visual overlay that discreetly positions itself above the other windows to provide a view of the microphone activation of the people you are talking to. +Here is the 'Murmur' server that you will install on your instance of YunoHost. + +It is necessary to use a [Mumble client](https://wiki.mumble.info/wiki/3rd_Party_Applications) to use it for each interlocutor. + + +## Useful links + ++ Website: [www.mumble.info](https://www.mumble.info) ++ Official documentation: [wiki.mumble.info/wiki/Main_Page](https://wiki.mumble.info/wiki/Main_Page) ++ Application software repository: [github.com - YunoHost-Apps/mumbleserver](https://github.com/YunoHost-Apps/mumbleserver_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/mumbleserver/issues](https://github.com/YunoHost-Apps/mumbleserver_ynh/issues) diff --git a/app_mumbleserver_fr.md b/app_mumbleserver_fr.md new file mode 100644 index 00000000..313b16e3 --- /dev/null +++ b/app_mumbleserver_fr.md @@ -0,0 +1,19 @@ +# logo de mumbleserver Mumble server + +[![Install Mumble server with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mumbleserver) [![Integration level](https://dash.yunohost.org/integration/mumbleserver.svg)](https://dash.yunohost.org/appci/app/mumbleserver) + +### Index + +- [Liens utiles](#liens-utiles) + +Mumble est un logiciel de voix sur IP efficace et stable qui vous permet de créer des salons audio pour plusieurs interlocuteurs. C'est un logiciel de VoIP qui fait bénéficier à ses utilisateurs d'une latence très faible tout en fournissant une qualité de son excellente. Mumble intègre également une surcouche visuelle qui se positionne discrètement au dessus des autres fenêtres afin d'avoir une vision sur l'activation des micros des gens avec qui vous parlez. +Ici, c'est la partir serveur 'Murmur' que vous installerez sur votre instance de YunoHost. + +Il est nécessaire d'utiliser un [client Mumble](https://wiki.mumble.info/wiki/3rd_Party_Applications) pour l'utiliser pour chaque interlocuteur·rice. + +## Liens utiles + ++ Site web : [www.mumble.info](https://www.mumble.info) ++ Documentation officielle : [wiki.mumble.info/wiki/Main_Page](https://wiki.mumble.info/wiki/Main_Page) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/mumbleserver](https://github.com/YunoHost-Apps/mumbleserver_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/mumbleserver/issues](https://github.com/YunoHost-Apps/mumbleserver_ynh/issues) diff --git a/app_my_webapp.md b/app_my_webapp.md new file mode 100644 index 00000000..9a626334 --- /dev/null +++ b/app_my_webapp.md @@ -0,0 +1,20 @@ +# Documentation My_webapp + +In addition to the application's Readme.md, here are some useful tips. + +## Automatic update of the site content + +The application creates a new user with limited rights: it can connect (with a password) through SFTP to access the `/var/www/my_webapp` directory (or `/var/www/my_webapp__` if there are several installations of this application). + +This configuration requires updating the site content manually, with a password connection. + +If you want to automate things, you need to be able to connect without typing a password (i.e. "non-interactive"). Here are the steps to follow to get there: +- Enable public key connection, in `/etc/ssh/ssh/sshd_config`, on the server +- Create a public/private key pair for your script on the "writing" computer - without a protective passphrase. +- Copy the public key to the server, in `/var/www/my_webapp(__#)/.ssh/authorized_keys` +- Set the user `webapp#` as owner of the file and directory +- You can now connect without a password, with `sftp -b`, `lftp` or other SFTP clients. + +NB: The port number to use for the SFTP connection is the one used for the SSH, and configured in `/etc/ssh/sshd_config`. + +This tip allows you to automatically update your site. For example, the makefile of the Pelican tool allows you to use `make ftp_upload`. diff --git a/app_my_webapp_fr.md b/app_my_webapp_fr.md new file mode 100644 index 00000000..b454209e --- /dev/null +++ b/app_my_webapp_fr.md @@ -0,0 +1,20 @@ +# Documentation My_webapp + +En complément du Readme.md de l'application, voici des astuces utiles. + +## Mise à jour automatique du contenu du site. + +L'application créée un nouvel utilisateur avec des droits limités : il peut se connecter (avec un mot de passe) en SFTP pour accéder au dossier `/var/www/my_webapp` (ou `/var/www/my_webapp__` s'il y a plusieurs installations de cette appli). + +Cette configuration oblige à mettre à jour le contenu du site à la main, avec une connexion à mot de passe. + +Si vous souhaitez automatiser des choses, il vous faut une possibilité de connexion sans mot de passe à taper (dite "non-interactive"). Voici les étapes à suivre pour y arriver : +- Activer la connexion par clé publique, dans `/etc/ssh/sshd_config`, sur le serveur +- Créer une paire clé publique/privée pour votre script, sur l'ordinateur "de rédaction" - sans mettre de phrase de passe de protection. +- Copier la clé publique sur le serveur, dans `/var/www/my_webapp(__#)/.ssh/authorized_keys` +- Rentre l'utilisateur `webapp#` propriétaire du fichier et du dossier +- Vous pouvez maintenant vous connecter sans mot de passe, avec `sftp -b`, `lftp` ou bien d'autres clients SFTP. + +NB : Le numéro de port à utiliser pour la connection SFTP est celui utilisé pour le SSH, et configuré dans `/etc/ssh/sshd_config`. + +Cette asctuce vous permet de mettre à jour automatiquement votre site. Par exemple, le makefile de l'outil Pelican vous permet d'utiliser `make ftp_upload`. diff --git a/app_navidrome.md b/app_navidrome.md new file mode 100644 index 00000000..06a64c7e --- /dev/null +++ b/app_navidrome.md @@ -0,0 +1,15 @@ +# Navidrome's logo Navidrome + +[![Install Navidrome with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=navidrome) [![Integration level](https://dash.yunohost.org/integration/navidrome.svg)](https://dash.yunohost.org/appci/app/navidrome) + +### Index + +- [Useful links](#useful-links) + +Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. + +## Useful links + ++ Website: [navidrome.org](https://www.navidrome.org/) ++ Application software repository: [github.com - YunoHost-Apps/navidrome](https://github.com/YunoHost-Apps/navidrome_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/navidrome/issues](https://github.com/YunoHost-Apps/navidrome_ynh/issues) diff --git a/app_navidrome_fr.md b/app_navidrome_fr.md new file mode 100644 index 00000000..94f44197 --- /dev/null +++ b/app_navidrome_fr.md @@ -0,0 +1,15 @@ +# logo de Navidrome Navidrome + +[![Install Navidrome with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=navidrome) [![Integration level](https://dash.yunohost.org/integration/navidrome.svg)](https://dash.yunohost.org/appci/app/navidrome) + +### Index + +- [Liens utiles](#liens-utiles) + +Navidrome est un serveur et un streamer de collection de musique en ligne open source. Il vous donne la liberté d'écouter votre collection de musique à partir de n'importe quel navigateur ou appareil mobile. + +## Liens utiles + ++ Site web : [navidrome.org (en)](https://www.navidrome.org/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/navidrome](https://github.com/YunoHost-Apps/navidrome_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/navidrome/issues](https://github.com/YunoHost-Apps/navidrome_ynh/issues) diff --git a/app_netdata.md b/app_netdata.md new file mode 100644 index 00000000..68427e05 --- /dev/null +++ b/app_netdata.md @@ -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 Netdata with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=netdata) + +**Customization brought by the package:** + +* grant MySQL statistics access via a `netdata` user +* NGINX root log statistics via putting `netdata` user in the `adm` group +* Dovecot statistics via giving access to Dovecot stats stocket to `netdata` user (works only with Dovecot 2.2.16+) + +**Further recommendations:** +We don't allow YunoHost packages to make sensible changes to system files. So here are further customizations you can make to allow more monitoring: + +* NGINX: + * requests/connections: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#nginx) to enable `/stab_status` (for example by putting the `location` section in `/etc/nginx/conf.d/yunohost_admin.conf` + * weblogs: you can monitor all your NGINX weblogs for errors; follow [these recommendations](https://github.com/firehol/netdata/tree/master/python.d#nginx_log) +* PHP-FPM: follow [these recommandations](https://github.com/firehol/netdata/tree/master/python.d#phpfpm) + +## Features + +

+ +

+ + - **Stunning interactive bootstrap dashboards**
+ mouse and touch friendly, in 2 themes: dark, light + + - **Amazingly fast**
+ responds to all queries in less than 0.5 ms per metric, + even on low-end hardware + + - **Highly efficient**
+ collects thousands of metrics per server per second, + with just 1% CPU utilization of a single core, a few MB of RAM and no disk I/O at all + + - **Sophisticated alarming**
+ hundreds of alarms, **out of the box**!
+ supports dynamic thresholds, hysteresis, alarm templates, + multiple role-based notification methods (such as email, slack.com, + pushover.net, pushbullet.com, telegram.org, twilio.com, messagebird.com) + + - **Extensible**
+ you can monitor anything you can get a metric for, + using its Plugin API (anything can be a NetData plugin, + BASH, Python, Perl, Node.JS, Java, Go, Ruby, etc.) + + - **Embeddable**
+ it can run anywhere a Linux kernel runs (even IoT) + and its charts can be embedded on your web pages too + + - **Customizable**
+ custom dashboards can be built using simple HTML (no JavaScript necessary) + + - **Zero configuration**
+ auto-detects everything, it can collect up to 5000 metrics + per server out of the box + + - **Zero dependencies**
+ it is even its own web server, for its static web files and its web API + + - **Zero maintenance**
+ you just run it, it does the rest + + - **scales to infinity**
+ requiring minimal central resources + + - **several operating modes**
+ autonomous host monitoring, headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations. + Each node may have different metrics retention policy and run with or without health monitoring. + + - **time-series back-ends supported**
+ can archive its metrics on `graphite`, `opentsdb`, `prometheus`, JSON document DBs, in the same or lower detail + (lower: to prevent it from congesting these servers due to the amount of data collected) + +![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**
+ usage, interrupts, softirqs, frequency, total and per core, CPU states + +- **Memory**
+ RAM, swap and kernel memory usage, KSM (Kernel Samepage Merging), NUMA + +- **Disks**
+ per disk: I/O, operations, backlog, utilization, space, software RAID (md) + + ![sda](https://cloud.githubusercontent.com/assets/2662304/14093195/c882bbf4-f554-11e5-8863-1788d643d2c0.gif) + +- **Network interfaces**
+ per interface: bandwidth, packets, errors, drops + + ![dsl0](https://cloud.githubusercontent.com/assets/2662304/14093128/4d566494-f554-11e5-8ee4-5392e0ac51f0.gif) + +- **IPv4 networking**
+ bandwidth, packets, errors, fragments, + TCP: connections, packets, errors, handshake, + UDP: packets, errors, + broadcast: bandwidth, packets, + multicast: bandwidth, packets + +- **IPv6 networking**
+ bandwidth, packets, errors, fragments, ECT, + UDP: packets, errors, + UDP-Lite: packets, errors, + broadcast: bandwidth, + multicast: bandwidth, packets, + ICMP: messages, errors, echos, router, neighbor, MLDv2, group membership, + break down by type + +- **Interprocess Communication - IPC**
+ such as semaphores and semaphores arrays + +- **netfilter / iptables Linux firewall**
+ connections, connection tracker events, errors + +- **Linux DDoS protection**
+ SYNPROXY metrics + +- **fping** latencies
+ for any number of hosts, showing latency, packets and packet loss + + ![image](https://cloud.githubusercontent.com/assets/2662304/20464811/9517d2b4-af57-11e6-8361-f6cc57541cd7.png) + + +- **Processes**
+ running, blocked, forks, active + +- **Entropy**
+ random numbers pool, using in cryptography + +- **NFS file servers and clients**
+ NFS v2, v3, v4: I/O, cache, read ahead, RPC calls + +- **Network QoS**
+ the only tool that visualizes network `tc` classes in realtime + + ![qos-tc-classes](https://cloud.githubusercontent.com/assets/2662304/14093004/68966020-f553-11e5-98fe-ffee2086fafd.gif) + +- **Linux Control Groups**
+ containers: systemd, lxc, docker + +- **Applications**
+ by grouping the process tree and reporting CPU, memory, disk reads, + disk writes, swap, threads, pipes, sockets - per group + + ![apps](https://cloud.githubusercontent.com/assets/2662304/14093565/67c4002c-f557-11e5-86bd-0154f5135def.gif) + +- **Users and User Groups resource usage**
+ by summarizing the process tree per user and group, + reporting: CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets + +- **Apache and lighttpd web servers**
+ `mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers + +- **NGINX web servers**
+ `stub-status`, for multiple servers + +- **Tomcat**
+ accesses, threads, free memory, volume + +- **web server log files**
+ extracting in real-time, web server performance metrics and applying several health checks + +- **mySQL databases**
+ multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues, + tmp operations, connections, binlog metrics, threads, innodb metrics, and more + +- **Postgres databases**
+ multiple servers, each showing: per database statistics (connections, tuples + read - written - returned, transactions, locks), backend processes, indexes, + tables, write ahead, background writer and more + +- **Redis databases**
+ multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves + +- **mongodb**
+ operations, clients, transactions, cursors, connections, asserts, locks, etc. + +- **memcached databases**
+ multiple servers, each showing: bandwidth, connections, items + +- **elasticsearch**
+ search and index performance, latency, timings, cluster statistics, threads statistics, etc. + +- **ISC Bind name servers**
+ multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics + +- **NSD name servers**
+ queries, zones, protocols, query types, transfers, etc. + +- **Postfix email servers**
+ message queue (entries, size) + +- **exim email servers**
+ message queue (emails queued) + +- **Dovecot** POP3/IMAP servers
+ +- **ISC dhcpd**
+ pools utilization, leases, etc. + +- **IPFS**
+ bandwidth, peers + +- **Squid proxy servers**
+ multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests + +- **HAproxy**
+ bandwidth, sessions, backends, etc. + +- **varnish**
+ threads, sessions, hits, objects, backends, etc. + +- **OpenVPN**
+ status per tunnel + +- **Hardware sensors**
+ `lm_sensors` and `IPMI`: temperature, voltage, fans, power, humidity + +- **NUT and APC UPSes**
+ load, charge, battery voltage, temperature, utility metrics, output metrics + +- **PHP-FPM**
+ multiple instances, each reporting connections, requests, performance + +- **hddtemp**
+ disk temperatures + +- **smartd**
+ disk S.M.A.R.T. values + +- **SNMP devices**
+ can be monitored too (although you will need to configure these) + +- **statsd**
+ [netdata is a fully featured statsd server](https://github.com/firehol/netdata/wiki/statsd) + +And you can extend it, by writing plugins that collect data from any source, using any computer language. + +## Links + + * Report a bug: https://github.com/YunoHost-Apps/netdata_ynh/issues + * NetData website: http://my-netdata.io/ \ No newline at end of file diff --git a/app_netdata_fr.md b/app_netdata_fr.md new file mode 100644 index 00000000..a73c587e --- /dev/null +++ b/app_netdata_fr.md @@ -0,0 +1,248 @@ +## NetData + +[NetData](http://my-netdata.io/) est un système distribué de **surveillance des performances et de la santé en temps réel**. +Il fournit un **aperçu inégalé, en temps réel**, de tout ce qui se passe sur lesystème qu'il exécute (y compris les applications telles que les serveurs web et de base de données), en utilisantdes **tableaux de bord modernes et interactifs sur le web**. + +_netdata est **rapide** et **efficient**, conçu pour fonctionner en permanence sur tous les systèmes (serveurs **physiques** et **virtuels**, **conteneurs**, **dispositifs IoT**), sans en perturbant leur fonction principale. + +[![Install Netdata with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=netdata) + +**Personnalisation apportée par le paquet:** + +* Accorde l'accès aux statistiques MySQL via un utilisateur `netdata`. +* Statistiques du journal racine NGINX en mettant l'utilisateur `netdata` dans le groupe `adm`. +* Statistiques Dovecot via l'accès aux statistiques de Dovecot pour l'utilisateur `net data` (fonctionne uniquement avec Dovecot 2.2.16+). + +**Autres recommandations:** +Nous n'autorisons pas les paquets YunoHost à apporter des modifications sensibles aux fichiers du système. Voici donc d'autres personnalisations que vous pouvez faire pour permettre une meilleure surveillance : + +* NGINX: + * Requêtes et connexions : suivez [ces recommandations](https://github.com/firehol/netdata/tree/master/python.d#nginx) pour activer `/stab_status` (par exemple en mettant la section `location` dans `/etc/nginx/conf.d/yunohost_admin.conf`). + * Journaux web : vous pouvez surveiller tous vos journaux web (weblogs) NGINX pour détecter les erreurs ; suivez [ces recommandations](https://github.com/firehol/netdata/tree/master/python.d#nginx_log). +* PHP-FPM : suivez [ces recommandations](https://github.com/firehol/netdata/tree/master/python.d#phpfpm). + +## Fonctionnalités + +

+ +

+ + - Des **tableaux de bord interactifs époustouflants**
+ souris et tactile, en 2 thèmes : sombre et clair. + + - **Rapide comme l'éclair**
+ Répond à toutes les demandes en moins de 0,5 ms par métrique, même sur du matériel bas de gamme + + - **Haute efficacité**
+ Collecte des milliers de mesures par serveur et par seconde, avec seulement 1% d'utilisation d'un seul cœur du processeur, quelques Mo de RAM et aucune E/S de disque. + + - **Alarme sophistiquée**
+ Des centaines d'alarmes, **prête à l'emploi**!
+ Prend en charge les seuils dynamiques, l'hystérésis, les modèles d'alarme, plusieurs méthodes de notification basées sur les rôles (comme le courriel, slack.com, pushover.net, pushbullet.com, telegram.org, twilio.com, messagebird.com). + + - **Extensible**
+ Vous pouvez surveiller tout ce pour quoi vous pouvez obtenir une métrique, en utilisant son API de plugin (tout peut être un plugin NetData, BASH, Python, Perl, Node.JS, Java, Go, Ruby, etc.). + + - **Intégrable**
+ Il peut fonctionner partout où un noyau Linux fonctionne (même IoT), et ses graphiques peuvent également être intégrés à vos pages web. + + - **Personnalisable**
+ Des tableaux de bord personnalisés peuvent être construits en utilisant du HTML simple (pas de JavaScript nécessaire). + + - **Zéro configuration**
+ Détecte tout automatiquement, il peut collecter jusqu'à 5000 mesures par serveur dès son lancement. + + - **Zéro dépendance**
+ Il est même son propre serveur web, pour ses fichiers web statiques et son API web. + + - **Zéro maintenance**
+ Vous le lancez, il fait le reste. + + - **S'échelonne à l'infini**
+ En exigeant un minimum de ressources centrales. + + - **Plusieurs modes de fonctionnement**
+ Surveillance autonome de l'hôte, collecteur de données sans tête, proxy de transfert, proxy de stockage et de transfert, surveillance centrale de plusieurs hôtes, dans toutes les configurations possibles. + Chaque nœud peut avoir une politique différente de rétention des données et fonctionner avec ou sans surveillance de la santé. + + - **Support des back-ends de séries chronologiques**
+ Peut archiver ses mesures sur les bases de données de documents `graphite`, `opentsdb`, `prometheus`, ou sur les bases de données de documents JSON, avec le même niveau de détail ou un niveau inférieur (Inférieur : pour éviter qu'il n'encombre ces serveurs en raison de la quantité de données collectées). + +![netdata](https://cloud.githubusercontent.com/assets/2662304/14092712/93b039ea-f551-11e5-822c-beadbf2b2a2e.gif) + +--- + +## Qu'est-ce qu'il surveille ? + +NetData collecte plusieurs milliers de mesures par appareil. +Toutes ces mesures sont collectées et visualisées en temps réel. + +> _Presque toutes les métriques sont auto-détectées, sans aucune configuration._ + +Voici une liste de ce qu'il surveille actuellement : + +- **Processeur central (CPU)**
+ Utilisation, interruptions, softirqs, fréquence, total et par cœur, états du CPU. + +- **Mémoire**
+ RAM, utilisation de la mémoire du noyau et de la swap, KSM (Kernel Samepage Merging), NUMA. + +- **Disques**
+ Par disque : E/S, opérations, fille d'attente, utilisation, espace, RAID logiciel (md). + + ![sda](https://cloud.githubusercontent.com/assets/2662304/14093195/c882bbf4-f554-11e5-8863-1788d643d2c0.gif) + +- **Interfaces réseau**
+ Par interface : bande passante, paquets, erreurs, rejets. + + ![dsl0](https://cloud.githubusercontent.com/assets/2662304/14093128/4d566494-f554-11e5-8ee4-5392e0ac51f0.gif) + +- **Réseautage IPv4**
+ Bande passante, paquets, erreurs, fragments, + TCP : connexions, paquets, erreurs, poignée de main, + UDP : paquets, erreurs, + Diffusion : bande passante, paquets, + Multidiffusion : bande passante, paquets. + +- **Réseautage IPv6**
+ Bande passante, paquets, erreurs, fragments, ECT, + UDP : paquets, erreurs, + UDP-Lite : paquets, erreurs, + Diffusion : bande passante, + Multidiffusion : bande passante, paquets, + ICMP : messages, erreurs, échos, routeur, voisin, MLDv2, appartenance à un groupe, + ventiler par type. + +- **Communication inter-processus - IPC**
+ Tels que les sémaphores et les réseaux de sémaphores. + +- **netfilter / iptables Linux firewall**
+ Connexions, événements de suivi des connexions, erreurs. + +- **Protection DDoS de Linux**
+ Mesures de la SYNPROXIE. + +- **latences fping**
+ Pour toute quantité d'hôtes, en indiquant la latence, les paquets et la perte de paquets. + + ![image](https://cloud.githubusercontent.com/assets/2662304/20464811/9517d2b4-af57-11e6-8361-f6cc57541cd7.png) + + +- **Processus**
+ En fonctionnement, bloqué, bifurqué, actif. + +- **Entropie**
+ Le pool de nombres aléatoires, utilisé en cryptographie. + +- **Serveurs et clients de fichiers NFS**
+ NFS v2, v3, v4 : E/S, cache, lecture anticipée, appels RPC. + +- **Réseau QoS**
+ le seul outil qui permet de visualiser les classes du réseau `tc` en temps réel. + + ![qos-tc-classes](https://cloud.githubusercontent.com/assets/2662304/14093004/68966020-f553-11e5-98fe-ffee2086fafd.gif) + +- **Groupes de contrôle de Linux**
+ Conteneurs : systemd, lxc, docker. + +- **Applications**
+ En regroupant l'arbre des processus et en signalant l'utilisation du processeur, de la mémoire, la lecture des disques, l'écritures des disques, l'échange, les fils, les pipes, les prises - par groupe. + + ![apps](https://cloud.githubusercontent.com/assets/2662304/14093565/67c4002c-f557-11e5-86bd-0154f5135def.gif) + +- **Utilisation des ressources par les utilisateurs et les groupes d'utilisateurs**
+ En résumant l'arbre de processus par utilisateur et par groupe, rapportant : processeur central, mémoire, lecture de disque, écriture de disque, échange (swap), fils, pipes, et sockets. + +- **Serveurs web Apache et lighttpd**
+ `mod-status` (v2.2, v2.4) et statistiques des journaux de cache, pour plusieurs serveurs. + +- **Serveurs web NGINX**
+ `stub-status`, pour plusieurs serveurs. + +- **Tomcat**
+ Accès, files, mémoire libre, volume. + +- **Fichiers journaux du serveur web**
+ Extrayant en temps réel les mesures de performance du serveur web et appliquant plusieurs contrôles de santé. + +- **Bases de données MySQL**
+ Plusieurs serveurs, chacun indiquant : bande passante, requêtes/s, gestionnaires, verrous, problèmes, + opérations tmp, connexions, métriques binlog, files, métriques innodb, et plus. + +- **Bases de données Postgres**
+ Plusieurs serveurs, chacun affichant : par base de données des statistiques (connexions, tuples + lecture - écriture - rendu, transactions, verrous), les processus d'arrière-plan, les index, + les tables, l'écriture à l'avance, l'écriture de fond et plus encore. + +- **Bases de données Redis**
+ Plusieurs serveurs, chacun affichant : opérations, taux de réussite, mémoire, clés, clients, esclaves. + +- **mongodb**
+ Opérations, clients, transactions, curseurs, connexions, assertions, serrures, etc. + +- **bases de données memcached**
+ Plusieurs serveurs, chacun indiquant : bande passante, connexions, objets. + +- **elasticsearch**
+ les performances de recherche et d'indexation, la latence, les délais, les statistiques sur les grappes, les statistiques sur les fils, etc. + +- **ISC Bind name servers**
+ Plusieurs serveurs, chacun affichant : les clients, les demandes, les requêtes, les mises à jour, les échecs et plusieurs mesures par vue. + +- **Serveurs de noms NSD**
+ Les requêtes, les zones, les protocoles, les types de requêtes, les transferts, etc. + +- **Serveurs de courrier électronique Postfix**
+ La file d'attente des messages (entrées, taille) + +- **Serveurs de courrier électronique Exim**
+ La file d'attente des messages (e-mails en file d'attente) + +- **Dovecot**
+ Serveurs POP3/IMAP + +- **ISC dhcpd**
+ L'utilisation des pools, les baux, etc. + +- **IPFS**
+ La bande passante, les pairs. + +- **Squid proxy servers**
+ Plusieurs serveurs, chacun indiquant : la bande passante et les requêtes des clients, la bande passante des serveurs et les requêtes. + +- **HAproxy**
+ La bande passante, les sessions, les backends, etc. + +- **varnish**
+ Les fils, les sessions, les succès, les objets, les backends, etc. + +- **OpenVPN**
+ Le statut par tunnel. + +- **Senseurs matériels**
+ Capteurs `lm_sensors` et `IPMI` : température, tension, ventilateurs, puissance, humidité. + +- **NUT et APC UPSes**
+ La charge, la tension de la batterie, la température, les mesures d'utilité, et les mesures de sortie. + +- **PHP-FPM**
+ Plusieurs instances, chacune rapportant les connexions, les demandes, et les performances. + +- **hddtemp**
+ La température des disques. + +- **smartd**
+ Les valeurs S.M.A.R.T. des disques. + +- **Dispositifs SNMP**
+ Peuvent également être surveillés (bien que vous devez les configurer). + +- **statsd**
+ [netdata est un serveur statsd complet](https://github.com/firehol/netdata/wiki/statsd). + +Et vous pouvez l'étendre, en écrivant des plugins qui collectent des données de n'importe quelle source, en utilisant n'importe quel langage informatique. + +## Liens + + * Signaler un bogue : https://github.com/YunoHost-Apps/netdata_ynh/issues + * Site web de NetData : http://my-netdata.io/ diff --git a/app_nextcloud.md b/app_nextcloud.md new file mode 100644 index 00000000..ab6729dc --- /dev/null +++ b/app_nextcloud.md @@ -0,0 +1,169 @@ +# logo de Nextcloud Nextcloud + + - [Discovering the Nextcloud environment](#EnvironmentNextcloud) + - [Mobile and computer client software](#ClientSoftware) + - [Useful Manipulations & Problems Encountered](#UtileManipulations) + - [Add space to Nextcloud](#AddSpace) + - [Third Party Applications](#AppsTiers) + - [Useful links](#UsefulLinks) + +Nextcloud is a file hosting service, many applications can be installed to offer it new features such as a calendar, a directory, notes and many others (you can find some applications in the [third-party applications](#AppsTiers) part but there are many others depending on your needs). + +## Discovering the Nextcloud environment + +Due to the creation of Nextcloud, a database with third-party applications to install, this chapter will only concern the nextcloud database without added applications. More information on applications in the dedicated section or in the nextcloud application catalogue: [apps.nextcloud.com](https://apps.nextcloud.com). +Nextcloud is before a cloud service (like Seafile and others), it allows synchronization and file sharing on the Internet and between several terminals (computers, smartphone) but also with several people. + +## Mobile and computer client software + +There are client software for all platforms. You can find them on the official nextcloud website: https://nextcloud.com/install/#install-clients + +## Useful Manipulations & Problems Encountered + +### Add storage space + +Solution I. allows you to add a link to a local or remote folder. +Solution II. allows to move the main storage space of Nextcloud. + +#### I. Add an external storage space + +Parameter =>[Administration] External storage. + +At the bottom of the list you can add a folder (It is possible to define a subfolder using the `folder/subfolder` convention.) +Select a storage type and specify the requested connection information. +You can restrict this folder to one or more nextcloud users with the column `Available for`. +With the gear you can allow or prohibit previewing and file sharing. +Finally click on the check mark to validate the folder. + +#### II. Migrate Nextcloud data to a larger partition + +**Note**: The following assumes that you have a hard disk mounted on `/media/storage`. Refer to[this article](/external_storage) to prepare your system. + +**Note**: Replace `nextcloud` with the name of its instance, if you have several Nextcloud apps installed. + +First turn off the web server with the command: +```bash +systemctl stop nginx +``` + +##### Choice of location + +**Case A: Blank storage, exclusive to Nextcloud** + +For the moment only root can write to it in `/media/storage`, which means that NGINX and Nextcloud will not be able to use it. + +```bash +chown -R nextcloud:nextcloud /media/storage +chmod 775 -R /media/storage +``` + +**Case B: Shared storage, data already present, Nextcloud data in a subfolder** + +If you want to use this disk for other applications, you can create a subfolder belonging to Nextcloud. + +```bash +mkdir -p /media/storage/nextcloud_data +chown -R nextcloud /media/storage/nextcloud_data +chmod 775 -R /media/storage/nextcloud_data +``` + +##### Migrate data + +Migrate your data to the new disk. To do this *(be patient, it can take a long time)*: + +```bash +Case A: cp -ia /home/yunohost.app/nextcloud /media/storage +Case B: cp -ia /home/yunohost.app/nextcloud /media/storage/nextcloud_data +``` + +The `i` option allows you to ask yourself what to do if there is a file conflict, especially if you overwrite an old Owncloud or Nextcloud data folder. +To check that everything went well, compare what these two commands display (the content must be identical): + +```bash +ls -la /home/yunohost.app/nextcloud + +Case A: ls -al /media/storage +Case B: ls -al /media/storage/nextcloud_data/nextcloud +``` + +##### Configure Nextcloud + +To inform Nextcloud of its new directory, modify the `/var/www/nextcloud/config/config.php` file with the command: + +```bash +nano /var/www/nextcloud/config/config.php +``` + +Look for the line: + +```bash +'datadirectory' => '/home/yunohost.app/nextcloud/data', +``` + +That you modify: + +```bash +CASE A:'datadirectory' =>'/media/storage', +CASE B:'datadirectory' =>'/media/storage/nextcloud_data/nextcloud/data', +``` + +Back up with `ctrl+x` then `y` or `o` (depending on your server locale). + +Restart the web server: + +```bash +systemctl start nginx +``` + +Add the.ocdata file +```bash +CASE A: nano /media/storage/.ocdata +CASE B: nano /media/storage/nextcloud_data/nextcloud/data/.ocdata +``` +Add a space to the file to be able to save it + +Back up with `ctrl+x` then `y` or `o` (depending on your server locale). + +Run a scan of the new directory by Nextcloud: + +```bash +cd /var/www/nextcloud +sudo -u nextcloud php7.3 occ files:scan --all +``` + +It's over now. Now test if everything is fine, try connecting to your Nextcloud instance, upload a file, check its proper synchronization. + +### Nextcloud and Cloudflare + +If you use Cloudflare for your DNS, *which may be useful if you have a dynamic IP*, you will most likely have authentication problems with the Nextcloud application. On the Internet many people propose to create a rule that disables all options related to security and Cloudflare speed for the URL pointing to your Nextcloud instance. Although it works, it is not the optimal solution. I propose, certainly to create a rule for the URL pointing to your Nextcloud instance but to disable only 2 options. So here's how: + +#### Cloudflare Page Rules + +In the Cloudflare control panel select your domain and find Page Rules +the URL in your address bar will look like this: https://dash.cloudflare.com/*/domain.tld/page-rules + +##### Add a rule + +The rule to be added must apply to the URL of your Nextcloud instance either: + +- `https://nextcloud.domain.tld/**` if you use a subdomain +- `https://domain.tld/nextcloud/*` if you have deployed Nextcloud in a directory + +The options to disable (Off) are: + +- Rocket Loader +- Email Obfuscation + +Save and clean your caches (Cloudflare, browser...) and that's it. + +## Third Party Applications + + - [Calendrier](app_nextcloud_calendar) + - [Contact](app_nextcloud_contact) + - [KeeWeb](app_nextcloud_keeweb) + - [Carnet](app_nextcloud_carnet) + +## Useful links + + - Official website: [nextcloud.com](https://nextcloud.com/) + - Application catalogue for Nextcloud: [apps.nextcloud.com](https://apps.nextcloud.com/) diff --git a/app_nextcloud_calendar.md b/app_nextcloud_calendar.md new file mode 120000 index 00000000..7800f978 --- /dev/null +++ b/app_nextcloud_calendar.md @@ -0,0 +1 @@ +default.md \ No newline at end of file diff --git a/app_nextcloud_carnet.md b/app_nextcloud_carnet.md new file mode 120000 index 00000000..7800f978 --- /dev/null +++ b/app_nextcloud_carnet.md @@ -0,0 +1 @@ +default.md \ No newline at end of file diff --git a/app_nextcloud_contact.md b/app_nextcloud_contact.md new file mode 120000 index 00000000..7800f978 --- /dev/null +++ b/app_nextcloud_contact.md @@ -0,0 +1 @@ +default.md \ No newline at end of file diff --git a/app_nextcloud_fr.md b/app_nextcloud_fr.md new file mode 100644 index 00000000..7c32edd0 --- /dev/null +++ b/app_nextcloud_fr.md @@ -0,0 +1,169 @@ +# logo de Nextcloud Nextcloud + + - [Découverte de l'environnement de Nextcloud](#EnvironnementNextcloud) + - [Logiciels Clients pour mobile et ordinateur](#LogicielsClients) + - [Manipulations & Problèmes rencontrés utiles](#ManipulationsUtiles) + - [Ajouter de l'espace à Nextcloud](#AjoutEspace) + - [Applications tiers](#AppsTiers) + - [Liens utiles](#liensutiles) + +Nextcloud est un service d'hébergement de fichiers, de nombreuses applications peuvent être installées afin de lui offrir de nouvelles fonctionnalités tel qu'un agenda, un répertoire de contacts, des notes et pleins d'autres possibles (vous pouvez trouver quelques applications dans la partie [applications tiers](#AppsTiers) mais il en existe une multitude suivant vos besoins). + +## Découverte de l'environnement de Nextcloud + +Du fait de la constitution de Nextcloud, une base avec des applications tiers à installer, ce chapitre ne concernera que la base de nextcloud sans applications ajoutés. Plus d'informations sur les applications dans la partie dédiée ou sur le catalogue d'application de Nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com). +Nextcloud est avant tout un service de cloud (comme Seafile et d'autres logiciels), il permet une synchronisation et le partage de fichiers sur internet et entre plusieurs terminaux (ordinateurs, smartphone) mais aussi avec plusieurs personnes. + +## Logiciels Clients + +Il existe des logiciels clients pour de nombreux terminaux. Vous pouvez les retrouver sur le site de Nextcloud : [nextcloud.com/install/#install-clients](https://nextcloud.com/install/#install-clients) + +## Manipulations utiles & problèmes rencontrés + +### Ajouter de l'espace à Nextcloud + +La solution I. permet d'ajouter un lien vers un dossier local ou distant. +La solution II. permet de déplacer l'espace de stockage principal de Nextcloud. + +#### I. Ajouter un espace de stockage externe + +Paramètre => [Administration] Stockages externe. + +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. + +#### II. Migrer les données de Nextcloud dans une partition plus grosse + +**Remarque** : Ce qui suit suppose que vous avez un disque dur monté sur `/media/stockage`. Référez-vous à [cet article](/external_storage) 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 +systemctl stop nginx +``` + +##### 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:nextcloud /media/stockage +chmod 775 -R /media/stockage +``` + +**Cas B : Stockage partagé, données déjà présentes, données Nextcloud dans un sous-dossier** + +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/nextcloud +``` + +##### 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/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/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 php7.3 occ files:scan --all +``` + +C'est terminé. À présent testez si tout va bien, essayez de vous connecter à votre instance Nextcloud, envoyer un fichier, vérifiez sa bonne synchronisation. + + +### Nextcloud et Cloudflare + +Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens proposent de créer une règle ayant pour effet de désactiver toutes les options reliées à la sécurité et à la vitesse de Cloudflare pour l'URL pointant sur votre instance Nextcloud. Bien que cela fonctionne, ce n'est pas la solution optimale. Je vous propose, certes de créer une règle pour l'URL pointant sur votre instance Nextcloud, mais de désactiver seulement 2 options. Voici donc comment : + +#### Cloudflare Page Rules + +Dans le panneau de contrôle de Cloudflare, choisissez votre domaine et trouvez Page Rules +l'URL dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules + +#### Ajouter une règle + +La règle à ajouter doit s'appliquer pour l'URL de votre instance Nextcloud soit : +- `https://nextcloud.domain.tld/*` si vous utilisez un sous-domaine +- `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire + +Les options à désactiver (Off) sont : + +- Rocket Loader +- Email Obfuscation + +Sauvegarder et nettoyer vos caches (Cloudflare, navigateur...) et le tour est joué. + +## Applications Tiers + + + [Calendrier](/app_nextcloud_calendar) + + [Contact](/app_nextcloud_contact) + + [KeeWeb](/app_nextcloud_keeweb) + + [Carnet](/app_nextcloud_carnet) + +## Quelques liens utiles + ++ Site officiel : [nextcloud.com (en)](https://nextcloud.com/) ++ Catalogue d'application pour Nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/) diff --git a/app_nextcloud_keeweb.md b/app_nextcloud_keeweb.md new file mode 100644 index 00000000..a6039426 --- /dev/null +++ b/app_nextcloud_keeweb.md @@ -0,0 +1,35 @@ +# The KeeWeb application for NextCloud + +The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance. +But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this, +[a solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) exists. + +Go to the Nextcloud configuration directory: + +```bash +cd /var/www/nextcloud/config/ +``` + +If it does not exist, create the *mimetypemapping.json* file whose owner is the user *nextcloud* : + +```bash +sudo su nextcloud -c "nano mimetypemapping.json" +``` + +Then add in this file the following text: + +```bash +{ + "kdbx": ["x-application/kdbx"] +} +``` + +Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**). + +Then run a scan by executing next command as root: + +```bash +sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all +``` + +Now the problem is fixed. diff --git a/app_nextcloud_keeweb_fr.md b/app_nextcloud_keeweb_fr.md new file mode 100644 index 00000000..42e4867a --- /dev/null +++ b/app_nextcloud_keeweb_fr.md @@ -0,0 +1,38 @@ +# L'application KeeWeb pour NextCloud + +L'application Keeweb sur le catalogue de nextcloud - [apps.nextcloud.com/keeweb](https://apps.nextcloud.com/apps/keeweb) + +L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud. + +Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela, +[une solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) existe. + +Se rendre dans le répertoire de configuration de Nextcloud : + +```bash +cd /var/www/nextcloud/config/ +``` + +S'il n'existe pas, créer le fichier *mimetypemapping.json* dont le propriétaire est l'utilisateur *nextcloud* : + +```bash +sudo su nextcloud -c "nano mimetypemapping.json" +``` + +Puis ajouter dans ce fichier le texte suivent : + +```bash +{ + "kdbx": ["x-application/kdbx"] +} +``` + +Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**). + +Ensuite lancer un scan en tant que root : + +```bash +sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all +``` + +À présent, le problème est corrigé. diff --git a/app_noalyss.md b/app_noalyss.md new file mode 100644 index 00000000..7fb61ad6 --- /dev/null +++ b/app_noalyss.md @@ -0,0 +1,13 @@ +# Noalyss + +Open source accounting software developed in PHP. + +All the information on this software is available on the [project website](http://www.noalyss.eu) + +To learn how to use it I invite you to read the [project wiki](http://www.noalyss.eu/?page_id=46&lang=fr_FR_id=46&lang=en_EN) + +The github of the YunoHost module is [here](https://github.com/YunoHost-Apps/noalyss_ynh_ynh) + +You can try the project [here](http://demo.noalyss.eu/index.php) with the identifiers: demo /demo + +I mean, not to have to struggle like me. The administrator IDs and passwords for the first login are: phpcompta / phpcompta \ No newline at end of file diff --git a/app_noalyss_fr.md b/app_noalyss_fr.md new file mode 100644 index 00000000..67246fa3 --- /dev/null +++ b/app_noalyss_fr.md @@ -0,0 +1,13 @@ +# 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 \ No newline at end of file diff --git a/app_onlyoffice.md b/app_onlyoffice.md new file mode 100644 index 00000000..bba13c1c --- /dev/null +++ b/app_onlyoffice.md @@ -0,0 +1,27 @@ +# OnlyOffice Logo OnlyOffice Server + +[![Install OnlyOffice with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=onlyoffice) [![Integration level](https://dash.yunohost.org/integration/onlyoffice.svg)](https://dash.yunohost.org/appci/app/onlyoffice) + +### Index + +- [Useful links](#useful-links) +- [Connect OnlyOffice Server with Nextcloud](#Connect-OnlyOffice-Server-with-Nextcloud) + +ONLYOFFICE Server is a free collaborative online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time. + +## Connect OnlyOffice Server with Nextcloud + +1. Install [OnlyOffice Server](https://github.com/YunoHost-Apps/onlyoffice_ynh) in a different domain than the one used by Nextcloud: `https://onlyoffice.domain.org` and `https://domain.org/nextcloud` (for example) + +2. Install [ONLYOFFICE connector](https://apps.nextcloud.com/apps/onlyoffice) in Nextcloud +- Connect to Nextcloud as admin and install ONLYOFFICE Connector: -> Applications -> install ONLYOFFICE. (ONLYOFFICE Connector doesn't need to match your OnlyOffice Server version number). +- In Settings (`https://domain.org/nextcloud/settings/admin/onlyoffice`), enter your OnlyOffice Server address (for example: `https://onlyoffice.domain.org`) + +OnlyOffice Server is now connected to Nextcloud. + +## Useful links + ++ Website: [www.onlyoffice.com](https://www.onlyoffice.com/) ++ ONLYOFFICE connector: [Nextcloud ONLYOFFICE Connector](https://apps.nextcloud.com/apps/onlyoffice) ++ Application software repository: [github.com - YunoHost-Apps/onlyoffice_ynh](https://github.com/YunoHost-Apps/onlyoffice_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/onlyoffice/issues](https://github.com/YunoHost-Apps/onlyoffice_ynh/issues) diff --git a/app_onlyoffice_fr.md b/app_onlyoffice_fr.md new file mode 100644 index 00000000..ddaee9d5 --- /dev/null +++ b/app_onlyoffice_fr.md @@ -0,0 +1,27 @@ +#  Logo OnlyOffice OnlyOffice Server + +[![Installer OnlyOffice avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=onlyoffice) [![Integration level](https://dash.yunohost.org/integration/onlyoffice.svg)](https://dash.yunohost.org/appci/app/onlyoffice) + +### Index + +- [Liens utiles](#liens-utiles) +- [Configurer OnlyOffice Server avec Nextcloud](#Configurer-OnlyOffice-Server-avec-Nextcloud) + +OnlyOffice Server est une suite bureautique collaborative en ligne gratuite comprenant des visualiseurs et des éditeurs de texte, de feuilles de calcul et de présentations, entièrement compatible avec les formats Office Open XML : .docx, .xlsx, .pptx et permettant l'édition collaborative en temps réel. + +## Configurer OnlyOffice Server avec Nextcloud + +1. Installer [OnlyOffice Server](https://github.com/YunoHost-Apps/onlyoffice_ynh) dans un domaine différent de celui utilisé par Nextcloud : `https://onlyoffice.domain.org` et `https://domain.org/nextcloud` (par exemple) + +2. Installer [ONLYOFFICE connector](https://apps.nextcloud.com/apps/onlyoffice) dans Nextcloud +- Connectez-vous à Nextcloud en tant qu'administrateur et installer ONLYOFFICE Connector : -> Applications -> installez ONLYOFFICE. (Le numéro de version d'ONLYOFFICE Connector n'a pas besoin d'être le même que celui d'OnlyOffice Server). +- Dans Paramètres (`https://domain.org/nextcloud/settings/admin/onlyoffice`), entrez l'adresse de votre serveur OnlyOffice Server (par exemple : `https://onlyoffice.domain.org`) + +OnlyOffice Server est maintenant connecté à Nextcloud. + +## Liens utiles + ++ Site web : [www.onlyoffice.com](https://www.onlyoffice.com/) ++ ONLYOFFICE connector : [Nextcloud ONLYOFFICE Connector](https://apps.nextcloud.com/apps/onlyoffice) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/onlyoffice_ynh](https://github.com/YunoHost-Apps/onlyoffice_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/onlyoffice/issues](https://github.com/YunoHost-Apps/onlyoffice_ynh/issues) diff --git a/app_opensondage.md b/app_opensondage.md new file mode 100644 index 00000000..7255f74d --- /dev/null +++ b/app_opensondage.md @@ -0,0 +1,23 @@ +# opensondage's logo Opensondage + +[![Install Opensondage with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=opensondage) [![Integration level](https://dash.yunohost.org/integration/opensondage.svg)](https://dash.yunohost.org/appci/app/opensondage) + +### Index + +- [Useful links](#useful-links) + +Opensondage-Framadate is an online service for planning an appointment or making a decision quickly and easily. No registration is required. It's a community free/libre software alternative to Doodle. +Here is how it works: + +1. Create a poll +2. Define dates or subjects to choose from +3. Send the poll link to your friends or colleagues +4. Discuss and make a decision + +## Useful links + ++ Website: [framadate.org](https://framadate.org) ++ Official documentation: [docs.framasoft.org/fr/framadate](https://docs.framasoft.org/en/framadate) ++ Demonstration: [Demo](https://framadate.org) ++ Application software repository: [github.com - YunoHost-Apps/opensondage](https://github.com/YunoHost-Apps/opensondage_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/opensondage/issues](https://github.com/YunoHost-Apps/opensondage_ynh/issues) diff --git a/app_opensondage_fr.md b/app_opensondage_fr.md new file mode 100644 index 00000000..d90a428d --- /dev/null +++ b/app_opensondage_fr.md @@ -0,0 +1,23 @@ +# logo de opensondage Opensondage + +[![Install Opensondage with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=opensondage) [![Integration level](https://dash.yunohost.org/integration/opensondage.svg)](https://dash.yunohost.org/appci/app/opensondage) + +### Index + +- [Liens utiles](#liens-utiles) + +Opensondage-Framadate est un service en ligne permettant de planifier un rendez-vous ou prendre des décisions rapidement et simplement. Aucune inscription préalable n’est nécessaire. +Voici comment ça fonctionne : + +1. Créez un sondage +2. Déterminez les dates ou les sujets à choisir +3. Envoyez le lien du sondage à vos amis ou collègues +4. Discutez et prenez votre décision + +## Liens utiles + ++ Site web : [framadate.org](https://framadate.org) ++ Documentation officielle : [docs.framasoft.org/fr/framadate](https://docs.framasoft.org/fr/framadate) ++ Démonstration: [Démo](https://framadate.org) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/opensondage](https://github.com/YunoHost-Apps/opensondage_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/opensondage/issues](https://github.com/YunoHost-Apps/opensondage_ynh/issues) diff --git a/app_osticket.md b/app_osticket.md new file mode 100644 index 00000000..4728addc --- /dev/null +++ b/app_osticket.md @@ -0,0 +1,19 @@ +# osticket's logo OsTicket + +[![Install osTicket with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=osticket) [![Integration level](https://dash.yunohost.org/integration/osticket.svg)](https://dash.yunohost.org/appci/app/osticket) + +### Index + +- [Useful links](#useful-links) + +osTicket is a widely-used open source support ticket system. It seamlessly integrates inquiries created via email and web-based forms into a simple easy to use multi-user web interface. Easily manage, organize and archive all your support requests and responses in one place while providing your clients with accountability and responsiveness they deserve. + +osTicket is an attractive alternative to higher-cost and complex customer support systems; simple, lightweight, reliable, open source, and easy to setup and use. The best part is, it's completely free. + +## Useful links + ++ Website : [osticket.com](https://osticket.com/) ++ Official documentation : [docs.osticket.com](https://docs.osticket.com/) ++ Demonstration : [Demo](http://www.ostickethacks.com/demo/demo_info.php) ++ Application software repository : [github.com - YunoHost-Apps/osticket](https://github.com/YunoHost-Apps/osticket_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/osticket/issues](https://github.com/YunoHost-Apps/osticket_ynh/issues) diff --git a/app_osticket_fr.md b/app_osticket_fr.md new file mode 100644 index 00000000..4eed3ab4 --- /dev/null +++ b/app_osticket_fr.md @@ -0,0 +1,19 @@ +# logo de osticket osTicket + +[![Install osTicket with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=osticket) [![Integration level](https://dash.yunohost.org/integration/osticket.svg)](https://dash.yunohost.org/appci/app/osticket) + +### Index + +- [Liens utiles](#liens-utiles) + +osTicket est un système de tickets d'assistance open source largement utilisé. Il intègre de manière transparente les demandes créées par courrier électronique et les formulaires en ligne dans une interface web multi-utilisateurs simple et facile à utiliser. Gérez, organisez et archivez facilement toutes vos demandes d'assistance et vos réponses en un seul endroit tout en offrant à vos clients la responsabilité et la réactivité qu'ils méritent. + +osTicket est une alternative attrayante aux systèmes de support client plus coûteux et complexes ; simple, léger, fiable, open source, et facile à installer et à utiliser. Le meilleur, c'est qu'il est entièrement gratuit. + +## Liens utiles + ++ Site web : [osticket.com](https://osticket.com/) ++ Documentation officielle : [docs.osticket.com](https://docs.osticket.com/) ++ Démonstration : [Démo](http://www.ostickethacks.com/demo/demo_info.php) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/osticket](https://github.com/YunoHost-Apps/osticket_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/osticket/issues](https://github.com/YunoHost-Apps/osticket_ynh/issues) diff --git a/app_peertube.md b/app_peertube.md new file mode 100644 index 00000000..ddbd96c3 --- /dev/null +++ b/app_peertube.md @@ -0,0 +1,17 @@ +# peertube's logo PeerTube + +[![Install PeerTube with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=peertube) [![Integration level](https://dash.yunohost.org/integration/peertube.svg)](https://dash.yunohost.org/appci/app/peertube) + +### Index + +- [Useful links](#useful-links) + +PeerTube is a video hosting software project. It allows you to watch and share videos with others using your own server, be it a simple computer at home or in a datacenter. You don't need to host thousands of videos to make your instance interesting for daily use. In a federated fashion, it will talk with other servers of your choice to aggregate references to their videos without really hosting them locally. + + +## Useful links + ++ Website: [joinpeertube.org](https://joinpeertube.org) ++ Official documentation: [docs.joinpeertube.org](https://docs.joinpeertube.org) ++ Application software repository: [github.com - YunoHost-Apps/peertube](https://github.com/YunoHost-Apps/peertube_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/peertube/issues](https://github.com/YunoHost-Apps/peertube_ynh/issues) diff --git a/app_peertube_fr.md b/app_peertube_fr.md new file mode 100644 index 00000000..234c92d9 --- /dev/null +++ b/app_peertube_fr.md @@ -0,0 +1,17 @@ +# logo de peertube PeerTube + +[![Install PeerTube with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=peertube) [![Integration level](https://dash.yunohost.org/integration/peertube.svg)](https://dash.yunohost.org/appci/app/peertube) + +### Index +x +- [Liens utiles](#liens-utiles) + +PeerTube est un projet de logiciel d'hébergement vidéo. Il vous permet de regarder et de partager des vidéos avec d'autres personnes en utilisant votre propre serveur, qu'il s'agisse d'un simple PC à la maison ou dans un Datacenter. Vous n'avez pas besoin d'héberger des milliers de vidéos pour rendre votre instance intéressante pour une utilisation quotidienne. De manière fédérée, il dialoguera avec d'autres serveurs de votre choix pour agréger les références à leurs vidéos sans vraiment les héberger localement. + + +## Liens utiles + ++ Site web : [joinpeertube.org](https://joinpeertube.org) ++ Documentation officielle : [docs.joinpeertube.org](https://docs.joinpeertube.org) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/peertube](https://github.com/YunoHost-Apps/peertube_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/peertube/issues](https://github.com/YunoHost-Apps/peertube_ynh/issues) diff --git a/app_phpmyadmin.md b/app_phpmyadmin.md new file mode 100644 index 00000000..8ef95e1c --- /dev/null +++ b/app_phpmyadmin.md @@ -0,0 +1,16 @@ +# phpmyadmin's logo phpMyAdmin + +[![Install phpMyAdmin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=phpmyadmin) [![Integration level](https://dash.yunohost.org/integration/phpmyadmin.svg)](https://dash.yunohost.org/appci/app/phpmyadmin) + +### Index + +- [Useful links](#useful-links) + +phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. Frequently used operations (managing databases, tables, columns, relations, indexes, users, permissions, etc.) can be performed via the user interface, while you still have the ability to directly execute any SQL statement. + +## Useful links + ++ Website: [www.phpmyadmin.net](https://www.phpmyadmin.net/) ++ Official documentation: [www.phpmyadmin.net/docs](https://www.phpmyadmin.net/docs/) ++ Application software repository: [github.com - YunoHost-Apps/phpmyadmin](https://github.com/YunoHost-Apps/phpmyadmin_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/phpmyadmin/issues](https://github.com/YunoHost-Apps/phpmyadmin_ynh/issues) diff --git a/app_phpmyadmin_fr.md b/app_phpmyadmin_fr.md new file mode 100644 index 00000000..e3705a31 --- /dev/null +++ b/app_phpmyadmin_fr.md @@ -0,0 +1,16 @@ +# logo de phpmyadmin phpMyAdmin + +[![Install phpMyAdmin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=phpmyadmin) [![Integration level](https://dash.yunohost.org/integration/phpmyadmin.svg)](https://dash.yunohost.org/appci/app/phpmyadmin) + +### Index + +- [Liens utiles](#liens-utiles) + +phpMyAdmin est un outil logiciel libre écrit en PHP, destiné à gérer l'administration de MySQL sur le Web. phpMyAdmin supporte un large éventail d'opérations sur MySQL et MariaDB. Les opérations fréquemment utilisées (gestion des bases de données, des tables, des colonnes, des relations, des index, des utilisateurs, des autorisations, etc.) peuvent être effectuées via l'interface utilisateur, tout en ayant la possibilité d'exécuter directement n'importe quelle instruction SQL. + +## Liens utiles + ++ Site web : [www.phpmyadmin.net](https://www.phpmyadmin.net/) ++ Documentation officielle : [www.phpmyadmin.net/docs](https://www.phpmyadmin.net/docs/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/phpmyadmin](https://github.com/YunoHost-Apps/phpmyadmin_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/phpmyadmin/issues](https://github.com/YunoHost-Apps/phpmyadmin_ynh/issues) diff --git a/app_phpsysinfo.md b/app_phpsysinfo.md new file mode 100644 index 00000000..d30af4e3 --- /dev/null +++ b/app_phpsysinfo.md @@ -0,0 +1,16 @@ +# phpsysinfo's logo phpSysInfo + +[![Install phpSysInfo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=phpsysinfo) [![Integration level](https://dash.yunohost.org/integration/phpsysinfo.svg)](https://dash.yunohost.org/appci/app/phpsysinfo) + +### Index + +- [Useful links](#useful-links) + +phpSysInfo is a customizable PHP script that displays information about your system (CPU, RAM, disks). + +## Useful links + ++ Website: [phpsysinfo.github.io/phpsysinfo](https://phpsysinfo.github.io/phpsysinfo/) ++ Demonstration: [Demo](https://phpsysinfo.github.io/phpsysinfo/demos.html) ++ Application software repository: [github.com - YunoHost-Apps/phpsysinfo](https://github.com/YunoHost-Apps/phpsysinfo_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/phpsysinfo/issues](https://github.com/YunoHost-Apps/phpsysinfo_ynh/issues) diff --git a/app_phpsysinfo_fr.md b/app_phpsysinfo_fr.md new file mode 100644 index 00000000..6a23110e --- /dev/null +++ b/app_phpsysinfo_fr.md @@ -0,0 +1,14 @@ +# logo de phpsysinfo phpSysInfo + +[![Install phpSysInfo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=phpsysinfo) [![Integration level](https://dash.yunohost.org/integration/phpsysinfo.svg)](https://dash.yunohost.org/appci/app/phpsysinfo) + +### Index + +phpSysInfo est un script PHP personnalisable qui affiche bien les informations sur votre système (CPU, RAM, disques...). + +## Liens utiles + ++ Site web : [phpsysinfo.github.io/phpsysinfo](https://phpsysinfo.github.io/phpsysinfo/) ++ Démonstration : [Démo](https://phpsysinfo.github.io/phpsysinfo/demos.html) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/phpsysinfo](https://github.com/YunoHost-Apps/phpsysinfo_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/phpsysinfo/issues](https://github.com/YunoHost-Apps/phpsysinfo_ynh/issues) diff --git a/app_pihole.md b/app_pihole.md new file mode 100644 index 00000000..1b334491 --- /dev/null +++ b/app_pihole.md @@ -0,0 +1,74 @@ +# Pi-hole's logo Pi-hole + +[![Install Pi-hole with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=pihole) [![Integration level](https://dash.yunohost.org/integration/pihole.svg)](https://dash.yunohost.org/appci/app/pihole) + +### Index + +- [Using Pi-Hole as a DHCP server](#using-pi-hole-as-a-dhcp-server) + - [Configure Pi-Hole](#configure-pi-hole) + - [Configure my router](#configure-my-router) + - [Restore Network](#restore-network) +- [Useful links](#useful-links) + +Pi-hole is a network-level ad blocker that acts as a DNS layer and possibly a DHCP3 server for use on a private network. It is designed to be installed on embedded devices with network capabilities, such as the Raspberry Pi, but can be used on other machines running GNU/Linux or in virtualised environments. + +## Using Pi-Hole as a DHCP server + +> **Warning, you should be aware that touching your DHCP could break your network. +In case your server is inaccessible, you will lose your dns resolution and IP address. +Thus, you would lose any connection to the internet and even the connection to your router.** + +> If you encounter this kind of problem, please read the section "How to restore my network". + +### Configure Pi-Hole + +There are 2 ways to configure Pi-hole to be used as your DHCP server. +- Either you can choose to use it when you install the application. +- Or you can activate the DHCP server afterwards in the "Settings" tab, part "Pi-hole DHCP Server". +In this second case, it may be preferable to force the server IP to a static address. + +### Configure my router + +Your router or your ISP's router has a DHCP server enabled by default. +If you keep this DHCP, along with Pi-hole's, you will have transparent conflicts between them. +The first DHCP server to respond will distribute its own IP and settings. +So you need to turn off your router's DHCP server and let Pi-hole manage your network. + +#### Why should I use Pi-hole's DHCP? + +By using Pi-hole's DHCP, you allow Pi-hole to give its dns configuration to each of your clients. This way, every request will be filtered by Pi-hole. + +Another case of using Pi-hole DHCP is if you have hairpinning problems (you can't connect to your server because its IP is your public IP, and your router doesn't allow this). +In this case, using Pi-hole's dns will allow you to connect to your server by its local address rather than its public address. + +### Restore network + +> Oops! +Your Pi-hole server has crashed, and you don't have DHCP anymore. +Don't panic. We'll get through this. + +Use your favorite device on your desktop computer. +And first, get your network interface (usually `eth0`). +```bash +sudo ifconfig +``` + +Then change your IP to a static one. +```bash +sudo ifconfig eth0 192.168.1.100 +``` + +Now you can connect to your router and reboot its DHCP server to use it again. +You can now remove your static IP and get a dynamic IP again. +```bash +sudo ifconfig eth0 0.0.0 && sudo dhclient eth0 +``` + +> Remember to turn off your router's DHCP if your server is running again. + +## Useful links + ++ Website: [pi-hole.net](https://pi-hole.net) ++ Official documentation: [docs.pi-hole.net](https://docs.pi-hole.net/) ++ Application software repository: [github.com - YunoHost-Apps/pihole](https://github.com/YunoHost-Apps/pihole_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/pihole/issues](https://github.com/YunoHost-Apps/pihole_ynh/issues) diff --git a/app_pihole_fr.md b/app_pihole_fr.md new file mode 100644 index 00000000..ceae0a34 --- /dev/null +++ b/app_pihole_fr.md @@ -0,0 +1,73 @@ +# logo de Pi-hole Pi-hole + +[![Installer Pi-hole avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=pihole)[![Niveau d'intégration](https://dash.yunohost.org/integration/pihole.svg)](https://dash.yunohost.org/appci/app/pihole) + +- [Utiliser Pi-Hole comme serveur DHCP](#utiliser-pi-hole-comme-serveur-dhcp) + - [Configurer Pi-Hole](#configurer-pi-hole) + - [Configurer mon routeur](#configurer-mon-routeur) + - [Restaurer le réseau](#restaurer-le-réseau) +- [Liens utiles](#liens-utiles) + +Pi-hole est un bloqueur de publicité au niveau du réseau qui agit comme un DNS menteur et éventuellement un serveur DHCP3, destiné à être utilisé sur un réseau privé. Il est conçu pour être installé sur des périphériques intégrés dotés de capacités réseau, tels que le Raspberry Pi, mais il peut être utilisé sur d'autres machines exécutant GNU/Linux ou dans des environnements virtualisés. + +## Utiliser Pi-Hole comme serveur DHCP + +> **Attention, vous devez savoir que toucher à votre DHCP pourrait casser votre réseau. +Dans le cas où votre serveur serait inaccessible, vous perdriez votre résolution dns et votre adresse IP. +Ainsi, vous perdriez toute connexion à internet et même la connexion à votre routeur.** + +> **Si vous rencontrez ce genre de problèmes, merci de lire la section "Comment restaurer mon réseau".** + +### Configurer Pi-hole + +Il y a 2 manière de configurer Pi-hole pour qu'il soit utilisé comme votre serveur DHCP. +- Soit vous pouvez choisir de l'utiliser lorsque vous installez l'application. +- Soit vous pouvez activer le serveur DHCP par la suite dans l'onglet "Settings", partie "Pi-hole DHCP Server". +Dans ce second cas, il peut être préférable de forcer l'ip du serveur à une adresse statique. + +### Configurer mon routeur + +Votre routeur ou celui de votre FAI dispose d'un serveur DHCP activé par défaut. +Si vous gardez ce DHCP, en même temps que celui de Pi-hole, vous allez avoir des conflits transparents entre eux. +Le premier serveur DHCP à répondre va distribuer ses propres ip et paramètres. +Donc vous devez éteindre le serveur DHCP de votre routeur et laisser Pi-hole gérer votre réseau. + +#### Pourquoi je devrais utiliser le DHCP de Pi-hole ? + +En utilisant le DHCP de Pi-hole, vous lui permettez de donner sa configuration dns à chacun de vos clients. De cette manière, chaque requête sera filtrée par Pi-hole. + +Un autre cas d'usage du DHCP de Pi-hole est le cas où vous rencontrez des problèmes de hairpinning (Vous ne pouvez pas vous connecter à votre serveur parce que son ip est votre ip publique, et votre routeur n'autorise pas cela). +Dans ce cas, utilisez le dns de Pi-hole va vous permettre de vous connecter à votre serveur par son adresse locale plutôt que son adresse publique. + +### Restaurer le réseau + +> Oups ! +Votre serveur Pi-hole est tombé, et vous n'avez plus de DHCP. +Ne paniquez pas, on va surmonter ça \o/ + +Utilisez votre terminal favori sur votre ordinateur de bureau. +Et tout d'abord, récupérer votre interface réseau (Le plus souvent `eth0`). +``` bash +sudo ifconfig +``` + +Ensuite, changer votre ip pour une ip statique. +``` bash +sudo ifconfig eth0 192.168.1.100 +``` + +Maintenant, vous pouvez vous connecter à votre routeur et rallumer son serveur DHCP pour l'utiliser à nouveau. +Vous pouvez maintenant retirer votre ip statique et réobtenir une ip dynamique. +``` bash +sudo ifconfig eth0 0.0.0.0 && sudo dhclient eth0 +``` + +> N'oubliez pas d'éteindre le DHCP de votre routeur si votre serveur fonctionne à nouveau. + +## Liens utiles + + + Site web : [pi-hole.net (en)](https://pi-hole.net) + + Documentation officielle : [docs.pi-hole.net (en)](https://docs.pi-hole.net/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/pihole](https://github.com/YunoHost-Apps/pihole_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/pihole/issues](https://github.com/YunoHost-Apps/pihole_ynh/issues) + \ No newline at end of file diff --git a/app_piwigo.md b/app_piwigo.md new file mode 100644 index 00000000..817d7375 --- /dev/null +++ b/app_piwigo.md @@ -0,0 +1,29 @@ +# Piwigo's logo Piwigo + +[![Install Piwigo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=piwigo) [![Integration level](https://dash.yunohost.org/integration/piwigo.svg)](https://dash.yunohost.org/appci/app/piwigo) + +### Index + +- [Useful links](#useful-links) + +[Piwigo](http://piwigo.org) is a photo gallery software for the Web, built by an active community of users and developers. +Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and opensource. + +![](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/ diff --git a/app_piwigo_fr.md b/app_piwigo_fr.md new file mode 100644 index 00000000..37e7104d --- /dev/null +++ b/app_piwigo_fr.md @@ -0,0 +1,29 @@ +# logo de Piwigo Piwigo + +[![Installer Piwigo avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=piwigo) [![Niveau d'intégration](https://dash.yunohost.org/integration/piwigo.svg)](https://dash.yunohost.org/appci/app/piwigo) + +### Index + +- [Liens utiles](#liens-utiles) + +[Piwigo](http://piwigo.org) est un logiciel de galerie photos 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. + +En plus des [fonctionnalités principales](https://fr.piwigo.org/fonctionnalites) 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) + +![](http://piwigo.org/screenshots/homepage/piwigo-batch-manager.png) + +## Liens utiles + ++ Site web : [Site Piwigo](https://piwigo.org) ++ Documentation officielle : [Documentation](https://piwigo.org/doc/doku.php) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/piwigo](https://github.com/YunoHost-Apps/piwigo_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/piwigo/issues](https://github.com/YunoHost-Apps/piwigo_ynh/issues) diff --git a/app_pleroma.md b/app_pleroma.md new file mode 100644 index 00000000..595e2038 --- /dev/null +++ b/app_pleroma.md @@ -0,0 +1 @@ +Unfortunately, this page only exists [in french here](app_pleroma_fr) for now. diff --git a/app_pleroma_fr.md b/app_pleroma_fr.md new file mode 100644 index 00000000..44a4cdb1 --- /dev/null +++ b/app_pleroma_fr.md @@ -0,0 +1,52 @@ +# logo de Pleroma Pleroma + + - [Découverte de l'interface de Pleroma](#d%C3%A9couverte-de-linterface-de-pleroma) + - [Logiciels Clients pour mobile et ordinateur](#applications-clients) + - [Liens utiles](#quelques-liens-utiles) + +Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole [Activy Pub](https://en.wikipedia.org/wiki/ActivityPub) qu'il utilise permet d'interagir avec le [fediverse](https://fediverse.party/en/fediverse) composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement. + +## Découverte de l'interface de Pleroma + +Pour celles et ceux qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées : + +### Accueil de l'interface + +Capture écran accueil de Pleroma + +1. Barre de menu + + Capture du bouton à gauche de la barre de menu Le bouton à gauche portant le nom de l'instance - dans la capture ci-dessus *Meta - Pleroma* - renvoie vers la page d'accueil de l'instance. Dans le cas où vous êtes connecté⋅e cela vous renverra vers la visualisation de votre *journal*, si ce n'est pas le cas vers *Le réseau connu*. + + Capture des boutons à droite de la barre de menu Si vous êtes connecté⋅e vous aurez trois boutons, si vous ne l'êtes pas il n'y en aura que deux. Dans l'ordre, de gauche à droite : + + Capture bouton chercher un⋅e utilisateur⋅trice Permet d'ajouter de nouveaux utilisateurs et nouvelles utilisatrices afin de les suivre et ainsi vous abonner à leurs publications. Il est possible de rechercher un·e utilisateur·trice avec seulement son pseudonyme (par exemple : *yunohost*) ou alors sous la forme @pseudonyme@instance.domaine (par exemple : *@yunohost@mastodon.social*) + + Capture bouton préférences Permet d'accéder aux paramétres d'affichages de votre session. + /!\ Si vous n'êtes pas connecté·e les modifications effectuées ne seront valables qu'un temps (jusqu'à ce que les cookies de fonctionnement soient effacés). + + Capture Déconnexion Permet de se déconnecter de l'instance. Si vous n'êtes pas sur votre ordinateur personnel pensez-y ! + +2. Espace de Publications / Fenêtre de connexion +Fenêtre de connexion à la place de la zone de publications Si vous êtes connecté·e cet espace vous permet de publier vos messages et d'y joindre un média (images, GIF, vidéos, etc). Vous êtes limité⋅e dans le nombre de caractères, avec Pleroma la limitation est définie par l'administrateur·trice de l'instance. Si vous avez des questions envoyez lui un message. + +3. Fenêtre de visualisations +C'est ici le centre ~~du monde~~ de Pleroma, vous pourrez y voir les différentes publications de vos contacts ou qui circulent sur l'instance ainsi que les re-toots et qui a publié. + +4. Le journal +Cette zone permet de voir les différentes publications des comptes que vous suivez mais aussi l'ensemble des publications visibles sur votre instance. Vous trouverez aussi les messages privés et les notifications où vous trouverez tous vos toots et les publications où vous avez été cité⋅e. + +5. Interface utilisateur·trice +Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agencements : un spécifique à Pleroma et un fork (une copie) de l'agencement de Mastodon, selon vos préférences d'usages et de visualisations ; à vous de faire votre choix. + +6. Notifications +On retrouve dans cette zone les messages où vous avez été cité⋅e, mais aussi les abonnements à votre compte. + +## Applications clients + +| Nom de l'applications | Plateforme | Multi-comptes | Autre réseaux supportés | Play Store | F-Droid | Apple Store | +|---|---|---|---|---|---|---| +| Tusky | Android | Oui | Mastodon | [https://play.google.com/id=com.keylesspalace.tusky](https://play.google.com/store/apps/details?id=com.keylesspalace.tusky) | [f-droid.org/com.keylesspalace.tusky](https://f-droid.org/fr/packages/com.keylesspalace.tusky/) | +| Fedilab | Android | Oui | Mastodon, Pleroma, Peertube, GNU Social, Friendica, Pixelfed | [play.google.com/app.fedilab.android](https://play.google.com/store/apps/details?id=app.fedilab.android&hl=fr) | [f-droid.org//fr.gouv.etalab.mastodon](https:/f-droid.org/fr/packages/fr.gouv.etalab.mastodon/) +| Twidere | Android | Oui | Twitter, Mastodon | [play.google.com/org.mariotaku.twidere](https://play.google.com/store/apps/details?id=org.mariotaku.twidere) | [https://f-droid.org/org.mariotaku.twidere](https://f-droid.org/fr/packages/org.mariotaku.twidere/) | +| Librem Social | Android | Non | ? | [play.google.com/one.librem.social](https://play.google.com/store/apps/details?id=one.librem.social&hl=fr) | [https://f-droid.org/one.librem.social](https://f-droid.org/fr/packages/one.librem.social) | | + +## Quelques liens utiles + ++ Site officiel : [pleroma.social (En anglais)](https://pleroma.social) ++ Trouver d'autres instances de Pleroma : [fediverse.network/pleroma](https://fediverse.network/pleroma) diff --git a/app_plume.md b/app_plume.md new file mode 100644 index 00000000..9e6f5db0 --- /dev/null +++ b/app_plume.md @@ -0,0 +1,21 @@ +# plume's logo Plume + +[![Install Plume with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=plume) [![Integration level](https://dash.yunohost.org/integration/plume.svg)](https://dash.yunohost.org/appci/app/plume) + +### Index + +- [Useful links](#useful-links) + +Plume is a decentralized and federated blog engine under development. + +* Decentralized: Each instance can follow one or more other Plume instances in order to allow its rice-users to view their videos. +* Federated: Via the ActivityPub protocol, Plume can interact with other software that are part of the Fediverse, such as Mastodon or PixelFed for example. + + +## Useful links + ++ Website : [joinplu.me](https://joinplu.me/) ++ Official documentation : [docs.joinplu.me](https://docs.joinplu.me/) ++ Demonstration : [Demo](https://joinplu.me/#instances) ++ Application software repository : [github.com - YunoHost-Apps/plume](https://github.com/YunoHost-Apps/plume_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/plume/issues](https://github.com/YunoHost-Apps/plume_ynh/issues) diff --git a/app_plume_fr.md b/app_plume_fr.md new file mode 100644 index 00000000..d343cc97 --- /dev/null +++ b/app_plume_fr.md @@ -0,0 +1,20 @@ +# logo de plume Plume + +[![Install Plume with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=plume) [![Integration level](https://dash.yunohost.org/integration/plume.svg)](https://dash.yunohost.org/appci/app/plume) + +### Index + +- [Liens utiles](#liens-utiles) + +Plume est un moteur de blog décentralisé et fédéré en cours de développement. + +* Décentralisé : Chaque instance peut suivre une ou plusieurs autres instances Plume afin de permettre à ses utilisateur·rices de visionner les vidéos de celles-ci. +* Fédéré : Via le protocole ActivityPub, Plume peut interagir avec d'autres logiciels qui font partie du Fediverse, comme Mastodon ou PixelFed par exemple. + +## Liens utiles + ++ Site web : [joinplu.me](https://joinplu.me/) ++ Documentation officielle : [docs.joinplu.me](https://docs.joinplu.me/) ++ Démonstration : [Démo](https://joinplu.me/#instances) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/plume](https://github.com/YunoHost-Apps/plume_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/plume/issues](https://github.com/YunoHost-Apps/plume_ynh/issues) diff --git a/app_pluxml.md b/app_pluxml.md new file mode 100644 index 00000000..ace7045a --- /dev/null +++ b/app_pluxml.md @@ -0,0 +1,23 @@ +# PluXml + +![PluXml_logo](images/PluXml_logo.png) + +PluXml is a blog/CMS storing data in XML and not in a SQL database. + +## Overview + +![PluXml_screenshot](images/PluXml_screenshot.jpg) + +## Plugins and themes + +Plugins and themes should respectively be installed in the following folders: `/var/www/pluxml/plugins`, `/var/www/pluxml/themes`. + +## Backup + +To restore your blog, you should keep a copy of the folder `/var/www/pluxml/data`. It is recommended to do this backup before any upgrade. + +## Link + +PluXml : https://www.pluxml.org/ +Documentation : https://wiki.pluxml.org/ +Forum : https://forum.pluxml.org/ \ No newline at end of file diff --git a/app_pluxml_fr.md b/app_pluxml_fr.md new file mode 100644 index 00000000..4cd94e10 --- /dev/null +++ b/app_pluxml_fr.md @@ -0,0 +1,23 @@ +# PluXml + +![PluXml_logo](images/PluXml_logo.png) + +PluXml est un moteur de blog/CMS stockant ces données en XML et ne nécessitant pas de base de données SQL. + +## Aperçu + +![PluXml_screenshot](images/PluXml_screenshot.jpg) + +## Plugins et thèmes + +Les plugins et thèmes doivent être installés manuellement respectivement dans les dossiers `/var/www/pluxml/plugins` et `/var/www/pluxml/themes`. + +## Sauvegarde + +Pour sauvegarder votre blog, il est nécessaire de réaliser une copie du dossier `/var/www/pluxml/data`. Cette procédure de sauvegarde est également recommandée avant toute mise à jour de l'application. + +## Liens + +PluXml : https://www.pluxml.org/ +Documentation : https://wiki.pluxml.org/ +Forum : https://forum.pluxml.org/ \ No newline at end of file diff --git a/app_privatebin.md b/app_privatebin.md new file mode 100644 index 00000000..b77764e4 --- /dev/null +++ b/app_privatebin.md @@ -0,0 +1,17 @@ +# PrivateBin's logo Privatebin + +[![Install PrivateBin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=privatebin) [![Integration level](https://dash.yunohost.org/integration/privatebin.svg)](https://dash.yunohost.org/appci/app/privatebin) + +### Index + +- [Useful links](#useful-links) + +PrivateBin is a web service for temporarily storing and sharing plain text in encrypted form without readable storage on the server. The encryption/decryption key is not stored on the server but in the transmitted URL. Thus you can share sensitive information (passwords, access codes, and even a discussion) in a confidential way by communicating to your interlocutors the specific address of your content. Moreover this content has a limited value in time and is destroyed after a customizable delay. + +## Useful links + ++ Website : [privatebin.info](https://privatebin.info/) ++ Official documentation : [github.com/PrivateBin/PrivateBin/wiki](https://github.com/PrivateBin/PrivateBin/wiki) ++ Demonstration : [Demo](https://privatebin.net/) ++ Application software repository : [github.com - YunoHost-Apps/privatebin](https://github.com/YunoHost-Apps/privatebin_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/privatebin/issues](https://github.com/YunoHost-Apps/privatebin_ynh/issues) diff --git a/app_privatebin_fr.md b/app_privatebin_fr.md new file mode 100644 index 00000000..6711103d --- /dev/null +++ b/app_privatebin_fr.md @@ -0,0 +1,17 @@ +# logo de privatebin PrivateBin + +[![Install PrivateBin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=privatebin) [![Integration level](https://dash.yunohost.org/integration/privatebin.svg)](https://dash.yunohost.org/appci/app/privatebin) + +### Index + +- [Liens utiles](#liens-utiles) + +PrivateBin est un service web permettant de stocker temporairement et de partager du texte simple de manière chiffrée, sans stockage lisible sur le serveur. La clef de chiffrement/déchiffrement n'est pas stockée sur le serveur mais dans l'URL transmise. Ainsi vous pouvez partager des informations sensibles (mots de passe, codes d'accès, et même une discussion) de manière confidentielle en communiquant à vos interlocuteurs l'adresse spécifique de votre contenu. De plus ce contenu a une valeur limitée dans le temps et est détruit passé un délai personnalisable. + +## Liens utiles + ++ Site web : [privatebin.info](https://privatebin.info/) ++ Documentation officielle : [github.com/PrivateBin/PrivateBin/wiki](https://github.com/PrivateBin/PrivateBin/wiki) ++ Démonstration : [Démo](https://privatebin.net/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/privatebin](https://github.com/YunoHost-Apps/privatebin_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/privatebin/issues](https://github.com/YunoHost-Apps/privatebin_ynh/issues) diff --git a/app_radicale.md b/app_radicale.md new file mode 100644 index 00000000..37221398 --- /dev/null +++ b/app_radicale.md @@ -0,0 +1,100 @@ +# Radicale + +Radical is a calendar and contact server CalDAV/CardDAV. It does not have a graphical administration interface. + +Radical is installed by default with the web client InfCloud that will view and edit your calendars and address books. + +To connect another client to radical, we must inform these addresses: + +### Complete CalDAV/CardDAV collection of a user +- URL: https://domain.tld/path/user/ +- Exemple : https://example.org/radicale/me/ + +### To connect a calendar in particular +- URL: https://domain.tld/path/user/calendar.ics/ +- Exemple: https://example.org/radicale/me/calendar.ics/ + +### To connect an address book in particular +- URL: https://domain.tld/path/user/AddressBook.vcf/ +- Exemple: https://example.org/radicale/me/AddressBook.vcf/ + +### Create a new schedule or a new address book +Create a new schedule or a new address book is very simple with radical, just go there! Radical create all new calendar or notebook to nonexistent addresses if you try to access it. + +So just log on (as before) to a calendar or a nonexistent address book to create it. +This can be done simply with a browser, to appear in a collection already connected to a client. + +### Go to a calendar or an address book of another user +Previous addresses also work to access resources not owned by the authenticated user. + +> Example: +> User1 can connect to the collection of user2 +> https://example.org/radicale/user2/ +> Simply to indicate the login and password of user1. +> It's sharing rules (see below) that will allow or not to user1 to see the contents of the collection of user2. +> By default, no sharing is allowed. + +--- + +### Configure the access rights and sharing of calendars and address books +By default, any user has the right to read and write on its own calendars and address books. +It is possible to refine these default rules and to allow sharing by allowing users to access their resources do not own. +The rules governing these rights should be included in the */etc/radicale/rights* + +Each rule is in this form: +```bash +# Comment before rule and explaining that (optional of course): +[Rule Name] +user: user concerned +collection: calendar, book or collection concerned. +permission: permission, r (read), w (write) or rw (read/write) +``` +*Rights* file contains several examples that can be exploited. +To validate changes to the */etc/radicale/rights* file, radical must be recharged via uWSGI service. +```bash +sudo service uwsgi restart +``` + +### Share resources +To share a calendar or address book, just write a rule permitting. Sharing can be done with another user. +```bash +user: ^user1$ +collection: ^user2/shared2.ics$ +permission: rw +``` +Or publicly for a remote user does not use the same server. +```bash +user: .* +collection: ^user2/shared2.ics$ +permission: r +``` +In both cases, the sharing works only using the full address of the calendar or collection. In other words, the shares do not appear in the collection of a user. +This limitation may be blocking for clients managing a single collection, as InfCloud. In this particular case, a solution overcomes this problem. + +#### Share resources directly in the collection of a user +> This solution is functional, but is an hack... + +To enable sharing to occur directly in the collection of a user, it must exploit the use of files in Radicale. +By simply creating a symbolic link to the resource sharing. +```bash +ln -sr user2/shared.ics user1/user2_shared.ics +``` +The shared resource becomes a resource from the collection of user1, while it physically remains in the collection of user2. +However, without recourse to the rules for each resource in the collection of user1, the general rule applies. user1 gets so read and write access by default on the shared resource because it is part of his collection. + +--- + +### Making Radical log more verbose +By default, the Radical log is set to INFO. This method savings the hard drive but does not debug Radicale in case of problems. +To pass Radicale in DEBUG mode, edit the */etc/radicale/logging* and change INFO to DEBUG in sections *[logger_root]* and *[handler_file]*. Then reload the uWSGI service. +Now, the log displays all requests that are made to Radicale and analysis of *rights* file. +However, do not stay on this mode because the log is filled very quickly. + +--- + +### Change config of InfCloud +The configuration of InfCloud is in the *infcloud/config.js* file +To load any changes in the *config.js* file (or other file of InfCloud) must reload the cache with the script provided. +```bash +sudo ./cache_update.sh +``` diff --git a/app_radicale_fr.md b/app_radicale_fr.md new file mode 100644 index 00000000..c93f2917 --- /dev/null +++ b/app_radicale_fr.md @@ -0,0 +1,100 @@ +# Radicale + +Radicale est un serveur de calendrier et de contact CalDAV/CardDAV. Il ne dispose pas d’interface graphique d’administration. + +Radicale est installé par défaut avec le client web InfCloud qui permettra de visualiser et de modifier vos calendriers et carnets d’adresses. + +Pour connecter un autre client au serveur radicale, il faut renseigner ces adresses : + +### Collection CalDAV/CardDAV complète d’un utilisateur +- URL : https://domain.tld/path/user/ +- Exemple : https://example.org/radicale/moi/ + +### Pour connecter un calendrier en particulier +- URL : https://domain.tld/path/user/calendar.ics/ +- Exemple : https://example.org/radicale/moi/calendar.ics/ + +### Pour connecter un carnet d’adresses en particulier +- URL : https://domain.tld/path/user/AddressBook.vcf/ +- Exemple : https://example.org/radicale/moi/AddressBook.vcf/ + +### Créer un nouveau calendrier ou un nouveau carnet d’adresses +Créer un nouveau calendrier ou un nouveau carnet d’adresses est très simple avec radicale, il suffit d’y accéder ! Radicale créera tout nouveau calendrier ou carnet d’adresses inexistant si vous tentez d’y accéder. + +Il suffit donc de se connecter (comme précédemment) à un calendrier ou un carnet d’adresses inexistant pour le créer. +Cela peut être fait simplement avec un navigateur, pour le voir apparaître dans une collection déjà connectée à un client. + +### Accéder à un calendrier ou un carnet d’adresses d’un autre utilisateur +Les adresses précédentes fonctionnent également pour accéder à des ressources n’appartenant pas à l’utilisateur authentifié. + +> Exemple : +> User1 peut se connecter à la collection de user2 +> https://example.org/radicale/user2/ +> Il lui suffira d’indiquer le login et mot de passe de user1. +> Ce sont les règles de partage (voir ci-dessous) qui permettront ou pas à user1 de voir le contenu de la collection de user2. +> Par défaut, aucun partage n’est autorisé. + +--- + +### Configurer les droits d’accès et les partages de calendriers et de carnets d’adresses +Par défaut, tout utilisateur a le droit de lecture et d’écriture sur ses propres calendriers et carnets d’adresses. +Il est toutefois possible d’affiner ces règles par défaut et d’autoriser des partages en autorisant des utilisateurs à accéder à des ressources ne leurs appartenant pas. +Les règles régissant ces droits doivent être inscrite dans le fichier */etc/radicale/rights* + +Chaque règle se présente sous cette forme: +```bash +## Commentaire précédant la règle et l’expliquant (optionnel évidemment) +[Nom de la règle] +user: utilisateur concerné +collection: calendrier, carnet ou collection concernée. +permission: permission, r (lecture), w (écriture) ou rw (lecture/écriture) +``` +Le fichier *rights* contient plusieurs exemples pouvant être exploités. +Pour valider les modifications apportées au fichier */etc/radicale/rights*, radicale doit être rechargé via le service uWSGI. +```bash +sudo service uwsgi restart +``` + +### Partager des ressources +Pour partager un calendrier ou un carnet d’adresses, il suffit d’écrire une règle le permettant. Le partage peut se faire avec un autre utilisateur. +```bash +user: ^user1$ +collection: ^user2/shared2.ics$ +permission: rw +``` +Ou publiquement pour un utilisateur distant n’utilisant pas le même serveur. +```bash +user: .* +collection: ^user2/shared2$ +permission: r +``` +Dans les deux cas, le partage ne fonctionnera qu’en utilisant l’adresse complète du calendrier ou de la collection. Autrement dit, les partages n’apparaissent pas dans la collection d’un utilisateur. +Cette limitation peut s’avérer bloquante pour des clients gérant une seule collection, tel que InfCloud. Pour ce cas particulier, une solution permet de contourner ce problème. + +#### Partager des ressources directement dans la collection d’un utilisateur +> Cette solution est fonctionnelle, mais reste du bidouillage... + +Pour permettre à un partage d’apparaître directement dans la collection d’un utilisateur, il faut exploiter l’usage des fichiers sous Radicale. +En créant simplement un lien symbolique de la ressource à partager. +```bash +ln -sr user2/shared.ics user1/user2_shared.ics +``` +La ressource partagée devient ainsi une ressource de la collection de user1, alors qu’elle reste physiquement dans la collection de user2. +En revanche, sans avoir recours à des règles pour chaque ressource de la collection de user1, la règle générale s’applique. user1 obtient donc le droit de lecture ET d’écriture par défaut sur la ressource partagée, car elle fait partie de sa collection. + +--- + +### Rendre le log de Radicale plus loquace +Par défaut, le log de Radicale est réglé sur INFO. Ce mode épargne le disque dur mais ne permet pas de débugger Radicale en cas de problème. +Pour passer Radicale en mode DEBUG, il faut éditer le fichier */etc/radicale/logging* et passer INFO à DEBUG dans les sections *[logger_root]* et *[handler_file]* puis recharger le service uWSGI. +Dès lors, le log affiche toutes les requêtes qui sont faites à Radicale ainsi que l’analyse du fichier *rights*. +Il est toutefois déconseillé de rester sur ce mode, car le log se remplie très rapidement. + +--- + +### Modifier la configuration de InfCloud +La configuration de InfCloud se trouve dans le fichier *infcloud/config.js* +Pour prendre en compte une modification dans le fichier *config.js* (ou tout autre fichier de InfCloud) il faut recharger le cache avec le script fourni. +```bash +sudo ./cache_update.sh +``` diff --git a/app_rainloop.md b/app_rainloop.md new file mode 100644 index 00000000..639318a3 --- /dev/null +++ b/app_rainloop.md @@ -0,0 +1,43 @@ +# Package Rainloop + +[![Install Rainloop with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=rainloop) [![Integration level](https://dash.yunohost.org/integration/rainloop.svg)](https://dash.yunohost.org/appci/app/rainloop) + +### Index + +- [Configuration](#Configuration) +- [Useful links](#useful-links) + +Rainloop is a lightweight webmail. + +## Configuration + +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 setting rainloop password` + +### CardDAV +Each user can add a remote cardDAV server from their own parameters interface. + +- If you use Baïkal, 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 + +### Domains +Users can use Rainloop to access mailboxes other than the one provided by YunoHost (e.g. gmail.com or live.com). The option is available through the "account -> add an account" button. +The administrator must authorize the connection to third party domains, via a white list in the administration interface. + +### PGP Keys +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. + +### Upgrade +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` + +## Useful links + ++ Website : [www.rainloop.net](https://www.rainloop.net/) ++ Official documentation : [www.rainloop.net/docs/configuration](https://www.rainloop.net/docs/configuration/) ++ Demonstration : [Demo](https://mail.rainloop.net/) ++ Application software repository : [github.com - YunoHost-Apps/rainloop](https://github.com/YunoHost-Apps/rainloop_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/rainloop/issues](https://github.com/YunoHost-Apps/rainloop_ynh/issues) diff --git a/app_rainloop_fr.md b/app_rainloop_fr.md new file mode 100644 index 00000000..c052fe7c --- /dev/null +++ b/app_rainloop_fr.md @@ -0,0 +1,42 @@ +# Package Rainloop + +[![Install Rainloop with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=rainloop) [![Integration level](https://dash.yunohost.org/integration/rainloop.svg)](https://dash.yunohost.org/appci/app/rainloop) + +### Index + +- [Configuration](#Configuration) +- [Liens utiles](#liens-utiles) + +Rainloop est un webmail simple et léger. + +## Configuration + +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 setting rainloop password` + +### Carnet d'adresses +Rainloop intègre par défaut un carnet d'adresse avec les utilisateurs du serveur YunoHost. Chaque utilisateur peut ajouter un carnet d'adresse distant CardDAV via leurs propres paramètres. +- Si vous utilisez Baïkal, 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 + +### Gestion des domaines +Les utilisateurs peuvent se servir de Rainloop pour accéder à d'autres boites mail que celle fournie par YunoHost (par exemple gmail.com ou laposte.net). L'option est disponible par le bouton "compte -> ajouter un compte". +L'administrateur doit pour cela autoriser la connexion à des domaines tiers, via une liste blanche dans l'interface administration. + +### Gestion des clés PGP +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 donc [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 à l'adresse **http://DOMAIN.TLD/rainloop/pgpback** pour stocker vos clés privées PGP sur le serveur ou les restaurer dans un nouveau navigateur. + +### Mise à jour +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` + +## Liens utiles + ++ Site web : [www.rainloop.net](https://www.rainloop.net/) ++ Documentation officielle : [www.rainloop.net/docs/configuration](https://www.rainloop.net/docs/configuration/) ++ Démonstration : [Démo](https://mail.rainloop.net/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/rainloop](https://github.com/YunoHost-Apps/rainloop_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/rainloop/issues](https://github.com/YunoHost-Apps/rainloop_ynh/issues) diff --git a/app_roundcube.md b/app_roundcube.md new file mode 100644 index 00000000..f06ff08b --- /dev/null +++ b/app_roundcube.md @@ -0,0 +1,32 @@ +# roundcube's logo Roundcube + +[![Install Roundcube with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=roundcube) [![Integration level](https://dash.yunohost.org/integration/roundcube.svg)](https://dash.yunohost.org/appci/app/roundcube) + +### Index + +- [Useful links](#useful-links) + +Roundcube is a web client for email messaging also called webmail. + +### Synchronize your contacts + +Roundcube offers you at the installation to synchronize your contacts with a CardDAV server, through a third party plugin. Using a CardDAV server like Baïkal or Nextcloud's "Contacts" application, both available in YunoHost, allows you to centralize and manage your contacts. + +Similarly to IMAP that allows you to synchronize your emails with your mail server, CardDAV allows you to access your contacts through multiple clients, such as Roundcube. Thanks to CardDAV, you will not have to import your contacts in each of your devices. + +Note that addressbooks defined in Baïkal or Nextcloud will be automatically added in Roundcube for each user if they are already installed. + +---- + +In case you've installed Nextcloud after, here is how to add your addressbooks: + +* Go to "Contacts" section of your Nextcloud application and click on the gear wheel icon located at the bottom left. Then, click on "CardDAV link" and copy the URL that appeared. +* Go to Roundcube's CardDAV section and type in "nextcloud" in "Label" field, paste the previously copied URL and type your username and password. Your contacts are now synchronized! + +## Useful links + ++ Website : [roundcube.net](https://roundcube.net/) ++ Official documentation : [github.com/roundcube/roundcubemail/wiki](https://github.com/roundcube/roundcubemail/wiki) ++ Demonstration : [Demo](https://demo.yunohost.org/webmail/) ++ Application software repository : [github.com - YunoHost-Apps/roundcube](https://github.com/YunoHost-Apps/roundcube_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/roundcube/issues](https://github.com/YunoHost-Apps/roundcube_ynh/issues) diff --git a/app_roundcube_fr.md b/app_roundcube_fr.md new file mode 100644 index 00000000..be4663a7 --- /dev/null +++ b/app_roundcube_fr.md @@ -0,0 +1,32 @@ +# logo de roundcube Roundcube + +[![Install Roundcube with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=roundcube) [![Integration level](https://dash.yunohost.org/integration/roundcube.svg)](https://dash.yunohost.org/appci/app/roundcube) + +### Index + +- [Liens utiles](#liens-utiles) + +Roundcube est un client web de courrier électronique libre ou aussi appelé un webmail. + +### Synchronisation des contacts + +Roundcube vous propose à l'installation, via un greffon tiers, de pouvoir synchroniser vos contacts avec un serveur CardDAV. Utiliser un serveur CardDAV comme Baïkal ou l’application « Contacts » de Nextcloud, tous deux disponibles pour YunoHost, a l’avantage de permettre une gestion centralisée de vos contacts. + +De la même façon que le protocole IMAP vous permet de synchroniser vos courriels avec votre serveur mail, CardDAV vous permet d’avoir accès à vos contacts depuis une multitude de clients, dont Roundcube. Avec CardDAV, nous n’aurez donc plus besoin d’importer vos contacts dans chaque client. + +Notez que si Baïkal ou Nextcloud sont déjà installés, les carnets d'adresses qui y sont définis seront automatiquement ajoutés pour chaque utilisateur dans Roundcube. + +---- + +Si vous avez installé Nextcloud après, voici comment ajouter vos carnets d'adresses : + +* Rendez-vous dans la section « Contacts » de votre espace Nextcloud et cliquez sur l’icône représentant une roue dentée en bas à gauche. Ensuite, cliquez sur l’icône « Lien CardDAV » et copiez l’URL qui s’affiche en dessous. +* Rendez-vous ensuite dans la section CardDAV des paramètres de Roundcube et entrez « nextcloud » dans le champ « Label », collez l’URL que vous venez de copier et enfin entrez votre nom d’utilisateur et votre mot de passe. Vos contacts sont désormais synchronisés ! + +## Liens utiles + ++ Site web : [roundcube.net](https://roundcube.net/) ++ Documentation officielle : [github.com/roundcube/roundcubemail/wiki](https://github.com/roundcube/roundcubemail/wiki) ++ Démonstration : [Démo](https://demo.yunohost.org/webmail/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/roundcube](https://github.com/YunoHost-Apps/roundcube_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/roundcube/issues](https://github.com/YunoHost-Apps/roundcube_ynh/issues) diff --git a/app_searx.md b/app_searx.md new file mode 100644 index 00000000..23c0e790 --- /dev/null +++ b/app_searx.md @@ -0,0 +1,18 @@ +# searx's logo Searx + +[![Install Searx with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=searx) [![Integration level](https://dash.yunohost.org/integration/searx.svg)](https://dash.yunohost.org/appci/app/searx) + +### Index + +- [Useful links](#useful-links) + +Searx is a free and decentralized meta-search engine. The queries made are not saved by Searx in order to protect the privacy of the user. As a metasearch engine, searx collects and displays results from dozens of search engines. The search engines used (or not) can be configured in the preferences. +As a decentralized software, searx is installed on different instances (different servers). In France, associations such as Framasoft, Aquilenet or La Quadrature du Net have installed it on their servers. + +## Useful links + ++ Website: [searx.me](https://searx.me/) ++ Official documentation: [asciimoo.github.io/searx](https://asciimoo.github.io/searx/) ++ Demonstration: [Demo](https://demo.yunohost.org/searx/) ++ Application software repository: [github.com - YunoHost-Apps/searx](https://github.com/YunoHost-Apps/searx_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/searx/issues](https://github.com/YunoHost-Apps/searx_ynh/issues) diff --git a/app_searx_fr.md b/app_searx_fr.md new file mode 100644 index 00000000..39f06f44 --- /dev/null +++ b/app_searx_fr.md @@ -0,0 +1,19 @@ +# logo de searx Searx + +[![Install Searx with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=searx) [![Integration level](https://dash.yunohost.org/integration/searx.svg)](https://dash.yunohost.org/appci/app/searx) + +### Index + +- [Liens utiles](#liens-utiles) + +Searx est un métamoteur de recherche libre et décentralisé. Les requêtes effectuées ne sont pas enregistrées par Searx afin de protéger la vie privée des utilisateur·rice·s. +En tant que métamoteur, searx collecte et affiche les résultats issus de plusieurs dizaines de moteurs de recherche. Les moteurs utilisés (ou non) sont paramétrables dans les préférences. +En tant que logiciel décentralisé, searx est installé sur différentes instances (différents serveurs). En France, des associations comme Framasoft, Aquilenet ou La Quadrature du Net l'ont installé sur leurs serveurs. + +## Liens utiles + ++ Site web : [searx.me](https://searx.me/) ++ Documentation officielle : [asciimoo.github.io/searx](https://asciimoo.github.io/searx/) ++ Démonstration : [Démo](https://demo.yunohost.org/searx/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/searx](https://github.com/YunoHost-Apps/searx_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/searx/issues](https://github.com/YunoHost-Apps/searx_ynh/issues) diff --git a/app_shaarli.md b/app_shaarli.md new file mode 100644 index 00000000..7f24e1a5 --- /dev/null +++ b/app_shaarli.md @@ -0,0 +1 @@ +(This page only exists in french for now) diff --git a/app_shaarli_fr.md b/app_shaarli_fr.md new file mode 100644 index 00000000..3982414c --- /dev/null +++ b/app_shaarli_fr.md @@ -0,0 +1,17 @@ +# Shaarli + +## Présentation + +Shaarli est un clone libre de feu del.icio.us : il s'agit d'une application légère permettant d'archiver et de partager des marque-pages, étiquetés à l'aide de tags. Chaque marque-page peut être "public" ou "privé", et peut recevoir une note descriptive. + +Le moteur de recherche intégré à l'application interroge les tags, le titre des pages archivées, ainsi que le contenu de l'éventuelle note associée. Il est ainsi très aisé de retrouver une marque-page, même plusieurs années après son enregistrement. + +L'enregistrement d'une page peut s'effectuer de plusieurs façons : grâce à un bookmarklet, depuis l'application elle-même, ou depuis une application Android. + +Shaarli est intéressant pour toutes celles et tous ceux qui souhaitent conserver la trace de pages Web et y accéder depuis partout, et ce sans surcharger les marque-pages (ou "favoris") de leur navigateur. + +## Liens utiles + +- [Page officielle](https://sebsauvage.net/wiki/doku.php?id=php:shaarli) de Shaarli +- [Application Shaarlier](https://f-droid.org/fr/packages/com.dimtion.shaarlier/) sur Android +- [Fil de discussion](https://forum.yunohost.org/t/shaarli-version-0-10-4/2200) concernant Shaarli sur le forum \ No newline at end of file diff --git a/app_shellinabox.md b/app_shellinabox.md new file mode 100644 index 00000000..38e8e75a --- /dev/null +++ b/app_shellinabox.md @@ -0,0 +1,16 @@ +# Package Shellinabox + +[![Install Shellinabox with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=shellinabox) [![Integration level](https://dash.yunohost.org/integration/shellinabox.svg)](https://dash.yunohost.org/appci/app/shellinabox) + +### Index + +- [Useful links](#useful-links) + +Shellinabox implements a web server that can export arbitrary command line tools to a web based terminal emulator. This emulator is accessible to any JavaScript and CSS enabled web browser and does not require any additional browser plugins. + +## Useful links + ++ Website: [github.com/shellinabox/shellinabox](https://github.com/shellinabox/shellinabox) ++ Official documentation: [github.com/shellinabox/shellinabox/wiki/shellinaboxd_man](https://github.com/shellinabox/shellinabox/wiki/shellinaboxd_man) ++ Application software repository: [github.com - YunoHost-Apps/shellinabox](https://github.com/YunoHost-Apps/shellinabox_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/shellinabox/issues](https://github.com/YunoHost-Apps/shellinabox_ynh/issues) diff --git a/app_shellinabox_fr.md b/app_shellinabox_fr.md new file mode 100644 index 00000000..6274f80e --- /dev/null +++ b/app_shellinabox_fr.md @@ -0,0 +1,16 @@ +# logo de shellinabox Shellinabox + +[![Install Shellinabox with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=shellinabox) [![Integration level](https://dash.yunohost.org/integration/shellinabox.svg)](https://dash.yunohost.org/appci/app/shellinabox) + +### Index + +- [Liens utiles](#liens-utiles) + +Shellinabox met en œuvre un serveur web qui peut saisir des lignes de commande arbitraires vers un émulateur de terminal. Cet émulateur est accessible à tout navigateur Web compatible JavaScript et CSS et ne nécessite pas de plugins supplémentaires à votre navigateur Internet. + +## Liens utiles + ++ Site web : [github.com/shellinabox/shellinabox](https://github.com/shellinabox/shellinabox) ++ Documentation officielle : [github.com/shellinabox/shellinabox/wiki/shellinaboxd_man](https://github.com/shellinabox/shellinabox/wiki/shellinaboxd_man) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/shellinabox](https://github.com/YunoHost-Apps/shellinabox_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/shellinabox/issues](https://github.com/YunoHost-Apps/shellinabox_ynh/issues) diff --git a/app_simple-torrent.md b/app_simple-torrent.md new file mode 100644 index 00000000..a320b6a7 --- /dev/null +++ b/app_simple-torrent.md @@ -0,0 +1,15 @@ +# simple-torrent's logo Simple Torrent + +[![Install Simple Torrent with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=simple-torrent) [![Integration level](https://dash.yunohost.org/integration/simple-torrent.svg)](https://dash.yunohost.org/appci/app/simple-torrent) + +### Index + +- [Useful links](#useful-links) + +Simple Torrent is a a self-hosted remote torrent client, written in Go (golang). Started torrents remotely, download sets of files on the local disk of the server, which are then retrievable or streamable via HTTP. + +## Useful links + ++ Official documentation: [wiki](https://github.com/boypt/simple-torrent/wiki) ++ Application software repository: [github.com - YunoHost-Apps/simple-torrent](https://github.com/YunoHost-Apps/simple-torrent_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/simple-torrent/issues](https://github.com/YunoHost-Apps/simple-torrent_ynh/issues) diff --git a/app_simple-torrent_fr.md b/app_simple-torrent_fr.md new file mode 100644 index 00000000..aa035d82 --- /dev/null +++ b/app_simple-torrent_fr.md @@ -0,0 +1,15 @@ +# logo de Simple Torrent Simple Torrent + +[![Install Simple Torrent with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=simple-torrent) [![Integration level](https://dash.yunohost.org/integration/simple-torrent.svg)](https://dash.yunohost.org/appci/app/simple-torrent) + +### Index + +- [Liens utiles](#liens-utiles) + +Simple Torrent est un client torrent distant auto-hébergé, écrit en Go (golang). Démarrez des torrents à distance, téléchargez des ensembles de fichiers sur le disque local du serveur, qui sont ensuite récupérables ou diffusables via HTTP. + +## Liens utiles + + + Documentation officielle : [wiki](https://github.com/boypt/simple-torrent/wiki) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/simple-torrent](https://github.com/YunoHost-Apps/simple-torrent_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/simple-torrent/issues](https://github.com/YunoHost-Apps/simple-torrent_ynh/issues) diff --git a/app_slingcode.md b/app_slingcode.md new file mode 100644 index 00000000..c1ff60fe --- /dev/null +++ b/app_slingcode.md @@ -0,0 +1,15 @@ +# Slingcode's logo Slingcode + +[![Install Slingcode with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=slingcode) [![Integration level](https://dash.yunohost.org/integration/slingcode.svg)](https://dash.yunohost.org/appci/app/slingcode) + +### Index + +- [Useful links](#useful-links) + +Slingcode is a code editor contained in a single HTML file. Therefore, it has no server component, so all of your data is stored in your browser's cache. However, it is still possible to make web apps, run them, export them, and even share them using peer-to-peer. + +## Useful links + ++ Website: [slingcode.net](https://slingcode.net/) ++ Application software repository: [github.com - YunoHost-Apps/slingcode](https://github.com/chr15m/slingcode) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/slingcode/issues](https://github.com/YunoHost-Apps/slingcode_ynh/issues) diff --git a/app_slingcode_fr.md b/app_slingcode_fr.md new file mode 100644 index 00000000..bab0933a --- /dev/null +++ b/app_slingcode_fr.md @@ -0,0 +1,15 @@ +# logo de Slingcode Slingcode + +[![Install Slingcode with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=slingcode) [![Integration level](https://dash.yunohost.org/integration/slingcode.svg)](https://dash.yunohost.org/appci/app/slingcode) + +### Index + +- [Liens utiles](#liens-utiles) + +Slingcode est un éditeur de code contenu dans un unique fichier HTML. Il n'a pas de composant serveur, ce qui signifie que toutes vos données sont stockées dans le cache de votre navigateur. Cependant, il est toujours possible de créer des applications Web, de les exécuter, de les exporter et même de les partager en peer-to-peer. + +## Liens utiles + ++ Site web : [slingcode.net (en)](https://slingcode.net/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/slingcode](https://github.com/chr15m/slingcode) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/slingcode/issues](https://github.com/YunoHost-Apps/slingcode_ynh/issues) diff --git a/app_sogo.md b/app_sogo.md new file mode 100644 index 00000000..34515d44 --- /dev/null +++ b/app_sogo.md @@ -0,0 +1,14 @@ +# SOGo Logo SOGo + +[![Install SOGo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=sogo) [![Integration level](https://dash.yunohost.org/integration/sogo.svg)](https://dash.yunohost.org/appci/app/sogo) + +### Index + +- [Useful links](#useful-links) + +SOGo is an opensource groupware solution which has Webmail, a global address book, calender and contacts which can be synced via CalDAV or CardDAV. + +## Useful links + ++ Application software repository: [sogo.nu](https://sogo.nu) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com/YunoHost-Apps/sogo_ynh](https://github.com/YunoHost-Apps/sogo_ynh) diff --git a/app_sogo_fr.md b/app_sogo_fr.md new file mode 100644 index 00000000..2dde8e13 --- /dev/null +++ b/app_sogo_fr.md @@ -0,0 +1,14 @@ +# SOGo Logo SOGo + +[![Installer SOGo avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=sogo) [![Integration level](https://dash.yunohost.org/integration/sogo.svg)](https://dash.yunohost.org/appci/app/sogo) + +### Index + +- [Liens utiles](#liens-utiles) + +SOGo est un service de webmail pour votre serveur email, c'est une alternative à [RoundCube](app_roundcube). Il permet aussi la gestion des agendas et contacts présents sur le serveur. + +## Quelques liens utiles + + + Site officiel de SOGo : [sogo.nu](https://sogo.nu) + + Dépot de l'application pour YunoHost : [github.com/YunoHost-Apps/sogo_ynh](https://github.com/YunoHost-Apps/sogo_ynh) diff --git a/app_spip.md b/app_spip.md new file mode 100644 index 00000000..093c4126 --- /dev/null +++ b/app_spip.md @@ -0,0 +1,33 @@ +# SPIP for YunoHost + +#### SPIP is what? + +SPIP is an Internet publishing system that focuses on collective functioning, multilingualism and ease of use. It is free software, distributed under the GNU/GPL license. It can therefore be used for any website, whether associative or institutional, personal or commercial. + +Source:[spip.net](https://www.spip.net/fr_rubrique91.html_rubrique91.html) + +#### Application functionality for YunoHost + +* Installation of the base without going through the installation system +* Multilingual support +* LDAP support + +##### Installation + +```bash +$ sudo yunohost app install https://github.com/YunoHost-Apps/spip_ynh.git_ynh.git +``` + +##### Update + +```bash +sudo yunohost app upgrade --verbose spip -u https://github.com/YunoHost-Apps/spip_ynh.git_ynh.git +``` + +##### Use + +Access the administration of the site by entering the following address in your browser. + +https://www.domain.tld/spip/ecrire + +Make a "forgotten password" request to change your password, you will receive an email telling you how to change your password. diff --git a/app_spip_fr.md b/app_spip_fr.md new file mode 100644 index 00000000..dd616db2 --- /dev/null +++ b/app_spip_fr.md @@ -0,0 +1,33 @@ +# SPIP for YunoHost + +### SPIP c'est quoi ? + +SPIP est un système de publication pour l’Internet qui s’attache particulièrement au fonctionnement collectif, au multilinguisme et à la facilité d’emploi. C’est un logiciel libre, distribué sous la licence GNU/GPL. Il peut ainsi être utilisé pour tout site Internet, qu’il soit associatif ou institutionnel, personnel ou marchand. + +Source : [spip.net](https://www.spip.net/fr_rubrique91.html) + +### Fonctionnalité de l'application pour YunoHost + +* Installation de la base sans passer par le système d'installation +* Support multilingue +* Support LDAP + +#### Installation + +```bash +$ sudo yunohost app install https://github.com/YunoHost-Apps/spip_ynh.git +``` + +#### Mise à jour + +```bash +$ sudo yunohost app upgrade --verbose spip -u https://github.com/YunoHost-Apps/spip_ynh.git +``` + +#### Utilisation + +Accéder à l'administration du site en écrivant l'adresse suivante dans votre navigateur. + +https://www.domain.tld/spip/ecrire + +Faire une demande de "mot de passe oublié" pour changer votre mot de passe, vous recevez un email vous indiquant comment procéder au changement de mot de passe. diff --git a/app_strut.md b/app_strut.md new file mode 100644 index 00000000..1555b425 --- /dev/null +++ b/app_strut.md @@ -0,0 +1,17 @@ +# strut's logo Strut + +[![Install Strut with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=strut) [![Integration level](https://dash.yunohost.org/integration/strut.svg)](https://dash.yunohost.org/appci/app/strut) + +### Index + +- [Useful links](#useful-links) + +Strut is an online slideshow creation software. It allows you to create simple slides by including text, images, shapes, websites or videos, as well as the layout of the slides. It uses the Impress.js library and +allows you to save your project locally or export it as a ZIP file containing the source files and HTML. + +## Useful links + ++ Website: [strut.io](http://strut.io) ++ Demonstration: [Demo](http://strut.io/dist/) ++ Application software repository: [github.com - YunoHost-Apps/strut](https://github.com/YunoHost-Apps/strut_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/strut/issues](https://github.com/YunoHost-Apps/strut_ynh/issues) diff --git a/app_strut_fr.md b/app_strut_fr.md new file mode 100644 index 00000000..6bed8a57 --- /dev/null +++ b/app_strut_fr.md @@ -0,0 +1,16 @@ +# logo de strut Strut + +[![Install Strut with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=strut) [![Integration level](https://dash.yunohost.org/integration/strut.svg)](https://dash.yunohost.org/appci/app/strut) + +### Index + +- [Liens utiles](#liens-utiles) + +Strut est un logiciel de création en ligne de diaporamas. Il permet de créer des diapositives simples en incluant textes, images, formes, sites web ou vidéos, ainsi que la disposition des diapos. Il utilise la librairie Impress.js et vous permet de sauvegarder votre projet en local ou de l'exporter en ZIP contenant les fichiers sources et le HTML. + +## Liens utiles + ++ Site web : [strut.io](http://strut.io) ++ Démonstration: [Démo](http://strut.io/dist/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/strut](https://github.com/YunoHost-Apps/strut_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/strut/issues](https://github.com/YunoHost-Apps/strut_ynh/issues) diff --git a/app_transmission.md b/app_transmission.md new file mode 100644 index 00000000..11dfe22e --- /dev/null +++ b/app_transmission.md @@ -0,0 +1,39 @@ +# Transmission + +### What is Transmission? + +Transmission is a share software based on BitTorrent protocol. +* [Transmission web site](http://transmissionbt.com/) + +### How to download completed files? + +If Transmission is installed on `/torrent/`, you could download your completed files to the following address: https://your-domain-name.org/torrent/downloads/ + +### Sending files towards server for seeding + +In YunoHost, completed files are saved in: `/home/yunohost.transmission/completed` + +#### With SFTP + +With your [file manager](https://en.wikipedia.org/wiki/File_manager) (under GNU/Linux) do `CTRL + L` then enter: + +```bash +sftp://@/home/yunohost.transmission/completed +``` +user = admin or root + +#### With SCP (complex) +To transfer file, type in the following command: + +```bash +scp (-r) /your/file/ root@your-domain.org:/home/yunohost.transmission/completed +``` + +##### How to download a complete folder? +Once connected to your server, using [SSH](/ssh), move to the download folder and ZIP it: +```bash +cd /home/yunohost.transmission/completed +zip -r your_archive.zip [dossier] +``` + +More informations about file transfer using *scp*: http://doc.ubuntu-fr.org/ssh#transfert_-_copie_de_fichiers (French, need English documentation) diff --git a/app_transmission_fr.md b/app_transmission_fr.md new file mode 100644 index 00000000..64317142 --- /dev/null +++ b/app_transmission_fr.md @@ -0,0 +1,42 @@ +# Transmission + +### C’est quoi Transmission ? +Transmission est un logiciel de téléchargement et de partage de fichiers basé sur le protocole BitTorrent. +* [Site de transmission](http://transmissionbt.com/) + +### Comment télécharger des fichiers complétés ? +Il est possible de télécharger les fichiers complétés en cliquant sur le bouton « Download ». + +Si vous avez installé Transmission sur `/torrent/`, vous pourrez télécharger vos fichiers complétés à l’adresse suivante : https://votre-domaine.org/torrent/downloads/ + +### Envoi de fichier vers le serveur pour seeder +Dans YunoHost, les fichiers complétés sont enregistrés dans : `/home/yunohost.transmission/completed` + +#### Avec SFTP (simple) +À partir de votre [gestionnaire de fichiers](https://fr.wikipedia.org/wiki/Gestionnaire_de_fichier) (sous GNU/Linux) faites `CTRL + L` puis entrez : +```bash +sftp://@/home/yunohost.transmission/completed +``` +utilisateur = admin ou root + +#### Avec SCP (avancé) +Pour transférer le fichier, entrez la commande suivante : + +```bash +scp -r /votre/fichier/ admin@votre-domaine.org:/home/yunohost.transmission/completed +``` + +##### Comment télécharger un répertoire entier ? +Une fois connecté en [SSH](/ssh), placez-vous dans le répertoire de téléchargement et zippez le répertoire : +```bash +cd /home/yunohost.transmission/completed +zip -r votre_archive.zip [dossier] +``` + +Pour plus de détails sur le transfert de fichier avec *scp* voir ici : http://doc.ubuntu-fr.org/ssh#transfert_-_copie_de_fichiers + +#### Problèmes de droits +Si vous rencontrez des problèmes de droits `Permission denied` après l’ajout de fichiers à seeder, changez l’utilisateur qui possède les droits sur ces fichiers : +```bash +chown -R debian-transmission: /home/yunohost.transmission/completed/* +``` \ No newline at end of file diff --git a/app_ttrss.md b/app_ttrss.md new file mode 100644 index 00000000..faf07ad4 --- /dev/null +++ b/app_ttrss.md @@ -0,0 +1,29 @@ +# logo de Tiny Tiny RSS Tiny Tiny RSS + +[![Install Tiny Tiny RSS with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=ttrss) [![Integration level](https://dash.yunohost.org/integration/ttrss.svg)](https://dash.yunohost.org/appci/app/ttrss) + +### Index + +- [Liens utiles](#liens-utiles) + +Tiny Tiny RSS is a news feed reader using RSS and Atom protocols. + +### Exporting/importing feeds +Tiny Tiny RSS allows you to save your feeds in opml format. +In order to do so, go to Actions -> Configuration -> feed tab -> OPML section -> Export/Import OPML. + +### Android Client + +You can read your feeds on Android using ttrss-reader application: **[ttrss-reader](https://f-droid.org/packages/org.ttrssreader/)** + +To use it, you need to go to Actions -> Configuration, in Tiny Tiny RSS web interface and select "Activate API". +Then, in your android ttrss-reader, fill the Tiny Tiny RSS server adress: https://yourdomain.org/ttrss, username, password (no need to use HTTP authentification). + +**Note**: you may need to uninstall and reinstall the Tiny Tiny RSS application through the YunoHost admin panel in order to be able to connect. + +## Useful links + + + Website: [git.tt-rss.org/git/tt-rss/wiki](https://git.tt-rss.org/git/tt-rss/wiki) + + Official documentation: (login as `demo`, `demo`): [srv.tt-rss.org/tt-rss/](https://srv.tt-rss.org/tt-rss/) + + Application software repository: [github.com - YunoHost-Apps/ttrss](https://github.com/YunoHost-Apps/ttrss_ynh) + + Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/ttrss/issues](https://github.com/YunoHost-Apps/ttrss_ynh/issues) diff --git a/app_ttrss_fr.md b/app_ttrss_fr.md new file mode 100644 index 00000000..e7240517 --- /dev/null +++ b/app_ttrss_fr.md @@ -0,0 +1,31 @@ +# logo de Tiny Tiny RSS Tiny Tiny RSS + +[![Installer Tiny Tiny RSS avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=ttrss) [![Integration level](https://dash.yunohost.org/integration/ttrss.svg)](https://dash.yunohost.org/appci/app/ttrss) + +### Index + +- [Liens utiles](#liens-utiles) + +Tiny Tiny RSS est un lecteur de flux d’actualité utilisant les protocoles RSS et Atom. + +### Exportation/importation des flux + +Il est possible de faire une sauvegarde de ces flux d’actualité en format opml. + +Pour cela, il faut aller dans Actions -> Configuration -> onglet flux -> chapitre OPML -> Exporter/Importer en OPML. + +### Client Android + +Il est possible d’utiliser le client Android ttrss-reader pour consulter ces flux : **[ttrss-reader](https://f-droid.org/packages/org.ttrssreader/)** + +Sur l’interface web, dans Actions -> Configuration, cochez « Activer l’accès par API » +puis dans ttrss-reader sur Android, l’adresse du serveur Tiny Tiny RSS : https://votredomaine.org/ttrss, nom d’utilisateur, mot de passe. (pas besoin d’utiliser l’authentification HTTP) + +**Note** : vous pouvez avoir besoin de désinstaller, puis réinstaller entièrement l'application Tiny Tiny RSS via l’administration de YunoHost pour que la connexion puisse se faire. + +## Liens utiles + + + Site web : [git.tt-rss.org/git/tt-rss/wiki](https://git.tt-rss.org/git/tt-rss/wiki) + + Site de démonstration (login : `demo`, `demo`): [srv.tt-rss.org/tt-rss/](https://srv.tt-rss.org/tt-rss/) + + Dépôt logiciel de Tiny Tiny RSS : [github.com - YunoHost-Apps/ttrss](https://github.com/YunoHost-Apps/ttrss_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/ttrss/issues](https://github.com/YunoHost-Apps/ttrss_ynh/issues) diff --git a/app_unattended_upgrades.md b/app_unattended_upgrades.md new file mode 100644 index 00000000..b4776c0d --- /dev/null +++ b/app_unattended_upgrades.md @@ -0,0 +1,16 @@ +# Package Unattended_upgrades + +[![Install unattended_upgrades with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=unattended_upgrades) [![Integration level](https://dash.yunohost.org/integration/unattended_upgrades.svg)](https://dash.yunohost.org/appci/app/unattended_upgrades) + +### Index + +- [Useful links](#useful-links) + +Unattended-upgrades can download and install security upgrades automatically and unattended, taking care to only install packages from the configured APT source, and checking for dpkg prompts about configuration file changes. +Apticron is a simple script which sends emails about pending package updates such as security updates, properly handling packages on hold both by dselect and aptitude. + +## Useful links + ++ Official documentation: [wiki.debian.org/UnattendedUpgrades](https://wiki.debian.org/UnattendedUpgrades) ++ Application software repository: [github.com - YunoHost-Apps/unattended_upgrades](https://github.com/YunoHost-Apps/unattended_upgrades_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/unattended_upgrades/issues](https://github.com/YunoHost-Apps/unattended_upgrades_ynh/issues) diff --git a/app_unattended_upgrades_fr.md b/app_unattended_upgrades_fr.md new file mode 100644 index 00000000..cda78510 --- /dev/null +++ b/app_unattended_upgrades_fr.md @@ -0,0 +1,16 @@ +# logo de unattended_upgrades Unattended_upgrades + +[![Install unattended_upgrades with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=unattended_upgrades) [![Integration level](https://dash.yunohost.org/integration/unattended_upgrades.svg)](https://dash.yunohost.org/appci/app/unattended_upgrades) + +### Index + +- [Liens utiles](#liens-utiles) + +Unattended_upgrades est un outil qui permet de télécharger et installer les mises à jour de sécurité automatiquement et sans surveillance, en prenant soin de n'installer que les paquets provenant de la source APT configurée, et en vérifiant les invites dpkg concernant les modifications du fichier de configuration. +Apticron est un simple script qui envoie des courriels sur les mises à jour de paquets en attente comme les mises à jour de sécurité, en gérant correctement les paquets en attente. + +## Liens utiles + ++ Documentation officielle : [wiki.debian.org/UnattendedUpgrades](https://wiki.debian.org/UnattendedUpgrades) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/unattended_upgrades](https://github.com/YunoHost-Apps/unattended_upgrades_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/unattended_upgrades/issues](https://github.com/YunoHost-Apps/unattended_upgrades_ynh/issues) diff --git a/app_update.md b/app_update.md new file mode 100644 index 00000000..ac1361e9 --- /dev/null +++ b/app_update.md @@ -0,0 +1,38 @@ +# Upgrade your applications + +Once you installed applications, you may need to upgrade them, sooner or later. + +**Caution:** please be advised to backup your databases (using phpMyAdmin application for example) and files before any upgrade. + +### Upgrade using the admin panel +Go to Tools > Update system + +Once the applications packages list is retrieved, you will be able to update official applications that have a pending upgrade. + +### Upgrade using command line +First, connect to your server through SSH and type in the following command (WordPress update): +```bash +yunohost app upgrade wordpress +``` +**Note:** in case you have multiple instances of the same type (ex: 2 wordpress) installed, you will need to specify the instance name (ex: wordpress or wordpress__2). + +#### Upgrade an unofficial application +Specify the Git repository containing the upgrade. + +For intance, to upgrade LimeSurvey: +```bash +yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh +``` + +**Note:** be cautious when installing unofficial applications and upgrades. Be sure that theses updates are stables and are not a step in the development process. There may be a good reason if an application is not listed in the official repository. + +**Caution:** be sure to check the content of any update; installing or upgrading an unofficial application allows it to run scripts with the highest privileges. + +#### Command line options + +When upgrading apps from the command line, you can specify specific options to change the behaviour of the upgrade script. +To set those options, set the corresponding variable before the upgrade command: `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress` + +Available options are: +- `NO_BACKUP_UPGRADE`: Do not perform the backup before the upgrade. Which means the upgrade will be operated without a security backup. +- `YNH_FORCE_UPGRADE`: Force the upgrade of the app and the package, even if the app is already up to date. diff --git a/app_update_fr.md b/app_update_fr.md new file mode 100644 index 00000000..05093042 --- /dev/null +++ b/app_update_fr.md @@ -0,0 +1,39 @@ +#Mettre à jour ses applications + +Une fois que vous avez installé des applications, il est nécessaire de les mettre à jour. Plusieurs méthodes existent et sont détaillées ci-dessous. + +** Attention : ** il est recommandé de faire une sauvegarde de la base de données (par exemple via l’application [phpMyAdmin](https://github.com/YunoHost-apps/phpmyadmin_ynh) ([installer](https://install-app.yunohost.org/?app=phpmyadmin))) ainsi que des fichiers avant une opération de mise à jour. + +### Mise à jour par l’interface Web +Pour cela, il faut aller dans l’onglet "Mettre à jour le système". + +Une fois la liste des paquets et des applications rafraîchie, il sera proposé de mettre à jour les applications et paquets qui peuvent l’être. + + +### Mise à jour en ligne de commande +Il faut d’abord se connecter sur le serveur en SSH, puis entrer la commande suivante (dans le cas d’une mise à jour WordPress) : +```bash +yunohost app upgrade wordpress +``` +**Note :** dans le cas où plusieurs applications du même type (ex : deux WordPress) sont installées sur le serveur, il est nécessaire de spécifier le nom d’instance (ex : wordpress ou wordpress__2). + +#### Mise à jour d’une application non officielle +Il faut pour cela indiquer le dépôt Git qui contient la mise à jour. + +Par exemple, pour mettre à jour LimeSurvey, entrer : +```bash +yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh +``` + +**Note :** faites attention aux applications/mises à jour non officielles que vous installez. Assurez-vous que ces mises à jour sont stables et ne constituent pas une étape de développement. Si une application ou une mise à jour n’est pas intégrée au dépôt officiel, il y a sûrement une raison. + +**Attention :** assurez-vous du contenu de cette mise à jour ; l’installation ou la mise à jour d’une application non officielle permet à cette dernière d’exécuter des scripts avec les privilèges les plus élevés. Si le script est malicieux, il pourrait nuire à votre vie privée en communiquant à des tiers toute donnée présente sur le serveur, ou bien les détruire irrémédiablement. + +##### Options de ligne de commande + +Lorsque vous mettez à jour des applications à partir de la ligne de commande, vous pouvez spécifier des options spécifiques pour modifier le comportement du script d'upgrade. +Pour définir ces options, définissez la variable correspondante avant la commande d'upgrade : `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress` + +Les options disponibles sont: +- `NO_BACKUP_UPGRADE`: Ne pas effectuer le backup avant la mise à jour. Ce qui veut dire que la mise à jour se fera sans sauvegarde de sécurité. +- `YNH_FORCE_UPGRADE`: Force la mise à jour de l'application et du package, même si l'application est déjà à jour. diff --git a/app_wallabag2.md b/app_wallabag2.md new file mode 100644 index 00000000..1b16655b --- /dev/null +++ b/app_wallabag2.md @@ -0,0 +1,33 @@ +# wallabag2's logo Wallabag2 + +[![Install Wallabag2 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wallabag2) [![Integration level](https://dash.yunohost.org/integration/wallabag2.svg)](https://dash.yunohost.org/appci/app/wallabag2) + +### Index + +- [Useful links](#useful-links) + +Wallabag 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. + +### 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 ?) + +## Useful links + ++ Website : [www.wallabag.org](https://www.wallabag.org/) ++ Official documentation : [doc.wallabag.org](https://doc.wallabag.org/) ++ Demonstration : [Demo](https://vimeo.com/video/167435064) ++ Application software repository : [github.com - YunoHost-Apps/wallabag2](https://github.com/YunoHost-Apps/wallabag2_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/wallabag2/issues](https://github.com/YunoHost-Apps/wallabag2_ynh/issues) + +---- + +### Upgrade from v1.x + +No automatic upgrade process is available. You need a manual (but simple) migration from Wallabag v1. +Please take a look at the [official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html). diff --git a/app_wallabag2_fr.md b/app_wallabag2_fr.md new file mode 100644 index 00000000..a169ac02 --- /dev/null +++ b/app_wallabag2_fr.md @@ -0,0 +1,32 @@ +# logo de wallabag2 Wallabag2 + +[![Install Wallabag2 with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wallabag2) [![Integration level](https://dash.yunohost.org/integration/wallabag2.svg)](https://dash.yunohost.org/appci/app/wallabag2) + +### Index + +- [Liens utiles](#liens-utiles) + +Wallabag est une application de lecture différée : elle permet simplement d’archiver 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). + +### 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 utiles + ++ Site web : [www.wallabag.org](https://www.wallabag.org/) ++ Documentation officielle : [doc.wallabag.org](https://doc.wallabag.org/) ++ Démonstration : [Démo](https://vimeo.com/video/167435064) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/wallabag2](https://github.com/YunoHost-Apps/wallabag2_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/wallabag2/issues](https://github.com/YunoHost-Apps/wallabag2_ynh/issues) + +---- + +### Mettre à niveau depuis la v1.x + +La mise à niveau depuis le paquet YunoHost de Wallabag v1 demande une opération manuelle, c'est pourquoi un nouveau paquet est fourni. Pour le processus de migration, merci de vous référer à [la documentation officielle +de Wallabag](https://doc.wallabag.org/fr/user/import/wallabagv1.html). diff --git a/app_weblate.md b/app_weblate.md new file mode 100644 index 00000000..ebdcc16d --- /dev/null +++ b/app_weblate.md @@ -0,0 +1,22 @@ +# weblate's logo Weblate + +[![Install Weblate with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=weblate) [![Integration level](https://dash.yunohost.org/integration/weblate.svg)](https://dash.yunohost.org/appci/app/weblate) + +### Index + +- [Useful links](#useful-links) + +Weblate is a web-based translation tool strongly linked to version control systems. Through a clear and simple user interface, Weblate allows the propagation of translations between sub-projects, can check the +quality of the translations and is automatically linked to the source files. +Weblate works very well with a GitLab, GitHub, Bitbucket server. It is possible to import already existing translations of a project, allowing everyone to contribute to the translation of a project via its web interface, +and then push the translations to the repository. +There is a system for reviewing, suggesting, commenting on a translation. +You can install a third party authentication, for example you can log in with your GitHub account. Our account then allows us to keep a history. + +## Useful links + ++ Website: [weblate.org](https://weblate.org/) ++ Official documentation: [docs.weblate.org](https://docs.weblate.org/) ++ Demonstration: [Demo](https://docs.weblate.org/) ++ Application software repository: [github.com - YunoHost-Apps/weblate](https://github.com/YunoHost-Apps/weblate_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/weblate/issues](https://github.com/YunoHost-Apps/weblate_ynh/issues) diff --git a/app_weblate_fr.md b/app_weblate_fr.md new file mode 100644 index 00000000..c346749e --- /dev/null +++ b/app_weblate_fr.md @@ -0,0 +1,20 @@ +# logo de weblate Weblate + +[![Install Weblate with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=weblate) [![Integration level](https://dash.yunohost.org/integration/weblate.svg)](https://dash.yunohost.org/appci/app/weblate) + +### Index + +- [Liens utiles](#liens-utiles) + +Weblate est un outil de traduction en mode web fortement lié aux systèmes de contrôle de versions. A travers une interface utilisateur claire et simple, Weblate permet la propagation de traductions entre sous-projets, peut vérifier la qualité des traductions et est automatiquement lié aux fichiers sources. +Weblate fonctionne très bien avec un serveur GitLab, GitHub, Bitbucket. Il est possible d'importer les traductions déjà existantes d'un projet, de permettre à tout le monde de contribuer à la traduction d'un projet via son interface Web, et ensuite pousser les traductions sur le repository. +Il y a un système de revue, de suggestions, de commentaires sur une traduction. +On peut installer une authentification tiers, par exemple on peut se connecter avec son compte GitHub. Notre compte permet ensuite de garder un historique. + +## Liens utiles + ++ Site web : [weblate.org](https://weblate.org/) ++ Documentation officielle : [docs.weblate.org](https://docs.weblate.org/) ++ Démonstration: [Démo](https://docs.weblate.org/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/weblate](https://github.com/YunoHost-Apps/weblate_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/weblate/issues](https://github.com/YunoHost-Apps/weblate_ynh/issues) diff --git a/app_webtrees.md b/app_webtrees.md new file mode 100644 index 00000000..6e95e85d --- /dev/null +++ b/app_webtrees.md @@ -0,0 +1,8 @@ +# Webtrees + +webtrees is the web's leading online collaborative genealogy application. + + * It works from standard GEDCOM files, and is therefore compatible with every major desktop application. + * It aims to to be efficient and effective by using the right combination of third-party tools, design techniques and open standards. + +webtrees allows you to view and edit your genealogy on your website. It has full editing capabilities, full privacy functions, and supports imedia such as photos and document images. As an online program, it fosters extended family participation and good ancestral recording habits, as it simplifies the process of collaborating with others working on your family lines. Your latest information is always on your web site and available for others to see, defined by viewing rules you set. \ No newline at end of file diff --git a/app_webtrees_fr.md b/app_webtrees_fr.md new file mode 100644 index 00000000..0f206728 --- /dev/null +++ b/app_webtrees_fr.md @@ -0,0 +1,7 @@ +# Webtrees + +webtrees est le chef de file sur le Web des logiciels de généalogie conversationnels en ligne. C'est un logiciel Open Source et il coûte zéro $ - oui, totalement GRATUIT ! + +Vous n'avez besoin que d'un serveur web avec PHP et MySQL. + +Il exploite les fichiers de généalogie au format GEDCOM standard, par conséquent, il est compatible avec toutes les applications de bureau majeures; il vise à être efficient et efficace en utilisant la bonne combinaison d'outils tiers, des techniques de conception et des normes d'ouverture standards. \ No newline at end of file diff --git a/app_wekan.md b/app_wekan.md new file mode 100644 index 00000000..f408f1c9 --- /dev/null +++ b/app_wekan.md @@ -0,0 +1,17 @@ +# wekan's logo Wekan + +[![Install Wekan with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wekan) [![Integration level](https://dash.yunohost.org/integration/wekan.svg)](https://dash.yunohost.org/appci/app/wekan) + +### Index + +- [Useful links](#useful-links) + +Wekan is an online collaborative task manager. It facilitates the management of projects through the development of todo lists. +Wekan offers a wide range of features, making it a very complete service adapted to complex projects. If you are looking for a simpler kanban tool, you can use [Kanboard](/app_kanboard) + +## Useful links + ++ Website: [wekan.github.io](https://wekan.github.io/) ++ Official documentation: [github.com/wekan/wekan/wiki](https://github.com/wekan/wekan/wiki) ++ Application software repository: [github.com - YunoHost-Apps/wekan](https://github.com/YunoHost-Apps/wekan_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/wekan/issues](https://github.com/YunoHost-Apps/wekan_ynh/issues) diff --git a/app_wekan_fr.md b/app_wekan_fr.md new file mode 100644 index 00000000..25b4b7c1 --- /dev/null +++ b/app_wekan_fr.md @@ -0,0 +1,17 @@ +# logo de wekan Wekan + +[![Install Wekan with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wekan) [![Integration level](https://dash.yunohost.org/integration/wekan.svg)](https://dash.yunohost.org/appci/app/wekan) + +### Index + +- [Liens utiles](#liens-utiles) + +Wekan est un gestionnaire de tâches collaboratif en ligne. Il facilite la gestion de projets par l'élaboration de todo listes. +Wekan propose une grande diversité de fonctionnalités, ce qui en fait un service très complet et adapté à des projets complexes. Si vous cherchez un outil kanban plus simple, vous pouvez utiliser [Kanboard](/app_kanboard). + +## Liens utiles + ++ Site web : [wekan.github.io](https://wekan.github.io/) ++ Documentation officielle : [github.com/wekan/wekan/wiki](https://github.com/wekan/wekan/wiki) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/wekan](https://github.com/YunoHost-Apps/wekan_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/wekan/issues](https://github.com/YunoHost-Apps/wekan_ynh/issues) diff --git a/app_wikijs.md b/app_wikijs.md new file mode 100644 index 00000000..7475c620 --- /dev/null +++ b/app_wikijs.md @@ -0,0 +1,21 @@ +# Wiki.js's logo Wiki.js + +[![Install Wiki.js with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wikijs) [![Integration level](https://dash.yunohost.org/integration/wikijs.svg)](https://dash.yunohost.org/appci/app/wikijs) + +### Index + +- [Configuration](#configuration) +- [Useful links](#useful-links) + +Wiki.js is a free, modern and fast wiki based on Node.js, Git and Markdown. + +## Configuration + +Wiki.js requires a dedicated root domain, e.g. `wikijs.domain.tld` + +## Useful links + ++ Website: [wiki.js.org](https://wiki.js.org/) ++ Official documentation: [docs.requarks.io](https://docs.requarks.io/) ++ Application software repository: [github.com - YunoHost-Apps/wikijs](https://github.com/YunoHost-Apps/wikijs_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/wikijs/issues](https://github.com/YunoHost-Apps/wikijs_ynh/issues) diff --git a/app_wikijs_fr.md b/app_wikijs_fr.md new file mode 100644 index 00000000..b2a3fa65 --- /dev/null +++ b/app_wikijs_fr.md @@ -0,0 +1,21 @@ +# logo de Wiki.js Wiki.js + +[![Install Wiki.js with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wikijs) [![Integration level](https://dash.yunohost.org/integration/wikijs.svg)](https://dash.yunohost.org/appci/app/wikijs) + +### Index + +- [Configuration](#configuration) +- [Liens utiles](#liens-utiles) + +Wiki.js est un wiki libre, moderne et rapide basé sur Node.js, Git et Markdown. + +## Configuration + +Wiki.js nécessite un domaine racine dédié, par exemple `wikijs.domaine.tld`. + +## Liens utiles + + + Site web : [wiki.js.org (en)](https://wiki.js.org/) + + Documentation officielle : [docs.requarks.io (en)](https://docs.requarks.io/) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/wikijs](https://github.com/YunoHost-Apps/wikijs_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/wikijs/issues](https://github.com/YunoHost-Apps/wikijs_ynh/issues) diff --git a/app_wordpress.md b/app_wordpress.md new file mode 100644 index 00000000..8e8054ec --- /dev/null +++ b/app_wordpress.md @@ -0,0 +1,29 @@ +# WordPress's logo WordPress + +[![Install APPLICATION with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wordpress) [![Integration level](https://dash.yunohost.org/integration/wordpress.svg)](https://dash.yunohost.org/appci/app/wordpress) + +### Index + +- [Limitations with YunoHost](#limitations-with-yunohost) +- [Useful links](#useful-links) + +WordPress is a free, open-source, open source content management system (CMS). This software written in PHP is based on a MySQL database and is distributed by the American company Automattic. WordPress' functionalities allow it to create and manage different types of websites: showcase site, online store site, application site, blog, or portfolio. It is distributed under the terms of the GNU GPL version 2 license.[¹](#sources) + +## Limitations with YunoHost + +Multisite is only available on subdirectories. + +As the auto-update plugin does not work as expected, be careful to keep wordpress up to date from the WordPress admin panel, not just from the YunoHost admin panel. For security reasons, make sure that all updates are regularly applied in the WordPress Control Panel as well as in the YunoHost Control Panel. + +## Useful links + ++ Website: [wordpress.org](https://wordpress.org/) ++ Official documentation: [codex.wordpress.org](https://codex.wordpress.org/) ++ Application software repository: [github.com - YunoHost-Apps/wordpress](https://github.com/YunoHost-Apps/wordpress_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com -YunoHost-Apps/wordpress/issues](https://github.com/YunoHost-Apps/wordpress_ynh/issues) + +----------- + +### Sources + +¹ [wikipedia.org - WordPress (fr)](https://fr.wikipedia.org/wiki/WordPress) diff --git a/app_wordpress_fr.md b/app_wordpress_fr.md new file mode 100644 index 00000000..ec6c8d75 --- /dev/null +++ b/app_wordpress_fr.md @@ -0,0 +1,29 @@ +# logo de WordPress WordPress + +[![Install Wordpress with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wordpress) [![Integration level](https://dash.yunohost.org/integration/wordpress.svg)](https://dash.yunohost.org/appci/app/wordpress) + +### Index + +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Liens utiles](#liens-utiles) + +WordPress est un système de gestion de contenu (SGC ou content management system (CMS) en anglais) gratuit, libre et open-source. Ce logiciel écrit en PHP repose sur une base de données MySQL et est distribué par l'entreprise américaine Automattic. Les fonctionnalités de WordPress lui permettent de créer et gérer différents types de sites Web : site vitrine, site de vente en ligne, site applicatif, blogue, ou encore portfolio. Il est distribué selon les termes de la licence GNU GPL version 2.[¹](#sources) + +## Limitations avec YunoHost + +Le multisite est uniquement disponible sur des sous-répertoires. + +Comme le plugin de mise à jour automatique ne fonctionne pas comme prévu, faites attention à garder wordpress à jour depuis le panneau d'administration de WordPress, et pas seulement depuis le panneau d'administration de YunoHost. Pour des raisons de sécurité, contrôler que toutes les mises à jour sont régulièrement appliquées dans le panneau d'administration de WordPress ainsi que dans le panneau d'administration de YunoHost. + +## Liens utiles + ++ Site web : [wordpress.org](https://fr.wordpress.org/) ++ Documentation officielle : [codex.wordpress.org (en)](https://codex.wordpress.org/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/wordpress](https://github.com/YunoHost-Apps/wordpress_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/wordpress/issues](https://github.com/YunoHost-Apps/wordpress_ynh/issues) + +----------- + +### Sources + +¹ [wikipedia.org - WordPress](https://fr.wikipedia.org/wiki/WordPress) diff --git a/app_writing_guide.md b/app_writing_guide.md new file mode 100644 index 00000000..57e9d9f3 --- /dev/null +++ b/app_writing_guide.md @@ -0,0 +1,33 @@ +# APPLICATION's logo APPLICATION + +[![Install APPLICATION with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=APPLICATION) [![Integration level](https://dash.yunohost.org/integration/APPLICATION.svg)](https://dash.yunohost.org/appci/app/APPLICATION) + +### Index + +- [Configuration](#configuration) +- [Limitations of YunoHost](#limitations-with-yunohost) +- [Customer Applications](#customer-applications) +- [Useful links](#useful-links) + +**General presentation of the application.** *Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce rutrum sodales mauris eu viverra. Sed dapibus, tellus sit amet interdum condimentum, enim eros faucibus ligula, sed suscipit orci velit at felis. Etiam quam lacus, vulputate eu scelerisque ac, sollicitudin rutrum orci. Cras eu ante porttitor, laoreet odio sed, hendrerit tellus. Nulla luctus sem in arcu scelerisque cursus. Nulla ut tellus at leo porttitor tincidunt. Morbi vitae purus convallis, elementum lectus non, dignissim orci. Integer eget egestas mauris. Nunc nunc dolor, cursus in quam mollis, rutrum fermentum nibh. Aliquam molestie velit a nulla porttitor, sit amet tincidunt erat laoreet.* + +## Configuration + +**If the configuration of the application is not done with the admin panel of YunoHost.** *Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce rutrum sodales mauris eu viverra. Sed dapibus, tellus sit amet interdum condimentum, enim eros faucibus ligula, sed suscipit orci velit at felis. Etiam quam lacus, vulputate eu scelerisque ac, sollicitudin rutrum orci. Cras eu ante porttitor, laoreet odio sed, hendrerit tellus. Nulla luctus sem in arcu scelerisque cursus. Nulla ut tellus at leo porttitor tincidunt. Morbi vitae purus convallis, elementum lectus non, dignissim orci. Integer eget egestas mauris. Nunc nunc dolor, cursus in quam mollis, rutrum fermentum nibh. Aliquam molestie velit a nulla porttitor, sit amet tincidunt erat laoreet.* + +## Limitations with YunoHost + +**Explanation of the current limitations in using the application with YunoHost.** *Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce rutrum sodales mauris eu viverra. Sed dapibus, tellus sit amet interdum condimentum, enim eros faucibus ligula, sed suscipit orci velit at felis. Etiam quam lacus, vulputate eu scelerisque ac, sollicitudin rutrum orci. Cras eu ante porttitor, laoreet odio sed, hendrerit tellus. Nulla luctus sem in arcu scelerisque cursus. Nulla ut tellus at leo porttitor tincidunt. Morbi vitae purus convallis, elementum lectus non, dignissim orci. Integer eget egestas mauris. Nunc nunc dolor, cursus in quam mollis, rutrum fermentum nibh. Aliquam molestie velit a nulla porttitor, sit amet tincidunt erat laoreet.* + +## Customer applications + +| Application name | Platform | Multi-account | Other supported networks | Play Store | F-Droid | Apple Store | *Other* | +|------------------|----------|---------------|--------------------------|------------|---------|-------------|---------| +| | | | | | | | | + +## Useful links + ++ Website: [WEBSITE](#) ++ Official documentation: [DOCUMENTATION](#) ++ Application software repository: [github.com - YunoHost-Apps/APPLICATION](https://github.com/YunoHost-Apps/APPLICATION_ynh) ++ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/APPLICATION/issues](https://github.com/YunoHost-Apps/APPLICATION_ynh/issues) diff --git a/app_writing_guide_fr.md b/app_writing_guide_fr.md new file mode 100644 index 00000000..ac1abf48 --- /dev/null +++ b/app_writing_guide_fr.md @@ -0,0 +1,33 @@ +# logo de APPLICATION APPLICATION + +[![Install APPLICATION with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=APPLICATION) [![Integration level](https://dash.yunohost.org/integration/APPLICATION.svg)](https://dash.yunohost.org/appci/app/APPLICATION) + +### Index + +- [Configuration](#configuration) +- [Limitations avec YunoHost](#limitations-avec-yunohost) +- [Applications clientes](#applications-clientes) +- [Liens utiles](#liens-utiles) + +**Présentation générale de l'application.** *Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce rutrum sodales mauris eu viverra. Sed dapibus, tellus sit amet interdum condimentum, enim eros faucibus ligula, sed suscipit orci velit at felis. Etiam quam lacus, vulputate eu scelerisque ac, sollicitudin rutrum orci. Cras eu ante porttitor, laoreet odio sed, hendrerit tellus. Nulla luctus sem in arcu scelerisque cursus. Nulla ut tellus at leo porttitor tincidunt. Morbi vitae purus convallis, elementum lectus non, dignissim orci. Integer eget egestas mauris. Nunc nunc dolor, cursus in quam mollis, rutrum fermentum nibh. Aliquam molestie velit a nulla porttitor, sit amet tincidunt erat laoreet.* + +## Configuration + +**Si la configuration de l'application ne se fait pas avec le panel admin de YunoHost.** *Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce rutrum sodales mauris eu viverra. Sed dapibus, tellus sit amet interdum condimentum, enim eros faucibus ligula, sed suscipit orci velit at felis. Etiam quam lacus, vulputate eu scelerisque ac, sollicitudin rutrum orci. Cras eu ante porttitor, laoreet odio sed, hendrerit tellus. Nulla luctus sem in arcu scelerisque cursus. Nulla ut tellus at leo porttitor tincidunt. Morbi vitae purus convallis, elementum lectus non, dignissim orci. Integer eget egestas mauris. Nunc nunc dolor, cursus in quam mollis, rutrum fermentum nibh. Aliquam molestie velit a nulla porttitor, sit amet tincidunt erat laoreet.* + +## Limitations avec YunoHost + +**Explication des limitations actuelles en utilisation de l'application avec YunoHost.** *Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce rutrum sodales mauris eu viverra. Sed dapibus, tellus sit amet interdum condimentum, enim eros faucibus ligula, sed suscipit orci velit at felis. Etiam quam lacus, vulputate eu scelerisque ac, sollicitudin rutrum orci. Cras eu ante porttitor, laoreet odio sed, hendrerit tellus. Nulla luctus sem in arcu scelerisque cursus. Nulla ut tellus at leo porttitor tincidunt. Morbi vitae purus convallis, elementum lectus non, dignissim orci. Integer eget egestas mauris. Nunc nunc dolor, cursus in quam mollis, rutrum fermentum nibh. Aliquam molestie velit a nulla porttitor, sit amet tincidunt erat laoreet.* + +## Applications clientes + +| Nom de l'application | Plateforme | Multi-comptes | Autres réseaux supportés | Play Store | F-Droid | Apple Store | *Autres* | +|-----------------------|------------|---------------|-------------------------|------------|---------|-------------|----------| +| | | | | | | | | + +## Liens utiles + + + Site web : [SITE WEB](#) + + Documentation officielle : [DOCUMENTATION](#) + + Dépôt logiciel de l'application : [github.com - YunoHost-Apps/APPLICATION](https://github.com/YunoHost-Apps/APPLICATION_ynh) + + Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com - YunoHost-Apps/APPLICATION/issues](https://github.com/YunoHost-Apps/APPLICATION_ynh/issues) diff --git a/app_yunofav.md b/app_yunofav.md new file mode 100644 index 00000000..9b4e3e99 --- /dev/null +++ b/app_yunofav.md @@ -0,0 +1,5 @@ +# Yunofav: (unofficial) Page of favorite links for YunoHost + +homepage: https://github.com/YunoHost-Apps/yunofav_ynh + +Functionality: Creates a page for your favorite links, using the YunoHost tiles look and feel. \ No newline at end of file diff --git a/app_yunofav_fr.md b/app_yunofav_fr.md new file mode 100644 index 00000000..d904a78e --- /dev/null +++ b/app_yunofav_fr.md @@ -0,0 +1,6 @@ +# Yunofav : (non officiel) Page de liens favoris pour YunoHost + +page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh + + +Fonctionnalité : Crée une page pour vos liens préférés, en utilisant le style et le fonctionnement des tuiles YunoHost. \ No newline at end of file diff --git a/app_zerobin.md b/app_zerobin.md new file mode 100644 index 00000000..927bb7c1 --- /dev/null +++ b/app_zerobin.md @@ -0,0 +1,17 @@ +# zerobin's logo Zerobin + +[![Install zerobin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=zerobin) [![Integration level](https://dash.yunohost.org/integration/zerobin.svg)](https://dash.yunohost.org/appci/app/zerobin) + +### Index + +- [Useful links](#useful-links) + +Zerobin is a web service for temporarily storing and sharing plain text in encrypted form without readable storage on the server. The encryption/decryption key is not stored on the server but in the transmitted URL. Thus you can share sensitive information (passwords, access codes, and even a discussion) in a confidential way by communicating to your interlocutors the specific address of your content. Moreover this content has a limited value in time and is destroyed after a customizable delay. + +## Useful links + ++ Website : [privatebin.info](https://privatebin.info/) ++ Official documentation : [github.com/PrivateBin/PrivateBin/wiki](https://github.com/PrivateBin/PrivateBin/wiki) ++ Demonstration : [Demo](https://privatebin.net/) ++ Application software repository : [github.com - YunoHost-Apps/zerobin](https://github.com/YunoHost-Apps/zerobin_ynh) ++ Fix a bug or an improvement by creating a ticket (issue) : [github.com - YunoHost-Apps/zerobin/issues](https://github.com/YunoHost-Apps/zerobin_ynh/issues) diff --git a/app_zerobin_fr.md b/app_zerobin_fr.md new file mode 100644 index 00000000..fdb0c8c0 --- /dev/null +++ b/app_zerobin_fr.md @@ -0,0 +1,17 @@ +# logo de zerobin Zerobin + +[![Install zerobin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=zerobin) [![Integration level](https://dash.yunohost.org/integration/zerobin.svg)](https://dash.yunohost.org/appci/app/zerobin) + +### Index + +- [Liens utiles](#liens-utiles) + +Zerobin est un service web permettant de stocker temporairement et de partager du texte simple de manière chiffrée, sans stockage lisible sur le serveur. La clef de chiffrement/déchiffrement n'est pas stockée sur le serveur mais dans l'URL transmise. Ainsi vous pouvez partager des informations sensibles (mots de passe, codes d'accès, et même une discussion) de manière confidentielle en communiquant à vos interlocuteurs l'adresse spécifique de votre contenu. De plus ce contenu a une valeur limitée dans le temps et est détruit passé un délai personnalisable. + +## Liens utiles + ++ Site web : [privatebin.info](https://privatebin.info/) ++ Documentation officielle : [github.com/PrivateBin/PrivateBin/wiki](https://github.com/PrivateBin/PrivateBin/wiki) ++ Démonstration : [Démo](https://privatebin.net/) ++ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/zerobin](https://github.com/YunoHost-Apps/zerobin_ynh) ++ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/zerobin/issues](https://github.com/YunoHost-Apps/zerobin_ynh/issues) diff --git a/apps.md b/apps.md new file mode 100644 index 00000000..9bc87380 --- /dev/null +++ b/apps.md @@ -0,0 +1,379 @@ +# Application catalog + + +This page requires JavaScript enabled to display properly :s. +
+
+
+ + + +
+ + +
+ + + +
+
+
+ + + +
The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the corresponding code repositories.
+ +
+ Applications flagged as low quality may be working, but they may not respect good packaging practices or lack integration of some features like backup/restore or single authentication. Be cautious when installing them. +
+ +
+ Applications flagged as not working are known to be broken and/or are still in development. **Do not install them** in a production environment! +
+ +
+ +
If you don't find the app you are looking for, you can try to look for a appname_ynh repository on GitHub or on the internet, or add it to the apps wishlist.
+ + + + + + + + + + + + diff --git a/apps_fr.md b/apps_fr.md new file mode 100644 index 00000000..6221df0f --- /dev/null +++ b/apps_fr.md @@ -0,0 +1,378 @@ +# Catalogue d’applications + + +Cette page requiert que JavaScript soit activé pour s'afficher correctement :s. +
+
+
+ + + +
+ + + +
L'équipe de packaging d'applications sera heureuse de recevoir vos commentaires ! Si vous trouvez des problèmes ou des améliorations possibles en installant une app, n'hésitez pas à contribuer en créant un ticket (issue) directement sur le dépôt de code.
+ +
+ Les applications étiquettées low quality fonctionnent peut-être, mais ne respectent pas les bonnes pratiques de packaging ou ne supportent pas certaines fonctionnalités comme les sauvegardes/restauration ou l'authentication unifiée. Soyez prudent si vous les installez. +
+ +
+ Les applications étiquettées not working sont connues pour être cassées et/ou encore en développement. **Ne les installez pas** sur un serveur de production ! +
+ +
+ +
Si vous ne trouvez pas une application précise que vous recherchez, vous pouvez chercher un dépôt nommé nomdelapp_ynh sur GitHub ou internet, ou bien l'ajouter à la liste d'apps souhaitées.
+ + + + + + + + + + + + diff --git a/apps_framasoft.md b/apps_framasoft.md new file mode 100644 index 00000000..b8965af1 --- /dev/null +++ b/apps_framasoft.md @@ -0,0 +1 @@ +Unfortunately, this page only exists [in french here](apps_framasoft_fr) for now. diff --git a/apps_framasoft_fr.md b/apps_framasoft_fr.md new file mode 100644 index 00000000..d57bcdbd --- /dev/null +++ b/apps_framasoft_fr.md @@ -0,0 +1,48 @@ +# Équivalence avec les applications Framasoft + +| App Framasoft | Équivalent | Package | +| :---: | :---: | :---: | +| Framabag | Wallabag | [](https://github.com/YunoHost-Apps/wallabag2_ynh) ![](https://ci-apps.yunohost.org/ci/badges/wallabag2.status.svg) ![](https://dash.yunohost.org/integration/wallabag2.svg) | +| Framabee | Searx | [](https://github.com/YunoHost-Apps/searx_ynh) ![](https://ci-apps.yunohost.org/ci/badges/searx.status.svg) ![](https://dash.yunohost.org/integration/searx.svg) | +| Framabin | PrivateBin | [](https://github.com/YunoHost-apps/zerobin_ynh) ![](https://ci-apps.yunohost.org/ci/badges/zerobin.status.svg) ![](https://dash.yunohost.org/integration/zerobin.svg) | +| Framaboard | Kanboard | [](https://github.com/YunoHost-Apps/kanboard_ynh) ![](https://ci-apps.yunohost.org/ci/badges/kanboard.status.svg) ![](https://dash.yunohost.org/integration/kanboard.svg) | +| Framabookin | BicBucStriim | [](https://github.com/YunoHost-Apps/bicbucstriim_ynh) ![](https://ci-apps.yunohost.org/ci/badges/bicbucstriim.status.svg) ![](https://dash.yunohost.org/integration/bicbucstriim.svg) | +| Framacalc | Ethercalc | [](https://github.com/YunoHost-Apps/ethercalc_ynh) ![](https://ci-apps.yunohost.org/ci/badges/ethercalc.status.svg) ![](https://dash.yunohost.org/integration/ethercalc.svg) | +| Framacarte | uMap | [](https://github.com/YunoHost-Apps/umap_ynh) ![](https://ci-apps.yunohost.org/ci/badges/umap.status.svg) ![](https://dash.yunohost.org/integration/umap.svg) | +| Framaclic | Matomo | [](https://github.com/YunoHost-Apps/matomo_ynh) ![](https://ci-apps.yunohost.org/ci/badges/matomo.status.svg) ![](https://dash.yunohost.org/integration/matomo.svg) | +| Framadate | OpenSondage | [](https://github.com/YunoHost-Apps/opensondage_ynh) ![](https://ci-apps.yunohost.org/ci/badges/opensondage.status.svg) ![](https://dash.yunohost.org/integration/opensondage.svg) | +| Framadrive | Nextcloud | [](https://github.com/YunoHost-apps/nextcloud_ynh) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![](https://dash.yunohost.org/integration/nextcloud.svg) | +| Framadrop | Lufi | [](https://github.com/YunoHost-Apps/lufi_ynh) ![](https://ci-apps.yunohost.org/ci/badges/lufi.status.svg) ![](https://dash.yunohost.org/integration/lufi.svg) | +| Framaestro | Framaestro | [](https://github.com/YunoHost-Apps/framaestro_ynh) ![](https://ci-apps.yunohost.org/ci/badges/framaestro.status.svg) ![](https://dash.yunohost.org/integration/framaestro.svg) | +| Framaforms | Framaforms | [](https://github.com/YunoHost-Apps/framaforms_ynh) ![](https://ci-apps.yunohost.org/ci/badges/framaforms.status.svg) ![](https://dash.yunohost.org/integration/framaforms.svg) | +| Framagames | Framagames | [](https://github.com/YunoHost-Apps/framagames_ynh) ![](https://ci-apps.yunohost.org/ci/badges/framagames.status.svg) ![](https://dash.yunohost.org/integration/framagames.svg) | +| Framagenda | (Agenda Nextcloud) | c.f. Nextcloud | +| Framagit | GitLab | [](https://github.com/YunoHost-Apps/gitlab_ynh) ![](https://ci-apps.yunohost.org/ci/badges/gitlab.status.svg) ![](https://dash.yunohost.org/integration/gitlab.svg) | +| | Gogs | [](https://github.com/YunoHost-Apps/gogs_ynh) ![](https://ci-apps.yunohost.org/ci/badges/gogs.status.svg) ![](https://dash.yunohost.org/integration/gogs.svg) | +| Frama.link | Lstu | [](https://github.com/YunoHost-Apps/lstu_ynh) ![](https://ci-apps.yunohost.org/ci/badges/lstu.status.svg) ![](https://dash.yunohost.org/integration/lstu.svg) | +| Framalistes | Mailman | [](https://github.com/YunoHost-Apps/mailman_ynh) ![](https://ci-apps.yunohost.org/ci/badges/mailman.status.svg) ![](https://dash.yunohost.org/integration/mailman.svg) | +| | Sympa | [](https://github.com/alexAubin/sympa_ynh) ![](https://ci-apps.yunohost.org/ci/badges/sympa.status.svg) ![](https://dash.yunohost.org/integration/sympa.svg) | +| Framanews | TinyTinyRSS | [](https://github.com/YunoHost-apps/ttrss_ynh) ![](https://ci-apps.yunohost.org/ci/badges/ttrss.status.svg) ![](https://dash.yunohost.org/integration/ttrss.svg) | +| Framanotes | Turtl | [](https://github.com/YunoHost-Apps/turtl_ynh) ![](https://ci-apps.yunohost.org/ci/badges/turtl.status.svg) ![](https://dash.yunohost.org/integration/turtl.svg) | +| Framapad | Etherpad + mypads | [](https://github.com/YunoHost-Apps/etherpad_mypads_ynh) ![](https://ci-apps.yunohost.org/ci/badges/etherpad_mypads.status.svg) ![](https://dash.yunohost.org/integration/etherpad_mypads.svg) | +| Framapiaf | Mastodon | [](https://github.com/YunoHost-Apps/mastodon_ynh) ![](https://ci-apps.yunohost.org/ci/badges/mastodon.status.svg) ![](https://dash.yunohost.org/integration/mastodon.svg) | +| Framapic | Lutim | [](https://github.com/YunoHost-Apps/lutim_ynh) ![](https://ci-apps.yunohost.org/ci/badges/lutim.status.svg) ![](https://dash.yunohost.org/integration/lutim.svg) | +| Framasites | Grav | [](https://github.com/YunoHost-Apps/grav_ynh) ![](https://ci-apps.yunohost.org/ci/badges/grav.status.svg) ![](https://dash.yunohost.org/integration/grav.svg) | +| Framaslides | Strut | [](https://github.com/YunoHost-Apps/strut_ynh) ![](https://ci-apps.yunohost.org/ci/badges/strut.status.svg) ![](https://dash.yunohost.org/integration/strut.svg) | +| Framasphère | Diaspora | [](https://github.com/aymhce/diaspora_ynh) ![](https://ci-apps.yunohost.org/ci/badges/diaspora.status.svg) ![](https://dash.yunohost.org/integration/diaspora.svg) | +| Framatalk | Jitsi Meet | [](https://github.com/YunoHost-Apps/jitsi_ynh) ![](https://ci-apps.yunohost.org/ci/badges/jitsi.status.svg) ![](https://dash.yunohost.org/integration/jitsi.svg) | +| Framateam | Mattermost | [](https://github.com/YunoHost-Apps/mattermost_ynh) ![](https://ci-apps.yunohost.org/ci/badges/mattermost.status.svg) ![](https://dash.yunohost.org/integration/mattermost.svg) | +| Framatrad | ? | Non packagé | +| Framatube | Peertube | [](https://github.com/YunoHost-Apps/peertube_ynh) ![](https://ci-apps.yunohost.org/ci/badges/peertube.status.svg) ![](https://dash.yunohost.org/integration/peertube.svg) | +| Framavectoriel | SVG-Edit | [](https://github.com/YunoHost-Apps/svgedit_ynh) ![](https://ci-apps.yunohost.org/ci/badges/svgedit.status.svg) ![](https://dash.yunohost.org/integration/svgedit.svg) | +| Framavox | Loomio | Non packagé | +| Framemo | Scrumblr | [](https://github.com/YunoHost-Apps/scrumblr_ynh) ![](https://ci-apps.yunohost.org/ci/badges/scrumblr.status.svg) ![](https://dash.yunohost.org/integration/scrumblr.svg) | +| Framindmap | Wisemapping | [](https://github.com/YunoHost-Apps/wisemapping_ynh) ![](https://ci-apps.yunohost.org/ci/badges/wisemapping.status.svg) ![](https://dash.yunohost.org/integration/wisemapping.svg) | +| Framinetest | Minetest | [](https://github.com/YunoHost-Apps/minetest_ynh) ![](https://ci-apps.yunohost.org/ci/badges/minetest.status.svg) ![](https://dash.yunohost.org/integration/minetest.svg) | +| MyFrama | Shaarli | [](https://github.com/YunoHost-Apps/shaarli_ynh) ![](https://ci-apps.yunohost.org/ci/badges/shaarli.status.svg) ![](https://dash.yunohost.org/integration/shaarli.svg) | + +### Voir aussi + +- [Liste complète des applications packagées](/apps) +- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13) + diff --git a/apps_overview.md b/apps_overview.md new file mode 100644 index 00000000..fa0e33f1 --- /dev/null +++ b/apps_overview.md @@ -0,0 +1,33 @@ +# Applications + +One of the key feature of YunoHost is the ability to easily install applications which are then immediately usable. Example of applications include a blog system, a "cloud" (to host and sync files), a website, an RSS reader... + +Applications must be packaged manually by application packagers/maintainers. Apps can be integrated with YunoHost to support upgrades, backup/restore and LDAP/SSO integration among other things. + +Applications can be installed and managed through the webadmin interface in 'Applications' or through commands of the `yunohost app` category. + +## Application lists + +From the technical point of view, applications are public code repository (such as [this one](https://github.com/YunoHost-Apps/wordpress_ynh)). Existing applications are indexed using "application lists". Those lists can be managed in Applications > Install > Manage applications lists or with commands such as `yunohost app fetchlist`. + +The full list of application can be browsed at [this page](/apps). + +## Integration and quality levels + +Automated tests are being run regularly to test the integration and quality of all official apps, as well as community apps who were declared to be 'working'. The result is a level between 0 and 7, whose meaning is detailed on [this page](/packaging_apps_levels). Some tests results may also be available [on this dashboard](https://dash.yunohost.org/appci/branch/stable). + +## LDAP / SSO integration + +Applications may support integration with the LDAP / Single Sign On system, such that users who connects to the user portal can be automatically logged in all those apps. Some applications however do not support this as it can be either not implemented in the upstream, or the package didn't work on this part yet. + +## Multi-instance applications + +Some applications support the ability to be installed several times (at different locations) ! To do so, just go another time in Applications > Install, and select again the application to install. + +## User access management + +Access to apps can be restricted to some users only. This can be configured via the webadmin in the [Groups and permissions panel](/groups_and_permissions), or similarly via the command-line subcategory `yunohost user permission`. + +## Packaging applications + +If you want to learn or contribute to app packaging, please check the [contributor documentation](contributordoc). diff --git a/apps_overview_fr.md b/apps_overview_fr.md new file mode 100644 index 00000000..795ba4ea --- /dev/null +++ b/apps_overview_fr.md @@ -0,0 +1,33 @@ +# Applications + +L'une des fonctionnalités principales de YunoHost est la possibilité d'installer facilement des applications immédiatement utilisables. Pour donner des exemples d'application, il est possible d'installer un système de blog, un "cloud" (pour héberger et synchroniser des fichiers), un site web, un lecteur RSS... + +Les applications doivent être packagées manuellement par les packageurs/mainteneurs d'applications. Les applications peuvent être intégrées avec YunoHost pour gérer les mise à jour, la sauvegarde/restauration et l'intégration LDAP/SSO, entre autres. + +Les applications peuvent être installées et gérées via l'interface webadmin dans la partie 'Applications', ou via les commandes de la catégorie `yunohost app`. + +## Listes d'applications + +Du point de vue technique, les applications sont des dépôts de code public (comme [celui-ci](https://github.com/YunoHost-Apps/wordpress_ynh)). Les applications existantes sont indexées à l'aide de "listes d'applications". Ces listes peuvent être gérées dans Applications > Installer > Gérer les listes d'applications, ou avec des commandes telles que `yunohost app fetchlist`. + +La liste des applications existantes peut être consultée sur [cette page](/apps). + +## Niveaux d'intégration et de qualité + +Des tests automatisés sont exécutés régulièrement pour tester l'intégration et la qualité de toutes les applications officielles, ainsi que les applications communautaires qui ont été déclarées "working". Le résultat est un niveau entre 0 et 7, dont la signification est détaillée sur [cette page](/packaging_apps_levels). Certains résultats de tests peuvent également être disponibles sur [ce tableau de bord](https://dash.yunohost.org/appci/branch/stable). + +## Intégration LDAP / SSO + +Les applications peuvent prendre en charge l'intégration avec le système LDAP / Single Sign On, de sorte que les utilisateurs qui se connectent au portail utilisateur peuvent être automatiquement authentifiés sur toutes ces applications. Certaines applications ne le supportent pas car cette fonctionnalité n'est, soit pas implémentée en amont du logiciel de l'application, soit le mainteneur n'a pas encore travaillé sur cette partie. + +## Applications multi-instances + +Certaines applications peuvent être installées plusieurs fois (à différents endroits) ! Pour ce faire, il suffit de retourner dans Applications > Installer, et de sélectionner à nouveau l'application à installer. + +## Gestion de l'accès des utilisateurs + +L'accès aux applications peut être limité à certains utilisateurs seulement. Ceci peut être configuré via la webadmin sur la page [Groupes et permissions](groups_and_permissions), ou de la même manière via la sous-catégorie de commandes `yunohost user permission`. + +## Packaging d'applications + +Si vous voulez apprendre ou contribuer à l'empaquetage des applications, veuillez consulter la [documentation des contributeurs](contributordoc). diff --git a/apps_wishlist.md b/apps_wishlist.md new file mode 100644 index 00000000..4139bb3b --- /dev/null +++ b/apps_wishlist.md @@ -0,0 +1,321 @@ +# Apps wishlist + +The following list is a compiled wishlist of applications that would be nice-to-have. + +You can [contribute to this list by adding something you'd like to be packaged](/write_documentation), or learn more on [how to package applications](/packaging_apps) to create a new package or improve a package draft. + +
Before adding an app in this wish-list, please check your app is not already available in YunoHost's app catalogue
+ +| Name | Description | Upstream | Package draft | +| ------ | ----------- | -------- | ------------- | +| 10er10 | | [Upstream](https://github.com/dready92/10er10) | | +| [AbanteCart](https://abantecart.com) | Create an e-commerce website | | [Package Draft](https://github.com/YunoHost-Apps/abantecart_ynh) | +| AdGuard | | [Upstream](https://github.com/AdguardTeam/AdGuardHome) | [Package Draft](https://github.com/YunoHost-Apps/adguard_ynh) | +| adhocserver | An ad hoc server for the Sony PSP | | [Package Draft](https://github.com/matlink/adhocserver_ynh) | +| [agora](https://www.agora-project.net/) | Create collaborative and creative digital space | | [Package Draft](https://github.com/YunoHost-Apps/agora_ynh) | +| [Ajenti](https://ajenti.org) | | [Upstream](https://github.com/ajenti/ajenti/) | | +| Akaunting | Manage payments/invoices/expenses | [Upstream](https://github.com/akaunting/akaunting) | | +| Anki Sync Server | a personal Anki server |[Upstream](https://github.com/ankicommunity/anki-sync-server) | | +| [askbot](https://askbot.com/) | Questions and answers | | [Package Draft](https://github.com/zamentur/askbot_ynh) | +| Beehive | | [Upstream](https://github.com/muesli/beehive) | | +| [BicBucStriim](https://projekte.textmulch.de/bicbucstriim/) | Manage an e-book collection | | [Package Draft](https://github.com/YunoHost-Apps/bicbucstriim_ynh) | +| [BigBlueButton](https://bigbluebutton.org) | Web conferencing system | [Upstream](https://github.com/bigbluebutton/bigbluebutton) | | +| [Bitmessage](https://bitmessage.org/) | | [Upstream](https://github.com/Bitmessage/PyBitmessage) | | +| Blynk | | [Upstream](https://github.com/blynkkk/blynk-library) | | +| [Bolt](https://bolt.cm/) | Content Management Tool | | [Package Draft](https://github.com/realitygaps/bolt_ynh) | +| BookWyrm | Social reading and reviewing, decentralized with ActivityPub | [Upstream](https://github.com/mouse-reeve/bookwyrm) | | +| BTCPay Server | | [Upstream](https://github.com/btcpayserver/btcpayserver) | | +| [Cagette](https://www.cagette.net/) | A marketplace for local farmers and producers | [Upstream](https://github.com/CagetteNet/cagette) | | +| [Caliopen](https://www.caliopen.org) | A unified inteface for all your private communications | | [Package Draft](https://github.com/YunoHost-Apps/caliopen_ynh) | +| [cgit](https://git.zx2c4.com/cgit/about) | | | | +| [CheckUp](https://sourcegraph.github.io/checkup) | | [Upstream](https://github.com/sourcegraph/checkup) | | +| chtickynotes | Note manager | | [Package Draft](https://github.com/YunoHost-Apps/chtickynotes_ynh) | +| [Citadel-suite](https://www.citadel.org) | Groupware platform | | | +| [Cockpit](https://cockpit-project.org/) | | | [Package Draft](https://github.com/YunoHost-Apps/cockpit_ynh) | +| coin | Member dashboard for non profit ISP | [Upstream](https://code.ffdn.org/FFDN/coin/) | [Package Draft](https://github.com/YunoHost-Apps/coin_ynh) | +| Commafeed | | [Upstream](https://github.com/Athou/commafeed) | | +| cops | Calibre OPDS | | [Package Draft](https://github.com/YunoHost-Apps/cops_ynh) | +| [Coquelicot](https://coquelicot.potager.org/) | A “one-click” file sharing web application | | [Package Draft](https://github.com/YunoHost-Apps/coquelicot_ynh) | +| [CouchDB](https://couchdb.apache.org/) | Database management | | | +| [Cozy](https://cozy.io/en/) | | | | +| Croodle | Vote for a schedule / polling | [Upstream](https://github.com/jelhan/croodle) | | +| [Darkwire.io](https://darkwire.io/) | End-to-end encrypted instant web chat | [Upstream](https://github.com/seripap/darkwire.io) | | +| [democracyOS](https://democracyos.org/) | Vote / make decisions in a collective | | [Package Draft](https://github.com/YunoHost-Apps/democracyos_ynh) | +| [diasporadocker](https://diasporafoundation.org/) | A open and powerfull social network | | [Package Draft](https://github.com/aymhce/diasporadocker_ynh) | +| DirectoryLister | | [Upstream](https://github.com/DirectoryLister/DirectoryLister) | | +| Django_app | Skeleton for django apps | | [Package Draft](https://github.com/Jojo144/django_app_ynh) | +| Docker_container | Deploy applications with Docker | | [Package Draft](https://github.com/scith/docker_container_ynh) | +| Docker_rstudio | A web development environment for statistics with R | | [Package Draft](https://github.com/scith/docker_rstudio_ynh) | +| Docker-registry | | [Upstream](https://github.com/docker/distribution/) | [Package Draft](https://github.com/plopoyop/docker-registry_ynh) | +| DockerUI | Deploy applications with Docker | | [Package Draft](https://github.com/YunoHost-Apps/dockerui_ynh) | +| Docspell | Simple document organizer | [Upstream](https://github.com/eikek/docspell) | | +| [DomainMOD](https://domainmod.org) | Domain portfolio management application | | | +| [Domoticz](https://domoticz.com) | Home automation system web application | | [Package Draft](https://github.com/anubister/domoticz_ynh) | +| Draw.io | Online diagram creation | [Upstream](https://github.com/jgraph/drawio) | | +| [Duniter](https://duniter.org) | Participate in the Duniter blockchain | | [Package Draft](https://github.com/YunoHost-Apps/duniter_ynh) | +| Dynette | Dynette is a dyndns server | [Upstream](https://github.com/YunoHost/dynette) | [Package Draft](https://github.com/YunoHost-Apps/dynette_ynh) | +| [EasyAppointments](https://easyappointments.org/) | Online appointment booker | | | +| [eLabFTW](https://www.elabftw.net/) | Electronic lab notebook | [Upstream](https://github.com/elabftw/elabftw) | | +| Emoncms | | [Upstream](https://github.com/emoncms/emoncms) | | +| [Epicyon](https://epicyon.net/) | | [Upstream](https://gitlab.com/bashrc2/epicyon) | | +| [erine.email](https://erine.email/) | | [Upstream](https://gitlab.com/mdavranche/erine.email) | | +| [ERPnext](https://erpnext.com/) | | [Upstream](https://github.com/frappe/erpnext) | | +| [EteSync](https://www.etesync.com/) | | [Upstream](https://github.com/etesync) | | +| [Ethercalc](https://ethercalc.net/) | Collaborative spreadsheet editor | | [Package Draft](https://github.com/YunoHost-Apps/ethercalc_ynh) | +| Facette | | | [Package Draft](https://github.com/YunoHost-Apps/facette_ynh) | +| [Ferdi server](https://getferdi.com) | Messaging aggregation | [Upstream](https://github.com/getferdi/server) | | +| [FEX](https://fex.rus.uni-stuttgart.de/) | | | | +| [Filestash](https://www.filestash.app/) | | [Upstream](https://github.com/mickael-kerjean/filestash) | | +| FitTrackee | | [Upstream](https://github.com/SamR1/FitTrackee) | | +| Flask | Skeleton for flask apps | | [Package Draft](https://github.com/YunoHost-Apps/flask_ynh) | +| [foodsoft](https://foodcoops.github.io/foodsoft-hosting/) | Manage a non-profit food cooperative | | [Package Draft](https://github.com/YunoHost-Apps/foodsoft_ynh) | +| [Fossil](https://www.fossil-scm.org) | | | | +| Framaestro | Online service aggregator | [Upstream](https://framagit.org/framasoft/framaestro) | [Package Draft](https://github.com/YunoHost-Apps/framaestro_ynh) | +| Framaestro_hub | Online service aggregator hub | [Upstream](https://github.com/mozilla/togetherjs.git) | [Package Draft](https://github.com/YunoHost-Apps/framaestro_hub_ynh) | +| [freeboard](https://freeboard.io/) | A real-time dashboard builder for IOT | | [Package Draft](https://github.com/YunoHost-Apps/freeboard_ynh) | +| [freepbx](https://freepbx.org) | VOIP | | [Package Draft](https://github.com/YunoHost-Apps/freepbx_ynh) | +| [ftssolr](https://wiki.dovecot.org/Plugins/FTS/Solr) | Full-text search via IMAP through a Solr indexing server | | [Package Draft](https://github.com/YunoHost-Apps/ftssolr_ynh) | +| galette | Membership management for non-profit organizations | | [Package Draft](https://github.com/YunoHost-Apps/galette_ynh) | +| [Gancio](https://gancio.org/) | | [Upstream](https://framagit.org/les/gancio) | | +| gateone | HTML5-powered terminal emulator and SSH client | | [Package Draft](https://github.com/Kloadut/gateone_ynh) | +| [Geneweb](https://geneweb.tuxfamily.org) | | [Upstream](https://github.com/geneweb/geneweb) | | +| GetSimple CMS | | [Upstream](https://github.com/GetSimpleCMS/GetSimpleCMS) | | +| gitolite | Git server | | [Package Draft](https://github.com/matlink/gitolite_ynh) | +| gitrepositories | | | [Package Draft](https://github.com/YunoHost-Apps/gitrepositories_ynh) | +| gitweb | Git forge (c.f. Gitolite) | | [Package Draft](https://github.com/matlink/gitweb_ynh) | +| [glitch-soc](https://glitch-soc.github.io/docs/) | A libre and federated social network | | [Package Draft](https://github.com/Tagadda/glitch-soc_ynh) | +| glpi | Create a beautiful blog or website easily | | [Package Draft](https://github.com/abeudin/glpi_ynh) | +| gnusocial | Create a federated comunication node | | [Package Draft](https://github.com/YunoHost-Apps/gnusocial_ynh) | +| [Goaccess](https://goaccess.io) | Web log analyzer | [Upstream](https://github.com/allinurl/goaccess) | | +| gogs_webhost | Turn a Gogs repository to static web hosting | | [Package Draft](https://github.com/YunoHost-Apps/gogs_webhost_ynh) | +| Gollum | | [Upstream](https://github.com/gollum/gollum) | | +| Goploader | | [Upstream](https://github.com/Depado/goploader) | | +| Gpodder.net | | | | +| Granary | | [Upstream](https://github.com/snarfed/granary) | | +| [Graphhopper](https://www.graphhopper.com/) | | [Upstream](https://github.com/graphhopper/graphhopper) | | +| [Guacamole](https://guacamole.apache.org/) | Clientless remote desktop gateway | | | +| [Habitica](https://habitica.com/) | | [Upstream](https://github.com/HabitRPG/habitica) | | +| headphones | Automatic music downloader | | [Package Draft](https://github.com/YunoHost-Apps/headphones_ynh) | +| Helpy | | [Upstream](https://github.com/helpyio/helpy) | | +| [Hexo](https://hexo.io/) | | [Upstream](https://github.com/hexojs/hexo) | | +| Hometown | | [Upstream](https://github.com/hometown-fork/hometown) | | +| [htpc-manager](https://htpc.io) | Manage your HTPC from anywhere | | [Package Draft](https://github.com/scith/htpc-manager_ynh) | +| huginn | Build agents that monitor and act on your behalf | | [Package Draft](https://github.com/YunoHost-Apps/huginn_ynh) | +| [humhub](https://www.humhub.org) | Enterprise Social Network | | [Package Draft](https://github.com/yunohost-apps/humhub_ynh) | +| [Icecast 2](https://www.icecast.org) | | [Upstream](https://gitlab.xiph.org/xiph/icecast-server/) | | +| [ikiwiki](https://ikiwiki.info) | | | | +| internetarchive | Offline version of the Internet Archive | [Upstream](https://github.com/internetarchive/dweb-mirror) | [Package Draft](https://github.com/mitra42/internetarchive_ynh) | +| [InvoicePlane](https://invoiceplane.com) | | [Upstream](https://github.com/InvoicePlane/InvoicePlane) | | +| [IPFS](https://ipfs.io) | | [Upstream](https://github.com/ipfs/ipfs) | | +| [Isso](https://posativ.org/isso) | Comment server | [Upstream](https://github.com/posativ/isso) | | +| jappix_mini | Jappix Mini XMPP chat website integration | | [Package Draft](https://github.com/YunoHost-Apps/jappix_mini_ynh) | +| [Jitsi](https://jitsi.org/) | Video conferencing web application | | [Package Draft](https://github.com/YunoHost-Apps/jitsi_ynh) | +| [joomla](https://www.joomla.org) | A content management system | | [Package Draft](https://github.com/YunoHost-Apps/joomla_ynh) | +| [Joplin](https://joplin.cozic.net/) | | [Upstream](https://github.com/laurent22/joplin) | | +| Joplin-web | | [Upstream](https://github.com/foxmask/joplin-web) | | +| [JS Bin](https://jsbin.com/) | | [Upstream](https://github.com/jsbin/jsbin) | | +| [Karaoke-forever](https://www.karaoke-forever.com/) | Organize karaoke parties | [Upstream](https://github.com/bhj/karaoke-forever) | | +| kiwiirc | Web IRC client | | [Package Draft](https://github.com/YunoHost-Apps/kiwiirc_ynh) | +| [Kiwix](https://www.kiwix.org/) | Offline Wikipedia or other sites | [Upstream](https://github.com/kiwix/) | | +| [Known](https://withknown.com) | | [Upstream](https://github.com/idno/known) | | +| [kodi](https://kodi.tv) | Media center application | | [Package Draft](https://github.com/YunoHost-Apps/kodi_ynh) | +| [Koel](https://koel.phanan.net) | | [Upstream](https://github.com/phanan/koel) | | +| Kontalk | | [Upstream](https://github.com/kontalk) | | +| [Koozip](https://koozic.net) | | [Upstream](https://github.com/DocMarty84/koozic) | | +| L'atelier | | [Upstream](https://github.com/jbl2024/latelier) | | +| [LBCAlerte](https://alerte.ilatumi.org/) | | | [Package Draft](https://github.com/YunoHost-Apps/LBCAlerte_ynh) | +| lektor | A static website generator | | [Package Draft](https://github.com/YunoHost-Apps/lektor_ynh) | +| [Lemmy](https://dev.lemmy.ml) | A federated alternative to Reddit | [Upstream](https://github.com/dessalines/lemmy) | | +| [Lessy](https://lessy.io) | | [Upstream](https://github.com/lessy-community/lessy) | | +| [LibreOffice Online](https://www.libreoffice.org/download/libreoffice-online/) | | | | +| linuxdash | Low-overhead monitoring web dashboard | [Upstream](https://github.com/afaqurk/linux-dash) | [Package Draft](https://github.com/YunoHost-Apps/linuxdash_ynh) | +| [LiquidSoap](https://www.liquidsoap.info/) | Audio and video streaming language | [Upstream](https://github.com/savonet/liquidsoap) | | +| LocomotiveCMS | | [Upstream](https://github.com/locomotivecms/engine) | | +| [Loki](https://docs.loki.network/ServiceNodes/DebianPackageGuide/)| Service node for the Loki Network | [Upstream](https://github.com/loki-project/) | | +| [Loomio](https://www.loomio.org) | | [Upstream](https://github.com/loomio/loomio/) | | +| [MaidSafe](https://maidsafe.net) | | [Upstream](https://github.com/maidsafe) | | +| [mailman3](https://docs.mailman3.org/) | Electronic mailing list manager | | [Package Draft](https://github.com/YunoHost-Apps/mailman3_ynh) | +| [Mailpile](https://www.mailpile.is) | | [Upstream](https://github.com/mailpile/Mailpile) | | +| [Mailtrain](https://mailtrain.org/) | | [Upstream](https://github.com/Mailtrain-org/mailtrain) | | +| [Mautic](https://github.com/mautic/mautic) | | | | +| mediadrop | Video Platform | | [Package Draft](https://github.com/YunoHost-Apps/mediadrop_ynh) | +| [Mediagoblin](https://mediagoblin.org/) | Video streaming platform | [Upstream](https://savannah.gnu.org/projects/mediagoblin) | | +| [medusa](https://pymedusa.com/) | Automatic TV shows downloader | | [Package Draft](https://github.com/guigot/medusa_ynh) | +| microblog.pub | | [Upstream](https://github.com/tsileo/microblog.pub) | | +| miniflux | Minimal RSS reader | | [Package Draft](https://github.com/mat-mo/miniflux_ynh) | +| [Mirakel](https://mirakel.azapps.de/taskwarrior.html) | | [Upstream](https://github.com/GothenburgBitFactory/taskwarrior) | | +| modernpaste | A modern, feature-rich Pastebin alternative | [Upstream](https://github.com/LINKIWI/modern-paste) | [Package Draft](https://github.com/YunoHost-Apps/modernpaste_ynh) | +| [Modoboa](https://modoboa.org) | | [Upstream](https://github.com/modoboa/) | | +| [MongoPassion](https://mongopassion.24eme.fr/demo/) | Web-based project for management of MongoDB databases | [Upstream](https://github.com/24eme/MongoPassion) | | +| [mopidy](https://www.mopidy.com/) | An extensible music server | | [Package Draft](https://github.com/YunoHost-Apps/mopidy_ynh) | +| [mosquitto](https://mosquitto.org) | | | [Package Draft](https://github.com/YunoHost-Apps/mosquitto_ynh) | +| MotionEye | | [Upstream](https://github.com/ccrisan/motioneye) | | +| mumble_admin_plugin | Mumble-server web interface | | [Package Draft](https://github.com/matlink/mumble_admin_plugin_ynh) | +| Mumble-web | Mumble web interface | [Upstream](https://github.com/Johni0702/mumble-web) | [Package Draft](https://github.com/YunoHost-Apps/mumbleserver_ynh/pull/32) | +| munin | Resource monitoring tool | | [Package Draft](https://github.com/YunoHost-Apps/munin_ynh) | +| Museek+ | | [Upstream](https://github.com/eLvErDe/museek-plus) | | +| [MyBB](https://mybb.com/) | | [Upstream](https://github.com/mybb) | | +| mycryptochat | Encrypted IM | | [Package Draft](https://github.com/mrtino/mycryptochat_ynh) | +| mx-puppet-discord | A bridge between Matrix and Discord | [Upstream](https://github.com/matrix-discord/mx-puppet-discord) | | +| [N8n.io](https://n8n.io) | | | | +| Netrunner | | [Upstream](https://github.com/mtgred/netrunner) | | +| nexusoss | Sonatype Nexus Repository manager OSS | | [Package Draft](https://github.com/YunoHost-Apps/nexusoss_ynh) | +| Nitter | | [Upstream](https://github.com/zedeus/nitter) | | +| [ntopng](https://www.ntop.org/) | | | [Package Draft](https://github.com/YunoHost-Apps/ntopng_ynh) | +| [Odoo](https://www.odoo.com/) | An open source ERP and CRM | [Upstream](https://github.com/odoo/odoo) | [Package Draft](https://github.com/YunoHost-Apps/libreerp_ynh) | +| ofbiz | Apache-OFBiz ERP | | [Package Draft](https://github.com/nomakaFr/ofbiz_ynh) | +| OhMyForm | | [Upstream](https://github.com/ohmyform) | | +| Ombi | | [Upstream](https://github.com/tidusjar/Ombi) | | +| [Omeka S](https://omeka.org/s/) | | [Upstream](https://github.com/omeka/omeka-s) | | +| [OpenBazaar](https://openbazaar.org) | | [Upstream](https://github.com/openbazaar) | | +| [OpenCart](https://www.opencart.com) | | [Upstream](https://github.com/opencart/opencart) | | +| [OpenEats](https://open-eats.github.io/) | | [Upstream](https://github.com/open-eats/OpenEats) | | +| [openHAB](https://www.openhab.org/) | Smart home platform | [Upstream](https://github.com/openhab) | | +| openid-simplesamlphp | OpenID provider based on SimpleSAMLphp | | [Package Draft](https://github.com/julienmalik/openid-simplesamlphp_ynh) | +| [OpenNote](https://foxusa.github.io/OpenNote/OpenNote/) | An alternative to Microsoft OneNote and EverNote | | [Package Draft](https://github.com/YunoHost-Apps/OpenNote_ynh) | +| openproject | | [Upstream](https://github.com/opf/openproject) | [Package Draft](https://github.com/moutonjr/openproject_ynh) | +| OpenSourceBilling | | [Upstream](https://github.com/vteams/open-source-billing) | | +| [osada](https://zotlabs.com/osada/) | A decentralized publication platform and social network | | [Package Draft](https://github.com/YunoHost-Apps/osada_ynh) | +| [osjs](https://www.os-js.org/) | Desktop you have access to through your web-browser | | [Package Draft](https://github.com/YunoHost-Apps/osjs_ynh) | +| [osmw](https://www.openstreetmap.org/) | Cartography software | | [Package Draft](https://github.com/YunoHost-Apps/osmw_ynh) | +| OSRM | | [Upstream](https://github.com/Project-OSRM/osrm-backend) | | +| [OX Open-Xchange](https://www.open-xchange.com) | Linux groupware solution | [Upstream](https://github.com/open-xchange/) | | +| [Padloc](https://padloc.app/) | Simple, secure password and data management for individuals and teams | [Upstream](https://github.com/padloc/padloc) | | +| [pagure](https://pagure.io/pagure) | A Git forge | | [Package Draft](https://github.com/YunoHost-Apps/pagure_ynh) | +| Paperless | | [Upstream](https://github.com/danielquinn/paperless) | | +| [Paperwork](https://paperwork.cloud) | | [Upstream](https://github.com/paperwork/paperwork) | | +| [Passbolt](https://www.passbolt.com) | Password manager | [Upstream](https://github.com/passbolt) | | +| Pelias | | [Upstream](https://github.com/pelias/pelias) | | +| Pelican | Pelican Static Site Generator | | [Package Draft](https://github.com/YunoHost-Apps/pelican_ynh) | +| [Photoprism](https://photoprism.org/) | | [Upstream](https://github.com/photoprism/photoprism) | | +| [phpbb](https://www.phpbb.com/) | Bulletin board software | [Upstream](https://github.com/phpbb) | [Package Draft](https://github.com/YunoHost-apps/phpbb_ynh) | +| [phpboost](https://www.phpboost.com/) | | | [Package Draft](https://github.com/YunoHost-Apps/phpboost_ynh) | +| [phpipam](https://phpipam.net/) | | | [Package Draft](https://github.com/YunoHost-Apps/phpipam_ynh) | +| phplicensewatcher | A license manager | | [Package Draft](https://github.com/YunoHost-Apps/phplicensewatcher_ynh) | +| [PHPList](https://www.phplist.com) | | [Upstream](https://github.com/phpList) | | +| [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) | | [Upstream](https://github.com/alchemy-fr/Phraseanet-Docs) | | +| [pia](https://github.com/LINCnil/pia) | A tool to help carrying out Privacy Impact Assessments | | [Package Draft](https://github.com/YunoHost-Apps/pia_ynh) | +| Pico | | [Upstream](https://github.com/picocms/Pico) | | +| Playmaker | | [Upstream](https://github.com/NoMore201/playmaker) | | +| [plonecms](plone.org) | Create a modern website with a CMS written in Python | | [Package Draft](https://github.com/YunoHost-Apps/plonecms_ynh) | +| [Presentator](https://presentator.io/) | A design collaboration platform | | | +| [prestashop](https://www.prestashop.com/) | Create an e-commerce website | | [Package Draft](https://github.com/YunoHost-Apps/prestashop_ynh) | +| [Privoxy](https://www.privoxy.org) | | | | +| [ProcessMaker](https://www.processmaker.com) | | | | +| proftpd | | | [Package Draft](https://github.com/abeudin/proftpd_ynh) | +| ProtonMail’s WebClient | | [Upstream](https://github.com/ProtonMail/WebClient) | | +| [psitransfer](https://psi.cx/tags/PsiTransfer/) | Transfer files or images without problems | | [Package Draft](https://github.com/YunoHost-Apps/psitransfer_ynh) | +| [pterodactyl](https://pterodactyl.io/) | | | [Package Draft](https://github.com/YunoHost-Apps/pterodactyl_ynh) | +| [pufferpanel](https://emby.media/) | | | [Package Draft](https://github.com/YunoHost-Apps/pufferpanel_ynh) | +| Pump.io | File sharing and synchronization | [Upstream](https://github.com/pump-io/pump.io) | | +| pydio | File sharing platform | | [Package Draft](https://github.com/YunoHost-Apps/pydio_ynh) | +| [Pydio Cells](https://pydio.com/) | | [Upstream](https://github.com/pydio/cells) | | +| [pyload](https://pyload.net/) | | [Upstream](https://github.com/pyload/pyload) | [Package Draft](https://github.com/YunoHost-Apps/pyload_ynh) | +| qBittorrent | | [Upstream](https://github.com/qbittorrent/qBittorrent) | | +| [Questions2answer](https://www.question2answer.org/) | | | | +| [racktables](https://racktables.org) | | [Upstream](https://github.com/RackTables/racktables) | | +| Radarr | | [Upstream](https://github.com/Radarr/Radarr) | | +| Race for the galaxy | | [Upstream](https://github.com/bnordli/rftg) | | +| [redmine](https://www.redmine.org/) | A flexible project management web application | | [Package Draft](https://github.com/YunoHost-Apps/redmine_ynh) | +| remoteStorage | A remoteStorage server implementation written in PHP | [Upstream](https://github.com/fkooman/php-remote-storage) | [Package Draft](https://github.com/YunoHost-Apps/RemoteStorage_ynh) | +| [Request Tracker](https://bestpractical.com) | | [Upstream](https://github.com/bestpractical/rt) | | +| [Restya](https://restya.com) | | [Upstream](https://github.com/RestyaPlatform/board/) | | +| [Retroshare](https://retroshare.cc/) | | [Upstream](https://github.com/RetroShare/RetroShare) | | +| [roadiz](https://www.roadiz.io) | Create a modern website | | [Package Draft](https://github.com/YunoHost-Apps/roadiz_ynh) | +| [rocketchat](https://rocket.chat) | A chat platform | | [Package Draft](https://github.com/YunoHost-Apps/rocketchat_ynh) | +| rs-short | An URL shortener | [Upstream](https://git.42l.fr/42l/rs-short) | | +| [rspamdui](https://rspamd.com/webui) | A web UI for the Rspamd spam filtering system | | [Package Draft](https://github.com/YunoHost-Apps/rspamdui_ynh) | +| rutorrent | Torrent client | | [Package Draft](https://github.com/CotzaDev/rutorrent_ynh) | +| rwtxt | Minimalist CMS | [Upstream](https://github.com/schollz/rwtxt) | | +| [sat](https://salut-a-toi.org) | An all-in-one tool to manage all your communications | | [Package Draft](https://github.com/YunoHost-Apps/sat_ynh) | +| [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/) | | | | +| [Schleuder](https://schleuder.org/schleuder/docs/concept.html) | A GPG-enabled mailing list manager | | | +| scm-manager | Share and manage Git, Mercurial and Subversion repositories | | [Package Draft](https://github.com/drfred1981/scm-manager_ynh) | +| scrumblr | Software for notes | | [Package Draft](https://github.com/YunoHost-Apps/scrumblr_ynh) | +| [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing) | | | | +| [seenthis](https://www.seenthis.net/) | Short-blogging destiné à la veille d’actualité | | [Package Draft](https://github.com/magikcypress/seenthis_ynh) | +| [Semantic MediaWiki](https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki) | lets you store and query data with­in the [MediaWiki](https://en.wikipedia.org/wiki/MediaWiki)'s pages | [Upstream](https://github.com/SemanticMediaWiki/SemanticMediaWiki) | | +| [shadowsocks](https://shadowsocks.org) | A SOCKS5 proxy to protect your Internet traffic | | [Package Draft](https://github.com/YunoHost-Apps/shadowsocks_ynh) | +| [ShareLatex](https://www.sharelatex.com) | | [Upstream](https://github.com/overleaf/overleaf) | | +| shinken | A flexible and scalable monitoring framework | [Upstream](https://github.com/naparuba/shinken) | [Package Draft](https://github.com/YunoHost-apps/shinken_ynh) | +| shuri | URL Shortener | [Upstream](https://github.com/pips-/shuri) | [Package Draft](https://github.com/YunoHost-Apps/shuri_ynh) | +| sickbeard | Automatic TV show downloader | | [Package Draft](https://github.com/YunoHost-Apps/sickbeard_ynh) | +| [sickrage](https://sickchill.github.io/) | Automatic TV shows downloader | | [Package Draft](https://github.com/YunoHost-Apps/sickrage_ynh) | +| simpad | Simple markdown editor | [Upstream](https://github.com/beli3ver/SiMPad) | [Package Draft](https://github.com/YunoHost-Apps/simpad_ynh) | +| [SimpleLogin](https://simplelogin.io) | Privacy-first e-mail forwarding and identity provider service | [Upstream](https://github.com/simple-login/app) | | +| [smokeping](https://oss.oetiker.ch/smokeping/) | | [Upstream](https://github.com/oetiker/SmokePing) | | +| [SocialHome](https://socialhome.network) | A federated personal profile | [Upstream](https://github.com/jaywink/socialhome) | | +| [Sonarr](https://sonarr.tv) | | [Upstream](https://github.com/Sonarr/Sonarr) | | +| [sonerezh](https://www.sonerezh.bzh) | Stream music from everywhere | | [Package Draft](https://github.com/YunoHost-Apps/sonerezh_ynh) | +| Spacedeck | A real-time collaborative whiteboard | [Upstream](https://github.com/spacedeck/spacedeck-open) | | +| sphinx | | [Upstream](https://github.com/sphinx-doc/sphinx) | [Package Draft](https://github.com/YunoHost-Apps/sphinx_ynh) | +| squid3| A caching proxy | | [Package Draft](https://github.com/YunoHost-Apps/squid3_ynh) | +| [Stackedit](https://stackedit.io) | | [Upstream](https://github.com/benweet/stackedit) | | +| [StandardNotes](https://standardfile.org/) | A clean, simple, E2E-encrypted notes app | [Upstream](https://github.com/standardnotes/web) | | +| Streisand | | [Upstream](https://github.com/jlund/streisand) | | +| studs | A survey tool, the ancestor of OpenSondage | | [Package Draft](https://github.com/YunoHost-Apps/studs_ynh) | +| subsonic | Subsonic is an open source, web-based media server | | [Package Draft](https://github.com/drfred1981/subsonic_ynh) | +| Subspace | A simple WireGuard VPN server GUI | [Upstream](https://github.com/subspacecloud/subspace) | | +| Sydent | Identity-serverfor matrix | [Upstream](https://github.com/matrix-org/sydent) | | +| [sympa](https://www.sympa.org/) | Mailing List manager | | [Package Draft](https://github.com/YunoHost-Apps/sympa_ynh) | +| Synapse-Admin | Management GUI for matrix-synapse | [Upstream](https://github.com/Awesome-Technologies/synapse-admin) | | +| [Syspass](https://www.syspass.org/) | | [Upstream](https://github.com/nuxsmin/sysPass) | | +| [Taiga](https://taiga.io) | | [Upstream](https://github.com/taigaio/) | | +| [Taskwarrior](https://taskwarrior.org) | | [Upstream](https://github.com/GothenburgBitFactory/taskwarrior) | | +| [teampass](https://www.teampass.net) | Passwords Manager | | [Package Draft](https://github.com/YunoHost-Apps/teampass_ynh) | +| [Technitium DNS](https://technitium.com/dns/) | | [Upstream](https://github.com/TechnitiumSoftware/DnsServer) | | +| [Teddy.io](https://teedy.io/) | Document manager | [Upstream](https://github.com/sismics/docs) | | +| telegram_chatbot | Telegram chatbot - mini chatbot for Telegram | | [Package Draft](https://github.com/YunoHost-Apps/telegram_chatbot_ynh) | +| TellForm | | [Upstream](https://github.com/tellform/tellform) | | +| [tes3mp](https://tes3mp.com/) | | | [Package Draft](https://github.com/YunoHost-Apps/tes3mp_ynh) | +|[Theia-IDE](https://theia-ide.org/) | VS Code-like cloud IDE |[Upstream](https://hub.docker.com/r/theiaide/theia-full)| | +| Thredded | | [Upstream](https://github.com/thredded/thredded) | | +| Tinylist | | [Upstream](https://github.com/baggachipz/tinylist) | | +| [TMate](https://tmate.io/) | | [Upstream](https://github.com/tmate-io/tmate) | | +| torrelay | | | [Package Draft](https://github.com/matlink/torrelay_ynh) | +| Tracim | | [Upstream](https://github.com/tracim/tracim) | | +| Traccar | Modern GPS Tracking Platform | [Upstream](https://github.com/traccar/traccar) | | +| transpay | Interface to receive and manage donations with Stripe | | [Package Draft](https://github.com/YunoHost-Apps/transpay_ynh) | +| transwhat | A gateway to WhatsApp from Jabber | | [Package Draft](https://github.com/Josue-T/transwhat_ynh) | +| Trilium Notes | Build large personal knowledge base with notes | [Upstream](https://github.com/zadam/trilium) | | +| [Tryton](https://www.tryton.org/) | A solid ERP system | | | +| [turtl](https://turtlapp.com/) | A secure collaboratite notebook | | [Package Draft](https://github.com/YunoHost-Apps/turtl_ynh) | +| tutao | End-to-end encrypted e-mail client | [Upstream](https://github.com/tutao/tutanota/) | [Package Draft](https://github.com/YunoHost-Apps/tutao_ynh) | +| [Twake](https://twake.app/fr/home)| All of the organizational tools you need to make your projects succeed brought together on one platform.| | | +| Twister | | [Upstream](https://github.com/miguelfreitas/twister-core/) | | +| [TwitRSS.me](https://twitrss.me/) | Create RSS feeds from Twitter | [Upstream](https://github.com/ciderpunx/twitrssme) | | +| [umap](https://umap.openstreetmap.fr/) | Cartography software | | [Package Draft](https://github.com/YunoHost-Apps/umap_ynh) | +| [unbound](https://nlnetlabs.nl/projects/unbound/about/) | | | [Package Draft](https://github.com/YunoHost-Apps/unbound_ynh) | +| [upmpdcli](https://www.lesbonscomptes.com/upmpdcli/) | | [Upstream](https://framagit.org/medoc92/upmpdcli) | | +| [Uwazi](https://www.uwazi.io/) | | [Upstream](https://github.com/huridocs/uwazi) | | +| [Volumio](https://volumio.org) | | [Upstream](https://github.com/volumio) | | +| [vpnserver](https://openvpn.net) | Create/provide VPNs from your server | | [Package Draft](https://github.com/YunoHost-Apps/vpnserver_ynh) | +| [Webhook.site](https://docs.webhook.site/) | | [Upstream](https://github.com/fredsted/webhook.site) | | +| [WebODF](https://webodf.org) | | [Upstream](https://github.com/webodf/WebODF) | | +| webogram | Webogram - a new era of messaging | [Upstream](https://github.com/zhukov/webogram) | [Package Draft](https://github.com/YunoHost-Apps/webogram_ynh) | +| [WebThings Gateway](https://iot.mozilla.org/gateway/) | | [Upstream](https://github.com/mozilla-iot/) | | +| [webtrees](https://www.webtrees.net) | Web-based genealogy | | [Package Draft](https://github.com/YunoHost-Apps/webtrees_ynh) | +| Whoogle | A metasearch engine | [Upstream](https://github.com/benbusby/whoogle-search) | | +| [wildfly](https://wildfly.org) | | | [Package Draft](https://github.com/YunoHost-Apps/wildfly_ynh) | +| [Wireguard](https://www.wireguard.com/) | | [Upstream](https://git.zx2c4.com/WireGuard/) | | +| Wisemapping | An online mind mapping editor | [Upstream](https://bitbucket.org/wisemapping/wisemapping-open-source) | [Package Draft](https://github.com/YunoHost-Apps/wisemapping_ynh) | +| Xibo | A FLOSS digital signage solution | [Upstream](https://github.com/xibosignage) | | +| [Xonotic](https://xonotic.org) | | [Upstream](https://gitlab.com/xonotic) | | +| yacy | Free and decentrelized search engine | | [Package Draft](https://github.com/YunoHost-Apps/yacy_ynh) | +| [Yggdrasil](https://yggdrasil-network.github.io/) | | [Upstream](https://github.com/yggdrasil-network/yggdrasil-go) | | +| youtube-dl-webui | Web interface for youtube-dl | | [Package Draft](https://github.com/YunoHost-Apps/youtube-dl-webui_ynh) | +| yunofav | A page of favorite links | | [Package Draft](https://github.com/YunoHost-Apps/yunofav_ynh) | +| [yunohost](https://yunohost.org) | YunoHost in YunoHost, crazy :D ! | | [Package Draft](https://github.com/aymhce/yunohost_ynh) | +| Zammad | | [Upstream](https://github.com/zammad/zammad) | | +| [Zola](https://www.getzola.org/) | Static site generator | | | +| zomburl | An URL shortening service | | [Package Draft](https://github.com/courgette/zomburl_ynh) | +| Zoneminder | | [Upstream](https://github.com/ZoneMinder/zoneminder) | | +| [Zulip](https://zulipchat.com/) | | [Upstream](https://github.com/zulip/zulip) | | +| Zusam | A truly private space for you and your friends | [Upstream](https://github.com/zusam/zusam) | [Package Draft](https://github.com/zusam/zusam_ynh) | + +### Other references listing self-hosted applications + +- [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 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) diff --git a/appsdoc.md b/appsdoc.md new file mode 100644 index 00000000..82317bf4 --- /dev/null +++ b/appsdoc.md @@ -0,0 +1,119 @@ +- [Adminer](app_adminer) +- [Airsonic](app_airsonic) +- [Ampache](app_ampache) +- [Anarchism](app_anarchism) +- [Anfora](app_anfora) +- [Archivist](app_archivist) +- [Baïkal](app_baikal) +- [Bitwarden](app_bitwarden) +- [Bibliogram](app_bibliogram) +- [Bludit](app_bludit) +- [Blogotext](app_blogotext) +- [BookStack](app_bookstack) +- [Borg](app_borg) +- [BoZoN](app_bozon) +- [Calibre-Web](app_calibreweb) +- [Cheky](app_cheky) +- [CiviCRM](app_civicrm_drupal7) +- [CodiMD](app_codimd) +- [Collabora](app_collabora) +- [Collabora (in Docker)](app_collaboradocker) +- [Concret5](app_concrete5) +- [Cowyo](app_cowyo) +- [Custom Webapp](app_my_webapp) +- [Diagrams.net](app_diagramsnet) +- [Discourse](app_discourse) +- [Distbin](app_distbin) +- [Dokuwiki](app_dokuwiki) +- [Dolibarr](app_dolibarr) +- [Dotclear 2](app_dotclear2) +- [Drupal](app_drupal) +- [Drupal 7](app_drupal7) +- [Etherpad (with mypads's plugin)](app_etherpad_mypads) +- [Fallback](app_fallback) +- [FirefoxSync](app_ffsync) +- [Fireflyiii](app_firefly-iii) +- [Flarum](app_flarum) +- [FluxBB](app_fluxbb) +- [Framaforms](app_framaforms) +- [FreshRSS](app_freshrss) +- [Friendica](app_friendica) +- [Funkwhale](app_funkwhale) +- [Galene](app_galene) +- [Garradin](app_garradin) +- [Gitea](app_gitea) +- [GitLab](app_gitlab) +- [GitLab Runner](app_gitlab-runner) +- [Glowing Bear](app_glowing_bear) +- [Gogs](app_gogs) +- [Gotify](app_gotify) +- [Grav](app_grav) +- [Halcyon](app_halcyon) +- [Haste](app_haste) +- [HedgeDoc](app_hedgedoc) +- [Hextris](app_hextris) +- [Horde](app_horde) +- [Hubzilla](app_hubzilla) +- [InvoiceNinja](app_invoiceninja) +- [Jappix](app_jappix) +- [Jirafeau](app_jirafeau) +- [Jitsi](app_jitsi) +- [JupyterLab](app_jupyterlab) +- [Keeweb](app_keeweb) +- [Kresus](app_kresus) +- [Leed](app_leed) +- [Limesurvey](app_limesurvey) +- [Lstu](app_lstu) +- [Lufi](app_lufi) +- [Lutim](app_lutim) +- [Lychee](app_lychee) +- [Mattermost](app_mattermost) +- [Mailman](app_mailman) +- [Mantis](app_mantis) +- [Matomo](app_matomo) +- [Mattermost](app_mattermost) +- [Mediawiki](app_mediawiki) +- [Mindmaps](app_mindmaps) +- [Minetest](app_minetest) +- [Minidlna](app_minidlna) +- [Mobilizon](app_mobilizon) +- [Moodle](app_moodle) +- [Mumble](app_mumbleserver) +- [Navidrome](app_navidrome) +- [Netdata](app_netdata) +- [Nextcloud](app_nextcloud) +- [Noalyss](app_noalyss) +- [OnlyOffice](app_onlyoffice) +- [Opensondage](app_opensondage) +- [OSticket](app_osticket) +- [Peertube](app_peertube) +- [PHPmyadmin](app_phpmyadmin) +- [PHPsysinfo](app_phpsysinfo) +- [Pihole](app_pihole) +- [Piwigo](app_piwigo) +- [Pleroma](app_pleroma) +- [Plume](app_plume) +- [Pluxml](app_pluxml) +- [PrivateBin](app_privatebin) +- [Radicale](app_radicale) +- [Rainloop](app_rainloop) +- [Searx](app_searx) +- [Shaarli](app_shaarli) +- [Shellinabox](app_shellinabox) +- [Simple-torrent](app_simple-torrent) +- [Slingcode](app_slingcode) +- [Sogo](app_sogo) +- [Spip](app_spip) +- [Strut](app_strut) +- [Transmission](app_transmission) +- [TinyTinyRSS](app_ttrss) +- [Unattended upgrades](app_unattended_upgrades) +- [Wallabag2](app_wallabag2) +- [Weblate](app_weblate) +- [Wekan](app_wekan) +- [Wiki.js](app_wikijs) +- [Webtrees](app_webtrees) +- [WordPress](app_wordpress) +- [Yunofav](app_yunofav) +- [Zerobin](app_zerobin) +- (Note that you can add a new page here if you want to start document in another `app`...) diff --git a/backup.md b/backup.md new file mode 100644 index 00000000..611cf67d --- /dev/null +++ b/backup.md @@ -0,0 +1,170 @@ +# Backing up your server and apps + +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. + +![picture of YunoHost's backup pannel](/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 + yunohost backup create + ``` + +- Backing up only apps + + ```bash + yunohost backup create --apps + ``` + +- Backing up only two apps (wordpress and shaarli) + + ```bash + yunohost backup create --apps wordpress shaarli + ``` + +- Backing up only mails + + ```bash + yunohost backup create --system data_mail + ``` + +- Backing up mails and wordpress + + ```bash + yunohost backup create --system data_mail --apps wordpress + ``` + +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. If you want you can backup the app without the user data. This practice is referred to "backing up only the core" (of the app). +When performing an upgrade, apps with large quantity of data will, usually, do a backup without those data. + +To manually disable the backup of large data, for application that implement that feature, you can set the variable `BACKUP_CORE_ONLY`. To do so, the variable have to be set before the backup command: `sudo BACKUP_CORE_ONLY=1 yunohost backup create --apps nextcloud`. Be careful though that mean you will have to backup user data yourself. But doing so, you will be able to do incremental or differential backups of this large amount of data (which is not an option provided by yunohost yet). + +## 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 ` from the command line. By default, backups are stored in `/home/yunohost.backup/archives/`. + +Currently, the most accessible way to download archives is to use the program FileZilla as explained in [this page](/filezilla). + +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. + +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 GNU/Linux, you should be able to run the following to download a specific backup: + +```bash +scp admin@your.domain.tld:/home/yunohost.backup/archives/.tar.gz ./ +``` + +Similarly, you can upload a backup from a machine to your server with: + +```bash +scp /path/to/your/.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/ +``` + +## 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 on 'Restore'. + +![picture of YunoHost's restore pannel](/images/restore.png) + +### From the command line + +From the command line, you can run `yunohost backup restore ` (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. + +### Constraints + +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`. Then, **instead of** `yunohost tools postinstall` you can run: + +```bash +yunohost backup restore +``` + +Note: If your archive isn't in `/home/yunohost.backup/archives`, you can create the directory, move the archive into it, and restore it like this: + +```bash +mkdir -p /home/yunohost.backup/archives +mv /path/to/ /home/yunohost.backup/archives/ +yunohost backup restore +``` + +## 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, plug in the drive and make sure that next time it is mounted automatically, by following the instruction at [Adding an external storage to your server](https://yunohost.org/#/external_storage). + +Then, move the existing archives and then add a symbolic link. + +```bash +PATH_TO_DRIVE="/media/my_external_drive" # For instance, depends of where you mounted your drive +mkdir $PATH_TO_DRIVE/yunohost_backup_archives # On your external drive create the folder where the backups will go +mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives # Move the archive folder including existing backups (if you made them) to the new folder on the external drive +ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives # Create a symbolic link from the old local folder to the new folder on the external drive +``` + +### 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 +chmod +x /etc/cron.weekly/backup-wordpress +``` + +Be careful what you backup exactly and when: you don't want to end up with your whole disk space saturated because you backuped 30 GB 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: + +Alternatively, the app Archivist allows to setup a similar system: + +#### Avoiding the backup of some folders +If needed, you can specify that some `/home/user` folders are left out of the `yunohost backup` command, by creating a blank file named `.nobackup` in them. + +#### Full backup with `dd` + +If you are using an ARM board, another method for doing a full backup can be to create an image of the SD card. For this, poweroff your ARM board, get the SD card in your computer then create a full image with something like: + +```bash +dd if=/dev/mmcblk0 of=./backup.img status=progress +``` + +(replace `/dev/mmcblk0` with the actual device of your SD card) + +You can also create a compressed image using gzip this way: +```bash +dd if=/dev/mmcblk0 | gzip > ./image.gz +``` diff --git a/backup_fr.md b/backup_fr.md new file mode 100644 index 00000000..9aa81911 --- /dev/null +++ b/backup_fr.md @@ -0,0 +1,164 @@ +# Sauvegarder son serveur et ses apps + +Dans le contexte de l'auto-hébergement, les sauvegardes (backup) sont un élément important pour pallier les événements inattendus (incendies, corruption de base de données, perte d'accès au serveur, serveur compromis...). La politique de sauvegardes à mettre en place dépend de l'importance des services et des données que vous gérez. Par exemple, sauvegarder un serveur de test aura peu d'intérêt, tandis que vous voudrez être très prudent si vous gérez des données critiques pour une association ou une entreprise - et dans ce genre de cas, vous souhaiterez stocker les sauvegardes *dans un endroit différent*. + +## 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 disponibles via celle-ci. + +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 les éléments à 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 apps) +```bash +yunohost backup create +``` + +- Sauvegarder seulement les apps +```bash +yunohost backup create --apps +``` + +- Sauvegarder seulement deux apps (WordPress et Shaarli) +```bash +yunohost backup create --apps wordpress shaarli +``` + +- Sauvegarder seulement les mails +```bash +yunohost backup create --system data_mail +``` + +- Sauvegarder les mails et WordPress +```bash +yunohost backup create --system data_mail --apps wordpress +``` + +Pour plus d'informations et d'options sur la création d'archives, consultez `yunohost backup create --help`. Vous pouvez également lister les parties du système qui sont sauvegardables avec `yunohost hook list backup`. + +#### Configuration spécifique à certaines apps + +Certaines apps comme Nextcloud sont potentiellement rattachées à des quantités importantes de données. Il est possible de ne pas les sauvegarder par défaut. Dans ce cas, on dit que l'app "sauvegarde uniquement le core" (de l'app). +Lors d'une mise à jour, les apps contenant une grande quantité de données effectuent généralement une sauvegarde sans ces données. + +Pour désactiver manuellement la sauvegarde des données volumineuses, pour les applications qui implémentent cette fonctionnalité, vous pouvez définir la variable `BACKUP_CORE_ONLY`. Pour ce faire, la variable doit être définie avant la commande de backup : `sudo BACKUP_CORE_ONLY=1 yunohost backup create --apps nextcloud`. Soyez prudent : il vous faudra alors sauvegarder vous-même les données des utilisateurs de Nextcloud. Choisir ce type de sauvegarde vous permettra de mettre en place manuellement des sauvegardes incrémentielles ou différentielles (que YunoHost ne permet pas encore de faire automatiquement). + +## 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 ` depuis la ligne de commande. Par défaut, les sauvegardes sont stockées dans `/home/yunohost.backup/archives/`. + +À l'heure actuelle, la solution la plus accessible pour récupérer les sauvegardes est d'utiliser le programme FileZilla comme expliqué dans [cette page](/filezilla). + +Une autre solution alternative consiste à installer une application comme Nextcloud et à la configurer pour être en mesure d'accéder aux fichiers dans `/home/yunohost.backup/archives/` depuis un navigateur web. + +Enfin, il est possible d'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 GNU/Linux, vous pouvez utiliser la commande suivante pour télécharger une archive : + +```bash +scp admin@your.domain.tld:/home/yunohost.backup/archives/.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/.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/ +``` + +## 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 ` (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 serveur et la placer dans `/home/yunohost.backup/archives`. + +Ensuite, **à la place de** `yunohost tools postinstall`, réalisez la restauration de l'archive téléversée par cette ligne de commande avec le nom de l'archive (sans le `.tar.gz`) : + +```bash +yunohost backup restore +``` + +Note: si votre archive n'est pas dans `/home/yunohost.backup/archives`, vous pouvez créer le répertoire et déplacer l'archive comme ceci : + +```bash +mkdir -p /home/yunohost.backup/archives +mv /chemin/vers/ /home/yunohost.backup/archives/ +yunohost backup restore +``` + +## 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 +chmod +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 + +#### Éviter de sauvegarder certains dossiers +Si besoin, vous pouvez spécifier que certains dossiers `home` d'utilisateurs ne soient pas sauvegardés par la commande `yunohost backup`, en créant un fichier vide nommé `.nobackup` à l'intérieur. + +#### Backup complet avec `dd` + +Si vous êtes sur une carte ARM, une autre méthode pour créer une sauvegarde complète consiste à créer une image (copie) de la carte SD. Pour cela, éteignez votre serveur, insérez la carte SD dans votre ordinateur et créez une image avec une commande comme : + +```bash +dd if=/dev/mmcblk0 of=./backup.img status=progress +``` + +(remplacez `/dev/mmcblk0` par le vrai nom de votre carte SD) + +Vous pouvez aussi compresser l'image à l'aide de gzip : + +```bash +dd if=/dev/mmcblk0 | gzip > ./image.gz +``` diff --git a/backup_it.md b/backup_it.md new file mode 100644 index 00000000..1dfc3c28 --- /dev/null +++ b/backup_it.md @@ -0,0 +1,169 @@ +# Eseguire il backup del vostro server e delle app + +Eseguire il backup del vostro server, delle app e dei dati è un compito importante nell'amministrazione di un server poiché vi protegge da eventi inaspettati ma sempre possibili (come server distrutto da un incendio, corruzione del database, perdita delle credenziali di accesso, compromissione del server e altro). La policy di backup che adotterete dipende dall'importanza dei dati che state gestendo: ad esempio non sarà tanto importante avere il backup di un server di prova mentre lo sarà per un server contenente dati importanti per un'associazione o una ditta e sarà altrettanto importante tenere questo backup *in un luogo fisico diverso dal server stesso*. + +## I backup di YunoHost + +YunoHost fornisce un sistema di backup che vi permette di fare il backup (e il suo ripristino) della configurazione e dei dati (come ad esempio le email) e delle app che lo supportano. + +Si possono gestire i backup sia da riga di comando (`yunohost backup --help`) sia dalla pagina web di amministrazione (nella sezione Backup) anche se alcune possibilità non sono disponibili in questo modo. + +Il metodo di default attuale crea degli archivi `.tar.gz` contenenti tutti i file del backup stesso. Nel futuro YunoHost ha in progetto di usare [Borg](https://www.borgbackup.org/) che è una soluzione più flessibile, efficiente e potente. + +## Creare i backup + +### Dalla pagina web di amministrazione + +Potete creare gli archivi di backup dalla pagina web di amministrazione andando in Backup > Archivi locali e cliccare su "Nuovo backup". Vi verrà chiesto di selezionare quale configurazione, dati e di quale app volete fare il backup. + +![picture of YunoHost's backup pannel](/images/backup.png) + +### Dalla riga di comando + +Potete fare un nuovo archivio di backup dalla riga di comando. Questi sono alcuni esempi di comandi e i relativi risultati: + + +- Esecuzione di un backup completo (tutti i componenti del sistema e delle app): + + ```bash + yunohost backup create + ``` + +- Backup delle sole app + + ```bash + yunohost backup create --apps + ``` + +- Backup di sole due app (wordpress e shaarli) + + ```bash + yunohost backup create --apps wordpress shaarli + ``` + +- Backup solo delle email + + ```bash + yunohost backup create --system data_mail + ``` + +- Backup delle email e wordpress + + ```bash + yunohost backup create --system data_mail --apps wordpress + ``` + +Per maggiori informazioni e opzioni sulla creazione di backup leggete `yunohost backup create --help`. Potrete anche elencare le parti del sistema delle quali si può farne il backup con `yunohost hook list backup`. + + +### Configurazioni specifiche per le app + +Alcune app come ad esempio Nextcloud possono contenere grandi quantità di dati. È possibile in questi casi eseguire il backup dell'app senza i dati degli utenti, modalità che viene indicata come "backing up only the core" (delle app). +Eseguendo un aggiornamento, delle app con grandi quantità di dati normalmente verrà eseguito un backup senza questi dati. + +Per disabilitare esplicitamente il backup di grandi quantità di dati, per le applicazioni che implementano questa possibilità, dovete impostare la variabile `BACKUP_CORE_ONLY` prima di eseguire il comando di backup: `sudo BACKUP_CORE_ONLY=1 yunohost backup create --apps nextcloud`. Fate attenzione però perché dovrete fare il backup di questi dati autonomamente: è possibile eseguire questi backup, di tipo incrementale o differenziale, opzione che però non è ancora provvista da YunoHost. + + +## Download e upload dei backup + +Dopo aver creato gli archivi di backup è possibile elencarli e ispezionarli sia dalla pagina web di amministrazione relativa sia dalla riga di comando con i comandi `yunohost backup list` e `yunohost backup info `. Di default i backup sono copiati nella directory `/home/yunohost.backup/archives/`. + +Attualmente il modo più semplice per scaricare gli archivi è usando il programma FileZilla (vedi [questa pagina](/filezilla)). + +Una soluzione alternativa è quella di installare Netxcloud o un'applicazione simile e configurarle per accedere ai file contenuti in `/home/yunohost.backup/archives/` da un browser. + + +Un'altra soluzione è quella di usare `scp` (un programma che si basa su [`ssh`](/ssh)) per copiare i file fra due computer usando la riga di comando. In questo modo usando un computer con GNU/Linux potete copiare uno specifico backup con questo comando: + +```bash +scp admin@your.domain.tld:/home/yunohost.backup/archives/.tar.gz ./ +``` + +Allo stesso modo potete copiare da un computer al vostro server con questo comando: + +```bash +scp /path/to/your/.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/ +``` + +## Ripristinare i backup + +### Dalla pagina web di amministrazione + +Dovete andare in Backup > Archivi locali e selezionare il vostro archivio. È possibile selezionare ciò che volete ripristinare e poi cliccare su 'Ripristina'. + + +![picture of YunoHost's restore pannel](/images/restore.png) + +### Dalla riga di comando + +Dalla riga di comando date il comando `yunohost backup restore ` (senza il `.tar.gz`) per ripristinare un archivio. Così come `yunohost backup create`, questo comando ripristinerà di default tutto il contenuto dell'archivio; se invece volete ripristinare solo alcuni file potete usare ad esempio il comando `yunohost backup restore --apps wordpress` per ripristinare esclusivamente wordpress. + + +### Limiti + +Per ripristinare una app, il dominio sul quale era stata installata dovrà essere già stato configurato oppure dovrete avere già ripristinato la configurazione di sistema relativa. Inoltre non è possibile ripristinare una app che è già installata ... il che comporta che se volete ripristinare una versione passata della app dovrete prima disinstallarla. + + +### Ripristino durante il postinstall + +È possibile ripristinare un archivio completo *invece* di eseguire il passaggio di postinstall. Questo è utile se volete reinstallare un sistema interamente da un backup preesistente. Per fare questo dovrete copiare l'archivio sul server nella directory `/home/yunohost.backup/archives` e poi, **invece di dare il comando** `yunohost tools postinstall` darete il comando: + + +```bash +yunohost backup restore +``` + +Nota: se il vostro archivio non si trova in `/home/yunohost.backup/archives` potete specificare il path giusto con: + + +```bash +yunohost backup restore /path/to/ +``` + +## Ulteriori possibilità + +### Tenere i backup su un disco diverso + +Potete connettere e montare un disco esterno per tenerci gli archivi di backup (oltre a tutto il resto): per fare questo prima spostate gli archivi e poi aggiungete un link simbolico. + + +```bash +PATH_TO_DRIVE="/media/my_external_drive" # Come esempio, dipende da dove monterete il vostro disco +mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives +ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives +``` + +### Backup automatici + +È possibile aggiungere un semplice job di cron per creare i backup automaticamente. Ad esempio per fare il backup di wordpress su base settimanale create il file `/etc/cron.weekly/backup-wordpress` con queste righe: + +```bash +#!/bin/bash +yunohost backup create --apps wordpress +``` + +e poi rendetelo eseguibile: + +```bash +chmod +x /etc/cron.weekly/backup-wordpress +``` + +Prestate attenzione a ciò di cui fate il backup e quando perché altrimenti è possibile esaurire lo spazio del vostro disco eseguendo, ad esempio, 30 Gb di backup ogni giorno. + + +#### Backup del server su un server remoto + +Potete seguire questo tutorial sul forum per impostare Borg fra due server: + +Alternativamente, la app Archivist permette di impostare un sistema simile: + +#### Backup completo con `dd` + +Se state usando una board ARM un altro metodo per eseguire un backup completo è quello di creare un'immagine della card SD. Per fare questo innanzitutto spegnete la vostra board ARM, prendete la card SD e createne un'immagine completa con un comando come il seguente: + + +```bash +dd if=/dev/mmcblk0 of=./backup.img status=progress +``` + +(modificate `/dev/mmcblk0` con il device reale della vostra card) \ No newline at end of file diff --git a/blacklist_forms.md b/blacklist_forms.md new file mode 100644 index 00000000..f67eeaa5 --- /dev/null +++ b/blacklist_forms.md @@ -0,0 +1,20 @@ +# Blacklist forms + +It could happen sometimes that your IP is blacklisted by some email provider, or anti-spam services. + +## Test your server + +* [Test sending an email](https://www.mail-tester.com) +- [Test from an IP address](http://whatismyipaddress.com/blacklist-check) + +Here is some forms that could help you remove your IP address from these lists + +## Email providers + +* [Microsoft](https://support.microsoft.com/en-us/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=en-us) +* [GMail](https://support.google.com/mail/contact/msgdelivery) + +## Anti-spam services + +* [SpamHaus](http://www.spamhaus.org/lookup) +* http://whatismyipaddress.com/blacklist-check diff --git a/blacklist_forms_fr.md b/blacklist_forms_fr.md new file mode 100644 index 00000000..f7c9f1b1 --- /dev/null +++ b/blacklist_forms_fr.md @@ -0,0 +1,23 @@ +# Formulaires de retrait de liste noire + +Il peut arriver que votre serveur (son adresse IP) soit ajouté à la liste noire de certains fournisseurs d’adresse de courrier électronique ou de services anti-spam. Les courriels envoyés à ces adresses sont alors filtrés et n’arrivent pas à destination. + +#### Testez votre serveur +Pour tester si votre serveur est sur une liste noire, vous pouvez utiliser les outils suivants : +* [Test en envoyant un email](https://www.mail-tester.com) +* [Test à partir de l’adresse IP](http://whatismyipaddress.com/blacklist-check) + +Le cas échéant, voici certains des formulaires vous permettant de retirer votre adresse IP de ces listes : + +##### Fournisseurs Email + +* [Microsoft](https://support.microsoft.com/en-us/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=en-us) +* [GMail](https://support.google.com/mail/contact/msgdelivery) + +##### Services anti-spam + +* [SpamHaus](http://www.spamhaus.org/lookup) + +Si le fournisseur vous concernant n’apparaît pas dans la liste, cherchez le formulaire adéquat, il existe probablement. + + diff --git a/boot_and_graphical_install.md b/boot_and_graphical_install.md new file mode 100644 index 00000000..de3b7dec --- /dev/null +++ b/boot_and_graphical_install.md @@ -0,0 +1,52 @@ +# Graphical installation + +Now that your YunoHost install medium, you can start with the installation. + +## 1. Plug the network cable + +If you want the network configuration to be set up automatically, you have to plug your server with an **Ethernet** cable **right behind your main router**. + +The wireless connections are not supported yet, and if you use intermediate routers, the network ports opening will not be automatic: Your server will not be accessible externally. + + +## 2. Boot on CD / USB stick + +Boot up your server with the USB stick or a CD-ROM inserted, and select it as **bootable device** by pressing one of the following keys (hardware specific): +``````, ``````, ``````, ``````, `````` or `````` + +## 3. Launch graphical installation + +You should see a screen like this: + + + + +* Select `Graphical install` + +* Select your language, your location and your keyboard layout + +* If a partitioning screen appears, confirm. + +
Caution: This will totally erase the data on your hard drive
+ + +* Let the installer do the rest, it will download required packages and install them. + +
If it fails, you probably have an Internet connection issue. +Check that your computer is physically connected and retry.
+ +* It should reboot automatically. + +## 4. Log in + +After the reboot, you should see a black screen with a few words asking you to +log in. You can log with the following credentials : + +* User: **root** +* Password: **yunohost** + +## 5. Proceed to post-installation + +Post-install documentation + + diff --git a/boot_and_graphical_install_fr.md b/boot_and_graphical_install_fr.md new file mode 100644 index 00000000..96f1287d --- /dev/null +++ b/boot_and_graphical_install_fr.md @@ -0,0 +1,50 @@ +# Installation graphique + +Maintenant que vous possédez un support YunoHost, vous pouvez procéder à l’installation. + +## 1. Brancher le câble réseau + +Si vous souhaitez que la configuration réseau soit configurée automatiquement, vous devez brancher votre serveur avec un câble **Ethernet** directement **derrière votre routeur (ou box) principal**. + +Les connexions sans-fil ne sont pas supportées pour le moment, et si vous utilisez des routeurs intermédiaires, l’ouverture des ports réseau ne se fera pas automatiquement : votre serveur ne sera pas accessible depuis l’extérieur. + +## 2. Démarrer sur le CD/la clé USB + +Démarrez votre serveur avec la clé USB ou le CD-ROM inséré, et sélectionnez-le comme **périphérique de démarrage** en pressant l’une des touches suivantes (dépendant de votre ordinateur) : +```<Échap>```, ``````, ``````, ``````, `````` or `````` + +## 3. Lancer l’installation graphique + +Vous devriez voir un écran comme ça : + + + + +* Sélectionnez `Graphical install` + +* Sélectionnez votre langue, votre localisation et votre agencement de clavier. + +* Si un écran de partitionnement apparaît, confirmez simplement. + +
Attention : Cette opération effacera totalement les données sur votre disque dur
+ +* Laissez l’installateur faire le reste, il téléchargera les paquets requis et les installera. + +
Si cette opération échoue, vous avez probablement un problème de connexion à Internet. +Vérifiez que votre serveur est bien branché et réessayez.
+ +* L’ordinateur devrait redémarrer automatiquement à la fin de l’installation. + +## 4. Log in + +Après avoir redémarré, votre machine devrait afficher un écran noir avec +quelques mots vous invitant à vous identifier. Vous pouvez utiliser les +identifiants suivants : + +* User: **root** +* Password: **yunohost** + +## 5. Procéder à la post-installation + +Documentation de la post-installation + diff --git a/burn_or_copy_iso.md b/burn_or_copy_iso.md new file mode 100644 index 00000000..eabe16e9 --- /dev/null +++ b/burn_or_copy_iso.md @@ -0,0 +1,46 @@ +# Flashing the YunoHost ISO + +Now that you downloaded the ISO image of YunoHost, you should flash/burn it on a physical medium. Typically, this is done on a **USB stick** or an **SD card**. + + + + + + +### (Recommended) With Etcher + +Download Etcher for your operating system and install it. + + + +Plug your USB stick, select your YunoHost ISO and click "Flash" + +### With UNetbootin + +Download UNetbootin for your operating system and install it. + + + +Put your USB stick on, select your YunoHost ISO and click "OK" + + +### With `dd` + +If you are on GNU/Linux / macOS and know your way around command line, you may also flash your USB stick or SD card with `dd`. You can identify which device corresponds to your USB stick or SD card with `fdisk -l` or `lsblk`. A typical SD card name is something like `/dev/mmcblk0`. BE CAREFUL and make sure you got the right name. + +Then run : + +```bash +# Replace /dev/mmcblk0 if the name of your device is different... +dd if=/path/to/yunohost.img of=/dev/mmcblk0 +``` + +### Burning a CD/DVD + +For older devices, you might want to burn a CD/DVD. The software to use depends on your operating system. + +* On Windows, use [ImgBurn](http://www.imgburn.com/) to write the image file on the disc + +* On macOS, use [Disk Utility](http://support.apple.com/kb/ph7025) + +* On GNU/Linux, you have plenty of choices, like [Brasero](https://wiki.gnome.org/Apps/Brasero) or [K3b](http://www.k3b.org/) diff --git a/burn_or_copy_iso_fr.md b/burn_or_copy_iso_fr.md new file mode 100644 index 00000000..ecc60dff --- /dev/null +++ b/burn_or_copy_iso_fr.md @@ -0,0 +1,45 @@ +# Flasher l’ISO YunoHost + +Maintenant que vous avez téléchargé l’image ISO de YunoHost, vous devez la mettre sur un support physique. Classiquement, il s'agit d'une **Clé USB** ou d'une **Carte SD**. + + + + + + +--- + +### (Recommandé) Avec Etcher + +Téléchargez Etcher pour votre système d'exploitation et installez-le. + + + +Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'Flash' + +### Avec UNetbootin + +Téléchargez UNetbootin pour votre système d'exploitation et installez-le. + + + +Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'OK' + +### Avec `dd` + +Si vous êtes familier avec la ligne de commande, il est possible de flasher la clef USB ou carte SD avec `dd`. Vous pouvez identifier le nom du périphérique avec `fdisk -l` ou `lsblk`. Une carte SD s'apelle typiquement `/dev/mmcblk0`. ATTENTION à faire attention de prendre le bon nom ! + +```bash +# Remplacer /dev/mmcblk0 par le nom de votre périphérique +dd if=/chemin/de/yunohost.iso of=/dev/mmcblk0 +``` + +### CD/DVD + +Pour les anciens matériels, il vous faut peut-être utiliser un CD/DVD. Le logiciel à utiliser est différent suivant votre système d’exploitation. + +* Sur Windows, utilisez [ImgBurn](http://www.imgburn.com/) pour écrire l’image sur le disque + +* Sur macOS, utilisez [Disk Utility](http://support.apple.com/kb/ph7025) + +* Sur GNU/Linux, vous avez plusieurs choix, tels que [Brasero](https://wiki.gnome.org/Apps/Brasero) ou [K3b](http://www.k3b.org/) diff --git a/certificate.md b/certificate.md new file mode 100644 index 00000000..c9d06c71 --- /dev/null +++ b/certificate.md @@ -0,0 +1,74 @@ +# Certificate + +Certificates are used to guarantee the confidentiality and authenticity of the communication between a web browser and your server. In particular, they protect against attackers trying to impersonate your server. + +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. + +In practice, visitors will see a screen list this: + + + +Which basically asks the visitor : **"Do you trust the server hosting this website?"**. This can rightfully frighten a lot of people. + +To avoid this confusion, it's possible to get a certificate signed a known 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. + +### Install a Let's Encrypt certificate + +Before attempting to install a Let's Encrypt certificate, you should make sure that your DNS is correctly configured (your.domain.tld should point to your server's IP) and that your domain is accessible through HTTP from outside your local network (i.e. at least port 80 should be forwarded to your server). + +#### From the web administration interface + +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 +yunohost domain cert-status your.domain.tld +``` + +Install a Let's Encrypt certificate with + +```bash +yunohost domain cert-install your.domain.tld +``` + +This should return : + +```bash +Success! The SSOwat configuration has been generated +Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD! +``` + +Once this is done, you can check that the certificate is live via your browser by going to your domain in HTTPS. The certificate will automatically be renewed every three months. + +##### 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 +yunohost domain cert-install your.domain.tld --self-signed --force +``` + +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: + +- add a line `127.0.0.1 your.domain.tld` to the file `/etc/hosts` on your server; +- if the certificate installation still doesn't work, you can disable the checks with `--no-checks` after the `cert-install` command. + diff --git a/certificate_custom.md b/certificate_custom.md new file mode 100644 index 00000000..34666ca6 --- /dev/null +++ b/certificate_custom.md @@ -0,0 +1,132 @@ +**Note:** since version 2.5, YunoHost integrates Let's Encrypt certificates automated management. You can easily and freely [install a Let's Encrypt certificate](/certificate). The following document describes the steps for installing a paid certificate from a certification authority (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**). + +Some changes have taken place which impact the procedures indicated below: + +* Metronome group is no longer used directly but ssl-cert. +* A `/etc/yunohost/certs/DOMAIN.LTD-history/stamp` directory is used to keep each configuration created and a symlink is created. + +### Adding a signed certificate by an authority (other than Let's Encrypt) + +After the certificate creation with your registration authority, you must have a private key, the key file, and a public certificate, the crt file. +> Note that the key file is very sensitive, it is strictly personal and must be very well secured. + +These two files should be copied to the server, if they are not already there. + +```bash +scp CERTIFICATE.crt admin@DOMAIN.TLD:ssl.crt +scp KEY.key admin@DOMAIN.TLD:ssl.key +``` + +From Windows, scp can be used with Putty, by downloading the tool [pscp](http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe) + +```bash +pscp -P 22 CERTIFICATE.crt admin@DOMAIN.TLD:ssl.crt +pscp -P 22 KEY.key admin@DOMAIN.TLD:ssl.key +``` + +As soon as the files are on the server, the rest of the work will be done on it. In [ssh](/ssh) or locally. +First, create a folder to store the obtained certificates. + +```bash +sudo mkdir /etc/yunohost/certs/DOMAIN.TLD/ae_certs +sudo mv ssl.key ssl.crt /etc/yunohost/certs/DOMAIN.TLD/ae_certs/ +``` + +Then, go to the parent folder to continue. + +```bash +cd /etc/yunohost/certs/DOMAIN.TLD/ +``` + +As a caution, back up the certificates of origin from YunoHost. + +```bash +sudo mkdir yunohost_self_signed +sudo mv *.pem *.cnf yunohost_self_signed/ +``` + +Depending on the registration authority, intermediate and root certificates must be obtained. + +> **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 +>``` + +Intermediate and root certificates must be combined with the obtained certificate to create a unified certificate chain. + +```bash +cat ae_certs/ssl.crt ae_certs/intermediate_ca.pem ae_certs/ca.pem | sudo tee crt.pem +``` + +The private key must be converted to `.pem` format. + +```bash +sudo openssl rsa -in ae_certs/ssl.key -out key.pem -outform PEM +``` + +To ensure the certificates syntax, check the files contents. + +```bash +cat crt.pem key.pem +``` + +The certificates and private key should look like this: + +```plaintext +-----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----- +``` + +Finally, secure your certificate files. + +```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 +``` + +Now the certificates (two files with the extension `.pem`) must be copied in `/etc/yunohost/certs/DOMAIN.TLD`. + +```bash +cp ae_certs/*.pem ./ +``` + +Reload NGINX configuration to take into account the new certificate. + +```bash +sudo service nginx reload +``` + +Your certificate is ready. However, you can ensure that it is in place by testing the certificate using the geocerts. + diff --git a/certificate_custom_fr.md b/certificate_custom_fr.md new file mode 100644 index 00000000..fd097dd5 --- /dev/null +++ b/certificate_custom_fr.md @@ -0,0 +1,132 @@ +**Note :** depuis la version 2.5, YunoHost intègre la gestion automatisée de certificats Let's Encrypt. Vous pouvez donc facilement et gratuitement [installer un certificat Let's Encrypt](/certificate). Le document suivant décrit la méthodologie pour installer un certificat, payant, d'une autre autorité de certification (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**). + +Quelques changements ont eu lieu qui impactent les procédures indiquées ci-dessous : + +* Le groupe metronome n'est plus utilisé directement mais ssl-cert. +* Un repertoire `/etc/yunohost/certs/DOMAIN.LTD-history/stamp` est utilisé pour conserver chaque configuration créée et un lien symbolique est créé dessus. + +### Ajout d’un certificat signé par une autorité (autre que Let's Encrypt) + +Après création du certificat auprès de votre autorité d’enregistrement, vous devez être en possession d’une clé privée, le fichier *key* et d’un 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, s’ils ne s’y 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 l’outil [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](/ssh) ou en local. + +Tout d’abord, 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 d’origine de YunoHost, par précaution. + +```bash +sudo mkdir yunohost_self_signed +sudo mv *.pem *.cnf yunohost_self_signed/ +``` + +En fonction de l’autorité d’enregistrement, 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 s’assurer 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 : + +```plaintext +-----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 +``` + +Maintenant les certificats (les deux fichiers avec l'extension `.pem`) doivent être recopiés dans `/etc/yunohost/certs/DOMAIN.TLD`. + +```bash +cp ae_certs/*.pem ./ +``` + +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 à l’aide du service de geocerts. diff --git a/certificate_es.md b/certificate_es.md new file mode 100644 index 00000000..1fb0798b --- /dev/null +++ b/certificate_es.md @@ -0,0 +1,75 @@ +# Certificado + +Los certificados sirven para garantizar la confidencialidad y la autenticidad de las comunicaciones entre un navegador web y tu servidor. En particular, permite proteger los visitantes contra atacantes que podrían intentar de robar la identidad del servidor. + +Por defecto, YunoHost provee un certificado **auto-firmado**, lo que significa que es tu servidor el que garantiza la validez del certificado. Es suficiente **en el caso de un uso personal**, porque puedes confiar en tu propio servidor, pero esto planteará problemas si piensas en abrir el acceso a tu servidor a personas anónimas, por ejemplo si quieres alojar un sitio web. +En efecto, los usuarios deberán pasar por una pantalla de este tipo : + + + +Esta pantalla equivale a que te pidan ** ¿ Confías en el servidor que aloja este sitio ? ***. Esto puede asustar tu usuarios (con toda la razón). + +Para evitar esta confusión, es posible obtener un certificado, reconocido directamente por los navegadores, firmado por una autoridad « conocida » : **Let's Encrypt**, **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**. + +**Let's Encrypt** propone certificados gratuitos. Desde la versión 2.5, YunoHost permite instalar directamente tales certificados desde la interfaz de administración o la línea de comandos. El resto del documento detalla la instalación y la firma de este tipo de certificado. También puedes [instalar un certificado de otra autoridad que Let's Encrypt](/certificate_custom). + +### Instalar un certificado Let's Encrypt + +Antes de intentar la instalación de un certificado Let's Encrypt, primero debes asegurarte de que el DNS está configurado correctamente (tu.dominio.tld debe apuntar hacia la IP de tu servidor) y que el sitio está accesible en HTTP desde afuera (i.e. por lo menos que el puerto 80 está correctamente redirigido hacia tu servidor). + +#### Vía la interfaz de administración web + +En la categoría 'Dominio' de la interfaz de administración, y luego en la sección dedicada a tu dominio, encontrarás un botón 'Certificado SSL'. + +![](./images/domain-certificate-button-fr.png) + +En la sección 'Certificado SSL', puedes ver el estado corriente del certificado. +Si acabas de añadir el dominio, ya dispone de un certificado auto-firmado. + +![](./images/certificate-before-LE-fr.png) + +Si tu dominio está configurado correctamente, es posible instalar un certificado Let's Encrypt vía el botón verde. + +![](./images/certificate-after-LE-fr.png) + +Una vez la instalación terminada, puedes ir a tu dominio vía tu navegador, en HTTPS, para comprobar que tu certificado está bien firmado por Let's Encrypt. El certificado se renovará automáticamente al cabo de cada periodo de tres meses. + +![](./images/certificate-signed-by-LE.png) + +#### Vía línea de comandos + +Conectate en tu servidor en SSH. + +Puedes comprobar el estatus corriente de tu certificado vía + +```bash +yunohost domain cert-status tu.dominio.tld +``` + +Instala el certificado Let's Encrypt vía + +```bash +yunohost domain cert-install tu.dominio.tld +``` + +Este comando debe devolverte : + +```bash +Success! The SSOwat configuration has been generated +Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD! +``` + +Una vez que la instalación está terminada, puedes dirigirte a tu dominio vía tu navegador, en HTTPS, para comprobar que el certificado está bien firmado por Let's Encrypt. El certificado se renovará automáticamente al cabo de cada periodo de tres meses. + +##### Si hay un problema + +Si, después de una manipulación incorrecta, un certificado se encuentra en una mala situación (e.g. pérdida del certificado o imposibilidad de leerlo), es posible regenerar un certificado autofirmado : + +```bash +yunohost domain cert-install tu.dominio.tld --self-signed --force +``` + +Si YunoHost te dice que tu dominio está mal configurado mientras que has verificado tu configuración DNS y que tienes acceso a tu servidor en HTTP desde afuera, puedes intentar : + +- de añadir una línea `127.0.0.1 tu.dominio.tld` al archivo `/etc/hosts` en tu servidor ; +- si la instalación todavía no funciona, desactiva las verificaciones añadiendo `--no-checks` al comando `cert-install`. diff --git a/certificate_fr.md b/certificate_fr.md new file mode 100644 index 00000000..6aeef3d5 --- /dev/null +++ b/certificate_fr.md @@ -0,0 +1,94 @@ +# Certificat + +Les certificats sont utilisés pour garantir la confidentialité et l'authenticité des communications entre un navigateur web et votre serveur. En particulier, il permet de protéger les visiteurs contre des attaquants qui chercheraient à usurper l'identité du serveur. + +YunoHost fournit par défaut un certificat **auto-signé**, ce qui veut dire que c’est votre serveur qui garantit la validité du certificat. C’est suffisant **pour un usage personnel**, car vous pouvez avoir confiance en votre serveur, en revanche cela posera problème si vous comptez ouvrir l’accès à votre serveur à des anonymes, par exemple pour héberger un site web. +En effet, les utilisateurs devront passer par un écran de ce type : + + + +Cet écran revient à demander **« Avez-vous confiance au serveur qui héberge ce site ? »**. +Cela peut effrayer vos utilisateurs (à juste titre). + +Pour éviter cette confusion, il est possible d’obtenir un certificat, reconnu directement par les navigateurs, signé par une autorité « connue » : **Let's Encrypt**, **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**. + +**Let's Encrypt** propose des certificats gratuits. Depuis la version 2.5, YunoHost permet d'installer directement un tel certificat depuis l'interface d'administration ou la ligne de commande. La suite du document détaille l'installation et la gestion d'un tel certificat. Vous pouvez également [installer un certificat d'une autre autorité que Let's Encrypt](/certificate_custom). + +### Installer un certificat Let's Encrypt + +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 +(c.-à-d. 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 +yunohost domain cert-status votre.domaine.tld +``` + +Installez le certificat Let's Encrypt via + +```bash +yunohost domain cert-install votre.domaine.tld +``` + +Cette commande doit retourner : + +```bash +Success! The SSOwat configuration has been generated +Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD! +``` + +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 +yunohost domain cert-install votre.domaine.tld --self-signed --force +``` + +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 : + +- d'ajouter une ligne `127.0.0.1 votre.domaine.tld` au fichier `/etc/hosts` sur votre serveur ; +- si l'installation ne fonctionne toujours pas, désactiver les vérifications en ajoutant `--no-checks` à la commande `cert-install`. + + diff --git a/change_admin_password.md b/change_admin_password.md new file mode 100644 index 00000000..5aec634c --- /dev/null +++ b/change_admin_password.md @@ -0,0 +1,21 @@ +# Changing the administration password + +You may want to change your administrator password for security reason or because you forgot it. + +If you forgot your password or are unable to connect using the `admin` user, you +may still be able to change the password if you're able to login as `root` on +SSH (from your local network! or using a rescue mode if you're on a VPS...) + +## Using the web administration interface + +First, connect to your [web administration](/admin). + +Then go to Tools > Change administration password. + + +## Using the command line interface + + +```bash +yunohost tools adminpw +``` diff --git a/change_admin_password_fr.md b/change_admin_password_fr.md new file mode 100644 index 00000000..02ada64f --- /dev/null +++ b/change_admin_password_fr.md @@ -0,0 +1,21 @@ +# Changer le mot de passe d’administration + +Vous voudrez peut-être changer votre mot de passe d'administrateur pour des raisons de sécurité ou parce que vous l'avez oublié. + +Si vous avez oublié votre mot de passe ou si vous ne pouvez pas vous connecter en utilisant l'utilisateur `admin`, vous +pouvez peut-être encore changer le mot de passe en vous connectant en tant que "root" sur +SSH (à partir de votre réseau local ! ou en utilisant un mode rescure si vous êtes sur un VPS...) + +## Sur l'interface d'administration web + +1. Connectez-vous à [l’administration web](/admin). +2. Allez dans la section Outis > Changer le mot de passe d’administration. + + +## En ligne de commande + + +```bash +yunohost tools adminpw +``` + diff --git a/chat_rooms.md b/chat_rooms.md new file mode 100644 index 00000000..c72c6961 --- /dev/null +++ b/chat_rooms.md @@ -0,0 +1,42 @@ +## Chat rooms + +Amoung other communication tools, YunoHost project use chat rooms to communicate. + +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) + + +#### Help and support chat room + +There is a [support](/help) chat room for YunoHost users mutual support and help. + +- IRC: **#yunohost** on irc.freenode.net +- Matrix: **#freenode_#yunohost:matrix.org** +- XMPP: **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)** + +#### Development chat room + +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 chat room +Application packaging development chat room. It allow packagers to help each other. +It also allow to discuss packaging evolution, continuous integration tools: +- IRC: **#yunohost-apps** on irc.freenode.net +- Matrix: **#freenode_#yunohost-apps:matrix.org** +- XMPP: **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)** + +#### Documentation chat room +YunoHost project documentation chat room. It allow people to discuss, synchronize and maintain +an up-to-date documentation on the differents aspects of the project (backend, frontend, apps, project, community...). +You may also share here your public communications about YunoHost (videos, presentations, etc.), to allow proper referencing. +- IRC: **#yunohost-doc** on irc.freenode.net +- Matrix: **#freenode_#yunohost-doc:matrix.org** +- XMPP: **[doc@conference.yunohost.org](xmpp:doc@conference.yunohost.org?join)** diff --git a/chat_rooms_es.md b/chat_rooms_es.md new file mode 100644 index 00000000..70adbcd4 --- /dev/null +++ b/chat_rooms_es.md @@ -0,0 +1,39 @@ +## Salas de chat + +El proyecto YunoHost utiliza salas de chat como medio de communicación. + +Puede unirse a una sala de chat utilizando : +- un [cliente IRC](https://es.wikipedia.org/wiki/Anexo:Clientes_IRC) por ejemplo [KiwiIRC](https://kiwiirc.com/client/irc.freenode.net/yunohost) +- un [cliente XMPP](https://es.wikipedia.org/wiki/Anexo:Comparaci%C3%B3n_de_clientes_de_mensajer%C3%ADa_instant%C3%A1nea) +- un [cliente Matrix](https://matrix.org/docs/guides/faq.html#what-clients-are-available%3F) + + +#### Sala de chat de ayuda y soporte + +Existen salas publicas de chat de [soporte](/help) y ayuda para YunoHost: +- IRC: **#yunohost** on irc.freenode.net ; +- Matrix: **#freenode_#yunohost:matrix.org** ; +- XMPP: **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)** + +#### sala de chat para desarrolladores + +Salas de chat para el desarollo de YunoHost: +- IRC: **#yunohost-dev** on irc.freenode.net ; +- Matrix: **#freenode_#yunohost-dev:matrix.org** ; +- XMPP: **[dev@conference.yunohost.org](xmpp:dev@conference.yunohost.org?join)** + +Actualmente, la sala principal de chat para contribuciones en YunoHost +Para mas ayuda, vea la sala de chat **#yunohost** encima. + +#### Sala de chat para las integración de aplicaciones +Estos permite la ayuda mutua para los integradores de aplicaciones y también para conversar de evoluciones et de herramientas de integración continua. +- IRC: **#yunohost-apps** en irc.freenode.net +- Matrix: **#freenode_#yunohost-apps:matrix.org** +- XMPP: **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)** + +#### Sala de chat de Documentación +Lugar donde la comunidad conversa sincroniza y mantiene actualisado la documentación en los aspectos varios como (backend, frontend, apps, proyecto, comunidad...) +Puede tambien compartir sus materiales sobre YunoHost (videos, presentaciones, etc.). +- IRC: **#yunohost-doc** on irc.freenode.net +- Matrix: **#freenode_#yunohost-doc:matrix.org** +- XMPP: **[doc@conference.yunohost.org](xmpp:doc@conference.yunohost.org?join)** diff --git a/chat_rooms_fr.md b/chat_rooms_fr.md new file mode 100644 index 00000000..bbbe0877 --- /dev/null +++ b/chat_rooms_fr.md @@ -0,0 +1,38 @@ +## Salons de discussions + +Parmi d’autres outils, le projet YunoHost se sert de salons de discussions pour communiquer. + +Vous pouvez rejoindre ces salons avec : +- un [Client IRC](https://fr.wikipedia.org/wiki/Liste_de_clients_IRC) par exemple [KiwiIRC](https://kiwiirc.com/client/irc.freenode.net/yunohost) +- 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) + + +#### Salon d'entraide et de support +Le salon d’[entraide](/help) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement. +- IRC : **#yunohost** sur irc.freenode.net (voir KiwiIRC ci-dessus) +- Matrix : **#freenode_#yunohost:matrix.org** +- XMPP : **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)** + +#### Développement +Salon de développement du cœur de YunoHost : +- IRC : **#yunohost-dev** sur irc.freenode.net +- Matrix : **#freenode_#yunohost-dev:matrix.org** +- XMPP : **[dev@conference.yunohost.org](xmpp:dev@conference.yunohost.org?join)** + +C'est le salon principal pour les contributions autour du projet. +Pour chercher de l’aide, merci d'aller sur le salon d’entraide ci-dessus. + +#### Applications +Salon de développement du packaging d’application. Il permet aux packageurs de s’entraider. +Il sert également à discuter de l’évolution du packaging, des outils d’intégration continue sur les applications. +- IRC : **#yunohost-apps** sur irc.freenode.net +- Matrix : **#freenode_#yunohost-apps:matrix.org** +- XMPP : **[apps@conference.yunohost.org](xmpp:apps@conference.yunohost.org?join)** + +#### Documentation +Le salon de documentation du projet YunoHost. Il permet aux contributeurs d'échanger, pour synchroniser et maintenir une documentation à jour sur les différents aspects du projet : backend, frontend, apps, projet, communauté... +Vous pouvez aussi y partager vos communications au public à propos de YunoHost (présentations, vidéos...) pour permettre leur référencement dans la documentation. +- IRC : **#yunohost-doc** sur irc.freenode.net +- Matrix : **#freenode_#yunohost-doc:matrix.org** +- XMPP : **[doc@conference.yunohost.org](xmpp:doc@conference.yunohost.org?join)** diff --git a/commandline.md b/commandline.md new file mode 100644 index 00000000..47bbb507 --- /dev/null +++ b/commandline.md @@ -0,0 +1,30 @@ +# Administrate YunoHost in command line + +The command line interface (CLI) is, in the computer world, the original (and more technical) way of interacting with a computer compared to graphical interface. Command line interfaces are generally said to be more complete, powerful or efficient than a graphical interface, though it is more difficult to learn. + +In the context of YunoHost, or system administration in general, the CLI is commonly used to remotely control machines after connecting through [connecting to it via SSH](/ssh). + +
+Providing a full tutorial about the command line is quite beyond the scope of the YunoHost documentation : for this, consider reading a dedicated tutorial such as [this one](https://ryanstutorials.net/linuxtutorial/) or [this one](http://linuxcommand.org/). But be reassured that you don't need to be a CLI expert to start using it ! +
+ +The `yunohost` command can be used to administrate your server and perform the various actions similarly to what you do on the webadmin. The command must be launched either from the `root` user or from the `admin` user by preceeding them with `sudo`. (ProTip™ : you can become `root` with the command `sudo su` as `admin`). + +YunoHost commands usually have this kind of structure : + +```bash +yunohost app install wordpress --label Webmail + ^ ^ ^ ^ + | | | | + category action argument options +``` + +Don't hesitate to browse and ask for more information about a given category or action using the the `--help` option. For instance, those commands : + +```bash +yunohost --help +yunohost user --help +yunohost user create --help +``` + +will successively list all the categories available, then the actions available in the `user` category, then the usage of the action `user create`. You might notice that the YunoHost command tree is built with a structure similar to the YunoHost admin pages. diff --git a/commandline_es.md b/commandline_es.md new file mode 100644 index 00000000..eb240053 --- /dev/null +++ b/commandline_es.md @@ -0,0 +1,30 @@ +# Administrar YunoHost con la interfaz de línea de comandos + +La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla. + +En el contexto de YunoHost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh). + +
+Proveer un tutorial completo sobre la línea de comandos saldría del marco de la documentación de YunoHost : por eso, refiérete a totorales como [éste](https://www.fing.edu.uy/inco/cursos/sistoper/recursosLaboratorio/tutorial0.pdf) o [éste (en)](http://linuxcommand.org/). Pero no te preocupes : no hace falta ser un experto para comenzar a utilizarla ! +
+ +El comando `yunohost` puede ser utilizado para administrar tu servidor o realizar las mismas acciones que en la interfaz gráfica webadmin. Hay que iniciarla como usuario `root`, o como el usuario `admin` poniendo `sudo` antes del comando. (ProTip™ : puedes convertirte en usuario `root` vía el comando `sudo su` cuando eres `admin`.) + +Los comandos YunoHost tienen este tipo de estructura : + +```bash +yunohost app install wordpress --label Webmail + ^ ^ ^ ^ + | | | | + categoría acción argumento opción +``` + +No dudes en navegar ni en pedir información a propósito de una categoría o acción utilizando la opción `--help`. Por ejemplo, estos comandos : + +```bash +yunohost --help +yunohost user --help +yunohost user create --help +``` + +de manera sucesiva van a enumerar todas las categorías disponibles, luego las acciones de la categoría `user`, y luego explicar cómo utilizar la acción `user create`. Deberías notar que el árbol de los comandos YunoHost tiene la misma estructura que las páginas del webadmin. \ No newline at end of file diff --git a/commandline_fr.md b/commandline_fr.md new file mode 100644 index 00000000..003d524f --- /dev/null +++ b/commandline_fr.md @@ -0,0 +1,30 @@ +# Administrer YunoHost en ligne de commande + +L'interface en ligne de commande (CLI) est, en informatique, la manière originale (et plus technique) d'interagir avec un ordinateur comparé aux interfaces graphiques. La ligne de commande est généralement considéré comme plus complète, puissante et efficace que les interfaces graphiques, bien que plus difficile à apprendre. + +Dans le contexte de YunoHost, ou de l'administration système en général, la ligne de commande est communément utilisée après s'être [connecté en SSH](/ssh). + +
+Fournir un tutorial complet sur la ligne de commande est bien au dela du cadre de la documentation de YunoHost : pour cela, référez-vous à des tutoriaux comme [celui-ci](https://doc.ubuntu-fr.org/tutoriel/console_ligne_de_commande) ou [celui-ci (en)](http://linuxcommand.org/). Mais soyez rassuré qu'il n'y a pas besoin d'être un expert pour commencer à l'utiliser ! +
+ +La commande `yunohost` peut être utilisée pour administrer votre serveur ou réaliser les mêmes actions que celles disponibles sur la webadmin. Elle doit être lancée en depuis l'utilisateur `root`, ou bien depuis l'utilisateur `admin` en précédant la commande de `sudo`. (ProTip™ : il est possible de devenir `root` via la commande `sudo su` en tant qu'`admin`.) + +Les commandes YunoHost ont ce type de structure : + +```bash +yunohost app install wordpress --label Webmail + ^ ^ ^ ^ + | | | | + categorie action argument options +``` + +N'hesitez pas à naviguer et demander des informations à propos d'une catégorie ou action donnée via l'option `--help`. Par exemple, ces commandes : + +```bash +yunohost --help +yunohost user --help +yunohost user create --help +``` + +vont successivement lister toutes les catégories disponibles, puis les actions de la catégorie `user`, puis expliquer comment utiliser l'action `user create`. Vous devriez remarquer que l'arbre des commandes YunoHost suit une structure similaire aux pages de la webadmin. diff --git a/communication.md b/communication.md new file mode 100644 index 00000000..0ccaab57 --- /dev/null +++ b/communication.md @@ -0,0 +1,59 @@ +# Communication + +## Talks / conf + +- (EN) [BattleMeshV12 - YunoHost and the Internet Cube (Brique Internet)](https://www.battlemesh.org/BattleMeshV12/Events#YunoHost_and_the_Internet_Cube_.28Brique_Internet.29) +* (EN) [FOSDEM 2019 - The operating system to build the decentralized Internet](https://cinema.yunohost.support/videos/watch/1eb49594-0283-4a01-8691-3817a3cb31e6) ([slides](https://github.com/YunoHost/yunohost-fosdem-2019)) +* (FR) [Capitole du libre 2018 - YunoHost: un des chemins vers la décentralisation - Bram](https://www.youtube.com/watch?v=OEXEStoOYpw) ([slides](https://psycojoker.github.io/yunohost-cdl-2018/)) +* (FR) [Journées du logiciel libre 2018 - YunoHost : vers l’auto-hébergement et au-delà - Bram](https://www.videos-libr.es/videos/watch/45b48b1e-1b10-4e09-b29a-a404bd42c5d0) ([slides](https://psycojoker.github.io/yunohost-jdll-2018/)) +* (FR) Ubuntu Party Novembre 2017 - De Framasoft à YunoHost, réapproprions nous le cloud ([slides](https://blog.genma.fr/?De-Framasoft-a-Yunohost-reapproprions-nous-le-cloud)) +* (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 l’Internet 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 - L’auto-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 + + + + + +* 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) +- (FR) [Linux Pratique n°96 – YunoHost, l’auto-hébergement à portée de main – juillet 2016](http://connect.ed-diamond.com/Linux-Pratique/LP-096/YunoHost-l-auto-hebergement-a-portee-de-main) +- (EN) [Linux Magazine n°208 – YunoHost, Personal server for a private cloud – Mars 2018](http://www.linux-magazine.com/Issues/2018/208/YunoHost) +- (FR) [Linux Pratique HS n° 044 février 2019 - Le choix de l’auto-hébergement avec YunoHost : rencontre avec l’équipe du projet](https://connect.ed-diamond.com/Linux-Pratique/LPHS-044/Le-choix-de-l-auto-hebergement-avec-YunoHost-rencontre-avec-l-equipe-du-projet) +- (FR) [Duhaz.fr: Devenir votre propre hébergeur](https://www.duhaz.fr/blog/devenir-votre-propre-h%C3%A9bergeur/) +- (FR) [Faimaison.net: au revoir Google, bonjour liberté!](https://www.faimaison.net/actualites/chatons-leprette-mai2019.html) +- (FR) [Tineternet.net: Reprendre la main sur ses données avec l'auto-hébergement](https://www.tinternet.net/article/2019/05/dossier-reprendre-la-main-sur-ses-donnees-avec-lauto-hebergement) +- (DE) [YunoHost Serverinstallation auf Laptop](https://www.giammi.com/2019/04/19/yunohost-serverinstallation-auf-laptop/) +- (FR) [Cenabumix: Retour d’expérience YunoHost sur Raspberry](https://wiki.cenabumix.org/wordpress/2018/03/17/retour-dexperience-yunohost-sur-raspberry/) +- (FR) [Geber.ga: YunoHost, ou l'auto-hébergement à portée de main...](https://www.geber.ga/yunohost-ou-l-auto-hebergement-a-portee-de-main/) +- (EN) [Nequalsonelifestyle.com: Self Hosting Without Self Owning](https://www.nequalsonelifestyle.com/2019/05/04/self-hosting-without-self-owning/) +- (EN) [Skysilk.com: How to Install YunoHost On a Debian VPS](https://www.skysilk.com/blog/2019/how-to-install-yunohost-on-a-debian-vps/) +- (FR) [Alternativelibertaire.org: Auto-hébergement](https://www.alternativelibertaire.org/?Auto-hebergement-1-Un-serveur-a-mon-seul-service) +- (ES) [Sololinux.es: Instalar YunoHost en Debian 9 Stretch](https://www.sololinux.es/instalar-yunohost-en-debian-9-stretch/) +- (FR) [Bog.hugopoi.net: Le cloud maison](https://blog.hugopoi.net/2019/03/30/le-cloud-maison/) + +## Past Events / Workshops + +- (FR) [INFOTHEMA: Présentation de l’avancée du projet YunoHost INFOTHEMA + Présentation du collectif CHATONS](https://www.infothema.fr/begard-samedi-22-juin-2019-seance-infothema/) +- (FR) [Normandie-libre.fr: Héberger ses sites web à la maison](https://normandie-libre.fr/heberger-ses-sites-web-a-la-maison/) +- (FR) [Viregul.fr: Auto-hébergement, pour un Internet décentralisé](https://viregul.fr/auto-hebergement-pour-un-internet-decentralise-le-samedi-25-mai-2019/) +- (EN) [35C3: Hands-on introduction to self-Hosting with YunoHos](https://events.ccc.de/congress/2018/wiki/index.php/Session:Hands-on_introduction_to_self-Hosting_with_YunoHost) +- (FR) [Journées du Logiciel Libre 2019: l'auto-hébergement avec YunoHost](https://pretalx.jdll.org/jdll2019/talk/88GSPH/) + +## YunoHost was cited in : + +* [EXPERIMENTA 2018](https://livestream.com/accounts/26482307/events/8034656/player?width=960&height=540&enableInfoAndActivity=true&defaultDrawer=&autoPlay=true&mute=false) at 57.47 (depuis https://www.experimenta.fr/direct/) +* [Capitole du libre 2017 - « Contributopia », Dégoogliser ne suffit pas](https://www.youtube.com/watch?v=ip6_VMkWpr8&feature=youtu.be&t=4793) +* [Contributopia - Essaimage (Framasoft)](https://contributopia.org/fr/essaimage/) +- (FR) [Triple A: Émission Underscore #144 du 19 mai 2019](https://www.triplea.fr/blog/podcast/emission-underscore-144-du-19-mai-2019/) diff --git a/contribute.md b/contribute.md new file mode 100644 index 00000000..b5887fb3 --- /dev/null +++ b/contribute.md @@ -0,0 +1,93 @@ +# Get involved + +

+YunoHost depends exclusively on the participation of people like you. +

+ +--- + +
+
+   Spread the word +
+
+Talk about software freedom, [self-hosting](/selfhosting) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3 +
+
+ +--- + +
+
+   Testing +
+
+We need people able to test YunoHost deeply. If you find a bug, try to identify it, and report it on our bug tracker. +
+
+ +--- + +
+
+   Helping users +
+
+Our support relies on contributors like you. Just come to [the support chatroom](/help) and help new users getting started, or pick a question on the Forum. +
+
+ +--- + +
+
+   Coding +
+
+You can involve in the YunoHost's development regardless of your skill. +Sysadmins, web developers, designers and pythonists are welcome! +
+Learn [how to contribute](/dev), and join us on the [development chat room](xmpp:dev@conference.yunohost.org?join). +
+
+ +--- + +
+
+   Localization +
+
+Get involved by making YunoHost interfaces available in your language. +Get started! +
+
+ +--- + +
+
+   Write +
+
+Improve this documentation by [writing new pages](/write_documentation) or translating existing ones to your language. +
+
+ +
+ +
+
+   Packaging +
+
+Extend YunoHost capabilities by [packaging new services and web applications](/packaging_apps). +Have a look of [what has been done yet](/apps)! +
+
+ +--- + +
+

In any case, please come chat with us on [the dev chatroom](/chat_rooms) :-)

+ diff --git a/contribute_ar.md b/contribute_ar.md new file mode 100644 index 00000000..8ad74232 --- /dev/null +++ b/contribute_ar.md @@ -0,0 +1,92 @@ +#
المساهمة
+ +

+إنّ مصير واي يونوهوست YunoHost يُقرّره أناس و أنتم مِن بين هؤلاء +

+ +--- + +
+
+   تحدثوا عن المشروع مِن حولكم +
+
+تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3>
+
+ +--- + +
+
+   جَرّبُوا +
+
+نحن بحاجة إلى تجريب حثيث لواي يونوهوست YunoHost. فإن صادفتم مشكلة، يرجى القيام بتحديد الخلل و ثم الإبلاغ عنه عبر +مُتعقب الأخطاء. +
+
+ +--- + +
+
+   ساعدوا المستخدمِين +
+
+Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du Forum. Vous pouvez aussi organiser des ateliers de formation. +
+
+ +--- + +
+
+   أكتبوا الشفرة +
+
+Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes sont les bienvenus.
+Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) ! +
+
+ +--- + +
+
+   ترجِموا +
+
+ساهموا في توفير واجهات واي يونوهوست YunoHost بلغتكم. إبدأوا الآن ! +
+
+ +--- + +
+
+   أكتبوا +
+
+ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation) أو بترجمة صفحاته إلى لغتكم. +
+
+ +--- + +
+
+   ساهموا في التحزيم +
+
+Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) ! +
+Un [salon de développement](xmpp:dev@conference.yunohost.org?join) est également disponible. +
+
+ +--- + +
+
+

على أي حال تعالوا و انضموا إلى [غرفة المحادثة الخاصة بالمطوّرين](xmpp:dev@conference.yunohost.org?join) إن كنتم ترغبون في المساهمة :-)

+ diff --git a/contribute_fr.md b/contribute_fr.md new file mode 100644 index 00000000..dd785aaa --- /dev/null +++ b/contribute_fr.md @@ -0,0 +1,90 @@ +# Contribuer + +

+YunoHost dépend entièrement de la participation de gens comme vous. +

+ +--- + +
+
+   Passez le mot +
+
+Parlez de logiciel libre, d’[auto-hébergement](/selfhosting), de YunoHost à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3 +
+
+ +--- + +
+
+   Testez +
+
+Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essayez de l’identifier, puis reportez-le sur notre bug tracker. +
+
+ +--- + +
+
+   Aidez les utilisateurs +
+
+Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du Forum. Vous pouvez aussi organiser des ateliers de formation. +
+
+ +--- + +
+
+   Codez +
+
+Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes sont les bienvenus.
+Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) ! +
+
+ +--- + +
+
+   Traduisez +
+
+Participez en rendant les interfaces de YunoHost disponibles dans votre langue. Lancez-vous ! +
+
+ +--- + +
+
+   Écrivez +
+
+Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation) ou en traduisant les existantes dans votre langue. +
+
+ +--- + +
+
+   Packagez +
+
+Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) ! +
+
+ +--- + +
+
+

Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)

+ diff --git a/contributordoc.md b/contributordoc.md new file mode 100644 index 00000000..1f76aa15 --- /dev/null +++ b/contributordoc.md @@ -0,0 +1,45 @@ +# Contributor documentation + +* [General ways of contributing to YunoHost](/contribute) +* [Chat rooms](/chat_rooms) +* [Writing documentation](/write_documentation) + * [Documentation writing guide](/doc_writing_guide) + * [Markdown guide](/doc_markdown_guide) + * [Power your code using Git & GitHub](/doc_use_git) +* Application packaging + * [Apps wishlist](/apps_wishlist) + * [General introduction to app packaging](/packaging_apps_start) + * [Technical introduction to app packaging](/packaging_apps) + * [How to use Git to package apps](/packaging_apps_git) + * [Setting up a dev environment with VirtualBox](/packaging_apps_virtualbox) + * [Manifest](/packaging_apps_manifest) + * [Scripts](/packaging_apps_scripts) + * [Arguments management](/packaging_apps_arguments_management) + * [Arguments format](/packaging_apps_arguments_format) + * [NGINX configuration](/packaging_apps_nginx_conf) + * [User groups and permissions](/groups_and_permissions) + * [Multi-instance](/packaging_apps_multiinstance) + * [Helpers](/packaging_apps_helpers) + * [Trap usage](/packaging_apps_trap) + * [App permissions](/packaging_apps_permissions) + * [Adding your app to the apps list](https://github.com/YunoHost/Apps/#contributing) + * [Advanced packaging features](/packaging_apps_advanced) + * [Application actions](/packaging_apps_actions) + * [Application configuration panel](/packaging_apps_config_panel) + * Quality tests + * [Package linter](https://github.com/YunoHost/package_linter) + * [Package check](https://github.com/YunoHost/package_check) + * [Applications levels](/packaging_apps_levels) + * [App Continuous Integration](https://ci-apps.yunohost.org) + * [App CI dashboard](https://dash.yunohost.org/appci/branch/stable) + * [App Continuous Integration for packagers](/packaging_apps_ci) + * [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines) +* [Contributing to the YunoHost core](/dev) + * [Setting up a dev environment with ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md) + * [Deb build chain](https://github.com/YunoHost/vinaigrette/blob/master/README.md) + * Image building + * [x86 ISO](https://github.com/YunoHost/cd_build) + * [Raspberry Pi images](https://github.com/YunoHost/rpi-image) + * [Other ARM board images](https://github.com/YunoHost/arm-images) +* [Using the YunoHost API outside of the webadmin](/admin_api) +* [A discussion about shell variable scope](/shell_variables_scope) diff --git a/contributordoc_fr.md b/contributordoc_fr.md new file mode 100644 index 00000000..7fb2222f --- /dev/null +++ b/contributordoc_fr.md @@ -0,0 +1,47 @@ +# Guide du contributeur + +* [Liste des façons de contribuer à YunoHost](/contribute) +* [Salons de discussion](/chat_rooms) +* [Écrire de la documentation](/write_documentation) + * [Guide de rédaction de la documentation](/doc_writing_guide) + * [Guide Markdown](/doc_markdown_guide) + * [Propulser son code avec Git & GitHub](/doc_use_git) + * [Trame pour la rédaction des pages de documentations](/app_writing_guide) +* Packaging d'application + * [Liste d'applications souhaitées par la communauté (en)](/apps_wishlist) + * [Introduction générale au packaging d'apps](/packaging_apps_start) + * [Introduction technique au packaging d'apps](/packaging_apps) + * [Comment utiliser Git pour packager les applications](/packaging_apps_git) + * [Déployer un environnement de développement avec VirtualBox](/packaging_apps_virtualbox) + * [Manifest](/packaging_apps_manifest) + * [Scripts](/packaging_apps_scripts) + * [Gestion des arguments](/packaging_apps_arguments_management) + * [Format des arguments (en)](/packaging_apps_arguments_format) + * [Configuration NGINX](/packaging_apps_nginx_conf) + * [Groupes et permissions](/groups_and_permissions) + * [Multi-instance](/packaging_apps_multiinstance) + * [Fonctions utiles (en)](/packaging_apps_helpers) + * [Utilisation de 'trap'](/packaging_apps_trap) + * [App permissions (en)](/packaging_apps_permissions) + * [Ajouter son application à la liste des apps (en)](https://github.com/YunoHost/Apps/#contributing) + * [Feature de packaging avancées (en)](/packaging_apps_advanced) + * [Actions pour une application (en)](/packaging_apps_actions) + * [Panneau de configuration pour une application (en)](/packaging_apps_config_panel) + * Tests de qualité + * [Package linter (en)](https://github.com/YunoHost/package_linter) + * [Package check (en)](https://github.com/YunoHost/package_check) + * [Niveaux des applications](/packaging_apps_levels) + * [Intégration continue des apps (en)](https://ci-apps.yunohost.org) + * [Tableau de bord du CI des apps (en)](https://dash.yunohost.org/appci/branch/stable) + * [Intégration continue pour packagers (en)](/packaging_apps_ci) + * [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines) +* [Contribuer à la partie "core" de YunoHost](/dev) + * [Déployer un environnement de dev avec ynh-dev (en)](https://github.com/YunoHost/ynh-dev/blob/master/README.md) + * [Construction des paquets Debian (en)](https://github.com/YunoHost/vinaigrette/blob/master/README.md) + * [Feuilles de route du projet (en)](https://github.com/YunoHost/issues/milestones?direction=asc&sort=title&state=open) + * Construction des images + * [x86 ISO (en)](https://github.com/YunoHost/cd_build) + * [Images Raspberry Pi (en)](https://github.com/YunoHost/rpi-image) + * [Autres images pour cartes ARM (en)](https://github.com/YunoHost/arm-images) +* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api) +* [Une discussion sur la portée des variables en bash](/shell_variables_scope) diff --git a/default.md b/default.md new file mode 100644 index 00000000..08ee4d98 --- /dev/null +++ b/default.md @@ -0,0 +1,11 @@ +# New page + +This page is not created yet, you can edit it by pressing `````` 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 `````` again or by clicking the "preview" button. + +** Note: ** You will need to provide an email address to validate your submission. + +### Syntax + +This page use the markdown syntax, please refer to the documentation for further informations: + +http://daringfireball.net/projects/markdown/syntax diff --git a/default_es.md b/default_es.md new file mode 100644 index 00000000..41876311 --- /dev/null +++ b/default_es.md @@ -0,0 +1,11 @@ +# Nueva página + +Esta página todavía no existe, puedes editarla tecleando `````` en tu teclado, o clicando en el botón "Editar" abajo a la derecha de tu pantalla. Puedes echar un vistazo a los cambios que has efectuado empujando de nuevo la tecla `````` o clicando en el botón "Vistazo". + +** Nota : ** Necesitarás una dirección email para validar tu propuesta. + + +### Sintaxis +Esta página utiliza la sintaxis Markdown, refiérete a la documentación para más informaciones : + +http://daringfireball.net/projects/markdown/syntax diff --git a/default_fr.md b/default_fr.md new file mode 100644 index 00000000..270beabe --- /dev/null +++ b/default_fr.md @@ -0,0 +1,11 @@ +# Nouvelle page + +Cette page n’existe 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 : ** Vous aurez besoin d'une adresse email pour valider votre proposition. + + +### Syntaxe +Cette page utilise la syntaxe Markdown, veuillez vous référer à la documentation pour plus d’informations : + +http://daringfireball.net/projects/markdown/syntax diff --git a/default_it.md b/default_it.md new file mode 100644 index 00000000..89f495de --- /dev/null +++ b/default_it.md @@ -0,0 +1,11 @@ +# Nuova Pagina + +Questa pagina non è ancora stata creata, puoi modificarla premendo `````` sulla tua tastiera o cliccando il pulsante "Modifica" in basso a destra del tuo schermo. Potrai vedere l'anteprima delle tue modifiche premendo ancora `````` o cliccando il pulsante "Anteprima". + +** Nota: ** Devi fornire un indirizzo email per confermare le tue modifiche. + +### Sintassi + +Questa pagina usa la sintassi markdown, per favore fai riferimento alla documentazione per ulteriori informazioni: + +http://daringfireball.net/projects/markdown/syntax diff --git a/dev.md b/dev.md new file mode 100644 index 00000000..d82731f3 --- /dev/null +++ b/dev.md @@ -0,0 +1,156 @@ +## Contributing to the YunoHost core + +You wish to add a new feature in the YunoHost core, but don't know how to +proceed? This guide takes you through the various steps of the development and +contribution process. + +If you're looking for stuff to implement or fix, the bug-tracker is +[here](https://github.com/YunoHost/issues/issues)! + +**Come say hi to us in the [dev chat room](/chat_rooms)**! + +### Setting up a development environment + +- **Use [ynh-dev](https://github.com/YunoHost/ynh-dev)** (see the README) to + setup a development environment - locally in a virtual machine, or on a VPS. + This will setup a working YunoHost instance, using directly the Git repositories + (with symlinks). That way, you will be able to edit files, test your changes in real + time, commit stuff and push/pull directly from your development environment. + +- **Implement and test your feature**. Depending on what you want to develop, you + will want to: + - **Python/CLI core**: work in `/ynh-dev/yunohost/` + - **Web administration interface**: work in `/ynh-dev/yunohost-admin/` + - You can also work on the other projects on which YunoHost is built + (SSOwat, Moulinette) in similar ways + +### Overview of the 4 main pieces of YunoHost + +#### Moulinette + +It is a small "homemade" framework. [Its major role](https://moulinette.readthedocs.io/en/latest/actionsmap.html) +is to allow us to build both a web API and a command-line API from the same +Python code thanks to a YAML schema which we call +[the actionmap](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml). + +It handles other mechanisms like authentication, internationalization and +small technical utilitary functions (e.g. reading/writing JSON). + +Moulinette has its own documentation available [here](https://moulinette.readthedocs.io/en/latest/). + +#### YunoHost + +This piece is the very core of YunoHost. It contains: +- [the Python code](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) that manages users, domains, apps, services and other things +- [bash helpers](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) mainly used by application packagers to package applications +- [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) and [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) that are used to configure the various pieces of the ecosystem such as NGINX, Postfix... +- [internationalized strings](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales) +- [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests) + +#### SSOwat + +This is the single sign-on system of YunoHost. It both contains: +- [Lua scripts](https://github.com/YunoHost/ssowat) that are directly interfaced with NGINX and handle all the "technical" aspects of authentication and route accesses +- the web [user portal](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) which is the interface used by YunoHost's end users to log in and browse installed apps + +SSOwat is configured through `/etc/ssowat/conf.json` which is generated by YunoHost. + +#### YunoHost-admin + +It is an *optional* dependency of YunoHost and corresponds to an interface for the web API created by YunoHost and Moulinette (c.f. the `yunohost-api` service). + +It essentially contains: +- [view templates](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views) +- corresponding [JavaScript controllers](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) that interact with the YunoHost API +- and [internationalized strings](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales) + +### Working on the YunoHost Python/CLI core + +- Work in `/ynh-dev/yunohost/`. + +- Run `cd /ynh_dev/ && ./ynh-dev use-git yunohost`. + +- The actionsmap file (`data/actionsmap/yunohost.yml`) defines the various + categories, actions and arguments of the yunohost CLI. Define how you want + users to use your feature, and add/edit the corresponding categories, actions + and arguments. For example in `yunohost domain add some.domain.tld`, the + category is `domain`, the action is `add`, and `some.domain.tld` is an + argument. + +- Moulinette will automatically map commands in the actionsmap to Python + functions (and their arguments) located in `src/yunohost/`. For example, typing + `yunohost domain add some.domain.tld` will call the function + `domain_add(domainName)` in `domain.py`, with the argument `domainName` equal + to `"some.domain.tld"`. + +##### Helpers / coding style + +- To handle exceptions, you should raise some `YunohostError()` + +- To help with internationalizing the messages, use `m18n.n('some-message-id')` + and put your string in `locales/en.json`. You can also put arguments and use + them in the string with `{{some-argument:s}}`. Don't edit other locales files, + this will be done using [weblate](https://translate.yunohost.org/) ! + +- YunoHost tries to follow the [pep8](http://pep8.org/) coding style. Tools + exist to automatically check conformity. + +- Name of "private" functions should start with a `_` + +### Working on the YunoHost web administration interface + +- Work in `/ynh-dev/yunohost-admin/src/`. + +- Run `cd /ynh-dev && ./ynh-dev use-git yunohost-admin`. It launches gulp, such as each + time you modify sources, it recompiles the code and you can use it by + refreshing (Ctrl+F5) your web administration. To stop the command, just do Ctrl+C. + +- The web interface uses the API to interact with YunoHost. The API + commands/requests are also defined via the actionsmap. For instance, accessing + the page `https://domain.tld/yunohost/api/users` corresponds to a `GET + /users` requests on the YunoHost API. It is mapped to the function + `user_list()`. Accessing the URL should display the JSON returned by this + function. 'GET' requests are typically meant to ask information to the server. + 'POST' requests are meant to ask the server to edit/change some information, + or to execute some actions. + +- `js/yunohost/controllers` contains the JavaScript parts, + and define which requests to make to the API when loading a specific page of + the interface, and how to process the data to generate the page, using + templates. + +- `views` contains the various templates for the pages of the interface. In the + template, data coming from the JavaScript part can be used with the syntax + `{{some-variable}}`, which will be replaced when building/accessing the page. + It is also possible to have conditions using the + [handlebars.js](http://handlebarsjs.com) syntax: `{{#if + some-variable}}

Some conditional HTML code here !

{{/if}}` + +- For internationalized strings, use `y18n.t('some-string-code')` in the + JavaScript, or `{{t 'some-string-code'}}` in the HTML template, and put your + string in `locales/en.json`. Don't edit other locales files, + this will be done using [Weblate](https://translate.yunohost.org/)! + +##### Don't forget + +- Each time you edit the actionsmap or the Python code, you should restart the YunoHost api: + `systemctl restart yunohost-api` + (You'll need to retype your admin and password in the web interface) + +- You might need to force-clear the cache of your browser sometimes to refresh + the JavaScript and/or HTML (so each time you edit something in `js` or `views`). + + +### Your feature is ready and you want it to be integrated in YunoHost + +- Fork the relevant repo on GitHub, and commit stuff to a new branch. We recommend + to name the branch with the following convention: + - For an enhancement or new feature: `enh-ISSUENUMBER-name-of-feature` + - For a bugfix `fix-ISSUENUMBER-description-of-fix` + - `ISSUENUMBER` is optional and is the id of a corresponding ticket on the bug tracker. + +- Once you're ready, open a Pull Request (PR) on GitHub. Please include `[fix]` or + `[enh]` at the beginning of the title of your PR. + +- After reviewing, testing and validation by other contributors, your branch +should be merged in `unstable`! diff --git a/dev_fr.md b/dev_fr.md new file mode 100644 index 00000000..6fbe804a --- /dev/null +++ b/dev_fr.md @@ -0,0 +1,106 @@ +## Contribuer au cœur de YunoHost + +Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne savez pas comment procéder ? Ce guide parcourt les étapes du développement et du processus de contribution. + +Si vous cherchez quelque chose à implémenter ou un bug à réparer, le bug tracker est [ici](https://github.com/yunohost/issues/issues) ! + +**Venez dire coucou sur le [salon de dev](/chat_rooms)** ! + +### Mettre en place un environnement de développement + +- **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 machine virtuelle, ou bien sur un VPS. 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 vous sera possible de modifier les fichiers, de tester les changements en temps réel, et de commiter et push/pull directement depuis cet environnement. + +- **Implémentez et testez votre fonctionnalité**. Suivant ce sur quoi vous + voulez travailler : + - **Cœur Python/ligne de commande** : allez dans `/ynh-dev/yunohost/` + - **Interface d'administration web** : allez dans `/ynh-dev/yunohost-admin/` + - Vous pouvez aussi travailler sur les autres projets liés sur lesquels s'appuie YunoHost (SSOwat, Moulinette) de façon similaire. + +### Vue d'ensemble des 4 morceaux principaux de YunoHost + +##### Moulinette + +C'est un petit framework "fait maison". [Son rôle principal](https://moulinette.readthedocs.io/en/latest/actionsmap.html) est de permettre de construire une API Web et une API en ligne de commande à partir d'un même code Python et d'un schéma YAML que nous appelons [l'actionmap](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml). + +Il prend en charge d'autres mécanismes tels que l'authentification, l'internationalisation et des petites fonctions utilitaires techniques (par ex. lecture/écriture de fichiers JSON). + +Moulinette dispose de sa propre documentation [ici](https://moulinette.readthedocs.io/en/latest/). + +##### YunoHost + +C'est le cœur même de YunoHost. Il contient : +- [le code Python](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) qui gère les utilisateurs, domaines, applications, services et autres +- des [helpers bash](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) principalement utilisés par les packageurs d'applications dans les scripts de ces applications +- des [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) et [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) qui sont utilisés pour configurer les différents éléments de l'écosystème tels que NGINX, Postfix... +- des [chaînes internationalisées](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales) +- des [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests) + +##### SSOwat + +C'est le système de connexion unique (single sign-on) de YunoHost. Il contient principalement : +- [du code LUA](https://github.com/YunoHost/ssowat) interfacé directement avec NGINX et qui gère tous les aspects "techniques" de l'authentification et de la gestion des accès aux ressources. +- le [portail web utilisateur](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) qui est l'interface finale visible par les utilisateurs de YunoHost. + +SSOwat est configuré via `/etc/ssowat/conf.json` qui est généré par YunoHost. + +##### YunoHost-admin + +C'est une dépendance *optionnelle* de YunoHost et correspond à une interface pour l'API web créée par YunoHost et Moulinette (service `yunohost-api`). + +Il contient essentiellement : +- [des templates pour les vues](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views) +- les [contrôleurs JavaScript](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) correspondants, qui interagissent avec l'API YunoHost +- et ses [chaînes internationalisées](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales) + +### Travailler sur le cœur Python / ligne de commande + +- Allez dans `/ynh-dev/yunohost/`. + +- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost`. + +- Le fichier actionsmap (`data/actionsmap/yunohost.yml`) définit les différentes catégories, actions et arguments de la ligne de commande YunoHost. Choisissez comment vous voulez que les utilisateurs utilisent votre fonctionnalité, et ajoutez/éditez les catégories, actions et arguments correspondants. Par exemple, dans `yunohost domain add some.domain.tld`, la catégorie est `domain`, l'action est `add` et `some.domain.tld` est un argument. + +- Moulinette va automatiquement faire le lien entre les commandes de l'actionsmap et les fonctions Python (ainsi que leurs arguments) dans `src/yunohost/`. Par exemple, `yunohost domain add some.domain.tld` déclenchera un appel de `domain_add(domainName)` dans `domain.py`, avec l'argument `domainName` qui vaudra `"some.domain.tld"`. + +##### Helpers / style de code + +- Pour gérer les exceptions, il existe un type `YunohostError()` + +- Pour aider avec l'internationalisation des messages, utilisez `m18n.n('some-message-id')` et mettez le message correspondant dans `locales/en.json`. Vous pouvez aussi utiliser des arguments pour construire les messages, avec `{{some-argument:s}}`. Ne modifiez pas de fichiers de locales autres que `en.json`, la traduction sera faite avec [Weblate](https://translate.yunohost.org/) ! + +- YunoHost essaye de suivre le style de code [PEP8](http://pep8.org/). Des outils existent pour vérifier automatiquement la conformité du code. + +- Mettre un `_` devant les noms des fonctions "privées". + +### Travailler sur l'interface d'administration web + +- Allez dans `/ynh-dev/yunohost-admin/src/`. + +- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost-admin`. Ceci lance gulp, de sorte qu'à chaque fois que vous modifiez les sources, il recompilera le code (JS) et vous pourrez voir les changements dans le navigateur web (Ctrl+F5). Pour stopper la commande, faites simplement Ctrl+C. + +- L'interface web utilise une API pour communiquer avec YunoHost. Les commandes/requêtes de l'API sont également définies dans l'actionsmap. Par exemple, accéder à la page `https://domain.tld/yunohost/api/users` correspond à une requête `GET /users` vers l'API YunoHost. Cette requête est mappée sur `user_list()`. Accéder à cette URL devrait afficher le JSON retourné par cette fonction. Les requêtes 'GET' sont typiquement destinées à demander de l'information au serveur, tandis que les requêtes 'POST' sont destinées à demander au serveur de modifier/changer des informations ou de réaliser des actions. + +- `js/yunohost/controllers` contient les parties JavaScript, et définit quelles requêtes faire à l'API pendant le chargement d'une page donnée de l'interface, et comment traiter les données récupérées pour générer la page, en utilisant des templates. + +- `views` contient les templates des pages de l'interface. Dans le template, les données venant du JavaScript peuvent être utilisées avec la syntaxe `{{some-variable}}`, qui sera remplacée pendant la construction de la page. Il est également possible d'avoir des conditions avec la syntaxe d'[handlebars.js](http://handlebarsjs.com) : `{{#if + some-variable}}

du HTML conditionnel ici !

{{/if}}` + +- Pour l'internationalisation des messages, utilisez `y18n.t('some-string-code')` dans le JavaScript, ou `{{t 'some-string-code'}}` dans le template HTML, et mettez votre message dans `locales/en.json`. Ne modifiez pas de fichiers de locales autres que `en.json`, la traduction sera faite avec [Weblate](https://translate.yunohost.org/) ! + +##### N'oubliez pas + +- À chaque modification de l'actionsmap, il faut redémarrer l'API YunoHost : `service yunohost-api restart` (Il faudra retaper le mot de passe administrateur dans l'interface web) + +- Il faudra peut-être régulièrement forcer le rafraîchissement du cache navigateur pour propager correctement le JavaScript et/ou HTML (à chaque fois que l'on change quelque chose dans `js` ou `views`, donc). + + +### Votre fonctionnalité est prête et vous souhaitez qu'elle soit intégrée dans YunoHost + +- Forkez le dépôt correspondant sur GitHub, et commitez vos changements dans une nouvelle branche. Il est recommandé de nommer la branche avec la convention suivante : + - Pour une nouvelle fonctionnalité ou amélioration : `enh-ISSUENUMBER-description-fonctionnalité` + - Pour une correction de bug : `fix-REDMINETICKET-description-correctif` + - `ISSUENUMBER` est optionnel et correspond au numéro du ticket sur le bug tracker + +- Une fois prêt, ouvrez une Pull Request (PR) sur Github. De préférence, inclure `[fix]` ou `[enh]` au début du titre de la PR. + +- Après relecture, test et validation par les autres contributeurs, votre branche sera mergée dans `unstable` ! diff --git a/diagnostic.md b/diagnostic.md new file mode 100644 index 00000000..c4d74bd9 --- /dev/null +++ b/diagnostic.md @@ -0,0 +1,10 @@ +# Diagnose YunoHost functioning + +To diagnose that all critical aspects of your server are properly configured, +you should run a diagnosis from the webadmin in the "Diagnosis" section. (This +feature was added in YunoHost 3.8). + +TODO: elaborate on the fact that the diagnosis runs periodically, sends an email +to root which is forwarded to the very first user created, and that issues +should either be fixed or ignored (if they are understood/not relevant) +otherwise an email will be sent twice a day.. diff --git a/diagnostic_fr.md b/diagnostic_fr.md new file mode 100644 index 00000000..9e47e78f --- /dev/null +++ b/diagnostic_fr.md @@ -0,0 +1,13 @@ +# Diagnostic du bon fonctionnement de YunoHost + +Pour vérifier que tous les aspects critiques de votre serveur sont correctement +configurés, il est recommandé d'utiliser le système de diagnostic disponible +dans la webadmin de YunoHost. (Cette fonctionnalité a été ajoutée dans la version +3.8) + +Quelques points à retenir: +* Le diagnostique tourne périodiquement +* Un email est envoyé à root, qui est normalement forwardé vers le premier utilisateur créé +* Les problèmes trouvés doivent soient être réglé, soit ignorés (si ils sont +compris ou ne sont pas pertinents) autrement un mail est envoyé deux fois par +jour. diff --git a/dns.md b/dns.md new file mode 100644 index 00000000..e6694149 --- /dev/null +++ b/dns.md @@ -0,0 +1,38 @@ +# DNS: Domain Name System + +DNS configuration is a crucial stage for rendering your server accessible to the wider Internet. If your DNS is poorly configured, you are liable to have a lot of problems in connecting to your server via your domain name. + +*Even though this page appears long and complex, it is very important to understand the implications of Internet domain names, which are necessary for the proper function of your YunoHost server.* + +### What is it? + +DNS stands for "Domain Name Server", and is often used for the configuration of your domain names. Your domain names must point at a specific identifier (generally at an IP address.) + +**For example**: `yunohost.org` points to the server at `88.191.153.110`. + +This system was created to more easily keep track of server addresses. There are DNS registries for Internet names that you must register with. They are called "registrars", which will let you rent certain domain names for a price (between $5 or a few hundred, depending on the root domain and the chosen name). These [registrars](registrar) are private entities authorised by [ICANN](http://en.wikipedia.org/wiki/ICANN), such as [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). A privacy respecting registrar is [Njalla](https://njal.la/) or [Njalla Onion Site](http://njalladnspotetti.onion). With Njalla, you can register a domain name with just an email or XMPP address (N.B. : you won't have full control and ownership of the domain though). + +It is important to note that subdomains do not necessarily have to send you to wherever the principal domain is pointing. If `yunohost.org` sends to `88.191.153.110`, that doesn't mean that `backup.yunohost.org` has to point at the same IP. You must therefore configure **all** of the domains and subdomains that you want to use. + +There are also different **types** of DNS records, which means that a domain can point at something other than an IP address. + +**For example**: `www.yunohost.org` will send you to `yunohost.org` + +### How to (properly) set up a DNS name? + +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](/dns_nohost_me), 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.** + +2. You can use the DNS service offered by your **registrar** (Gandi, NameCheap, BookMyName or others) to configure your domain name. Here is the [standard DNS configuration](/dns_config). The DNS service of your router can also be used, more info on [how to setup a local domain](dns_local_network). +You can also check out these pages for specific [registrar](/registrar) documentation: [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). + + **Warning**: If you choose this option, you will have more configuration possibilities, but nothing will be done for you. For example, if you want to use `webmail.my-server.org`, you must add it manually to the DNS records with your registrar. + +3. (Advanced, not 100% supported...) 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. + + **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 understand the implications.** + + diff --git a/dns_config.md b/dns_config.md new file mode 100644 index 00000000..7ec00ca4 --- /dev/null +++ b/dns_config.md @@ -0,0 +1,108 @@ +# DNS zone configuration + +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. + +If you're using an [automatic domain](/dns_nohost_me) provided by the YunoHost Project, the configuration should be +performed automatically. If you're using your own domain name (e.g. bought via +a registrar), you should manually configure your domain on your registrar's +interface. + +## Recommended DNS configuration + +NB: Examples here use the placeholder `your.domain.tld`, you have to replace it with your real domain, such as `www.yunohost.org`. + +YunoHost provides a recommended DNS configuration, available via: +- the webadmin, in Domain > your.domain.tld > DNS configuration; +- or the command line, `yunohost domain dns-conf your.domain.tld` + +For specific needs or specific setups, and if you know what you're doing, you +might want or have to tweak these, or add additional ones (e.g. to handle +subdomains). + +The recommended configuration typically looks like this: + +```bash +# +# 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 @ +xmpp-upload 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" +``` + +Though it might be easier to understand it if displayed like this: + + +| Type | Name | Value | +| :-----: | :--------------------: | :--------------------------------------------------: | +| **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 | `@` | +| CNAME | xmpp-upload | `@` | +| **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"` | + +#### A few notes about this table + +- Not all these lines are absolutely necessary. For a minimal setup, you only need the records in bold. +- The dot at the end of `your.domain.tld.` is important ;); +- `@` corresponds to `your.domain.tld`, and e.g. `muc` corresponds to `muc.your.domain.tld`; +- These are example values ! See your generated conf for the actual values you should use; +- We recommend a [TTL](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) of 3600 (1 hour). But you can use something else if you know what you're doing; +- Don't put an IPv6 record if you're not sure IPv6 really works on your server! You might have issues with Let's Encrypt if it doesn't. + +### Reverse DNS + +If your ISP or VPS provider let you define a [Reverse DNS +lookup](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) for your public IPv4 +and/or IPv6 addresses, you must configure it. It will prevent you to be marked as +spam by anti-spam filters. + +**N.B. : the reverse DNS configuration happens on your Internet Service Provider or VPS provider. It is *not* handled by your domain's registrar.** + +If your public IPv4 address is `111.222.333.444` and your DNS +domain is `domain.tld`, you should get following answer when using `nslookup` +command tool: + +```shell +$ nslookup 111.222.333.444 +444.333.222.111.in-addr.arpa name = domain.tld. +``` + +The diagnosis system available in the webadmin performs this checks automatically (in section Email). + +### Dynamic IP + +If your global IP address is constantly changing, follow this [tutorial](/dns_dynamicip). diff --git a/dns_config_es.md b/dns_config_es.md new file mode 100644 index 00000000..77562be7 --- /dev/null +++ b/dns_config_es.md @@ -0,0 +1,81 @@ +# Configuración de la zona DNS + +DNS (sistema de nombre de dominios) es un elemento esencial de Internet que permite convertir direcciones comprensibles por seres humanos (los nombres de dominio) en direcciones comprensibles por la máquina (los IPs). Para que tu servidor esté fácilemente por otros seres humanos, y para que servicios como el mail funcionen correctamente, es preciso configurar la zona DNS de tu dominio. + +Si utilizas un [dominio automático](/dns_nohost_me) provecho por el Proyecto YunoHost, la configuración debería ser automática. Si quieres utilizar tu propio nombre de dominio (comprado a un registrar), hay que configurar manualmente tu proprio nombre de dominio vía la interfaz de tu registrar. + + +## Configuración DNS recomendada +_Nota: los ejemplos utilizan el marcador `tu.dominio.tld`, debe ser reemplazado por su propio dominio, como `www.yunohost.org`._ + +YunoHost provee una configuración DNS recomendada, accesible vía : +- la webadmin, en Dominios > tu.dominio.tld > Configuración DNS ; +- o la linea de comando, `yunohost domain dns-conf tu.dominio.tld` + +Para algunas necesidades o instalaciones particulares, y si sabes lo que estás haciendo, a lo mejor tendrás que modificar esa recomendación o añadir otros registros (e.g. para administrar subdominios). + +La configuración recomendada típicamente se parece a : + +```bash +# +# Registros IPv4/IPv6 básicos +# +@ 3600 IN A 111.222.33.44 +* 3600 IN A 111.222.33.44 + +# (Si tu servidor es compatibles con el IPv6, habrá registros AAAA) +@ 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111 +* 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111 + +# +# XMPP +# +_xmpp-client._tcp 3600 IN SRV 0 5 5222 tu.dominio.tld. +_xmpp-server._tcp 3600 IN SRV 0 5 5269 tu.dominio.tld. +muc 3600 IN CNAME @ +pubsub 3600 IN CNAME @ +vjud 3600 IN CNAME @ +xmpp-upload 3600 IN CNAME @ + +# +# Mail (MX, SPF, DKIM et DMARC) +# +@ 3600 IN MX 10 votre.domaine.tld. +@ 3600 IN TXT "v=spf1 a mx ip4:111.222.33.44 -all" +mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=uneGrannnnndeClef" +_dmarc 3600 IN TXT "v=DMARC1; p=none" +``` + +Pero puede ser un poco más fácil entenderla viéndola de esta manera : + + +| Tipo | Nombre | Valor | +| :-----: | :--------------------: | :----------------------------------------------------: | +| **A** | **@** | `111.222.333.444` (tu IPv4) | +| A | * | `111.222.333.444` (tu IPv4) | +| AAAA | @ | `2222:444:8888:3333:bbbb:5555:3333:1111` (tu IPv6) | +| AAAA | * | `2222:444:8888:3333:bbbb:5555:3333:1111` (tu IPv6) | +| **SRV** | **_xmpp-client._tcp** | `0 5 5222 tu.dominio.tld.` | +| **SRV** | **_xmpp-server._tcp** | `0 5 5269 tu.dominio.tld.` | +| CNAME | muc | `@` | +| CNAME | pubsub | `@` | +| CNAME | vjud | `@` | +| CNAME | xmpp-upload | `@` | +| **MX** | **@** | `tu.dominio.tld.` (y prioridad: 10) | +| TXT | @ | `"v=spf1 a mx ip4:111.222.33.44 -all"` | +| TXT | mail._domainkey | `"v=DKIM1; k=rsa; p=uneGrannnndeClef"` | +| TXT | _dmarc | `"v=DMARC1; p=none"` | + +#### Algunas notas a propósito de esta tabla : + +- Todos los registros no son necesarios. Para una instalación mínima, solos los registros en negrita son necesarios. +- El punto al final de `tu.dominio.tld.` es importante ;) ; +- `@` corresponde a `tu.dominio.tld`, y por ejemplo `muc`corresponde a `muc.tu.dominio.tld` ; +- ¡ Los valores mostrados son ejemplos ! Refiérete a la configuración generada por tu servidor qué valores utilizar. +- Recomendamos un [TTL](https://en.wikipedia.org/wiki/Time_to_live) de 3600 (1 hora). Pero puedes utilizar otro valor si sabes lo que estás haciendo ; +- ¡ No pongas registros IPv6 si no estás seguro que el IPv6 funcione en tu servidor ! Tendrás problemas con Let's Encrypt si no es el caso :-) + + +### IP Dinámica + +Si la dirección IP pública cambia, sigue este [tutorial](/dns_dynamicip). diff --git a/dns_config_fr.md b/dns_config_fr.md new file mode 100644 index 00000000..2d8528b7 --- /dev/null +++ b/dns_config_fr.md @@ -0,0 +1,110 @@ +# Configuration de la zone DNS + +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. + +Si vous utilisez un [domaine automatique](/dns_nohost_me) fourni par le Projet YunoHost, +la configuration devrait être faite automatiquement. Si vous utilisez votre propre nom de domaine +(e.g. acheté chez un registrar), il vous faut configurer manuellement votre +domaine via l'interface de votre registrar. + +## Configuration DNS recommandée +_NB : les exemples utilisent ici le texte `votre.domaine.tld`, à remplacer par votre propre domaine (par exemple `www.yunohost.org`)._ + +YunoHost fournit une configuration DNS recommandée, accessible via : +- la webadmin, dans Domaines > votre.domain.tld > Configuration DNS ; +- 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 à : + +```bash +# +# Enregistrements IPv4/IPv6 basiques +# +@ 3600 IN A 111.222.33.44 +* 3600 IN A 111.222.33.44 + +# (Si votre serveur supporte 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 @ +xmpp-upload 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" +``` + +Mais il est peut-être plus facile de la comprendre si affichée de la façon +suivante : + +| Type | Nom | Valeur | +| :-----: | :--------------------: | :----------------------------------------------------: | +| **A** | **@** | `111.222.333.444` (votre IPv4) | +| 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 | `@` | +| CNAME | xmpp-upload | `@` | +| **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"` | + +#### Quelques notes à propos de cette table + +- Tous ces enregistrements ne sont pas nécessaires. Pour une installation minimale, seuls les enregistrements en gras sont nécessaires ; +- Le point à la fin de `votre.domaine.tld.` est important ;) ; +- `@` corresponds à `votre.domaine.tld`, et par ex. `muc` corresponds à `muc.votre.domaine.tld` ; +- Les valeurs montrées ici sont des valeurs d'exemple ! Référez-vous à la configuration générée chez vous pour savoir quelles valeurs utiliser ; +- Nous recommandons un [TTL](https://fr.wikipedia.org/wiki/Time_to_Live#Le_Time_to_Live_dans_le_DNS) de 3600 (1 heure). Mais vous pouvez utiliser une autre valeur si vous savez ce que vous faîtes ; +- Ne mettez pas d'enregistrement IPv6 si vous n'êtes pas certains que l'IPv6 fonctionne sur votre serveur ! Vous aurez des problèmes avec Let's Encrypt si ce n'est pas le cas. + +### Résolution DNS inverse + +Si votre opérateur ou votre hébergeur le permet, nous vous encourageons à +configurer une [résolution DNS +inverse](https://fr.wikipedia.org/wiki/Domain_Name_System#R%C3%A9solution_inverse) +pour vos adresses publiques IPv4 et/ou IPv6. Ceci vous évitera d'être marqué +comme spammeur par les systèmes de filtrage anti-spams. + +**N.B. : la configuration du DNS inverse se passe au niveau de votre Fournisseur d'Accès à Internet, ou de votre hébergeur de VPS. Elle ne se fait *pas* sur le registrar de votre nom de domaine.** + +Cela signifie que si votre adresse IPv4 publique est `111.222.333.444` et que +votre nom de domaine est `domain.tld`, vous devez obtenir le résultat suivant +en utilisant la commande `nslookup` : + +```shell +$ nslookup 111.222.333.444 +444.333.222.111.in-addr.arpa name = domain.tld. +``` + +Le système de diagnostic présent dans l'interface d'administration fait cette vérification automatiquement (dans la section Email) + +### IP Dynamique + +Si votre adresse IP publique change constamment, suivez ce [tutoriel](/dns_dynamicip). diff --git a/dns_dynamicip.md b/dns_dynamicip.md new file mode 100644 index 00000000..9d4223a5 --- /dev/null +++ b/dns_dynamicip.md @@ -0,0 +1,40 @@ +# DNS with a dynamic IP + +
Before going further, make sure your global IP address is dynamic with: [ip.yunohost.org](http://ip.yunohost.org/). The global IP address of your box changes almost every day.
+ +This tutorial aim to get around dynamic IP issue which is: when the IP public address of your (Internet Service Provider-) box changes, the DNS zone is not updated to point towards the new IP address, and consequently your server is no more reachable via its domain name. After setting up the solution proposed in this tutorial, the redirection from your domain name to the actual IP address of your server will not be lost anymore. + +The method proposed here consists of automatizing the fact the box annonces its global IP adress change to the dynamic DNS, so that the DNS zone will automatically be updated. + +If you own a domain name at **OVH**, you may go to step 4 and follow this [tutorial](/OVH), given that OVH proposes a DynDNS service. + +#### 1. Create an account to a Dynamic DNS service +Here are sites which offer a DynDNS service free of charge: +* [DNSexit](https://www.dnsexit.com/Direct.sv?cmd=dynDns) +* [No-IP](https://www.noip.com/remote-access) +* [ChangeIP](https://changeip.com) +* [DynDNS (in italian)](https://dyndns.it) +* [DynDNS with your own domain](https://github.com/jodumont/DynDNS-with-HE.NET) +* [Duck DNS](https://www.duckdns.org/) + +Register to one of them. It should provide you with one (or more) IP address to reach the service, and a login (that you may be able to self-define). + +#### 2. Move the DNS zones +Copy the [DNS zones](dns_config), except for the NS fields, from the [registrar](/registrar) where you bought your domain name from to the dynamic DNS service you registrer at in step 1. + +#### 3. Switch the management of your domain name to the dynamic DNS server +This step consists in declaring to your [registrar](/registrar) that the DNS service will now be managed by the DynDNS service provider. + +For this, fisrt declare in the NS field(s) the IP address provided by the DynDNS service. + +Then, remove any other item in the [DNS zones](dns_config) (except the previous NS fields), from the [registrar](/registrar). + +#### 4. Configure the client +This client could be your ISP-box, or a package installed on your server, such as `ddclient`. +Here, we will use the client provided by the box, which is the more easy way. + +Enter the login of the dynamic DNS and its public IP address in your box (interface details may vary by ISP). + + + +You're good to go ! diff --git a/dns_dynamicip_fr.md b/dns_dynamicip_fr.md new file mode 100644 index 00000000..33589f54 --- /dev/null +++ b/dns_dynamicip_fr.md @@ -0,0 +1,41 @@ +# DNS avec une IP dynamique + +
Avant d’aller plus loin, assurez-vous que votre adresse IP publique est dynamique à l’aide de : [ip.yunohost.org](http://ip.yunohost.org/). L’adresse IP publique de votre box change à peu près tous les jours.
+ +Ce tutoriel a pour but de contourner le problème d’IP dynamique qui est le suivant : lorsque l’adresse IP publique de la box change, la zone DNS n’est pas mise à jour pour pointer vers la nouvelle adresse IP. + +Après avoir mis en place la solution proposée dans ce tutoriel, la redirection du nom de domaine vers l’adresse IP ne sera plus perdue. + +La méthode qui sera mise en place consiste à rendre automatique le fait que la box annonce au DNS dynamique qu’elle a changée d’adresse IP publique, et qu’ensuite la zone DNS soit automatiquement changée. + +Si vous possédez un nom de domaine chez **OVH**, vous pouvez aller à l’étape 4 et suivre ce [tutoriel](/OVH) étant donné qu’OVH propose un service de DynDNS. + +#### 1. Créer un compte pour un service de DNS dynamique + +Voici des sites qui proposent un service de DynDNS gratuitement : +* [DNSexit](https://www.dnsexit.com/Direct.sv?cmd=dynDns) +* [No-IP](https://www.noip.com/remote-access) +* [ChangeIP](https://changeip.com) +* [DynDNS (en italien)](https://dyndns.it) +* [Duck DNS](https://www.duckdns.org/) + +Créer un compte chez l’un d’eux. + +#### 2. Déplacer les zones DNS +Déplacer les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar) où vous avez acheté votre nom de domaine vers le DNS dynamique où vous avez créé un compte à l’étape 1. + +#### 3. Basculer la gestion de votre nom de domaine vers le serveur DNS dynamique +Cette étape consiste à faire savoir au [bureau d’enregistrement](/registrar) que le service de DNS sera assuré par le service de DynDNS. +Redirigez le champ NS vers l’adresse IP donnée par le service de DynDNS. + +Ensuite, supprimez les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar). + +#### 4. Créer un identifiant de DNS dynamique +Sur le service de DNS dynamique créer un identifiant qui sera entré dans un client de DNS dynamique. +Ce client peut-être votre box ou un paquet installé sur votre serveur comme `ddclient`. +Nous allons utiliser le client de la box qui est plus simple à mettre en place. + +#### 5. Configurer la box +Mettez l’identifiant du DNS dynamique et l’[adresse IP publique](http://ip.yunohost.org/) dans votre box. + + diff --git a/dns_es.md b/dns_es.md new file mode 100644 index 00000000..988399df --- /dev/null +++ b/dns_es.md @@ -0,0 +1,37 @@ +# DNS : sistema de nombre de dominios + +La configuración de los DNS es una etapa crucial para que tu servidor esté accesible. En efecto, si tus DNS están mal configurados, con mucha certeza tendrás problemas de conexión a tu servidor vía tu nombre de dominio. + +*Aunque esta etapa de documentación parezca larga y compleja, sigue siendo muy importante si quieres entender correctamente las implicaciones de la denominación en Internet vía los nombres de dominio, que son necesarios para el funcionamiento de tu servidor YunoHost.* + +### ¿ Qué es ? + +DNS significa « Domain Name Server » en inglés, y está frecuentemente empleado para designar la configuración de tus nombres de dominio. Tu nombre de dominio debe apuntar hacia algo (en general, una dirección IP). + +**Por ejemplo** : `yunohost.org` apunta hacia `88.191.153.110`. + +Este sistema fue creado para poder memorizar más fácilmente las direcciones de servidores. Existen registros DNS en los cuales hay que apuntarse. Esto se hace con **registrars** que te alquilarán estos nombres de dominio a cambio de cierto importe (entre cinco y algunas centenas de euros). Estos [registrars](registrar) son entidades privadas autorizadas por el [ICANN](https://es.wikipedia.org/wiki/Corporaci%C3%B3n_de_Internet_para_la_Asignaci%C3%B3n_de_Nombres_y_N%C3%BAmeros), tales como [Gandi](http://gandi.net), [OVH](http://ovh.com) o [BookMyName](http://bookmyname.com). + +Es importante notar que los subdominios no necesariamente apuntan al dominio principal. + +Si `yunohost.org` apunta hacia `88.191.153.110`, no quiere decir que `backup.yunohost.org` apunte hacia la misma IP. Tienes que configurar **todos** los dominios y subdominios que deseas utilizar. + +También existen **tipos** de registros DNS, lo que significa que un dominio puede apuntar hacia otra cosa que una dirección IP. + +**Por ejemplo** : `www.yunohost.org` apunta hacia `yunohost.org` + + +### ¿ Cómo (bien) hacer la configuración ? + +Tienes varias opciones. Nota que puedes cumular estas soluciones si posees varios dominios : por ejemplo, puedes tener `mi-servidor.nohost.me` utilizando la solución **1.**, et `mi-servidor.org` utilizando la solución **2.**, redirigiéndolos hacia el mismo servidor YunoHost. + +1. Puedes utilizar [el servicio DNS de YunoHost](/dns_nohost_me), que configurará él mismo los DNS de tu instancia YunoHost. Pero en este caso, tienes que elegir un dominio terminando por `.nohost.me`, `.noho.st` o `.ynh.fr`, lo que puede tener inconvenientes (tendrás direcciones email tales como `juan@mi-servidor.noho.st`). +**Es el método recomendado si estás debutando.** + +2. Puedes utilizar el servicio de DNS de tu **registrar** (Gandi, OVH, BookMyName u otro) para configurar tus nombres de dominio. Ésta es la [configuración DNS estándar](/dns_config). También es posible utilizar una redirección DNS local, más información sobre cómo [Acceder a su servidor desde la red local](/dns_local_network). +También puedes consultar las documentaciones específicas a estas varias [oficinas de registro](/registrar) : [Gandi](http://gandi.net), [OVH](/OVH) o [BookMyName](http://bookmyname.com). + +**Atención** : Si eliges este modo de funcionamiento, tendrás más flexibilidad, pero nada será automático. Por ejemplo si quieres utilizar `webmail.mi-servidor.org`, tendrás que añadirlo manualmente en la interfaz de tu registrar. + +3. (Advanced, not 100% supported, do this only if you know what you're doing) Tu instancia tiene un servicio DNS, lo que quiere decir que configura automáticamente sus registros DNS y que es posible delegarle la administración de estos registros. Por eso, tienes que indicar al **registrar** que es tu instancia YunoHost que es el servidor DNS de tu nombre de dominio creando un registro glue (a menudo denominado **glue record**) apuntando hacia la IP de tu instancia YunoHost. +

**Atención** : Si eliges este modo de funcionamiento, todas las configuraciones serán automatizadas, tendrás mucha flexibilidad pero la pérdida de tu servidor potencialmente traerá muchos problemas. **Elige este método si estás muy seguro de los que estás haciendo.** diff --git a/dns_fr.md b/dns_fr.md new file mode 100644 index 00000000..120d4f28 --- /dev/null +++ b/dns_fr.md @@ -0,0 +1,40 @@ +# DNS : système de nom de domaine + +La configuration des DNS est une étape cruciale pour que votre serveur soit accessible. En effet si vos DNS sont mal configurés, il y a toutes les chances pour que vous ayez des problèmes de connexion à votre serveur via votre nom de domaine. + +*Bien que cette page de documentation paraisse longue et complexe, elle demeure très importante si vous souhaitez comprendre correctement les implications du nommage sur Internet via les noms de domaine, qui sont nécessaires au fonctionnement de votre serveur YunoHost.* + +### Qu’est-ce que c’est ? + +**N’hésitez pas à regarder la très bonne conférence de Stéphane Bortzmeyer :** + +https://www.iletaitunefoisinternet.fr/post/1-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). + +**Par exemple** : `yunohost.org` renvoie vers `88.191.153.110`. + +Ce système a été créé pour pouvoir retenir plus facilement les adresses de serveur. Il existe donc des registres DNS dans lesquels il faut s’inscrire. Ceci peut être fait auprès de **registrars** qui vous feront louer ces noms de domaine contre une certaine somme (entre cinq et quelques centaines d’euros). Ces [registrars](registrar) sont des entités privées autorisées par l’[ICANN](http://fr.wikipedia.org/wiki/ICANN), telles que [Gandi](http://gandi.net), [OVH](http://ovh.com) ou [BookMyName](http://bookmyname.com). + +Il est important de noter que les sous-domaines ne renvoient pas nécessairement au domaine principal. +Si `yunohost.org` renvoie vers `88.191.153.110`, ça ne signifie pas que `backup.yunohost.org` renvoie vers la même IP. Vous devez donc configurer **tous** les domaines et sous-domaines que vous souhaitez utiliser. + +Il existe également des **types** d’enregistrement DNS, ce qui veut dire qu’un domaine peut renvoyer vers autre chose qu’une adresse IP. + +**Par exemple** : `www.yunohost.org` renvoie vers `yunohost.org` + + +### Comment (bien) faire la configuration ? + +Plusieurs choix s’offrent à vous. Notez que vous pouvez cumuler ces solutions si vous possédez plusieurs domaines : par exemple vous pouvez avoir `mon-serveur.nohost.me` en utilisant la solution **1.**, et `mon-serveur.org` en utilisant la solution **2.**, redirigeant vers le même serveur YunoHost. + +1. Vous pouvez utiliser [le service de DNS de YunoHost](/dns_nohost_me), qui s’occupera de configurer tout seul les DNS de votre instance YunoHost. Vous devrez en revanche choisir un domaine se terminant par `.nohost.me`, `.noho.st` ou `.ynh.fr`, ce qui peut être inconvenant (vous aurez alors des adresses email telles que `jean@mon-serveur.noho.st`). +**C’est la méthode recommandée si vous débutez.** + +2. Vous pouvez utiliser le service de DNS de votre **registrar** (Gandi, OVH, BookMyName ou autre) pour configurer vos noms de domaine. Voici la [configuration DNS standard](/dns_config). Il est aussi possible d'utiliser une redirection DNS locale, plus d'infos sur comment [Accéder à son serveur depuis le réseau local](/dns_local_network). +Vous pouvez également consulter les documentations spécifiques à ces différents [bureaux d’enregistrement](/registrar) : [Gandi](http://gandi.net), [OVH](/OVH) ou [BookMyName](http://bookmyname.com). + +**Attention** : Si vous choisissez ce mode de fonctionnement, vous aurez plus de flexibilité, mais rien ne sera automatique. Par exemple si vous souhaitez utiliser `webmail.mon-serveur.org`, vous devrez l’ajouter manuellement chez votre registrar. + +3. (Avancé, pas 100% supporté...) Votre instance YunoHost possède un service DNS, ce qui veut dire qu’il configure automatiquement ses enregistrements DNS, et qu’il est possible de lui en déléguer la gestion. Pour ce faire, vous devez indiquer au **registrar** que c’est votre instance YunoHost qui est le serveur DNS de votre nom de domaine en créant un enregistrement glue (souvent appelé **glue record**) pointant vers l’IP de votre instance YunoHost. +

**Attention** : Si vous choisissez ce mode de fonctionnement, toutes les configurations seront automatiques, vous disposerez d’une grande flexibilité, mais la perte de votre serveur entraînera potentiellement beaucoup d’ennuis. **Choisissez cette méthode seulement si vous êtes à l'aise et comprenez les conséquences** diff --git a/dns_local_network.md b/dns_local_network.md new file mode 100644 index 00000000..d182796c --- /dev/null +++ b/dns_local_network.md @@ -0,0 +1,45 @@ +# Local network access to your server + +After completing your server installation, it is possible that your domain will not be accessible through the local network. This is an issue known as [hairpinning](http://en.wikipedia.org/wiki/Hairpinning) - a feature that is not well supported by some internet routers. + +To solve this issue you can: +- configure your router's DNS +- or alternatively - your /etc/hosts files on your clients workstation + +### Find the local IP address of your server + +First you need to find out the local IP of your server +- either using the tricks lister [here](finding_the_local_ip) +- or if in the webadmin, in the Diagnosis section, under Internet Connectivity, IPv4, click on 'Details' and you should find an entry for 'Local IP' +- or using the command line on the server : `hostname -I` + +## Configure DNS on your Internet 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 `yunohost.local` to `192.168.1.21`). + +### SFR Box +If you haven't found your server private IP, you may find it using the SFR box admin panel: + Go to Network tab > General + + +#### Configure SFR box's DNS + +Go to Network tab > DNS and add your domain name to the box's DNS. + + +## Configure [hosts](https://en.wikipedia.org/wiki/Host_%28Unix%29) file on client workstation + +Modifying hosts file should be done only if you cannot alter your box's DNS or router, because hosts file will only impact the workstation where the file was modified. + +- Windows hosts file is located at: + `%SystemRoot%\system32\drivers\etc\` + > You MUST activate hidden and system file display to see the hosts file. +- UNIX systems (GNU/Linux, macOS) hosts file is located at: + `/etc/hosts` + > You MUST have root privileges to modify the file. + +Add a line at the end of the file containing your server private IP followed by a space and your domain name + +```bash +192.168.1.62 domain.tld +``` diff --git a/dns_local_network_es.md b/dns_local_network_es.md new file mode 100644 index 00000000..562de563 --- /dev/null +++ b/dns_local_network_es.md @@ -0,0 +1,34 @@ +# Local network access to your server + +After completing your server installation, it is possible that your domain will not be accessible through the local network. This is an issue known as [hairpinning](http://en.wikipedia.org/wiki/Hairpinning) - a feature that is not well supported by some internet routers. + +To solve this issue you can: +- configure your router's DNS +- or alternatively - your /etc/hosts files on your clients workstation + +### Find the local IP address of your server + +First you need to find out the local IP of your server +- either using the tricks lister [here](finding_the_local_ip) +- or if in the webadmin, in the Diagnosis section, under Internet Connectivity, IPv4, click on 'Details' and you should find an entry for 'Local IP' +- or using the command line on the server : `hostname -I` + +## Configurar el DNS de la caja Internet o del router + +Vas a crear una redirección que estará activa en toda tu red local. El objetivo es crear una redirección DNS hacia el IP de tu servidor en tu caja Internet. Hay que acceder a la interfaz de configuración de tu caja y a los parámetros DNS, y luego crear una redirección local (por ejemplo, `yunohost.local` puede redigir hacia `192.168.1.21`). + +## Configurar el archivo [hosts](https://es.wikipedia.org/wiki/Archivo_hosts) del ordenador cliente +Sólo deberías modificar el archivo hosts si no puedes modificar el DNS de tu caja Internet / router, porque el archivo hosts únicamente afectará el ordenador en el cual el archivo esté modificado. + +- En Windows, encontrarás el archivo hosts aquí : + `%SystemRoot%\system32\drivers\etc\` + > Es preciso visualizar los archivos y sistemas escondidos para ver el archivo hosts. +- En sistemas UNIX (GNU/Linux, macOS), lo encontrarás aquí : + `/etc/hosts` + > Necesitarás derechos root para modificar el archivo. + +Simplemente añade al final del archivo hosts una linea conteniendo la dirección IP privada del servidor y tu nombre de dominio + +```bash +192.168.1.62 domain.tld +``` diff --git a/dns_local_network_fr.md b/dns_local_network_fr.md new file mode 100644 index 00000000..88dd13d3 --- /dev/null +++ b/dns_local_network_fr.md @@ -0,0 +1,45 @@ +# Accéder à son serveur depuis le réseau local + +Après installation de votre serveur, il est possible que votre nom de domaine ne soit pas accessible depuis le réseau local où se trouve le serveur. Ceci est un problème connu sous le nom de [hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) - une fonctionnalité mal supportée par certaines box internet. + +Pour résoudre ce problème: +- il est nécessaire de configurer le DNS de votre routeur +- à défaut, il est possible de modifier le ou les fichiers /etc/hosts de vos ordinateurs clients. + +### Trouver l’adresse IP locale du serveur + +Tout d'abord il vous faut trouver l'adresse IP locale du serveur +- soit en utilisant l'une de astuces expliquées [ici](finding_the_local_ip) +- ou en utilisant la webadmin, dans l'écran Diagnostique, section Connection Internet, IPv4, cliquer sur 'Détails' et vous devriez trouver une entrée pour 'IP locale'. +- ou en ligne de commande sur le serveur: `hostname -I` + +## Configurer le DNS de la box + +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.1.21`). + +### Box SFR + +Si vous ne disposez toujours pas de l’adresse IP privée de votre serveur, vous pouvez la trouver sur l’interface de votre box SFR : + Dans l’onglet Réseau puis Général + + +#### Configurer le DNS de la box SFR +Rendez-vous dans l’onglet Réseau puis DNS pour ajouter votre nom de domaine au DNS de la box. + + +## Configurer le fichier [hosts](http://fr.wikipedia.org/wiki/Hosts) de l’ordinateur client + +La modification du fichier hosts devrait être effectuée seulement si vous ne pouvez pas modifier le DNS de votre box ou de votre routeur, car le fichier hosts impactera uniquement l’ordinateur sur lequel le fichier est modifié. + +- Sous Windows, vous trouverez le fichier hosts ici : + `%SystemRoot%\system32\drivers\etc\` + > Il est nécessaire d’afficher les fichiers cachés et systèmes pour voir le fichier hosts. +- Sous les systèmes UNIX (GNU/Linux, macOS), vous le trouverez ici : + `/etc/hosts` + > Les droits root sont nécessaires pour modifier le fichier. + +Ajoutez simplement à la fin du fichier hosts une ligne contenant l’adresse IP privée du serveur suivi de votre nom de domaine + +```bash +192.168.1.62 domain.tld +``` diff --git a/dns_nohost_me.md b/dns_nohost_me.md new file mode 100644 index 00000000..5a8b6a1f --- /dev/null +++ b/dns_nohost_me.md @@ -0,0 +1,57 @@ +# Nohost.me domains + +In order to make self-hosting as accessible as possible, the YunoHost Project provides a *free* and *automatically configured* domain name service. By using this service, you won't have to [configure DNS records](/dns_config) yourself, which can be tedious and technical. + +The following (sub)domains are proposed: +- `whateveryouwant.nohost.me`; +- `whateveryouwant.noho.st`; +- `whateveryouwant.ynh.fr`. + +To use this service, you simply have to choose such a domain during the post-installation. It will then be automatically configured by YunoHost! + +N.B.: As a fairness measure, each instance may only have **one such domain** setup at any given time. + +### Subdomains + +The `nohost.me`, `noho.st` and `ynh.fr` domain service does allow the creation of subdomains. + +YunoHost allows the installation of applications on subdomains (for example, having the Nextcloud application accessible from the `cloud.mydomain.org` address), this feature is also allowed with the `nohost.me`, `noho.st` and `ynh.fr` domains and so it is possible to have a subdomain such as `my.application.mydomain.nohost.me`. to create a subdomain for `nohost.me`, `noho.st` and `ynh.fr` domain you just have to add the subdomain to yunohost like any other domains. + + +### Adding a nohost.me, noho.st or ynh.fr domain after the post-installation + +If you already did the postinstall and want to add an automatic domain, you may do so from the "Domains" web interface, selecting the option "I don't have a domain name..." + +Alternatively, the following commands can be used. + +```bash +# Add the domain +yunohost domain add whateveryouwant.nohost.me + +# Subscribe/register to the dyndns service +yunohost dyndns subscribe -d whateveryouwant.nohost.me + +# [ wait ~ 30 seconds ] + +# Update the DNS conf +yunohost dyndns update + +# Set it as the main domain +yunohost domain main-domain -n whateveryouwant.nohost.me +``` + +### Retrieve a nohost.me, noho.st or ynh.fr domain + +If you reinstall your server and want to use a domain already used previously, you must request a domain reset on the forum [in the dedicated thread](https://forum.yunohost.org/t/nohost-domain-recovery/442). + + +### Change a nohost.me, noho.st or ynh.fr domain + +If you wish to use a different automatic domain, you first have to remove your present domain registration. This is done in 3 steps: + +1. Remove the domain from your instance (via webadmin or the `yunohost domain remove` CLI). +**/!\ Caution: this will remove any app installed on this domain, along with its data.** +2. Ask for registration removal [in the dedicated forum thread](https://forum.yunohost.org/t/nohost-domain-recovery/442). +3. Remove automatic domain configuration files on your server, via CLI only: `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns` + +You may then add a new domain. diff --git a/dns_nohost_me_es.md b/dns_nohost_me_es.md new file mode 100644 index 00000000..e27a0589 --- /dev/null +++ b/dns_nohost_me_es.md @@ -0,0 +1,55 @@ +# Nombres de dominios automáticos + +Para hacer que el auto-alojamiento esté lo más accesible posible, el Proyecto YunoHost provee un servicio de nombres de dominio *ofertos* y *automáticamente configurados*. Cuando utilizas este servicio, no tienes que configurar tú mismo la [configuración de los registros DNS](/dns_config) que es bastante técnica. + +Los subdominios siguientes están propuestos : +- `loquequieras.nohost.me` ; +- `loquequieras.noho.st` ; +- `loquequieras.ynh.fr`. + +Para aprovechar de este servicio, basta con elegir uno de estos tipos de dominios durante la post-instalación. ¡ Estará automáticamente configurado por YunoHost ! + +N.B. : Por razones de equidad, sólo puedes tener un *único nombre de dominio* nohost.me por instalación de YunoHost. + +### Subdominios + +El servicio de dominios `nohost.me`, `noho.st` y `ynh.fr` no permite la creación de subdominios. + +Aunque YunoHost permita la instalación de aplicaciones en subdominios (por ejemplo teniendo la aplicación Nextcloud accesible desde la dirección `cloud.midominio.org`), esta función no está permitida con los dominios `nohost.me` y `noho.st` y no es posible tener un subdominio tal como `miaplicacion.midominio.nohost.me`. + +Para poder aprovechar de las aplicaciones instalables únicamente a la raíz de un nombre de de dominio, hay que tener su propio nombre de dominio. + +### Añadir un dominio nohost.me, noho.st o ynh.fr después de la post-instalación + +Si ya has hecho la post-instalación y quieres añadir un dominio de tipo nohost.me, puedes utilizar la categoría "Dominios" de la interfaz web, eligiendo la opción "No tengo nombre de dominio..." + +También puedes utilizar los comandos siguientes desde línea de comandos. + +```bash +# Añadir el dominio +yunohost domain add loquequieras.nohost.me + +# Registrar el dominio en el servicio dyndns +yunohost dyndns subscribe -d loquequieras.nohost.me + +# [ esperar ~ 30 segundos ] + +# Actualizar la configuración DNS +yunohost dyndns update + +# Configurarlo como dominio principal +yunohost domain main-domain -n loquequieras.nohost.me +``` + +### Recuperar un dominio nohost.me, noho.st o ynh.fr + +Si reinstalas tu servidor y quieres utilizar un dominio automático que ya utilizaste, tienes que pedir una reinstalación del dominio al Proyecto YunoHost [en el hilo de discusión dedicado del foro](https://forum.yunohost.org/t/nohost-domain-recovery/442). + +### Cambiar un dominio nohost.me, noho.st o ynh.fr + +Si quieres utilizar otro dominio automático en tu servidor, primero tienes que cancelar el que ya está configurado, siguiendo estas instrucciones : +1. Suprimir el dominio de tu instancia (vía webadmin o `yunohost domain remove`). **Cuidado : esto suprimirá todas las aplicaciones instaladas en este dominio así como sus datos**. +2. Pedir la supresión de tu suscripción [en el hilo de discusión dedicado del foro](https://forum.yunohost.org/t/nohost-domain-recovery/442). +3. Suprimir los archivos de configuración automática de tu instancia (únicamente desde la linea de comando por ahora) : `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns` + +Luego podrás registrar un nuevo dominio automático. diff --git a/dns_nohost_me_fr.md b/dns_nohost_me_fr.md new file mode 100644 index 00000000..95600928 --- /dev/null +++ b/dns_nohost_me_fr.md @@ -0,0 +1,57 @@ +# Noms de domaines automatiques + +Afin de rendre l'auto-hébergement le plus accessible possible, le Projet YunoHost fournit un service de noms de domaine *offerts* et *automatiquement configurés*. En utilisant ce service, vous n'avez donc pas à réaliser vous-même la [configuration des enregistrements DNS](/dns_config) qui est assez technique. + +Les (sous-)domaines suivants sont proposés : +- `cequevousvoulez.nohost.me` ; +- `cequevousvoulez.noho.st` ; +- `cequevousvoulez.ynh.fr`. + +Pour profiter de ce service, il vous suffit de choisir un tel domaine lors de la post-installation. Il sera ensuite automatiquement configuré par YunoHost ! + +N.B. : Pour des raisons d'équité, vous ne pouvez avoir qu'*un seul domaine* nohost.me par installation de YunoHost. + +### Sous-domaines + +Le service de domaines `nohost.me`, `noho.st` et `ynh.fr` autorise la création de sous-domaines. + +YunoHost permet l'installation d'applications sur des sous-domaines (par exemple avoir l'application ownCloud accessible depuis l'adresse `cloud.mondomaine.org`), cette fonctionnalité est aussi permise avec les domaines `nohost.me`, `noho.st` et `ynh.fr` et il est donc possible d’avoir un sous-sous-domaine tel `monapplication.mondomaine.nohost.me`. + +Pour créer un sous domaine à un domaine `nohost.me`, `noho.st` et `ynh.fr` il suffit d'ajouter celui-ci à YunoHost de la même manière que n'importe quel autre nom de domaine. + +### Ajouter un domaine nohost.me, noho.st ou ynh.fr après la post-installation + +Si vous avez déjà effectué la postinstallation et souhaitez ajouter un domaine +de type `nohost.me`, vous pouvez utiliser la catégorie "Domaines" de l'interface web, +en choisissant l'option "Je n'ai pas de nom de domaine..." + +Vous pouvez également utiliser les commandes suivantes depuis la ligne de commande. + +```bash +# Ajouter le domaine +yunohost domain add cequevousvoulez.nohost.me + +# Enregister le domaine dans le service dyndns +yunohost dyndns subscribe -d cequevousvoulez.nohost.me + +# [ attendre ~ 30 secondes ] + +# Mettre à jour la configuration DNS +yunohost dyndns update + +# Le définir comme nouveau domain principal +yunohost domain main-domain -n cequevousvoulez.nohost.me +``` + +### Récupérer un domaine nohost.me, noho.st ou ynh.fr + +Si vous réinstallez votre serveur et voulez utiliser un domaine automatique déjà utilisé précédemment, il vous faut demander une réinitialisation du domaine au Projet YunoHost, [dans le fil de discussion dédié du forum](https://forum.yunohost.org/t/nohost-domain-recovery/442). + +### Changer un domaine nohost.me, noho.st ou ynh.fr + +Si vous voulez utiliser un autre domaine automatique sur votre serveur, vous devez d'abord supprimer celui qui est déjà configuré, selon les instructions suivantes : +1. Supprimer le domaine de votre instance (par webadmin ou `yunohost domain remove`). **Attention : cela supprimera toute application installée sur ce domaine, ainsi que ses données**. +2. Demander la suppression de votre souscription [dans le fil de discussion dédié du forum](https://forum.yunohost.org/t/nohost-domain-recovery/442). +3. Enlever les fichiers de configuration automatique sur votre instance (uniquement depuis la ligne de commande pour le moment) : `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns` + +Vous pourrez ensuite enregistrer un nouveau domaine automatique. diff --git a/dns_subdomains.md b/dns_subdomains.md new file mode 100644 index 00000000..b6112c6c --- /dev/null +++ b/dns_subdomains.md @@ -0,0 +1,39 @@ +## DNS and subdomains for the applications + +### Subdomains + +YunoHost allows the use of subdomains. If one owns a domain name `mydomain.com`, one first needs to create the subdomains in the DNS configuration (with one's registrar like Gandi). + +### Configuration example with Gandi + +The DNS configuration needs an A record with an IPv4 address, an AAAA record with an IPv6 address, and various CNAME records, one for each desired subdomain. + +If your DNS configuration looks like: +```bash +@ A XYZ.XYZ.XYZ.XYZ +@ AAAA 1234:1234:1234:FFAA:FFAA:FFAA:FFAA:AAFF +* CNAME mydomain.com. +agenda CNAME mydomain.com. +blog CNAME mydomain.com. +rss CNAME mydomain.com. +``` +then you can access `agenda.mydomain.com`, `blog.mydomain.com` and `rss.mydomain.com` subdomains. + +### Install an application on a subdomain + +To install an application on a subdomain in YunoHost, for example `blog.mydomain.com`, the configuration is done in the administration panel. One first add the subdomain to the available domains list. The creation of a subdomain in YunoHost will create the corresponding configuration files for NGINX (the web server used in YunoHost). + +Then, in the applications>install panel, one follows the classic installation process by choosing the desired subdomain as domain (for example `blog.mydomain.com`). One needs to choose the path `/` (in place of `/wordpress` for example). A warning message will appear telling that it won't be possible to install other application to this subdomain. After validation, the installation starts. + +The application is then available at `blog.mydomain.com` (and not `mydomain.com/wordpress`). + +### Moving an application to a subdomain + +What happens if the application is already installed? For example, one wants to move `mydomain.com/wordpress` to `blog.mydomain.com`. +It depends on the application. +Some applications allow the change of domain. In that case, one can proceed to the change through the administration panel Applications>the_app>change URL. +If the application doesn't allow URL change, then there is no easy way to do it. The best solution is to reinstall the application. + +### Reinstalling an application + +First, save the application data through the backup process. Then uninstall the application with the administration panel. Then reinstall the application to the desired domain. Finally, restore the backup. diff --git a/dns_subdomains_fr.md b/dns_subdomains_fr.md new file mode 100644 index 00000000..aa47ac2d --- /dev/null +++ b/dns_subdomains_fr.md @@ -0,0 +1,38 @@ +## DNS et sous-domaines pour les applications + +### Sous-domaines + +YunoHost permet l’usage de sous-domaine. Il faut avoir un nom de domaine par exemple mon `domaine.fr` et créer au niveau de la configuration DNS (chez Gandi par exemple) des sous domaines. + +### Configuration chez Gandi + +Dans la configuration de son DNS, on aura donc une entrée A avec l’adresse IPv4, une entrée AAAA avec l’adresse IPv6 et ensuite différents CNAME pour les sous-domaines que l’on souhaite créer. +Nom Type Valeur +```bash +@ A XYZ.XYZ.XYZ.XYZ +@ AAAA 1234:1234:1234:FFAA:FFAA:FFAA:FFAA:AAFF +* CNAME mondomaine.fr. +agenda CNAME mondomaine.fr. +blog CNAME mondomaine.fr. +rss CNAME mondomaine.fr. +``` +permet d’avoir un `agenda.mondomaine.fr`, un `blog.mondomaine.fr` etc. + +### Installer une application sur un sous-domaine + +Pour installer une application sur un sous-domaine, par exemple `blog.mondomaine.fr`, dans YunoHost, tout se fait via la partie administration. On ajoute tout d’abord le sous-domaine à la liste des domaines disponibles. La création d’un sous-domaine dans YunoHost créera les fichiers de configuration correspondants pour NGINX (le serveur web de YunoHost). + +Puis dans la partie installation d’une application, on installe l’application de façon traditionnelle en choisissant ce sous-domaine comme domaine (par exemple `blog.mondomaine.fr`) et en indiquant comme chemin `/` (et non `/wordpress` qui est le chemin par défaut). On a alors un message d’avertissement indiquant qu’on ne pourra plus installer d’applications sur ce sous-domaine. On valide. Ça s’installe. + +L’application est alors accessible via `blog.mondomaine.fr` (et non via `mondomaine.fr/wordpress`). + +### Déplacer une application sur un sous-domaine ? + +Que se passe-t-il si on a déjà installé l’application ? On veut par exemple passer de `mondomaine.fr/wordpress` à `blog.mondomaine.fr`. +Pour l’instant il n’y a pas de façon simple (via l’interface graphique de l’administration de YunoHost) pour déplacer une application sur un sous-domaine. + +Solution : réinstaller l’application + +### Réinstallation de l’application + +On sauvegarde ses données (base de données etc. via un script SQL par exemple, les fichiers etc.). On désinstalle l’application via l’interface graphique d’administration de YunoHost. Et on la réinstalle en suivant la procédure ci-dessus. diff --git a/doc_markdown_guide.md b/doc_markdown_guide.md new file mode 100644 index 00000000..bf1b6933 --- /dev/null +++ b/doc_markdown_guide.md @@ -0,0 +1,252 @@ +# Guide Markdown + +Markdown is a markup language created in 2004, many add-ons developing the possibilities of this language exist. The objective of this guide is to aim for the exhaustiveness of the possibilities of this formatting language within the framework of the YunoHost documentation and not Markdown languages in general. + +Markdown allows text to be formatted using tags, it allows *human* reading of the text; even with formatting. Even if only one notepad is needed there are many markdowns software (Markdown on [framalibre.org (fr)](https://framalibre.org/recherche-par-crit-res?keys=markdown)). It is relatively easy to use. + +## The different levels of titles + +By writing titles as follows: +```markdown +# Level 1 title +## Level 2 title +### Level 3 title +#### Level 4 title +##### Level 5 title +###### Level 6 title +``` + +They appear like this: +# Level 1 title +## Level 2 title +### Level 3 title +#### Level 4 title +##### Level 5 title +###### Level 6 title + +## Formatting in paragraphs + +To type a line break without creating a new paragraph, it is necessary to type **two consecutive spaces**. Otherwise, the text will continue in a row respecting the general constraints of the page style. + +By writing this: + +```markdown +For text in *italic you have to frame it with an asterisk* `*` +To write **bold text by two asterisks** `**` +You can also ~~bar the text~~ by framing it with two tildes `~` +``` + +It reads like this: + +For text in *italic you have to frame it with an asterisk* `*` +To write **bold text by two asterisks** `**` +You can also ~~bar the text~~ by framing it with two tildes `~` + +## Create links + +To create a link to a site outside of the YunoHost documentation: + +```markdown +[Text to display](https://lelien.tld) +``` + +will be displayed as such: +[Text to display](https://lelien.tld) + +It is the same for the documentation pages, except that the link is internal. It refers to the wiki file, without language and file extension (the `_fr.md`): +```markdown +[Wiki Page](/write_documentation) +``` + +The link will return to the page with the correct language setting if the page exists. +[Wiki page](/write_documentation) + +### Create anchors +An anchor allows you to make a link to a specific point in a page, that's how the indexes at the top of the page work. To create an anchor, you need to insert code at the anchor location in the following form : + +```markdown +Text that will be doesn't even know it has an anchor. +``` + +What's displayed is: +Text that will be doesn't even know it has an anchor. + +It is also possible to return an anchor directly to the title, noting the link in lower case with `-`s instead of spaces. +All that remains is to designate the anchor to the text you want to make interactive: + +```markdown +[My Anchor Returns to Lists](#anchorname) +[My Anchor that refers to the title of the tables](#tables) +``` + +[My Anchor Returns to Lists](#anchorame) +[My Anchor that refers to the title of the tables](#tables) + +## Displaying images + +To display images, the principle is the same as for links, except that a `!` is added before the text to be displayed, which is considered here as the text to be displayed if the image cannot be loaded. A description of the image is appropriate. + +```markdown +![YunoHost Logo](/images/logo.png) +``` +![YunoHost Logo](/images/logo.png) + + +It is possible to make a link with an image, for example: +```markdown +[![YunoHost Logo](/images/logo.png)](/write_documentation) +``` +[![YunoHost Logo](/images/logo.png)](/write_documentation) + +The insert of *text to be displayed if the image cannot be loaded* between the brackets in the image link is not mandatory but strongly recommended. + +## Format a quote + +Quotes are used to highlight a statement made by another person, the wiki itself manages the way it is highlighted. Markdown uses a closing chevron, this symbol: `>`, to announce a quote. Just add it before the quote, as such: + +```markdown +>First level quotation text +>which can be formatted in different lines + +>> And a second quote +>> with double rafters +``` +Will be displayed: + +>First level quotation text +>which can be formatted in different lines + +>> And a second quote +>> with double rafters + +## Lists + +Lists allow to display a series of texts in an easy presentation, this is how indexes such as the [contributing documentation](/contributordoc) page are written. + +### Ordered lists + +The ordered lists can be incremented as much as you wish, it is not necessary to give the right match to the number. It is possible to write down with `1.` and put in three spaces to mark the increment. For a better understanding of the plain text, it may be fine to use the numbers in ascending order to mark the increment, but it is the three consistent `spaces' before the sub-list that will mark the increment. + +```markdown +1. List 1 +1. List 2 +1. list 3 + 1. List 3a + 1. List 3b + 1. List 3b1 + 1. List 3b2 + 1. List 3b3 + 1. List 1 + 1. List 2 + 1. list 3 +1. List 4 +1. List 5 +1. list 6 +``` + +You get: + +1. List 1 +1. List 2 +1. list 3 + 1. List 3a + 1. List 3b + 1. List 3b1 + 1. List 3b2 + 1. List 3b3 + 1. List 1 + 1. List 2 + 1. list 3 +5. List 4 +3. List 5 +4. list 6 + +### Unordered lists + +To create an unordered list, use the symbols `*`, `+` or `*`. This will not change the appearance of the marker in the text output. It is the incrementing of the list that will define the visual. For a better reading of the plain text, it may be good to use the different symbols to mark the increment, but it is the three spaces before the sub-list that will indicate the increment. +As such: +```markdown ++ List 1 ++ List 2 ++ list 3 + - List 3a + - List 3b + * List 3b1 + * List 3b2 + * List 3b3 + + List 1 + + List 2 + + list 3 +- List 4 +* List 5 ++ list 6 +``` + +This will read: ++ List 1 ++ List 2 ++ list 3 + - List 3a + - List 3b + * List 3b1 + * List 3b2 + * List 3b3 + + List 1 + + List 2 + + list 3 +- List 4 +* List 5 ++ list 6 + +## Tables + +To create an array, use the vertical bar `|` and dashes `--`. It is mandatory to add a line of dashes under the first line of the table. There is no constraint in the size of the table. It is possible to format the array with the `:` in the second row of the array, three options are available: + +| Left aligned column | Centered column | Right aligned column | +|:--------------------|:---------------:|---------------------:| +|`:-----` | `:----:` | `-----:` | + +```markdown +| **One table** | One column | One second | As many as you want | +|:-------------:|:----------:|:----------:|:-------------------:| +| | And formatted line | | And bold text | | Or *italic* | +| More lines | |![An image](/images/cd.jpg) | [Or a link](/contributordoc) | +``` +Which would say this: + +| **One table** | One column | One second | As many as you want | +|:-------------:|:----------:|:----------:|:-------------------:| +| | And formatted line | | And bold text | | Or *italic* | +| More lines | |![An image](/images/cd.jpg) | [Or a link](/contributordoc) | + +## Code block + +To display plain text, `blocks of code' can be created using the grave accent `Alt Gr + è` : + +```markdown +Either inline, for example to highlight a key like `Ctrl`. +``` + +or directly as a block. +The only difference is in the amount of bass accents: +At least three low pitched accents at the opening and closing of the block and two low pitched accents that frame the piece of text to be formatted in a line. + +Which will give the rendering: + +Either inline, for example to highlight a key like `Ctrl`. +''' +```markdown +or directly as a block. +The only difference is in the amount of bass accents: +At least three low pitched accents at the opening and closing of the block and two low pitched accents that frame the piece of text to be formatted in a line. +``` +''' + +## Useful links + + + The documentation of the original Markdown language: [daringfireball.net/projects/markdown](https://daringfireball.net/projects/markdown/) + + Markdown Tutorial on [markdowntutorial.com](https://markdowntutorial.com) + +## Going further + +In a more general way, to understand how a text is formatted just inspect the source document with a note application. This does not mean that the YunoHost wiki will be able to exploit it. There are many other possibilities to use markdown syntax, feel free to add missing features. If you've noticed some missing features and/or have questions, please contact us on [the forum](https://forum.yunohost.org) or by direct message on the IRC room: **#yunohost** on [irc.freenode.net](https://irc.freenode.net). diff --git a/doc_markdown_guide_fr.md b/doc_markdown_guide_fr.md new file mode 100644 index 00000000..1483e0df --- /dev/null +++ b/doc_markdown_guide_fr.md @@ -0,0 +1,251 @@ +# Guide Markdown + +Le Markdown est un langage de balisage créé en 2004, de nombreux add-on développant les possibilités de ce langage existent. L'objectif de ce guide est de tendre vers l’exhaustivité des possibilités de ce langage de formatage dans le cadre de la documentation de YunoHost et non des langages Markdown en général. + +Markdown permet de formater du texte à l'aide de balises, il permet une lecture *humaine* du texte ; même avec le formatage. Même si un unique bloc note est nécessaire il existe de nombreux logiciels markdowns (Markdown sur [framalibre.org](https://framalibre.org/recherche-par-crit-res?keys=markdown)). Sa prise en main est relativement facile. + +## Les différents niveaux de titres + +En rédigeant des titres comme suit : +```markdown +# Titre de niveau 1 +## Titre de niveau 2 +### Titre de niveau 3 +#### Titre de niveau 4 +##### Titre de niveau 5 +###### Titre de niveau 6 +``` + +Ils apparaissent comme cela : +# Titre de niveau 1 +## Titre de niveau 2 +### Titre de niveau 3 +#### Titre de niveau 4 +##### Titre de niveau 5 +###### Titre de niveau 6 + +## Formatage dans les paragraphes + +Pour taper un retour à la ligne sans créer de nouveau paragraphe, il est nécessaire de taper **deux espaces consécutifs**.Sans cela, le texte continuera à la suite en respectant les contraintes générales du style de la page. + +En rédigeant ça : + +```markdown +Pour du texte en *italique il faut encadrer par un astérisque* `*` +Pour rédiger du **texte en gras par deux astérisques** `**` +On peut aussi ~~barrer le texte~~ en encadrant avec deux tildes `~` +``` + +On peut lire ça : + +Pour du texte en *italique il faut encadrer par un astérisque* `*` +Pour rédiger du **texte en gras par deux astérisques** `**` +On peut aussi ~~barrer le texte~~ en encadrant avec deux tildes `~` + +## Créer des liens + +Pour créer un lien vers un site hors de la documentation de YunoHost : + +```markdown +[Texte à afficher](https://lelien.tld) +``` + +s'affichera comme tel : +[Texte à afficher](https://lelien.tld) + +C'est identique pour les pages de la documentation, excepté que le lien est interne. Il renvoie au fichier du wiki, sans extension de langue et de fichier (le `_fr.md`) : +```markdown +[Page du wiki](/write_documentation) +``` + +Le lien renverra vers la page avec la bonne configuration de langue si la page existe. +[Page du wiki](/write_documentation) + +### Créer des ancres +Une ancre permet de faire un lien vers un point précis dans une page, c'est comme ça que fonctionnent les index en haut de page. Pour créer une ancre, il faut insérer du code à l'endroit de l'ancre sous la forme suivante : + +```markdown +Du texte qui ne sait même pas qu'il a une ancre +``` + +Ce qui s'affiche : +Du texte qui ne sait même pas qu'il a une ancre + +Il est aussi possible de directement renvoyer une ancre au titre, en notant le lien en minuscule avec des `-` à la place des espaces. +Il ne reste plus qu'à désigner l'ancre au texte que l'on souhaite rendre interactif : + +```markdown +[Mon ancre qui renvoie vers les listes](#nomdelancre) +[Mon ancre qui renvoie vers le titre des tableaux](#les-tableaux) +``` + +[Mon ancre qui renvoie vers les listes](#nomdelancre) +[Mon ancre qui renvoie vers le titre des tableaux](#les-tableaux) + +## Afficher des images + +Pour afficher des images, le principe est identique aux liens, excepté l'ajout d'un `!` avant le texte à afficher qui est ici considéré comme le texte à afficher en cas d'impossibilité de chargement de l'image. Une description de l'image convient. + +```markdown +![Logo YunoHost](/images/logo.png) +``` +![Logo YunoHost](/images/logo.png) + + +Il est possible de faire un lien avec une image, exemple : +```markdown +[![Logo YunoHost](/images/logo.png)](/write_documentation) +``` +[![Logo YunoHost](/images/logo.png)](/write_documentation) + +L'encart de *texte à afficher en cas d'impossibilité de chargement de l'image* entre les crochets dans le lien de l'image n'est pas obligatoire mais fortement recommandé. + +## Formater une citation + +Les citations permettent de mettre en valeur un propos tenu par une autre personne, le wiki gère lui-même la façon dont c'est valorisé. Markdown utilise un chevron fermant, ce symbole : `>`, pour annoncer une citation. Il suffit de les rajouter avant la citation, comme tel : + +```markdown +>Du texte de citation du premier niveau +>qui peut être formaté en différentes lignes + +>> Et une seconde citation +>> avec des doubles chevrons +``` +S'affichera : + +>Du texte de citation du premier niveau +>qui peut être formaté en différentes lignes + +>> Et une seconde citation +>> avec des doubles chevrons + +## Les listes + +Les listes permettent d'afficher une suite de textes dans une présentation facile, c'est ainsi que sont rédigés les index tels que celui de la page de la [documentation contributeur](/contributordoc). + +### Listes ordonnées + +Les listes ordonnées peuvent s'incrémenter autant que vous le désirez, il n'est pas obligé de donner la bonne correspondance au nombre. Il est possible de noter avec des `1.` et installer trois espaces pour marquer l'incrémentation. Pour une meilleure compréhension du texte brut, il peut être pratique d'utiliser les chiffres de manière croissante pour marquer l'incrémentation, mais ce sont bien les trois `espaces` conséquents avant la sous-liste qui désigneront l'incrémentation. + +```markdown +1. Liste 1 +1. Liste 2 +1. liste 3 + 1. Liste 3a + 1. Liste 3b + 1. Liste 3b1 + 1. Liste 3b2 + 1. Liste 3b3 + 1. Liste 1 + 1. Liste 2 + 1. liste 3 +5. Liste 4 +3. Liste 5 +4. liste 6 +``` + +On obtient : + +1. Liste 1 +1. Liste 2 +1. liste 3 + 1. Liste 3a + 1. Liste 3b + 1. Liste 3b1 + 1. Liste 3b2 + 1. Liste 3b3 + 1. Liste 1 + 1. Liste 2 + 1. liste 3 +5. Liste 4 +3. Liste 5 +4. liste 6 + +### Listes non ordonnées + +Pour créer une liste non ordonnée, il faut utiliser les symboles `*`, `+` ou `*`. Cela ne changera pas l'apparence du marqueur dans la restitution du texte. C'est l'incrémentation de la liste qui définira le visuel. Pour une meilleure lecture du texte brut, il peut être pratique d'utiliser les différents symboles pour marquer l'incrémentation, mais ce sont bien les trois espaces avant la sous-liste qui désigneront l'incrémentation. +Comme tel : +```markdown ++ Liste 1 ++ Liste 2 ++ liste 3 + - Liste 3a + - Liste 3b + * Liste 3b1 + * Liste 3b2 + * Liste 3b3 + + Liste 1 + + Liste 2 + + liste 3 +- Liste 4 +* Liste 5 ++ liste 6 +``` + +Ce qui affichera : ++ Liste 1 ++ Liste 2 ++ liste 3 + - Liste 3a + - Liste 3b + * Liste 3b1 + * Liste 3b2 + * Liste 3b3 + + Liste 1 + + Liste 2 + + liste 3 +- Liste 4 +* Liste 5 ++ liste 6 + +## Les tableaux + +Pour créer un tableau, il faut utiliser la barre verticale `|` (appelé 'pipe') et les tirets `-`. Il est obligatoire d'ajouter une ligne de tirets sous la première ligne du tableau. Il n'y a aucune contrainte dans la taille de ce dernier. Il est possible de formater le tableau avec les `:` dans la seconde ligne du tableau, trois options s'offrent à vous : + +| Colonne alignée à gauche | Colonne centrée | Colonne alignée à droite | +|:-------------------------|:---------------:|-------------------------:| +|`:-----` | `:----:` | `-----:` | + +```markdown +| **Un tableau** | Une colonne | Une seconde | Autant que l'on veut | +|:--------------:|:-----------:|:-----------:|:--------------------:| +| Une ligne formatée | | Et du **texte en gras** | Ou en *italique* | +| D'autres lignes | |![une image](/images/cd.jpg) | [Ou un lien](/contributordoc) | +``` +Ce qui affichera ça : + +| **Un tableau** | Une colonne | Une seconde | Autant que l'on veut | +|:--------------:|:-----------:|:-----------:|:--------------------:| +| Une ligne formatée | | Et du **texte en gras** | Ou en *italique* | +| D'autres lignes | |![une image](/images/cd.jpg) | [Ou un lien](/contributordoc) | + +## Bloc de codes + +Pour afficher du texte en brut, des `blocs de code` peuvent être créés en utilisant l'accent grave `Alt Gr + è` : + +```markdown +Soit inline, par exemple pour mettre en valeur une touche comme `Ctrl` +``` + +ou directement en bloc. +La seule différence est dans la quantité d'accents graves : +Minimum trois accents graves en ouverture et fermeture de bloc et deux accents graves qui encadrent le morceau de texte à formater dans une ligne + +Ce qui donnera au rendu : + +Soit inline, par exemple pour mettre en valeur une touche comme `Ctrl` +''' +```markdown +ou directement en bloc. +La seule différence est dans la quantité d'accents graves : +Minimum trois accents graves en ouverture et fermeture de bloc et deux accents graves qui encadrent le morceau de texte à formater dans une ligne +``` +''' +## Liens utiles + + + La documentation du langage originel Markdown : [daringfireball.net/projects/markdown (en)](https://daringfireball.net/projects/markdown/) + + Tutoriel Markdown sur [markdowntutorial.com](https://markdowntutorial.com) + +## Aller plus loin + +De manière plus générale, pour comprendre comment est formaté un texte il suffit juste d'inspecter le document source avec une application note. Ce n'est pas pour autant que le wiki de YunoHost pourra l'exploiter. Il existe bien d'autres possibilités d'utiliser la syntaxe markdown, n'hésitez pas à ajouter des fonctionnalités manquantes. Si vous avez observé des manques et/ou que vous avez des questions, contactez-nous sur [le forum](https://forum.yunohost.org) ou par message direct sur le salon IRC : **#yunohost** sur [irc.freenode.net](https://irc.freenode.net). diff --git a/doc_use_git.md b/doc_use_git.md new file mode 100644 index 00000000..8fb30563 --- /dev/null +++ b/doc_use_git.md @@ -0,0 +1,42 @@ +# Propel a contribution with GitHub + +It is of course possible to contribute directly to the YunoHost documentation, but this is not the most convenient way to do so for both the contributor and the person who will inject your contribution into the documentation. Here is a tutorial to understand and create a contribution to the YunoHost documentation using [Git](https://git-scm.com/) and [github.com](http://github.com/) which is the Git forge service that hosts and stores the YunoHost source code and documentation. + +## Create an account on github.com +To be able to send your contributions via GitHub, you need to have an account on GitHub, to create the account you will need a valid email address that you have access to. GitHub is a powerful tool with many features, the interface can be a little scary at first. +You don't have to give your first and last names, you can use a nickname (when you register `Username`). + +## Fork the YunoHost documentation in your personal repository +To fork the source code allows you to create a new branch of development of a software source code or in this case the source code of the documentation. By creating a new branch, this allows you to modify the code and add your contributions without altering the code of the `master` branch, which is the public release of the documentation. This allows you not to have to write down everything at once, but to do it in several steps. (Especially for contributions that require more time). + +Forking a project on GitHub is extremely simple, just click on the Fork button, this will create a new repository on your GitHub account. +![Screenshot GitHub fork button screenshot](/images/dug_fork.png) +In the title of the new repository, you will see where the repository comes from, in this case `YunoHost/doc`. +![Screenshots title and subtitle of the repository](/images/dug_fork_source.png) + +> **Point of vigilance !** +> If you forge the repository of another contributor than yunohost, you'll get the same files. Except that when you send your changes, they will be sent to the contributor and not to the yunohost repository. The advantage is that it allows you to develop another branch created by the contributor and work with another person on an improvement before submitting it to the main repository. +> It is not possible to have a fork from a contributor's repository and the original repository fork at the same time in your own account. + +## Modify and add your contribution +Once the repository is forked (copied), you will need to create a new development branch within your repository. It is through this branch that you will modify the files and thus propose improvements to the documentation. The fact that it is a new branch will allow you to make a Pull Request, i.e. a request to add your contributions to the `master` branch, which is the main documentation branch. The development rules on GitHub change depending on the developers of each repository, some have a testing branch in which to offer contributions. +More information on what a branch on git-scm.com is: [Branching with Git - What a branch is](https://git-scm.com/book/fr/v1/Les-branches-avec-Git-Ce-qu-est-une-branche). + +## Send your contribution by a Pull Request +Create a Pull Request when you want to share your work with the other contributors and integrate it into the master repository (YunoHost's main repository). When publishing a Pull Request, commonly called PR, contributors will be able to amend, comment, add, correct your contribution before it is fully integrated into the repository. + +## Track your contribution and take into account feedback from contributors +When you've already create a Pull Request (PR), changes to your development branch in the Git repository will automatically be added to the PR. This doesn't require any additional action. You can also include proposed changes from contributors, who, when they audit the code, may find errors or new, better wording. + +## Bringing up mistakes and wishes through issues +YunoHost has a specific Git repository to collect issues: [github.com/YunoHost/issues](https://github.com/YunoHost/issues) +An issue, also called a ticket, is an identified problem or a development wish; in this case for documentation, but it is valid for any software repository. Within the framework of the YunoHost documentation it will be mainly proposed issues for the development of the documentation, the identified problems being easily correctable. + +## Going further with Git and working on his workstation +Using the power of Git to work on your personal computer means you don't have to create a `commit` each time you save modified documentation pages. It also allows you to use tools and software that make it easier to distinguish between tags used in a documentation page. + +- Online resource: [docs.microsoft.com - Setting up a Git repository locally for documentation](https://docs.microsoft.com/fr-fr/contribute/get-started-setup-local) + +## Some resources elsewhere on the net to go further + - [Managing your code with Git and GitHub - openclassrooms.com](https://openclassrooms.com/fr/courses/2342361-gerez-votre-code-avec-git-et-github) + - [Git User Interface - git-scm.com](https://git-scm.com/download/gui/linux) diff --git a/doc_use_git_fr.md b/doc_use_git_fr.md new file mode 100644 index 00000000..30336f45 --- /dev/null +++ b/doc_use_git_fr.md @@ -0,0 +1,45 @@ +# Propulser une contribution avec Git + +Il est bien sûr possible de contribuer directement sur la documentation de YunoHost, mais ce n’est pas la manière la plus pratique de le faire tant pour le·la contributeur·rice que pour la personne qui va injecter votre contribution dans la documentation. Voici un tutoriel pour comprendre et créer une contribution à la documentation de YunoHost en utilisant l’outil [Git (en)](https://git-scm.com/) et [github.com](http://github.com/) qui est le service de forge Git qui héberge et stocke le code source de YunoHost ainsi que sa documentation. + +## Création d’un compte sur github.com +Pour pouvoir envoyer vos contributions via GitHub, il est nécessaire d’avoir un compte sur GitHub. Pour créer le compte vous aurez besoin d’une adresse e-mail valide à laquelle vous avez accès. GitHub est un outil puissant qui propose de nombreuses fonctionnalités, l’interface peut être un peu effrayante au début. +Vous n’êtes pas obligé·e de donner vos noms et prénoms, vous pouvez utiliser un pseudonyme (lors de l’inscription `Username`). + + +## Forker la documentation de YunoHost dans votre dépôt personnel +Forker le code source permet de créer une nouvelle branche de développement d’un code source de logiciel ou dans le cas présent, le code source de la documentation. En créant une nouvelle branche, cela vous permet de modifier le code et d’ajouter vos contributions sans altérer le code de la branche `master` qui est le rendu public de la documentation. Ce qui vous permet de ne pas devoir tout marquer mais le faire en plusieurs étapes. (Notamment pour les contributions demandant plus de temps de travail). + +Forker un projet sur GitHub est extrêmement simple, il suffit de cliquer sur le bouton Fork, cela créera un nouveau dépôt sur votre espace de GitHub. +![Capture d’écran bouton fork GitHub](/images/dug_fork.png) + +Dans le titre du nouveau dépôt, vous verrez de quelle provenance vient le dépôt, dans le cas présent `YunoHost/doc` +![Capture d’écran titre et sous-titre du dépot](/images/dug_fork_source.png) + +> **Point de vigilance !** + +> Si vous forkez le dépôt d’un·e autre contributeur·rice que YunoHost, vous aurez les mêmes fichiers. Sauf que quand vous enverrez vos modifications, elles seront envoyées au contributeur et non au dépôt YunoHost. L’avantage est que ça vous permet de développer une autre branche créée par le·la contributeur·rice et ainsi travailler avec une autre personne à une amélioration avant proposition au dépôt principal. +> Il n’est pas possible d’avoir un fork du dépot d’un·e contributeur·rice et le fork dépôt d’origine au même moment dans votre propre dépôt. + +## Modifier et ajouter votre contribution +Une fois le dépôt forké (copié), il faudra créer une nouvelle branche de développement au sein de votre dépôt. C’est à travers cette branche que vous allez modifier les fichiers et ainsi proposer des améliorations de la documentation. Le fait que ce soit une nouvelle branche vous permettra par la suite de faire une Pull Request, c’est à dire une demande d’ajout de vos contributions au sein de la branche `master` qui est la branche principale de la documentation. Les règles de développement sur GitHub changent selon les développeurs de chaque dépôt, certains ont une branche testing dans laquelle il faut proposer les contributions. +Plus d’informations sur ce qu’est une branche sur git-scm.com : [Les branches avec Git - Ce qu’est une branche](https://git-scm.com/book/fr/v1/Les-branches-avec-Git-Ce-qu-est-une-branche). + +## Envoyer votre contribution par une Pull Request +Faire une Pull Request correspond au moment où vous souhaitez partager votre travail avec le reste des contributeurs⋅rices et l’intégrer au dépot master (dépôt principal de YunoHost). Lors de la publication d’une Pull Request, couramment nommée PR, les contributeurs⋅rices pourront amender, commenter, ajouter, corriger votre contribution avant intégration complète au dépôt. + +## Suivre votre contribution et prendre en compte les retours des contributeurs·trices +Lorsque vous avez déjà fait une PR (Pull Request), les modifications de votre branche de développement sur le dépôt Git se rajouteront automatiquement à la PR. Cela ne nécessite aucune action supplémentaire. Vous pouvez aussi intégrer les propositions de modifications de contributeurs, qui lorsqu’ils·elles auditeront le code, peuvent trouver des erreurs ou de nouvelles formulations plus adaptées. + +## Faire remonter des erreurs et des souhaits par des issues +YunoHost dispose d’un dépôt Git spécifique pour le recueil des issues : [github.com/YunoHost/issues](https://github.com/YunoHost/issues) +Une issue aussi appelé ticket, est un problème identifié ou alors un souhait de développement ; dans le cas présent pour la documentation, mais c’est valable pour tout dépôt logiciel. Dans le cadre de la documentation de YunoHost il sera surtout proposé des issues pour le développement de la documentation, les problèmes identifiés étant facilement corrigeables. + +## Aller plus loin avec Git et travailler sur son poste de travail +Utiliser la puissance de Git et ainsi travailler sur son ordinateur personnel, permet entre autres de ne pas avoir à créer de `commit` à chaque enregistrement intermédiaire des pages de documentations modifiées. Cela permet aussi d’utiliser des outils et logiciels qui permettent une distinction plus facile des codes utilisés dans une page de documentation. + +- Ressource en ligne : [docs.microsoft.com - Configurer un référentiel Git localement pour la documentation](https://docs.microsoft.com/fr-fr/contribute/get-started-setup-local) + +## Quelques ressources ailleurs sur le net pour aller plus loin + - [Gérer son code avec Git et GitHub - openclassrooms.com](https://openclassrooms.com/fr/courses/2342361-gerez-votre-code-avec-git-et-github) + - [Interface utilisateurs·trices de Git - git-scm.com](https://git-scm.com/download/gui/linux) diff --git a/doc_writing_guide.md b/doc_writing_guide.md new file mode 100644 index 00000000..605c840f --- /dev/null +++ b/doc_writing_guide.md @@ -0,0 +1,36 @@ +# Guide to writing application documentation + +## Users / Administrators documentation pages + +Add a one-click install button (such as https://yunohost.org/#/app_piwigo_fr) and a button on the application integration level. + +Classification of available applications by tags (genre, Git, association management, e-mails, etc.). + +## Some typical and general uses (writing framework) + + + When a link points to a page that is not in the language of the original page, it is customary to add `(en)` (for a link that points to a page in English). + + rename the images in the following order:`description_application.ext`. + +### General frame application documentation + + 1. Logo (dimension 80 pixels high) + level 1 title. + 1. One-click install button, Integration level for each type of processor. + 1. An index at the top of the documentation with cross-references to all the chapters of the documentation. + 1. A general presentation of the application and its function. + 2. A configuration part of the application. + 1. An administration part of the application. + 1. A part on limitations related to YunoHost. + 1. A part on desktop clients (if any). A link to different third-party applications if there are several (possible link to the applications catalgue [framalibre.org](https://framalibre.org)) or a link to the page about desktop applications if official applications are provided. + 1. A part with: + - the link to the official site + - the link to the documentation + - Links to the YunoHost package and issues + +Screen for writing documentation pages: [here](/app_writing_guide) + +## Roadmap + +1. Document applications. + 1. Document applications at work (marked: work) level 8/7/6. + 1. Translate the documentation page at least into French and English. + 1. Do a PR on the application repository diff --git a/doc_writing_guide_fr.md b/doc_writing_guide_fr.md new file mode 100644 index 00000000..e8eb73eb --- /dev/null +++ b/doc_writing_guide_fr.md @@ -0,0 +1,36 @@ +# Guide de rédaction de la documentation des applications + +## Page de documentation utilisateurs·rices / administrateurs⋅rices + +Ajouter un bouton installer en un clic (comme par exemple : https://yunohost.org/#/app_piwigo_fr) et un bouton sur le niveau d'intégration de l'application. + +Classement des applications disponibles par tags (genre, Git, gestion associations, courriels, etc.). + +## Quelques usages types et d'ordre général (trame de rédaction) + + + Lorsqu'un lien renvoie vers une page qui n'est pas dans la langue de la page d'origine, il est d'usage d'ajouter `(en)`(Pour un lien qui pointe vers une page en anglais). + + renommer les images dans l'ordre suivant :`nomapplication_descriptif.ext` + +### Trame générale documentation applications + + 1. Logo (dimension 80 pixels de hauteur) + titre de niveau 1. + 1. Bouton installer en un clic, Niveau d'intégration pour chaque type de processeur. + 1. Un index en tête de documentation avec renvoi vers l'ensemble des chapitres de la documentation. + 1. Une présentation générale de l'application et de sa fonction. + 2. Une partie configuration de l'application. + 1. Une partie administration de l'application. + 1. Une partie sur les limitations liées à YunoHost. + 1. Une partie sur les clients desktop (si il en existe). Lien vers différentes applications tierces si il en existe plusieurs (lien possible avec le catalogue d'applications [framalibre.org](https://framalibre.org)) ou un lien vers la page concernant les applications desktop si des applications officielles sont fournies. + 1. Une partie avec : + - le lien vers le site officiel + - le lien vers la documentation officielle + - Les liens vers le package de YunoHost et issues + +Trame pour la rédaction des pages de documentations : [ici](/app_writing_guide) + +## Feuille de route + +1. Documenter les applications. + 1. Documenter les applications au travail (marqué : work) niveau 8/7/6. + 1. Traduire la page de documentation à minima en français et en anglais. + 1. Faire une PR sur le dépôt de l'application concernée vers la page de documentation. diff --git a/docker.md b/docker.md new file mode 100644 index 00000000..bbf8122b --- /dev/null +++ b/docker.md @@ -0,0 +1,23 @@ +# Docker and YunoHost + +
+ +YunoHost doesn’t support Docker officially since issues with versions 2.4+. +In question, YunoHost 2.4+ doesn’t work anymore on Docker +because YunoHost requires systemd and Docker has chosen to not support it natively (and +there are other problems link to the firewall and services). + +
+ +## Community images + +However, community images exist and are available on Docker Hub: + + * AMD64 (classic) + * https://hub.docker.com/r/domainelibre/yunohost/ (YunoHost v4+) + * I386 (old computers) + * https://hub.docker.com/r/domainelibre/yunohost-i386/ (YunoHost v4+) + * ARMV7 (Raspberry Pi 2/3 ...) + * https://hub.docker.com/r/domainelibre/yunohost-arm/ (YunoHost v4+) + * ARMV6 (Raspberry Pi 1) + * https://hub.docker.com/r/tuxalex/yunohost-armv6/ (old yunoHost version) diff --git a/docker_fr.md b/docker_fr.md new file mode 100644 index 00000000..548b4819 --- /dev/null +++ b/docker_fr.md @@ -0,0 +1,23 @@ +# Docker et YunoHost + +
+ +YunoHost ne supporte plus officiellement Docker depuis les problèmes rencontrés avec la version 2.4+. +En cause, YunoHost dépend désormait de systemd et docker a décidé qu’ils ne le +supporteraient pas nativement (et il y a d'autres problèmes liés au firewall et aux +services). + +
+ +## Images communautaires + +Cependant il existe des images communautaires disponibles sur Docker Hub : + + * AMD64 (classique) + * https://hub.docker.com/r/domainelibre/yunohost/ (YunoHost v4+) + * I386 (anciens pc) + * https://hub.docker.com/r/domainelibre/yunohost-i386/ (YunoHost v4+) + * ARMV7 (Raspberry Pi 2/3 ...) + * https://hub.docker.com/r/domainelibre/yunohost-arm/ (YunoHost v4+) + * ARMV6 (Raspberry Pi 1) + * https://hub.docker.com/r/tuxalex/yunohost-armv6/ (ancienne version de YunoHost) diff --git a/docs.md b/docs.md new file mode 100644 index 00000000..9dd3f53e --- /dev/null +++ b/docs.md @@ -0,0 +1,34 @@ +# Documentation + +

+YunoHost's documentation has 2 different sections: +

+ +
+ +
+ Administrator guide +

Including installation, server management and application management

+
+ +
+ Contributor guide +

Which contains everything you have to know about us and the way we work

+
+ +
+ +* Project's life: + * [Frequently asked questions](/faq) + * [Project news](/news) + * [Project organization](/project_organization) + * [Project budget](/project_budget) + * [Forum](https://forum.yunohost.org) + * [Chat rooms](/chat_rooms) + * [Communication](/communication) + * [Support / Help](/help) + * [Sponsors and partners](/sponsors_partners) + +* Use example: + * [YunoHost for non-profit organisations](/use_case_non-profit_organisations) + * (FR) [YunoHost for CHATONS (A collective of independant, transparent, open, neutral and ethical hosters providing FLOSS-based online services.)](https://wiki.chatons.org/doku.php/yunohost) diff --git a/docs_ar.md b/docs_ar.md new file mode 100644 index 00000000..ae7479ad --- /dev/null +++ b/docs_ar.md @@ -0,0 +1,31 @@ +#
الدليل
+ +

+دليل واي يونوهوست YunoHost يرتكز أساسًا على ثلاثة محاور : +

+ +
+ +
+ دليل المدير +

يتطرق إلى طريقة التنصيب و إدارة السيرفر و التطبيقات

+
+ +
+ دليل المساهم +

يحتوي على كافة المعلومات التي تخصنا و أسلوب عملنا و مساهمتنا

+
+ +
+ +* Project's life: + * [Frequently asked questions](/faq) + * [Project organization](/project_organization) + * [Blog](https://forum.yunohost.org/c/announcement) + * [Forum](https://forum.yunohost.org) + * [Chat rooms](/chat_rooms) + * [Communication](/communication) + * [Support / Help](/help) + +* استخدم مثال: + * [YunoHost للمنظمات غير الهادفة للربح](/use_case_non-profit_organisations) diff --git a/docs_de.md b/docs_de.md new file mode 100644 index 00000000..d3bf8e07 --- /dev/null +++ b/docs_de.md @@ -0,0 +1,31 @@ +# Documentation + +

+Die YunoHost Dokumentation ist in 2 Bereiche aufgeteilt: +

+ +
+ +
+ Handbuch für Administratoren +

Befasst sich mit den Installationsschritten und der Verwaltung von Server und Apps.

+
+ +
+ Handbuch für Mitwirkende +

Alles, was du über uns und unsere Art zu arbeiten wissen musst.

+
+ +
+ +* Das Projektleben: + * [Häufig gestellte Fragen](/faq) + * [Projektorganisation](/project_organization) + * [Blog](https://forum.yunohost.org/c/announcement) + * [Forum](https://forum.yunohost.org) + * [Chaträume](/chat_rooms) + * [Kommunikation](/communication) + * [Support / Hilfe](/help) + +* Verwenden Sie ein Beispiel: + * [YunoHost für gemeinnützige Organisationen](/use_case_non-profit_organisations) diff --git a/docs_fr.md b/docs_fr.md new file mode 100644 index 00000000..d7a641f2 --- /dev/null +++ b/docs_fr.md @@ -0,0 +1,34 @@ +# Documentation + +

+La documentation de YunoHost s’articule autour de deux sections : +

+ +
+ +
+ Guide de l’administrateur +

Incluant l’installation, la gestion du serveur et des applications

+
+ +
+ Guide du contributeur +

Qui contient tout ce que vous devez savoir à propos de nous et de notre manière de travailler

+
+ +
+ +* Vie du projet : + * [Foire aux questions](/faq) + * [Nouvelles du projet](/news) + * [Organisation du projet](/project_organization) + * [Budget previsionnel](/project_budget) + * [Forum](https://forum.yunohost.org) + * [Salons de discussions](/chat_rooms) + * [Communication extérieure](/communication) + * [Support / Aide](/help) + * [Mécénes et partenaires](/sponsors_partners_fr) + +* Exemple d'utilisation : + * [YunoHost pour les organisations à but non lucratif](/use_case_non-profit_organisations) + * [YunoHost pour les CHATONS (Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires)](https://wiki.chatons.org/doku.php/yunohost) diff --git a/docs_it.md b/docs_it.md new file mode 100644 index 00000000..4061eb11 --- /dev/null +++ b/docs_it.md @@ -0,0 +1,31 @@ +# Documentazione + +

+La documentazione di YunoHost ha 2 differenti sezioni: +

+ +
+ +
+ Guida di amministrazione +

Include l'installazione, la gestione del server e delle applicazioni

+
+ +
+ Guida del contributore +

Contiene tutto quello che devi sapere su di noi e su come lavoriamo

+
+ +
+ +* Vita del progetto : + * [Frequently asked questions](/faq) + * [Project organization](/project_organization) + * [Blog](https://forum.yunohost.org/c/announcement) + * [Forum](https://forum.yunohost.org) + * [Chat rooms](/chat_rooms) + * [Communication](/communication) + * [Supporto / Aiuto](/help) + +* Usa l'esempio : + * [YunoHost per le organizzazioni senza scopo di lucro](/use_case_non-profit_organisations) diff --git a/domains.md b/domains.md new file mode 100644 index 00000000..c98175cb --- /dev/null +++ b/domains.md @@ -0,0 +1,47 @@ +# Domains, DNS conf and certificate + +YunoHost allows you to manage and serve several domains on the same server. For instance, you can host a blog and Nextcloud on a first domain `yolo.com`, and a web mail client on a second domain `swag.nohost.me`. Each domain is automatically configured to handle web services, mail services and XMPP services. + +Domains can be managed in the 'Domain' section of the webadmin, or through the `yunohost domain` category of the command line. Each time you add a domain, it is expected that you bought it (or own it) on a domain registrar, so you can manage the [DNS configuration](dns). The exception is the [`.nohost.me`, `.noho.st` and `ynh.fr` domains](/dns_nohost_me) which are paid for by the YunoHost Project, and can be directly integrated with YunoHost thanks to an automated dynDNS setup. (To limit costs and abuses, each instance may only have one of these domains setup at any given time). + +The domain chosen during the postinstall is defined as the main domain of the server : this is where the SSO and the web admin interface will be available. The main domain can later be changed through the web admin in Domains > (the domain) > Set default, or with the command line `yunohost tools maindomain`. + +Finally, take note that, in the context of YunoHost, there is no hierarchy between the domains it knows. In the previous example, you may add a third domain `foo.yolo.com` - but it would be considered as a domain independent of `yolo.com`. + +## Non-latin characters + +If your domain has special, non-latin characters, you need to use its [internationalized version](https://en.wikipedia.org/wiki/Internationalized_domain_name) through [Punycode](https://en.wikipedia.org/wiki/Punycode). You can use [this converter](https://www.charset.org/punycode), and use the converted domain name in your YunoHost configuration. + +## DNS configuration + +DNS (Domain Name System) is a system that allows computers from around the world to translate human-readable domain names (such as `yolo.com`) to machine-understandable adresses called IP addresses (such as `11.22.33.44`). For this translation (and other features) to work, you must carefully configure DNS records. + +YunoHost can generate a recommended DNS configuration for each domain, including elements needed for mail and XMPP. The recommended DNS configuration is available in the webadmin via Domain > (the domain) > DNS configuration, or with the command `yunohost domain dns-conf the.domain.tld`. + +## SSL/HTTPS certificates + +Another important aspect of domain configuration is the SSL/HTTPS certificate. YunoHost is integrated with Let's Encrypt, so once your server is correctly reachable from anybody on the internet through the domain name, the administrator can request a Let's Encrypt certificate. See the documentation about [certificates](certificate) for more information. + +## Subpaths vs. individual domains per apps + +In the context of YunoHost, it is quite common to have a single (or a few) domains on which several apps are installed in "subpaths", so that you end up with something like this: + +```bash +yolo.com + ├── /blog : Wordpress (a blog) + ├── /cloud : Nextcloud (a cloud service) + ├── /rss : TinyTiny RSS (a RSS reader) + ├── /wiki : DokuWiki (a wiki) +``` + +Alternatively, you may choose to install each (or some) apps on a dedicated domain. This might look prettier for end users, but is generally considered more complicated and less efficient in the context of YunoHost, since you need to add a new domain each time. Nevertheless, some apps might need an entire domain dedicated to them, for technical reasons. + +If all apps from the previous example were installed on a separate domain, this would give something like this: + +```bash +blog.yolo.com : Wordpress (a blog) +cloud.yolo.com : Nextcloud (a cloud service) +rss.yolo.com : TinyTiny RSS (a RSS reader) +wiki.yolo.com : DokuWiki (a wiki) +``` + diff --git a/domains_fr.md b/domains_fr.md new file mode 100644 index 00000000..f1469e4c --- /dev/null +++ b/domains_fr.md @@ -0,0 +1,46 @@ +# Domaines, configuration DNS et certificats + +YunoHost permet de gérer et de servir plusieurs domaines sur un même serveur. Vous pouvez donc héberger, par exemple, un blog et un Nextcloud sur un premier domaine `yolo.com`, et un client de messagerie web sur un second domaine `swag.nohost.me`. Chaque domaine est automatiquement configuré pour pouvoir gérer des services web, des courriels et une messagerie instantannée XMPP. + +Les domaines peuvent être gérés dans la section 'Domaine' de la webadmin, ou via la catégorie `yunohost domain` de la ligne de commande. Chaque fois que vous ajoutez un domaine, il est supposé que vous avez acheté (ou en tout cas que vous contrôliez) le domaine, de sorte que vous puissiez gérer la [configuration DNS](dns) ce celui-ci. Une exception concerne les [domaines en `.nohost.me`, `.noho.st` et `ynh.fr`](/dns_nohost_me) qui sont offerts par le Projet YunoHost, et peuvent être directement intégrés avec YunoHost grâce à une configuration dynDNS automatique. (Pour limiter les abus et les coûts, une instance ne peut avoir qu'un seul domaine offert à la fois). + +Le domaine choisi lors de la postinstall est défini comme le domaine principal du serveur : c'est là que le SSO et l'interface d'administration web seront disponibles. Le domaine principal peut être modifié ultérieurement via la webadmin dans Domaines > (le domaine) > Définir par défaut, ou avec la ligne de commande `yunohost tools maindomain`. + +Enfin, il faut noter que, dans le contexte de YunoHost, il n'y a pas de hiérarchie entre les domaines qu'il connaît. Dans l'exemple précédent, on peut ajouter un troisième domaine `foo.yolo.com` - mais il serait considéré comme un domaine indépendant de `yolo.com`. + +## Caractères non latins + +Si votre domain contient des caractères spéciaux, non latins, vous devez utiliser sa [version internationalisée](https://fr.wikipedia.org/wiki/Nom_de_domaine_internationalis%C3%A9) en [Punycode](https://fr.wikipedia.org/wiki/Punycode). Vous pouvez utiliser [ce convertisseur](https://www.charset.org/punycode), et utiliser le nom de domaine converti dans YunoHost. + +## Configuration DNS + +DNS (Domain Name System) est un système qui permet aux ordinateurs du monde entier de traduire les noms de domaine lisibles par l'homme (comme `yolo.com`) en adresses IP compréhensibles par les machines (comme `11.22.33.44`). Pour que cette traduction (et d'autres fonctionnalités) fonctionne, il faut configurer soigneusement les enregistrements DNS. + +YunoHost peut générer une configuration DNS recommandée pour chaque domaine, y compris les enregistrements nécessaires pour les parties emails et XMPP. La configuration DNS recommandée est disponible dans l'administrateur web via Domaine > (le domaine) > configuration DNS, ou avec la commande `yunohost domain dns-conf the.domain.tld`. + +## Certificats SSL/HTTPS + +Un autre aspect important de la configuration des domaines est le certificat SSL/HTTPS. YunoHost est intégré avec Let's Encrypt, de sorte qu'une fois que votre serveur est correctement accessible depuis n'importe qui sur Internet via le nom de domaine, l'administrateur peut demander l'installation d'un certificat Let's Encrypt. Voir la documentation sur les [certificats](/certificate) pour plus d'informations. + +## Sous-chemins vs. domaines individuels par application + +Dans le contexte de YunoHost, il est assez courant d'avoir un seul (ou quelques) domaines sur lesquels plusieurs applications sont installées dans des "sous-chemins", de sorte que l'on se retrouve avec quelque chose comme ceci : + +```bash +yolo.com + ├─── /blog : Wordpress (un blog) + ├─── /cloud : Nextcloud (un service de cloud) + ├─── /rss : TinyTiny RSS (un lecteur RSS) + ├─── /wiki : DokuWiki (un wiki) +``` + +Alternativement, on peut choisir d'installer chaque application (ou certaines) sur un domaine dédié. Cela peut sembler plus joli pour les utilisateurs finaux, mais est généralement considéré comme plus compliqué et moins efficace dans le contexte de YunoHost, car vous devez ajouter un nouveau domaine à chaque fois. Néanmoins, certaines applications peuvent avoir besoin d'un domaine entier qui leur est dédié, pour des raisons techniques. + +Si toutes les applications de l'exemple précédent étaient installées sur un domaine séparé, cela donnerait quelque chose comme ceci : + +```bash +blog.yolo.com : Wordpress (un blog) +cloud.yolo.com : Nextcloud (un service de cloud) +rss.yolo.com : TinyTiny RSS (un lecteur RSS) +wiki.yolo.com : DokuWiki (un wiki) +``` diff --git a/email.md b/email.md new file mode 100644 index 00000000..9188b9a9 --- /dev/null +++ b/email.md @@ -0,0 +1,46 @@ +# Emails + +YunoHost comes with a complete mail stack allowing you to host your own email server, and therefore to have your own email addresses in `something@your.domain.tld`. + +The mail stack includes a SMTP server (postfix), an IMAP server (Dovecot), an antispam (rspamd) and DKIM configuration. + +## Making sure your setup is right + +Email is a complicated ecosystem and quite a few details can prevent it from working properly. + +To validate your setup: +- if you are self-hosting at home and not using a VPN, ensure [your ISP won't block port 25](isp) ; +- route ports according to [this documentation](isp_box_config) ; +- carefully configure mail DNS records according to [this documentation](dns_config) ; +- test your setup using [Mail-tester.com](https://mail-tester.com) (be careful : only 3 tests per domain per day are allowed) ; + +A score of at least 8~9/10 is a reasonnable goal. + +## Email clients + +To interact with the email sever (read and send emails), you can either install a webclient such as Roundcube or Rainloop on your server - or configure a desktop/mobile client as described in [this page](email_configure_client). + +Desktop and mobile clients have the advantage of copying your emails to the device, allowing offline viewing and relative protection against possible hardware failures of your server. + +## Configuring email aliases and auto-forwards + +Mail aliases and forwards can be configured for each users. For instance, the first user created on the server automatically has an alias `root@the.domain.tld` configured - meaning that an email sent to this adress will end in the inbox of the first user. Automatic forwards may be configured, for instance if an user doesn't want to configure an additional email account and just wants to receive emails from the server on, say, his/her gmail address. + +Another feature which few people know about is the use of suffixes beginning with "+". For example, emails sent to `johndoe+booking@the.domain.tld` will automatically land in the `booking` dir (lowercase) of John Doe's mailbox or in John Doe's inbox if `booking` directory doesn't exist . It is a practical technique for example to provide an e-mail address to a website, then easily sort (via automatic filters) the mail coming from this website. + +## What happens if my server becomes unavailable? + +If your server becomes unavailable, emails sent to your server will stay in a pending queue on the sender's side for as long as ~5 days. The sender's hoster will regularly try to resend the email, until it drops it if it was unable to send it. + +## Forms to remove its IP address from the blacklist +It is possible that the sent emails from your YunoHost instance are considered as spam by the big email services. +Is it possible that the IP address from your server have been previously been used to sent spam or that these email services consider your server as a spam sender. +To ensure that your servers’ IP address isn’t into this blacklists and to remove it from them, follow this [link](/blacklist_forms). + +## Migrating email from an email provider to a YunoHost instance + +See [this page](email_migration). + +## Configuring SMTP relay + +See [this page](email_configure_relay). \ No newline at end of file diff --git a/email_configure_client.md b/email_configure_client.md new file mode 100644 index 00000000..a2511674 --- /dev/null +++ b/email_configure_client.md @@ -0,0 +1,43 @@ +## Configuring email client + +You can fetch and send emails using your YunoHost instance from desktop email clients such as Mozilla Thunderbird or on your smartphone with applications like K-9 Mail. + +Modern mail clients should be able to configure themselves automatically. If autoconfiguration fails, you can do it manually following the instructions below. (If the autoconfiguration fails though, it should be understood as a bug in YunoHost, and we would be glad to read your feedback to try to reproduce the issue on our side!) + +### Generic settings + +Here are the element you should enter to manually configure your mail client (`domain.tld` refers to what's after the @ in your email address, and `username` what's before @). + +| Protocol | Port | Encryption | Authentication | Username | +| :--: | :-: | :--: | :--: | :--: | +| IMAP | 993 | SSL/TLS | Normal password | `username` (without the `@domain.tld`) | +| SMTP | 587 | STARTTLS | Normal password | `username` (without the `@domain.tld`) | + +### Configure Mozilla Thunderbird (on a desktop computer) + +To manually configure a new account in Thunderbird, add the account information, then select port 993 with SSL/TLS for IMAP, and port 587 with STARTTLS for SMTP. Afterwards select 'Normal Password' for Authentication and click on 'Advanced Config'. You may need to accept the certificate exceptions for fetching mails and after you send your first mail. Don't forget to remove the dot before the domain name. + + + + +* [Manage alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases) + +### Configure K-9 Mail (on Android) + +Follow the following steps. (As for Thunderbird, you might need to accept certificates at some points) + + + + + + +### Configure Dekko (on Ubuntu Touch) + +The first time you can simply choose "Add account". If you already have an account configured, tap the hamburger menu then tap the gear, choose Mail, Accounts and press the '+'-symbol. + +Then you choose IMAP. Fill in the fields and press Next. Now Dekko will look for the configuration. Check that all fields are correct. Make sure you have your yunohost username, NOT your mailadress and choose "Allow untrusted certificates". Do this for IMAP and SMTP and press Next. Dekko will now synchronise the account after which you are done. Congratz! + + + + + diff --git a/email_configure_client_es.md b/email_configure_client_es.md new file mode 100644 index 00000000..2cbda3c6 --- /dev/null +++ b/email_configure_client_es.md @@ -0,0 +1,31 @@ +## Cómo configurar un cliente de correo electrónico + +Es posible de consultar y enviar correos de tu YunoHost con un cliente de correo electrónico como Mozilla Thunderbird o K-9 Mail en el teléfono. +Normalmente, al añadir tu cuenta en el cliente de correo se va a configurar automáticamente, pero por si acaso no funciona, puedes configurarlo manualmente. + +### Configuración general + +A continuación puedes encontrar los elementos a configurar en el cliente de correo (`domain.tld` es todo lo que es después de @ en tu dirección de correo, y `nombre_de_usuario` es lo que es antes del @). + +| Protocolo | Puerto | Seguridad | Autenticación | Nombre de usuario | +| :--: | :-: | :--: | :--: | :--: | +| IMAP | 993 | SSL/TLS | Normal password | `nombre_de_usuario` (sin `@domain.tld`) | +| SMTP | 587 | STARTTLS | Normal password | `nombre_de_usuario` (sin `@domain.tld`) | + +### Configurar Mozilla Thunderbird (en un ordenador) + +Para configurar manualmente un nuevo cuenta en Thunderbird, añadir las informaciones de la cuenta, y después seleccionar el puerto 993 con SSL/TLS para IMAP, y puerto 587 con STARTTLS para SMTP. Después seleccionar 'Normal Password' para Autenticación y haz click en el botón 'Advanced Config'. Se puede que tendrás que aceptar los certificados para que todo funciona normalmente. + + + + +* [Gestionar un alias para una dirección de correo electrónico](https://support.mozilla.org/es/kb/configurar-un-alias-para-una-direccin-de-correo-el) + +### Configurar K-9 Mail (en Android) + +Seguir los pasos a continuación. (Como para Thunderbird, se puede que tendrás que aceptar los certificados para que funciona normalmente.) + + + + + diff --git a/email_configure_client_fr.md b/email_configure_client_fr.md new file mode 100644 index 00000000..185173df --- /dev/null +++ b/email_configure_client_fr.md @@ -0,0 +1,43 @@ +## Configurer un client email + +Vous pouvez récupérer et envoyer des emails avec votre instance YunoHost grâce à des logiciels comme Mozilla Thunderbird, ou sur votre smartphone grâce à des applications comme K-9 Mail. + +Normalement, votre client email devrait recevoir la configuration automatiquement lorsque vous ajoutez un compte. Si cela ne fonctionne pas, il est possible de le faire manuellement en suivant les quelques étapes suivantes. (Cependant, cela devrait être compris comme étant un bug dans YunoHost, et le cas échéant, c'est cool si vous nous notifiez du problème pour que nous puissions tenter de reproduire et corriger le problème !) + +### Réglages génériques + +Voici les éléments que vous devrez entrer pour configurer manuellement votre client email (`domain.tld` fait référence à ce qui est après le @ dans votre adresse email, et `nom_dutilisateur` ce qui est avant @). + +| Protocole | Port | Chiffrement | Authentification | Login | +| :--: | :-: | :--: | :--: | :--: | +| IMAP | 993 | SSL/TLS | Mot de passe normal | `nom_dutilisateur` (sans `@domain.tld`) | +| SMTP | 587 | STARTTLS | Mot de passe normal | `nom_dutilisateur` (sans `@domain.tld`) | + +### Configurer Mozilla Thunderbird + +Pour configurer manuellement un nouveau compte dans Thunderbird commencez par remplir les informations de base (Nom, adresse et mot de passe), cliquez sur Continuer puis Configuration Manuelle. Enlevez le `.` avant le nom de domaine. Sélectionnez le port 993 avec SSL/TLS pour IMAP, et le port 587 avec STARTTLS pour SMTP. Sélectionnez 'Mot de passe normal' pour l'authentification. Testez la configuration puis validez. (Il vous faudra ensuite possiblement accepter des certificats pour que tout fonctionne correctement.) + + + + +* [Gérer les alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases) + +### Configurer K-9 Mail (sur Android) + +Suivez les instructions suivantes. (Comme pour Thunderbird, il vous faudra peut-être accepter des certificats à un moment) + + + + + + +### Configure Dekko (on Ubuntu Touch) + +La première fois, vous pouvez simplement choisir "Ajouter un compte". Si vous avez déjà un compte configuré, appuyez sur le menu hamburger puis sur le rouage, choisissez Courrier, Comptes et appuyez sur le symbole " + ". + +Sélectionnez ensuite IMAP. Remplissez les champs et appuyez sur Suivant. Dekko va ensuite chercher la configuration. Vérifiez que tous les champs sont corrects. Assurez-vous d'avoir votre nom d'utilisateur yunohost, PAS votre adresse email et choisissez "Autoriser les certificats non fiables". Faites ceci pour IMAP et SMTP et appuyez sur Suivant. Dekko va ensuite synchroniser le compte après quoi vous aurez terminé. Félicitations ! + + + + + diff --git a/email_configure_relay.md b/email_configure_relay.md new file mode 100644 index 00000000..504167d8 --- /dev/null +++ b/email_configure_relay.md @@ -0,0 +1,77 @@ +# Configure SMTP relay + +If your ISP blocks port 25, if you can't set a reverseDNS on your server, or if you have any other troubles using the built-in SMTP server on YunoHost, you may want to setup your YunoHost server to use a SMTP relay. + +## What is a SMTP relay? + +A SMTP relay is basically a third party hosted SMTP server that will send emails on behalf of your own SMTP server (Postfix service on YunoHost). +Once setup correctly on YunoHost, it will operate in a totally transparent manner, both for you and for your correspondents: they will see emails as coming from your YunoHost main URL, but all the sending will be delegated to the SMTP relay you have chosen and configured. + +
+ +It's important to note that using a SMTP relay has to be seen as a (big) compromise in the world of self-hosting. Indeed, when using a SMTP relay, you will not only let a third party send emails on your behalf, but also be able to access to the full content of all the emails you'll send. Be also aware that a SMTP relay is setup for your whole YunoHost server: you can't choose which emails or which users go through it because all future emails will. +
+ +## How to use a SMTP relay with YunoHost? + +YunoHost has a built-in SMTP relay configuration, available from version 4.1. That configuration is not yet available from the admin web interface, though. You will have to use the command line interface. + +### Step 1: Register on a SMTP relay provider + +Many providers exist. Some have free plans with or without limitations, it's up to you. As written above, you have to be careful with your choice as you will basically handover all your emails to that third party. Whether you can trust it or not, that's your call! + +### Step 2: Setup your DNS records correctly + +Once registered, the SMTP relay provider will usually ask you to modify your DNS. +Standard procedure is to add a DKIM key and a SPF key to your DNS records. +The way to modify these records and the value of the keys you'll have to add depend both on your domain name provider and SMTP relay provider. + +Usually, the SMTP relay provider will provide you with a guide on how to modify these records, together with an automatic check tool that will tell you when your DNS have been setup correctly. That step is mandatory to prove "the world" that you, owner of your domain name, did explicitly authorize your SMTP relay provider to send emails on your behalf. + +Please note that modifying your DNS records could sometimes take over 24h to take effect, so be patient! + +
+ +From now on, a non trusty SMTP relay provider could send emails from your main domain without telling you. +
+ +### Step 3: Setup YunoHost correctly + +In order to setup your YunoHost to use your SMTP relay, you will have to configure three things: +1. Your SMTP relay URL (for this tutorial we will use `smtprelay.tld`) +2. Your SMTP relay username (for this tutorial we will use `username`) +3. Your SMTP relay password (for this tutorial we will use `password`) + +Your SMTP relay will obviously provide you with these three things, that should be available in your control panel or whatsoever. + +You can log into your YunoHost server using SSH: +```bash +ssh admin@yourdomain.tld +``` + +Then you can update the three values as below: + +```bash +sudo yunohost settings set smtp.relay.host -v smtprelay.tld +sudo yunohost settings set smtp.relay.user -v username +sudo yunohost settings set smtp.relay.password -v password +``` + +It may be a good idea to double confirm your settings by doing: + +```bash +sudo yunohost settings list +``` + +Your SMTP relay is now configured! + +
+ +From now on, a non trusty SMTP relay provider could read or use the data of all the emails you send without telling you (but still won't be able to read nor to use the data from emails you receive). +
+ +### Step 4: Check your setup + +You can check your setup by sending emails and try if everything works. +Some of the SMTP relay will give you insights about the emails you send so that can also be a good way to check that everythings works as needed. +Of course, you can always have a try with [mail-tester.com](https://www.mail-tester.com/) to check for any problem or discrepancy. diff --git a/email_configure_relay_fr.md b/email_configure_relay_fr.md new file mode 100644 index 00000000..068a1514 --- /dev/null +++ b/email_configure_relay_fr.md @@ -0,0 +1,69 @@ +# Configurer un relais SMTP + +Si votre fournisseur internet bloque le port 25, ou si vous rencontrez un problème d’utilisation du serveur SMTP natif de YunoHost, vous pouvez configurer votre serveur YunoHost pour utiliser un relais SMTP. + +## Qu'est ce qu'un relais SMTP + +C'est un serveur SMTP tiers qui va envoyer les e-mails à la place de votre propre serveur SMTP. +Une fois correctement installé, le changement est totalement transparent pour l’utilisateur. Vos correspondants verront vos e-mails comme s’ils venaient de votre propre serveur, mais ils auront été envoyés depuis le relais SMTP que vous aurez choisi et configuré. + +
+ +Il est important de noter que dans le monde de l'auto-hébergement, utiliser un relai SMTP est un énorme compromis ! En effet, le relais SMTP ne sera pas seulement capable d'envoyer les e-mails, mais il a également accès au contenu entier de l’e-mail que vous envoyez. +Il faut faire attention également que vous n'aurez pas le choix, tout le trafic e-mails passera par ce relais une fois la configuration terminée. +
+ +## Comment utiliser le relais SMTP avec YunoHost ? + +YunoHost supporte depuis la version 4.1 la configuration d'un relais SMTP. Pour le moment cette fonctionnalité ne soit pas accessible depuis l'interface d'administration : le paramétrage doit être fait en ligne de commande. + +### Étape 1 : S'inscrire chez un fournisseur de relais SMTP + +Beaucoup de fournisseurs existent dans ce domaine. Certains sont gratuits et d'autres proposent des services payants contre différentes options. Comme écrit plus haut vous devez être sûr de pouvoir lui faire confiance, mais cela reste à votre entier égard. + +### Étape 2 : Paramétrer sa zone DNS correctement + +Une fois inscrit, le paramétrage du relais SMTP demande de modifier la zone DNS de votre domaine. La procédure standard consiste à ajouter une clé DKIM, et SPF à la zone DNS. Les paramètres à modifier dépendent du fournisseur que vous aurez choisi. + +Habituellement les fournisseurs ont une documentation à ce sujet. + +
+ +Attention une fois la zone DNS enregistrée, le relais SMTP peut envoyer des e-mails à votre nom sans que vous ne le sachiez +
+ +## Étape 3 :Configurer YunoHost correctement + +Pour que YunoHost soit capable d'utiliser le relais, il faut paramétrer 3 choses. +1. Votre url de relais SMTP (on utilisera `smtprelay.tld`). +2. Votre nom d'utilisateur SMTP (on utilisera `username`). +3. Votre mot de passe SMTP (on utilisera `password`). + +Le fournisseur SMTP vous fournit ces trois informations. + +Premièrement se connecter sur son serveur en SSH avec la commande : + +```bash +ssh admin@domain.tld +``` + +Ensuite, mettre à jour les informations suivantes : + +```bash +sudo yunohost settings set smtp.relay.host -v smtprelay.tld +sudo yunohost settings set smtp.relay.user -v username +sudo yunohost settings set smtp.relay.password -v password +``` + +C'est une bonne idée de confirmer les informations en faisant `sudo yunohost settings list` + +Votre relais SMTP est maintenant configuré ! + +
+ +Maintenant le relais SMTP est capable de lire et d'utiliser toutes les informations contenues dans les emails que vous envoyer sans votre accord. Mais ne sera pas capable de lire les informations des emails que vous recevez. + + +## Vérifier la configuration + +Vous pouvez vérifier vos paramètres en envoyant un mail et voir si cela fonctionne. Certains relais SMTP vous confirment l'e-mail envoyé. Bien sur vous pouvez vérifier sur mail-tester.com pour prendre connaissance d’éventuelles problèmes. diff --git a/email_de.md b/email_de.md new file mode 100644 index 00000000..a0565b4f --- /dev/null +++ b/email_de.md @@ -0,0 +1,43 @@ +# E-Mails + +YunoHost wird mit einem kompletten Mail-Stack geliefert, der es Ihnen ermöglicht, Ihren eigenen E-Mail-Server zu hosten und somit Ihre eigenen E-Mail-Adressen in ```irgendjemand@deine.domain.tld``` zu haben. + +Der Mail-Stack enthält einen SMTP-Server (Postfix), einen IMAP-Server (Dovecot), einen Antispam-Server (rspamd) und eine DKIM-Konfiguration. + +## Sicherstellen dass Ihre Einrichtungen richtig sind + +E-Mail ist ein kompliziertes Ökosystem und eine ganze Reihe von Details können sein ordnungsgemäßes Funktionieren verhindern. + +Um Ihre Einstellungen zu validieren: + +- Wenn Sie zu Hause selbst hosten und kein VPN verwenden, stellen Sie sicher das [Ihr ISP den Port 25 nicht blockiert](https://yunohost.org/#/isp); +- leiten Sie Ports weiter, wie in [dieser Dokumentation](https://yunohost.org/#/isp_box_config) beschrieben; +- Mail-DNS-Einträge nach [dieser Dokumentation](https://yunohost.org/#/dns_config) sorgfältig konfigurieren; +- testen Sie Ihre Konfiguration mit [Mail-tester.com](https://mail-tester.com/) (Vorsicht : nur 3 Tests pro Domain und Tag sind erlaubt) ; + +Eine Punktzahl von mindestens 8~9/10 ist ein angemessenes Ziel. + +## E-Mail-Programme + +Um mit dem E-Mail-Server zu interagieren (E-Mails lesen und senden), können Sie entweder einen Webclient wie Roundcube oder Rainloop auf Ihrem Server installieren - oder einen Desktop-/Mobil-Client, wie auf [dieser Seite](https://yunohost.org/#/email_configure_client) beschrieben, konfigurieren. + +Desktop- und Mobil-Clients haben den Vorteil, dass sie Ihre E-Mails auf das Gerät kopieren, was eine Offline-Anzeige und einen relativen Schutz gegen mögliche Hardware-Ausfälle Ihres Servers ermöglicht. + +## Konfigurieren von E-Mail-Aliasen und automatische Weiterleitungen + +Mail-Aliase und Weiterleitungen können für jeden Benutzer konfiguriert werden. Beispielsweise wird für den ersten, auf dem Server angelegten Benutzer automatisch ein Alias ```root@the.domain.tld``` konfiguriert. Das bedeutet das eine an diese Adresse gesendete E-Mail im Posteingang des ersten Benutzers endet. Automatische Weiterleitungen können konfiguriert werden, z.B. wenn ein Benutzer kein zusätzliches E-Mail-Konto einrichten möchte und nur E-Mails vom Server, z.B. auf seine E-Mail-Adresse, empfangen möchte. + +Eine weitere Funktion, die nur wenigen Leuten bekannt ist, ist die Verwendung von Suffixen, die mit "+" beginnen. Zum Beispiel landen E-Mails, die an ```johndoe+buchung@die.domain.tld``` gesendet werden, automatisch im Ordner ```buchung``` (Kleinbuchstaben) der Mailbox von John Doe oder im Posteingang von John Doe, wenn der Ordner ```buchung``` nicht existiert. Es ist eine praktische Technik, z.B. eine E-Mail-Adresse auf einer Website anzugeben und dann die von dieser Website kommende E-Mail einfach (über automatische Filter) zu sortieren. + +## Was passiert wenn mein Server nicht erreichbar ist? + +Wenn Ihr Server nicht mehr verfügbar ist, bleiben die an Ihren Server gesendeten E-Mails bis zu ~5 Tage lang in einer Warteschlange auf der Seite des Absenders. Der Hoster des Absenders wird regelmäßig versuchen, die E-Mail erneut zu senden, bis er sie verwirft, falls er sie nicht versenden konnte. + +## Formulare zum Entfernen seiner IP-Adresse von der schwarzen Liste + +Es ist möglich, dass die von Ihrer YunoHost-Instanz gesendeten E-Mails von den großen E-Mail-Diensten als Spam betrachtet werden. Ist es möglich, dass die IP-Adresse von Ihrem Server bereits früher zum Versenden von Spam verwendet wurde oder dass diese E-Mail-Dienste Ihren Server als Spam-Versender betrachten? Um sicherzustellen, dass die IP-Adresse Ihrer Server nicht in diese schwarzen Listen aufgenommen wird und um sie aus diesen zu entfernen, folgen Sie [diesem Link](https://yunohost.org/#/blacklist_forms). + +## Eine Migration von E-Mails von einem E-Mail-Provider zu einer YunoHost-Instanz + +Siehe [diese Seite](https://yunohost.org/#/email_migration). + diff --git a/email_es.md b/email_es.md new file mode 100644 index 00000000..d5d6107d --- /dev/null +++ b/email_es.md @@ -0,0 +1,38 @@ +# Emails + +YunoHost integra un ecosistema completo de servidor mail, permitiéndote de alojar tu propia mensajería electrónica, y pues de tener tus propias direcciones email en `algo@tu.dominio.tld`. + +Este ecosistema comprende un servidor SMTP (postfix), un servidor IMAP (Dovecot), un antispam (rspamd) y una configuración DKIM. + +## Asegurarse de que la configuración esté correcta + +Los emails son un ecosistema complicado y una multitud de detalles puedes impedir que funcionen correctamente. + +Para validar que tu configuración es correcta : +- si te alojas en casa y que no tienes VPN, asegúrate de que [tu proveedor de Internet no esté bloqueando el puerto 25](/isp) ; +- redirige los puertos siguiendo [esta documentación](/isp_box_config) ; +- configura con cuidado los registros DNS del correo electrónico siguiendo [esta documentación](/dns_config) ; +- testa tu configuración utilizando [Mail-tester.com](https://mail-tester.com) (cuidado : sólo 3 tests por dominio y por día están autorizados) ; + +Una nota de al menos 8~9/10 es un objetivo razonable. + +## Clientes de mensajería + +Para interactuar con el servidor de mail, o sea leer y mandar emails, puedes instalar un cliente web como Roundcube o Rainloop en tu servidor - o configurar un cliente de Desktop o móvil como descrito en [esta página][cette page](/email_configure_client). + +Los clientes Desktop o móvil tienen la ventaja de copiar tu emails en el equipo, así permitiendo la consulta desconectada de tus mensajes, y cierta protección frente a la posibilidad de un servidor averiado. + +## Configuration de los aliases de mensajeras y de las redirecciones automáticas + +Aliases de mensajeras y redirecciones pueden ser configurados por cada usuario. Por ejemplo, el primer usuario creado en el servidor automáticamente dispone de un alias `root@tu.dominio.tld` - lo que significa que un email mandado hacia esta dirección se encontrará en el buzón de entrada de este usuario. Las redirecciones automáticas pueden ser configuradas, por ejemplo si un usuario no quiere configurar una cuenta de correo adicional y simplemente desea recibir correos del servidor en - por ejemplo - su dirección gmail. + +Otra función desconocida es el uso del sufijo "+". Por ejemplo, email mandados a `johndoe+sncf@tu.dominio.tld` llegarán en el directorio 'sncf' del buzón de correo de John Dos (o directamente en el buzón si este directorio no existe). Es una técnica práctica que permite proveer una dirección de mail a un sitio y automatizar la clasificación de los correos que te mandará este sitio. + +## ¿ Qué ocurre si mi servidor se pone indisponible ? + +Si tu servidor se pone indisponible, los correos electrónicos mandados a tu servir se quedarán en una fila de espera por el lado del expedidor durante aproximadamente 5 días. El proveedor de hosting del expedidor intentará mandarte regularmente el correo, hasta que lo tire si no lo puede enviar. + +## Más información + +- Existe una página de documentación para [migrar sus emails desde un proveedor de mensajería hacia una instancia YunoHost](/email_migration). +- Para profundizar tu comprensión del correo electrónico y de sus protocolos, aquí tienes una [conferencia muy interesante](http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/index.html)(en francés). diff --git a/email_fr.md b/email_fr.md new file mode 100644 index 00000000..e00220b2 --- /dev/null +++ b/email_fr.md @@ -0,0 +1,45 @@ +# Emails + +YunoHost est livré avec un écosystème complet de serveur mail, vous permettant d'héberger votre propre serveur de messagerie, et donc d'avoir vos propres adresses email dans `quelquechose@votre.domaine.tld`. + +Cet écosystème comprend un serveur SMTP (postfix), un serveur IMAP (Dovecot), un antispam (rspamd) et une configuration DKIM. + +## S'assurer que votre configuration est correcte + +Les emails sont un écosystème compliqué et un grand nombre de détails peuvent les empêcher de fonctionner correctement. + +Pour valider que votre configuration est correcte : +- si vous vous hébergez chez vous et n'utilisez pas de VPN, assurez-vous que [votre FAI ne bloque pas le port 25](isp) ; +- routez les ports selon [cette documentation](isp_box_config) ; +- configurez soigneusement les enregistrements DNS du courrier électronique selon [cette documentation](dns_config) ; +- Testez votre configuration en utilisant [Mail-tester.com](https://mail-tester.com) (attention : seuls 3 tests par domaine et par jour sont autorisés) ; + +Un score d'au moins 8~9/10 est un but raisonnable. + +## Clients de messagerie + +Pour interagir avec le serveur de mail, c'est-à-dire lire et envoyer des emails, vous pouvez soit installer un client web comme Roundcube ou Rainloop sur votre serveur - ou configurer un client de bureau ou mobile comme décrit dans [cette page](email_configure_client). + +Les clients de bureau ou mobile ont l'avantage de copier vos emails sur l'équipement permettant ainsi la consultation hors ligne et une protection relative face à d'éventuelles pannes matériel de votre serveur. + +## Configuration des alias de messagerie et des redirections automatiques + +Des alias de messagerie et des redirections peuvent être configurés pour chaque utilisateur. Par exemple, le premier utilisateur créé sur le serveur dispose automatiquement d'un alias `root@votre.domaine.tld` - ce qui signifie qu'un email envoyé vers cette adresse se retrouvera dans la boîte de réception de cet utilisateur. Les redirections automatiques peuvent être configurées, par exemple si un utilisateur ne veut pas configurer un compte de messagerie supplémentaire et souhaite simplement recevoir des courriels du serveur sur, disons, son adresse gmail. + +Une autre fonctionnalité méconnue est l'utilisation de suffixe commencant par "+". Par exemple, les emails envoyés à `johndoe+sncf@votre.domaine.tld` atteriront dans le dossier 'sncf' de la boîte mail de John Doe (ou bien directement dans la boîle mail si ce dossier n'existe pas). C'est une technique pratique pour par exemple fournir une adresse mail à un site puis facilement trier (via des filtres automatiques) les courriers venant de ce site. + +## Que se passe-t-il si mon serveur devient indisponible ? + +Si votre serveur devient indisponible, les courriels envoyés à votre serveur resteront dans une file d'attente du côté de l'expéditeur pendant environ 5 jours. L'hébergeur de l'expéditeur tentera régulièrement de renvoyer le courrier, jusqu'à ce qu'il le jette s'il n'a pas pu l'envoyer. + +## Formulaires pour enlever son adresse IP des listes noires + +Il est possible que les emails envoyés depuis votre instance YunoHost soient considérés comme du spam par les grands services de mails. +Il est possible que l’adresse IP de votre serveur a autrefois été utilisé pour envoyé du spam ou que ces services de mails considèrent votre serveur comme émetteur de spams. +Pour s’assurer que l’adresse IP de votre serveur n’est pas dans ces listes et pour l’enlever dans le cas échéant suivez ce [lien](/blacklist_forms). + + +## Pour aller plus loin + +- Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](email_migration). +- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.octopuce.fr/conference-lemail-vaste-sujet-par-benjamin-sonntag/)(en français). diff --git a/email_migration.md b/email_migration.md new file mode 100644 index 00000000..149fc4cc --- /dev/null +++ b/email_migration.md @@ -0,0 +1,39 @@ +# Migrating email from an email provider to a YunoHost instance + +*[Documentation linked to YunoHost email](/email)*. + +Migration of emails from one server to another can be done with two recommended tools: ImapSync or Larch. + +This tool must be installed on your desktop computer. The transfer method looks at this schema: + +**`Old email server −> desktop computer with ImapSync or Larch −> new email server`** + +### ImapSync + +[ImapSync site](http://imapsync.lamiral.info/) + +Install ImapSync on your client computer by following this [guide](http://imapsync.lamiral.info/INSTALL): +```bash +sudo dnf install imapsync # Under Fedora +``` +Transfer emails from one server to another: +```bash +imapsync --host1 --port1 993 --ssl1 --user1 --password1 \ +--host2 --port2 993 --ssl2 --user2 --password2 +``` + +Note that transfer settings `--port 993` and `--ssl` are specific to YunoHost email server. + +### Larch + +[Larch site](https://github.com/rgrove/larch/) + +After beforehand installed `gem`, install `larch` on your client computer: +```bash +sudo gem install larch +``` +Transfer emails from one server to another: +```bash +larch -a -f imaps://serveur_d'origine.org -t imaps://serveur_de_destination.org +``` +For other types of transfer refer to [Larch documentation](https://github.com/rgrove/larch#label-Usage). diff --git a/email_migration_fr.md b/email_migration_fr.md new file mode 100644 index 00000000..7e81a4d4 --- /dev/null +++ b/email_migration_fr.md @@ -0,0 +1,39 @@ +# Migrer ses emails d’un ancien serveur mail vers YunoHost + +*[Documentation en rapport avec l’email de YunoHost](/email)*. + +La migration des emails d’un serveur à un autre peut se faire via deux outils recommandés : ImapSync ou Larch. + +Cet outil doit être installé sur votre ordinateur de bureau. La procédure de transfert est comme sur le schéma : + +**`Ancien serveur email −> ordinateur client avec ImapSync ou Larch −> nouveau serveur email`** + +### ImapSync + +[Site d’ImapSync](http://imapsync.lamiral.info/) + +Installez ImapSync sur votre ordinateur client en suivant ce [guide](http://imapsync.lamiral.info/INSTALL) : +```bash +sudo dnf install imapsync # Sous Fedora +``` +Transférez les mails d’un serveur à l’autre : +```bash +imapsync --host1 --port1 993 --ssl1 --user1 --password1 \ +--host2 --port2 993 --ssl2 --user2 --password2 +``` + +Notez que les paramètres de transfert `--port 993` et `--ssl` sont spécifique à un serveur de mail YunoHost. + +### Larch + +[Site de Larch](https://github.com/rgrove/larch/) + +Après avoir préalablement installé `gem`, installez `larch` sur votre ordinateur client : +```bash +sudo gem install larch +``` +Transférez les mails d’un serveur à l’autre : +```bash +larch -a -f imaps://serveur_d'origine.org -t imaps://serveur_de_destination.org +``` +Pour d’autres types de transferts référez-vous à la documentation de Larch. diff --git a/external_storage.md b/external_storage.md new file mode 100644 index 00000000..d9c436c7 --- /dev/null +++ b/external_storage.md @@ -0,0 +1,121 @@ +# Adding an external storage to your server + +## Introduction + +If you did not allocate a large partition to `/home` before installing YunoHost, and that your apps require a lot of spaces, you can still add an external driver after setting up your system. + +## Before starting + +Even though these steps are relatively simple, they may appear technical. In any case, they require you to **take your time**. + +You should be connected as root on your server, for instance via [SSH](/ssh). (Note: being logged as `admin`, you can upgrade to `root` with the command `sudo su`) + +It can be useful to [create a backup](/backup) of your install before starting. + +You should also have your external drive (plugged via USB or SATA). + +## 1. Connect and identify the disk + +Start by connecting your drive to the system. You shall then identify which name is used by the system to refer to the disk. + +You can do this with this command : + +```bash +lsblk +``` + +It may yield something like this : + +```bash +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 931.5G 0 disk +└─sda1 8:1 0 931.5G 0 part +mmcblk0 179:0 0 14.9G 0 disk +├─mmcblk0p1 179:1 0 47.7M 0 part /boot +└─mmcblk0p2 179:2 0 14.8G 0 part / +``` + +Here, `mmcblk0` corresponds to an SD card of 16Go (the partitions `mmcblk0p1` et `mmcblk0p2` are used as the boot partition `/boot` and the system partition `/`). The external drive is `sda` which is about 1TB and has only one partition `sda1` which is not mounted (no "MOUNTPOINT"). + +
+ On a different setup, your system partition might be `sda` and so your external drive might be `sdb` for instance. +
+ +## 2. (Optional) Format the disk + +This operation is optional if your disk has already been formatted. + +First let's create a new partition on the disk : + +```bash +fdisk /dev/YOUR_DISK +``` + +then sucessfully type `n`, `p`, `1`, `Enter`, `Enter`, then `w` to create the new partition. + +Check with `lsblk` that your disk really does contain a single partition. + +Before you can use your disk it has to be formatted. + +You should be aware that **formating a drive implies to erasing every data on it !** If your disk is already "clean", you may ignore this step. + +To format the partition : + +```bash +mkfs.ext4 /dev/YOUR_DISK1 +# then 'y' to validate +``` + +(Replace `YOUR_DISK1` by the name of the first partition on the disk. Be careful not to do any mistake here, as it can mean erasing data on your main system if you are using the wrong name ! In the previous example, the name of our disk was `sda`.) + + +## 3. Mount the disk + +"Mounting" a disk corresponds to making it effectively accessible in the filesystem tree. Here, we choose the arbitrary name `/media/storage` but you can choose a different name (for instance, `/media/my_disk` ... ). + +Let's start by creating the directory : + +```bash +mkdir /media/storage +``` + +Then we can manually mount the disk with : + +```bash +mount /dev/YOUR_DISK1 /media/storage +``` + +(Here, `/dev/YOUR_DISK1` corresponds to the first partition on the disk) + +Next, you should be able to create files in `/media/storage`, and, for instance, add `/media/storage` as an external drive in Nextcloud. + +## 4. Mount the disk automatically at boot + +So far, we only mounted the disk manually. But it can be nice and useful to have it being mounted automatically at each boot. + +Let's start by finding the UUID (universal identifier) of the disk with : + +```bash +blkid | grep "/dev/YOUR_DISK1:" +# Should return something like +# /dev/sda1:UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" TYPE="ext4" PARTUUID="34e4b02c-02" +``` + +Let's add a line in the file `/etc/fstab` which manages which disks are mounted at boot. We open this file with `nano` : + +```bash +nano /etc/fstab +``` + +And add this line : + +```bash +UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" /media/storage ext4 defaults,nofail 0 0 +``` + +(this line should be adapated according to previous info and choices) + +Use Ctrl+X then `y` to save. + +You can then reboot the system to test if the disk is mounted automatically. + diff --git a/external_storage_fr.md b/external_storage_fr.md new file mode 100644 index 00000000..2283324f --- /dev/null +++ b/external_storage_fr.md @@ -0,0 +1,120 @@ +# Ajouter un stockage externe à son serveur + +## Introduction + +Si vous n'avez pas dédié une grande partition à `/home` avant d'installer YunoHost, et que vos applications nécessitent beaucoup d'espace disque, vous pouvez toujours ajouter un disque externe *a posteriori*. + +## Avant de commencer + +Les étapes à réaliser, même si elles sont relativement simples, peuvent parfois paraître techniques et nécessitent dans tous les cas **de prendre son temps**. + +Vous devez également être connecté en root sur votre système, par exemple via [SSH](/ssh). (Note : en étant connecté en tant qu'utilisateur `admin`, vous pouvez passer root avec `sudo su`) + +Il peut être utile de [faire un backup](/backup) de votre installation. + +Vous devez également disposer d'un disque dur supplémentaire (branché en USB ou en SATA). + +## 1. Connecter et identifier le disque + +Commencez par brancher ce disque dur à votre système. Il faut ensuite identifier sous quel nom est désigné le disque par le système. + +Pour cela, utilisez la commande : + +```bash +lsblk +``` + +Elle peut renvoyer quelque chose comme : + +```bash +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 931.5G 0 disk +└─sda1 8:1 0 931.5G 0 part +mmcblk0 179:0 0 14.9G 0 disk +├─mmcblk0p1 179:1 0 47.7M 0 part /boot +└─mmcblk0p2 179:2 0 14.8G 0 part / +``` + +Ici, `mmcblk0` corresponds à une carte SD de 16Go (on voit que les partitions `mmcblk0p1` et `mmcblk0p2` correspondent à la partition de démarrage `/boot` et à la partition système `/`). Le disque dur branché correspond à `sda` qui fait environ 1To, et contient une seule partition `sda1` qui n'est pas monté (pas de "MOUNTPOINT"). + +
+ Sur un autre système, il se peut que votre système soit installé sur `sda` et que votre disque soit alors `sdb` par exemple. +
+ +## 2. (Optionnel) Formater le disque + +Cette opération est optionnelle si votre disque est déjà formaté. + +Créons une nouvelle partition sur le disque : + +```bash +fdisk /dev/VOTRE_DISQUE +``` + +puis entrez successivement `n`, `p`, `1`, `Entrée`, `Entrée`, et `w` pour créer une nouvelle partition. + +Vérifiez avec `lsblk` que vous avez bien votre disque contenant une seule partition. + +Avant de pouvoir utiliser votre disque, il doit être formaté. + +Attention : **formater un disque implique de supprimer toutes les données inscrites dessus !** Si votre disque est déjà "propre", vous pouvez passer cette étape. + +Pour formater la partition : + +```bash +mkfs.ext4 /dev/VOTRE_DISQUE1 +# puis 'y' pour valider +``` + +(Remplacez `VOTRE_DISQUE1` par le nom de la première partition sur le disque. Attention à ne pas vous tromper de nom, car cela peut avoir pour conséquence de formater un autre disque que celui voulu ! Dans l'exemple donné précédemment, il s'agissait de `sda`.) + + +## 3. Monter le disque + +"Monter" un disque corresponds à le rendre effectivement accessible dans l'arborescence des fichiers. Nous allons choisir arbitrairement de monter le disque dans `/media/stockage` mais vous pouvez le nommer différement (par exemple `/media/mon_disque` ...). + +Commençons par cŕeer le répertoire : +```bash +mkdir /media/stockage +``` + +Puis nous pouvons monter le disque manuellement avec : + +```bash +mount /dev/VOTRE_DISQUE1 /media/stockage +``` + +(Ici, `/dev/VOTRE_DISQUE1` corresponds à la première partition sur le disque) + +Ensuite, vous devriez pouvoir créer des fichiers dans `/media/stockage`, et, par exemple, ajouter `/media/stockage` comme périphérique externe dans Nextcloud. + +## 4. Monter le disque automatiquement au démarrage + +Jusqu'ici, nous avons monté manuellement le disque. Cependant, il peut être utile de configurer le système pour qu'il monte automatiquement le disque après un démarrage. + +Pour commencer, trouvons l'UUID (identifiant universel) de notre disque avec : + +```bash +blkid | grep "/dev/VOTRE_DISQUE1:" +# Retourne quelque chose comme : +# /dev/sda1:UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" TYPE="ext4" PARTUUID="34e4b02c-02" +``` + +Ajoutons alors une ligne au fichier `/etc/fstab` qui gère le montage des disques au démarrage. On ouvre donc le fichier avec `nano` : + +```bash +nano /etc/fstab +``` + +Puis on ajoute cette ligne : + +```bash +UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" /media/stockage ext4 defaults,nofail 0 0 +``` + +(il faut adapter cette ligne en fonction des informations et choix précédents) + +Utiliser Ctrl+X puis `o` pour sauvegarder. + +Vous pouvez ensuite tester de redémarrer le système pour voir si le disque est monté automatiquement. + diff --git a/fail2ban.md b/fail2ban.md new file mode 100644 index 00000000..8f9ebc17 --- /dev/null +++ b/fail2ban.md @@ -0,0 +1,65 @@ +# Fail2Ban + +**Fail2Ban** is an intrusion prevention software that protects computer servers against brute-force attacks. It monitors certain logs and will ban IP addresses that show brute-force-like behavior. + +In particular, **Fail2Ban** monitors `SSH` connection attempts. After 5 failed SSH connection attempts, Fail2Ban will ban the IP address from connecting via SSH for 10 minutes. If this address fails several times, it might get banned for a week. + +## Unban an IP address + +To unblock an IP address, you must first access your server by some means (for example from another IP address or from another internet connection than the banned one). + +Then, look at the **Fail2Ban’s log** to identify in which `jail` the IP address has been banned: + +```bash +sudo tail /var/log/fail2ban.log +2019-01-07 16:24:47 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:49 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:51 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:54 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:57 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:57 fail2ban.actions [1837]: NOTICE [sshd] Ban 11.22.33.44 +2019-01-07 16:24:57 fail2ban.filter [1837]: NOTICE [recidive] Ban 11.22.33.44 +``` + +Here, the `11.22.33.44` IP address has been banned in the `sshd` and `recidive` jails. + +Then deban the IP address with the following commands: + +```bash +sudo fail2ban-client set sshd unbanip 11.22.33.44 +sudo fail2ban-client set recidive unbanip 11.22.33.44 +``` + +## Whitelist an IP address + +If you don’t want a "legitimate" IP address to be blocked by **YunoHost** anymore, then you have to fill it in the whitelist of the `jail` configuration file. + +When updating the **Fail2Ban** software, the original `/etc/fail2ban/jail.conf` file is overwritten. So it is on a new dedicated file that we will store the changes. They will thus be preserved over time. + +1. Start by creating the new jail configuration file which will be called `yunohost-whitelist.conf`: + + ```bash + sudo touch /etc/fail2ban/jail.d/yunohost-whitelist.conf + ``` + +2. Edit this new file with your favorite editor: + + ```bash + sudo nano /etc/fail2ban/jail.d/yunohost-whitelist.conf + ``` + +3. Paste the following content into the file and adapt the IP address `XXX.XXX.XXX.XXX`: + + ```bash + [DEFAULT] + + ignoreip = 127.0.0.1/8 XXX.XXX.XXX.XXX #<= the IP address (you can put more than one, separated by a space) that you want to whitelist + ``` + +4. Save the file and reload the Fail2Ban configuration: + + ```bash + sudo fail2ban-client reload + ``` + +Congratulations, no more risks of banning yourself from your own YunoHost server! diff --git a/fail2ban_fr.md b/fail2ban_fr.md new file mode 100644 index 00000000..ef2f3de3 --- /dev/null +++ b/fail2ban_fr.md @@ -0,0 +1,65 @@ +# Fail2Ban + +**Fail2Ban** est un logiciel de prévention des intrusions qui protège les serveurs informatiques contre les attaques de brute-force. Il surveille certains journaux et bannira les adresses IP qui montrent un comportement de brute-forcing. + +En particulier, **Fail2Ban** surveille les tentatives de connexion `SSH`. Après 5 tentatives de connexion échouées sur SSH, Fail2Ban banniera l’adresse IP pendant 10 minutes. Si cette adresse récidive plusieurs fois, elle peut être bannie pendant une semaine. + +## Débannir une adresse IP + +Pour débloquer une addresse IP, vous devez d’abord accéder à votre serveur par un moyen quelconque (par exemple à partir d’une autre adresse IP ou d’une autre connexion internet que celle bannie). + +Ensuite, regardez le **journal de Fail2Ban** pour identifier dans quelle `prison` ou `jail` l’adresse IP a été bannie : + +```bash +sudo tail /var/log/fail2ban.log +2019-01-07 16:24:47 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:49 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:51 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:54 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:57 fail2ban.filter [1837]: INFO [sshd] Found 11.22.33.44 +2019-01-07 16:24:57 fail2ban.actions [1837]: NOTICE [sshd] Ban 11.22.33.44 +2019-01-07 16:24:57 fail2ban.filter [1837]: NOTICE [recidive] Ban 11.22.33.44 +``` + +Ici, l’adresse IP `11.22.33.44` a été bannie dans les jails `sshd` et `recidive`. + +Puis débanissez l’adresse IP avec les commandes suivantes : + +```bash +sudo fail2ban-client set sshd unbanip 11.22.33.44 +sudo fail2ban-client set recidive unbanip 11.22.33.44 +``` + +## Passer une adresse IP en liste blanche / whitelist + +Si vous ne voulez plus qu’une adresse IP « légitime » soit bloquée par **YunoHost**, alors il faut la renseigner dans la liste blanche ou whitelist du fichier de configuration de la `prison`. + +Lors d’une mise à jour du logiciel **Fail2Ban**, le fichier d’origine `/etc/fail2ban/jail.conf` est écrasé. C’est donc dans un nouveau fichier que nous allons stocker les modifications. Elles seront ainsi conservées dans le temps. + +1. Commencez par créer le nouveau fichier de configuration des prisons qui s’appelera `yunohost-whitelist.conf` : + + ```bash + sudo touch /etc/fail2ban/jail.d/yunohost-whitelist.conf + ``` + +2. Éditez ce nouveau fichier avec votre éditeur préféré : + + ```bash + sudo nano /etc/fail2ban/jail.d/yunohost-whitelist.conf + ``` + +3. Coller le contenu suivant dans le fichier et adapter l’adresse IP `XXX.XXX.XXX.XXX` : + + ```bash + [DEFAULT] + + ignoreip = 127.0.0.1/8 XXX.XXX.XXX.XXX #<= l'adresse IP (on peut en mettre plusieurs, séparées par un espace) que vous voulez passer en liste blanche / whitelist + ``` + +4. Sauvegardez le fichier et rechargez la configuration de Fail2Ban : + + ```bash + sudo fail2ban-client reload + ``` + +Félicitations, plus de risques de se bannir de son propre serveur YunoHost ! diff --git a/faq.md b/faq.md new file mode 100644 index 00000000..9aa5d2a4 --- /dev/null +++ b/faq.md @@ -0,0 +1,105 @@ +# Frequently Asked Questions + +#### Under which license is YunoHost distributed? + +YunoHost packages are under free licenses GNU AGPL v.3. + +YunoHost is based on Debian, so on Debian's components' licenses. + +Applications and applications packages have their own licenses. + + +#### What's YunoHost goal? + +We believe that decentralizing the Internet, and empowering people to take control and responsibility back over their own data and services, is a crucial issue to guarantee a free and democratic society. + +The YunoHost project aims to democratize self-hosting. + +It provides a software that aims to make it easy for people to run and administrate their own server, with minimal knowledge and required time. + + +#### But what does YunoHost exactly *do*? + +YunoHost may be called a distribution or an operating system, but it's actually "just" a simple layer added over the top of Debian, which does most of the hard work for you. + +For instance, if you wanted to install WordPress, you would need to type a bunch of commands to create some users, setup a web server, setup a SQL server, download the WordPress archive, uncompress it, configure the web server, configure the SQL database, and finally configure WordPress. YunoHost handles the technical details and "types all these commands for you", so that you can focus on what really matters. + +More info on [this page](whatsyunohost)! + +#### Can I host my own personal website with YunoHost? + +Yes! Have a look at the [Custom Web app](https://github.com/YunoHost-Apps/my_webapp_ynh). It provides an "empty shell" : after installing it, just upload your files (via SSH/SCP or SFTP) to the right location. You can have PHP and a SQL database if you need. + +#### Can I host many independent websites with different domain names? + +Yes! YunoHost is multi-user and multi-domain. Some applications like *WordPress* or *Web App Multi Custom*, are multi-instances, which means that the application can be installed many times. + + +#### Why can't I access applications via the IP address? + +The [SSO](https://github.com/Kloadut/SSOwat/) (single sign-on) cannot properly authenticate users when they access your server with only its IP. If you really can't properly configure the DNS, you can temporarily work around it by [modifying the `hosts` file (last §)](/dns_local_network) on your computer. + + +#### What's YunoHost's business model? + +At the moment, YunoHost is maintained only by volunteers working in their free time. Basically no money is involved in the project (apart from server fees or stickers :P). + +Considering that a few contributors are investing a large amount of time in the project, we are thinking about ways to make the project sustainable. + +This could be achieved via donations, grants, and a few contributors have professional activities related to YunoHost. + + +#### Can I donate to the project? + +Yes, you can! YunoHost needs money to pay servers and domain names. We would also like contributors to be able to continue contributing rather than look for jobs elsewhere. + +You can donate using [our donation interface](https://donate.yunohost.org) + +If you can, you can also make in-kind contributions, like servers (some of our infrastructure relies on servers from a few associations). + + +#### How can I contribute to the project? + +There are [many ways to contribute](contribute) :). + +Don't hesitate to come talk to us about your ideas! + +A common misconception for newcomers in free software projects is to think that they are "not skilled enough". In practice, nobody is "skilled" :). What really matter is: [liking what you do](https://www.youtube.com/watch?v=zIbR5TAz2xQ&t=113s), being friendly with other human beings, being patient and stubborn with machines, and having some free time. Other than that, just doing what you can is already awesome! + + +#### What's YunoHost's political model? + +It is described in [this document](project_organization) :). + + +#### Will you port YunoHost to [insert favorite distro]? + +Short answer: No. We don't have the energy for it and this is irrelevant. + +Long answer +
+

If you care about distrowars, or think 'Debian is dirty', then YunoHost is not for you.

+ +

YunoHost is aimed at non-tech people who just want their server to work. Debian has its flaws, but it's (one of?) the most widely known and used distribution for servers. It's stable. Most self-hosted software are one way or another compatible with Debian. It's easily hackable by anybody who's been doing a bit of CLI on their personal Ubuntu/Mint computer. There is no killer feature in other distributions that makes it relevant for YunoHost to switch or port to it.

+ +

If this does not convince you, there are other projects running on other distributions or with different philosophies.

+
+ + +#### I checked how apps packaging work. Why are you reinventing [insert favorite package format]? + +Short answer: We are not. + +Medium answer: Apps were packaged in .deb in the past. It was a nightmare. We're happy now ;). + +Long answer +
+ +

YunoHost aims to make packaging easy. The idea from the beginning was to keep it as simple as « if you can install the app manually, then you can easily copy/paste steps into a basic install/remove package with no particular training ». This is not the case with Debian packages.

+ +

Turns out, YunoHost apps packaging holds a subtly different purpose than traditional packaging like .deb. Debian packages fulfill the low-level purpose of installing files, commands, programs and services on the system. It is often your duty to configure them properly, simply because there is no standard server setup. Typically, web apps requires a lot of configuration because they rely on a web server and a database (and the single sign-on).

+ +

YunoHost manipulates high-level abstractions (apps, domains, users...) and defines a standard setup (NGINX, Postfix, Metronome, SSOwat...) and, because of this, can handle the configuration for the user.

+ +

If you still think it's possible to handle everything by fiddling with .deb packages, see previous answers.

+
diff --git a/faq_de.md b/faq_de.md new file mode 100644 index 00000000..3ad70759 --- /dev/null +++ b/faq_de.md @@ -0,0 +1,108 @@ +# Häufig gestellte Fragen + +#### Unter welcher Lizenz wird YunoHost angeboten ? + +YunoHost steht unter der freien GNU AGPL v.3 Lizenz. + +YunoHost basiert auf Debian, also auch auf Lizenzen von Debian Bestandteilen. + +Die Anwendungen und Applikations-Pakete stehen unter ihren jeweiligen, eigenen Lizenzen. + + +#### Was ist das Ziel von YunoHost ? + +Wir glauben, dass Dezentralisierung sowie Kontrolle und Verantwortung über die eigenen Daten und Dienste ein wichtiger Bestandteil einer freien und demokratischen Gesellschaft ist. + +Das YunoHost Projekt zielt darauf ab, eigenverantwortliches Hosting zu demokratisieren. + +Wir bieten eine Software an, die es für jeden möglichst einfach machen soll, einen eigenen Server zu betreiben und zu verwalten - mit einem minimalen Aufwand an Wissen und Zeit. + + +#### Aber was *macht* YunoHost überhaupt ? + +YunoHost könnte eine Distribution oder ein Betriebssystem genannt werden, aber es ist eigentlich "nur" eine Ebene, die über Debian betrieben wird und welche die meiste, schwierige Arbeit für Sie übernimmt. + +Zum Beispiel, wenn Sie Wordpress installieren möchten, müssten Sie einige Befehle eintippen, um Benutzer zu generieren, einen Webserver einrichten, einen SQL Server einrichten, das Wordpress Archiv herunterladen, entpacken, den Webserver konfigurieren, die SQL Datenbank konfigurieren und schließlich Wordpress einrichten. YunoHost übernimmt all das für Sie, zähmt das technische Chaos und "tippt alle Befehle für Sie", sodass Sie sich auf das konzentrieren können, was wirklich wichtig ist. + +Mehr Informationen finden Sie [hier](whatsyunohost) ! + + +#### Kann ich meine eigene, persönliche Internetseite mit YunoHost betreiben ? + +Ja ! Werfen Sie einen Blick auf die [Custom Web app](https://github.com/YunoHost-Apps/my_webapp_ynh). +Dort erhalten Sie ein "leeres Gefäß" : nach der Installation, laden Sie einfach Ihre Dateien and den jeweiligen Ort hoch (via SSH/SCP or SFTP). PHP und eine SQL Datenbank steht Ihnen bei Bedarf zur Verfügung. + + +#### Kann ich viele voneinander unabhängige Internetseiten mit unterschiedlichen Domain-Namen betreiben ? + +Ja ! YunoHost ermöglicht das Anlegen mehrerer Benutzer und Domain-Namen. Manche Apllikationen wie *WordPress* oder *Web App Multi Custom* sind mehrinstanzenfähig und können mehrmals installiert werden. + + +#### Wieso kann ich Anwendungen nicht über die IP-Adresse erreichen ? + +Die [SSO](https://github.com/Kloadut/SSOwat/) (Single Sign-on) Technik kann Benutzer nicht richtig authentifizieren, wenn sie auf den Server nur über die IP zugreifen. Wenn Sie keine Möglichkeit haben, die DNS korrekt zu konfigurieren, können Sie als temporäre Notlösung [die `Hosts` Datei (letztes §)](/dns_local_network) auf Ihrem Computer modifizieren. + + +#### Was ist das Geschäftsmodell von YunoHost ? + +Momentan wird YunoHost nur von Freiwiligen betrieben, die in ihrer Freizeit an dem Projekt arbeiten. Im Grunde ist bisher kein Geld im Spiel (abgesehen von Serverkosten oder Stickern :P). + +Vor dem Hintergrund, dass einige Mitwirkende sehr viel zeit in das Projekt investieren, überlegen wir derzeit, wie wir das Projekt langfristig tragfähig machen können. + +Dies könnte durch Spenden oder öffentliche Gelder erricht werden. Einige Mitwirkenden arbeiten an professionellen Angeboten in Zusammenhang mit YunoHost. + + +#### Kann ich für das Projekt spenden ? + +Ja, das können Sie ! YunoHost braucht Geld, um die Server und Domain-Namen zu bezahlen. Wir möchten außerdem erreichen, dass die Mitwirkenden weiterhin zum Projekt beitragen können und sich nicht nach anderen Jobs umschauen müssen. + +Sie können [auf Liberapay spenden](https://liberapay.com/yunohost). + +Wenn Ihnen das möglich ist, können Sie auch gerne Sachspenden leisten (ein Teil unserer Infrastruktur ist auf Server von Dritten angewiesen). + + +#### Wie kann ich zum Projekt beitragen ? + +Es gibt viele Wege [zum Projekt beizutragen](contribute) :). + +Zögern Sie nicht, mit uns über Ihre Ideen zu sprechen! + +Es ist ein weit verbreitetes Missverständnis, dass Neulinge bei offenen Softwareprojekten nicht "ausreichend qualifiziert" sind. Wer ist das schon :) ? Was wirklich zählt, ist, [dass Sie mögen, was Sie tun](https://www.youtube.com/watch?v=zIbR5TAz2xQ&t=113s), nett zu anderen Menschen, geduldig und starrköpfig gegenüber Maschinen sind und etwas freie Zeit haben. Abgesehen davon ist einfach alles was Sie tun können, schon mehr als genug! + + +#### Was sind YunoHost organisatorische Grundsätze ? + +Das beschreiben wir in [diesem Dokument](project_organization) :). + + +#### Werdet ihr YunoHosts für [Lieblingsdistribution hier einfügen] portieren ? + +Die kurze Antwort: Nein. Wir haben nicht die Energie dafür und es ist eh irrelevant. + +Die lange Antwort +
+

Wer sich auf Distrowars einlässt oder denkt, dass Dabian "schmutzig" sei, ist nicht die Zielgruppe von YunoHost.

+ +

YunoHost soll nicht-technikversierte Leute ansprechen, die einfach nur wollen, dass ihr Server funktioniert. Debian hat seine Macken, aber es ist eine bekannte und verbreitete Distributionen für Server. Es ist stabil. Die meiste self-hosted Software ist auf die eine oder andere Weise kompatibel mit Debian. Wer ein bisschen CLI auf seinem eigenen Ubuntu/Mint Computer betreibt, kann sich selbst etwas zusammenhacken. Es gibt kein Killer-Feature in anderen Distributionen, das es notwendig macht, dass YunoHost wechselt oder portiert wird.

+ +

Sollte Sie das nicht überzeugen, gibt es ausreichend andere Projekte für andere Distributionen mit einer anderen Philosophie dahinter.

+
+ + +#### Ich hab gesehen, wie das Packen von Apps funktioniert? Warum erfindet ihr das Rad neu und benutzt nicht [hier bevorzugtes Paketformat einfügen] ? + +Kurze Antwort: Machen wir nicht. + +Mittellange Antwort: Früher wurden die Apps in .deb gepackt. Was für ein Albtraum. Wir sind jetzt glücklicher ;). + +Die lange Antwort +
+ +

Das Ziel von YunoHost ist es das Packen einfacher zu machen. Von Anfang an wollten wir es so simple wie möglich gestalten, nach dem Motto: « wer die App manuell installieren kann, sollte die Schritte für die Installation und Deinstallation der Pakete ohne besonderes Training kopieren und einfügen können ». Bei Debian Paketen ist das nicht der Fall.

+ +

Es hat sich herausgestellt, dass das Packen für YunoHost einen leicht anderen Zweck erfüllt als das Erstellen klassischer Pakete wie .deb. Debian Pakete haben nur den Anspruch Dateien, Befehle, Programme und Dienste auf dem System zu installieren. Es bleibt oft an Ihnen diese richtig zu konfigurieren, weil es einfach keinen standardisierte Server-Konfiguration gibt. Typischerweise erfordern Web-Apps einen sehr hohen Konfigurationsaufwand, weil sie auf dem Webserver und einer Datenbank (und dem single sign-on) aufbauen.

+ +

YunoHost richtet Konzepte auf höchster Ebene ein (Apps, Domain-Namen, Benutzer...) und definiert eine standardmäßige Einrichtung (NGINX, Postfix, Metronome, SSOwat...) und kann deshalb die Konfiguration für den Anwender übernehmen.

+ +

Wer trotzdem glaubt, man könne deb Pakete dazu bringen, all dies zu leisten, möge sich die vorherige Antwort anschauen.

+
diff --git a/faq_fr.md b/faq_fr.md new file mode 100644 index 00000000..288733d6 --- /dev/null +++ b/faq_fr.md @@ -0,0 +1,105 @@ +# Foire aux questions + +#### Sous quelle licence est distribué YunoHost ? + +Les paquets qui composent YunoHost sont sous licence libre GNU AGPL v.3. + +YunoHost est basé sur Debian, donc sur les licences des éléments sur lesquels Debian est basé. + +Les applications et leurs paquets ont leurs licences respectives. + + +#### Quel est l’objectif de YunoHost ? + +Nous pensons que la décentralisation d’Internet, et la reprise du contrôle et de la responsabilité des données et services par les citoyens est un enjeu crucial pour garantir une société libre et démocratique. + +Le projet YunoHost cherche à démocratiser l’auto-hébergement. + +Nous fournissons un logiciel qui cherche à rendre simple le fait de gérer et d’administrer un serveur soi-même, en minimisant les compétences et le temps requis. + + +#### Mais qu’est-ce que ça fait *vraiment* ? + +YunoHost peut être appelé une distribution ou un système d’exploitation, mais dans les faits, c’est une « simple » sur-couche à Debian, qui gère les manipulations pénibles à votre place. + +Par exemple, pour installer un WordPress à la main, il vous faudrait taper toute une série de commandes pour créer des utilisateurs, mettre en place un serveur web, mettre en place un serveur SQL, télécharger l’archive de WordPress, la décompresser, configurer le serveur web, configurer la base de données SQL, et finalement configurer WordPress. YunoHost gère toute cette partie technique et « tape les commandes à votre place », pour que vous puissiez vous concentrer sur ce qui compte vraiment. + +Plus d’informations sur [cette page](whatsyunohost) ! + + +#### Puis-je gérer mon propre site web avec YunoHost ? + +Oui ! Il faut regarder du côté de [cette app](https://github.com/YunoHost-Apps/my_webapp_ynh). +Elle fournit une « coquille vide » : après l’installation, il suffit d’envoyer vos fichiers (via SSH/SCP ou SFTP) au bon endroit. Il est aussi possible d’avoir du PHP et une base de donnée SQL si besoin. + + +#### Peut-on héberger plusieurs sites indépendants avec des noms de domaines différents ? + +On peut tout à fait héberger plusieurs sites web car YunoHost est multi-domaine et que certaines applications de gestion de sites web, comme *WordPress* ou *Web App Multi Custom*, sont multi-instances, c’est-à-dire que l’application peut-être installée plusieurs fois. + +#### Pourquoi je ne peux pas accéder à mes applications avec l’adresse IP ? + +Pour des raisons techniques, le [SSO](https://github.com/YunoHost/SSOwat/) ne permet pas aux utilisateurs de se connecter à l’espace utilisateur lorsque l’on accède au serveur uniquement avec l’IP. Si vous ne pouvez réellement pas configurer un nom de domaine, une solution temporaire peut être de modifier le [fichier `hosts` (dernier §)](/dns_local_network) de son ordinateur. + + +#### Quel est le modèle économique de YunoHost ? + +À l’heure actuelle, YunoHost est maintenu uniquement par une équipe de bénévoles travaillant pendant leur temps libre. Il n’y a pas d’argent impliqué dans le projet (hormis quelques frais de serveurs et stickers :P). + +Étant donné que certains contributeurs sont très engagés dans ce projet, nous réfléchissons à un moyen de pérenniser le projet. + +Il est question de financement par dons ou subventions, certains contributeurs mènent par ailleurs des activités professionnelles liées à YunoHost. + + +#### Puis-je faire un don au projet ? + +Oui, c'est possible ! YunoHost a besoin de payer des serveurs et noms de domaine, par ailleurs nous souhaiterions pouvoir permettre aux développeurs principaux de continuer à développer YunoHost plutôt que de chercher un emploi ailleurs. + +Pour faire un don ça se passe via [notre interface de don](https://donate.yunohost.org) + +Si vous le pouvez, vous pouvez aussi faire des contributions en nature (une partie de notre infrastructure vient d'associations qui nous fournissent des serveurs). + + +#### Comment puis-je contribuer au projet ? + +Il existe [plusieurs façons de contribuer](contribute) :). + +N’hésitez pas à venir nous parler de vos idées ! + +Une idée répandue parmi les nouveaux contributeurs aux logiciels libres est de ne pas être « assez compétent ». En pratique, croyez-le, personne n’est compétent :). Ce qui compte vraiment est : [d’aimer ce que vous faites](https://www.youtube.com/watch?v=zIbR5TAz2xQ&t=113s), être sympathique avec les autres êtres humains du projet, être patient et têtu avec les machines, et avoir du temps libre. À part ça, juste faire ce que vous pouvez, c’est déjà trop cool ! + +#### Quel est le modèle politique de YunoHost ? + +Il est décrit dans [ce document](project_organization) :). + + +#### Pouvez-vous porter YunoHost sur [ma distro préférée] ? + +Réponse courte : non. L’équipe n’a pas l’énergie et ce n’est pas pertinent pour le but recherché par YunoHost. + +Réponse longue +
+

Si vous vous préoccupez des guéguerres de distro, ou pensez que « Debian c’est sale », vous n’êtes pas le public de YunoHost.

+ +

YunoHost vise un public de non-technophiles ou de bidouilleurs qui veulent simplement que le serveur fonctionne sans devoir investir des semaines entières. Debian a probablement des défauts, mais c’est une (la ?) distribution la plus connue et utilisée pour gérer des serveurs. C’est une distribution stable. La plupart des services auto-hébergeables sont compatibles d’une manière ou d’une autre avec Debian. Elle est facilement bidouillable par quelqu’un qui a déjà utilisé la ligne de commande sur son ordinateur personnel. Il n’y a pas de « killer feature » particulière dans les autres distributions qui rendrait pertinent de porter YunoHost dessus.

+ +

Si cela ne vous convient pas, il existe d’autres projets sous d’autres distributions ou avec d’autres philosophies.

+
+ +#### J’ai regardé comment le packaging des apps fonctionne. Pourquoi réinventez-vous [mon format de paquet préféré] ? + +Réponse courte : ce n’est pas ce que nous faisons. + +Réponse moyenne : Par le passé, les apps étaient gérées via des .deb. C’était cauchemardesque. Nous sommes heureux maintenant ;). + +Longue réponse +
+ +

YunoHost cherche à garder un système de packaging simple. L’idée depuis le départ était que « si tu sais installer l’app à la main, alors tu peux facilement créer un package basique en copiant-collant les étapes, sans besoin de connaissances particulières ». Ce n’est pas le cas des paquets Debian.

+ +

Il se trouve que l’objectif des paquets d’application YunoHost est subtilement différent de celui des paquets traditionnels (comme les .deb de Debian) qui remplissent le rôle d’installer des éléments bas-niveau tels que des fichiers, commandes, programmes ou services sur le système. Il est à la charge de l’administrateur de les configurer ensuite proprement, simplement parce qu’il n’existe pas d’environnement standard. Typiquement, les applications web requièrent beaucoup de configuration car elles ont besoin de s’interfacer avec un serveur web et une base de données (et le système de connexion unique / SSO).

+ +

YunoHost manipule des abstractions haut-niveau (apps, domaines, utilisateurs…) et définit un environnement standard (NGINX, Postfix, Metronome, SSOwat...) et, grâce à cela, peut gérer la configuration à la place de l’administrateur.

+ +

Si vous restez persuadé que l’on peut néanmoins bricoler les paquets .deb pour gérer tout cela, voir les réponses précédentes.

+
diff --git a/filezilla.md b/filezilla.md new file mode 100644 index 00000000..505fac54 --- /dev/null +++ b/filezilla.md @@ -0,0 +1,81 @@ +# Exchange files with your server using a graphical interface + +This page explains how to exchange files (backup archives, music, pictures, movies...) with your server using a graphical interface for the (S)FTP protocol. This is an alternative to using `scp` which can be deemed technical and cryptic, or using an app like Nextcloud. + +[FileZilla](https://filezilla-project.org/) can be used for this. It is a free software and is available for Windows, GNU/Linux and macOS. + +## Download and install FileZilla + +Get the client from the [download page](https://filezilla-project.org/download.php?type=client). It should automatically detect the version needed for your computer. Otherwise, follow the instructions to [install the client](https://wiki.filezilla-project.org/Client_Installation) + +Install the program and run *Filezilla*. + +## Configuration + +1. Click the *Site Manager* icon in the upper left to begin. + + ![Main screen of Filezilla](images/filezilla_1.png) + +2. Click **New Site** and give a name the server you will be using : *Family* here. Fill the settings as on the screenshot (replace the server adress with your own), and click on **Connect**. (N.B. : if you want to interact with the [custom webapp](https://github.com/YunoHost-Apps/my_webapp_ynh) files, you should use a different user than `admin`. Refer to the custom webapp documentation.) + + ![Site manager screen](images/filezilla_2.png) + +3. You will get a warning as you connect for the first time to the server. *You can ignore it safely the first time you get it.* + + ![warning about the unknown fingerprint of the server](images/filezilla_3.png) + +4. Filezilla is now asking the `admin` password to connect to your server. + + ![credential screen asking for the password](images/filezilla_4.png) + +5. Once bookmarked, your server will be backup up and you will get this screen. + + ![View of the "site manager" with the newly server added](images/filezilla_5.png) + +
+ You can now use your new bookmark to connect to the server +
+ +## Usage + +1. Connect to the Site created previously. *Your passwork might be asked again* + + The left panel corresponds to your computer. The right panel corresponds to your remote YunoHost server. You can browse folders and drag-and-drop files between the two panels. + + ![view while connected to a remote server](images/filezilla_6.png) + +2. In the right panel, you can browse to `/home/yunohost.backup/archives/` to find [backup archives](/backup). + + ![path where backups are located on YunoHost](images/filezilla_7.png) + +
+ Be sure to download both the `.tar.gz` and `.json` files. +
+ +![Copy backups from YunoHost to local computer](images/filezilla_8.png) + +---- + +Sources + +* [Official documentation](https://wiki.filezilla-project.org/FileZilla_Client_Tutorial_(en)) +* [General tutorial about using FileZilla](https://www.rc.fas.harvard.edu/resources/documentation/sftp-file-transfer/) + +## Alternatives to Filezilla + +### GNU/Linux + +From any recent GNU/Linux, you should be able to use the `file manager` to reach your server. + +Nautilus from Gnome3 has features similar to FileZilla, out of the box. + +* +* + +### Windows + +* [WinSCP](https://winscp.net/) is also a nice candidate for Windows + +### macOS + +* [Cyberduck](https://cyberduck.io/) is a free software available on macOS diff --git a/filezilla_fr.md b/filezilla_fr.md new file mode 100644 index 00000000..a8b5c8de --- /dev/null +++ b/filezilla_fr.md @@ -0,0 +1,81 @@ +# Échanger des fichiers avec son serveur à l’aide d’une interface graphique + +Cette page explique comment échanger des fichiers (sauvegardes, musiques, photos, films...) avec son serveur à l'aide d'un outil graphique. C'est donc une méthode alternative au fait d'utiliser la commande `scp` qui peut être jugée technique et cryptique, ou de devoir installer Nextcloud. + +[FileZilla](https://filezilla-project.org/) permet d'accomplir cela. Il s'agit d'un logiciel libre disponible pour Windows, GNU/Linux et macOS. + +## Télécharger et installer FileZilla + +Vous pouvez télécharger FileZilla depuis [cette page](https://filezilla-project.org/download.php?type=client). Le site devrait détecter automatiquement la version nécessaire pour votre ordinateur. Sinon, suivez les instructions pour [installer le client](https://wiki.filezilla-project.org/Client_Installation) + +Installez le programme et lancez *Filezilla*. + +## Configuration + +1. Cliquez sur l'icône *Gestionnaire de Sites* en haut à gauche de sorte à crééer une configuration utilisable ultérieurement. + + ![écran principal de Filezilla](images/filezilla_1.png) + +2. Cliquez sur **Nouveau site** et donnez un nom au serveur que vous allez utiliser. Par exemple "Famille". Remplissez les paramètres comme sur la capture d'écran (en remplaçant l'adresse du serveur par la votre). Une fois terminé, cliquez sur **Connexion**. (N.B. : si vous souhaitez éditer les fichiers de l'application [custom webapp](https://github.com/YunoHost-Apps/my_webapp_ynh), il vous faudra utiliser un autre utilisateur que admin. Se référer à la documentation de custom webapp.) + + ![écran du gestionnaire de site](images/filezilla_2.png) + +3. Vous recevrez un avertissement. *Vous pouvez l'ignorer si il s'agit de la première connexion*. + + ![avertissement au sujet de l'empreinte inconnue du serveur](images/filezilla_3.png) + +4. Filezilla vous demande maintenant le mot de passe `admin` pour vous connecter à votre serveur + + ![écran d'identification demandant le mot de passe](images/filezilla_4.png) + +5. Une fois cette configuration créée, elle sera réutilisable les fois suivanteS. + + ![la vue du "gestionnaire de site" avec le nouveau serveur ajouté](images/filezilla_5.png) + +
+ Vous pouvez désormais utiliser cette configuration pour vous connecter. +
+ +## Utilisation + +1. Connectez-vous au Site créé précédemment. *Il se peut que le mot de passe soit redemandé.* + + La partie gauche correspond à votre ordinateur. La partie droite correspond au serveur YunoHost distant. Vous pouvez naviguer dans les dossiers et faire des glisser-déposer entre les deux panneaux. + + ![la vue pendant la connexion à un serveur distant](images/filezilla_6.png) + +2. Dans le panneau de droite, vous pouvez aller dans `/home/yunohost.backup/archives/` pour trouver les archives de [sauvegardes](/backup). + + ![le chemin où les sauvegardes sont situées sur YunoHost](images/filezilla_7.png) + +
+ Assurez-vous de télécharger à la fois le fichier `.tar.gz` et le fichier `.json` +
+ +![Copier les sauvegardes de YunoHost sur l'ordinateur local](images/filezilla_8.png) + +---- + +Sources + +* [Documentation officielle](https://wiki.filezilla-project.org/FileZilla_Client_Tutorial_(fr)) +* [Tutoriel général à Filezilla](https://www.rc.fas.harvard.edu/resources/documentation/sftp-file-transfer/) + +## Alternatives à Filezilla + +### Sous GNU/Linux + +Depuis n'importe quel GNU/Linux récent, vous devriez pouvoir utiliser le gestionnaire de fichiers pour accéder à votre serveur. + +Nautilus de Gnome3 intègre de base des fonctionnalités similaires à FileZilla : + +* +* + +### Sous Windows + +* [WinSCP](https://winscp.net/) est aussi un bon candidat pour Windows + +### Sous macOS + +* [Cyberduck](https://cyberduck.io/) logiciel libre pour macOS diff --git a/finding_the_local_ip.md b/finding_the_local_ip.md new file mode 100644 index 00000000..0d0050e9 --- /dev/null +++ b/finding_the_local_ip.md @@ -0,0 +1,19 @@ +# Finding your server's local IP + +On an installation at home, your server should typically be accessible using the `yunohost.local` domain. If for any reason this does not work, you may need to find the *local* IP of your server. + +The local IP is the address used to refer to your server inside the local network (typically your home) where multiple devices are connected to a router (your internet box). The local IP typically looks like `192.168.x.y` (or sometimes `10.0.x.y`) + +Any of these tricks should allow you to find the local IP of your server: + +- Connect to your internet box / router interface to list the machines connected, or check the logs; +- If you're using Linux, you can open a terminal and use `sudo arp-scan --local` to list the IP on your local network (this may also work in Windows); + - If the `arp-scan` command displays a confusing number of devices, you can check which ones are open to SSH with `nmap -p 22 192.168.1.0/24` to sort them out (adapt the IP range to your local network) +- Plug a screen on your server, log in and type `hostname --all-ip-address`. + +If you are unable to find your server using any of the previous tricks, maybe your server did not boot correctly: + +- Make sure that your server is properly plugged in; +- If you're using an SD card, make sure the connector is not too dusty; +- Plug a screen on your server and try to reboot to check that it's properly booting; +- Make sure that your ethernet cable is working and properly plugged in; diff --git a/finding_the_local_ip_fr.md b/finding_the_local_ip_fr.md new file mode 100644 index 00000000..5ccf0269 --- /dev/null +++ b/finding_the_local_ip_fr.md @@ -0,0 +1,19 @@ +# Trouver l'IP locale de son serveur + +Dans le cas d'une installation à la maison, votre serveur devrait typiquement être accessible (depuis son réseau local) avec le domaine `yunohost.local`. Si pour une raison cela ne fonctionne pas, il vous faut peut-être trouver l'IP locale de votre serveur. + +L'IP locale d'une machine est utilisée pour y faire référence à l'intérieur d'un réseau local (typiquement le réseau dans une maison) où plusieurs appareils se connectent à un même routeur (votre box internet). Une adresse IP locale ressemble généralement à `192.168.x.y` (ou parfois `10.0.x.y`) + +L'une de ces astuces devrait permettre de trouver l'IP locale de votre serveur : + +- Utilisez l'interface de votre box internet pour lister les machines connectées, ou regarder les logs ; +- Si vous êtes sous Linux, ouvrez un terminal et tapez `sudo arp-scan --local` pour lister les IP des machines sur le réseau local (ceci fonctionne aussi peut-être sous Windows) ; + - Si la commande `arp-scan` vous affiche beaucoup de machines, vous pouvez vérifier lesquelles sont ouvertes au SSH avec `nmap -p 22 192.168.1.0/24` pour faire du tri (adaptez la plage IP selon votre réseau local) +- Branchez un écran sur votre serveur, loggez-vous et tapez `hostname --all-ip-address`. + +Si vous n'êtes pas capable de trouver votre serveur avec les méthodes précédentes, alors peut-être que votre serveur n'a pas démarré correctement + +- Assurez-vous que le serveur est correctement branché ; +- Si votre serveur a une carte SD, essayez de vous assurer que la connectique n'est pas trop poussièreuse ; +- Branchez un écran sur le serveur et essayez de le redémarrer pour valider que le serveur démarre bien ; +- Assurez-vous que le cable ethernet est fonctionnel et correctement branché ; diff --git a/groups_and_permissions.md b/groups_and_permissions.md new file mode 100644 index 00000000..b75831c0 --- /dev/null +++ b/groups_and_permissions.md @@ -0,0 +1,183 @@ +# User groups and permissions + +You can access the *groups and permissions* management interface from the webadmin +by going into the 'Users' section and clicking the corresponding button: + +![](./images/button_to_go_to_permission_interface.png) + +## Managing groups + +The group mechanism can be used to define groups of users which then can be used to restrict permissions for applications and other services (such as mail or XMPP). Note that it is *not* mandatory to create a group to do so: you can also restrict access to an app or service on a user-per-user basis. + +Using groups is however useful for semantics, for example if you host multiple groups of friends, associations or businesses on your server, you might want to create groups like `association1` and `association2` and add members of each association to the relevant group. + +### Default groups + +By default, two special groups are created: +- `all_users`, that contain all users registered on YunoHost, +- `visitors`, that applies to people viewing the server while not logged in. + +The content of those groups cannot be changed, only the permissions given to them. + +### List existing groups + +The existing groups are listed at the top of the *groups and permissions* page. + +![](./images/groups_default-groups.png) + +To list the currently existing groups in CLI : + +```shell +$ yunohost user group list +groups: + all_users: + members: + - alice + - bob + - charlie + - delphine +``` + + +### Creating a new group + +To create a new group, simply click on the "New Group" button at the top of the page. You may only choose a name formed with letters (uper- and lowercase) and spaces. The group is created empty and without any permission. + +![](./images/groups_button-new-group.png) + +In CLI, to create a new group called `yolo_crew` + +```shell +$ yunohost user group create yolo_crew +``` + +### Updating a group + +Let's add a first to this group: in the group panel, click the button "add a user" and scroll to the desired user, then click on it. + +![](./images/groups_button-add-user.png) + +To remove a user, click on the cross next to their username, in the group panel. + +![](./images/groups_button-remove-user.png) + +In CLI, use the following command to add `charlie` and `delphine`to the `yolo_crew` group: + +```shell +$ yunohost user group update yolo_crew --add charlie delphine +``` + +(similarly, `--remove` can be used to remove members from a group) + +Now in the group list we should see: + +```shell +$ yunohost user group list +groups: + all_users: + members: + - alice + - bob + - charlie + - delphine + yolo_crew: + members: + - charlie + - delphine +``` + +### Deleting groups + +To delete a group, click on the red cross on the top right of the group panel. You will be asked for confirmation. + +![](./images/groups_button-delete-group.png) + +To delete the group `yolo_crew` in CLI, you may run + +```shell +$ yunohost user group delete yolo_crew +``` + +## Managing permissions + +The permission mechanism allow to restrict access to services (for example mail, XMPP...) and apps, or even specific parts of the apps (for example the administration interface of WordPress). + +### List permissions + +The groups page lists the permissions given to each group, including the special groups `all_users` and `visitors`. + +![](./images/groups_default-with-permissions.png) + +To list permissions and corresponding accesses in CLI: + +```shell +$ yunohost user permission list +permissions: + mail.main: + allowed: all_users + wordpress.admin: + allowed: + wordpress.main: + allowed: all_users + xmpp.main: + allowed: all_users +``` + +Here, we find that all registered users can use email, XMPP, and access the WordPress blog. However, nobody can access the WordPress admin interface. + +More details can be displayed by adding the `--full` option which will display the list of users corresponding to groups allowed, as well as urls associated to a permission (relevant for web apps). + +### Add accesses to group or users + +To add a permission to a group, simply click the "+" button in the group panel, scroll to the desired permission, then click on it. + +![](./images/groups_add-permission-group.png) + +To allow a group to access the WordPress admin interface in CLI: + +```shell +$ yunohost user permission update wordpress.admin --add yolo_crew +``` + +Note that you can also allow a single user, by using the specific panel at the bottom of the page. + +![](./images/groups_add-permission-user.png) + +or in CLI: + +```shell +$ yunohost user permission update wordpress.admin --add alice +``` + +And now we may see that both the YoloCrew and Alice have access to the WordPress admin interface: + +```shell +$ yunohost user permission list + [...] + wordpress.admin: + allowed: + - yolo_crew + - alice + [...] +``` + +Note that, for example, if we want to restrict permission for email so that only Bob is allowed to email, we should also remove `all_users` from the permission, by deleting it from the `all_users` group panel, or in CLI: + +```shell +$ yunohost user permission update mail --remove all_users --add bob +``` + +Note that some permissions may be "protected", meaning that you won't be able to add/remove the visitor group to this permission. Generally, this is because it would make no sense (or is a security risk) to do so. + +The webadmin will issue a warning if you set a permission that is superseeded by a wider permission. + +![](./images/groups_alerte-permission.png) + +### Hide/display specific tiles in the user portal + +Since YunoHost 4.1, you can choose to hide/display specific tiles in the SSO. In the webadmin, you can do so by going in the corresponding app view, go in "Manage label and tiles" and check/uncheck the option "Display the tile in the user portal" for the corresponding permission. In command line, this may be done with: + +```shell +# Enable the tile for the WordPress admin interface +$ yunohost user permission update wordpress.admin --show_tile True +``` diff --git a/groups_and_permissions_fr.md b/groups_and_permissions_fr.md new file mode 100644 index 00000000..6e4f76b7 --- /dev/null +++ b/groups_and_permissions_fr.md @@ -0,0 +1,180 @@ +# Groupes et permissions + +Vous pouvez accéder à l'interface de gestion des *groupes et des permissions* depuis la webadmin +en allant dans la section "Utilisateurs" et en cliquant sur le bouton correspondant : + +![](./images/button_to_go_to_permission_interface_fr.png) + +## Gestion des groupes + +Le mécanisme de groupe peut être utilisé pour définir des groupes d'utilisateurs qui peuvent ensuite être utilisés pour restreindre les autorisations pour les applications et autres services (tels que l'email ou XMPP). Notez qu'il n'est *pas* obligatoire de créer un groupe pour ce faire : vous pouvez également restreindre l'accès à une application ou à un service de manière individuelle. + +L'utilisation de groupes est cependant utile pour la sémantique, par exemple si vous hébergez plusieurs groupes d'amis, des associations ou des entreprises sur votre serveur, vous pouvez créer des groupes comme "association1" et "association2" et ajouter les membres de chaque association au groupe concerné. + + +### Groupes par défaut +Par défaut, deux groupes spéciaux sont créés : +- `all_users`, qui contient tous les utilisateurs enregistrés sur YunoHost, +- `visitors`, c'est-à-dire les personnes qui consultent le serveur sans être connectées. + +Vous ne pouvez pas changer le contenu de ces groupes, seulement les permissions qui leur sont accordées. + +### Lister les groupes existants +Les groupes existants sont listés en haut de la page *groupes et autorisations*. + +![](./images/groups_default-groups.png) + +Pour obtenir la liste des groupes existants en CLI : + + +```shell +$ yunohost user group list +groups: + all_users: + members: + - alice + - bob + - charlie + - delphine +``` + +### Créer un nouveau groupe +Pour créer un nouveau groupe, il suffit de cliquer sur le bouton "Nouveau groupe" en haut de la page. Vous ne pouvez choisir qu'un nom formé de lettres (majuscules et minuscules) et d'espaces. Le groupe est créé vide et sans aucune permissions. + +![](./images/groups_button-new-group.png) + +Dans la CLI, pour créer un nouveau groupe appelé `yolo_crew`, il faut utiliser + +```shell +$ yunohost user group create yolo_crew +``` + +### Mettre à jour un groupe +Ajoutons un premier utilisateur à ce groupe : dans le panneau du groupe, cliquez sur le bouton "ajouter un utilisateur" et faites défiler jusqu'à l'utilisateur souhaité, puis cliquez dessus. + +![](./images/groups_button-add-user.png) + +Pour supprimer un utilisateur, cliquez sur la croix à côté de son nom d'utilisateur, dans le panneau du groupe. + +![](./images/groups_button-remove-user.png) + +En CLI, utilisez la commande suivante pour ajouter `charlie` et `delphine` au groupe `yolo_crew` : + +```shell +$ yunohost user group update yolo_crew --add charlie delphine +``` + +(De même, `--remove` peut être utilisé pour retirer des membres d'un groupe) + +Dans la liste des groupes, nous devrions voir : + +```shell +$ yunohost user group list +groups: + all_users: + members: + - alice + - bob + - charlie + - delphine + yolo_crew: + members: + - charlie + - delphine +``` + +### Supprimer un groupe + +Pour supprimer un groupe, cliquez sur la croix rouge en haut à droite du panneau du groupes. Une confirmation vous sera demandée. + +![](./images/groups_button-delete-group.png) + +Pour supprimer le groupe `yolo_crew` dans CLI, vous pouvez exécuter + +```shell +$ yunohost user group delete yolo_crew +``` + +## Gestion des permissions + +Le mécanisme de permissions permet de restreindre l'accès aux services (par exemple mail, XMPP...) et aux applications, ou même à des parties spécifiques des applications (par exemple l'interface d'administration de WordPress). + +### Liste des permissions + +La page des groupes liste les permissions données à chaque groupe, y compris les groupes spéciaux `all_users` et `visitors`. + +![](./images/groups_default-with-permissions.png) + +Pour répertorier les permissions et les accès correspondants en CLI : +```shell +$ yunohost user permission list +permissions: + mail.main: + allowed: all_users + wordpress.admin: + allowed: + wordpress.main: + allowed: all_users + xmpp.main: + allowed: all_users +``` +Ici, nous constatons que tous les utilisateurs enregistrés peuvent utiliser le courrier électronique, XMPP, et accéder au blog WordPress. Cependant, personne ne peut accéder à l'interface d'administration de WordPress. + +Plus de détails peuvent être affichés en ajoutant l'option `--full` qui affichera la liste des utilisateurs correspondant aux groupes autorisés, ainsi que les urls associées à une permission (pertinent pour les applications web). + +### Ajouter des permissions à un groupe ou un utilisateur + +Pour ajouter une permission à un groupe, il suffit de cliquer sur le bouton "+" dans le panneau du groupe, de faire défiler jusqu'à la permission souhaitée, puis de cliquer dessus. + +![](./images/groups_add-permission-group.png) + +Pour permettre à un groupe d'accéder à l'interface d'administration de WordPress via la CLI : + +```shell +$ yunohost user permission update wordpress.admin --add yolo_crew +``` + +Notez que vous pouvez également autoriser un seul utilisateur, en utilisant le panneau spécifique en bas de la page. + +![](./images/groups_add-permission-user.png) + +ou en CLI : + +```shell +$ yunohost user permission update wordpress.admin --add alice +``` + +Et maintenant, nous pouvons voir que YoloCrew et Alice ont tous deux accès à l'interface d'administration de WordPress : + +```shell +$ yunohost user permission list + [...] + wordpress.admin: + allowed: + - yolo_crew + - alice + [...] +``` + +Notez que, par exemple, si nous voulons restreindre la permission pour le courrier électronique +afin que seul Bob soit autorisé à envoyer des courriels, nous devons également supprimer `all_users` +de la permission, en la supprimant du panneau de groupe `all_users`, ou en CLI : + +```shell +$ yunohost user permission update mail --remove all_users --add bob +``` + +Notez que certaines permissions peuvent être "protégées", ce qui signifie que vous ne pourrez pas l'ajouter/enlever du groupe visiteur. Ce mécanisme est généralement là car ajouter/enlever la permission au groupe utilisateur n'a pas de sens (ou est un risque de sécurité). + +La webadmin émettra un avertissement si vous définissez une permission qui est remplacée par une permission plus large. + +![](./images/groups_alerte-permission.png) + +### Montrer/cacher les tuiles dans le portail utilisateur + +Depuis YunoHost 4.1, il est possible de montrer/cacher certaines tuiles dans le portail. Depuis la webadmin, vous pouvez changer cela en allant dans la vue de l'application à manipuler, puis dans "Gérer les étiquettes et les tuiles", et cocher/décocher l'option "Montrer la tuile dans le portail utilisateur" pour la permission correspondante. En ligne de commande, le même genre de chose peut être fait avec : + +```shell +# Activer la tuile pour l'interface d'admin de WordPress +$ yunohost user permission update wordpress.admin --show_tile True +``` diff --git a/guidelines.md b/guidelines.md new file mode 100644 index 00000000..25873591 --- /dev/null +++ b/guidelines.md @@ -0,0 +1,47 @@ +# Advices and guidelines + +This page lists a few advices and guidelines which every YunoHost administrator should be aware to take care of a YunoHost server :). + +## Do not break YunoHost + +To put it another way: your server is either a production server (meant to work) or a test server on which you allow yourself to experiment. + +If your goal is to run a production server: +- be aware that servers are fragile system. Stay cautious, methodical and patient; +- limit experimentations and customizations (for instance of config file); +- do not install dozens of apps just to see how they look; +- use non-official apps with caution, and do not use apps that are still 'in progress', 'not working' or level 0; +- if something gets broken, think twice about fixing it by yourself if you don't know what you are doing. (For instance, do not attempt to recreate yourself the admin user just because it mysteriously disappeared...) + +## Keep it simple! + +YunoHost is designed to work with general and simple use cases in mind. Deviating from those conditions will make things harder and you will need technical knowledge to make it work. For instance, +- do not try to run YunoHost in a context where you cannot have control over ports 80 and 443 (or no internet at all); +- do not try to host five servers behind the same internet connection if you are not already an advanced user; +- do not fall into nerd whims such as willing to replace NGINX by Apache (or run both at the same time); +- do not try to use custom SSL certificates if you don't really need them; +- ... + +Keep things as simple as you can! + +## Do not reinstall every day + +Some people tend to fall into "the reinstallation spiral" - where each time something breaks in the server and it is not obvious how to fix it, or because the server became "dirty", one ends up reinstalling the whole server from scratch because it looks like an "easy" and quick solution to clean the table. + +Please don't do this. Reinstalling is a heavy operation and is not a good long-term strategy for fixing problems. You will get tired and won't learn anything. Forget the dream of having a "clean" server. A real-life server always end up being a bit "dirty". Also, you need to (progressively) learn how to solve issues when you encounter them. Reach for [help](/help) with detailed symptoms of what you are trying to do and what is happening, and fix the issues. Over time, you will get a much better control over your server than just blindly reinstalling every time. + +## Do backups + +If you host services and data that are important for your users, it is important that you setup a backup policy. Backups can be easily created from the webadmin - though they currently cannot be downloaded from it (but it can be downloaded through other means). You should perform backup regularly and keep them in a safe and different physical location from your server. More info on [the backup documentation](/backup). + +## Check root’s email + +As an administrator, you should configure an email client to check emails sent to `root@your.domain.tld` (which should be an alias to the first user your added) or otherwise forward them to another address that you actively check. Those mails may contain information on what is happening on your server such as automated periodic tasks. + +## YunoHost is free software, maintained by volunteers + +Finally, keep in mind that YunoHost is a free software maintained by volunteers - and that the goal of YunoHost (to democratize self-hosting) is not an easy one! It is provided without any warranty. The team of volunteers does its best to maintain and provide the best possible experience - yet features, applications and YunoHost as a whole are far from being perfect and you will experience small and big shortcomings at some points. When this happens, kindly [reach for help on the chat or forum, or report the issue](/help)! :) + +If you like YunoHost and want to see the project being kept alive and make progress, feel free to leave a thank you note and to [donate](https://liberapay.com/YunoHost) to the project and talk about it around you! + +Last but not least, since YunoHost is a free software project, you are legitimate and welcomed to come and [contribute](/contribute) to the project, be it on the technical aspects (i.e. code) and less-technical aspects (such as contributing to this documentation! ;)) diff --git a/guidelines_fr.md b/guidelines_fr.md new file mode 100644 index 00000000..c26fb6ef --- /dev/null +++ b/guidelines_fr.md @@ -0,0 +1,47 @@ +# Conseil généraux + +Cette page énumère quelques conseils et lignes directrices que tout administrateur de YunoHost devrait connaître pour prendre soin de son serveur :). + +## Ne cassez pas YunoHost + +En d'autres termes : votre serveur est soit un "serveur de production" (destiné à fonctionner), soit un serveur de test sur lequel vous vous permettez d'expérimenter. + +Si votre but est d'avoir un serveur de production : +- soyez conscient qu'un serveur est un système fragile : restez prudent, méthodique et patient ; +- limitez les expérimentations et la personnalisation - notamment des fichiers de config ; +- n'installez pas des douzaines d'applications juste pour voir de quoi elles ont l'air ; +- utilisez les applications non-officielles avec prudence, et interdisez vous d'utiliser celles 'in progress', 'not working' ou qui on un niveau 0 ; +- si quelque chose casse, réfléchissez à deux fois avant de tenter de le réparer vous-même si vous ne savez pas ce que vous faites. (Par exemple, n'essayez pas de recréer vous-même l'utilisateur admin juste parce qu'il a mystérieusement disparu...) + +## Keep it simple ! + +YunoHost est conçu pour fonctionner avec des cas d'utilisation généraux et simples. S'écarter de ces conditions rendra les choses plus difficiles et vous aurez besoin de connaissances techniques pour les faire fonctionner. Par exemple, +- n'essayez pas d'exécuter YunoHost dans un contexte où vous ne pouvez pas avoir le contrôle des ports 80 et 443 (ou pas d'Internet du tout) ; +- n'essayez pas d'héberger cinq serveurs derrière la même connexion Internet si vous n'êtes pas déjà un utilisateur avancé ; +- ne tombez pas dans des caprices de nerd tels que vouloir remplacer NGINX par Apache (ou faire tourner les deux à la fois) ; +- n'essayez pas d'utiliser des certificats SSL personnalisés si vous n'en avez pas vraiment besoin ; +- ... + +Gardez les choses aussi simples que possible ! + +## Ne réinstallez pas tous les jours + +Certaines personnes ont tendance à tomber dans la "spirale de la réinstallation" - où chaque fois que quelque chose casse dans le serveur et qu'il n'est pas évident comment le réparer, ou parce que le serveur est devenu "sale", l'administrateur finit par réinstaller le serveur entier à partir de zéro car cela semble une solution "facile" et rapide pour remettre les choses à plat. + +Ne faites pas ça. La réinstallation est une opération lourde et n'est pas une bonne stratégie à long terme pour résoudre les problèmes. Vous vous fatiguerez et n'apprendrez rien. Oubliez le rêve d'avoir un serveur "propre" : un serveur de la vraie vie fini toujours par être "sale". De plus, vous devez apprendre (progressivement) à résoudre les problèmes lorsque vous les rencontrez. [Demandez de l'aide](/help) en fournissant des détails sur les symptômes, ce que vous essayez de faire et de ce qu'il se passe, et corrigez les problèmes. Avec le temps, vous aurez un bien meilleur contrôle sur votre serveur plutôt que réinstaller aveuglément à chaque fois. + +## Faites des sauvegardes + +Si vous hébergez des services et des données qui sont importants pour vos utilisateurs, il est important que vous mettiez en place une politique de sauvegarde. Les sauvegardes peuvent être facilement créées à partir de l'interface d'administration web - bien qu'elles ne puissent actuellement pas être téléchargées à partir de celle-ci (mais elles peuvent être téléchargées par d'autres moyens). Vous devez effectuer régulièrement des sauvegardes et les conserver dans un endroit sûr et physiquement différent de votre serveur. Plus d'infos dans [la documentation des sauvegardes](/backup). + +## Lisez les emails envoyés à root + +En tant qu'administrateur, vous devriez configurer un client de messagerie pour vérifier les e-mails envoyés à `root@your.domain.tld` (qui doit être un alias pour le premier utilisateur que vous avez ajouté) ou les transférer à une autre adresse que vous vérifiez activement. Ces courriels peuvent contenir des informations sur ce qui se passe sur votre serveur, comme les tâches périodiques automatisées. + +## YunoHost est un logiciel gratuit, maintenu par des bénévoles. + +Enfin, gardez à l'esprit que YunoHost est un logiciel libre maintenu par des volontaires - et que le but de YunoHost (démocratiser l'auto-hébergement) n'est pas simple ! Le logiciel n'est fourni sans aucune garantie. L'équipe de bénévoles fait de son mieux pour maintenir et fournir la meilleure expérience possible - pourtant les fonctionnalités, les applications et YunoHost dans son ensemble sont loin d'être parfaits et vous ferez face tôt ou tard à de petit ou gros problèmes. Lorsque cela se produit, venez gentiment [demander de l'aide sur le chat ou le forum, ou signaler le problème](/help) :) ! + +Si vous aimez YunoHost et que vous voulez que le projet soit maintenu en vie et progresse, n'hésitez pas à laisser une note de remerciement et à [faire un don](https://liberapay.com/YunoHost) au projet et à en parler autour de vous ! + +Pour finir, puisque YunoHost est un projet de logiciel libre, vous êtes légitime et bienvenu pour [venir contribuer](/contribute) au projet, que ce soit sur les aspects techniques (c.-à-d. code) et moins techniques (comme par exemple contribuer à cette documentation ;)) ! diff --git a/hardware.md b/hardware.md new file mode 100644 index 00000000..017d16ee --- /dev/null +++ b/hardware.md @@ -0,0 +1,14 @@ +# Hardware + +YunoHost can be installed on the following hardware: +- ARM boards (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.); +- 'Old' desktop computers or laptops; +- Remote servers, a.k.a Virtual Private Servers (VPS). + +Corresponding installation guides can be found on [this page](/install). + +### Minimum requirements + +* 500 MHz CPU +* 512 MB RAM (recommended : 1 GB in order to run all the services and apps properly) +* 8 GB storage capacity (recommended : 32 GB to store mails and documents) diff --git a/hardware_de.md b/hardware_de.md new file mode 100644 index 00000000..198f0ee6 --- /dev/null +++ b/hardware_de.md @@ -0,0 +1,14 @@ +# Hardware + +YunoHost kann auf folgender Hardware installiert werden: +- ARM Boards (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.) ; +- 'Alte' Desktop Computer oder Laptops/Notebooks ; +- Remote servers, auch bekannt als Virtual Private Servers (VPS). + +Entsprechende Installationsanleitungen finden Sie auf [dieser Seite](/install). + +### Minimale Voraussetzungen + +* 500 MHz CPU +* 512 MB RAM (empfohlen : 1 GB um alle Apps und Programme schnell ausführen zu können) +* 8 GB Speicher/HDD (empfohlen : 32 GB bei Nutzung als Mail oder Dokumentenserver) diff --git a/hardware_es.md b/hardware_es.md new file mode 100644 index 00000000..10b21f70 --- /dev/null +++ b/hardware_es.md @@ -0,0 +1,14 @@ +# Hardware + +YunoHost puede ser instalado en este hardware : +- Tarjetas ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.) ; +- 'Viejos' ordenadores de escritorio ou portátiles ; +- Servidores remotos, también llamado Virtual Private Servers (VPS). + +Los guías de instalación se encuentran en [esta página](/install). + +### Configuración minimal + +* Procesador 500 MHz +* 512 Mo de RAM (recomendado : 1Go para que los servicios y las aplicaciones funcionen correctamente +* 8 Go de espacio de almacenamiento (recomendado : 32 Go para poder almacenar emails y documentos) diff --git a/hardware_fr.md b/hardware_fr.md new file mode 100644 index 00000000..9301fd69 --- /dev/null +++ b/hardware_fr.md @@ -0,0 +1,14 @@ +# Matériel + +YunoHost peut être installé sur les types de matériel suivants : +- Cartes ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.) ; +- 'Vieux' ordinateurs de bureau ou portables ; +- Serveurs distants, aussi appelé Virtual Private Servers (VPS). + +Les guides d'installations peuvent être trouvés sur [cette page](/install). + +### Configuration minimale + +* Processeur 500 MHz +* 512 Mo de RAM (recommandé : 1 Go pour pouvoir faire tourner les services et applications correctement) +* 8 Go d'espace de stockage (recommandé : 32 Go pour pouvoir stocker emails et documents) diff --git a/help.md b/help.md new file mode 100644 index 00000000..9e1f0be5 --- /dev/null +++ b/help.md @@ -0,0 +1,59 @@ +# Looking for help? + +

Connect to the support chatroom

+
+
+ProTips™ +
    +
  • Don't ask to ask, just ask !
  • +
  • Be patient, it can take a few minutes before someone sees your messages.
  • +
+
+ + + +
+
+Note : this room is available via IRC (#yunohost on freenode - using kiwiirc), via XMPP (support@conference.yunohost.org), or Matrix (#freenode_#yunohost:matrix.org - using Riot) +
+ +

... or ask on the forum !

+ +
+ +
+ +

You've found a bug ?

+ +
+
+Please report it on our bugtracker or contact the developers

+ + +
+
+Note : you can also connect to the devrooms, using your favorite XMPP client, to
+dev@conference.yunohost.org and apps@conference.yunohost.org
+or with a Matrix client to
+#freenode_#yunohost-dev:matrix.org
+
+ + + diff --git a/help_ar.md b/help_ar.md new file mode 100644 index 00000000..26a2b558 --- /dev/null +++ b/help_ar.md @@ -0,0 +1,68 @@ +#
هل تبحث عن مساعدة ؟
+ +

إتصل بغرفة المساعدة

+
+
+ProTips™ +
    +
  • لا تطرح سؤالا لمُجرّد الطرح، بل إطرح سؤالك !
  • +
  • تحلّى بالصبر، في بعض الأحيان يمكن أن تمر بضع دقائق قبل أن يرى أحد المستخدمين سؤالك.
  • +
+
+
الإسم المستعار : +
+ + + +
+
+
+ملاحظة : يمكن الإتصال كذلك بغرفة المحادثة باستخدام تطبيق XMPP الخاص بك على العنوان التالي
+support@conference.yunohost.org
+kiwiirc باستخدام freenode على #yunohost IRC أو
+Riot باستخدام Matrix أو
+
+
+
+ +

... أو إطرح سؤالك في المنتدى !

+ +
+
+ +
+ +

هل إكتشفت علة أو خللًا ؟

+ +
+
+يرجى الإبلاغ عن المشاكل على أداة متعقّب الأخطاء الخاصة بالمشروع أو إتصل بالمطوّرين

+
+ + + +
+
+
+
+ملاحظة : يمكن الإتصال كذلك بغرفة التطوير باستخدام تطبيق XMPP الخاص بك على العناوين التالية
+dev@conference.yunohost.org and apps@conference.yunohost.org
+
+ + diff --git a/help_fr.md b/help_fr.md new file mode 100644 index 00000000..8e1290c2 --- /dev/null +++ b/help_fr.md @@ -0,0 +1,61 @@ +# Besoin d’aide ? + +

Connectez-vous au salon de support

+
+
+ProTips™ +
    +
  • Pas besoin de demander si vous pouvez poser une question - posez-la directement !
  • +
  • Soyez patient, cela peut prendre plusieurs minutes avant que quelqu'un remarque vos messages.
  • +
+
+ + + +
+
+Note : ce salon est accessible via IRC (#yunohost sur freenode en utilisant Kiwiirc), via XMPP (support@conference.yunohost.org), ou Matrix (#freenode_#yunohost:matrix.org - en utilisant Element). +
+ +

... ou demandez sur le forum !

+ +
+ +
+ +

Vous avez trouvé un bug ?

+ +
+
+Vous pouvez rapporter le bug sur le bugtracker ou contacter les développeurs

+ + +
+
+Note : vous pouvez aussi vous connecter aux salons de dev, via votre client XMPP favori, à
+dev@conference.yunohost.org et apps@conference.yunohost.org
+ou bien via votre client matrix préféré, à
+#freenode_#yunohost-dev:matrix.org
+
+ + + diff --git a/help_it.md b/help_it.md new file mode 100644 index 00000000..ab7a10bd --- /dev/null +++ b/help_it.md @@ -0,0 +1,57 @@ +# Cerchi aiuto? + +

Connettiti alla chat di supporto

+
+
+ProTips™ +
    +
  • Non c'è bisogno di chiedere se puoi chiedere qualcosa, chiedi e basta !
  • +
  • Sii paziente, potrebbero servire alcuni minuti prima che qualcuno veda i tuoi messaggi.
  • +
+
+ + + +
+
+Nota : questa stanza e disponibile via IRC (#yunohost su freenode - usando kiwiirc), via XMPP (support@conference.yunohost.org), o Matrix (#freenode_#yunohost:matrix.org - usando Riot) +
+ +

... o chiedi nel forum !

+ +
+ +
+ +

Hai trovato un problema ?

+ +
+
+Per favore segnalalo nel nostro bugtracker o contatta gli sviluppatori

+ + +
+
+Nota : puoi anche connetterti alla stanza degli sviluppatori, utilizzando il tuo client XMPP preferito, su
+dev@conference.yunohost.org e apps@conference.yunohost.org
+
+ + + diff --git a/howtohostyourself.md b/howtohostyourself.md new file mode 100644 index 00000000..b6ea7d0f --- /dev/null +++ b/howtohostyourself.md @@ -0,0 +1,83 @@ +# How to host yourself? + +You can host yourself at home (on a small computer), or on a remote server. Each solution has their pros and cons: + +### At home, for instance on an ARM board or an old computer + +You can host yourself at home with an ARM board or a re-purposed regular computer, connected to your home router/box. + +- **Pros** : you will have physical control of the machine and only need to buy the hardware; +- **Cons** : you will have to [manually configure your internet box](isp_box_config) and [might be limited by your ISP](isp). + +### At home, behind a VPN + +A VPN is an encrypted tunnel between two machines. In practice, it makes it "as if" you were directly, locally, connected to your server machine, but actually from somewhere else on the Internet. This allows you to still host yourself at home, while bypassing possible limitations of your ISP. See also [the Internet Cube project](https://internetcu.be/) and [the FFDN](https://www.ffdn.org/). + +- **Pros** : you will have physical control of the machine, and the VPN hides your traffic from your ISP and allows you to bypass its limitations; +- **Cons** : you will have to pay a monthly subscription for the VPN. + +### On a remote server (VPS or dedicated server) + +You can rent a virtual private server or a dedicated machine from [associative](https://db.ffdn.org/) or commercial "Cloud" providers. + +- **Pros** : your server and its internet connectivity will be fast; +- **Cons** : you will have to pay a monthly subscription and won't have physical control of your server. + +### Summary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
At home
(e.g. ARM board, old computer)
At home
behind a VPN
On a remote server
(VPS or dedicated)
Hardware costAbout 50€
(e.g. a Raspberry Pi)
None
Monthly costNegligible
(electricity)
Around 5€
(VPN)
Starting at ~3€
(VPS)
Physical control
of the machine
YesYesNo
Manual port
routing required
YesNoNo
Possible ISP limitationsYes
(see [here](/isp))
Bypassed by VPNTypically no
CPUTypically ~1 GHz~2 GHz
(Digital Ocean droplet)
RAMTypically 500 Mb or 1 GbRelated to server cost
Internet connectivityDepends on home connectivityTypically pretty good
diff --git a/howtohostyourself_de.md b/howtohostyourself_de.md new file mode 100644 index 00000000..d764b8e3 --- /dev/null +++ b/howtohostyourself_de.md @@ -0,0 +1,83 @@ +# So hosten Sie selbst ? + +Sie können zu Hause (auf einem kleinen Computer) oder auf einem Remote-Server hosten. Jede Lösung hat ihre Vor- und Nachteile: + +### Zu Hause, zum Beispiel auf einem Einplatinencomputer oder einem alten Computer + +Sie können zu Hause mit einem Einplatinencomputer oder einem überarbeiteten regulären Computer, der mit Ihrem Heimrouter verbunden ist, hosten. + +- **Pros** : Sie haben die physische Kontrolle über die Maschine und müssen nur die Hardware kaufen; +- **Cons** : Sie müssen [Ihre Internet-Router manuell konfigurieren](isp_box_config) und [sind möglicherweise von Ihrem Internet-Service-Provider eingeschränkt](isp). + +### Zu Hause hinter einem VPN + +Ein VPN ist ein verschlüsselter Tunnel zwischen zwei Computern. In der Praxis sieht es so aus, als ob Sie direkt vor Ort mit Ihrem Server verbunden wären, aber tatsächlich verbinden Sie sich von einem anderen Ort im Internet. Auf diese Weise können Sie weiterhin zu Hause hosten und gleichzeitig mögliche Einschränkungen Ihres Internetdienstanbieters umgehen. Siehe auch [das Internet Cube-Projekt](https://internetcu.be/) und [der FFDN](https://www.ffdn.org/). + +- **Pros** : Sie haben die physische Kontrolle über den Computer, und das VPN verbirgt Ihren Datenverkehr vor Ihrem ISP und ermöglicht es Ihnen, seine Einschränkungen zu umgehen; +- **Cons** : Sie müssen ein monatliches Abonnement für das VPN bezahlen. + +### Auf einem Remote-Server (VPS oder dedizierter Server) + +Sie können einen virtuellen privaten Server oder eine dedizierte Maschine von [associative](https://db.ffdn.org/) oder von anderen kommerziellen "Cloud"-Anbietern mieten. + +- **Pros** : Ihr Server und seine Internetverbindung sind schnell; +- **Cons** : Sie müssen ein monatliches Abonnement bezahlen und haben keine physische Kontrolle über Ihren Server. + +### Summary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Zu Hause
(z.B. Einplatinencomputer, alter Computer)
Zu Hause
hinter einem VPN
Auf einem Remote-Server
(VPS oder dediziert)
Hardware Kostenetwa 50€
(z.B. ein Raspberry Pi)
keine
Monatliche KostenUnerheblich
(Stromkosten)
etwa 5€
(VPN)
ab ~3€
(VPS)
Physikalische Kontrolle
der Machine
JaJaNein
Manuelles Port
Routing erforderlich
JaNeinNein
Mögliche ISP-EinschränkungenJa
(siehe [hier](/isp))
Per VPN umgangenNormalerweise nein
CPUTypischerweise ~1 GHz~2 GHz
(Digital Ocean droplet)
RAMIn der Regel 500 MB oder 1 GBabhängig von den Serverkosten
InternetverbindungHängt von Ihrer Internetverbindung abNormalerweise ziemlich gut
diff --git a/howtohostyourself_fr.md b/howtohostyourself_fr.md new file mode 100644 index 00000000..497dee37 --- /dev/null +++ b/howtohostyourself_fr.md @@ -0,0 +1,83 @@ +# Choisir son mode d’autohébergement + +Vous pouvez vous auto-héberger à la maison (sur un petit ordinateur), ou sur un serveur distant. Chaque solution a ses avantages et inconvénients : + +### À la maison, par exemple sur une carte ARM ou un ancien ordinateur + +Vous pouvez vous héberger chez vous, sur une carte ARM ou un vieil ordinateur, connecté à votre box internet. + +- **Avantages** : vous aurez un contrôle physique sur la machine et avez seulement besoin d'acheter le matériel initial ; +- **Inconvénients** : il vous faudra [configurer manuellement votre box internet](isp_box_config) et serez possiblement [limité par certains aspects de votre fournisseur d'accès internet](isp). + +### À la maison, derrière un VPN + +Un VPN est un tunnel chiffré entre deux machines. En pratique, cela permet de faire "comme si" une machine était connectée depuis ailleurs. Ceci permet de s'auto-héberger à la maison tout en contournant les limitations du fournisseur d'accès internet. Voir aussi [le projet Brique Internet](https://labriqueinter.net/) et [la FFDN](https://www.ffdn.org/). + +- **Avantages** : vous aurez un contrôle physique sur la machine, et le VPN permettra de cacher votre trafic vis-à-vis de votre FAI ainsi que de contourner ses limitations ; +- **Inconvénients** : il vous faudra payer des frais mensuels pour le VPN. + +### Sur un serveur distant (VPS ou serveur dédié) + +Vous pouvez louer un serveur privé virtuel ou une machine dédiée à des hébergeurs [associatifs](https://db.ffdn.org/) ou commerciaux. + +- **Avantages** : votre serveur sera rapide et la connectivité internet sera bonne ; +- **Inconvénients** : il vous faudra payer des frais mensuels pour la machine, et vous n'aurez pas de contrôle physique dessus. + +### Résumé + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
À la maison
(e.g. carte ARM, vieil ordi)
À la maison
derrière un VPN
Sur un serveur distant
(VPS ou dédié)
Coût matérielAutour de 50€
(e.g. un Raspberry Pi)
Aucun
Coût mensuelNégligeable
(electricité)
Autour de 5€
(VPN)
À partir de ~3€
(VPS)
Contrôle physique
sur la machine
OuiOuiNon
Routage manuel
des ports
OuiNonNon
Limitation possibles
par le FAI
Oui
(voir [ici](/isp))
Contournées par le VPNGénéralement non
CPUGénéralement ~1 GHz~2 GHz
(droplet Digital Ocean)
RAMGénéralement 500 Mo ou 1 GoEn fonction du prix
Connectivité internetDépend de la connexionGénéralement bonne
diff --git a/images.md b/images.md new file mode 100644 index 00000000..384a60cd --- /dev/null +++ b/images.md @@ -0,0 +1,122 @@ +# Pre-installed images + + +This page requires Javascript enabled to display properly :s. +
+
+
+ +N.B. : Even if the image does not corresponds to the latest version of YunoHost, you can still use it and do a regular system upgrade after setting up! + +
+
+ + + + + + diff --git a/images/HedgeDoc-Logo.png b/images/HedgeDoc-Logo.png new file mode 100644 index 00000000..77aa3507 Binary files /dev/null and b/images/HedgeDoc-Logo.png differ diff --git a/images/Jirafeau_logo.jpg b/images/Jirafeau_logo.jpg new file mode 100644 index 00000000..35b106cb Binary files /dev/null and b/images/Jirafeau_logo.jpg differ diff --git a/images/Linuxfr.png b/images/Linuxfr.png new file mode 100644 index 00000000..de4f3e4e Binary files /dev/null and b/images/Linuxfr.png differ diff --git a/images/Mediawiki_screenshot.png b/images/Mediawiki_screenshot.png new file mode 100644 index 00000000..489a5a4d Binary files /dev/null and b/images/Mediawiki_screenshot.png differ diff --git a/images/OnlyOffice_logo.png b/images/OnlyOffice_logo.png new file mode 100644 index 00000000..3b053510 Binary files /dev/null and b/images/OnlyOffice_logo.png differ diff --git a/images/Pidgin-add-acount.png b/images/Pidgin-add-acount.png new file mode 100644 index 00000000..4147b6f3 Binary files /dev/null and b/images/Pidgin-add-acount.png differ diff --git a/images/PluXml_logo.png b/images/PluXml_logo.png new file mode 100644 index 00000000..ccb4d96a Binary files /dev/null and b/images/PluXml_logo.png differ diff --git a/images/PluXml_screenshot.jpg b/images/PluXml_screenshot.jpg new file mode 100644 index 00000000..8fa52feb Binary files /dev/null and b/images/PluXml_screenshot.jpg differ diff --git a/images/XMPP_logo.png b/images/XMPP_logo.png new file mode 100644 index 00000000..d82ae842 Binary files /dev/null and b/images/XMPP_logo.png differ diff --git a/images/YunoHost_logo_vertical.png b/images/YunoHost_logo_vertical.png new file mode 100644 index 00000000..2472cb1f Binary files /dev/null and b/images/YunoHost_logo_vertical.png differ diff --git a/images/actions_example.png b/images/actions_example.png new file mode 100644 index 00000000..04209da6 Binary files /dev/null and b/images/actions_example.png differ diff --git a/images/adminer_logo.png b/images/adminer_logo.png new file mode 100644 index 00000000..06444fe5 Binary files /dev/null and b/images/adminer_logo.png differ diff --git a/images/airsonic_logo.png b/images/airsonic_logo.png new file mode 100644 index 00000000..c013faa3 Binary files /dev/null and b/images/airsonic_logo.png differ diff --git a/images/ampache_logo.png b/images/ampache_logo.png new file mode 100644 index 00000000..ed29e845 Binary files /dev/null and b/images/ampache_logo.png differ diff --git a/images/anarchism_logo.svg b/images/anarchism_logo.svg new file mode 100644 index 00000000..f2b4b29c --- /dev/null +++ b/images/anarchism_logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/anfora_logo.svg b/images/anfora_logo.svg new file mode 100644 index 00000000..90f982c4 --- /dev/null +++ b/images/anfora_logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/architecture.png b/images/architecture.png new file mode 100644 index 00000000..12c1f471 Binary files /dev/null and b/images/architecture.png differ diff --git a/images/architecture.xml b/images/architecture.xml new file mode 100644 index 00000000..b1084892 --- /dev/null +++ b/images/architecture.xml @@ -0,0 +1 @@ +7Vxbc5s4FP41nmkfmgEkYXjMpel2p931rHenzSMB2WaLkQu4ifvrV4DAumETRyR4p+lMxzpcLL7z6dx08ARcrx8/ZMFm9ZlEOJk4VvQ4ATcTx/Fsn/5fCna1wHZ9VEuWWRwx2V4wj39iJrSYdBtHOBdOLAhJingjCkOSpjgsBFmQZeRBPG1BEvFbN8ESK4J5GCSq9EscFSv2XI67l/+G4+Wq+Wb6gPWR+yD8tszINmXfN3HAovqrD6+D5l7sQfNVEJEHTgTeT8B1RkhRf1o/XuOkxLaBrb7utuNoO+8Mp0WfC5z6gh9BsmWPfrdNyYrkBZVekwxPHDehd7qK4h/047L82IjuM1nS6yQ6Gc15r3OpLK1UUuwaGjys4gLPN0FYjh8o1elJq2Kd0JFNPy7iJLkmCcmqs0tFO2FI5XmRkW+YOxK59y5y22/g1cM09gNnBX7kRExdHzBZ4yLb0VOaoy6jDltbALHxw56ojsVkK56kjTBgi2PZ3ntPEPqBcUTPF6Dw5TPZJnGKi0JHlTeLLFjjB5J9e3vGkLdmqYHcVyG3dZAjA4hDBfE/lnH6+FzgUPlPB5xb/ZkBDnoScJ4GOKABbmoAOKQAN5//+SUoDdubNYm2FDjHSkss354FC5FzfOH7GiyBASxdBUsFMpxGl6XnpaOUpLhCI8gKScaBGAX5CkdsQK++jcuvv7GaK7lxJ3o4Evy4ih2HDTqwQDOcBEX8Q/T+OsDYN8xInBacTZY0I1vanGyzELOLeG8s3cc7diOKyxIXyo0q9bVP3UujU0Wjn24uZ2dhVVri7yQrw1sVR6Nt18BK8FQHGMTJWeBm98BtqoHNMQCbr8D29fNsVplieiuS0js+2wq/DIiWCGJrlY+RzwSKjXngYLz+9PGZuEUIexHU4eY592Ao8tm6GGqoRWvbCm6X0TpOzwI5YPVAzh0KOTVBnJGsqEyeReOps0AQTpGIINAg6A2FoJoyXW42+XON3QK7HSHn1L+3DgZN/YFzJeq1dvxFFu1JQScHmQKNVf0p0SZ+jIuv5ecLxEZ3bVRK51wfclAzvjsWlNbRnmix68CNoTgZcezq2pLq+sauUlkCyRQwF7raauw6EDG61G8fUj+vantceQqAUn4B/dOUDaRc1PGG07YacR/SdpgEeR6HRxR+e+v7AAgKtwVLYHOWwLqwrGY8w1lMJ48zRhEhiRUS3v1E+Gz2IHMEwwFGxRy5+KBUaHqbiSaikKMZ88wBmqhvW6wo6vEiDikaJNWULEuhhamP3FWofd/ivMh7Fi+pWy1E5mU4j38G99UJJV825XNVT4quJuiGSoIkXqZUkOBFeW3pnOnkkksmXsdRVF59lQT3OLlqtxfE8lO5wUBjBJIWbC/F1/OsWUtyBNDupLCpTvjdCF1kQNcEAFDUpBGi+bp7NpeTxSLHzzYoai5qzH1oIwnVsfSyAEjjTsYVOiC5XHVq7ICk4EGJH80ZhcaOmdP+7a3HtE+1Mmd3oTnSiixJGiTv99J9QNEGl3d7tggMUSvM9RKnZ7EVXuZGlSWo3E9VNW32EstBSNal8+lPt6lKt3Gx7ZUDVcqIYMedxix553ShlDs14z116zueTGR1Y8gYkVua0sgHSVT1nZ5UVyJpOXZqrKUYayGF173o66n09UdFX0eKoNCpmwRyPQi6aBACt5tJzff41sF5yecj4JglvPF6AEd4fdqnWulOLvLEm46LeLJeTjWccvYIhwvdNdtT/+TUcDjWx5QakEVZJTMSfG8Lktf+1D4eixekLMrlmyCM0+Xf5eDmHTTUYiAFQEgttOn2dk1sKmi2tMo0g66J/zXEoLkDB7Guim4E4menHHxo18dxH4svjztw0Qd3++quSLWX19YEnWhUxtOFhoynCyT6yQUUQ17bneon3Dkv6XzAoglTXrt57IGo36beEl2fGp/uC38Iyqm7puzXi9xQJffI6sFICiWB3LDWl93wxAT+qexWJgwPsxvKFQrx/OezW03CyhLjiBwnVxO0HTbWuY6O8mLTysUvwuqW7Nk0DcdPb2yzxEIi9JDimXVNgrIpPqmfVQ00fynwqQoEsg/RNBYNpkA1tPqlwCcrUC4paFpMhlIgVAOEeUGdWkhlNLbEaqeEQVWGOK2cuilltuGIAaVAJWF5uXY96ChK+QtX74RcztR+s3GsLWtYdTi+2EQENE1EQ+WPUO0hmu1oVKs2sI14bVyhKfBvBrBeDhQ1A5EaP+iCaCPWS33LQNhT5nTjft+Wb3VdlSp6x0C+pGcwnNvj8jtKFOi0kX3aBtxWNH9kyB3ql3CDg7EDycGJZt0O5tvUkvXv1J9Ztxl9yKrApr4xlQfr9e7i37zvC1NjWfEa8zuYTgEAgk4dqJZLdf2cJl6FgSb6kY6U81hzUl94uT41pUtRaFDqhF6oUTCQRlKjUBZi35qEI1XchtutgE8r754HJY6qv03+/AvfRcieOtCmA3Fl2qqxPcSVJ7Qyyh2HvXexDs/Xty4qqW0BCL1mb8Q8Z5Ca9rw2Z8zywrW0OBsnwul9IFJt0Ja9g0Flq+nUPMziTTmb4QP5EedUcnlWE5vpUlwTsRlSc6pDC/DkPbn+Fruj9dzzPN6C2xeWPZ10tdScuq13YVnOhN/a8yaHdj4kI3DKPl/d4PxaUcXUmgrMQ/Li72tFpvLPMQy086FMmLkmUzsZqGsnw0wy+4Zsyn7rIDm3tGa4iq2mCVtZRd3eVX6Tw3J7Wc4TMiA63P8eTc2s/Y/+gPf/AQ== \ No newline at end of file diff --git a/images/backup.png b/images/backup.png new file mode 100644 index 00000000..df3cf230 Binary files /dev/null and b/images/backup.png differ diff --git a/images/baikal_logo.png b/images/baikal_logo.png new file mode 100644 index 00000000..1a623ea3 Binary files /dev/null and b/images/baikal_logo.png differ diff --git a/images/bitwarden_logo.png b/images/bitwarden_logo.png new file mode 100644 index 00000000..06e4c84b Binary files /dev/null and b/images/bitwarden_logo.png differ diff --git a/images/blogotext_logo.png b/images/blogotext_logo.png new file mode 100644 index 00000000..9a6752f0 Binary files /dev/null and b/images/blogotext_logo.png differ diff --git a/images/bludit_logo.png b/images/bludit_logo.png new file mode 100644 index 00000000..b1a69662 Binary files /dev/null and b/images/bludit_logo.png differ diff --git a/images/boot_screen.png b/images/boot_screen.png new file mode 100644 index 00000000..f8c4f2b8 Binary files /dev/null and b/images/boot_screen.png differ diff --git a/images/borg_logo.svg b/images/borg_logo.svg new file mode 100644 index 00000000..5f9c5a19 --- /dev/null +++ b/images/borg_logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/brique.png b/images/brique.png new file mode 100644 index 00000000..762dfe3d Binary files /dev/null and b/images/brique.png differ diff --git a/images/button_to_go_to_permission_interface.png b/images/button_to_go_to_permission_interface.png new file mode 100644 index 00000000..65b998d9 Binary files /dev/null and b/images/button_to_go_to_permission_interface.png differ diff --git a/images/button_to_go_to_permission_interface_fr.png b/images/button_to_go_to_permission_interface_fr.png new file mode 100644 index 00000000..3d524b5e Binary files /dev/null and b/images/button_to_go_to_permission_interface_fr.png differ diff --git a/images/capture_espace_connexion.png b/images/capture_espace_connexion.png new file mode 100644 index 00000000..d2edd32d Binary files /dev/null and b/images/capture_espace_connexion.png differ diff --git a/images/capture_globale.png b/images/capture_globale.png new file mode 100644 index 00000000..5b2b84d9 Binary files /dev/null and b/images/capture_globale.png differ diff --git a/images/capture_menu_droite.png b/images/capture_menu_droite.png new file mode 100644 index 00000000..60658ac7 Binary files /dev/null and b/images/capture_menu_droite.png differ diff --git a/images/capture_menu_droite_chercher_utilisateur.png b/images/capture_menu_droite_chercher_utilisateur.png new file mode 100644 index 00000000..d29a1ffe Binary files /dev/null and b/images/capture_menu_droite_chercher_utilisateur.png differ diff --git a/images/capture_menu_droite_deconnexion.png b/images/capture_menu_droite_deconnexion.png new file mode 100644 index 00000000..ba2b7c79 Binary files /dev/null and b/images/capture_menu_droite_deconnexion.png differ diff --git a/images/capture_menu_droite_preferences.png b/images/capture_menu_droite_preferences.png new file mode 100644 index 00000000..ce7d05ed Binary files /dev/null and b/images/capture_menu_droite_preferences.png differ diff --git a/images/capture_menu_gauche.png b/images/capture_menu_gauche.png new file mode 100644 index 00000000..842e8a70 Binary files /dev/null and b/images/capture_menu_gauche.png differ diff --git a/images/cd.jpg b/images/cd.jpg new file mode 100644 index 00000000..95493620 Binary files /dev/null and b/images/cd.jpg differ diff --git a/images/certificate-after-LE-fr.png b/images/certificate-after-LE-fr.png new file mode 100644 index 00000000..c2c41313 Binary files /dev/null and b/images/certificate-after-LE-fr.png differ diff --git a/images/certificate-after-LE.png b/images/certificate-after-LE.png new file mode 100644 index 00000000..6b55fe99 Binary files /dev/null and b/images/certificate-after-LE.png differ diff --git a/images/certificate-before-LE-fr.png b/images/certificate-before-LE-fr.png new file mode 100644 index 00000000..3a50a8d1 Binary files /dev/null and b/images/certificate-before-LE-fr.png differ diff --git a/images/certificate-before-LE.png b/images/certificate-before-LE.png new file mode 100644 index 00000000..bfc896db Binary files /dev/null and b/images/certificate-before-LE.png differ diff --git a/images/certificate-signed-by-LE.png b/images/certificate-signed-by-LE.png new file mode 100644 index 00000000..aad3c51f Binary files /dev/null and b/images/certificate-signed-by-LE.png differ diff --git a/images/civicrm_logo.png b/images/civicrm_logo.png new file mode 100644 index 00000000..d82cd8b4 Binary files /dev/null and b/images/civicrm_logo.png differ diff --git a/images/codimd_logo.png b/images/codimd_logo.png new file mode 100644 index 00000000..2422174f Binary files /dev/null and b/images/codimd_logo.png differ diff --git a/images/collabora_logo.png b/images/collabora_logo.png new file mode 100644 index 00000000..22227baf Binary files /dev/null and b/images/collabora_logo.png differ diff --git a/images/computer.png b/images/computer.png new file mode 100644 index 00000000..575d0d43 Binary files /dev/null and b/images/computer.png differ diff --git a/images/concrete5_logo.png b/images/concrete5_logo.png new file mode 100644 index 00000000..945438c9 Binary files /dev/null and b/images/concrete5_logo.png differ diff --git a/images/config_panel_example.png b/images/config_panel_example.png new file mode 100644 index 00000000..5665a3c9 Binary files /dev/null and b/images/config_panel_example.png differ diff --git a/images/config_panel_toml_example.png b/images/config_panel_toml_example.png new file mode 100644 index 00000000..c72e0baf Binary files /dev/null and b/images/config_panel_toml_example.png differ diff --git a/images/cowyo_logo.png b/images/cowyo_logo.png new file mode 100644 index 00000000..35253a33 Binary files /dev/null and b/images/cowyo_logo.png differ diff --git a/images/cubieboard2.png b/images/cubieboard2.png new file mode 100644 index 00000000..e4103dcc Binary files /dev/null and b/images/cubieboard2.png differ diff --git a/images/cubietruck.jpg b/images/cubietruck.jpg new file mode 100644 index 00000000..c9437023 Binary files /dev/null and b/images/cubietruck.jpg differ diff --git a/images/debian-logo.png b/images/debian-logo.png new file mode 100644 index 00000000..14cc1e99 Binary files /dev/null and b/images/debian-logo.png differ diff --git a/images/dekko-app.png b/images/dekko-app.png new file mode 100644 index 00000000..2f7a75a6 Binary files /dev/null and b/images/dekko-app.png differ diff --git a/images/dekko_config_1.png b/images/dekko_config_1.png new file mode 100755 index 00000000..f30146f2 Binary files /dev/null and b/images/dekko_config_1.png differ diff --git a/images/dekko_config_2.png b/images/dekko_config_2.png new file mode 100755 index 00000000..28596b16 Binary files /dev/null and b/images/dekko_config_2.png differ diff --git a/images/dekko_config_3.png b/images/dekko_config_3.png new file mode 100755 index 00000000..67063593 Binary files /dev/null and b/images/dekko_config_3.png differ diff --git a/images/dekko_config_4.png b/images/dekko_config_4.png new file mode 100755 index 00000000..bf4b26d1 Binary files /dev/null and b/images/dekko_config_4.png differ diff --git a/images/desktop.jpg b/images/desktop.jpg new file mode 100644 index 00000000..8254eabd Binary files /dev/null and b/images/desktop.jpg differ diff --git a/images/diagramsnet_logo.jpg b/images/diagramsnet_logo.jpg new file mode 100644 index 00000000..c30ae934 Binary files /dev/null and b/images/diagramsnet_logo.jpg differ diff --git a/images/discourse_logo.svg b/images/discourse_logo.svg new file mode 100644 index 00000000..73e7d63e --- /dev/null +++ b/images/discourse_logo.svg @@ -0,0 +1 @@ +Discourse_logo \ No newline at end of file diff --git a/images/dns_9box.png b/images/dns_9box.png new file mode 100644 index 00000000..fd65e3f0 Binary files /dev/null and b/images/dns_9box.png differ diff --git a/images/dns_dynamic-ip_box_conf.png b/images/dns_dynamic-ip_box_conf.png new file mode 100644 index 00000000..140a6e98 Binary files /dev/null and b/images/dns_dynamic-ip_box_conf.png differ diff --git a/images/docker.png b/images/docker.png new file mode 100644 index 00000000..780a8d5c Binary files /dev/null and b/images/docker.png differ diff --git a/images/dokuwiki_logo.svg b/images/dokuwiki_logo.svg new file mode 100644 index 00000000..cbee241e --- /dev/null +++ b/images/dokuwiki_logo.svg @@ -0,0 +1,553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/dolibarr_logo.png b/images/dolibarr_logo.png new file mode 100644 index 00000000..2cd7964d Binary files /dev/null and b/images/dolibarr_logo.png differ diff --git a/images/domain-certificate-button-fr.png b/images/domain-certificate-button-fr.png new file mode 100644 index 00000000..ae8c4359 Binary files /dev/null and b/images/domain-certificate-button-fr.png differ diff --git a/images/domain-certificate-button.png b/images/domain-certificate-button.png new file mode 100644 index 00000000..998c2f21 Binary files /dev/null and b/images/domain-certificate-button.png differ diff --git a/images/dotclean_logo.png b/images/dotclean_logo.png new file mode 100644 index 00000000..b5f0552b Binary files /dev/null and b/images/dotclean_logo.png differ diff --git a/images/drupal_logo.svg b/images/drupal_logo.svg new file mode 100644 index 00000000..7da67bde --- /dev/null +++ b/images/drupal_logo.svg @@ -0,0 +1 @@ +]>Druplicon \ No newline at end of file diff --git a/images/dude_yunohost.jpg b/images/dude_yunohost.jpg new file mode 100644 index 00000000..f6e3f7a6 Binary files /dev/null and b/images/dude_yunohost.jpg differ diff --git a/images/ecosystem.odg b/images/ecosystem.odg new file mode 100644 index 00000000..dda07281 Binary files /dev/null and b/images/ecosystem.odg differ diff --git a/images/ecosystem.png b/images/ecosystem.png new file mode 100644 index 00000000..e8021117 Binary files /dev/null and b/images/ecosystem.png differ diff --git a/images/ecosystem_fr.odg b/images/ecosystem_fr.odg new file mode 100644 index 00000000..099a74ab Binary files /dev/null and b/images/ecosystem_fr.odg differ diff --git a/images/ecosystem_fr.png b/images/ecosystem_fr.png new file mode 100644 index 00000000..3c8d4230 Binary files /dev/null and b/images/ecosystem_fr.png differ diff --git a/images/etcher.gif b/images/etcher.gif new file mode 100644 index 00000000..e06ce0cb Binary files /dev/null and b/images/etcher.gif differ diff --git a/images/etherpad_mypads_logo.svg b/images/etherpad_mypads_logo.svg new file mode 100644 index 00000000..a4007d16 --- /dev/null +++ b/images/etherpad_mypads_logo.svg @@ -0,0 +1,61 @@ + + + + + Etherpad + + + + image/svg+xml + + Etherpad + 2012-11-20 + + + Marcel Klehr + + + + + + + + + + + + + + + + + diff --git a/images/ffsync_logo.png b/images/ffsync_logo.png new file mode 100644 index 00000000..a41f526c Binary files /dev/null and b/images/ffsync_logo.png differ diff --git a/images/filezilla_1.png b/images/filezilla_1.png new file mode 100644 index 00000000..a133971b Binary files /dev/null and b/images/filezilla_1.png differ diff --git a/images/filezilla_2.png b/images/filezilla_2.png new file mode 100644 index 00000000..0eaff4c6 Binary files /dev/null and b/images/filezilla_2.png differ diff --git a/images/filezilla_3.png b/images/filezilla_3.png new file mode 100644 index 00000000..e8b5db4d Binary files /dev/null and b/images/filezilla_3.png differ diff --git a/images/filezilla_4.png b/images/filezilla_4.png new file mode 100644 index 00000000..4b43f685 Binary files /dev/null and b/images/filezilla_4.png differ diff --git a/images/filezilla_5.png b/images/filezilla_5.png new file mode 100644 index 00000000..ae3a872e Binary files /dev/null and b/images/filezilla_5.png differ diff --git a/images/filezilla_6.png b/images/filezilla_6.png new file mode 100644 index 00000000..6977f3d9 Binary files /dev/null and b/images/filezilla_6.png differ diff --git a/images/filezilla_7.png b/images/filezilla_7.png new file mode 100644 index 00000000..4b7aa28d Binary files /dev/null and b/images/filezilla_7.png differ diff --git a/images/filezilla_8.png b/images/filezilla_8.png new file mode 100644 index 00000000..370cdcd2 Binary files /dev/null and b/images/filezilla_8.png differ diff --git a/images/firefly-iii_logo.png b/images/firefly-iii_logo.png new file mode 100644 index 00000000..26598804 Binary files /dev/null and b/images/firefly-iii_logo.png differ diff --git a/images/flarum_logo.png b/images/flarum_logo.png new file mode 100644 index 00000000..ef72258a Binary files /dev/null and b/images/flarum_logo.png differ diff --git a/images/fluxbb_logo.png b/images/fluxbb_logo.png new file mode 100644 index 00000000..b9886904 Binary files /dev/null and b/images/fluxbb_logo.png differ diff --git a/images/framaforms_logo.png b/images/framaforms_logo.png new file mode 100644 index 00000000..54e91ddf Binary files /dev/null and b/images/framaforms_logo.png differ diff --git a/images/freshrss_logo.png b/images/freshrss_logo.png new file mode 100644 index 00000000..5ef73cce Binary files /dev/null and b/images/freshrss_logo.png differ diff --git a/images/friendica_logo.jpeg b/images/friendica_logo.jpeg new file mode 100644 index 00000000..89086338 Binary files /dev/null and b/images/friendica_logo.jpeg differ diff --git a/images/friendica_logo.svg b/images/friendica_logo.svg new file mode 100644 index 00000000..75d54920 --- /dev/null +++ b/images/friendica_logo.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/funkwhale_logo.png b/images/funkwhale_logo.png new file mode 100644 index 00000000..7cf56217 Binary files /dev/null and b/images/funkwhale_logo.png differ diff --git a/images/garradin_logo.svg b/images/garradin_logo.svg new file mode 100644 index 00000000..daa8151d --- /dev/null +++ b/images/garradin_logo.svg @@ -0,0 +1,65 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/images/gitea_logo.png b/images/gitea_logo.png new file mode 100644 index 00000000..dd3e97c4 Binary files /dev/null and b/images/gitea_logo.png differ diff --git a/images/github_branch.png b/images/github_branch.png new file mode 100644 index 00000000..47987fb2 Binary files /dev/null and b/images/github_branch.png differ diff --git a/images/github_commit.png b/images/github_commit.png new file mode 100644 index 00000000..d299c878 Binary files /dev/null and b/images/github_commit.png differ diff --git a/images/github_create_new_repo.png b/images/github_create_new_repo.png new file mode 100644 index 00000000..b96969a1 Binary files /dev/null and b/images/github_create_new_repo.png differ diff --git a/images/github_edit.png b/images/github_edit.png new file mode 100644 index 00000000..619e483e Binary files /dev/null and b/images/github_edit.png differ diff --git a/images/github_pull_request.png b/images/github_pull_request.png new file mode 100644 index 00000000..13e2eb5f Binary files /dev/null and b/images/github_pull_request.png differ diff --git a/images/gitlab-runner_logo.png b/images/gitlab-runner_logo.png new file mode 100644 index 00000000..a629de7e Binary files /dev/null and b/images/gitlab-runner_logo.png differ diff --git a/images/gitlab_logo.svg b/images/gitlab_logo.svg new file mode 100644 index 00000000..6e66c741 --- /dev/null +++ b/images/gitlab_logo.svg @@ -0,0 +1,30 @@ + + + + +Fill 1 + Group 24 +Created with Sketch. + + + + + + + + + + + + + + + + + + + diff --git a/images/glowing_bear_logo.svg b/images/glowing_bear_logo.svg new file mode 100644 index 00000000..48e21c42 --- /dev/null +++ b/images/glowing_bear_logo.svg @@ -0,0 +1 @@ +glowing-bearCreated with Sketch (http://www.bohemiancoding.com/sketch) \ No newline at end of file diff --git a/images/gogs_logo.svg b/images/gogs_logo.svg new file mode 100644 index 00000000..ddd59685 --- /dev/null +++ b/images/gogs_logo.svg @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/images/gotify_logo.png b/images/gotify_logo.png new file mode 100644 index 00000000..99848593 Binary files /dev/null and b/images/gotify_logo.png differ diff --git a/images/gparted.jpg b/images/gparted.jpg new file mode 100644 index 00000000..c6e00c09 Binary files /dev/null and b/images/gparted.jpg differ diff --git a/images/grav_logo.png b/images/grav_logo.png new file mode 100644 index 00000000..489c4ea9 Binary files /dev/null and b/images/grav_logo.png differ diff --git a/images/groups_add-permission-group.png b/images/groups_add-permission-group.png new file mode 100644 index 00000000..bb083791 Binary files /dev/null and b/images/groups_add-permission-group.png differ diff --git a/images/groups_add-permission-user.png b/images/groups_add-permission-user.png new file mode 100644 index 00000000..0a62a541 Binary files /dev/null and b/images/groups_add-permission-user.png differ diff --git a/images/groups_alerte-permission.png b/images/groups_alerte-permission.png new file mode 100644 index 00000000..2b52b6d5 Binary files /dev/null and b/images/groups_alerte-permission.png differ diff --git a/images/groups_button-add-user.png b/images/groups_button-add-user.png new file mode 100644 index 00000000..1a4f3897 Binary files /dev/null and b/images/groups_button-add-user.png differ diff --git a/images/groups_button-delete-group.png b/images/groups_button-delete-group.png new file mode 100644 index 00000000..41f2e3f8 Binary files /dev/null and b/images/groups_button-delete-group.png differ diff --git a/images/groups_button-new-group.png b/images/groups_button-new-group.png new file mode 100644 index 00000000..a50f0981 Binary files /dev/null and b/images/groups_button-new-group.png differ diff --git a/images/groups_button-remove-user.png b/images/groups_button-remove-user.png new file mode 100644 index 00000000..3c6c8e59 Binary files /dev/null and b/images/groups_button-remove-user.png differ diff --git a/images/groups_default-groups.png b/images/groups_default-groups.png new file mode 100644 index 00000000..52870fd4 Binary files /dev/null and b/images/groups_default-groups.png differ diff --git a/images/groups_default-with-permissions.png b/images/groups_default-with-permissions.png new file mode 100644 index 00000000..6dafb1ed Binary files /dev/null and b/images/groups_default-with-permissions.png differ diff --git a/images/halcyon_logo.png b/images/halcyon_logo.png new file mode 100644 index 00000000..4468cdf3 Binary files /dev/null and b/images/halcyon_logo.png differ diff --git a/images/hextris_logo.png b/images/hextris_logo.png new file mode 100644 index 00000000..ce78a935 Binary files /dev/null and b/images/hextris_logo.png differ diff --git a/images/home_enjoy.jpg b/images/home_enjoy.jpg new file mode 100644 index 00000000..27c31d3c Binary files /dev/null and b/images/home_enjoy.jpg differ diff --git a/images/home_install.png b/images/home_install.png new file mode 100644 index 00000000..ba0a9090 Binary files /dev/null and b/images/home_install.png differ diff --git a/images/home_manage.jpg b/images/home_manage.jpg new file mode 100644 index 00000000..88b290fd Binary files /dev/null and b/images/home_manage.jpg differ diff --git a/images/home_panel.jpg b/images/home_panel.jpg new file mode 100644 index 00000000..b9f701a0 Binary files /dev/null and b/images/home_panel.jpg differ diff --git a/images/horde_logo.png b/images/horde_logo.png new file mode 100644 index 00000000..686b4db0 Binary files /dev/null and b/images/horde_logo.png differ diff --git a/images/hubzilla_logo.png b/images/hubzilla_logo.png new file mode 100644 index 00000000..5766891d Binary files /dev/null and b/images/hubzilla_logo.png differ diff --git a/images/icon-debian.png b/images/icon-debian.png new file mode 100644 index 00000000..51283151 Binary files /dev/null and b/images/icon-debian.png differ diff --git a/images/icon-door.png b/images/icon-door.png new file mode 100644 index 00000000..3c950816 Binary files /dev/null and b/images/icon-door.png differ diff --git a/images/icon-globe.png b/images/icon-globe.png new file mode 100644 index 00000000..10efab03 Binary files /dev/null and b/images/icon-globe.png differ diff --git a/images/icon-lock.png b/images/icon-lock.png new file mode 100644 index 00000000..04d5db43 Binary files /dev/null and b/images/icon-lock.png differ diff --git a/images/icon-mail.png b/images/icon-mail.png new file mode 100644 index 00000000..8f190608 Binary files /dev/null and b/images/icon-mail.png differ diff --git a/images/icon-medic.png b/images/icon-medic.png new file mode 100644 index 00000000..2dad2325 Binary files /dev/null and b/images/icon-medic.png differ diff --git a/images/icon-messaging.png b/images/icon-messaging.png new file mode 100644 index 00000000..c8938558 Binary files /dev/null and b/images/icon-messaging.png differ diff --git a/images/icon-package.png b/images/icon-package.png new file mode 100644 index 00000000..fcda8a44 Binary files /dev/null and b/images/icon-package.png differ diff --git a/images/icon-shield.png b/images/icon-shield.png new file mode 100644 index 00000000..4fbc6a59 Binary files /dev/null and b/images/icon-shield.png differ diff --git a/images/icon-tools.png b/images/icon-tools.png new file mode 100644 index 00000000..2b7c33b2 Binary files /dev/null and b/images/icon-tools.png differ diff --git a/images/icon-users.png b/images/icon-users.png new file mode 100644 index 00000000..4929acac Binary files /dev/null and b/images/icon-users.png differ diff --git a/images/images.list b/images/images.list new file mode 100644 index 00000000..9b1cf3f4 --- /dev/null +++ b/images/images.list @@ -0,0 +1,74 @@ +boot_screen.png +cd.jpg +checkstart.png +cubieboard2.png +debian-logo.png +desktop.jpg +df_h.png +digitalocean.png +dns_9box.png +dns_dynamic-ip_box_conf.png +docker.png +dude_yunohost.jpg +flattr-badge-large.png +free_m.png +freshrss_logo.png +github_ribbon_grey.png +gparted.jpg +home_enjoy.jpg +home_install.png +home_manage.jpg +home_panel.jpg +install_script.png +ip_serveur.png +jappix.png +laptop.png +Linuxfr.png +logo-jirafeau.jpeg +logo.png +Logo-wallabag-svg.svg +lxc.png +mailview.jpg +webadmin.png +webadmin_fr.png +micro-sd-card.jpg +nettop.jpg +networks.png +nginx.png +OVH1_domain_select.png +OVH2_domain_DNS.png +OVH3_zoneDNS.png +Pidgin-add-acount.png +piwigo.png +postinstall_cli.png +postinstall_error.png +postinstall_web.png +Raspberry_Pi_2_Model_B_v1.1_front_angle_new.jpg +roundcube.png +sdcard.jpg +Searx_logo.svg +services_status.png +sfr-authentification.png +sfr-filtrage.png +thisisinternet.png +thunderbird-config.png +transmission.png +ttrss.png +unetbootin.png +usb_key.png +virtualbox_1.png +virtualbox_2.1.png +virtualbox_2.png +virtualbox_3.png +virtualbox.png +vps.png +web4all.png +Wikipedia-logo-v2-fr.svg +win32diskimager.png +wordpress.png +XMPP_logo.png +ynh_admin_etat_ip.png +ynh_login.png +ynh_logo_black.png +ynh_logo_white.png +yunohost_package.png diff --git a/images/images_check.sh b/images/images_check.sh new file mode 100755 index 00000000..13a43b74 --- /dev/null +++ b/images/images_check.sh @@ -0,0 +1,9 @@ +#!/bin/bash +while IFS= read -r file +do + # echo $file + # [ -f "$file" ] && echo "$file does not exist" + if [ ! -f $file ]; then + echo "https://yunohost.org/images/"$file + fi +done < "images.list" \ No newline at end of file diff --git a/images/invoiceninja_logo.png b/images/invoiceninja_logo.png new file mode 100644 index 00000000..0c663528 Binary files /dev/null and b/images/invoiceninja_logo.png differ diff --git a/images/ip_serveur.png b/images/ip_serveur.png new file mode 100644 index 00000000..4c74f5e5 Binary files /dev/null and b/images/ip_serveur.png differ diff --git a/images/jappix_logo.png b/images/jappix_logo.png new file mode 100644 index 00000000..53124199 Binary files /dev/null and b/images/jappix_logo.png differ diff --git a/images/jitsi_logo.png b/images/jitsi_logo.png new file mode 100644 index 00000000..42aa5618 Binary files /dev/null and b/images/jitsi_logo.png differ diff --git a/images/jitsi_logo.svg b/images/jitsi_logo.svg new file mode 100644 index 00000000..5a3526ac --- /dev/null +++ b/images/jitsi_logo.svg @@ -0,0 +1,650 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/jupyterlab_logo.svg b/images/jupyterlab_logo.svg new file mode 100644 index 00000000..ab255087 --- /dev/null +++ b/images/jupyterlab_logo.svg @@ -0,0 +1,90 @@ + +Group.svg +Created using Figma 0.90 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/k9mail.png b/images/k9mail.png new file mode 100644 index 00000000..060e498a Binary files /dev/null and b/images/k9mail.png differ diff --git a/images/k9mail_config_1.png b/images/k9mail_config_1.png new file mode 100644 index 00000000..1ddebb74 Binary files /dev/null and b/images/k9mail_config_1.png differ diff --git a/images/k9mail_config_2.png b/images/k9mail_config_2.png new file mode 100644 index 00000000..d35cf891 Binary files /dev/null and b/images/k9mail_config_2.png differ diff --git a/images/k9mail_config_3.png b/images/k9mail_config_3.png new file mode 100644 index 00000000..1c74b040 Binary files /dev/null and b/images/k9mail_config_3.png differ diff --git a/images/k9mail_config_4.png b/images/k9mail_config_4.png new file mode 100644 index 00000000..ee3214d9 Binary files /dev/null and b/images/k9mail_config_4.png differ diff --git a/images/kanboard_logo.png b/images/kanboard_logo.png new file mode 100644 index 00000000..4f3436df Binary files /dev/null and b/images/kanboard_logo.png differ diff --git a/images/keeweb_logo.png b/images/keeweb_logo.png new file mode 100644 index 00000000..769c5a81 Binary files /dev/null and b/images/keeweb_logo.png differ diff --git a/images/kresus_logo.png b/images/kresus_logo.png new file mode 100644 index 00000000..d55dc2ce Binary files /dev/null and b/images/kresus_logo.png differ diff --git a/images/laptop.png b/images/laptop.png new file mode 100644 index 00000000..57528c2b Binary files /dev/null and b/images/laptop.png differ diff --git a/images/leed_logo.png b/images/leed_logo.png new file mode 100644 index 00000000..f9f192b3 Binary files /dev/null and b/images/leed_logo.png differ diff --git a/images/liberapay_logo.svg b/images/liberapay_logo.svg new file mode 100644 index 00000000..007d686c --- /dev/null +++ b/images/liberapay_logo.svg @@ -0,0 +1,2 @@ +Donate \ No newline at end of file diff --git a/images/limesurvey_logo.png b/images/limesurvey_logo.png new file mode 100644 index 00000000..bc60942e Binary files /dev/null and b/images/limesurvey_logo.png differ diff --git a/images/linux-magazine-208.jpg b/images/linux-magazine-208.jpg new file mode 100644 index 00000000..57322a07 Binary files /dev/null and b/images/linux-magazine-208.jpg differ diff --git a/images/linux-pratique-96.jpg b/images/linux-pratique-96.jpg new file mode 100644 index 00000000..6edb4fec Binary files /dev/null and b/images/linux-pratique-96.jpg differ diff --git a/images/logo-bibliogram.png b/images/logo-bibliogram.png new file mode 100644 index 00000000..51c97c89 Binary files /dev/null and b/images/logo-bibliogram.png differ diff --git a/images/logo-bookstack.png b/images/logo-bookstack.png new file mode 100644 index 00000000..d10b3ca4 Binary files /dev/null and b/images/logo-bookstack.png differ diff --git a/images/logo-jupyterhub.png b/images/logo-jupyterhub.png new file mode 100644 index 00000000..48d8b817 Binary files /dev/null and b/images/logo-jupyterhub.png differ diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 00000000..ddb79b3d Binary files /dev/null and b/images/logo.png differ diff --git a/images/logo_codelutin.png b/images/logo_codelutin.png new file mode 100644 index 00000000..ff19c172 Binary files /dev/null and b/images/logo_codelutin.png differ diff --git a/images/logo_gitoyen.png b/images/logo_gitoyen.png new file mode 100644 index 00000000..4e84b2b8 Binary files /dev/null and b/images/logo_gitoyen.png differ diff --git a/images/logo_globenet.png b/images/logo_globenet.png new file mode 100644 index 00000000..d2a8dca8 Binary files /dev/null and b/images/logo_globenet.png differ diff --git a/images/logo_ldn.png b/images/logo_ldn.png new file mode 100644 index 00000000..3334572d Binary files /dev/null and b/images/logo_ldn.png differ diff --git a/images/logo_nbs.png b/images/logo_nbs.png new file mode 100644 index 00000000..c591923e Binary files /dev/null and b/images/logo_nbs.png differ diff --git a/images/logo_ngi.png b/images/logo_ngi.png new file mode 100644 index 00000000..e0449805 Binary files /dev/null and b/images/logo_ngi.png differ diff --git a/images/logo_nlnet.png b/images/logo_nlnet.png new file mode 100644 index 00000000..caf88a73 Binary files /dev/null and b/images/logo_nlnet.png differ diff --git a/images/logo_roundcorner.png b/images/logo_roundcorner.png new file mode 100644 index 00000000..96b2c257 Binary files /dev/null and b/images/logo_roundcorner.png differ diff --git a/images/logo_tetaneutral.png b/images/logo_tetaneutral.png new file mode 100644 index 00000000..4744bcb5 Binary files /dev/null and b/images/logo_tetaneutral.png differ diff --git a/images/lstu_logo.svg b/images/lstu_logo.svg new file mode 100644 index 00000000..a4c24ebb --- /dev/null +++ b/images/lstu_logo.svg @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/lufi_logo.png b/images/lufi_logo.png new file mode 100644 index 00000000..a32ed32e Binary files /dev/null and b/images/lufi_logo.png differ diff --git a/images/lufi_logo.svg b/images/lufi_logo.svg new file mode 100644 index 00000000..7d53d1f3 --- /dev/null +++ b/images/lufi_logo.svg @@ -0,0 +1,93 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/images/lutim_logo.png b/images/lutim_logo.png new file mode 100644 index 00000000..fb4146d7 Binary files /dev/null and b/images/lutim_logo.png differ diff --git a/images/lxc.png b/images/lxc.png new file mode 100644 index 00000000..e344c1dd Binary files /dev/null and b/images/lxc.png differ diff --git a/images/lychee_logo.png b/images/lychee_logo.png new file mode 100644 index 00000000..aa6c318b Binary files /dev/null and b/images/lychee_logo.png differ diff --git a/images/mailman_logo.jpg b/images/mailman_logo.jpg new file mode 100644 index 00000000..edd5e373 Binary files /dev/null and b/images/mailman_logo.jpg differ diff --git a/images/mailman_logo.svg b/images/mailman_logo.svg new file mode 100644 index 00000000..a87f157c --- /dev/null +++ b/images/mailman_logo.svg @@ -0,0 +1,928 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/mailview.jpg b/images/mailview.jpg new file mode 100644 index 00000000..51bc9400 Binary files /dev/null and b/images/mailview.jpg differ diff --git a/images/mantis_logo.png b/images/mantis_logo.png new file mode 100644 index 00000000..d2529c81 Binary files /dev/null and b/images/mantis_logo.png differ diff --git a/images/mastodon_logo.svg b/images/mastodon_logo.svg new file mode 100644 index 00000000..8b1328e8 --- /dev/null +++ b/images/mastodon_logo.svg @@ -0,0 +1 @@ + diff --git a/images/matomo_Logo.svg b/images/matomo_Logo.svg new file mode 100644 index 00000000..14d9f510 --- /dev/null +++ b/images/matomo_Logo.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/matomo_logo.png b/images/matomo_logo.png new file mode 100644 index 00000000..d62dd696 Binary files /dev/null and b/images/matomo_logo.png differ diff --git a/images/mattermost_logo.png b/images/mattermost_logo.png new file mode 100644 index 00000000..189c5dc9 Binary files /dev/null and b/images/mattermost_logo.png differ diff --git a/images/mattermost_logo.svg b/images/mattermost_logo.svg new file mode 100644 index 00000000..57a5184a --- /dev/null +++ b/images/mattermost_logo.svg @@ -0,0 +1,2 @@ + +image/svg+xml \ No newline at end of file diff --git a/images/mediawiki_logo.svg b/images/mediawiki_logo.svg new file mode 100644 index 00000000..294a02af --- /dev/null +++ b/images/mediawiki_logo.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/micro-sd-card.jpg b/images/micro-sd-card.jpg new file mode 100644 index 00000000..f6ba96a3 Binary files /dev/null and b/images/micro-sd-card.jpg differ diff --git a/images/minetest_logo.svg b/images/minetest_logo.svg new file mode 100644 index 00000000..db6bdbf7 --- /dev/null +++ b/images/minetest_logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/mobilizon_logo.png b/images/mobilizon_logo.png new file mode 100644 index 00000000..5f50cf05 Binary files /dev/null and b/images/mobilizon_logo.png differ diff --git a/images/mobilizon_logo.svg b/images/mobilizon_logo.svg new file mode 100644 index 00000000..1130b11f --- /dev/null +++ b/images/mobilizon_logo.svg @@ -0,0 +1 @@ +Fichier 1 \ No newline at end of file diff --git a/images/monitorix_log.png b/images/monitorix_log.png new file mode 100644 index 00000000..11f53426 Binary files /dev/null and b/images/monitorix_log.png differ diff --git a/images/moodle_logo.svg b/images/moodle_logo.svg new file mode 100644 index 00000000..47ceb363 --- /dev/null +++ b/images/moodle_logo.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/images/mumbleserver_logo.svg b/images/mumbleserver_logo.svg new file mode 100644 index 00000000..9414a0a7 --- /dev/null +++ b/images/mumbleserver_logo.svg @@ -0,0 +1,2252 @@ + + + + + Mumble logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Mumble logo + 2009.08.17 + + + Martin Skilnand + + + + + Martin Skilnand + + + + + Mumble team + + + mumble.svg + git://mumble.git.sourceforge.net/gitroot/mumble + Logo for voice chat program mumble + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/mytinytodo_logo.png b/images/mytinytodo_logo.png new file mode 100644 index 00000000..1720924a Binary files /dev/null and b/images/mytinytodo_logo.png differ diff --git a/images/navidrome_logo.png b/images/navidrome_logo.png new file mode 100644 index 00000000..993c8e09 Binary files /dev/null and b/images/navidrome_logo.png differ diff --git a/images/netdata_logo.svg b/images/netdata_logo.svg new file mode 100644 index 00000000..18152fb7 --- /dev/null +++ b/images/netdata_logo.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/images/nettop.jpg b/images/nettop.jpg new file mode 100644 index 00000000..606592ab Binary files /dev/null and b/images/nettop.jpg differ diff --git a/images/networks.png b/images/networks.png new file mode 100644 index 00000000..563b60db Binary files /dev/null and b/images/networks.png differ diff --git a/images/nextcloud_logo.png b/images/nextcloud_logo.png new file mode 100644 index 00000000..e813cecd Binary files /dev/null and b/images/nextcloud_logo.png differ diff --git a/images/odroidc2.jpg b/images/odroidc2.jpg new file mode 100644 index 00000000..dfe2e9c5 Binary files /dev/null and b/images/odroidc2.jpg differ diff --git a/images/olinuxino.jpg b/images/olinuxino.jpg new file mode 100644 index 00000000..87b6833e Binary files /dev/null and b/images/olinuxino.jpg differ diff --git a/images/opensondage_logo.png b/images/opensondage_logo.png new file mode 100644 index 00000000..3a3603ee Binary files /dev/null and b/images/opensondage_logo.png differ diff --git a/images/orangepipcplus.jpg b/images/orangepipcplus.jpg new file mode 100644 index 00000000..aeb8e057 Binary files /dev/null and b/images/orangepipcplus.jpg differ diff --git a/images/osticket_logo.svg b/images/osticket_logo.svg new file mode 100644 index 00000000..2733d70b --- /dev/null +++ b/images/osticket_logo.svg @@ -0,0 +1,96 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/images/ovh_control_panel.png b/images/ovh_control_panel.png new file mode 100644 index 00000000..a59abccc Binary files /dev/null and b/images/ovh_control_panel.png differ diff --git a/images/ovh_dns_zone.png b/images/ovh_dns_zone.png new file mode 100644 index 00000000..611e3dcf Binary files /dev/null and b/images/ovh_dns_zone.png differ diff --git a/images/peertube_embed_01.png b/images/peertube_embed_01.png new file mode 100644 index 00000000..74bc12fa Binary files /dev/null and b/images/peertube_embed_01.png differ diff --git a/images/peertube_logo.png b/images/peertube_logo.png new file mode 100644 index 00000000..7d709ef1 Binary files /dev/null and b/images/peertube_logo.png differ diff --git a/images/peertube_logo.svg b/images/peertube_logo.svg new file mode 100644 index 00000000..b4a60996 --- /dev/null +++ b/images/peertube_logo.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/images/phpmyadmin_logo.svg b/images/phpmyadmin_logo.svg new file mode 100644 index 00000000..95d919f3 --- /dev/null +++ b/images/phpmyadmin_logo.svg @@ -0,0 +1,43 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/pihole_logo.png b/images/pihole_logo.png new file mode 100644 index 00000000..178c085d Binary files /dev/null and b/images/pihole_logo.png differ diff --git a/images/piwigo_logo.png b/images/piwigo_logo.png new file mode 100644 index 00000000..e33c4a11 Binary files /dev/null and b/images/piwigo_logo.png differ diff --git a/images/pleroma_logo.png b/images/pleroma_logo.png new file mode 100644 index 00000000..a199972d Binary files /dev/null and b/images/pleroma_logo.png differ diff --git a/images/plume_logo.svg b/images/plume_logo.svg new file mode 100644 index 00000000..a0075316 --- /dev/null +++ b/images/plume_logo.svg @@ -0,0 +1,37 @@ + + + + Plume Logo - Feather + + + + + + image/svg+xml + + Plume Logo - Feather + 2018/10/07 + + + Abdullah Tarawneh (trwnh.com) + + + + + trwnh + + + A Plume concept logo, with a soft stylized feather. Solid path, no fill. + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/portForwarding_en.png b/images/portForwarding_en.png new file mode 100644 index 00000000..202d437f Binary files /dev/null and b/images/portForwarding_en.png differ diff --git a/images/portForwarding_fr.png b/images/portForwarding_fr.png new file mode 100644 index 00000000..21456c5d Binary files /dev/null and b/images/portForwarding_fr.png differ diff --git a/images/portForwarding_src_en.odg b/images/portForwarding_src_en.odg new file mode 100644 index 00000000..3a6300c1 Binary files /dev/null and b/images/portForwarding_src_en.odg differ diff --git a/images/portForwarding_src_fr.odg b/images/portForwarding_src_fr.odg new file mode 100644 index 00000000..16b9347a Binary files /dev/null and b/images/portForwarding_src_fr.odg differ diff --git a/images/postinstall_cli.png b/images/postinstall_cli.png new file mode 100644 index 00000000..5728dadd Binary files /dev/null and b/images/postinstall_cli.png differ diff --git a/images/postinstall_error.png b/images/postinstall_error.png new file mode 100644 index 00000000..a2687354 Binary files /dev/null and b/images/postinstall_error.png differ diff --git a/images/postinstall_web.png b/images/postinstall_web.png new file mode 100644 index 00000000..b51b25dc Binary files /dev/null and b/images/postinstall_web.png differ diff --git a/images/raspberrypi.jpg b/images/raspberrypi.jpg new file mode 100644 index 00000000..3ddacd24 Binary files /dev/null and b/images/raspberrypi.jpg differ diff --git a/images/restore.png b/images/restore.png new file mode 100644 index 00000000..bb7f37c5 Binary files /dev/null and b/images/restore.png differ diff --git a/images/roundcube.png b/images/roundcube.png new file mode 100644 index 00000000..181e1862 Binary files /dev/null and b/images/roundcube.png differ diff --git a/images/roundcube_logo.svg b/images/roundcube_logo.svg new file mode 100644 index 00000000..04238a06 --- /dev/null +++ b/images/roundcube_logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/images/sdcard.jpg b/images/sdcard.jpg new file mode 100644 index 00000000..3281ab8b Binary files /dev/null and b/images/sdcard.jpg differ diff --git a/images/searx_logo.svg b/images/searx_logo.svg new file mode 100644 index 00000000..302d6c3f --- /dev/null +++ b/images/searx_logo.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/sfr-authentification.png b/images/sfr-authentification.png new file mode 100644 index 00000000..05aa6849 Binary files /dev/null and b/images/sfr-authentification.png differ diff --git a/images/sfr-filtrage.png b/images/sfr-filtrage.png new file mode 100644 index 00000000..9dce0226 Binary files /dev/null and b/images/sfr-filtrage.png differ diff --git a/images/simple-torrent_logo.png b/images/simple-torrent_logo.png new file mode 100644 index 00000000..b18f220d Binary files /dev/null and b/images/simple-torrent_logo.png differ diff --git a/images/slingcode_logo.svg b/images/slingcode_logo.svg new file mode 100755 index 00000000..8758bf4e --- /dev/null +++ b/images/slingcode_logo.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/images/sogo_logo.png b/images/sogo_logo.png new file mode 100644 index 00000000..bfad4b53 Binary files /dev/null and b/images/sogo_logo.png differ diff --git a/images/strut_logo.png b/images/strut_logo.png new file mode 100644 index 00000000..db6668c8 Binary files /dev/null and b/images/strut_logo.png differ diff --git a/images/thunderbird.png b/images/thunderbird.png new file mode 100644 index 00000000..cc273cd4 Binary files /dev/null and b/images/thunderbird.png differ diff --git a/images/thunderbird_config_1.png b/images/thunderbird_config_1.png new file mode 100644 index 00000000..38539882 Binary files /dev/null and b/images/thunderbird_config_1.png differ diff --git a/images/thunderbird_config_2.png b/images/thunderbird_config_2.png new file mode 100644 index 00000000..82ba27a9 Binary files /dev/null and b/images/thunderbird_config_2.png differ diff --git a/images/transmission.png b/images/transmission.png new file mode 100644 index 00000000..96f8ab13 Binary files /dev/null and b/images/transmission.png differ diff --git a/images/ttrss.png b/images/ttrss.png new file mode 100644 index 00000000..4e747523 Binary files /dev/null and b/images/ttrss.png differ diff --git a/images/unetbootin.png b/images/unetbootin.png new file mode 100644 index 00000000..9fd4e374 Binary files /dev/null and b/images/unetbootin.png differ diff --git a/images/usb_key.png b/images/usb_key.png new file mode 100644 index 00000000..ca033498 Binary files /dev/null and b/images/usb_key.png differ diff --git a/images/user_panel.png b/images/user_panel.png new file mode 100644 index 00000000..68f284aa Binary files /dev/null and b/images/user_panel.png differ diff --git a/images/virtualbox.png b/images/virtualbox.png new file mode 100644 index 00000000..9a5f6e54 Binary files /dev/null and b/images/virtualbox.png differ diff --git a/images/virtualbox_1.png b/images/virtualbox_1.png new file mode 100644 index 00000000..cb820dcc Binary files /dev/null and b/images/virtualbox_1.png differ diff --git a/images/virtualbox_2.1.png b/images/virtualbox_2.1.png new file mode 100644 index 00000000..f259ca5a Binary files /dev/null and b/images/virtualbox_2.1.png differ diff --git a/images/virtualbox_2.png b/images/virtualbox_2.png new file mode 100644 index 00000000..7cd1732f Binary files /dev/null and b/images/virtualbox_2.png differ diff --git a/images/virtualbox_3.png b/images/virtualbox_3.png new file mode 100644 index 00000000..6b4aed77 Binary files /dev/null and b/images/virtualbox_3.png differ diff --git a/images/virtualbox_packaging1-en.png b/images/virtualbox_packaging1-en.png new file mode 100644 index 00000000..ec1eaec0 Binary files /dev/null and b/images/virtualbox_packaging1-en.png differ diff --git a/images/virtualbox_packaging1-fr.jpg b/images/virtualbox_packaging1-fr.jpg new file mode 100644 index 00000000..572b9821 Binary files /dev/null and b/images/virtualbox_packaging1-fr.jpg differ diff --git a/images/virtualbox_packaging2-en.png b/images/virtualbox_packaging2-en.png new file mode 100644 index 00000000..87af1cca Binary files /dev/null and b/images/virtualbox_packaging2-en.png differ diff --git a/images/virtualbox_packaging2-fr.jpg b/images/virtualbox_packaging2-fr.jpg new file mode 100644 index 00000000..bb05484f Binary files /dev/null and b/images/virtualbox_packaging2-fr.jpg differ diff --git a/images/virtualbox_packaging3-en.png b/images/virtualbox_packaging3-en.png new file mode 100644 index 00000000..6802a50b Binary files /dev/null and b/images/virtualbox_packaging3-en.png differ diff --git a/images/virtualbox_packaging3-fr.jpg b/images/virtualbox_packaging3-fr.jpg new file mode 100644 index 00000000..850f44e5 Binary files /dev/null and b/images/virtualbox_packaging3-fr.jpg differ diff --git a/images/virtualbox_packaging4-en.png b/images/virtualbox_packaging4-en.png new file mode 100644 index 00000000..9e0f7684 Binary files /dev/null and b/images/virtualbox_packaging4-en.png differ diff --git a/images/virtualbox_packaging4-fr.jpg b/images/virtualbox_packaging4-fr.jpg new file mode 100644 index 00000000..d3528205 Binary files /dev/null and b/images/virtualbox_packaging4-fr.jpg differ diff --git a/images/virtualbox_packaging5-en.png b/images/virtualbox_packaging5-en.png new file mode 100644 index 00000000..942026ab Binary files /dev/null and b/images/virtualbox_packaging5-en.png differ diff --git a/images/virtualbox_packaging5-fr.jpg b/images/virtualbox_packaging5-fr.jpg new file mode 100644 index 00000000..cd0b9656 Binary files /dev/null and b/images/virtualbox_packaging5-fr.jpg differ diff --git a/images/virtualbox_packaging6.jpg b/images/virtualbox_packaging6.jpg new file mode 100644 index 00000000..10ccf4d1 Binary files /dev/null and b/images/virtualbox_packaging6.jpg differ diff --git a/images/vps.png b/images/vps.png new file mode 100644 index 00000000..42866e27 Binary files /dev/null and b/images/vps.png differ diff --git a/images/wallabag2_logo.svg b/images/wallabag2_logo.svg new file mode 100644 index 00000000..303860d9 --- /dev/null +++ b/images/wallabag2_logo.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/wallabag_logo.svg b/images/wallabag_logo.svg new file mode 100644 index 00000000..303860d9 --- /dev/null +++ b/images/wallabag_logo.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/webadmin.png b/images/webadmin.png new file mode 100644 index 00000000..cfb96101 Binary files /dev/null and b/images/webadmin.png differ diff --git a/images/webadmin_fr.png b/images/webadmin_fr.png new file mode 100644 index 00000000..7954be44 Binary files /dev/null and b/images/webadmin_fr.png differ diff --git a/images/weblate_logo.svg b/images/weblate_logo.svg new file mode 100644 index 00000000..feca88dc --- /dev/null +++ b/images/weblate_logo.svg @@ -0,0 +1,124 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/webtrees_logo.png b/images/webtrees_logo.png new file mode 100644 index 00000000..46bf667f Binary files /dev/null and b/images/webtrees_logo.png differ diff --git a/images/wekan_logo.svg b/images/wekan_logo.svg new file mode 100644 index 00000000..da34a07a --- /dev/null +++ b/images/wekan_logo.svg @@ -0,0 +1 @@ +wekan-1_2 \ No newline at end of file diff --git a/images/wemawema_logo.png b/images/wemawema_logo.png new file mode 100644 index 00000000..cff5b9e7 Binary files /dev/null and b/images/wemawema_logo.png differ diff --git a/images/wikijs_logo.svg b/images/wikijs_logo.svg new file mode 100644 index 00000000..52c4a790 --- /dev/null +++ b/images/wikijs_logo.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/wordpress_logo.svg b/images/wordpress_logo.svg new file mode 100644 index 00000000..8628e3ad --- /dev/null +++ b/images/wordpress_logo.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/writefreely_logo.svg b/images/writefreely_logo.svg new file mode 100644 index 00000000..294ca0a3 --- /dev/null +++ b/images/writefreely_logo.svg @@ -0,0 +1,69 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/images/ynh_logo_black.svg b/images/ynh_logo_black.svg new file mode 100644 index 00000000..b25d6aaa --- /dev/null +++ b/images/ynh_logo_black.svg @@ -0,0 +1,35 @@ + + + + + + + image/svg+xml + + + + + + + + + diff --git a/images/ynh_logo_black_300dpi.png b/images/ynh_logo_black_300dpi.png new file mode 100644 index 00000000..26a1d15e Binary files /dev/null and b/images/ynh_logo_black_300dpi.png differ diff --git a/images/ynh_logo_white.svg b/images/ynh_logo_white.svg new file mode 100644 index 00000000..93cedbb1 --- /dev/null +++ b/images/ynh_logo_white.svg @@ -0,0 +1,60 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/images/ynh_logo_white_300dpi.png b/images/ynh_logo_white_300dpi.png new file mode 100644 index 00000000..f81019af Binary files /dev/null and b/images/ynh_logo_white_300dpi.png differ diff --git a/images/yunohost_package.png b/images/yunohost_package.png new file mode 100644 index 00000000..190617b2 Binary files /dev/null and b/images/yunohost_package.png differ diff --git a/images/z-push_logo.jpg b/images/z-push_logo.jpg new file mode 100644 index 00000000..ab0889f0 Binary files /dev/null and b/images/z-push_logo.jpg differ diff --git a/images/zabbix_logo.png b/images/zabbix_logo.png new file mode 100644 index 00000000..378fec3f Binary files /dev/null and b/images/zabbix_logo.png differ diff --git a/images/zap_logo.svg b/images/zap_logo.svg new file mode 100644 index 00000000..94578a3f --- /dev/null +++ b/images/zap_logo.svg @@ -0,0 +1,67 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/images/zerobin_logo.svg b/images/zerobin_logo.svg new file mode 100644 index 00000000..d63c65db --- /dev/null +++ b/images/zerobin_logo.svg @@ -0,0 +1 @@ + diff --git a/images/zerotier_logo.png b/images/zerotier_logo.png new file mode 100644 index 00000000..0e49bd3f Binary files /dev/null and b/images/zerotier_logo.png differ diff --git a/images_ar.md b/images_ar.md new file mode 100644 index 00000000..f9213a43 --- /dev/null +++ b/images_ar.md @@ -0,0 +1,115 @@ +# الصور + +
+
+ + + + + + + diff --git a/images_es.md b/images_es.md new file mode 100644 index 00000000..e9c0ee0f --- /dev/null +++ b/images_es.md @@ -0,0 +1,123 @@ +# Imagenes + + +Esta página requiere que Javascript esté instalado par aparecer correctamente :s. +
+
+
+ +N.B. : Incluso si la imagen no corresponde con la última versión de YunoHost, puedes utilizarla y actualizarla después de la instalación ! + +
+
+ + + + + + + diff --git a/images_fr.md b/images_fr.md new file mode 100644 index 00000000..97b8cf2e --- /dev/null +++ b/images_fr.md @@ -0,0 +1,123 @@ +# Images + + +Cette page requiert que Javascript soit activé pour s'afficher correctement :s. +
+
+
+ +N.B. : Même si l'image ne correspond pas à la dernière version de YunoHost, vous pouvez tout de même l'utiliser puis faire une mise à jour du système après l'installation ! + +
+
+ + + + + + + diff --git a/index.md b/index.md new file mode 100644 index 00000000..c18bd033 --- /dev/null +++ b/index.md @@ -0,0 +1,160 @@ +
+ + + +
+

+ Haters gonna host + I host myself, Yo! + Go host yourself! + Get off of my cloud + Host me I’m famous + Try Internet + How I met your server + john@doe.org + dude, Y U NO Host?! + Keep calm and host yourself + Be the cloud you want to see in the world +

+ +
+ + + +
+ +
+ +

With YunoHost, you can easily manage a server for your friends, association or enterprise. Learn more

+ +
+ +
+ + + + +
+
+

Setup your server with ease, you already have everything at home

+


See the requirements

+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+

Manage your server from a clean and simple web interface

+


Try the administration

+
+
+ +
+ +
+
+

Install applications to build your little corner of Internet

+


Browse the app catalog

+
+
+
+ +
+
+
+ +
+ +
+
+

Hey! We are humans!
+ If you have questions, issues or if you are just an enthusiast, come and leave a message on our forum or chatroom!

+ + +
+
+ +
+ +
+
+

They support us <3
+ We are thankful for our sponsors
providing us with infrastructure and grants!
+

+

+ + + +

+

+ + + + + +

+
+
+ +
+ + diff --git a/index_ar.md b/index_ar.md new file mode 100644 index 00000000..af485420 --- /dev/null +++ b/index_ar.md @@ -0,0 +1,174 @@ +
+ + + +
+

+ تعالي إلى منزلي، أنا مُستضافة عند صديقة + إن لم تقم باستضافة نفسك بنفسك في عمر الخمسين فاعرف أنك قد فشلت في حياتك + فاستضافوا أنفسهم بأنفسم و كانت لهم ذرية كثيرة + الإنترنت، قراءة و كتابة + monsieur@michu.fr + ليس هناك ما أخفيه + كيف التقيتُ بالسيرفر الخاص بك +

+ +
+ + + +
+ +
+ +

YunoHost أداة تُمكّنكم من تنصيب و استخدام خادمكم بأسلوب سهل.

+ +
+ +
+ +
+ +
+ +
+
+

قوموا بتنصيب خادومكم بكل سهولة، إنكم تمتلكون في المنزل كل ما تحتاجون إليه

+

الإطلاع على المتطلبات الأساسية

+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+

استمتعوا بتطبيقات الويب الخاصة بكم و انْشِئُوا موطنكم الصغير على الإنترنت

+


قائمة التطبيقات المتوفرة

+
+
+ +
+ +
+
+

أديروا السيرفر الخاص بكم كما يحلو لكم : سواءا عبر الويب أو أجهزتكم المحمولة أو عبر سطر الأوامر

+


جربوا الواجهة الإدارية

+
+
+
+ +
+
+
+ +
+ +
+ +
+

إكتشفوا قدرات خادمكم، ولماذا يهمكم الأمر

+


إطلعوا على الدليل

+
+
+ +
+ +
+

تذكروا ! نحن بشر !
إن كان عندكم تساؤل أو واجهتكم مشكلة أو ربما يهمُّكُم المشروع فقط، انضموا إلينا عبر غرفة المحادثة الخاصة بنا لتبليغنا التحية بالنقر على الزر أدناه  

+ + +

+ Donation button +

+ +
+ +
+ +
+
+

They support us <3
+ We are thankful for our sponsors
providing us with infrastructure and grants!
+

+

+ + + +

+

+ + + + + +

+
+
+ + +
+ + diff --git a/index_de.md b/index_de.md new file mode 100644 index 00000000..0fde591a --- /dev/null +++ b/index_de.md @@ -0,0 +1,174 @@ +
+ + + +
+

+ Self-Hosting für dich, Mama. + Haters gonna host + Ich host es mir selbst, Baby + Host dich doch selber! + Raus aus meiner Cloud + Hostet mich, ich bin berühmt. + Internet ausprobieren + Ich werd’ noch zum Host + erika@mustermann.de + Alter, Y U NO Host?! + Wer wird denn gleich zu ’nem Host gehen +

+ +
+ + +
+ +
+ +

YunoHost ist ein Serverbetriebssystem, das
+Self-Hosting für alle ermöglicht.

+ +
+ +
+ + + +
+
+

Installiere Dir ganz einfach Deinen eigenen Server. Du hast bereits alles, was Du dazu brauchst.

+


Hardware-Voraussetzungen

+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+

Verwende Deine Lieblings-Apps und richte Dir Deine eigene kleine Ecke im Netz ein.

+


Liste der verfügbaren Apps

+
+
+ +
+ +
+
+

Verwalte Deinen Server, wie es Dir am besten gefällt: übers Web, mobil oder mit der Kommandozeile.

+


Verwaltung ausprobieren

+
+
+
+ +
+
+
+ +
+ +
+ +
+

Entdecke die Möglichkeiten, die Du mit einem eigenen Server hast
– und warum Self-Hosting Sinn macht.

+


Dokumentation lesen

+
+
+ +
+ +
+

Hallo! Wir sind auch nur Menschen.
Wenn Du eine Frage oder ein Problem hast, oder auch nur neugierig bist, hinterlass’ einfach eine Nachricht in unserem Chat – ein Klick auf den untenstehenden Button genügt. 

+ +

+ Spendenlink +

+ +
+ +
+ +
+
+

They support us <3
+ We are thankful for our sponsors
providing us with infrastructure and grants!
+

+

+ + + +

+

+ + + + + +

+
+
+ + +
+ + + diff --git a/index_es.md b/index_es.md new file mode 100644 index 00000000..3a29ed7b --- /dev/null +++ b/index_es.md @@ -0,0 +1,172 @@ +
+ + + +
+

+ Okupa tu servidor + ¡Yo me alojo a mi mismo! + ¡Anda y que te alojen! + Fuera de mi nube + Alójame, soy famoso + Prueba Internet + Su fiel servidor + yo@mismo.parami + Tío ¡¿X K NO alojas?! + Tranqui y alójate +

+ +
+ + + +
+ +
+ +

YunoHost es un sistema operativo de servidor que pretende hacer accesible el autoalojamiento para todo el mundo.

+ +
+ +
+ + + +
+
+

Instale su servidor fácilmente, ya tiene todo en su casa

+


Vea los requisitos

+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+

Disfrute sus aplicaciones y construya su rinconcito de Internet

+


Lista de aplicaciones disponibles

+
+
+ +
+ +
+
+

Gestione su servidor como le guste: vía web, móvil o línea de órdenes

+


Pruebe la administración

+
+
+
+ +
+
+
+ +
+ +
+ +
+

Explore lo que puede hacer con un servidor y la razón de su importancia

+


Lea la documentación

+
+
+ +
+ +
+

¡Oye! ¡Somos humanos!
Si tiene alguna pregunta, problema o es simplemente un fan, deje un mensaje en nuestra sala de chat pulsando en el botón inferior  

+ +

+ Botón de donación +

+ +
+ +
+ +
+
+

They support us <3
+ We are thankful for our sponsors
providing us with infrastructure and grants!
+

+

+ + + +

+

+ + + + + +

+
+
+ + +
+ + diff --git a/index_fr.md b/index_fr.md new file mode 100644 index 00000000..54333a4d --- /dev/null +++ b/index_fr.md @@ -0,0 +1,157 @@ +
+ + + +
+

+ Viens chez moi, je suis hébergé chez une copine + Ils s’hébergèrent et eurent beaucoup d’enfants + Internet, lecture et écriture + monsieur@michu.fr + J’ai rien à cacher + How I met your server +

+ +
+ + + +
+ +
+ +

Avec YunoHost, gérez facilement un serveur pour vos amis, votre association, votre entreprise. En savoir plus

+ +
+ +
+ + + +
+ +
+
+

Installez votre serveur simplement, vous avez déjà tout ce qu’il faut à la maison

+

Voir les prérequis

+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+

Gérez votre serveur depuis une interface web simple et propre

+


Essayez l’interface d’administration

+
+
+ +
+ +
+
+

Construisez votre petit bout d’Internet en ajoutant des applications en quelques clics

+


Parcourir le catalogue d’applications

+
+
+
+ +
+
+
+ +
+ +
+
+

Hey ! Nous sommes humains !
+ Si vous avez une question, un problème, ou que vous êtes tout simplement intéressé, passez dire « Bonjour » sur notre forum ou le chat!

+
+ +
+ +
+ +
+
+

Nos soutiens <3
+ Nous sommes reconnaissant envers nos mécènes
qui nous soutiennent financièrement ou via des dons d'infrastructure
+

+

+ + + +

+

+ + + + + +

+
+
+ + +
+ + + diff --git a/index_it.md b/index_it.md new file mode 100644 index 00000000..e0884761 --- /dev/null +++ b/index_it.md @@ -0,0 +1,174 @@ +
+ + + +
+

+ Self-hosting for you, mom + Haters gonna host + I host myself, Yo! + Go host yourself! + Get off of my cloud + Host me I’m famous + Try Internet + How I met your server + mario@rossi.it + dude, Y U NO Host?! + Keep calm and host yourself +

+ +
+ + + +
+ +
+ +

YunoHost è un sistema operativo per server con l'obiettivo di rendere il self-host accessibile a tutti.

+ +
+ +
+ + + +
+
+

Installa il tuo server con facilità, hai già tutto a casa

+


Vedi i requisiti

+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+

Dilettati con le tue app e crea il tuo piccolo angolo di Internet

+


Lista delle app disponibili

+
+
+ +
+ +
+
+

Gestisci il tuo server nel modo che preferisci: via Web, mobile o riga di comando

+


Prova l'amministrazione

+
+
+
+ +
+
+
+ +
+ +
+ +
+

Esplora cosa puoi fare con un server, e perché è importante

+


Leggi la documentazione

+
+
+ +
+ +
+

Hey! Siamo umani!
Se hai domande, problemi o se sei solo un appassionato, lascia un messaggio sulla nostra chat cliccando il pulsante qui sotto  

+ +

+ Donation button +

+ +
+ +
+ +
+
+

They support us <3
+ We are thankful for our sponsors
providing us with infrastructure and grants!
+

+

+ + + +

+

+ + + + + +

+
+
+ + +
+ + + diff --git a/index_oc.md b/index_oc.md new file mode 100644 index 00000000..80c1c013 --- /dev/null +++ b/index_oc.md @@ -0,0 +1,172 @@ +
+ + + +
+

+ Ven a l’ostal, soi albergat en çò d’una amiga + S’alberguèron e aguèron un molon d’enfants + Internet, lectura e escritura + monssur@michu.fr + Ai pas res a rescondre + How I met your server +

+ +
+ + + +
+ +
+ +

YunoHost es una aisina que vos permet d’installar e d’utilizar facilament vòstre pròpri servidor.

+ +
+ +
+ + + +
+ +
+
+

Installatz vòstre servidor simplament, avètz ja tot çò que cal a l’ostal

+

Far veire los requistes

+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+

Profitatz de vòstras aplicacions web e fabricatz vòstre canton d’Internet

+


Lista de las aplicacions disponiblas

+
+
+ +
+ +
+
+

Gerissètz vòstre servidor coma volgatz : via web, mobil o en linha de comanda

+


Ensajar l’interfàcia d’administracion

+
+
+
+ +
+
+
+ +
+ +
+ +
+

Exploratz las possibilitats de vòstre servidor, e aprenètz perque es important

+


Legir la documentacion

+
+
+ +
+ +
+

Ou ! Sèm umans !
S’avètz una question, un problèma, o que sètz simplament interessat, venètz dire « Bonjorn » dins nòstra sala de discussion en clicar lo boton aval  

+ +

+ Donation button +

+ +
+ +
+ +
+
+

They support us <3
+ We are thankful for our sponsors
providing us with infrastructure and grants!
+

+

+ + + +

+

+ + + + + +

+
+
+ + +
+ + + diff --git a/install.md b/install.md new file mode 100644 index 00000000..39ec8e87 --- /dev/null +++ b/install.md @@ -0,0 +1,90 @@ +# Installation guide + +There are multiple ways to install YunoHost. The process may differ slightly depending on whether it takes place at home or on a remote server, and depending on the hardware used: **[See the requirements](/hardware)** + +This page lists a few installation guides. + +--- + +

Give it a try

+ +
+ + + + + +
+ + + + +
+ +
+ +--- + +

Install at home

+ + + +
+ + +--- + +

Install on a remote server

+ +
+ Local associative ISP near you might be able to provide you with a *Virtual Private Server* (VPS), managed by human beings who respect users and care about [Net Neutrality](https://en.wikipedia.org/wiki/Net_neutrality) ! Check out [this page](https://db.ffdn.org/) for more information. +
+ + + +
+ +--- + +

Advanced / others

+ + diff --git a/install_ar.md b/install_ar.md new file mode 100644 index 00000000..04705db4 --- /dev/null +++ b/install_ar.md @@ -0,0 +1,83 @@ +#
دليل التنصيب
+ +
+يمكن تنصيب واي يونوهوست بِعدّة طُرُق و أساليب. فطريقة التنصيب تختلف قليلاً فقط إذا ما كُنتم تودون تثّبيتَهُ مَحلّياً في المنزل أو عَنْ بُعد و كذا نوع الجهاز : **[إطّلعوا على الأجهزة المتوافقة](/hardware)** +
+
+تقوم هذه الصفحة بإحصاء الطرق المختلفة للتنصيب مُرتبةً حسب المواضيع. +
+ +--- + +

التجريب

+ + + +
+ +--- + +

عملية النتصيب في المنزل

+ + + +
+ +--- + +

التنصيب عن بُعد

+ +
+ بإِمكانْ جمعيات مُزَوِّدي الإنترنت القريبة منكم أن تُوفّر لكم *خادوماً إفتراضياً خاصاً* (VPS) ، خادوم يُديره بشرٌ و يحترمُ قيمةَ المُستخدِمين و [حِياديّةَ الإنترنت](https://fr.wikipedia.org/wiki/Neutralit%C3%A9_du_r%C3%A9seau) ! إطّلعوا على [هذه الصفحة](https://db.ffdn.org/) للمزيد مِن المعلومات. +
+ + + +
+ +--- + +

طُرُق مُتَقدِّمة / أخرى

+ + diff --git a/install_es.md b/install_es.md new file mode 100644 index 00000000..a6b597e8 --- /dev/null +++ b/install_es.md @@ -0,0 +1,81 @@ +# Guía de instalación + +Existen varias maneras de instalar YunoHost. El método y el hardware difieren un poco si quieres instalarlo en tu casa o en acceso remoto : **[ver el hardware compatible](/hardware)** + +Esta página enumera varios tipos de instalaciones, clasificados por categorías. + +--- + +

Probar

+ + + +
+ +--- + +

Instalar en casa

+ + + +
+ +--- + +

Instalación remota

+ +
+ Proveedores de Internet asociativos cerna de ti pueden proponerte un *Servidor Virtual Privado* (VPS), administrado por humanos que respetan los usuarios y la [Neutralitad de Internet](https://es.wikipedia.org/wiki/Neutralidad_de_red) ! Ver [esta página](https://db.ffdn.org/) por mas informaciones. +
+ + + +
+ +--- + +

Avanzado / otros

+ + diff --git a/install_fr.md b/install_fr.md new file mode 100644 index 00000000..f1e4b827 --- /dev/null +++ b/install_fr.md @@ -0,0 +1,84 @@ +# Guide d’installation + +Il existe plusieurs manières d’installer YunoHost. La méthode d’installation diffère légèrement si vous souhaitez l’installer chez vous ou à distance, et du matériel utilisé : **[voir le matériel compatible](/hardware)** + +Cette page liste plusieurs types d’installations, classés par catégories. + +--- + +

Essayer

+ + + +
+ +--- + +

Installer à la maison

+ + + +
+ +--- + +

Installer à distance

+ +
+ Des FAI associatifs près de chez vous sont peut-être capable de vous fournir un *Serveur Privé Virtuel* (VPS), géré par des humains qui respectent les utilisateurs et la [Neutralité du Net](https://fr.wikipedia.org/wiki/Neutralit%C3%A9_du_r%C3%A9seau) ! Voir [cette page](https://db.ffdn.org/) pour plus d'informations. +
+ + + +
+ +--- + +

Avancé / autres

+ + diff --git a/install_iso.md b/install_iso.md new file mode 100644 index 00000000..43575844 --- /dev/null +++ b/install_iso.md @@ -0,0 +1,36 @@ +# Install on a regular computer + +*Find other ways to install YunoHost **[here](/install)**.* + +### Requirements + + + + + +* A x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop. +You can use any computer with **256MB RAM or more**. +* Another computer to read this guide and access to your server. +* A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth +* A **USB stick** of at least 1GB capacity **OR** a standard **blank CD** +* ***Particular case*** : If your server has no graphic card, [prepare iso for booting with serial port](https://github.com/luffah/debian-mkserialiso). + +--- + +## Installation steps + + +0. Download the YunoHost ISO image + +1. Burn the ISO image on a USB stick + +2. Boot the machine and run the installation + +3. Proceed with the initial configuration (post-installation) + +--- + +To connect directly to your computer or with [SSH](/ssh) (only on local network: +* User: **root** +* Password: **yunohost** + diff --git a/install_iso_de.md b/install_iso_de.md new file mode 100644 index 00000000..f25dc7d6 --- /dev/null +++ b/install_iso_de.md @@ -0,0 +1,35 @@ +# Instalation auf einem normalen Computer + +*Um andere Wege zu finden, YunoHost zu instalieren, klicke **[hier](/install)**.* + +### Anforderungen + + + + + +* Einen x86-kompatibele Hardware für YunoHost: Laptop, Netbook oder Desktop. +Du kannst jeden Computer nutzen der **256MB RAM oder mehr** hat. +* Einen anderen Computer, um diesen Guide zu lesen und der auf deinen Server zugreift. +* Einen [angemessenen Internet-Provider](/isp), am besten mit guter und unlimitierter Bandweite. +* Einen **USB Stick** mit mindestens 1GB Speicher **ODER** eine normale **Blanko-CD** +* ***Sonderfall*** : Wenn dein Server keine Grafikkarte hat, bereite die ISO für einen Start mit Seriellem Port vor (https://github.com/luffah/debian-mkserialiso). + +--- + +## Instalationsschritte + + +0. Lade die YunoHost ISO Imagedatei herunter image + +1. Brenne die Iso-Datei auf einen USB-Stick oder eine CD + +2. Starte die Maschine und führe die Instalation aus + +3. Fahre fort mit der Erstkonfiguration (Nachinstalation) + +--- + +Um dich direkt mit dem Computer oder mit [SSH](/ssh) (only on local network) zu verbinden: +* Benutzername: **root** +* Passwort: **yunohost** diff --git a/install_iso_es.md b/install_iso_es.md new file mode 100644 index 00000000..fe9f9896 --- /dev/null +++ b/install_iso_es.md @@ -0,0 +1,38 @@ +# Instalación en un ordenador + +*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.* + +## Prerrequisitos + + + + + +* Un ordenador compatible x86 dedicado a YunoHost : portátil, netbook, ordenador de escritorio. Puedes reutilizar calquiera máquina con **256 Mo de RAM mínimo** +* Otro ordenador para examinar esta guía y acceder a tu servidor +* Un [proveedor de Internet ético](/isp), de preferencia con acceso de buena velocidad (ascendente) +* Una **memoria USB** con capacidad mínima de 1Go **O** un **CD en blanco** estándar +* ***Casos particulares*** : si tu servidor no tiene tarjeta gráfica, hay que preparar un ISO que se inicie sobre el puerto de serie](https://github.com/luffah/debian-mkserialiso). + +--- + +## Etapas de instalación + +0. Descargar la imagen ISO + +1. Copiar la imagen ISO + +2. Encender e instalar + +3. Post-instalación + +--- + +Para conectarse directamente al ordenador (únicamente en local) : +* Usuario : **root** +* Contraseña : **yunohost** + + +## Casos específicos / avanzados + +si el ordenador no tiene tarjeta gráfica pero sí tiene un puerto de serie : hay que modificar el ISO para un inicio con la consola de serie. Una solución es utilizar [un script que modifica las opciones de inicio](https://github.com/luffah/debian-mkserialiso). diff --git a/install_iso_fr.md b/install_iso_fr.md new file mode 100644 index 00000000..9b119b6e --- /dev/null +++ b/install_iso_fr.md @@ -0,0 +1,38 @@ +# Installation sur ordinateur + +*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.* + +## Prérequis + + + + + +* Un matériel compatible x86 dédié à YunoHost : portable, netbook, ordinateur. Vous pouvez réutiliser n’importe quelle machine avec **256 Mo de RAM minimum** +* Un autre ordinateur pour parcourir ce guide et accéder à votre serveur +* Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse de téléversement (débit montant) +* Une **clé USB** d’une capacité minimum d’1 Go **OU** un **CD vierge** standard +* ***Cas particulier*** : Si votre serveur n'a pas de carte graphique, il faut [préparer un ISO qui démarre sur le port série](https://github.com/luffah/debian-mkserialiso). + +--- + +## Étapes d’installation + +0. Télécharger l'image ISO de YunoHost + +1. Flasher l’image ISO sur une clef USB + +2. Démarrer la machine et installer YunoHost + +3. Effectuer la configuration initiale (post-installation) + +--- + +Pour se connecter directement sur l’ordinateur (uniquement en local) : +* Utilisateur : **root** +* Mot de passe : **yunohost** + + +## Cas spécifiques / avancés + +Si l'ordinateur n'a pas de carte graphique mais a un port série : il faut modifier l'ISO pour démarrer avec la console série. Une solution est d'utiliser [un script qui modifie les options de démarrage](https://github.com/luffah/debian-mkserialiso). diff --git a/install_iso_it.md b/install_iso_it.md new file mode 100644 index 00000000..f4c702bc --- /dev/null +++ b/install_iso_it.md @@ -0,0 +1,36 @@ +# Installazione in un computer + +*Altri modi per installare YunoHost **[Clicca qui](/install)**.* + +### Requisiti + + + + + +* Un computer con architettura x86: laptop, nettop, netbook, desktop. +Puoi usare qualsiasi computer con minimo 256 MB di ram**. +* Un altro computer per leggere questa guida e per accedere al tuo server. +* un [buon ISP](/isp), possibilmente con una banda illimitata. +* una **chiavetta USB** da almeno 1 GO **O** un classico **CD/DVD vuoto** +* ***casi particolari*** : se il tuo server non ha una scheda video, [prepara l'ISO per fare il boot con la porta seriale](https://github.com/luffah/debian-mkserialiso). + +--- + +## Installazione + + +0. Scarica l'ISO di YunoHost + +1. Scrivi l'immagine disco su una chiavetta USB + +2. Accendi il computer facendo il boot da USB + +3. Procedi con la prima configurazione (post-installation) + +--- + +To connect directly to your computer or with [SSH](/ssh) (only on local network) : +Per connettersi direttamente al computer o con [SSH](/ssh) (solo su rete locale) : +* User : **root** +* Password : **yunohost** diff --git a/install_it.md b/install_it.md new file mode 100644 index 00000000..94f95373 --- /dev/null +++ b/install_it.md @@ -0,0 +1,89 @@ +# Guida all'installazione + +Ci sono diverse maniere per installare YunoHost. Il procedimento può essere leggermente diverso a seconda che si esegua a casa o su un server remoto, e dipende dall'hardware usato: +**[Vedi i requisiti](/hardware)** + +Questa pagina elenca alcune guide all'installazione. + +--- + +

Provalo

+ + + + + + + + +
+ +--- + +

Installalo a casa

+ + + +
+ + +--- + +

Installalo su un server remoto

+ +
+ ISP locali potrebbero essere in grado di fornire un *Server Privato Vrituale* (VPS), gesito da esseri umani che rispettano gli utenti e si preoccupano della [Net Neutrality](https://en.wikipedia.org/wiki/Net_neutrality) ! Guarda [questa pagina](https://db.ffdn.org/) per maggiori informazioni. +
+ + + +
+ +--- + +

Avanzate / altri

+ + + +
diff --git a/install_manually.md b/install_manually.md new file mode 100644 index 00000000..54bee66f --- /dev/null +++ b/install_manually.md @@ -0,0 +1,22 @@ +# Installing YunoHost manually + +
+This procedure only works on **Debian 10** machines (with **kernel >= 3.12**)) +
+ +Once you have access to a command line on your server (either directly or through SSH), you can install yunohost by running command as root : + +```bash +curl https://install.yunohost.org | bash +``` + +*(If `curl` is not installed on your system, you might need to install it with `apt install curl`. Otherwise, if the command does not do anything, you might want to `apt install ca-certificates`)* + +Once the installation is finished, you may want to [**proceed to post-installation**](/postinstall) + +--- + +**Note for advanced users concerned with the `curl|bash` approach** + +If you strongly object to the `curl|bash` way (and similar commands) of installing software, consider reading ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) on Sandstom's blog, and possibly [this discussion on Hacker News](https://news.ycombinator.com/item?id=12766350). + diff --git a/install_manually_de.md b/install_manually_de.md new file mode 100644 index 00000000..00680e44 --- /dev/null +++ b/install_manually_de.md @@ -0,0 +1,21 @@ +# YunoHost manuell installieren + +
+Dieser Vorgang funktioniert nur unter **Debian 10** (mit **kernel >= 3.12**)) +
+ +Sobald Du Zugriff auf die Kommandozeile auf Deinem Server hast (entweder direkt oder über SSH), kannst Du yunohost installieren, in dem Du das folgende Kommando als root ausführst: + +```bash +curl https://install.yunohost.org | bash +``` + +*(Falls `curl` noch nicht auf Deinem System installiert ist, musst Du es eventuell mit `apt install curl` installieren. Falls das Kommando fehlschlägt, ist eventuell ein `apt install ca-certificates` notwendig.)* + +Sobald die Installation abgeschlossen ist, fahre mit der [**Postinstallation**](/postinstall) fort. + +--- + +**Anmerkung für forgeschrittene Benutzer mit Sorge gegenüber dem `curl|bash` Ansatz** + +Falls Du stark gegen den `curl|bash` Weg (und ähnlicher Kommandos) zum installieren von Software eingestellt bist, empfehlen wir, ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) auf dem Sandstom Blog, und vielleicht [diese Diskussion auf Hacker News](https://news.ycombinator.com/item?id=12766350) zu lesen (beides Englisch). \ No newline at end of file diff --git a/install_manually_es.md b/install_manually_es.md new file mode 100644 index 00000000..128d6b24 --- /dev/null +++ b/install_manually_es.md @@ -0,0 +1,22 @@ +# Instalar YunoHost manualmente + +
+This procedure only works on **Debian 10** machines (with **kernel >= 3.12**)) +
+ +Una vez que tienes acceso a tu servidor (directamente o con SSH), puedes instalar YunoHost ejecutando este comando como root : + +```bash +curl https://install.yunohost.org | bash +``` + +*(Si `curl` no está instalado en tu sistema, tal vez tendrás que instalarlo con `apt install curl`. De otro modo, si el comando no muestra nada, puedes intentar `apt install ca-certificates`)* + +Cuando la instalación esté terminada, habrá que [**proceder a la post-instalación**](/postinstall) + +--- + +**Nota para los usuarios expertos preocupados por el enfoque `curl|bash`** + +Si no te gusta utilizar `curl|bash` (ou comandos similares) para desplegar software, toma el tiempo de leer ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) en el blog de Sandstorm, y también [esta discusión en Hacker News](https://news.ycombinator.com/item?id=12766350). + diff --git a/install_manually_fr.md b/install_manually_fr.md new file mode 100644 index 00000000..101323ce --- /dev/null +++ b/install_manually_fr.md @@ -0,0 +1,22 @@ +# Installer YunoHost manuellement + +
+Cette procédure fonctionne seulement sur des machines avec **Debian 10** (et **kernel >= 3.12**)) +
+ +Une fois que vous avez accès à votre serveur (directement ou par SSH), vous pouvez installer YunoHost en exécutant cette commande en tant que root : + +```bash +curl https://install.yunohost.org | bash +``` + +*(Si `curl` n'est pas installé sur votre système, il vous faudra peut-être l'installer avec `apt install curl`. Autrement, si la commande n'affiche rien du tout, vous pouvez tenter `apt install ca-certificates`)* + +Une fois l'installation terminée, il vous faudra [**procéder à la post-installation**](/postinstall) + +--- + +**Note pour les utilisateurs avancés inquiets à propos de l'approche `curl|bash`** + +Si vous êtes suspicieux de la tendance à utiliser `curl|bash` (ou commandes similaires) pour déployer des logiciels, prenez le temps de lire ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) sur le blog de Sandstorm, et possiblement [cette discussion sur Hacker News](https://news.ycombinator.com/item?id=12766350). + diff --git a/install_on_arm_board.md b/install_on_arm_board.md new file mode 100644 index 00000000..a7c1b503 --- /dev/null +++ b/install_on_arm_board.md @@ -0,0 +1,48 @@ +# Install YunoHost on ARM board + +*Find other ways to install YunoHost **[here](/install)**.* + +
+ + +
+ +
+Before setting up a server at home, it is recommended that you know the [possible limitations imposed by your ISP](/isp). If they are too restrictive, you might consider using a VPN to bypass them. +
+ +## Pre-requisites + +- An ARM board with 500MHz CPU and 512 MB of RAM; +- A power supply for your board; +- A microSD card: **8GB** capacity (at least) and **Class 10** speed rate are highly recommended (like the [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)); +- An ethernet cable (RJ-45) to connect your board to your router; +- A [reasonable ISP](/isp), preferably with a good and unlimited upload bandwidth. + +--- + +## Install with the pre-installed image (recommended) + +0. Download the pre-installed image for your board +
+If no pre-installed image exists for your board, you can follow the instructions to "Install on top of ARMbian" + +1. Flash the SD card with the image + +2. Boot the board and connect to the web interface at `yunohost.local` + +3. Proceed with the initial configuration (post-installation) + +--- + +## Install on top of ARMbian + +0. Download the ARMbian image for your board + +1. Flash the SD card with the image + +2. Plug & boot + +3. Connect to your server with SSH + +4. Follow the generic install procedure diff --git a/install_on_arm_board_es.md b/install_on_arm_board_es.md new file mode 100644 index 00000000..31b03557 --- /dev/null +++ b/install_on_arm_board_es.md @@ -0,0 +1,47 @@ +# Instalar YunoHost en una tarjeta ARM + +*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.* + +
+ + +
+ +
+Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las [posibles restricciones impuestas por tu Proveedor de Internet](/isp). Si tu proveedor es demasiado restrictivo, puedes utilizar un VPN para eludir estas restricciones. +
+ +- Una tarjeta ARM con un procesador de 500 MHz et 512 Mo de memoria RAM ; +- Un adaptador de corriente para alimentar la tarjeta ; +- Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ; +- Un cable ethernet/RJ-45 para conectar la carte con el router / caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.) +- Un [proveedor de Internet ético](/isp), de preferencia con una buena velocidad de upload. + +--- + +## Instalación con la imagen pre-instalada (recomendada) + +0. Descargar la imagen pre-instalada para tu tarjeta ARM +
+Si no existe una imagen dedicada a tu tarjeta, puedes seguir la sección "Instalación encima de ARMbian". + +1. Poner la imagen en tu tarjeta SD + +2. Conectar y encender + +3. Proceder a la post-instalación + +--- + +## Instalación encima de ARMbian + +0. Descargar la imagen ARMbian para tu tarjeta ARM + +1. Poner la imagen en tu tarjeta SD + +2. Conectar y encender + +3. Conectarse en SSH + +4. Proceder a la post-instalación genérica + diff --git a/install_on_arm_board_fr.md b/install_on_arm_board_fr.md new file mode 100644 index 00000000..21db1608 --- /dev/null +++ b/install_on_arm_board_fr.md @@ -0,0 +1,47 @@ +# Installer YunoHost sur carte ARM + +*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install)**.* + +
+ + +
+ +
+Avant d'héberger un serveur chez vous, il est recommandé de prendre connaissance des [possibles limitations liées à votre FAI](/isp). Si votre FAI est trop contraignant, vous pouvez envisager d'utiliser un VPN pour contourner ces limitations. +
+ +- Une carte ARM avec un processeur de 500 MHz et 512 Mo de mémoire vive ; +- Un adaptateur secteur pour alimenter la carte ; +- Une carte microSD : au moins **8 Go** et **Classe 10** (par exemple une [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ; +- Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet. (Avec le Raspberry Pi 0, vous pouvez connecter votre carte avec un câble OTG et un adaptateur Wifi USB.) +- Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse d’upload. + +--- + +## Installation avec l'image pré-installée (recommandée) + +0. Télécharger l'image pré-installée pour votre carte ARM +
+Si il n'existe pas d'image pré-installée pour votre carte, vous pouvez suivre la section "Installation par dessus ARMbian". + +1. Flasher la carte SD avec l'image + +2. Démarrer la carte et se connecter à l'interface web sur `yunohost.local` + +3. Effectuer la configuration initiale (post-installation) + +--- + +## Installation par dessus ARMbian + +0. Télécharger l'image ARMbian pour votre carte ARM + +1. Flasher la carte SD avec l'image + +2. Brancher & démarrer + +3. Se connecter en SSH + +4. Suivre la procédure d'installation générique + diff --git a/install_on_debian.md b/install_on_debian.md new file mode 100644 index 00000000..99fc194f --- /dev/null +++ b/install_on_debian.md @@ -0,0 +1,24 @@ +# Installation on Debian + +*Find other ways to install YunoHost **[here](/install)**.* + +### Requirements + + + +An ARM box, a VPS, a dedicated server, a standard x86 computer, an old Macintosh, ... + +* with **Debian 10** (Buster) installed (with kernel >= 3.12) + * the Debian 10 ISO can be downloaded from [here](https://www.debian.org/releases/buster/debian-installer/). Take the 'netinst CD image' for your architecture. + * N.B. : having a graphical environment is *not* recommended! Servers are meant to be administrated remotely! +* connected to the Internet +* with a direct **root access** or via SSH + +--- + +## Installation steps + +1. Install manually + +2. Post-install + diff --git a/install_on_debian_ar.md b/install_on_debian_ar.md new file mode 100644 index 00000000..455830f8 --- /dev/null +++ b/install_on_debian_ar.md @@ -0,0 +1,23 @@ +
+# التنصيب على ديبيان + +*يمكنكم الإطلاع على طُرق أخرى لتنصيب واي يونوهوست YunoHost **[هنا](/install)**.* + +## المتطلبات + + + +على منصة ARM أو على خادوم إفتراضي خاص أو على خادوم إستضافة أو على حاسوب x86 عادي أو على حاسوب ماكينطوش قديم … إلخ + +* على **ديبيان 8** (جيسي) قد تم تنصيبه مِن قبل +* مُتصل بالإنترنت عبر كابل إيثرنت +* مباشرة عبر **النفاذ بالمستخدم الجذري root** أو عبر الـ SSH + +--- + +## خطوات التنصيب + +1. التنصيب يدويًا + +2. ما بعد التنصيب + diff --git a/install_on_debian_fr.md b/install_on_debian_fr.md new file mode 100644 index 00000000..013a492e --- /dev/null +++ b/install_on_debian_fr.md @@ -0,0 +1,24 @@ +# Installation sur Debian + +*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.* + +## Prérequis + + + +Sur une plateforme ARM, un VPS, un serveur dédié, un ordinateur x86 standard, un vieux Macintosh,... + +* avec **Debian 10** (Buster) installé (avec un kernel >= 3.12) + * l'ISO Debian 10 ISO peut être téléchargée depuis [cette page](https://www.debian.org/releases/buster/debian-installer/). Prenez la 'netinst CD image' pour votre architecture + * N.B. : Avoir un environnement graphique n'est *pas* recommandé ! Les serveurs sont généralement administrés à distance ! +* connecté à Internet +* avec un **accès root** directement ou par SSH + +--- + +## Étapes d’installation + +1. Installer manuellement + +2. Post-installation + diff --git a/install_on_debian_it.md b/install_on_debian_it.md new file mode 100644 index 00000000..844d77b5 --- /dev/null +++ b/install_on_debian_it.md @@ -0,0 +1,23 @@ +# Installazione su Debian + +*Altri sistemi per installare Debian **[qui](/install)**.* + +### Requisiti + + + +Su un computer ARM, un VPS, un server dedicato, un computer x86 standard, un vecchio Macintosh, ... + +* con **Debian 10** (Buster) installato (con un kernel >= 3.12) + * l'immagine ISO di Debian 10 può essere scaricata da [qui](https://www.debian.org/releases/buster/debian-installer/). Scegli l'immagine 'netinst CD' per la tua architettura. + * N.B.: l'uso di un'interfaccia grafica *non* è raccomandato! I server dovrebbero essere amministrati da remoto! +* connesso ad Internet +* con un **accesso root** diretto o via SSH + +--- + +## Passi per l'installazione + +1. Installazione manuale + +2. Post-installazione diff --git a/install_on_raspberry.md b/install_on_raspberry.md new file mode 100644 index 00000000..fa5706cd --- /dev/null +++ b/install_on_raspberry.md @@ -0,0 +1,58 @@ +# Install YunoHost on a Raspberry Pi + +*Find all the ways to install YunoHost **[here](/install)**.* + +
+ + +
+ +
+Before setting up a server at home, it is recommended that you know the [possible limitations imposed by your ISP](/isp). If they are too restrictive, you might consider using a VPN to bypass them. +
+ +## Pre-requisites + +- A Raspberry Pi 2, 3 or 4 (RPi 0 and 1 may work but require some tweaking... see [this issue](https://github.com/YunoHost/issues/issues/1423)) ; +- An microSD card: **8GB** capacity (at least) and **Class 10** speed rate are highly recommended (like the [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ; +- A power supply (either an adapter or a MicroUSB cable)i ; +- An ethernet cable (RJ-45) to connect your Raspberry Pi to your router. (Raspberry Pi Zero users can connect the Pi using an OTG cable, [Wifi dongle](https://core-electronics.com.au/tutorials/raspberry-pi-zerow-headless-wifi-setup.html).) ; +- A [reasonable ISP](/isp), preferably with a good and unlimited upload bandwidth. + +--- + +## Install with the pre-installed image (recommended) + +0. Download the pre-installed image for Raspberry Pi + +1. Flash the SD card with the image + +2. Boot the board and connect to the web interface at `yunohost.local` + +3. Proceed with the initial configuration (post-installation) + +--- + +## Manual installation (advanced users) + +
+We do not recommend the manual installation because it is more technical and longer than using the pre-installed image. This documentation is only intended for advanced users. +
+ +
+The latest Raspberry Pi OS images requires a screen and a keyboard, as it is no longer possible to connect directly to the Raspberry through SSH. Nevertheless it is possible to re-enable SSH at boot: before starting your Raspberry, put in the boot partition of the SD card an empty file named `ssh` (without extension). +
+ +0. Install Raspberry Pi OS Lite on the SD card ([instructions](https://www.raspberrypi.org/downloads/raspberry-pi-os/)). The Raspberry Pi OS Lite can be found here: https://downloads.raspberrypi.org/raspbian_lite/images/ + +1. Connect to your Raspberry Pi with the user `pi`. Set the root password with +```bash +sudo passwd root +``` + +2. Edit `/etc/ssh/sshd_config` to allow SSH login for root, by replacing `PermitRootLogin without-password` with `PermitRootLogin yes`. Reload the SSH daemon with `service ssh reload`. + +3. Disconnect and reconnect, this time as root. + +4. Then follow the generic manual install procedure. + diff --git a/install_on_raspberry_de.md b/install_on_raspberry_de.md new file mode 100644 index 00000000..f9d32bf1 --- /dev/null +++ b/install_on_raspberry_de.md @@ -0,0 +1,58 @@ +# YunoHost auf einem Raspberry Pi installieren + +*Alle Arten YunoHost zu installieren findest du **[hier](/install)**.* + +
+ + +
+ +
+Vor der Einrichtung eines Servers zuhause ist es empfehlenswert [mögliche Einschränkungen deines Providers](/isp) zu kennen. Wenn er zu viele Einschränkungen vornimmt, kann es sinnvoll sein ein VPN zu nutzen um diese zum umgehen. +
+ +## Voraussetzungen + +- Einen Raspberry Pi 2, 3 oder 4 (RPi 0 and 1 may work but require some tweaking ... see [this issue](https://github.com/YunoHost/issues/issues/1423)) ; +- Eine microSD Karte: **8 GB** Speicherplatz (mindestens) und **Class 10** Geschwindigkeit werden empfohlen (wie zum Beispiel die [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ; +- Ein Netzeil (entweder ein Steckernetzteil oder ein MicroUSB Kabel) ; +- An Netzwerkkabel (RJ-45) um den Raspberry mit dem router zu verbinden. (Raspberry Pi Zero Nutzer können ein OTG Kabel nutzen, [Wifi dongle](https://core-electronics.com.au/tutorials/raspberry-pi-zerow-headless-wifi-setup.html).) ; +- Einen [geeigneten Provider](/isp), am Besten einen mit einer guten upload Geschwindigkeit. + +--- + +## Install with the pre-installed image (recommended) + +0. Download the pre-installed image for Raspberry Pi + +1. Flash the SD card with the image + +2. Boot the board and connect to the web interface at `yunohost.local` + +4. Proceed to post-installation + +--- + +## Manual installation (advanced users) + +
+We do not recommend the manual installation because it is more technical and longer than using the pre-installed image. This documentation is only intended for advanced users. +
+ +
+The latest Raspberry Pi OS Lite images requires a screen and a keyboard, as it is no longer possible to connect directly to the Raspberry through SSH. Nevertheless it is possible to re-enable SSH at boot: before starting your Raspberry, put in the boot partition of the SD card an empty file named `ssh` (without extension). +
+ +0. Install Raspberry Pi OS Lite on the SD card ([instructions](https://www.raspberrypi.org/downloads/raspberry-pi-os/)). + +1. Connect to your Raspberry Pi with the user `pi`. Set the root password with +```bash +sudo passwd root +``` + +2. Edit `/etc/ssh/sshd_config` to allow SSH login for root, by replacing `PermitRootLogin without-password` with `PermitRootLogin yes`. Reload the SSH daemon with `service ssh reload`. + +3. Disconnect and reconnect, this time as root. + +4. Then follow the generic manual install procedure. + diff --git a/install_on_raspberry_es.md b/install_on_raspberry_es.md new file mode 100644 index 00000000..66d99394 --- /dev/null +++ b/install_on_raspberry_es.md @@ -0,0 +1,58 @@ +# Instalar YunoHost en un Raspberry Pi + +*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.* + +
+ + +
+ +
+Antes de alojar tu propio servidor en tu casa, te recomendamos que consultes las [posibles restricciones impuestas por tu Proveedor de Internet](/isp). Si tu proveedor es demasiado restrictivo, puedes utilizar un VPN para eludir estas restricciones. +
+ +## Prerrequisitos + +- Un Raspberry Pi 2, 3 o 4 (RPi 0 and 1 may work but require some tweaking ... see [this issue](https://github.com/YunoHost/issues/issues/1423)) ; ; +- Un adaptador de corriente para alimentar la tarjeta ; +- Una tarjeta microSD : al menos **8 Go** y **Clase 10** (por ejemplo una [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ; +- Un cable ethernet/RJ-45 para conectar la tarjeta con tu enrutador o tu caja internet. (Con el Raspberry Pi 0, puedes conectar tu tarjeta con un cable OTG y un adaptador Wifi USB.) +- Un [proveedor de Internet ético](/isp), de preferencia con buena velocidad de upload. + +--- + +## Instalación con la imagen pre-instalada (recomendada) + +1. Descargar la imagen para Raspberry Pi + +2. Poner la imagen en tu tarjeta SD + +3. Conectar y encender + +4. Proceder a la post-instalación + +--- + +## Instalación manual (desaconsejada) + +
+No recomendamos la instalación manual porque es más técnica y más larga que la instalación vía la imagen per-instalada. Esta documentación sobre todo está destinada a los usuarios expertos. +
+ +
+Las últimas versiones de Raspberry Pi OS necesitan una pantalla y un teclado porque ya no es posible conectarse directamente por SSH al Raspberry por defecto. Sin embargo, es posible reactivar el inicio de SSH al boot : solo hay que poner un archivo llamado `ssh` (vacío, sin extensión) en la partición boot de la tarjeta SD. +
+ +0. Instalar Raspberry Pi OS Lite ([instrucciones](https://www.raspberrypi.org/downloads/raspberry-pi-os/)) en la tarjeta SD. + +1. Conéctate con SSH al Raspberry Pi con el usuario pi. Define una contraseña root con +```bash +sudo passwd root +``` + +2. Modifica `/etc/ssh/sshd_config` para autorizar root a que se conecte con ssh, reemplazando `PermitRootLogin without-password` por `PermitRootLogin yes`. Recarga el daemon ssh con `service ssh reload`, y luego re-conéctate como root. + +3. Desconéctate et reconéctate con el usuario root esta vez. + +4. Sigue con el procedimiento de instalación manual genérico. + diff --git a/install_on_raspberry_fr.md b/install_on_raspberry_fr.md new file mode 100644 index 00000000..e9a18419 --- /dev/null +++ b/install_on_raspberry_fr.md @@ -0,0 +1,59 @@ +# Installer YunoHost sur Raspberry Pi + +*Toutes les autres façons d’installer YunoHost sont listées **[ici](/install)**.* + +
+ + +
+ +
+Avant d'héberger un serveur chez vous, il est recommandé de prendre connaissance des [possibles limitations liées à votre FAI](/isp). Si votre FAI est trop contraignant, vous pouvez envisager d'utiliser un VPN pour contourner ces limitations. +
+ +## Prérequis + +- Un Raspberry Pi 2, 3 ou 4 (Les RPi 0 et 1 peuvent fonctionner mais nécessitent de bricoler un peu ... voir [cette issue](https://github.com/YunoHost/issues/issues/1423)) ; +- Un adaptateur secteur pour alimenter la carte ; +- Une carte microSD : au moins **8 Go** et **Classe 10** (par exemple une [Transcend 300x](http://www.amazon.fr/Transcend-microSDHC-adaptateur-TS32GUSDU1E-Emballage/dp/B00CES44EO)) ; +- Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet. (Avec le Raspberry Pi 0, vous pouvez connecter votre carte avec un câble OTG et un adaptateur Wifi USB.) +- Un [fournisseur d’accès correct](/isp), de préférence avec une bonne vitesse d’upload. + +--- + +## Installation avec l'image pré-installée (recommandée) + +1. Télécharger l'image pour Raspberry Pi + +2. Flasher la carte SD avec l'image + +3. Démarrer la carte et se connecter à l'interface web sur `yunohost.local` + +4. Effectuer la configuration initiale (post-installation) + +--- + +## Installation manuelle (déconseillée) + +
+Nous déconseillons l'installation manuelle car elle est plus technique et plus longue que l'installation via l'image pré-installée. Cette documentation est surtout destinée aux utilisateurs avancés. +
+ +
+Les dernières versions de Raspbian nécessitent un écran et un clavier, car il n'est plus possible de se connecter directement en SSH au Raspberry par défaut. Néanmoins, il est possible de réactiver le lancement de SSH au boot : il suffit de placer dans la partition boot de la carte SD un fichier nommé `ssh`, vide et sans extension. +
+ +0. Installez Raspberry Pi OS Lite ([instructions](https://www.raspberrypi.org/downloads/raspberry-pi-os/)) sur la carte SD. +Le lien vers Raspberry Pi OS Lite est ici : https://downloads.raspberrypi.org/raspbian_lite/images/ + +1. Connectez-vous en SSH au Raspberry Pi avec l'utilisateur pi. Définissez un mot de passe root avec +```bash +sudo passwd root +``` + +2. Modifiez `/etc/ssh/sshd_config` pour autoriser root à se logger en SSH, en remplaçant `PermitRootLogin without-password` par `PermitRootLogin yes`. Rechargez le daemon SSH avec `service ssh reload`, puis re-connectez-vous en root. + +3. Déconnectez-vous et reconnectez-vous avec l'utilisateur root cette fois. + +4. Poursuivez avec la procédure d'installation manuelle générique. + diff --git a/install_on_virtualbox.md b/install_on_virtualbox.md new file mode 100644 index 00000000..96eff312 --- /dev/null +++ b/install_on_virtualbox.md @@ -0,0 +1,84 @@ +# Install YunoHost on VitualBox + +*Find other ways to install YunoHost **[here](/install)**.* + +## Requirements + + + +* An x86 computer with VirtualBox installed and enough RAM capacity to be able to run a small virtual machine. +* The latest stable **YunoHost ISO image**, available [here](/images). + +
+N.B. : Installing YunoHost in a VirtualBox is usually intended for testing. To +run an actual server on the long-term, you usually need a dedicated physical +machine (old computer, ARM board...) or a VPS online. +
+ +--- + +## 1. Create a new virtual machine + + + +
+ +* It's okay if you can only have 32-bit versions, just be sure that you downloaded the 32-bit image previously. +* 256MB RAM is the minimum required, but at least 512MB is recommended (1Go or more if you can). +* 8GB storage is the minimum required for the system, add whatever is necessary for your apps. + +--- + +## 2. Change network settings + +**NB:** You must carry out this step. If not, the install will fail. + +Go to **Settings** > **Network**: + + + +
+ +* Select `Bridged adapter` + +* Select your interface's name: + + **wlan0** if you are connected wirelessly, else **eth0**. + +--- + +## 3. Boot up the virtual machine + +Start the virtual machine + + + +
+ +You will have to select your ISO image here, then you should see the YunoHost's boot screen. + +
+ +If you encounter the error "VT-x is not available", you need probably need to enable Virtualization in the BIOS of your computer. + +
+ + + +
+ +* Select `Graphical install` + +* Select your language, your location, your keyboard layout and let the installer do the rest :-) + +--- + +## 4. Proceed to post-installation + +After the reboot, the system should ask you to proceed with the +post-installation + +Post-install documentation + + + diff --git a/install_on_virtualbox_es.md b/install_on_virtualbox_es.md new file mode 100644 index 00000000..e359db06 --- /dev/null +++ b/install_on_virtualbox_es.md @@ -0,0 +1,76 @@ +# Instalar YunoHost en VirtualBox + +*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.* + +## Prerrequisitos + + + +* Un ordenador x86 con VirtualBox instalado y bastante RAM disponible para iniciar una pequeña máquina virtual. +* La última **imagen ISO YunoHost** estable, disponible [aquí](/images). + +
+N.B. : Instalar YunoHost en VirtualBox es útil para probar la distribución. Para realmente autoalojarse a largo plazo, probablement necesitarás una máquina virtual (viejo ordenador, tarjeta ARM...) o un VPS. +
+ +--- + +## 1. Crear una nueva máquina virtual + + + +
+ +* No es grave si sólo la versión 32-bit está disponible, pero en este caso asegúrate que 32 bit previamente. +* 256Mo de RAM es el requisito mínimo, 512Mo está recomendado (1Go o más si puedes). +* 8Go de almacenaje mínimo requisito. + +--- + +## 2. Modificar la configuración de la red + +Ir a **Settings** > **Network** : + + + +
+ +* Selectiona `Bridged adapter` + +* Elige tu interfaz según su nombre : + + **wlan0** si estás conectado sin hilo, **eth0** de otro modo. + +--- + +## 3. Inicia tu máquina virtual + +Inicia tu máquina virtual + + + +
+ +Aquí tienes que seleccionar la imagen ISO, luego deberías ver esta pantalla de bienvenida. + +
+ +Si te encuentras con el error "VT-x is not available", probablement hay que activar (enable) la virtualización en la opciones del BIOS de tu ordenador. + +
+ + + +
+ +* Elige `Instalación gráfica` + +* Selecciona tu idioma, tu ubicación, la distribución de tu teclado y deja el ordenador terminar el proceso :-) + +--- + +## 4. Efectuar la post-instalación + +Después del reinicio, la máquina debería proponerte de efectuar la post-instalación : + +Documentación de post-instalación diff --git a/install_on_virtualbox_fr.md b/install_on_virtualbox_fr.md new file mode 100644 index 00000000..8b851596 --- /dev/null +++ b/install_on_virtualbox_fr.md @@ -0,0 +1,81 @@ +# Installer YunoHost sur VirtualBox + +*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.* + +## Prérequis + + + +* Un ordinateur x86 avec VirtualBox installé et assez de RAM disponible pour lancer une petite machine virtuelle. +* La dernière **image ISO YunoHost** stable, disponible [ici](/images). + +
+N.B. : Installer YunoHost dans une VirtualBox est utile pour tester la +distribution. Pour réellement s'autohéberger sur le long terme, il vous faudra +probablement une machine physique (vieil ordinateur, carte ARM...) ou un VPS en +ligne. +
+ +--- + +## 1. Créer une nouvelle machine virtuelle + + + +
+ +* Ce n'est pas grave si seulement la version 32-bit est dispo, mais dans ce cas soyez sur d'avoir téléchargé l'image 32 bit précédemment. +* 256Mo de RAM est le minimum requis, 512Mo est recommandé (1Go ou plus si vous pouvez). +* 8Go de stockage minimum requis pour le système, y ajouter l'espace pour vos applications. + +--- + +## 2. Modifier la configuration réseau + +Allez dans **Réglages** > **Réseau** : + + + +
+ +* Sélectionnez `Accès par pont` + +* Choisissez votre interface selon son nom : + + **wlan0** si vous êtes connecté sans-fil, **eth0** sinon. + +--- + +## 3. Lancer votre machine virtuelle + +Démarrez votre machine virtuelle + + + +
+ +Vous devez sélectionner ici l’image ISO, puis vous devriez voir cet écran d’accueil YunoHost. + +
+ +Si vous rencontrez l'erreur "VT-x is not available", il vous faut probablement activer (enable) la virtualisation dans les options du BIOS de votre ordinateur. + +
+ + + +
+ +* Choisissez `Installation graphique` + +* Sélectionnez votre langue, votre emplacement, la disposition de votre clavier et laissez l’installeur faire le reste :-) + +--- + +## 4. Effectuer la post-installation + +Après le redémarrage, la machine devrait vous proposer d'effectuer la +post-installation : + +Post-install +documentation diff --git a/install_on_vps.md b/install_on_vps.md new file mode 100644 index 00000000..16578276 --- /dev/null +++ b/install_on_vps.md @@ -0,0 +1,19 @@ +# Install on a dedicated server + +*Find other ways to install YunoHost **[here](/install)**.* + +### Pre-requisite + + + +* A dedicated or virtual private server +* with at least **512MB** RAM +* and **Debian 10.x (Buster) 64bits** as operating system + +--- + +## Installation steps + +1. Install manually + +2. Proceed with the initial configuration (post-installation) diff --git a/install_on_vps_de.md b/install_on_vps_de.md new file mode 100644 index 00000000..57916779 --- /dev/null +++ b/install_on_vps_de.md @@ -0,0 +1,20 @@ +# Installation auf einem dedizierten Server + +*Andere Wege Yunohost zu installieren findest Du **[hier](/install)**.* + +### Vorraussetzungen + + + +* Ein dedizierter (Root-Server) oder virtueller privater Server (VPS) +* mit mindestens **512MB** RAM +* und **Debian 10.x (Buster) 64bits** als Betriebssystem + +--- + +## Installationsschritte + +1. Manuelle Installation + +2. Weiter mit der Erstkonfiguration (nach der Installation) + diff --git a/install_on_vps_es.md b/install_on_vps_es.md new file mode 100644 index 00000000..abf498f4 --- /dev/null +++ b/install_on_vps_es.md @@ -0,0 +1,20 @@ +# Instalación en un servidor dedicado + +*Encontrar otros medios de instalar YunoHost **[aquí](/install)**.* + +## Prerrequisitos + + + +* Un servidor dedicado o virtual +* con al menos **512MB** RAM +* y **Debian 10.x (Buster) 64bits** como sistema operativo + +--- + +## Etapas de instalación + +1. Instalar manualmente + +2. Post-instalación + diff --git a/install_on_vps_fr.md b/install_on_vps_fr.md new file mode 100644 index 00000000..09d224db --- /dev/null +++ b/install_on_vps_fr.md @@ -0,0 +1,19 @@ +# Installation sur un serveur dédié + +*Trouvez d’autres moyens d’installer YunoHost **[ici](/install)**.* + +## Prérequis + + + +* Un serveur dédié ou virtuel +* avec au moins **512MB** RAM +* et **Debian 10.x (Buster) 64bits** comme système d'exploitation + +--- + +## Étapes d’installation + +1. Installer manuellement + +2. Effectuer la configuration initiale (post-installation) diff --git a/install_on_vps_it.md b/install_on_vps_it.md new file mode 100644 index 00000000..66658d32 --- /dev/null +++ b/install_on_vps_it.md @@ -0,0 +1,20 @@ +# Installa su un server dedicato + +*Scopri altri modi di installare YunoHost **[qui](/install)**.* + +### Pre-requisiti + + + +* Un server dedicato o un server privato virtuale (VPS) +* con almeno **512MB** di RAM +* e **Debian 10.x (Buster) 64bits** come sistema operativo + +--- + +## Procedura di installazione + +1. Installa manualmente + +2. Post-installazione + diff --git a/ipv6.md b/ipv6.md new file mode 100644 index 00000000..fc183f2d --- /dev/null +++ b/ipv6.md @@ -0,0 +1,46 @@ +# Setting up IPv6 + +IPv6 may work out of the box in many cases. But in some cases or some specific provider, you may need to tweak things manually to enable IPv6. + +## With a VPS from OVH + +OVH give one IPv4 address and one IPv6 address for VPS but by default, only IPv4 is OK. +The OVH's documentation is here : https://docs.ovh.com/gb/en/vps/configuring-ipv6/ + +### Configure the DNS server + +Here : https://yunohost.org/#/dns_subdomains + +### Configure the server + +On the OVH panel, you will copy 3 element : +- the IPv6 address +- the IPv6 gateway address +- the IPv6 prefix. On OVH's VPS SSD, prefixes are `/128` because you have only *one* IPv6 address. + +On your VPS, create a backup of the network configuration with : `cp /etc/network/interfaces ~/interfaces` in home directory. +Then, you can edit the configuration file (`/etc/network/interfaces`) with the following. It is assumed that : + +
+In this example, it is assumed that your network interface is `eth0`. If it's different (check with `ip a`) you need to adapt the example below. +
+ +```plaintext +iface eth0 inet6 static +address +netmask +post-up /sbin/ip -6 route add dev eth0 +post-up /sbin/ip -6 route add default via dev eth0 +pre-down /sbin/ip -6 route del default via dev eth0 +pre-down /sbin/ip -6 route del dev eth0 +``` + +Now, save the file and restart the network service with : `service networking restart`. (TODO : ideally we should find a way to validate the content of the configuration, otherwise it could fuck up the network stack and get disconnected from the VPS ?) + +Check your configuration with these commands : +- `ip a` to display network interfaces and addresses +- `hostname -I` to display the system IP addresses +- try to ping an IPv6 server (for example you can use `ping6 ip6.yunohost.org`) +- try to ping your server from your PC (assuming your PC has IPv6 enabled) + +If it's ok, it's ok ! diff --git a/ipv6_fr.md b/ipv6_fr.md new file mode 100644 index 00000000..6c37e224 --- /dev/null +++ b/ipv6_fr.md @@ -0,0 +1,46 @@ +# Configuration de l’IPv6 + +L'IPv6 peut fonctionner directement dans certains cas. Mais dans d'autres, ou chez certains hébergeurs spécifiques, vous devez activer l'IPv6 manuellement. + +## Avec un VPS chez OVH + +OVH donne une adresse IPv4 et une IPv6 pour ses VPS, mais par défaut, seule l'IPv4 fonctionne. +La documentation d'OVH à ce sujet est ici : https://docs.ovh.com/fr/vps/configurer-ipv6/ + +### Configurer le serveur DNS + +Ici : https://yunohost.org/#/dns_subdomains + +### Configurer le serveur + +Sur le panneau de gestion d'OVH, vous aller récupérer 3 informations : +- l'adresse IPv6 du serveur +- l'adresse passerelle IPv6 +- le préfixe IPv6. Les offres VPS SSD d'OVH ne fournissent qu'**une** seule adresse IPV6, le préfixe est donc `/128` + +Sur votre VPS, vous aller créer une sauvegarde de votre fichier de configuration des interfaces réseau dans votre répertoire home avec la commande : `cp /etc/network/interfaces ~/interfaces`. + +Ensuite, vous pouvez modifier le fichier de configuration `/etc/network/interfaces`. +
+Dans cet exemple, nous considérons que votre interface réseau est `eth0`. Si elle est différente (vérifiez avec `ip a`) vous devez adapter l'exemple pour correspondre à votre situation. +
+ +```plaintext +iface eth0 inet6 static +address +netmask +post-up /sbin/ip -6 route add dev eth0 +post-up /sbin/ip -6 route add default via dev eth0 +pre-down /sbin/ip -6 route del default via dev eth0 +pre-down /sbin/ip -6 route del dev eth0 +``` + +Maintenant, enregistrez le fichier et redémarrez les services réseau avec : `service networking restart`. (TODO : ideally we should find a way to validate the content of the configuration, otherwise it could fuck up the network stack and get disconnected from the VPS ?) + +Vérifiez votre configuration avec les commandes : +- `ip a` pour afficher les adresses IP des interfaces +- `hostname -I` pour afficher les adresses IP du système +- essayez de faire un test de `ping` sur un serveur IPv6 (vous pouvez utiliser `ping6 ipv6.yunohost.org`) +- essayez de faire un test de `ping` sur votre server depuis votre PC (cela exige que votre PC puisse utiliser l'IPv6) + +Et voilà ! diff --git a/isp.md b/isp.md new file mode 100644 index 00000000..477f175b --- /dev/null +++ b/isp.md @@ -0,0 +1,72 @@ +# Internet service providers + + Main configuration box + +Here is a non-comprehensive list of internet service providers by country, which contains criteria about tolerance to self-hosting. + +A "no" may cause problems for using your server or may require you to make additional configuration changes. Status in brackets indicates the default behavior. + +A list of French and Belgian ISPs is available on the [french page](/isp_fr). + +### USA +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| Cox | Multiple | Yes | No. Only for business class customer. | No | No | Yes, as a business class customer | +| Charter | Multiple | Yes | No. Only for business class customer. | No | No | Yes, as a business class customer | +| DSLExtreme | Multiple | Yes | Yes | No | No | Yes, extra charge. | +| AT&T| Multiple | Yes | No. Only for business class customer. | unknown. | unknown. | unknown. | +| Xfinity (Comcast)| Multiple | Yes | No. Only for business class customer. | unknown. | unknown. | Yes, as a business class customer| + +### UK +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| BT Internet | Yes | - | Yes| - | - | No | +| Virgin Media | Yes | - | - | - | No | No | +| ZEN Internet | Yes | - | Yes | - | Yes | - | +| PlusNet | Yes | Yes | Yes | No | - | Small one off Charge | + +### Brazil +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| Global Village Telecom | Multiple | Yes | No. Only for Fix IP| No | No | Yes, extra charge. | + +### Ireland +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| Whizzy Internet | Multiple | Yes | Yes| Yes | Yes | Yes | + +### Canada +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| Telus | Multiple | - | No. Extra charge | - | - | No. Extra charge | +| TekSavvy | Multiple | - | Yes | No | - | No. Extra charge | + +### Sweden + +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| Telia | Multiple | Yes | No. Business only. | Yes | No. Business only. | No. Business only. | +| Bredbandsbolaget | Multiple | Yes | No. Business only. | Yes | No. Business only. | No. Business only. | +| Ownit | Multiple | Yes | Yes | N/A? | ? | Yes | + +Ownit reserves port 3 and 4 of their router to TV. With a simple call to their hotline, explaining that you want to selfhost, they can reassign one of the ports to be in bridge mode. It means that your server will have its own public fixed IP address, in addition to the modem's. + +### Switzerland + +Most of non business IP provided by ISP are blacklisted. + +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| Sunrise | Multiple | No | Yes | No | - | - | +| Swisscom | Multiple | No | Yes | No | No | No | +| VTX | Multiple | No | Yes | No | - | - | + +### South Korea + +| Service provider | Box (modem/router) | uPnP available | Port 25 openable | [Hairpinning](http://en.wikipedia.org/wiki/Hairpinning) | Customizable reverse DNS | Fix IP | +| --- | --- | --- | --- | --- | --- | --- | +| LG U+ (HelloVision) | Multiple | Yes | Yes (Without ISP Router) | No | - | Partial | +| KT(SkyLife, Qook&Show) | Multiple | Yes | Yes | No | - | Partial | +| SKT (SK Broadband) | Multiple | Yes | Yes | No | - | Partial | + +If you want to add international ISPs information, please do consider [modifying this page](/write_documentation). diff --git a/isp_box_config.md b/isp_box_config.md new file mode 100644 index 00000000..93247eb6 --- /dev/null +++ b/isp_box_config.md @@ -0,0 +1,51 @@ +# Configure port-forwarding + +If you are self-hosting at home and without a VPN, you need to forward ports on your home router ("Internet box"). If you want a short explanation on what is and why you need port forwarding, have a look to [this page](port_forwarding). + +### 0. Diagnose ports opened + +The new diagnosis tool introduced in 3.8 can be used to diagnose that ports are +correctly exposed. + +### 1. Access your box/router administration interface + +Your box/router admin interface is usually reachable via http://192.168.0.1 or http://192.168.1.1. Then, you will probably need to authenticate yourself with your internet server provider's credentials. + +### 2. Find the local IP of your server + +Identify what is thei *local* IP of your server, either : +- from your box/router interface, which might list devices connected +- from the YunoHost webadmin, in 'Diagnosis', section 'Internet connectivity', click on 'Details' on the IPv4 report. +- from the command line in your server, by running `hostname -I` + +A local IP address typically looks like `192.168.xx.yy`, or `10.0.xx.yy`. + +The local IP address needs to be static, so that the port forwards that you are going to configure in the next step will always reach your server. You should go into your box/router and make sure that the local IP address of your server is static instead of dynamic. + +### 3. Forwarding ports + +In your router admin interface, look for something like 'router configuration' or 'port forwarding'. The naming differs among the various kinds of boxes. + +Opening the ports listed below is necessary for the various services available in YunoHost to work. For each of them, the 'TCP' forwarding is needed. Some interfaces refer to 'external' and 'internal' ports : these are the same in our case. + +* Web: 80 (HTTP), 443 (HTTPS) +* [SSH](/ssh): 22 +* [XMPP](/XMPP): 5222 (clients), 5269 (servers) +* [Email](/email): 25, 587 (SMTP), 993 (IMAP) + +If you use both a modem and a router, then you need to do the following: +1. first on the modem (the box closest to the internet) create rules to forward the above ports to your router; +2. then on the router (the box between the modem and your devices) create rules to forward the above ports to the static IP address for your server. + +
+ Some internet service providers block port 25 (mail SMTP) by default to fight spam. Some other ISP don't allow to use port 80/443 (web) freely, though it's less likely. Depending on the ISP, it might be possible to open them in the admin interface... Check [this page](/isp) for more info. +
+ +## Automatic port forwarding / UPnP + +A technology called UPnP is available on some internet boxes / routers and allows to automatically forward ports by the machine who needs them. If UPnP is enabled in your local network, then running this command should automatically open the port for you : + +```bash +sudo yunohost firewall reload +``` + diff --git a/isp_box_config_es.md b/isp_box_config_es.md new file mode 100644 index 00000000..022cc596 --- /dev/null +++ b/isp_box_config_es.md @@ -0,0 +1,48 @@ +# Configurar la redirección de los puertos + +Si te estás auto-alojando en casa y sin VPN, tienes que redirigirse los puertos de tu router (caja/box). Si quieres una explicación sencilla de lo que es y por qué necesitas redirigir los puertos, puedes echar un vistazo a [esta página](/port_forwarding). [Esta página](https://www.testdevelocidad.es/configuraciones/abrir-correctamente-los-puertos-router/) también propone explicaciones detalladas sobre el funcionamiento de los puertos, y las etapas de configuración para un router genérico. + +### 0. Diagnosticar los puertos abiertos + +Una vez que tienes la redirección configurada, deberías poder comprobar que los puertos están bien abiertos con esta herramienta : + +Comprobar la redirección de los puertos + +### 1. Acceder a la interfaz de administración de tu router/caja/box + +En general la interfaz de administración está accesible desde http://192.168.0.1 o http://192.168.1.1. +Luego, es posible que tengas que autenticarte con los ID provechos pour tu proveedor de acceso a Internet. + +### 2. Descubrir la IP local del servidor + +Identifica cuál es la IP local de tu servidor, o sea : +- desde la interfaz de tu router/caja/box, donde tal vez estén listados los dipositivos conectados a la red local +- desde la webadmin de YunoHost, en 'Estado del servidor', 'Red' +- desde la línea de comandos en tu servidor, por ejemplo con `ip a | grep "scope global" | awk '{print $2}'` + +En general una dirección IP local se parece a `192.168.xx.yy`, o `10.0.xx.yy`. + +### 3. Redirigir los puertos + +En la interfaz de administración de tu router/caja/box, tienes que encontrar una categoría que debe llamarse 'Configuración del router', o 'Redirección de puertos'. El nombre difiere según el tipo o la marca del router / de la caja Internet... + +Luego tienes que redirigir cada uno de los puertos listados a continuación hacia la IP local de tu router para que los varios servicios de YunoHost funcionen. Para cada uno de ellos, una redirección 'TCP' es necesaria. En algunas interfaces, tal vez encontrarás referencias a un puerto 'externo' y un puerto 'interno' : en nuestro caso, se trata del mismo número de puerto, que sea interno o externo. + +* Web: 80 (HTTP), 443 (HTTPS) +* [SSH](/ssh): 22 +* [XMPP](/XMPP): 5222 (clients), 5269 (servers) +* [Email](/email): 25, 587 (SMTP), 993 (IMAP) + +
+ Algunos proveedores de acceso a Internet bloquean el puerto 25 (mail SMTP) por defecto para luchar con el spam. Otros (más escasos) no permiten utilizar libremente los puertos 80/443. Dependiendo de tu proveedor, puede ser posible de abrir estos puertos en la interfaz... Ver [esta página](/isp) por más informaciones. +
+ +## Redirección automática / UPnP + +Una tecnología llamada UPnP está disponible en algunos routers/cajas/box y permite redirigir automáticamente puertos hacia una máquina que lo pide. Si UPnP está activado en tu casa, ejecutar este comando debería automáticamente redirigir los puertos correctos : + + +```bash +sudo yunohost firewall reload +``` + diff --git a/isp_box_config_fr.md b/isp_box_config_fr.md new file mode 100644 index 00000000..640044dc --- /dev/null +++ b/isp_box_config_fr.md @@ -0,0 +1,50 @@ +# Configurer la redirection des ports + +Si vous vous auto-hébergez à la maison et sans VPN, il vous faut rediriger les ports de votre routeur ("machin-box"). Si vous souhaitez une explication courte de ce qu'est et pourquoi vous avez besoin de rediriger les ports, vous pouvez jeter un œil à [cette page-ci](/port_forwarding). [Cette page-là](https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html) propose également des explications détaillées sur le fonctionnement des ports, et les étapes de configuration pour différents routeurs. + +### 0. Diagnostiquer les ports ouverts + +Une fois les redirections configurées, l'outil de diagnostic introduit dans +YunoHost 3.8 vous permettra de vérifier si les ports sont correctement exposés. + +### 1. Accéder à l'interface d'administration de votre box/routeur + +L'interface d'administration est généralement accessible via http://192.168.0.1 ou http://192.168.1.1. +Ensuite, il vous faudra peut-être vous authentifier avec les identifiants +fournis par votre fournisseur d'accès internet (FAI). + +### 2. Trouver l'IP locale de votre serveur + +Identifiez quelle est l'IP locale de votre serveur, soit : +- depuis l'interface de votre routeur/box, qui liste peut-être les dispositifs + connectés; +- depuis la webadmin de YunoHost, dans 'Diagnostic', section 'Connectivité Internet', cliquer sur 'Details' à côté de la ligne sur IPv4. +- depuis la webadmin de YunoHost, dans 'État du serveur', 'Réseau'; + +Une adresse IP locale ressemble généralement à `192.168.xx.yy`, ou `10.0.xx.yy`. + +### 3. Rediriger les ports + +Dans l'interface d'administration de votre box/routeur, il vous faut trouver +une catégorie comme 'Configuration du routeur', ou 'Redirections de ports'. Le +nom diffère suivant le type / marque de la box... + +Il vous faut ensuite rediriger chacun des ports listés ci-dessous vers l'IP locale de votre serveur pour que les différents services de YunoHost fonctionnent. Pour chacun d'eux, une redirection 'TCP' est nécessaire. Certains interfaces font références à un port 'externe' et un port 'interne' : dans notre cas il s'agit du même. + +* Web: 80 (HTTP), 443 (HTTPS) +* [SSH](/ssh): 22 +* [XMPP](/XMPP): 5222 (clients), 5269 (servers) +* [Email](/email): 25, 587 (SMTP), 993 (IMAP) + +
+ Certains fournisseurs d'accès internet bloquent le port 25 (mail SMTP) par défaut pour combattre le spam. D'autres (plus rares) ne permettent pas d'utiliser librement les ports 80/443. En fonction de votre FAI, il peut être possible d'ouvrir ces ports dans l'interface... Voir [cette page](/isp) pour plus d'informations. +
+ +## Redirection automatique / UPnP + +Une technologie nommée UPnP est disponible sur certains routeurs/box et permet de rediriger automatiquement des ports vers une machine qui le demande. Si UPnP est activé chez vous, exécuter cette commande devrait automatiquement rediriger les bons ports : + +```bash +sudo yunohost firewall reload +``` + diff --git a/isp_es.md b/isp_es.md new file mode 100644 index 00000000..6c5ad805 --- /dev/null +++ b/isp_es.md @@ -0,0 +1,47 @@ +# Proveedores de acceso a Internet + + Configuración general del router + +Aquí tienes una lista (no exhaustiva) de proveedores de acceso a Internet por país, con criterios de compatibilidad con el [self-hosting](/selfhosting). + +Un « **no** » puede implicar problemas de utilización del servidor o puede obligarte a hacer configuraciones adicionales. El estatus entre paréntesis indica el comportamiento por defecto. + +### Francia + +*Nota que algunos de estos proveedores como OVH y Orange también están presentes en España.* + +Todos los proveedores de acceso a Internet [miembros de la Federación French Data Network](http://www.ffdn.org/fr/membres) tienen una política a favor del auto-alojamiento / self-hosting. +* ✔ : sí +* ✘ : no + +| Proveedor de acceso | OVH | [Free](/isp_free) | [SFR](/isp_sfr) | [Orange](/isp_orange) | Bouygues
Télécom | Darty | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| **Box/router** | Personal/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox | +| **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| **[Puerto 25 que se abre](/email)**
(cerrado por defecto) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | +| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ | +| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)
personalizable ** | ✔ | ✔ (excepto IPv6) | … | ✘ | ✘ | ✘ | +| **[IP fija](/dns_dynamicip)** | ✔ | ✔ | ✔/✘ | ✘ | ✔ | ✔ | +| **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … | +| **[No listado en el DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | … | ✘ | … | … | … | … | +Para obtener una lista más completa y precisa, refiérete a la muy buena documentación (fr) de [wiki.auto-hebergement.fr](http://wiki.auto-hebergement.fr/fournisseurs/fai#d%C3%A9tail_des_fai). + +**Truco** : [FDN](http://www.fdn.fr) propone unos [VPN](http://www.fdn.fr/-VPN-.html) que permiten recuperar una (o varias si lo pides) IPv4 fija y un /48 en IPv6 y así « limpiar » tu conexión si tu proveedor es uno los *proveedores limitantes* de la tabla más arriba. + +### Bélgica + +| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| **Proximus** | BBox2 | sí (activado) | sí | **no** | **no** | **no** | +| | BBox3 | sí (activado) | sí | **no** | **no** | **no** | +| **Scarlet** | BBox2 | sí (activado) | sí | **no** | **no** | **no** | + +**Proximus** no estaría a favor del auto-alojamiento. Hacen que la apertura de los puertos esté más difícil para luchar contra el spam. Es mejor pasar por [Neutrinet](http://neutrinet.be), uno de los [miembros de la Federación French Data Network](http://www.ffdn.org/fr/membres). + +### Costa de Marfil + +| Proveedor de acceso | Box/ router | uPnP activable | [Puerto 25 que se abre](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fija | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| **Orange** | Livebox2 | sí (activado) | no | **no** | **no** | **no** | +| **Moov** | | sí (activado) | | | | | +| **MTN** | | sí (activado) | | | | | \ No newline at end of file diff --git a/isp_fr.md b/isp_fr.md new file mode 100644 index 00000000..1630b19e --- /dev/null +++ b/isp_fr.md @@ -0,0 +1,45 @@ +# Fournisseurs d’accès à Internet + + Configuration générale box + +Voici une liste non exhaustive des fournisseurs d’accès à Internet par pays, contenant les critères de tolérance à l’[auto-hébergement](/selfhosting). + +Un « **non** » peut entraîner des problèmes d’utilisation de votre serveur ou peut vous obliger à faire des configurations supplémentaires. Le statut entre parenthèses indique le comportement par défaut. + +### France + +Tous les fournisseurs d’accès à Internet [membres de la Fédération French Data Network](http://www.ffdn.org/fr/membres) ont une politique favorable à l’auto-hébergement. +* ✔ : oui +* ✘ : non + +| Fournisseur d’accès | OVH | [Free](/isp_free) | [SFR](/isp_sfr) | [Orange](/isp_orange) | Bouygues
Télécom | Darty | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| **Box/routeur** | Personnel/OVH Télécom | Freebox | Neufbox | Livebox | Bbox | Dartybox | +| **[UPnP](https://fr.wikipedia.org/wiki/Universal_Plug_and_Play)** | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| **[Port 25 ouvrable](/email)**
(fermé par défaut) | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | +| **[Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning)** | ✔ | ✔ | ✔/✘ | ✔ (depuis la Livebox 4) | ✔ | ✔ | +| **[Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)
personnalisable ** | ✔ | ✔ (sauf IPv6, pas de support, et buggué sur certaines plages d'adresses ipv4) | … | ✘ | ✘ | ✘ | +| **[IP fixe](/dns_dynamicip)** | ✔ | ✔ | ✔/✘ | ✔ (depuis la Livebox 4) | ✔ | ✔ | +| **[IPv6](https://fr.wikipedia.org/wiki/IPv6)** | ✔ | ✔ | ✔ | ✔ | … | … | +| **[Non listé sur le DUL](https://en.wikipedia.org/wiki/Dialup_Users_List)** | … | ✘ | … | … | … | … | +Pour une liste plus complète et précise, référez-vous à la très bonne documentation de [wiki.auto-hebergement.fr](http://wiki.auto-hebergement.fr/fournisseurs/fai#d%C3%A9tail_des_fai). + +**Astuce** : [FDN](http://www.fdn.fr) fournit des [VPN](http://www.fdn.fr/-VPN-.html) permettant de rapatrier une (ou plusieurs sur demande) IPv4 fixe et un /48 en IPv6 et ainsi « nettoyer » votre connexion si vous êtes chez l’un des FAI *limitants* du tableau ci-dessus. + +### Belgique + +| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| **Proximus** | BBox2 | oui (activé) | oui | **non** | **non** | **non** | +| | BBox3 | oui (activé) | oui | **non** | **non** | **non** | +| **Scarlet** | BBox2 | oui (activé) | oui | **non** | **non** | **non** | + +**Proximus** ne serait pas ouvert à l’auto-hébergement. L’ouverture des ports serait plus difficile afin d’éviter tout SPAM. Il serait préférable de passer par [Neutrinet](http://neutrinet.be), un des [membres de la Fédération French Data Network](http://www.ffdn.org/fr/membres). + +### Côte d'Ivoire + +| Fournisseur d’accès | Box/ routeur | uPnP activable | [Port 25 ouvrable](/email)| [Hairpinning](http://fr.wikipedia.org/wiki/Hairpinning) | [Reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS_lookup) | IP fixe | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| **Orange** | Livebox2 | oui (activé) | non | **non** | **non** | **non** | +| **Moov** | | oui (activé) | | | | | +| **MTN** | | oui (activé) | | | | | diff --git a/isp_free.md b/isp_free.md new file mode 100644 index 00000000..e97c35fb --- /dev/null +++ b/isp_free.md @@ -0,0 +1 @@ +Unfortunately, this page only exists [in french here](isp_free_fr) for now. diff --git a/isp_free_fr.md b/isp_free_fr.md new file mode 100644 index 00000000..58ebb590 --- /dev/null +++ b/isp_free_fr.md @@ -0,0 +1,73 @@ +# Free + +*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.* + +#### Accès à l’administration de la box (v5/v6) + +##### Freebox ≤ v5 + +Rendez-vous sur la [console d'administration du site de free](https://subscribe.free.fr/login/). + +##### Freebox v6 (Revolution / Mini4k) + +Allez à l’adresse : [mafreebox.free.fr](http://mafreebox.free.fr/) puis authentifiez-vous. + +#### Ouverture des ports + +[Liste des ports à ouvrir](/isp_box_config). + +##### Freebox ≤ v5 + +Cela se passe dans la section *Ma Freebox / Configurer mon routeur*. Il faut : + +- Rediriger les [ports à ouvrir](/isp_box_config) vers l'adresse locale de votre serveur YunoHost. +- Définir une DMZ vers votre serveur YunoHost. + +La présence conjointe de ces deux règles permettent d'accéder à votre serveur de l'extérieur comme de l'intérieur de votre réseau local. + +##### Freebox v6 +[Tutoriel d’ouverture des ports sur Freebox](http://www.astuces-pratiques.fr/informatique/ouvrir-un-port-sur-la-freebox-revolution) + + +#### Déblocage de l’envoi de courriel + +Pour pouvoir envoyer des mails, le déblocage se fait dans la [partie client](https://subscribe.free.fr/login/). + +Depuis le menu Ma freebox aller sur « Blocage SMTP sortant ». + +Pour pouvoir envoyer des mails, passer le blocage en « inactif ». + +#### Fonction NAS de la Freebox + +Il faut installer le paquet `cifs-utils` +```bash +$ sudo apt install cifs-utils +``` + +Il faut créer un point de montage (ici `/home/monlogin/freebox`) +```bash +$ mkdir ~/freebox +``` + +On monte le répertoire NAS par défaut avec les droits de lecture / écriture pour tous +```bash +$ sudo mount -t cifs //mafreebox.freebox.fr/Disque\ dur/ /home/monlogin/freebox -o guest,iocharset=utf8,file_mode=0777,dir_mode=0777 +``` + +##### Automatiser le montage + +Une ligne a ajouter à la fin du `/etc/fstab` : +```bash +//mafreebox.freebox.fr/Disque\040dur/ /home/monlogin/freebox cifs _netdev,guest,uid=monlogin,gid=users,iocharset=utf8 0 0 +``` + +Le `_netdev` signale que c'est un périphérique réseau, afin que le système ne le monte que s'il a accès au réseau. +`guest` est le mode d'identification à la Freebox : pour une connexion authentifié, placer vos identifiants dans un fichier sous la forme +```bash +username=your_user +password=your_pass +domain=FREEBOX +``` +et remplacer `guest` par `credentials=/path/to/file` (c'est aussi possible de spécifier directement `username=xx,password=xx` dans le fstab, mais déconseillé pour des raisons de sécurité) +`uid` et `gid` sont pour les id user et group auxquels appartiendra le répertoire une fois monté. Par défault (sur la Freebox V5 en tout cas), ils se retrouvent avec les uid/gid de 4242. +Il est aussi possible de mettre des droits particuliers avec les paramètres `file_mode=0777,dir_mode=0777`. diff --git a/isp_orange.md b/isp_orange.md new file mode 100644 index 00000000..6649ed5f --- /dev/null +++ b/isp_orange.md @@ -0,0 +1,86 @@ +# Orange + +*Find the list of other Internet service providers **[here](/isp)**.* + +#### Email + +The Orange box has port 25 closed so as to limit the amount of spam that could be sent from a compromised home connection. + +The remaining solution to host one own's email at home is to route it through the Orange SMTP servers. + +To that end, one has to edit the postfix configuration file with the following command: + +```bash +sudo nano /etc/postfix/main.cf +``` + +then, add the SMTP Orange server as a relay on the associated line: + +```bash +relayhost = smtp.orange.fr +``` + +restart Postfix : + +```bash +sudo service postfix restart +``` + +##### Problems + +If you are having an "Authentication required" error, the solution is as follows (note: french website): **[source](http://viruslocker.free.fr/?page_id=1749)**. + +Edit the postfix configuration file + +```bash +sudo nano /etc/postfix/main.cf +``` +then, add the following lines: + +```bash +smtp_sasl_password_maps = hash:/etc/postfix/sasl/mdp_fai.conf +smtp_sasl_auth_enable = yes +smtp_sasl_security_options = noanonymous +relayhost = [smtp.orange.fr]:25 +``` + +Create the `mdp_fai.conf` file : + +```bash +sudo nano /etc/postfix/sasl/mdp_fai.conf +``` + +add + +```bash +# mdp_fai.conf +[smtp.orange.fr]:25 emailaddress@at.orange:my-own-password +``` +with your Orange account password. + +Integrate the password into Postfix : + +```bash +sudo postmap /etc/postfix/sasl/mdp_fai.conf +sudo postconf -e smtp_sasl_password_maps=hash:/etc/postfix/sasl/mdp_fai.conf +``` + +If you are having an "(SASL authentication failed; cannot authenticate to server smtp-auth.nowhere.com[38.123.22.160]: no mechanism available)" error + +Check that `libsasl2-modules` and `sasl2-bin` are present : + +```bash +apt search libsasl2-modules +apt search sasl2-bin +``` + +If they are not present, do install them : + +```bash +apt install libsasl2-modules sasl2-bin +``` + +It is possible that postfix does not immediately take into account your modifications. To force it to do so, run +```bash +systemctl restart postfix +``` diff --git a/isp_orange_fr.md b/isp_orange_fr.md new file mode 100644 index 00000000..b6584b4a --- /dev/null +++ b/isp_orange_fr.md @@ -0,0 +1,86 @@ +# Orange + +*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.* + +#### Le courrier électronique + +La box d’Orange bloque le port 25 pour limiter l’envoi de spam. + +La solution restante pour héberger son courrier chez soi consiste à le faire passer par les serveurs SMTP d’Orange. + +Pour cela, il faut éditer le fichier de configuration de postfix avec la commande : + +```bash +sudo nano /etc/postfix/main.cf +``` + +puis, rajouter à la ligne le relai SMTP d’Orange : + +```bash +relayhost = smtp.orange.fr +``` + +redémarrez Postfix : + +```bash +sudo service postfix restart +``` + +##### Problèmes + +Si vous avez une erreur "Authentification requise", la solution est la suivante : **[source](http://viruslocker.free.fr/?page_id=1749)**. + +Éditer le fichier de configuration de postfix + +```bash +sudo nano /etc/postfix/main.cf +``` +puis, rajouter à la ligne : + +```bash +smtp_sasl_password_maps = hash:/etc/postfix/sasl/mdp_fai.conf +smtp_sasl_auth_enable = yes +smtp_sasl_security_options = noanonymous +relayhost = [smtp.orange.fr]:25 +``` + +créer le fichier `mdp_fai.conf` : + +```bash +sudo nano /etc/postfix/sasl/mdp_fai.conf +``` + +ajouter + +```bash +# mdp_fai.conf +[smtp.orange.fr]:25 adresseemail@chez.orange:son-mot-de-passe +``` +avec votre mot de passe du compte d'orange. + +Intégrer le mot de passe à Postfix : + +```bash +sudo postmap /etc/postfix/sasl/mdp_fai.conf +sudo postconf -e smtp_sasl_password_maps=hash:/etc/postfix/sasl/mdp_fai.conf +``` + +Si vous avez une erreur "(SASL authentication failed; cannot authenticate to server smtp-auth.nowhere.com[38.123.22.160]: no mechanism available)" + +Vérifier la présence de `libsasl2-modules` et de `sasl2-bin` : + +```bash +apt search libsasl2-modules +apt search sasl2-bin +``` + +Si ils ne sont pas présents, installez-les : + +```bash +apt install libsasl2-modules sasl2-bin +``` + +Il est possible que postfix ne prenne pas en compte tout de suite vos modifications. Pour le forcer à le faire, exécutez +```bash +systemctl restart postfix +``` diff --git a/isp_sfr.md b/isp_sfr.md new file mode 100644 index 00000000..e5002600 --- /dev/null +++ b/isp_sfr.md @@ -0,0 +1 @@ +Unfortunately, this page only exists [in french here](isp_sfr_fr) for now. diff --git a/isp_sfr_fr.md b/isp_sfr_fr.md new file mode 100644 index 00000000..73413126 --- /dev/null +++ b/isp_sfr_fr.md @@ -0,0 +1,14 @@ +# SFR +*Trouvez la liste d’autres fournisseurs d’accès Internet **[ici](/isp)**.* +#### Accès à l’administration de la box +* Allez à cette adresse : http://192.168.1.1. +* Authentifiez-vous, soit en appuyant sur le bouton de la box pendant 5 secondes soit avec les identifiants d’administration. + + + +#### Courrier électronique +Pour pouvoir envoyer des mails, il faut désactiver le filtrage. + + + +Source : https://assistance.sfr.fr/sfrmail-appli/sfrmail/envoyer-e-mail-serveur-smtp.html diff --git a/jessie_stretch_migration.md b/jessie_stretch_migration.md new file mode 100644 index 00000000..b2c78bce --- /dev/null +++ b/jessie_stretch_migration.md @@ -0,0 +1,59 @@ +# Migrating an existing instance to Stretch + +This page is dedicated to help you migrating an instance from YunoHost 2.7.x (running on Debian Jessie/8.x) to YunoHost 3.0 (running on Debian Stretch/9.x). + +## Important notes + +- The YunoHost team did its best to make sure that the migration is as smooth as possible and was tested over the course of several months in several cases. + +- With that said, please be aware that this is a delicate operation. System administration is a complicated topic and covering every particular cases is quite hard. Therefore, if you host critical data and services, please [make backups](/backup). And in any case, be patient and attentive during the migration. + +- Yet, please don't rush into thinking that you should rush into reinstalling your system. A common "mistake" is to be willing to reinstall a server at the slightest complication. But turns out that reinstalling a system can also be complicated. Instead, if you happen to run into issues, we encourage you to try to investigate and understand what's going on and reach for help instead of just throwing away everything because it looks simpler. + +- About external email clients: if you or your users are using external email clients (typically Thunderbird, K9Mail...) be aware that the SMTP port changed from 465 (with SSL/TLS) to 587 (STARTTLS). See [this page of doc dedicated to email clients](/email_configure_client). Webmail configurations such as Rainloop should also be updated using the corresponding administration interface. + +- For advanced users: if you have some custom scripts for backups, be aware that we made some backward-incompatible changes in the backup command line. The deprecated `--hooks`/`--ignore-hooks` options were removed, as well as the options `--ignore-apps`, `--ignore-system`. To make things more intuitive, `yunohost backup create --apps wordpress` (for example) will only backup wordpress, i.e. you don't have to add `--ignore-system` to not backup the system. + +## Migration procedure + +#### From the webadmin + +After upgrading to 2.7.14, go to Tools > Migrations to access the migrations interface. You will have to read carefully and accept the disclaimer then launch the migration. The logs will be shown in the message bar (you can hover it to see the whole history). + +#### From the command line + +After upgrading to 2.7.14, run: + +```bash +sudo yunohost tools migrations migrate +``` + +then read carefully and accept the disclaimer. + +## During the migration + +Depending on your hardware and packages installed, the migration might take up to a few hours. + +Note that it is expected to see some errors (in particular about Fail2Ban) during the migration, so don't worry too much about them. + +#### If the migration crashed / failed at some point. + +If the migration failed at some point, it should be possible to relaunch it. If it still doesn't work, you can try to [get help](/help) (please provide the corresponding messages or whatever makes you tell that it's not working). + +## What to do after the upgrade + +#### Check that you actually are on Debian Stretch and YunoHost 3.0 + +You should be able to see this from the webadmin Tools > Diagnosis, and also in the footer of the page. On the command line, you can use `lsb_release -a` and `yunohost --version`. + +#### Check that Fail2Ban and the firewall are active + +You should be able to see that Fail2Ban and the firewall are active. From the webadmin in Services (look for 'fail2ban' and 'yunohost-firewall'). From the command line, run `yunohost service status fail2ban yunohost-firewall`. They should both have `active: active`. + +#### Check that your applications are working + +Test that your applications are working. If they aren't, you should try to upgrade them (it is also a good idea to upgrade them even if they are working anyway). + +#### Mail users: check your mail score + +If you are using mails (especially sending them), check that your score is still good by using [mail-tester](https://www.mail-tester.com/) for example. diff --git a/jessie_stretch_migration_fr.md b/jessie_stretch_migration_fr.md new file mode 100644 index 00000000..067f782d --- /dev/null +++ b/jessie_stretch_migration_fr.md @@ -0,0 +1,59 @@ +# Migrer vers Stretch + +L'objectif cette page est de décrire le processus de migration d'une instance en YunoHost 2.7.x (tournant sous Debian Jessie/8.x) vers YunoHost 3.0 (tournant sous Debian Stretch/9.x) + +## Notes importantes + +- L'équipe de YunoHost a fait de son mieux pour que cette migration se passe autant en douceur que possible. Elle a été testée durant plusieurs mois et sur plusieurs types d'installations. + +- Néanmoins, vous devez être conscient qu'il s'agit d'une opération délicate. L'administration système est un sujet compliqué et couvrir tous les cas particuliers n'est pas chose aisée. En conséquence, si vous hébergez des données et des systèmes critiques, [faites des sauvegardes](/backup). Et dans tous les cas, soyez patients et attentifs durant la migration. + +- Cependant, ne vous précipitez pas non plus à vouloir faire une réinstallation de votre système. Une attitude qui revient régulièrement est de vouloir réinstaller son système à la moindre complication. Pourtant, réinstaller peut aussi s'avérer compliqué. À la place, si vous rencontrez des problèmes, nous vous encourageons à investiguer, chercher à comprendre et trouver de l'aide, plutôt que de se précipiter à vouloir réinstaller simplement parce que cela semble plus simple. + +- Si vous ou vos utilisateurs utilisez des clients emails externes (typiquement Thunderbird ou K9Mail) : le port SMTP a changé. Il s'agissait auparavant du port 465 (avec SSL/TLS) qui a été remplacé par 587 (STARTTLS). Voir [cette page de doc dédiée à la configuration des clients mails](/email_configure_client). La configuration des webmails comme Rainloop doit également être mise à jour, en passant par l'interface d'administration dédiée. + +- Pour les utilisateurs avancés : si vous avez des scripts personnels pour faire des backups, certains changements cassent (de façon mineure) la rétrocompatibilité de la ligne de commande. Les options dépréciées `--hooks`/`--ignore-hooks` ont été enlevées, ainsi que `--ignore-apps`, `--ignore-system`. Pour rendre les choses plus intuitives, `yunohost backup create --apps wordpress` (par exemple) créera uniquement un backup de wordpress, c.-à-d. pas besoin d'ajouter `--ignore-system` pour ne pas backuper le système. + +## Procédure de migration + +#### Depuis la webadmin + +Après avoir mis à jour vers la version 2.7.14, allez dans Outils > Migrations pour accéder à l'interface de migration. Il vous faudra ensuite lire l'avertissement attentivement et l'accepter pour lancer la migration. Les logs seront affichés dans la barre de message en haut (vous pouvez approcher la souris dessus pour voir l'historique en entier). + +#### Depuis la ligne de commande + +Après avoir mis à jour vers la version 2.7.14, lancez : + +```bash +sudo yunohost tools migrations migrate +``` + +puis lisez attentivement l'avertissement et les instructions. + +## Pendant la migration + +En fonction de votre matériel et des paquets installés, la migration peut prendre jusqu'à quelques heures. + +Notez qu'il est attendu de voir certaines erreurs (en particulier à propos de Fail2Ban) pendant la migration - ne vous en inquiétez pas trop. + +#### Si la migration a crashé / échoué à un moment. + +Si la migration a échoué a un moment donné, la première chose à faire est de tenter de la relancer. Si cela ne fonctionne toujours pas, il vous faut [trouver de l'aide](/help) (prière de fournir le/les messages correspondants ou tout élément qui vous fait penser que ça n'a pas marché). + +## Choses à vérifier après la migration + +#### Vérifiez que vous êtes véritablement sous Debian Stretch / YunoHost 3.0 + +Pour cela, allez dans Outils > Diagnostique. (Vous pouvez aussi regarder ce qui est affiché dans le pied de page). En ligne de commande, vous pouvez aussi utiliser `lsb_release -a` et `yunohost --version`. + +#### Vérifiez que Fail2Ban et le pare-feu sont actifs. + +Vous devriez voir que Fail2Ban et le firewall sont actifs. Depuis la webadmin, dans Services (chercher 'fail2ban' et 'yunohost-firewall'). Depuis la ligne de commande, faites `yunohost service status fail2ban yunohost-firewall` : les deux devraient être en `active: active`. + +#### Vérifiez que les applications fonctionnent + +Vérifiez que vos applications installées fonctionnent... Si elles ne fonctionnent pas, il est recommandé de tenter de les mettre à jour. (ou bien de manière générale, il est recommandé de les mettre à jour même si elles fonctionnent !). + +#### Si vous utilisez les mails : vérifiez votre score + +Si vous utilisez les emails (en particulier les envois), vérifiez que votre score est toujours bon via [mail-tester](https://www.mail-tester.com/) par exemple. diff --git a/moving_app_folder.md b/moving_app_folder.md new file mode 100644 index 00000000..941d3d03 --- /dev/null +++ b/moving_app_folder.md @@ -0,0 +1,38 @@ +# Moving an app folder to a different storage + +Applications folder are (*usually*) located in `/var/www/$appname` + +If an application folder is expected to get bigger because of the amount of data +it contains, it might be relevant to move it to another storage (like an +external hard drive). + +Here's a summary of how to do this the application wordpress. Here, is is assumed that +[you already mounted the external hard-drive](/external_storage). + +#### 1. Move the entire wordpress folder to an external hard drive + +```shell +mv /var/www/wordpress /media/externalharddrive/ +``` + +#### 2. Create a symbolic link + +So that programs looking for files in /var/www/wordpress will actually take them from the harddrive + +```shell +ln -s /media/externalharddrive/wordpress /var/www/wordpress +``` + +#### 3. Tweak permissions (maybe?) + +After this, note that you may need to tweak the permissions of `/media/externalharddrive` so that `www-data` (or the user corresponding to the app) is able to read through the folder... Something like : + +```shell +chgrp www-data /media/externalharddrive +chmod g+rx /media/externalharddrive + +``` + +(but it depends on your exact setup... Please update this doc page if you figure +out what to do exactly) + diff --git a/moving_app_folder_fr.md b/moving_app_folder_fr.md new file mode 100644 index 00000000..88df7bb4 --- /dev/null +++ b/moving_app_folder_fr.md @@ -0,0 +1,36 @@ +# Déplacer un dossier d’application vers un autre espace de stockage + +Les dossiers d'application se trouvent (*habituellement*) dans `/var/www/$nom_application` + +Lorsqu'un dossier d'application devient trop volumineux il peut être intéressant de le déplacer vers un autre espace de stockage (comme un disque dur externe, une carte sd, etc.) + +Partant du principe que [le stockage externe est déjà monté](/external_storage), voici un guide pour déplacer le dossier de l'application wordpress : + + +#### 1. Déplacer le dossier wordpress et tout son contenu vers le stockage externe + +```shell +mv /var/www/wordpress /media/externalharddrive/ +``` +___ + +#### 2. Créer un lien symbolique + +Le programme qui va chercher des informations dans le dossier /var/www/wordpress sera redirigé vers le stockage externe. + +```shell +ln -s /media/externalharddrive/wordpress /var/www/wordpress +``` +___ + +#### 3. (peut être) bidouiller les permissions + +Après tout ça, il est possible que vous ayez à modifier les permissions de `/media/externalharddrive` pour que `www-data` (ou l'utilisateur de l'app) puisse y accéder. Quelque chose comme : + +```shell +chgrp www-data /media/externalharddrive +chmod g+rx /media/externalharddrive + +``` + +(À préciser par un expert) diff --git a/news.md b/news.md new file mode 100644 index 00000000..a3975fc3 --- /dev/null +++ b/news.md @@ -0,0 +1,48 @@ +# YunoHost News + +
+
+ + + + + + diff --git a/noaccess.md b/noaccess.md new file mode 100644 index 00000000..a2ed2d20 --- /dev/null +++ b/noaccess.md @@ -0,0 +1 @@ +Unfortunately, this page only exists [in french here](noaccess_fr) for now. diff --git a/noaccess_fr.md b/noaccess_fr.md new file mode 100644 index 00000000..360a13a7 --- /dev/null +++ b/noaccess_fr.md @@ -0,0 +1,133 @@ +# Récupérer l’accès à son YunoHost + +Il existe de nombreuses causes pouvant empêcher totalement ou partiellement d'accéder en administrateur à un serveur YunoHost. Dans de nombreux cas, un des moyens d'accès est inaccessible, mais les autres sont fonctionnels. + +Cette page va vous aider à diagnostiquer, obtenir un accès et si besoin réparer votre système. Les pannes les plus courantes sont priorisées de haut en bas. Il vous suffit de tester chaque hypothèse. + + +## Vous avez accès au serveur via l'adresse IP, mais pas avec le nom de domaine ? + +#### Si vous êtes auto-hébergé à la maison : il faut configurer les redirection de ports + +Vérifier que vous arrivez à accéder au serveur en utilisant son IP globale (que vous pouvez trouver sur https://ip.yunohost.org). Si cela ne fonctionne pas: + - Assurez-vous d'avoir [configuré les redirections de ports](/isp_box_config) + - Certaines box de FAI ne supportent pas le hairpinning et vous ne pouvez pas accéder à votre serveur depuis l'intérieur du réseau local (sauf à passer par l'IP locale). Pour contourner le problème, vous pouvez tester d'accéder à votre serveur en passant par un proxy comme proxfree.com + +#### Il faut configurer vos enregistrement DNS + +(N.B.: ce n'est pas nécessaire si vous utilisez un domaine de type nohost.me, noho.st ou ynh.fr) + +Il vous faut configurer vos enregistrement DNS comme expliqué sur [cette page](/dns_config) (à minima l'enregistrement A, et AAAA si vous avez de l'IPv6). + +Vous pouvez valider que les enregistrements DNS sont corrects en comparant le résultat de https://www.whatsmydns.net/ avec l'IP globale de votre serveur (si vous êtes hébergé à la maison, vous pouvez obtenir cette IP sur https://ip.yunohost.org) + + +#### Autres causes possibles + +- Votre nom de domaine noho.st, nohost.me ou ynh.fr est inaccessible suite à une panne de l'infra YunoHost. Vérifiez sur le forum si d'autre personnes signalent le même problème. +- Votre nom de domaine est peut-être expiré. Vous pouvez vérifier que votre nom de domaine a expiré en vous connectant sur l'interface de votre registrar ou en utilisant le whois par exemple via la commande `whois NOM_DE_DOMAINE`. +- Vous avez une IP dynamique. Dans ce cas, il faut mettre en place un script qui se charge de mettre à jour régulièrement votre IP (ou d'utiliser un nom de domaine en nohost.me, noho.st ou ynh.fr qui inclue un tel mécanisme) + + +## Vous êtes face à une erreur de certificat qui vous empêche d’accéder à la webadmin + +Si vous venez d'installer votre serveur ou d'ajouter un nouveau domaine, il utilise pour le moment un certificat auto-signé. Dans ce cas, il devrait être possible et légitime d'ajouter *exceptionnellement* une exception de sécurité le temps d'[installer un certificat Let's Encrypt](/certificate) à condition d'être sur une connexion internet sûre (pas avec Tor Browser par exemple). + +Une erreur de certificat peut également être affichée dans certain cas où vous avez fait une faute de frappe dans la barre d'adresse de votre navigateur. + + +## Vous avez accès en SSH mais pas à la Web admin ou inversement + +#### Vous essayez de vous connecter en SSH avec `root` plutôt qu'avec `admin` + +Par défaut, la connexion en SSH doit s'effectuer avec l'utilisateur `admin`. Il est possible de se connecter à la machine avec l'utilisateur `root` *seulement depuis le réseau local* sur lequel se situe le serveur (ou bien via la console web / VNC pour des VPS). + +Lorsque vous exécutez des commandes `yunohost` en tant qu'admin, il faut les précéder de la commande `sudo` (par exemple `sudo yunohost user list`). Vous pouvez également devenir `root` en tapant `sudo su`. + +#### Vous avez été banni temporairement + +Votre serveur YunoHost inclut un mécanisme (Fail2Ban) qui banni automatiquement les IPs qui échouent plusieurs fois à s'authentifier. Dans certains cas, il peut s'agir d'un programme (par exemple un client Nextcloud) qui est configuré avec un ancien mot de passe ou d'un utilisateur qui utilise la même IP que vous. + +Si vous avez été banni en tentant d'accéder à une page web, seul les pages web sont inaccessibles, vous devriez donc pouvoir accéder au serveur en SSH. De même, si vous avez été banni en SSH vous devriez pouvoir accéder à la webadmin. + +Si vous avez été banni à la fois en SSH et à la webadmin, vous pouvez essayer d'accéder à votre serveur avec une autre IP, par exemple en utilisant la 4G d'un smartphone ou en utilisant Tor Browser. + +Voir aussi : [débannir une IP sur Fail2Ban](/fail2ban) + +NB : le bannissement dure en général 10 à 12 minutes. Le bannissement n'est actif qu'en IPv4. + + +#### Le serveur web NGINX est cassé + +Peut-être que le serveur web NGINX est en panne. Vous pouvez vérifier cela [en ssh](/ssh) avec `yunohost service status ssh`. Si il est en panne, vérifiez que la configuration ne comporte pas d'erreur avec `nginx -t`. Si la configuration est cassée, ceci est peut-être du à une l'installation ou désinstallation d'une application de mauvaise qualité... Si vous êtes perdu, [demandez de l'aide](/help). + +Il se peut également que le serveur web (NGINX) ou le serveur ssh aient été tués suite à un manque d'espace disque ou de RAM / swap. +- Tentez de relancer le service avec `systemctl restart nginx`. +- Vous pouvez contrôler l'espace disque utilisé avec `df -h`. Si une de vos partitions est remplie à 100%, il faut identifier ce qui prend de la place sur votre système et faire de la place. Il est possible d'installer l'utilitaire `ncdu` avec `apt install ncdu` puis de faire `ncdu /` pour analyser la taille des dossiers de toute l'arborescence. +- Vous pouvez contrôler l'utilisation de la RAM / swap avec `free -h`. En fonction des résultats, il peut être nécessaire d'optimiser votre serveur pour qu'il utilise moins de RAM (suppression d'app lourdes et inutiles...), d'ajouter de la RAM ou d'ajouter un fichier de swap. + +#### Votre serveur est accessible en IPv6 mais pas en IPv4 ou inversement + +Vous pouvez le vérifier en tentant de faire des ping sur votre serveur en IPv4 et en IPv6. + +Dans un tel cas, il est possible que vous arriviez à accéder à votre web admin en IPv6 mais pas en SSH potentiellement en IPv4 par défaut... + +Dans ce cas il faut résoudre votre problème de connectivité. + +Dans certains, cas une mise à jour de votre box a activé l'IPv6, entraînant des problèmes de configuration au niveau de votre nom de domaine. + + +## La webadmin fonctionne, mais certaines applications web me renvoient une erreur 502. + +Il est fort probablement que le service correspondant à ces applications soit en panne (typiquement pour les applications PHP, il s'agit de php7.0-fpm ou php7.3-fpm). Vous pouvez alors tenter de relancer le service, et si cela ne fonctionne pas, regarder les logs du service correspondant et/ou [demander de l'aide](/help). + + +## Vous avez perdu votre mot de passe administrateur ? (ou bien le mot de passe est refusé) + +Si vous arrivez à afficher la page web d'administration (forcez le rafraîchissement avec CTRL + F5 pour être sur) et que vous n'arrivez pas à vous connectez, vous avez probablement un mot de passe erroné. + +Si vous êtes certain du mot de passe, il est possible que le service SLAPD qui gère l'authentification soit en panne. Si c'est le cas, il vous faut vous connecter en `root`. +- Si votre serveur est chez vous, vous avez sans doute accès au réseau local du serveur. Depuis ce réseau, vous pouvez vous connecter [en SSH](/ssh) avec l'utilisateur `root`. +- Si vous êtes sur un VPS, votre hébergeur vous fournit peut-être la possibilité d'avoir une console sur votre serveur depuis le navigateur web. +Une fois connecté, il vous faut regarder l'état du service avec la commande `yunohost service status slapd` et/ou tenter de réinitialiser votre mot de passe avec la commande `yunohost tools adminpw`. + +Si vous ne pouvez pas ou ne réussissez pas non plus à vous connecter en `root`, vous allez devoir opérer en mode rescue. + +TODO: à compléter + + +## Votre VPN a expiré ou ne se monte plus + +Si vous utilisez un VPN a IP fixe, peut être que celui-ci est arrivé à expiration ou que l'infrastructure de votre fournisseur est en difficulté. + +Dans ce cas, vous pouvez peut être accéder à votre serveur avec son IP locale s'agissant probablement d'un serveur auto-hébergé chez-vous. + +Pour connaître votre IP locale, certaines BOX proposent une cartographie du réseau en cours avec les équipements connectés. Sinon, en ligne de commande avec linux: +```bash +sudo arp-scan --local +``` + +Vous pouvez aussi essayer avec le domaine `yunohost.local` s'il n'y a qu'un seul YunoHost sur votre réseau. + +Il faut voir avec votre fournisseur de VPN pour renouveler le VPN et mettre à jour les paramètre de l'app VPN Client. + +TODO : à compléter + +## Votre serveur est coincé au démarrage + +Dans certains cas, votre serveur peut rester coincé au démarrage. Il peut s'agir d'un problème suite à l'installation d'un nouveau kernel. Essayez de choisir un autre kernel avec VNC ou avec l'écran lors du boot. + +Si vous êtes en mode `rescue` avec `grub`, dans ce cas il peut s'agir d'un problème de configuration de `grub` ou d'un disque corrompu. + +Dans ce cas il faut accéder au disque avec un autre système (mode `rescue` du fournisseur, live USB, lire la carte SD ou le disque dur avec un autre ordinateur) et essayer de vérifier l'intégrité des partitions avec `smartctl`, `fsck` et `mount`. + +Si les disques sont corrompus et difficiles à monter, il faut sauvegarder les données et potentiellement refaire un formatage/réinstaller et/ou changer le disque. Si on arrive à monter le disque, il est possible d'utiliser `systemd-nspawn` pour entrer dans la base de données. + +Sinon, relancer `grub-update` et `grub-install` en `chroot` ou avec `systemd-nspawn`. + + +## L’accès en VNC ou via écran ne fonctionne pas + +Dans ce cas il peut s'agir d'un problème matériel sur votre serveur physique ou d'un problème d'hyperviseur si c'est un VPS. + +Si c'est une machine louée contactez le support de votre fournisseur. Sinon, essayez de dépanner votre machine en retirant les composants qui peuvent être en panne. diff --git a/orga/README.md b/orga/README.md new file mode 120000 index 00000000..aa9ff0cb --- /dev/null +++ b/orga/README.md @@ -0,0 +1 @@ +yunohost_project_organization_fr.md \ No newline at end of file diff --git a/orga/organization_schema.png b/orga/organization_schema.png new file mode 100644 index 00000000..e51b0d77 Binary files /dev/null and b/orga/organization_schema.png differ diff --git a/orga/yunohost_project_organization.md b/orga/yunohost_project_organization.md new file mode 100644 index 00000000..ce306c83 --- /dev/null +++ b/orga/yunohost_project_organization.md @@ -0,0 +1,323 @@ +# YunoHost project organisation + +## Document objective + +This document aims at allowing contributors to feel legitimate in contributing to the YunoHost project together with collective feedback. +The project is community-based and hasty decisions made by a restricted group of contributors can generate frustrations at a later stage. +To address this issue, the proposed solution here is to ensure that decisions are taken collectively and that they are sufficiently thought out. +An advisory council provides orientations for the evolution of the YunoHost project and special interest groups allow more efficient contribution in relation to each specific topic. + +## Definition of YunoHost + +###Objectives + +The goal of YunoHost is to make accessible to the largest number of people, the installation and administration of a server, without prejudice to the quality and reliability of the software. + +### Values + +#### A free and community-based software + +YunoHost is a software under free licence, fully community-based and based on applications which are themselves community-based and often free (Roundcube, baïkal, etc.) + +#### That everyone can appropriate + +Historically, the project has been very close to initiatives which aim at creating a neutral and decentralised Internet. This proximity especially with the [FFDN](https://www.ffdn.org/), has materialised by having some contributors to create the InternetCu.be whose mission is to facilitate self-hosting by providing a complete solution including a service (via a VPN) and a device. This militant aspect does not inhibit commercial software initiatives hereby companies could propose support or hosting. + +## YunoHost organisation + +### A theme-based, open structure + +The objective of the YunoHost organisation is to allow the largest number of people to contribute to software improvement, whether from a technical point of view (development, application packaging) or otherwise (communication, end-user assistance, documentation, etc.). Inspired by the projects which were reviewed at a recent event (Kodi, Debian, Django, Fedora, Wikipedia, etc.) and by ideas stemming from YunoHost contributors (Jérôme, Bram, opi, scith, ju), a decision was made to organise work by special interest groups, federated thanks to a council to key contributors. + +YunoHost project organisation schema + + + +#### Definition and structure of groups + +Groups are structured as a result of the fact that YunoHost counts many sub-projects (a total of 13), but without always knowing who is in charge or who is competent. It has therefore been decided to simplify the organisation into sub-projects according to theme-based groups: + +- ##### Core Dev Group + - YunoHost Core + - Moulinette + - Web admin + - SSOwat + - Dynette + - YNH-Dev + +- ##### Distribution Group + - Creation and maintenance of installation images on various architectures + - Distribution of images + - Management of Debian packages distribution + +- ##### Infra/Sysadmin Group + - Infrastructure + - Website (wiki, forum, chat room, redmine, Mumble) + - Demo + - Services + - [ip.yunohost.org](https://ip.yunohost.org/) and ip6.yunohost.org + - [yunoports](http://ports.yunohost.org/) + - nohost.me and noho.st + - [yunodash](https://dash.yunohost.org/) + - [yunopaste](http://paste.yunohost.org/) + +- ##### Apps Group + - apps.json list + - App development tools (package_checker, package linter) + +- ##### Communication Group + - Documentation + - Communication (announcement of project evolutions on the forum, social networks) + - Translation + - Mutual assistance (support) + +Groups are open to all contributors willing to participate to the development of YunoHost. Everyone can register with the communication channels associated with the group they want to get involved with. Everyone is free to exchange with the rest of the group and to submit a decision point which will follow a prior stage of exchange and improvement of the proposal. +In order to facilitate its management, each group names a coordinator (and a deputy) whose role is: + +- to welcome and to federate new regular contributors to the group +- to keep the Council informed of decisions taken within the group (see next point) + +The choice of a communication tool is left to each group depending on its relevance (forum, chat, email, etc.) + +#### Definition and structure of the Council + +YunoHost is growing and it's important to maintain a coherence among all the groups. However, it is impossible to impose on every member within every group to take interest or to get involved in all aspects of the project (due to time and competency constraints). To address this, it has been suggested that a meta-group be created where every group has at least one representative: hence the Council. +The Council is independent of groups and brings together contributors wishing to get involved in the project to the maximum extent. It's role is to: + +- take important decisions affecting YunoHost which are dependent on one single group (for instance, changing the wiki engine) +- regularly follow up on the overall aspect of the project to ensure its cohesion (Mumble meeting) +- call on the whole community of contributors (or even end-users) when a decision appears divisive between groups or within the Council + +To take part at Council-level votes, you must have contributed to the project and have obtained a right to vote (or right of entry) at the Council. This right is delivered by the Council (and may be upon request). The Council is free at any moment to change its decision process. +To be a member of the Council does not imply that you have access to all resources (infrastructure, repositories, etc.). + +### A decision process based on soft consensus + +Decisions to be taken can be of 2 kinds: + +1. for a group (for example, "to merge a PR" would be assumed by the Dev Group whereas to "post a tweet" would fall under the responsibility of the Communication Group) +2. for the overall project (for instance, to decide on a release with new features) + +If a consensus is not reached over a decision within a particular group, they must refer to the Council for further discussions. If no consensus has been reached, the proposal will be submitted to a vote by all contributors. + +#### The decision process in detail + +##### 1) Initiating a decision +- can be initiated by anyone following predefined media within each group (e.g. to open a PR automatically triggers this process) +- necessarily public with the exception of well-defined situations (bug related to a critical security issue or vote relative to individuals) +- an end-date is automatically set for every type of proposition. This date is used for various reasons: + - to leave enough time for everyone to express themselves and to avoid hasty decisions + - to maintain a certain rhythm otherwise if the quota of responses is reached then there's no need to wait for everyone's views within a group + - the quota is evaluated according to people registered in a group (or the Council, depending on the situation) who have expressed their desire to be considered as a regular voter => for instance kload could wish to give their opinion at a particular occasion, but with no intention of applying as a active voting member at the Council + - so it can be postponed upon simple request by any one member of the group—and only the group, not all contributors. + +##### 2) Opening a discussion with several possible responses: +Anyone can change their position at any moment, but it's expected to let the group react if necessary (e.g. avoid going from positive to negative to reject a proposal altogether after just 3 minutes). + +- "simple" replies + - "I agree" –> counts as a positive view + - "It seems good to me, but I'd rather abide by others' opinion" –> if there are only such views (or like the next one) and at least one positive view and the due date is past, then the proposal is accepted + - "no views" / "I'm not in a position to express a helpful view (e.g. I can't code in X)" + - delayed reponse + - request for clarification, in which case the decision is suspended + - refusal: any refusal should be argued and justified + +##### 3) Suspension/Postponement +- while there is no response, a decision is considered suspended; at the moment of a response, the end date is automatically postponed (if needed) (for a duration to be determined, which is shorter than the initial time) +- in a situation where there are positive and negative views, or where there is a choice between several proposals + +##### 4) Request for modifications +- however, it may happen that discussions take place around these modifications; if such is the case, there is a new decision to be added to the list of existing decisions, and the process applies again (with a postponement of the date) +- if there aren't enough people agreeing, the date is postponed and a recall must be sent +- if the result is very close, the group is invited to rediscuss the matter if it is important, otherwise this could turn into a divisive issue and of tensions in the future + +##### 5) Closure +- if the group is unanimous in its decision + - with agreements only + - with refusals only + - no opinions (relying on others' views) +- For a minor or standard decision, if the quota of responses is reached by the minimal deadline and there's a consensus. +- The quota of responses means necessary views as detailed below according to different types of decisions. The percentage is based on the number of active members in the group. The coordinator and its deputy are in charge of managing active and inactive members in a group, as they maintain an up-to-date list of members at least at every decision point within the group. (An inactive member who shows up for a decision automatically becomes active). +- If it isn't possible to have enough people (vacations, not enough members in a group to provide their views), a group can request closing a vote before the voting quota is reached; there's then a new postponement and if the new postponed date is reached, then the proposal is closed according to recorded views. + +###### Micro-decision: +- A decision taken and immediately applied by a single member. This kind of decision must necessarily be reversible, and can be questioned by anyone from any group. + +###### Minor decision +- Initial duration: 1 week. +- Minimal duration: 3 days. +- Postponement, if necessary: 3 days. +- Necessary views: 2 members of a group (the person who initiated the decision can express their view); in an anticipated format, 3 of which 2 members of the group. + +###### Standard decision: +- Initial duration: 2 weeks. +- Minimal duration: 1 week. +- Postponement, if necessary: 1 week. +- Necessary views: 50% of members of a group (the person who initiated the decision can express their view); in an anticipated format, 66% of members. +- Validation by voting (when applicable): 75% of positive votes. + +###### Major decision: +- Initial duration: 1 month. +- Postponement, if necessary: 2 weeks. +- Necessary views: 75% of members of a group (the person who initiated the decision can express their view). +- Validation by voting (when applicable): 90% of positive votes. + +##### 6) Application +Then a member of a group can announce their decision as effective (and proceed with necessary actions such as releasing, merging, announcing, etc.). If certain actions are required, it's important that people commit themselves to performing them, since a decision without designated people is of little use + +## Composition of groups + +- Council : Bram, ju, ljf, Maniack, Moul, opi, theodore +- Core Dev : AlexAubin, Bram, JimboJoe, Ju, ljf, Moul, opi +- Apps : Bram, cyp, frju365, JimboJoe, Josue-T, Ju, ljf, Maniack C, Maxime, Moul, Scith, Tostaki +- Infra : Bram, Ju, Maniack C, Moul, opi +- Communication + - Com : Bram, Moul, korbak, ljf, opi, frju365 + - Doc : Moul, Theodore + - Trans : Jean-Baptiste +- Distribution : Heyyounow + +## Summary table of the number of views required for a decision + +_Values are rounded (e.g. 5.4 => 5 and 5.5 => 6)._ + + +| | **Minor** | **Standard** | **Major** | +|----------------------|---------|----------|---------| +| **Council** | +| Standard closure | 2 | 4 | 5 | +| Anticipated closure | 3* | 5 | +| Closure by voting | 5 | 5 | 6 | +| **Core Dev** | +| Standard closure | 2 | 3 | 5 | +| Anticipated closure | 3* | 4 | +| Closure by voting | 4 | 5 | 5 | +| **Apps** | +| Standard closure | 2 | 5 | 8 | +| Anticipated closure | 3* | 7 | +| Closure by voting | 7 | 8 | 9 | +| **Infra** | +| Standard closure | 2 | 3 | 4 | +| Anticipated closure | 3* | 3 | +| Closure by voting | 3 | 4 | 5 | +| **Communication -> Com** | +| Standard closure | 2 | 2 | 3 | +| Anticipated closure | 3* | 3 | +| Closure by voting | 3 | 3 | 4 | +| **Communication -> Doc** | +| Standard closure | 1 | 1 | Council | +| Anticipated closure | 2* | 2* | +| Closure by voting | Council | Council | Council | +| **Distribution** | +| Standard closure | 1 | Council | Council | +| Anticipated closure | 1 | Council | +| Closure by voting | 1 | Council | Council | + +\* of which 1 view can be external to the group + +For the translation group, the process needs to be adapted. + +For the documentation group, the number of views for an anticipated closure of a minor decision eat for the moment limited (there are only 2 people in the group). The other types of decision are taken by the Council. + +For the distribution group, since there's only Heyyounow at the moment, the Council will have the task of making Standard and Major decisions. + +## Administration group's rights +This part list administration rights for differents groups of YunoHost project: + +(Warning, this is not decision rights here). + +### Council +- No administration right. Authorizations are completed through the other groups membership, +- Forum: ["Conseil" group member](https://forum.yunohost.org/groups/Conseil). + +### Core Dev +- GitHub: Devs team member inside YunoHost's organization (permission to push, merge…), +- Redmine: project member of [`YunoHost`](https://dev.yunohost.org/projects/yunohost) and [`Moulinette`](https://dev.yunohost.org/projects/moulinette), +- Continous integration: writting access to CI-Core, +- XMPP: ["dev"](xmpp:dev@conference.yunohost.org?join) channel moderator, +- Forum: ["Dev" group member](https://forum.yunohost.org/groups/Dev). + +### Infra +- Servers: SSH access using SSH key on some (as needed) or every servers, +- GitHub: [Infra team member inside YunoHost's organization](https://github.com/orgs/YunoHost/teams/infra) (permission to push, merge…), +- Redmine: [Infra project member](https://dev.yunohost.org/projects/y-u-no-infra/), +- Forum, Weblate, Redmine, XMPP, CI: administrator, +- Forum: [Infra group member](https://forum.yunohost.org/groups/Infra). + +### Apps +- GitHub: YunoHost-Apps [Owner](https://github.com/orgs/YunoHost-Apps/people?utf8=%E2%9C%93&query=%20role%3Aowner) (permission to push and merge on all repositories), +- Redmine: [Apps project member](https://dev.yunohost.org/projects/apps), +- GitHub: [Apps team member inside YunoHost's organization](https://github.com/orgs/YunoHost/teams/apps) (permission to push, merge…), +- Continous integration: access to [CI-Apps](https://ci-apps.yunohost.org), +- XMPP: [Apps channel moderator](https://im.yunohost.org/logs/apps), +- Forum: [Apps group member](https://forum.yunohost.org/groups/Apps). + +### Communication +- Forum: [Com group member](https://forum.yunohost.org/groups/Communication). + +#### Documentation +- GitHub: [Doc team member of YunoHost's organization](https://github.com/orgs/YunoHost/teams/doc). + +#### Communication +- Diaspora*: [account access](https://framasphere.org/people/01868d20330c013459cf2a0000053625), +- Twitter: [account access](https://twitter.com/yunohost), +- Forum: [account access](https://forum.yunohost.org/users/yunohost/activity). + +#### Translation +- Weblate: [translator tool admin](https://translate.yunohost.org/projects/yunohost/). + +#### Mutual assistance (support) +- Forum: moderator status, +- XMPP: [`support` chanel moderator](xmpp:support@conference.yunohost.org?join). + +### Distribution +- GitHub: [YunoHost's organisation `Distrib` team member](https://github.com/orgs/YunoHost/teams/distribution), +- Information: image distribution (ISO…) should be done in collaboration with `Infra` group (and `Doc`), +- Publication: SFTP access can be set up, +- Forum: [`Distribution` group team member](https://forum.yunohost.org/groups/Distribution). + +## Pending decisions for the groups + +### Council +- Should we elect Council members rather than co-opt them? There's a risk of it becoming a "political campaign"! +- Should special interest group membership be restricted to cooptation like for the Council? +- Proposal to change Council to Collegiate +- Migrate the project infrastructure server under YunoHost (with prepackaged apps like pad, dogs and mumble?) +- New system for documentation +- Improvement of documentation +- XMPP server migration +- Hosting of our Git forge +- Review the build system: stable <— testing <— branches +- Freeze nohost.me and abandoning services + +### Core Dev Group +- How to manage pull requests? + - Each ticket gives rise to a branch and a ticket; you make a pull/merge request, the community verifies that it works, a decision is taken to integrate. + +### Apps Group +- For community-based apps, issues are on GitHub as they should be, but discussions are on the forum + +### Communication Group +- Bug report from the forum +- Cleanup of the forum to avoid noise +- Proposal to delete support chat +- How to make the forum a more active and central hub +- How to organise rights on the forum (if groups want to vote on the forum) + +### Miscellaneous +- Request on the forum with notification to the Council members and to representatives of relevant special interest groups +- Vote over 2 weeks with a post on the forum +- Create 4 channels for Core Dev, Apps, Communication and Infrastructure +- A release should be validated by all 4 (or 5) interest groups +- Communication in French and English +- Directory or group contact for new people. Maybe just a directory to know who's who. https://yunohost.org/#/contribs to be completed. And to be highlighted. +- Proposal to leave YunoHost members auto-determine themselves -> How to manage access rights? + +## Current means of communication + +- Get-togethers at events +- Weekly Mumble meetings +- [Forum](https://forum.yunohost.org). +- [Bugtracker Redmine](https://dev.yunohost.org). +- Git Forge for code reviews: [YunoHost](https://github.com/YunoHost) [YunoHost-Apps](https://github.com/YunoHost-Apps). +- [XMPP chat rooms](https://yunohost.org/#/chat_rooms) diff --git a/orga/yunohost_project_organization_fr.md b/orga/yunohost_project_organization_fr.md new file mode 100644 index 00000000..dde31a57 --- /dev/null +++ b/orga/yunohost_project_organization_fr.md @@ -0,0 +1,299 @@ +# Organisation du projet YunoHost + +## Objectif du document +Ce document a pour objectif de permettre aux contributeurs de se sentir légitimes d’effectuer une contribution dans le projet YunoHost avec un avis collectif. Il vise également à renforcer le projet en le structurant autour de groupes de travail autonomes pouvant résister au départ ou à l'absence de certains contributeurs. +Le projet étant communautaire, les décisions prises hâtivement et discrètement par un groupe restreint de contributeurs peuvent entraîner des frustrations postérieures. +Pour pallier ce problème, la solution proposée ici est de faire en sorte que les décisions soient prises collectivement, qu’elles soient suffisamment réfléchies, et qu'elles soient documentées ou rendues publiques. +Un conseil oriente l’évolution du projet YunoHost, et des groupes d’intérêts permettent de contribuer plus efficacement en fonction des domaines de prédilection de chacun. + +## Définition de YunoHost + +### Objectifs +Le but de YunoHost est de rendre accessibles au plus grand nombre l’installation et l’administration d’un serveur, sans délaisser la qualité et la fiabilité du logiciel. + +### Valeurs + +#### Un logiciel libre et communautaire + +YunoHost est un logiciel sous licence libre, entièrement communautaire, et reposant sur des applications elles-mêmes communautaires et souvent libres (Roundcube, Baïkal, etc.). + + +#### Que chacun peut s'approprier + +Historiquement, le projet est très proche des initiatives visant à la création d'un internet neutre et décentralisé. Cette proximité, notamment avec la [FFDN](https://www.ffdn.org/), a amené une partie des contributeurs de YunoHost à créer la Brique Internet dont la mission est de faciliter l'auto-hébergement en fournissant une solution complète incluant service (via un VPN) et matériel. Cet aspect militant n'entrave pas des initiatives commerciales du logiciel pour lequel des entreprises pourraient proposer du support ou de l'hébergement. + + +## Organisation de YunoHost + +### Une structure ouverte, organisée par thèmes +L'objectif de l'organisation de YunoHost est de permettre au plus grand nombre de contribuer à l'amélioration du logiciel, que ce soit d'un point de vue technique (développement, packaging d'application) ou non (communication, assistance aux utilisateurs, documentation, etc.). Inspiré par différents projets passés en revue lors de l'événement (Kodi, Debian, Django, Fedora, Wikipédia, etc.) et des idées de contributeur de YunoHost (Jérôme, Bram, opi, scith, ju), il a été décidé d'une organisation en groupes spécialisés, fédérés par un conseil de contributeurs clés. + +Schéma d’organisation du projet YunoHost : + + + + +#### Définition et constitution des groupes +La constitution de groupes part du constat que YunoHost compte beaucoup de sous-projets (treize au total), mais que l'on ne sait pas toujours qui en est en charge ou qui y est compétent. Il est donc proposé une simplification de l'organisation des sous-projets en groupes thématiques : + +- ##### Groupe Core Dev + - Core YunoHost + - Moulinette + - Admin web + - SSOwat + - Dynette + - YNH-Dev + +- ##### Groupe Distribution + - Création et maintenance des images d'installation sur diverses architectures + - Distribution des images + - Gestion de la distribution des paquets Debian. + +- ##### Groupe Infra/Adminsys + - Infrastructure + - Site web (wiki, forum, salon de discussion, Redmine, Mumble) + - Démo + - Services + - [ip.yunohost.org](https://ip.yunohost.org/) et ip6.yunohost.org + - [yunoports](http://ports.yunohost.org/) + - nohost.me et noho.st + - [yunodash](https://dash.yunohost.org/) + - [yunopaste](http://paste.yunohost.org/) + +- ##### Groupe Apps + - Apps Officielles + - Apps Communautaires + - outils de développements d'app (package_checker, package linter) + +- ##### Groupe Communication + - Documentation + - Communication (annonce évolutions du projet sur le forum, réseaux sociaux) + - Traduction + - Entraide (support) + +Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe et de proposer une prise de décision à la suite d'une étape d'échange et d'amélioration de la proposition. Il est recommandé aux contributeurs de documenter au maximum leurs décisions et leurs contributions. Ceci permet de renforcer l'autonomie des groupes en cas de départs ou d'absences de certains de leurs membres. +Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : + +- d'accueillir et de fédérer les nouveaux contributeurs réguliers de son groupe +- de tenir informé le Conseil des décisions prises au sein du groupe (cf. point suivant) + +Le choix d'un outil de communication est laissé à chaque groupe en fonction de sa pertinence (forum, chat, ML, etc.). + +#### Définition et constitution du Conseil + +YunoHost grandissant, il est important de maintenir une cohérence entre tous les groupes, néanmoins il est impossible d'imposer à chacun des membres des groupes de s'intéresser ou de s'impliquer sur tous les aspects du projet (pour des raisons de temps et de compétences). Pour pallier à cela, il est proposé de créer un méta-groupe, où chaque groupe sera représenté par au moins un de ses membres : le Conseil. +Le Conseil est indépendant des groupes et réunit les contributeurs souhaitant s'impliquer le plus dans le projet, son rôle est de : + +- prendre les décisions importantes sur YunoHost qui ne dépendent pas d'un seul groupe (par exemple changer le moteur du wiki) +- faire des points réguliers sur l'ensemble du projet pour assurer sa cohésion. (réunion Mumble) +- solliciter l'ensemble de la communauté des contributeurs (ou même des utilisateurs) quand une décision divise les groupes et/ou le Conseil + +Le choix d'un outil de communication est laissé au Conseil, ses décisions doivent néanmoins être consultables par l'ensemble de la communauté de contributeurs. +Pour participer aux votes du Conseil, il faut avoir contribué au projet et avoir obtenu un droit de vote (ou d'entrée) au sein du Conseil. Ce droit est délivré par le Conseil (éventuellement sur demande). Le Conseil est libre à tout moment de modifier le processus de décision. +Être membre du Conseil n'implique pas forcément d'avoir l'ensemble des accès (infrastructure, dépôt etc.). + +### Processus de validation des pull requests + +Cette section détaille le processus de validation des pull requests dans les différents dépôts du projet. L'objectif de ce processus est de dégager un « consensus mou ». Il est important de préciser que ce processus est *recommandé* mais ne représente pas un impératif. En particulier, il ne couvre pas toutes les situations qui peuvent se présenter. Il est donc légitime de l'adapter (avec l'accord du groupe concerné) lorsqu'il n'est pas adapté au contexte. + +Si un consensus ne peut être trouvé au sein d'un groupe en suivant le processus décrit, il est invité à se tourner vers le Conseil pour en débattre. Si aucun consensus n'est trouvé, la proposition sera soumise au vote de tous les contributeurs. + +#### 1. Proposition + +N'importe quel contributeur peut proposer une pull request (abrégée PR dans la suite) dans les divers dépôts liés au projet YunoHost (core, apps, infra...). + +L'auteur est vivement encouragé à décrire sa proposition en donnant le maximum des informations +pertinentes. Le groupe peut, à cette fin, proposer un modèle des informations à +inclure, comme par exemple : +- status actuel de la PR (ex. : non terminé, en attente de revues, choix techniques à faire...) +- problème auquel réponds la PR (et références liées, par ex. : ticket sur le bugtracker, post sur le forum...) +- solution, stratégie, résumé des changements, et/ou choix techniques utilisés dans la PR +- comment tester la PR + +L'auteur est vivement encouragé à respecter les bonnes pratiques suivantes : +- une PR doit concerner exclusivement un sujet précis. Par exemple, elle ne doit pas à la fois résoudre un bug et ajouter une fonctionnalité (à moins que l'un implique l'autre) ; +- avant de débuter l'implémentation d'une fonctionnalité qui fait intervenir des choix de conception (nom et format de commande ou d'option, nouvelle API, interface utilisateur...), discuter en amont de manière informelle avec le groupe pour s'assurer que l'implémentation imaginée convienne au plus grand nombre et reste dans l'esprit du projet ; +- nommer sa PR avec un titre explicite, et la branche associée avec un nom explicite ; +- donner les références vers d'autres éléments liés à la PR (rapport de bug sur le bugtracker, message sur le forum...) + +Une PR peut être créée même si son auteur juge qu'elle n'est pas encore terminée. Dans ce cas, il doit déclarer explicitement dans le fil de discussion de la PR lorsqu'il juge la PR prête. Cela n'empêche pas les autres contributeurs d'émettre des avis sur la PR pendant ce temps. + +Il appartient aussi à l'auteur de la PR de juger de son importance. (Ce jugement pourra cependant être contesté par les autres membres du groupe concerné par la PR.) Les niveaux d'importance utilisés sont les suivants : +- **micro** : concerne uniquement un détail de forme et/ou qui ne nécessite pas d'être débattue et testée. Elle doit être facilement réversible. +- **mineure** : impacte de manière légère le projet (e.g. refactoring d'une petite partie de code, réparation d'un bug...) +- **moyenne** : impacte de manière significative l'architecture d'une partie du code (e.g. refactoring de tout un aspect ou de tout un fichier, ajout d'une fonctionnalité importante, sortie d'une version testing...) +- **majeure** : impacte lourdement l'ensemble du projet (e.g. migration d'une dépendance critique, changement de version de Debian, sortie d'une version stable...) + + +#### 2. Revue et validation collective + +(Cette section ne s'applique pas aux PR "micro" qui peuvent être validées directement par leur auteur.) + +Une fois la PR déclarée comme terminée, les contributeurs sont invités à donner leurs avis, relire et tester les changements proposés pour les valider. Lorsque des bugs ou des implémentations mauvaises ou incomplètes sont trouvées, les relecteurs rapportent cordialement le problème à l'auteur de la PR sur le fil de discussion. Si le problème trouvé est simple à corriger (e.g. typo ou détail de forme), le relecteur est encouragé à amender la PR pour corriger le problème lui-même. Sinon, l'auteur fait de son mieux pour corriger les problèmes soulevés. + +Les relecteurs rapportent également le degré de relecture et de tests effectués (c.f. liste ci-dessous). Selon l'importance de la PR (mineure, moyenne ou majeure), différents quotas de tests et approbations sont à remplir pour que celle-ci soit validée. Les relecteurs peuvent valider une fois chaque type de relecture/test nécessaire (par exemple, un relecteur peut donner un point d'accord sur le principe, un autre point de relecture en diagonale, et un autre point de test dans des cas simples.). L'auteur de la PR ne compte pas dans ces quotas de validation. La proposition doit aussi passer les tests automatiques disponibles dans le groupe (CI, tests unitaires/fonctionnels, linter...). + +| | **Mineure** | **Moyenne** | **Majeure** | +|-----------------------------------|-------------|--------------|-------------| +| **Accord sur le principe** | 2 | 3 | 4 | +| **Relecture en diagonale** | 1 | 2 | 3 | +| **Testé dans les cas simples** | 1 | 2 | 3 | +| **Relecture attentive** | 0 | 1 | 2 | +| **Testé dans des cas compliqués** | 0 | 1 | 2 | + +Si l'auteur ne fait pas parti du groupe concerné par la PR, tous ces quotas sont augmentés de 1. Dans tous les cas, ces quotas doivent être remplis au moins à 50% par des relecteurs membres du groupe concerné par la PR. (Ainsi, par exemple, un non-membre peut donner son accord sur le principe pour une PR mineure. Mais deux avis de non-membres pour une PR moyenne comptent uniquement pour un seul avis). + + +#### 3. Merge d'une pull request + +Une fois les quotas de relecture remplis, et si aucun refus n'a été prononcé et qu'aucune demande de changement n'est en attente, n'importe quel membre du groupe peut alors déclarer et marquer la PR comme "prête à être mergée". + +Pendant une durée de 3 jours suivant cette déclaration, les membres du groupe peuvent encore relire, demander des changements ou émettre un refus vis-à-vis de la PR. Dans ce cas, le merge est interrompu et le processus retourne à la partie 2. Pour les PRs moyennes et majeures, la durée est augmentée jusqu'à ce qu'il se soit écoulé au moins une semaine par rapport au moment où la PR a été déclarée comme prête par son auteur. + +À l'issue de cette durée, n'importe quel membre du groupe peut merger la PR. Lorsque celle-ci comporte plusieurs commits, il est recommandé d'utiliser la fonction "squash and merge" pour garder l'historique de commit propre. + +#### Cas particuliers + +Plusieurs cas particuliers peuvent se présenter et dont la résolution est décrite ci-après. + +##### Refus d'une PR + +Une PR peut être refusée et clôturée par n'importe quel membre du groupe concerné si : +- la PR a été créée au moins depuis deux semaines +- au moins deux membres du groupe ont manifesté un désaccord avec le principe de la PR +- aucun autre membre du groupe n'a manifesté son accord avec le principe de la PR + + +##### Co-création + +Une PR peut être développée par plusieurs personnes. Chacun est invité à y faire des commits en se concertant avec l'auteur initial ou le nouveau gestionnaire de PR si l'auteur est indisponible, manque de temps ou souhaite se consacrer à d'autres travaux. + +Si ces commits sont conséquents, dans ce cas on peut prendre **partiellement** en compte l'avis des auteurs dans les quotas de relectures et de tests. + +Exemple : si une PR est écrite par A et B (50/50), A et B pourront relire le code de l'autre. Dans ce cas, on pourra par exemple compter une relecture pour ces 2 relectures partielles. + + +##### Validation "allégé" en cas de manque de relecteurs + +En cas de manque de relecteurs, l'auteur d'une PR peut déclencher une procédure de validation alternative si : +- l'auteur est membre du groupe concerné par la PR +- il s'agit d'une PR mineure ou moyenne +- la PR a été déclarée comme prête +- il n'y a pas de demande de changement en attente +- les quotas de relecture "standards" n'ont pas été remplis +- une semaine s'est écoulée depuis le dernier commentaire ou commit + +Dans ce cas, l'auteur annonce sur le fil de discussion de la PR qu'il souhaite engager cette prodécure ainsi que sur la liste de diffusion (ou lors d'une réunion du mardi). À partir de ce moment, les quotas d'accord, relecture et tests pour valider cette PR sont diminués de 1. Au minimum une semaine devra s'écouler avant que cette PR ne soit effectivement mergée. Un autre membre du groupe peut à tout moment mettre fin à cette procédure si il juge la PR trop critique pour être mergée de la sorte. + +## Composition des groupes + +- Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. +- Core Dev : AlexAubin, Bram, JimboJoe, Ju, ljf, Moul, opi +- Apps : Bram, cyp, frju365, JimboJoe, Josue-T, Ju, ljf, Maniack C, Maxime, Moul, Scith, Tostaki +- Infra : Bram, Ju, Maniack C, Moul, opi +- Communication + - Com : Bram, Moul, korbak, ljf, opi, frju365 + - Doc : Moul, Theodore + - Trad : Jean-Baptiste +- Distribution : Heyyounow + + +## Droits d’administration afférents aux groupes +Cette partie liste les kits de droits d’administration pour les différents groupes du projet YunoHost : + +(Attention, il ne s’agit pas des droits de prises de décisions dans ce cas). + +### Conseil +- Aucun droits d’administration. Les droits sont complétés avec le fait d’être présents dans les autres groupes, +- Forum : membre du [groupe `Conseil`](https://forum.yunohost.org/groups/Conseil). + +### Dev +- GitHub : membre de l’[équipe `Devs` de l’organisation `YunoHost`](https://github.com/orgs/YunoHost/teams/devs), +- Redmine : membre des projets [`YunoHost`](https://dev.yunohost.org/projects/yunohost) et [`Moulinette`](https://dev.yunohost.org/projects/moulinette), +- Intégration continue : droits sur les outils d’intégrations continue CI-core, +- XMPP : modérateur du salon [`dev`](xmpp:dev@conference.yunohost.org?join), +- Forum : membre du [groupe `Dev`](https://forum.yunohost.org/groups/Dev). + +### Infra +- Serveurs : accès SSH par clé sur certains (selon les besoins) ou sur la totalité des serveurs, +- GitHub : membre de l’[équipe `Infra` de l’organisation `YunoHost`](https://github.com/orgs/YunoHost/teams/infra), +- Redmine: membre du [projet `Infra`](https://dev.yunohost.org/projects/y-u-no-infra/), +- Forum, Weblate, Redmine, XMPP, CI: administrateur, +- Forum : membre du [groupe `Infra`](https://forum.yunohost.org/groups/Infra). + +### Apps +- GitHub : propriétaire (Owner) [de l’organisation YunoHost-Apps](https://github.com/orgs/YunoHost-Apps/people?utf8=%E2%9C%93&query=%20role%3Aowner), +- Redmine : membre du [projet `Apps`](https://dev.yunohost.org/projects/apps), +- GitHub : membre de l’[équipe `Apps` de l’organisation `YunoHost`](https://github.com/orgs/YunoHost/teams/apps), +- Intégration continue : accès à [CI-Apps](https://ci-apps.yunohost.org), +- XMPP : modérateur sur le [salon `Apps`](xmpp:apps@conference.yunohost.org?join), +- Forum : membre du [groupe `Apps`](https://forum.yunohost.org/groups/Apps). + +### Communication +- Forum : membre du [groupe `Com`](https://forum.yunohost.org/groups/Communication). + +#### Doc +- GitHub : membre de l’[équipe `Doc` de l’organisation `YunoHost`](https://github.com/orgs/YunoHost/teams/doc). + +#### Communication +- Diaspora* : accès au compte [YunoHost](https://framasphere.org/people/01868d20330c013459cf2a0000053625), +- Twitter : accès au compte [YunoHost](https://twitter.com/yunohost), +- Forum : accès au compte [`YunoHost`](https://forum.yunohost.org/users/yunohost/activity). + +#### Traduction +- Weblate : administrateur sur l’[outil de traduction](https://translate.yunohost.org/projects/yunohost/). + +#### Entraide +- Forum : statut de modérateur, +- XMPP : statut de modérateur sur le salon [`support`](xmpp:support@conference.yunohost.org?join). + +### Distribution +- GitHub : membre de l’[équipe `Distrib` de l’organisation `YunoHost`](https://github.com/orgs/YunoHost/teams/distribution), +- Information : la diffusion des images (ISO…) doit se faire en collaboration avec le groupe `Infra` (et `Doc`), +- Publication : un accès SFTP peut être mis en place, +- Forum : membre du [groupe `Distribution`](https://forum.yunohost.org/groups/Distribution). + +## Décisions à venir pour les groupes +### Conseil +- Faut-il élire les membres du Conseil plutôt que de les coopter ? Risque de se transformer en "campagne politique" ! +- Faut-il limiter l'ouverture des groupes d'intérêts par cooptation comme pour le Conseil ? +- Proposition de changer Conseil en Collégiale +- Migrer le serveur d’infrastructure du projet sous YunoHost. (avec apps déjà packagées pad, Gogs, Mumble?) +- Nouveau système pour la documentation +- Amélioration de la documentation +- Migration du serveur XMPP +- Hébergement de notre forge Git +- Revoir système de build : stable <— testing <— branches +- Gel de nohost.me et question de l'abandon des services + +### Groupe Dev + - Comment gérer les pull request ? + - Chaque ticket fait l'objet d'une branche et d'un ticket, tu fais une pull/merge request, la communauté vérifie que ça fonctionne, une décision est prise d'intégrer. + +### Groupe Apps + - Pour les apps communautaires, les issues sont bien sur GitHub, les discussions sur le forum + +### Groupe Communication +- Rapport de bug à partir du forum +- Faire en sorte de nettoyer le forum pour éviter le bruit +- Proposition de supprimer le salon de support +- Comment rendre le forum plus actif et central +- Comment s'organiser pour les privilèges sur le forum (si les groupes veulent voter sur le forum) + +### Autres +- Demande sur le forum avec notification des membres du Conseil et des représentants des groupes d’intérêts concernés. +- Vote sur deux semaines par un post sur le forum +- Créer quatre canaux pour le Dev, les Apps, la Communication et l'Infrastructure +- La release devrait être validée par l'ensemble des 4 (ou 5) groupes d’intérêts +- Communication en français et en anglais +- Annuaire ou contact des groupes pour les nouveaux arrivants. Voir peut-être annuaire tout court pour savoir qui fait quoi. https://yunohost.org/#/contribs_fr à compléter. Et à mettre en avant. +- Proposition de laisser les membres YunoHost s'auto déterminer -> Comment gérer les accès ? + +## Moyens de communication actuels + +- Rencontres à des évènements. +- Réunions hebdomadaires Mumble. +- [Forum](https://forum.yunohost.org). +- [Bugtracker Redmine](https://dev.yunohost.org). +- Forge Git pour la review de code : [YunoHost](https://github.com/YunoHost) [YunoHost-Apps](https://github.com/YunoHost-Apps). +- [Salons de discussions XMPP](https://yunohost.org/#/chat_rooms_fr) diff --git a/overview.md b/overview.md new file mode 100644 index 00000000..d075c2ea --- /dev/null +++ b/overview.md @@ -0,0 +1,13 @@ +# Overview of the YunoHost ecosystem + +This page provide an overview of the ecosystem of a YunoHost server. While this overview contains several approximations, the purpose here is to introduce the global picture before digging into the different aspects. + +![](images/ecosystem.png) + +Everything starts with the special user **admin**. This is the administrator of the machine who can install, configure and manage things on the server through the web administration interface, or via SSH and the command line interface. *(If you are already familiar with GNU/Linux, it is quite similar to root. YunoHost has this additional 'admin' user for several technical reasons.)* + +The administrator can create users and install applications, among other admin actions. Users automatically have their own email adress as well as an XMPP account when they get created. Users will also be able to connect to the user portal (SSO) to access applications. Some applications can typically be installed either as publicly-accessible, or as private, i.e. only some users will have access to it. + +Applications and ther features of the server rely on different services to work properly. Services (sometimes also called daemons) are programs that are constantly running on the server to ensure various tasks are done, such as answering to web requests from web browsers, or relaying emails. + + diff --git a/overview_fr.md b/overview_fr.md new file mode 100644 index 00000000..7aed44ef --- /dev/null +++ b/overview_fr.md @@ -0,0 +1,11 @@ +# Vue d’ensemble de l’écosystème YunoHost + +Cette page pose une vue d'ensemble de l'écosystème d'un serveur sous YunoHost. Bien que celle-ci contienne des approximations et des raccourcis, elle permet de poser une première représentation générale avant de rentrer plus dans le détail des différents aspects. + +![](images/ecosystem_fr.png) + +Tout commence avec l'utilisateur spécial, **admin**. Il s'agit de l'administrateur de la machine qui peut installer, configurer et gérer le serveur à travers l'interface web d'administration, ou via SSH et la ligne de commande. *(Si vous êtes familier avec GNU/Linux, il est similaire à root. YunoHost possède cet utilisateur supplémentaire 'admin' pour plusieurs raisons techniques.)* + +L'administrateur peut créer des utilisateurs et installer des applications, parmis d'autres actions d'administration. Les utilisateurs disposent immédiatement d'une adresse e-mail sur le serveur et d'un compte XMPP pour chatter. Les utilisateurs peuvent se connecter au portail utilisateur (SSO) pour accéder aux applications. Les applications peuvent typiquement être installées soient en accès public, ou privé, c'est-à-dire que seuls les utilisateurs du serveur pourront y accéder. + +Les applications et autres fonctionnalités du serveur reposent sur plusieurs services pour fonctionner proprement. Les services (aussi appelés daemon) sont des programmes qui tournent constamment pour assurer des tâches, telles que répondre aux requêtes web des navigateurs internet, ou relayer les e-mails. diff --git a/packaging_apps.md b/packaging_apps.md new file mode 100644 index 00000000..e6b32749 --- /dev/null +++ b/packaging_apps.md @@ -0,0 +1,135 @@ +# App packaging + +The purpose of this document is to teach you how to package an application for YunoHost. + +### Requirements +To package an application, here are the requirements: +* An account on a Git server (e.g. [GitHub](https://github.com/)) to publish the application; +* Basic knowledge of [Git](/packaging_apps_git), bash shell and other programming stuff; +* A testing [virtual machine or a distant server](/install) or [VirtualBox](/packaging_apps_virtualbox), to package and test the package. Alternatively you can also use [ynh-dev](https://github.com/yunohost/ynh-dev), it is meant for the core but can totally be used for developping apps, but be aware that for now the documentation on this part is lacking. + +### Content +A YunoHost package is composed of: + +* A `manifest.json` file +* A `scripts` directory, which contains five Shell scripts: `install`, `remove`, `upgrade`, `backup` and `restore` +* Optional directories, containing `sources` or `conf` files +* A `LICENSE` file containing the license of the package +* A presentation page of your package in a `README.md` file + + A basic package +feel free to use it as a framework. + +## Manifest +Manifest + +## Scripts +Scripts + +### Architecture and arguments +Since YunoHost has a unified architecture, you will be able to guess most of the settings you need. But if you need variable ones, like the domain or web path, you will have to ask the administrator at installation (see `arguments` section in the manifest above). + +Arguments management + +### NGINX configuration +NGINX configuration + +### Multi-instance +Multi-instance + +### Hooks +YunoHost provides a hook system, which is accessible via the packager's script callbacks in command line. +The scripts have to be placed in the `hooks` repository at the root of the YunoHost package, and must be named `priority-hook_name`, for example: `hooks/50-post_user_create` will be executed after each user creation. + +**Note**: `priority` is optional, default is `50`. + +Take a look at the [Nextcloud package](https://github.com/YunoHost-Apps/nextcloud_ynh/) for a working example. + +### Helpers +Helpers + +### Registering a log file + +In a lot of case, you might want to register a log file created by your app, to make it available in the webadmin. To register a log, you can create a reference file `/var/log/yunohost/categories/app/APPNAME.yml`. + +You can specify a start date by starting the file name with the date formatted as `YYYYMMDD-HHMMSS`. + +Example of yml metadata log file: +```bash +log_path: /path/to/your/log/file.log +``` + +If you want display some context info, you can add: +```bash +extra: + env: + args1: value1 + args2: value2 + args3: value3 +``` + +You can attach the log to an app, domain, service or user like this : +```bash +related_to: + - ['app', 'APPNAME'] + - ['service', 'SERVICE1'] + - ['service', 'SERVICE2'] + - ['domain', 'DOMAIN.TLD'] +``` + +This will be used to filter logs and display all log related to an entity like a user, a domain, an app or a service. + +### Test it! +In order to test your package, you can execute your script standalone as `admin` (do not forget to append required arguments): +```bash +su - admin -c "/bin/bash /path/to/my/script my_arg1 my_arg2" +``` + +Or you can use [command line](/commandline): +```bash +yunohost app install /path/to/my/app/package +``` +Note that it also works with a Git URL: +```bash +yunohost app install https://github.com/author/my_app_package.git +``` + +### Packaging best practices +Here is a list of best practices for application install scripts: +* scripts should use `sudo cp -a ../sources/. $final_path` instead of `sudo cp -a ../sources/* $final_path`; +* install script must contain support in case of script errors to delete residuals files thanks to `set -e` and [trap](/packaging_apps_trap); +* install script should use the command-line method instead of calls to curl through web install form; +* install script should save install answers; +* application sources should be checked with a control sum (sha256, sha1 or md5) or a PGP signature; +* scripts should be tested on Debian Buster 32 bits, 64 bits and ARM architectures; +* backup and restore scripts should be present and functional. + +To be define the quality of a package, it'll obtained a [level](/packaging_apps_levels), determined according to somes criteria of installation and according to respect to [package guidelines](packaging_apps_guidelines). + +### Package script checker +Package checker + +This Python script checks: +* that the package is up to date wich last specifications +* that all files are present +* that the manifest doesn't have syntax errors +* that scripts exit well before modifing the system during verification. + +### Continuous integration + +A continuous integration server is available for packagers who want to test their apps. +Continuous integration + +### Publish and ask for testing your application + +* Publishing a [post on the Forum](https://forum.yunohost.org/) in the [`Discuss > Apps` category](https://forum.yunohost.org/c/discuss/discuss-apps/), to ask for testing and feedback on your application. + +* If your application is released under a free software license, you may ask the YunoHost app team to integrate your application to the [app repository](https://github.com/YunoHost/apps) (c.f. also the [app list](/apps)). You can add your application even if it is not stable or working yet : the current state can be specified to `notworking`, `inprogress`, or `working`. + +* If your application is *not* free software, then in the future, a non-official list might be created to handle them but is non-existent yet. + +### Officalization of an application + +**!! This section is obsolete as of 08/03/19** - The project's organization regarging this point is to be changed. + +To become an official application, it must be tested well enough, be stable and should work on Debian Buster 64 bits, 32 bits and ARM architectures. If you think those conditions are met, ask for [official integration](https://github.com/YunoHost/apps) of your application. diff --git a/packaging_apps_actions.md b/packaging_apps_actions.md new file mode 100644 index 00000000..e165e031 --- /dev/null +++ b/packaging_apps_actions.md @@ -0,0 +1,149 @@ +# Applications Actions + +
For now, all those features are EXPERIMENTAL +and aren't ready for production and are probably going to change again, if you +still decide to use them don't expect them to be stable and follow to core +development of YunoHost otherwise they might randomly breaks on your apps +
+ +Applications "actions" is a packaging feature that allow you to ship with your +application a list of "actions" executable from both the cli and the admin +interfaces. + +"actions" are a list of custom commands that, optionally, has arguments (like +the installation script of an application has arguments) and once called will +called a specific selected command with those arguments. Like an "actions" +restart service with a argument "service name" could called the command +`systemctl restart $some_service` (but don't that specific action in your app, +it's just for example purpose). + +Like the installation page generated from the manifest those actions can accept +a list of arguments. + +Their main purpose is to expose procedures that a sysadmin would normally do on +CLI but that your application user would want to do but don't have the +knowledge to do by themselves via ssh (or are just too lazy for that). + +For example those could be: + +* importing data in a application +* generate a custom backup +* start a procedure like synchronising file with the file system (nextcloud for example) +* purge a local cache +* restart some services +* modify a theme + +Actions looks like this in the admin interface: + +![actions admin screenshot](images/actions_example.png) + +## How to add actions to your application + +Adding actions to your application is pretty simple as it is very similar to +writing your manifest for the application installation. + +You need to write an `actions.toml` file in your application at the root level +like the `manifest.toml`/`manifest.json`. + +
+The arguments are written in **[YunoHost Arguments +Format](/packaging_apps_arguments_format)** like in `manifest.toml/json` +
+ +The general pattern looks like this: + +```toml +[first_action] +name = "some name" +description = "some description that will be displayed" + +# can be a bash command like so: +command = "echo pouet $YNH_ACTION_FIRST_ARGUMENT" +# or a path to a script like +command = "/path/to/some/stuff --some-flag $YNH_ACTION_FIRST_ARGUMENT" + +user = "root" # optional +cwd = "/" # optional, "current working directory", by default it's "/etc/yunohost/apps/the_app_id" + # also the variable "$app" is available in this variable and will be replace with the app id + # for example you can write "/var/www/$app" +accepted_return_codes = [0, 1, 2, 3] # optional otherwise only "0" will be a non enorous return code + + [first_action.arguments] + # here, you put a list of arguments exactly like in manifest.toml/json + [first_action.arguments.first_argument] + type = "string" + ask.en = "service to restart" + example = "nginx" + + ... # add more arguments here if needed + # you can also have actions without arguments + +[another_action] +name = "another name" +command = "systemctl restart some_service" + + [another_action.arguments] + [another_action.arguments.argument_one] + type = "string" + ask.en = "some stuff" + example = "stuff" + + ... # add more arguments here if needed + # you can also have actions without arguments +``` + +You can have as much actions as you want and from zero to as many arguments you want. + +If you prefer, you can also write your actions in JSON like manifest.json: + +```json +[{ + "id": "restart_service", + "name": "Restart service", + "command": "echo pouet $YNH_ACTION_SERVICE", + "user": "root", # optional + "cwd": "/", # optional + "accepted_return_codes": [0, 1, 2, 3], # optional + "description": { + "en": "a dummy stupid exemple or restarting a service" + }, + "arguments": [ + { + "name": "service", + "type": "string", + "ask": { + "en": "service to restart" + }, + "example": "nginx" + } + ] +}, +{ + ... # other action +}] +``` + +## How to use actions + +### In the admin + +
For now since those features are still +experimental you won't find any direct links to the app actions on the app +page
+ +The actions are located on https://some_domain.tld/yunohost/admin/#/apps/$app_id/actions + +## With the CLI + +The CLI API is very similar to application installation. You have 2 commands: + +* `yunohost app list $app` +* `yunohost app run $app $action_id` ("$action_id" is the this between "[]" + like "[another_action]" in the example) + +`list` will obviously give you all actions for an application. + +`run` will run an existing action for an application and will ask, if needed, +values for arguments. Like with `yunohost app install` you can use the `-a` and +pass arguments in the HTTP POST arguments format (like +`&path=/app&domain=domain.tld&other_value=stuff`) diff --git a/packaging_apps_advanced.md b/packaging_apps_advanced.md new file mode 100644 index 00000000..a4e8eef8 --- /dev/null +++ b/packaging_apps_advanced.md @@ -0,0 +1,40 @@ +# Advanced features of apps packaging + +
For now, all those features are EXPERIMENTALS +and aren't ready for production and are probably going to change again, if you +still decide to use them don't expect them to be stable and follow to core +development of YunoHost otherwise they might randomly breaks on your apps +
+ +## Actions + +Actions allow you to ship a list of executables "actions" related to your +application, for example that could be: + +* import data +* generate a custom backup +* start a procedure +* regenerate a local cache + +[Full documentation](packaging_apps_actions) + +Example in the admin: + +![actions admin screenshot](images/actions_example.png) + +## Configuration Panel + +Configuration or "config_panel" allow you to offer a custom configuration panel +for your application integrated into YunoHost administration panel. This allow +you to expose whatever configuration you want for your application and this is +generally used to handle an application configuration file when this is not +possible inside the application itself. + +This is generally also the place where you want to add the option to make an +application public or not. + +[Full documentation](packaging_apps_config_panel) + +Example in the admin: + +![actions admin screenshot](images/config_panel_example.png) diff --git a/packaging_apps_arguments_format.md b/packaging_apps_arguments_format.md new file mode 100644 index 00000000..7663d2a9 --- /dev/null +++ b/packaging_apps_arguments_format.md @@ -0,0 +1,331 @@ +# YunoHost Arguments Format + +In YunoHost application developpement there are several places where you end up +writting questions for your user like in the `manifest.json/toml`, the +`config_panel.json/toml` or `actions.json/toml`. + +This page documents this format and all available kind of questions you can ask +your user. Unless it's stated otherwise, this format applies to everyplace it's +usable (for now: installation arguments in `manifest.json/toml`, +`config_panel.json/toml` and `actions.json/toml`) + +## YunoHost arguments general format + +The general format for an argument looks like this in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "one_of_the_available_type" +ask.en = "the question in english" +ask.fr = "the question in french" +help.en = "some help text in english" # optional +help.fr = "some help text in french" # optional +example = "an example value" # optional +default = "some stuff" # optional, not available for all types +optional = true # optional, will skip if not answered +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "one_of_the_available_type", // "sting" is not specified + "ask": { + "en": "the question in english", + "fr": "the question in french" + }, + "help": { + "en": "some help text in english", + "fr": "some help text in french" + }, + "example": "an example value", // optional + "default", "some stuff", // optional, not available for all types + "optional": true // optional, will skip if not answered +}, +``` + +## All avaiable types + +### string + +This one is the simpliest one and is the default type if you don't specify one. + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "string" # optional +ask.en = "the question in english" +ask.fr = "the question in french" +example = "an example value" # optional +default = "some stuff" # optional +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "string", // optional + "ask": { + "en": "the question in english", + "fr": "the question in french" + }, + "default": "some stuff", // optional + "example": "an example value" +}, +``` + +### string with choices + +Like string except the user needs to chose in a list of specifics strings. + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "string" +ask.en = "the question in english" +ask.fr = "la question en français" +example = "an example value" # optional +choices = ["fr", "en"] +default = "en" # optional +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "string", + "ask": { + "en": "the question in english", + "fr": "the question in french" + }, + "example": "an example value", + "choices": ["fr", "en"], + "default": "en" // optional +}, +``` + +### domain + +This type will ask the user to chose one of the domains of their YunoHost instance. + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "domain" +ask.en = "the question in english" +ask.fr = "the question in french" +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "domain", + "ask": { + "en": "the question in english", + "fr": "the question in french" + } +}, +``` + +### Path + +This type will ask the user to chose an URL path (generally to happen it to a +domain) like "/path/to/my/app" + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "path" +ask.en = "the question in english" +ask.fr = "the question in french" +default = "/my_app" +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "path", + "ask": { + "en": "the question in english", + "fr": "the question in french" + }, + "default": "/my_app" +}, +``` + +### User + +This type will ask the user to select a user in the list of users in their +YunoHost installation. Generally this is used to select who is going to be the +admin or who is going to have access to this application. + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "user" +ask.en = "the question in english" +ask.fr = "the question in french" +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "user", + "ask": { + "en": "the question in english", + "fr": "the question in french" + } +}, +``` + +### Password + +This type will ask the user to input a password. This is generally used to +input the password for creating an account on the application. + +In CLI it will behave like any password query and won't print any character on +type (not "\*\*\*...") for security reasons. + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "password" +ask.en = "the question in english" +ask.fr = "the question in french" +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "password", + "ask": { + "en": "the question in english", + "fr": "the question in french" + } +}, +``` + +### Boolean + +This type will ask the user to answer true or false to a question. + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "boolean" +ask.en = "the question in english" +ask.fr = "the question in french" +default = true +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "boolean", + "ask": { + "en": "the question in english", + "fr": "the question in french" + }, + "default": true +}, +``` + +### Number + +Like string except the user needs to enter a number + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "number" +ask.en = "the question in english" +ask.fr = "the question in french" +default = 0 +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "number", + "ask": { + "en": "the question in english", + "fr": "the question in french" + }, + "default": 0 +}, +``` + +### App + +This type will ask the user to select an application in the list of installed +application on their YunoHost. + +Example in toml: + +```toml +[maybe.some.stuff.before.the_name] +type = "app" +ask.en = "the question in english" +ask.fr = "the question in french" +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "app", + "ask": { + "en": "the question in english", + "fr": "the question in french" + } +}, +``` + +### display_text + +This is a special type that allows the application packager to write some text +that will be simply displayed. This is useful to provide more context. + +```toml +[maybe.some.stuff.before.the_name] +type = "display_text" +ask.en = "the text in english" +ask.fr = "the text in french" +``` + +And in json: + +```javascript +{ + "name": "the_name", + "type": "display_text", + "ask": { + "en": "the text in english", + "fr": "the text in french" + } +}, +``` diff --git a/packaging_apps_arguments_management.md b/packaging_apps_arguments_management.md new file mode 100644 index 00000000..130e3de4 --- /dev/null +++ b/packaging_apps_arguments_management.md @@ -0,0 +1,27 @@ +Application packaging + +## Arguments management +#### Retrieve arguments in the install script from manifest +Arguments are given to the install script from the manifest in it's order. For instance, for Roundcube, `domain` and `path` arguments will respectively be retreived from environment variables or from `$1` and `$2` parameters in the install script. + +```bash +# Retrieve arguments +domain=$YNH_APP_ARG_DOMAIN +path=$YNH_APP_ARG_PATH +``` + +#### Save arguments for other scripts +Remove, upgrade, backup and restore scripts could need arguments. + +YunoHost could save arguments with this command which is generally used in the install script: +```bash +# Store config on YunoHost instance +ynh_app_setting_set $app domain $domain +``` + +Then, the script can retrieve saved arguments with this command: +```bash +domain=$(ynh_app_setting_get $app domain) +``` + +Those data are saved in `/etc/yunohost/apps//settings.yml`. diff --git a/packaging_apps_arguments_management_fr.md b/packaging_apps_arguments_management_fr.md new file mode 100644 index 00000000..6694ac94 --- /dev/null +++ b/packaging_apps_arguments_management_fr.md @@ -0,0 +1,28 @@ +Packaging d’application + +## Gestion des arguments +#### Récupérer les arguments du manifeste dans le script d’installation +Les arguments sont passés au script d’installation dans l’ordre du manifeste. Par exemple pour Roundcube, les arguments `domain` et `path` seront respectivement récupérés via les variables d’environnement ou les paramètres `$1` et `$2` dans le script d’installation. + +```bash +# Retrieve arguments +domain=$YNH_APP_ARG_DOMAIN +path=$YNH_APP_ARG_PATH +``` + +#### Sauvegarder des arguments pour les autres scripts +Les scripts remove, upgrade, backup et restore peuvent avoir besoin de ces arguments. + +Pour cela, YunoHost peut sauvegarder les arguments avec cette commande : +```bash +# Store config on YunoHost instance +ynh_app_setting_set --app="$app" --key="domain" --value="$domain" +``` +Elle est généralement utilisée dans le script d’installation. + +Ensuite, le script peut récupérer les arguments sauvegardés avec cette commande : +```bash +domain=$(ynh_app_setting_get --app "$app" --key=domain) +``` + +Ces données sont sauvegardées dans `/etc/yunohost/apps//settings.yml`. diff --git a/packaging_apps_ci.md b/packaging_apps_ci.md new file mode 100644 index 00000000..543da54d --- /dev/null +++ b/packaging_apps_ci.md @@ -0,0 +1,44 @@ +# Continuous integration + +A continuous integration server is available for any packager willing to test an app with [Package_check](https://github.com/YunoHost/package_check). + +ci-apps-dev + +This server is free to use for any of you, you just need an account. +To do so, ask to a member of the Apps group on our [Applications chatroom](/chat_rooms) + +To create an account on this CI, you'll need two things: +- A name (To create an user and to give it a directory). +- A public ssh key (For your access to the server). + +When that's done, you'll be able to access the server and put your apps on it. +To connect to the server use: +```bash +ssh USER@ci-apps-dev.yunohost.org -i YOUR_PRIVATE_KEY +``` + +You will find an empty directory, ready to receive your apps. +As soon as you push an app into your directory, in a 5 minutes maximum delay, a new job will be created for this app and executed by the CI. +Each time you will update this app, a new test will be executed. + +However, to prevent any security issues, your ssh connection will be very limited. +You can only use `sftp` or `rsync` to copy your apps into that directory. `Git` isn't available, neither most of the usual bash commands. +To ease your usage of this CI, a small script can be used to copy your apps to your directory. + +Copy this [script](https://raw.githubusercontent.com/YunoHost/CI_package_check/master/dev_CI/send_to_dev_ci.sh) into your usual working directory and fill it with your info. + +Make sure the content of your `check_process` file is correct then transfer your files. +When your files have been transfered, you can monitor the CI pipeline on https://ci-apps-dev.yunohost.org. + +--- + +# Other continuous integration servers + +For your information, here the list of all our continuous integration servers. +Those CI are automatic, you can't use them directly. They're working on their own. + +- [Official CI](https://ci-apps.yunohost.org): Our official CI, working on a x86-64 system. It is in charge of determining levels for all working apps. +- [ARM CI](https://ci-apps-arm.yunohost.org): This CI is working with multiple Raspberry-Pi, own by members of the YunoHost community. Tests are running on Raspberry-Pi to determine if apps are working on this architecture. +- [Unstable/Testing CI](https://ci-apps-unstable.yunohost.org): CI designed to run tests on the branches Unstable and Testing of YunoHost. Its purpose is to test those branches before an official release. +- [Jessie CI](https://ci-stretch.nohost.me): CI running on a Debian Jessie system. This CI determine is apps are still working with the previous version of Debian and YunoHost before the version 3. +- [HQ CI](https://ci-apps-hq.yunohost.org): **Incoming...** This CI runs automatic tests on branches of High Quality apps. Except the master branch, which is exclude from this CI, all branches added to a High Quality app will be added to this CI to be tested. diff --git a/packaging_apps_ci_fr.md b/packaging_apps_ci_fr.md new file mode 100644 index 00000000..65105e3f --- /dev/null +++ b/packaging_apps_ci_fr.md @@ -0,0 +1,41 @@ +# Intégration continue + +Un serveur d'intégration continue est disponible pour tout packager souhaitant tester une application avec [Package_check](https://github.com/YunoHost/package_check). + +ci-apps-dev + +Ce serveur est libre d'accès pour chacun d'entre vous, vous avez juste besoin d'un compte. +Pour ce faire, demandez à un membre du groupe Apps sur notre [chatroom Applications](/chat_rooms) + +Pour créer un compte sur ce CI, vous aurez besoin de deux choses: +- Un nom (Pour créer un utilisateur et lui donner un répertoire). +- Une clé ssh publique (Pour votre accès au serveur). + +Une fois cela fait, vous pourrez accéder au serveur et y déposer vos applications. +Pour vous connecter au serveur, utilisez : +```bash +ssh USER@ci-apps-dev.yunohost.org -i YOUR_PRIVATE_KEY +``` + +Vous trouverez un répertoire vide, prêt à recevoir vos applications. +Dès que vous déposer une application dans votre répertoire, dans un délai maximum de 5 minutes, un nouveau job sera créé pour cette application et exécuté par le CI. +Chaque fois que vous mettrez à jour cette application, un nouveau test sera exécuté. + +Cependant, pour éviter tout problème de sécurité, votre connexion ssh sera très limitée. +Vous ne pouvez utiliser que `sftp` ou `rsync` pour copier vos applications dans ce répertoire. `Git` n'est pas disponible, ni la plupart des commandes bash habituelles. +Pour faciliter votre utilisation de ce CI, un petit script peut être utilisé pour copier vos applications dans votre répertoire. + +Copiez ce [script](https://raw.githubusercontent.com/YunoHost/CI_package_check/master/dev_CI/send_to_dev_ci.sh) dans votre répertoire de travail habituel et indiquez vos informations. + +--- + +# Autres serveurs d'intégration continue + +Pour votre information, voici la liste de tous nos serveurs d'intégration continue. +Ces CI sont automatiques, vous ne pouvez pas les utiliser directement. Ils travaillent seuls. + +- [Official CI](https://ci-apps.yunohost.org): Notre CI officiel, travaillant sur un système x86-64. Il est chargé de déterminer les niveaux pour toutes les applications notées 'working'. +- [ARM CI](https://ci-apps-arm.yunohost.org): Ce CI travaille avec plusieurs Raspberry-Pi, appartenant à des membres de la communauté YunoHost. Les tests sont exécutés sur Raspberry-Pi pour déterminer si les applications fonctionnent sur cette architecture. +- [Unstable/Testing CI](https://ci-apps-unstable.yunohost.org): CI conçu pour effectuer des tests sur les branches Unstable et Testing de YunoHost. Son rôle est de tester ces branches avant une sortie officielle. +- [Jessie CI](https://ci-stretch.nohost.me): CI fonctionnant sur un système Debian Jessie. Ce CI détermine si les applications fonctionnent toujours avec la version précédente de Debian et YunoHost avant la version 3. +- [HQ CI](https://ci-apps-hq.yunohost.org): **A venir...** Ce CI exécute des tests automatiques sur les branches des applications High Quality. A l'exception de la branche master, qui est exclue de ce CI, toutes les branches ajoutées à une application High Quality seront ajoutées à ce CI pour être testées. diff --git a/packaging_apps_config_panel.md b/packaging_apps_config_panel.md new file mode 100644 index 00000000..b2296e52 --- /dev/null +++ b/packaging_apps_config_panel.md @@ -0,0 +1,303 @@ +# Applications Configuration Panel + +
For now, all those features are EXPERIMENTAL +and aren't ready for production and are probably going to change again, if you +still decide to use them don't expect them to be stable and follow to core +development of YunoHost otherwise they might randomly breaks on your apps +
+ +Configuration panel, or "config_panel", is a way for an application to ship a +custom configuration panel available in the YunoHost's admin interface for the +application. This is generally used to replace the "you need to manually edit +this configuration file (or files) in whatever format/language for this +application in cli and do all those complex commands" to "just use to +configuration panel to change the options of the application". + +Yes, this is one place to add this so asked "how can I make my application from +public to private and vice versa" user request. + +config_panel is probably the most complex YunoHost apps feature as you'll need +to write both a description of the panel in toml and a script that will need to +both work in a "display mode" and "handle inputs" mode. But this is still very +doable and very worth it if you need it. + +Here how it looks like in the admin interface: + +![actions admin screenshot](images/config_panel_example.png) + +## Usage + +### Admin interface + +The configuration panel for an application can be accessed with this URL: + + https://my_domain.tld/yunohost/admin/#/apps/$app_id/config-panel + +
For now since those features are still +experimental you won't find any direct links to the app actions on the app +page
+ +### CLI + +For now the CLI API for the config panel is not very good at all, you can still +use it but it's really impracticable. + +* `yunohost app config show-panel $app_id` will show the panel. **But for now +it's very broken and will ask question for unfilled value of the panel**. + +* `yunohost app config apply` will call the script with apply and... no values + since you aren't passing them, except if you are ready to play with the `-a` + flag and pass every global value in the HTTP POST format (protip: you don't) + +In conclusion: don't use the CLI for now, we need to design something better. + +## How to add a config_ panel to your application + +### config_panel.toml + +First, you need to write a `config_panel.toml` (or `config_panel.json` if you +REALLY want to but we really don't recommend it as it is very error prone and +frustrating to write by hand) that will be located at the root of you +application, next to the manifest.json/toml. It looks like this: + +
+The options are written in **[YunoHost Arguments +Format](/packaging_apps_arguments_format)** like in `manifest.toml/json` +
+ +```toml +version = "0.1" # version number, not used yet but important +name = "name that will be displayed on the admin" + +[section_id] +name = "name of the section that will be displayed" + + [section_id.sub_section_id] + name = "sub section" + + # those arguments are in yunohost argument format like manifest.json + [section_id.sub_section_id.option_id] + ask.en = "the text displayed for the option" + type = "argument_option" + default = true + help = "A public Leed will be accessible for third party apps.
By turning on 'anonymous readers' in Leed configuration, you can made your feeds public." + + [section_id.sub_section_id.another_option_id] + ... + + [section_id.another_sub_section_id] + name = "stuff" + +[another_section_id] +name = "stuff" + +... +``` + + +And a real world example with the rendered admin: + +![config_panel_toml_example](images/config_panel_toml_example.png) + +As a text format: + +```toml +version = "0.1" +name = "Leed configuration panel" + +[main] +name = "Leed configuration" + + [main.is_public] + name = "Public access" + + # those arguments are in yunohost argument format + [main.is_public.is_public] + ask.en = "Is it a public website ?" + type = "boolean" + default = true + help = "A public Leed will be accessible for third party apps.
By turning on 'anonymous readers' in Leed configuration, you can made your feeds public." + + + [main.overwrite_files] + name = "Overwriting config files" + + [main.overwrite_files.overwrite_nginx] + ask.en = "Overwrite the nginx config file ?" + type = "boolean" + default = true + help = "If the file is overwritten, a backup will be created." + + [main.overwrite_files.overwrite_phpfpm] + ask.en = "Overwrite the php-fpm config file ?" + type = "boolean" + default = true + help = "If the file is overwritten, a backup will be created." + +... +``` + +### the scripts/config script + +To make your configuration panel functional you need write a "config" script +that will be located in the "script" folder (like the "install" script). This +script will be called in two different occasions: + +* when the configuration panel is displayed and yunohost needs to fill the values +* when the configuration is modified by the user + +Every option of the configuration panel will be sent to the script +following this naming convention: + +```bash +YNH_{section_id}_{sub_section_id}_{option_id} (everything in upper case) +``` + +For example, this option value: + +```toml +[main] +name = "Leed configuration" + + [main.is_public] + name = "Public access" + + # those arguments are in yunohost argument format + [main.is_public.is_public] + ... +``` + +Will be available under this name in the config script: + +```bash +YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC +``` + +Also, the same "scripts/config" script is called in both situation. To differentiate +those situation the first argument passed to the config script is either "show" +or "apply". + +A common pattern to handle that is to write your script following this pattern: + +```bash +show_config() { + # do stuff +} + +apply_config() { + # do stuff +} + +case $1 in + show) show_config;; + apply) apply_config;; +esac +``` + +#### The "show" part + +The show part is when the user ask to see the current state of the +configuration panel (like opening to configuration panel page on the admin +interface). The role of the scripts/config script here is to gather all the +relevant information, by for example parsing a configuration file or querying a +database, and communicate it to YunoHost. To do so, you need to use the helper +`ynh_return` like so: + +```bash +ynh_return "YNH_CONFIG_SOME_VARIABLE_NAME=some_value" +``` + +For example, for this config_panel: + +```toml +[main] +name = "Leed configuration" + + [main.is_public] + name = "Public access" + + # those arguments are in yunohost argument format + [main.is_public.is_public] + ... +``` + +You would do: + +```bash +ynh_return "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=1" +``` + +If you don't provide any value for a configuration **the default value will be used**. + +Expanding our previous example you would have this scripts/config script: + +```bash +show_config() { + ynh_return "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=1" +} + +apply_config() { + # do stuff +} + +case $1 in + show) show_config;; + apply) apply_config;; +esac +``` + +#### The "apply" part + +The "apply" part is called when the user click on "submit" on the configuration +page on the admin interface. This part is simpler to write: + +- the scripts/config will be called with "apply" +- all the values in the config panel (modified or not) are available as global + variables in the script following the format `YNH_{section_id}_{sub_section_id}_{option_id}` + (exactly the same than for show) +- the script is responsible for doing whatever it wants with those information +- once the script has succeeded, the admin interface displays the config panel + again and triggers the same script in "show" mode + +Expanding the previous script that could look like that: + +```bash +show_config() { + ynh_return "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=1" +} + +apply_config() { + value=$YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC + # do some stuff with value +} + +case $1 in + show) show_config;; + apply) apply_config;; +esac +``` + +Or if you want a full useless simple script that store the value in a file, +this can look like this: + +```bash +dummy_config_file="dummy_config_file.ini" + +show_config() { + if [ -e $dummy_config_file ] + then + ynh_return "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=$(cat $dummy_config_file)" + fi + + # the default value will be used +} + +apply_config() { + echo $YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC > $dummy_config_file +} + +case $1 in + show) show_config;; + apply) apply_config;; +esac +``` diff --git a/packaging_apps_fr.md b/packaging_apps_fr.md new file mode 100644 index 00000000..0a396835 --- /dev/null +++ b/packaging_apps_fr.md @@ -0,0 +1,117 @@ +# Packaging d’applications + +Ce document a pour but de vous apprendre à packager une application pour YunoHost. + +### Prérequis +Pour packager une application, voici les prérequis : +* Un compte sur un serveur Git comme [GitHub](https://github.com/) pour pouvoir ensuite publier l’application ; +* Maîtriser un minimum [Git](/packaging_apps_git), le Shell et d’autres notions de programmation ; +* Une [machine virtuelle ou sur un serveur distant](/install) ou un environnement de développement, [ynh-dev](https://github.com/yunohost/ynh-dev) ou [VirtualBox](/packaging_apps_virtualbox), pour packager et tester son paquet. + + +Si vous ne comprenez pas ces prérequis, ou si vous ne savez pas comment écrire du code, consulter d'abord l'[introduction au packaging](/packaging_apps_start). + +### Contenu +Un paquet YunoHost est composé : + +* d’un `manifest.json` +* d’un dossier `scripts`, composé de six scripts Shell `install`, `remove`, `upgrade`, `backup`, `change_url` et `restore` +* de dossiers optionnels, contenant les `sources` ou de la `conf` +* d’un fichier `LICENSE` contenant la licence du paquet +* d’une page de présentation du paquet contenu dans un fichier `README.md` + +Paquet de base n’hésitez pas à vous en servir comme base de travail. + +## Manifeste +Manifeste + +## Les scripts +Scripts + +### Architecture et arguments +Comme les instances de YunoHost possèdent une architecture unifiée, vous serez capable de deviner la plupart des réglages nécessaires. Mais si vous avez besoin de réglages spécifiques, comme le nom de domaine ou un chemin web pour configurer l’application, vous devrez les demander aux administrateurs lors de l’installation (voir la section `arguments` dans le § **Manifeste** ci-dessus). + +Gestion des arguments + +### Configuration NGINX +Configuration NGINX + +### Multi-instance +Multi-instance + +### Hooks +Hooks + +### Commandes pratiques +Commandes pratiques + +### Référencement des logs +Dans de nombreuses situations, vous pouvez vouloir indexer un fichier de log pour qu'il soit affiché dans la webadmin. Pour indexer un log, il faut créer un fichier d'indexation dans `/var/log/yunohost/categories/app/APPNAME.yml`. + +Il est possible de spécifier la date de début en commençant le nom de fichier par la date `YYYYMMDD-HHMMSS`. + +Exemple de fichier de log d'indexation : +```bash +log_path: /chemin/vers/le/fichier.log +``` + +Il est possible d'afficher des infos complémentaires, la variable env sera affichée dans la partie "Contexte" : +```bash +extra: + env: + args1: value1 + args2: value2 + args3: value3 +``` + +Il est possible de rattacher le log à une application précise et/ou un service, un nom de domaine, une personne : +```bash +related_to: + - ['app', 'APPNAME'] + - ['service', 'SERVICE1'] + - ['service', 'SERVICE2'] + - ['domain', 'DOMAIN.TLD'] +``` + +Ces informations seront utilisées pour permettre de filtrer les logs en relation avec une de ces entités application, service, domaine, personne. + + +### Améliorer la qualité du paquet d’installation +Vous trouverez ci-dessous une liste des points à vérifier concernant la qualité de vos scripts : +* Vos scripts utilisent bien `sudo cp -a ../sources/. $final_path` plutôt que `sudo cp -a ../sources/* $final_path` ; +* Votre script d’installation contient une gestion en cas d’erreurs du script pour supprimer les fichiers résiduels à l’aide de `set -e` et de [trap](/packaging_apps_trap) ; +* Votre script d’installation utilise une méthode d’installation en ligne de commande plutôt qu’un appel curl via un formulaire web d’installation ; +* Votre script d’installation enregistre les réponses de l’utilisateur ; +* Vous avez vérifié les sources de l’application avec une somme de contrôle (sha256, sha1 ou md5) ou une signature PGP ; +* Vos scripts ont été testés sur Debian Buster 32 bits, 64 bits et ARM ; +* Les scripts backup et restore sont présents et fonctionnels. + +Pour mesurer la qualité d'un paquet, celui-ci obtiendra un [niveau](/packaging_apps_levels), déterminé en fonction de divers critères d'installation et selon le respect des [règles de packaging](/packaging_apps_guidelines). + +### Script de vérification du paquet +Vérificateur de paquets + +Il s’agit d’un script Python qui vérifie : +* que le paquet est à jour concernant les dernières spécifications +* que tous les fichiers sont présents +* que le manifeste ne comporte pas d’erreur de syntaxe +* que les scripts quittent bien avant de modifier le système lors de vérifications. + +### Intégration continue + +Un serveur d'intégration continue est a disposition des packagers désirant tester leurs applications. +Intégration continue + +### Publiez et demandez des tests de votre application + +* Demandez des tests et des retours sur votre application en publiant un [post sur le Forum](https://forum.yunohost.org/) dans la [catégorie `Discussion > Apps`](https://forum.yunohost.org/c/discuss/discuss-apps/). + +* Si votre paquet et l'application qu'il contient sont sous licence libre, faites une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) (voir aussi [la liste des apps](/apps)). Vous pouvez ajouter une application même si celle-ci n'est pour le moment pas fonctionelle : l'état d'avancement peut être `notworking`, `inprogress` ou `working`. + +* Si votre application n'est *pas* sous licence libre, il se peut qu'une liste non-officielle soit créée pour gérer ces applications. Ce n'est pour l'instant pas le cas. + +### Officialisation d’une application + +**!! Section obsolète au 08/03/19** - Le fonctionnement du projet est en cours d'évolution sur ce point. + +Pour qu’une application devienne officielle, elle doit être suffisamment testée, stable et fonctionner sous Debian Buster 64 bits, 32 bits et ARM. Si ces conditions vous paraissent réunies, demandez l’[intégration officielle](https://github.com/YunoHost/apps) de votre application. diff --git a/packaging_apps_git.md b/packaging_apps_git.md new file mode 100644 index 00000000..6093cef1 --- /dev/null +++ b/packaging_apps_git.md @@ -0,0 +1,201 @@ +# How to use Git to package apps + +Git... Our dear beloved Git, which can be described also as "Goddamn Idiotic Truckload of sh*t", according to Linus. +Be sure if you don't know Git yet that you will soon agree with that description. + +YunoHost and all our apps are on the Git forge GitHub. Which means that if you want to work on an app, sooner or later you're going to have to deal with Git. +So let's see how to work with Git to be able to contribute in the context of YunoHost. + +## Working with GitHub + +Let's go first for the easy part, GitHub comes with an "easy" web interface to deal with. + +*First things first, unfortunately there's no way around, you need an account on GitHub.* + +#### Branches + +Then, probably one of the most important thing, **do not work directly on the master branch**. +Sorry, it has to be said ! + +Branches are, as GitHub explains, "*a parallel version of a repository. It is contained within the repository, but does not affect the other branches. Allowing you to work freely without disrupting the "live" version.*" + +The master branch is the branch that contains the version of the app users will actually install and use. +The usual thing to do is to work from the testing branch, and when everything is settled and tested, you can merge the testing branch in master, so users will enjoy the new release of your package. + +To see and change the current branch, use this button: + + +#### Edit a file + +Now that you're on the right branch, let's see how to edit a file on GitHub. + +You can edit any file by using the small pencil icon: + + +If you don't have the permission to write on the repository, you will see (as on the picture) that you're going to create a fork (we'll see below what a fork is). +If you have the permission to write, you will just edit the file, without forking. + +#### Commit your changes + +When you're done with your modification on the file, you can commit your changes. +Behind that word, the idea is quite simple, you're just going to save your changes... + + +The first field is the name of your commit, a very short sentence to explain why you did this modification. +The second field is a large one for a more complete explanation, if you need it. + +Finally, if you're editing a repository on which you have permission to write, you can either commit directly to the current branch or create a new branch. +It's usually better to create a new branch, that way you keep your modifications on a *parallel* version of the repository. Your modifications will be discussed in a pull request (explained below) then finally merged into the original branch. + +#### To fork or not to fork + +A fork is a copy of a repository into your own account. +We have seen before that if you don't have permission to write into a repository, editing a file will automatically create a fork. +Because the fork is on your account, you always have the permission to write on it. +But even if a fork is not the real repository, but just a copy, a fork is always linked to its parent. We'll see later that to create a fork is really useful when opening a pull request. + +When you create a new package, it's common to use the [example app](https://github.com/YunoHost/example_ynh) as a base. +But, because you don't want to keep that link to the example app, you should not fork the example app. You will rather clone the app. +Unfortunately, to clone an app is a little bit trickier on GitHub. We will see later how to clone to a local repository instead. + +We have seen how to edit a file, and how this could fork the app. +But, when you want to edit multiple files, the GitHub interface isn't really the best way. In such situation, you would rather clone the repository and work on a local repository. +You may still need to fork on your own account to be able to save your modifications if you don't have the permission on the distant repository. + +#### Pull request + +After you have committed your changes, whether on a branch or a fork, you want to propose your modifications to be integrated into the main repository, or the original branch. +To do so, you're going to *create a pull request*. GitHub usually ask you directly if you want to do so. +Otherwise, you'll find the button to create a pull request just here: + + +When creating a pull request from a fork, to ease the work of the reviewers, **do never** uncheck the checkbox *Allow edits from maintainers*. That option simply allow the maintainers of the original repository to edit directly your work. + +#### YunoHost-Apps organization + +Following the [YEP 1.7](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines.md#yep-17), your app has to be into the YunoHost-Apps organization, but if you have never contributed to an app before or never had any app into this organization you may not have the permission. + +First, you need the permission to write into the organization, to do so, ask to the Apps group on the Apps XMPP room. + +To transfer your app to the YunoHost-Apps organization, go to your repository and to *Settings* tab. +At the bottom of the page, you will find *Transfer ownership*. +Into the field *New owner’s GitHub username or organization name*, type *YunoHost-Apps*. +Your repo will be moved into the organization, you don't have to remove the original repository. + + +## Working with Git locally + +As we have seen, you can do a lot of things directly on GitHub. +But when you need to edit multiple files, or when you need to work on your code on your own, it's better to work directly on your computer. + +Before going to the hellish part of Git, let's see 2 different ways to start working with Git. + +#### First case: Creating a new package + +You have shockingly discovered that the wonderful app you love to use everyday does not yet have its YunoHost package. And because you're nice, you decided to create yourself the package, so everyone will enjoy that app the way you do. +What a good idea ! + +The best is to start from the [example app](https://github.com/YunoHost/example_ynh). But as we have explained before, you don't want to fork, because if you do so, you're going to keep that link to the example app and it's really annoying. +So, you're going to do it differently. You're going to clone ! + +##### git clone + +To clone, you're going to do: +```bash +git clone https://github.com/YunoHost/example_ynh +``` +`git clone` will download a copy of the repository. You will have the complete repository, with its branches, commits, and everything (into that apparently little `.git` directory). + +To git clone is usually the starting point of any local work with Git. + +*A side note though, if you expect to send your modifications back to the distant repository on GitHub, be sure to have the permission to write on this repository. Otherwise, fork before and clone your fork, on which you do have the permission.* + +##### My brand new package, continued + +In the context of a new package, you will also need to create a repository on GitHub to nest your package. +Which is as simple as a big green *New* button. +Don't bother with README, .gitignore or license. Just create the repository itself. +you can now git clone that new repository. + + +You now have 2 repositories cloned on your computer. +Copy all the files from the example_ynh app, **except the .git directory** (You just want the files themselves) to your new package. + +*If you want, you can remove the example_ynh app. We don't need it anymore.* + +You're ready to work on your new package ! + +#### Second case: Working locally on a repository + +You already have a repository, but what you want is just to work locally, so you can modify multiple files. +Simply clone the repository, the .git directory is the link to the distant repository. Nothing else to do than a `git clone`. + +#### Branches + +You do have your local copy of the repository, but because you have read carefully this documentation until then, you know that you should be sure to be on the testing branch before starting to work. + +To see the branches, and to know on which you actually are, while into the directory of your repository, type `git branch`. +The current branch is highlighted and preceded by a `*`. + +#### git checkout + +If it appears that you're not on the branch you wanted to be, or you're actually on master (which is bad !), you can move to another branch with `git checkout` +```bash +git checkout testing +``` +*Read carefully what Git says when you validate a command, do never forget that Git is sneaky...* + +#### Git pull before anything else + +You're finally on the right branch, and ready to work. +**Wait ! A nasty trap is waiting for you...** +Before ending up in an inextricable situation. Start with a `git pull` to update your branch to the latest change from the distant repository. + +*Sometimes, you will encounter an impossible situation where Git is saying that you can't pull because you have local changes. But you don't care of those local modifications, you just want to get the last version of the distant branch. But Git don't care about what YOU want...* +*I have to admit that my only solution is as highly efficient as dirty... A good old `rm -r` of the repository and a `git clone`* + +#### Let's work + +Eventually, you can work on your code. +When you are finally ok with what you have done, it's time to validate your work. + +The first step is to inform Git about which file(s) to validate. To do so, we'll use `git add` +```bash +git add my_file +git add my_other_file and_also_this_one +``` +If you want to validate all your work, you can also simply do +```bash +git add --all +``` + +To check the current status of your validation, you can use `git status`. It will show you which files will be included into your commit, and which files are modified, but not yet included. +`git status -v` will show also which part of the files are modified. A good way to be sure that you didn't make a mistake before committing. + +#### git checkout -b + +Before committing, or after, or before starting to work. Whenever you feel like it ! +You should consider adding your work to a separate branch, that way, it will be easy to create a pull request to merge into the testing branch and discuss with the other packagers what you suggest to change. + +To create a new branch and move to this branch, you can use `git checkout -b my_new_branch`. + +#### Commit + +To commit is simply to validate your work in Git. As you can do in GitHub. +To have the same fields that you had on GitHub, with the name of the commit, and a longer explanation. You can simply use `git commit`. +The first line, before the comments, is for the name of the commit. +After all the comments, you can add an explanation if you want to. + +If you want to commit with only a name for your commit, you can use a simple command: +```bash +git commit -m "My commit name" +``` + +#### Push to the distant repository + +Your changes are validated, but only on your local clone of the repository. Now, you have to send those modifications back to the distant repository on GitHub. +In order to do that, you need to know what is your current branch. (If you don't know, `git branch` will give you that info). +Then you can git push +```bash +git push -u origin BRANCH_NAME +``` diff --git a/packaging_apps_git_fr.md b/packaging_apps_git_fr.md new file mode 100644 index 00000000..599c4078 --- /dev/null +++ b/packaging_apps_git_fr.md @@ -0,0 +1,201 @@ +# Comment utiliser Git pour packager les applications + +Git... Notre cher Git bien-aimé, que l'on peut aussi décrire comme "Goddamn Idiotic Truckload of sh*t" (Un stupide putain gros tas de m\*rde), selon Linus. +Si vous ne connaissez pas encore Git, soyez sûr que vous serez bientôt d'accord avec cette description. + +YunoHost et toutes nos applications sont sur la forge Git GitHub. Ce qui veut dire que si vous voulez travailler sur une application, tôt ou tard vous allez devoir faire face à Git. +Alors voyons comment travailler avec Git pour pouvoir contribuer dans le contexte de YunoHost. + +## Travailler avec GitHub + +Commençons par la partie facile, GitHub est livré avec une interface web "facile" à utiliser. + +*Tout d'abord et malheureusement, il n'y a pas moyen de contourner ça, vous devez avoir un compte sur GitHub.* + +#### Branches + +Ensuite, et c'est probablement l'une des choses les plus importantes, **ne travaillez pas directement sur la branche master**. +Désolé, il fallait que ce soit dit ! + +Les branches sont, comme l'explique GitHub, "*une version parallèle d'un dépôt. Elle est contenue dans le dépôt, mais n'affecte pas les autres branches. Elle vous permet de travailler librement sans perturber la version "live".*" + +La branche master est la branche qui contient la version de l'application que les utilisateurs installeront et utiliseront effectivement. +La bonne habitude à prendre est de travailler à partir de la branche testing, et lorsque tout est réglé et testé, vous pouvez fusionner la branche testing dans master, afin que les utilisateurs puissent profiter de la nouvelle version de votre package. + +Pour voir et modifier la branche actuelle, utilisez ce bouton : + + +#### Modifier un fichier + +Maintenant que vous êtes sur la bonne branche, voyons comment éditer un fichier sur GitHub. + +Vous pouvez éditer n'importe quel fichier en utilisant l'icône du petit crayon : + + +Si vous n'avez pas la permission d'écrire sur le dépôt, vous verrez (comme sur l'image) que vous allez créer un fork (nous verrons plus loin ce qu'est un fork). +Si vous avez la permission d'écrire, vous allez simplement modifier le fichier, sans forker. + +#### Validez vos modifications + +Lorsque vous avez fini de modifier le fichier, vous pouvez faire un commit de vos modifications. +Derrière ce mot, l'idée est assez simple, vous allez juste enregistrer vos modifications... + + +Le premier champ est le nom de votre commit, une phrase très courte pour expliquer pourquoi vous avez fait cette modification. +Le deuxième champ est un champ plus grand pour une explication plus complète, si vous en avez besoin. + +Enfin, si vous modifiez un dépôt sur lequel vous avez la permission d'écrire, vous pouvez soit faire un commit directement sur la branche en cours, soit créer une nouvelle branche. +Il est généralement préférable de créer une nouvelle branche, de cette façon vous gardez vos modifications sur une version *parallèle* du dépôt. Vos modifications seront discutées dans une pull request (expliquée ci-dessous) puis finalement fusionnées dans la branche d'origine. + +#### Forker ou ne pas forker + +Un fork est une copie d'un dépôt sur votre propre compte. +Nous avons déjà vu que si vous n'avez pas l'autorisation d'écrire dans un dépôt, la modification d'un fichier créera automatiquement un fork. +Comme le fork est sur votre compte, vous avez toujours la permission d'écrire dessus. +Mais même si un fork n'est pas le véritable dépôt, mais juste une copie, un fork est toujours lié à son parent. Nous verrons plus tard que la création d'un fork est vraiment utile lors de l'ouverture d'une pull request. + +Lorsque vous créez un nouveau package, il est courant d'utiliser l'[application exemple](https://github.com/YunoHost/example_ynh) comme base. +Mais, comme vous ne voulez pas garder ce lien vers l'application d'exemple, vous ne devez pas forker l'application d'exemple. Vous la clonerez plutôt. +Malheureusement, cloner une application est un peu plus compliqué sur GitHub. Nous verrons plus tard comment cloner vers un dépôt local à la place. + +Nous avons vu comment éditer un fichier, et comment cela peut forker l'application. +Mais, lorsque vous voulez éditer plusieurs fichiers, l'interface GitHub n'est pas vraiment la meilleure solution. Dans une telle situation, vous préférerez cloner le dépôt et travailler sur un dépôt local. +Il se peut que vous deviez tout de même forker sur votre propre compte pour pouvoir enregistrer vos modifications si vous n'avez pas les autorisations sur le dépôt distant. + +#### Pull request + +Après avoir effectué vos commits, que ce soit sur une branche ou un fork, vous souhaitez proposer vos modifications pour qu'elles soient intégrées dans le dépôt principal, ou dans la branche d'origine. +Pour ce faire, vous allez créer une pull request. GitHub vous demande généralement directement si vous souhaitez le faire. +Sinon, vous trouverez le bouton de création d'une pull request juste ici : + + +Lors de la création d'une pull request à partir d'un fork, pour faciliter le travail de révision du code, **ne jamais** décocher la case *Allow edits from maintainers*. Cette option permet simplement aux mainteneurs du dépôt d'origine de modifier directement votre travail. + +#### Organisation YunoHost-Apps + +Conformément à la [YEP 1.7](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines.md#yep-17), votre application doit être intégrée à l'organisation YunoHost-Apps, mais si vous n'avez jamais contribué à une application auparavant ou si vous n'avez jamais eu d'application dans cette organisation, vous n'en aurez peut-être pas l'autorisation. + +Tout d'abord, vous devez avoir la permission d'écrire dans l'organisation, pour ce faire, demandez au groupe Apps sur le salon XMPP Apps. + +Pour transférer votre application sur l'organisation YunoHost-Apps, allez dans votre dépôt et dans l'onglet *Settings*. +En bas de la page, vous trouverez *Transfer ownership*. +Dans le champ *New owner’s GitHub username or organization name*, tapez *YunoHost-Apps*. +Votre dépôt sera déplacé dans l'organisation, vous n'avez pas besoin de supprimer le dépôt d'origine. + + +## Travailler avec Git en local + +Comme nous l'avons vu, vous pouvez faire beaucoup de choses directement sur GitHub. +Mais lorsque vous devez modifier plusieurs fichiers, ou lorsque vous devez travailler sur votre code de votre côté, il est préférable de travailler directement sur votre ordinateur. + +Avant d'aller dans la partie infernale de Git, voyons 2 façons différentes de commencer à travailler avec Git. + +#### Premier cas : Créer un nouveau package + +Vous avez découvert, choqué, que la merveilleuse application que vous aimez utiliser tous les jours n'a pas encore son package YunoHost. Et parce que vous êtes sympa, vous avez décidé de créer vous-même le package, pour que tout le monde puisse apprécier cette application. +Quelle bonne idée ! + +Le mieux est de commencer par l'[application d'exemple](https://github.com/YunoHost/example_ynh). Mais comme nous l'avons déjà expliqué, vous ne voulez pas forker, parce que si vous le faites, vous allez garder ce lien vers l'application d'exemple et c'est vraiment ennuyeux. +Donc, vous allez le faire différemment. Vous allez cloner ! + +##### git clone + +Pour cloner, vous allez faire : +```bash +git clone https://github.com/YunoHost/example_ynh +``` +`git clone` téléchargera une copie du dépôt. Vous aurez le dépôt complet, avec ses branches, ses commits, et tout le reste (dans cet apparent petit répertoire `.git`). + +git clone est généralement le point de départ de tout travail local avec Git. + +*Toutefois, si vous comptez envoyer vos modifications sur le dépôt distant sur GitHub, assurez-vous d'avoir les droits d'écriture sur ce dépôt. Sinon, forkez avant et clonez votre fork, pour lequel vous avez la permission.* + +##### Mon nouveau package, suite + +Dans le contexte d'un nouveau package, vous devrez également créer un dépôt sur GitHub pour y mettre votre package. +Ce qui n'est pas plus compliqué qu'un gros bouton vert *New*. +Ne vous embêtez pas avec des README, .gitignore ou licence. Créez simplement le dépôt lui-même. +vous pouvez maintenant cloner ce nouveau dépôt avec Git. + + +Vous disposez maintenant de 2 dépôts clonés sur votre ordinateur. +Copiez tous les fichiers de l'application example_ynh, **excepté le répertoire .git** (vous voulez juste les fichiers eux-mêmes) dans votre nouveau package. + +*Si vous le souhaitez, vous pouvez supprimer l'application example_ynh. Nous n'en avons plus besoin.* + +Vous êtes prêt à travailler sur votre nouveau package ! + +#### Deuxième cas : Travailler localement sur un dépôt + +Vous disposez déjà d'un dépôt, mais ce que vous voulez, c'est travailler localement, de sorte que vous puissiez modifier plusieurs fichiers. +Il vous suffit de cloner le dépôt, le répertoire .git est le lien vers le dépôt distant. Rien d'autre à faire qu'un `git clone`. + +#### Branches + +Vous avez bien votre copie local du dépôt, mais comme vous avez lu attentivement cette documentation jusque-là, vous savez que vous devez vous assurer d'être sur la branche testing avant de commencer à travailler. + +Pour voir les branches, et savoir sur quelle branche vous êtes réellement, alors que vous êtes dans le répertoire de votre dépôt, tapez `git branch`. +La branche courante est mise en évidence et précédée d'un "*". + +#### git checkout + +S'il apparaît que vous n'êtes pas sur la branche où vous vouliez être, ou que vous êtes en fait sur master (ce qui est mal !), vous pouvez passer à une autre branche avec `git checkout`. +```bash +git checkout testing +``` +*Lisez attentivement ce que Git dit quand vous validez une commande, n'oubliez jamais que Git est sournois...* + +#### git pull avant tout + +Vous êtes enfin dans la bonne branche, et prêt à travailler. +**Attendez ! Un vilain piège vous attend...** +Avant de vous retrouver dans une situation inextricable. Commencez par un `git pull` pour mettre à jour votre branche avec les derniers changements du dépôt distant. + +*Parfois, vous rencontrerez une situation impossible où Git vous dira que vous ne pouvez pas pull parce que vous avez des changements locaux. Mais vous ne vous souciez pas de ces modifications locales, vous voulez juste obtenir la dernière version de la branche distante. Mais Git ne se soucie pas de ce que VOUS voulez...* +*Je dois admettre que ma seule solution est aussi efficace que sale... Un bon vieux `rm -r` du dépôt et un `git clone`* + +#### Il est temps de travailler + +Vous pouvez finalement travailler sur votre code. +Lorsque vous êtes enfin d'accord avec ce que vous avez fait, il est temps de valider votre travail. + +La première étape consiste à informer Git sur le(s) fichier(s) à valider. Pour ce faire, nous utiliserons `git add`. +```bash +git add mon_fichier +ajouter mon_autre_fichier et_aussi_celui_ci +``` +Si vous souhaitez valider l'ensemble de votre travail, vous pouvez aussi simplement faire +```bash +git add --all +``` + +Pour vérifier l'état actuel de votre validation, vous pouvez utiliser `git status`. Il vous montrera quels fichiers seront inclus dans votre commit, et quels fichiers sont modifiés, mais pas encore inclus. +`git status -v` vous indiquera également quelle partie des fichiers est modifiée. Une bonne façon de s'assurer que vous n'avez pas fait d'erreur avant de faire un commit. + +#### git checkout -b + +Avant de faire un commit, ou après, ou avant de commencer à travailler. Quand vous en avez envie ! +Vous devriez envisager d'ajouter votre travail à une branche séparée, de cette façon, il sera facile de créer une pull request dans la branche testing et de discuter avec les autres packagers de ce que vous suggérez de changer. + +Pour créer une nouvelle branche et passer à cette branche, vous pouvez utiliser `git checkout -b my_new_branch`. + +#### Commit + +Faire un commit, c'est simplement valider son travail dans Git. Comme vous pouvez le faire dans GitHub. +Pour avoir les mêmes champs que vous aviez sur GitHub, avec le nom du commit, et une explication plus longue. Vous pouvez simplement utiliser `git commit`. +La première ligne, avant les commentaires, est pour le nom du commit. +Après tous les commentaires, vous pouvez ajouter une explication si vous le souhaitez. + +Si vous voulez faire un commit avec seulement un nom pour votre commit, vous pouvez utiliser une simple commande : +```bash +git commit -m "My commit name" +``` + +#### Push vers le dépôt distant + +Vos modifications sont validées, mais uniquement sur votre clone local du dépôt. Maintenant, vous devez renvoyer ces modifications sur le dépôt distant sur GitHub. +Pour ce faire, vous devez savoir quelle est votre branche actuelle. (Si vous ne le savez pas, `git branch` vous donnera cette information). +Ensuite, vous pouvez git push +```bash +git push -u origin BRANCH_NAME +``` diff --git a/packaging_apps_guidelines.md b/packaging_apps_guidelines.md new file mode 100644 index 00000000..933c4c4c --- /dev/null +++ b/packaging_apps_guidelines.md @@ -0,0 +1,450 @@ +# Packing Applications: Good Practise Guidelines + +
+ +This page is under development. As long as this warning is not removed. Consider this information as potentially false. +The name YEP is not a priori definitive, neither the levels nor the good practices in itself. + +
+ +### Introduction +The purpose of this document is to list the various best practices concerning the creation of YunoHost application packages. + +Each good practice is numbered with a number suffixed by the letters YEP (YunoHost Enhancement Proposals), so that it can be easily referenced in the ([package checker](https://github.com/YunoHost/package_check) and [package linter](https://github.com/YunoHost/package_linter)) tools, but also during the reviews of code. + +Each YEP is associated with: +* a status indicating whether the rule has been validated or is still under discussion (draft, validated, refused, obsolete); +* an indication of the type of test to be carried out (manual or auto if an automatic tool can verify); +* an indication of the app level from which the rule is required (NOTWORKING, INPROGRESS, WORKING, OFFICIAL), some rules are optional; + +### YEP Index +| ID | Title | Status | Test | Level | +| ---- | -------- | -------- | ------ | -------- | +| ** YEP 1 ** | ** Communicate with the community ** | | | | +| YEP 1.1 | App name and deposit | validated | manual | NOTWORKING (0) | +| YEP 1.2 | Register the app on a known "directory" | validated | manual | NOTWORKING (0) | +| YEP 1.3 | Indicate the license associated with the package | validated | AUTO | WORKING (5) | +| YEP 1.4 | Inform about intention to maintain package | draft | manual | OFFICIAL (6) | +| YEP 1.5 | Regularly update app status | draft | manual | WORKING (2) | +| YEP 1.6 | Keeping up-to-date on the evolution of apps packaging | validated | manual | OFFICIAL (6) | +| YEP 1.7 | Add the app to the [YunoHost-Apps Organization](https://github.com/YunoHost-Apps) | validated | manual | OFFICIAL (6) | +| YEP 1.8 | Publish test requests | validated | manual | OFFICIAL (6) | +| YEP 1.9 | Document the app | validated | AUTO | OFFICIAL (6) | +| YEP 1.10 | Keep a clean version history | draft | manual | OFFICIAL (6) | +| YEP 1.11 | Add app to [YunoHost bugtracker](https://github.com/YunoHost/issues/issues) | draft | manual | OFFICIAL (NA) | +| YEP 1.12 | Follow the template from [example_ynh](https://github.com/YunoHost/example_ynh) | draft | manual | OFFICIAL (8) | +| | | | | | +| ** YEP 2 ** | ** Stabilize an app ** | ** Status ** | ** Test ** | ** Level ** | +| YEP 2.1 | Respect the manifest format | validated | Home | INPROGRESS (5) | +| YEP 2.2 | Using bash for main scripts | validated | Home | WORKING (1) | +| YEP 2.3 | Save replies during installation | validated | manual | WORKING (3) | +| YEP 2.4 | Detect and manage errors | draft | manual | WORKING (8) | +| YEP 2.5 | Copy files correctly | draft | manual | WORKING (1) | +| YEP 2.6 | Cancel action if input values ​​are incorrect | validated | manual | WORKING (7) | +| YEP 2.7 | Give sufficient permissions to bash | validated | Home | WORKING (1) | +| YEP 2.8 | Correctly Changing a System Configuration | draft | manual | WORKING (8) | +| YEP 2.9 | Remove all traces of the app when deleting | draft | manual | WORKING (6) | +| YEP 2.10 | Configure application logs | draft | manual | WORKING (9) | +| YEP 2.11 | Use a variable rather than the id app directly | validated | manual | OFFICIAL (9) | +| YEP 2.12 | Using Helpers | validated | Home | OFFICIAL (5) | +| YEP 2.13 | Translate the package in English | draft | manual | OFFICIAL (9) | +| YEP 2.14 | Fill a conf file correctly | draft | manual | OFFICIAL (9) | +| YEP 2.15 | Follow the instructions for installing the application | validated | manual | OFFICIAL (1) | +| YEP 2.16 | Check availability of dependencies on ARM, x86 and x64 | validated | manual | OFFICIAL (8) | +| YEP 2.17 | Take the original version into account when updating | validated | manual | OFFICIAL (9) | +| | | | | | +| ** YEP 2.18 ** | ** Stabilize a webapp ** | ** Status ** | ** Test ** | ** Level ** | +| YEP 2.18.1 | Launch the script to install a webapp correctly | validated | manual | WORKING (5) | +| YEP 2.18.2 | Manage installation at the root of a domain name | validated | Home | WORKING (2) | +| YEP 2.18.3 | Manage installation on a subdomain | validated | Home | WORKING (2) | +| YEP 2.18.4 | Manage installation on a path `/path` | validated | Home | OFFICIAL (2) | +| YEP 2.18.5 | Manage the YunoHost tile for easy navigation between applications | validated | manual | OFFICIAL (8) | +| | | | | | +| ** YEP 3 ** | ** Secure an app ** | ** Status ** | ** Test ** | ** Level ** | +| YEP 3.1 | Do not ask or store LDAP password | draft | manual | NOTWORKING (?) | +| YEP 3.2 | Open a port correctly | draft | manual | WORKING (7) | +| YEP 3.3 | Facilitating Source Integrity Control | draft | manual | OFFICIAL (6) | +| YEP 3.4 | Isolate app | draft | manual | OFFICIAL (8) | +| YEP 3.5 | Follow the recommendations of the app's documentation | validated | manual | OFFICIAL (6) | +| YEP 3.6 | Update versions containing CVE | draft | manual | OFFICIAL (6) | +| | | | | | +| ** YEP 4 ** | ** Integrate an app ** | ** Status ** | ** Test ** | ** Level ** | +| 4.1 | Link to LDAP | validated | manual | OFFICIAL (4) | +| YEP 4.2 | Link authentication to SSO | validated | manual | OFFICIAL (4) | +| YEP 4.2.1 | Sign Out | validated | manual | OFFICIAL (9) | +| YEP 4.3 | Provide YunoHost Backup Script Functional | validated | Home | OFFICIAL (6) | +| YEP 4.4 | Provide a YunoHost Restore Functional script | validated | Home | OFFICIAL (6) | +| YEP 4.5 | Using Hooks | validated | manual | OPTIONAL (8) | +| YEP 4.6 | Manage multi-instance | validated | manual | OPTIONAL (2) | +| YEP 4.7 | Add a module to the CLI | validated | manual | OPTIONAL | +| YEP 4.8 | Add a module to the web admin | draft | manual | OPTIONAL | + +### YEP 1 +#### Communicating with the community +The YEP 1 is a meta YEP, it explains what it takes to interact with the community around a YunoHost application package. + +#### YEP 1.1 +##### App name and deposit | validated | manual | NOTWORKING | +Each YunoHost application has an id registered in the application manifest. +This identifier must be unique between each application packet. +It is therefore recommended to verify its availability by consulting the list of applications referenced in the known applications repositories (official, community, internetcube). + +In addition, the identifier must respect the regular expression `^[a-z0-9]((_|-)?[A-z0-9])+$`. +In other words, it must respect the following rules: +* be in lowercase +* start with a letter or number +* be alphanumeric (the underscore is allowed) +* do not contain two underscores or dashes that follow one another +* do not end with an underscore or dash + +For application names containing spaces, virtually all current packages simply remove them without replacing them with dashes or underscores. + +By convention, the YunoHost application repositories are always named their ID followed by the string "\_ynh". Thus one can distinguish the upstream repository of the application, the deposit of the YunoHost package. This notation also makes it possible to find applications not listed by the search engines of platforms offering version managers (GitHub for example). + +Example: ID: Example Filing Name: example_ynh + +#### YEP 1.2 +##### Register the app on a known "directory" | validated | manual | NOTWORKING | +It is advised from the beginning of the packaging to register an app on one of the YunoHost application depots. + +These deposits have several functions: +* communicate the existence of a package; +* indicate the latest version associated with the package (to allow the update of the app by YunoHost); +* indicate the state of operation of the packet; +* indicate information about the support of a package. + +For the `apps.json` list maintained by the project team, registration is on [the git apps repository](https://github.com/YunoHost/apps). Other non-official lists may exists (including those for non-free apps for example), see more about that in the [community forum](https//forum.yunohost.org). + +#### YEP 1.3 +##### Indicate the license associated with the package | draft | AUTO | WORKING | +The license of the packet must be specified in a `LICENSE` file at the root of the packet. Be careful not to confuse with the license of the application that will be installed whose acronym is to be entered in the `license` field of the manifest. + +The application list apps.json only accept packages with a free license, as well as the license for the contained application. Some free applications require non-free dependencies (example: MP3, drivers, etc.). In this case, you should add `&dep-non-free` to the acronym and if possible give details in the README.md of the package, in this case the integration will be accepted on a case-by-case basis. + +**NB:** Apps not included in apps.json lists may still be installed: either manually with the URL to the app, or in a more practical way using non-official lists (which can be created and maintained by the community). + +In the future, YunoHost will probably display details about the license of the application. To achieve this, the acronym must be the one from this [list of licenses listed in the SPDX](https://spdx.org/licenses/) (if there are 2 acronyms, the one containing the version number). For consistency, the case must be respected. + +If the license is not present in the list, in this case it is necessary to indicate `free` or `non-free` depending on whether it is free or not and give the user the opportunity to inquire in the README.md (link, explanations...). + +Example: for a GNU Lesser General Public License (LGPL), version 3 the acronym is `LGPL-3.0` if non-free dependencies are used in this case it will be necessary to put LGPL-3.0 & dep-non-free `in the manifesto. + +If an application has modules linked to another license (Example: Odoo 9 LGPL-3.0 + a module licensed AGPL-3.0), in this case we will indicate the two licenses separated by a `&`. + +If two separate applications are in the same installation package and have separate licenses, in this case we can use `,` to separate the licenses. + +In both cases, the maintainer is encouraged to consider creating two separate packages. The manifest of each application is used to ask app-type questions to refer to another application already installed. + +Reminder: a question of type `app` answers the identifier of one of the apps already installed. + +Some interesting links to help with the choice of license: +* [Explanatory sheets on free licenses](https://www.inria.fr/content/download/5896/48452/version/2/file/INRIA_recueil_fiches_licences_libres_vf.pdf) +* [GNU project licensing documentation](https://www.gnu.org/licenses/licenses.html) +* [A Guide to the GNU Project to Help Choose a License](https://www.gnu.org/licenses/license-recommendations.en.html) + +#### YEP 1.4 +##### Inform about intention to maintain package | draft | manual | OFFICIAL | +The maintainer of the application must undertake to maintain its app over time if he wishes it to join the list of official applications. +This involves monitoring updates to the upstream application, adhering to the new packaging rules and responding to user requests. + +#### YEP 1.5 +##### Regularly update app status | draft | manual | WORKING | +#### YEP 1.6 +##### Keeping up-to-date on the evolution of apps packaging | validated | manual | OFFICIAL | +In order to keep up with the evolution of the packaging format and best practices, it is recommended to: +* follow [the forum's Apps category](https://forum.yunohost.org/c/contribute-room/apps-packaging) + +To follow the evolution of YunoHost more generally: +* join XMPP dev@conference.yunohost.org ([three days of logs are available](https://im.yunohost.org/logs/dev/)) +* follow [Annoucement category of the forum](https://forum.yunohost.org/c/announcement) + +#### YEP 1.7 +##### Add the app to the [YunoHost-Apps Organization](https://github.com/YunoHost-Apps) | validated | manual | OFFICIAL | +Adding an app to the [YunoHost-Apps organization](https://github.com/YunoHost-Apps) lets you share apps with other contributors who might be tempted to package the targeted application. + +It is also a way to quickly deploy a security patch if necessary in the event that the maintainer is unavailable. + +Transfer Procedure: Ask the [chat room](/chat_rooms) to be invited to the organization by providing the name of their GitHub account. +Once the invitation is accepted, [transfer its deposit to the organization by following this tutorial](https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/# Transferring-a-repository-to-another-user-account-or-to-an-organization). + +#### YEP 1.8 +##### Publish test requests | validated | manual | OFFICIAL | +In order to ensure the proper functioning of a package, it is necessary to publish an announcement in order to open the tests on the package. This announcement can be done on the forum in [Forum Apps category](https://forum.yunohost.org/c/apps). + +It is recommended to indicate if some tests have not been conducted. + +* Check package with Package linter. +* Installation in subfolder. +* Installation at the root of a domain or subdomain. +* Deletion, in the 2 cases of previous installations. +* Access to the web interface of the application, with the / final in the address, and omitting it. +* Upgrade on the same version of the package. +* Upgrade from an older version of the package. +* Private installation (secured by SSO). +* Public installation. +* Multi-instance installation. +* User name error. +* Domain name error. +* Poorly written path (path / instead of / path for example). +* Port already used by another application. +* Source corrupted after download. +* Error downloading source. +* Folder already used by another application. +* Backup and restore. + +#### YEP 1.9 +##### Document the app | validated | AUTO | OFFICIAL | +Above all, it is appropriate to make a correct description of the app in the `description` field of the manifest. Keyword insertion in this description can be a good idea, as a user might be required to search (CTRL + F) among all applications. + +There is also README.md, which must and can contain: +* the name of the app +* a brief summary of what it does +* any additional installation if the script is not sufficient +* instructions to use it (for example to connect your smartphone or computer) +* the location to report a malfunction / request +* the roadmap / TODO +* possibly prerequisites in terms of RAM memories, processor etc. (some equipment has less than 512 MB of RAM) + +#### YEP 1.10 +##### Keep a clean version history | draft | manual | OFFICIAL | +#### YEP 1.11 +##### Add app to [YunoHost bugtracker](https://github.com/YunoHost/issues/issues) | draft | manual | OFFICIAL | + +#### YEP 1.12 +##### Follow the template from [example_ynh](https://github.com/YunoHost/example_ynh) | draft | manual | OFFICIAL | +In order to facilitate the work of the community regarding a package, it has to follow the template shown by the example app. +This will help other packagers to read, modify and debug the package. Also, it will help extend the life of the package by giving it a standard template that other packagers can quickly understand in the event that a package becomes orphaned. +As well, a package should not use exotic or uselessly complicated code if it's not really needed. If so, this part of the code should be clearly documented. +Keep your code as easy as possible, keep everything a script needs directly into it. Do not move functions in another file. Keep it simple and efficient. + +### YEP 2 +#### Stabilize an app +#### YEP 2.1 +##### Respect the manifest format | validated | Home | INPROGRESS | +The manifest allows to describe an app so that YunoHost can apply the good treatments. For more information see [dedicated documentation](/packaging_apps_manifest). + +#### YEP 2.2 +##### Using bash for main scripts | validated | Home | WORKING | +Action scripts (install, upgrade, remove, backup and restore) must be in the bash so that the CLI/API YunoHost can call them correctly. + +That being said, there is nothing to prevent other scripts or function libraries from using these scripts. These are not obliged to be in bash. + +However, careful attention must be paid to the correct display of logs of information, warning, or errors. So that a user of the CLI/API YunoHost can understand the operation of the script just executed and if necessary repair its YunoHost instance. + +#### YEP 2.3 +##### Save the answers during the installation | validated | manual | WORKING | +During installation, it is necessary to save each answer to the questions in the manifest. Indeed, even if at the beginning it is not necessary to write an update script, thereafter it will probably be the case. However, without the initial information, the update can be more tedious. + +#### YEP 2.4 +##### Detecting and Managing Errors | draft | manual | WORKING | +The install, upgrade, backup, and restore scripts must detect errors to avoid further scripting in case of blocking error or empty variable usage. +The use of trap and `set -eu` is recommended to detect and treat errors ([Discussion in progress](https://forum.yunohost.org/t/gestion-des-erreurs-set-e-and-or-trap/2249/5)) +It is also necessary to check the contents of the variables before removing the remove script. For example, an `rm -Rf /var/www/$app` with `$app` empty would have a disastrous result. + +At the beginning of the scripts, before any modifications, it is necessary to check the existence of the users mentioned at the installation, as well as the availability of the requested path, the availability of the final file of the application and the size of the passwords if necessary. + + Do not forget that in case of installation error the removal script will be launched automatically by the YunoHost CLI. + +#### YEP 2.5 +##### Copy files correctly | draft | manual | WORKING | +#### YEP 2.6 +##### Cancel action if input values ​​are incorrect | validated | manual | WORKING | +Each script should verify that the input values ​​are correct. + +Here are some examples: +* Check that the domain name exists +* Check that the user exists +* Check that the chosen path is available + +If one of the values ​​is incorrect, it is necessary to cancel any modifications made previously to the instance. The best thing is to do all these checks before changing the system. + +#### YEP 2.7 +##### Give sufficient permissions to bash | validated | Home | WORKING | +Some instructions require sudo rights. In this case, do not forget to prefix these instructions with `sudo`. + +In other cases it is necessary to give rights using chmod and chown. + +#### YEP 2.8 +##### Correctly changing a system configuration | draft | manual | WORKING | +Changes to the system must be reversible so that the removal of the application is of no consequence to the system leaves no residue. +For this purpose, the `.d` folders of the system configurations must be used as much as possible. Where it is not possible to do otherwise, clearly indicate the configuration as modified by an application and ensure that the changes will be removed when it is removed. + +#### YEP 2.9 +##### Remove all traces of the app when deleting | draft | manual | WORKING | +Except for dependencies (eg, Debian packages) used by other services or applications. + +#### YEP 2.10 +##### Configure application logs | draft | manual | WORKING | +If possible, the application should use a log file, which will preferably be in /var/log. +If the log is set up by the install script and not by the application itself, a log-rotate configuration file will have to be added to handle the logs of the application. + +#### YEP 2.11 +##### Using a variable rather than the app id directly | validated | manual | OFFICIAL | +It is advisable to make the scripts as generic as possible, a good way to do this is to use a variable for the app's name to avoid it being found everywhere in scripts. This will make it easier for another package builder to use the script for another app. + +#### YEP 2.12 +##### Using Helpers | validated | Home | OFFICIAL | +In order to simplify packaging, standardize practices, avoid errors and increase the lifetime of a script vis-à-vis future versions of YunoHost. A set of helpers to do many actions is proposed. + +For more information : +* consult [helpers documentation](/packaging_apps_helpers) +* explore [helpers directory](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d) + +#### YEP 2.13 +##### Translate the package in English | draft | manual | OFFICIAL | +#### YEP 2.14 +##### Fill a conf file correctly | draft | manual | OFFICIAL | +* Just to clear up a little this YEP, but it remains in draft form. * +The goal is to find a more reliable method than sed to modify the configuration files. sed can possibly have edge effects by modifying unwanted parts of the configuration file, especially with the use of regex. + +#### YEP 2.15 +##### Follow the instructions for installing the application | validated | manual | OFFICIAL | + +#### YEP 2.16 +##### Check availability of dependencies on ARM, x86, and x64 | validated | manual | OFFICIAL | +YunoHost installs on ARM, x86 and x64. A package should therefore be tested on these three processor architectures. + +Some packages are not available on ARM, in this case it is advisable to study other solutions or to indicate in the README.md that the application does not work on ARM and to block the installation by detection of type d'architecture. + +#### YEP 2.17 +##### Take the original version into account when updating | validated | manual | OFFICIAL | +The update script must be able to run even if the previous updates have not been performed. + +For example, it should be possible to perform update jumps from an N-x version to an N version. To do this, it is advisable to save the version numbers in the app settings. + +### YEP 2.18 +##### Stabilizing a webapp +The majority of YunoHost applications are web apps, but some are not. The YEP 2.18.x develop certain specificities related to the web app. + +#### YEP 2.18.1 +##### Launch the script to install a webapp correctly | validated | manual | WORKING | +Often a web app installs itself from forms displayed on a web page. This practice, while practical for a human, is less so for a program. + +It is therefore necessary to check if the application does not propose a solution of installation on command line. + +If this is not the case, the -H option of curl should be used. In some cases, DNS redirection may not be active at the time of installation. +`` `Bash +curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https: //localhost$path/install.php > /dev/null 2>&1 +`` ` + +#### YEP 2.18.2 +##### Manage installation at the root of a domain name | validated | Home | WORKING | +A web app should be able to install itself at the root of a domain name. + +#### YEP 2.18.3 +##### Manage installation on a subdomain | validated | Home | WORKING | +A web app should be able to install itself on a subdomain directly without subfolders. + +#### YEP 2.18.4 +##### Manage installation on a path `/path` | validated | Home | OFFICIAL | +A web app should be able to install on a path `/path`. + +#### YEP 2.18.5 +##### Manage the YunoHost tile to easily navigate between applications | validated | manual | OFFICIAL | +Except in rare cases it is advisable to integrate the tile YunoHost which allows to return to the menu of the SSO. This integration is done in the NGINX configuration. + +Some users have replaced this square with a script adding a menu at the top of each webapp. + +### YEP 3 +#### Securing an app +#### YEP 3.1 +##### Do not ask or store LDAP password | draft | manual | NOTWORKING | +#### YEP 3.2 +##### Open a port correctly | draft | manual | WORKING | +If the application requires the opening of a port, it is necessary to check beforehand that this port is not already used by another application. If so, the install script must be able to find another available port. +It should also be checked whether the port should be open on the router, beyond the local network. If this is not the case, the `--no-upnp` argument must be added to the` yunohost firewall allow` command in order to limit the port opening to the LAN only. + +#### YEP 3.3 +##### Facilitating Source Integrity Control | draft | manual | OFFICIAL | +The upstream application should not be integrated into tarball in the source folder of the package, as this adds to the package and the Git repository and does not allow verification of the integrity of the source. +The source must be downloaded from the official website, then its integrity must be checked before installing it. + +#### YEP 3.4 +##### Isolate app | draft | manual | OFFICIAL | +In order to avoid edges in case of possible compromise of the application, it must be insulated in order not to affect the other applications. +To do this, it is necessary to isolate the application in its execution folder by restricting its environment by a chroot, either by a mechanism internal to the application where possible (for example for an ftp server), or by the use of phpfpm. +Similarly, to restrict the scope of the user running the application, it is preferable to use a user dedicated to the application. Whose rights are restricted to the use of the application only. +However, this should not exempt from a maximum restriction of rights on application files. As much as possible, the files must belong to root, and the dedicated user must have write rights only on files that specifically request it. + +#### YEP 3.5 +##### Follow the recommendations in the app's documentation | validated | manual | OFFICIAL | +Typically, an application provides documentation to help system administrators perform the installation. It is advisable to follow the recommendations, including the permissions to be granted per file or directory. + +However, the package maintainer must remain vigilant, some documentation may be erroneous or insufficient. + +#### YEP 3.6 +##### Update versions with CVE | draft | manual | OFFICIAL | +The [CVE](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures), or Common Vulnerabilities and Exposures, identify security vulnerabilities common to applications. The corrections of these flaws may concern the application and it is important in this case to follow these updates as closely as possible. +More generally, the application can propose a patch for a specific vulnerability to itself. +Generally, this YEP involves tracking an information channel to track application security updates and reacting quickly by updating the package accordingly. + +As specified in YEP 1.7, if a security patch is to be deployed urgently, another YunoHost member may be required to commit to the package if necessary. + +### YEP 4 +#### Embedding an app +This meta YEP deals with the integration of an app with the YunoHost environment. Good integration is generally a guarantee of quality and comfort for users. + +#### YEP 4.2 +##### Linking Authentication to sso | validated | manual | OFFICIAL | +The Single Sign On makes it possible to avoid having to create the same users for each app. Thus, a YunoHost user can connect via the Single Sign On to all the apps. + +To do this, you must link your app to the LDAP and / or use hooks to duplicate the account credentials in the app's database. + +Once this is done, the maintainer can use the REMOTE_USER HTTP statement to check whether a user is logged on or not. In general, modules exist (whether at the level of the technology, the framework or even the app itself). + +If required, SSOwat can be used to secure access to one or more parts of the app. It may be relevant to secure access to an administration page with the SSO rather than a `.htaccess` and make the rest of the app accessible to all visitors. + +#### YEP 4.2.1 +##### Logout | validated | manual | OFFICIAL | +When you click on a disconnect action within the app, it should disconnect the user from the SSO. Otherwise, there is a risk that the user will inadvertently leave an open session. + +#### YEP 4.3 +##### Provide YunoHost Backup Script Functional | validated | Home | OFFICIAL | +The application must have a backup script to allow users to back up the application, its configuration, and its data. + +#### YEP 4.4 +##### Provide a functional YunoHost restoration script | validated | Home | OFFICIAL | +The application must have a restore script to allow users to restore an application previously backed up with the backup script. + +#### YEP 4.5 +##### Using Hooks | validated | manual | OPTIONAL | +YunoHost offers the possibility to launch actions with each processing carried out by the command line. This can be practical in many cases. + +Examples: +* Add / delete a user in the app database when using `yunohost user create` or` yunohost user remove` +* Manage the addition of a new domain name during the `yunohost domain add` action +* Run a script after the firewall has been reloaded + +List of hooks: +* post_domain_add +* post_domain_remove +* post_user_create +* post_user_delete +* post_backup_create +* post_backup_restore +* pre_backup_delete +* post_backup_delete +* post_app_addaccess +* post_app_removeaccess +* post_app_clearaccess +* post_app_addaccess +* post_iptable_rules + +These scripts are to be placed in a `hooks` directory as in this package: https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks. + + +#### YEP 4.6 +##### Manage multi-instance | validated | manual | OPTIONAL | +It is sometimes practical to be able to install the same app several times. For example, for several different domain names. + +However, be careful about how to handle file paths, dependencies, ports used, etc. so that there is no collision. + +#### YEP 4.7 +##### Add a module to the CLI | validated | manual | OPTIONAL | +You can create a module to add commands to the yunohost command line. + +To do this, you need to add an actionmaps to `/usr/share/moulinette/actionsmap/`. This actionmaps must start with `ynh_`. + +The packages [menu_ynh](https://github.com/YunoHost-Apps/menu_ynh/) and [subscribe_ynh](https://github.com/YunoHost-Apps/subscribe_ynh/) are old (and not up to date) can be used as the basis for this type of module. +#### YEP 4.8 +##### Add a module to the web admin | draft | manual | OPTIONAL | diff --git a/packaging_apps_guidelines_fr.md b/packaging_apps_guidelines_fr.md new file mode 100644 index 00000000..64c1e63e --- /dev/null +++ b/packaging_apps_guidelines_fr.md @@ -0,0 +1,465 @@ +# Packaging d’applications : les bonnes pratiques + +
+ +Cette page est en cours d'élaboration. Tant que cet avertissement n'est pas enlevé. Considérez ces informations comme potentiellement fausse. +Le nom YEP n'est à priori pas définitif, ni les niveaux, ni les bonnes pratiques en elle-même. + +
+ +### Introduction +Ce document a pour but de lister les différentes bonnes pratiques concernant la création de paquet d'application YunoHost. + +Chaque bonne pratique est numérotée avec un numéro suffixé par les lettres YEP (YunoHost Enhancement Proposals), ceci afin de pouvoir y faire référence facilement dans les outils d'analyse automatique de paquet ([package checker](https://github.com/YunoHost/package_check), [package linter](https://github.com/YunoHost/package_linter)), mais également lors des revues de code. + +Chaque YEP est associée à : +* un statut indiquant si la règle a été validée ou si elle fait encore l'objet de discussion (brouillon, validé, refusé, obsolète) ; +* une indication sur le type de test à mener (manuel ou auto si un outil automatique peut vérifier) ; +* une indication du niveau d'app à partir duquel la règle est nécessaire (NOTWORKING, INPROGRESS, WORKING, OFFICIAL), certaines règles sont optionnelles ; + +### Index des YEP +| ID | Titre | Statut | Test | Niveau | +|----|--------|--------|------|--------| +| **YEP 1** | **Communiquer avec la communauté** | | | | +| YEP 1.1 | Nommer son app et son dépot | validé | manuel | NOTWORKING (0) | +| YEP 1.2 | Inscrire l'app sur un "répertoire" connu | validé | manuel | NOTWORKING (0) | +| YEP 1.3 | Indiquer la licence associée au paquet | validé | AUTO | WORKING (5) | +| YEP 1.4 | Informer sur l'intention de maintenir un paquet | brouillon | manuel | OFFICIAL (6) | +| YEP 1.5 | Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING (2) | +| YEP 1.6 | Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL (6) | +| YEP 1.7 | Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL (6) | +| YEP 1.8 | Publier des demandes de test | validé | manuel | OFFICIAL (6) | +| YEP 1.9 | Documenter l'app | validé | AUTO | OFFICIAL (6) | +| YEP 1.10 | Garder un historique de version propre | brouillon | manuel | OFFICIAL (6) | +| YEP 1.11 | Ajouter l'app au [bugtracker YunoHost](https://github.com/yunohost/issues/issues) | brouillon | manuel | OFFICIAL (NA) | +| YEP 1.12 | Suivre le modèle de [example_ynh](https://github.com/YunoHost/example_ynh) | brouillon | manuel | OFFICIAL (8) | +| | | | | | +| **YEP 2** | **Stabiliser une app** | **Statut** | **Test** | **Niveau** | +| YEP 2.1 | Respecter le format du manifeste | validé | auto | INPROGRESS (5) | +| YEP 2.2 | Utiliser bash pour les scripts principaux | validé | auto | WORKING (1) | +| YEP 2.3 | Sauvegarder les réponses lors de l'installation | validé | manuel | WORKING (3) | +| YEP 2.4 | Détecter et gérer les erreurs | brouillon | manuel | WORKING (8) | +| YEP 2.5 | Copier correctement des fichiers | brouillon | manuel | WORKING (1) | +| YEP 2.6 | Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING (7) | +| YEP 2.7 | Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING (1) | +| YEP 2.8 | Modifier correctement une configuration système | brouillon | manuel | WORKING (8) | +| YEP 2.9 | Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING (6) | +| YEP 2.10 | Configurer les logs de l'application | brouillon | manuel | WORKING (9) | +| YEP 2.11 | Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL (9) | +| YEP 2.12 | Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL (5) | +| YEP 2.13 | Traduire le paquet en anglais | brouillon | manuel | OFFICIAL (9) | +| YEP 2.14 | Remplir correctement un fichier de conf | brouillon | manuel | OFFICIAL (9) | +| YEP 2.15 | Suivre les instructions d'installation de l'application | validé | manuel | OFFICIAL (1) | +| YEP 2.16 | Vérifier la disponibilité des dépendances sur ARM, x86 et x64 | validé | manuel | OFFICIAL (8) | +| YEP 2.17 | Prendre en compte la version d'origine lors des mises à jour | validé | manuel | OFFICIAL (9) | +| | | | | | +| **YEP 2.18** | **Stabiliser une webapp** | **Statut** | **Test** | **Niveau** | +| YEP 2.18.1 | Lancer le script d'installation d'une webapp correctement | validé | manuel | WORKING (5) | +| YEP 2.18.2 | Gérer l'installation à la racine d’un nom de domaine | validé | auto | WORKING (2) | +| YEP 2.18.3 | Gérer l'installation sur un sous-domaine | validé | auto | WORKING (2) | +| YEP 2.18.4 | Gérer l'installation sur un chemin `/path` | validé | auto | OFFICIAL (2) | +| YEP 2.18.5 | Gérer la tuile YunoHost pour faciliter la navigation entre les applications | validé | manuel | OFFICIAL (8) | +| | | | | | +| **YEP 3** | **Sécuriser une app** | **Statut** | **Test** | **Niveau** | +| YEP 3.1 | Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING (?) | +| YEP 3.2 | Ouvrir un port correctement | brouillon | manuel | WORKING (7) | +| YEP 3.3 | Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL (6) | +| YEP 3.4 | Isoler l'app | brouillon | manuel | OFFICIAL (8) | +| YEP 3.5 | Suivre les recommendations de la documentation de l'app | validé | manuel | OFFICIAL (6) | +| YEP 3.6 | Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL (6) | +| YEP 3.7 | Modifier correctement les dépots sources | draft | manuel | NOTWORKING (0) | +| | | | | | +| **YEP 4** | **Intégrer une app** | **Statut** | **Test** | **Niveau** | +| 4.1 | Lier au LDAP | validé | manuel | OFFICIAL (4) | +| YEP 4.2 | Lier l'authentification au SSO | validé | manuel | OFFICIAL (4) | +| YEP 4.2.1 | Déconnexion | validé | manuel | OFFICIAL (9) | +| YEP 4.3 | Fournir un script de sauvegarde YunoHost fonctionnel | validé | auto | OFFICIAL (6) | +| YEP 4.4 | Fournir un script de restauration YunoHost fonctionnel | validé | auto | OFFICIAL (6) | +| YEP 4.5 | Utiliser les hooks | validé | manuel | OPTIONAL (8) | +| YEP 4.6 | Gère le multi-instance | validé | manuel | OPTIONAL (2) | +| YEP 4.7 | Ajouter un module à la CLI | validé | manuel | OPTIONAL | +| YEP 4.8 | Ajouter un module à l'admin web | brouillon | manuel | OPTIONAL | + + +### YEP 1 +#### Communiquer avec la communauté +La YEP 1 est une meta YEP, elle explique ce qu'il faut faire pour échanger avec la communauté autour d'un paquet d'application YunoHost. + +#### YEP 1.1 +##### Nommer son app et son dépôt | validé | manuel | NOTWORKING | +Chaque application YunoHost possède un id inscrit dans le manifeste de l'application. +Cet identifiant doit être unique entre chaque paquet d'application. +Il est donc recommandé de vérifier sa disponibilité en consultant la liste des applications référencées dans les dépôts d'applications connus (apps, internetcube). + +De plus l'identifiant doit respecter l'expression régulière suivante `^[a-z0-9]((_|-)?[a-z0-9])+$`. Autrement dit, il doit respecter les règles suivantes : +* être en minuscule +* commencer par une lettre ou un chiffre +* être alphanumérique (le underscore est autorisé) +* ne pas contenir deux underscores ou tirets qui se suivent +* ne pas terminer par un underscore ou un tiret + +Pour les noms d'applications contenant des espaces la quasi-totalité des paquets actuels les retirent simplement sans les remplacer par des tirets ou underscores. + +Par convention, les dépôts d'applications YunoHost sont toujours nommés de leur ID suivis de la chaîne de caractère "\_ynh". Ainsi on peut distinguer le dépôt upstream de l'application, du dépôt du paquet YunoHost. Cette notation permet également de trouver des applications non répertoriées à travers les moteurs de recherche des plateformes proposant des gestionnaires de version (GitHub par exemple). + +Exemple : ID : exemple Nom de dépôt : exemple_ynh + +#### YEP 1.2 +##### Inscrire l'app sur un « répertoire » connu | validé | manuel | NOTWORKING | +Il est conseillé dès le début du packaging d'inscrire une app sur un des dépôts d'application YunoHost. + +Ces dépôts ont plusieurs fonctions : +* communiquer l'existence d'un paquet ; +* indiquer la dernière version associée au paquet (afin de permettre la mise à jour de l'app par YunoHost) ; +* indiquer l'état de fonctionnement du paquet ; +* indiquer des informations sur le support d'un paquet. + +Pour la liste `apps.json` maintenue par l'équipe du projet YunoHost, l'inscription se fait sur [le dépôt Git "apps"](https://github.com/YunoHost/apps). D'autres listes non-officielles (notamment celles incluant des applications non-libres) peuvent exister, se réferer au [Forum](https://forum.yunohost.org) de la communauté. + +#### YEP 1.3 +##### Indiquer la licence associée au paquet | brouillon | AUTO | WORKING | +La licence du paquet est à indiquer dans un fichier `LICENSE` à la racine du paquet. Attention à ne pas confondre avec la licence de l'application qui va être installée dont l'acronyme est à renseigner dans le champ `license` du manifeste. + +La liste d'application apps.json n'accepte que les paquets dont la licence est libre, de même pour la licence de l'application contenue. Certaines applications libres nécessitent des dépendances non-libres (exemple: MP3, drivers, etc.). Dans ce cas, il faut ajouter `&dep-non-free` à l'acronyme et si possible donner des précisions dans le README.md du paquet, l'intégration sera dans ce cas acceptée au cas par cas. + +**NB :** Les applications non-présentes dans la liste maintenue par le projet peuvent tout de même être installées : soit manuellement via le lien de l'application, soit de manière plus intégrée via des listes non-officielles (qui peuvent être créées et maintenues par la communauté). + +Dans le futur, YunoHost affichera sans doute des détails sur la licence de l'application. Pour y parvenir, l'acronyme doit être celui issu de cette [liste de licences répertoriées du SPDX](https://spdx.org/licenses/) (si il y a 2 acronymes, il faut prendre celui contenant le numéro de version). Pour plus de cohérence, la casse doit être respectée. + +Si la licence n'est pas présente dans la liste, dans ce cas il faut indiquer `free` ou `non-free` selon qu'elle est libre ou non et donner l'occasion à l'utilisateur de se renseigner dans le README.md (lien, explications...). + +Exemple : pour une licence `GNU Lesser General Public License (LGPL), version 3` l'acronyme est `LGPL-3.0` si toutefois des dépendances non libres sont utilisées dans ce cas il faudra mettre `LGPL-3.0&dep-non-free` dans le manifeste. + +Si une application a des modules liés avec une autre licence (Exemple : Odoo 9 LGPL-3.0 + un module sous licence AGPL-3.0 ), dans ce cas on indiquera les deux licences séparées par un `&`. + +Si deux applications distinctes sont dans le même paquet d'installation et ont des licences distinctes, dans ce cas on peut utiliser le `,` pour séparer les licences. + +Dans les deux cas, le mainteneur est encouragé à réfléchir à la possibilité de créer deux paquets distincts. Le manifeste de chaque application permet de poser des questions de type `app` de façon à faire référence à une autre application déjà installée. + +Rappel : une question de type `app` prend pour réponse l'identifiant d'une des apps déjà installée. + +Quelques liens intéressants pour aider au choix de licence : +* [Des fiches explicatives sur les licences libres](https://www.inria.fr/content/download/5896/48452/version/2/file/INRIA_recueil_fiches_licences_libres_vf.pdf) +* [La documentation sur les licences du projet GNU](https://www.gnu.org/licenses/licenses.fr.html) +* [Un guide du projet GNU pour aider au choix d'une licence](https://www.gnu.org/licenses/license-recommendations.fr.html) + +#### YEP 1.4 +##### Informer sur l'intention de maintenir un paquet | brouillon | manuel | OFFICIAL | +Le mainteneur de l'application doit s'engager à maintenir son app sur la durée si il souhaite que celle-ci rejoigne la liste des applications officielles. +Cela implique de surveiller les mises à jour de l'application upstream, de respecter les nouvelles règles de packaging et de répondre aux demandes des utilisateurs. + +#### YEP 1.5 +##### Mettre à jour régulièrement le statut de l'app | brouillon | manuel | WORKING | +#### YEP 1.6 +##### Se tenir informé sur l'évolution du packaging d'apps | validé | manuel | OFFICIAL | +Afin de suivre l'évolution du format de packaging ainsi que des bonnes pratiques, il est recommandé de: +* suivre [la catégorie Apps packaging du forum](https://forum.yunohost.org/c/contribute-room/apps-packaging) + +Pour suivre l'évolution de YunoHost de façon plus générale : +* rejoindre le salon XMPP dev@conference.yunohost.org ([trois jours de logs sont disponibles](https://im.yunohost.org/logs/dev/)) +* suivre [la catégorie Annoucement du forum](https://forum.yunohost.org/c/announcement) + +#### YEP 1.7 +##### Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) | validé | manuel | OFFICIAL | +L'ajout d'une app sur l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps) permet de faire connaitre l'apps auprès des autres contributeurs qui pourraient être tentés de packager l'application visée. + +C'est aussi un moyen pour permettre de déployer rapidement un correctif de sécurité si nécessaire dans le cas où le mainteneur ne serait pas disponible. + +Procédure de transfert : demander sur le [salon de discussion `Apps`](/chat_rooms) à être invité à l’organisation en lui fournissant le nom de son compte GitHub. +Une fois l’invitation acceptée, [transférer son dépôt sur l’organisation en suivant ce tutoriel](https://help.github.com/articles/transferring-a-repository-owned-by-your-personal-account/#transferring-a-repository-to-another-user-account-or-to-an-organization). + +#### YEP 1.8 +##### Publier des demandes de test | validé | manuel | OFFICIAL | +Afin d'assurer le bon fonctionnement d'un paquet, il convient de publier une annonce afin d'ouvrir les tests sur le paquet. Cette annonce peut se faire sur le forum dans [la catégorie Apps du forum](https://forum.yunohost.org/c/support/apps). + +Il est recommandé d'indiquer si certains tests n'ont pas été menés. + +* Vérifier le package avec Package linter. +* Installation en sous-dossier. +* Installation à la racine d'un domaine ou d'un sous-domaine. +* Suppression, dans les 2 cas d'installations précédent. +* Accès à l'interface web de l'application, avec le / final dans l'adresse, et en l'omettant. +* Upgrade sur la même version du package. +* Upgrade depuis une ancienne version du package. +* Installation privée (sécurisée par le SSO). +* Installation publique. +* Installation multi-instance. +* Erreur de nom d'utilisateur. +* Erreur de nom de domaine. +* Path mal écrit (path/ au lieu de /path par exemple). +* Port déjà utilisé par une autre application. +* Source corrompue après téléchargement. +* Erreur de téléchargement de la source. +* Dossier déjà utilisé par une autre application. +* Backup et restore. + +#### YEP 1.9 +##### Documenter l'app | validé | AUTO | OFFICIAL | +Avant tout, il convient de faire une description correcte de l'app dans le champ `description` du manifest. L'insertion de mot clé dans cette description peut être une bonne idée, dans la mesure où un utilisateur pourrait être amené à faire une recherche (CTRL+F) parmi toutes les applications. + +Il y a également le README.md, ce dernier doit et peut contenir : +* le nom de l'app +* un bref résumé de ce qu'elle fait +* des éventuels compléments d'installation si le script ne suffit pas lui-même +* des instructions pour l'utiliser (par exemple pour relier son smartphone ou son ordinateur) +* l'endroit pour signaler un dysfonctionnement / une demande +* la roadmap/TODO +* éventuellement les pré-requis en termes de mémoires RAM, processeur etc. (certains équipements ont moins de 512 Mo de RAM) + +#### YEP 1.10 +##### Garder un historique de version propre | brouillon | manuel | OFFICIAL | +#### YEP 1.11 +##### Ajouter l'app au [bugtracker YunoHost](https://github.com/yunohost/issues/issues) | brouillon | manuel | OFFICIAL | + +#### YEP 1.12 +##### Suivre le modèle de [example_ynh](https://github.com/YunoHost/example_ynh) | brouillon | manuel | OFFICIAL | +Afin de faciliter le travail de la communauté concernant un package, il doit suivre le modèle montré par l'application d'exemple. +Cela aidera les autres packagers à lire, modifier et débugger le paquet. De plus, cela aidera à prolonger la durée de vie du package en lui donnant un modèle standard que les autres packagers seront en mesure de comprendre rapidement au cas où un package deviendrait orphelin. +De plus, un package ne devrait pas utiliser de code exotique ou inutilement compliqué si ce n'est pas vraiment nécessaire. Le cas échéant, cette partie du code devrait être clairement documentée. +Gardez votre code aussi simple que possible, gardez tout ce dont un script a besoin directement dedans. Ne déplacez pas les fonctions dans un autre fichier. Restez simple et efficace. + +### YEP 2 +#### Stabiliser une app +#### YEP 2.1 +##### Respecter le format du manifeste | validé | auto | INPROGRESS | +Le manifeste permet de décrire une app afin que YunoHost puisse lui appliquer les bons traitements. Pour plus d'information voir la [documentation dédiée](/packaging_apps_manifest). + +#### YEP 2.2 +##### Utiliser bash pour les scripts principaux | validé | auto | WORKING | +Les scripts d'action (install, upgrade, remove, backup et restore) doivent être en bash afin que la CLI/API YunoHost puisse correctement les appeler. + +Ceci étant, rien n'empêche à l'intérieur de ces scripts de faire appel à d'autres scripts ou bibliothèques de fonction. Ceux-ci ne sont pas obligés d'être en bash. + +Cependant, il faudra porter une attention particulière à l'affichage correct des logs d'information, de warning, ou d'erreurs. Afin qu'un utilisateur de la CLI/API YunoHost puisse comprendre le fonctionnement du script venant d'être exécuté et au besoin réparer son instance YunoHost. + +#### YEP 2.3 +##### Sauvegarder les réponses lors de l'installation | validé | manuel | WORKING | +Lors de l'installation, il est nécessaire de sauvegarder chaque réponse aux questions du manifeste. En effet, même si au début il n'est pas nécessaire d'écrire un script de mise à jour, par la suite ce sera sans doute le cas. Or, sans les informations initiales, la mise à jour peut être plus fastidieuse. + +#### YEP 2.4 +##### Détecter et gérer les erreurs | brouillon | manuel | WORKING | +Les scripts install, upgrade, backup et restore doivent détecter les erreurs pour éviter la poursuite des scripts en cas d'erreur bloquante ou d'usage de variable vide. +L'usage de trap et de `set -eu` est recommandé pour détecter et traiter les erreurs ([Discussion en cours à ce sujet](https://forum.yunohost.org/t/gestion-des-erreurs-set-e-et-ou-trap/2249/5)) +Il est nécessaire également de vérifier le contenu des variables avant les suppressions du script remove. Par exemple un `rm -Rf /var/www/$app` avec `$app` vide aurait un résultat désastreux. + +Au début des scripts, avant toutes modifications, il faut vérifier l'existence des utilisateurs mentionné à l'installation, ainsi que la disponibilité du path demandé, la disponibilité du dossier final de l'application et la taille des mots de passe le cas échéant. + + N'oubliez pas qu'en cas d'erreur d'installation le script de suppression sera lancé automatiquement par la CLI YunoHost. + +#### YEP 2.5 +##### Copier correctement des fichiers | brouillon | manuel | WORKING | +#### YEP 2.6 +##### Annuler l'action si les valeurs d'entrées sont incorrectes | validé | manuel | WORKING | +Chaque script devrait vérifier que les valeurs d'entrées sont correctes. + +Voici quelques exemples : +* Vérifier que le nom de domaine existe +* Vérifier que l'utilisateur existe +* Vérifier que le chemin choisi est disponible + +Dans le cas où l'une des valeurs est incorrecte, il est alors nécessaire d'annuler toutes modifications réalisées préalablement sur l'instance. Le mieux étant de faire tous ces contrôles avant de modifier le système. + + +#### YEP 2.7 +##### Donner des permissions suffisantes aux instructions bash | validé | auto | WORKING | +Certaines instructions nécessitent les droits sudo. Il faut dans ce cas ne pas oublier de préfixer ces instructions par `sudo`. + +Dans d'autres cas il est nécessaire de donner des droits à l'aide de chmod et de chown. + +#### YEP 2.8 +##### Modifier correctement une configuration système | brouillon | manuel | WORKING | +Les modifications du système doivent être réversible pour que la suppression de l'application soit sans conséquences pour le système, ne laisse pas de résidus. +Pour celà, il faut recourir autant que possible aux dossiers `.d` des configurations système. Où lorsqu'il n'est pas possible de faire autrement, d'indiquer clairement la configuration modifiée par une application et s'assurer que les modifications seront retirées lors de sa suppression. + +#### YEP 2.9 +##### Enlever toutes traces de l'app lors de la suppression | brouillon | manuel | WORKING | +À l’exception de dépendances (par exemple : paquets Debian) utilisés par d’autres services ou applications. + +#### YEP 2.10 +##### Configurer les logs de l'application | brouillon | manuel | WORKING | +Si possible, l'application doit utiliser un fichier de log, qui sera de préférence dans /var/log. +Si le log est mis en place par le script install et non par l'application elle-même, un fichier de configuration pour log-rotate devra être ajouté pour gérer les rotations des logs de l'application. + +#### YEP 2.11 +##### Utiliser une variable plutôt que l'app id directement | validé | manuel | OFFICIAL | +Il est conseillé de rendre les scripts le plus générique possible, un bon moyen d'y parvenir est d'utiliser une variable pour le nom de l'app afin d'éviter qu'il se retrouve partout dans les scripts. Ainsi, un autre packageur pourra plus facilement se servir du script pour une autre app. + +#### YEP 2.12 +##### Utiliser les commandes pratiques (helpers) | validé | auto | OFFICIAL | +Afin de simplifier le packaging, d'uniformiser les pratiques, d'éviter les erreurs et d'augmenter la durée de vie d'un script vis-à-vis des futures versions de YunoHost. Un ensemble de helpers permettant de faire de nombreuses actions est proposé. + +Pour plus d'informations : +* consulter [la documentation des helpers](/packaging_apps_helpers) +* explorer [le répertoire des helpers](https://github.com/YunoHost/yunohost/tree/unstable/data/helpers.d) + +#### YEP 2.13 +##### Traduire le paquet en anglais | brouillon | manuel | OFFICIAL | +#### YEP 2.14 +##### Remplir correctement un fichier de conf | brouillon | manuel | OFFICIAL | +*Juste pour éclaircir un peu cette YEP, mais ça reste à l'état de brouillon.* +Le but est de trouver une méthode plus fiable que sed pour modifier les fichiers de configuration. sed pouvant éventuellement avoir des effets de bord en modifiant des parties non désirées du fichier de configuration, en particulier avec l'usage de regex. + +#### YEP 2.15 +##### Suivre les instructions d'installation de l'application | validé | manuel | OFFICIAL | + +#### YEP 2.16 +##### Vérifier la disponibilité des dépendances sur ARM, x86 et x64 | validé | manuel | OFFICIAL | +YunoHost s'installe sur ARM, sur x86 et x64. Un paquet devrait donc être testé sur ces trois architectures processeur. + +Certains paquets ne sont pas disponibles sur ARM, il convient dans ce cas d'étudier d'autres solutions ou d'indiquer dans le README.md que l'application ne fonctionne pas sur ARM et de bloquer l’installation par détection du type d’architecture. + +#### YEP 2.17 +##### Prendre en compte la version d'origine lors des mises à jour | validé | manuel | OFFICIAL | +Le script de mise à jour doit pouvoir fonctionner même si les mises à jour précédentes n'ont pas été effectuées. + +Ainsi, il doit être possible de faire des sauts de mise à jour d'une version N-x vers une version N. Pour ce faire il est conseillé d'enregistrer les numéros de version dans les settings de l'app. + +### YEP 2.18 +##### Stabiliser une webapp +La majeure partie des applications YunoHost sont des web apps, mais certaines n'en sont pas. Les YEP 2.18.x développent certaines spécificités liées aux web app. + +#### YEP 2.18.1 +##### Lancer le script d'installation d'une webapp correctement | validé | manuel | WORKING | +Bien souvent une web app s'installe à partir de formulaires affichés sur une page web. Cette façon de faire, bien que pratique pour un humain, l'est moins pour un programme. + +Il convient donc de vérifier si l'application ne propose pas une solution d'installation en ligne de commande. + +Si ce n'est pas le cas, il convient d'utiliser l'option -H de curl. En effet, dans certains cas la redirection DNS pourrait ne pas être active au moment de l'installation. +```bash +curl -kL -H "Host: $domain" --data "¶m1=Text1¶m2=text2" https://localhost$path/install.php > /dev/null 2>&1 +``` + +#### YEP 2.18.2 +##### Gérer l'installation à la racine d’un nom de domaine | validé | auto | WORKING | +Une web app devrait pouvoir s'installer à la racine d’un nom de domaine. + +#### YEP 2.18.3 +##### Gérer l'installation sur un sous-domaine | validé | auto | WORKING | +Une web app devraient pouvoir s'installer sur un sous-domaine directement sans sous dossiers. + +#### YEP 2.18.4 +##### Gérer l'installation sur un chemin `/path` | validé | auto | OFFICIAL | +Une web app devraient pouvoir s'installer sur un chemin `/path`. + +#### YEP 2.18.5 +##### Gérer la tuile YunoHost pour naviguer facilement entre les applications | validé | manuel | OFFICIAL | +Sauf dans de rare cas il est conseillé d'intégrer la tuile YunoHost qui permet de retourner sur le menu du SSO. Cette intégration se fait dans la configuration NGINX. + +Certains utilisateurs ont remplacé ce carré par un script ajoutant un menu en haut de chaque webapp. + +### YEP 3 +#### Sécuriser une app +#### YEP 3.1 +##### Ne pas demander ou stocker de mot de passe LDAP | brouillon | manuel | NOTWORKING | +#### YEP 3.2 +##### Ouvrir un port correctement | brouillon | manuel | WORKING | +Si l'application nécessite l'ouverture d'un port, il est nécessaire de vérifier préalablement que ce port n'est pas déjà utilisé par une autre application. Le cas échéant, le script install doit être capable de trouver un autre port disponible. +Il convient également de vérifier si le port doit être ouvert sur le routeur, au delà du réseau local. Si ce n'est pas le cas, l'argument `--no-upnp` doit être ajouté à la commande `yunohost firewall allow` afin de limiter l'ouverture du port au réseau local uniquement. + +#### YEP 3.3 +##### Faciliter le contrôle de l'intégrité des sources | brouillon | manuel | OFFICIAL | +L'application upstream ne doit pas être intégrée en tarball dans le dossier source du package, car cela alourdit le package et le dépôt Git et ne permet pas la vérification de l'intégrité de la source. +La source doit donc être téléchargée depuis le site officiel, puis son intégritée doit être vérifiée avant de l'installer. + +#### YEP 3.4 +##### Isoler l'app | brouillon | manuel | OFFICIAL | +Afin d'éviter des effets de bords en cas de compromission éventuelle de l'application, celle-ci doit être isolée pour ne pas risquer d'impacter les autres applications. +Pour cela, il convient d'isoler l'application dans son dossier d'exécution en restreignant son environnement par un chroot, soit par un mécanisme interne à l'application lorsque c'est possible (par exemple pour un serveur FTP), soit par l'usage de PHP-FPM. +De même, pour restreindre la portée de l'utilisateur exécutant l'application, il est préférable d'utiliser un utilisateur dédiée à l'application. Dont les droits sont restreint à l'usage de l'application uniquement. +Toutefois, cela ne doit pas exempter d'une restriction maximale des droits sur les fichiers de l'application. Autant que possible, les fichiers doivent appartenir à root, et l'utilisateur dédié ne doit avoir de droits d'écriture que sur les fichiers le réclamant expressément. + +#### YEP 3.5 +##### Suivre les recommandations de la documentation de l'app | validé | manuel | OFFICIAL | +En général, une application propose une documentation afin d'aider les administrateurs systèmes à réaliser l'installation. Il est conseiller d'en suivre les recommandations, notamment celles concernant les permissions à accorder par fichier ou répertoire. + +Le mainteneur de paquet doit toutefois rester vigilant, certaines documentations pouvant être erronées ou insuffisantes. + +#### YEP 3.6 +##### Mettre à jour les versions contenant des CVE | draft | manuel | OFFICIAL | +Les [CVE](https://fr.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures), ou Common Vulnerabilities and Exposures, recensent les failles de sécurités communes aux applications. Les corrections de ces failles peuvent concerner l'application et il est important dans ce cas de suivre au plus près ces mises à jour. +Plus généralement, l'application peut proposer un correctif pour une faille spécifique à elle-même. +De manière générale, cette YEP implique de suivre un canal d'information pour suivre les mises à jour de sécurité de l'application et réagir rapidement en mettant à jour le package en conséquence. + +Comme précisé dans la YEP 1.7, si un correctif de sécurité doit être déployé en urgence, un autre membre de YunoHost peut être amené à faire un commit sur le package si nécessaire. + +#### YEP 3.7 +##### Modifier correctement les dépots sources | draft | manuel | OFFICIAL | +La modification ou l'ajout des dépôts sources dans /etc/apt/sources.list ou /etc/apt/sources.list.d/ ne doit se faire que si c'est absolument nécessaire. Dans un tel cas, merci d'utiliser le pinning, afin de s'assurer que le dépôt n'aura pas une priorité supérieur aux dépôts de debian et YunoHost. + +Dans certains cas, il pourra être préférable de télécharger directement le .deb à partir du dépôt source (avec wget par exemple), ceci est à évaluer en fonction des dépendances, de la nature et du rythme des mises à jour. + +L'ajout des backports et des dépôts contrib est autorisée. Le paquet doit demander l'autorisation à l'usager avant de procéder à l'ajout de dépôts nonfree, et si possible, permettre l'installation de l'app sans ce dépôt. + +Lorsque l'on désigne la distribution on doit toujours faire référence à son nom (jessie) et non pas au statut de celle-ci (stable). Sans quoi, il y a un risque le jour où debian change de version. + +Dans tous les cas, une app ne devrait pas modifier les dépôts sources pour les placer sur testing ou une version non supportée par YunoHost (à l'heure où cette yep est rédigé, YunoHost ne supporte pas la nouvelle stable: debian stretch). + +### YEP 4 +#### Intégrer une app + +Cette meta YEP traite de l'intégration d'une app avec l'environnement YunoHost. Une bonne intégration est en général un gage de qualité et de confort pour les utilisateurs. + +#### YEP 4.2 +##### Lier l'authentification au SSO | validé | manuel | OFFICIAL | +Le Single Sign On permet d'éviter d'avoir à créer les mêmes utilisateurs pour chaque app. Ainsi, un utilisateur YunoHost pourra se connecter via le Single Sign On à l'ensemble des apps. + +Pour se faire, il convient de lier son app au LDAP et/ou d'utiliser des hooks pour dupliquer les identifiants du compte dans la base de données de l'app. + +Une fois cette opération appliquée, le mainteneur peut utiliser l'instruction HTTP REMOTE_USER pour vérifier si un utilisateur est connecté ou non. En général, des modules existent (que ce soit au niveau de la technologie, du framework ou même de l'app elle-même). + +Au besoin, SSOwat permet de sécuriser l'accès à une ou plusieurs parties de l'app. Il peut ainsi être pertinent de sécuriser l'accès à une page d'administration avec le SSO plutôt qu'un `.htaccess` et de rendre le reste de l'app accessible à tous les visiteurs. + +#### YEP 4.2.1 +##### Déconnexion | validé | manuel | OFFICIAL | +Lorsque l'on clique sur une action de déconnexion au sein de l'app, celle-ci devrait déconnecter l'utilisateur du SSO. Sinon, il y a un risque que l'utilisateur laisse par mégarde une session ouverte. + +#### YEP 4.3 +##### Fournir un script de sauvegarde YunoHost fonctionnel | validé | auto | OFFICIAL | +L'application doit disposer d'un script backup pour permettre aux utilisateurs de sauvegarder l'application, sa configuration et ses données. + +#### YEP 4.4 +##### Fournir un script de restauration YunoHost fonctionnel | validé | auto | OFFICIAL | +L'application doit disposer d'un script restore pour permettre aux utilisateurs de restaurer une application sauvegardée préalablement avec le script backup. + +#### YEP 4.5 +##### Utiliser les hooks | validé | manuel | OPTIONAL | +YunoHost offre la possibilité de lancer des actions à chaque traitement effectué par la ligne de commande. Ceci peut être pratique dans de nombreux cas. + +Exemples : +* Ajouter/supprimer un utilisateur dans la base de données de l'app lorsque l'on utilise `yunohost user create` ou `yunohost user remove` +* Gérer l’ajout d'un nouveau nom de domaine lors de l'action `yunohost domain add` +* Lancer un script après que le pare-feu ait été rechargé + +Liste des hooks : +* post_domain_add +* post_domain_remove +* post_user_create +* post_user_delete +* post_backup_create +* post_backup_restore +* pre_backup_delete +* post_backup_delete +* post_app_addaccess +* post_app_removeaccess +* post_app_clearaccess +* post_app_addaccess +* post_iptable_rules + +Ces scripts sont à placer dans un répertoire `hooks` comme dans ce paquet : https://github.com/YunoHost-Apps/owncloud_ynh/tree/master/hooks . + + +#### YEP 4.6 +##### Gèrer le multi-instance | validé | manuel | OPTIONAL | +Il est parfois pratique de pouvoir installer plusieurs fois une même app. Par exemple, pour plusieurs noms de domaine différents. + +Il faut toutefois faire attention à la façon de gérer les chemins de fichier, les dépendances, les ports utilisés etc. de sorte qu'il n'y ait pas de collision. + +#### YEP 4.7 +##### Ajouter un module à la CLI | validé | manuel | OPTIONAL | +Il est possible de créer un module afin d'ajouter des commandes à la ligne de commandes yunohost. + +Pour ce faire, il faut ajouter un actionmaps dans `/usr/share/moulinette/actionsmap/`. Cet actionmaps doit commencer par `ynh_`. + +Les paquets [menu_ynh](https://github.com/YunoHost-Apps/menu_ynh/) et [subscribe_ynh](https://github.com/YunoHost-Apps/subscribe_ynh/) bien qu’anciens (et non à jour) peuvent servir de base pour mettre en place ce genre de module. +#### YEP 4.8 +##### Ajouter un module à l'admin web | brouillon | manuel | OPTIONAL | diff --git a/packaging_apps_helpers.md b/packaging_apps_helpers.md new file mode 100644 index 00000000..1cf5d699 --- /dev/null +++ b/packaging_apps_helpers.md @@ -0,0 +1,5572 @@ + + +

App helpers

+ +

Doc auto-generated by this script on 02/03/2021 (Yunohost version 4.1.7.1)

+ + + +

apt

+ + + +
+
+
+
ynh_package_is_installed
+
Check either a package is installed or not
+
+
+
+

+ + Usage: ynh_package_is_installed --package=name + +

+ +

+ Arguments: +

    + + +
  • -p, --package= : the package name to check
  • + + +
+

+ + + +

+ Example: ynh_package_is_installed --package=yunohost && echo "ok" +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_package_version
+
Get the version of an installed package
+
+
+
+

+ + Usage: ynh_package_version --package=name + +

+ +

+ Arguments: +

    + + +
  • -p, --package= : the package name to get version
  • + + +
+

+ + +

+ Returns: the version or an empty string +

+ + +

+ Example: version=$(ynh_package_version --package=yunohost) +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_package_update
+
Update package index files
+
+
+
+

+ + Usage: ynh_package_update + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_package_install
+
Install package(s)
+
+
+
+

+ + Usage: ynh_package_install name [name [...]] + +

+ +

+ Arguments: +

    + + +
  • name : the package name to install
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_package_remove
+
Remove package(s)
+
+
+
+

+ + Usage: ynh_package_remove name [name [...]] + +

+ +

+ Arguments: +

    + + +
  • name : the package name to remove
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_package_autoremove
+
Remove package(s) and their uneeded dependencies
+
+
+
+

+ + Usage: ynh_package_autoremove name [name [...]] + +

+ +

+ Arguments: +

    + + +
  • name : the package name to remove
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_package_autopurge
+
Purge package(s) and their uneeded dependencies
+
+
+
+

+ + Usage: ynh_package_autopurge name [name [...]] + +

+ +

+ Arguments: +

    + + +
  • name : the package name to autoremove and purge
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.7.2 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_install_app_dependencies
+
Define and install dependencies with a equivs control file
+
+
+
+

+ + Usage: ynh_install_app_dependencies dep [dep [...]] + +

+ +

+ Arguments: +

    + + +
  • dep : the package name to install in dependence. Writing "dep3|dep4|dep5" can be used to specify alternatives. For example : dep1 dep2 "dep3|dep4|dep5" will require to install dep1 and dep 2 and (dep3 or dep4 or dep5).
  • + + +
+

+ + + + + +

+ Details: +

+ This helper can/should only be called once per app

example : ynh_install_app_dependencies dep1 dep2 "dep3|dep4|dep5"

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_add_app_dependencies
+
Add dependencies to install with ynh_install_app_dependencies
+
+
+
+

+ + Usage: ynh_add_app_dependencies --package=phpversion [--replace] + +

+ +

+ Arguments: +

    + + +
  • -p, --package= : Packages to add as dependencies for the app.
  • + + + +
  • -r, --replace : Replace dependencies instead of adding to existing ones.
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.8.1 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_remove_app_dependencies
+
Remove fake package and its dependencies
+
+
+
+

+ + Usage: ynh_remove_app_dependencies + +

+ + + + + +

+ Details: +

+ Dependencies will removed only if no other package need them.

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_install_extra_app_dependencies
+
Install packages from an extra repository properly.
+
+
+
+

+ + Usage: ynh_install_extra_app_dependencies --repo="repo" --package="dep1 dep2" [--key=key_url] [--name=name] + +

+ +

+ Arguments: +

    + + +
  • -r, --repo= : Complete url of the extra repository.
  • + + + +
  • -p, --package= : The packages to install from this extra repository
  • + + + +
  • -k, --key= : url to get the public key.
  • + + + +
  • -n, --name= : Name for the files for this repo, $app as default value.
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.8.1 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

backup

+ + + +
+
+
+
ynh_backup
+
Add a file or a directory to the list of paths to backup
+
+
+
+

+ + Usage: ynh_backup --src_path=src_path [--dest_path=dest_path] [--is_big] [--not_mandatory] + +

+ +

+ Arguments: +

    + + +
  • -s, --src_path= : file or directory to bind or symlink or copy. it shouldn't be in the backup dir.
  • + + + +
  • -d, --dest_path= : destination file or directory inside the backup dir
  • + + + +
  • -b, --is_big : Indicate data are big (mail, video, image ...)
  • + + + +
  • -m, --not_mandatory : Indicate that if the file is missing, the backup can ignore it.
  • + + + +
  • arg : Deprecated arg
  • + + +
+

+ + + + + +

+ Details: +

+ This helper can be used both in a system backup hook, and in an app backup script

Details: ynh_backup writes SRC and the relative DEST into a CSV file. And it
creates the parent destination directory

If DEST is ended by a slash it complete this path with the basename of SRC.

Example in the context of a wordpress app

ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
# => This line will be added into CSV file
# "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf"

ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/nginx.conf"
# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"

ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf/"
# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"

ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "conf"
# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf"

#Deprecated usages (maintained for retro-compatibility)
ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "${backup_dir}/conf/nginx.conf"
# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/nginx.conf"

ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "/conf/"
# => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"

How to use --is_big:
--is_big is used to specify that this part of the backup can be quite huge.
So, you don't want that your package does backup that part during ynh_backup_before_upgrade.
In the same way, an user may doesn't want to backup this big part of the app for
each of his backup. And so handle that part differently.

As this part of your backup may not be done, your restore script has to handle it.
In your restore script, use --not_mandatory with ynh_restore_file
As well in your remove script, you should not remove those data ! Or an user may end up with
a failed upgrade restoring an app without data anymore !

To have the benefit of --is_big while doing a backup, you can whether set the environement
variable BACKUP_CORE_ONLY to 1 (BACKUP_CORE_ONLY=1) before the backup command. It will affect
only that backup command.
Or set the config do_not_backup_data to 1 into the settings.yml of the app. This will affect
all backups for this app until the setting is removed.

Requires YunoHost version 2.4.0 or higher.
Requires YunoHost version 3.5.0 or higher for the argument --not_mandatory

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_restore
+
Restore all files that were previously backuped in a core backup script or app backup script
+
+
+
+

+ + Usage: ynh_restore + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_restore_file
+
Restore a file or a directory
+
+
+
+

+ + Usage: ynh_restore_file --origin_path=origin_path [--dest_path=dest_path] [--not_mandatory] + +

+ +

+ Arguments: +

    + + +
  • -o, --origin_path= : Path where was located the file or the directory before to be backuped or relative path to $YNH_CWD where it is located in the backup archive
  • + + + +
  • -d, --dest_path= : Path where restore the file or the dir, if unspecified, the destination will be ORIGIN_PATH or if the ORIGIN_PATH doesn't exist in the archive, the destination will be searched into backup.csv
  • + + + +
  • -m, --not_mandatory : Indicate that if the file is missing, the restore process can ignore it.
  • + + +
+

+ + + + +

+ Examples:

    + + + ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf" + +
    + + + You can also use relative paths: + +
    + + + ynh_restore_file "conf/nginx.conf" + +
    + +
+

+ + +

+ Details: +

+ Use the registered path in backup_list by ynh_backup to restore the file at
the right place.

If DEST_PATH already exists and is lighter than 500 Mo, a backup will be made in
/home/yunohost.conf/backup/. Otherwise, the existing file is removed.

if apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf exists, restore it into
/etc/nginx/conf.d/$domain.d/$app.conf
if no, search for a match in the csv (eg: conf/nginx.conf) and restore it into
/etc/nginx/conf.d/$domain.d/$app.conf

Requires YunoHost version 2.6.4 or higher.
Requires YunoHost version 3.5.0 or higher for the argument --not_mandatory

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_store_file_checksum
+
Calculate and store a file checksum into the app settings
+
+
+
+

+ + Usage: ynh_store_file_checksum --file=file + +

+ +

+ Arguments: +

    + + +
  • -f, --file= : The file on which the checksum will performed, then stored.
  • + + +
+

+ + + + + +

+ Details: +

+ $app should be defined when calling this helper

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_backup_if_checksum_is_different
+
Verify the checksum and backup the file if it's different
+
+
+
+

+ + Usage: ynh_backup_if_checksum_is_different --file=file + +

+ +

+ Arguments: +

    + + +
  • -f, --file= : The file on which the checksum test will be perfomed.
  • + + +
+

+ + +

+ Returns: the name of a backup file, or nothing +

+ + + + +

+ Details: +

+ This helper is primarily meant to allow to easily backup personalised/manually
modified config files.

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_delete_file_checksum
+
Delete a file checksum from the app settings
+
+
+
+

+ + Usage: ynh_delete_file_checksum --file=file + +

+ +

+ Arguments: +

    + + +
  • -f, --file= : The file for which the checksum will be deleted
  • + + +
+

+ + + + + +

+ Details: +

+ $app should be defined when calling this helper

Requires YunoHost version 3.3.1 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_backup_before_upgrade
+
Make a backup in case of failed upgrade
+
+
+
+

+ + Usage: ynh_backup_before_upgrade + ynh_clean_setup () { + ynh_restore_upgradebackup + } + ynh_abort_if_errors + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.7.2 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_restore_upgradebackup
+
Restore a previous backup if the upgrade process failed
+
+
+
+

+ + Usage: ynh_backup_before_upgrade + ynh_clean_setup () { + ynh_restore_upgradebackup + } + ynh_abort_if_errors + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.7.2 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

fail2ban

+ + + +
+
+
+
ynh_add_fail2ban_config
+
Create a dedicated fail2ban config (jail and filter conf files)
+
+
+
+

+ + Usage: 1: ynh_add_fail2ban_config --logpath=log_file --failregex=filter [--max_retry=max_retry] [--ports=ports] +2: ynh_add_fail2ban_config --use_template [--others_var="list of others variables to replace"] +| for example : 'var_1 var_2 ...' + +

+ +

+ Arguments: +

    + + +
  • -l, --logpath= : Log file to be checked by fail2ban
  • + + + +
  • -r, --failregex= : Failregex to be looked for by fail2ban
  • + + + +
  • -m, --max_retry= : Maximum number of retries allowed before banning IP address - default: 3
  • + + + +
  • -p, --ports= : Ports blocked for a banned IP address - default: http,https
  • + + + +
  • -t, --use_template : Use this helper in template mode
  • + + + +
  • -v, --others_var= : List of others variables to replace separeted by a space
  • + + +
+

+ + + + + +

+ Details: +

+ -----------------------------------------------------------------------------

This will use a template in ../conf/f2b_jail.conf and ../conf/f2b_filter.conf
__APP__ by $app

You can dynamically replace others variables by example :
__VAR_1__ by $var_1
__VAR_2__ by $var_2

Generally your template will look like that by example (for synapse):

f2b_jail.conf:
[__APP__]
enabled = true
port = http,https
filter = __APP__
logpath = /var/log/__APP__/logfile.log
maxretry = 3

f2b_filter.conf:
[INCLUDES]
before = common.conf
[Definition]

# Part of regex definition (just used to make more easy to make the global regex)
__synapse_start_line = .? \- synapse\..+ \-

# Regex definition.
failregex = ^%(__synapse_start_line)s INFO \- POST\-(\d+)\- \- \d+ \- Received request\: POST /_matrix/client/r0/login\??%(__synapse_start_line)s INFO \- POST\-\1\- Got login request with identifier: \{u'type': u'm.id.user', u'user'\: u'(.+?)'\}, medium\: None, address: None, user\: u'\5'%(__synapse_start_line)s WARNING \- \- (Attempted to login as @\5\:.+ but they do not exist|Failed password login for user @\5\:.+)$

ignoreregex =

-----------------------------------------------------------------------------

Note about the "failregex" option:
regex to match the password failure messages in the logfile. The
host must be matched by a group named "host". The tag "" can
be used for standard IP/hostname matching and is only an alias for
(?:::f{4,6}:)?(?P[\w\-.^_]+)

You can find some more explainations about how to make a regex here :
https://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Filters

Note that the logfile need to exist before to call this helper !!

To validate your regex you can test with this command:
fail2ban-regex /var/log/YOUR_LOG_FILE_PATH /etc/fail2ban/filter.d/YOUR_APP.conf

Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_remove_fail2ban_config
+
Remove the dedicated fail2ban config (jail and filter conf files)
+
+
+
+

+ + Usage: ynh_remove_fail2ban_config + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

getopts

+ + + + +

hardware

+ + + +
+
+
+
ynh_get_ram
+
Get the total or free amount of RAM+swap on the system
+
+
+
+

+ + Usage: ynh_get_ram [--free|--total] [--ignore_swap|--only_swap] + +

+ +

+ Arguments: +

    + + +
  • -f, --free : Count free RAM+swap
  • + + + +
  • -t, --total : Count total RAM+swap
  • + + + +
  • -s, --ignore_swap : Ignore swap, consider only real RAM
  • + + + +
  • -o, --only_swap : Ignore real RAM, consider only swap
  • + + +
+

+ + +

+ Returns: the amount of free ram +

+ + + + +

+ Details: +

+ Requires YunoHost version 3.8.1 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_require_ram
+
Return 0 or 1 depending if the system has a given amount of RAM+swap free or total
+
+
+
+

+ + Usage: ynh_require_ram --required=RAM required in Mb [--free|--total] [--ignore_swap|--only_swap] +| exit: Return 1 if the ram is under the requirement, 0 otherwise. + +

+ +

+ Arguments: +

    + + +
  • -r, --required= : The amount to require, in Mb
  • + + + +
  • -f, --free : Count free RAM+swap
  • + + + +
  • -t, --total : Count total RAM+swap
  • + + + +
  • -s, --ignore_swap : Ignore swap, consider only real RAM
  • + + + +
  • -o, --only_swap : Ignore real RAM, consider only swap
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.8.1 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

logging

+ + + +
+
+
+
ynh_die
+
Print a message to stderr and exit
+
+
+
+

+ + Usage: ynh_die --message=MSG [--ret_code=RETCODE] + +

+ +

+ Arguments: +

    + + +
  • -m, --message= : Message to display
  • + + + +
  • -c, --ret_code= : Exit code to exit with
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.4.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_print_info
+
Display a message in the 'INFO' logging category
+
+
+
+

+ + Usage: ynh_print_info --message="Some message" + +

+ +

+ Arguments: +

    + + +
  • -m, --message= : Message to display
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_print_warn
+
Print a warning on stderr
+
+
+
+

+ + Usage: ynh_print_warn --message="Text to print" + +

+ +

+ Arguments: +

    + + +
  • -m, --message= : The text to print
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_print_err
+
Print an error on stderr
+
+
+
+

+ + Usage: ynh_print_err --message="Text to print" + +

+ +

+ Arguments: +

    + + +
  • -m, --message= : The text to print
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_exec_err
+
Execute a command and print the result as an error
+
+
+
+

+ + Usage: ynh_exec_err your_command +ynh_exec_err "your_command | other_command" + +

+ +

+ Arguments: +

    + + +
  • command : command to execute
  • + + +
+

+ + + + + +

+ Details: +

+ When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.

If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.

Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_exec_warn
+
Execute a command and print the result as a warning
+
+
+
+

+ + Usage: ynh_exec_warn your_command +ynh_exec_warn "your_command | other_command" + +

+ +

+ Arguments: +

    + + +
  • command : command to execute
  • + + +
+

+ + + + + +

+ Details: +

+ When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.

If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.

Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_exec_warn_less
+
Execute a command and force the result to be printed on stdout
+
+
+
+

+ + Usage: ynh_exec_warn_less your_command +ynh_exec_warn_less "your_command | other_command" + +

+ +

+ Arguments: +

    + + +
  • command : command to execute
  • + + +
+

+ + + + + +

+ Details: +

+ When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.

If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.

Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_exec_quiet
+
Execute a command and redirect stdout in /dev/null
+
+
+
+

+ + Usage: ynh_exec_quiet your_command +ynh_exec_quiet "your_command | other_command" + +

+ +

+ Arguments: +

    + + +
  • command : command to execute
  • + + +
+

+ + + + + +

+ Details: +

+ When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.

If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.

Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_exec_fully_quiet
+
Execute a command and redirect stdout and stderr in /dev/null
+
+
+
+

+ + Usage: ynh_exec_fully_quiet your_command +ynh_exec_fully_quiet "your_command | other_command" + +

+ +

+ Arguments: +

    + + +
  • command : command to execute
  • + + +
+

+ + + + + +

+ Details: +

+ When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.

If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.

Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_print_OFF
+
Remove any logs for all the following commands.
+
+
+
+

+ + Usage: ynh_print_OFF + +

+ + + + + +

+ Details: +

+ WARNING: You should be careful with this helper, and never forget to use ynh_print_ON as soon as possible to restore the logging.

Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_print_ON
+
Restore the logging after ynh_print_OFF
+
+
+
+

+ + Usage: ynh_print_ON + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.2.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_script_progression
+
Print a progress bar showing the progression of an app script
+
+
+
+

+ + Usage: ynh_script_progression --message=message [--weight=weight] [--time] + +

+ +

+ Arguments: +

    + + +
  • -m, --message= : The text to print
  • + + + +
  • -w, --weight= : The weight for this progression. This value is 1 by default. Use a bigger value for a longer part of the script.
  • + + + +
  • -t, --time : Print the execution time since the last call to this helper. Especially usefull to define weights. The execution time is given for the duration since the previous call. So the weight should be applied to this previous call.
  • + + + +
  • -l, --last : Use for the last call of the helper, to fill the progression bar.
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_return
+
Return data to the Yunohost core for later processing +(to be used by special hooks like app config panel and core diagnosis)
+
+
+
+

+ + Usage: ynh_return somedata + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.6.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_debug
+
Debugger for app packagers
+
+
+
+

+ + Usage: ynh_debug [--message=message] [--trace=1/0] + +

+ +

+ Arguments: +

    + + +
  • -m, --message= : The text to print
  • + + + +
  • -t, --trace= : Turn on or off the trace of the script. Usefull to trace nonly a small part of a script.
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_debug_exec
+
Execute a command and print the result as debug
+
+
+
+

+ + Usage: ynh_debug_exec your_command +ynh_debug_exec "your_command | other_command" + +

+ +

+ Arguments: +

    + + +
  • command : command to execute
  • + + +
+

+ + + + + +

+ Details: +

+ When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.

If the command to execute uses double quotes, they have to be escaped or they will be interpreted and removed.

Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

logrotate

+ + + +
+
+
+
ynh_use_logrotate
+
Use logrotate to manage the logfile
+
+
+
+

+ + Usage: ynh_use_logrotate [--logfile=/log/file] [--nonappend] [--specific_user=user/group] + +

+ +

+ Arguments: +

    + + +
  • -l, --logfile= : absolute path of logfile
  • + + + +
  • -n, --nonappend : (optional) Replace the config file instead of appending this new config.
  • + + + +
  • -u, --specific_user= : run logrotate as the specified user and group. If not specified logrotate is runned as root.
  • + + +
+

+ + + + + +

+ Details: +

+ If no --logfile is provided, /var/log/${app} will be used as default.
logfile can be just a directory, or a full path to a logfile :
/parentdir/logdir
/parentdir/logdir/logfile.log

It's possible to use this helper multiple times, each config will be added to
the same logrotate config file. Unless you use the option --non-append

Requires YunoHost version 2.6.4 or higher.
Requires YunoHost version 3.2.0 or higher for the argument --specific_user

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_remove_logrotate
+
Remove the app's logrotate config.
+
+
+
+

+ + Usage: ynh_remove_logrotate + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

mysql

+ + + +
+
+
+
ynh_mysql_connect_as
+
Open a connection as a user
+
+
+
+

+ + Usage: ynh_mysql_connect_as --user=user --password=password [--database=database] + +

+ +

+ Arguments: +

    + + +
  • -u, --user= : the user name to connect as
  • + + + +
  • -p, --password= : the user password
  • + + + +
  • -d, --database= : the database to connect to
  • + + +
+

+ + + +

+ Example: ynh_mysql_connect_as --user="user" --password="pass" <<< "UPDATE ...;" example: ynh_mysql_connect_as --user="user" --password="pass" < /path/to/file.sql +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_mysql_execute_as_root
+
Execute a command as root user
+
+
+
+

+ + Usage: ynh_mysql_execute_as_root --sql=sql [--database=database] + +

+ +

+ Arguments: +

    + + +
  • -s, --sql= : the SQL command to execute
  • + + + +
  • -d, --database= : the database to connect to
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_mysql_execute_file_as_root
+
Execute a command from a file as root user
+
+
+
+

+ + Usage: ynh_mysql_execute_file_as_root --file=file [--database=database] + +

+ +

+ Arguments: +

    + + +
  • -f, --file= : the file containing SQL commands
  • + + + +
  • -d, --database= : the database to connect to
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_mysql_dump_db
+
Dump a database
+
+
+
+

+ + Usage: ynh_mysql_dump_db --database=database + +

+ +

+ Arguments: +

    + + +
  • -d, --database= : the database name to dump
  • + + +
+

+ + +

+ Returns: the mysqldump output +

+ + +

+ Example: ynh_mysql_dump_db --database=roundcube > ./dump.sql +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_mysql_user_exists
+
Check if a mysql user exists
+
+
+
+

+ + Usage: ynh_mysql_user_exists --user=user +| exit: Return 1 if the user doesn't exist, 0 otherwise. + +

+ +

+ Arguments: +

    + + +
  • -u, --user= : the user for which to check existence
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_mysql_setup_db
+
Create a database, an user and its password. Then store the password in the app's config
+
+
+
+

+ + Usage: ynh_mysql_setup_db --db_user=user --db_name=name [--db_pwd=pwd] + +

+ +

+ Arguments: +

    + + +
  • -u, --db_user= : Owner of the database
  • + + + +
  • -n, --db_name= : Name of the database
  • + + + +
  • -p, --db_pwd= : Password of the database. If not provided, a password will be generated
  • + + +
+

+ + + + + +

+ Details: +

+ After executing this helper, the password of the created database will be available in $db_pwd
It will also be stored as "mysqlpwd" into the app settings.

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_mysql_remove_db
+
Remove a database if it exists, and the associated user
+
+
+
+

+ + Usage: ynh_mysql_remove_db --db_user=user --db_name=name + +

+ +

+ Arguments: +

    + + +
  • -u, --db_user= : Owner of the database
  • + + + +
  • -n, --db_name= : Name of the database
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

network

+ + + +
+
+
+
ynh_find_port
+
Find a free port and return it
+
+
+
+

+ + Usage: ynh_find_port --port=begin_port + +

+ +

+ Arguments: +

    + + +
  • -p, --port= : port to start to search
  • + + +
+

+ + +

+ Returns: the port number +

+ + +

+ Example: port=$(ynh_find_port --port=8080) +

+ + + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_port_available
+
Test if a port is available
+
+
+
+

+ + Usage: ynh_find_port --port=XYZ +| exit: Return 1 if the port is already used by another process. + +

+ +

+ Arguments: +

    + + +
  • -p, --port= : port to check
  • + + +
+

+ + + +

+ Example: ynh_port_available --port=1234 || ynh_die "Port 1234 is needs to be available for this app" +

+ + + +

+ Details: +

+ Requires YunoHost version 3.8.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_validate_ip4
+
Validate an IPv4 address
+
+
+
+

+ + Usage: ynh_validate_ip4 --ip_address=ip_address + +

+ +

+ Arguments: +

    + + +
  • -i, --ip_address= : the ipv4 address to check
  • + + +
+

+ + +

+ Returns: 0 for valid ipv4 addresses, 1 otherwise +

+ + +

+ Example: ynh_validate_ip4 111.222.333.444 +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_validate_ip6
+
Validate an IPv6 address
+
+
+
+

+ + Usage: ynh_validate_ip6 --ip_address=ip_address + +

+ +

+ Arguments: +

    + + +
  • -i, --ip_address= : the ipv6 address to check
  • + + +
+

+ + +

+ Returns: 0 for valid ipv6 addresses, 1 otherwise +

+ + +

+ Example: ynh_validate_ip6 2000:dead:beef::1 +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

nginx

+ + + +
+
+
+
ynh_add_nginx_config
+
Create a dedicated nginx config
+
+
+
+

+ + Usage: ynh_add_nginx_config "list of others variables to replace" + +

+ +

+ Arguments: +

    + + +
  • list : (Optional) list of others variables to replace separated by spaces. For example : 'path_2 port_2 ...'
  • + + +
+

+ + + + + +

+ Details: +

+ This will use a template in ../conf/nginx.conf
__PATH__ by $path_url
__DOMAIN__ by $domain
__PORT__ by $port
__NAME__ by $app
__FINALPATH__ by $final_path
__PHPVERSION__ by $YNH_PHP_VERSION ($YNH_PHP_VERSION is either the default php version or the version defined for the app)

And dynamic variables (from the last example) :
__PATH_2__ by $path_2
__PORT_2__ by $port_2

Requires YunoHost version 2.7.2 or higher.
Requires YunoHost version 2.7.13 or higher for dynamic variables

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_remove_nginx_config
+
Remove the dedicated nginx config
+
+
+
+

+ + Usage: ynh_remove_nginx_config + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.7.2 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

nodejs

+ + + +
+
+
+
ynh_use_nodejs
+
Load the version of node for an app, and set variables.
+
+
+
+

+ + Usage: ynh_use_nodejs + +

+ + + + + +

+ Details: +

+ ynh_use_nodejs has to be used in any app scripts before using node for the first time.
This helper will provide alias and variables to use in your scripts.

To use npm or node, use the alias `ynh_npm` and `ynh_node`
Those alias will use the correct version installed for the app
For example: use `ynh_npm install` instead of `npm install`

With `sudo` or `ynh_exec_as`, use instead the fallback variables `$ynh_npm` and `$ynh_node`
And propagate $PATH to sudo with $ynh_node_load_PATH
Exemple: `ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install`

$PATH contains the path of the requested version of node.
However, $PATH is duplicated into $node_PATH to outlast any manipulation of $PATH
You can use the variable `$ynh_node_load_PATH` to quickly load your node version
in $PATH for an usage into a separate script.
Exemple: $ynh_node_load_PATH $final_path/script_that_use_npm.sh`

Finally, to start a nodejs service with the correct version, 2 solutions
Either the app is dependent of node or npm, but does not called it directly.
In such situation, you need to load PATH
`Environment="__NODE_ENV_PATH__"`
`ExecStart=__FINALPATH__/my_app`
You will replace __NODE_ENV_PATH__ with $ynh_node_load_PATH

Or node start the app directly, then you don't need to load the PATH variable
`ExecStart=__YNH_NODE__ my_app run`
You will replace __YNH_NODE__ with $ynh_node

2 other variables are also available
- $nodejs_path: The absolute path to node binaries for the chosen version.
- $nodejs_version: Just the version number of node for this app. Stored as 'nodejs_version' in settings.yml.

Requires YunoHost version 2.7.12 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_install_nodejs
+
Install a specific version of nodejs
+
+
+
+

+ + Usage: ynh_install_nodejs --nodejs_version=nodejs_version + +

+ +

+ Arguments: +

    + + +
  • -n, --nodejs_version= : Version of node to install. When possible, your should prefer to use major version number (e.g. 8 instead of 8.10.0). The crontab will then handle the update of minor versions when needed.
  • + + +
+

+ + + + + +

+ Details: +

+ ynh_install_nodejs will install the version of node provided as argument by using n.

n (Node version management) uses the PATH variable to store the path of the version of node it is going to use.
That's how it changes the version

Refer to ynh_use_nodejs for more information about available commands and variables

Requires YunoHost version 2.7.12 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_remove_nodejs
+
Remove the version of node used by the app.
+
+
+
+

+ + Usage: ynh_remove_nodejs + +

+ + + + + +

+ Details: +

+ This helper will check if another app uses the same version of node,
if not, this version of node will be removed.
If no other app uses node, n will be also removed.

Requires YunoHost version 2.7.12 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

permission

+ + + +
+
+
+
ynh_permission_create
+
Create a new permission for the app
+
+
+
+

+ + Usage: ynh_permission_create --permission="permission" [--url="url"] [--additional_urls="second-url" [ "third-url" ]] [--auth_header=true|false] + [--allowed=group1 [ group2 ]] [--label="label"] [--show_tile=true|false] + [--protected=true|false] +| Not that if 'show_tile' is enabled, this URL will be the URL of the tile. +| Default is "APP_LABEL (permission name)". +| Default is false (for the permission different than 'main'). +| won't be able to add or remove the visitors group of this permission. +| By default it's 'false' + +

+ +

+ Arguments: +

    + + +
  • -p, : - the name for the permission (by default a permission named "main" already exist)
  • + + + +
  • -u, : - (optional) URL for which access will be allowed/forbidden.
  • + + + +
  • -A, : - (optional) List of additional URL for which access will be allowed/forbidden
  • + + + +
  • -h, : - (optional) Define for the URL of this permission, if SSOwat pass the authentication header to the application. Default is true
  • + + + +
  • -a, : - (optional) A list of group/user to allow for the permission
  • + + + +
  • -l, : - (optional) Define a name for the permission. This label will be shown on the SSO and in the admin.
  • + + + +
  • -t, : - (optional) Define if a tile will be shown in the SSO. If yes the name of the tile will be the 'label' parameter.
  • + + + +
  • -P, : - (optional) Define if this permission is protected. If it is protected the administrator
  • + + +
+

+ + + + + +

+ Details: +

+ example 1: ynh_permission_create --permission=admin --url=/admin --additional_urls=domain.tld/admin /superadmin --allowed=alice bob \
--label="My app admin" --show_tile=true

This example will create a new permission permission with this following effect:
- A tile named "My app admin" in the SSO will be available for the users alice and bob. This tile will point to the relative url '/admin'.
- Only the user alice and bob will have the access to theses following url: /admin, domain.tld/admin, /superadmin

example 2: ynh_permission_create --permission=api --url=domain.tld/api --auth_header=false --allowed=visitors \
--label="MyApp API" --protected=true

This example will create a new protected permission. So the admin won't be able to add/remove the visitors group of this permission.
In case of an API with need to be always public it avoid that the admin break anything.
With this permission all client will be allowed to access to the url 'domain.tld/api'.
Note that in this case no tile will be show on the SSO.
Note that the auth_header parameter is to 'false'. So no authentication header will be passed to the application.
Generally the API is requested by an application and enabling the auth_header has no advantage and could bring some issues in some case.
So in this case it's better to disable this option for all API.

If provided, 'url' or 'additional_urls' is assumed to be relative to the app domain/path if they
start with '/'. For example:
/ -> domain.tld/app
/admin -> domain.tld/app/admin
domain.tld/app/api -> domain.tld/app/api

'url' or 'additional_urls' can be treated as a PCRE (not lua) regex if it starts with "re:".
For example:
re:/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$
re:domain.tld/app/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$

Note that globally the parameter 'url' and 'additional_urls' are same. The only difference is:
- 'url' is only one url, 'additional_urls' can be a list of urls. There are no limitation of 'additional_urls'
- 'url' is used for the url of tile in the SSO (if enabled with the 'show_tile' parameter)

About the authentication header (auth_header parameter).
The SSO pass (by default) to the application theses following HTTP header (linked to the authenticated user) to the application:
- "Auth-User": username
- "Remote-User": username
- "Email": user email

Generally this feature is usefull to authenticate automatically the user in the application but in some case the application don't work with theses header and theses header need to be disabled to have the application to work correctly.
See https://github.com/YunoHost/issues/issues/1420 for more informations

Requires YunoHost version 3.7.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_permission_delete
+
Remove a permission for the app (note that when the app is removed all permission is automatically removed)
+
+
+
+

+ + Usage: ynh_permission_delete --permission="permission" + +

+ +

+ Arguments: +

    + + +
  • -p, --permission= : the name for the permission (by default a permission named "main" is removed automatically when the app is removed)
  • + + +
+

+ + + +

+ Example: ynh_permission_delete --permission=editors +

+ + + +

+ Details: +

+ Requires YunoHost version 3.7.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_permission_exists
+
Check if a permission exists
+
+
+
+

+ + Usage: ynh_permission_exists --permission=permission +| exit: Return 1 if the permission doesn't exist, 0 otherwise + +

+ +

+ Arguments: +

    + + +
  • -p, --permission= : the permission to check
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.7.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_permission_url
+
Redefine the url associated to a permission
+
+
+
+

+ + Usage: ynh_permission_url --permission "permission" [--url="url"] [--add_url="new-url" [ "other-new-url" ]] [--remove_url="old-url" [ "other-old-url" ]] + [--auth_header=true|false] [--clear_urls] +| Note that if you want to remove url you can pass an empty sting as arguments (""). + +

+ +

+ Arguments: +

    + + +
  • -p, : - the name for the permission (by default a permission named "main" is removed automatically when the app is removed)
  • + + + +
  • -u, : - (optional) URL for which access will be allowed/forbidden.
  • + + + +
  • -a, : - (optional) List of additional url to add for which access will be allowed/forbidden.
  • + + + +
  • -r, : - (optional) List of additional url to remove for which access will be allowed/forbidden
  • + + + +
  • -h, : - (optional) Define for the URL of this permission, if SSOwat pass the authentication header to the application
  • + + + +
  • -c, : - (optional) Clean all urls (url and additional_urls)
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.7.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_permission_update
+
Update a permission for the app
+
+
+
+

+ + Usage: ynh_permission_update --permission "permission" [--add="group" ["group" ...]] [--remove="group" ["group" ...]] + [--label="label"] [--show_tile=true|false] [--protected=true|false] +| won't be able to add or remove the visitors group of this permission. + +

+ +

+ Arguments: +

    + + +
  • -p, : - the name for the permission (by default a permission named "main" already exist)
  • + + + +
  • -a, : - the list of group or users to enable add to the permission
  • + + + +
  • -r, : - the list of group or users to remove from the permission
  • + + + +
  • -l, : - (optional) Define a name for the permission. This label will be shown on the SSO and in the admin.
  • + + + +
  • -t, : - (optional) Define if a tile will be shown in the SSO
  • + + + +
  • -P, : - (optional) Define if this permission is protected. If it is protected the administrator
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.7.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_permission_has_user
+
Check if a permission has an user
+
+
+
+

+ + Usage: ynh_permission_has_user --permission=permission --user=user +| exit: Return 1 if the permission doesn't have that user or doesn't exist, 0 otherwise + +

+ +

+ Arguments: +

    + + +
  • -p, --permission= : the permission to check
  • + + + +
  • -u, --user= : the user seek in the permission
  • + + +
+

+ + + +

+ Example: ynh_permission_has_user --permission=main --user=visitors +

+ + + +

+ Details: +

+ Requires YunoHost version 3.7.1 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_legacy_permissions_exists
+
Check if a legacy permissions exist
+
+
+
+

+ + Usage: ynh_legacy_permissions_exists +| exit: Return 1 if the permission doesn't exist, 0 otherwise + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 4.1.2 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_legacy_permissions_delete_all
+
Remove all legacy permissions
+
+
+
+

+ + Usage: ynh_legacy_permissions_delete_all + +

+ + + +

+ Example: if ynh_legacy_permissions_exists then ynh_legacy_permissions_delete_all # You can recreate the required permissions here with ynh_permission_create fi Requires YunoHost version 4.1.2 or higher. +

+ + + +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

php

+ + + +
+
+
+
ynh_add_fpm_config
+
Create a dedicated PHP-FPM config
+
+
+
+

+ + Usage: 1: ynh_add_fpm_config [--phpversion=7.X] [--use_template] [--package=packages] [--dedicated_service] +2: ynh_add_fpm_config [--phpversion=7.X] --usage=usage --footprint=footprint [--package=packages] [--dedicated_service] +low - Less than 20 MB of RAM by pool. +medium - Between 20 MB and 40 MB of RAM by pool. +high - More than 40 MB of RAM by pool. +Or specify exactly the footprint, the load of the service as MB by pool instead of having a standard value. +To have this value, use the following command and stress the service. +watch -n0.5 ps -o user,cmd,%cpu,rss -u APP + +

+ +

+ Arguments: +

    + + +
  • -v, --phpversion= : Version of PHP to use.
  • + + + +
  • -t, --use_template : Use this helper in template mode.
  • + + + +
  • -p, --package= : Additionnal PHP packages to install
  • + + + +
  • -d, --dedicated_service : Use a dedicated PHP-FPM service instead of the common one.
  • + + + +
  • -v, --phpversion= : Version of PHP to use.
  • + + + +
  • -f, --footprint= : Memory footprint of the service (low/medium/high).
  • + + + +
  • -u, --usage= : Expected usage of the service (low/medium/high).
  • + + + +
  • -p, --package= : Additionnal PHP packages to install for a specific version of PHP
  • + + + +
  • -d, --dedicated_service : Use a dedicated PHP-FPM service instead of the common one.
  • + + +
+

+ + + + + +

+ Details: +

+ -----------------------------------------------------------------------------

The footprint of the service will be used to defined the maximum footprint we can allow, which is half the maximum RAM.
So it will be used to defined 'pm.max_children'
A lower value for the footprint will allow more children for 'pm.max_children'. And so for
'pm.start_servers', 'pm.min_spare_servers' and 'pm.max_spare_servers' which are defined from the
value of 'pm.max_children'
NOTE: 'pm.max_children' can't exceed 4 times the number of processor's cores.

The usage value will defined the way php will handle the children for the pool.
A value set as 'low' will set the process manager to 'ondemand'. Children will start only if the
service is used, otherwise no child will stay alive. This config gives the lower footprint when the
service is idle. But will use more proc since it has to start a child as soon it's used.
Set as 'medium', the process manager will be at dynamic. If the service is idle, a number of children
equal to pm.min_spare_servers will stay alive. So the service can be quick to answer to any request.
The number of children can grow if needed. The footprint can stay low if the service is idle, but
not null. The impact on the proc is a little bit less than 'ondemand' as there's always a few
children already available.
Set as 'high', the process manager will be set at 'static'. There will be always as many children as
'pm.max_children', the footprint is important (but will be set as maximum a quarter of the maximum
RAM) but the impact on the proc is lower. The service will be quick to answer as there's always many
children ready to answer.

Requires YunoHost version 2.7.2 or higher.
Requires YunoHost version 3.5.1 or higher for the argument --phpversion
Requires YunoHost version 3.8.1 or higher for the arguments --use_template, --usage, --footprint, --package and --dedicated_service

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_remove_fpm_config
+
Remove the dedicated PHP-FPM config
+
+
+
+

+ + Usage: ynh_remove_fpm_config + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.7.2 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

postgresql

+ + + +
+
+
+
ynh_psql_connect_as
+
Open a connection as a user
+
+
+
+

+ + Usage: ynh_psql_connect_as --user=user --password=password [--database=database] + +

+ +

+ Arguments: +

    + + +
  • -u, --user= : the user name to connect as
  • + + + +
  • -p, --password= : the user password
  • + + + +
  • -d, --database= : the database to connect to
  • + + +
+

+ + + + +

+ Examples:

    + + + ynh_psql_connect_as 'user' 'pass' <<< "UPDATE ...;" + +
    + + + ynh_psql_connect_as 'user' 'pass' < /path/to/file.sql + +
    + +
+

+ + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_psql_execute_as_root
+
Execute a command as root user
+
+
+
+

+ + Usage: ynh_psql_execute_as_root --sql=sql [--database=database] + +

+ +

+ Arguments: +

    + + +
  • -s, --sql= : the SQL command to execute
  • + + + +
  • -d, --database= : the database to connect to
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_psql_execute_file_as_root
+
Execute a command from a file as root user
+
+
+
+

+ + Usage: ynh_psql_execute_file_as_root --file=file [--database=database] + +

+ +

+ Arguments: +

    + + +
  • -f, --file= : the file containing SQL commands
  • + + + +
  • -d, --database= : the database to connect to
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_psql_dump_db
+
Dump a database
+
+
+
+

+ + Usage: ynh_psql_dump_db --database=database + +

+ +

+ Arguments: +

    + + +
  • -d, --database= : the database name to dump
  • + + +
+

+ + +

+ Returns: the psqldump output +

+ + +

+ Example: ynh_psql_dump_db 'roundcube' > ./dump.sql +

+ + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_psql_user_exists
+
Check if a psql user exists
+
+
+
+

+ + Usage: ynh_psql_user_exists --user=user +| exit: Return 1 if the user doesn't exist, 0 otherwise + +

+ +

+ Arguments: +

    + + +
  • -u, --user= : the user for which to check existence
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_psql_database_exists
+
Check if a psql database exists
+
+
+
+

+ + Usage: ynh_psql_database_exists --database=database +| exit: Return 1 if the database doesn't exist, 0 otherwise + +

+ +

+ Arguments: +

    + + +
  • -d, --database= : the database for which to check existence
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_psql_setup_db
+
Create a database, an user and its password. Then store the password in the app's config
+
+
+
+

+ + Usage: ynh_psql_setup_db --db_user=user --db_name=name [--db_pwd=pwd] + +

+ +

+ Arguments: +

    + + +
  • -u, --db_user= : Owner of the database
  • + + + +
  • -n, --db_name= : Name of the database
  • + + + +
  • -p, --db_pwd= : Password of the database. If not provided, a password will be generated
  • + + +
+

+ + + + + +

+ Details: +

+ After executing this helper, the password of the created database will be available in $db_pwd
It will also be stored as "psqlpwd" into the app settings.

Requires YunoHost version 2.7.13 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_psql_remove_db
+
Remove a database if it exists, and the associated user
+
+
+
+

+ + Usage: ynh_psql_remove_db --db_user=user --db_name=name + +

+ +

+ Arguments: +

    + + +
  • -u, --db_user= : Owner of the database
  • + + + +
  • -n, --db_name= : Name of the database
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.7.13 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_psql_test_if_first_run
+
Create a master password and set up global settings +It also make sure that postgresql is installed and running +Please always call this script in install and restore scripts
+
+
+
+

+ + Usage: ynh_psql_test_if_first_run + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.7.13 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

setting

+ + + +
+
+
+
ynh_app_setting_get
+
Get an application setting
+
+
+
+

+ + Usage: ynh_app_setting_get --app=app --key=key + +

+ +

+ Arguments: +

    + + +
  • -a, --app= : the application id
  • + + + +
  • -k, --key= : the setting to get
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_app_setting_set
+
Set an application setting
+
+
+
+

+ + Usage: ynh_app_setting_set --app=app --key=key --value=value + +

+ +

+ Arguments: +

    + + +
  • -a, --app= : the application id
  • + + + +
  • -k, --key= : the setting name to set
  • + + + +
  • -v, --value= : the setting value to set
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_app_setting_delete
+
Delete an application setting
+
+
+
+

+ + Usage: ynh_app_setting_delete --app=app --key=key + +

+ +

+ Arguments: +

    + + +
  • -a, --app= : the application id
  • + + + +
  • -k, --key= : the setting to delete
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_webpath_available
+
Check availability of a web path
+
+
+
+

+ + Usage: ynh_webpath_available --domain=domain --path_url=path + +

+ +

+ Arguments: +

    + + +
  • -d, --domain= : the domain/host of the url
  • + + + +
  • -p, --path_url= : the web path to check the availability of
  • + + +
+

+ + + +

+ Example: ynh_webpath_available --domain=some.domain.tld --path_url=/coffee +

+ + + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_webpath_register
+
Register/book a web path for an app
+
+
+
+

+ + Usage: ynh_webpath_register --app=app --domain=domain --path_url=path + +

+ +

+ Arguments: +

    + + +
  • -a, --app= : the app for which the domain should be registered
  • + + + +
  • -d, --domain= : the domain/host of the web path
  • + + + +
  • -p, --path_url= : the web path to be registered
  • + + +
+

+ + + +

+ Example: ynh_webpath_register --app=wordpress --domain=some.domain.tld --path_url=/coffee +

+ + + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

string

+ + + +
+
+
+
ynh_string_random
+
Generate a random string
+
+
+
+

+ + Usage: ynh_string_random [--length=string_length] + +

+ +

+ Arguments: +

    + + +
  • -l, --length= : the string length to generate (default: 24)
  • + + +
+

+ + +

+ Returns: the generated string +

+ + +

+ Example: pwd=$(ynh_string_random --length=8) +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_replace_string
+
Substitute/replace a string (or expression) by another in a file
+
+
+
+

+ + Usage: ynh_replace_string --match_string=match_string --replace_string=replace_string --target_file=target_file + +

+ +

+ Arguments: +

    + + +
  • -m, --match_string= : String to be searched and replaced in the file
  • + + + +
  • -r, --replace_string= : String that will replace matches
  • + + + +
  • -f, --target_file= : File in which the string will be replaced.
  • + + +
+

+ + + + + +

+ Details: +

+ As this helper is based on sed command, regular expressions and
references to sub-expressions can be used
(see sed manual page for more information)

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_replace_special_string
+
Substitute/replace a special string by another in a file
+
+
+
+

+ + Usage: ynh_replace_special_string --match_string=match_string --replace_string=replace_string --target_file=target_file + +

+ +

+ Arguments: +

    + + +
  • -m, --match_string= : String to be searched and replaced in the file
  • + + + +
  • -r, --replace_string= : String that will replace matches
  • + + + +
  • -t, --target_file= : File in which the string will be replaced.
  • + + +
+

+ + + + + +

+ Details: +

+ This helper will use ynh_replace_string, but as you can use special
characters, you can't use some regular expressions and sub-expressions.

Requires YunoHost version 2.7.7 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_sanitize_dbid
+
Sanitize a string intended to be the name of a database +(More specifically : replace - and . by _)
+
+
+
+

+ + Usage: ynh_sanitize_dbid --db_name=name + +

+ +

+ Arguments: +

    + + +
  • -n, --db_name= : name to correct/sanitize
  • + + +
+

+ + +

+ Returns: the corrected name +

+ + +

+ Example: dbname=$(ynh_sanitize_dbid $app) +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

systemd

+ + + +
+
+
+
ynh_add_systemd_config
+
Create a dedicated systemd config
+
+
+
+

+ + Usage: ynh_add_systemd_config [--service=service] [--template=template] +ynh_add_systemd_config [--service=service] [--template=template] [--others_var="list of others variables to replace"] + +

+ +

+ Arguments: +

    + + +
  • -s, --service= : Service name (optionnal, $app by default)
  • + + + +
  • -t, --template= : Name of template file (optionnal, this is 'systemd' by default, meaning ./conf/systemd.service will be used as template)
  • + + + +
  • -v, --others_var= : List of others variables to replace separated by a space. For example: 'var_1 var_2 ...'
  • + + +
+

+ + + + + +

+ Details: +

+ This will use the template ../conf/.service
to generate a systemd config, by replacing the following keywords
with global variables that should be defined before calling
this helper :

__APP__ by $app
__FINALPATH__ by $final_path

And dynamic variables (from the last example) :
__VAR_1__ by $var_1
__VAR_2__ by $var_2

Requires YunoHost version 2.7.11 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_remove_systemd_config
+
Remove the dedicated systemd config
+
+
+
+

+ + Usage: ynh_remove_systemd_config [--service=service] + +

+ +

+ Arguments: +

    + + +
  • -s, --service= : Service name (optionnal, $app by default)
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.7.2 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_systemd_action
+
Start (or other actions) a service, print a log in case of failure and optionnaly wait until the service is completely started
+
+
+
+

+ + Usage: ynh_systemd_action [--service_name=service_name] [--action=action] [ [--line_match="line to match"] [--log_path=log_path] [--timeout=300] [--length=20] ] + +

+ +

+ Arguments: +

    + + +
  • -n, --service_name= : Name of the service to start. Default : $app
  • + + + +
  • -a, --action= : Action to perform with systemctl. Default: start
  • + + + +
  • -l, --line_match= : Line to match - The line to find in the log to attest the service have finished to boot. If not defined it don't wait until the service is completely started. WARNING: When using --line_match, you should always add `ynh_clean_check_starting` into your `ynh_clean_setup` at the beginning of the script. Otherwise, tail will not stop in case of failure of the script. The script will then hang forever.
  • + + + +
  • -p, --log_path= : Log file - Path to the log file. Default : /var/log/$app/$app.log
  • + + + +
  • -t, --timeout= : Timeout - The maximum time to wait before ending the watching. Default : 300 seconds.
  • + + + +
  • -e, --length= : Length of the error log : Default : 20
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_clean_check_starting
+
Clean temporary process and file used by ynh_check_starting +(usually used in ynh_clean_setup scripts)
+
+
+
+

+ + Usage: ynh_clean_check_starting + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

user

+ + + +
+
+
+
ynh_user_exists
+
Check if a YunoHost user exists
+
+
+
+

+ + Usage: ynh_user_exists --username=username +| exit: Return 1 if the user doesn't exist, 0 otherwise + +

+ +

+ Arguments: +

    + + +
  • -u, --username= : the username to check
  • + + +
+

+ + + +

+ Example: ynh_user_exists 'toto' || exit 1 +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_user_get_info
+
Retrieve a YunoHost user information
+
+
+
+

+ + Usage: ynh_user_get_info --username=username --key=key + +

+ +

+ Arguments: +

    + + +
  • -u, --username= : the username to retrieve info from
  • + + + +
  • -k, --key= : the key to retrieve
  • + + +
+

+ + +

+ Returns: string - the key's value +

+ + +

+ Example: mail=$(ynh_user_get_info 'toto' 'mail') +

+ + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_user_list
+
Get the list of YunoHost users
+
+
+
+

+ + Usage: ynh_user_list + +

+ + +

+ Returns: string - one username per line +

+ + +

+ Example: for u in $(ynh_user_list); do ... +

+ + + +

+ Details: +

+ Requires YunoHost version 2.4.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_system_user_exists
+
Check if a user exists on the system
+
+
+
+

+ + Usage: ynh_system_user_exists --username=username +| exit: Return 1 if the user doesn't exist, 0 otherwise + +

+ +

+ Arguments: +

    + + +
  • -u, --username= : the username to check
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.2.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_system_group_exists
+
Check if a group exists on the system
+
+
+
+

+ + Usage: ynh_system_group_exists --group=group +| exit: Return 1 if the group doesn't exist, 0 otherwise + +

+ +

+ Arguments: +

    + + +
  • -g, --group= : the group to check
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 3.5.0.2 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_system_user_create
+
Create a system user
+
+
+
+

+ + Usage: ynh_system_user_create --username=user_name [--home_dir=home_dir] [--use_shell] + +

+ +

+ Arguments: +

    + + +
  • -u, --username= : Name of the system user that will be create
  • + + + +
  • -h, --home_dir= : Path of the home dir for the user. Usually the final path of the app. If this argument is omitted, the user will be created without home
  • + + + +
  • -s, --use_shell : Create a user using the default login shell if present. If this argument is omitted, the user will be created with /usr/sbin/nologin shell
  • + + +
+

+ + + + +

+ Examples:

    + + + Create a nextcloud user with no home directory and /usr/sbin/nologin login shell (hence no login capability) + +
    + + + ynh_system_user_create --username=nextcloud + +
    + + + Create a discourse user using /var/www/discourse as home directory and the default login shell + +
    + + + ynh_system_user_create --username=discourse --home_dir=/var/www/discourse --use_shell + +
    + +
+

+ + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_system_user_delete
+
Delete a system user
+
+
+
+

+ + Usage: ynh_system_user_delete --username=user_name + +

+ +

+ Arguments: +

    + + +
  • -u, --username= : Name of the system user that will be create
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_exec_as
+
Execute a command as another user
+
+
+
+

+ + Usage: ynh_exec_as $USER COMMAND [ARG ...] + +

+ + + + + +

+ Details: +

+ Requires YunoHost version 4.1.7 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + +

utils

+ + + +
+
+
+
ynh_abort_if_errors
+
Exits if an error occurs during the execution of the script.
+
+
+
+

+ + Usage: ynh_abort_if_errors + +

+ + + + + +

+ Details: +

+ This configure the rest of the script execution such that, if an error occurs
or if an empty variable is used, the execution of the script stops
immediately and a call to `ynh_clean_setup` is triggered if it has been
defined by your script.

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_setup_source
+
Download, check integrity, uncompress and patch the source from app.src
+
+
+
+

+ + Usage: ynh_setup_source --dest_dir=dest_dir [--source_id=source_id] + +

+ +

+ Arguments: +

    + + +
  • -d, --dest_dir= : Directory where to setup sources
  • + + + +
  • -s, --source_id= : Name of the app, if the package contains more than one app
  • + + +
+

+ + + + + +

+ Details: +

+ The file conf/app.src need to contains:

SOURCE_URL=Address to download the app archive
SOURCE_SUM=Control sum
# (Optional) Program to check the integrity (sha256sum, md5sum...)
# default: sha256
SOURCE_SUM_PRG=sha256
# (Optional) Archive format
# default: tar.gz
SOURCE_FORMAT=tar.gz
# (Optional) Put false if sources are directly in the archive root
# default: true
# Instead of true, SOURCE_IN_SUBDIR could be the number of sub directories
# to remove.
SOURCE_IN_SUBDIR=false
# (Optionnal) Name of the local archive (offline setup support)
# default: ${src_id}.${src_format}
SOURCE_FILENAME=example.tar.gz
# (Optional) If it set as false don't extract the source.
# (Useful to get a debian package or a python wheel.)
# default: true
SOURCE_EXTRACT=(true|false)

Details:
This helper downloads sources from SOURCE_URL if there is no local source
archive in /opt/yunohost-apps-src/APP_ID/SOURCE_FILENAME

Next, it checks the integrity with "SOURCE_SUM_PRG -c --status" command.

If it's ok, the source archive will be uncompressed in $dest_dir. If the
SOURCE_IN_SUBDIR is true, the first level directory of the archive will be
removed.
If SOURCE_IN_SUBDIR is a numeric value, 2 for example, the 2 first level
directories will be removed

Finally, patches named sources/patches/${src_id}-*.patch and extra files in
sources/extra_files/$src_id will be applied to dest_dir

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_local_curl
+
Curl abstraction to help with POST requests to local pages (such as installation forms)
+
+
+
+

+ + Usage: ynh_local_curl "page_uri" "key1=value1" "key2=value2" ... + +

+ +

+ Arguments: +

    + + +
  • page_uri : Path (relative to $path_url) of the page where POST data will be sent
  • + + + +
  • key1=value1 : (Optionnal) POST key and corresponding value
  • + + + +
  • key2=value2 : (Optionnal) Another POST key and corresponding value
  • + + + +
  • ... : (Optionnal) More POST keys and values
  • + + +
+

+ + + +

+ Example: ynh_local_curl "/install.php?installButton" "foo=$var1" "bar=$var2" +

+ + + +

+ Details: +

+ For multiple calls, cookies are persisted between each call for the same app

$domain and $path_url should be defined externally (and correspond to the domain.tld and the /path (of the app?))

Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_add_config
+
Create a dedicated config file from a template
+
+
+
+

+ + Usage: ynh_add_config --template="template" --destination="destination" + +

+ +

+ Arguments: +

    + + +
  • -t, --template= : Template config file to use
  • + + + +
  • -d, --destination= : Destination of the config file
  • + + +
+

+ + + + +

+ Examples:

    + + + ynh_add_config --template=".env" --destination="$final_path/.env" + +
    + + + ynh_add_config --template="../conf/.env" --destination="$final_path/.env" + +
    + + + ynh_add_config --template="/etc/nginx/sites-available/default" --destination="etc/nginx/sites-available/mydomain.conf" + +
    + +
+

+ + +

+ Details: +

+ The template can be by default the name of a file in the conf directory
of a YunoHost Package, a relative path or an absolute path
The helper will use the template $template to generate a config file
$destination by replacing the following keywords with global variables
that should be defined before calling this helper :
__PATH__ by $path_url
__NAME__ by $app
__NAMETOCHANGE__ by $app
__USER__ by $app
__FINALPATH__ by $final_path
__PHPVERSION__ by $YNH_PHP_VERSION
__YNH_NODE_LOAD_PATH__ by $ynh_node_load_PATH

And any dynamic variables that should be defined before calling this helper like:
__DOMAIN__ by $domain
__APP__ by $app
__VAR_1__ by $var_1
__VAR_2__ by $var_2

The helper will verify the checksum and backup the destination file
if it's different before applying the new template.
And it will calculate and store the destination file checksum
into the app settings when configuration is done.

Requires YunoHost version 4.1.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_get_debian_release
+
Fetch the Debian release codename
+
+
+
+

+ + Usage: ynh_get_debian_release + +

+ + +

+ Returns: The Debian release codename (i.e. jessie, stretch, ...) +

+ + + + +

+ Details: +

+ Requires YunoHost version 2.7.12 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_secure_remove
+
Remove a file or a directory securely
+
+
+
+

+ + Usage: ynh_secure_remove --file=path_to_remove + +

+ +

+ Arguments: +

    + + +
  • -f, --file= : File or directory to remove
  • + + +
+

+ + + + + +

+ Details: +

+ Requires YunoHost version 2.6.4 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_read_manifest
+
Read the value of a key in a ynh manifest file
+
+
+
+

+ + Usage: ynh_read_manifest --manifest="manifest.json" --key="key" + +

+ +

+ Arguments: +

    + + +
  • -m, --manifest= : Path of the manifest to read
  • + + + +
  • -k, --key= : Name of the key to find
  • + + +
+

+ + +

+ Returns: the value associate to that key +

+ + + + +

+ Details: +

+ Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_app_upstream_version
+
Read the upstream version from the manifest, or from the env variable $YNH_APP_MANIFEST_VERSION if not given
+
+
+
+

+ + Usage: ynh_app_upstream_version [--manifest="manifest.json"] + +

+ +

+ Arguments: +

    + + +
  • -m, --manifest= : Path of the manifest to read
  • + + +
+

+ + +

+ Returns: the version number of the upstream app +

+ + + + +

+ Details: +

+ The version number in the manifest is defined by ~ynh
For example : 4.3-2~ynh3
This include the number before ~ynh
In the last example it return 4.3-2

Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_app_package_version
+
Read package version from the manifest
+
+
+
+

+ + Usage: ynh_app_package_version [--manifest="manifest.json"] + +

+ +

+ Arguments: +

    + + +
  • -m, --manifest= : Path of the manifest to read
  • + + +
+

+ + +

+ Returns: the version number of the package +

+ + + + +

+ Details: +

+ The version number in the manifest is defined by ~ynh
For example : 4.3-2~ynh3
This include the number after ~ynh
In the last example it return 3

Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_check_app_version_changed
+
Checks the app version to upgrade with the existing app version and returns:
+
+
+
+

+ + Usage: ynh_check_app_version_changed + +

+ + + + + +

+ Details: +

+ - UPGRADE_PACKAGE if only the YunoHost package has changed
- UPGRADE_APP otherwise

This helper should be used to avoid an upgrade of an app, or the upstream part
of it, when it's not needed

To force an upgrade, even if the package is up to date,
you have to use the parameter --force (or -F).
example: sudo yunohost app upgrade MyApp --force

Requires YunoHost version 3.5.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + +
+
+
+
ynh_compare_current_package_version
+
Compare the current package version against another version given as an argument. +This is really useful when we need to do some actions only for some old package versions.
+
+
+
+

+ + Usage: ynh_compare_current_package_version --comparison lt|le|eq|ne|ge|gt +| eq (equal), ne (not equal), ge (greater or equal), gt (greater than) + +

+ +

+ Arguments: +

    + + +
  • --comparison : Comparison type. Could be : lt (lower than), le (lower or equal),
  • + + + +
  • --version : The version to compare. Need to be a version in the yunohost package version type (like 2.3.1~ynh4)
  • + + +
+

+ + + +

+ Example: ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1 This example will check if the installed version is lower than (lt) the version 2.3.2~ynh1 +

+ + + +

+ Details: +

+ Generally you might probably use it as follow in the upgrade script

if ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1
then
# Do something that is needed for the package version older than 2.3.2~ynh1
fi

Return 0 if the evaluation is true. 1 if false.

Requires YunoHost version 3.8.0 or higher.

+

+

+ +

+ Dude, show me the code ! +

+ +
+
+ +
+ + + + + \ No newline at end of file diff --git a/packaging_apps_hooks.md b/packaging_apps_hooks.md new file mode 100644 index 00000000..247301d2 --- /dev/null +++ b/packaging_apps_hooks.md @@ -0,0 +1,191 @@ +# The use of YunoHost hooks + +Hooks allow you to trigger a script when an action is performed by the system. +The most obvious case is adding a user. If the app has a `post_user_create` hook, this hook will be triggered as soon as a user is added. +Therefore, this allows an application to execute actions based on events occurring on the system. + +### List of available hooks + +- `post_domain_add` +After adding a domain. +- `post_domain_remove` +After deleting a domain. +- `post_user_create` +After adding a user. +- `post_user_delete` +After deleting a user. +- `post_iptable_rules` +After reloading the firewall. +- `pre_backup_delete` +Before deleting a backup. +- `post_backup_delete` +After deleting a backup. +- `post_app_addaccess` +After adding an authorized user to an application. +- `post_app_removeaccess` +After the removal of a user's authorization on an application. +- `post_app_clearaccess` +After erasing all the access rules on an application. +- `post_app_install` +After installing an application. +- `post_app_upgrade` +After upgrading an application. +- `post_app_remove` +After removing an application. +- `post_app_change_url` +After modifying the path and/or the domain name of an application. +- `post_cert_update` +After updating a certificate +- `conf_regen` +Before and after the regeneration of a service configuration. +Services supported by `regen-conf`: + - avahi-daemon + - dnsmasq + - dovecot + - fail2ban + - glances + - metronome + - mysql + - nginx + - nslcd + - nsswitch + - postfix + - rspamd + - slapd + - ssh + - ssl + +### Hooks setup + +With the exception of the `conf_regen` hook, all hooks are used in the same way. +First of all, you have to understand that a hook is a simple bash script that will be executed by YunoHost when the indicated event occurs. +To add a hook to YunoHost, you must use a "hooks" folder at the root of the application package. Then, put your script in this folder under the name of the corresponding hook. + +> For example: +For the hook `post_user_create`, the script which will have to be executed for this hook should be placed in `hooks/post_user_create` in the app package. + +During the installation and the upgrade of the application, the scripts in the hooks folder will be duplicated in the folder `/etc/yunohost/hooks.d/` in the folder corresponding to the hook, then under the name `50-$app`. +All hooks belonging to an application will be removed when the apllication is deleted. + +### Building a hook script + +As a bash script, a hook script must start with the bash shebang. + +```bash +#!/bin/bash +``` + +Then you have to take the arguments given by YunoHost when calling the script. +Each hook offers different arguments. + +##### `post_domain_add` and `post_domain_remove` + +```bash +domain=$1 +``` + +##### `post_user_create` + +```bash +username=$1 +mail=$2 +password=$3 # Clear password +firstname=$4 +lastname=$5 +``` +##### `post_user_delete` + +```bash +username=$1 +purge=$2 # True/False Indicates whether the user folder has been deleted or not. +``` + +##### `post_iptable_rules` + +```bash +upnp=$1 # True/False Indicates if UPnP is activated or not. +ipv6=$2 # True/False Indicates whether IPV6 is enabled or not. +``` + +##### `pre_backup_delete` and `post_backup_delete` + +```bash +backup_name=$1 +``` + +##### `post_app_install`, `post_app_upgrade`, `post_app_remove` and `post_app_change_url` + +Usable variables in these scripts are the same as those available in [associated actions scripts](/packaging_apps_scripts). + +Example: for `post_app_install` the variables are the same as for the script `install` + +##### `post_app_addaccess` and `post_app_removeaccess` + +```bash +app_id=$1 +users=$2 # All authorized users on the app. Separated by commas. +``` + +##### `post_app_clearaccess` + +```bash +app_id=$1 +``` + +##### `post_cert_update` +```bash +domain=$1 +``` + +The rest of the script depends on what you want to do in it. + +### `conf_regen` special case +The `conf_regen` hook is a more delicate hook, either for its implementation or for its content. + +##### `conf_regen` hook setup + +A `conf_regen` hook should not be placed in the application's hooks folder. It must be set up manually. +The hook should be copied, indicating to which service it is linked. +```bash +cp hook_regen_conf /usr/share/yunohost/hooks/conf_regen/50-SERVICE_$app +``` + +> When removing the application, this hook must be removed manually. + +##### Building `conf_regen` hook script + +`conf_regen` hook is called two times, a first time after analysis of the configuration and before any modification of the files, then a second time after applying the modifications, if there has been modifications. + +`conf_regen` hook script should look like this: + +```bash +#!/bin/bash + +force=${2:-0} # 0/1 --force argument +dryrun=${3:-0} # 0/1 --dry-run argument +pending_conf=$4 # Path of the pending conf file + +do_pre_regen() { + # Put your code here for pre regen conf. +} + +do_post_regen() { + # Put your code here for post regen conf. + # Be careful, this part will be executed only if the configuration has been modified. +} + +case "$1" in + pre) + do_pre_regen + ;; + post) + do_post_regen + ;; + *) + echo "Hook called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0 +``` diff --git a/packaging_apps_hooks_fr.md b/packaging_apps_hooks_fr.md new file mode 100644 index 00000000..6339cc69 --- /dev/null +++ b/packaging_apps_hooks_fr.md @@ -0,0 +1,192 @@ +# Usage des hooks YunoHost + +Les hooks permettent de déclencher un script lorsqu'une action est effectuée par le système. +Le cas le plus évident, est l'ajout d'un utilisateur. Si l'app dispose d'un hook `post_user_create`, ce hook sera déclenché dés qu'un utilisateur sera ajouté. +Cela permet donc à une application d'exécuter des actions en fonction des évènements intervenant sur le système. + +### Liste des hooks disponibles + +- `post_domain_add` +Après l'ajout d'un domaine. +- `post_domain_remove` +Après la suppression d'un domaine. +- `post_user_create` +Après l'ajout d'un utilisateur. +- `post_user_delete` +Après la suppression d'un utilisateur. +- `post_iptable_rules` +Après le rechargement du parefeu. +- `pre_backup_delete` +Avant la suppression d'un backup. +- `post_backup_delete` +Après la suppression d'un backup. +- `post_app_addaccess` +Après l'ajout d'un utilisateur autorisé sur une application. +- `post_app_removeaccess` +Après la suppression de l'autorisation d'un utilisateur sur une application. +- `post_app_clearaccess` +Après l'effacement de toute les règles d'accès sur une application. +- `post_app_install` +Après l'installation d'une application. +- `post_app_upgrade` +Après l'upgrade d'une applications. +- `post_app_remove` +Après la supression d'une applications. +- `post_app_change_url` +Après avoir modifié le chemin et/ou le nom de domaine d'une application. +- `post_cert_update` +Après la mise à jour d'un certificat. +- `conf_regen` +Avant et après la régénération de la configuration d'un service. +Services pris en charge par `regen-conf` : + - avahi-daemon + - dnsmasq + - dovecot + - fail2ban + - glances + - metronome + - mysql + - nginx + - nslcd + - nsswitch + - postfix + - rspamd + - slapd + - ssh + - ssl + +### Mise en place des hooks + +À l'exception du hook `conf_regen`, tout les hooks s'utilisent de la même manière. +Tout d'abord, il faut comprendre qu'un hook est un simple script bash qui sera exécuté par YunoHost lorsque l'évènement indiqué se présentera. +Pour ajouter un hook à YunoHost, il faut utiliser un dossier "hooks" à la racine du package de l'application. Puis dans celui-ci mettre votre script sous le nom du hooks correspondant. + +> Par exemple : +Pour un hook `post_user_create`, le script qui devra être exécuté pour ce hook doit simplement être placé dans `hooks/post_user_create` dans le package. + +Lors de l'installation et de l'upgrade, les scripts dans le dossier hooks seront dupliqués dans le dossier `/etc/yunohost/hooks.d/` dans le dossier correspondant au hook, puis sous le nom `50-$app`. +Lors de la suppression de l'application, tout les hooks lui appartenant seront supprimés. + +### Construire un script de hook + +En tant que script bash, un script de hook doit commencer par le shebang bash + +```bash +#!/bin/bash +``` + +Ensuite il convient de prendre les arguments donnés par YunoHost lors de l'appel du script. +Chaque hook propose des arguments différents. + +##### `post_domain_add` et `post_domain_remove` + +```bash +domain=$1 +``` + +##### `post_user_create` + +```bash +username=$1 +mail=$2 +password=$3 # Clear password +firstname=$4 +lastname=$5 +``` +##### `post_user_delete` + +```bash +username=$1 +purge=$2 # True/False Indique si le dossier utilisateur a été supprimé ou pas. +``` + +##### `post_iptable_rules` + +```bash +upnp=$1 # True/False Indique si l'UPnP est activé ou non. +ipv6=$2 # True/False Indique si l'IPV6 est activé ou non. +``` + +##### `pre_backup_delete` et `post_backup_delete` + +```bash +backup_name=$1 +``` + +##### `post_app_install`, `post_app_upgrade`, `post_app_remove` et `post_app_change_url` + +Les variables utilisables dans ces scripts sont les mêmes que celles disponibles dans [les scripts d'actions associés](/packaging_apps_scripts). + + +Example : pour `post_app_install` les variables sont les mêmes que pour le script `install` + +##### `post_app_addaccess` et `post_app_removeaccess` + +```bash +app_id=$1 +users=$2 # Tous les utilisateurs autorisés sur l'app. Séparés par des virgules. +``` + +##### `post_app_clearaccess` + +```bash +app_id=$1 +``` + +##### `post_cert_update` +```bash +domain=$1 +``` + +La suite du script dépend de ce que vous voulez effectuer dans celui-ci. + +### Cas particulier de `conf_regen` +Le hook `conf_regen` est un hook plus délicat, que ce soit pour sa mise en place ou pour son contenu. + +##### Mise en place d'un hook `conf_regen` + +Un hook `conf_regen` ne doit pas être placé dans le dossier hooks de l'application. Il doit être mis en place manuellement. +Le hook doit être copié en indiquant à quel service il est lié. +```bash +cp hook_regen_conf /usr/share/yunohost/hooks/conf_regen/50-SERVICE_$app +``` + +> Lors de la suppression de l'application, ce hook devra être supprimé manuellement. + +##### Construire un script de hook conf_regen + +Un hook `conf_regen` est appelé 2 fois, une première fois après analyse de la configuration et avant une éventuelle modification des fichiers, puis une seconde fois après application des modifications, si il y a eu des modifications. + +Un script de hook `conf_regen` devrait donc ressembler à ça : + +```bash +#!/bin/bash + +force=${2:-0} # 0/1 --force argument +dryrun=${3:-0} # 0/1 --dry-run argument +pending_conf=$4 # Path of the pending conf file + +do_pre_regen() { + # Put your code here for pre regen conf. +} + +do_post_regen() { + # Put your code here for post regen conf. + # Be careful, this part will be executed only if the configuration has been modified. +} + +case "$1" in + pre) + do_pre_regen + ;; + post) + do_post_regen + ;; + *) + echo "Hook called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0 +``` diff --git a/packaging_apps_levels.md b/packaging_apps_levels.md new file mode 100644 index 00000000..ee953e66 --- /dev/null +++ b/packaging_apps_levels.md @@ -0,0 +1,72 @@ +# Quality levels of YunoHost application packages + +In order to facilitate the packaging of applications by providing successive steps to achieve, each package is assigned a quality level, from 0 to 10. +A package must meet a number of criteria to reach each level. In addition, to reach a level, the package must have previously reached the previous level. + +This classification of applications by levels has 3 advantages: +- The application packaging is more fun, with clear objectives to achieve and successive steps. +- A properly packaged application is put forward more than an application that does not comply with packaging rules. +- Users can quickly see the level of an application and thus know if the package is of good quality. + +The level is automatically computed by the automatic test suite ("the CI") which runs tests [here](https://ci-apps.yunohost.org/ci/) and results are summarized [here](https://dash.yunohost.org/appci/branch/stable). + +
+ +In the application catalog of the webadmin, an application is only shown to the user if its level is at least 5. Otherwiser, users may have to enable the display of "low-quality" applications to be able to install it. + +
+ +## Summary of the level definitions + +The following summarizes the current definition of the levels. + +The exact definitions are likely to shift over time and are heavily dependent on: +- the [package linter](https://github.com/YunoHost/package_linter) which performs a static analysis of the app scripts and files to detect issues or deprecated practices +- the [package check system](https://github.com/YunoHost/package_check) which actually tests the various operations (installs, upgrades, backup...) + +#### Level 0 + +The application does not work at all. + +#### Level 1 + +The application can be installed/removed in at least one configuration. + +#### Level 2 + +The application can be installed/removed in all common configurations. + +(Typically this corresponds to full domain vs. sub path installs, private/public +installs, multi-instance installs) + +#### Level 3 + +The application supports upgrading. + +#### Level 4 + +The application supports backup/restore. + +#### Level 5 + +The application triggers no errors on the package linter + +#### Level 6 + +The application repository is part of the YunoHost-Apps organization, which allows the community to contribute to its maintainance. + +#### Level 7 + +The application triggers no warnings on the package linter. + +#### Level 8 + +The application is long-term good quality, meaning it's been at least level 5 in the application catalog for a certain amount of time (when writing this: level 5+ 90% of the time during the last year) + +#### Level 9 + +The application is considered ["high-quality"](https://github.com/YunoHost/apps/blob/master/hq_validation_template.md): it is well-integrated with YunoHost (in particular SSO/LDAP) and follows the recommended development workflow. + +#### Level 10 + +(No definition yet) diff --git a/packaging_apps_levels_fr.md b/packaging_apps_levels_fr.md new file mode 100644 index 00000000..ff75b387 --- /dev/null +++ b/packaging_apps_levels_fr.md @@ -0,0 +1,163 @@ +# Niveaux de qualité des packages d’applications YunoHost + +Afin de faciliter le packaging d'applications par des étapes successives à atteindre, chaque package est affublé d'un niveau de qualité, de 0 à 10. +Un package doit satisfaire un certain nombre de critères pour atteindre chaque niveau. De plus pour atteindre un niveau, le package doit avoir préalablement atteint le niveau précédent. + +Ce classement des applications par niveaux présente 3 avantages : +- Le packaging d'application est d'autant plus ludique, avec des objectifs clairs à atteindre et des étapes successives. +- Une application correctement packagée est davantage mise en avant qu'une application ne respectant pas les règles de packaging. +- Les utilisateurs peuvent rapidement voir le niveau d'une application et ainsi savoir si le package est de bonne qualité. + +## Résumé des niveaux + +**Niveau 0** +L'application ne fonctionne pas. + +**Niveau 1** +L'application s'installe et se désinstalle correctement dans certains cas. + +**Niveau 2** +L'application s'installe et se désinstalle correctement dans toutes les configurations communes. + +**Niveau 3** +L'application peut être mise à jour. + +**Niveau 4** +L'application peut-être sauvegardée et restaurée. + +**Niveau 5** +Le code du package d'application respecte certaines règles de syntaxe. + +**Niveau 6** +Le package d'application est dans l'organisation YunoHost-Apps. + +**Niveau 7** +Le package d'application passe avec succès l'ensemble des tests d'intégrité. + +**Niveau 8** +Le package d'application respecte toute les recommendations de packaging d'apps. C'est une app de très bonne qualité. + +**Niveau 9** +Le package d'application respecte des recommandations de packaging supérieures. Non disponible pour le moment. + +**Niveau 10** +Le package d'application est jugé parfait ! + +## Les niveaux de qualité en détails : + +### Niveau 0 +**L'application ne s'installe pas ou ne fonctionne pas après installation.** +C'est le niveau le plus bas, une application de niveau 0 est considérée comme non fonctionnelle. + +YEP à respecter pour atteindre le niveau 0 : +- [YEP 1.1](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-11---nommer-son-app-et-son-d%C3%A9pot---valid%C3%A9--manuel--notworking-) : Nommer son app et son dépôt +- [YEP 1.2](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-12---inscrire-lapp-sur-un-r%C3%A9pertoire-connu---valid%C3%A9--manuel--notworking-) : Inscrire l'app sur un "répertoire" connu + +### Niveau 1 +**L'application s'installe et se désinstalle correctement.** +Mais des exceptions sont possibles, si au moins une méthode d'installation est fonctionnelle ainsi que sa suppression alors l'application est considérée comme fonctionnelle. + +YEP à respecter pour atteindre le niveau 1 : +- [YEP 2.2](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-22---utiliser-bash-pour-les-scripts-principaux---valid%C3%A9--auto--working-) : Utiliser bash pour les scripts principaux +- [YEP 2.5](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-25---copier-correctement-des-fichiers----brouillon--manuel--working-) : Copier correctement des fichiers +- [YEP 2.7](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-27---donner-des-permissions-suffisantes-aux-instructions-bash----valid%C3%A9--auto--working-) : Donner des permissions suffisantes aux instructions bash +- [YEP 2.15](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-215---v%C3%A9rifier-les-param%C3%A8tres-saisies-par-lutilisateur----valid%C3%A9--manuel--official-) : Suivre les instructions d'installation de l'application + +### Niveau 2 +**L'application s'installe et se désinstalle dans toutes les configurations communes.** + +- Installation en sous-dossier. +- Installation à la racine d'un domaine ou d'un sous-domaine. +- Installation privée (sécurisée par le SSO). +- Installation publique. +- Installation multi-instance. +- Désinstallation dans les mêmes circonstances. + +*Si une application ne permet pas certaines configurations d'installation, celles-ci doivent être indiquées clairement dans le readme du package. Toutefois, le niveau 2 ne peut pas être atteint si une configuration d'installation est volontairement écartée sans raison valable.* +*Cela n'empêche pas de restreindre volontairement les installations publiques, privées ou multi-instance si l'application le justifie.* + +YEP à respecter pour atteindre le niveau 2 : +- [YEP 1.5](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-15---mettre-%C3%A0-jour-r%C3%A9guli%C3%A8rement-le-statut-de-lapp---brouillon--manuel--working-) : Mettre à jour régulièrement le statut de l'app +- *[YEP 2.18.2](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2182---supporter-linstallation-sur-un-domaine----valid%C3%A9--auto--working-) : Supporter l'installation sur un domaine* +- *[YEP 2.18.3](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2183---supporter-linstallation-sur-un-sous-domaine----valid%C3%A9--auto--working-) : Supporter l'installation sur un sous-domaine* +- *[YEP 2.18.4](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2184---supporter-linstallation-sur-un-sous-dossier----valid%C3%A9--auto--official-) : Supporter l'installation sur un sous-dossier* +- *[YEP 4.6](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-46---g%C3%A8re-le-multi-instance----valid%C3%A9--manuel--optional-) : Gère le multi-instance* + +### Niveau 3 +**L'application supporte l'upgrade depuis une ancienne version du package.** +L'application doit pouvoir être mise à jour depuis une version précédente du package sans provoquer d'erreur. + +YEP à respecter pour atteindre le niveau 3 : +- [YEP 2.3](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-23---sauvegarder-les-r%C3%A9ponses-lors-de-linstallation---valid%C3%A9--manuel--working-) : Sauvegarder les réponses lors de l'installation + +### Niveau 4 +**L'application peut-être sauvegardée et restaurée sans erreur sur la même machine ou une autre.** + +YEP à respecter pour atteindre le niveau 4 : +- *[YEP 4.3](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-43---fournir-un-script-de-sauvegarde-yunohost-fonctionnel----valid%C3%A9--auto--official-) : Fournir un script de sauvegarde YunoHost fonctionnel* +- *[YEP 4.4](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-44---fournir-un-script-de-restauration-yunohost-fonctionnel----valid%C3%A9--auto--official-) : Fournir un script de restauration YunoHost fonctionnel* + +### Niveau 5 +**L'application ne présente aucune erreur dans [Package linter](https://github.com/YunoHost/package_linter).** +*Il peut y avoir des faux positifs dans Package linter. Ces situations seront gérées au cas par cas.* + +YEP à respecter pour atteindre le niveau 5 : +- *[YEP 1.3](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-13---indiquer-la-licence-associ%C3%A9e-au-paquet---valid%C3%A9--auto--working-) : Indiquer la licence associée au paquet* +- *[YEP 2.1](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-21---respecter-le-format-du-manifeste---valid%C3%A9--auto--inprogress-) : Respecter le format du manifeste* +- [YEP 2.12](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-212---utiliser-les-commandes-pratiques-helpers---valid%C3%A9--auto--official-) : Utiliser les commandes pratiques (helpers) +- [YEP 2.18.1](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2181---lancer-le-script-dinstallation-dune-webapp-correctement----valid%C3%A9--manuel--working-) : Lancer le script d'installation d'une webapp correctement + +### Niveau 6 +**Le package d'application est dans l'organisation YunoHost-Apps.** + +YEP à respecter pour atteindre le niveau 6 : +- [YEP 1.4](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-14---informer-sur-lintention-de-maintenir-un-paquet----brouillon--manuel--working-) : Informer sur l'intention de maintenir un paquet +- [YEP 1.6](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-16---se-tenir-inform%C3%A9-sur-l%C3%A9volution-du-packaging-dapps---valid%C3%A9--manuel--official-) : Se tenir informé sur l'évolution du packaging d'apps +- *[YEP 1.7](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-17---ajouter-lapp-%C3%A0-lorganisation-yunohost-apps---valid%C3%A9--manuel--official-) : Ajouter l'app à l'[organisation YunoHost-Apps](https://github.com/YunoHost-Apps)* +- [YEP 1.8](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-18---publier-des-demandes-de-test---valid%C3%A9--manuel--official-) : Publier des demandes de test +- [YEP 1.9](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-19---documenter-lapp---valid%C3%A9--auto--official-) : Documenter l'app +- [YEP 1.10](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-110---garder-un-historique-de-version-propre----brouillon--manuel--official-) : Garder un historique de version propre +- [YEP 2.9](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-29---enlever-toutes-traces-de-lapp-lors-de-la-suppression----brouillon--manuel--working-) : Enlever toutes traces de l'app lors de la suppression +- [YEP 3.3](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-33---faciliter-le-contr%C3%B4le-de-lint%C3%A9grit%C3%A9-des-sources----brouillon--manuel--official-) : Faciliter le contrôle de l'intégrité des sources +- [YEP 3.5](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-35---suivre-les-recommendations-de-la-documentation-de-lapp----valid%C3%A9--manuel--official-) : Suivre les recommandations de la documentation de l'app +- [YEP 3.6](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-36---mettre-%C3%A0-jour-les-versions-contenant-des-cve----draft--manuel--official-) : Mettre à jour les versions contenant des CVE + +### Niveau 7 +**L'application ne présente aucune erreur dans [Package check](https://github.com/YunoHost/package_check).** +En considérant le maximum de tests possibles pour l'application. + +YEP à respecter pour atteindre le niveau 7 : +- [YEP 2.4](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-24---d%C3%A9tecter-et-g%C3%A9rer-les-erreurs---brouillon--manuel--working-) : Détecter et gérer les erreurs +- [YEP 2.6](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-26---annuler-laction-si-les-valeurs-dentr%C3%A9es-sont-incorrectes----valid%C3%A9--manuel--working-) : Annuler l'action si les valeurs d'entrées sont incorrectes +- [YEP 2.8](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-28---modifier-correctement-une-configuration-syst%C3%A8me----brouillon--manuel--working-) : Modifier correctement une configuration système +- [YEP 2.10](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-210---configurer-les-logs-de-lapplication----brouillon--manuel--working-) : Configurer les logs de l'application +- [YEP 2.11](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-211---utiliser-une-variable-plut%C3%B4t-que-lapp-id-directement---valid%C3%A9--manuel--official-) : Utiliser une variable plutôt que l'app id directement +- [YEP 2.13](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-213---traduire-le-package-en-anglais----brouillon--manuel--official-) : Traduire le package en anglais +- [YEP 3.2](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-32---ouvrir-un-port-correctement----brouillon--manuel--working-) : Ouvrir un port correctement + +### Niveau 8 +**Le package d'application respecte toute les recommandations de packaging d'apps. C'est une app de très bonne qualité.** + +YEP à respecter pour atteindre le niveau 8 : +- [YEP 1.12](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-112) : Respect le modèle de l'application d'exemple +- Prise en charge du changement d'URL +- *[YEP 2.16](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-216---v%C3%A9rifier-la-disponibilit%C3%A9-des-d%C3%A9pendances-sur-arm-x86-et-x64----valid%C3%A9--manuel--official-) : Vérifier la disponibilité des dépendances sur ARM, x86 et x64* +- [YEP 2.18.5](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2185---ajouter-la-tuile-yunohost-pour-naviguer-facilement-entre-les-applications----valid%C3%A9--manuel--official-) : Ajouter la tuile YunoHost pour naviguer facilement entre les applications +- [YEP 4.1](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-41---lier-au-ldap----valid%C3%A9--manuel--official-) : Lier au LDAP +- [YEP 4.2](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-42---lier-lauthentification-au-sso----valid%C3%A9--manuel--official-) : Lier l'authentification au SSO +- [YEP 4.5](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-45---utiliser-les-hooks----valid%C3%A9--manuel--optional-) : Utiliser les hooks + +*Si une application n'est pas disponible sur une architecture, et qu'il est impossible de contourner cette limitation raisonnablement, cette limitation doit être indiquée dans le readme et prise en compte dans le script d'installation. L'installation de l'application sur une architecture non supportée doit être stoppée avant de modifier les fichiers.* + +### Niveau 9 +**L'application respecte toutes les YEP optionnelles.** + +YEP à respecter pour atteindre le niveau 9 : +- [YEP 2.14](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-214---remplir-correctement-un-fichier-de-conf----brouillon--manuel--official-) : Remplir correctement un fichier de conf +- [YEP 2.17](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-217---prendre-en-compte-la-version-dorigine-lors-des-mises-%C3%A0-jour----valid%C3%A9--manuel--official-) : Prendre en compte la version d'origine lors des mises à jour +- [YEP 3.4](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-34---isoler-lapp----brouillon--manuel--official-) : Isoler l'app +- [YEP 4.2.1](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-421---d%C3%A9connexion----valid%C3%A9--manuel--official-) : Déconnexion + +### Niveau 10 +**L'application est jugée parfaite !** +Ce niveau ultime pour une application ne peux être atteint que suite à étude approfondie du package et par la validation du groupe Apps. diff --git a/packaging_apps_manifest.md b/packaging_apps_manifest.md new file mode 100644 index 00000000..f4407aa1 --- /dev/null +++ b/packaging_apps_manifest.md @@ -0,0 +1,86 @@ +Application packaging + +## Manifest +The `manifest.json` file defines the app's constants, a bunch of values that YunoHost needs to identify the app and install it correctly. It looks like this: +```json +{ + "name": "Roundcube", + "id": "roundcube", + "packaging_format": 1, + "description": { + "en": "Open Source Webmail software", + "fr": "Webmail Open Source" + }, + "url": "http://roundcube.net/", + "version": "1.0.1~ynh7", + "license": "free", + "maintainer": { + "name": "kload", + "email": "kload@kload.fr" + }, + "requirements": { + "yunohost": ">= 2.4.0" + }, + "multi_instance": true, + "services": [ + "nginx", + "php5-fpm", + "mysql" + ], + "arguments": { + "install" : [ + { + "name": "domain", + "type": "domain", + "ask": { + "en": "Choose a domain for Roundcube", + "fr": "Choisissez un domaine pour Roundcube" + }, + "example": "domain.org" + }, + { + "name": "path", + "type": "path", + "ask": { + "en": "Choose a path for Roundcube", + "fr": "Choisissez un chemin pour Roundcube" + }, + "example": "/webmail", + "default": "/webmail" + } + ] + } +} +``` + +* **name**: app name. It does not have to be unique, but it should be, since it is the name shown to all the YunoHost administrators in the app list. Any characters are allowed. + +* **id**: ID of the app. You have to ensure that this ID is unique before submit an app integration request. See [packaging_apps_guidelines.md#yep-11](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines.md#yep-11) for valid rules. + +- **packaging_format**: package version. Actual version is **1**. This key has been set up to make independant packaging evolution versions from YunoHost versions evolution. + +* **description**: complete app description. You can make it as detailed as you feel it should be. Only `en` is required right now, but you can translate the description by prepending the locale prefix. + +* **url**: software website. + +* **version**: version of the package built from the upstream version number and an incremental number for each change in the package without upstream change. Example "1.0.1~ynh7". Must be a string. + +* **license**: application license: `free`, `non-free` or a value from the Identifier column from https://spdx.org/licenses/. Be careful to not confuse with package license which must be put in `LICENSE` file. + +* **maintainer**: informations about the app maintainer for contact. + +- **requirements**: dependency of the application package to a Debian YunoHost package version. For instance, "yunohost": ">> 2.3.12", `yunohost` package version must be up to `2.3.12`. + +* [**multi_instance**](/packaging_apps_multiinstance): it defines app's ability to be installed multiple times. + +* **services**: services needed by the application among `nginx`, `php5-fpm`, `mysql`, `uwsgi`, `metronome`, `postfix`, `dovecot`… + +* **arguments**: + * **install**: argument for the YunoHost's administrator to enter at installation. + * **name**: argument identification. + * **type**: (optional) argument type among `domain`, `path`, `user`, `app`, `boolean`, `string` and `password`. The field will be hidden in the password case. + * **choices** : (optional) restrict value to several choices. + * **optional** : (optional) field which indicate if this argument is optional. It can have `true` and `false` value. + * **ask**: question (at least in `en`) that you can translate. + * **example**: (optional) example value to help administrator to fill the input. + * **default**: (optional) default value. diff --git a/packaging_apps_manifest_fr.md b/packaging_apps_manifest_fr.md new file mode 100644 index 00000000..50a9c611 --- /dev/null +++ b/packaging_apps_manifest_fr.md @@ -0,0 +1,86 @@ +Packaging d’application + +## Manifeste +Le fichier `manifest.json` définit les constantes de l’application, un ensemble de valeurs dont YunoHost a besoin pour identifier l’application et l’installer correctement. Voici un exemple : +```json +{ + "name": "Roundcube", + "id": "roundcube", + "packaging_format": 1, + "description": { + "en": "Open Source Webmail software", + "fr": "Webmail Open Source" + }, + "url": "http://roundcube.net/", + "version": "1.0.1~ynh7", + "license": "free", + "maintainer": { + "name": "kload", + "email": "kload@kload.fr" + }, + "requirements": { + "yunohost": ">= 2.4.0" + }, + "multi_instance": true, + "services": [ + "nginx", + "php5-fpm", + "mysql" + ], + "arguments": { + "install" : [ + { + "name": "domain", + "type": "domain", + "ask": { + "en": "Choose a domain for Roundcube", + "fr": "Choisissez un domaine pour Roundcube" + }, + "example": "domain.org" + }, + { + "name": "path", + "type": "path", + "ask": { + "en": "Choose a path for Roundcube", + "fr": "Choisissez un chemin pour Roundcube" + }, + "example": "/webmail", + "default": "/webmail" + } + ] + } +} +``` + +* **name** : nom de l’application. Son unicité n’est pas nécessaire. Il est tout de même conseillé étant donné que c’est le nom qui apparaît dans la liste des applications pour les administrateurs de serveurs YunoHost. + +* **id** : identifiant de l’application. Vous devez vous assurer de son unicité. + +- **packaging_format** : version de packaging du paquet. La version **1** est la version actuelle. Cette clé a été mise en place afin de faire évoluer les versions de packaging de manière décorrélée des versions de YunoHost. + +* **description** : description complète de l’application. Vous pouvez la détailler comme bon vous semble. Uniquement le champ `en` (english) est requis, vous pouvez également ajouter la traduction en français :) + +* **url** : site web de l’application. + +* **version** : version du package construit à partir du numéro de version de l’application qui est installée et d'un incrément pour chaque changement du paquet sans changement de version de l'application. "Exemple: 1.0.1~ynh7". Le champ doit être une chaîne de caractères. + +* **license** : licence avec laquelle l’application est distribuée : `free`, `non-free` ou une des valeurs de la colonne Identifier du site https://spdx.org/licenses/. Attention à ne pas confondre avec la licence du paquet qui doit être mise dans le fichier `LICENSE`. + +* **maintainer** : informations à propos du mainteneur du paquet de l’application pour pouvoir le contacter. + +- **requirements** : dépendance du paquet de l’application à la version d’un paquet Debian de YunoHost. Par exemple : "yunohost": ">> 2.3.12", le paquet `yunohost` doit être de version supérieur à `2.3.12`. + +* [**multi_instance**](/packaging_apps_multiinstance) : capacité d’une application d’être installée plusieurs fois. + +* **services** : liste des services nécessaires au fonctionnement de l’application. `nginx`, `php5-fpm`, `mysql`, `uwsgi`, `metronome`, `postfix`, `dovecot`… + +* **arguments** : + * **install** : paramètres à demander à l’administrateur lors de l’installation. + * **name** : identifiant du paramètre + * **type** : (optionnel) type de paramètre parmis `domain`, `path`, `user`, `app`, `boolean`, `string` et `password`. Le champ sera caché dans le cas d’un mot de passe. + * **choices** : (optionnel) restreint les réponses possibles à plusieurs choix. + * **optional** : (optionnel) champs qui indique si ce paramètre est optionnel. Il peut avoir les valeurs `true` ou `false`. + * **ask** : question posée (au minimum en anglais – `en`) que vous pouvez traduire dans plusieurs langues. + * **example** : (optionnel) valeur d’exemple pour aider l’administrateur à remplir le formulaire d’installation. + * **default** : (optionnel) valeur par défaut. diff --git a/packaging_apps_multiinstance.md b/packaging_apps_multiinstance.md new file mode 100644 index 00000000..55d2433a --- /dev/null +++ b/packaging_apps_multiinstance.md @@ -0,0 +1,20 @@ +Application packaging + +### Multi-instance +Multi-instance is application capacity to be installed several times. + +#### Scripts +When YunoHost installs the application, it passes `$YNH_APP_INSTANCE_NAME` var to the script, set to value `id__n` with the application `id` coming from the manifest and `n` being an integer incremented each time a new instance of the application is installed. + +**E.g.** in the Roundcube script, database is called `roundcube`, the install directory `roundcube` and the [NGINX configuration](/packaging_apps_nginx_conf) `roundcube`. This way, the second instance of Roundcube will not conflict with the first one, and will be installed in the `roundcube__2` database, in the `roundcube__2`directory, and with the `roundcube__2` NGINX configuration. + +Retrieve app identifier (including the multi-instance id): +```bash +app=$YNH_APP_INSTANCE_NAME +``` + +#### Manifest +Set `multi_instance` variable to `true` in the [manifest](/packaging_apps_manifest): +```json + "multi_instance": true, +``` diff --git a/packaging_apps_multiinstance_fr.md b/packaging_apps_multiinstance_fr.md new file mode 100644 index 00000000..b6c72f1d --- /dev/null +++ b/packaging_apps_multiinstance_fr.md @@ -0,0 +1,21 @@ +Packaging d’application + +### Multi-instances +Le multi-instance est la capacité d’une application à être installée plusieurs fois. + +#### Scripts +Lorsque YunoHost installe l’application, il passe au script dans la variable `$YNH_APP_INSTANCE_NAME` la valeur `id__n` avec l’identifiant de l’application `id` provenant du manifeste et `n` un nombre incrémentée à chaque nouvelle instance de l’application. + +**Par exemple** : dans le script Roundcube, il faut nommer la base de données `roundcube`, le dossier d’installation `roundcube` et la [configuration NGINX](/packaging_apps_nginx_conf) `roundcube`. De cette manière, la seconde installation de Roundcube ne rentrera pas en conflit avec la première, et sera installée dans la base de données `roundcube__2`, dans le répertoire `roundcube__2`, et avec la configuration NGINX `roundcube__2`. + + +Récupération de l'identifiant de l'app (incluant l'id multi-instance) : +```bash +app=$YNH_APP_INSTANCE_NAME +``` + +#### Manifeste +Passer la variable `multi_instance` à `true` dans le [manifeste](/packaging_apps_manifest) : +```json + "multi_instance": true, +``` diff --git a/packaging_apps_nginx_conf.md b/packaging_apps_nginx_conf.md new file mode 100644 index 00000000..2d50ee27 --- /dev/null +++ b/packaging_apps_nginx_conf.md @@ -0,0 +1,60 @@ +# NGINX configuration + +This tutorial aim to help setup NGINX configuration for application packaging. + +#### NGINX configuration +Configuration must be in `conf/nginx.conf`. We must use **FastCGI** or a **proxy_pass** following the application: +* **FastCGI** is used with PHP applications: +```nginx +location YNH_EXAMPLE_PATH { + alias YNH_WWW_PATH ; + if ($scheme = http) { + rewrite ^ https://$server_name$request_uri? permanent; + } + index index.php; + try_files $uri $uri/ index.php; + location ~ [^/]\.php(/|$) { + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param REMOTE_USER $remote_user; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param SCRIPT_FILENAME $request_filename; + } + + # Include SSOWAT user panel. + include conf.d/yunohost_panel.conf.inc; +} +``` + +* **`proxy_pass`** in Python, Node.js, Go and Java applications: +```nginx +location YNH_EXAMPLE_PATH/ { + rewrite ^YNH_EXAMPLE_PATH$ YNH_EXAMPLE_PATH/ permanent; + proxy_pass http://YNH_EXEMPLE_DOMAIN:YNH_EXAMPLE_PORT/; + proxy_set_header Host $host; + proxy_buffering off; +} +``` + +#### Install script +We must modify `conf/nginx.conf` file with application arguments. For this, we use generic terms `YNH_EXAMPLE_PATH` that we modify by desired values with `sed` command: +```bash +sed -i "s@YNH_EXAMPLE_PATH@$path@g" ../conf/nginx.conf +sed -i "s@YNH_EXAMPLE_PORT@$port@g" ../conf/nginx.conf +sed -i "s@YNH_EXEMPLE_DOMAIN@$domain@g" ../conf/nginx.conf +``` +We must move that configuration file in NGINX configuration, then reload NGINX configuration: +```bash +cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf +sudo service nginx reload +``` +If NGINX won't restart, it's possible that this configuration file isn't right. + +#### Remove script +We must remove NGINX configuration of this application, then reload NGINX configuration: +```bash +rm -f /etc/nginx/conf.d/$domain.d/$app.conf +sudo service nginx reload +``` diff --git a/packaging_apps_nginx_conf_fr.md b/packaging_apps_nginx_conf_fr.md new file mode 100644 index 00000000..0061701e --- /dev/null +++ b/packaging_apps_nginx_conf_fr.md @@ -0,0 +1,60 @@ +# Configuration NGINX + +Ce tutoriel a pour but d’aider à la mise en place d’une configuration NGINX pour le packaging d’application. + +#### Configuration NGINX +La configuration doit être mise dans `conf/nginx.conf`. Il s’agira d’utiliser **FastCGI** ou un **proxy_pass** suivant l’application : +* **FastCGI** est utilisé dans les applications PHP : +```nginx +location YNH_EXAMPLE_PATH { + alias YNH_WWW_PATH ; + if ($scheme = http) { + rewrite ^ https://$server_name$request_uri? permanent; + } + index index.php; + try_files $uri $uri/ index.php; + location ~ [^/]\.php(/|$) { + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param REMOTE_USER $remote_user; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param SCRIPT_FILENAME $request_filename; + } + + # Include SSOWAT user panel. + include conf.d/yunohost_panel.conf.inc; +} +``` + +* **`proxy_pass`** dans le cas d’applications Python, Node.js, Go et Java : +```nginx +location YNH_EXAMPLE_PATH/ { + rewrite ^YNH_EXAMPLE_PATH$ YNH_EXAMPLE_PATH/ permanent; + proxy_pass http://YNH_EXEMPLE_DOMAIN:YNH_EXAMPLE_PORT/; + proxy_set_header Host $host; + proxy_buffering off; +} +``` + +#### Script d’installation +Il s’agit de modifier le fichier `conf/nginx.conf` avec les paramètres de l’application. Pour cela, on utilise des termes génériques `YNH_EXAMPLE_PATH` que l’on modifie par des valeurs souhaitées avec la commande `sed` : +```bash +sed -i "s@YNH_EXAMPLE_PATH@$path@g" ../conf/nginx.conf +sed -i "s@YNH_EXAMPLE_PORT@$port@g" ../conf/nginx.conf +sed -i "s@YNH_EXEMPLE_DOMAIN@$domain@g" ../conf/nginx.conf +``` +Il faut ensuite déplacer ce fichier de configuration dans la configuration de NGINX, puis recharger la configuration de NGINX : +```bash +cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf +sudo service nginx reload +``` +Si NGINX ne redémarre pas, il se peut que le fichier de configuration ne soit pas correct. + +#### Script de suppression +Il s’agit de supprimer la configuration NGINX pour cette application, puis de recharger la configuration de NGINX : +```bash +rm -f /etc/nginx/conf.d/$domain.d/$app.conf +sudo service nginx reload +``` diff --git a/packaging_apps_permissions.md b/packaging_apps_permissions.md new file mode 100644 index 00000000..0a36b39e --- /dev/null +++ b/packaging_apps_permissions.md @@ -0,0 +1,75 @@ +# User groups and permissions + +Installing an app creates the permission `app.main` with `all_users` allowed by default. + +If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special group `visitors`: + +```shell +ynh_permission_update --permission "main" --add visitors +``` + +If you wish to create a custom permission for your app (e.g. to restrict access to an admin interface) you may use the following helpers: + +```shell +ynh_permission_create --permission "admin" --url "/admin" --allowed "$admin_user" --label "Label for your permission" +``` + +You don't need to take care of removing permissions or backing up/restoring them as it is handled by the core of YunoHost. + +### Migrating away from the legacy permission management + +When migrating/fixing an app still using the legacy permission system, it should be understood that the accesses are now to be managed by features from the core, outside of the application scripts! + +Application scripts are only expected to: +- if relevant, during the install script, initialize the main permission of the app as public (`visitors`) or private (`all_users`) or only accessible to specific groups/users ; +- if relevant, create and initialize any other specific permission (e.g. to some admin interface) in the install script (and *maybe* in some migration happening in the upgrade script). + +Applications scripts should absolutely **NOT** mess up with any already-existing app accesses (including `unprotected`/`skipped_uris` settings) during any other case, as *it would reset any admin-defined access rule*! + +When migrating away from the legacy permission, you should: +- remove any management of `$is_public`-like or `$admin_user`-like setting, except for any manifest question meant to either *initialize* the app as public/private or specific permissions ; +- remove the old legacy permissions. Check out the recommended way to proceed in the example_ynh app (in particular [this code snippet](https://github.com/YunoHost/example_ynh/pull/111/files#diff-57aeb84da86cb7420dfedd8e49bc644fb799d5413d01927a0417bde753e8922f)) + +It should boil down to : +```bash +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_app_setting_delete --app=$app --key=is_public + + # Create the permission using the new framework (if your app has relevant additional permissions) + ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin +fi +``` + +- remove any call to `yunohost app addaccess` and similar actions that are now obsolete and deprecated. +- if your app use LDAP and support filter, use the filter `'(&(objectClass=posixAccount)(permission=cn=YOUR_APP.main,ou=permission,dc=yunohost,dc=org))'` to allow users who have this permission. (A complete documentation of LDAP [here](https://moulinette.readthedocs.io/en/latest/ldap.html) if you want to undestand how it works with YunoHost) + +#### Additional features from 4.1 + +- Label customization : this is the name displayed to end users in the user portal. You can provide a default label (for example app.admin maybe be labelled 'Admin interface'). The label may be changed later by the admin after installation. +- Enabling/disabling tile : this toggles wether or not an app is shown in the user portal (if the user has the corresponding permission). The corresponding option is called `show_tile` which may be `True` or `False`. A single app may have multiple tiles in the SSO. The url of each tile corresponds to the `url` parameter of the permission. +- Multiple url support: a permission may have additional urls associated to it. This give the possiblity to protect many url with the same permission - in particular for tricky use case (for example several pieces of admin interfaces spread over different subpaths). +- Protecting permission: As a packager, you may choose to "protect" a permission if you believe that it's not relevant for the admin to add/remove this permission to/from the visitors group. For example, this is the case for the API permission of Nextcloud, which in the vast majority of cases should be kept publicly because mobile client won't go through the SSO. Note that when using the helper `ynh_permission_update`, it's still possible to add/remove the `visitor` group of this permission. +- Disabling auth header: some app authentification mecanism do not appreciate that SSOwat injects the Authorization header (which is an essential mecanism for single sign-on). You can now choose to disable the auth header injection from SSOwat to fix this (instead of the previous hack of using `skipped_uris`) + +##### Correspondance between the old and new permission mecanism + +| | with auth header | no auth header | +| :---------- | :--------------- | :------------- | +| **public** | unprotected_uris | skipped_uris | +| **private** | protected_uris | N/A | + + +| | with auth header | no auth header | +| :---------- | :------------------------------------------ | :------------------------------------------- | +| **public** | auth_header=True, visitor group allowed | auth_header=False, visitor group allowed | +| **private** | auth_header=True, visitor group not allowed | auth_header=False, visitor group not allowed | + + +All of theses feature are managable by theses following helper: +- `ynh_permission_create` +- `ynh_permission_url` +- `ynh_permission_update` + +If you have any question, please contact the app team diff --git a/packaging_apps_scripts.md b/packaging_apps_scripts.md new file mode 100644 index 00000000..6e4f6f88 --- /dev/null +++ b/packaging_apps_scripts.md @@ -0,0 +1,66 @@ +Application packaging + +## Scripts + +For now, a YunoHost package must contain five Shell scripts: `install`, `remove`, `upgrade`, `backup` and `restore`. A 6th script `change_url` can also be added optionally. +These scripts will be executed as `root` on the YunoHost instances. + +Examples scripts are available in the [example app](https://github.com/YunoHost/example_ynh/tree/master/scripts) + +### Usage +You have to put everything in the `install` script in order to get the app to install without issue. It means that you have to install dependencies, create required repositories, initialize potential databases, copy sources and configure everything in the single `install` script (and of course do the reverse process in the `remove` script). + +It's possible to use helpers and import function library by example from a `_common.sh` file. + +### Available variables for these scripts +#### YNH_CWD +This var contains the current working directory path of the executed script. It can be useful for find out the initial path if we have move of directory during the script execution. It is used by some helpers to be sure to use the good directory. + +#### YNH_APP_ID +It contains the application's identifier without the instance's number. + +Example: strut + +#### YNH_APP_INSTANCE_NAME +It contains the instance name which will is used in a lot of situation to manage multiple setup of the same app. + +Example: strut__3 +#### YNH_APP_INSTANCE_NUMBER +It contains the instance's number. Warning, it's not the number of running instances because an old app might be deleted. + +Example: 3 + +### Variables specific to `install` +#### YNH_APP_ARG_XXXXXXX +An environment variable is available for each question asked in the installation. + +For example, if in the manifest we have a question like this +```json +{ + "name": "domain", + "type": "domain", + "ask": { + "en": "Choose a domain for OpenSondage", + "fr": "Choisissez un nom de domaine pour OpenSondage", + "de": "Wählen Sie bitte einen Domain für OpenSondage" + }, + "example": "domain.org" +} +``` + +The name of the question is `domain` so in the script we can access it with YNH_APP_ARG_DOMAIN. The usage is to create a shorter name in the script like this: + +```bash +domain=$YNH_APP_ARG_DOMAIN +``` + +### Variables specific to `change_url` +#### YNH_APP_OLD_DOMAIN +The old domain where the app was installed. +#### YNH_APP_OLD_PATH +The old path where the app was installed. +#### YNH_APP_NEW_DOMAIN +The new domain where move the app. +#### YNH_APP_NEW_PATH +The new path where move the app. + diff --git a/packaging_apps_scripts_fr.md b/packaging_apps_scripts_fr.md new file mode 100644 index 00000000..8854f287 --- /dev/null +++ b/packaging_apps_scripts_fr.md @@ -0,0 +1,67 @@ +Packaging d’application + +## Les scripts + +Un paquet YunoHost doit contenir cinq scripts Shell : `install`, `remove`, `upgrade`, `backup` et `restore`. Un 6ème script `change_url` peut aussi être ajouté de façon optionnelle. +Ces scripts seront exécutés en tant que `root` sur les serveurs YunoHost. + +Des exemples de ces scripts sont disponibles dans l'[application d'exemple](https://github.com/YunoHost/example_ynh/tree/master/scripts). + +### Utilisation +Vous devez tout mettre dans le script d’`install` pour que votre application soit entièrement installée. Cela signifie que vous devez installer les dépendances, créer les répertoires requis, initialiser les bases de données nécessaires, copier les sources et configurer tout dans l’unique script `install` (et bien sûr faire la procédure inverse dans le script `remove`). + +Il est possible d'utiliser des helpers et d'importer une librairie de fonction par exemple depuis un fichier `_common.sh`. + +### Variables disponibles pour tous ces scripts +#### YNH_CWD +Cette variable contient le chemin du répertoire de travail courant du contexte d'exécution du script. Elle peut être utile pour retrouver le chemin initial si on s'est déplacé pendant l'exécution du script. Elle est utilisée par certains helpers pour être sûr d'utiliser le bon. + +#### YNH_APP_ID +Contient l'identifiant de l'application sans le numéro d'instance + +Exemple: strut +#### YNH_APP_INSTANCE_NAME +Contient le nom d'instance qui sera utilisé dans de nombreuses situation pour pouvoir gérer l'installation multiple d'une même app. + +Exemple: strut__3 +#### YNH_APP_INSTANCE_NUMBER +Contient le numéro de l'instance. Attention il ne s'agit pas forcément du nombre d'instance toujours installée, car une ancienne application peut avoir été désinstallée. + +Exemple: 3 + +### Variables spécifiques pour `install` +#### YNH_APP_ARG_XXXXXXX +Pour chaque question posée lors de l'installation, une variable d'environnement est disponible. + +Par exemple, si dans le manifest nous avons une question de cette forme +```json +{ + "name": "domain", + "type": "domain", + "ask": { + "en": "Choose a domain for OpenSondage", + "fr": "Choisissez un nom de domaine pour OpenSondage", + "de": "Wählen Sie bitte einen Domain für OpenSondage" + }, + "example": "domain.org" +} +``` + +Le nom de la question `domain` donc dans le script on peut accéder à cette variable via $YNH_APP_ARG_DOMAIN. L'usage est de créer une variable plus courte comme ceci: + +```bash +domain=$YNH_APP_ARG_DOMAIN +``` + +### Variables spécifiques pour `change_url` +#### YNH_APP_OLD_DOMAIN +L'ancien domaine où était installée l'app. + +#### YNH_APP_OLD_PATH +L'ancien chemin où était installée l'app. + +#### YNH_APP_NEW_DOMAIN +Le nouveau domaine où doit être installée l'app. + +#### YNH_APP_NEW_PATH +Le nouveau chemin où doit être installée l'app. diff --git a/packaging_apps_start.md b/packaging_apps_start.md new file mode 100644 index 00000000..d6c27ea9 --- /dev/null +++ b/packaging_apps_start.md @@ -0,0 +1,66 @@ +# Introduction to packaging + +This documentation is here is to provide all the basic concepts and vocabulary needed to understand app packaging. eg: shell, parsing, system administration... + +We will detail what is a YunoHost application package, how it works, how to make your own package and how to find help if you need it. + +## What is a YunoHost application package + +Before we continue, we need to define what is exactly an application package. + +To be able to do that, we need to remember that YunoHost at its core is a server operating system whose mission is to simplify selfhosting of internet services. To accomplish that, YunoHost provides, among other things, an administration panel allowing application installation in a few clicks. + +If you have ever installed a web application manually, you already know that the process is in reality far more complex, usually involving a lot of steps and discipline. + +This is what application packaging is, a series of scripts that automate the installation of a web application and its configuration in order to provide the final user with a few clicks installation process. + +### How it works + +From the final user perspective, it is as simple as it can be: + +1. Pick an application +2. Fill a form +3. Wait +4. Application is ready to use + +There is more to see backstage: +First, when the application is selected, YunoHost will retrieve the corresponding package from github. eg: [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh). +Then, YunoHost will read the manifest.json file to know what questions to ask the user through the form. + +These seamingly trivial questions are very important. Usually you would need to ask for the domain on which to install, the path to access, the user that will be designated administrator and the default language for the application. + +These are critical to configure appropriately the web application during the installation process. To do so, YunoHost will retrieve the answers given by the user and send them to the installation script located in the package "*scripts*" folder. + +The install script will handle the user answers to complete the process as you would have done manually. + +If the user wants to delete the application, YunoHost will use the remove script from the "*scripts*" folder. It will handle the cleaning process for the user and delete all folders and configuration files that was previsouly installed by the application. + +### What is a script? + +Scripts used during application packaging are simply a series of bash commands. + +### ... bash command? + +A [bash](https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29) command is a line of text that will be interpreted by the computer and will produce a result. This is commonly refered to as a command line. + +You can ony interact with your server through the command line as it does not provide a graphical interface. Usual access is through [ssh](/ssh). + +Package scripts are therefore a series of bash commands as if you had typed them directly in the ssh console. + +To know what you can write in a bash script, you should start reading this [simple tutorial](https://debian-facile.org/doc:programmation:shells:debuter-avec-les-scripts-shell-bash) or this [more advanced one](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/index.html). + +### Ok, I'm good! Where do I start? + +Before starting the packaging process, you need to successfully install the application. The script will only perform what you instruct it to do. + +Once completed, you need to read a little bit more documentation about application packaging. [This one is more technical](/packaging_apps) but now you should understand all the wizardry. + +### HELP! NEED BACKUP! + +Fortunately, you are not alone in this! + +There are other packagers like you and you can meet them on the [forum](https://forum.yunohost.org/c/apps-packaging) or the [chat](xmpp:apps@conference.yunohost.org?join). + +Feel free to join in and ask your questions, there always will be someone to help. + +Soon enough you'll see for yourself that packaging applications is not that hard after all. diff --git a/packaging_apps_start_fr.md b/packaging_apps_start_fr.md new file mode 100644 index 00000000..182be676 --- /dev/null +++ b/packaging_apps_start_fr.md @@ -0,0 +1,55 @@ +# Introduction au packaging + +Petite introduction au packaging d'application, pour comprendre de quoi nous parlons et comment ça marche. +Cette documentation s'adresse avant tout aux packageurs débutants qui ne sont pas à l'aise avec les concepts de shell, parsing et administration système de manière générale. + +Nous verrons ici ce qu'est un package d'application YunoHost, comment cela fonctionne, comment faire pour écrire un package et comment se lancer dans l'aventure sans être tout seul. + +### De quoi on parle en fait ? + +Avant de démarrer, la bonne question c'est "Qu'est-ce qu'un package d'application !?" + +Pour répondre à cette question, il faut revenir à ce qu'est YunoHost, c'est un système d’exploitation serveur visant à simplifier l’auto-hébergement de services Internet. Et pour faire ça, YunoHost met à disposition, entre autre, une interface d'administration permettant d'installer des applications en quelques clics. +Or si vous avez déjà installé une application web à la main, vous savez qu'en réalité c'est bien plus compliqué que quelques clics sur une jolie interface. + +C'est là que le package d'application entre en jeu, c'est un ensemble de scripts qui automatise l'installation d'une application web et la préconfigure pour que l'utilisateur final n'ai besoin que de quelques clics pour l'installer facilement. + +### Mais alors, comment ça marche ? + +Du point de vue de l'utilisateur, c'est très simple, on choisit une application, on répond à quelques questions, ça mouline et c'est prêt. + +Mais il se passe bien plus de choses derrière. +Tout d'abord, lorsque l'application est sélectionnée, YunoHost va aller chercher son package sur GitHub, par exemple l'application [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh). +Ensuite, YunoHost lit le fichier manifest.json pour connaître les questions à poser à l'utilisateur. + +Mais ces questions anodines sont très importantes, on retrouvera souvent le domaine sur lequel installer l'application, l'adresse à laquelle elle sera accessible, l'utilisateur qui en sera l'administrateur et la langue par défaut de l'application. + +Ce sont là des éléments essentiels pour configurer correctement notre application web lors de son installation. Pour ce faire, YunoHost va récupérer les réponses données par l'utilisateur et les envoyer au script install qui se trouve dans le dossier scripts du package. + +Le script install va se charger d'installer l'application, en prenant en compte les réponses données par l'utilisateur. Ce script va simplement faire ce que vous auriez fait si vous aviez installé l'application à la main. + +Si par la suite l'utilisateur souhaite supprimer l'application, YunoHost utilisera le script remove du dossier script, qui se chargera à la place de l'utilisateur de supprimer l'application, ses dossiers et tout ses fichiers de configuration. + +### Qu'y a-t-il dans ces scripts pour que tout soit si simple pour l'utilisateur ? + +Les scripts d'un package d'application sont simplement des commandes bash les unes à la suite des autres. + +#### ... Et c'est quoi une commande bash ? + +Une commande [bash](https://fr.wikipedia.org/wiki/Bourne-Again_shell) c'est une ligne de texte qui sera interprétée et produira un résultat. C'est ce qu'on a l'habitude d'appeler la ligne de commande. +Or puisque votre serveur, sur lequel est installé YunoHost, ne dispose pas d'une interface graphique, vous n'avez que la ligne de commande de disponible. Vous l'atteignez en général après vous être connecté avec [ssh](/ssh). + +Les scripts d'un package ne sont donc qu'une succession de commandes bash, comme si vous les aviez tapées directement dans la console ssh pour installer l'application. + +Pour savoir quoi écrire dans un script bash, je vous conseille de commencer par la lecture d'un [tuto simple](https://debian-facile.org/doc:programmation:shells:debuter-avec-les-scripts-shell-bash). Et si vous avez vraiment envie de lire, il y a aussi un [tuto plus complet](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/index.html) + +### Ok, je crois que j'ai compris ! Par où on commence ? + +Avant d'envisager de faire un package d'application, il faut réussir à installer correctement la dites application. Car le script ne fera que ce que vous lui direz de faire. + +Ensuite, il faut aller lire (et oui encore) la documentation sur le packaging, mais la vraie cette fois, [celle qui emploie des mots bizarres](/packaging_apps). +Mais maintenant vous devriez les comprendre tout ces mots étranges. + +Mais heureusement, vous n'êtes pas seul pour affronter cette épreuve titanesque, il y a d'autres packageurs que vous pouvez venir rencontrer sur le [forum](https://forum.yunohost.org/c/apps-packaging) et sur le [salon de discussion](xmpp:apps@conference.yunohost.org?join). +N'hésitez pas à venir poser des questions sur ce que vous ne comprenez pas, il y aura toujours quelqu'un pour vous répondre. +Et vous constaterez bien vite que ce n'est pas si difficile de packager une application. diff --git a/packaging_apps_trap.md b/packaging_apps_trap.md new file mode 100644 index 00000000..a0071e01 --- /dev/null +++ b/packaging_apps_trap.md @@ -0,0 +1,113 @@ +# Trap usage + +Trap is an internal shell command used to capture the output signals of commands executed in the current shell and its subshells. + +Any command executed in the shell returns an exit signal at the end of its execution. Either 0 to indicate the end of the execution of the command, or a non-zero value indicating an interruption thereof. + +In the case of installation scripts, trap will allow us to detect a command interrupted in the middle of its execution due to an error. +Detection of this error will allow the installation to be terminated and returned to the remove script for cleaning up residues. + +Trap is used as follows: + +```bash +trap 'commande' liste_de_signaux +``` + +To simplify, we will use the pseudo signal `ERR` to gather all the error signals. + +We could simply add this line at the beginning of the script: + +```bash +trap "echo Erreur d'installation" ERR +``` + +After this line, any command causing an error will trigger the display of the message indicated by trap. +All of the current shell and the subshell will be supported by trap. + +To stop capturing signals with trap, you can simply deactivate trap. + +```bash +trap ERR +``` + +Or completely ignore the affected output signals. + +```bash +trap "" ERR +``` + +In the latter case, the interrupt signal will have no effect on the shell. This can be useful for a command whose error output should not impact the progress of the installation script. + +### Stop the installation script and clean up before exiting. +In the event of an error in the installation script, trap must allow to stop the installation, then clean up the partially installed residual files before leaving the script. +For this, we will provide a function dedicated to the installation failure. + +```bash +# Delete files and db if exit with an error +EXIT_PROPERLY () { + trap ERR # Disable trap + echo -e "\e[91m \e[1m" # Shell in light red bold + echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" + + echo -e "\e[22m" # Remove bold + + # Clean hosts + sudo sed -i '/#leed/d' /etc/hosts + + if [ $ynh_version = "2.2" ]; then + /bin/bash ./remove # Call the script remove. In 2.2, this behavior is not automatic. + fi + exit 1 +} +``` + +The `EXIT_PROPERLY` function must indicate to the user that the installation has failed and clean up any residue that will not be taken care of by the remove script. The latter will be automatically called after exit `1` with YunoHost 2.4 + +After this function, we can set up signal capture by trap. + +```bash +trap EXIT_PROPERLY ERR +``` + +If a command fails during installation, the `EXIT_PROPERLY` function will be called, ending the installation. + +To simplify the capture of signals and ignore them for specific commands. It is possible to place trap calls in functions. + +```bash +TRAP_ON () { # Activate signal capture + trap EXIT_PROPERLY ERR # Capturing exit signals on error +} +TRAP_OFF () { # Ignoring signal capture until TRAP_ON + trap '' ERR # Ignoring exit signals +} +``` + +> The `TRAP_OFF` ​​function does not work. For some reason. Using `trap '' ERR` directly works fine however. + +To manage possible installation errors, we can therefore simply add this code after retrieving the arguments: + +```bash +# Delete files and db if exit with an error +EXIT_PROPERLY () { + trap ERR # Disable trap + echo -e "\e[91m \e[1m" # Shell in light red bold + echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" + + echo -e "\e[22m" # Remove bold + + # Clean hosts + sudo sed -i '/#leed/d' /etc/hosts + + if [ $ynh_version = "2.2" ]; then + /bin/bash ./remove # Call the script remove. In 2.2, this behavior is not automatic. + fi + exit 1 +} +TRAP_ON () { # Activate signal capture + trap EXIT_PROPERLY ERR # Capturing exit signals on error +} +TRAP_OFF () { # Ignoring signal capture until TRAP_ON + trap '' ERR # Ignoring exit signals +} +TRAP_ON +``` diff --git a/packaging_apps_trap_fr.md b/packaging_apps_trap_fr.md new file mode 100644 index 00000000..41836279 --- /dev/null +++ b/packaging_apps_trap_fr.md @@ -0,0 +1,113 @@ +# Usage de trap + +Trap est une commande interne du shell permettant de capturer les signaux de sorties des commandes exécutées dans le shell courant et ses sous-shell. + +Toute commande exécutée dans le shell renvoi un signal de sortie à la fin de son exécution. Soit 0 pour indiquer la fin de l'exécution de la commande, soit une valeur non nulle indiquant une interruption de celle-ci. + +Dans le cas des scripts d'installation, trap va nous permettre de détecter une commande interrompue au milieu de son exécution en raison d'une erreur. +La détection de cette erreur permettra de mettre fin à l'installation et de renvoyer vers le script remove en vue d'un nettoyage des résidus. + +Trap s'utilise de la manière suivante : + +```bash +trap 'commande' liste_de_signaux +``` + +Pour simplifier, nous utiliserons le pseudo signal `ERR` pour rassembler tout les signaux d'erreur. + +On pourrait ajouter simplement cette ligne en début de script : + +```bash +trap "echo Erreur d'installation" ERR +``` + +Après cette ligne, toute commande provoquant une erreur déclenchera l'affichage du message indiqué par trap. +L'ensemble du shell courant et du sous-shell sera pris en charge par trap. + +Pour arrêter la capture des signaux par trap, on peut simplement désactiver trap. + +```bash +trap ERR +``` + +Ou ignorer complètement les signaux de sorties concernés. + +```bash +trap "" ERR +``` + +Dans ce dernier cas, le signal d'interruption n'aura aucun effet sur le shell. Cela peux être utile pour une commande dont la sortie en erreur ne doit pas impacter le déroulement du script d'installation. + +### Stopper le script d'installation et nettoyer avant de quitter. +En cas d'erreur du script d'installation, trap doit nous permettre de stopper l'installation, puis de nettoyer les fichiers résiduels partiellement installés avant de quitter le script. +Pour cela, nous allons prévoir une fonction dédiée à l'échec de l'installation. + +```bash +# Delete files and db if exit with an error +EXIT_PROPERLY () { + trap ERR # Disable trap + echo -e "\e[91m \e[1m" # Shell in light red bold + echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" + + echo -e "\e[22m" # Remove bold + + # Clean hosts + sudo sed -i '/#leed/d' /etc/hosts + + if [ $ynh_version = "2.2" ]; then + /bin/bash ./remove # Call the script remove. In 2.2, this behavior is not automatic. + fi + exit 1 +} +``` + +La fonction EXIT_PROPERLY doit indiquer à l'utilisateur l'échec de l'installation et nettoyer les résidus qui ne seront pas pris en charge par le script remove. Ce dernier sera automatiquement appelé à la suite de l'exit 1 avec YunoHost 2.4 + +Après cette fonction, on peut mettre en place la capture des signaux par trap. + +```bash +trap EXIT_PROPERLY ERR +``` + +Si une commande échoue durant l'installation, la fonction EXIT_PROPERLY sera appelée, mettant fin à l'installation. + +Pour simplifier la capture des signaux et les ignorer pour des commandes ponctuelles. Il est possible de placer les appels à trap dans des fonctions. + +```bash +TRAP_ON () { # Activate signal capture + trap EXIT_PROPERLY ERR # Capturing exit signals on error +} +TRAP_OFF () { # Ignoring signal capture until TRAP_ON + trap '' ERR # Ignoring exit signals +} +``` + +> Ma fonction TRAP_OFF ne fonctionne pas. Pour une raison qui m'échappe. Utiliser `trap '' ERR` directement fonctionne très bien en revanche. + +Pour gérer les éventuelles erreur d'installations, on peut donc simplement ajouter ce morceau de code après la récupération des arguments : + +```bash +# Delete files and db if exit with an error +EXIT_PROPERLY () { + trap ERR # Disable trap + echo -e "\e[91m \e[1m" # Shell in light red bold + echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" + + echo -e "\e[22m" # Remove bold + + # Clean hosts + sudo sed -i '/#leed/d' /etc/hosts + + if [ $ynh_version = "2.2" ]; then + /bin/bash ./remove # Call the script remove. In 2.2, this behavior is not automatic. + fi + exit 1 +} +TRAP_ON () { # Activate signal capture + trap EXIT_PROPERLY ERR # Capturing exit signals on error +} +TRAP_OFF () { # Ignoring signal capture until TRAP_ON + trap '' ERR # Ignoring exit signals +} +TRAP_ON +``` diff --git a/packaging_apps_virtualbox.md b/packaging_apps_virtualbox.md new file mode 100644 index 00000000..3516b4b8 --- /dev/null +++ b/packaging_apps_virtualbox.md @@ -0,0 +1,91 @@ +# Create a development environment with VirtualBox + +This documentation page aims at explaining how to setup a YunoHost virtual server, using VirtualBox, to work on application packaging. + +## Why use VirtualBox rather than an actual YunoHost production server to package an application? + +There are mostly two reasons why one should prefer a virtual server rather than their own server: + +- You can freely torture a virtual server without any risk of breaking it, since you can always restore it to a former working state. It would really be a pity to break your own real server! +- In a typical workflow, a virtual server state would be restored from a known snapshot before starting any work on it, so as to always keep a clean system, without any residues of a former installation. This allows to always be as close a possible to a user first installation. + +We will discuss VirtualBox in this guide, as it comes with an easy to use GUI. If you prefer a pure commandline approach to handling your virtual machine, you should use [ynh-dev](/dev) instead. + +## Installing VirtualBox + +From a GNU/Linux system, simply install the `virtualbox-qt` package. +From a Windows or macOS machine, you'd have to refer to the [VirtualBox download page](https://www.virtualbox.org/wiki/Downloads) to fetch the appropriate installation package. The virtualbox package is deprecated since Debian 9, a `.deb` installation package is available on the abovementioned referenced page. + +Whatever your system, there should be no need to install the extension pack or the guest addons. + +## Installing YunoHost on VirtualBox + +Simply follow the appropriate documentation for [installing on VirtualBox](/install_on_virtualbox) then the [post-installation](/postinstall) guide. + +During post-install, there is no need to use an actual domain name in `.nohost.me` or `.noho.st`, as your virtual server won't be reachable from outside your local network. +We prefer using a fake domain name which will remain associated with your local network, for instance `yunohost.packaging`. + +This domain name, not being registered with any DNS server, will be stored in the `hosts` file of the computer which will need to access it. Please refer to the documentation about [using a local DNS](/dns_local_network) for more information. + +Your virtual server is now installed. Before starting to use it, we'll see how to create a first snapshot and how to use that feature. + +## Using snapshots + +VirtualBox becomes even more interesting with its snapshotting feature, which allow to store the virtualized machine state and restore it quickly. +We'll also see how to use multiple snapshot branches to work on different apps on the same machine. + +#### Now, let's create a first snapshot + +Before starting to play with the virtual machine, now is a good time to take a first snapshot, so that we don't have to redo the full install process every time. +First, stop the virtual machine. + +Managing snapshots is done in the 'Snapshots' tab + + +Here, we're creating a first snapshot + + +We can now start to work on the virtual machine and create as many snapshots as desired for each milestone of our modifications. + + + +In this example, after having validated our particular package removal works fine, we can easily get back in time by restoring the virtual machine to its previous state with the package still installed. +Once the package will be fully functional, it will just be a matter of deleting the snaphots associated with this package work to get the virtual machine back to its initial state. +For our next test, we will then be back to a freshly installed YunoHost serveur, without any trace of package installation. + +#### Using multiple snapshot branches + +In addition to successive snapshots, it is also possible to create a new machine state and additional snapshots from an older machine snapshot/state. + + + +In this example, I have created two branches since my successful package installation, so as to independently test just the application removal, upgrade and backup/restore steps. +I eventually got back to the virtual machine base state to start a new test on another package, without dropping my former test whatsoever. +At any time, it is possible to get back to a previous snapshot simply by restoring it. +The machine always start on the "Current state" state. + + + +> It is always possible to create a new snapshot, whether the machine is stopped or not. To restore a snapshot however, the machine cannot be running. + +## How do we connect to the virtual machine? + +Virtual machine connection is similar to any YunoHost server connection, that is by using `ssh`. + +```bash +ssh admin@my.domain +``` +Or, if the domain has not been added to the `hosts` file, via its IP address. + +```bash +ssh admin@11.22.33.44 +``` + +We can now work on the virtual machine using the commandline. + +To easily copy the package files or use a graphical text editor, one can also connect via `sftp` using a file explorer. + +It's a simple matter of using the `sftp://admin@my.domain/` address. + + +> Note: on Windows or macOS, the file explorer does not natively support the `sftp` protocol... diff --git a/packaging_apps_virtualbox_fr.md b/packaging_apps_virtualbox_fr.md new file mode 100644 index 00000000..b2ef0158 --- /dev/null +++ b/packaging_apps_virtualbox_fr.md @@ -0,0 +1,92 @@ +# Créer un environnement de développement avec VirtualBox + +Cette page de documentation va vous expliquer comment mettre en place un serveur YunoHost virtuel, avec VirtualBox, pour travailler sur le packaging d'application. + +## Pourquoi utiliser VirtualBox plutôt qu’un serveur YunoHost de production pour packager une application ? + +Il y a principalement deux raisons pour préférer l'usage d'un serveur virtuel plutôt que votre propre serveur : + +- Vous pouvez torturer à loisir un serveur virtuel sans courir le risque de le casser, puisque vous pourrez toujours restaurer un état précédent. Alors qu'il serait dommage de casser son propre serveur ! +- Un serveur virtuel sera restauré avant de travailler dessus, pour garder en permanence un système sans résidus d'une précédente installation. Cela permet de se rapprocher au plus près d'une première installation par un utilisateur. + +Nous parlerons ici de VirtualBox, pour son approche graphique facile à utiliser. Si vous préférez une interface en ligne de commande pour la gestion de la machine virtuelle, tournez-vous de préférence vers [ynh-dev](/dev). + +## Installer VirtualBox + +Depuis un système GNU/Linux, installer simplement le paquet `virtualbox-qt`. +Depuis un système Windows ou macOS, il faudra se référer à la page de [téléchargement de VirtualBox](https://www.virtualbox.org/wiki/Downloads) pour récupérer le fichier d'installation adéquat. Le paquet virtualbox est déprécié depuis debian 9, un fichier d'installation .deb est disponible sur la même page. + +Quel que soit votre système, il ne devrait pas être nécessaire d'installer l'extension pack ou les additions invités. + +## Installer YunoHost sur VirtualBox + +Suivez simplement la documentation idoine pour l'[installation sur VirtualBox](/install_on_virtualbox) puis la documentation sur la [post-installation](/postinstall). + +Lors de la post-installation, il est inutile d'utiliser un nom de domaine en `.nohost.me` ou `.noho.st`, votre serveur virtuel ne sera pas accessible depuis l'extérieur de votre réseau local. +Nous préférerons l'usage d'un faux nom de domaine qui restera cantonné au réseau local. Par exemple, `yunohost.packaging`. + +Ce nom de domaine n'étant enregistré dans aucun serveur DNS, on l'enregistrera dans le fichier `hosts` de l'ordinateur qui y accédera. Voir la documentation sur le [DNS local](/dns_local_network). + +Votre serveur virtuel est à présent installé. Avant de commencer à l'utiliser, nous allons voir comment créer un premier instantané et comment les utiliser. + +## Utiliser les instantanés + +VirtualBox prend tout son intérêt avec l'usage des instantanés, qui permettent d'enregistrer l'état de la machine à un moment donné et d'y revenir rapidement. +Nous verrons également par la suite comment utiliser plusieurs branches d'instantanés pour travailler sur des apps différentes sur une même machine. + +#### Tout d'abord, créons un premier instantané + +Avant de commencer à jouer avec la machine virtuelle, il convient de faire un premier instantané, pour ne pas avoir à recommencer le processus d'installation à chaque fois. +Arrêtez la machine virtuelle avant tout. + +La gestion des instantanés se fait dans l'onglet "Instantanés" + + +Et on crée un premier instantané + + +À présent on peut commencer à travailler sur la machine virtuelle et créer autant d'instantanés que souhaité pour jalonner le travail. + + + +Dans cet exemple, on pourra facilement revenir en arrière, après avoir testé la suppression du package par exemple et restaurer la machine virtuelle dans l'état précédent avec le package encore installé avec succès. +Et lorsque le package sera pleinement fonctionnel, il suffira de supprimer les instantanés liés à ce package pour revenir à l'état initial de la machine virtuelle. +Nous disposerons ainsi d'un serveur YunoHost vierge de toute installation d'application pour notre prochain test. + +#### Utiliser plusieurs branches d'instantanés + +En plus de l'usage d'instantanés successifs, il est également possible de dériver un nouvel état actuel et de nouveaux instantanés depuis un instantané plus ancien que le dernier. + + + +Dans cet exemple, j'ai dérivé deux branches depuis mon installation réussie du package, pour tester indépendamment la suppression simple de l'application, l'upgrade et le backup/restore. +Finalement je suis reparti de la base de la machine virtuelle pour démarrer un nouveau test sur un autre package, sans pour autant abandonner le précédent test. +À tout moment, il est possible de revenir sur un instantané précédent en le restaurant. +La machine démarrera toujours sur l'"État actuel". + + + +> Il est toujours possible de créer un nouvel instantané, que la machine soit à l'arrêt ou non. +Mais pour restaurer un instantané, la machine ne doit pas être en cours d'exécution. + +## Comment se connecter à la machine virtuelle ? + +On se connecte à la machine virtuelle comme à n'importe quel serveur YunoHost, en utilisant ssh. + +```bash +ssh admin@mon.domain +``` +Ou, si le domaine n'a pas été ajouté dans le hosts, en utilisant son ip. + +```bash +ssh admin@11.22.33.44 +``` + +À présent, on peut travailler sur la machine virtuelle en CLI. + +Pour copier facilement les fichiers du package ou utiliser un éditeur de texte graphique, on peut également se connecter en sftp avec un explorateur de fichier. + +Il suffit de se connecter à l'adresse `sftp://admin@mon.domain/` avec l'explorateur. + + +> Sur Windows ou macOS, l'explorateur de fichier ne supporte pas nativement le protocole sftp… diff --git a/plug_and_boot.md b/plug_and_boot.md new file mode 100644 index 00000000..ad25113e --- /dev/null +++ b/plug_and_boot.md @@ -0,0 +1,30 @@ + +# Boot and connect to your server + +* Plug the SD card (for ARM boards) +* Plug the ethernet cable +* Plug the power supply +* Wait a couple minutes for your server to boot + +### Connecting to your server + +* Make sure that your computer (desktop/laptop) is connected to the same local network (i.e. same internet box) as your server. +* Open a browser and type `https://yunohost.local` in the address bar. +* If your server is up, you will very likely encounter a security warning. This is because your server is for now using what's called a "self-signed certificate" - and because we're accessing the server through a special `.local` domain. You will later be able to add a proper domain and install a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). In the meantime, you should add a security exception to accept the current certificate. +* If you are NOT able to join your server using the `yunohost.local` domain, try to [find the local IP of your server](/finding_the_local_ip) - then in your browser's address bar, type `https://192.168.x.y` +* [Proceed with the initial configuration (post-installation)](/postinstall) + +--- + +#### [Optional] Connecting your server to the internet through WiFi + +* If you want your server to connect using WiFi, you may configure it as explained [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md). +* Alternatively, you can mount the second partition of the SD card and edit the `wpa-supplicant.conf` file prior to boot the card for the first time. On Windows you can use [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/) for this - just don't forget to unmount everytime for changes to take effect. + +--- + +#### [Optional] Direct access with a screen and keyboard + +You can also boot your server with a screen and keyboard connected to it to see how the boot process is going on (which can also be useful to troubleshoot issues) and to have a direct access to it. + +
diff --git a/plug_and_boot_es.md b/plug_and_boot_es.md new file mode 100644 index 00000000..d73cdd0d --- /dev/null +++ b/plug_and_boot_es.md @@ -0,0 +1,17 @@ +# Conectar e iniciar el servidor + +* Conecta tu servidor con un cable Ethernet (RJ-45) **directamente sobre tu router principal**. También puedes configurar la conexión wifi como explicado [aquí (fr)](http://raspbian-france.fr/connecter-wifi-raspberry-pi-3/). El wifi también puede configurarse sin haber iniciado la tarjeta, "montando" la segunda partición de la tarjeta y finalmente editando el archivo wpa-supplicant.conf. En Windows, puedes utilizar [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/), no olvides de "unmount" para que los cambios estén integrados. + +* No te olvides de **conectar una pantalla** si quieres observar cómo ocurre el inicio, y un teclado si quieres un acceso con **línea de comandos** a tu servidor. + +* Inicia el servidor, el Raspberry Pi va a reiniciarse si-mismo una primera vez, pues espera hasta que veas un gran `Y` cuadrado : + +
+ +
+ +

+*Nota el valor `IP` visible en la pantalla : esto es **la dirección IP local** de tu servidor.* +

+ +
diff --git a/plug_and_boot_fr.md b/plug_and_boot_fr.md new file mode 100644 index 00000000..9304e31d --- /dev/null +++ b/plug_and_boot_fr.md @@ -0,0 +1,29 @@ +# Démarrer et se connecter à son serveur + +* Mettez la carte SD dans le serveur (pour le cas des cartes ARM) +* Branchez le cable ethernet +* Branchez l'alimentation +* Laissez quelques minutes à votre serveur pour démarrer + +### Se connecter à son serveur + +* Assurez vous que votre ordianteur (de bureau ou portable) est connecté au même réseau local (c'est-à-dire la même box internet) que votre serveur. +* Ouvrez un navigateur internet et tapez `https://yunohost.local` dans la barre d'adresse. +* Si votre serveur est actif, vous rencontrerez très probablement un avertissement de sécurité. Cet avertissement viens du fait que votre serveur utilise pour le moment ce qui s'appelle un "certificat auto-signé" - et que nous utisons un domaine spécial en `.local`. Vous pourrez plus tard ajouter 'vrai' domaine et un certificat automatiquement reconnus par les navigateurs comme décrit dans la page sur les [Certificats](/certificate). En attendant, ajoutez une exception de sécurité pour accepter le certificat actuel. +* Si vous n'arrivez pas à contacter votre serveur avec `yunohost.local`, essayez de [trouver l'IP locale de votre serveur](/finding_the_local_ip) - puis dans la barre d'adresse de votre navigateur, tapez `https://192.168.x.y` +* [Effectuer la configuration initiale (post-installation)](/postinstall) + +--- + +#### [Optionnel] Connecter le serveur à internet en WiFi + +* Vous pouvez aussi configurer la connexion wifi comme expliqué [ici](http://raspbian-france.fr/connecter-wifi-raspberry-pi-3/). +* La configuration wifi peut aussi se faire sans avoir booté sur la carte, en "montant" la deuxième partition de la carte et enfin éditer le fichier `wpa-supplicant.conf`. Sur Windows vous pouvez utiliser [Paragon ExtFS](https://www.paragon-software.com/home/extfs-windows/). Ne pas oublier de "unmount" pour que les changements soient pris en compte. + +--- + +#### [Optionnel] Accès direct avec un écran et clavier + +* Il est possible de brancher un écran et clavier sur votre serveur pour vérifier que le processus de démarrage (boot) se passe bien et pour avoir un accès direct en console. + +
diff --git a/port_forwarding.md b/port_forwarding.md new file mode 100644 index 00000000..c24f5542 --- /dev/null +++ b/port_forwarding.md @@ -0,0 +1,6 @@ +# Port forwarding + +The sketch below tries to briefly summarize the role and necessity of port +forwarding when setting up a server at home. + + diff --git a/port_forwarding_es.md b/port_forwarding_es.md new file mode 100644 index 00000000..3ff93dc3 --- /dev/null +++ b/port_forwarding_es.md @@ -0,0 +1,5 @@ +# Redirección de puertos + +El esquema aquí abajo intenta explicar brevemente el rol de la redirección de los puertos durante la instalación de un servidor en tu casa. + + diff --git a/port_forwarding_fr.md b/port_forwarding_fr.md new file mode 100644 index 00000000..1793b27b --- /dev/null +++ b/port_forwarding_fr.md @@ -0,0 +1,6 @@ +# Redirection de ports + +Le schéma ci-dessous tente d'expliquer brièvement le rôle de la redirection des +ports lors de la mise en place d'un serveur à la maison. + + diff --git a/postinstall.md b/postinstall.md new file mode 100644 index 00000000..c9e671b9 --- /dev/null +++ b/postinstall.md @@ -0,0 +1,69 @@ +# Post-Installation + +The step called "**post-installation**" is actually the initial configuration of YunoHost. It has to be done just after the installation of the system itself. + +NB: if you are in the process of restoring a server from scratch **and** you have a yunohost-made backup, you can skip this process and follow through with the "restoring during the postinstall" step, in the [backup](/backup) page. + +### From the web interface + +You can perform the post-installation with the web interface by entering in your browser : +* **`yunohost.local`** OR **the local IP address of your server** if it is on your local network (e.g. at home !). The address typically looks like `192.168.x.y` (see [finding your local IP](/finding_the_local_ip)) +* **the public IP address of your server** if your server is not on your local network. Typically, if you own a VPS, your VPS provider should have given you the IP of the server. + +During the first visit, you will very likely encounter a security warning related to the certificate used by the server. For now, your server uses a self-signed certificate. You will later be able to add a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). For now, you should add a security exception to accept the current certificate. + +You should then land on this page : + + + +

Preview of the Web post-installation

+ +### From the command line + +You can also perform the postinstallation with the command `yunohost tools postinstall` directly on the server, or [via SSH](/ssh). + + + +

Preview of the command-line post-installation

+ +
+ +## Informations asked + +### Main domain + +This is the first domain name linked to your YunoHost server, but also the one which will be used by your server's users to access the **authentication portal**. It will thus be **visible by everyone**, choose it wisely. + +* If you do not have a domain name, or if you want to use the YunoHost's DynDNS service, choose a sub-domain of **.nohost.me**, **.noho.st** or **.ynh.fr** (e.g. `homersimpson.nohost.me`). Provided that it's not already taken, the domain will be configured automatically and you won't need any further configuration step. + +* If you do know what **DNS** is, you probably want to configure your own domain name here. In this case, please refer to the [DNS page](/dns) page for more informations. + +* If you don't own a domain name and don't want a **.nohost.me**, **.noho.st** or **.ynh.fr**, you can use a local domain. More information on how to setup a local domain can be found [here](dns_local_network). + +### Administration password + +This password will be used to access to your server's [administration interface](/admin). You would also use it to connect via **SSH** or **SFTP**. In general terms, this is your **system's key**, [choose it carefully](http://www.wikihow.com/Choose-a-Secure-Password). + +
+ +--- + +## Congratz! + +If you got so far and saw 'YunoHost has been successfully installed' (web +postinstall) or 'YunoHost has been correctly configured', then congratulations! + +### What now ? + +- If you're self-hosting at home and without a VPN, you need to [make sure to + correctly forward ports on your router/Internet box](isp_box_config) ; +- If you're using your own domain name (i.e. not a .nohost.me / .noho.st), you + need to [configure it according to the recommended DNS + configuration](dns_config) ; +- If you cannot configure your domain name yet (because you didn't register it + yet, or because this is a test domain), see last paragraph + [here](dns_local_network) for a workaround ; +- Don't be too afraid of the [certificate warning](certificate), you'll probably + be able to install a Let's Encrypt certificate :). +- Have a look at [the available apps](apps) ! + diff --git a/postinstall_es.md b/postinstall_es.md new file mode 100644 index 00000000..f7566951 --- /dev/null +++ b/postinstall_es.md @@ -0,0 +1,65 @@ +# Post-instalación + +La etapa que llamamos « **post-instalación** » de hecho es la etapa de configuración inicial de YunoHost. Se ejecuta después de la **instalación** del sistema mismo. + +NB : Si estàs en el proceso de instalar de nuevo a un servidor **y** que ya tienes un archivo creada por yunohost, no debes seguir a està etapa y encontro seguir a la seccion "Restoring during the postinstall" de la pagina [backup](/backup). + +### Vía la interfaz web + +Puedes acceder a la post-instalación gráfica entrando en un navegador web : +* la dirección **IP local de tu servidor** si éste está conectado a tu red local (en general `192.168.x.x`, ver ['Encontrar mi IP' en la página sobre SSH](/ssh)) +* la dirección **IP pública de tu servidor** si éste no está conectado a tu red local (por ejemplo, si es un VPS, tu proveedor debería haberte transmitido la dirección IP). + +Durante la primera visita, encontrarás muy probablemente una advertencia de seguridad relacionada al certificado utilizado. De momento, tu servidor utiliza un certificado autofirmado. Después, podrás utilizar un certificado automáticamente reconocido por los navegadores como descrito en la página sobre los [Certificados](/certificate). Mientras tanto, añade una excepción de seguridad para aceptar el certificado vigente. + +Luego, llegas en esta página : + + + +*

Vistazo de la post-instalación Web

* + +### Vía la interfaz de línea de comando + +También puedes acceder a la post-instalación entrando el comando `yunohost tools postinstall` directamente en el servidor o [en SSH](/ssh). + + + +*

Vistazo de la post-instalación con línea de comando

* + +## Informaciones solicitadas + +### Dominio principal + +Es el nombre de dominio que permitirá el acceso a tu servidor así como al portal de autenticación de los usuarios. Entonces estará **visible por todo el mundo** : elígelo en consecuencia. + +* YunoHost te propone un DNS dinámico, proveando nombres de dominio del tipo *midominio.nohost.me*, *midominio.noho.st* o *midominio.ynh.fr*. Si no posees un nombre de dominio y/o que quieres aprovechar de este servicio, elige un dominio terminando con `.nohost.me`, `.noho.st` o `.ynh.fr`. Si no está utlizado ya, el dominio automáticamente estará vinculado a tu servidor YunoHost, y no tendrás más etapas de configuración. + +* Si, en cambio, dominas la noción de **DNS**, puedes utilizar tu propio nombre de dominio. En este caso, refiérete a la página [yunohost.org/dns](/dns) por más información. + +* Si no tienes nombre de dominio y que no quieres uno que acabe con *.nohost.me*, *.noho.st* ou *.ynh.fr*, puedes utilizar un dominio local. Más información sobre cómo [acceder a tu servidor desde la red local](/dns_local_network). + + +### Contraseña de administración + +Es la contraseña que permitirá acceder a la [interfaz de administración](/admin) de tu servidor. También podrás utilizarla para conectarte remotamente vía **SSH**, o vía **SFTP** para transferir archivos. + +De manera general, ésta es la **llave de entrada en tu sistema**, pues piensa en **[elegirla atentamente](https://es.wikihow.com/escoger-una-contrase%C3%B1a-segura)**. + +
+ +--- + +## Enhorabuena ! + +Si llegas aquí después de haber visto “YunoHost fue instalado con éxito" desde tu navegador ou tu interfaz de línea de comando, pues felicitaciones ! + + +### ¿ Y ahora ? + +- Si te auto-alojas en casa y sin VPN, tienes que asegurarte que [los puertos de tu caja internet estén redirigidos](/isp_box_config) ; +- Si utilizas tu propio nombre de dominio (i.e. que no sea un nohost.me / + noho.st), tienes que [configurar el nombre de dominio según la configuración recomendada](/dns_config) ; +- Si no puedes configurar el nombre de dominio de momento (porque todavía no lo has comprado, ou porque es un dominio test), puedes solucionar temporalmente el problema con las instrucciones del último párrafo [aquí](/dns_local_network) ; +- No te asustes demasiado por [la advertencia a propósito del certificado](/certificate), tendrás la posibilidad de obtener un certificado Let's Encrypt :). +- Echa un vistazo a las [aplicaciones disponibles](/apps) ! + diff --git a/postinstall_fr.md b/postinstall_fr.md new file mode 100644 index 00000000..1bd4d004 --- /dev/null +++ b/postinstall_fr.md @@ -0,0 +1,71 @@ +# Post-Installation + +L’étape appelée « **post-installation** » est en fait l’étape de configuration initiale de YunoHost. Il faut l’exécuter après l’**installation** du système en lui-même. + +NB : Si vous êtes en train de restaurer un système complet **et** que vous disposez d'un fichier de sauvegarde généré par YunoHost, vous devez sauter cette étape et vous référer à la section "Restaurer durant la postinstallation" sur la page [sauvegardes](/backup). + +### Via l'interface web + +Vous pouvez accéder à la post-installation graphique en entrant dans un navigateur web : +* l'adresse **`yunohost.local`** OU l’adresse **IP locale de votre serveur** si celui-ci est connecté à votre réseau local (généralement `192.168.x.x`, voir ['Trouver son IP locale'](/finding_the_local_ip)) +* l’adresse **IP publique de votre serveur** si celui-ci n’est pas connecté à votre réseau local (par exemple dans le cas d'un VPS, votre fournisseur devrait vous avoir transmis l'adresse IP). + +Lors de la première visite, vous rencontrerez très probablement un avertissement de sécurité lié au certificat utilisé. Pour le moment, votre serveur utilise un certificat auto-signé. Vous pourrez plus tard ajouter un certificat automatiquement reconnus par les navigateurs comme décrit dans la page sur les [Certificats](/certificate). En attendant, ajoutez une exception de sécurité pour accepter le certificat actuel. + +Vous arrivez ensuite sur cette page : + + + +*

Aperçu de la post-installation Web

* + +### Via la ligne de commande + +Vous pouvez aussi y accéder en entrant la commande `yunohost tools postinstall` directement sur le serveur ou [en SSH](/ssh). + + + +*

Aperçu de la post-installation en ligne de commande

* + +## Informations demandées + +### Domaine principal + +C’est le nom de domaine qui permettra l’accès à votre serveur ainsi qu’au portail d’authentification des utilisateurs. Il sera donc **visible par tout le monde**, choisissez-le en conséquence. + +* YunoHost propose un service de DNS dynamique fournissant des noms de domaine de type *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*. Si vous ne possédez pas de nom de domaine et/ou que vous souhaitez profiter de ce service, choisissez un domaine se terminant en `.nohost.me`, `.noho.st` ou `.ynh.fr`. S'il n'est pas déjà utilisé, le domaine sera automatiquement rattaché à votre serveur YunoHost, et vous n’aurez pas d’étape de configuration supplémentaire. + +* Si en revanche vous maîtrisez la notion de **DNS**, vous pouvez utiliser votre propre nom de domaine. Dans ce cas, référez-vous à la page [yunohost.org/dns](/dns) pour plus d’informations. + +* Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en *mondomaine.nohost.me*, *mondomaine.noho.st* ou *mondomaine.ynh.fr*, vous pouvez utilisez un domaine local. Plus d'infos sur comment [accéder à son serveur depuis le réseau local](/dns_local_network). + + +### Mot de passe d’administration + +C’est le mot de passe qui vous permettra d’accéder à l’[interface d’administration](/admin) de votre serveur. Vous pourrez également l’utiliser pour vous connecter à distance via **SSH**, ou en **SFTP** pour transférer des fichiers. + +De manière générale, c’est la **clé d’entrée à votre système**, pensez donc à la **[choisir attentivement](http://www.commentcamarche.net/faq/8275-choisir-un-bon-mot-de-passe)**. + +
+ +--- + +## Félicitations ! + +Si vous arrivez ici après avoir vu "YunoHost a été installé avec succès" depuis +votre navigateur ou la ligne de commande, alors félicitations ! + +### Et maintenant ? + +- Si vous vous auto-hébergez à la maison et sans VPN, il faut vous assurer + de bien [rediriger les ports de votre box internet](/isp_box_config) ; +- Si vous utilisez votre propre nom de domaine (c.-à-d. pas un nohost.me / + noho.st), il vous faut [configurer le nom de domaine d'après la configuration + recommandée](/dns_config) ; +- Si vous ne pouvez pas configurer le nom de domaine pour le moment (parce qu'il + n'est pas encore acheté, ou parce que c'est un domaine de test), vous pouvez + contourner temporairement le problème avec les instructions du dernier + paragraphe [ici](/dns_local_network) ; +- Ne soyez pas trop effrayé par [l'avertissement à propos du + certificat](/certificate), vous aurez probablement la possibilité + d'installer un certificat Let's Encrypt :). +- Jetez un œil aux [applications disponibles](/apps) ! diff --git a/project_budget.md b/project_budget.md new file mode 100644 index 00000000..7d00f71b --- /dev/null +++ b/project_budget.md @@ -0,0 +1,32 @@ +# Project budget + +# Estimated budget for 2020/2021 + +## Expected revenues + +* Donations: 3000€/year +* Grant from NLNet: 20K€ + +## Expected expenses + +* Development: 20K€ +* Server renting: 500€ + * VPS Scaleway: 20.33*12: 243.96€/year + * VPS Digital O. (forum): 172.80€/year +* Domain names: ~150€ + * nohost.me: 11.99€HT/year + * ynh.fr: 6.99€HT/year (to be confirmed with frju?) + * noho.st: ~35€ TTC/year + * YunoHost.org: 13.99€HT/year + * YunoHost.com: 9.99€HT/year + * labriqueinter.net: 12.49€HT/year + * internetcu.be: 17.99€HT/year +* Communication: ~400€ +* Travel (e.g. to go to conferences): ~700€ + * AG FFDN 2020: 225€ (en tout) + * Event colibris: 150€ + * FOSDEM ou autre conf: 300€ +* Bank account fees: 7x12€ => ~100€ +* Brique Camp: 500€ + +**Balance 2020-2021**: +650€ diff --git a/project_budget_fr.md b/project_budget_fr.md new file mode 100644 index 00000000..608578bf --- /dev/null +++ b/project_budget_fr.md @@ -0,0 +1,35 @@ +# Budget du projet + +# Budget prévisionnel pour 2019/2020 + +## Revenus attendus + +* Dons via Liberapay : 3000€ +* Subvention de NLNet : 20K€ + +## Dépenses prévues + +* Developpement : 20K€ +* Location Serveur : ~500 € + * VPS Scaleway: 20.33*12: 243.96€/year + * VPS Digital O. (forum): 172.80€/year +* Noms de domaine : ~150 € + * nohost.me : 11.99 €HT/ans + * ynh.fr : 6.99 €HT/ans (doit être confirmé avec frju ?) + * noho.st : ~35 €TTC/ans + * yunohost.org : 13.99 €HT/ans + * yunohost.com : 9.99 €HT/ans + * labriqueinter.net : 12.49 €Ht/ans + * internetcu.be : 17.99 €HT/ans +* Communication : ~400 € + * Stickers : 100€ + * Tracts : 100€ + * T-shirt : 200€ +* Déplacements (ex. : aller aux conférences) : ~700 € + * AG FFDN 2020 : 225€ (en tout) + * Event colibris : 150€ + * FOSDEM ou autre conf : 300€ +* Compte bancaire fees : 7×12 € soit ~100 € +* Brique Camp : 500€ + +**Balance 2020-2021** : +650 € diff --git a/project_organization.md b/project_organization.md new file mode 120000 index 00000000..c69cb700 --- /dev/null +++ b/project_organization.md @@ -0,0 +1 @@ +orga/yunohost_project_organization.md \ No newline at end of file diff --git a/project_organization_fr.md b/project_organization_fr.md new file mode 120000 index 00000000..87648596 --- /dev/null +++ b/project_organization_fr.md @@ -0,0 +1 @@ +orga/yunohost_project_organization_fr.md \ No newline at end of file diff --git a/registrar.md b/registrar.md new file mode 100644 index 00000000..dca14d4d --- /dev/null +++ b/registrar.md @@ -0,0 +1,8 @@ +# Registar + +Here is a list of Registrars to book domain names: +* [OVH](http://ovh.com/) +* [GoDaddy](https://godaddy.com/) +* [Gandi](http://gandi.net/) +* [Namecheap](https://www.namecheap.com/) +* [BookMyName](https://www.bookmyname.com/) diff --git a/registrar_fr.md b/registrar_fr.md new file mode 100644 index 00000000..5a72830b --- /dev/null +++ b/registrar_fr.md @@ -0,0 +1,8 @@ +# Bureaux d’enregistrement + +Voici une liste des bureaux d’enregistrement pour acheter un nom de domaine : +* [OVH](http://ovh.com/) +* [GoDaddy](https://godaddy.com/) +* [Gandi](http://gandi.net/) +* [Namecheap](https://www.namecheap.com/) +* [BookMyName](https://www.bookmyname.com/) diff --git a/security.md b/security.md new file mode 100644 index 00000000..7552e072 --- /dev/null +++ b/security.md @@ -0,0 +1,180 @@ +# Security + +YunoHost has been developed to provide the best security without too much complication. Every protocol used in YunoHost is **encrypted**, only password's hashes are stored and by default each user is able to access their personal directory only. + +Two things remain important to note: + +* Installing additional apps can **significantly increase** the number of potential security flaws. Do not hesitate to get information about security flaws **before installing an app**, and try to install only apps which will suit your needs. + +* The fact that YunoHost is a well-spread software increases the chances of an attack. If a flaw is discovered, it could potentially affect all the YunoHost instances at once. Keep your system **up-to-date** to remain safe. + +*If you need advice, do not hesitate to [ask us](/help).* + +*To talk about security flaws, contact the [YunoHost security team](/security_team).* + +--- + +## Improve security +If your YunoHost server is used in a critical production environment, or if you want to improve its safety, you may want to follow those good practices. + +**Attention:** *Following those instructions requires advanced knowledge of system administration.* + +### SSH authentication via key +By default, the SSH authentication uses the administration password. Deactivating this kind of authentication and replacing it by a key mechanism is advised. + +**On your client**: + +```bash +ssh-keygen +ssh-copy-id -i ~/.ssh/id_rsa.pub +``` + +Type your admnistration password and your key will be copied on your server. + +**On your server**, edit the SSH configuration file, in order to deactivate the password authentication. + +```bash +nano /etc/ssh/sshd_config + +# Modify or add the following line +PasswordAuthentication no +``` + +Save and restart the SSH daemon. +```bash +systemctl restart ssh +``` +--- + +### Modify the SSH port + +To prevent SSH connection attempts by robots that scan the Internet for any server with SSH enabled, you can change the SSH port. + +**On your server**, edit the ssh configuration file, in order to modify the SSH port. + +```bash +nano /etc/ssh/sshd_config +``` +**Search the line "Port" and replace** port number (by default 22) by another unused number +```bash +# What ports, IPs and protocols we listen for +Port 22 # to replace by 9777 for example +``` + +**Open the port** in the firewall (you can use `-6` option to deny ipv4 connection) +```bash +yunohost firewall allow TCP 9777 +``` + +Save and restart the SSH daemon. Switch over to the new port by restarting SSH. +```bash +systemctl restart ssh +``` +Then restart the iptables firewall and close the old port in iptables. + +```bash +yunohost firewall reload +yunohost firewall disallow TCP # port by default 22 +``` + +You also need to give `fail2ban` the new SSH port. + +To do that you need to create the configuration file `my_ssh_port.conf` with the command + + +```bash +nano /etc/fail2ban/jail.d/my_ssh_port.conf +``` + +and you can then fill it in with + +```ini +[sshd] +port = + +[sshd-ddos] +port = +``` + +Finally you have to restart `fail2ban` in order to apply the new configuration + +```bash +systemctl restart fail2ban +``` + +**For the next SSH connections **, you need to add the `-p` option followed by the SSH port number. + +**Sample**: + +```bash +ssh -p admin@ +``` + +--- + +### Change the user authorized to connect via SSH + +To avoid multiple forced login attempts to the admin account by robots, change the authorized user who can connect. + +
+In the case of a key authentication, a brute force attack has no chance of succeeding. This step is not really useful in this case. +
+ +**On your server**, add a user +```bash +sudo adduser user_name +``` +Choose a strong password, since this user will be responsible with obtaining root privileges. +Add the user to the sudo group to allow them to perform maintenance tasks that require root privileges. +```bash +sudo adduser user_name sudo +``` + +Now, change the SSH configuration to allow the new user to connect. +**On your server**, edit the SSH configuration file +```bash +sudo nano /etc/ssh/sshd_config + +# Look for the section "Authentication" and add at the end of it: +AllowUsers user_name +``` +Only users listed in the AllowUsers directive will then be allowed to connect via SSH, which excludes the admin user. + +Save and restart the SSH daemon. +```bash +systemctl restart ssh +``` +--- + +### Change cipher compatibility configuration + +The default TLS configuration for services tends to offer good compatibility to support old devices. You can tune this policy for specific services like SSH and NGINX. By default, the NGINX configuration follows the [intermediate compatibility recommendation](https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29) from Mozilla. You can choose to switch to the 'modern' configuration which uses more recent security recommendations, but decreases the compatibility, which may be an issue for your users and visitors using older devices. More details about the compatibility can be found on [this page](https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility). + +Changing the compatibility level is not definitive and can be reverted if it doesn't fit with your environment. + +**On your server**, change the policy for NGINX +```bash +sudo yunohost settings set security.nginx.compatibility -v modern +``` + +**On your server**, change the policy for SSH +```bash +sudo yunohost settings set security.ssh.compatibility -v modern +``` + +### Disable the YunoHost API +YunoHost administration is accessible through an **HTTP API**, served on the 6787 port by default (only on `localhost`). It can be used to administer a lot of things on your server, so malicious actors can also use it to damage your server. The best thing to do, if you know how to use the [command-line interface](/commandline), is to deactivate the `yunohost-api` service. + +```bash +sudo systemctl disable yunohost-api +sudo systemctl stop yunohost-api +``` + +### YunoHost penetration test + +Some [pentests](https://en.wikipedia.org/wiki/Penetration_test) have been done on a YunoHost 2.4 instance (french): + +- [1) Preparation](https://exadot.fr/blog/2016-07-03-pentest-dune-instance-yunohost-1-preparation) +- [2) The functionning](https://exadot.fr/blog/2016-07-12-pentest-dune-instance-yunohost-2-le-fonctionnement) +- [3) Black Box Audit](https://exadot.fr/blog/2016-08-26-pentest-dune-instance-yunohost-3-audit-en-black-box) +- [4) Grey Box Audit](https://exadot.fr/blog/2016-11-03-pentest-dune-instance-yunohost-4-audit-en-grey-box) diff --git a/security_fr.md b/security_fr.md new file mode 100644 index 00000000..539eed2f --- /dev/null +++ b/security_fr.md @@ -0,0 +1,191 @@ +# Sécurité + +YunoHost a été développé dans l’optique de fournir une sécurité maximale tout en restant accessible et facilement installable. + +Tous les protocoles que YunoHost utilise sont **chiffrés**, les mots de passe ne sont pas stockés en clair, et par défaut chaque utilisateur n’accède qu’à son répertoire personnel. + +Deux points sont néanmoins importants à noter : + +* L’installation d’applications supplémentaires **augmente le nombre de failles** potentielles. Il est donc conseillé de se renseigner sur chacune d’elle **avant l’installation**, d’en comprendre le fonctionnement et juger ainsi l’impact que provoquerait une potentielle attaque. N’installez **que** les applications qui semblent importantes pour votre usage. + +* Le fait que YunoHost soit un logiciel répandu augmente les chances de subir une attaque. Si une faille est découverte, elle peut potentiellement **toucher toutes les instances YunoHost** à un temps donné. Nous nous efforçons de corriger ces failles le plus rapidement possible, pensez donc à **mettre à jour régulièrement** votre système. + +*Si vous avez besoin de conseil, n’hésitez pas à [nous demander](/help).* + +*Pour discuter d'une faille de sécurité, contactez l'[équipe sécurité de YunoHost](/security_team).* + +--- + +## Améliorer la sécurité + +Si votre serveur YunoHost est dans un environnement de production critique ou que vous souhaitez améliorer sa sécurité, il est bon de suivre quelques bonnes pratiques. + +**Attention :** *l’application des conseils suivants nécessite une connaissance avancée du fonctionnement et de l’administration d’un serveur. Pensez à vous renseigner avant de procéder à cette mise en place.* + +### Authentification SSH par clé + +Voici un [tutoriel plus détaillé](http://doc.ubuntu-fr.org/ssh#authentification_par_un_systeme_de_cles_publiqueprivee). + +Par défaut, l’authentification SSH se fait avec le mot de passe d’administration. Il est conseillé de désactiver ce type d’authentification et de le remplacer par un mécanisme de clé de chiffrement. + +**Sur votre ordinateur de bureau :** + +```bash +ssh-keygen +ssh-copy-id -i ~/.ssh/id_rsa.pub +``` +
+Si vous êtes sur Ubuntu 16.04 vous devez faire `ssh-add` pour initialiser l'agent ssh +
+ +Entrez le mot de passe d’administration et votre clé publique devrait être copiée sur votre serveur. + +**Sur votre serveur**, éditez le fichier de configuration SSH, pour désactiver l’authentification par mot de passe. +```bash +nano /etc/ssh/sshd_config + +# Modifiez ou ajoutez la ligne suivante +PasswordAuthentication no +``` + +Sauvegardez et relancez le démon SSH. +```bash +systemctl restart ssh +``` + +--- + +### Modifier le port SSH + +Pour éviter des tentatives de connexion SSH par des robots qui scannent tout Internet pour tenter des connexions SSH avec tout serveur accessible, on peut modifier le port SSH. + +**Sur votre serveur**, éditez le fichier de configuration SSH, pour modifier le port SSH. + +```bash +nano /etc/ssh/sshd_config +``` + +**Recherchez la ligne « Port »** et remplacez le numéro du port (par défaut 22) par un autre numéro non utilisé + +```bash +Port 22 # à remplacer par exemple par 9777 +``` + +**Ouvrez le port** choisi dans le parefeu (vous pouvez utiliser l'option `-6` pour interdire la connexion via ipv4) + +```bash +yunohost firewall allow TCP +``` + +Sauvegardez et relancez le démon SSH. + +```bash +systemctl restart ssh +``` + +Ensuite redémarrez le firewall iptables et fermez l’ancien port dans iptables. + +```bash +yunohost firewall reload +yunohost firewall disallow TCP # port par défaut 22 +``` + +Il convient également de donner à `fail2ban` le nouveau port SSH à bloquer en cas de bannissement d'une adresse IP. + +Pour cela il suffit de créer le fichier de configuration `my_ssh_port.conf` avec + +```bash +nano /etc/fail2ban/jail.d/my_ssh_port.conf +``` + +et de le compléter ainsi : + +```ini +[sshd] +port = +``` + +Il reste enfin à relancer `fail2ban` pour prendre en compte la nouvelle configuration + +```bash +systemctl restart fail2ban +``` + +**Pour les prochaines connexions SSH**, il faudra ajouter l’option `-p` suivie du numéro de port SSH. + +**Exemple** : + +```bash +ssh -p admin@ +``` + +--- + +### Changer l’utilisateur autorisé à se connecter par SSH + +Afin d’éviter de multiples tentatives de forçage du login admin par des robots, on peut éventuellement changer l’utilisateur autorisé à se connecter. + +
+Dans le cas d’une authentification par clé, la force brute n’a aucune chance de réussir. Cette étape n’est donc pas vraiment utile dans ce cas +
+ +**Sur votre serveur**, ajoutez un utilisateur. +```bash +sudo adduser nom_utilisateur +``` +Choisissez un mot de passe fort, puisque c’est l’utilisateur qui sera chargé d’obtenir des droits root. +Ajoutez l’utilisateur au groupe sudo, afin justement de l’autoriser à effectuer des tâches de maintenance nécessitant les droits root. +```bash +sudo adduser nom_utilisateur sudo +``` + +À présent, modifiez la configuration SSH pour autoriser ce nouvel utilisateur à se connecter. +**Sur votre serveur**, éditez le fichier de configuration SSH +```bash +sudo nano /etc/ssh/sshd_config + +# Recherchez le paragraphe « Authentication » et ajoutez à la fin de celui-ci : +AllowUsers nom_utilisateur +``` +Seuls les utilisateurs mentionnés dans la directive AllowUsers seront alors autorisés à se connecter via SSH, ce qui exclut donc l’utilisateur admin. + +Sauvegardez et relancez le démon SSH. +```bash +systemctl restart ssh +``` + +--- + +### Durcir la sécurité de la configuration des services + +La configuration TLS par défaut des services tend à offrir une bonne compatibilité avec les vieux appareils. Vous pouvez régler cette politique pour les services SSH et NGINX. Par défaut, la configuration du NGINX suit la [recommandation de compatibilité intermédiaire](https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29) de Mozilla. Vous pouvez choisir de passer à la configuration "moderne" qui utilise des recommandations de sécurité plus récentes, mais qui diminue la compatibilité, ce qui peut poser un problème pour vos utilisateurs et visiteurs qui utilisent de vieux appareils. Plus de détails peuvent être trouvés sur [cette page](https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility). + +Changer le niveau de compatibilité n'est pas définitif et il est possible de rechanger le paramètre si vous concluez qu'il faille revenir en arrière. + +**Sur votre serveur**, modifiez la politique pour NGINX : +```bash +sudo yunohost settings set security.nginx.compatibility -v modern +``` + +**Sur votre serveur**, modifiez la politique pour SSH : +```bash +sudo yunohost settings set security.ssh.compatibility -v modern +``` + +### Désactivation de l’API YunoHost + +YunoHost est administrable via une **API HTTP**, servie sur le port 6787 par défaut (seulement sur `localhost`). Elle permet d’administrer une grande partie de votre serveur, et peut donc être utilisée à des **fins malveillantes**. La meilleure chose à faire si vous êtes habitués aux lignes de commande est de désactiver le service `yunohost-api`, et **utiliser la [ligne de commande](/commandline)** en SSH. + +```bash +sudo systemctl disable yunohost-api +sudo systemctl stop yunohost-api +``` + +### Tests d’intrusion de YunoHost + +Des [pentests](https://fr.wikipedia.org/wiki/pentest) ont été effectués sur une instance de YunoHost 2.4 : + +- [1) Préparation](https://exadot.fr/blog/2016-07-03-pentest-dune-instance-yunohost-1-preparation) +- [2) Le fonctionnement](https://exadot.fr/blog/2016-07-12-pentest-dune-instance-yunohost-2-le-fonctionnement) +- [3) Audit en Black Box](https://exadot.fr/blog/2016-08-26-pentest-dune-instance-yunohost-3-audit-en-black-box) +- [4) Audit en Grey Box](https://exadot.fr/blog/2016-11-03-pentest-dune-instance-yunohost-4-audit-en-grey-box) diff --git a/security_team.md b/security_team.md new file mode 100644 index 00000000..a0e1686f --- /dev/null +++ b/security_team.md @@ -0,0 +1,15 @@ +# Security team + +Contact the security team by mail: `security@yunohost.org`. + +We strongly advise you to encrypt your mail with GPG. Our public key is available on key servers. Below is our fingerprint + +```bash +gpg --fingerprint security@yunohost.org +pub 4096R/17351899 2016-07-01 + Empreinte de la clef = 6CBC 45EB A625 FBF3 513D 1227 749D 8972 1735 1899 +uid YunoHost Security +sub 4096R/446838AF 2016-07-01 +``` + +See https://gist.github.com/opi/4496024dc3ff29ab2e068fd57092ab7c or https://twitter.com/yunohost/status/748975105393459200 for other trustable fingerprints \ No newline at end of file diff --git a/security_team_fr.md b/security_team_fr.md new file mode 100644 index 00000000..a3ae1720 --- /dev/null +++ b/security_team_fr.md @@ -0,0 +1,16 @@ +# Équipe sécurité + +Contactez l'équipe sécurité par email : `security@yunohost.org`. + +Nous vous recommandons fortement de chiffrer votre mail avec GPG. Notre clé +publique est disponible sur les serveurs de clés. L'empreinte est ci-dessous : + +```bash +gpg --fingerprint security@yunohost.org +pub 4096R/17351899 2016-07-01 + Empreinte de la clef = 6CBC 45EB A625 FBF3 513D 1227 749D 8972 1735 1899 +uid YunoHost Security +sub 4096R/446838AF 2016-07-01 +``` + +Voyez https://gist.github.com/opi/4496024dc3ff29ab2e068fd57092ab7c et https://twitter.com/yunohost/status/748975105393459200 pour d'autres empreintes de confiance diff --git a/selfhosting.md b/selfhosting.md new file mode 100644 index 00000000..2ab4f82c --- /dev/null +++ b/selfhosting.md @@ -0,0 +1,25 @@ +# Self-hosting + +Self-hosting is the activity of having and administrating your own server, typically at home, to host your personal data and services yourself instead of relying exclusively on third-parties. For instance, you can self-host your blog, such that it 'lives' on a machine that you have control of, instead of having it on somebody else's computer (a.k.a. The Cloud) in exchange for money, advertisement or private data. + +Self-hosting implies owning a server. A server is a computer which is typically accessible on the network 24/7, and usually does not have any screen or keyboard (it is instead controlled remotely). Contrarily to a popular belief, a server is not necessarily a huge and extra-powerful machine: nowadays, a small, ~$30 ARM board is adequate for self-hosting. + +Self-hosting is not about making "your Internet" more secure and does not provide anonymity by itself. Instead, it is about being autonomous, and in control of your services and data - which also means being responsible for them. + +## Why should you host yourself ? + +- **You believe in a free, open and decentralized internet.** In a centralized internet, private companies and government can spy, analyze and influence people by dictating how they connect with each other, and by filtering content. YunoHost is developed by a community who believe in an open and decentralized internet, and we hope that you do, too! + +- **You want to have control of your data and services.** Your pictures, chat messages, browsing history, and that text you are writing for school, have nothing to do on somebody else's server (a.k.a. The Cloud). They are part of your private life, but also part of your family's life, your friend's life, and so on. These data should be managed by *you*, not a random company in the US who wants your data to analyze them and sell the results. + +- **You want to learn about how computers and the Internet work.** Operating your own server is a pretty good context to understand the basic mechanisms at the heart of operating systems and the Internet. You might have to deal with command line interface, network architecture, DNS configuration, SSH, and so on. + +- **You want to explore new possibilities and customize things.** Ever dreamed of running a Minecraft server for you friends, or a persistent IRC or XMPP client? With your very own server, you can manually install and run virtually any program you want, and customize every bit. + +## Why should you *not* host yourself ? + +- **Self-hosting requires some work and patience.** Hosting yourself is a bit like growing your own garden or vegetables: it requires work and patience. While YunoHost aims to do all the hard work for you, self-hosting still requires that you take time to learn and configure a few things to setup your server properly. You will also need to perform maintenance tasks (such as upgrades) from time to time, or to ask for support if some things break. + +- **With great servers comes great responsibilities.** Operating a server means that you are responsible for the data you are hosting. Nobody will be able to recover them for you if they get lost. YunoHost provides backup features, which you should use regularly to backup the configurations and data you care about. You should also keep an eye on security news and recommendations so that your server or critical data don't get compromised. + +- **Quality and performance probably won't be as good as premium services.** YunoHost (and most of the applications packaged for it) are free and open-source software, developed by communities of people in their free time and on the basis of best effort. There is no absolute guarantee that software will work in every possible circumstance. The performance of your self-hosted server is also related to its CPU and RAM, and to the available internet connectivity. diff --git a/selfhosting_de.md b/selfhosting_de.md new file mode 100644 index 00000000..4272963c --- /dev/null +++ b/selfhosting_de.md @@ -0,0 +1,26 @@ +# Self-Hosting + +Self-Hosting ist das Hosten von Daten oder Software auf eigener IT-Infrastruktur. +Ihren eigenen Server zu Hause zu haben und zu verwalten, um Ihre persönlichen Daten und Dienste selbst zu hosten, anstatt sich ausschließlich auf Dritte zu verlassen. Beispielsweise können Sie Ihren Blog selbst hosten, sodass er auf einem Computer "lebt", über den Sie die Kontrolle haben, anstatt ihn im Austausch gegen Geld, Werbung oder private Daten auf dem Computer eines anderen Benutzers (a.k.a. The Cloud) zu haben. + +Self-Hosting bedeutet, einen Server zu besitzen. Ein Server ist ein Computer, auf den in der Regel rund um die Uhr im Netzwerk zugegriffen werden kann und der normalerweise keinen Bildschirm oder keine Tastatur hat (stattdessen wird er ferngesteuert). Entgegen der landläufigen Meinung ist ein Server nicht unbedingt ein riesiger und besonders leistungsfähiger Computer: Heutzutage ist ein kleines Board (Einplatinencomputer) mit ~ 40 € für das Self-Hosting ausreichend. + +Beim Self-Hosting geht es nicht darum, "Ihr Internet" sicherer zu machen, und es bietet auch keine Anonymität an sich. Stattdessen geht es darum, autonom zu sein und Ihre Dienste und Daten zu kontrollieren - was auch bedeutet, dafür verantwortlich zu sein. + +## Warum sollten Sie selbst hosten? + +- **Sie glauben an ein freies, offenes und dezentrales Internet.** In einem zentralisierten Internet können private Unternehmen und Behörden Personen ausspähen, analysieren und beeinflussen, indem sie diktieren, wie Sie sich miteinander verbinden, und indem sie Inhalte filtern. YunoHost wird von einer Community entwickelt, die an ein offenes und dezentrales Internet glaubt, und wir hoffen, dass Sie dies auch tun! + +- **Sie möchten die Kontrolle über Ihre Daten und Dienste haben.** Ihre Bilder, Chatnachrichten, der Browserverlauf und der Text, den Sie für die Schule schreiben, haben auf dem Server eines anderen Benutzers (a.k.a. The Cloud) nichts zu suchen. Sie sind Teil Ihres Privatlebens, aber auch Teil des Lebens Ihrer Familie, Ihres Partners und so weiter. Diese Daten sollten von * Ihnen * verwaltet werden, nicht von einem zufälligen Unternehmen in den USA, dass Ihre Daten analysieren und die Ergebnisse verkaufen möchte. + +- **Sie möchten lernen, wie Computer und das Internet funktionieren.** Der Betrieb eines eigenen Servers ist ein guter Kontext, um die grundlegenden Mechanismen von Betriebssystemen und dem Internet zu verstehen. Möglicherweise müssen Sie sich mit der Befehlszeilenschnittstelle, der Netzwerkarchitektur, der DNS-Konfiguration und mit SSH usw. befassen. + +- **Sie möchten neue Möglichkeiten erkunden und Dinge anpassen.** Haben Sie jemals davon geträumt, einen Minecraft-Server für Ihre Freunde oder einen dauerhaften IRC- oder XMPP-Client zu betreiben? Mit Ihrem eigenen Server können Sie praktisch jedes gewünschte Programm manuell installieren, ausführen und jedes Bit anpassen. + +## Warum Sie vllt. *nicht* selbst hosten sollten? + +- **Self-Hosting erfordert etwas Arbeit und Geduld.** Selbst einen Server zu betreiben, ist ein bisschen wie das anlegen eines eigenen Gartens oder der anbau von Gemüse: Es erfordert Arbeit und Geduld. Während YunoHost versucht, die harte Arbeit für Sie zu erledigen, müssen Sie sich für das Self-Hosting noch einige Zeit nehmen, um einige Dinge zu lernen und zu konfigurieren, um Ihren Server richtig einzurichten. Sie müssen auch von Zeit zu Zeit Wartungsaufgaben (wie z. B. Upgrades) ausführen oder um Support-Unterstützung bitten, wenn Probleme auftreten. + +- **Mit den eigenen tollen Servern geht eine große Verantwortung einher.** Der Betrieb eines Servers bedeutet, dass Sie für die von Ihnen gehosteten Daten verantwortlich sind. Niemand kann sie für Sie wiederherstellen, wenn sie verloren gehen. YunoHost bietet Sicherungsfunktionen, die Sie regelmäßig verwenden sollten, um die gewünschten Konfigurationen und Daten zu sichern. Sie sollten auch die Sicherheitsnachrichten und -empfehlungen im Auge behalten, damit Ihr Server oder Ihre kritischen Daten nicht gefährdet werden. + +- **Qualität und Leistung sind wahrscheinlich nicht so gut wie Premium-Services.** YunoHost (und die meisten dafür bereitgestellten Anwendungen) sind kostenlose und Open-Source-Software, die in den jeweiligen Communitys von Menschen in ihrer Freizeit und auf der Grundlage bester Bemühungen entwickelt werden. Es gibt keine absolute Garantie dafür, dass Software unter allen möglichen Umständen funktioniert. Die Leistung Ihres selbst gehosteten Servers hängt auch von dessen CPU und RAM sowie der verfügbaren Internetverbindung ab. diff --git a/selfhosting_fr.md b/selfhosting_fr.md new file mode 100644 index 00000000..86b40080 --- /dev/null +++ b/selfhosting_fr.md @@ -0,0 +1,25 @@ +# L’auto-hébergement + +L'auto-hébergement est le fait d'avoir et d'administrer son propre serveur, typiquement chez soi, pour héberger soi-même ses données personnelles et des services plutôt que de se reposer exclusivement sur des tiers. Par exemple, il est possible d'auto-héberger son blog de sorte qu'il "vive" dans une machine que vous contrôlez, au lieu qu'il soit sur l'ordinateur de quelqu'un d'autre (a.k.a. le Cloud) en échange d'argent, de publicités ou de données privées. + +L'auto-hébergement implique de disposer d'un serveur. Un serveur est un ordinateur qui est destiné à être accessible sur le réseau en permanence, et n'a généralement pas d'écran ni de clavier puisqu'il est administré à distance. Contrairement à une croyance répandue, les serveurs ne sont pas nécessairement des machines énormes et extrêmement puissantes: aujourd'hui, une petite carte ARM à ~30€ est adéquate pour de l'auto-hébergement. + +Pratiquer l'auto-hébergement ne rend pas "votre internet" plus sécurisé et ne fournit pas d'anonymat en tant que tel. L'objectif est généralement de pouvoir être autonome et au contrôle de ses services et de ses données - ce qui implique aussi d'en être responsable. + +## Pourquoi s'auto-héberger ? + +- **Vous croyez en un internet libre, ouvert et décentralisé.** Dans un internet centralisé, les entités privées et les gouvernement peuvent espionner, analyser et influencer les personnes en dictant la façon dont elle peuvent interagir les unes avec les autres, ainsi qu'en filtrant du contenu. YunoHost est développé par une communauté qui croit en un internet ouvert et décentralisé. Nous espérons que vous aussi ! + +- **Vous voulez avoir le contrôle de vos données et services.** Vos images, vos messages de chat, votre historique de navigation, et votre dissertation pour l'école n'ont rien à faire sur l'ordinateur de quelqu'un d'autre (a.k.a. le Cloud). Ces données font parties de votre vie privée, mais également de celle de votre famille, de vos amis, etc. Ces données devraient être gérées par *vous*, et non par une quelconque entreprise américaine qui cherche à analyser vos données pour revendre les résultats. + +- **Vous souhaitez apprendre comment fonctionnent les ordinateurs et Internet.** Opérer son propre serveur est un bon contexte pour apprendre les mécanismes de base au cœur des systèmes d'exploitations (OS) et d'Internet. Il vous faudra possiblement toucher à la ligne de commande et à des morceaux de configuration réseau et DNS. + +- **Vous voulez explorer de nouvelles possibilités et personnaliser votre espace.** Avez-vous déjà rêvé d'avoir votre propre serveur Minecraft pour vos ami·e·s, ou un client IRC ou XMPP persistent ? Avec votre propre serveur, vous pouvez manuellement installer et faire tourner n'importe quel programme et personnaliser chaque morceau. + +## Pourquoi ne *pas* s'auto-héberger ? + +- **L'auto-hébergement requiert du travail et de la patience.** S'auto-héberger est un peu comme avoir son propre jardin ou potager : cela demande du travail et de la patience. Bien que YunoHost cherche à faire tout le travail compliqué pour vous, il vous faudra tout de même prendre le temps d'apprendre et configurer quelques détails pour que votre installation marche correctement. Il vous faudra aussi gérer quelques tâches de maintenance (telles que les mises à jour) de temps en temps, et demander de l'aide si des choses ne fonctionnent pas comme prévu. + +- **Avec de grands serveurs viennent les grandes responsabilités.** Opérer un serveur implique d'être responsable des données que vous hébergez : personne ne pourra récupérer des données à votre place si vous les perdez. YunoHost fournit des fonctionnalités de sauvegarde qu'il est recommandé d'utiliser pour sauvegarder les configurations et données importantes. Il vous faut aussi garder un œil sur les recommandations et les nouvelles à propos de la sécurité pour que votre serveur ou vos données ne soient pas compromises. + +- **La qualité et les performances ne seront probablement pas aussi bonnes que des services premium.** YunoHost (et la plupart des applications qui sont packagées) sont des logiciels libres et open-source, développés par des communautés bénévoles. Il n'y a pas de garantie absolue que ces logiciels marcheront dans toutes les circonstances possibles. Les performances de votre serveur auto-hébergé sont aussi liées au processeur, à la mémoire vive et à la connectivité internet. diff --git a/selfhosting_ru.md b/selfhosting_ru.md new file mode 100644 index 00000000..ec11365b --- /dev/null +++ b/selfhosting_ru.md @@ -0,0 +1,43 @@ +# Самостоятельное развертывание (свой хостинг) + +#### Значение +**Свой хостинг** - это сервер, расположенный у вас дома и предназначенный для размещения информации для личных нужд. + +#### Обязанности администратора +Свой хостинг создает для вас определенные обязанности, если вы хотите разместить на нём сайт, [e-mail](/email), а также запустить [систему мгновенных сообщений](XMPP), ваш сервер должен работать и оставаться онлайн 24/7. + +Распространенные проблемы, по причине которых сервер может быть недоступен включают в себя: отсутствие электроэнергии, потеря доступа к Интернету, итд. + +К примеру, если вы используете [e-mail](/email) и ваш сервер по какой-то причине становится недоступен, отправленные на него сообщения будут отправлены снова только по прошествии от 3 до 7 дней. + +#### Минусы своего хостинга +* Медленная передача данных. При использовании ADSL, скорость загрузки составляет 1/10 от скорости закачки. К примеру при скорости загрузки 1Мб/с скорость загрузки будет около 100Кб/с; +* Сервер должен быть доступен 24/7; +* Перенос данных; + +#### Плюсы своего хостинга +* Анонимность, приватность; +* Вы - единственный хозяин ваших данных и сервисов; +* Возможность децентрализации и использования распределенных сетей; + + + +#### Другие проекты, предназначенные для самостоятельного развертывания +##### В активной разработке +- [Cloudron](https://cloudron.io) +- [Cozy](https://cozy.io) +- [FreedomBox](https://wiki.debian.org/FreedomBox) +- [Libre.sh](https://github.com/indiehosters/libre.sh) +- [Puffin](http://puffin.rocks) +- [Sandstorm](https://sandstorm.io/) +- [Sovereign](https://github.com/al3x/sovereign) +- [UBOS](http://ubos.net) + +##### Неподдерживаемые +- [ArkOS](http://web.archive.org/web/20170603213149/https://arkos.io/) +- [Host@home](http://web.archive.org/web/20160206150730/http://yeuxdelibad.net/Programmation/Hostathome.html) + + +#### Узнать больше +* [Decentralized Web Summit](http://www.decentralizedweb.net/) +* [Feudal Security](https://www.schneier.com/blog/archives/2012/12/feudal_sec.html) Bruce Schneier, famous security expert exposes the risks of a centralized web and the importance of civic action. diff --git a/shell_variables_scope.md b/shell_variables_scope.md new file mode 100644 index 00000000..aba9d163 --- /dev/null +++ b/shell_variables_scope.md @@ -0,0 +1,219 @@ +### General scope of variables + +Variables exists for the current shell and its children only. +Another script executed from the script is not a child, it's another shell which herited only the environment variables from its caller script, not its globals or locals variables. + +When a script is called, it isn't started in the current shell, but in a new instance of bash which herite environment variables from its parent. +```bash +var1=value1 +export var2=value2 + +echo "$var1" +echo "$var2" +# var1 and var2 exist + +echo "-" + +echo " +echo \"\$var1\" +echo \"\$var2\"" > other_script.sh +chmod +x other_script.sh +./other_script.sh +# Here, var1 doesn't exist, only var2 still exists. +# Because it's an environment variable. +``` +In your current shell, where you launch this script, try +```bash +echo $var1 - $var2 +``` +None of this 2 variables exists, because their scope is limited to the script itself. Never its parent. + + +### Functions inside a script + +Use a function would not change the scope of variables. +```bash +var1=value1 +export var2=value2 + +set_variable () { + var3=value3 + export var4=value4 + + echo "$var1" + echo "$var2" + echo "$var3" + echo "$var4" + # All variables exists here + # Because the function inherite its variables from the script. +} + +set_variable + +echo "$var1" +echo "$var2" +echo "$var3" +echo "$var4" +# var1 var2, var3 and var4 exist +# var3 exist because the function is executed in the same shell than the script itself. + +echo "-" + +echo " +echo \"\$var1\" +echo \"\$var2\" +echo \"\$var3\" +echo \"\$var4\"" > other_script.sh +chmod +x other_script.sh +./other_script.sh +# Here, var1 and var3 don't exist, only var2 and var4 still exist. +# Because they're environment variables. +``` + +### The usage of locales variables + +Locales variables are limited to the function and its children. +```bash +var1=value1 +export var2=value2 + +set_variable () { + var3=value3 + export var4=value4 + local var5=value5 + + echo "$var1" + echo "$var2" + echo "$var3" + echo "$var4" + echo "$var5" + # All variables exists here + # Because the function inherite its variables from the script. +} + +set_variable + +echo "-" + +echo "$var1" +echo "$var2" +echo "$var3" +echo "$var4" +echo "$var5" +# var1 var2, var3 and var4 exist +# var3 exist because the function is executed in the same shell than the script itself. +# var5 doesn't exist, because its scope is limited to the function which declare it. + +echo "-" + +echo " +echo \"\$var1\" +echo \"\$var2\" +echo \"\$var3\" +echo \"\$var4\" +echo \"\$var5\"" > other_script.sh +chmod +x other_script.sh +./other_script.sh +# Here, var1, var3 and var5 don't exist, only var2 and var4 still exist. +# Because they're environment variables. +``` + +Using a local variable is usefull for limit it scope to the function only. And not bother the script in its globality with useless variables. +But there's also another advantage with local variable, do not modify the content of a global variable. +```bash +var1=value1 +var2=value2 +var3=value3 + +set_variable () { + echo "$var1" + echo "$var2" + echo "$var3" + + echo "-" + + var2=new_value2 + local var3=new_value3 + + echo "$var1" + echo "$var2" + echo "$var3" + # Values of var2 and var3 are modified in the function. +} + +set_variable + +echo "-" + +echo "$var1" +echo "$var2" +echo "$var3" +# var3 retake is original value, +# because in the function, var3 was declared as a new locale variable. +# But var2 was directly modified, so its value still changed. +# Because, var2 in the function is still a global variable. +``` + +As seen previously, modified or created variables in a function can affect the main script because the function is executed in the same shell. +But, the things are different if the function is executed in a sub shell, the function become a child which only inherite from its parent. +```bash +var1=value1 +var2=value2 +var3=value3 + +fonction2 () { + echo "-" + echo "var1=$var1" + echo "var2=$var2" + echo "var3=$var3" + echo "var4=$var4" + echo "var5=$var5" + # Even var3, which is local, is inherited from the parent function. +} + +set_variable () { + echo "var1=$var1" + echo "var2=$var2" + echo "var3=$var3" + # Variables are inherited from the parent. + + echo "-" + + var2=new_value2 + local var3=new_value3 + var4=new_value4 + export var5=new_value5 + + echo "var1=$var1" + echo "var2=$var2" + echo "var3=$var3" + echo "var4=$var4" + echo "var5=$var5" + # Values of var2 and var3 are modified in the function. + + (fonction2) +} + +(set_variable) +# Start the function in a sub shell. + +echo "-" + +echo "var1=$var1" +echo "var2=$var2" +echo "var3=$var3" +echo "var4=$var4" +echo "var5=$var5" +# var2 and var3 retake their original values. +# Because the function is in a child shell which never affect its parent. +# Likewise, var4 and var5 don't exist, because they're been declared in child shell. +# The parent never inherite from its children shell. +``` + +### Conclusion + +- The scope of a variable is always the current shell and its children, never its parent shell. +- An environment variable may be exported to a new shell, detached from the first one. If the last one executed the second one. But, it can't affect the parents. +- A locale variable in a function, executed in the current shell, can't affect the environment outside of the function. End allow also to not affect a global variable with the same name. +- A function executed in a sub shell will never affect its parent, with global or local variables. +- A parent can NEVER be affected by variables defined or modified in its children shell. diff --git a/shell_variables_scope_fr.md b/shell_variables_scope_fr.md new file mode 100644 index 00000000..179f3252 --- /dev/null +++ b/shell_variables_scope_fr.md @@ -0,0 +1,219 @@ +### Portée générales des variables + +Les variables existent pour le shell courant et ses enfants uniquement. +Un script exécuté depuis le script n'est pas un enfant, c'est un autre shell qui n'héritera que des variables d'environnement du script appelant, pas des variables globales ou locales. + +Lors de l'appel d'un script, il n'est pas démarré dans le shell courant, mais dans une nouvelle instance de bash qui hérite des variables d'environnements de son parent. +```bash +var1=value1 +export var2=value2 + +echo "$var1" +echo "$var2" +# var1 et var2 existent + +echo "-" + +echo " +echo \"\$var1\" +echo \"\$var2\"" > other_script.sh +chmod +x other_script.sh +./other_script.sh +# Ici, var1 n'existe pas, seul var2 existe encore. +# Car c'est une variable d'environnement. +``` +Dans le shell courant, d'où le script est appelé, faite +```bash +echo $var1 - $var2 +``` +Aucune des 2 variables n'existent, car leur portée se limite au script appelé. Jamais au parent. + + +### Les fonctions dans un script + +Utiliser une fonction ne change pas la portée des variables. +```bash +var1=value1 +export var2=value2 + +set_variable () { + var3=value3 + export var4=value4 + + echo "$var1" + echo "$var2" + echo "$var3" + echo "$var4" + # Toutes les variables existent ici + # car la fonction hérite des variables du script. +} + +set_variable + +echo "$var1" +echo "$var2" +echo "$var3" +echo "$var4" +# var1 var2, var3 et var4 existent +# var3 existe car la fonction est exécutée dans le même shell que le script lui-même. + +echo "-" + +echo " +echo \"\$var1\" +echo \"\$var2\" +echo \"\$var3\" +echo \"\$var4\"" > other_script.sh +chmod +x other_script.sh +./other_script.sh +# Ici, var1 et var3 n'existent pas, seul var2 et var4 existe encore. +# Car ce sont des variables d'environnements. +``` + +### L'usage des variables locales + +Les variables locales sont limitées à une fonction et ses enfants +```bash +var1=value1 +export var2=value2 + +set_variable () { + var3=value3 + export var4=value4 + local var5=value5 + + echo "$var1" + echo "$var2" + echo "$var3" + echo "$var4" + echo "$var5" + # Toutes les variables existent ici + # car la fonction hérite des variables du script. +} + +set_variable + +echo "-" + +echo "$var1" +echo "$var2" +echo "$var3" +echo "$var4" +echo "$var5" +# var1 var2, var3 et var4 existent +# var3 existe car la fonction est exécutée dans le même shell que le script lui-même. +# var5 n'existe pas, car sa portée se limite à la fonction qui l'a déclaré + +echo "-" + +echo " +echo \"\$var1\" +echo \"\$var2\" +echo \"\$var3\" +echo \"\$var4\" +echo \"\$var5\"" > other_script.sh +chmod +x other_script.sh +./other_script.sh +# Ici, var1, var3 et var5 n'existent pas, seul var2 et var4 existe encore. +# Car ce sont des variables d'environnements. +``` + +L'intérêt d'utiliser une variable locale est donc de limiter cette variable à la seule fonction qui l'a déclaré. Et donc ne pas polluer le script dans sa globalité avec des variables inutile pour ce dernier. +Il existe également un second avantage à l'usage d'une variable locale, c'est de ne pas modifier le contenu d'une variable globale. +```bash +var1=value1 +var2=value2 +var3=value3 + +set_variable () { + echo "$var1" + echo "$var2" + echo "$var3" + + echo "-" + + var2=new_value2 + local var3=new_value3 + + echo "$var1" + echo "$var2" + echo "$var3" + # La valeurs de var2 et var3 sont modifiées dans la fonction +} + +set_variable + +echo "-" + +echo "$var1" +echo "$var2" +echo "$var3" +# var3 a repris sa valeur initiale, +# car dans la fonction var3 a été déclaré comme une nouvelle variable locale. +# Mais var2 a été modifiée directement, donc sa valeur reste modifiée. +# Car var2 dans la fonction est resté une variable globale. +``` + +Comme vu précédemment, les variables modifiée ou créée dans la fonction affecte le script car la fonction est exécutée dans le même shell que celui-ci. +Cela change si on exécute la fonction dans un sous-shell, la fonction devient un enfant qui hérite de son parent uniquement. +```bash +var1=value1 +var2=value2 +var3=value3 + +fonction2 () { + echo "-" + echo "var1=$var1" + echo "var2=$var2" + echo "var3=$var3" + echo "var4=$var4" + echo "var5=$var5" + # Même var3, qui est locale, est héritée par la fonction enfant. +} + +set_variable () { + echo "var1=$var1" + echo "var2=$var2" + echo "var3=$var3" + # Les variables sont héritées du parent. + + echo "-" + + var2=new_value2 + local var3=new_value3 + var4=new_value4 + export var5=new_value5 + + echo "var1=$var1" + echo "var2=$var2" + echo "var3=$var3" + echo "var4=$var4" + echo "var5=$var5" + # La valeurs de var2 et var3 sont modifiées dans la fonction + + (fonction2) +} + +(set_variable) +# Démarre la fonction dans un shell fils. + +echo "-" + +echo "var1=$var1" +echo "var2=$var2" +echo "var3=$var3" +echo "var4=$var4" +echo "var5=$var5" +# var2 et var3 ont repris leur valeurs initiales, +# Car la fonction est dans un shell enfant qui n'affecte pas son parent. +# De même, var4 et var5 n'existent pas, car elle sont déclarées dans un shell enfant. +# Le parent n'hérite pas des shells enfants. +``` + +### Conclusion + +- La portée d'une variable est toujours le shell courant et ses enfants, jamais son shell parent. +- Une variable d'environnement peut être exportée sur un nouveau shell, indépendant du premier. À condition que ce dernier exécute le second. Mais ne peut pas affecter les parents. +- Une variable locale dans une fonction, exécutée dans le shell courant, n'affecte pas son environnement en dehors de la fonction. Et permet également de ne pas affecter le contenu d'une variable globale de même nom. +- Une fonction exécutée dans un sous-shell n'affecte jamais le parent, que ses variables soient globales ou locales. +- Le parent n'est JAMAIS affecté par les variables définies ou modifiées par ses shells enfants. diff --git a/sponsors_partners.md b/sponsors_partners.md new file mode 100644 index 00000000..640ff41b --- /dev/null +++ b/sponsors_partners.md @@ -0,0 +1,15 @@ +# Sponsors and partners + +In order to advance and make the project works, in addition to the work of volunteers and donations, YunoHost benefits from the support of sponsors and partners. + +Here is a list of YunoHost sponsors, providing infrastructure and services to the project: +- [GITOYEN](https://gitoyen.net): association bringing together several companies and associations acting as a provider of hosting infrastructure and Internet access. +- [GLOBENET](http://www.globenet.org): activist association, at the service of freedom of expression, offering internet services. +- [LDN-NET](https://ldn-fai.net/) : association for the defense of a free, neutral and decentralized Internet whose main means of action is to be an Internet access provider associative and local. +- [NBS System](https://www.nbs-system.com/): company specialized in hosting, securing Clouds, outsourcing (Information Systems, SaaS Applications, Web Platforms) and managed services. +- [NLNET](https://nlnet.nl/): The NLnet Foundation supports organizations and people that contribute to an open information society. +- [TETANEUTRAL-NET](https://tetaneutral.net/): associative Internet access provider currently operating a radio network in Toulouse and its surroundings and a hoster. + +Here is a list of YunoHost partners: +- [FFDN](https://www.ffdn.org/): The FDN federation gathers associative Internet Access Providers who recognize themselves in common values: volunteering, solidarity, democratic functioning and non-profit; defense and promotion of net neutrality. +- [Framasoft](https://framasoft.org/) : popular education association, a group of friends convinced that an emancipatory digital world is possible, convinced that it will happen thanks to concrete actions on the ground and online with you and for you! diff --git a/sponsors_partners_fr.md b/sponsors_partners_fr.md new file mode 100644 index 00000000..72ea6165 --- /dev/null +++ b/sponsors_partners_fr.md @@ -0,0 +1,15 @@ +# Mécènes et partenaires + +Afin d'avancer et de faire fonctionner le projet, en plus du travail des bénévoles et des dons, YunoHost bénéficie du soutien de mécènes et de partenaires. + +Une liste des mécènes de YunoHost, fournissant l'infrastructure et des services aux projets : +- [GITOYEN](https://gitoyen.net) : association regroupant plusieurs entreprises et associations intervenant comme fournisseur d’infrastructure d’hébergement et d’accès à Internet. +- [GLOBENET](http://www.globenet.org) : association militante, au service de la liberté d’expression, proposant des services Internet. +- [LDN-NET](https://ldn-fai.net/) : association pour la défense d’un Internet libre, neutre et décentralisé dont le moyen d’action principale est d’être un fournisseur d’accès Internet (FAI) assocatif et local. +- [NBS System](https://www.nbs-system.com/): société spécialisée dans l’hébergement, la sécurisation des Clouds, l’infogérance (Systèmes d’information, Applications SaaS, Plateformes web) et les services managés. +- [NLNET](https://nlnet.nl/) : La Fondation NLnet soutient les organisations et les personnes qui contribuent à une société de l'information ouverte. +- [TETANEUTRAL-NET](https://tetaneutral.net/) : fournisseur d'accès à Internet associatif opérant actuellement un réseau radio sur Toulouse et ses environs et un hébergeur. + +Une liste des partenaires de YunoHost : +- [FFDN](https://www.ffdn.org/) : La fédération FDN regroupe des Fournisseurs d'Accès à Internet associatifs se reconnaissant dans des valeurs communes : bénévolat, solidarité, fonctionnement démocratique et à but non lucratif ; défense et promotion de la neutralité du Net. +- [Framasoft](https://framasoft.org/) : association d’éducation populaire, un groupe d’ami·es convaincu·es qu’un monde numérique émancipateur est possible, persuadé·es qu’il adviendra grâce à des actions concrètes sur le terrain et en ligne avec vous et pour vous ! diff --git a/ssh.md b/ssh.md new file mode 100644 index 00000000..9417769d --- /dev/null +++ b/ssh.md @@ -0,0 +1,89 @@ +# SSH + +## What's SSH? + +**SSH** stands for Secure Shell, and refers to a protocol that allows to remotely control and administrate a machine using the command line interface (CLI). It is available by default in any terminal on GNU/Linux and macOS. On Windows, you may want to use [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (after launching it, click on Session then SSH). + +## What address to use to connect to your server? + +If you are **installing at home** (e.g. on a Raspberry Pi or OLinuXino or old computer): + - you should be able to connect to your server using `yunohost.local`. + - if `yunohost.local` does not work, your need to [find out the local IP of the server](/finding_the_local_ip). + - if you installed a server at home but are attempting to connect from outside your local network, make sure port 22 is correctly forwarded to your server. + +If you server is a remote server (VPS), your provider should have communicated you the IP address of the machine + +In any cases, if you already configured a domain name pointing to the appropriate IP, it's much better to use `yourdomain.tld` instead of the IP address. + + +## Login credentials + +### BEFORE running the post-installation + +- If you are **installing at home**, the default credentials are login: `root` and password: `yunohost` +- If you are **installing a remote server (VPS)**, your provider should have communicated you the login and password (or allowed you to configure an SSH key) + +### AFTER running the post-installation + +During the postinstall, you've been asked to choose an administration password. This password becomes the new password for the `root` and `admin` users. Additionally, **the `root` SSH login becomes disabled after the postinstall and you should log in using the `admin` user !**. The only exception is that you may still be able to login using `root` *from the local network - or from a direct console on the server* (this is to cover the event where the LDAP server is broken and the `admin` user is unusable). + + +## Connecting + +The SSH command typically looks like: + +```bash +# before the postinstall: +ssh root@11.22.33.44 + +# or after the postinstall: +ssh admin@11.22.33.44 +``` + +Or using the domain name instead of the IP (more convenient): + +```bash +ssh admin@your.domain.tld +# or with the special .local domain: +ssh admin@yunohost.local +``` + +If you changed the SSH port, you need to add `-p ` to the command, e.g.: + +```bash +ssh -p 2244 admin@your.domain.tld +``` + +
+If you connected as `admin` and would like to become `root` for convenience (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su` or `sudo -i`. +
+ +## Which other users may connect to the server? + +By default, only the `admin` user can log in to YunoHost SSH server. + +YunoHost's users created via the administration interface are managed by the LDAP directory. By default, they can't connect via SSH for security reasons. If you want some users to have SSH access enabled, use the command: + +```bash +yunohost user ssh allow +``` + +It is also possible to remove SSH access using the following: + +```bash +yunohost user ssh disallow +``` + +Finally, it is possible to add, delete and list SSH keys, to improve SSH access security, using the commands: + +```bash +yunohost user ssh add-key +yunohost user ssh remove-key +yunohost user ssh list-keys +``` + +## Security and SSH + +N.B. : `fail2ban` will ban your IP for 10 minutes if you perform 5 failed login attempts. If you need to unban the IP, have a look at the page about [Fail2Ban](/fail2ban) + +A more extensive discussion about security & SSH can be found on the [dedicated page](/security). diff --git a/ssh_de.md b/ssh_de.md new file mode 100644 index 00000000..c112663e --- /dev/null +++ b/ssh_de.md @@ -0,0 +1,97 @@ +# SSH + +## Was ist SSH? + +**SSH** steht für **S**ecure **Sh**ell, und bezeichnet ein Protokoll, dass es einem erlaubt über ein entferntes System auf die Kommandozeile (Command Line Interface, **CLI**) zuzugreifen. SSH ist standardmäßig auf jedem Terminal auf GNU/Linux oder macOS verfügbar. Für Windows ist Drittsoftware nötig, z.B. [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (Klicke nach dem Start auf Session und dann SSH). + +## Während der YunoHost Installation + +#### Finde deine IP + +Solltest du auf einem VPS installieren, dann hat der VPS Provider die IP-Adresse, die du bei ihm erfragen solltest. + +Wenn du Zuhause installierst (z.B. auf einem Raspberry Pi oder OLinuXino), dann musst du herausfinden, welche IP-Adresse dein Router dem System zugewiesen hat. Hierfür existieren mehrere Wege: +- Öffne ein Terminal und tippe `sudo arp-scan --local` ein, um eine Liste der aktiven IP-Adressen deines lokalen Netzwerks anzuzeigen; +- wenn dir der arp-scan eine zu unübersichtliche Zahl an Adressen anzeigt, versuche mit `nmap -p 22 192.168.**x**.0/24` nur die anzuzeigen, deren SSH-Port 22 offen ist. (passe das **x** deinem Netzwerk an); +- Prüfe die angezeigten Geräte in der Benutzeroberfläche deines Routers, ob du das Gerät findest; +- Schließe einen Bildschirm und Tastatur an deinen Server, logge dich ein und tippe `hostname --all-ip-address`. + +#### Connect + +Assuming your IP address is `111.222.333.444`, open a terminal and enter : + +```bash +ssh root@111.222.333.444 +``` + +A password will be asked. If this is a VPS, your VPS provided should have communicated you the password. If you used a pre-installed image (for x86 computer or ARM board), the password should be `yunohost`. + +
+Since YunoHost 3.4, after running the postinstallation, you won't be able to login as `root` anymore. Instead, **you should login using the `admin` user !** In the event that the LDAP server is broken and the `admin` user is unusable, you may still however still be able to login using `root` from the local network. +
+ +#### Change the password! + +After logging in for the first time, you should change the root password. The server might automatically ask you to do so. If not, use the command `passwd`. It is important to choose a reasonably strong password. Note that the root password will be overriden by the admin password when you perform the postinstallation. + +#### Let's configure ! + +We're now ready to begin the [post-installation](postinstall). + +## After installing YunoHost + +If you installed your server at home and are attempting to connect from outside your local network, make sure port 22 is correctly forwarded to your server. (Reminder : since YunoHost 3.4 you should connect using the `admin` user !) + +If you only know the IP address of your server : + +```bash +ssh admin@111.222.333.444 +``` + +Then, you need to enter your administrator password created at [post-installation step](postinstall). + +If you configured your DNS (or tweaked your `/etc/hosts`), you can simply use your domain name : + +```bash +ssh admin@your.domain.tld +``` + +If you changed the SSH port, you need to add `-p ` to the command, e.g. : + +```bash +ssh -p 2244 admin@your.domain.tld +``` + +
+If you are connected as `admin` and would like to become `root` for more comfort (e.g. to avoid typing `sudo` in front of every command), you can become `root` using the command `sudo su`. +
+ +## Which users? + +By default, only the `admin` user can log in to YunoHost SSH server. + +YunoHost's users created via the administration interface are managed by the LDAP directory. By default, they can't connect via SSH for security reasons. If you want some users to have SSH access enabled, use the command: + +```bash +yunohost user ssh allow +``` + +It is also possible to remove SSH access using the following: + +```bash +yunohost user ssh disallow +``` + +Finally, it is possible to add, delete and list SSH keys, to improve SSH access security, using the commands: + +```bash +yunohost user ssh add-key +yunohost user ssh remove-key +yunohost user ssh list-keys +``` + +## Security and SSH + +N.B. : `fail2ban` will ban your IP for 10 mimutes if you perform 5 failed login attempts. If you need to unban the IP, have a look at the page about [Fail2Ban](/fail2ban) + +A more extensive discussion about security & SSH can be found on the [dedicated page](/security). diff --git a/ssh_es.md b/ssh_es.md new file mode 100644 index 00000000..6466fa6c --- /dev/null +++ b/ssh_es.md @@ -0,0 +1,91 @@ +# SSH + +## ¿ Qué es SSH ? + +**SSH** est un acrónimo por Secure Shell, y representa un protocolo que permite controlar remotamente una máquina vía la línea de comandos (CLI). También es un comando básico disponible en los terminales de GNU/Linux y macOS. En Windows, hace falta utilizar el programa [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (después de haberlo iniciado, clicar sobre Session y luego SSH). + +## Durante la instalación de YunoHost + +#### Encontrar su IP + +Si instalas YunoHost en un VPS, tu proveedor debería haberte comunicado la dirección IP de tu servidor. + +Si instalas un servidor en tu casa (por ejemplo en Raspberry Pi u OLinuXino), tienes que encontrar el IP que fue atribuido a tu tarjeta cuando la conectaste a tu router / caja Internet. Hay varias maneras de hacerlo : + +- abre una terminal y teclea `sudo arp-scan --local` para enumerar los IP de las máquinas en la red local ; +- utiliza la interfaz de tu router caja internet para listar las máquinas conectadas, o mira los los ; +- conecta una pantalla en tu servidor, inicia una sesión y escribe `hostname --all-ip-address`. + +#### Conectarse + +Suponiendo que tu dirección IP sea `111.222.333.444`, abre una terminal y escribe : + +```bash +ssh root@111.222.333.444 +``` + +Ahora te piden una contraseña. Si es un VPS, tu proveedor ya te hará comunicado la contraseña. Si utilizaste una imagen pre-instalada (para x86 o tarjetas ARM), el password debería ser `yunohost`. + +
+Desde YunoHost 3.4, después de la post-instalación ya no es posible conectarse con el usuario `root`. En lugar de eso, hace falta **conectarse con el usuario `admin`**. Incluso si el servidor LDAP fuera quebrado (haciendo que el usuario `admin` ya no fuera utilizable) todavía deberías poder conectarte con el usuario `root` desde la red local. +
+ +#### ¡ Cambiar la contraseña root ! + +Después de haberte conectado por primera vez, tienes que cambiar la contraseña `root`. Tal vez el servidor te pida automáticamente que lo hagas. Si no es el caso, hay que utilizar el comando `passwd`. Es muy importante que elijas una contraseña bastante complicada. Nota que esta contraseña luego estará reemplazada por la contraseña admin elegida durante la post-instalación. + + +## En una instancia que ya está instalada + +Si instalaste tu servidor en casa y que quieres conectarte desde fuera de la red local, asegúrate que hayas previamente redirigido el puerto 22 de tu router / caja hacia tu servidor (con el usuario `admin` !) + +Si sólo conoces el IP de tu servidor : + +```bash +ssh admin@111.222.333.444 +``` + +Luego, entra la contraseña de administración que has elegido durante la post-instalación [post-installation](/postinstall). + +Si has configurado tus DNS (o modificar tu `/etc/hosts`), puedes utilizar tu nombre de dominio : + +```bash +ssh admin@votre.domaine.tld +``` + +Si cambiaste el puerto SSH, hay que añadir `-p ` al comando, por ej. : + +```bash +ssh -p 2244 admin@tu.dominio.tld +``` + +
+Si estás conectado como `admin` y quieres ser `root` para tener más confort (por ejemplo, para no teclear `sudo` con cada comando), puedes convertirte en `root` tecleando `sudo su`. +
+ +## ¿ Qué usuarios ? + +Por defecto, sólo el usuario `admin` puede conectarse en SSH en una instancia YunoHost. + +Los usuarios YunoHost creados vea la interfaz de administración están administrados por la base de datos LDAP. Por defecto, no pueden conectarse en SSH por razones de seguridad. Si necesitas absolutamente que uno de estos usuarios disponga de un acceso SSH, puedes utilizar el comando : +```bash +yunohost user ssh allow +``` + +Del mismo modo, es posible cancelar el acceso SSH de un usuario con el comando : +```bash +yunohost user ssh disallow +``` + +Finalmente, es posible añadir, suprimir y listar llaves SSH, para mejorar la seguridad del acceso SSH, con estos comandos : +```bash +yunohost user ssh add-key +yunohost user ssh remove-key +yunohost user ssh list-keys +``` + +## SSH y seguridad + +N.B. : `fail2ban` proscribirá tu IP durante 10 minutos si fracasas más de 5 veces consecutivas en identificarte. Si esto ocurre y que quieres re-validar tu IP, puedes echar un vistazo a la página [Fail2Ban](/fail2ban) + +Encontrarás explicaciones más completa sobre la seguridad y SSH en [la página dedicada](/security). diff --git a/ssh_fr.md b/ssh_fr.md new file mode 100644 index 00000000..4f2f4acc --- /dev/null +++ b/ssh_fr.md @@ -0,0 +1,84 @@ +# SSH + +## Qu’est-ce que SSH ? + +**SSH** est un acronyme pour Secure Shell, et désigne un protocole qui permet de contrôler et administrer à distance une machine via la ligne de commande (CLI). C'est aussi une commande disponible de base dans les terminaux de GNU/Linux et macOS. Sous Windows, il vous faudra utiliser le logiciel [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (après l'avoir lancé, cliquer sur Session puis SSH). + +## Quelle adresse utiliser pour se connecter au serveur ? + +Si vous hébergez votre serveur **à la maison** (par ex. Raspberry Pi ou OLinuXino ou vieil ordinateur) + - vous devriez pouvoir vous connecter à la machine en utilisant `yunohost.local`. + - si `yunohost.local` ne fonctionne pas, il vous faut [trouver l'IP locale de votre serveur](/finding_the_local_ip). + - si vous avez installé votre serveur à la maison mais essayez d'y accéder depuis l'extérieur du réseau local, assurez-vous d'avoir bien configuré une redirection de port pour le port 22 + +Si il s'agit d'une machine distante (VPS), votre fournisseur devrait vous avoir communiqué l'IP de votre machine + +Dans tous les cas, si vous avez déjà configuré un nom de domaine qui pointe sur l'IP appropriée, il est plus pratique d'utiliser `votre.domaine.tld` plutôt que l'adresse IP + +## Identifiants pour se connecter + +### AVANT la post-installation + +- Si vous faites une **installation à la maison**, les identifiants par défaut sont login: `root`, mot de passe: `yunohost` +- Si vous faites une **installation sur un serveur distant (VPS)**, votre fournisseur devrait vous avoir communiqué le login et mot de passe (ou vous proposer de configurer une clef SSH) + +### APRÈS la post-installation + +Durant la postinstallation, vous avez défini un mot de passe d'administration. C'est ce mot de passe qui devient le nouveau mot de passe pour les utilisateurs `root` et `admin`. De plus, **le connection en SSH avec l'utilisateur `root` est désactivée et il vous faut utiliser l'utilisateur `admin` !**. L'exception à cette règle est qu'il reste possible de se logger en root *depuis le réseau local - ou depuis une console en direct sur la machine* (ce qui peut être utile dans l'éventualité ou le serveur LDAP est inactif et l'utilisateur admin ne fonctionne plus) + +## Se connecter + +Une commande SSH ressemble typiquement à : + +```bash +# avant la postinstall: +ssh root@11.22.33.44 + +# ou après la postinstall: +ssh admin@11.22.33.44 +``` + +Ou bien en utilisant le nom de domaine plutôt que l'IP (plus pratique) : + +```bash +ssh admin@votre.domaine.tld +# ou avec le nom de domaine spécial yunohost.local: +ssh admin@yunohost.local +``` + +Si vous avez changé le port SSH, il faut rajouter l'option `-p ` à la commande, par ex. : + +```bash +ssh -p 2244 admin@votre.domaine.tld +``` + +
+Si vous êtes connecté en tant qu'`admin` et souhaitez devenir `root` pour plus de confort (par exemple, ne pas avoir à taper `sudo` à chaque commande), vous pouvez devenir `root` en tapant `sudo su` ou `sudo -i`. +
+ +## Quels utilisateurs ? + +Par défaut, seulement l'utilisateur `admin` peut se logger en SSH sur une instance YunoHost. + +Les utilisateurs YunoHost créés via l'interface d'administration sont gérés par la base de donnée LDAP. Par défaut, ils ne peuvent pas se connecter en SSH pour des raisons de sécurité. Si vous avez absolument besoin qu'un utilisateur dispose d'un accès SSH, vous pouvez utiliser la commande : +```bash +yunohost user ssh allow +``` + +De même, il est possible de supprimer l'accès SSH à un utilisateur avec la commande : +```bash +yunohost user ssh disallow +``` + +Enfin, il est possible d'ajouter, de supprimer et de lister des clés SSH, pour améliorer la sécurité de l'accès SSH, avec les commandes : +```bash +yunohost user ssh add-key +yunohost user ssh remove-key +yunohost user ssh list-keys +``` + +## SSH et sécurité + +N.B. : `fail2ban` bannira votre IP pour 10 minutes si vous échouez plus de 5 fois à vous identifier. Pour débannir une IP, vous pouvez regarder la page sur [Fail2Ban](/fail2ban) + +Une discussion plus complète de la sécurité et de SSH peut être trouvée sur [la page dédiée](/security). diff --git a/ssh_it.md b/ssh_it.md new file mode 100644 index 00000000..83689950 --- /dev/null +++ b/ssh_it.md @@ -0,0 +1,92 @@ +# SSH + +## Cos'è SSH? + +**SSH** sta per Secure Shell, un protocollo che permette di controllare da remoto un computer usando l'interfaccia a linea di comando (command line interface, CLI in inglese). È disponibile di default in ogni emulazione di terminale su GNU/Linux e macOS. Su Windows è possibile usare [MobaXterm](https://mobaxterm.mobatek.net/download-home-edition.html) (dopo averlo avviato si deve cliccare su Session e poi SSH). + +## Durante l'installazione di YunoHost + +#### Individuare il proprio IP + +Se stai installando su un VPS allora il provider dovrebbe averti indicato il tuo indirizzo IP. + +Se stai installando su un computer casalingo (ad esempio un Raspberry Pi o un OLinuXino) devi individuare l'indirizzo IP che è stato attribuito al computer dopo averlo collegato al router. Questi sono alcuni sistemi: +- avvia un terminale e dai il comando `sudo arp-scan --local` per elencare gli indirizzi IP sulla rete locale; +- usa l'interfaccia del router per vedere la lista dei computer collegati o controllane i log; +- collega un monitor al tuo server yunohost, fai login e digita `hostname --all-ip-address`. + +#### Collegamento + +Se come esempio il tuo indirizzo IP è `111.222.333.444` avvia un terminale e digita: + +```bash +ssh root@111.222.333.444 +``` + +Ti verrà richiesta una password. Nel caso tu stia utilizzando un VPS questa ti dovrebbe essere stata comunicata dal provider. Se invece stai utilizzando un'immagine pre-installata (per computer di tipo x86 o ARM) la password sarà `yunohost`. + +
+Dalla versione 3.4 di YunoHost, dopo aver completato il processo di post installazione, non sarà più possibile fare login da `root`: invece **sarà necessario fare login usando l'utente `admin`!**. Nel caso in cui il server LDAP non stia funzionando e l'utente `admin` sia inutilizzabile sarà sempre possibile fare login da `root` solo dalla rete locale. +
+ +#### Cambio della password + +Dopo esserci loggati per la prima volta è necessario cambiare la password di root e ti dovrebbe essere richiesto dal server stesso; nel caso in cui questo non accada usa il comando `passwd`. È importante scegliere una password ragionevolmente robusta. Nota che la password di root verrà sovrascritta dalla password di admin dal processo di postinstallazione. + +## Dopo l'installazione + +Se hai installato il server a casa e stai provando a collegarti dall'esterno della tua rete locale verifica che la porta 22 sia regolarmente forwardata al server. (Ricorda, dalla versione 3.4 di YunoHost dovrai usare l'utente `admin`!). + +Se conosci esclusivamente l'indirizzo IP del tuo server: + +```bash +ssh admin@111.222.333.444 +``` + +Dopo di che dovrai inserire la password di amministratore creata nella [procedura di postinstallazione](postinstall). + +Se invece hai configurato il DNS (o hai modificato il file `/etc/hosts`), puoi semplicemente usare il tuo nome di dominio: + +```bash +ssh admin@your.domain.tld +``` + +Se hai modificato la porta in ascolto per SSH devi aggiungere l'opzione `-p ` al comando, cioè: + +```bash +ssh -p 2244 admin@your.domain.tld +``` + +
+Se sei loggato come `admin` ma vuoi usare l'utente `root` per maggiore comodità (ad esempio per evitare di scrivere `sudo` prima di ogni comando) puoi usare il comando `sudo su`. +
+ +## Utenti abilitati + +Di default solo l'utente `admin` può loggarsi al server SSH di YunoHost. + +Gli utenti creati dall'interfaccia di amministrazione sono gestiti dalla directory LDAP e di default non possono connettersi via SSH per ragioni di sicurezza. Se invece vuoi abilitare all'accesso SSH alcuni utenti usa il comando: + +```bash +yunohost user ssh allow +``` + +È sempre possibile eliminare l'accesso SSH con il comando: + +```bash +yunohost user ssh disallow +``` + +Infine è possibile aggiungere, eliminare ed elencare le chiavi SSH, usate per migliorare la sicurezza degli accessi SSH con i comandi: + +```bash +yunohost user ssh add-key +yunohost user ssh remove-key +yunohost user ssh list-keys +``` + +## Sicurezza e SSH + +N.B.: `fail2ban` bannerà il tuo IP per 10 minuti nel caso di almeno 5 tentativi di accesso falliti. Se devi togliere il ban al tuo IP leggi la pagina relativa [Fail2Ban](/fail2ban) + +Una discussione più approfondita relativa a sicurezza & SSH è su [questa pagina](/security). diff --git a/stretch_buster_migration.md b/stretch_buster_migration.md new file mode 100644 index 00000000..84c47b1a --- /dev/null +++ b/stretch_buster_migration.md @@ -0,0 +1,65 @@ +# Migrating an existing instance to Buster + +This page is dedicated to help you migrating an instance from YunoHost 3.8.x (running on Debian Stretch/9.x) to YunoHost 4.x (running on Debian Buster/10.x). + +## Important notes + +- The YunoHost team did its best to make sure that the migration is as smooth as possible and was tested over the course of several months in several cases. + +- With that said, please be aware that this is a delicate operation. System administration is a complicated topic and covering every particular cases is quite hard. Therefore, if you host critical data and services, please [make backups](/backup). And in any case, be patient and attentive during the migration. + +- Please don't rush into thinking that you should need to reinstall your system from scratch thinking it would be "simpler" (sigh). (A common attitude is to be willing to reinstall a server at the slightest complication...) Instead, if you happen to run into issues, we encourage you to try to investigate and understand what's going on and [reach for help on the chat and the forum](/help). + +## Migration procedure + +#### From the webadmin + +After upgrading to 3.8.5.x, go to Tools > Migrations to access the migrations interface. You will have to read carefully and accept the disclaimer then launch the migration. + +#### From the command line + +After upgrading to 3.8.5.x, run : + +```bash +sudo yunohost tools migrations migrate +``` + +then read carefully and accept the disclaimer. + +## During the migration + +Depending on your hardware and packages installed, the migration might take up to a few hours. + +The logs will be shown in the message bar (you can hover it to see the whole history). They will also be available after the migration (like any other operations) in Tools > Logs. + +Note that even if you close the webadmin page for some reason, the migration will continue in the background (but the webadmin will be partially unavailable). + +#### If the migration crashed / failed at some point. + +If the migration failed at some point, it should be possible to relaunch it. If it still doesn't work, you can try to [get help](/help) (please provide the corresponding messages or whatever makes you tell that it's not working). + +## What to do after the upgrade + +#### Check that you actually are on Debian Buster and YunoHost 4.x + +For this, go in Diagnosis (category Base system) or look at the footer of the webadmin. In the command line, you can use `lsb_release -a` and `yunohost --version`. + +#### Check that no issue appeared in the diagnosis + +Also in the Diagnosis in the webadmin, make sure that no specific issue appeared after running the migration (for example a service that crashed for some reason). + +#### Check that your applications are working + +Test that your applications are working. If they aren't, you should try to upgrade them (it is also a good idea to upgrade them even if they are working anyway). + +## Current known (minor) issues after the migration + +- Some file (`/etc/nsswitch.conf` and `/etc/nslcd.conf`) will appear as manually modified after the migration. You can safely apply the regen-conf with: + +```bash +yunohost tools regen-conf nsswitch nslcd --force +``` + +(we will try to do this automatically somehow) + +- Sometimes the postgresql migration (that is supposed to happen automatically after the buster migration is ran) fails to run properly... Some users reported that re-launching manually the postgresql migration fixed the issue (we will try to understand and fix this somehow) diff --git a/stretch_buster_migration_fr.md b/stretch_buster_migration_fr.md new file mode 100644 index 00000000..e3b3997b --- /dev/null +++ b/stretch_buster_migration_fr.md @@ -0,0 +1,65 @@ +# Migrer vers Buster + +L'objectif cette page est de décrire le processus de migration d'une instance en YunoHost 3.8.x (tournant sous Debian Stretch/9.x) vers YunoHost 4.x (tournant sous Debian Buster/10.x) + +## Notes importantes + +- L'équipe de YunoHost a fait de son mieux pour que cette migration se passe autant en douceur que possible. Elle a été testée durant plusieurs mois et sur plusieurs types d'installations. + +- Néanmoins, vous devez être conscient qu'il s'agit d'une opération délicate. L'administration système est un sujet compliqué et couvrir tous les cas particuliers n'est pas chose aisée. En conséquence, si vous hébergez des données et des systèmes critiques, [faites des sauvegardes](/backup). Et dans tous les cas, soyez patients et attentifs durant la migration. + +- Ne vous précipitez pas à vouloir faire une réinstallation de votre système en pensant que cela serait "plus simple" (sigh). (Une attitude qui revient régulièrement est de vouloir réinstaller son système à la moindre complication...). À la place, si vous rencontrez des problèmes, nous vous encourageons à investiguer, chercher à comprendre et [trouver de l'aide sur le chat ou le forum](/help). + +## Procédure de migration + +#### Depuis la webadmin + +Après avoir mis à jour vers la version en 3.8.5.x, allez dans Outils > Migrations pour accéder à l'interface de migration. Il vous faudra ensuite lire l'avertissement attentivement et l'accepter pour lancer la migration. + +#### Depuis la ligne de commande + +Après avoir mis à jour vers la version 3.8.5.x, lancez : + +```bash +sudo yunohost tools migrations migrate +``` + +puis lisez attentivement l'avertissement et les instructions. + +## Pendant la migration + +En fonction de votre matériel et des paquets installés, la migration peut prendre jusqu'à une ou deux heures. + +Les logs seront affichés dans la barre de message en haut (vous pouvez approcher la souris dessus pour voir l'historique en entier). Ils seront également consultable après coup (comme les autres opérations) dans Outils > Journaux. + +Notez que même si vous fermez la page d'admin, la migration continuera (par contre l'interface d'admin sera partiellement indisponible). + +#### Si la migration a crashé / échoué à un moment. + +Si la migration a échoué a un moment donné, la première chose à faire est de tenter de la relancer. Si cela ne fonctionne toujours pas, il vous faut [trouver de l'aide](/help) (prière de fournir le/les messages correspondants ou tout élément qui vous fait penser que ça n'a pas marché). + +## Choses à vérifier après la migration + +#### Vérifiez que vous êtes véritablement sous Debian Buster / YunoHost 4.x + +Pour cela, vous pouvez aller dans la partie Diagnostic (section Système de base). (Vous pouvez aussi regarder ce qui est affiché à droite dans le pied de page de la webadmin). En ligne de commande, vous pouvez aussi utiliser `lsb_release -a` et `yunohost --version`. + +#### Vérifiez que le diagnostic ne rapporte pas de problème particulier + +Également dans la section Diagnostic de la webadmin, vérifiez qu'il n'y a pas de problème apparu suite à la migration (par exemple un service qui ne tournerais plus...) + +#### Vérifiez que les applications fonctionnent + +Vérifiez que vos applications installées fonctionnent... Si elles ne fonctionnent pas, il est recommandé de tenter de les mettre à jour. (ou bien de manière générale, il est recommandé de les mettre à jour même si elles fonctionnent !). + +## Soucis (mineurs) connus après la migration + +- Quelques fichiers de configurations (`/etc/nsswitch.conf` et `/etc/nslcd.conf`) apparaîtrons comme manuellement modifiés. Vous pouvez appliquer la regen-conf en toute sécurité pour régler le problème avec la commande: + +```bash +yunohost tools regen-conf nsswitch nslcd --force +``` + +(nous allons essayer de corriger ceci automatiquement) + +- Il se peut que la migration postgresql (censée s'effectuer automatiquement après la migration à Buster) ne fonctionne pas correctement... Certains utilisateurs ont rapporté que relancer la migration suffisait à résoudre le problème. (Nous allons voir pour comprendre et corriger ce soucis) diff --git a/tests/check_code_block_syntax.sh b/tests/check_code_block_syntax.sh new file mode 100644 index 00000000..62e83a0f --- /dev/null +++ b/tests/check_code_block_syntax.sh @@ -0,0 +1,17 @@ +returncode=0 +for FILE in $(ls *.md) +do + NB_OPENING=$(grep -E "^ *\`\`\` *\w+ *$" $FILE | wc -l) + NB_CLOSE=$(grep -E "^ *\`\`\` *$" $FILE | wc -l) + if [[ "$NB_OPENING" != "$NB_CLOSE" ]] + then + echo "There are some mistakes in code block syntax in $FILE ..." + returncode=1 + fi +done + +if [[ $returncode == 1 ]] +then + echo "Make sure that all the code block in the problematic files do specific the language in the opening backticks (for example, \`\`\`bash). Otherwise, rendering in the actual website will be broken because of a bug in markdown parsing lib..." + exit 1 +fi diff --git a/tests/dead_links.sh b/tests/dead_links.sh new file mode 100644 index 00000000..c9fd27ce --- /dev/null +++ b/tests/dead_links.sh @@ -0,0 +1,19 @@ +returncode=0 + +# Find all markdown links and generate a list of filename.md:N:linktarget (with N the line number) +for LINK in $(grep -nr -o -E "\]\(\/?(\w|-)+\)" ./*.md | tr -d ']()/') +do + PAGE=$(echo $LINK | awk -F: '{print $3}') + [ -e "$PAGE.md" ] || echo "This Markdown link looks dead (page doesn't exist in english?) $LINK" + [ -e "$PAGE.md" ] || returncode=1 +done + +# Find all HTML/href links and generate a list of filename.md:N:linktarget (with N the line number) +for LINK in $(grep -nr -o -E 'href="\/?(\w|-)+\"' ./*.md | sed -E 's@href="/?@@g' | tr -d '"') +do + PAGE=$(echo $LINK | awk -F: '{print $3}') + [ -e "$PAGE.md" ] || echo "This HTML link looks dead (page doesn't exist in english?) $LINK" + [ -e "$PAGE.md" ] || returncode=1 +done + +exit $returncode diff --git a/tests/uniformize_links.sh b/tests/uniformize_links.sh new file mode 100644 index 00000000..e0e1613d --- /dev/null +++ b/tests/uniformize_links.sh @@ -0,0 +1,15 @@ +for FILE in $(ls *.md); +do + grep -q "Unfortunately, this page only exists" $FILE && continue + + # Replace markdown links with full url ... we only need the relative url + sed -i -E 's@\(https://yunohost.org/#/(\w+)\)@(/\1)@g' $FILE + + # Replace (/foo_fr) to (foo) + sed -i -E 's@\(\/?((\w|-)+)_(en|fr|es|it|ar|de|oc|ca)\)@(/\1)@g' $FILE + + # Replace href="/foo_fr" to href="foo" + sed -i -E 's@href="/?((\w|-)+)_(en|fr|es|it|ar|de|oc|ca)"@href="/\1"@g' $FILE; +done + +git checkout project_organization.md project_organization_fr.md diff --git a/tests/unreferenced_pages.sh b/tests/unreferenced_pages.sh new file mode 100644 index 00000000..dbe83931 --- /dev/null +++ b/tests/unreferenced_pages.sh @@ -0,0 +1,25 @@ + + +MARKDOWN_TARGETS=$(grep -nr -o -E "\]\(\/?(\w|-)+\)" ./*.md | tr -d ']()/' | awk -F: '{print $3}' | sort | uniq) +HTML_TARGETS=$(grep -nr -o -E 'href="\/?(\w|-)+\"' ./*.md | sed -E 's@href="/?@@g' | tr -d '"' | awk -F: '{print $3}' | sort | uniq) + +ALL_TARGETS=$(echo $MARKDOWN_TARGETS $HTML_TARGETS) + +PAGES=$(ls *.md | sed -E 's/(_(fr|it|de|ar|oc|es|ru|ca))?\.md//g' | sort | uniq) + +returncode=0 + +for PAGE in $PAGES +do + if [[ $PAGE == "index" ]] || [[ $PAGE == "README" ]] || [[ $PAGE == "default" ]] + then + continue + fi + if ! echo $ALL_TARGETS | grep -q -w $PAGE + then + returncode=1 + echo "The following page is not referenced by any other page :( -> $PAGE" + fi +done + +exit $returncode diff --git a/theming.md b/theming.md new file mode 100644 index 00000000..9cc9a19f --- /dev/null +++ b/theming.md @@ -0,0 +1,66 @@ +# Customize the appearance of the user portal + +## Using a theme + +Since YunoHost 3.5, you can change the theme of the user portal - though for now it requires tweaking via the command line. + +You can list the available themes with: + +```bash +$ ls /usr/share/ssowat/portal/assets/themes/ +``` + +Then you can use `nano /etc/ssowat/conf.json.persistent` to enable the theme you choose like this: + +```json +{ + "theme": "light", + ...other lines... +} +``` + +
+You might need to force the refresh of your browser's cache for the theme to fully propagate. You can do so with Ctrl+Shift+R on Firefox. +
+ +## Adding someone else's theme + +You may add themes created by other people by downloading and extracting the corresponding files in a new folder `the_theme_name` in `/usr/share/ssowat/portal/assets/themes/`. + +
+**Beware** that adding third-party themes from random strangers on the internet **is a security risk**. It is equivalent to running someone's else code on your machine, which can be used for malicious purpose such as stealing credentials! +
+ +## Creating your own theme + +You can create your own theme by copying the existing theme of your choice. For instance starting from the light theme: + +```bash +cp -r /usr/share/ssowat/portal/assets/themes/{light,your_own_theme} +``` + +Then, edit the files the CSS and JS files in `/usr/share/ssowat/portal/assets/themes/your_own_theme` according to what you want to do: + +- `custom_portal.css` can be used to add custom CSS rules to the user portal; +- `custom_overlay.css` can be used to customize the small YunoHost button overlay, displayed on apps page which includes it; +- `custom_portal.js` can be used to add custom JS code to be ran both on the user portal or when injecting the small YunoHost button / overlay. + +You can also add your own images and assets which can then be used by the CSS and JS files. + +### Example : customizing the logo + +You may create your own theme simply to change the "branding" of the YunoHost user portal and replace the YunoHost logo with you own! + +To do so, upload your logo to `/usr/share/ssowat/portal/assets/themes/your_own_theme/`, and use the following CSS rules: + +```css +/* Inside custom_portal.css */ +#ynh-logo { + background-image: url("./your_logo.png"); +} + +/* Inside custom_overlay.css */ +#ynh-overlay-switch { + background-image: url("./your_logo.png"); +} +``` diff --git a/theming_fr.md b/theming_fr.md new file mode 100644 index 00000000..c79f1678 --- /dev/null +++ b/theming_fr.md @@ -0,0 +1,66 @@ +# Personnaliser l’apparence du portail utilisateur + +## Utiliser un thème + +Depuis YunoHost 3.5, il est possible de changer le thème du portail utilisateur - bien que pour l'instant il faille encore faire cette opération via la ligne de commande. + +Vous pouvez lister les thèmes disponibles avec : + +```bash +ls /usr/share/ssowat/portal/assets/themes/ +``` + +Ensuite, vous pouvez utiliser `nano /etc/ssowat/conf.json.persistent` pour activer le thème que vous choisissez comme ceci : + +```json +{ + "theme" : "light", + ...autres lignes..... +} +``` + +
+Vous devrez peut-être forcer le rafraîchissement du cache de votre navigateur pour que le thème se propage complètement. Vous pouvez le faire avec Ctrl+Maj+R sur Firefox. +
+ +## Ajouter le thème de quelqu'un d'autre + +Vous pouvez ajouter des thèmes créés par d'autres personnes en téléchargeant et en extrayant les fichiers correspondants dans un nouveau dossier `nom_du_theme` dans `/usr/share/ssowat/portal/assets/themes/`. + +
+**Attention** : l'ajout de thèmes provenant d'inconnus sur Internet **est un risque de sécurité**. Cela équivaut à exécuter du code écrit par quelqu'un d'autre sur votre machine, et peut donc être utilisé à des fins malveillantes comme voler des mots de passe ! +
+ +## Créer votre propre thème + +Vous pouvez créer votre propre thème en copiant le thème existant de votre choix. Par exemple à partir du thème `light` : + +```bash +cp -r /usr/share/ssowat/portal/assets/themes/{light,votre_theme} +``` + +Ensuite, éditez les fichiers CSS et JS dans `/usr/share/ssowat/portal/assets/themes/votre_theme` selon ce que vous voulez faire : + +- `custom_portal.css` peut être utilisé pour ajouter des règles CSS personnalisées au portail utilisateur ; +- `custom_overlay.css` peut être utilisé pour personnaliser le petit bouton YunoHost, présent sur les apps qui l'intègrent ; +- `custom_portal.js` peut être utilisé pour ajouter du code JS personnalisé à exécuter à la fois sur le portail utilisateur ou lors de l'injection du petit bouton YunoHost ("overlay"). + +Vous pouvez également ajouter vos propres images et ressources qui peuvent ensuite être utilisées par les fichiers CSS et JS. + +### Exemple : personnaliser le logo + +Vous pouvez créer votre propre thème simplement pour changer le "branding" du portail utilisateur YunoHost et remplacer le logo YunoHost par votre propre logo ! + +Pour ce faire, téléversez votre logo dans `/usr/share/ssowat/portal/assets/themes/votre_theme/`, et ajoutez les règles CSS suivantes : + +```css +/* Dans custom_portal.css */ +#ynh-logo { + background-image : url("./votre_logo.png"); +} + +/* Dans custom_overlay.css */ +#ynh-overlay-switch { + background-image : url("./votre_logo.png"); +} +``` diff --git a/torhiddenservice.md b/torhiddenservice.md new file mode 100644 index 00000000..5c1fc0ca --- /dev/null +++ b/torhiddenservice.md @@ -0,0 +1,49 @@ +## Using YunoHost as a Tor Hidden Service +
+This tuto is not finished ! Some data could leak with this setup like the main domain of your yunohost, so it's not a "Hidden Service". +
+ +See https://www.torproject.org/docs/tor-hidden-service.html.en + +### Installing Tor +```bash +apt install tor +``` + +### Configuring our hidden service +Edit `/etc/tor/torrc`, and add these lines: + +```bash +HiddenServiceDir /var/lib/tor/hidden_service/ +HiddenServicePort 80 127.0.0.1:80 +HiddenServicePort 443 127.0.0.1:443 +``` + +### Restart Tor +```bash +service tor restart +``` + +### Get your Tor Hidden Service hostname +```bash +cat /var/lib/tor/hidden_service/hostname +``` + +Your domain looks like *random123456789.onion* + +### Add the .onion domain to YunoHost +```bash +yunohost domain add random123456789.onion +``` + +### Avoid SSO redirection (optional) +If you want to avoid being redirected to the SSO portal at login, you can deactivate SSOwat for this specific tor domain, by editing the file `/etc/nginx/conf.d/random123456789.onion.conf` and commenting the following line (two times): + +```bash +#access_by_lua_file /usr/share/ssowat/access.lua; +``` + +### Restart NGINX +```bash +service nginx restart +``` diff --git a/torhiddenservice_fr.md b/torhiddenservice_fr.md new file mode 100644 index 00000000..a546f680 --- /dev/null +++ b/torhiddenservice_fr.md @@ -0,0 +1,53 @@ +## Utiliser YunoHost comme un service caché Tor +
+Ce tuto n'est pas complet ! Des données peuvent être récupérée avec cette installation comme le nom de domaine principal de votre yunohost, donc ce n'est pas un "service caché". +
+Voir https://www.torproject.org/docs/tor-hidden-service.html.en (anglais) + +### Installer Tor +```bash +apt install tor +``` + +### Configurer notre service caché +Éditer le fichier `/etc/tor/torrc`, et ajouter ces lignes : + +```bash +HiddenServiceDir /var/lib/tor/hidden_service/ +HiddenServicePort 80 127.0.0.1:80 +HiddenServicePort 443 127.0.0.1:443 +``` + +### Redémarrer Tor +```bash +systemctl restart tor +``` + +### Obtenir l’adresse du service caché +```bash +cat /var/lib/tor/hidden_service/hostname +``` + +Le nom de domaine ressemble à *random123456789.onion* + +### Ajouter le domaine .onion à YunoHost +```bash +yunohost domain add random123456789.onion +``` + +### Éviter la redirection vers le SSO (optionnel) +Si vous voulez éviter d’être redirigé vers le portail à la connexion pour des raisons de traçabilité, vous pouvez désactiver SSOwat pour le domaine, en éditant le fichier `/etc/nginx/conf.d/random123456789.onion.conf` et en commentant la ligne suivante (elle apparaît deux fois dans le fichier) : + +```bash +#access_by_lua_file /usr/share/ssowat/access.lua; +``` + +### Vérifier que l'on a pas fait d'erreurs dans la configuration de NGINX +```bash +nginx -t +``` + +### Si tout est OK on applique les modifications de la configuration +```bash +systemctl reload nginx +``` diff --git a/torhiddenservice_it.md b/torhiddenservice_it.md new file mode 100644 index 00000000..155c4250 --- /dev/null +++ b/torhiddenservice_it.md @@ -0,0 +1,50 @@ +## Collegarsi a YunoHost attraverso un Hidden Service +
+Questo tutorial non è completo! Con queste impostazioni alcuni dati possono essere rivelati come ad esempio il dominio principale del tuo yunohost, di conseguenza non può essere considerato un reale "Hidden service". +
+ +Vedi https://www.torproject.org/docs/tor-hidden-service.html + +### Installare Tor +```bash +apt install tor +``` + +### Configurazione dell'hidden service +Modifica `/etc/tor/torrc` aggiungendo queste righe: + +```bash +HiddenServiceDir /var/lib/tor/hidden_service/ +HiddenServicePort 80 127.0.0.1:80 +HiddenServicePort 443 127.0.0.1:443 +``` + +### Riavvia Tor +```bash +service tor restart +``` + +### Copia l'hostname del tuo Hidden Service +```bash +cat /var/lib/tor/hidden_service/hostname +``` + +Il dominio dell'hidden service sarà una cosa tipo *random123456789.onion* + +### Aggiungi il dominio .onion a YunoHost +```bash +yunohost domain add random123456789.onion +``` + +### Disabilita la redirezione SSO (opzionale) +Se non vuoi essere rediretto al portale SSO al login puoi disattivare SSOwat specificatamente per questo dominio modificando il file `/etc/nginx/conf.d/random123456789.onion.conf` commentando le seguenti linee (due volte): + +```bash +#access_by_lua_file /usr/share/ssowat/access.lua; +``` + +### Riavvia NGINX +```bash +service nginx restart +``` + diff --git a/try.md b/try.md new file mode 100644 index 00000000..b7477251 --- /dev/null +++ b/try.md @@ -0,0 +1,27 @@ +# Try YunoHost + +
+**Note:** This demo server could be down from time to time. +
+ +
+ +
+ +
+
+ User interface +

Username: demo
Password: demo

+
+
+ Administration interface +

Password: demo

+
+
+ +
+ +

+***Demo server gracefully provided by +Gitoyen*** +

diff --git a/try_ar.md b/try_ar.md new file mode 100644 index 00000000..4ab216e4 --- /dev/null +++ b/try_ar.md @@ -0,0 +1,29 @@ +#
تجريب YunoHost
+ +
+**ملاحظة :** يمكن لهذا السيرفر التجريبي أن يتوقف من وقت إلى آخر. +
+ +
+ +
+ +
+
+ واجهة المستخدم +

إسم المستخدم : demo
كلمة السر : demo

+
+
+ واجهة الإدارة +

كلمة السر : demo

+
+
+ +
+ +

+***تم توفير الخادم التجريبي بفضل +Gitoyen*** +

+ + diff --git a/try_ca.md b/try_ca.md new file mode 100644 index 00000000..42ab0870 --- /dev/null +++ b/try_ca.md @@ -0,0 +1,27 @@ +# Prova YunoHost + +
+**Nota:** Aquest és un servidor de demostració, podria estar caigut de tant en tant. +
+ +
+ +
+ +
+
+ Interfície d'usuària +

Nom d'usuària: demo
Contrasenya: demo

+
+
+ Interfície d'administració +

Contrasenya: demo

+
+
+ +
+ +

+***Servidor de demostració amablement ofert per +Gitoyen*** +

diff --git a/try_de.md b/try_de.md new file mode 100644 index 00000000..5fc341ff --- /dev/null +++ b/try_de.md @@ -0,0 +1,27 @@ +# YunoHost ausprobieren + +
+**Hinweis:** Dieser Demo-Server könnte zeitweilig nicht erreichbar sein. +
+ +
+ +
+ +
+
+ Anwendungen +

Username: demo
Password: demo

+
+
+ Verwaltung +

Password: demo

+
+
+ +
+ +

+***Demo-Server freundlicherweise zur Verfügung gestellt von +Gitoyen*** +

diff --git a/try_es.md b/try_es.md new file mode 100644 index 00000000..dc63ee34 --- /dev/null +++ b/try_es.md @@ -0,0 +1,29 @@ +# Probar YunoHost + +
+**Nota :** Este demo puede dejar de functionar de vez en cuando. +
+ +
+ +
+ +
+
+ Interfaz de usuario +

Usuario : demo
Contraseña : demo

+
+
+ Interfaz de administración +

Contraseña : demo

+
+
+ +
+ +

+***El servidor de demo es ofrecido generosamente por +Gitoyen*** +

+ + diff --git a/try_fr.md b/try_fr.md new file mode 100644 index 00000000..94f943be --- /dev/null +++ b/try_fr.md @@ -0,0 +1,29 @@ +# Essayer YunoHost + +
+**Note :** Cette démo peut cesser de fonctionner de temps en temps. +
+ +
+ +
+ +
+
+ Interface utilisateur +

Utilisateur : demo
Mot de passe : demo

+
+
+ Interface d’administration +

Mot de passe : demo

+
+
+ +
+ +

+***Le serveur de démo est fourni généreusement par +Gitoyen*** +

+ + diff --git a/try_it.md b/try_it.md new file mode 100644 index 00000000..548e3b68 --- /dev/null +++ b/try_it.md @@ -0,0 +1,27 @@ +# Prova YunoHost + +
+**Nota:** A volte questo server demo può essere irraggiungibile +
+ +
+ +
+ +
+
+ Interfaccia utente +

Nome utente: demo
Password: demo

+
+
+ Interfaccia amministrazione +

Password: demo

+
+
+ +
+ +

+***Il server demo è gentilmente fornito da +Gitoyen*** +

diff --git a/update.md b/update.md new file mode 100644 index 00000000..b67f6f18 --- /dev/null +++ b/update.md @@ -0,0 +1,18 @@ +# How to update the system + +## From the webadmin + +On the administraton panel, click on Upgrade the system. + +The application search for updates and propose it if so. + +If so, click on green update button and updates are applied. + +## From the command line + +From the command line, you can run: + +``` bash +yunohost tools update +yunohost tools upgrade --system +``` diff --git a/update_fr.md b/update_fr.md new file mode 100644 index 00000000..c025cdef --- /dev/null +++ b/update_fr.md @@ -0,0 +1,19 @@ +# Mettre à jour le système + +## Depuis la webadmin + +Dans la partie administration, choisir Mettre à jour le système. + +L’application recherche les mises à jour et les propose s’il y en a. + +Si c’est le cas, cliquer sur le bouton vert « Mettre à jour » et les mises à +jour se font. + +## Depuis la ligne de commande + +Depuis la ligne de commande, vous pouvez utiliser : + +``` bash +yunohost tools update +yunohost tools upgrade --system +``` diff --git a/use_case_non-profit_organisations.md b/use_case_non-profit_organisations.md new file mode 100644 index 00000000..a63dafe7 --- /dev/null +++ b/use_case_non-profit_organisations.md @@ -0,0 +1,204 @@ +# YunoHost for non-profit organizations + +## Table of Contents +* [Introduction](#introduction) +* [Who](#who) +* [What](#what) +* [When](#when) +* [Where](#where) +* [Why](#why) +* [How](#how) +* [Conclusion](#conclusion) + +## Introduction + +The object of this document is to present a specific use of [YunoHost](https://yunohost.org/) for non-profit organizations. + +## Who + +Non-profit organizations, NGO or any kind of association. + +## What + +Usually non-profit organizations need to provide several services to several publics: + +* Board of Directors / Steering Committee / Volunteers with: + * [Mails](#mails) + * [Calendar](#calendar) + * [Contact](#contact) + * [Shared files / Drive](#shared-files) + * [Instant communication](#instant-communication) + * [Intranet / knowledge database](#intranet) + * [ERP / Accounting](#erp-accounting) +* Members with: + * [Public website with private and individual access](#public-web-site) + * [Membership](#membership) + * [Events registrations](#events-registrations) + * [Mailings](#newsletter-mailing) + * [Forum](#forum) +* Public with: + * [Public website](#public-web-site) + * [Newsletter](#newsletter-mailing) + +## When + +When ready to move forward. + +## Where + +You YunoHost for non profit can be hosted in several places: +* Own hosting on a server, computer or Raspberry behind ASDL, SDSL or Fiber +* [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters) hosting services +* Commercial hosting services providing Debian virtual machine + +## Why + +YunoHost can provide mostly all needs of a non-profit organization. +Keeping their data on their own. + +## How + +### YunoHost + +YunoHost is a Debian GNU/Linux based distribution packaged with free software that automates the installation of a personal web server. The purpose of YunoHost is to allow users to easily host their own web services by enabling a simple point-and-click web interface for installing various web apps. + +![](https://upload.wikimedia.org/wikipedia/commons/0/07/Yunohost_user_portal.png) + +Out of the box YunoHost provide: +* A system of application +* A web interface +* A command-line interface (CLI): Moulinette +* A web server: NGINX +* A DNS server: Dnsmasq +* A database: MariaDB +* A backup system +* An SSO: SSOwat +* OpenLDAP +* Email: + * SMTP: Postfix + * IMAP & POP3: Dovecot + * An antispam: rspamd,rmilter +* Instant messaging XMPP server: Metronome IM + +### Domain Name + +The first thing you will need to implement a YunoHost server is a domain name. The domain name can usually be provided with your hosting service. + +### Mails + +From scratch, YunoHost provide mail system available using POP/IMAP/SMTP. +Mails accounts will be managed using the web interface or the command line. Created accounts are stored in OpenLDAP. + +Additional package can be installed to provide more functionality to the YunoHost mail system: +* Webmail using [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh) +* ActiveSync using [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh) +* Internal distribution group using [Mailman](https://github.com/YunoHost-Apps/mailman_ynh) + +### Calendar + +To provide personal or shared calendars you will need to install: +* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh) +* [Baïkal](https://github.com/YunoHost-Apps/baikal_ynh) + +### Contact + +To provide personal contact system you will need to install: +* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh) +* [Baïkal](https://github.com/YunoHost-Apps/baikal_ynh) + +### Shared files + +To provide shared files system: personal and shared drive, you can install [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh). +Files will be available from a web interface or using a synchronization client. + +### Instant communication + +Out of the box, YunoHost provide an XMPP server, for which you can install a web client: [Jappix](https://github.com/YunoHost-Apps/jappix_ynh). + +You can also install a matrix server: +* The server: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh) +* A web client: [Element](https://github.com/YunoHost-Apps/element_ynh) + +### Intranet + +For an non-profit organization a good way to implement an intranet is to provide a wiki to let internal users read, edit and add content. Here are some packages to implement a wiki: +* [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) using wiki syntax +* [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) using Markdown syntax + +### ERP / Accounting + +At some time a non-profit organization could need an accounting/erp system, here are two propositions: +* [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh) +* [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh) + +### Public Web Site + +There are several way to implement a Public Web Site: +* Simple HTML, CSS, etc. Website using: [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh) +* Using a CMS (Content Management System) like [WordPress](https://github.com/YunoHost-Apps/_ynh), [Drupal](https://github.com/YunoHost-Apps/drupal_ynh), [Grav](https://github.com/YunoHost-Apps/grav_ynh), [PluXml](https://github.com/YunoHost-Apps/pluxml_ynh) + +But we will propose something more powerful: [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh): +* Drupal that is a powerful open source content management framework +* with CiviCRM that is an open source constituent relationship management for non-profits + +#### Membership + +With CiviCRM you can provide online membership and payment. + +#### Events Registrations + +With CiviCRM, you can provide an online diary to let members or public register for free or with a payment. + +#### Newsletter/Mailing + +Best way to manage that is using CiviCRM and its mailing module. + +### Forum + +You have several choices, or having an integrated forum in Drupal or using a dedicated forum system like [Flarum](https://github.com/YunoHost-Apps/flarum_ynh). + +### Backup + +YunoHost provide is own backup system. Before any package upgrade, YunoHost backup the current version of the package and automaticaly restore it if the upgrade fails. +YunoHost backup are stored localy in `/home/yunohost.backup/archives`. + +But for production, localy stored backup are not enough, so you will need to implement aditional backup strategies: +* Backup of the the Virtual Machine if provided by the hosting system. +* [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) is an automatic backup system for your server. Your backups can be send to many other places, local or distant. +* [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) allow to externalize backups. +* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), if you have two YunoHost servers, provide a way to have a secondary server which you can used if your main server goes down. This secondary server will allow you to deploy a copy of your server to bring back your YunoHost during your break down. + +### Go further + +#### Federated Photo Gallery + +* [Pixelfed](https://github.com/YunoHost-Apps/pixelfed_ynh) + +#### Federated Audio Gallery + +* [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh) +* [Funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh) + +#### Federated Video Gallery + +* [PeerTube](https://github.com/YunoHost-Apps/peertube_ynh) + +#### Federated Social Networking + +* [Mastodon](https://github.com/YunoHost-Apps/mastodon_ynh) +* [Pleroma](https://github.com/YunoHost-Apps/pleroma_ynh) +* [Mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh) + +#### Federated Blog + +* [Plume](https://github.com/YunoHost-Apps/plume_ynh) +* [Writefreely](https://github.com/YunoHost-Apps/writefreely_ynh) + +#### Chat + +* [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh) + +## Conclusion + +YunoHost can cover 99% of the needs of non-profit organizations, allowing them to own and protect their data, choose applications they want to use. +And if one is not available, they can [package it for YunoHost](/contributordoc), it's very simple. diff --git a/use_case_non-profit_organisations_ca.md b/use_case_non-profit_organisations_ca.md new file mode 100644 index 00000000..55d1a1ba --- /dev/null +++ b/use_case_non-profit_organisations_ca.md @@ -0,0 +1,204 @@ +# YunoHost per a organitzacions sense ànim de lucre + +## Taula de continguts +* [Introducció](#introduction) +* [Qui](#who) +* [Què](#what) +* [Quan](#when) +* [On](#where) +* [Per què](#why) +* [Com](#how) +* [Conclusió](#conclusion) + +## Introducció + +L'objectiu d'aquest document és presentar un cas d'ús específic de [YunoHost](https://yunohost.org) per a organitzacions sense ànim de lucre. + +## Qui + +Organitzacions sense ànim de lucre, ONGs o qualsevol tipus d'associació. + +## Què + +Normalment les organitzacions sense ànim de lucre han de donar alguns serveis públics: + +* Consell d'administració / Comitè director / Voluntàries amb: + * [Correus electrònics](#mails) + * [Calendari](#calendar) + * [Contacte](#contact) + * [Fitxers compartits / Drive](#shared-files) + * [Missatgeria instantània](#instant-communication) + * [Intranet / base de coneixements](#intranet) + * [ERP / Comptabilitat](#erp-accounting) +* Membres amb: + * [Pàgina web pública amb accés privat i individual](#public-web-site) + * [Adhesió](#membership) + * [Inscripció a esdeveniments](#events-registration) + * [Butlletí d'informació](#newsletter-mailing) + * [Fòrum](#forum) +* Públic amb: + * [Pàgina web pública](#public-web-site) + * [Butlletí d'informació](#newsletter-mailing) + +## Quan + +Quan l'organització estigui preparada per a fer el pas. + +## On + +El servidor YunoHost de l'organització pot estar allotjat en diferents llocs: +* Allotjament propi en un servidor, ordinador o Raspberry darrera una connexió ADSL, SDSL o fibra +* Serveis d'allotjament de [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters) +* Serveis d'allotjament comercials que ofereixin màquines virtuals Debian + +## Per què + +YunoHost pot cobrir la majoria de necessitats d'una organització sense ànim de lucre i permet tenir el control sobre les dades de l'organització. + + +## Com + +### YunoHost + +YunoHost és una distribució GNU/Linux basada en Debian empaquetada amb programari lliure que automatitza la instal·lació d'un servidor web personal. L'objectiu de YunoHost és permetre a les usuàries allotjar fàcilment els seus propis serveis web al oferir una interfície web en la que es poden instal·lar diferents aplicacions només amb uns quants clics. + +![](https://upload.wikimedia.org/wikipedia/commons/0/07/Yunohost_user_portal.png) + +YunoHost de base ofereix: +* Un sistema d'aplicacions +* Una interfície web +* Una interfície per línia de comandes (CLI): Moulinette +* Un servidor web: NGINX +* Un servidor DNS: Dnsmasq +* Una base de dades: MariaDB +* Un sistema de còpies de seguretat +* Un SSO: SSOwat +* OpenLDAP +* Correu electrònic: + * SMTP: Postfix + * IMAP & POP3: Dovecot + * Un antispam: rspamd, rmilter +* Un servidor de missatgeria instantània XMPP: Metronome IM + +### Nom de domini + +La primera cosa que s'haurà de tenir per poder instal·lar un servidor YunoHost és un nom de domini. Habitualment el nom de domini el pot oferir el mateix servei d'allotjament. + +### Correus electrònics + +De base, YunoHost ofereix un sistema de correus electrònics disponible utilitzant POP / IMAP / SMTP. +Els comptes de correu electrònic es poden gestionar per mitjà de la interfície web o de la línia de comandes. Els comptes creats es guarden en l'OpenLDAP. + +Es poden instal·lar paquets addicionals per donar més funcionalitats al sistema de correu electrònic de YunoHost: +* Un client web utilitzant [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh) +* ActiveSync utilitzant [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh) +* Un grup de difusió interna utilitzant [Mailman](https://github.com/YunoHost-Apps/mailman_ynh) + +### Calendari + +Per oferir calendaris personals o compartits haureu d'instal·lar: +* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh) +* [Baikal](https://github.com/YunoHost-Apps/baikal_ynh) + +### Contactes + +Per oferir un sistema de contactes personal haureu d'instal·lar: +* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh) +* [Baïkal](https://github.com/YunoHost-Apps/baikal_ynh) + +### Fitxers compartits + +Per oferir un sistema de fitxers compartit: carpetes personals i compartides, podeu instal·lar [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh). +Els fitxers estaran disponibles a través d'una interfície web o bé utilitzant un client de sincronització. + +### Missatgeria instantània + +De base YunoHost ofereix un servidor XMPP, pel que podeu instal·lar un client web: [Jappix](https://github.com/YunoHost-Apps/jappix_ynh). + +També podeu instal·lar un servidor matrix: +* El servidor: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh) +* Un client web: [Riot](https://github.com/YunoHost-Apps/riot_ynh) + +### Intranet + +Per a una organització sense ànim de lucre, una bona manera d'implementar una intranet és oferir una wiki interna per a que les usuàries puguin llegir, editar i afegir contingut. Vegeu aquí alguns paquets que permeten implementar una wiki: +* [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) utilitzant la sintaxi wiki +* [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) utilitzant la sintaxi markdown + +### ERP / Comptabilitat + +Arribats a un cert punt una organització sense ànim de lucre podria necessitar un sistema de comptabilitat / ERP, aquí hi ha dos propostes: +* [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh) +* [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh) + +### Pàgina web pública + +Hi ha múltiples maneres d'implementar una pàgina web pública: +* Un pàgina simple amb HTML, CSS, etc. utilitzant: [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh) +* Utilitzant un CMS (sistema de gestió de contingut) com [Wordpress](https://github.com/YunoHost-Apps/_ynh), [Drupal](https://github.com/YunoHost-Apps/drupal_ynh) , [Grav](https://github.com/YunoHost-Apps/grav_ynh), [PluXml](https://github.com/YunoHost-Apps/pluxml_ynh) + +Però us proposem una alternativa una mica més potent: [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh): +* Drupal és un entorn de treball potent de codi obert per la gestió de contingut +* amb CiviCRM que és un CRM de codi obert per a les organitzacions sense ànim de lucre + +### Adhesió + +Amb CiviCRM podeu tenir adhesions en línia i pagament. + +### Inscripció a esdeveniments + +Amb CiviCRM, podeu posar a disposició una agenda en línia per permetre als membres o al públic inscriure's gratuïtament o pagant. + +### Butlletí d'informació + +La millor manera de gestionar-ho és utilitzar el mòdul de llistes de difusió de CiviCRM. + +### Fòrum + +Hi ha múltiples opcions, tenir un fòrum integrat a Drupal o utilitzar un sistema dedicat com ara [Flarum](https://github.com/YunoHost-Apps/flarum_ynh). + +### Còpies de seguretat + +YunoHost ofereix el seu propi sistema de còpies de seguretat. Abans de cada actualització, YunoHost fa una còpia de seguretat de la versió actual del paquet i la restaura automàticament si falla l'actualització. +Les còpies de seguretat de YunoHost s'emmagatzemen localment a `/home/yunohost.backup/archives`. + +Però per un servidor en producció, còpies de seguretat locals no són suficients, així que s'hauran d'implementar còpies de seguretat alternatives: +* Còpia de seguretat de la màquina virtual si ho permet el sistema d'allotjament. +* [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) és un sistema de còpies de seguretat automàtiques del servidor. Les còpies de seguretat es poden enviar a d'altres llocs, locals o distants. +* [Borg](https://github.com/YunoHost-Apps/borg_ynh) i [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) permeten externalitzar les còpies de seguretat. +* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), si teniu de servidors YunoHost, permet tenir un servidor secundari que pot ser utilitzat en cas que caigui el servidor principal. Aquest servidor secundari permetrà desplegar una còpia del servidor i tornar a posar en marxar YunoHost durant la caiguda. + +### Anar més enllà + +#### Galeria de fotografies federada + +* [Pixelfed](https://github.com/YunoHost-Apps/pixelfed_ynh) + +#### Galeria àudio federada + +* [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh) +* [Funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh) + +#### Galeria vídeo federada + +* [PeerTube](https://github.com/YunoHost-Apps/peertube_ynh) + +#### Xarxa social federada + +* [Mastodon](https://github.com/YunoHost-Apps/mastodon_ynh) +* [Pleroma](https://github.com/YunoHost-Apps/pleroma_ynh) +* [Mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh) + +#### Blog federat + +* [Plume](https://github.com/YunoHost-Apps/plume_ynh) +* [Writefreely](https://github.com/YunoHost-Apps/writefreely_ynh) + +#### Xat + +* [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh) + +## Conclusió + +YunoHost por cobrir el 99% de les necessitats de les organitzacions sense ànim de lucre, permetent així que recuperin la sobirania i puguin protegir les seves dades, així com escollir les aplicacions que volen utilitzar. +I si n'hi ha alguna que no està disponible, poden [empaquetar-la per YunoHost](/contributordoc), és molt senzill. diff --git a/use_case_non-profit_organisations_fr.md b/use_case_non-profit_organisations_fr.md new file mode 100644 index 00000000..dcf43fda --- /dev/null +++ b/use_case_non-profit_organisations_fr.md @@ -0,0 +1,203 @@ +# YunoHost pour les organisations à but non lucratif + +## Table des matières +* [Introduction](#introduction) +* [Qui ](#qui) +* [Quoi](#quoi) +* [Quand](#quand) +* [Où](#o-) +* [Pourquoi](#pourquoi) +* [Comment](#comment) +* [Conclusion](#conclusion) + +## Introduction + +L'objet de ce document est de présenter une utilisation spécifique de [YunoHost](https://yunohost.org/) pour des organisations à but non lucratif. + +## Qui + +Organisations à but non lucratif, ONG ou tout type d'association. + +## Quoi + +Les organisations à but non lucratif doivent généralement fournir différents services à différents publics : + +* Conseil d'administration / Comité directeur / Bénévoles avec : + * [Mails](#mails) + * [Calendrier](#calendrier) + * [Contact](#contact) + * [Fichiers partagés / Drive](#fichiers-partag-s) + * [Communication instantanée](#communication-instantan-e) + * [Intranet / Base de connaissances](#intranet) + * [ERP / Comptabilité](#erp-comptabilit-) +* Membres avec : + * [Site Web public avec accès privé et individuel](#site-web-public) + * [Adhésion](#adh-sion) + * [Inscriptions aux événements](#inscriptions-aux-v-nements) + * [Mailings](#newsletter-mailing) + * [Forum](#forum) +* Public avec : + * [Site Web public](#site-web-public) + * [Newsletter](#newsletter-mailing) + +## Quand + +Lorsque l'organisation à but non lucratif est prête à franchir le pas. + +## Où + +Le serveur YunoHost peut être hébergé à différents endroits : +* Hébergement en propre sur un serveur, un ordinateur ou Raspberry derrière ADSL, SDSL ou Fibre +* [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters) +* Services d'hébergement commercial fournissant une machine virtuelle Debian + +## Pourquoi + +YunoHost peut répondre à tous les besoins d'une organisation à but non lucratif et lui permettre de conserver la maîtrise de ses données. + +## Comment + +### YunoHost + +YunoHost est une distribution basée sur Debian GNU/Linux qui automatise l’installation d’un serveur Web personnel. Le but de YunoHost est de permettre aux utilisateurs d’héberger facilement leurs propres services Web en proposant une interface Web simple, pointer-cliquer, pour installer diverses applications Web. + +![](https://upload.wikimedia.org/wikipedia/commons/0/07/Yunohost_user_portal.png) + +YunoHost fournit immédiatement: +* Un système d'application +* Une interface Web +* Une interface de ligne de commande (CLI) : Moulinette +* Un serveur Web : NGINX +* Un serveur DNS : Dnsmasq +* Une base de données : MariaDB +* Un système de sauvegarde +* Un SSO : SSOwat +* OpenLDAP +* Email : + * SMTP : Postfix + * IMAP & POP3 : Dovecot + * Un antispam : rspamd, rmilter +* Serveur XMPP de messagerie instantanée : Metronome IM + +### Nom de domaine + +La première chose dont vous aurez besoin pour implémenter un serveur YunoHost est un nom de domaine. Le nom de domaine peut généralement être fourni avec votre service d'hébergement. + +### Mails + +YunoHost fournit par défaut un système de messagerie disponible en utilisant POP / IMAP / SMTP. +Les comptes de messagerie seront gérés à l'aide de l'interface Web ou de la ligne de commande. Les comptes créés sont stockés dans OpenLDAP. + +Des packages supplémentaires peuvent être installés pour fournir davantage de fonctionnalités au système de messagerie YunoHost : +* un webmail en utilisant [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh) +* ActiveSync utilisant [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh) +* Groupe de distribution interne en utilisant [Mailman](https://github.com/YunoHost-Apps/mailman_ynh) + +### Calendrier + +Pour fournir des calendriers personnels ou partagés, vous devrez installer : +* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh) +* [Baïkal](https://github.com/YunoHost-Apps/baikal_ynh) + +### Contact + +Pour fournir un système de contact personnel, vous devrez installer : +* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh) +* [Baïkal](https://github.com/YunoHost-Apps/baikal_ynh) + +### Fichiers partagés + +Pour fournir un système de fichiers partagés : dossiers personnels et dossiers partagés, vous pouvez installer [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh). +Les fichiers seront disponibles à partir d'une interface Web ou à l'aide d'un client de synchronisation. + +### Communication instantanée + +Par défaut, YunoHost fournit immédiatement un serveur XMPP pour lequel vous pouvez installer un client Web : [Jappix](https://github.com/YunoHost-Apps/jappix_ynh) + +Vous pouvez également installer un serveur Matrix : +* Le serveur : [Synapse](https://github.com/YunoHost-Apps/synapse_ynh) +* Un client Web : [Element](https://github.com/YunoHost-Apps/element_ynh) + +### Intranet + +Pour une organisation à but non lucratif, un bon moyen de mettre en œuvre un intranet est de fournir un wiki permettant aux utilisateurs internes de lire, éditer et ajouter du contenu. Voici quelques paquets pour implémenter un wiki : +* [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) utilisant une syntaxe wiki +* [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) utilisant une syntaxe Markdown + +### ERP / Comptabilité + +À un moment donné, une organisation à but non lucratif pourrait avoir besoin d’un système de Comptabilité / ERP, voici deux propositions : +* [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh) +* [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh) + +### Site Web Public + +Il existe plusieurs façons d'implémenter un site Web public : +* Un simple site HTML, CSS, etc. en utilisant : [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh) +* Utiliser un CMS (système de gestion de contenu) comme [WordPress](https://github.com/YunoHost-Apps/_ynh), [Drupal](https://github.com/YunoHost-Apps/drupal_ynh), [Grav](https://github.com/YunoHost-Apps/grav_ynh), [PluXml](https://github.com/YunoHost-Apps/pluxml_ynh) + +Mais nous proposerons quelque chose de plus puissant : [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh) : +* Drupal qui est un puissant framework de gestion de contenu +* avec CiviCRM qui est un CRM open source à destination des organisations à but non lucratif + +#### Adhésion + +Avec CiviCRM, vous pourrez mettre en place des adhésions en ligne avec paiement. + +#### Inscriptions aux événements + +Avec CiviCRM, vous pourrez mettre à disposition un agenda en ligne avec la possibilité pour les membres ou le public de s'inscrire gratuitement ou en payant. + +#### Newsletter/Mailing + +Le meilleur moyen de gérer cela consiste à utiliser CiviCRM et son module de mailing. + +### Forum + +Vous avez plusieurs choix, avoir un forum intégré dans Drupal ou utiliser un système de forum dédié tel que [Flarum](https://github.com/YunoHost-Apps/flarum_ynh). + +### Sauvegarde + +YunoHost fournit son propre système de sauvegarde. Avant toute mise à niveau de paquet, YunoHost sauvegarde la version actuelle du paquet et la restaure automatiquement si la mise à niveau échoue. +Les sauvegardes YunoHost sont stockées localement dans `/home/yunohost.backup/archives`. + +Mais pour la production, la sauvegarde stockée localement ne suffit pas, vous devez donc mettre en œuvre des stratégies de sauvegarde supplémentaires : +* Sauvegarde de la machine virtuelle si fournie par le système d'hébergement. +* [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) est un système de sauvegarde automatique de votre serveur. Vos sauvegardes peuvent être envoyées à de nombreux autres endroits, locaux ou distants. +* [Borg](https://github.com/YunoHost-Apps/borg_ynh) and [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) permettent d'externaliser les sauvegardes. +* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), si vous avez deux serveurs YunoHost, fournissez un moyen d'avoir un serveur secondaire que vous pourrez utiliser si votre serveur principal tombe en panne. Ce serveur secondaire vous permettra de déployer une copie de votre serveur pour ramener votre YunoHost lors de votre panne. + +### Aller plus loin + +#### Galerie de photos fédérées + +* [Pixelfed](https://github.com/YunoHost-Apps/pixelfed_ynh) + +#### Galerie audio fédérée + +* [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh) +* [Funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh) + +#### Galerie vidéo fédérée + +* [PeerTube](https://github.com/YunoHost-Apps/peertube_ynh) + +#### Réseaux sociaux fédérés + +* [Mastodon](https://github.com/YunoHost-Apps/mastodon_ynh) +* [Pleroma](https://github.com/YunoHost-Apps/pleroma_ynh) +* [Mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh) + +#### Blog fédéré + +* [Plume](https://github.com/YunoHost-Apps/plume_ynh) +* [Writefreely](https://github.com/YunoHost-Apps/writefreely_ynh) + +#### Chat + +* [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh) + +## Conclusion + +YunoHost peut couvrir 99% des besoins des organisations à but non lucratif, leur permettant de posséder et de protéger leurs données, de choisir les applications qu'elles souhaitent utiliser. +Et s’ils ne sont pas disponibles, ils peuvent [les packager pour YunoHost](/contributordoc), c’est très simple. diff --git a/use_case_non-profit_organisations_oc.md b/use_case_non-profit_organisations_oc.md new file mode 100644 index 00000000..26297a99 --- /dev/null +++ b/use_case_non-profit_organisations_oc.md @@ -0,0 +1,203 @@ +# YunoHost per organizacion sens tòca lucrativa + +## Ensenhador +* [Introduccion](#introduccion) +* [Qual ](#qual) +* [Qué](#qué) +* [Quand](#quand) +* [Ont](#ont) +* [Perque](#perque) +* [Cossí](#cossí) +* [Conclusion](#conclusion) + +## Introduccion + +L'objectiu d’aqueste document es de presentar una utilizacion especifica de [YunoHost](https://yunohost.org/) per d’organizacions sens tòca lucrativa. + +## Qual + +Organizacions sens tòca lucrativa, ONG o qualque siá associacion. + +## Qué + +Las organizacions sens tòca lucrativa devon generalament fornir diferents servicis a diferents publics : + +* Conselh d'administracion / Comitat director / Benevòls amb : + * [Mails](#mails) + * [Calendièr](#calendièr) + * [Contacte](#contacte) + * [Fichièrs partejats / Drive](#fichièrs-partejats) + * [Comunicacion instantanèa](#comunicacion-instantan-a) + * [Intranet / Basa de coneissenças](#intranet) + * [ERP / Comptabilitat](#erp-comptabilitat) +* Membres amb : + * [Site Web public amb accès privat e individual](#site-web-public) + * [Adhesion](#adhesion) + * [Inscripcions als eveniments](#inscriptions-als-eveniments) + * [Infoletras](#infoletras) + * [Forum](#forum) +* Public amb : + * [Site Web public](#site-web-public) + * [Infoletras](#newsletter-mailing) + +## Quand + +Quand l'organizacion sens tòca lucrativa es prèsta a passar lo pas. + +## Ont + +Lo servidor YunoHost pòt èsser albergat a diferents endreches : +* Albergament en pròpri sus un servidor, un ordenador o Raspberry darrièr una connexion ADSL, SDSL o Fibra +* [Chatons](https://chatons.org), [librehosters](https://framagit.org/librehosters/awesome-librehosters) +* Servicis d'albergament comercial que fornís una maquina virtuala Debian + +## Perque + +YunoHost pòt correspondre als besonhs d'una organizacion sens tòca lucrativa e li permetre de servar lo mestritge de sas donadas. + +## Cossí + +### YunoHost + +YunoHost es una distribucion basada sus Debian GNU/Linux qu’automatiza l’installacion d’un servidor Web personal. La tòca de YunoHost es de permetre als utilizaires d’albergar facilament lors pròpris servicis Web en prepausant una interfàcia Web simpla, als clics, per installar divèrsas aplicacions Web. + +![](https://upload.wikimedia.org/wikipedia/commons/0/07/Yunohost_user_portal.png) + +YunoHost provesís sul pic: +* Un sistèma d'aplicacion +* Una interfàcia web +* Una interfàcia en linha de comanda (CLI) : Moulinette +* Un servidor Web : NGINX +* Un servidor DNS : Dnsmasq +* Una basa de donadas : MariaDB +* Un sistèma de salvagarda +* Un SSO: SSOwat +* OpenLDAP +* Corrièls : + * SMTP: Postfix + * IMAP & POP3 : Dovecot + * Un antispam : rspamd, rmilter +* Servidor XMPP de messatjariá instantanèa : Metronome IM + +### Nom de domeni + +La primièra causa que vos fa mestièr per installar un servidor YunoHost es un nom de domeni. Lo nom de domeni pòt èsser generalament fornit amb lo servici d’albergament. + +### Corrièls + +A la prima installacion YunoHost fornís un sistèma de messatjariá disponible en utilizant POP / IMAP / SMTP. +Los comptes de messatjariá seràn gerits amb l'interfàcia Web o en linha de comanda. Los comptes creats seràn gardats dins l’OpenLDAP. + +De paquets suplementaris pòdon èsser installats per provesir mai de foncionalitats al sistèma de messatjariá YunoHost : +* un webmail en utilizant [Roundcube](https://github.com/YunoHost-Apps/roundcube_ynh), [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh) +* ActiveSync utilizant [Z-Push](https://github.com/YunoHost-Apps/z-push_ynh) +* Grop de distribucion intèrne en utilizant [Mailman](https://github.com/YunoHost-Apps/mailman_ynh) + +### Calendièr + +Per fornir de calendièrs personals o partejats, vos calrà installar : +* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh) +* [Baïkal](https://github.com/YunoHost-Apps/baikal_ynh) + +### Contacte + +Per fornir un sistèma de contacte personal, vos caldrà installar : +* [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh) +* [Baikal](https://github.com/YunoHost-Apps/baikal_ynh) + +### Fichièrs partejats + +Per fornir un sistèma de fichièrs partejats : dorsièrs personals e dorsièrs partejats, podètz installar [Nextcloud](https://github.com/YunoHost-Apps/nextcloud_ynh). +Las fichièrs seràn disponibles d’una interfàcia web estant o amb un client de sincronizacion. + +### Comunicacion instantanèa + +Tras l’installacion YunoHost fornís sul pic un servidor XMPP per lo qual podètz installar un client Web : [Jappix](https://github.com/YunoHost-Apps/jappix_ynh) + +Podètz tanben installar un servidor Matrix : +* Lo servidor: [Synapse](https://github.com/YunoHost-Apps/synapse_ynh) +* Un client web: [Riot](https://github.com/YunoHost-Apps/riot_ynh) + +### Intranet + +Per una organizacion sens tòca lucrativa, un bon biais de metre en plaça un intranet es de fornir un wiki que permet als utilizaires intèrne de legir, modificar e ajustar de contengut. Vaquí unes paquets per installar un wiki : +* [DokuWiki](https://github.com/YunoHost-Apps/docuwiki_ynh) utiliza la sintaxi wiki +* [Wiki.js](https://github.com/YunoHost-Apps/wikijs_ynh) utiliza la sintaxi markdown + +### ERP / Comptabilitat + +Arriba un moment ont a l’organizacion sens tòca lucrativa li pòsca far besonh un sistèma de comptabilitat / ERP, vaquí doas proposicions : +* [OpenERP/Odoo](https://github.com/YunoHost-Apps/libreerp_ynh) +* [Dolibarr](https://github.com/YunoHost-Apps/dolibarr_ynh) + +### Site Web Public + +Existís mantuns biaisses de construire un site Web public : +* Un simple site HTML, CSS, etc. en utilizant : [Custom Webapp](https://github.com/YunoHost-Apps/my_webapp_ynh) +* Utilizar un CMS (sistèma de gestion de contengut) coma [Wordpress](https://github.com/YunoHost-Apps/_ynh), [Drupal](https://github.com/YunoHost-Apps/drupal_ynh), [Grav](https://github.com/YunoHost-Apps/grav_ynh), [PluXml](https://github.com/YunoHost-Apps/pluxml_ynh) + +Mas prepausam quicòm de mai potent : [CiviCRM on Drupal 7](https://github.com/YunoHost-Apps/civicrm_drupal7_ynh) : +* Drupal qu’es un framework potent de gestion de contengut +* amb CiviCRM qu’es un CRM OpenSource a destinacion de las organizacions sens tòca lucrativa + +#### Adhesion + +Amb CiviCRM, poiretz metre en plaça d’adhesions en linha amb pagament. + +#### Inscripcions als eveniments + +Amb CiviCRM, poiretz metre a disposicion un agenda en linha amb la possibilitat pels membres o lo public de s’inscriure gratuitament o en pagant. + +#### Infoletra/Lista de difusion + +Çò melhor per gerir aquò es d’utilizar CiviCRM e son modul de lista de difusion. + +### Forum + +Avètz mantun possibilitats, aver un forum integrat a Drupal o utilizar un sistèma dedicat coma [Flarum](https://github.com/YunoHost-Apps/flarum_ynh). + +### Salvagarda + +YunoHost fornís son pròpri sistèma de salvagarda. Abans tota mesa a nivèl de paquet, YunoHost salvagarda la version actuala del paquet e la restaura automaticament se la mesa a nivèl se debana pas corrèctament. +Las salvagardas YunoHost son gardadas localament dins `/home/yunohost.backup/archives`. + +Mas per la produccion, la salvagarda gardada localament basta pas, vos cal emplegar d’estrategias de salvagarda suplementàrias : +* Salvagarda de la maquina virtuala se fornida pel sistèma d’albergament. +* [Archivist](https://github.com/YunoHost-Apps/archivist_ynh) es un sistèma de salvagarda automatic de vòstre servidor. Vòstras salvagardas pòdon èsser enviadas a mantun endreches, locals o alonhats. +* [Borg](https://github.com/YunoHost-Apps/borg_ynh) e [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) permeton d’externalizar las salvagardas. +* [Fallback](https://github.com/YunoHost-Apps/fallback_ynh), se avètz dos servidors YunoHost, ajatz los mejans d’aver un servidor segondari que poiretz utilizar se lo primièr ven a foncionar pas mai. Aqueste servidor segondari vos permetrà de restablir una còpia de vòstre servidor per dire de corregir los problèmas de l’autre servidor YunoHost. + +### Anar mai luènh + +#### Galariá de fotografias federada + +* [Pixelfed](https://github.com/YunoHost-Apps/pixelfed_ynh) + +#### Galariá àudio federada + +* [Reel2Bits](https://github.com/YunoHost-Apps/reel2bits_ynh) +* [Funkwhale](https://github.com/YunoHost-Apps/funkwhale_ynh) + +#### Galariá vidèo federada + +* [PeerTube](https://github.com/YunoHost-Apps/peertube_ynh) + +#### Malhums socials federats + +* [Mastodon](https://github.com/YunoHost-Apps/mastodon_ynh) +* [Pleroma](https://github.com/YunoHost-Apps/pleroma_ynh) +* [Mobilizon](https://github.com/YunoHost-Apps/mobilizon_ynh) + +#### Blog federats + +* [Plume](https://github.com/YunoHost-Apps/plume_ynh) +* [Writefreely](https://github.com/YunoHost-Apps/writefreely_ynh) + +#### Chat + +* [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh) + +## Conclusion + +YunoHost pòt cumplir 99% dels besonhs de las organizacions sens tòca lucrativa, en lor permetent de téner e protegir lors donadas, de causir las aplicacions que vòlon utilizar. +E se son pas disponiblas, pòdon [crear un paquet per YunoHost](/contributordoc), es fòrça simple. diff --git a/users.md b/users.md new file mode 100644 index 00000000..a5c7154d --- /dev/null +++ b/users.md @@ -0,0 +1,35 @@ +# Users and the SSO + +## Users + +Users are human being who have access to applications and other services on your server. The administrator can add and manage users through the web administration (in the User category) or through the command line (see `yunohost user --help`). After that, users obtain a personal email address (chosen by the admin), an XMPP account, and can log in the user portal to access applications they have permissions over and configure other parameters. + +The first user created also automatically gets email aliases `root@main.domain.tld` and `admin@main.domain.tld`, such that mail sent to these adresses will end up in the first user's mailbox. + +
+You should be careful about who you give your server access to. In terms of security, this largely increase the attack surface for someone who wants to mess with the server one way or another. +
+ +## The user portal, or SSO + +
+ +The user portal, also called the SSO for 'Single Sign On' allows user to browse easily between the different apps they have access to. In particular, the term 'Single Sign On' comes from the fact that user only need to log in the portal to automatically be logged to all apps that require authentication (or at least those who are integrated with the SSO/LDAP, since this is sometimes technically complicated or not possible at all). + +In the portal, users can also click on the avatar in the top-left to configure some other settings such as their identify, mail aliases, automatic mail forwards, or change their password. + +
+You should be aware that the SSO can only be reached through the actual domain name (i.e. `https://the.domain.tld/yunohost/sso`), and NOT by just using the IP of the server (i.e. `https://11.22.33.44/yunohost/sso`), contrarily to the webadmin ! This is a bit confusing but is necessary for technical reason. If you are in a situation where you need to access the SSO without having your DNS properly configured for some reason, you might consider tweaking your `/etc/hosts` as described in [this page](dns_local_network). +
+ +## User groups and permissions + +See [this dedicated page](groups_and_permissions). + +## SSH access + +Users can also be allowed to connect through SSH, and SSH keys can be added for this purpose. So far, this can only be configured via the command line. See `yunohost user ssh --help` for specific commands. + +
+Be careful who you give SSH access to. This increases even more the attack surface available to a malicious user. +
diff --git a/users_fr.md b/users_fr.md new file mode 100644 index 00000000..fe236849 --- /dev/null +++ b/users_fr.md @@ -0,0 +1,35 @@ +# Les utilisateurs et le SSO + +## Utilisateurs + +Les utilisateurs sont les êtres humains qui ont accès aux applications et autres services sur votre serveur. L'administrateur peut ajouter et gérer des utilisateurs via l'administration web (dans la catégorie Utilisateurs) ou via la catégorie `yunohost user` de la ligne de commande. Après cela, les utilisateurs obtiennent une adresse e-mail personnelle (choisie par l'administrateur), un compte XMPP, et peuvent se connecter au portail utilisateur (SSO) pour accéder aux applications pour lesquelles ils ont des permissions et configurer d'autres paramètres. + +Le premier utilisateur créé reçoit aussi automatiquement les alias email `root@main.domain.tld` et `admin@main.domain.tld`, de sorte que le courrier envoyé à ces adresses se retrouvera dans la boîte aux lettres de cet utilisateur. + +
+Vous devriez faire attention à qui vous donnez l'accès à votre serveur. En termes de sécurité, cela augmente considérablement la surface d'attaque pour quelqu'un qui veut perturber le serveur d'une manière ou d'une autre. +
+ +## Le portail utilisateur, ou SSO + +
+ +Le portail utilisateur, également appelé SSO pour 'Single Sign On', permet à l'utilisateur de naviguer facilement entre les différentes applications auxquelles il a accès. En particulier, le terme 'Single Sign On' vient du fait que l'utilisateur n'a qu'à se connecter au portail pour être automatiquement connecté à toutes les applications qui nécessitent une authentification (ou du moins celles qui sont intégrées avec le SSO/LDAP, car cela est parfois techniquement compliqué ou pas possible du tout). + +Dans le portail, les utilisateurs peuvent également cliquer sur l'avatar en haut à gauche pour configurer d'autres paramètres tels que leur identité, les alias de messagerie, les transferts automatiques de courrier ou changer leur mot de passe. + +
+Vous devez être conscient que le SSO ne peut être atteint que par le nom de domaine (c.-à-d. `https://the.domain.tld/yunohost/sso`), et non pas en utilisant l'IP du serveur (c.-à-d. `https://11.22.33.44/yunohost/sso`), contrairement à l'administrateur web ! C'est un peu déroutant dans certaines situations, mais c'est nécessaire pour des raisons techniques. Si vous êtes dans une situation où vous avez besoin d'accéder au SSO sans avoir votre DNS correctement configuré pour une raison quelconque, vous pouvez envisager de modifier votre `/etc/hosts` comme décrit dans [cette page](dns_local_network). +
+ +## Gestion des groupes d'utilisateurs et permissions + +Voir [cette page de documentation dédiée](groups_and_permissions). + +## Accès SSH + +Les utilisateurs peuvent également être autorisés à se connecter via SSH, et des clés SSH peuvent être ajoutées à cette fin. Jusqu'à présent, ceci ne peut être configuré que via la ligne de commande. Voir `yunohost user ssh --help` pour des commandes spécifiques. + +
+Faites attention à qui vous donnez accès à SSH. Cela augmente encore plus la surface d'attaque disponible pour un utilisateur malveillant. +
diff --git a/vpn_advantage.md b/vpn_advantage.md new file mode 100644 index 00000000..d2244385 --- /dev/null +++ b/vpn_advantage.md @@ -0,0 +1 @@ +Unfortunately, this page only exists [in french here](vpn_advantage_fr) for now. diff --git a/vpn_advantage_fr.md b/vpn_advantage_fr.md new file mode 100644 index 00000000..26a22708 --- /dev/null +++ b/vpn_advantage_fr.md @@ -0,0 +1,46 @@ +# Avantage d’un VPN pour l’auto-hébergement + +L'installation d'un serveur chez soi étant une pratique peu courante, la plupart des connexions Internet fournies aux particuliers sont inadaptées à sa mise en pratique. Un VPN respectant la neutralité du net et fournissant une adresse IPv4 fixe et des adresses IPv6 peut permettre de contourner certaines limitations ou certaines difficultés. + +
+Attention : tous les fournisseurs VPN existants ne remplissent pas ces conditions, assurez-vous bien que celui que vous choisissez les remplis. +
+ +## Avantages + +### Plug & Play +En configurant un VPN sur votre serveur, vous serez en mesure de le rendre accessible au reste d'Internet sans avoir à modifier la configuration du routeur auxquel vous le branchez. Ce point peut être vraiment pratique si vous partez en vacances, que vous déménagez ou si vous avez une coupure d'Internet, car vous serez en mesure de le brancher facilement chez une personne de confiance sans avoir besoin de configurer le routeur de la personne qui vous aide. + +De la même façon, vous vous économisez l'ouverture des ports de votre routeur ainsi que le contournement du hairpinning. + +### Pas de micro-coupure DNS +Si votre connexion Internet n'a pas d'IP publique fixe, vous serez obligé de mettre en place un nom de domaine dynamique (Dynamique DNS). Cette solution peut être acceptable, mais la mise à jour du DNS ne se fera qu'à intervalle régulier (Toutes les deux minutes si c'est un nom de domaine en `noho.st` ou `nohost.me`). Il y a donc une chance que cela provoque de temps en temps des erreurs d'affichage dans le navigateur, voir même qu'un autre site s'affiche (les risques sont toutefois réduit car la pratique de l'auto-hébergement n'est pas répandue). + +Avec un VPN neutre, ce problème est contourné car le VPN peut être comparé à une connexion Internet Virtuelle, qui a sa propre adresse IPv4 fixe, dès lors plus besoin de mettre à jour le nom de domaine. + +### Le cas du mail +Le mail est un des protocoles les plus complexes à auto-héberger, en général c'est ce qu'un utilisateur auto-héberge en dernier. En effet, il est très facile de se retrouver dans une situation où les emails envoyés par le serveur sont refusés par les serveurs SMTP destinataires. + +Pour éviter ça il faut entre autre : +- configurer le reverse DNS de la connexion Internet (ou du VPN) du serveur +- une IPv4 fixe +- que cette IPv4 soit enlevable de toutes les listes noire (notamment l'IP ne doit pas être sur le DUL) +- pouvoir ouvrir le port 25 (ainsi que les autres ports SMTP) + +Malheureusement, aucun des FAI français les plus courants ne respecte la totalité de ces points. + +Pour pallier cela, l'usage d'un VPN respectant ces points peut être une alternative. + +### Confiance +Enfin, si vous ne souhaitez pas que le contenu des communications de votre serveur soit espionnable par des équipements présent sur le réseau de votre Fournisseur d'Accès Internet, vous pouvez utiliser un VPN pour chiffrer vos communications et déporter votre confiance sur un fournisseur de VPN. Rappel, depuis 2015, le gouvernement déploie officiellement des boîtes noires chez les gros opérateurs réseau qui ont pour objectif de mettre sur écoute l'ensemble des communications numériques françaises entre autre pour préserver les intérêts scientifiques, économiques et industrielles de la France. + +## Inconvénient +### Coût +Un VPN neutre a un coût puisque l'opérateur qui le fournis doit faire fonctionner un serveur et utiliser de la bande passante. Les prix des VPN associatifs de la FFDN sont autour de 6 € par mois. + +### Trajet des paquets +Lorsque l'on met en place un VPN sur son serveur, si on ne met pas en place de configuration particulière, le transfert d'un fichier d'un ordinateur du réseau local vers le serveur utilisant le VPN, passera par le bout du VPN c'est-à-dire par le serveur du fournisseur de VPN. + +Pour pallier ce point, il y a deux solutions : +- transformer son serveur en routeur et connecter les équipements de la maison à ce dernier, ces équipements bénéficieront alors de la confidentialité du VPN également. +- utiliser le serveur YunoHost comme résolveur DNS lorsque l'on est chez soi, de façon à rediriger les noms de domaines du serveur l'ip locale plutôt que l'ip publique. Cette opération peut se faire soit sur chaque équipements, soit sur le routeur (si ce dernier le permet). diff --git a/whatsyunohost.md b/whatsyunohost.md new file mode 100644 index 00000000..70d34bb2 --- /dev/null +++ b/whatsyunohost.md @@ -0,0 +1,53 @@ +# What is YunoHost? + + + +YunoHost is an **operating system** aiming for the simplest administration of a **server**, and therefore democratize [self-hosting](selfhosting), while making sure it stays reliable, secure, ethical and lightweight. It is a copylefted libre software project maintained exclusively by volunteers. Technically, it can be seen as a distribution based on [Debian GNU/Linux](https://debian.org) and can be installed on [many kinds of hardware](install). + +## Features + +- Based on Debian; +- Administrate your server through a **friendly web interface** ; +- Deploy **apps in just a few clicks**; +- Manage **users** (based on LDAP); +- Manage **domain names**; +- Create and restore **backups**; +- Connect to all apps simultaneously through the **user portal** (NGINX, SSOwat); +- Includes a **full e-mail stack** (Postfix, Dovecot, Rspamd, DKIM); +- ... as well as **an instant messaging server** (XMPP); +- Manages **SSL certificates** (based on Let's Encrypt) ; +- ... and **security systems** (Fail2ban, yunohost-firewall); + +## Origin + +YunoHost was created in February 2012 after something like this: + +

"Shit, I'm too lazy to reconfigure my mail server... Beudbeud, how were you able to get your little server running with LDAP?"

+Kload, February 2012
+ +All that was needed was an admin interface for Beudbeud's server to make something usable, so Kload decided to develop one. Finally, after automating several configs and packaging in some web apps, YunoHost v1 was finished. + +Noting the growing enthusiasm around YunoHost and around self-hosting in general, the original developers along with new contributors decided to start work on version 2, a more extensible, more powerful, more easy-to-use, and at that, one that makes a nice cup of fair-trade coffee for the elves of Lapland. + +The name **YunoHost** comes from the jargon "Y U NO Host". The [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) should illustrate it: +
+ +## What YunoHost is not? + +Even if YunoHost can handle multiple domains and multiple users, it is **not meant to be a mutualized system**. + +First, the software is too young, not tested at scale and thus probably not optimized well enough for hundreds of users at the same time. With that said, we do not want to lead the software in that direction. Virtualization democratizes, and its usage is recommended since it is a more watertight way to achieve mutualization than a "full-stack" system like YunoHost. + +You can host your friends, your family and your company safely and with ease, but you must **trust your users**, and they must trust you above all. If you want to provide YunoHost services for unknown persons anyway, a full VPS per user will be just fine, and we believe a better way to go. + +## Artworks + +Black and white YunoHost PNG logo by ToZz (400 × 400 px): + + + + + +Click to download. + +Licence: CC-BY-SA 4.0 diff --git a/whatsyunohost_ar.md b/whatsyunohost_ar.md new file mode 100644 index 00000000..d1776397 --- /dev/null +++ b/whatsyunohost_ar.md @@ -0,0 +1,87 @@ +#
ماذا نعني بـ واي يونوهوست YunoHost ؟
+ +
+واي يونوهوست YunoHost هو **نظام لتشغيل الخوادم** صُمِّم لتسهيل الإستضافة الذاتية لخدمات الإنترنت. +هو مُرتكز و منسجم كافة الإنسجام مع توزيعة [غنو/لينكس ديبيان](https://debian.org). +
+ + + +--- + +###
خصائصه
+ +
+- متعدد المستعملين مع تكامُل LDAP +- متعدد النطاقات +- خدمة البريد الإلكتروني +- خادم المراسلة الفورية +- نظام للمصادقة الموحَّدة (SSO) +- نظام للتطبيقات +- نظام للنسخ الإحتياطي +- نظام لإعادة توليد الإعدادات و الخدمات +
+ + + +--- + +###
أصل فكرة المشروع
+ +
+تعود نشأة فكرة مشروع واي يونوهوست YunoHost إلى شهر فيفري مِن عام 2012 بعد محادثة بدأت على هذا الشكل تقريبًا : +
+

« تبًا، لقد سئِمتُ مِن إعادة إعداد خادم البريد الإلكتروني ... Beudbeud، كيف قُمتَ بإعداد خادومك الجميل حول LDAP ؟ »

+Kload، فيفري 2012
+
+ +Il ne manquait en fait qu’une interface d’administration au serveur de Beudbeud pour en faire quelque chose d’exploitable, alors Kload a décidé de la développer. Finalement, après l’automatisation de quelques configurations et le packaging de quelques applications web, la première version de YunoHost était sortie. + +Constatant l’engouement croissant autour de YunoHost et de l’auto-hébergement en général, les développeurs et les nouveaux contributeurs ont alors décidé de prendre le cap d’une version 2, plus accessible, plus extensible, plus puissante, et qui prépare du bon café commerce équitable pour les lutins de Laponie. +
+ +--- + +###
الهدف
+
+يهدف واي يونوهوست YunoHost إلى تسهيل عملية تنصيب و تثبيت و إدارة أي خادمٍ لأكبر عدد ممكن مِن الناس و ذلك دون المساس بجودة و موثوقية البرمجيات. + +لم يُدَّخر أي جهد لتسهيل عملية التنصيب و الإنبساط وذلك على أكبر عدد ممكن مِن الأجهزة مهما اختلفت مميزات كل جهاز (في المنزل أو على خادوم إستضافة أو على خادوم شخصي إفتراضي) +
+ +--- + +###
التسمية
+ +
+**YunoHost** مُستمَدٌّ مِن لُغة الإنترنت العاميّة « Y U NO Host » و بالمعنى التقريبي « لماذا لا تستضيف نفسك بنفسك ». [ميم الإنترنت](https://ar.m.wikipedia.org/wiki/%D9%85%D9%8A%D9%85_%D8%A5%D9%86%D8%AA%D8%B1%D9%86%D8%AA) الذي يصف المعنى بالتقريب هو : +
+
+ +--- + +###
التطوير
+ +YunoHost est développé pour être le plus **simple** et le moins intrusif possible pour garder la compatibilité avec Debian. Il propose uniquement un ensemble de configurations automatiques et opère via des interfaces accessibles. + +Le tout est bien entendu **entièrement libre**. La philosophie de l’[الإستضافة الذاتية](/selfhosting) étant à nos yeux incompatible avec tout autre modèle de développement logiciel. + +لا تتردّدوا في زيارة صفحة « [ساهموا](/contribute) ». +
+ +--- + +###
الأمان
+ +لقد بُذِلت كل المجهودات مِن أجل تأمين واي يونوهوست YunoHost و **تعمية و تشفير البروتوكولات** . بإمكانكم الإطلاع على الشرح بتفاصيليه [هنا](/security). + +--- + +###
واي يونوهوست YunoHost ليس + +Même si YunoHost est multi-domaine et multi-utilisateur, il reste **inapproprié pour un usage mutualisé**. + +Premièrement parce que le logiciel est trop jeune, donc non-testé et non-optimisé pour être mis en production pour des centaines d’utilisateurs en même temps. Et quand bien même, ce n’est pas le chemin que l’on souhaite faire suivre à YunoHost. La virtualisation se démocratise, et c’est une façon bien plus étanche et sécurisée de faire de la mutualisation. + +Vous pouvez héberger vos amis, votre famille ou votre entreprise sans problème, mais vous devez **avoir confiance** en vos utilisateurs, et ils doivent de la même façon avoir confiance en vous. Si vous souhaitez tout de même fournir des services YunoHost à des inconnus, **un VPS entier par utilisateur** sera la meilleure solution. +
diff --git a/whatsyunohost_de.md b/whatsyunohost_de.md new file mode 100644 index 00000000..959ffd34 --- /dev/null +++ b/whatsyunohost_de.md @@ -0,0 +1,52 @@ +# Was ist YunoHost? + + + +YunoHost ist ein **Betriebssystem**, das auf die einfachste Verwaltung eines **Servers** abzielt und daher das [Self-Hosting](selfhosting) demokratisiert, wobei sichergestellt wird, dass es zuverlässig, sicher, ethisch einwandfrei und leichtgewichtig bleibt. Es ist ein Copylefted-Libre-Softwareprojekt, das ausschließlich von Freiwilligen betrieben wird. Technisch gesehen kann es als eine Distribution angesehen werden, die auf [Debian GNU/Linux](https://debian.org) basiert und auf [vielen Arten von Hardware](install) installiert werden kann. + +## Features + +- Basierend auf Debian ; +- Verwalten Sie Ihren Server über eine **benutzerfreundliche Weboberfläche** ; +- Bereitstellen von **Apps mit nur wenigen Klicks** ; +- Verwalten Sie **Benutzer** (basierend auf LDAP) ; +- Verwalten Sie Ihre **Domainnamen** ; +- Erstellen und Wiederherstellen von **Backups** ; +- Stellen Sie über das **Benutzerportal** (NGINX, SSOwat) gleichzeitig eine Verbindung zu allen Apps her ; +- Enthält einen **vollständigen E-Mail-Stack** (Postfix, Dovecot, Rspamd, DKIM) ; +- … sowie **einen Instant Messaging Server** (XMPP) ; +- Verwaltet **SSL-Zertifikate** (basierend auf Let's Encrypt) ; +- … und **Sicherheitssysteme** (fail2ban, yunohost-firewall) ; + +## Ursprung + +YunoHost wurde im Februar 2012 aus folgender Situation heraus erstellt: + +

"Scheiße, ich bin zu faul, um meinen Mailserver neu zu konfigurieren ... Beudbeud, wie hast Du deinen kleinen Server mit LDAP zum Laufen gebracht?"

Kload, Februar 2012
+ +Alles, was benötigt wurde, war eine Administrationsoberfläche für Beudbeud's Server, um etwas nutzbar zu machen, also entschied sich Kload, eine zu entwickeln. Schließlich wurde YunoHost v1, nach der Automatisierung mehrerer Konfigurationen und der Paketierung in einigen Webanwendungen, fertiggestellt. + +Angesichts der wachsenden Begeisterung für YunoHost und für das Selbst-Hosting im Allgemeinen beschlossen die ursprünglichen Entwickler zusammen mit neuen Mitarbeitern, mit der Arbeit an Version 2 zu beginnen, einer erweiterbaren, leistungsfähigeren, benutzerfreundlicheren und damit einfacheren Version eine schöne Tasse Fairtrade-Kaffee für die Elfen von Lappland. + +Der Name **YunoHost** stammt aus dem Jargon "Y U NO Host". Das [Internet meme](https://en.wikipedia.org/wiki/Internet_meme) sollte dies veranschaulichen: +
+ +## Was YunoHost nicht ist? + +Selbst wenn YunoHost mehrere Domains und mehrere Benutzer verwalten kann, ist es **nicht als ein mutualisiertes System gedacht**. + +Erstens ist die Software noch sehr jung, nicht auf ihre Skalierbarkeit getestet und daher wahrscheinlich nicht gut genug optimiert für Hunderte von Benutzern gleichzeitig. Vor diesem Hintergrund möchten wir die Software nicht in diese Richtung lenken. Die Virtualisierung demokratisiert sich und ihre Verwendung wird empfohlen, da sie eine wasserdichtere Methode zur Erzielung von Gegenseitigkeit darstellt als ein "Full-Stack"-System wie YunoHost. + +Sie können Ihre Freunde, Ihre Familie und Ihr Unternehmen sicher und problemlos aufnehmen, aber Sie müssen **Ihren Benutzern vertrauen**, und diese müssen vor allem Ihnen vertrauen. Wenn Sie ohnehin YunoHost-Dienste für unbekannte Personen bereitstellen möchten, ist ein vollständiger VPS pro Benutzer in Ordnung, und wir glauben, dass dies ein besserer Weg ist. + +## Artworks + +Schwarz und Weiss YunoHost PNG logo by ToZz (400 × 400 px): + + + + + +Zum download Klicken. + +Licence: CC-BY-SA 4.0 diff --git a/whatsyunohost_es.md b/whatsyunohost_es.md new file mode 100644 index 00000000..143f4b52 --- /dev/null +++ b/whatsyunohost_es.md @@ -0,0 +1,53 @@ +# ¿Qué es YunoHost? + + + +YunoHost es un **sistema operativo** que persigue simplificar la administración de un **servidor** para democratizar el [autoalojamiento](selfhosting), asegurando que se mantiene fiable, seguro, ético y ligero. Es un proyecto de software libre copyleft mantenido exclusivamente por voluntarios. Se puede considerar técnicamente como una distribución basada en [Debian GNU/Linux](https://debian.org) y se puede instalar en [muchos tipos de hardware](install). + +## Características + +- Basado en Debian ; +- Administra tu servidor mediante un **interfaz web amigable** ; +- Despliega **apps en sólo unos pocos clics** ; +- Administra **usuarios** (con soporte en LDAP); +- Administra **nombres de dominio** ; +- Crea y restaura **copias de respaldo** ; +- Conecta simultáneamente a todas las apps mediante el **portal del usuario** (NGINX, SSOwat) ; +- Incluye una **instalación completa de correo electrónico** (Postfix, Dovecot, Rspamd, DKIM) ; +- … así como **un servidor de mensajería instanea** (XMPP) ; +- Administra **certificados SSL** (apoyándose en Let's Encrypt) ; +- … y **sistemas de seguridad** (fail2ban, yunohost-firewall) ; + +## Origen + +YunoHost se creó en Febrero de 2012 tras algo así: + +

"¡Mierda, soy muy vago para reconfigurar mi servidor de correo!… Beudbeud, ¿Cómo hiciste para conectar tu pequeño servidor a LDAP?"

+Kload, Febrero de 2012
+ +Todo lo que se necesitaba para hacer algo útil era un interfaz de admin para el servidor de Beudbeud, así que Kload decidió desarrollar uno. Finalmente, tras automatizar varias configuraciones y empaquetar algunas apps web, YunoHost v1 quedó terminado. + +Notando un entusiasmo creciente alrededor de YunoHost y el autoalojamiento en general, los desarrolladores originales junto con nuevos participantes decidieron comenzar a trabajar en la versión 2, más extensible, potente, fácil de usar, y ya de paso preparar una taza de café de comercio justo para los elfos de Laponia. + +El nombre **YunoHost** viene de la jerga "Y U NO Host". El [meme de Internet ](https://en.wikipedia.org/wiki/Internet_meme) debería ilustrarlo: +
+ +## ¿Qué no es YunoHost? + +Incluso aunque YunoHost puede manejar multiples dominios y multiples usuarios, **no está diseñado para ser un sistema mancomunado**. + +Primero, el software es demasiado joven, no está probado a gran escala y por tanto probáblemente tampoco suficientemente optimizado para centenares de usuarios a la vez. Dicho esto, no queremos llevar al software en esa dirección. La virtualización se democratiza y se recomienda usarla ya que es un modo más impermeable de lograr mutualización que un sistema "monolítico" como YunoHost. + +Puedes alojar a tus amistades, tu familia y a tu compañía con facilidad y seguridad, pero tienes que **confiar en tus usarios**, y sobre todo ellos tienen que confiar en tí. Si aún así quieres proveer servicios YunoHost a desconocidos, creemos que es mejor un VPS por usuario. + +## Arte + +PNG con el logotipo de YunoHost en blanco y negro por ToZz (400 × 400 px): + + + + + +Clic para descargar. + +Licencia: CC-BY-SA 4.0 diff --git a/whatsyunohost_fr.md b/whatsyunohost_fr.md new file mode 100644 index 00000000..6ab914a1 --- /dev/null +++ b/whatsyunohost_fr.md @@ -0,0 +1,53 @@ +# Qu’est-ce que YunoHost ? + + + +YunoHost est un **système d’exploitation** qui vise à simplifier autant que possible l'administration d'un **serveur** pour ainsi démocratiser [l’auto-hébergement](/selfhosting) tout en restant fiable, sécurisé, éthique et léger. C'est un projet de logiciel libre maintenu exclusivement par des bénévoles. Techniquement, il peut être vu comme une distribution basée sur [Debian GNU/Linux](https://debian.org) et peut s'installer sur [de nombreux types de matériel](/install). + +## Fonctionnalités + +- basé sur Debian ; +- administration via une **interface web simple et claire** ; +- déployez des **applications en quelques clics** ; +- ajoutez des **utilisateurs** (gérés via un annuaire LDAP) ; +- gérez des **noms de domaine** ; +- créez et restaurez des **sauvegardes** ; +- connexion simultanée à toutes les apps via un **portail utilisateur** (nginx, SSOwat) ; +- fourni avec un **serveur mail complet** (Postfix, Dovecot, Rspamd, DKIM) ; +- ... ainsi qu'un **serveur de messagerie instantanée** (XMPP) ; +- gère les **certificats SSL** (basé sur Let's Encrypt) ; +- ... et des **systèmes de sécurité** (Fail2Ban, yunohost-firewall) ; + +## Origine + +YunoHost est un projet né en février 2012 à la suite d’à peu près ça : + +

« Merde, j’ai la flemme de me reconfigurer un serveur mail... Beudbeud, comment t’as fait pour configurer ton joli serveur sous LDAP ? »

+Kload, février 2012
+ +Il ne manquait en fait qu’une interface d’administration au serveur de Beudbeud pour en faire quelque chose d’exploitable, alors Kload a décidé de la développer. Finalement, après l’automatisation de quelques configurations et le packaging de quelques applications web, la première version de YunoHost était sortie. + +Constatant l’engouement croissant autour de YunoHost et de l’auto-hébergement en général, les développeurs et les nouveaux contributeurs ont alors décidé de prendre le cap d’une version 2, plus accessible, plus extensible, plus puissante, et qui prépare du bon café commerce équitable pour les lutins de Laponie. + +Le nom **YunoHost** vient de l’argot Internet anglais « Y U NO Host » signifiant approximativement « Pourquoi toi ne pas héberger ». Le [mème Internet](http://fr.wikipedia.org/wiki/M%C3%A8me_Internet) qui l’illustre est à peu près celui-ci : +
+ +## Qu’est-ce que YunoHost n’est pas ? + +Même si YunoHost est multi-domaine et multi-utilisateur, il reste **inapproprié pour un usage mutualisé**. + +Premièrement parce que le logiciel est trop jeune, donc non-testé et non-optimisé pour être mis en production pour des centaines d’utilisateurs en même temps. Et quand bien même, ce n’est pas le chemin que l’on souhaite faire suivre à YunoHost. La virtualisation se démocratise, et c’est une façon bien plus étanche et sécurisée de faire de la mutualisation. + +Vous pouvez héberger vos amis, votre famille ou votre entreprise sans problème, mais vous devez **avoir confiance** en vos utilisateurs, et ils doivent de la même façon avoir confiance en vous. Si vous souhaitez tout de même fournir des services YunoHost à des inconnus, **un VPS entier par utilisateur** sera la meilleure solution. + +## Logo + +Logo YunoHost noir et blanc réalisé par ToZz (400 × 400 px) : + + + + + +Cliquer pour télécharger. + +Licence: CC-BY-SA 4.0 diff --git a/write_documentation.md b/write_documentation.md new file mode 100644 index 00000000..377c0628 --- /dev/null +++ b/write_documentation.md @@ -0,0 +1,21 @@ +# Write documentation + +## Online + +This site allows to edit content directly online. + +You can edit any page by pressing `ESC` on your keyboard or by clicking the "Edit" button on the bottom-right side of your screen. You will be able to preview your changes by pressing `ESC` again or by clicking the "preview" button. + +To create a new page, you can enter the URL and edit the page from there. + +Once edited, you are able to submit your change by filling an email address. + +## Via GitHub + +The YunoHost documentation is managed through a [Git repository](https://github.com/YunoHost/doc). You can send pull-requests, and do not forget to report your issues. + +Because the online editor doesn't support uploading files, using Git is the prefered way if you need to upload media (e.g. images). + +## Syntax + +This page uses the markdown syntax, please refer to the [documentation](doc_markdown_guide) for further information. diff --git a/write_documentation_fr.md b/write_documentation_fr.md new file mode 100644 index 00000000..9edde852 --- /dev/null +++ b/write_documentation_fr.md @@ -0,0 +1,17 @@ +# Rédaction de la documentation + +## Sur le site + +Ce site permet d’éditer le contenu directement en ligne. + +Pour éditer une page, appuyez sur la touche `Échap` ou cliquez sur le bouton « Éditer » en bas à droite de la page. Vous pourrez visualiser vos modifications en appuyant de nouveau sur `Échap`, ou en cliquant sur le bouton « Aperçu » en bas à droite de la page. + +Une fois l’édition effectuée, vous pouvez soumettre vos modifications en renseignant un mail. + +## Via GitHub + +La documentation de YunoHost est gérée par un [dépot Git](https://github.com/YunoHost/doc). Vous pouvez envoyer des pull-requests. + +## Syntaxe + +La documentation utilise la syntaxe Markdown. Veuillez vous référer à la [documentation](doc_markdown_guide) pour plus d’informations.