Merge branch 'YunoHost:master' into master

This commit is contained in:
Jaxom99 2022-01-26 21:49:29 +01:00 committed by GitHub
commit c7ec7643fe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
799 changed files with 24078 additions and 15395 deletions

7
.gitignore vendored
View file

@ -1,2 +1,5 @@
*~
*.sw[op]
/*
!/pages
!/images
!/themes
/themes/learn4

View file

@ -2,5 +2,3 @@ language: bash
script:
- bash tests/dead_links.sh
- bash tests/unreferenced_pages.sh
- bash tests/check_code_block_syntax.sh

View file

@ -1,33 +0,0 @@
#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:
<img src="/images/ovh_control_panel.png" width=800>
Cliquez sur l'onglet **Zone DNS**, puis sur **Ajouter une entrée**:
<img src="/images/ovh_dns_zone.png" width=800>
Il suffit maintenant d'ajouter les redirections DNS comme indiqué dans la [configuration DNS standard](/dns_config).
###IP dynamique
[Tutoriel plus général sur lIP dynamique](/dns_dynamicip).
Cette partie est à suivre, que si votre IP est dynamique.
Pour savoir si votre fournisseur daccès internet vous fournit une IP dynamique [voir ici](/isp).
Commencez par créer un identifiant DynHost.
Suivez [ce tutoriel](http://blog.developpez.com/brutus/p6316/ubuntu/configurer_dynhost_ovh_avec_ddclient) pour linstallation de ddclient.
ddclient annonce à OVH le changement dIP. 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/).

View file

@ -1,10 +1,26 @@
# YunoHost Documentation
* [Web Site](https://yunohost.org)
* Based on [Simone](https://github.com/YunoHost/Simone)
* Based on [Grav](https://getgrav.org/)
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).
# Contributing
You can refer to the page on [writing documentation](https://yunohost.org/write_documentation).
## Regenerate the css
We use scss to manage the css. If you want to change it, you must rebuild it.
First install npm, then in the root folder of this repo, install sass: `npm install sass`
Finally you can rebuild the css with (You can replace `expanded` by `compressed` if you want):
```bash
./node_modules/sass/sass.js themes/yunohost-docs/scss:themes/yunohost-docs/css --style expanded
```
Source:
https://sass-lang.com/guide

60
XMPP.md
View file

@ -1,60 +0,0 @@
# Chat, VoIP and social network with <img src="/images/XMPP_logo.png" width=100>
YunoHost comes installed by default with an instant messaging server 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, to share messages and files, and to make voice and video calls using XMPP.
## XMPP account
To use an XMPP account you need a username, which takes 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 email 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](http://gajim.org/) (Linux,Windows)
- [Dino](https://dino.im) (Linux)
- [Thunderbird](https://www.thunderbird.net/fr/) (multiplatform)
- [Beagle IM](https://beagle.im/) (Mac OS)
- [Profanity](https://profanity-im.github.io/) (Linux)
### Mobile clients
- [Conversations](https://conversations.im/) (Android)
- [Xabber](http://xabber.com) (Android)
- [Movim under Android](https://movim.eu)
- [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`
- Enable the plugin in `Tools > Plugins`
- Enable it
- Enable 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 client [Jitsi](http://jitsi.org/).

View file

@ -1,12 +0,0 @@
# 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)
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
<img src="/images/webadmin.png" style="max-width:100%;">
</div>

View file

@ -1,11 +0,0 @@
# 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)
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
<img src="/images/webadmin.png" style="max-width:100%;">
</div>

View file

@ -1,12 +0,0 @@
# Linterface dadministration web
YunoHost est fourni avec une interface graphique dadministration. Lautre méthode est dutiliser la [ligne de commande](/commandline).
### Accès
Linterface admin est accessible depuis votre instance YunoHost à ladresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur)
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
<img src="/images/webadmin_fr.png" style="max-width:100%;">
</div>

View file

@ -1,63 +0,0 @@
# Administrator documentation
* Discovering self-hosting
* [What is Self-hosting](/selfhosting)
* [What is YunoHost](/whatsyunohost)
* [Try YunoHost](/try)
* [How to host yourself](howtohostyourself)
* [Choosing hardware](/hardware)
* [About the friendliness of internet service providers](/isp)
* [Installing YunoHost](/install)
* [On a regular computer](/install_iso)
* [On a dedicated or a virtual private server](/install_on_vps)
* [On a Raspberry Pi](/install_on_raspberry)
* [On an ARM board](/install_on_arm_board)
* [On Debian](/install_on_debian)
* [On VirtualBox](/install_on_virtualbox)
* Finalizing your setup
* [Post-installation](/postinstall)
* [Configuring port forwarding](/isp_box_config)
* [Configuring DNS records](/dns_config)
* [Installing an SSL certificate](/certificate)
* [Diagnose if your setup is working properly](/diagnostic)
* Getting to know YunoHost
* [Overview of YunoHost](/overview)
* [General advices and guidelines](/guidelines)
* [Web administration interface](/admin)
* [SSH](/ssh) and [command-line administration](/commandline)
* [Users and the SSO](/users)
* [Groups and permissions](/groups_and_permissions)
* [Applications](/apps_overview)
* [Domains, DNS and certificates](/domains)
* [Email](/email)
* [Forms to remove its IP address from the black lists](/blacklist_forms)
* [XMPP](/XMPP)
* [Backup](/backup)
* [Updating the system](/update) and [apps](/app_update)
* [Security](/security)
* Going further
* Domain names
* [Noho.st / nohost.me / ynh.fr domain names](/dns_nohost_me)
* [Configure a dynamic DNS with a dynamic IP address](/dns_dynamicip)
* [DNS and subdomains for apps](/dns_subdomains)
* [Managing DNS records at OVH](/OVH)
* Notes about some French ISPs
* [SFR](/isp_sfr)
* [Orange](/isp_orange)
* [Free](/isp_free)
* [Specific apps documentations](/appsdoc)
* [Equivalence between framasoft service and apps](/apps_framasoft)
* [Exchange files with your server using a graphical interface](/filezilla)
* [Customize the appearance of the YunoHost portal](/theming)
* [Adding an external storage](/external_storage)
* [Moving an app folder to an other storage](/moving_app_folder)
* [Migrating emails to YunoHost](/email_migration)
* [Hide services with Tor](/torhiddenservice)
* [Utilisation de certificats autres que Let's Encrypt](/certificate_custom)
* [A discussion about the advantages of using a VPN](/vpn_advantage)
* [(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 iptables/fail2ban](/fail2ban)
* [Configuring IPv6](/ipv6)

View file

@ -1,45 +0,0 @@
# Administrator-Dokumentation
* Self-Hosting entdecken
* [Was ist Self-Hosting](/selfhosting)
* [Was ist YunoHost](/whatsyunohost)
* [Probiere YunoHost aus](/try)
* [Wie du selber hostest](howtohostyourself)
* [Wähle die Hardware](/hardware)
* [Über die Freundlichkeit von Internet-Service-Providern](/isp)
* [YunoHost installieren](/install)
* [Auf einem normalen Computer](/install_iso)
* [Auf einem eigenen oder virtuellen Server](/install_on_vps)
* [Auf einem Raspberry Pi](/install_on_raspberry)
* [Auf einem ARM-Board](/install_on_arm_board)
* [Auf Debian](/install_on_debian)
* [Auf VirtualBox](/install_on_virtualbox)
* Setup abschließen
* [Nach der Installation](/postinstall)
* [Port-Forwarding konfigurieren](/isp_box_config)
* [DNS-Einträge konfigurieren](/dns_config)
* [SSL-Zertifikate installieren](/certificate)
* [Diagnostiziere deine Installation](/diagnostic)
* YunoHost kennenlernen
* [Übersicht über YunoHost](/overview)
* [Allgemeine Hinweise und Hilfestellungen](/guidelines)
* [Web-Administrations-Interface](/admin)
* [SSH](/ssh) and [command-line administration](/commandline)
* [Benutzer und SSO (Single-Sign-On)](/users)
* [Applicationen](/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)

View file

@ -1,63 +0,0 @@
# Documentation pour les administrateurs YunoHost
* Découvrir l'auto-hébergement
* [Qu'est-ce que l'auto-hébergement](/selfhosting)
* [Qu'est-ce que YunoHost](/whatsyunohost)
* [Essayer YunoHost](/try)
* [Choisir son mode d'hébergement](/howtohostyourself)
* [Matériel compatible](/hardware)
* [À propos des fournisseurs d'accès internet](/isp)
* [Guide dinstallation](/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 dune 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)
* [Equivalence 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)
* [(vieux) Procedure de Migration Jessie->Stretch](jessie_stretch_migration)
* Dépannage
* [Changer le mot de passe dadministration](/change_admin_password)
* [Récupérer l'accès à son serveur](/noaccess)
* [Débannir une IP dans Fail2ban/IPtables](/fail2ban)
* [Configurer l'IPv6](/ipv6)

View file

@ -1,44 +0,0 @@
# <img src="/images/bitwarden_logo.png" width="80px" alt="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 (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 | Linux / Mac / 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)

View file

@ -1,45 +0,0 @@
# <img src="/images/bitwarden_logo.png" width="80px" alt="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 (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 | Linux / Mac / 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)

View file

@ -1,28 +0,0 @@
# 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``.

View file

@ -1,20 +0,0 @@
# <img src="/images/yunohost_package.png" height="80px" alt="Package"> Fallback
[![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)
- [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)

View file

@ -1,18 +0,0 @@
# <img src="/images/gogs_logo.svg" height="80px" alt="Gogs's logo"> Gogs
[![Install APPLICATION 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)

View file

@ -1,18 +0,0 @@
# <img src="/images/gogs_logo.svg" height="80px" alt="logo de Gogs"> 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
- [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)

View file

@ -1,3 +0,0 @@
# <img src="/images/jappix_logo.png" height="80px" alt="Jappix logo"> Jappix
Jappix is a web client for [XMPP](/XMPP).

View file

@ -1,3 +0,0 @@
# <img src="/images/jappix_logo.png" height="80px" alt="Jappix logo"> Jappix
Jappix est un client web [XMPP](/XMPP).

View file

@ -1,15 +0,0 @@
# Mediawiki
![Mediawiki](images/Mediawiki_logo.png)
MediaWiki is a free and open source software wiki package written in PHP, originally for use on Wikipedia.
## Overview
![Mediawiki_screenshot](images/Mediawiki_screenshot.png)
## Link
Mediawiki : https://www.mediawiki.org/
FAQ : https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ
Support Desk : https://www.mediawiki.org/wiki/Project:Support_desk

View file

@ -1,15 +0,0 @@
# Mediawiki
![Mediawiki](images/Mediawiki_logo.png)
MediaWiki est un ensemble wiki à base de logiciels libres Open source, développé à lorigine pour Wikipédia.
## Aperçu
![Mediawiki_screenshot](images/Mediawiki_screenshot.png)
## Liens
Mediawiki : https://www.mediawiki.org/
FAQ : https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ
Support Desk : https://www.mediawiki.org/wiki/Project:Support_desk

View file

@ -1 +0,0 @@
default.md

View file

@ -1 +0,0 @@
default.md

View file

@ -1 +0,0 @@
default.md

View file

@ -1,32 +0,0 @@
## <img src="https://yunohost.org/images/piwigo.png">
[Piwigo](http://piwigo.org) is a photo gallery software for the web, built by an active community of users and developers.
Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and opensource.
[![Install Piwigo with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=piwigo)
![](http://piwigo.org/screenshots/homepage/piwigo-batch-manager.png)
## Features
In addition to Piwigo [core features](http://piwigo.org/basics/features), the following are made available with
this package:
* Integrate with YunoHost users and SSO:
* private mode: limit access to Yunohost users
* public mode:
* SSO for YunoHost users
* allow other users management, and guest mode
* Allow one YunoHost user to be the administrator (set at the installation)
## Links
* Report a bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues
* Piwigo website: http://piwigo.org/

View file

@ -1 +0,0 @@
Unfortunately, this page only exists [in french here](app_pleroma_fr) for now.

View file

@ -1 +0,0 @@
Unfortunately, this page only exists [in french here](app_sogo_fr) for now.

View file

@ -1,8 +0,0 @@
# ![Logo SOGo](/images/logo_sogo.png) SOGo
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/a)
+ Dépot de l'application pour Yunohost : [github.com/YunoHost-Apps/sogo_ynh](https://github.com/YunoHost-Apps/sogo_ynh)

View file

@ -1,38 +0,0 @@
#Upgrade your applications
Once you installed applications, you may need to upgrade them, sooner or later.
** Caution: ** please be advised to backup your databases (using phpmyadmin application for example) and files before any upgrade.
### Upgrade using the admin panel
Go to Tools > Update system
Once the applications packages list is retrieved, you will be able to update official applications that have a pending upgrade.
### Upgrade using command line
First, connect to your server through SSH and type in the following command (WordPress update):
```bash
yunohost app upgrade wordpress
```
** Note: ** in case you have multiple instances of the same type (ex: 2 wordpress) installed, you will need to specify the instance name (ex: wordpress or wordpress__2).
#### Upgrade an unofficial application
Specify the git repository containing the upgrade.
For intance, to upgrade LimeSurvey:
```bash
yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh
```
** Note: ** be cautious when installing unofficial applications and upgrades. Be sure that theses updates are stables and are not a step in the development process. There may be a good reason if an application is not listed in the official repository.
** Caution: ** be sure to check the content of any update; installing or upgrading an unofficial application allows it to run scripts with the highest privileges.
#### Command line options
When upgrading apps from the command line, you can specify specific options to change the behaviour of the upgrade script.
To set those options, set the corresponding variable before the upgrade command: `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress`
Available options are:
- `NO_BACKUP_UPGRADE`: Do not perform the backup before the upgrade. Which means the upgrade will be operated without a security backup.
- `YNH_FORCE_UPGRADE`: Force the upgrade of the app and the package, even if the app is already up to date.

View file

@ -1,39 +0,0 @@
#Mettre à jour ses applications
Une fois que vous avez installé des applications, il est nécessaire de les mettre à jour. Plusieurs méthodes existent et sont détaillées ci-dessous.
** Attention : ** il est recommandé de faire une sauvegarde de la base de données (par exemple via lapplication [phpmyadmin](https://github.com/YunoHost-apps/phpmyadmin_ynh) ([installer](https://install-app.yunohost.org/?app=phpmyadmin))) ainsi que des fichiers avant une opération de mise à jour.
### Mise à jour par linterface web
Pour cela, il faut aller dans longlet "Mettre à jour le système".
Une fois la liste des paquets et des applications rafraîchie, il sera proposé de mettre à jour les applications et paquets qui peuvent lêtre.
### Mise à jour en ligne de commande
Il faut dabord se connecter sur le serveur en ssh, puis entrer la commande suivante (dans le cas dune 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 dinstance (ex : wordpress ou wordpress__2).
#### Mise à jour dune 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 nest pas intégrée au dépôt officiel, il y a sûrement une raison.
** Attention : ** assurez-vous du contenu de cette mise à jour; linstallation ou la mise à jour dune application non officielle permet à cette dernière dexécuter des scripts avec les privilèges les plus élevés. Si le script est malicieux, il pourrait nuire à votre vie privée en communiquant à des tiers toute donnée présente sur le serveur, ou bien les détruire irrémédiablement.
##### 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.

View file

@ -1,5 +0,0 @@
#Yunofav : (unofficial) Page of favorite links for Yunohost
homepage: https://github.com/YunoHost-Apps/yunofav_ynh
Functionality: Creates a page for your favorite links, using the Yunohost tiles look and feel.

View file

@ -1,6 +0,0 @@
# Yunofav : (non officiel) Page de liens favoris pour Yunohost
page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh
Fonctionnalité : Crée une page pour vos liens préférés, en utilisant le style et le fonctionnement des tuiles Yunohost.

379
apps.md
View file

@ -1,379 +0,0 @@
# Application catalog
<span class="javascriptDisclaimer">
This page requires Javascript enabled to display properly :s.
<br/>
<br/>
</span>
<!--
Search bar
-->
<div class="input-group">
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
<input id="filter-app-cards" type="text" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
<li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
<li><a href="#" data-quality-filter="working">Only working apps</a></li>
<li><a href="#" data-quality-filter="none">All apps</a></li>
</ul>
</div>
</div>
<br />
<!--
Disclaimers
-->
<div class="alert alert-info">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.</div>
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
Applications flagged as <span class="label label-warning label-as-badge">low quality</span> 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.
</div>
<div id="broken-apps-disclaimer" class="alert alert-danger">
Applications flagged as <span class="label label-danger label-as-badge">not working</span> are known to be broken and/or are still in development. **Do not install them** in a production environment!
</div>
<div id="app-cards-list" class="app-cards-list"></div>
<div class="alert alert-warning">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 <a href="/apps_wishlist">apps wishlist</a>.</div>
<!--
Custom CSS for this page
-->
<style>
#wrapper {
max-width: 1100px;
}
/*=================================================
Search bar
=================================================*/
#filter-app-cards, #app-cards-list {
width:100%;
}
/*===============================================*/
/*=================================================
Force return space after card list
=================================================*/
#app-cards-list:after {
content:'';
display:block;
clear: both;
}
/*===============================================*/
/*=================================================
App card
=================================================*/
.app-card {
margin-bottom:20px;
width:31.2%;
float:left;
min-height: 1px;
margin-right: 10px;
margin-left: 10px;
border-radius: 3px;
position: relative;
height: 230px;
}
.app-title {
margin-top: 0;
margin-bottom: 5px;
font-size: 1.2em;
font-weight: 700;
line-height: 1.1;
color: black;
padding: 15px;
padding-bottom: 0;
}
.app-title .label {
font-size: 0.5em;
display: inline-block;
vertical-align: middle;
padding: 0.5em 0.6em;
padding-bottom: 0.3em;
}
.label-epic {
background-color: darkorchid;
}
.app-descr {
height:100px;
overflow: hidden;
padding: 0 15px;
}
.app-footer {
width:100%;
position: absolute;
bottom: 0;
}
.app-maintainer {
font-size: 0.7em;
text-align: right;
margin-right: 5px;
}
.app-card .unmaintained {
color: #e0aa33;
}
/*===============================================
App buttons
=================================================*/
.app-buttons {
width:100%;
}
.app-buttons > .btn {
border-bottom:0;
font-size: 0.9em;
line-height: 1.58;
}
.app-buttons > .btn:first-child {
border-left:0;
border-top-left-radius:0;
}
.app-buttons > .btn:last-child {
border-right:0;
border-top-right-radius:0;
margin-left: 0px;
width: 33.6%;
}
/*===============================================*/
</style>
<!--
App card template
-->
<script type="text/template" id="app-template2">
<div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
<div class="app-title">{app_name}</div>
<div class="app-descr">{app_description}</div>
<div class="app-footer">
<div class="app-maintainer">
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
</div>
<div class="app-buttons btn-group" role="group">
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
<a href="#/app_{app_id}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
</div>
</div>
</div>
</script>
<!--
Javascript helpers
-->
<script>
function timeConverter(UNIX_timestamp) {
var a = new Date(UNIX_timestamp*1000);
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
if (hour < 10) { hour = '0' + hour; }
if (min < 10) { min = '0' + min; }
var time = date+' '+month+' '+year;//+' at '+hour+':'+min
return time;
}
$(document).ready(function () {
var default_lang = "en";
// Hide warrant about states when we're using the default filter
$('#state-disclaimer').hide();
var quality_filters = "decent";
function filter(){
var current_quality_filter = $('#current-quality-filter').data("filter");
var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
$('.app-card').each(function() {
// This is where we actually define how apps are filtered:
// we look for the name of the app (h3) and try to find the user input
// + we check this app match the current quality filter
var text = $(this).find('.app-title').text().toLowerCase() + " " + $(this).find('.app-descr').text().toLowerCase();
if (text.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
{
$(this).show();
}
else
{
$(this).hide();
}
});
// Display or hide the disclaimers depending on the current filter...
((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
}
//=================================================
// Search & filter bar event
//=================================================
$('#filter-app-cards').keyup(filter);
$('a[data-quality-filter]').on("click", function(){
$('#current-quality-filter').text($(this).text());
$('#current-quality-filter').data("filter", $(this).data("quality-filter"));
filter();
});
filter();
//=================================================
// Upload apps lists
//=================================================
var catalog = undefined;
// Fetch application catalog
$.getJSON('https://app.yunohost.org/default/v2/apps.json', {}, function(data) {
catalog = $.map(data["apps"], function(el) { return el; });
// Clarify high quality state, and level if undefined or inprogress or notworking...
$.each(catalog, function(k, infos) {
if ((infos.level === undefined) || (infos.level === 0) || (infos.state === "inprogress") || (infos.state === "notworking")) {
infos.level = null;
}
if ((infos.high_quality === true) && (infos.level === 8)) {
infos.state = "high quality";
}
else if ((infos.state === "working") && (infos.level !== null) && (infos.level <= 4)) {
infos.state = "low quality";
}
});
// Sort apps according to their state and level...
catalog.sort(function(a, b){
a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
else if (a.manifest.id == b.manifest.id) {return 0;}
return -1;
});
// Add the card for each app
$.each(catalog, function(k, infos) {
app_id = infos.manifest.id;
// Define what style to use for state, level and install button
// according to the app quality ....
if (infos.state === "high quality") {
app_quality = "high,decent,working,none";
app_badge = "high quality";
app_badge_css_style = "epic";
app_install_css_style = "success";
} else if ((infos.state === "working") && (infos.level > 4)) {
app_quality = "decent,working,none";
app_badge = null;
app_badge_css_style = "success";
app_install_css_style = "success";
} else if (infos.state === "low quality") {
app_quality = "working,none";
app_badge = "low quality";
app_badge_css_style = "warning";
app_install_css_style = "warning";
} else {
app_quality = "none";
app_badge = "not working";
app_badge_css_style = "danger";
app_install_css_style = "danger";
}
// If level is null, we wanna display '?'
if (infos.level == null) {
infos.level = '?';
}
// Fill the template
html = $('#app-template2').html()
.replace(/{app_id}/g, app_id)
.replace(/{app_name}/g, infos.manifest.name)
.replace('{app_description}', infos.manifest.description[default_lang] || infos.manifest.description["en"])
.replace(/{app_git}/g, infos.git.url)
.replace('{app_branch}', infos.git.branch)
.replace('{app_level}', infos.level)
.replace('{app_quality}', app_quality)
.replace('{app_update}', timeConverter(infos.lastUpdate))
.replace('{app_install_css_style}', app_install_css_style);
// Handle the maintainer info
if (infos.maintained == false)
{
html = html
.replace('{maintained_state}', 'unmaintained')
.replace('{maintained_icon}', 'warning-sign')
.replace('{app_maintainer}', "Unmaintained")
.replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
}
else {
html = html
.replace('{maintained_state}', 'maintained')
.replace('{maintained_icon}', 'user')
.replace('{maintained_help}', "Current maintainer of this package");
if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
html = html.replace('{app_maintainer}', infos.manifest.developer.name);
}
else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
}
else {
html = html.replace('{app_maintainer}', "???");
}
}
// Fill the template
$('#app-cards-list').append(html);
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
if (app_badge !== null) {
$('.app-card_'+ app_id + ' .app-title').append(' <span class="label label-'+app_badge_css_style+'">'+app_badge+'</span>');
}
if (typeof(infos.category) === "string") {
category = data["categories"].find(function(el) { return el.id == infos.category; });
if (typeof(category) !== "undefined")
{
display = category["title"][default_lang] || category["title"]["en"];
$('.app-card_'+ app_id + ' .app-title').append(' <span class="label label-default">'+display.toLowerCase()+'</span>');
}
}
});
filter();
});
//=================================================
});
</script>

View file

@ -1,378 +0,0 @@
# Catalogue d'applications
<span class="javascriptDisclaimer">
Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
<br/>
<br/>
</span>
<!--
Search bar
-->
<div class="input-group">
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
<input id="filter-app-cards" type="text" class="form-control" placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span id="current-quality-filter" data-filter="decent">Seulement les apps de qualité décente</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#" data-quality-filter="high">Seulement les apps haute-qualité</a></li>
<li><a href="#" data-quality-filter="decent">Seulement les apps de qualité décente</a></li>
<li><a href="#" data-quality-filter="working">Seulement les apps fonctionelles</a></li>
<li><a href="#" data-quality-filter="none">Toutes les apps</a></li>
</ul>
</div>
</div>
<br />
<!--
Disclaimers
-->
<div class="alert alert-info">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.</div>
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
Les applications étiquettées <span class="label label-warning label-as-badge">low quality</span> 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.
</div>
<div id="broken-apps-disclaimer" class="alert alert-danger">
Les applications étiquettées <span class="label label-danger label-as-badge">not working</span> sont connues pour être cassées et/ou encore en développement. **Ne les installez pas** sur un serveur de production!
</div>
<div id="app-cards-list" class="app-cards-list"></div>
<div class="alert alert-warning">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 <a href="/apps_wishlist">liste d'apps souhaitées</a>.</div>
<!--
Custom CSS for this page
-->
<style>
#wrapper {
max-width: 1100px;
}
/*=================================================
Search bar
=================================================*/
#filter-app-cards, #app-cards-list {
width:100%;
}
/*===============================================*/
/*=================================================
Force return space after card list
=================================================*/
#app-cards-list:after {
content:'';
display:block;
clear: both;
}
/*===============================================*/
/*=================================================
App card
=================================================*/
.app-card {
margin-bottom:20px;
width:31.2%;
float:left;
min-height: 1px;
margin-right: 10px;
margin-left: 10px;
border-radius: 3px;
position: relative;
height: 230px;
}
.app-title {
margin-top: 0;
margin-bottom: 5px;
font-size: 1.2em;
font-weight: 700;
line-height: 1.1;
color: black;
padding: 15px;
padding-bottom: 0;
}
.app-title .label {
font-size: 0.5em;
display: inline-block;
vertical-align: middle;
padding: 0.5em 0.6em;
padding-bottom: 0.3em;
}
.label-epic {
background-color: darkorchid;
}
.app-descr {
height:100px;
overflow: hidden;
padding: 0 15px;
}
.app-footer {
width:100%;
position: absolute;
bottom: 0;
}
.app-maintainer {
font-size: 0.7em;
text-align: right;
margin-right: 5px;
}
.app-card .unmaintained {
color: #e0aa33;
}
/*===============================================
App buttons
=================================================*/
.app-buttons {
width:100%;
}
.app-buttons > .btn {
border-bottom:0;
font-size: 0.9em;
line-height: 1.58;
}
.app-buttons > .btn:first-child {
border-left:0;
border-top-left-radius:0;
}
.app-buttons > .btn:last-child {
border-right:0;
border-top-right-radius:0;
margin-left: 0px;
width: 33.6%;
}
/*===============================================*/
</style>
<!--
App card template
-->
<script type="text/template" id="app-template2">
<div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
<div class="app-title">{app_name}</div>
<div class="app-descr">{app_description}</div>
<div class="app-footer">
<div class="app-maintainer">
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
</div>
<div class="app-buttons btn-group" role="group">
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
<a href="#/app_{app_id}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
</div>
</div>
</div>
</script>
<!--
Javascript helpers
-->
<script>
function timeConverter(UNIX_timestamp) {
var a = new Date(UNIX_timestamp*1000);
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
if (hour < 10) { hour = '0' + hour; }
if (min < 10) { min = '0' + min; }
var time = date+' '+month+' '+year;//+' at '+hour+':'+min
return time;
}
$(document).ready(function () {
var default_lang = "fr";
// Hide warrant about states when we're using the default filter
$('#state-disclaimer').hide();
var quality_filters = "decent";
function filter(){
var current_quality_filter = $('#current-quality-filter').data("filter");
var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
$('.app-card').each(function() {
// This is where we actually define how apps are filtered:
// we look for the name of the app (h3) and try to find the user input
// + we check this app match the current quality filter
var text = $(this).find('.app-title').text().toLowerCase() + " " + $(this).find('.app-descr').text().toLowerCase();
if (text.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
{
$(this).show();
}
else
{
$(this).hide();
}
});
// Display or hide the disclaimers depending on the current filter...
((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
}
//=================================================
// Search & filter bar event
//=================================================
$('#filter-app-cards').keyup(filter);
$('a[data-quality-filter]').on("click", function(){
$('#current-quality-filter').text($(this).text());
$('#current-quality-filter').data("filter", $(this).data("quality-filter"));
filter();
});
filter();
//=================================================
// Upload apps lists
//=================================================
var catalog = undefined;
// Fetch application catalog
$.getJSON('https://app.yunohost.org/default/v2/apps.json', {}, function(data) {
catalog = $.map(data["apps"], function(el) { return el; });
// Clarify high quality state, and level if undefined or inprogress or notworking...
$.each(catalog, function(k, infos) {
if ((infos.level === undefined) || (infos.level === 0) || (infos.state === "inprogress") || (infos.state === "notworking")) {
infos.level = null;
}
if ((infos.high_quality === true) && (infos.level === 8)) {
infos.state = "high quality";
}
else if ((infos.state === "working") && (infos.level !== null) && (infos.level <= 4)) {
infos.state = "low quality";
}
});
// Sort apps according to their state and level...
catalog.sort(function(a, b){
a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
else if (a.manifest.id == b.manifest.id) {return 0;}
return -1;
});
// Add the card for each app
$.each(catalog, function(k, infos) {
app_id = infos.manifest.id;
// Define what style to use for state, level and install button
// according to the app quality ....
if (infos.state === "high quality") {
app_quality = "high,decent,working,none";
app_badge = "high quality";
app_badge_css_style = "epic";
app_install_css_style = "success";
} else if ((infos.state === "working") && (infos.level > 4)) {
app_quality = "decent,working,none";
app_badge = null;
app_badge_css_style = "success";
app_install_css_style = "success";
} else if (infos.state === "low quality") {
app_quality = "working,none";
app_badge = "low quality";
app_badge_css_style = "warning";
app_install_css_style = "warning";
} else {
app_quality = "none";
app_badge = "not working";
app_badge_css_style = "danger";
app_install_css_style = "danger";
}
// If level is null, we wanna display '?'
if (infos.level == null) {
infos.level = '?';
}
// Fill the template
html = $('#app-template2').html()
.replace(/{app_id}/g, app_id)
.replace(/{app_name}/g, infos.manifest.name)
.replace('{app_description}', infos.manifest.description[default_lang] || infos.manifest.description["en"])
.replace(/{app_git}/g, infos.git.url)
.replace('{app_branch}', infos.git.branch)
.replace('{app_level}', infos.level)
.replace('{app_quality}', app_quality)
.replace('{app_update}', timeConverter(infos.lastUpdate))
.replace('{app_install_css_style}', app_install_css_style);
// Handle the maintainer info
if (infos.maintained == false)
{
html = html
.replace('{maintained_state}', 'unmaintained')
.replace('{maintained_icon}', 'warning-sign')
.replace('{app_maintainer}', "Unmaintained")
.replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
}
else {
html = html
.replace('{maintained_state}', 'maintained')
.replace('{maintained_icon}', 'user')
.replace('{maintained_help}', "Current maintainer of this package");
if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
html = html.replace('{app_maintainer}', infos.manifest.developer.name);
}
else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
}
else {
html = html.replace('{app_maintainer}', "???");
}
}
// Fill the template
$('#app-cards-list').append(html);
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
if (app_badge !== null) {
$('.app-card_'+ app_id + ' .app-title').append(' <span class="label label-'+app_badge_css_style+'">'+app_badge+'</span>');
}
if (typeof(infos.category) === "string") {
category = data["categories"].find(function(el) { return el.id == infos.category; });
if (typeof(category) !== "undefined")
{
display = category["title"][default_lang] || category["title"]["en"];
$('.app-card_'+ app_id + ' .app-title').append(' <span class="label label-default">'+display.toLowerCase()+'</span>');
}
}
});
filter();
});
//=================================================
});
</script>

View file

@ -1 +0,0 @@
Unfortunately, this page only exists [in french here](apps_framasoft_fr) for now.

View file

@ -1,48 +0,0 @@
# Équivalence avec les applications Framasoft
| App Framasoft | Équivalent | Package |
| :---: | :---: | :---: |
| Framabag | Wallabag | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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 | [<span class="glyphicon glyphicon-gift"></span>](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)

View file

@ -1,41 +0,0 @@
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 ran 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).

View file

@ -1,42 +0,0 @@
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).

View file

@ -1,168 +0,0 @@
# Apps wishlist
<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in apps list: see the <a href="/apps">apps list</a></div>
The following list is a compiled wishlist of applications that would be nice-to-have.
[Edit this list](/write_documentation) to add your own favorite app, or learn to [package apps](/packaging_apps) yourself.
- [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)
- [10er10](https://github.com/dready92/10er10)
- [Ajenti](http://ajenti.org) / [github](https://github.com/ajenti/ajenti/)
- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc. / [github](https://github.com/akaunting/akaunting)
- [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions) / [github](https://github.com/Bitmessage/PyBitmessage)
- [Beehive](https://github.com/muesli/beehive)
- [BigBlueButton](https://bigbluebutton.org) / [install instruction](http://docs.bigbluebutton.org/2.2/install.html) / [github](https://github.com/bigbluebutton/bigbluebutton) Complete open source web conferencing system.
- [Bludit](https://www.bludit.com) / [github](https://github.com/bludit/bludit)
- [Blynk](https://github.com/blynkkk/blynk-library)
- [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)
- [btcpayserver](https://github.com/btcpayserver/btcpayserver)
- [cgit](http://git.zx2c4.com/cgit/about)
- [CheckUp](https://sourcegraph.github.io/checkup) / [github](https://github.com/sourcegraph/checkup)
- [citadel-suite - Debian](https://packages.debian.org/stretch/citadel-suite) / [citadel easyinstall - citadel.org](http://www.citadel.org/doku.php?id=installation:easyinstall:easyinstall) Citadel is a complete and feature-rich open source groupware platform. Directly descending from a well known C/PM BBS system, it has a venerable [history](http://www.citadel.org/doku.php?id=documentation:citadel_past_present_and_future#citadel.past.present.and.future)
- [Cockpit](http://cockpit-project.org/)
- [Commafeed](https://github.com/Athou/commafeed)
- [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)
- [Couchdb](https://couchdb.apache.org/) databases creation and management
- [Cozy](https://github.com/cozy)
- [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
- [Darkwire.io](https://github.com/seripap/darkwire.io)
- [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
- [Draw.io](https://github.com/jgraph/drawio) : a diagram online creator
- [EasyAppointments](https://easyappointments.org/) Online appointment booker (similar to Doodle)
- [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
- [Emoncms](https://github.com/emoncms/emoncms)
- [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
- [EteSync](https://www.etesync.com/) / [github](https://github.com/etesync)
- [Epicyon](https://epicyon.net/) / [gitlab](https://gitlab.com/bashrc2/epicyon)
- [erine.email](https://erine.email/) / [gitlab](https://gitlab.com/mdavranche/erine.email)
- [Ferdi server](https://github.com/getferdi/server) is the server to self host the data and configuration of the [ferdi](https://getferdi.com/) messaging aggregator client.
- [FEX](http://fex.rus.uni-stuttgart.de/)
- [FitTrackee](https://github.com/SamR1/FitTrackee)
- [Fossil](http://www.fossil-scm.org)
- [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
- [Gancio](https://gancio.org/) / [framagit](https://framagit.org/les/gancio)
- [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
- [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)
- [Gollum](https://github.com/gollum/gollum)
- [Goploader](https://github.com/Depado/goploader)
- [Gpodder.net](https://gpoddernet.readthedocs.io/en/latest/index.html)
- [Granary](https://github.com/snarfed/granary)
- [Graphhopper](https://www.graphhopper.com/) / [github](https://github.com/graphhopper/graphhopper#get-started) or other routing service that can be plugged to [Nextcloud Maps](https://apps.nextcloud.com/apps/maps), e.g. OSRM (see below)
- [Guacamole](http://guacamole.apache.org/)
- [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
- [Helpy](https://github.com/helpyio/helpy)
- [Hexo](https://hexo.io/) / [github](https://github.com/hexojs/hexo)
- [Icecast 2](http://www.icecast.org) / [gitlab](https://gitlab.xiph.org/xiph/icecast-server/)
- [ikiwiki](http://ikiwiki.info)
- [Invidious](https://github.com/omarroth/invidious)
- [Invoice Ninja](https://www.invoiceninja.com) / [github](https://github.com/invoiceninja/invoiceninja)
- [InvoicePlane](https://invoiceplane.com) / [github](https://github.com/InvoicePlane/InvoicePlane)
- [IPFS](https://ipfs.io) / [github](https://github.com/ipfs/ipfs)
- [Isso](https://posativ.org/isso) commenting server / [github](https://github.com/posativ/isso)
- [Jellyfin](https://github.com/jellyfin)
- [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
- [Joplin-web](https://github.com/foxmask/joplin-web) / [github](https://github.com/foxmask/joplin-web)
- [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
- [Known](https://withknown.com) / [github](https://github.com/idno/known)
- [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)
- [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
- [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
- [L'atelier](https://github.com/jbl2024/latelier)
- [Lemmy](https://dev.lemmy.ml) / [github](https://github.com/dessalines/lemmy) A federated alternative to reddit.
- [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
- [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
- [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
- [LocomotiveCMS](https://github.com/locomotivecms/engine)
- [Loomio](https://www.loomio.org) / [github](https://github.com/loomio/loomio/)
- [MaidSafe](http://maidsafe.net) / [github](https://github.com/maidsafe)
- [Mailpile](https://www.mailpile.is) / [github](https://github.com/mailpile/Mailpile)
- [Mailtrain](https://mailtrain.org/) / [github](https://github.com/Mailtrain-org/mailtrain)
- [Mautic](https://github.com/mautic/mautic)
- [microblog.pub](https://microblog.pub) / [github](https://github.com/tsileo/microblog.pub)
- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) / [github](https://github.com/GothenburgBitFactory/taskwarrior) (/!\ SSL-Warning)
- [Modoboa](http://modoboa.org) / [github](https://github.com/modoboa/)
- [MotionEye](https://github.com/ccrisan/motioneye)
- [MPD](http://www.musicpd.org)
- [MyBB](https://mybb.com/) / [github](https://github.com/mybb)
- [Museek+](https://github.com/eLvErDe/museek-plus)
- [N8n.io](https://n8n.io)
- [Netrunner](https://github.com/mtgred/netrunner)
- [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
- [OhMyForm](https://github.com/ohmyform) (Only support Docker install way and some VPS aren't compatible, see TellForm which support non-Docker install but is discontinued)
- [Ombi](https://github.com/tidusjar/Ombi)
- [Omeka S](https://omeka.org/s/) / [github](https://github.com/omeka/omeka-s)
- [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
- [OpenCart](https://www.opencart.com) / [github](https://github.com/opencart/opencart)
- [OpenEats](https://open-eats.github.io/) / [github](https://github.com/open-eats/OpenEats)
- [openHAB](https://www.openhab.org/) - Smart home platform. / [github](https://github.com/openhab)
- [OpenProject](https://github.com/opf/openproject)
- [OpenSourceBilling](https://github.com/vteams/open-source-billing)
- [OSRM](http://project-osrm.org/) / [github](https://github.com/Project-OSRM/osrm-backend/#quick-start) or other routing service that can be plugged to [Nextcloud Maps](https://apps.nextcloud.com/apps/maps), e.g. Graphhopper (see above)
- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution / [github](https://github.com/open-xchange/)
- [Paperless](https://github.com/danielquinn/paperless)
- [Paperwork](http://paperwork.rocks)
- [Passbolt](https://www.passbolt.com) Passwords manager / [github](https://github.com/passbolt)
- [Pelias](https://github.com/pelias/pelias))
- [PHPList](http://www.phplist.com) / [github](https://github.com/phpList)
- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) / [github](https://github.com/alchemy-fr/Phraseanet-Docs)
- [Pico](http://picocms.org) / [github](https://github.com/picocms/Pico)
- [Playmaker](https://github.com/NoMore201/playmaker)
- [Presentator](https://presentator.io/) A design presentation and collaboration platform.
- [Privoxy](http://www.privoxy.org)
- [ProcessMaker](http://www.processmaker.com)
- [ProtonMails WebClient](https://github.com/ProtonMail/WebClient)
- [PyLoad](https://github.com/pyload/pyload)
- [Pydio Cells](https://pydio.com/) A file sync and sharing software written in go. / [github](https://github.com/pydio/cells)
- [Pump.io](http://pump.io) / [github](https://github.com/pump-io/pump.io)
- [qBittorrent](https://github.com/qbittorrent/qBittorrent)
- [Questions2answer](https://www.question2answer.org/)
- [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
- [Radarr](https://github.com/Radarr/Radarr)
- [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
- [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
- [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)
- [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
- [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
- [ShareLatex](https://www.sharelatex.com) / [github](https://github.com/overleaf/overleaf)
- [Schleuder](https://schleuder.org/schleuder/docs/concept.html)(Schleuder is a gpg-enabled mailing list manager with resending capabilities.)
- [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
- [smokeping](https://packages.debian.org/buster/smokeping) / [github](https://github.com/oetiker/SmokePing)
- [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)
- [Spacedeck](https://github.com/spacedeck) (A web based, real time, collaborative whiteboard application with rich media support.)
- [Stackedit](https://stackedit.io) / [github](https://github.com/benweet/stackedit)
- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion / [github](https://github.com/standardnotes/web)
- [Streisand](https://github.com/jlund/streisand)
- [Subspace](https://github.com/subspacecloud/subspace) (A simple WireGuard VPN server GUI)
- [Syspass](http://www.syspass.org/) / [github](https://github.com/nuxsmin/sysPass)
- [Taiga](https://taiga.io) / [github](https://github.com/taigaio/)
- [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
- [Technitium DNS](https://technitium.com/dns/) / [github](https://github.com/TechnitiumSoftware/DnsServer)
- [Teddy.io](https://teedy.io/#!/) Gestionnaire de documents / [Github](https://github.com/sismics/docs)
- [TellForm](https://github.com/tellform/tellform) (Discontinued (see OhMyForm) but it can be great to have it since OhMyForm does only support Docker install)
- [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
- [Tracim](https://github.com/tracim/tracim)
- [Thredded](https://thredded.org/) / [github](https://github.com/thredded/thredded)
- [Tryton](https://www.tryton.org/) A solid ERP system. GNU Health uses this as well.
- [Twister](http://twister.net.co) / [github](https://github.com/miguelfreitas/twister-core/)
- [TwitRSS.me](http://twitrss.me/) / [Github](https://github.com/ciderpunx/twitrssme) Scrapes Twitter to create RSS feeds.
- [Uwazi](https://www.uwazi.io/) / [Github](https://github.com/huridocs/uwazi)
- [Volumio](https://volumio.org) / [github](https://github.com/volumio)
- [WebODF](http://webodf.org) / [github](https://github.com/webodf/WebODF)
- [Webhook.site](https://docs.webhook.site/) / [github](https://github.com/fredsted/webhook.site)
- [Whoogle](https://github.com/benbusby/whoogle-search) - Self-hosted, ad-free, privacy-respecting Google metasearch engine.
- [Wireguard](https://www.wireguard.com/) / [git](https://git.zx2c4.com/WireGuard/)
- [Xibo](https://github.com/xibosignage) - A FLOSS digital signage solution (CMS?)
- [Xonotic](http://xonotic.org) / [gitlab](https://gitlab.com/xonotic)
- [Zammad](https://github.com/zammad/zammad)
- [Zola](https://www.getzola.org/) - A static site generator in one binary
- [Zoneminder](https://github.com/ZoneMinder/zoneminder)
- [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)
- [Yggdrasil](https://yggdrasil-network.github.io/) / [github](https://github.com/yggdrasil-network/yggdrasil-go)
- [WiseMapping](http://www.wisemapping.com/inyourserver.html) / [developpement](https://bitbucket.org/wisemapping/wisemapping-open-source)

171
backup.md
View file

@ -1,171 +0,0 @@
# 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 <archivename>` 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 Linux, you should be able to run the following to download a specific backup:
```bash
scp admin@your.domain.tld:/home/yunohost.backup/archives/<archivename>.tar.gz ./
```
Similarly, you can upload a backup from a machine to your server with:
```bash
scp /path/to/your/<archivename>.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/
```
## 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 <archivename>` (without the `.tar.gz`) to restore an archive. As for `yunohost backup create`, this will restore everything in the archive by default. If you want to restore only specific items, you can use for instance `yunohost backup restore --apps wordpress` which will restore only the wordpress app.
### 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 <archivename>
```
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/<archivename> /home/yunohost.backup/archives/
yunohost backup restore <archivename>
```
## To go futher
### Storing backups on a different drive
If you want, you can connect and mount an external drive to store backup archives on it (among other things). For this, 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 : <https://forum.yunohost.org/t/how-to-backup-your-yunohost-server-on-another-server/3153>
Alternatively, the app Archivist allows to setup a similar system : <https://forum.yunohost.org/t/new-app-archivist/3747>
#### 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
```

View file

@ -1,171 +0,0 @@
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 <nom_d'archive>` 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 Linux, vous pouvez utiliser la commande suivante pour télécharger une archive :
```bash
scp admin@your.domain.tld:/home/yunohost.backup/archives/<nom_d'archive>.tar.gz ./
```
De façon similaire, vous pouvez téléverser une sauvegarde depuis une machine vers votre serveur avec :
```bash
scp /path/to/your/<nom_d'archive>.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/
```
Restaurer des sauvegardes
-------------------------
#### Depuis la webadmin
Allez dans Sauvegardes > Sauvegardes locales et sélectionnez l'archive. Vous pouvez ensuite choisir les différents éléments que vous voulez restaurer puis cliquer sur "Restaurer".
![](/images/restore.png)
#### Depuis la ligne de commande
Depuis la ligne de commande, vous pouvez utiliser `yunohost backup restore <nom_d'archive>` (sans le `.tar.gz`) pour restaurer une archive. Tout comme `yunohost backup create`, cela restaure tout le contenu par défaut. Si vous souhaitez restaurer seulement certaines parties, vous pouvez utiliser par exemple `yunohost backup restore --apps wordpress` qui restaurera seulement l'app WordPress.
#### Contraintes
Pour restaurer une application, le domaine sur laquelle elle est installée doit déjà être configuré (ou il vous faut restaurer en même temps la configuration correspondante). Aussi, il n'est pas possible de restaurer une application déjà installée... ce qui veut dire que pour restaurer une sauvegarde d'une app, il vous faut déjà la désinstaller.
#### Restauration d'une archive à la place de la post-installation
Une fonctionnalité particulière est la possibilité de restaurer une archive entière *à la place* de faire la post-installation. Ceci est utile pour réinstaller un système entièrement à partir d'une sauvegarde existante. Pour faire cela, il vous faudra d'abord téléverser l'archive sur le 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 <nom_d'archive>
```
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/<nom_d'archive> /home/yunohost.backup/archives/
yunohost backup restore <nom_d'archive>
```
Pour aller plus loin
--------------------
#### Stocker les archives sur un autre disque
Si vous le souhaitez, vous pouvez connecter un disque externe à votre serveur pour (parmi d'autres choses) stocker les archives de backup dessus. Pour cela, il faut d'abord déplacer les archives existantes vers le disque, puis créer un lien symbolique:
```bash
PATH_TO_DRIVE="/media/mon_disque_externe" # Par exemple - Tout dépend d'où le disque est monté
mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives
ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives
```
#### Sauvegardes automatiques
Vous pouvez ajouter une tâche cron pour déclencher automatiquement une sauvegarde régulièrement. Par exemple pour sauvegarder l'application WordPress toutes les semaines, créez un fichier `/etc/cron.weekly/backup-wordpress` avec le contenu suivant :
```bash
#!/bin/bash
yunohost backup create --apps wordpress
```
puis rendez-le exécutable :
```bash
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
```

View file

@ -1,52 +0,0 @@
# Graphical installation
Now that your YunoHost install medium, you can start with the installation.
## <small>1.</small> 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.
## <small>2.</small> 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):
```<ESC>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<DEL>```
## <small>3.</small> Launch graphical installation
You should see a screen like this:
<img src="/images/virtualbox_3.png">
* Select `Graphical install`
* Select your language, your location and your keyboard layout
* If a partitioning screen appears, confirm.
<div class="alert alert-danger"><b>Caution:</b> This will totally erase the data on your hard drive</div>
* Let the installer do the rest, it will download required packages and install them.
<div class="alert alert-info">If it fails, you probably have an Internet connection issue.
Check that your computer is physically connected and retry.</div>
* It should reboot automatically.
## <small>4.</small> 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**
## <small>5.</small> Proceed to post-installation
<a class="btn btn-lg btn-default" href="/postinstall">Post-install documentation</a>

View file

@ -1,50 +0,0 @@
# Installation graphique
Maintenant que vous possédez un support YunoHost, vous pouvez procéder à linstallation.
## <small>1.</small> 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, louverture des ports réseau ne se fera pas automatiquement : votre serveur ne sera pas accessible depuis lextérieur.
## <small>2.</small> 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 lune des touches suivantes (dépendant de votre ordinateur) :
```<Échap>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<Suppr>```
## <small>3.</small> Lancer linstallation graphique
Vous devriez voir un écran comme ça :
<img src="/images/virtualbox_3.png">
* Sélectionnez `Graphical install`
* Sélectionnez votre langue, votre localisation et votre agencement de clavier.
* Si un écran de partitionnement apparaît, confirmez simplement.
<div class="alert alert-danger"><b>Attention :</b> Cette opération effacera totalement les données sur votre disque dur</div>
* Laissez linstallateur faire le reste, il téléchargera les paquets requis et les installera.
<div class="alert alert-info">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.</div>
* Lordinateur devrait redémarrer automatiquement à la fin de linstallation.
## <small>4.</small> 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**
## <small>5.</small> Procéder à la post-installation
<a class="btn btn-lg btn-default" href="/postinstall">Documentation de la post-installation</a>

View file

@ -1,48 +0,0 @@
# Flashing the YunoHost ISO
Now that you downloaded the ISO image of YunoHost, you should flash/burn it on a physical medium. Typically, this is done on a **USB stick** or an **SD card**.
<img src="/images/sdcard.jpg" width=100>
<img src="/images/micro-sd-card.jpg" width=100>
<img src="/images/usb_key.png" width=150>
<img src="/images/cd.jpg" width=100>
### (Recommended) With Etcher
Download <a href="https://etcher.io/" target="_blank">Etcher</a> for your operating system and install it.
<img src="/images/etcher.gif">
Plug your USB stick, select your YunoHost ISO and click "Flash"
### With UNetbootin
Download <a href="https://unetbootin.github.io/">UNetbootin</a> for your operating system and install it.
<img src="/images/unetbootin.png">
Put your USB stick on, select your YunoHost ISO and click "OK"
### With `dd`
If you are on Linux / Mac and know your way around command line, you may also
flash your USK stick or SD card with `dd`. You can identify which device corresponds to your
USB stick or SD card with `fdisk -l` or `lsblk`. An SD card name typically 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 Mac OS, 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/)

View file

@ -1,48 +0,0 @@
# Flasher l'ISO YunoHost
Maintenant que vous avez téléchargé limage ISO de YunoHost, vous devez la mettre sur un support physique. Classiquement, il s'agit d'une **Clé USB** ou d'une **Carte SD**.
<img src="/images/sdcard.jpg" width=100>
<img src="/images/micro-sd-card.jpg" width=100>
<img src="/images/usb_key.png" width=150>
<img src="/images/cd.jpg" width=100>
---
### (Recommandé) Avec Etcher
Téléchargez <a href="https://etcher.io/" target="_blank">Etcher</a> pour votre système d'exploitation et installez-le.
<img src="/images/etcher.gif">
Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'Flash'
### Avec UNetbootin
Téléchargez <a href="https://unetbootin.github.io/">UNetbootin</a> pour votre système d'exploitation et installez-le.
<img src="/images/unetbootin.png">
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 dexploitation.
* Sur Windows, utilisez [ImgBurn](http://www.imgburn.com/) pour écrire limage sur le disque
* Sur Mac OS, 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/)

View file

@ -1 +0,0 @@
Unfortunately, this page only exists [in french here](certificate_custom_fr) for now.

View file

@ -1,39 +0,0 @@
## Salas de chat
El proyecto YunoHost utilisa salas de chat como medio de communicación.
Puede juntarse a una sala de chat utilisando :
- 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 [Matrix](https://matrix.org/docs/guides/faq.html#what-clients-are-available%3F)
#### Sala de chat de ayuda y soporte
Existe salas publica 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 developers
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 comó (backend, frontend, apps, project, community...)
Puede tambien compartir sus materiales sobre el tema de 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)**

View file

@ -1,30 +0,0 @@
# Administrate YunoHost in command line
The command line interface (CLI) is, in the computer world, the original (and more technical) way of interacting with a computer compared to graphical interface. Command line interfaces are generally said to be more complete, powerful or efficient than a graphical interface, though it is more difficult to learn.
In the context of YunoHost, or system administration in general, the CLI is commonly used to remotely control machines after connecting through [connecting to it via SSH](/ssh).
<div class="alert alert-info" markdown="1">
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 !
</div>
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.

View file

@ -1,30 +0,0 @@
# Administrar YunoHost con la interfaz de línea de comandos
La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla.
En el contexto de Yunohost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh).
<div class="alert alert-info" markdown="1">
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 !
</div>
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.

View file

@ -1,30 +0,0 @@
# Administrer YunoHost en ligne de commande
L'interface en ligne de commande (CLI) est, en informatique, la manière originale (et plus technique) d'interagir avec un ordinateur comparé aux interfaces graphiques. La ligne de commande est généralement considéré comme plus complète, puissante et efficace que les interfaces graphiques, bien que plus difficile à apprendre.
Dans le contexte de YunoHost, ou de l'administration système en général, la ligne de commande est communément utilisée après s'être [connecté en SSH](/ssh).
<div class="alert alert-info" markdown="1">
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 !
</div>
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.

17
config/site.yaml Normal file
View file

@ -0,0 +1,17 @@
title: 'YunoHost Documentation'
default_lang: en
author:
name: YunoHost
email: yunohost@yunohost.org
taxonomies:
- category
- tag
metadata:
description: 'YunoHost Documentation'
summary:
enabled: true
format: short
size: 300
delimiter: '==='
redirects: null
routes: null

218
config/system.yaml Normal file
View file

@ -0,0 +1,218 @@
absolute_urls: false
timezone: null
param_sep: ':'
wrapped_site: false
reverse_proxy_setup: false
force_ssl: false
force_lowercase_urls: true
custom_base_url: null
username_regex: '^[a-z0-9_-]{3,16}$'
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'
intl_enabled: true
http_x_forwarded:
protocol: true
host: false
port: true
ip: true
languages:
supported:
- en
- fr
- de
- es
- ar
- oc
- it
- ru
default_lang: en
include_default_lang: true
include_default_lang_file_extension: true
translations: true
translations_fallback: true
session_store_active: false
http_accept_language: true
override_locale: false
content_fallback:
en: 'fr,de,es'
de: 'en,fr,es'
es: 'en,fr,de'
pages_fallback_only: false
home:
alias: /home
hide_in_urls: true
pages:
type: regular
theme: yunohost-docs
order:
by: default
dir: asc
list:
count: 20
dateformat:
default: null
short: 'jS M Y'
long: 'F jS \a\t g:ia'
publish_dates: true
process:
markdown: true
twig: false
twig_first: false
never_cache_twig: false
events:
page: true
twig: true
markdown:
extra: false
auto_line_breaks: false
auto_url_links: false
escape_markup: false
special_chars:
'>': gt
'<': lt
valid_link_attributes:
- rel
- target
- id
- class
- classes
types:
- html
- htm
- xml
- txt
- json
- rss
- atom
append_url_extension: null
expires: 604800
cache_control: null
last_modified: false
etag: true
vary_accept_encoding: false
redirect_default_route: false
redirect_default_code: '302'
redirect_trailing_slash: true
ignore_files:
- .DS_Store
ignore_folders:
- .git
- .idea
ignore_hidden: true
hide_empty_folders: false
url_taxonomy_filters: true
frontmatter:
process_twig: false
ignore_fields:
- form
- forms
cache:
enabled: true
check:
method: file
driver: auto
prefix: g
purge_at: '0 4 * * *'
clear_at: '0 3 * * *'
clear_job_type: standard
clear_images_by_default: true
cli_compatibility: false
lifetime: 604800
gzip: true
allow_webserver_gzip: false
redis:
socket: '0'
server: null
port: null
password: null
memcache:
server: null
port: null
memcached:
server: null
port: null
twig:
cache: true
debug: false
auto_reload: true
autoescape: false
undefined_functions: true
undefined_filters: true
umask_fix: false
assets:
css_pipeline: false
css_pipeline_include_externals: true
css_pipeline_before_excludes: true
css_minify: true
css_minify_windows: false
css_rewrite: true
js_pipeline: false
js_pipeline_include_externals: true
js_pipeline_before_excludes: true
js_minify: true
enable_asset_timestamp: false
collections:
jquery: 'system://assets/jquery/jquery-2.x.min.js'
errors:
display: 1
log: true
log:
handler: file
syslog:
facility: local6
debugger:
enabled: false
provider: clockwork
censored: false
shutdown:
close_connection: true
twig: true
images:
default_image_quality: 85
cache_all: false
cache_perms: '0755'
debug: false
auto_fix_orientation: true
seofriendly: true
defaults:
loading: auto
media:
enable_media_timestamp: false
unsupported_inline_types: null
allowed_fallback_types: null
auto_metadata_exif: false
upload_limit: 2097152
session:
enabled: true
initialize: true
timeout: 1800
name: grav-site
uniqueness: path
secure: false
httponly: true
samesite: Lax
split: true
path: null
gpm:
releases: stable
proxy_url: null
method: auto
verify_peer: true
official_gpm_only: true
accounts:
type: regular
storage: file
flex:
cache:
index:
enabled: true
lifetime: 60
object:
enabled: true
lifetime: 600
render:
enabled: true
lifetime: 600
strict_mode:
yaml_compat: true
twig_compat: true
blueprint_compat: true

View file

@ -0,0 +1,18 @@
streams:
schemes:
theme:
type: ReadOnlyStream
prefixes:
'': [user/themes/yunohost-docs, user/themes/learn4]
enabled: true
production-mode: true
grid-size: grid-xl
github:
note: false
link: true
tree: 'https://github.com/yunohost/doc/blob/grav/'
commits: 'https://github.com/yunohost/doc/commits/grav/'
spectre:
exp: false
icons: false
top_level_version: true

View file

@ -1,93 +0,0 @@
# Get involved
<p class="lead">
YunoHost depends exclusively on the participation of people like you.
</p>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-heart"></span>&nbsp;&nbsp; Spread the word
</div>
<div class="col col-md-8" markdown="1">
Talk about software freedom, [self-hosting](/selfhosting) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;&nbsp; Testing
</div>
<div class="col col-md-8" markdown="1">
We need people able to test YunoHost deeply. If you find a bug, try to identify it, and report it on our <a href="https://github.com/YunoHost/issues/issues" target="_blank">bug tracker</a>.
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; Helping users
</div>
<div class="col col-md-8" markdown="1">
Our support relies on contributors like you. Just come to [the support chatroom](/help) and help new users getting started, or pick a question on the <a href="https://forum.yunohost.org/" target="_blank">Forum</a>.
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-cog"></span>&nbsp;&nbsp; Coding
</div>
<div class="col col-md-8" markdown="1">
You can involve in the YunoHost's development regardless of your skill.
Sysadmins, web developers, designers and pythonists <a href="https://github.com/YunoHost" target="_blank">are welcome</a>!
<br>
Learn [how to contribute](/dev), and join us on the [development chat room](xmpp:dev@conference.yunohost.org?join).
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-globe"></span>&nbsp;&nbsp; Localization
</div>
<div class="col col-md-8" markdown="1">
Get involved by making YunoHost interfaces available in your language.
<a href="https://translate.yunohost.org/" target="_blank">Get started</a>!
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-edit"></span>&nbsp;&nbsp; Write
</div>
<div class="col col-md-8" markdown="1">
Improve this documentation by [writing new pages](/write_documentation) or translating existing ones to your language.
</div>
</div>
<hr>
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-gift"></span>&nbsp;&nbsp; Packaging
</div>
<div class="col col-md-8" markdown="1">
Extend YunoHost capabilities by [packaging new services and web applications](/packaging_apps).
Have a look of [what has been done yet](/apps)!
</div>
</div>
---
<br>
<p class="lead" markdown="1">In any case, please come chat with us on [the dev chatroom](/chat_rooms) :-)</p>

View file

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

View file

@ -1,90 +0,0 @@
# Contribuer
<p class="lead">
YunoHost dépend entièrement de la participation de gens comme vous.
</p>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-heart"></span>&nbsp;&nbsp; Passez le mot
</div>
<div class="col col-md-8" markdown="1">
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
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;&nbsp; Testez
</div>
<div class="col col-md-8" markdown="1">
Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essayez de lidentifier, puis reportez-le sur notre <a href="https://github.com/YunoHost/issues/issues/new" target="_blank">bug tracker</a>.
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-user"></span>&nbsp;&nbsp; Aidez les utilisateurs
</div>
<div class="col col-md-8" markdown="1">
Notre support est communautaire et sappuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-cog"></span>&nbsp;&nbsp; Codez
</div>
<div class="col col-md-8" markdown="1">
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) !
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-globe"></span>&nbsp;&nbsp; Traduisez
</div>
<div class="col col-md-8" markdown="1">
Participez en rendant les interfaces de YunoHost disponibles dans votre langue. <a href="https://translate.yunohost.org/" target="_blank">Lancez-vous</a>!
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-edit"></span>&nbsp;&nbsp; Écrivez
</div>
<div class="col col-md-8" markdown="1">
Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation) ou en traduisant les existantes dans votre langue.
</div>
</div>
---
<div class="row">
<div class="col col-md-3 lead">
<span class="glyphicon glyphicon-gift"></span>&nbsp;&nbsp; Packagez
</div>
<div class="col col-md-8" markdown="1">
Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps)!
</div>
</div>
---
<br>
<br>
<p class="lead" markdown="1">Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)</p>

View file

@ -1,43 +0,0 @@
# Contributor documentation
* [General ways of contributing to YunoHost](/contribute)
* [Writing documentation](/write_documentation)
* [Documentation writing guide](/doc_writing_guide)
* [Markdown guide](/doc_markdown_guide)
* [Power your code using Git & GitHub](/doc_use_git)
* [Chat rooms](/chat_rooms)
* 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)
* [Multi-instance](packaging_apps_multiinstance)
* [Helpers](packaging_apps_helpers)
* [Trap usage](/packaging_apps_trap)
* [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)

View file

@ -1,44 +0,0 @@
# Guide du contributeur
* [Liste des façons de contribuer à YunoHost](/contribute)
* [Écrire de la documentation](/write_documentation)
* [Guide de redaction de la documentation](/doc_writing_guide)
* [Guide Markdown](/doc_markdown_guide)
* [Propulser son code avec Git & GitHub](/doc_use_git)
* [Salons de discussion](/chat_rooms)
* Packaging d'application
* [Liste d'applications souhaitées par la communauté](/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](#/packaging_apps_arguments_format)
* [Configuration nginx](/packaging_apps_nginx_conf)
* [Multi-instance](/packaging_apps_multiinstance)
* [Fonctions utiles](/packaging_apps_helpers)
* [Utilisation de 'trap'](/packaging_apps_trap)
* [Ajouter son application à la liste des apps](https://github.com/YunoHost/Apps/#contributing)
* [Feature de packaging avancées](#/packaging_apps_advanced)
* [Actions pour une application](#/packaging_apps_actions)
* [Panneau de configuration pour une application](#/packaging_apps_config_panel)
* Tests de qualité
* [Package linter](https://github.com/YunoHost/package_linter)
* [Package check](https://github.com/YunoHost/package_check)
* [Niveaux des applications](/packaging_apps_levels)
* [Intégration continue des apps](https://ci-apps.yunohost.org)
* [Tableau de bord du CI des apps](https://dash.yunohost.org/appci/branch/stable)
* [Intégration continue pour packagers](/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](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
* [Construction des paquets debian](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
* [Feuilles de route du projet](https://github.com/YunoHost/issues/milestones?direction=asc&sort=title&state=open)
* Construction des images
* [x86 ISO](https://github.com/YunoHost/cd_build)
* [Images Raspberry Pi](https://github.com/YunoHost/rpi-image)
* [Autres images pour cartes ARM](https://github.com/YunoHost/arm-images)
* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api)
* [Une discussion sur la portée des variables en bash](shell_variables_scope)

164
dev_fr.md
View file

@ -1,164 +0,0 @@
## 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 coeur 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}}<p>du HTML conditionnel ici !</p>{{/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` !

View file

@ -1,10 +0,0 @@
# Diagnose YunoHost functioning
To diagnose that all critical aspects of your server are properly configured,
you should run a diagnosis from the webadmin in the "Diagnosis" section. (This
feature was added in Yunohost 3.8).
TODO: elaborate on the fact that the diagnosis runs periodically, sends an email
to root which is forwarded to the very first user created, and that issues
should either be fixed or ignored (if they are understood/not relevant)
otherwise an email will be sent twice a day..

View file

@ -1,12 +0,0 @@
# Diagnostic du bon fonctionnement de YunoHost
Pour vérifier que tous les aspects critiques de votre serveur sont correctement
configurés, il est recommandé d'utiliser le système de diagnostic disponible
dans la webadmin de YunoHost. (Cette fonctionnalité a été ajoutée dans la version
3.8)
TODO: elaborer le fait que le diagnostique tourne périodiquement, qu'un email
est envoyé à root qui est normalement forwardé vers le premier utilisateur créé,
que 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...

View file

@ -1,38 +0,0 @@
#Acceder a tu servidor desde la red local
Después de haber instalado tu servidor, es probable que tu nombre de dominio no esté accesible desde la red local donde se encuentra el servidor. Esto es un problema que se llama el [hairpinning](https://en.wikipedia.org/wiki/Hairpinning).
Para resolver este problema, es preciso configurar el DNS de tu router o, por defecto, el o los archivos hosts de tu ordenadores clientes.
### Obtener la dirección IP local del servidor
A fin de configurar el DNS o el archivo hosts, tienes que conocer la dirección IP privada de tu servidor. Esta dirección sólo puede ser utilizada en la red local donde está el servidor, y no está vinculada con tu dirección pública utilizada en Internet.
Puedes descubrir la dirección privada de tu servidor de varias maneras :
- En la pantalla de conexión de Yunohost en el mismo servidor :
<img src="/images/ynh_login.png" width=600>
- Desde la interfaz de administración de tu servidor Yunohost :
en Herramientas > Estado del servidor > Red
<img src="/images/ynh_admin_etat_ip.png" width=900>
- O desde tu router o tu caja Internet, dependiendo de su modelo.
## 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.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, Mac OS), 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
```

View file

@ -1,73 +0,0 @@
# 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 Owncloud 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 tools maindomain --new-domain 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.

View file

@ -1,23 +0,0 @@
# Docker and YunoHost
<div class="alert alert-danger">
<b>
YunoHost doesnt support Docker officially since issues with versions 2.4+.
In question, YunoHost 2.4+ doesnt 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).
</b>
</div>
## Community images
However, community images exist and are available on Docker Hub:
* AMD64 (classic)
* https://hub.docker.com/r/domainelibre/yunohost3/ (YunoHost v3)
* I386 (old computers)
* https://hub.docker.com/r/domainelibre/yunohost3-i386/ (YunoHost v3)
* ARMV7 (Raspberry Pi 2/3 ...)
* https://hub.docker.com/r/domainelibre/yunohost3-arm/ (YunoHost v3)
* ARMV6 (Raspberry Pi 1)
* https://hub.docker.com/r/tuxalex/yunohost-armv6/ (old yunoHost version)

View file

@ -1,23 +0,0 @@
# Docker et YunoHost
<div class="alert alert-danger">
<b>
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é quils ne le
supporteraient pas nativement (et il y a d'autres problèmes liés au firewall et aux
services).
</b>
</div>
## Images communautaires
Cependant il existe des images communautaires disponibles sur Docker Hub :
* AMD64 (classique)
* https://hub.docker.com/r/domainelibre/yunohost3/ (YunoHost v3)
* I386 (anciens pc)
* https://hub.docker.com/r/domainelibre/yunohost3-i386/ (YunoHost v3)
* ARMV7 (Raspberry Pi 2/3 ...)
* https://hub.docker.com/r/domainelibre/yunohost3-arm/ (YunoHost v3)
* ARMV6 (Raspberry Pi 1)
* https://hub.docker.com/r/tuxalex/yunohost-armv6/ (ancienne version de YunoHost)

33
docs.md
View file

@ -1,33 +0,0 @@
#Documentation
<p class="lead">
YunoHost's documentation has 2 different sections:
</p>
<div class="row text-center">
<div class="col col-md-4 col-md-offset-1">
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Administrator guide</a>
<p><small class="text-muted">Including installation, server management and application management</small></p>
</div>
<div class="col col-md-4 col-md-offset-1">
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Contributor guide</a>
<p><small class="text-muted">Which contains everything you have to know about us and the way we work</small></p>
</div>
</div>
* 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)

View file

@ -1,31 +0,0 @@
#<div dir="auto">الدليل</div>
<p dir="rtl" class="lead">
دليل واي يونوهوست YunoHost يرتكز أساسًا على ثلاثة محاور :
</p>
<div class="row text-center">
<div dir="rtl" class="col col-md-4 col-md-offset-1">
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> دليل المدير</a>
<p><small class="text-muted">يتطرق إلى طريقة التنصيب و إدارة السيرفر و التطبيقات</small></p>
</div>
<div dir="rtl" class="col col-md-4 col-md-offset-1">
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> دليل المساهم</a>
<p><small class="text-muted">يحتوي على كافة المعلومات التي تخصنا و أسلوب عملنا و مساهمتنا</small></p>
</div>
</div>
* Project's life:
* [Frequently asked questions](/faq)
* [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)

View file

@ -1,31 +0,0 @@
#Documentation
<p class="lead">
Die YunoHost Dokumentation ist in 2 Bereiche aufgeteilt:
</p>
<div class="row text-center">
<div class="col col-md-4 col-md-offset-1">
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Handbuch für Administratoren</a>
<p><small class="text-muted">Befasst sich mit den Installationsschritten und der Verwaltung von Server und Apps.</small></p>
</div>
<div class="col col-md-4 col-md-offset-1">
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Handbuch für Mitwirkende</a>
<p><small class="text-muted">Alles, was du über uns und unsere Art zu arbeiten wissen musst.</small></p>
</div>
</div>
* 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)

View file

@ -1,33 +0,0 @@
#Documentation
<p class="lead">
La documentation de YunoHost sarticule autour de deux sections :
</p>
<div class="row text-center">
<div class="col col-md-4 col-md-offset-1">
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Guide de ladministrateur</a>
<p><small class="text-muted">Incluant linstallation, la gestion du serveur et des applications</small></p>
</div>
<div class="col col-md-4 col-md-offset-1">
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Guide du contributeur</a>
<p><small class="text-muted">Qui contient tout ce que vous devez savoir à propos de nous et de notre manière de travailler</small></p>
</div>
</div>
* 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)

View file

@ -1,31 +0,0 @@
#Documentazione
<p class="lead">
La documentazione di YunoHost ha 2 differenti sezioni:
</p>
<div class="row text-center">
<div class="col col-md-4 col-md-offset-1">
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Guida di amministrazione</a>
<p><small class="text-muted">Include l'installazione, la gestione del server e delle applicazioni</small></p>
</div>
<div class="col col-md-4 col-md-offset-1">
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Guida del contributore</a>
<p><small class="text-muted">Contiene tutto quello che devi sapere su di noi e su come lavoriamo</small></p>
</div>
</div>
* 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)

View file

@ -1,52 +0,0 @@
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)
```

View file

@ -1,51 +0,0 @@
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)
```

View file

@ -1,43 +0,0 @@
## Configurer un client mail
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 mail 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 mail (`domain.tld` fait référence à ce qui est après le @ dans votre adresse mail, 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`) |
### <img src="images/thunderbird.png" width=50> 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.)
<img src="/images/thunderbird_config_1.png" width=900>
<img src="/images/thunderbird_config_2.png" width=900>
* [Gérer les alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases)
### <img src="images/k9mail.png" width=50> Configurer K-9 Mail (sur Android)
Suivez les instructions suivantes. (Comme pour Thunderbird, il vous faudra peut-être accepter des certificats à un moment)
<a href="/images/k9mail_config_1.png"><img src="/images/k9mail_config_1.png" width=200/></a>
<a href="/images/k9mail_config_2.png"><img src="/images/k9mail_config_2.png" width=200/></a>
<a href="/images/k9mail_config_3.png"><img src="/images/k9mail_config_3.png" width=200/></a>
<a href="/images/k9mail_config_4.png"><img src="/images/k9mail_config_4.png" width=200/></a>
### <img src="images/dekko-app.png" width=50> 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 e-mail 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 !
<a href="/images/dekko_config_1.png"><img src="/images/dekko_config_1.png" width=200/></a>
<a href="/images/dekko_config_2.png"><img src="/images/dekko_config_2.png" width=200/></a>
<a href="/images/dekko_config_3.png"><img src="/images/dekko_config_3.png" width=200/></a>
<a href="/images/dekko_config_4.png"><img src="/images/dekko_config_4.png" width=200/></a>

View file

@ -1,50 +0,0 @@
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) <small>(attention : seuls 3 tests par domaine et par jour sont autorisés)</small> ;
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 ladresse 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 sassurer que ladresse IP de votre serveur nest pas dans ces listes et pour lenlever 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).

View file

@ -1,87 +0,0 @@
# É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, 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)
<div class="alert alert-success">
<span class="glyphicon glyphicon-chevron-right"></span> Vous pouvez désormais utiliser cette configuration pour vous connecter.
</div>
## 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)
<div class="alert alert-warning">
<span class="glyphicon glyphicon-cloud-download"></span> Assurez-vous de télécharger à la fois le fichier `.tar.gz` et le fichier `.json`
</div>
![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 Linux
Depuis n'importe quel 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 :
* <https://help.gnome.org/users/gnome-help/stable/nautilus-connect.html.en>
* <https://www.techrepublic.com/article/how-to-use-linux-file-manager-to-connect-to-an-sftp-server/>
### Sous Windows
* [WinSCP](https://winscp.net/) est aussi un bon candidat pour Windows
### Sous MacOS
* [Cyberduck](https://cyberduck.io/) logiciel libre pour MacOS

View file

@ -1,330 +0,0 @@
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
```
The webadmin will issue a warning if you set a permission that is superseeded by a wider permission.
![](./images/groups_alerte-permission.png)
Notes for apps packagers
------------------------
Installing an app creates the permission `app.main` with `all_users` allowed by default.
If you wish to make the application publicly available, instead of the old `unprotected_urls` mechanism, you should give access to the special 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"
```
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 any management of `skipped_`, `unprotected_` and `protected_uris` (and `_regex`) settings that are now considered obsolete and deprecated. (N.B.: you should **explicitly delete them in the upgrade script**). Instead, you should now rely on the new `ynh_permission_*` helpers instead. If you do feel like you still need to use them, please contact the core team to provide your feedback and we'll figure out something ;
For example, in the upgrade script if you used the `protected_uris` key before, you may use this code in the `DOWNWARD COMPATIBILITY` section:
```bash
protected_uris=$(ynh_app_setting_get --app=$app --key=protected_uris)
# Unused with the permission system
if [ ! -z "$protected_uris" ]; then
ynh_app_setting_delete --app=$app --key=protected_uris
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)
Here an example of how to migrate the code from legacy to new permission system: [example](https://github.com/YunoHost/example_ynh/pull/111/files)
#### Specific case: regex protection
If you still need to use regex to protect or unprotect urls, you can't use the new permission system (for now).
But you can create a fake permission and use hooks to handle if there is a change in this faked permission.
In the install script, create the fake permission (with no url):
`ynh_permission_create --permission="create poll" --allowed "visitors" "all_users"`
Then use the legacy protection:
```bash
# Make app public if necessary
if [ $is_public -eq 1 ]
then
if [ "$path_url" == "/" ]; then
# If the path is /, clear it to prevent any error with the regex.
path_url=""
fi
# Modify the domain to be used in a regex
domain_regex=$(echo "$domain" | sed 's@-@.@g')
ynh_app_setting_set --app=$app --key=unprotected_regex --value="$domain_regex$path_url/create_poll.php?.*$","$domain_regex$path_url/adminstuds.php?.*"
else
ynh_permission_update --permission="create poll" --remove="visitors"
fi
```
In this example, if the app is public the group `visitors` has access to the permission `create poll`, the group is removed from this permission otherwise.
Then create two files in the directory `hooks` at the root of the git repository: `post_app_addaccess` and `post_app_removeaccess`. In these hooks, you'll remove or readd the regex protection if the `visitors` group is added or removed from this permission:
`post_app_addaccess`:
```bash
#!/bin/bash
# Source app helpers
source /usr/share/yunohost/helpers
app=$1
added_users=$2
permission=$3
added_groups=$4
if [ "$app" == __APP__ ]; then
if [ "$permission" = "create poll" ]; then # The fake permission "create poll" is modifed.
if [ "$added_groups" = "visitors" ]; then # As is it a fake permission we can only grant/remove the "visitors" group.
domain=$(ynh_app_setting_get --app=$app --key=domain)
path_url=$(ynh_app_setting_get --app=$app --key=path)
if [ "$path_url" == "/" ]; then
# If the path is /, clear it to prevent any error with the regex.
path_url=""
fi
# Modify the domain to be used in a regex
domain_regex=$(echo "$domain" | sed 's@-@.@g')
ynh_app_setting_set --app=$app --key=unprotected_regex --value="$domain_regex$path_url/create_poll.php?.*$","$domain_regex$path_url/adminstuds.php?.*"
# Sync the is_public variable according to the permission
ynh_app_setting_set --app=$app --key=is_public --value=1
yunohost app ssowatconf
else
ynh_print_warn --message="This app doesn't support this authorisation, you can only add or remove visitors group."
fi
fi
fi
```
`post_app_removeaccess`
```bash
#!/bin/bash
# Source app helpers
source /usr/share/yunohost/helpers
app=$1
removed_users=$2
permission=$3
removed_groups=$4
if [ "$app" == __APP__ ]; then
if [ "$permission" = "create poll" ]; then # The fake permission "create poll" is modifed.
if [ "$removed_groups" = "visitors" ]; then # As is it a fake permission we can only grant/remove the "visitors" group.
# We remove the regex, no more protection is needed.
ynh_app_setting_delete --app=$app --key=unprotected_regex
# Sync the is_public variable according to the permission
ynh_app_setting_set --app=$app --key=is_public --value=0
yunohost app ssowatconf
else
ynh_print_warn --message="This app doesn't support this authorisation, you can only add or remove visitors group."
fi
fi
fi
```
Don't forget to replace `__APP__` during the install/upgrade script.
Here are some apps that use this specific case: [Lutim](https://github.com/YunoHost-Apps/lutim_ynh/pull/44/files) and [Opensondage](https://github.com/YunoHost-Apps/opensondage_ynh/pull/59/files)
If you have any question, please contact someone from the apps-group.

View file

@ -1,327 +0,0 @@
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
```
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)
Notes aux packageurs d'applications
------------------------
L'installation d'une application crée l'autorisation `app.main` avec `all_users` autorisée par défaut.
Si vous souhaitez rendre l'application accessible au public, au lieu de l'ancien mécanisme `unprotected_urls`, vous devez donner accès au groupe spécial `visitors` :
```shell
ynh_permission_update --permission "main" --add visitors
```
Si vous souhaitez créer une autorisation personnalisée pour votre application (par exemple pour restreindre l'accès à une interface d'administration), vous pouvez utiliser les helpers suivants :
```shell
ynh_permission_create --permission "admin" --url "/admin" --allowed "$admin_user"
```
Vous n'avez pas besoin de supprimer les autorisations ou de les sauvegarder / restaurer car elles sont gérées par le core de YunoHost.
### Migration hors de la gestion des autorisations héritées
Lors de la migration / correction d'une application utilisant toujours le système d'autorisations hérité, il faut comprendre que les accès doivent maintenant être gérés par des fonctionnalités du core, en dehors des scripts d'application !
Les scripts d'application devraient seulement :
- le cas échéant, pendant le script d'installation, initialiser l'autorisation principale de l'application en tant que public (`visitors`) ou privé (`all_users`) ou uniquement accessible à des groupes / utilisateurs spécifiques ;
- le cas échéant, créer et initialiser toute autre autorisation spécifique (par exemple, sur une interface d'administration) dans le script d'installation (et *sans doute* dans certaines migrations se produisant dans le script de mise à niveau).
Les scripts d'applications ne devraient absolument **PAS** altérer les accès aux applications déjà existantes (y compris les paramètres `unprotected` / `skipped_uris`), car cela réinitialiserait toutes les règles d'accès définies par l'administrateur !
Lors de la migration hors de l'autorisation héritée, vous devez :
- supprimer toute gestion du paramètre de type `$is_public` ou `$admin_user`, sauf pour toute question manifeste destinée à *initialiser* l'application avec des autorisations publiques / privées ou spécifiques ;
- supprimer toute gestion des paramètres `skipped_`, `unprotected_` et `protected_uris` (et `_regex`) qui sont désormais considérés comme obsolètes et dépréciés. (NB : vous devez **les supprimer explicitement dans le script upgrade**). Au lieu de cela, vous devriez désormais vous fier aux nouveaux helpers `ynh_permission_ *`. Si vous sentez que vous avez encore besoin de les utiliser, veuillez contacter l'équipe core pour pouvoir être assisté ;
Par exemple, dans le script *upgrade*, si vous avez utilisé la clé `protected_uris` auparavant, vous pouvez utiliser ce code dans la section `DOWNWARD COMPATIBILITY` :
```bash
protected_uris=$(ynh_app_setting_get --app=$app --key=protected_uris)
# Unused with the permission system
if [ ! -z "$protected_uris" ]; then
ynh_app_setting_delete --app=$app --key=protected_uris
fi
```
- Supprimez tout appel à `yunohost app addaccess` et aux actions similaires qui sont désormais obsolètes et dépréciés.
- Si votre application utilise LDAP et prend en charge le filtre, utilisez le filtre `(&(objectClass=posixAccount)(permission=cn=YOUR_APP.main,ou=permission,dc=yunohost,dc=org))'` pour autoriser les utilisateurs ayant cette permission. (On trouvera une documentation sur LDAP [ici](https://moulinette.readthedocs.io/en/latest/ldap.html))
Voici un exemple de migration de code vers le nouveau système d'autorisation : [exemple](https://github.com/YunoHost/example_ynh/pull/111/files)
#### Cas spécifique : protection regex
Si vous devez toujours utiliser regex pour protéger ou déprotéger les URL, vous ne pouvez pas utiliser le nouveau système d'autorisation (pour l'instant).
Mais vous pouvez créer une fausse autorisation et utiliser des crochets pour gérer s'il y a un changement dans cette fausse autorisation.
Dans le script d'installation, créez la fausse autorisation (sans URL) :
`ynh_permission_create --permission="create poll" --allowed "visitors" "all_users"`
Utilisez ensuite la protection héritée :
```bash
# Make app public if necessary
if [ $is_public -eq 1 ]
then
if [ "$path_url" == "/" ]; then
# If the path is /, clear it to prevent any error with the regex.
path_url=""
fi
# Modify the domain to be used in a regex
domain_regex=$(echo "$domain" | sed 's@-@.@g')
ynh_app_setting_set --app=$app --key=unprotected_regex --value="$domain_regex$path_url/create_poll.php?.*$","$domain_regex$path_url/adminstuds.php?.*"
else
ynh_permission_update --permission="create poll" --remove="visitors"
fi
```
Dans cet exemple, si l'application est publique, le groupe `visitors` a accès à l'autorisation `create poll`, sinon le groupe est supprimé de cette autorisation.
Créez ensuite deux fichiers dans le répertoire `hooks` à la racine du dépôt git de l'application : `post_app_addaccess` et `post_app_removeaccess`. Dans ces hooks, vous supprimerez ou rajouterez la protection contre les regex si le groupe `visitors` est ajouté ou supprimé de cette autorisation :
`post_app_addaccess`
```bash
#!/bin/bash
# Source app helpers
source /usr/share/yunohost/helpers
app=$1
added_users=$2
permission=$3
added_groups=$4
if [ "$app" == __APP__ ]; then
if [ "$permission" = "create poll" ]; then # The fake permission "create poll" is modifed.
if [ "$added_groups" = "visitors" ]; then # As is it a fake permission we can only grant/remove the "visitors" group.
domain=$(ynh_app_setting_get --app=$app --key=domain)
path_url=$(ynh_app_setting_get --app=$app --key=path)
if [ "$path_url" == "/" ]; then
# If the path is /, clear it to prevent any error with the regex.
path_url=""
fi
# Modify the domain to be used in a regex
domain_regex=$(echo "$domain" | sed 's@-@.@g')
ynh_app_setting_set --app=$app --key=unprotected_regex --value="$domain_regex$path_url/create_poll.php?.*$","$domain_regex$path_url/adminstuds.php?.*"
# Sync the is_public variable according to the permission
ynh_app_setting_set --app=$app --key=is_public --value=1
yunohost app ssowatconf
else
ynh_print_warn --message="This app doesn't support this authorisation, you can only add or remove visitors group."
fi
fi
fi
```
`post_app_removeaccess`
```bash
#!/bin/bash
# Source app helpers
source /usr/share/yunohost/helpers
app=$1
removed_users=$2
permission=$3
removed_groups=$4
if [ "$app" == __APP__ ]; then
if [ "$permission" = "create poll" ]; then # The fake permission "create poll" is modifed.
if [ "$removed_groups" = "visitors" ]; then # As is it a fake permission we can only grant/remove the "visitors" group.
# We remove the regex, no more protection is needed.
ynh_app_setting_delete --app=$app --key=unprotected_regex
# Sync the is_public variable according to the permission
ynh_app_setting_set --app=$app --key=is_public --value=0
yunohost app ssowatconf
else
ynh_print_warn --message="This app doesn't support this authorisation, you can only add or remove visitors group."
fi
fi
fi
```
N'oubliez pas de remplacer `__APP__` pendant le script *install* / *upgrade*.
Voici quelques applications qui utilisent ce cas spécifique : [Lutim](https://github.com/YunoHost-Apps/lutim_ynh/pull/44/files) et [OpenSondage](https://github.com/YunoHost-Apps/opensondage_ynh/pull/59/files)
Si vous avez des questions, veuillez contacter un des membres du groupe apps.

View file

@ -1,14 +0,0 @@
# Hardware
YunoHost can be installed on the following hardware :
- ARM boards (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc...) ;
- 'Old' desktop computers or laptops ;
- Remote servers, a.k.a Virtual Private Servers (VPS).
Corresponding installation guides can be found on [this page](/install).
### Minimum requirements
* 500 MHz CPU
* 512 MB RAM (recommended : 1 GB in order to run all the services and apps properly)
* 8 GB storage capacity (recommended : 32 GB to store mails and documents)

View file

@ -1,14 +0,0 @@
# Hardware
YunoHost kann auf folgender Hardware installiert werden:
- ARM Boards (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc...) ;
- 'Alte' Desktop Computer oder Laptops/Notebooks ;
- Remote servers, auch bekannt als Virtual Private Servers (VPS).
Entsprechende Installationsanleitungen finden Sie auf [dieser Seite](/install).
### Minimale Voraussetzungen
* 500 MHz CPU
* 512 MB RAM (empfohlen : 1 GB um alle Apps und Programme schnell ausführen zu können)
* 8 GB Speicher/HDD (empfohlen : 32 GB bei Nutzung als Mail oder Dokumentenserver)

View file

@ -1,14 +0,0 @@
# Hardware
YunoHost puede ser instalado en este hardware :
- Tarjetas ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc...) ;
- 'Viejos' ordenadores de escritorio ou portátiles ;
- Servidores remotos, también llamado Virtual Private Servers (VPS).
Los guías de instalación se encuentran en [esta página](/install).
### Configuración minimal
* Procesador 500MHz
* 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)

View file

@ -1,14 +0,0 @@
# Matériel
YunoHost peut être installé sur les types de matériel suivants :
- Cartes ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc...) ;
- 'Vieux' ordinateurs de bureau ou portables ;
- Serveurs distants, aussi appelé Virtual Private Servers (VPS).
Les guides d'installations peuvent être trouvés sur [cette page](/install).
### Configuration minimale
* Processeur 500MHz
* 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)

59
help.md
View file

@ -1,59 +0,0 @@
# Looking for help?
<h3>Connect to the support chatroom</h3>
<center>
<div class="alert alert-info" markdown="1" style="max-width:700px;">
<strong>ProTips™</strong>
<ul style="text-align:left;">
<li>Don't ask to ask, just ask !</li>
<li><em>Be patient</em>, it can take a few minutes before someone sees your messages.</li>
</ul>
</div>
<iframe src="https://kiwiirc.com/client/irc.freenode.org:+6697/?nick=ynhuser|?&theme=mini#yunohost" style="border:0; width:100%; height:450px;"></iframe>
</br>
</br>
<em>Note : this room is available via IRC (#yunohost on freenode - <a href="https://kiwiirc.com/client/irc.freenode.org:+6697/?nick=ynhuser|?&theme=mini#yunohost">using kiwiirc</a>), via XMPP <small>(support@conference.yunohost.org)</small>, or Matrix <small>(#freenode_#yunohost:matrix.org - <a target="_blank" href="https://riot.im/app/#/room/#yunohost:matrix.org">using Riot</a>)</small></em>
</center>
<h3>... or ask on the forum !</h3>
<center>
<button id="goForum" type="button" class="btn btn-success" style="font-weight:bold;">
<span class="glyphicon glyphicon-comment"></span> Go to the forum
</button>
</center>
<h3>You've found a bug ?</h3>
<center>
<br>
<em>Please report it on our bugtracker or contact the developers</em><br><br>
<button id="goBugtracker" type="button" class="btn btn-warning" style="font-weight:bold;">
<span class="glyphicon glyphicon-exclamation-sign"></span> Report a bug
</button>
<button id="goDevroom" type="button" class="btn btn-warning" style="font-weight:bold; margin-left:40px">
<span class="glyphicon glyphicon-comment"></span> Contact the developers
</button>
</br>
</br>
<em>Note : you can also connect to the devrooms, using your favorite XMPP client, to </br>
dev@conference.yunohost.org and apps@conference.yunohost.org</br>
or with a Matrix client to</br>
#freenode_#yunohost-dev:matrix.org</em>
</center>
<script>
document.getElementById("goForum").onclick = function() {
window.location.href = "https://forum.yunohost.org/latest";
}
document.getElementById("goBugtracker").onclick = function() {
window.location.href = "https://github.com/yunohost/issues/issues";
}
document.getElementById("goDevroom").onclick = function() {
window.location.href = "https://kiwiirc.com/client/irc.freenode.net/yunohost-dev";
}
</script>

View file

@ -1,61 +0,0 @@
# Besoin d'aide ?
<h3>Connectez-vous au salon de support</h3>
<center>
<div class="alert alert-info" markdown="1" style="max-width:750px;">
<strong>ProTips™</strong>
<ul style="text-align:left;">
<li>Pas besoin de demander si vous pouvez poser une question - posez-la directement !</li>
<li><em>Soyez patient</em>, cela peut prendre plusieurs minutes avant que quelqu'un remarque vos messages.</li>
</ul>
</div>
<iframe src="https://kiwiirc.com/client/irc.freenode.org:+6697/?nick=ynhuser|?&theme=mini#yunohost" style="border:0; width:100%; height:450px;"></iframe>
</br>
</br>
<em>Note : ce salon est accessible via IRC (#yunohost sur freenode en utilisant <a href="https://kiwiirc.com/client/irc.freenode.org:+6697/?nick=ynhuser|?&theme=mini#yunohost">Kiwiirc</a>), via XMPP <small>(support@conference.yunohost.org)</small>, ou Matrix <small>(#freenode_#yunohost:matrix.org - <a target="_blank" href="https://riot.im/app/#/room/#yunohost:matrix.org">en utilisant Riot</a>)</small>.</em>
</center>
<h3>... ou demandez sur le forum !</h3>
<center>
<button id="goForum" type="button" class="btn btn-success" style="font-weight:bold;">
<span class="glyphicon glyphicon-comment"></span> Aller sur le forum
</button>
</center>
<h3>Vous avez trouvé un bug ?</h3>
<center>
<br>
<em>Vous pouvez rapporter le bug sur le bugtracker ou contacter les développeurs</em><br><br>
<button id="goBugtracker" type="button" class="btn btn-warning" style="font-weight:bold;">
<span class="glyphicon glyphicon-exclamation-sign"></span> Rapporter un bug
</button>
<button id="goDevroom" type="button" class="btn btn-warning" style="font-weight:bold; margin-left:40px">
<span class="glyphicon glyphicon-comment"></span> Contacter les développeurs
</button>
</br>
</br>
<em>Note : vous pouvez aussi vous connecter aux salons de dev, via votre client XMPP favori, à</br>
dev@conference.yunohost.org et apps@conference.yunohost.org</br>
ou bien via votre client matrix préféré, à</br>
#freenode_#yunohost-dev:matrix.org</em>
</center>
<script>
document.getElementById("goForum").onclick = function() {
window.location.href = "https://forum.yunohost.org/latest";
}
document.getElementById("goBugtracker").onclick = function() {
window.location.href = "https://github.com/yunohost/issues/issues";
}
document.getElementById("goDevroom").onclick = function() {
window.location.href = "https://kiwiirc.com/client/irc.freenode.net/yunohost-dev";
}
document.getElementById("goForum").onclick = function() {
window.location.href = "https://forum.yunohost.org";
}
</script>

BIN
images/HedgeDoc-Logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

BIN
images/OnlyOffice_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
images/adminer_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
images/angryip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
images/bludit_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

0
images/dekko_config_1.png Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

0
images/dekko_config_2.png Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 97 KiB

0
images/dekko_config_3.png Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

0
images/dekko_config_4.png Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

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