Merge branch 'YunoHost:master' into master
7
.gitignore
vendored
|
@ -1,2 +1,5 @@
|
|||
*~
|
||||
*.sw[op]
|
||||
/*
|
||||
!/pages
|
||||
!/images
|
||||
!/themes
|
||||
/themes/learn4
|
||||
|
|
|
@ -2,5 +2,3 @@ language: bash
|
|||
|
||||
script:
|
||||
- bash tests/dead_links.sh
|
||||
- bash tests/unreferenced_pages.sh
|
||||
- bash tests/check_code_block_syntax.sh
|
||||
|
|
33
OVH_fr.md
|
@ -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 l’IP dynamique](/dns_dynamicip).
|
||||
|
||||
Cette partie est à suivre, que si votre IP est dynamique.
|
||||
|
||||
Pour savoir si votre fournisseur d’accès internet vous fournit une IP dynamique [voir ici](/isp).
|
||||
|
||||
Commencez par créer un identifiant DynHost.
|
||||
|
||||
Suivez [ce tutoriel](http://blog.developpez.com/brutus/p6316/ubuntu/configurer_dynhost_ovh_avec_ddclient) pour l’installation de ddclient.
|
||||
ddclient annonce à OVH le changement d’IP. OVH va alors changer votre IP.
|
||||
|
||||
Il faut ajouter dans le fichier de configuration :
|
||||
* votre identifiant et votre mot de passe DynHost
|
||||
* votre nom de domaine
|
||||
|
||||
Il existe un [guide d'utilisation DynHost fait par OVH](https://docs.ovh.com/fr/fr/web/domains/utilisation-dynhost/).
|
24
README.md
|
@ -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
|
@ -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/).
|
12
admin.md
|
@ -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>
|
||||
|
11
admin_es.md
|
@ -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>
|
12
admin_fr.md
|
@ -1,12 +0,0 @@
|
|||
# L’interface d’administration web
|
||||
|
||||
YunoHost est fourni avec une interface graphique d’administration. L’autre méthode est d’utiliser la [ligne de commande](/commandline).
|
||||
|
||||
### Accès
|
||||
|
||||
L’interface admin est accessible depuis votre instance YunoHost à l’adresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur)
|
||||
|
||||
<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>
|
||||
|
63
admindoc.md
|
@ -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)
|
|
@ -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)
|
|
@ -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 d’installation](/install)
|
||||
* [Sur un ordinateur "standard"](/install_iso)
|
||||
* [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps)
|
||||
* [Sur un Raspberry Pi](/install_on_raspberry)
|
||||
* [Sur une carte ARM](/install_on_arm_board)
|
||||
* [Sur Debian](/install_on_debian)
|
||||
* [Sur VirtualBox](/install_on_virtualbox)
|
||||
* Finaliser son installation
|
||||
* [Post-installation](/postinstall)
|
||||
* [Configurer les redirections de port](/isp_box_config)
|
||||
* [Configurer les enregistrements DNS](/dns_config)
|
||||
* [Installer un certificat SSL](/certificate)
|
||||
* [Diagnostic du bon fonctionnement du YunoHost](/diagnostic)
|
||||
* Apprendre à connaitre YunoHost
|
||||
* [Vue d'ensemble de YunoHost](/overview)
|
||||
* [Conseil généraux](/guidelines)
|
||||
* [L'interface d'administration web](/admin)
|
||||
* [SSH](/ssh) et [l'administration en ligne de commande](/commandline)
|
||||
* [Les utilisateurs et le SSO](/users)
|
||||
* [Les groupes et les permissions](/groups_and_permissions)
|
||||
* [Les applications](/apps_overview)
|
||||
* [Les domaines, la configuration DNS et les certificats](/domains)
|
||||
* [Les emails](/email)
|
||||
* [Formulaires pour enlever son adresse IP des listes noires](/blacklist_forms)
|
||||
* [XMPP](/XMPP)
|
||||
* [Les sauvegardes](/backup)
|
||||
* [Mettre à jour le système](/update) et [les applications](/app_update)
|
||||
* [La sécurité](/security)
|
||||
* Pour aller plus loin
|
||||
* Noms de domaine
|
||||
* [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me)
|
||||
* [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip)
|
||||
* [DNS et installation d’une application sur un sous-domaine](/dns_subdomains)
|
||||
* [Gérer les enregistrements DNS chez OVH](/OVH)
|
||||
* Notes à propos de certains fournisseurs d'accès à Internet
|
||||
* [SFR](/isp_sfr)
|
||||
* [Orange](/isp_orange)
|
||||
* [Free](/isp_free)
|
||||
* [Documentation spécifique à certaines apps](/appsdoc)
|
||||
* [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 d’administration](/change_admin_password)
|
||||
* [Récupérer l'accès à son serveur](/noaccess)
|
||||
* [Débannir une IP dans Fail2ban/IPtables](/fail2ban)
|
||||
* [Configurer l'IPv6](/ipv6)
|
|
@ -1,44 +0,0 @@
|
|||
# <img src="/images/bitwarden_logo.png" width="80px" alt="Bitwarden's logo"> Bitwarden
|
||||
|
||||
[](https://install-app.yunohost.org/?app=bitwarden) [](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)
|
|
@ -1,45 +0,0 @@
|
|||
# <img src="/images/bitwarden_logo.png" width="80px" alt="logo de Bitwarden"> Bitwarden
|
||||
|
||||
[](https://install-app.yunohost.org/?app=bitwarden) [](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)
|
|
@ -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``.
|
|
@ -1,20 +0,0 @@
|
|||
# <img src="/images/yunohost_package.png" height="80px" alt="Package"> Fallback
|
||||
|
||||
[](https://install-app.yunohost.org/?app=APPLICATION) [](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)
|
18
app_gogs.md
|
@ -1,18 +0,0 @@
|
|||
# <img src="/images/gogs_logo.svg" height="80px" alt="Gogs's logo"> Gogs
|
||||
|
||||
[](https://install-app.yunohost.org/?app=gogs) [](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)
|
|
@ -1,18 +0,0 @@
|
|||
# <img src="/images/gogs_logo.svg" height="80px" alt="logo de Gogs"> Gogs
|
||||
|
||||
[](https://install-app.yunohost.org/?app=gogs) [](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)
|
|
@ -1,3 +0,0 @@
|
|||
# <img src="/images/jappix_logo.png" height="80px" alt="Jappix logo"> Jappix
|
||||
|
||||
Jappix is a web client for [XMPP](/XMPP).
|
|
@ -1,3 +0,0 @@
|
|||
# <img src="/images/jappix_logo.png" height="80px" alt="Jappix logo"> Jappix
|
||||
|
||||
Jappix est un client web [XMPP](/XMPP).
|
|
@ -1,15 +0,0 @@
|
|||
# Mediawiki
|
||||
|
||||

|
||||
|
||||
MediaWiki is a free and open source software wiki package written in PHP, originally for use on Wikipedia.
|
||||
|
||||
## Overview
|
||||
|
||||

|
||||
|
||||
## 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
|
|
@ -1,15 +0,0 @@
|
|||
# Mediawiki
|
||||
|
||||

|
||||
|
||||
MediaWiki est un ensemble wiki à base de logiciels libres Open source, développé à l’origine pour Wikipédia.
|
||||
|
||||
## Aperçu
|
||||
|
||||

|
||||
|
||||
## 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
|
|
@ -1 +0,0 @@
|
|||
default.md
|
|
@ -1 +0,0 @@
|
|||
default.md
|
|
@ -1 +0,0 @@
|
|||
default.md
|
|
@ -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.
|
||||
|
||||
[](https://install-app.yunohost.org/?app=piwigo)
|
||||
|
||||

|
||||
|
||||
## 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/
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](app_pleroma_fr) for now.
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](app_sogo_fr) for now.
|
|
@ -1,8 +0,0 @@
|
|||
#  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)
|
|
@ -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.
|
|
@ -1,39 +0,0 @@
|
|||
#Mettre à jour ses applications
|
||||
|
||||
Une fois que vous avez installé des applications, il est nécessaire de les mettre à jour. Plusieurs méthodes existent et sont détaillées ci-dessous.
|
||||
|
||||
** Attention : ** il est recommandé de faire une sauvegarde de la base de données (par exemple via l’application [phpmyadmin](https://github.com/YunoHost-apps/phpmyadmin_ynh) ([installer](https://install-app.yunohost.org/?app=phpmyadmin))) ainsi que des fichiers avant une opération de mise à jour.
|
||||
|
||||
### Mise à jour par l’interface web
|
||||
Pour cela, il faut aller dans l’onglet "Mettre à jour le système".
|
||||
|
||||
Une fois la liste des paquets et des applications rafraîchie, il sera proposé de mettre à jour les applications et paquets qui peuvent l’être.
|
||||
|
||||
|
||||
### Mise à jour en ligne de commande
|
||||
Il faut d’abord se connecter sur le serveur en ssh, puis entrer la commande suivante (dans le cas d’une mise à jour WordPress) :
|
||||
```bash
|
||||
yunohost app upgrade wordpress
|
||||
```
|
||||
** Note : ** dans le cas où plusieurs applications du même type (ex : deux WordPress) sont installées sur le serveur, il est nécessaire de spécifier le nom d’instance (ex : wordpress ou wordpress__2).
|
||||
|
||||
#### Mise à jour d’une application non officielle
|
||||
Il faut pour cela indiquer le dépôt git qui contient la mise à jour.
|
||||
|
||||
Par exemple, pour mettre à jour LimeSurvey, entrer :
|
||||
```bash
|
||||
yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh
|
||||
```
|
||||
|
||||
** Note : ** faites attention aux applications/mises à jour non officielles que vous installez. Assurez-vous que ces mises à jour sont stables et ne constituent pas une étape de développement. Si une application ou une mise à jour n’est pas intégrée au dépôt officiel, il y a sûrement une raison.
|
||||
|
||||
** Attention : ** assurez-vous du contenu de cette mise à jour ; l’installation ou la mise à jour d’une application non officielle permet à cette dernière d’exécuter des scripts avec les privilèges les plus élevés. Si le script est malicieux, il pourrait nuire à votre vie privée en communiquant à des tiers toute donnée présente sur le serveur, ou bien les détruire irrémédiablement.
|
||||
|
||||
##### Options de ligne de commande
|
||||
|
||||
Lorsque vous mettez à jour des applications à partir de la ligne de commande, vous pouvez spécifier des options spécifiques pour modifier le comportement du script d'upgrade.
|
||||
Pour définir ces options, définissez la variable correspondante avant la commande d'upgrade: `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress`
|
||||
|
||||
Les options disponibles sont:
|
||||
- `NO_BACKUP_UPGRADE`: Ne pas effectuer le backup avant la mise à jour. Ce qui veut dire que la mise à jour se fera sans sauvegarde de sécurité.
|
||||
- `YNH_FORCE_UPGRADE`: Force la mise à jour de l'application et du package, même si l'application est déjà à jour.
|
|
@ -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.
|
|
@ -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
|
@ -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>
|
378
apps_fr.md
|
@ -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>
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](apps_framasoft_fr) for now.
|
|
@ -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)   |
|
||||
| Framabee | Searx | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/searx_ynh)   |
|
||||
| Framabin | PrivateBin | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/zerobin_ynh)   |
|
||||
| Framaboard | Kanboard | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/kanboard_ynh)   |
|
||||
| Framabookin | BicBucStriim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/bicbucstriim_ynh)   |
|
||||
| Framacalc | Ethercalc | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/ethercalc_ynh)   |
|
||||
| Framacarte | uMap | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/umap_ynh)   |
|
||||
| Framaclic | Matomo | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/matomo_ynh)   |
|
||||
| Framadate | OpenSondage | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/opensondage_ynh)   |
|
||||
| Framadrive | Nextcloud | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/nextcloud_ynh)   |
|
||||
| Framadrop | Lufi | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lufi_ynh)   |
|
||||
| Framaestro | Framaestro | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaestro_ynh)   |
|
||||
| Framaforms | Framaforms | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaforms_ynh)   |
|
||||
| Framagames | Framagames | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framagames_ynh)   |
|
||||
| Framagenda | (Agenda Nextcloud) | c.f. Nextcloud |
|
||||
| Framagit | GitLab | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gitlab_ynh)   |
|
||||
| | Gogs | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gogs_ynh)   |
|
||||
| Frama.link | Lstu | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lstu_ynh)   |
|
||||
| Framalistes | Mailman | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)   |
|
||||
| | Sympa | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/alexAubin/sympa_ynh)   |
|
||||
| Framanews | TinyTinyRSS | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/ttrss_ynh)   |
|
||||
| Framanotes | Turtl | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/turtl_ynh)   |
|
||||
| Framapad | Etherpad + mypads | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/etherpad_mypads_ynh)   |
|
||||
| Framapiaf | Mastodon | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mastodon_ynh)   |
|
||||
| Framapic | Lutim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lutim_ynh)   |
|
||||
| Framasites | Grav | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/grav_ynh)   |
|
||||
| Framaslides | Strut | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/strut_ynh)   |
|
||||
| Framasphère | Diaspora | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/aymhce/diaspora_ynh)   |
|
||||
| Framatalk | Jitsi Meet | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_ynh)   |
|
||||
| Framateam | Mattermost | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mattermost_ynh)   |
|
||||
| Framatrad | ? | Non packagé |
|
||||
| Framatube | Peertube | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/peertube_ynh)   |
|
||||
| Framavectoriel | SVG-Edit | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/svgedit_ynh)   |
|
||||
| Framavox | Loomio | Non packagé |
|
||||
| Framemo | Scrumblr | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/scrumblr_ynh)   |
|
||||
| Framindmap | Wisemapping | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wisemapping_ynh)   |
|
||||
| Framinetest | Minetest | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/minetest_ynh)   |
|
||||
| MyFrama | Shaarli | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/shaarli_ynh)   |
|
||||
|
||||
### Voir aussi
|
||||
|
||||
- [Liste complète des applications packagées](/apps)
|
||||
- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)
|
||||
|
|
@ -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).
|
|
@ -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).
|
||||
|
168
apps_wishlist.md
|
@ -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)
|
||||
- [ProtonMail’s 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
|
@ -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.
|
||||
|
||||

|
||||
|
||||
### 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'.
|
||||
|
||||

|
||||
|
||||
### 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
|
||||
```
|
171
backup_fr.md
|
@ -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).
|
||||
|
||||

|
||||
|
||||
#### 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".
|
||||
|
||||

|
||||
|
||||
#### 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
|
||||
```
|
|
@ -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>
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
# Installation graphique
|
||||
|
||||
Maintenant que vous possédez un support YunoHost, vous pouvez procéder à l’installation.
|
||||
|
||||
## <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, l’ouverture des ports réseau ne se fera pas automatiquement : votre serveur ne sera pas accessible depuis l’exté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 l’une des touches suivantes (dépendant de votre ordinateur) :
|
||||
```<Échap>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<Suppr>```
|
||||
|
||||
## <small>3.</small> Lancer l’installation 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 l’installateur 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>
|
||||
|
||||
* L’ordinateur devrait redémarrer automatiquement à la fin de l’installation.
|
||||
|
||||
## <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>
|
||||
|
|
@ -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/)
|
|
@ -1,48 +0,0 @@
|
|||
# Flasher l'ISO YunoHost
|
||||
|
||||
Maintenant que vous avez téléchargé l’image ISO de YunoHost, vous devez la mettre sur un support physique. Classiquement, il s'agit d'une **Clé USB** ou d'une **Carte SD**.
|
||||
|
||||
<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 d’exploitation.
|
||||
|
||||
* Sur Windows, utilisez [ImgBurn](http://www.imgburn.com/) pour écrire l’image 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/)
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](certificate_custom_fr) for now.
|
|
@ -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)**
|
|
@ -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.
|
|
@ -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.
|
|
@ -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
|
@ -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
|
@ -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
|
18
config/themes/yunohost-docs.yaml
Normal 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
|
|
@ -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> 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> 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> 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> 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> 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> 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> 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>
|
||||
|
|
@ -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> تحدثوا عن المشروع مِن حولكم
|
||||
</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> جَرّبُوا
|
||||
</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> ساعدوا المستخدمِين
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <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> أكتبوا الشفرة
|
||||
</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> ترجِموا
|
||||
</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> أكتبوا
|
||||
</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> ساهموا في التحزيم
|
||||
</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>
|
||||
|
|
@ -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> 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> 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 l’identifier, 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> Aidez les utilisateurs
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <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> 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> 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> É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> 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>
|
||||
|
|
@ -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)
|
|
@ -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
|
@ -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` !
|
||||
|
||||
|
|
@ -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..
|
|
@ -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...
|
|
@ -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
|
||||
```
|
|
@ -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.
|
23
docker.md
|
@ -1,23 +0,0 @@
|
|||
# Docker and YunoHost
|
||||
|
||||
<div class="alert alert-danger">
|
||||
<b>
|
||||
YunoHost doesn’t support Docker officially since issues with versions 2.4+.
|
||||
In question, YunoHost 2.4+ doesn’t work anymore on Docker
|
||||
because YunoHost requires systemd and Docker has chosen to not support it natively (and
|
||||
there are other problems link to the firewall and services).
|
||||
</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)
|
23
docker_fr.md
|
@ -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é qu’ils 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
|
@ -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)
|
31
docs_ar.md
|
@ -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)
|
31
docs_de.md
|
@ -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)
|
33
docs_fr.md
|
@ -1,33 +0,0 @@
|
|||
#Documentation
|
||||
|
||||
<p class="lead">
|
||||
La documentation de YunoHost s’articule 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 l’administrateur</a>
|
||||
<p><small class="text-muted">Incluant l’installation, 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)
|
31
docs_it.md
|
@ -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)
|
52
domains.md
|
@ -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)
|
||||
```
|
||||
|
|
@ -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)
|
||||
```
|
|
@ -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>
|
50
email_fr.md
|
@ -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 l’adresse IP de votre serveur a autrefois été utilisé pour envoyé du spam ou que ces services de mails considèrent votre serveur comme émetteur de spams.
|
||||
Pour s’assurer que l’adresse IP de votre serveur n’est pas dans ces listes et pour l’enlever dans le cas échéant suivez ce [lien](/blacklist_forms).
|
||||
|
||||
|
||||
Pour aller plus loin
|
||||
--------------------
|
||||
|
||||
- Il existe une page de documentation pour [migrer ses emails d'un fournisseur de messagerie vers une instance YunoHost](email_migration).
|
||||
- Pour approfondir votre compréhension du courriel et de ses protocoles, voici une [conférence éclairante](https://www.octopuce.fr/conference-lemail-vaste-sujet-par-benjamin-sonntag/)(en français).
|
|
@ -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.
|
||||
|
||||

|
||||
|
||||
2. Cliquez sur **Nouveau site** et donnez un nom au serveur que vous allez utiliser. Par exemple "Famille". Remplissez les paramètres comme sur la capture d'écran (en remplaçant l'adresse du serveur par la votre). Une fois terminé, cliquez sur **Connexion**. (N.B. : si vous souhaitez éditer les fichiers de l'application [custom webapp](https://github.com/YunoHost-Apps/my_webapp_ynh), il vous faudra utiliser un autre utilisateur que admin. Se référer à la documentation de custom webapp.)
|
||||
|
||||

|
||||
|
||||
3. Vous recevrez un avertissement. *Vous pouvez l'ignorer si il s'agit de la première connexion*.
|
||||
|
||||

|
||||
|
||||
4. Filezilla vous demande maintenant le mot de passe `admin` pour vous connecter à votre serveur
|
||||
|
||||

|
||||
|
||||
5. Une fois cette configuration créée, elle sera réutilisable les fois suivanteS.
|
||||
|
||||

|
||||
|
||||
<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.
|
||||
|
||||

|
||||
|
||||
2. Dans le panneau de droite, vous pouvez aller dans `/home/yunohost.backup/archives/` pour trouver les archives de [sauvegardes](/backup).
|
||||
|
||||

|
||||
|
||||
<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>
|
||||
|
||||

|
||||
|
||||
----
|
||||
|
||||
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
|
|
@ -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:
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
To remove a user, click on the cross next to their username, in the group panel.
|
||||
|
||||

|
||||
|
||||
In CLI, use the following command to add `charlie` and `delphine`to the `yolo_crew` group:
|
||||
|
||||
```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.
|
||||
|
||||

|
||||
|
||||
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`.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
|
@ -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 :
|
||||
|
||||

|
||||
|
||||
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*.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
Pour supprimer un utilisateur, cliquez sur la croix à côté de son nom d'utilisateur, dans le panneau du groupe.
|
||||
|
||||

|
||||
|
||||
En CLI, utilisez la commande suivante pour ajouter `charlie` et `delphine` au groupe `yolo_crew` :
|
||||
|
||||
```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.
|
||||
|
||||

|
||||
|
||||
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`.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
|
||||
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.
|
14
hardware.md
|
@ -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)
|
|
@ -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)
|
|
@ -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)
|
|
@ -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
|
@ -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>
|
||||
|
61
help_fr.md
|
@ -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
After Width: | Height: | Size: 257 KiB |
BIN
images/OnlyOffice_logo.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
images/adminer_logo.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
images/administrate/specific_use_cases/virtualbox-snapshot.jpg
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
images/administrate/specific_use_cases/virtualbox-snapshot2.webp
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/administrate/specific_use_cases/virtualbox-snapshot3.webp
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/administrate/specific_use_cases/virtualbox-snapshot4.webp
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
images/angryip.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
images/bludit_logo.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 21 KiB |
BIN
images/create-first-user.png
Normal file
After Width: | Height: | Size: 47 KiB |
0
images/dekko_config_1.png
Executable file → Normal file
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
0
images/dekko_config_2.png
Executable file → Normal file
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
0
images/dekko_config_3.png
Executable file → Normal file
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 155 KiB |
0
images/dekko_config_4.png
Executable file → Normal file
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 147 KiB |
BIN
images/df_h.png
Before Width: | Height: | Size: 31 KiB |