mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
commit
e42707209d
286 changed files with 9780 additions and 3664 deletions
6
.travis.yml
Normal file
6
.travis.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
language: bash
|
||||
|
||||
script:
|
||||
- bash tests/dead_links.sh
|
||||
- bash tests/unreferenced_pages.sh
|
||||
- bash tests/check_code_block_syntax.sh
|
|
@ -10,16 +10,16 @@ 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_fr).
|
||||
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_fr).
|
||||
[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_fr).
|
||||
Pour savoir si votre fournisseur d’accès internet vous fournit une IP dynamique [voir ici](/isp).
|
||||
|
||||
Commencez par créer un identifiant DynHost.
|
||||
|
||||
|
|
|
@ -3,4 +3,8 @@
|
|||
* [Web Site](https://yunohost.org)
|
||||
* Based on [Simone](https://github.com/YunoHost/Simone)
|
||||
|
||||
Please report [issues on YunoHost bugtracker](https://github.com/YunoHost/issues/issues).
|
||||
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).
|
||||
|
|
59
XMPP.md
59
XMPP.md
|
@ -1,53 +1,60 @@
|
|||
# Chat, VoIP and social network with <img src="/images/XMPP_logo.png" width=100>
|
||||
|
||||
YunoHost comes installed with an instant messaging server Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol).
|
||||
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).
|
||||
|
||||
XMPP is an open and extensible protocol which allows to create chatrooms, to share status and data, to give calls in VoIP and videoconferences.
|
||||
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.
|
||||
|
||||
All applications based on XMPP are compatible with each other : when using an XMPP client, you can interact with anybody who has an XMPP/Jabber account. This protocol is already used by millions of people around the world.
|
||||
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/Jabber account
|
||||
## XMPP account
|
||||
|
||||
An XMPP/Jabber account is based on an identifier with the structure `user@domain.tld`, and a password.
|
||||
To use an XMPP account you need a username, which takes the format: `user@domain.tld`, and a password.
|
||||
|
||||
In YunoHost, this identifier simply corresponds to the main email address of a user, with his regular 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 XMPP
|
||||
## Connecting to your YunoHost XMPP account
|
||||
|
||||
You can connect to your YunoHost XMPP account in different ways.
|
||||
|
||||
### Web clients
|
||||
|
||||
There are several web client built with social network features :
|
||||
- [Movim](https://pod.movim.eu)
|
||||
- [Libervia/Salut à Toi](http://salut-a-toi.org/).
|
||||
|
||||
You can also use a desktop client such as :
|
||||
- [Pidgin](http://pidgin.im/) (multiplatform),
|
||||
|
||||
### Desktop clients
|
||||
|
||||
- [Pidgin](http://pidgin.im/) (multiplatform),
|
||||
- [Gajim](http://gajim.org/) (Linux, Windows),
|
||||
- [Dino](https://dino.im) (Linux),
|
||||
- [Thunderbird](https://www.thundebird.net/) (multiplatform),
|
||||
- [Jitsi](http://jitsi.org/) (multiplatform)
|
||||
- [Thunderbird](https://www.thundebird.net/) (multiplatform),
|
||||
- [Jitsi](http://jitsi.org/) (multiplatform)
|
||||
- [Adium](https://adium.im/) (Mac OS).
|
||||
|
||||
... or a mobile client
|
||||
* [Xabber](http://xabber.com) (Android)
|
||||
* [Conversations](https://conversations.im/) (Android)
|
||||
* [Movim under Android](https://movim.eu)
|
||||
* [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
|
||||
### Mobile clients
|
||||
|
||||
- [Xabber](http://xabber.com) (Android)
|
||||
- [Conversations](https://conversations.im/) (Android)
|
||||
- [Movim under Android](https://movim.eu)
|
||||
- [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
|
||||
- [Kaidan](https://github.com/KaidanIM/Kaidan) (Ubuntu Touch / Plasma Mobile)
|
||||
|
||||
Here is an exhaustive list of XMPP clients : https://en.wikipedia.org/wiki/Comparison_of_XMPP_clients
|
||||
|
||||
### Encrypt conversations with OMEMO
|
||||
## Encrypt conversations with OMEMO
|
||||
|
||||
XMPP chats can be encrypted with the help of [OMEMO](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
|
||||
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
|
||||
## Chatrooms
|
||||
|
||||
To create a chatroom (multi-user chat) on your YunoHost server, use the identifier `chatroomname@muc.yourdomain.tld`.
|
||||
|
||||
For this to workm you need to [add the corresponding `muc.` DNS record](dns_config_fr) in the DNS configuration.
|
||||
For this to work you need to [add the corresponding `muc.` DNS record](/dns_config) in the DNS configuration.
|
||||
|
||||
### VoIP and visioconferences
|
||||
## 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/).
|
||||
|
|
50
XMPP_es.md
Normal file
50
XMPP_es.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
#Chat, VoIP y red local con <img src="/images/XMPP_logo.png" width=100>
|
||||
|
||||
Yunohost está instalado con un servidor de mensajería instantánea Metronome que implementa el [protocolo XMPP](https://es.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol).
|
||||
|
||||
XMPP es un protocolo abierto y extensible que también permite crear salones de discusión, compartir status y datos, echar llamadas en VoIP y hacer videoconferencias.
|
||||
|
||||
Todas las aplicaciones basadas en XMPP son compatibles entre ellas : cuando utilizas un cliente XMPP puedes discutir con cualquier persona que tenga una cuenta XMPP/Jabber. Este protocolo ya es utilizado por millones de personas en el mundo.
|
||||
|
||||
### Cuenta XMPP/Jabber
|
||||
|
||||
Una cuenta XMPP/Jabber está basada en un ID bajo la forma `usuario@dominio.tld`, así como una contraseña. La contraseña es la de la cuenta del usuario de Yunohost.
|
||||
|
||||
### Conectarse a XMPP
|
||||
|
||||
Existen varios clientes web de tipo red social, como :
|
||||
- [Movim](https://pod.movim.eu)
|
||||
- [Libervia/Salut à Toi](http://salut-a-toi.org/).
|
||||
|
||||
También puedes utilizar un cliente Desktop como :
|
||||
- [Pidgin](http://pidgin.im/) (multiplataformas),
|
||||
- [Gajim](http://gajim.org/index.fr.html) (Linux, Windows),
|
||||
- [Dino](https://dino.im) (Linux),
|
||||
- [Thunderbird](https://www.mozilla.org/fr/thunderbird/) (multiplataformas),
|
||||
- [Jitsi](http://jitsi.org/) (multiplataformas)
|
||||
- [Adium](https://adium.im/) (Mac OS).
|
||||
|
||||
... o un cliente smartphone :
|
||||
* [Xabber](http://xabber.com) (Android)
|
||||
* [Conversations](https://conversations.im/) (Android)
|
||||
* [Movim sous Android](https://movim.eu)
|
||||
* [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
|
||||
|
||||
Aquí tienes una lista más exhaustiva de clientes XMPP (fr) : https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP
|
||||
|
||||
### Cifrar tu conversaciones con OMEMO :
|
||||
|
||||
Es posible cifrar tu conversaciones XMPP con la ayuda de [OMEMO](https://xmpp.org/extensions/xep-0384.html), por ejemplo utilizando Gajim :
|
||||
* Instalar `gajim` y el plugin `gajim-omemo`
|
||||
* Activar el plugin en `Tools > Plugins`
|
||||
* Activar el cifrado en una conversación con un contacto que también tiene OMEMO activado.
|
||||
|
||||
### Salón de discusión
|
||||
|
||||
Para crear un salón de discusión (Multi-user chat) en tu servidor Yunohost, utiliza el ID nombredelsalon@muc.dominio.tld (donde dominio.tld es el dominio principal de tu servidor).
|
||||
|
||||
Si utilizas un nombre de dominio personal, es necesario [añadir una redirección de tipo CNAME para el subdominio `muc.`](/dns_config) en tu servidor DNS.
|
||||
|
||||
### VoIP y videoconferencias
|
||||
|
||||
Un buen medio de llamar a un contacto XMPP en VoIP o en llamada video, es utilizar el cliente [Jitsi](http://jitsi.org/).
|
50
XMPP_fr.md
50
XMPP_fr.md
|
@ -1,53 +1,59 @@
|
|||
#Chat, VoIP et réseau social avec <img src="/images/XMPP_logo.png" width=100>
|
||||
|
||||
Yunohost est installé avec un serveur de messagerie instantanée Metronome qui implémente le [protocole XMPP](https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol).
|
||||
Yunohost est installé par défaut avec un serveur de messagerie instantanée Metronome qui implémente le [protocole XMPP](https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (anciennement connu sous le nom Jabber).
|
||||
|
||||
XMPP est un protocole ouvert et extensible qui permet également de créer des salons de discussions, de partager des statuts et des données, de passer des appels en VoIP et de faire de la visioconférence.
|
||||
Ce protocole est déjà utilisé par des millions de personnes dans le monde - c'est un protocole ouvert. Toutes les applications basées sur XMPP sont compatibles entre elles : lorsque vous utilisez un client XMPP, vous pouvez interagir avec quiconque possède un compte XMPP.
|
||||
|
||||
Toutes les applications basées sur XMPP sont compatibles entre-elles : lorsque vous utilisez un client XMPP vous pouvez discuter avec n’importe quel possesseur d’un compte XMPP/Jabber. Ce protocole est déjà utilisé par des millions de personnes dans le monde.
|
||||
XMPP est un protocole extensible - cela signifie que les utilisateurs peuvent configurer des "extensions" pour les salons de discussions, partager des messages et des fichiers, et passer des appels voix et vidéo en utilisant XMPP.
|
||||
|
||||
### Compte XMPP/Jabber
|
||||
## Compte XMPP
|
||||
|
||||
Un compte XMPP/Jabber est basé sur un identifiant sous la forme `utilisateur@domaine.tld`, ainsi qu’un mot de passe.
|
||||
Pour utiliser XMPP, il est nécessaire de disposer d'un compte dont l'identifiant prends la forme `utilisateur@domaine.tld`, ainsi qu’un mot de passe.
|
||||
|
||||
Sous Yunohost, cet identifiant correspond simplement à l’adresse courriel principale d’un utilisateur. Le mot de passe est celui du compte de l’utilisateur.
|
||||
Sous Yunohost, un compte XMPP est créé automatiquement pour chaque utilisateur. Les identifiants XMPP sont simplement l’adresse courriel principale de l'utilisateur ainsi que son mot de passe.
|
||||
|
||||
### Se connecter à XMPP
|
||||
## Se connecter à son compte XMPP YunoHost
|
||||
|
||||
Il existe différents types de clients pour se connecter à XMPP.
|
||||
|
||||
### Clients web
|
||||
|
||||
Il existe des clients web orientés réseau social, comme :
|
||||
- [Movim](https://pod.movim.eu)
|
||||
- [Libervia/Salut à Toi](http://salut-a-toi.org/).
|
||||
|
||||
Vous pouvez également utiliser un client desktop comme
|
||||
- [Pidgin](http://pidgin.im/) (multiplateforme),
|
||||
### Clients de bureau
|
||||
|
||||
- [Pidgin](http://pidgin.im/) (multiplateforme),
|
||||
- [Gajim](http://gajim.org/index.fr.html) (Linux, Windows),
|
||||
- [Dino](https://dino.im) (Linux),
|
||||
- [Thunderbird](https://www.mozilla.org/fr/thunderbird/) (multiplateforme),
|
||||
- [Jitsi](http://jitsi.org/) (multiplateforme)
|
||||
- [Thunderbird](https://www.mozilla.org/fr/thunderbird/) (multiplateforme),
|
||||
- [Jitsi](http://jitsi.org/) (multiplateforme)
|
||||
- [Adium](https://adium.im/) (Mac OS).
|
||||
|
||||
... ou un client smartphone
|
||||
### Clients sur mobile
|
||||
|
||||
* [Xabber](http://xabber.com) (Android)
|
||||
* [Conversations](https://conversations.im/) (Android)
|
||||
* [Movim sous Android](https://movim.eu)
|
||||
* [Monal](https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500?mt=8) (iOS)
|
||||
- [Kaidan](https://github.com/KaidanIM/Kaidan) (Ubuntu Touch / Plasma Mobile)
|
||||
|
||||
Voici une liste plus exhaustive des clients XMPP : https://fr.wikipedia.org/wiki/Liste_de_clients_XMPP
|
||||
|
||||
### Chiffrer ses conversations avec OMEMO
|
||||
## Chiffrer ses conversations avec OMEMO
|
||||
|
||||
Il est possible de chiffrer ses conversations XMPP à l’aide de [OMEMO](https://xmpp.org/extensions/xep-0384.html), notamment en utilisant Gajim :
|
||||
* Installer `gajim` et le plugin `gajim-omemo`
|
||||
* Activez le plugins dans `Outils > Plugins`
|
||||
* L'activer
|
||||
* Activez le chiffrement dans une conversation avec un contact disposant de OMEMO.
|
||||
Il est possible de rendre les conversations plus sécurisées et privées en les chiffrants à l'aide de [OMEMO](https://xmpp.org/extensions/xep-0384.html), notamment en utilisant Gajim :
|
||||
- Installer `gajim` et le plugin `gajim-omemo`
|
||||
- Activez le plugins dans `Outils > Plugins`
|
||||
- L'activer
|
||||
- Activez le chiffrement dans une conversation avec un contact disposant de OMEMO.
|
||||
|
||||
### Salon de discussion
|
||||
## Salon de discussion
|
||||
|
||||
Pour créer un salon de discussion (Multi-user chat) sur votre serveur Yunohost utilisez l’identifiant nomsalon@muc.domaine.tld (où domaine.tld est le domaine principal de votre serveur).
|
||||
|
||||
Si vous utilisez un nom de domaine personnel, il est nécessaire d’[ajouter une redirection de type CNAME pour le sous domaine `muc.`](dns_config_fr) au niveau de votre serveur DNS.
|
||||
Si vous utilisez un nom de domaine personnel, il est nécessaire d’[ajouter une redirection de type CNAME pour le sous domaine `muc.`](/dns_config) au niveau de votre serveur DNS.
|
||||
|
||||
### VoIP et visioconférence
|
||||
## VoIP et visioconférence
|
||||
|
||||
Un moyen pratique d’appeler un contact XMPP, en VoIP ou en appel vidéo, est d’utiliser le client [Jitsi](http://jitsi.org/).
|
||||
|
|
2
admin.md
2
admin.md
|
@ -7,7 +7,7 @@ Yunohost has an administrator web interface. The other way to administrate your
|
|||
You can access your administrator web interface at this address: https://example.org/yunohost/admin (replace 'example.org' with your own domain name)
|
||||
|
||||
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||
<img src="/images/manage_en.png" style="max-width:100%;">
|
||||
<img src="/images/webadmin.png" style="max-width:100%;">
|
||||
</div>
|
||||
|
||||
|
||||
|
|
37
admin_es.md
Normal file
37
admin_es.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
# 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>
|
||||
|
||||
|
||||
### Reinicia la contraseña del administrador
|
||||
|
||||
Para reiniciar la contraseña de administración de Yunohost (con el usuario root) :
|
||||
|
||||
```bash
|
||||
$ yunohost-reset-ldap-password
|
||||
```
|
||||
|
||||
Una contraseña provisional será creada, podrás utilizarla para luego definir una nueva contraseña.
|
||||
|
||||
|
||||
### Cómo mover la carpeta de una aplicación
|
||||
|
||||
Para cambiar la carpeta donde está una aplicación, sólo algunos comandos son necesarios : desplazar el contenido, crear un vínculo simbólico y definir los derechos de acceso.
|
||||
|
||||
Ejemplo con WordPress :
|
||||
```bash
|
||||
# Desplazamiento del wordpress hacia otro soporte
|
||||
$ sudo mv /var/www/wordpress /mon/dossier/cible
|
||||
# Creación del vínculo simbólico
|
||||
$ sudo ln -s /media/disqueexterne/wordpress /var/www/wordpress
|
||||
# El directorio debe pertenecer a www-data
|
||||
sudo chown -R www-data:www-data /media/externalharddrive/wordpress
|
||||
```
|
|
@ -1,13 +1,13 @@
|
|||
# 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_fr).
|
||||
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/manage.png" style="max-width:100%;">
|
||||
<img src="/images/webadmin_fr.png" style="max-width:100%;">
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -29,17 +29,22 @@
|
|||
* [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
|
||||
* [Specific apps documentations](/appsdoc)
|
||||
* [Noho.st / nohost.me / ynh.fr domain names](/dns_nohost_me)
|
||||
* [Exchange files with your server using a graphical interface](/filezilla)
|
||||
* [Customize the appearance of the YunoHost portal](/theming)
|
||||
* [Adding an external storage](/external_storage)
|
||||
* [Migrating emails to YunoHost](/email_migration)
|
||||
* [Hide services with Tor](/torhiddenservice)
|
||||
* [A discussion about the advantages of using a VPN](/vpn_advantage)
|
||||
* [(old) Jessie->Stretch migration procedure](jessie_stretch_migration)
|
||||
* [Troubleshooting guide](/troubleshooting_guide)
|
||||
* [Unlock IP in iptables](/fail2ban)
|
||||
* [Changing the administration password](/change_admin_password)
|
||||
* [Recover access to your server](/noaccess)
|
||||
* [Unban IPs in iptables/fail2ban](/fail2ban)
|
||||
|
|
45
admindoc_de.md
Normal file
45
admindoc_de.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Administrator-Dokumentation
|
||||
|
||||
* Self-Hosting entdecken
|
||||
* [Was ist Self-Hosting](/selfhosting)
|
||||
* [Was ist YunoHost](/whatsyunohost)
|
||||
* [Probiere YunoHost aus](/try)
|
||||
* [Wie du selber hostest](howtohostyourself)
|
||||
* [Wähle die Hardware](/hardware)
|
||||
* [Über die Freundlichkeit von Internet-Service-Providern](/isp)
|
||||
* [YunoHost installieren](/install)
|
||||
* [Auf einem normalen Computer](/install_iso)
|
||||
* [Auf einem eigenen oder virtuellen Server](/install_on_vps)
|
||||
* [Auf einem Raspberry Pi](/install_on_raspberry)
|
||||
* [Auf einem ARM-Board](/install_on_arm_board)
|
||||
* [Auf Debian](/install_on_debian)
|
||||
* [Auf VirtualBox](/install_on_virtualbox)
|
||||
* Setup abschließen
|
||||
* [Nach der Installation](/postinstall)
|
||||
* [Port-Forwarding konfigurieren](/isp_box_config)
|
||||
* [DNS-Einträge konfigurieren](/dns_config)
|
||||
* [SSL-Zertifikate installieren](/certificate)
|
||||
* [Diagnostiziere deine Installation](/diagnostic)
|
||||
* YunoHost kennenlernen
|
||||
* [Übersicht über YunoHost](/overview)
|
||||
* [Allgemeine Hinweise und Hilfestellungen](/guidelines)
|
||||
* [Web-Administrations-Interface](/admin)
|
||||
* [SSH](/ssh) and [command-line administration](/commandline)
|
||||
* [Benutzer und SSO (Single-Sign-On)](/users)
|
||||
* [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](/troubleshooting_guide)
|
||||
* [Entsperren von IPs in fail2ban](/fail2ban)
|
||||
* [Administrator-Passwort ändern](/change_admin_password)
|
|
@ -1,56 +1,61 @@
|
|||
# Documentation pour les administrateurs YunoHost
|
||||
|
||||
* Découvrir l'auto-hébergement
|
||||
* [Qu'est-ce que l'auto-hébergement](/selfhosting_fr)
|
||||
* [Qu'est-ce que YunoHost](/whatsyunohost_fr)
|
||||
* [Essayer YunoHost](/try_fr)
|
||||
* [Choisir son mode d'hébergement](howtohostyourself_fr)
|
||||
* [Matériel compatible](/hardware_fr)
|
||||
* [À propos des fournisseurs d'accès internet](/isp_fr)
|
||||
* [Guide d’installation](/install_fr)
|
||||
* [Sur un ordinateur "standard"](/install_iso_fr)
|
||||
* [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps_fr)
|
||||
* [Sur un Raspberry Pi](/install_on_raspberry_fr)
|
||||
* [Sur une carte ARM](/install_on_arm_board_fr)
|
||||
* [Sur Debian](/install_on_debian_fr)
|
||||
* [Sur VirtualBox](/install_on_virtualbox_fr)
|
||||
* [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_fr)
|
||||
* [Configurer les redirections de port](/isp_box_config_fr)
|
||||
* [Configurer les enregistrements DNS](/dns_config_fr)
|
||||
* [Installer un certificat SSL](/certificate_fr)
|
||||
* [Diagnostic du bon fonctionnement du YunoHost](/diagnostic_fr)
|
||||
* [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_fr)
|
||||
* [Conseil généraux](/guidelines_fr)
|
||||
* [L'interface d'administration web](/admin_fr)
|
||||
* [SSH](/ssh_fr) et [l'administration en ligne de commande](/commandline_fr)
|
||||
* [Les utilisateurs et le SSO](/users_fr)
|
||||
* [Les applications](/apps_overview_fr)
|
||||
* [Les domaines, la configuration DNS et les certificats](/domains_fr)
|
||||
* [Les emails](/email_fr)
|
||||
* [XMPP](/XMPP_fr)
|
||||
* [Les sauvegardes](/backup_fr)
|
||||
* [Mettre à jour le système](/update_fr) et [les applications](/app_update_fr)
|
||||
* [La sécurité](/security_fr)
|
||||
* [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 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_fr)
|
||||
* [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip_fr)
|
||||
* [DNS et installation d’une application sur un sous-domaine](/dns_subdomains_fr)
|
||||
* [Utiliser le résolveur DNS local](/dns_resolver_fr)
|
||||
* [Gérer les enregistrements DNS chez OVH](/OVH_fr)
|
||||
* [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)
|
||||
* [Utiliser le résolveur DNS local](/dns_resolver)
|
||||
* [Gérer les enregistrements DNS chez OVH](/OVH)
|
||||
* Notes à propos de certains fournisseurs d'accès à Internet
|
||||
* [SFR](/isp_sfr_fr)
|
||||
* [Orange](/isp_orange_fr)
|
||||
* [Free](/isp_free_fr)
|
||||
* [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_fr)
|
||||
* [Ajouter un stockage externe](/external_storage_fr)
|
||||
* [Migrer ses emails vers YunoHost](/email_migration_fr)
|
||||
* [YunoHost avec un service caché Tor](/torhiddenservice_fr)
|
||||
* [Utilisation de certificats autres que Let's Encrypt](/certificate_custom_fr)
|
||||
* [Guide de dépannage](/troubleshooting_guide_fr)
|
||||
* [Débloquer une IP dans Fail2ban](/fail2ban_fr)
|
||||
* [Changer le mot de passe d’administration](/change_admin_password_fr)
|
||||
* [Formulaires pour enlever son IP des listes noires](/blacklist_forms_fr)
|
||||
* [Modifier l'apparence du portail utilisateur](/theming)
|
||||
* [Ajouter un stockage externe](/external_storage)
|
||||
* [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)
|
||||
* [Guide de dépannage](/troubleshooting_guide)
|
||||
* [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)
|
||||
|
|
11
app_blogotext.md
Normal file
11
app_blogotext.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
#BlogoText
|
||||
|
||||
This is BlogoText, the lightweight SQLite Blog-Engine.
|
||||
Features
|
||||
|
||||
* Blog with comments and RSS feeds
|
||||
* Links sharing
|
||||
* RSS Reader
|
||||
* Images/Files uploading and sharing
|
||||
* JSON/ZIP/HTML import-export; WordPress import
|
||||
* Support Addons
|
11
app_blogotext_fr.md
Normal file
11
app_blogotext_fr.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
#BlogoText
|
||||
|
||||
Ceci est BlogoText, un moteur de blog léger.
|
||||
Caractéristiques
|
||||
|
||||
* Blog avec commentaires et flux RSS
|
||||
* Partage de liens
|
||||
* Lecteur RSS
|
||||
* Téléversement et partage d'images/fichiers
|
||||
* import-export au format JSON/ZIP/HTML; import WordPress
|
||||
* Support Addons
|
|
@ -1,5 +1,5 @@
|
|||
# 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_en), [Sub-domain install of an app](/dns_subdomains_en), [DNS settings](/dns_config_en) and [noho.st / nohost.me / ynh.fr domains](/dns_nohost_me)).
|
||||
**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
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Installer Collabora avec Nextcloud via Docker
|
||||
|
||||
**Note :** la marche à suivre detaillée est réalisée ici à partir d’une instance Yunohost sur Debian 8 (celle-ci n'a pas été testée suite à la migration vers la version 3 de Yunohost). Ces instructions ont pour pré-requis que les domaines/sous-domaines sont correctement configurés au niveau des DNS et de votre instance Yunohost (voir [DNS](/dns_fr), [DNS et installation d’une application sur un sous-domaine](/dns_subdomains_fr), [Configurer les enregistrements DNS](/dns_config_fr) et [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me_fr)).
|
||||
**Note :** la marche à suivre detaillée est réalisée ici à partir d’une instance Yunohost sur Debian 8 (celle-ci n'a pas été testée suite à la migration vers la version 3 de Yunohost). Ces instructions ont pour pré-requis que les domaines/sous-domaines sont correctement configurés au niveau des DNS et de votre instance Yunohost (voir [DNS](/dns), [DNS et installation d’une application sur un sous-domaine](/dns_subdomains), [Configurer les enregistrements DNS](/dns_config) et [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me)).
|
||||
|
||||
### 0. Installer Nextcloud
|
||||
|
13
app_dokuwiki_de.md
Normal file
13
app_dokuwiki_de.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
#New DokuWiki
|
||||
========
|
||||
|
||||
Homepage: https://dokuwiki.org
|
||||
|
||||
DokuWiki ist eine Wiki Anwendung, lizensiert unter der GPLv2, geschrieben in der PHP Programmsprache, arbeitet mit einfachen Textdateien und braucht deshalb keine Datenbank. Die Syntax ähnelt der von Mediawiki. Mehr in der Wikipedia.
|
||||
|
||||
Entwickler: Andreas Gohr, et al.
|
||||
|
||||
Betriebssystem: Cross-platform
|
||||
Plattform:PHP
|
||||
|
||||
Lizenz: GNU General Public License
|
15
app_ffsync_it.md
Normal file
15
app_ffsync_it.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Firefox Sync
|
||||
Firefox Sync permette la sincronizzazione di plugin, schede, segnalibri, preferiti e cronologia fra diverse istanze di Firefox.
|
||||
|
||||
## Configurazione di Firefox
|
||||
### Firefox versione desktop
|
||||
Nella barra degli indirizzi di Firefox inserite: `about:config`.
|
||||
|
||||
Cercate: `identity.sync.tokenserver.uri`.
|
||||
|
||||
Modificate l'indirizzo trovato in: https://mydomain.tld/path/token/1.0/sync/1.5
|
||||
|
||||
Create un account su Mozilla: https://accounts.firefox.com/signup
|
||||
|
||||
### Firefox versione mobile
|
||||
Nell'ultima versione di Firefox mobile la procedura è identica a quella per la versione desktop.
|
7
app_fluxbb.md
Normal file
7
app_fluxbb.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
#FluxBB
|
||||
|
||||
FluxBB is fast, light, user-friendly forum software for your website.
|
||||
|
||||
FluxBB is designed as a lighter, faster alternative to some of the traditional feature heavy forum applications. It is easy to use and has a proven track record of stability and security making it an ideal choice of forum for your website.
|
||||
|
||||
[Website](https://fluxbb.org/)
|
5
app_fluxbb_fr.md
Normal file
5
app_fluxbb_fr.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
#FluxBB
|
||||
|
||||
FluxBB est un forum de discussions écrit en PHP rapide et léger.
|
||||
|
||||
[Site internet](https://fluxbb.org/)
|
1
app_gogs.md
Normal file
1
app_gogs.md
Normal file
|
@ -0,0 +1 @@
|
|||
Unfortunately, this page only exists [in french here](app_gogs_fr) for now.
|
12
app_gogs_fr.md
Normal file
12
app_gogs_fr.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
#  Gogs
|
||||
|
||||
[](https://install-app.yunohost.org/?app=gogs)
|
||||
|
||||
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 Officiel - gogs.io](https://gogs.io)
|
||||
- [Dépot applications gogs pour YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
|
||||
- [Site officiel de l'outils git - git-scm.com](https://git-scm.com/)
|
4
app_hextris.md
Normal file
4
app_hextris.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
#Hextris
|
||||
|
||||
Because sometimes you have to know how to relax. Host your own fork of the famous Tetris and become the master of this infernal hexagon.
|
||||
Who will tame this infernal hexagon?
|
|
@ -1,3 +1,3 @@
|
|||
#<img src="/images/jappix.png">Jappix
|
||||
|
||||
Jappix est un client web [XMPP](/XMPP_fr).
|
||||
Jappix est un client web [XMPP](/XMPP).
|
||||
|
|
169
app_nextcloud.md
Normal file
169
app_nextcloud.md
Normal file
|
@ -0,0 +1,169 @@
|
|||
# <img src="/images/nextcloud_logo.png" alt="logo de Nextcloud"> Nextcloud
|
||||
|
||||
- [Discovering the Nextcloud environment](#EnvironmentNextcloud)
|
||||
- [Mobile and computer client software](#ClientSoftware)
|
||||
- [Useful Manipulations & Problems Encountered](#UtileManipulations)
|
||||
- [Add space to Nextcloud](#AddSpace)
|
||||
- [Third Party Applications](#AppsTiers)
|
||||
- [Useful links](#UsefulLinks)
|
||||
|
||||
Nextcloud is a file hosting service, many applications can be installed to offer it new features such as a calendar, a directory, notes and many others (you can find some applications in the [third-party applications](#AppsTiers) part but there are many others depending on your needs).
|
||||
|
||||
## Discovering the Nextcloud environment <a name="EnvironmentNextcloud" href=""></a>
|
||||
|
||||
Due to the creation of Nextcloud, a database with third-party applications to install, this chapter will only concern the nextcloud database without added applications. More information on applications in the dedicated section or in the nextcloud application catalogue: [apps.nextcloud.com](https://apps.nextcloud.com).
|
||||
Nextcloud is before a cloud service (like Seafile and others), it allows synchronization and file sharing on the Internet and between several terminals (computers, smartphone) but also with several people.
|
||||
|
||||
## Mobile and computer client software <a name="ClientSoftware" href=""></a>
|
||||
|
||||
There are client software for all platforms. You can find them on the official nextcloud website: https://nextcloud.com/install/#install-clients
|
||||
|
||||
## Useful Manipulations & Problems Encountered <a name="UtileManipulations" href=""></a>
|
||||
|
||||
### Add storage space <a name="AddSpace" href=""></a>
|
||||
|
||||
Solution I. allows you to add a link to a local or remote folder.
|
||||
Solution II. allows to move the main storage space of nextcloud.
|
||||
|
||||
#### I. Add an external storage space
|
||||
|
||||
Parameter =>[Administration] External storage.
|
||||
|
||||
At the bottom of the list you can add a folder (It is possible to define a subfolder using the `folder/subfolder` convention.)
|
||||
Select a storage type and specify the requested connection information.
|
||||
You can restrict this folder to one or more nextcloud users with the column `Available for`.
|
||||
With the gear you can allow or prohibit previewing and file sharing.
|
||||
Finally click on the check mark to validate the folder.
|
||||
|
||||
#### II. Migrate Nextcloud data to a larger partition
|
||||
|
||||
**Note**: The following assumes that you have a hard disk mounted on `/media/storage`. Refer to[this article](/external_storage) to prepare your system.
|
||||
|
||||
**Note**: Replace `nextcloud` with the name of its instance, if you have several Nextcloud apps installed.
|
||||
|
||||
First turn off the web server with the command:
|
||||
```bash
|
||||
systemctl stop nginx
|
||||
```
|
||||
|
||||
##### Choice of location
|
||||
|
||||
**Case A: Blank storage, exclusive to Nextcloud**
|
||||
|
||||
For the moment only root can write to it in `/media/storage`, which means that nginx and nextcloud will not be able to use it.
|
||||
|
||||
```bash
|
||||
chown -R nextcloud:nextcloud /media/storage
|
||||
chmod 775 -R /media/storage
|
||||
```
|
||||
|
||||
**Case B: Shared storage, data already present, Nextcloud data in a subfolder**
|
||||
|
||||
If you want to use this disk for other applications, you can create a subfolder belonging to Nextcloud.
|
||||
|
||||
```bash
|
||||
mkdir -p /media/storage/nextcloud_data
|
||||
chown -R nextcloud /media/storage/nextcloud_data
|
||||
chmod 775 -R /media/storage/nextcloud_data
|
||||
```
|
||||
|
||||
##### Migrate data
|
||||
|
||||
Migrate your data to the new disk. To do this *(be patient, it can take a long time)*:
|
||||
|
||||
```bash
|
||||
Case A: cp -ia /home/yunohost.app/nextcloud /media/storage
|
||||
Case B: cp -ia /home/yunohost.app/nextcloud /media/storage/nextcloud_data
|
||||
```
|
||||
|
||||
The `i` option allows you to ask yourself what to do if there is a file conflict, especially if you overwrite an old Owncloud or Nextcloud data folder.
|
||||
To check that everything went well, compare what these two commands display (the content must be identical):
|
||||
|
||||
```bash
|
||||
ls -la /home/yunohost.app/nextcloud
|
||||
|
||||
Case A: ls -al /media/storage
|
||||
Case B: ls -al /media/storage/nextcloud_data/nextcloud
|
||||
```
|
||||
|
||||
##### Configure Nextcloud
|
||||
|
||||
To inform Nextcloud of its new directory, modify the `/var/www/nextcloud/config/config.php` file with the command:
|
||||
|
||||
```bash
|
||||
nano /var/www/nextcloud/config/config.php
|
||||
```
|
||||
|
||||
Look for the line:
|
||||
|
||||
```bash
|
||||
'datadirectory' => '/home/yunohost.app/nextcloud/data',
|
||||
```
|
||||
|
||||
That you modify:
|
||||
|
||||
```bash
|
||||
CASE A:'datadirectory' =>'/media/storage',
|
||||
CASE B:'datadirectory' =>'/media/storage/nextcloud_data/nextcloud/data',
|
||||
```
|
||||
|
||||
Back up with `ctrl+x` then `y` or `o` (depending on your server locale).
|
||||
|
||||
Restart the web server:
|
||||
|
||||
```bash
|
||||
systemctl start nginx
|
||||
```
|
||||
|
||||
Add the.ocdata file
|
||||
```bash
|
||||
CASE A: nano /media/storage/.ocdata
|
||||
CASE B: nano /media/storage/nextcloud_data/nextcloud/data/.ocdata
|
||||
```
|
||||
Add a space to the file to be able to save it
|
||||
|
||||
Back up with `ctrl+x` then `y` or `o` (depending on your server locale).
|
||||
|
||||
Run a scan of the new directory by Nextcloud:
|
||||
|
||||
```bash
|
||||
cd /var/www/nextcloud
|
||||
sudo -u nextcloud php7.3 occ files:scan --all
|
||||
```
|
||||
|
||||
It's over now. Now test if everything is fine, try connecting to your Nextcloud instance, upload a file, check its proper synchronization.
|
||||
|
||||
### Nextcloud and Cloudflare
|
||||
|
||||
If you use Cloudflare for your DNS, *which may be useful if you have a dynamic IP*, you will most likely have authentication problems with the Nextcloud application. On the Internet many people propose to create a rule that disables all options related to security and Cloudflare speed for the url pointing to your Nextcloud instance. Although it works, it is not the optimal solution. I propose, certainly to create a rule for the url pointing to your Nextcloud instance but to disable only 2 options. So here's how:
|
||||
|
||||
#### Cloudflare Page Rules
|
||||
|
||||
In the Cloudflare control panel select your domain and find Page Rules
|
||||
the url in your address bar will look like this: https://dash.cloudflare.com/*/domain.tld/page-rules
|
||||
|
||||
##### Add a rule
|
||||
|
||||
The rule to be added must apply to the url of your Nextcloud instance either:
|
||||
|
||||
- `https://nextcloud.domain.tld/**` if you use a subdomain
|
||||
- `https://domain.tld/nextcloud/*`` if you have deployed Nextcloud in a directory
|
||||
|
||||
The options to disable (Off) are:
|
||||
|
||||
- Rocket Loader
|
||||
- Email Obfuscation
|
||||
|
||||
Save and clean your caches (Cloudflare, browser,...) and that's it.
|
||||
|
||||
## Third Party Applications <a name="AppsTiers" href=""></a>
|
||||
|
||||
- [Calendrier](app_nextcloud_calendar)
|
||||
- [contact](app_nextcloud_contact)
|
||||
- [KeeWeb](app_nextcloud_keeweb)
|
||||
- [Carnet](app_nextcloud_carnet)
|
||||
|
||||
## Useful links <a name="UsefulLinks" href=""></a>
|
||||
|
||||
- Official website : [nextcloud.com](https://nextcloud.com/)
|
||||
- Application catalogue for nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)
|
1
app_nextcloud_calendar.md
Symbolic link
1
app_nextcloud_calendar.md
Symbolic link
|
@ -0,0 +1 @@
|
|||
default.md
|
1
app_nextcloud_carnet.md
Symbolic link
1
app_nextcloud_carnet.md
Symbolic link
|
@ -0,0 +1 @@
|
|||
default.md
|
1
app_nextcloud_contact.md
Symbolic link
1
app_nextcloud_contact.md
Symbolic link
|
@ -0,0 +1 @@
|
|||
default.md
|
|
@ -1,9 +1,31 @@
|
|||
# Ajouter de l'espace de stockage
|
||||
# <img src="/images/nextcloud_logo.png" alt="logo de Nextcloud"> Nextcloud
|
||||
|
||||
La solution I) permet d'ajouter un lien vers un dossier local ou distant.
|
||||
La solution II) permet de déplacer l'espace de stockage principal de nextcloud.
|
||||
- [Découverte de l'environnement de Nextcloud](#EnvironnementNextcloud)
|
||||
- [Logiciels Clients pour mobile et ordinateur](#LogicielsClients)
|
||||
- [Manipulations & Problèmes rencontrés utiles](#ManipulationsUtiles)
|
||||
- [Ajouter de l'espace à Nextcloud](#AjoutEspace)
|
||||
- [Applications tiers](#AppsTiers)
|
||||
- [Liens utiles](#liensutiles)
|
||||
|
||||
## I) Ajouter un espace de stockage externe
|
||||
Nextcloud est un service d'hébergement de fichiers, de nombreuses applications peuvent être installées afin de lui offrir de nouvelles fonctionnalités tel qu'un agenda, un répertoire de contacts, des notes et pleins d'autres possibles (vous pouvez trouver quelques applications dans la partie [applications tiers](#AppsTiers) mais il en existe une multitude suivant vos besoins).
|
||||
|
||||
## Découverte de l'environnement de Nextcloud<a name="EnvironnementNextcloud" href=""></a>
|
||||
|
||||
Du fait de la constitution de Nextcloud, une base avec des applications tiers à installer, ce chapitre ne concernera que la base de nextcloud sans applications ajoutés. Plus d'informations sur les applications dans la partie dédiée ou sur le catalogue d'application de nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com).
|
||||
Nextcloud est avant tout un service de cloud (comme Seafile et d'autres logiciels), il permet une synchronisation et le partage de fichiers sur internet et entre plusieurs terminaux (ordinateurs, smartphone) mais aussi avec plusieurs personnes.
|
||||
|
||||
## Logiciels Clients<a name="LogicielsClients" href=""></a>
|
||||
|
||||
Il existe des logiciels clients pour de nombreux terminaux. Vous pouvez les retrouver sur le site de nextcloud : [nextcloud.com/install/#install-clients](https://nextcloud.com/install/#install-clients)
|
||||
|
||||
## Manipulations utiles & problèmes rencontrés<a name="ManipulationsUtiles" href=""></a>
|
||||
|
||||
### Ajouter de l'espace à Nextcloud<a name="AjoutEspace" href=""></a>
|
||||
|
||||
La solution I. permet d'ajouter un lien vers un dossier local ou distant.
|
||||
La solution II. permet de déplacer l'espace de stockage principal de nextcloud.
|
||||
|
||||
#### I. Ajouter un espace de stockage externe
|
||||
|
||||
Paramètre => [Administration] Stockages externe.
|
||||
|
||||
|
@ -13,9 +35,9 @@ Vous pouvez restreindre ce dossier à un ou plusieurs utilisateurs nextcloud ave
|
|||
Avec l'engrenage vous pouvez autoriser ou interdire la prévisualisation et le partage des fichiers.
|
||||
Enfin cliquer sur la coche pour valider le dossier.
|
||||
|
||||
## II) Migrer les données de Nextcloud dans une partition plus grosse
|
||||
#### II. Migrer les données de Nextcloud dans une partition plus grosse
|
||||
|
||||
**Remarque** : Ce qui suit suppose que vous avez un disque dur monté sur `/media/stockage`. Référez-vous à [cet article](/external_storage_fr) pour préparer votre système.
|
||||
**Remarque** : Ce qui suit suppose que vous avez un disque dur monté sur `/media/stockage`. Référez-vous à [cet article](/external_storage) pour préparer votre système.
|
||||
|
||||
**Remarque** : Remplacez `nextcloud` par le nom de son instance, si vous avez plusieurs apps Nextcloud installées.
|
||||
|
||||
|
@ -24,9 +46,9 @@ Commencez par éteindre le serveur web avec la commande:
|
|||
systemctl stop nginx
|
||||
```
|
||||
|
||||
### Choix de l'emplacement
|
||||
##### Choix de l'emplacement
|
||||
|
||||
#### Cas A : Stockage vierge, exclusif à Nextcloud
|
||||
**Cas A : Stockage vierge, exclusif à Nextcloud**
|
||||
|
||||
Pour l'instant seul root peut y écrire dans `/media/stockage`; ce qui signifie que nginx et nextcloud ne pourront donc pas l'utiliser.
|
||||
|
||||
|
@ -35,7 +57,7 @@ chown -R nextcloud:nextcloud /media/stockage
|
|||
chmod 775 -R /media/stockage
|
||||
```
|
||||
|
||||
#### Cas B : Stockage partagé, données déjà présentes, données Nextcloud dans un sous-dossier
|
||||
**Cas B : Stockage partagé, données déjà présentes, données Nextcloud dans un sous-dossier**
|
||||
|
||||
Si vous souhaitez utiliser ce disque pour d'autres applications, vous pouvez créer un sous-dossier appartenant à Nextcloud.
|
||||
|
||||
|
@ -45,7 +67,7 @@ chown -R nextcloud /media/stockage/nextcloud_data
|
|||
chmod 775 -R /media/stockage/nextcloud_data
|
||||
```
|
||||
|
||||
### Migrer les données
|
||||
##### Migrer les données
|
||||
|
||||
Migrez vos données vers le nouveau disque. Pour ce faire *(soyez patient, cela peut être long)* :
|
||||
|
||||
|
@ -54,8 +76,7 @@ Cas A : cp -ir /home/yunohost.app/nextcloud /media/stockage
|
|||
Cas B : cp -ir /home/yunohost.app/nextcloud /media/stockage/nextcloud_data
|
||||
```
|
||||
|
||||
L'option `i` permet de vous demander quoi faire en cas de conflit de fichier, notamment si vous écrasez un ancien dossier de données Owncloud ou Nextcloud.
|
||||
|
||||
L'option `i` permet de vous demander quoi faire en cas de conflit de fichier, notamment si vous écrasez un ancien dossier de données Owncloud ou Nextcloud.
|
||||
Pour vérifier que tout s'est bien passé, comparer ce qu'affichent ces deux commandes (le contenu doit être identique):
|
||||
|
||||
```bash
|
||||
|
@ -65,7 +86,7 @@ Cas A : ls -al /media/stockage
|
|||
Cas B : ls -al /media/stockage/nextcloud_data/nextcloud
|
||||
```
|
||||
|
||||
### Configurer Nextcloud
|
||||
##### Configurer Nextcloud
|
||||
|
||||
Pour informer Nextcloud de son nouveau répertoire, modifiez le fichier `/var/www/nextcloud/config/config.php` avec la commande:
|
||||
|
||||
|
@ -107,37 +128,42 @@ Lancez un scan du nouveau répertoire par Nextcloud:
|
|||
|
||||
```bash
|
||||
cd /var/www/nextcloud
|
||||
sudo -u nextcloud php occ files:scan --all
|
||||
sudo -u nextcloud php7.3 occ files:scan --all
|
||||
```
|
||||
|
||||
C'est terminé. À présent testez si tout va bien, essayez de vous connecter à votre instance Nextcloud, envoyer un fichier, vérifiez sa bonne synchronisation.
|
||||
|
||||
# L'application KeeWeb
|
||||
|
||||
L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud.
|
||||
Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela,
|
||||
[une solution](https://github.com/jhass/nextcloud-keeweb/issues/34) existe.
|
||||
### Nextcloud et Cloudflare
|
||||
|
||||
Se rendre dans le répertoire de configuration de Nextcloud :
|
||||
Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens proposent de créer une règle ayant pour effet de désactiver toutes les options reliées à la sécurité et à la vitesse de Cloudflare pour l'URL pointant sur votre instance Nextcloud. Bien que cela fonctionne, ce n'est pas la solution optimale. Je vous propose, certes de créer une règle pour l'URL pointant sur votre instance Nextcloud, mais de désactiver seulement 2 options. Voici donc comment :
|
||||
|
||||
```bash
|
||||
cd /var/www/nextcloud/config/
|
||||
```
|
||||
#### Cloudflare Page Rules
|
||||
|
||||
S'il n'existe pas, créer le fichier *mimetypemapping.json* dont le propriétaire est l'utilisateur *nextcloud* :
|
||||
Dans le panneau de contrôle de Cloudflare, choisissez votre domaine et trouvez Page Rules
|
||||
l'URL dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
|
||||
|
||||
```bash
|
||||
sudo su nextcloud -c "nano mimetypemapping.json"
|
||||
```
|
||||
#### Ajouter une règle
|
||||
|
||||
Puis ajouter dans ce fichier le texte suivent :
|
||||
La règle à ajouter doit s'appliquer pour l'URL de votre instance Nextcloud soit :
|
||||
- `https://nextcloud.domain.tld/*` si vous utilisez un sous-domaine
|
||||
- `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire
|
||||
|
||||
```bash
|
||||
{
|
||||
"kdbx": ["x-application/kdbx"]
|
||||
}
|
||||
```
|
||||
Les options à désactiver (Off) sont :
|
||||
|
||||
Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
|
||||
- Rocket Loader
|
||||
- Email Obfuscation
|
||||
|
||||
A présent, le problème est corrigé.
|
||||
Sauvegarder et nettoyer vos caches (Cloudflare, navigateur, ...) et le tour est joué.
|
||||
|
||||
## Applications Tiers<a name="AppsTiers" href=""></a>
|
||||
|
||||
+ [Calendrier](/app_nextcloud_calendar)
|
||||
+ [contact](/app_nextcloud_contact)
|
||||
+ [KeeWeb](/app_nextcloud_keeweb)
|
||||
+ [Carnet](/app_nextcloud_carnet)
|
||||
|
||||
## Quelques liens utiles<a name="liensutiles" href=""></a>
|
||||
|
||||
+ Site officiel : [nextcloud.com (en)](https://nextcloud.com/)
|
||||
+ Catalogue d'application pour nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)
|
||||
|
|
35
app_nextcloud_keeweb.md
Normal file
35
app_nextcloud_keeweb.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
# The KeeWeb application for NextCloud
|
||||
|
||||
The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance.
|
||||
But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this,
|
||||
[a solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) exists.
|
||||
|
||||
Go to the Nextcloud configuration directory:
|
||||
|
||||
```bash
|
||||
cd /var/www/nextcloud/config/
|
||||
```
|
||||
|
||||
If it does not exist, create the *mimetypemapping.json* file whose owner is the user *nextcloud* :
|
||||
|
||||
```bash
|
||||
sudo su nextcloud -c "nano mimetypemapping.json"
|
||||
```
|
||||
|
||||
Then add in this file the following text:
|
||||
|
||||
```bash
|
||||
{
|
||||
"kdbx": ["x-application/kdbx"]
|
||||
}
|
||||
```
|
||||
|
||||
Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
|
||||
|
||||
Then run a scan by executing next command as root:
|
||||
|
||||
```bash
|
||||
sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all
|
||||
```
|
||||
|
||||
Now the problem is fixed.
|
38
app_nextcloud_keeweb_fr.md
Normal file
38
app_nextcloud_keeweb_fr.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
# L'application KeeWeb pour NextCloud
|
||||
|
||||
L'application Keeweb sur le catalogue de nextcloud - [apps.nextcloud.com/keeweb](https://apps.nextcloud.com/apps/keeweb)
|
||||
|
||||
L'application KeeWeb est un gestionnaire de mots de passe incorporé à Nextcloud. Elle permet par exemple de lire un fichier de type KeePass (*.kdbx*) stocké sur votre instance Nextcloud.
|
||||
|
||||
Mais il arrive parfois que Nextcloud ne laisse pas l'application prendre en charge ces fichiers, ce qui rend alors impossible leur lecture de KeeWeb. Pour remédier à cela,
|
||||
[une solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) existe.
|
||||
|
||||
Se rendre dans le répertoire de configuration de Nextcloud :
|
||||
|
||||
```bash
|
||||
cd /var/www/nextcloud/config/
|
||||
```
|
||||
|
||||
S'il n'existe pas, créer le fichier *mimetypemapping.json* dont le propriétaire est l'utilisateur *nextcloud* :
|
||||
|
||||
```bash
|
||||
sudo su nextcloud -c "nano mimetypemapping.json"
|
||||
```
|
||||
|
||||
Puis ajouter dans ce fichier le texte suivent :
|
||||
|
||||
```bash
|
||||
{
|
||||
"kdbx": ["x-application/kdbx"]
|
||||
}
|
||||
```
|
||||
|
||||
Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
|
||||
|
||||
Ensuite lancer un scan en tant que root:
|
||||
|
||||
```bash
|
||||
sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all
|
||||
```
|
||||
|
||||
A présent, le problème est corrigé.
|
13
app_noalyss.md
Normal file
13
app_noalyss.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Noalyss
|
||||
|
||||
Open source accounting software developed in PHP.
|
||||
|
||||
All the information on this software is available on the [project website](http://www.noalyss.eu)
|
||||
|
||||
To learn how to use it I invite you to read the [project wiki](http://www.noalyss.eu/?page_id=46&lang=fr_FR_id=46&lang=en_EN)
|
||||
|
||||
The github of the Yunohost module is [here](https://github.com/YunoHost-Apps/noalyss_ynh_ynh)
|
||||
|
||||
You can try the project [here](http://demo.noalyss.eu/index.php) with the identifiers: demo /demo
|
||||
|
||||
I mean, not to have to struggle like me. The administrator IDs and passwords for the first login are: phpcompta / phpcompta
|
|
@ -10,5 +10,4 @@ Le github du module Yunohost est [ici](https://github.com/YunoHost-Apps/noalyss_
|
|||
|
||||
Vous pouvez essayer le projet [ici](http://demo.noalyss.eu/index.php) avec les identifiants : demo /demo
|
||||
|
||||
Enfin pour ne pas galérer comme moi. Les identifiants et mot de passe administrateur lors de la première connexion sont : phpcompta / phpcompta
|
||||
|
||||
Enfin pour ne pas galérer comme moi. Les identifiants et mot de passe administrateur lors de la première connexion sont : phpcompta / phpcompta
|
|
@ -1,2 +1,3 @@
|
|||
===== Peertube =====
|
||||
PeerTube is a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser, using WebTorrent.
|
||||
# Peertube
|
||||
|
||||
PeerTube is a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser, using WebTorrent.
|
16
app_peertube_fr.md
Normal file
16
app_peertube_fr.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
# <img src="/images/peertube_logo.png" alt="Logo de PeerTube"> PeerTube
|
||||
|
||||
[](https://install-app.yunohost.org/?app=peertube)
|
||||
|
||||
PeerTube est une plateforme de streaming vidéo fédérée (ActivityPub) utilisant P2P (BitTorrent) directement dans le navigateur web, en utilisant WebTorrent.
|
||||
|
||||
## Découverte de l'environnement de PeerTube
|
||||
|
||||
Pour comprendre en quoi PeerTube propose une alternative à youtube, vous êtes invité à regarder le clip réalisé par l'association Framasoft (ci-dessous). Elle est elle même hébergé sur [framatube.org](https://framatube.org)
|
||||
|
||||
<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts" src="https://framatube.org/videos/embed/9db9f3f1-9b54-44ed-9e91-461d262d2205" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
## Quelques liens utiles
|
||||
|
||||
- Site officiel de PeerTube - [joinpeertube.org](https://joinpeertube.org/fr/)
|
||||
- Dépot application PeerTube Yunohost - [github.com/YunoHost-Apps/peertube_ynh](https://github.com/YunoHost-Apps/peertube_ynh)
|
5
app_pihole_fr.md
Normal file
5
app_pihole_fr.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Pihole
|
||||
|
||||
Page d'accueil : https://pi-hole.net
|
||||
|
||||
**Pi-hole®** Blocage des publicités à l'échelle du réseau via votre propre serveur DNS, avec une belle page web Performance And Statistics.
|
|
@ -13,8 +13,8 @@ Les extensions rendent Piwigo facilement personnalisable. Cerise sur le gâteau,
|
|||
|
||||
## Fonctionnalités
|
||||
|
||||
En plus des [fonctionnalités principales](Piwigo) de Piwigo, ce paquet propose également:
|
||||
|
||||
En plus des [fonctionnalités principales](http://piwigo.org/basics/features) de Piwigo, ce paquet propose également:
|
||||
|
||||
* une intégration avec le système de gestion des utilisateurs et le SSO de Yunohost :
|
||||
* installation privée : limitée aux utilisateurs de YunoHost
|
||||
* installation publique :
|
||||
|
|
1
app_pleroma.md
Normal file
1
app_pleroma.md
Normal file
|
@ -0,0 +1 @@
|
|||
Unfortunately, this page only exists [in french here](app_pleroma_fr) for now.
|
52
app_pleroma_fr.md
Normal file
52
app_pleroma_fr.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
# <img src="/images/pleroma_logo.png" alt="logo de Pleroma"> Pleroma
|
||||
|
||||
- [Découverte de l'interface de Pleroma](#d%C3%A9couverte-de-linterface-de-pleroma)
|
||||
- [Logiciels Clients pour mobile et ordinateur](#applications-clients)
|
||||
- [Liens utiles](#quelques-liens-utiles)
|
||||
|
||||
Pleroma est un réseau social décentralisé de micro-blogging qui propose une alternative à Twitter, le protocole [Activy Pub](https://en.wikipedia.org/wiki/ActivityPub) qu'il utilise permet d'interagir avec le [fediverse](https://fediverse.party/en/fediverse) composé notamment de Mastodon, GNU Social, et d'autres. Il a l'avantage d'être plus léger que mastodon et se prête donc plus facilement à l'auto-hébergement.
|
||||
|
||||
## Découverte de l'interface de Pleroma
|
||||
|
||||
Pour celles et ceux qui n'ont pas ou peu l'habitude des réseaux sociaux, voici en détail l'utilisation de chacune des fenêtres proposées :
|
||||
|
||||
### Accueil de l'interface
|
||||
|
||||
<img src="/images/capture_globale.png" alt="Capture écran accueil de Pleroma">
|
||||
|
||||
1. Barre de menu
|
||||
+ <img src="/images/capture_menu_gauche.png" alt="Capture du bouton à gauche de la barre de menu"> Le bouton à gauche portant le nom de l'instance - dans la capture ci-dessus *Meta - Pleroma* - renvoie vers la page d'accueil de l'instance. Dans le cas où vous êtes connecté⋅e cela vous renverra vers la visualisation de votre *journal*, si ce n'est pas le cas vers *Le réseau connu*.
|
||||
+ <img src="/images/capture_menu_droite.png" alt="Capture des boutons à droite de la barre de menu"> Si vous êtes connecté⋅e vous aurez trois boutons, si vous ne l'êtes pas il n'y en aura que deux. Dans l'ordre, de gauche à droite :
|
||||
+ <img src="/images/capture_menu_droite_chercher_utilisateur.png" alt="Capture bouton chercher un⋅e utilisateur⋅trice"> Permet d'ajouter de nouveaux utilisateurs et nouvelles utilisatrices afin de les suivre et ainsi vous abonner à leurs publications. Il est possible de rechercher un·e utilisateur·trice avec seulement son pseudonyme (par exemple : *yunohost*) ou alors sous la forme @pseudonyme@instance.domaine (par exemple : *@yunohost@mastodon.social*)
|
||||
+ <img src="/images/capture_menu_droite_preferences.png" alt="Capture bouton préférences"> Permet d'accéder aux paramétres d'affichages de votre session.
|
||||
/!\ Si vous n'êtes pas connecté·e les modifications effectuées ne seront valables qu'un temps (jusqu'à ce que les cookies de fonctionnement soient effacés).
|
||||
+ <img src="/images/capture_menu_droite_deconnexion.png" alt="Capture Déconnexion"> Permet de se déconnecter de l'instance. Si vous n'êtes pas sur votre ordinateur personnel pensez-y !
|
||||
|
||||
2. Espace de Publications / Fenêtre de connexion
|
||||
<img src="/images/capture_espace_connexion.png" alt="Fenêtre de connexion à la place de la zone de publications"> Si vous êtes connecté·e cet espace vous permet de publier vos messages et d'y joindre un média (images, GIF, vidéos, etc). Vous êtes limité⋅e dans le nombre de caractères, avec Pleroma la limitation est définie par l'administrateur·trice de l'instance. Si vous avez des questions envoyez lui un message.
|
||||
|
||||
3. Fenêtre de visualisations
|
||||
C'est ici le centre ~~du monde~~ de Pleroma, vous pourrez y voir les différentes publications de vos contacts ou qui circulent sur l'instance ainsi que les re-toots et qui a publié.
|
||||
|
||||
4. Le journal
|
||||
Cette zone permet de voir les différentes publications des comptes que vous suivez mais aussi l'ensemble des publications visibles sur votre instance. Vous trouverez aussi les messages privés et les notifications où vous trouverez tous vos toots et les publications où vous avez été cité⋅e.
|
||||
|
||||
5. Interface utilisateur·trice
|
||||
Cet espace permet de choisir l'agencement de Pleroma, il est proposé deux agencements : un spécifique à Pleroma et un fork (une copie) de l'agencement de Mastodon, selon vos préférences d'usages et de visualisations ; à vous de faire votre choix.
|
||||
|
||||
6. Notifications
|
||||
On retrouve dans cette zone les messages où vous avez été cité⋅e, mais aussi les abonnements à votre compte.
|
||||
|
||||
## Applications clients
|
||||
|
||||
| Nom de l'applications | Plateforme | Multi-comptes | Autre réseaux supportés | Play Store | F-Droid | Apple Store |
|
||||
|---|---|---|---|---|---|---|
|
||||
| Tusky | Android | Oui | Mastodon | [https://play.google.com/id=com.keylesspalace.tusky](https://play.google.com/store/apps/details?id=com.keylesspalace.tusky) | [f-droid.org/com.keylesspalace.tusky](https://f-droid.org/fr/packages/com.keylesspalace.tusky/) |
|
||||
| Fedilab | Android | Oui | Mastodon, Pleroma, Peertube, GNU Social, Friendica, Pixelfed | [play.google.com/app.fedilab.android](https://play.google.com/store/apps/details?id=app.fedilab.android&hl=fr) | [f-droid.org//fr.gouv.etalab.mastodon](https:/f-droid.org/fr/packages/fr.gouv.etalab.mastodon/)
|
||||
| Twidere | Android | Oui | Twitter, Mastodon | [play.google.com/org.mariotaku.twidere](https://play.google.com/store/apps/details?id=org.mariotaku.twidere) | [https://f-droid.org/org.mariotaku.twidere](https://f-droid.org/fr/packages/org.mariotaku.twidere/) |
|
||||
| Librem Social | Android | Non | ? | [play.google.com/one.librem.social](https://play.google.com/store/apps/details?id=one.librem.social&hl=fr) | [https://f-droid.org/one.librem.social](https://f-droid.org/fr/packages/one.librem.social) | |
|
||||
|
||||
## Quelques liens utiles
|
||||
|
||||
+ Site officiel : [pleroma.social (En anglais)](https://pleroma.social)
|
||||
+ Trouver d'autres instances de Pleroma : [fediverse.network/pleroma](https://fediverse.network/pleroma)
|
1
app_sogo.md
Normal file
1
app_sogo.md
Normal file
|
@ -0,0 +1 @@
|
|||
Unfortunately, this page only exists [in french here](app_sogo_fr) for now.
|
8
app_sogo_fr.md
Normal file
8
app_sogo_fr.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
#  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)
|
33
app_spip.md
Normal file
33
app_spip.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
# SPIP for YunoHost
|
||||
|
||||
#### SPIP is what?
|
||||
|
||||
SPIP is an Internet publishing system that focuses on collective functioning, multilingualism and ease of use. It is free software, distributed under the GNU/GPL license. It can therefore be used for any website, whether associative or institutional, personal or commercial.
|
||||
|
||||
Source:[spip.net](https://www.spip.net/fr_rubrique91.html_rubrique91.html)
|
||||
|
||||
#### Application functionality for Yunohost
|
||||
|
||||
* Installation of the base without going through the installation system
|
||||
* Multilingual support
|
||||
* LDAP support
|
||||
|
||||
##### Installation
|
||||
|
||||
```bash
|
||||
$ sudo yunohost app install https://github.com/YunoHost-Apps/spip_ynh.git_ynh.git
|
||||
```
|
||||
|
||||
##### Update
|
||||
|
||||
```bash
|
||||
sudo yunohost app upgrade --verbose spip -u https://github.com/YunoHost-Apps/spip_ynh.git_ynh.git
|
||||
```
|
||||
|
||||
##### Use
|
||||
|
||||
Access the administration of the site by entering the following address in your browser.
|
||||
|
||||
https://www.domain.tld/spip/ecrire
|
||||
|
||||
Make a "forgotten password" request to change your password, you will receive an email telling you how to change your password.
|
|
@ -20,7 +20,7 @@ $ sudo yunohost app install https://github.com/YunoHost-Apps/spip_ynh.git
|
|||
|
||||
#### Mise à jour
|
||||
|
||||
```
|
||||
```bash
|
||||
$ sudo yunohost app upgrade --verbose spip -u https://github.com/YunoHost-Apps/spip_ynh.git
|
||||
```
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ scp -r /votre/fichier/ root@votre-domaine.org:/home/yunohost.transmission/comple
|
|||
```
|
||||
|
||||
##### Comment télécharger un répertoire entier ?
|
||||
Une fois connecté en [SSH](ssh_fr), placez-vous dans le répertoire de téléchargement et zippez le répertoire :
|
||||
Une fois connecté en [SSH](/ssh), placez-vous dans le répertoire de téléchargement et zippez le répertoire :
|
||||
```bash
|
||||
cd /home/yunohost.transmission/completed
|
||||
zip -r votre_archive.zip [dossier]
|
||||
|
|
|
@ -14,10 +14,10 @@ First, connect to your server through SSH and type in the following command (Wor
|
|||
```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 ou wordpress__2).
|
||||
** 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
|
||||
Spcify the git repository containing the upgrade.
|
||||
Specify the git repository containing the upgrade.
|
||||
|
||||
For intance, to upgrade LimeSurvey:
|
||||
```bash
|
||||
|
|
8
app_webtrees.md
Normal file
8
app_webtrees.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
#Webtrees
|
||||
|
||||
webtrees is the web's leading online collaborative genealogy application.
|
||||
|
||||
* It works from standard GEDCOM files, and is therefore compatible with every major desktop application.
|
||||
* It aims to to be efficient and effective by using the right combination of third-party tools, design techniques and open standards.
|
||||
|
||||
webtrees allows you to view and edit your genealogy on your website. It has full editing capabilities, full privacy functions, and supports imedia such as photos and document images. As an online program, it fosters extended family participation and good ancestral recording habits, as it simplifies the process of collaborating with others working on your family lines. Your latest information is always on your web site and available for others to see, defined by viewing rules you set.
|
7
app_webtrees_fr.md
Normal file
7
app_webtrees_fr.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
#Webtrees
|
||||
|
||||
webtrees est le chef de file sur le Web des logiciels de généalogie conversationnels en ligne. C'est un logiciel Open Source et il coûte zéro $ - oui, totalement GRATUIT !
|
||||
|
||||
Vous n'avez besoin que d'un serveur web avec PHP et MySQL.
|
||||
|
||||
Il exploite les fichiers de généalogie au format GEDCOM standard, par conséquent, il est compatible avec toutes les applications de bureau majeures; il vise à être efficient et efficace en utilisant la bonne combinaison d'outils tiers, des techniques de conception et des normes d'ouverture standards.
|
|
@ -1,6 +1,5 @@
|
|||
Yunofav : (unofficial) Page of favorite links for Yunohost
|
||||
=======
|
||||
#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.
|
||||
Functionality: Creates a page for your favorite links, using the Yunohost tiles look and feel.
|
6
app_yunofav_fr.md
Normal file
6
app_yunofav_fr.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Yunofav : (non officiel) Page de liens favoris pour Yunohost
|
||||
|
||||
page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh
|
||||
|
||||
|
||||
Fonctionnalité : Crée une page pour vos liens préférés, en utilisant le style et le fonctionnement des tuiles Yunohost.
|
276
apps.md
276
apps.md
|
@ -1,4 +1,4 @@
|
|||
# Apps
|
||||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
This page requires Javascript enabled to display properly :s.
|
||||
|
@ -6,34 +6,49 @@ This page requires Javascript enabled to display properly :s.
|
|||
<br/>
|
||||
</span>
|
||||
|
||||
<!--
|
||||
Search bar
|
||||
-->
|
||||
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input type="text" id="filter-app-cards" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
|
||||
<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="app-cards-list-filter-text">Only official apps</span> <span class="caret"></span>
|
||||
<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="#" id="app-cards-list-validated">Only official apps</a></li>
|
||||
<li><a href="#" id="app-cards-list-working">Only working apps</a></li>
|
||||
<li><a href="#" id="app-cards-list-working-inprogress">In progress/not working apps</a></li>
|
||||
<li><a href="#" id="app-cards-list-all-apps">All apps</a></li>
|
||||
<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 />
|
||||
<div id="community-app-list-warrant" class="alert alert-danger">
|
||||
<p>Only apps tagged <span class="label label-success label-as-badge">validated</span> are officially supported by the package team. </p>
|
||||
|
||||
<p>Apps tagged <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are from community repository, you can test and use them **at your own risk**.</p>
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<p>Important: it's the application maintaineur that qualify his application as working, not the YunoHost core team. Install it at your own risks. We won't provide support for it.</p>
|
||||
<div 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 code repositories.</div>
|
||||
|
||||
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
|
||||
Applications with a level below or equal to 4 may be working, but they might be not well-integrated with YunoHost, or they do not respect the recommended packaging practices.
|
||||
</div>
|
||||
<div class="alert alert-info">The packagers will appreciate your remarks. If you install them and find issues, or ideas for improvement, do not hesitate to file issues directly on their repositories project page.</div>
|
||||
|
||||
<div class="app-cards-list" id="app-cards-list"></div>
|
||||
<div id="broken-apps-disclaimer" class="alert alert-danger">
|
||||
Applications with level 0, or flagged as <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are still in development or are know to not be working. **Do not install them** in a production environment!
|
||||
</div>
|
||||
|
||||
<div class="alert alert-warning">If you don't find the app you are searching for, you can search it in community app repository (working, inprogress and not working apps) or fill the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
|
||||
<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>
|
||||
/*=================================================
|
||||
|
@ -64,6 +79,7 @@ This page requires Javascript enabled to display properly :s.
|
|||
min-height: 1px;
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
|
@ -75,12 +91,17 @@ This page requires Javascript enabled to display properly :s.
|
|||
margin-bottom:5px;
|
||||
font-size:1.2em;
|
||||
}
|
||||
.app-card .category {
|
||||
.app-card .app-badges {
|
||||
height:35px;
|
||||
}
|
||||
.app-card .category .label, .app-card-date-maintainer {
|
||||
font-size:0.7em;
|
||||
.app-card .app-badges .label, .app-card-date-maintainer {
|
||||
font-size:0.6em;
|
||||
}
|
||||
|
||||
.label-epic {
|
||||
background-color: darkorchid;
|
||||
}
|
||||
|
||||
.app-card-date-maintainer {
|
||||
text-align:right;
|
||||
max-height: 18px;
|
||||
|
@ -108,6 +129,8 @@ This page requires Javascript enabled to display properly :s.
|
|||
}
|
||||
.app-card > .btn-group > .btn{
|
||||
border-bottom:0;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.58;
|
||||
}
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
border-left:0;
|
||||
|
@ -122,12 +145,16 @@ This page requires Javascript enabled to display properly :s.
|
|||
/*===============================================*/
|
||||
</style>
|
||||
|
||||
<!--
|
||||
App card template
|
||||
-->
|
||||
|
||||
<script type="text/template" id="app-template2">
|
||||
<div class="app-card_{app_id} app-card panel panel-default">
|
||||
<div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
|
||||
|
||||
<div class="panel-body">
|
||||
<h3>{app_name}</h3>
|
||||
<div class="category"></div>
|
||||
<div class="app-badges"></div>
|
||||
|
||||
<div class="app-card-desc">{app_description}</div>
|
||||
</div>
|
||||
|
@ -138,13 +165,18 @@ This page requires Javascript enabled to display properly :s.
|
|||
<div class="btn-group" role="group">
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
||||
<a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
|
||||
<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>
|
||||
</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'];
|
||||
|
@ -159,19 +191,36 @@ function timeConverter(UNIX_timestamp) {
|
|||
return time;
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
// Hide warrant about community list
|
||||
$('#community-app-list-warrant').hide();
|
||||
var filters = ["validated"];
|
||||
|
||||
// Hide warrant about states when we're using the default filter
|
||||
$('#state-disclaimer').hide();
|
||||
var quality_filters = "decent";
|
||||
|
||||
function filter(){
|
||||
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
|
||||
var valThis = $('#filter-app-cards').val().toLowerCase();
|
||||
$('.app-card').each(function(){
|
||||
var text = $(this).find('h3').text().toLowerCase();
|
||||
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
|
||||
|
||||
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 app_name = $(this).find('h3').text().toLowerCase();
|
||||
if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
|
||||
{
|
||||
$(this).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
|
||||
|
||||
// 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();
|
||||
}
|
||||
|
||||
//=================================================
|
||||
|
@ -179,81 +228,88 @@ $(document).ready(function () {
|
|||
//=================================================
|
||||
$('#filter-app-cards').keyup(filter);
|
||||
|
||||
$('#app-cards-list-validated').click(function(){
|
||||
filters = ["validated"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
|
||||
$('a[data-quality-filter]').on("click", function(){
|
||||
$('#current-quality-filter').text($(this).text());
|
||||
$('#current-quality-filter').data("filter", $(this).data("quality-filter"));
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working').click(function(){
|
||||
filters = ["validated", "working"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working-inprogress').click(function(){
|
||||
filters = ["notworking", "inprogress"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-all-apps').click(function(){
|
||||
filters = ["validated", "working", "inprogress", "notworking"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
|
||||
filter();
|
||||
|
||||
//=================================================
|
||||
// Upload apps lists
|
||||
//=================================================
|
||||
var app_list={};
|
||||
$.when(
|
||||
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
|
||||
app_list.community = $.map(community, function(el) { return el; });
|
||||
}),
|
||||
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
|
||||
app_list.official = $.map(official, function(el) { return el; });
|
||||
})
|
||||
).then(function() {
|
||||
app_list = app_list.official.concat(app_list.community);
|
||||
var catalog = undefined;
|
||||
|
||||
// Sort alpha
|
||||
app_list.sort(function(a, b){
|
||||
a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
|
||||
b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
|
||||
// Fetch application catalog
|
||||
|
||||
$.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
|
||||
|
||||
catalog = $.map(data, 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.state === "inprogress") || (infos.state === "notworking")) {
|
||||
infos.level = null;
|
||||
}
|
||||
if ((infos.high_quality === true) && (infos.level === 8)) {
|
||||
infos.state = "high 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;
|
||||
});
|
||||
$.each(app_list, function(k, infos) {
|
||||
|
||||
// Add the card for each app
|
||||
|
||||
$.each(catalog, function(k, infos) {
|
||||
|
||||
app_id = infos.manifest.id;
|
||||
app_install_bootstrap = "success";
|
||||
if (infos.state === "validated") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "working") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "inprogress") {
|
||||
app_state_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.state === "notworking") {
|
||||
app_state_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
}
|
||||
if (infos.level == null ) {
|
||||
infos.level = '?';
|
||||
}
|
||||
if (infos.level == 0 ) {
|
||||
app_level_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level <= 2) {
|
||||
app_level_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level >= 7) {
|
||||
app_level_bootstrap = "success";
|
||||
|
||||
// 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_state_css_style = "epic";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "epic";
|
||||
} else if (infos.level > 4) {
|
||||
app_quality = "decent,working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "success";
|
||||
} else if (infos.level > 0) {
|
||||
app_quality = "working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "warning";
|
||||
app_level_css_style = "warning";
|
||||
} else {
|
||||
app_level_bootstrap = "default";
|
||||
app_quality = "none";
|
||||
if (infos.state === "working") {
|
||||
app_state_css_style = "success";
|
||||
}
|
||||
else if (infos.state === "inprogress") {
|
||||
app_state_css_style = "warning";
|
||||
}
|
||||
else {
|
||||
app_state_css_style = "danger";
|
||||
}
|
||||
app_install_css_style = "danger";
|
||||
app_level_css_style = "danger";
|
||||
}
|
||||
|
||||
// If level is null, we wanna display '?'
|
||||
if (infos.level == null) {
|
||||
infos.level = '?';
|
||||
}
|
||||
|
||||
// Fill the template
|
||||
|
@ -264,10 +320,12 @@ $(document).ready(function () {
|
|||
.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_state_bootstrap}', app_state_bootstrap)
|
||||
.replace('{app_install_bootstrap}', app_install_bootstrap);
|
||||
.replace('{app_state_css_style}', app_state_css_style)
|
||||
.replace('{app_install_css_style}', app_install_css_style);
|
||||
|
||||
// Handle the maintainer info
|
||||
if (infos.maintained == false)
|
||||
{
|
||||
html = html
|
||||
|
@ -275,34 +333,34 @@ $(document).ready(function () {
|
|||
.replace('{maintained_icon}', 'warning-sign')
|
||||
.replace('{app_maintainer}', "Unmaintained")
|
||||
.replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
|
||||
} else {
|
||||
if (infos.manifest.developer) {
|
||||
}
|
||||
else {
|
||||
html = html
|
||||
.replace('{maintained_state}', 'maintained')
|
||||
.replace('{maintained_icon}', 'user')
|
||||
.replace('{app_maintainer}', infos.manifest.developer.name)
|
||||
.replace('{maintained_help}', "Current maintainer of this package");
|
||||
}
|
||||
if (infos.manifest.maintainer) {
|
||||
html = html
|
||||
.replace('{maintained_state}', 'maintained')
|
||||
.replace('{maintained_icon}', 'user')
|
||||
.replace('{app_maintainer}', infos.manifest.maintainer.name)
|
||||
.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);
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if (infos.manifest.license && infos.manifest.license != 'free') {
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if ((infos.state === "high quality") || (infos.state === "working")) {
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">level '+infos.level+'</span>');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
|
|
311
apps_ar.md
311
apps_ar.md
|
@ -1,4 +1,4 @@
|
|||
# <div dir="rtl">التطبيقات</div>
|
||||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
This page requires Javascript enabled to display properly :s.
|
||||
|
@ -6,34 +6,49 @@ This page requires Javascript enabled to display properly :s.
|
|||
<br/>
|
||||
</span>
|
||||
|
||||
<div dir="rtl" class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input type="text" id="filter-app-cards" class="form-control" placeholder="البحث عن تطبيقات ..." aria-describedby="basic-addon1"/>
|
||||
<div dir="rtl" class="input-group-btn">
|
||||
<!--
|
||||
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="app-cards-list-filter-text">التطبيقات الرسمية فقط</span> <span class="caret"></span>
|
||||
<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="#" id="app-cards-list-validated">التطبيقات الرسمية فقط</a></li>
|
||||
<li><a href="#" id="app-cards-list-working">التطبيقات "التي تعمل" فقط</a></li>
|
||||
<li><a href="#" id="app-cards-list-working-inprogress">التطبيقات "الجاري العمل عليها"/"و التي لاتعمل"</a></li>
|
||||
<li><a href="#" id="app-cards-list-all-apps">كافة التطبيقات</a></li>
|
||||
<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 />
|
||||
<div dir="rtl" id="community-app-list-warrant" class="alert alert-danger">
|
||||
<p>إلّا التطبيقات المحددة بعلامة <span class="label label-success label-as-badge">validated</span> تعتبر مدعومة رسميا من طرف فريق التحزيم. </p>
|
||||
|
||||
<p>Les apps marquées <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont des applications non officielles maintenues par la communauté, vous pouvez les tester et les utiliser **à vos risques et périls**.</p>
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<p>Important: c'est le mainteneur de l'application qui définit son application comme "working" et non pas l'équipe d'empaquetage de Yunohost. Installez ces apps à vos risques et périls. Nous ne fournissons pas de support pour elles.</p>
|
||||
<div 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 code repositories.</div>
|
||||
|
||||
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
|
||||
Applications with a level below or equal to 4 may be working, but they might be not well-integrated with YunoHost, or they do not respect the recommended packaging practices.
|
||||
</div>
|
||||
<div dir="rtl"class="alert alert-info">إنّ فريق التحزيم سوف يأخذ بعين الإعتبار ملاحظاتكم. مثال، إن قمتم بتنصيب تطبيقاتهم و عارضتكم مشاكل أو إن كلمة عندكم أفكارا لتحسين التطبيقات، فلا تبخلوا التحو تذكرة مباشرة على صفحات مستودعات المشاريع نفسها</div>
|
||||
|
||||
<div class="app-cards-list" id="app-cards-list"></div>
|
||||
<div id="broken-apps-disclaimer" class="alert alert-danger">
|
||||
Applications with level 0, or flagged as <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are still in development or are know to not be working. **Do not install them** in a production environment!
|
||||
</div>
|
||||
|
||||
<div dir="rtl" class="alert alert-warning">إن لم تتمكنوا من العثور على التطبيق الذي تبحثون عنه هنا، يمكنكم البحث كذلك في مستودع تطبيقات المجتمع (التي تعمل، الجاري العمل عليها و التي لا تعمل) أو قوموا بإضافتها إلى <a href="/apps_wishlist_fr">قائمة التطبيقات المرغوب فيها</a>.</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>
|
||||
/*=================================================
|
||||
|
@ -64,6 +79,7 @@ This page requires Javascript enabled to display properly :s.
|
|||
min-height: 1px;
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
|
@ -75,12 +91,17 @@ This page requires Javascript enabled to display properly :s.
|
|||
margin-bottom:5px;
|
||||
font-size:1.2em;
|
||||
}
|
||||
.app-card .category {
|
||||
.app-card .app-badges {
|
||||
height:35px;
|
||||
}
|
||||
.app-card .category .label, .app-card-date-maintainer {
|
||||
font-size:0.7em;
|
||||
.app-card .app-badges .label, .app-card-date-maintainer {
|
||||
font-size:0.6em;
|
||||
}
|
||||
|
||||
.label-epic {
|
||||
background-color: darkorchid;
|
||||
}
|
||||
|
||||
.app-card-date-maintainer {
|
||||
text-align:right;
|
||||
max-height: 18px;
|
||||
|
@ -89,6 +110,10 @@ This page requires Javascript enabled to display properly :s.
|
|||
margin-top: -5px;
|
||||
}
|
||||
|
||||
.app-card .unmaintained {
|
||||
color: #e0aa33;
|
||||
}
|
||||
|
||||
.app-card-desc {
|
||||
height:100px;
|
||||
overflow: hidden;
|
||||
|
@ -104,8 +129,10 @@ This page requires Javascript enabled to display properly :s.
|
|||
}
|
||||
.app-card > .btn-group > .btn{
|
||||
border-bottom:0;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.58;
|
||||
}
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
border-left:0;
|
||||
border-top-left-radius:0;
|
||||
}
|
||||
|
@ -118,33 +145,41 @@ This page requires Javascript enabled to display properly :s.
|
|||
/*===============================================*/
|
||||
</style>
|
||||
|
||||
<!--
|
||||
App card template
|
||||
-->
|
||||
|
||||
<script type="text/template" id="app-template2">
|
||||
<div class="app-card_{app_id} app-card panel panel-default">
|
||||
<div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
|
||||
|
||||
<div class="panel-body">
|
||||
<h3>{app_name}</h3>
|
||||
<div class="category"></div>
|
||||
<div class="app-badges"></div>
|
||||
|
||||
<div class="app-card-desc">{app_description}</div>
|
||||
</div>
|
||||
|
||||
<div class="app-card-date-maintainer">
|
||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
||||
<span class="glyphicon glyphicon-user"></span> {app_maintainer}
|
||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
||||
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> الشفرة</a>
|
||||
<a href="#/app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> الدليل</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">تنصيب</a>
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
||||
<a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_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 = ['جانفي','فيفري','مارس','أفريل','ماي','جوان','جويلية','أوت','سبتمبر','أكتوبر','نوفمبر','ديسمبر'];
|
||||
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();
|
||||
|
@ -156,19 +191,36 @@ function timeConverter(UNIX_timestamp) {
|
|||
return time;
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
// Hide warrant about community list
|
||||
$('#community-app-list-warrant').hide();
|
||||
var filters = ["validated"];
|
||||
|
||||
// Hide warrant about states when we're using the default filter
|
||||
$('#state-disclaimer').hide();
|
||||
var quality_filters = "decent";
|
||||
|
||||
function filter(){
|
||||
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
|
||||
var valThis = $('#filter-app-cards').val().toLowerCase();
|
||||
$('.app-card').each(function(){
|
||||
var text = $(this).find('h3').text().toLowerCase();
|
||||
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
|
||||
|
||||
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 app_name = $(this).find('h3').text().toLowerCase();
|
||||
if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
|
||||
{
|
||||
$(this).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
|
||||
|
||||
// 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();
|
||||
}
|
||||
|
||||
//=================================================
|
||||
|
@ -176,120 +228,141 @@ $(document).ready(function () {
|
|||
//=================================================
|
||||
$('#filter-app-cards').keyup(filter);
|
||||
|
||||
$('#app-cards-list-validated').click(function(){
|
||||
filters = ["validated"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
|
||||
$('a[data-quality-filter]').on("click", function(){
|
||||
$('#current-quality-filter').text($(this).text());
|
||||
$('#current-quality-filter').data("filter", $(this).data("quality-filter"));
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working').click(function(){
|
||||
filters = ["validated", "working"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working-inprogress').click(function(){
|
||||
filters = ["notworking", "inprogress"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-all-apps').click(function(){
|
||||
filters = ["validated", "working", "inprogress", "notworking"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
|
||||
filter();
|
||||
|
||||
//=================================================
|
||||
// Upload apps lists
|
||||
//=================================================
|
||||
var app_list={};
|
||||
$.when(
|
||||
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
|
||||
app_list.community = $.map(community, function(el) { return el; });
|
||||
}),
|
||||
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
|
||||
app_list.official = $.map(official, function(el) { return el; });
|
||||
})
|
||||
).then(function() {
|
||||
app_list = app_list.official.concat(app_list.community);
|
||||
|
||||
// Sort alpha
|
||||
app_list.sort(function(a, b){
|
||||
a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
|
||||
b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
|
||||
var catalog = undefined;
|
||||
|
||||
// Fetch application catalog
|
||||
|
||||
$.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
|
||||
|
||||
catalog = $.map(data, 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.state === "inprogress") || (infos.state === "notworking")) {
|
||||
infos.level = null;
|
||||
}
|
||||
if ((infos.high_quality === true) && (infos.level === 8)) {
|
||||
infos.state = "high 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;
|
||||
});
|
||||
$.each(app_list, function(k, infos) {
|
||||
|
||||
// Add the card for each app
|
||||
|
||||
$.each(catalog, function(k, infos) {
|
||||
|
||||
app_id = infos.manifest.id;
|
||||
app_install_bootstrap = "success";
|
||||
if (infos.state === "validated") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "working") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "inprogress") {
|
||||
app_state_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.state === "notworking") {
|
||||
app_state_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
}
|
||||
if (infos.level == null ) {
|
||||
infos.level = '?';
|
||||
}
|
||||
if (infos.level == 0 ) {
|
||||
app_level_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level <= 2) {
|
||||
app_level_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level >= 7) {
|
||||
app_level_bootstrap = "success";
|
||||
|
||||
// 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_state_css_style = "epic";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "epic";
|
||||
} else if (infos.level > 4) {
|
||||
app_quality = "decent,working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "success";
|
||||
} else if (infos.level > 0) {
|
||||
app_quality = "working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "warning";
|
||||
app_level_css_style = "warning";
|
||||
} else {
|
||||
app_level_bootstrap = "default";
|
||||
app_quality = "none";
|
||||
if (infos.state === "working") {
|
||||
app_state_css_style = "success";
|
||||
}
|
||||
else if (infos.state === "inprogress") {
|
||||
app_state_css_style = "warning";
|
||||
}
|
||||
else {
|
||||
app_state_css_style = "danger";
|
||||
}
|
||||
app_install_css_style = "danger";
|
||||
app_level_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.fr)
|
||||
.replace('{app_description}', infos.manifest.description.en)
|
||||
.replace(/{app_git}/g, infos.git.url)
|
||||
.replace('{app_branch}', infos.git.branch)
|
||||
.replace('{app_level}', infos.level)
|
||||
.replace('{app_quality}', app_quality)
|
||||
.replace('{app_update}', timeConverter(infos.lastUpdate))
|
||||
.replace('{app_state_bootstrap}', app_state_bootstrap)
|
||||
.replace('{app_install_bootstrap}', app_install_bootstrap);
|
||||
.replace('{app_state_css_style}', app_state_css_style)
|
||||
.replace('{app_install_css_style}', app_install_css_style);
|
||||
|
||||
if (infos.manifest.developer) {
|
||||
html = html
|
||||
.replace('{app_maintainer}', infos.manifest.developer.name)
|
||||
.replace('{app_mail}', infos.manifest.developer.email);
|
||||
// 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 !");
|
||||
}
|
||||
|
||||
if (infos.manifest.maintainer) {
|
||||
else {
|
||||
html = html
|
||||
.replace('{app_maintainer}', infos.manifest.maintainer.name)
|
||||
.replace('{app_mail}', infos.manifest.maintainer.email);
|
||||
.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);
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if (infos.manifest.license && infos.manifest.license != 'free') {
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if ((infos.state === "high quality") || (infos.state === "working")) {
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">level '+infos.level+'</span>');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
//=================================================
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
368
apps_es.md
Normal file
368
apps_es.md
Normal file
|
@ -0,0 +1,368 @@
|
|||
# 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 code repositories.</div>
|
||||
|
||||
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
|
||||
Applications with a level below or equal to 4 may be working, but they might be not well-integrated with YunoHost, or they do not respect the recommended packaging practices.
|
||||
</div>
|
||||
|
||||
<div id="broken-apps-disclaimer" class="alert alert-danger">
|
||||
Applications with level 0, or flagged as <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are still in development or are know to not be working. **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>
|
||||
/*=================================================
|
||||
Search bar
|
||||
=================================================*/
|
||||
#filter-app-cards, #app-cards-list {
|
||||
width:100%;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
Force return space after card list
|
||||
=================================================*/
|
||||
#app-cards-list:after {
|
||||
content:'';
|
||||
display:block;
|
||||
clear: both;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card
|
||||
=================================================*/
|
||||
.app-card {
|
||||
margin-bottom:20px;
|
||||
width:270px;
|
||||
float:left;
|
||||
min-height: 1px;
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card body
|
||||
=================================================*/
|
||||
.app-card .panel-body > h3 {
|
||||
margin-top:0;
|
||||
margin-bottom:5px;
|
||||
font-size:1.2em;
|
||||
}
|
||||
.app-card .app-badges {
|
||||
height:35px;
|
||||
}
|
||||
.app-card .app-badges .label, .app-card-date-maintainer {
|
||||
font-size:0.6em;
|
||||
}
|
||||
|
||||
.label-epic {
|
||||
background-color: darkorchid;
|
||||
}
|
||||
|
||||
.app-card-date-maintainer {
|
||||
text-align:right;
|
||||
max-height: 18px;
|
||||
margin-bottom: 3px;
|
||||
margin-right: 7px;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
.app-card .unmaintained {
|
||||
color: #e0aa33;
|
||||
}
|
||||
|
||||
.app-card-desc {
|
||||
height:100px;
|
||||
overflow: hidden;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card footer
|
||||
=================================================*/
|
||||
.app-card .btn-group {
|
||||
width:100%;
|
||||
margin-left: 0px;
|
||||
}
|
||||
.app-card > .btn-group > .btn{
|
||||
border-bottom:0;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.58;
|
||||
}
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
border-left:0;
|
||||
border-top-left-radius:0;
|
||||
}
|
||||
.app-card > .btn-group > .btn:last-child {
|
||||
border-right:0;
|
||||
border-top-right-radius:0;
|
||||
margin-left: 0px;
|
||||
width: 33.6%;
|
||||
}
|
||||
/*===============================================*/
|
||||
</style>
|
||||
|
||||
<!--
|
||||
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="panel-body">
|
||||
<h3>{app_name}</h3>
|
||||
<div class="app-badges"></div>
|
||||
|
||||
<div class="app-card-desc">{app_description}</div>
|
||||
</div>
|
||||
<div class="app-card-date-maintainer">
|
||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
||||
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
||||
<a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
|
||||
</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 () {
|
||||
|
||||
// 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 app_name = $(this).find('h3').text().toLowerCase();
|
||||
if (app_name.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/apps.json', {}, function(data) {
|
||||
|
||||
catalog = $.map(data, 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.state === "inprogress") || (infos.state === "notworking")) {
|
||||
infos.level = null;
|
||||
}
|
||||
if ((infos.high_quality === true) && (infos.level === 8)) {
|
||||
infos.state = "high 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_state_css_style = "epic";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "epic";
|
||||
} else if (infos.level > 4) {
|
||||
app_quality = "decent,working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "success";
|
||||
} else if (infos.level > 0) {
|
||||
app_quality = "working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "warning";
|
||||
app_level_css_style = "warning";
|
||||
} else {
|
||||
app_quality = "none";
|
||||
if (infos.state === "working") {
|
||||
app_state_css_style = "success";
|
||||
}
|
||||
else if (infos.state === "inprogress") {
|
||||
app_state_css_style = "warning";
|
||||
}
|
||||
else {
|
||||
app_state_css_style = "danger";
|
||||
}
|
||||
app_install_css_style = "danger";
|
||||
app_level_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.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_state_css_style}', app_state_css_style)
|
||||
.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);
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if ((infos.state === "high quality") || (infos.state === "working")) {
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">level '+infos.level+'</span>');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
});
|
||||
</script>
|
302
apps_fr.md
302
apps_fr.md
|
@ -1,4 +1,4 @@
|
|||
# Apps
|
||||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
|
||||
|
@ -6,34 +6,48 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
|
|||
<br/>
|
||||
</span>
|
||||
|
||||
<!--
|
||||
Search bar
|
||||
-->
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input type="text" id="filter-app-cards" class="form-control" placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
|
||||
<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="app-cards-list-filter-text">Apps officielles seulement</span> <span class="caret"></span>
|
||||
<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="#" id="app-cards-list-validated">Apps officielles seulement</a></li>
|
||||
<li><a href="#" id="app-cards-list-working">Apps "working" seulement</a></li>
|
||||
<li><a href="#" id="app-cards-list-working-inprogress">Apps "in progress"/"not working"</a></li>
|
||||
<li><a href="#" id="app-cards-list-all-apps">Toutes les apps</a></li>
|
||||
<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 />
|
||||
<div id="community-app-list-warrant" class="alert alert-danger">
|
||||
<p>Seules les apps marquées <span class="label label-success label-as-badge">validated</span> sont officiellement supportées par l'équipe de développement d'applications. </p>
|
||||
|
||||
<p>Les apps marquées <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont des applications non officielles maintenues par la communauté, vous pouvez les tester et les utiliser **à vos risques et périls**.</p>
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<p>Important: c'est le mainteneur de l'application qui définit son application comme "working" et non pas l'équipe de développement d'applications de Yunohost. Installez ces apps à vos risques et périls. Nous ne fournissons pas de support pour elles.</p>
|
||||
<div 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 avec un niveau inférieur ou égal à 4 peuvent fonctionner, mais ne seront pas forcément bien intégrées avec YunoHost, ou bien ne respectent pas les bonnes pratiques de packaging.
|
||||
</div>
|
||||
<div class="alert alert-info">Les développeurs d'applications apprécieront vos remarques. Si vous installez leurs apps et trouvez des dysfonctionnement, ou si vous avez des idées d'amélioration, n'hésitez pas à créer des tickets directement sur les pages de dépots des projets.</div>
|
||||
|
||||
<div class="app-cards-list" id="app-cards-list"></div>
|
||||
<div id="broken-apps-disclaimer" class="alert alert-danger">
|
||||
Les applications niveau 0, ou étiquettées <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont toujours en cours de packaging ou sont connues pour être cassées. **Ne les installez pas** sur un serveur de production!
|
||||
</div>
|
||||
|
||||
<div class="alert alert-warning">Si vous ne trouvez pas l'application que vous recherchez, vous pouvez la rechercher dans les apps communautaires (working, inprogress et notworking) ou remplir la <a href="/apps_wishlist_fr">liste d'apps souhaitées</a>.</div>
|
||||
<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>
|
||||
/*=================================================
|
||||
|
@ -64,6 +78,7 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
|
|||
min-height: 1px;
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
|
@ -75,12 +90,17 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
|
|||
margin-bottom:5px;
|
||||
font-size:1.2em;
|
||||
}
|
||||
.app-card .category {
|
||||
.app-card .app-badges {
|
||||
height:35px;
|
||||
}
|
||||
.app-card .category .label, .app-card-date-maintainer {
|
||||
font-size:0.7em;
|
||||
.app-card .app-badges .label, .app-card-date-maintainer {
|
||||
font-size:0.6em;
|
||||
}
|
||||
|
||||
.label-epic {
|
||||
background-color: darkorchid;
|
||||
}
|
||||
|
||||
.app-card-date-maintainer {
|
||||
text-align:right;
|
||||
max-height: 18px;
|
||||
|
@ -89,6 +109,10 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
|
|||
margin-top: -5px;
|
||||
}
|
||||
|
||||
.app-card .unmaintained {
|
||||
color: #e0aa33;
|
||||
}
|
||||
|
||||
.app-card-desc {
|
||||
height:100px;
|
||||
overflow: hidden;
|
||||
|
@ -104,8 +128,10 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
|
|||
}
|
||||
.app-card > .btn-group > .btn{
|
||||
border-bottom:0;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.58;
|
||||
}
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
border-left:0;
|
||||
border-top-left-radius:0;
|
||||
}
|
||||
|
@ -118,30 +144,38 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
|
|||
/*===============================================*/
|
||||
</style>
|
||||
|
||||
<!--
|
||||
App card template
|
||||
-->
|
||||
|
||||
<script type="text/template" id="app-template2">
|
||||
<div class="app-card_{app_id} app-card panel panel-default">
|
||||
<div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
|
||||
|
||||
<div class="panel-body">
|
||||
<h3>{app_name}</h3>
|
||||
<div class="category"></div>
|
||||
<div class="app-badges"></div>
|
||||
|
||||
<div class="app-card-desc">{app_description}</div>
|
||||
</div>
|
||||
|
||||
<div class="app-card-date-maintainer">
|
||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
||||
<span class="glyphicon glyphicon-user"></span> {app_maintainer}
|
||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
||||
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
||||
<a href="#/app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">Installer</a>
|
||||
<a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Installer</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'];
|
||||
|
@ -156,19 +190,36 @@ function timeConverter(UNIX_timestamp) {
|
|||
return time;
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
// Hide warrant about community list
|
||||
$('#community-app-list-warrant').hide();
|
||||
var filters = ["validated"];
|
||||
|
||||
// Hide warrant about states when we're using the default filter
|
||||
$('#state-disclaimer').hide();
|
||||
var quality_filters = "decent";
|
||||
|
||||
function filter(){
|
||||
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
|
||||
var valThis = $('#filter-app-cards').val().toLowerCase();
|
||||
$('.app-card').each(function(){
|
||||
var text = $(this).find('h3').text().toLowerCase();
|
||||
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
|
||||
|
||||
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 app_name = $(this).find('h3').text().toLowerCase();
|
||||
if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
|
||||
{
|
||||
$(this).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
|
||||
|
||||
// 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();
|
||||
}
|
||||
|
||||
//=================================================
|
||||
|
@ -176,81 +227,88 @@ $(document).ready(function () {
|
|||
//=================================================
|
||||
$('#filter-app-cards').keyup(filter);
|
||||
|
||||
$('#app-cards-list-validated').click(function(){
|
||||
filters = ["validated"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
|
||||
$('a[data-quality-filter]').on("click", function(){
|
||||
$('#current-quality-filter').text($(this).text());
|
||||
$('#current-quality-filter').data("filter", $(this).data("quality-filter"));
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working').click(function(){
|
||||
filters = ["validated", "working"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working-inprogress').click(function(){
|
||||
filters = ["notworking", "inprogress"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-all-apps').click(function(){
|
||||
filters = ["validated", "working", "inprogress", "notworking"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
|
||||
|
||||
filter();
|
||||
|
||||
//=================================================
|
||||
// Upload apps lists
|
||||
//=================================================
|
||||
var app_list={};
|
||||
$.when(
|
||||
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
|
||||
app_list.community = $.map(community, function(el) { return el; });
|
||||
}),
|
||||
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
|
||||
app_list.official = $.map(official, function(el) { return el; });
|
||||
})
|
||||
).then(function() {
|
||||
app_list = app_list.official.concat(app_list.community);
|
||||
|
||||
// Sort alpha
|
||||
app_list.sort(function(a, b){
|
||||
a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
|
||||
b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
|
||||
var catalog = undefined;
|
||||
|
||||
// Fetch application catalog
|
||||
|
||||
$.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
|
||||
|
||||
catalog = $.map(data, 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.state === "inprogress") || (infos.state === "notworking")) {
|
||||
infos.level = null;
|
||||
}
|
||||
if ((infos.high_quality === true) && (infos.level === 8)) {
|
||||
infos.state = "high 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;
|
||||
});
|
||||
$.each(app_list, function(k, infos) {
|
||||
|
||||
// Add the card for each app
|
||||
|
||||
$.each(catalog, function(k, infos) {
|
||||
|
||||
app_id = infos.manifest.id;
|
||||
app_install_bootstrap = "success";
|
||||
if (infos.state === "validated") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "working") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "inprogress") {
|
||||
app_state_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.state === "notworking") {
|
||||
app_state_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
}
|
||||
if (infos.level == null ) {
|
||||
infos.level = '?';
|
||||
}
|
||||
if (infos.level == 0 ) {
|
||||
app_level_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level <= 2) {
|
||||
app_level_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level >= 7) {
|
||||
app_level_bootstrap = "success";
|
||||
|
||||
// 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_state_css_style = "epic";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "epic";
|
||||
} else if (infos.level > 4) {
|
||||
app_quality = "decent,working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "success";
|
||||
} else if (infos.level > 0) {
|
||||
app_quality = "working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "warning";
|
||||
app_level_css_style = "warning";
|
||||
} else {
|
||||
app_level_bootstrap = "default";
|
||||
app_quality = "none";
|
||||
if (infos.state === "working") {
|
||||
app_state_css_style = "success";
|
||||
}
|
||||
else if (infos.state === "inprogress") {
|
||||
app_state_css_style = "warning";
|
||||
}
|
||||
else {
|
||||
app_state_css_style = "danger";
|
||||
}
|
||||
app_install_css_style = "danger";
|
||||
app_level_css_style = "danger";
|
||||
}
|
||||
|
||||
// If level is null, we wanna display '?'
|
||||
if (infos.level == null) {
|
||||
infos.level = '?';
|
||||
}
|
||||
|
||||
// Fill the template
|
||||
|
@ -261,35 +319,49 @@ $(document).ready(function () {
|
|||
.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_state_bootstrap}', app_state_bootstrap)
|
||||
.replace('{app_install_bootstrap}', app_install_bootstrap);
|
||||
.replace('{app_state_css_style}', app_state_css_style)
|
||||
.replace('{app_install_css_style}', app_install_css_style);
|
||||
|
||||
if (infos.manifest.developer) {
|
||||
html = html
|
||||
.replace('{app_maintainer}', infos.manifest.developer.name)
|
||||
.replace('{app_mail}', infos.manifest.developer.email);
|
||||
// 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 !");
|
||||
}
|
||||
|
||||
if (infos.manifest.maintainer) {
|
||||
else {
|
||||
html = html
|
||||
.replace('{app_maintainer}', infos.manifest.maintainer.name)
|
||||
.replace('{app_mail}', infos.manifest.maintainer.email);
|
||||
.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);
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if (infos.manifest.license && infos.manifest.license != 'free') {
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if ((infos.state === "high quality") || (infos.state === "working")) {
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">niveau '+infos.level+'</span>');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
//=================================================
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,43 +1 @@
|
|||
# Équivalence avec les applications Framasoft
|
||||
|
||||
| App Framasoft | Équivalent | Package | Status |
|
||||
| :---: | :---: | :---: | :---: |
|
||||
| Framapad | Etherpad + mypads | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/etherpad_mypads_ynh) |  |
|
||||
| Framadrive | Nextcloud | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/nextcloud_ynh) |  |
|
||||
| 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) |  |
|
||||
| Framadrop | Lufi | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lufi_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) |  |
|
||||
| Framabin | PrivateBin | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/zerobin_ynh) |  |
|
||||
| Frama.link | Lstu | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lstu_ynh) |  |
|
||||
| Framatube | Mediadrop | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mediadrop_ynh) |  |
|
||||
| Framanews | TinyTinyRSS | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/ttrss_ynh) |  |
|
||||
| Framabee | Searx | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/searx_ynh) |  |
|
||||
| Framabag | Wallabag | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wallabag_ynh) |  |
|
||||
| Framacalc | Ethercalc | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/ethercalc_ynh) |  |
|
||||
| Framaboard | Kanboard | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/kanboard_ynh) |  |
|
||||
| Framadate | OpenSondage | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/opensondage_ynh) |  |
|
||||
| Framasphère | Diaspora* | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/aymhce/diaspora_ynh) |  |
|
||||
| Framabookin | BicBucStriim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/BicBucStriim_ynh) |  |
|
||||
| Framanotes | Turtl | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/Turtl_ynh) |  |
|
||||
| Framemo | Scrumblr | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/scrumblr_ynh) |  |
|
||||
| Framinetest | Minetest | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/minetest_ynh) |  |
|
||||
| Framatalk | Jitsi Meet | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_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) |  |
|
||||
| Framindmap | Wisemapping | Non packagé | |
|
||||
| Framavectoriel | SVG-Edit | Non packagé | |
|
||||
| Framacarte | uMap | Non packagé | |
|
||||
| Framaforms | WebForms? | Non packagé | |
|
||||
| Framaestro | Framaestro | Non packagé | |
|
||||
| Framavox | ? | Non packagé | |
|
||||
| Framagenda | (Agenda Nextcloud) | Non packagé | |
|
||||
| Framagames | ? | Non packagé | |
|
||||
| MyFrama | ? | Non packagé | |
|
||||
|
||||
### Voir aussi
|
||||
|
||||
- [Liste complète des applications packagées](/apps)
|
||||
- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)
|
||||
|
||||
Unfortunately, this page only exists [in french here](apps_framasoft_fr) for now.
|
||||
|
|
48
apps_framasoft_fr.md
Normal file
48
apps_framasoft_fr.md
Normal file
|
@ -0,0 +1,48 @@
|
|||
# É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,46 +0,0 @@
|
|||
## Problem
|
||||
- *Description of why you made this PR*
|
||||
|
||||
## Solution
|
||||
- *And how you fix that*
|
||||
|
||||
## PR Status
|
||||
*Obviously, you should really check these affirmations*
|
||||
Work finished. Package_check, basic tests and upgrade from last version OK.
|
||||
Could be reviewed and tested.
|
||||
|
||||
## Validation
|
||||
---
|
||||
*Minor decision*
|
||||
- [ ] **Upgrade previous version** :
|
||||
- [ ] **Code review** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **CI succeeded** : [/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*
|
||||
When the PR is mark as ready to merge, you have to wait for 3 days before really merge it.
|
||||
|
||||
*Medium decision*
|
||||
- [ ] **Complete test** :
|
||||
- [ ] **Upgrade previous version** :
|
||||
- [ ] **Code review** :
|
||||
- [ ] **Code review** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **CI succeeded** : [/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*
|
||||
When the PR is mark as ready to merge, you have to wait for 7 days before really merge it.
|
||||
|
||||
*Major decision*
|
||||
- [ ] **Complete test** :
|
||||
- [ ] **Complete test** :
|
||||
- [ ] **Upgrade previous version** :
|
||||
- [ ] **Upgrade previous version** :
|
||||
- [ ] **Code review** :
|
||||
- [ ] **Code review** :
|
||||
- [ ] **Code review** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **Approval (LGTM)** :
|
||||
- [ ] **CI succeeded** : [/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/APP_ynh%20BRANCH%20(Official)/) *Please replace APP and BRANCH in this link*
|
||||
When the PR is mark as ready to merge, you have to wait for 7 days before really merge it.
|
288
apps_it.md
288
apps_it.md
|
@ -1,39 +1,54 @@
|
|||
# Apps
|
||||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s.
|
||||
This page requires Javascript enabled to display properly :s.
|
||||
<br/>
|
||||
<br/>
|
||||
</span>
|
||||
|
||||
<!--
|
||||
Search bar
|
||||
-->
|
||||
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input type="text" id="filter-app-cards" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
|
||||
<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="app-cards-list-filter-text">Solo app ufficiali</span> <span class="caret"></span>
|
||||
<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="#" id="app-cards-list-validated">Solo app ufficiali</a></li>
|
||||
<li><a href="#" id="app-cards-list-working">Solo app funzionanti</a></li>
|
||||
<li><a href="#" id="app-cards-list-working-inprogress">App in sviluppo/non funzionanti</a></li>
|
||||
<li><a href="#" id="app-cards-list-all-apps">Tutte le app</a></li>
|
||||
<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 />
|
||||
<div id="community-app-list-warrant" class="alert alert-danger">
|
||||
<p>Solo le app etichettate come <span class="label label-success label-as-badge">validate</span> sono ufficialmente supportate dalla squadra di packaging. </p>
|
||||
|
||||
<p>App etichettate come <span class="label label-success label-as-badge">funzionanti</span>, <span class="label label-warning label-as-badge">insviluppo</span>, <span class="label label-danger label-as-badge">nonfunzionanti</span> arrivano dai repository della comunità, puoi provare ed utilizzarle **a tuo rischio e pericolo**.</p>
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<p>Importante: è il mantenitore dell'applicazione che indica l'applicazione come funzionante, non il team base di YunoHost. Installale a tuo rischio e pericolo. Noi non forniamo supporto per queste app.</p>
|
||||
<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 code repositories.</div>
|
||||
|
||||
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
|
||||
Applications with a level below or equal to 4 may be working, but they might be not well-integrated with YunoHost, or they do not respect the recommended packaging practices.
|
||||
</div>
|
||||
<div class="alert alert-info">I mantenitori apprezzeranno i tuoi consigli.Se le installi e incontri dei problemi, o idee per migliorarle, non esitare a segnalare la cosa direttamente nei rispettivi repository.</div>
|
||||
|
||||
<div class="app-cards-list" id="app-cards-list"></div>
|
||||
<div id="broken-apps-disclaimer" class="alert alert-danger">
|
||||
Applications with level 0, or flagged as <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are still in development or are know to not be working. **Do not install them** in a production environment!
|
||||
</div>
|
||||
|
||||
<div class="alert alert-warning">Se non trovi l'app che stai cercando, puoi provarla a cercarla nel repository delle app della comunità (funzionanti, in sviluppo, non funzionanti) o aggiungila alla <a href="/apps_wishlist_en">lista delle app dei desideri</a>.</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>
|
||||
/*=================================================
|
||||
|
@ -64,6 +79,7 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
|
|||
min-height: 1px;
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
|
@ -75,12 +91,17 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
|
|||
margin-bottom:5px;
|
||||
font-size:1.2em;
|
||||
}
|
||||
.app-card .category {
|
||||
.app-card .app-badges {
|
||||
height:35px;
|
||||
}
|
||||
.app-card .category .label, .app-card-date-maintainer {
|
||||
font-size:0.7em;
|
||||
.app-card .app-badges .label, .app-card-date-maintainer {
|
||||
font-size:0.6em;
|
||||
}
|
||||
|
||||
.label-epic {
|
||||
background-color: darkorchid;
|
||||
}
|
||||
|
||||
.app-card-date-maintainer {
|
||||
text-align:right;
|
||||
max-height: 18px;
|
||||
|
@ -108,6 +129,8 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
|
|||
}
|
||||
.app-card > .btn-group > .btn{
|
||||
border-bottom:0;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.58;
|
||||
}
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
border-left:0;
|
||||
|
@ -122,12 +145,16 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
|
|||
/*===============================================*/
|
||||
</style>
|
||||
|
||||
<!--
|
||||
App card template
|
||||
-->
|
||||
|
||||
<script type="text/template" id="app-template2">
|
||||
<div class="app-card_{app_id} app-card panel panel-default">
|
||||
<div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
|
||||
|
||||
<div class="panel-body">
|
||||
<h3>{app_name}</h3>
|
||||
<div class="category"></div>
|
||||
<div class="app-badges"></div>
|
||||
|
||||
<div class="app-card-desc">{app_description}</div>
|
||||
</div>
|
||||
|
@ -136,18 +163,23 @@ Questa pagina richiede Javascript abilitato per essere correttamente mostrata :s
|
|||
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Codice</a>
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
||||
<a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Installa</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>
|
||||
</script>
|
||||
|
||||
<!--
|
||||
Javascript helpers
|
||||
-->
|
||||
|
||||
<script>
|
||||
|
||||
function timeConverter(UNIX_timestamp) {
|
||||
var a = new Date(UNIX_timestamp*1000);
|
||||
var months = ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
|
||||
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();
|
||||
|
@ -159,19 +191,36 @@ function timeConverter(UNIX_timestamp) {
|
|||
return time;
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
// Hide warrant about community list
|
||||
$('#community-app-list-warrant').hide();
|
||||
var filters = ["validated"];
|
||||
|
||||
// Hide warrant about states when we're using the default filter
|
||||
$('#state-disclaimer').hide();
|
||||
var quality_filters = "decent";
|
||||
|
||||
function filter(){
|
||||
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
|
||||
var valThis = $('#filter-app-cards').val().toLowerCase();
|
||||
$('.app-card').each(function(){
|
||||
var text = $(this).find('h3').text().toLowerCase();
|
||||
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
|
||||
|
||||
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 app_name = $(this).find('h3').text().toLowerCase();
|
||||
if (app_name.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
|
||||
{
|
||||
$(this).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
|
||||
|
||||
// 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();
|
||||
}
|
||||
|
||||
//=================================================
|
||||
|
@ -179,81 +228,88 @@ $(document).ready(function () {
|
|||
//=================================================
|
||||
$('#filter-app-cards').keyup(filter);
|
||||
|
||||
$('#app-cards-list-validated').click(function(){
|
||||
filters = ["validated"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
|
||||
$('a[data-quality-filter]').on("click", function(){
|
||||
$('#current-quality-filter').text($(this).text());
|
||||
$('#current-quality-filter').data("filter", $(this).data("quality-filter"));
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working').click(function(){
|
||||
filters = ["validated", "working"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working-inprogress').click(function(){
|
||||
filters = ["notworking", "inprogress"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-all-apps').click(function(){
|
||||
filters = ["validated", "working", "inprogress", "notworking"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
|
||||
filter();
|
||||
|
||||
//=================================================
|
||||
// Upload apps lists
|
||||
//=================================================
|
||||
var app_list={};
|
||||
$.when(
|
||||
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
|
||||
app_list.community = $.map(community, function(el) { return el; });
|
||||
}),
|
||||
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
|
||||
app_list.official = $.map(official, function(el) { return el; });
|
||||
})
|
||||
).then(function() {
|
||||
app_list = app_list.official.concat(app_list.community);
|
||||
var catalog = undefined;
|
||||
|
||||
// Sort alpha
|
||||
app_list.sort(function(a, b){
|
||||
a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
|
||||
b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
|
||||
// Fetch application catalog
|
||||
|
||||
$.getJSON('https://app.yunohost.org/apps.json', {}, function(data) {
|
||||
|
||||
catalog = $.map(data, 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.state === "inprogress") || (infos.state === "notworking")) {
|
||||
infos.level = null;
|
||||
}
|
||||
if ((infos.high_quality === true) && (infos.level === 8)) {
|
||||
infos.state = "high 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;
|
||||
});
|
||||
$.each(app_list, function(k, infos) {
|
||||
|
||||
// Add the card for each app
|
||||
|
||||
$.each(catalog, function(k, infos) {
|
||||
|
||||
app_id = infos.manifest.id;
|
||||
app_install_bootstrap = "success";
|
||||
if (infos.state === "validated") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "working") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "inprogress") {
|
||||
app_state_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.state === "notworking") {
|
||||
app_state_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
}
|
||||
if (infos.level == null ) {
|
||||
infos.level = '?';
|
||||
}
|
||||
if (infos.level == 0 ) {
|
||||
app_level_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level <= 2) {
|
||||
app_level_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level >= 7) {
|
||||
app_level_bootstrap = "success";
|
||||
|
||||
// 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_state_css_style = "epic";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "epic";
|
||||
} else if (infos.level > 4) {
|
||||
app_quality = "decent,working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "success";
|
||||
app_level_css_style = "success";
|
||||
} else if (infos.level > 0) {
|
||||
app_quality = "working,none";
|
||||
app_state_css_style = "success";
|
||||
app_install_css_style = "warning";
|
||||
app_level_css_style = "warning";
|
||||
} else {
|
||||
app_level_bootstrap = "default";
|
||||
app_quality = "none";
|
||||
if (infos.state === "working") {
|
||||
app_state_css_style = "success";
|
||||
}
|
||||
else if (infos.state === "inprogress") {
|
||||
app_state_css_style = "warning";
|
||||
}
|
||||
else {
|
||||
app_state_css_style = "danger";
|
||||
}
|
||||
app_install_css_style = "danger";
|
||||
app_level_css_style = "danger";
|
||||
}
|
||||
|
||||
// If level is null, we wanna display '?'
|
||||
if (infos.level == null) {
|
||||
infos.level = '?';
|
||||
}
|
||||
|
||||
// Fill the template
|
||||
|
@ -264,45 +320,47 @@ $(document).ready(function () {
|
|||
.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_state_bootstrap}', app_state_bootstrap)
|
||||
.replace('{app_install_bootstrap}', app_install_bootstrap);
|
||||
.replace('{app_state_css_style}', app_state_css_style)
|
||||
.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}', "Non mantenuto")
|
||||
.replace('{maintained_help}', "Questo pacchetto attualmente non è mantenuto. Sentiti libero di proporti come nuovo mantenitore !");
|
||||
} else {
|
||||
if (infos.manifest.developer) {
|
||||
.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('{app_maintainer}', infos.manifest.developer.name)
|
||||
.replace('{maintained_help}', "Mantenitore attuale di questo pacchetto");
|
||||
}
|
||||
if (infos.manifest.maintainer) {
|
||||
html = html
|
||||
.replace('{maintained_state}', 'maintained')
|
||||
.replace('{maintained_icon}', 'user')
|
||||
.replace('{app_maintainer}', infos.manifest.maintainer.name)
|
||||
.replace('{maintained_help}', "Mantenitore attuale di questo pacchetto");;
|
||||
}
|
||||
}
|
||||
.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);
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if (infos.manifest.license && infos.manifest.license != 'free') {
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_state_css_style+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if ((infos.state === "high quality") || (infos.state === "working")) {
|
||||
$('.app-card_'+ app_id + ' .app-badges').append(' <span class="label label-'+app_level_css_style+' label-as-badge">level '+infos.level+'</span>');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
|
|
|
@ -21,7 +21,7 @@ The full list of application (official and community) can be browsed at [this pa
|
|||
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_fr). Some tests results may also be available [on this dashboard](https://dash.yunohost.org/appci/branch/stable).
|
||||
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
|
||||
----------------------
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Applications
|
||||
============
|
||||
|
||||
L'une des fonctionnalités principales de YunoHost est la possibilité d'installer facile 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, ....
|
||||
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.
|
||||
|
||||
|
@ -21,12 +21,12 @@ La liste des applications existantes (officielles et communautaires) peut être
|
|||
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_fr). Certains résultats de tests peuvent également être disponibles sur [ce tableau de bord](https://dash.yunohost.org/appci/branch/stable).
|
||||
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é 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'app, soit le mainteneur n'a pas encore travaillé sur cette partie.
|
||||
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
|
||||
---------------------------
|
||||
|
|
234
apps_wishlist.md
234
apps_wishlist.md
|
@ -1,6 +1,6 @@
|
|||
# Apps wishlist
|
||||
|
||||
<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps_en">apps list</a></div>
|
||||
<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps">apps list</a></div>
|
||||
|
||||
The following list is a compiled wishlist of applications that would be nice-to-have.
|
||||
|
||||
|
@ -11,174 +11,146 @@ The following list is a compiled wishlist of applications that would be nice-to-
|
|||
- [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)
|
||||
- [Airtime](https://www.sourcefabric.org/en/airtime/)
|
||||
- [Ajenti](http://ajenti.org)
|
||||
- [aMule](https://github.com/amule-project/amule)
|
||||
- [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)
|
||||
- [Autoblog](https://github.com/mitsukarenai/Projet-Autoblog) (/!\ last update: Jan 27, 2015)
|
||||
- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions)
|
||||
- [Bitwarden](https://bitwarden.com/)
|
||||
- [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/)
|
||||
- [Browsepass](http://techualization.blogspot.de/2013/09/introducing-browsepass-keepass-on-web.html)
|
||||
- [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)
|
||||
- [btcpayserver](https://github.com/btcpayserver/btcpayserver)
|
||||
- [Caliopen](https://www.caliopen.org)
|
||||
- [Candy](https://candy-chat.github.io/candy)
|
||||
- [CardDavMate](https://www.inf-it.com/open-source/clients/carddavmate)
|
||||
- [cgit](http://git.zx2c4.com/cgit/about)
|
||||
- [CheckUp](https://sourcegraph.github.io/checkup)
|
||||
- [CiviCRM](https://civicrm.org)
|
||||
- [Cloud torrent](https://github.com/jpillora/cloud-torrent)
|
||||
- [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)
|
||||
- [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)
|
||||
- [Cronkeep](https://github.com/cronkeep/cronkeep)
|
||||
- [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
|
||||
- [CumulusClips](http://cumulusclips.org)
|
||||
- [Cyclos](https://www.cyclos.org)
|
||||
- [Darkwire.io](https://github.com/seripap/darkwire.io)
|
||||
- [Deluge](http://deluge-torrent.org) (with WebUI)
|
||||
- [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
|
||||
- [DNSchain](https://github.com/okTurtles/dnschain)
|
||||
- [Drupal](https://www.drupal.org/)
|
||||
- [eLabFTW](https://www.elabftw.net/) electronic lab notebook
|
||||
- [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)
|
||||
- [EteSync](https://www.etesync.com/)
|
||||
- [Ethersheet](https://github.com/ethersheet-collective/EtherSheet)
|
||||
- [Fail2web](https://github.com/Sean-Der/fail2web)
|
||||
- [Ferment](https://github.com/mmckegg/ferment)
|
||||
- [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)
|
||||
- [FEX](http://fex.rus.uni-stuttgart.de/)
|
||||
- [FileTea](https://filetea.me)
|
||||
- [FitTrackee](https://github.com/SamR1/FitTrackee)
|
||||
- [FoOlSlide](http://foolcode.github.io/FoOlSlide/) Open source comicbook/manga management software
|
||||
- [Fossil](http://www.fossil-scm.org)
|
||||
- [Framaslides](https://framagit.org/framasoft/framaslides/)
|
||||
- [Geneweb](https://geneweb.tuxfamily.org)
|
||||
- [GetSimple CMS](http://get-simple.info)
|
||||
- [Git-annex](http://git-annex.branchable.com)
|
||||
- [Gitit](https://github.com/jgm/gitit)
|
||||
- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
|
||||
- [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)
|
||||
- [Granary](https://github.com/snarfed/granary)
|
||||
- [Guacamole](http://guac-dev.org)
|
||||
- [Habitica](https://habitica.com/)
|
||||
- [Guacamole](http://guacamole.apache.org/)
|
||||
- [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
|
||||
- [HackMD CE](https://github.com/hackmdio/hackmd)
|
||||
- [Hackpad](https://github.com/dropbox/hackpad)
|
||||
- [Hexo](https://hexo.io/)
|
||||
- [Hi Buddy](https://github.com/tOkeshu/hibuddy) (/!\ last update: 17 Feb 2015)
|
||||
- [Huginn](https://github.com/cantino/huginn)
|
||||
- [Hugo](http://gohugo.io)
|
||||
- [Icecast 2](http://www.icecast.org)
|
||||
- [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)
|
||||
- [img.bi](https://github.com/imgbi/img.bi)
|
||||
- [InfCloud](https://www.inf-it.com/open-source/clients/infcloud)
|
||||
- [Invidious](https://github.com/omarroth/invidious)
|
||||
- [Invoice Ninja](https://www.invoiceninja.com)
|
||||
- [InvoicePlane](https://invoiceplane.com)
|
||||
- [IPFS](https://ipfs.io)
|
||||
- [Joplin](http://joplin.cozic.net/)
|
||||
- [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)
|
||||
- [Jellyfin](https://github.com/jellyfin)
|
||||
- [JS Bin](http://jsbin.com/help/2-second-setup)
|
||||
- [Kaiwa](http://getkaiwa.com)
|
||||
- [Kin calendar](https://github.com/KinToday)
|
||||
- [Kinto](https://github.com/Kinto/formbuilder)
|
||||
- [Kiwix](http://www.kiwix.org/) Offline wikipedia
|
||||
- [Known](https://withknown.com)
|
||||
- [Koel](http://koel.phanan.net)
|
||||
- [Kontalk](https://kontalk.org)
|
||||
- [Koozip](http://koozic.net)
|
||||
- [KrISS feed](https://github.com/tontof/kriss_feed)
|
||||
- [Koken](http://koken.me)
|
||||
- [Kune](https://en.wikipedia.org/wiki/Kune_%28software%29)
|
||||
- [Lessy](https://lessy.io)
|
||||
- [LibreNews-Server](https://librenews.io)
|
||||
- [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/)
|
||||
- [Logstalgia](http://logstalgia.io)
|
||||
- [Loomio](https://www.loomio.org)
|
||||
- [MaidSafe](http://maidsafe.net)
|
||||
- [Mailpile](https://www.mailpile.is)
|
||||
- [MediaCrush](https://github.com/MediaCrush/MediaCrush) (/!\ last update: Jan 23, 2015)
|
||||
- [microblog.pub](https://microblog.pub)
|
||||
- [MinigalNano](https://github.com/sebsauvage/MinigalNano) (/!\ last update: Jun 24, 2016)
|
||||
- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) (/!\ SSL-Warning)
|
||||
- [Modoboa](http://modoboa.org)
|
||||
- [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)
|
||||
- [Nibbleblog](http://www.nibbleblog.com)
|
||||
- [Nuage](https://nuage.kerjean.me/login)
|
||||
- [ONLYOFFICE Document Server](http://helpcenter.onlyoffice.com/server/linux/document/linux-installation.aspx) (to be able to use ONLYOFFICE inside Nextcloud)
|
||||
- [OpenBazaar](https://openbazaar.org)
|
||||
- [openHAB](https://www.openhab.org/) - Smart home platform.
|
||||
- [OpenJabNab](https://github.com/OpenJabNab/OpenJabNab) (/!\ last update: Apr 30, 2016)
|
||||
- [OX Open-Xchange](https://www.open-xchange.com) Linux groupware solution
|
||||
- [N8n.io](https://n8n.io)
|
||||
- [Netrunner](https://github.com/mtgred/netrunner)
|
||||
- [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
|
||||
- [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
|
||||
- [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)
|
||||
- [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)
|
||||
- [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
|
||||
- [pdfy](https://github.com/joepie91/pdfy) (/!\ last update: Aug 5, 2014)
|
||||
- [Pelias](https://github.com/pelias/pelias)
|
||||
- [Peps](https://github.com/MLstate/PEPS)
|
||||
- [PHPList](http://www.phplist.com)
|
||||
- [PHProxy](http://sourceforge.net/projects/poxy)
|
||||
- [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#)
|
||||
- [Pico](http://picocms.org)
|
||||
- [Pix](http://pix.toile-libre.org)
|
||||
- [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)
|
||||
- [Pulse](https://source.ind.ie/project/pulse-swift/tree/master)
|
||||
- [Pump.io](http://pump.io)
|
||||
- [Pump.io](http://pump.io) / [github](https://github.com/pump-io/pump.io)
|
||||
- [qBittorrent](https://github.com/qbittorrent/qBittorrent)
|
||||
- [racktables](http://racktables.org)
|
||||
- [Redmine](https://www.redmine.org)
|
||||
- [Request Tracker](https://bestpractical.com)
|
||||
- [Respawn 2.0](https://github.com/broncowdd/respawn) ( /!\ last update: 2015)
|
||||
- [Restya](http://restya.com)
|
||||
- [Retroshare](http://retroshare.net/downloads.html)
|
||||
- [SABnzbd](https://sabnzbd.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/)
|
||||
- [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
|
||||
- [Scribbleton](https://scribbleton.com)
|
||||
- [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
|
||||
- [ShareLatex](https://www.sharelatex.com)
|
||||
- [Shleuder](http://schleuder2.nadir.org)
|
||||
- [Simone](https://github.com/Kloadut/Simone)
|
||||
- [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)
|
||||
- [Sonarr](https://sonarr.tv)
|
||||
- [Stackedit](https://stackedit.io)
|
||||
- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion.
|
||||
- [Streama](https://github.com/dularion/streama)
|
||||
- [smokeping](https://packages.debian.org/buster/smokeping) / [github](https://github.com/oetiker/SmokePing)
|
||||
- [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)
|
||||
- [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/)
|
||||
- [Taiga](https://taiga.io)
|
||||
- [Tania](http://gettania.org/)
|
||||
- [Taskwarrior](https://taskwarrior.org)
|
||||
- [TMate](https://tmate.io/)
|
||||
- [TorChat](https://github.com/prof7bit/TorChat)
|
||||
- [Torrent Tunes](https://github.com/tchoulihan/torrenttunes-client)
|
||||
- [Total Respawn](https://github.com/broncowdd/TotalRespawn)
|
||||
- [Twister](http://twister.net.co)
|
||||
- [TwitRSS.me](http://twitrss.me/) ([Github](https://github.com/ciderpunx/twitrssme)) Scrapes Twitter to create RSS feeds.
|
||||
- [Unvis](https://unv.is/) ([Github](https://github.com/lodjuret/unvis.it))
|
||||
- [Vaultier](http://www.vaultier.org)
|
||||
- [Volumio](https://volumio.org)
|
||||
- [Webmpc](https://github.com/ushis/webmpc)
|
||||
- [WebODF](http://webodf.org)
|
||||
- [webSync](http://furier.github.io/websync)
|
||||
- [WebTorrent](https://github.com/feross/webtorrent)
|
||||
- [Wisemapping](http://www.wisemapping.com)
|
||||
- [Xonotic](http://xonotic.org)
|
||||
- [YesWiki](https://yeswiki.net)
|
||||
- [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)
|
||||
- [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)
|
||||
- [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)
|
||||
- [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)
|
||||
- [YesWiki](https://yeswiki.net) / [github](https://github.com/YesWiki/yeswiki)
|
||||
- [Zammad](https://github.com/zammad/zammad)
|
||||
- [ZeroTier](https://github.com/zerotier/ZeroTierOne)
|
||||
- [ZNC](http://wiki.znc.in/ZNC)
|
||||
- [Zone-project](https://github.com/descl/ZONE)
|
||||
- [Zoneminder](https://github.com/ZoneMinder/zoneminder)
|
||||
- [Zulip](https://zulipchat.com/)
|
||||
- [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)
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
# Apps souhaitées
|
||||
|
||||
La liste des applications souhaitées n’est maintenue qu’en <a href="/apps_wishlist_en">version anglaise</a>. Merci de vous y référer.
|
33
appsdoc.md
Normal file
33
appsdoc.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
- [Baikal](app_baikal)
|
||||
- [Blogotext](app_blogotext)
|
||||
- [Collabora (Docker)](app_collaboradocker)
|
||||
- [Custom Webapp](app_my_webapp)
|
||||
- [Dokuwiki](app_dokuwiki)
|
||||
- [FirefoxSync](app_ffsync)
|
||||
- [Fireflyiii](app_firefly_iii)
|
||||
- [FluxBB](app_fluxbb)
|
||||
- [Gogs](app_gogs)
|
||||
- [Hextris](app_hextris)
|
||||
- [Jappix](app_jappix)
|
||||
- [Limesurvey](app_limesurvey)
|
||||
- [Mediawiki](app_mediawiki)
|
||||
- [Minidlna](app_minidlna)
|
||||
- [Netdata](app_netdata)
|
||||
- [Nextcloud](app_nextcloud)
|
||||
- [Noalyss](app_noalyss)
|
||||
- [Peertube](app_peertube)
|
||||
- [Pihole](app_pihole)
|
||||
- [Piwigo](app_piwigo)
|
||||
- [Pleroma](app_pleroma)
|
||||
- [Pluxml](app_pluxml)
|
||||
- [Radicale](app_radicale)
|
||||
- [Rainloop](app_rainloop)
|
||||
- [Sogo](app_sogo)
|
||||
- [Spip](app_spip)
|
||||
- [Transmission](app_transmission)
|
||||
- [TinyTinyRSS](app_ttrss)
|
||||
- [Wallabag2](app_wallabag2)
|
||||
- [Webtrees](app_webtrees)
|
||||
- [Yunofav](app_yunofav)
|
||||
- (Note that you can add a new page here if you want to start document in another `app...))
|
||||
|
16
backup.md
16
backup.md
|
@ -106,10 +106,12 @@ One specific feature is the ability to restore a full archive *instead* of the p
|
|||
yunohost backup restore <archivename>
|
||||
```
|
||||
|
||||
Note: If your archive isn't in `/home/yunohost.backup/archives`, you can specify where it is like this :
|
||||
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
|
||||
yunohost backup restore /path/to/<archivename>
|
||||
mkdir -p /home/yunohost.backup/archives
|
||||
mv /path/to/<archivename> /home/yunohost.backup/archives/
|
||||
yunohost backup restore <archivename>
|
||||
```
|
||||
|
||||
## To go futher
|
||||
|
@ -139,7 +141,7 @@ then make it executable :
|
|||
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 Go of data every day.
|
||||
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
|
||||
|
||||
|
@ -147,6 +149,9 @@ You can follow this tutorial on the forum to setup Borg between two servers : <h
|
|||
|
||||
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 :
|
||||
|
@ -156,3 +161,8 @@ 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
|
||||
```
|
||||
|
|
20
backup_fr.md
20
backup_fr.md
|
@ -1,7 +1,7 @@
|
|||
Sauvegarder son serveur et ses apps
|
||||
===================================
|
||||
|
||||
Dans le contexte de l'auto-hébergement, les sauvegardes (backup) sont un élément important pour palier à des événements inattendus (incendies, corruption de base de données, perte d'accès au serveur, serveur compromis, ...). La politique de 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*.
|
||||
Dans le contexte de l'auto-hébergement, les sauvegardes (backup) sont un élément important pour palier 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
|
||||
-----------------------------
|
||||
|
@ -64,7 +64,7 @@ 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_fr).
|
||||
À 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.
|
||||
|
||||
|
@ -107,14 +107,15 @@ Ensuite, **à la place de** `yunohost tools postinstall`, réalisez la restaurat
|
|||
yunohost backup restore <nom_d'archive>
|
||||
```
|
||||
|
||||
Note: si votre archive n'est pas dans `/home/yunohost.backup/archives`, vous pouvez spécifier où elle se trouve comme ceci :
|
||||
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
|
||||
yunohost backup restore /path/to/<archivename>
|
||||
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
|
||||
--------------------
|
||||
|
||||
|
@ -150,6 +151,9 @@ Vous pouvez suivre ce tutoriel sur le forum pour mettre en place Borg entre deux
|
|||
|
||||
Il existe aussi l'application Archivist qui permet un système similaire : https://forum.yunohost.org/t/new-app-archivist/3747
|
||||
|
||||
#### Eviter 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 :
|
||||
|
@ -159,3 +163,9 @@ 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
|
||||
```
|
||||
|
|
169
backup_it.md
Normal file
169
backup_it.md
Normal file
|
@ -0,0 +1,169 @@
|
|||
# Eseguire il backup del vostro server e delle app
|
||||
|
||||
Eseguire il backup del vostro server, delle app e dei dati è un compito importante nell'amministrazione di un server poiché vi protegge da eventi inaspettati ma sempre possibili (come server distrutto da un incendio, corruzione del database, perdita delle credenziali di accesso, compromissione del server e altro). La policy di backup che adotterete dipende dall'importanza dei dati che state gestendo: ad esempio non sarà tanto importante avere il backup di un server di prova mentre lo sarà per un server contenente dati importanti per un'associazione o una ditta e sarà altrettanto importante tenere questo backup *in un luogo fisico diverso dal server stesso*.
|
||||
|
||||
## I backup di YunoHost
|
||||
|
||||
YunoHost fornisce un sistema di backup che vi permette di fare il backup (e il suo ripristino) della configurazione e dei dati (come ad esempio le email) e delle app che lo supportano.
|
||||
|
||||
Si possono gestire i backup sia da riga di comando (`yunohost backup --help`) sia dalla pagina web di amministrazione (nella sezione Backup) anche se alcune possibilità non sono disponibili in questo modo.
|
||||
|
||||
Il metodo di default attuale crea degli archivi `.tar.gz` contenenti tutti i file del backup stesso. Nel futuro YunoHost ha in progetto di usare [Borg](https://www.borgbackup.org/) che è una soluzione più flessibile, efficiente e potente.
|
||||
|
||||
## Creare i backup
|
||||
|
||||
### Dalla pagina web di amministrazione
|
||||
|
||||
Potete creare gli archivi di backup dalla pagina web di amministrazione andando in Backup > Archivi locali e cliccare su "Nuovo backup". Vi verrà chiesto di selezionare quale configurazione, dati e di quale app volete fare il backup.
|
||||
|
||||

|
||||
|
||||
### Dalla riga di comando
|
||||
|
||||
Potete fare un nuovo archivio di backup dalla riga di comando. Questi sono alcuni esempi di comandi e i relativi risultati:
|
||||
|
||||
|
||||
- Esecuzione di un backup completo (tutti i componenti del sistema e delle app):
|
||||
|
||||
```bash
|
||||
yunohost backup create
|
||||
```
|
||||
|
||||
- Backup delle sole app
|
||||
|
||||
```bash
|
||||
yunohost backup create --apps
|
||||
```
|
||||
|
||||
- Backup di sole due app (wordpress e shaarli)
|
||||
|
||||
```bash
|
||||
yunohost backup create --apps wordpress shaarli
|
||||
```
|
||||
|
||||
- Backup solo delle email
|
||||
|
||||
```bash
|
||||
yunohost backup create --system data_mail
|
||||
```
|
||||
|
||||
- Backup delle email e wordpress
|
||||
|
||||
```bash
|
||||
yunohost backup create --system data_mail --apps wordpress
|
||||
```
|
||||
|
||||
Per maggiori informazioni e opzioni sulla creazione di backup leggete `yunohost backup create --help`. Potrete anche elencare le parti del sistema delle quali si può farne il backup con `yunohost hook list backup`.
|
||||
|
||||
|
||||
### Configurazioni specifiche per le app
|
||||
|
||||
Alcune app come ad esempio Nextcloud possono contenere grandi quantità di dati. È possibile in questi casi eseguire il backup dell'app senza i dati degli utenti, modalità che viene indicata come "backing up only the core" (delle app).
|
||||
Eseguendo un aggiornamento, delle app con grandi quantità di dati normalmente verrà eseguito un backup senza questi dati.
|
||||
|
||||
Per disabilitare esplicitamente il backup di grandi quantità di dati, per le applicazioni che implementano questa possibilità, dovete impostare la variabile `BACKUP_CORE_ONLY` prima di eseguire il comando di backup: `sudo BACKUP_CORE_ONLY=1 yunohost backup create --apps nextcloud`. Fate attenzione però perché dovrete fare il backup di questi dati autonomamente: è possibile eseguire questi backup, di tipo incrementale o differenziale, opzione che però non è ancora provvista da YunoHost.
|
||||
|
||||
|
||||
## Download e upload dei backup
|
||||
|
||||
Dopo aver creato gli archivi di backup è possibile elencarli e ispezionarli sia dalla pagina web di amministrazione relativa sia dalla riga di comando con i comandi `yunohost backup list` e `yunohost backup info <archivename>`. Di default i backup sono copiati nella directory `/home/yunohost.backup/archives/`.
|
||||
|
||||
Attualmente il modo più semplice per scaricare gli archivi è usando il programma FileZilla (vedi [questa pagina](/filezilla)).
|
||||
|
||||
Una soluzione alternativa è quella di installare Netxcloud o un'applicazione simile e configurarle per accedere ai file contenuti in `/home/yunohost.backup/archives/` da un browser.
|
||||
|
||||
|
||||
Un'altra soluzione è quella di usare `scp` (un programma che si basa su [`ssh`](/ssh)) per copiare i file fra due computer usando la riga di comando. In questo modo usando un computer con Linux potete copiare uno specifico backup con questo comando:
|
||||
|
||||
```bash
|
||||
scp admin@your.domain.tld:/home/yunohost.backup/archives/<archivename>.tar.gz ./
|
||||
```
|
||||
|
||||
Allo stesso modo potete copiare da un computer al vostro server con questo comando:
|
||||
|
||||
```bash
|
||||
scp /path/to/your/<archivename>.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/
|
||||
```
|
||||
|
||||
## Ripristinare i backup
|
||||
|
||||
### Dalla pagina web di amministrazione
|
||||
|
||||
Dovete andare in Backup > Archivi locali e selezionare il vostro archivio. È possibile selezionare ciò che volete ripristinare e poi cliccare su 'Ripristina'.
|
||||
|
||||
|
||||

|
||||
|
||||
### Dalla riga di comando
|
||||
|
||||
Dalla riga di comando date il comando `yunohost backup restore <archivename>` (senza il `.tar.gz`) per ripristinare un archivio. Così come `yunohost backup create`, questo comando ripristinerà di default tutto il contenuto dell'archivio; se invece volete ripristinare solo alcuni file potete usare ad esempio il comando `yunohost backup restore --apps wordpress` per ripristinare esclusivamente wordpress.
|
||||
|
||||
|
||||
### Limiti
|
||||
|
||||
Per ripristinare una app, il dominio sul quale era stata installata dovrà essere già stato configurato oppure dovrete avere già ripristinato la configurazione di sistema relativa. Inoltre non è possibile ripristinare una app che è già installata ... il che comporta che se volete ripristinare una versione passata della app dovrete prima disinstallarla.
|
||||
|
||||
|
||||
### Ripristino durante il postinstall
|
||||
|
||||
È possibile ripristinare un archivio completo *invece* di eseguire il passaggio di postinstall. Questo è utile se volete reinstallare un sistema interamente da un backup preesistente. Per fare questo dovrete copiare l'archivio sul server nella directory `/home/yunohost.backup/archives` e poi, **invece di dare il comando** `yunohost tools postinstall` darete il comando:
|
||||
|
||||
|
||||
```bash
|
||||
yunohost backup restore <archivename>
|
||||
```
|
||||
|
||||
Nota: se il vostro archivio non si trova in `/home/yunohost.backup/archives` potete specificare il path giusto con:
|
||||
|
||||
|
||||
```bash
|
||||
yunohost backup restore /path/to/<archivename>
|
||||
```
|
||||
|
||||
## Ulteriori possibilità
|
||||
|
||||
### Tenere i backup su un disco diverso
|
||||
|
||||
Potete connettere e montare un disco esterno per tenerci gli archivi di backup (oltre a tutto il resto): per fare questo prima spostate gli archivi e poi aggiungete un link simbolico.
|
||||
|
||||
|
||||
```bash
|
||||
PATH_TO_DRIVE="/media/my_external_drive" # Come esempio, dipende da dove monterete il vostro disco
|
||||
mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives
|
||||
ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives
|
||||
```
|
||||
|
||||
### Backup automatici
|
||||
|
||||
È possibile aggiungere un semplice job di cron per creare i backup automaticamente. Ad esempio per fare il backup di wordpress su base settimanale create il file `/etc/cron.weekly/backup-wordpress` con queste righe:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
yunohost backup create --apps wordpress
|
||||
```
|
||||
|
||||
e poi rendetelo eseguibile:
|
||||
|
||||
```bash
|
||||
chmod +x /etc/cron.weekly/backup-wordpress
|
||||
```
|
||||
|
||||
Prestate attenzione a ciò di cui fate il backup e quando perché altrimenti è possibile esaurire lo spazio del vostro disco eseguendo, ad esempio, 30 Gb di backup ogni giorno.
|
||||
|
||||
|
||||
#### Backup del server su un server remoto
|
||||
|
||||
Potete seguire questo tutorial sul forum per impostare Borg fra due server: <https://forum.yunohost.org/t/how-to-backup-your-yunohost-server-on-another-server/3153>
|
||||
|
||||
Alternativamente, la app Archivist permette di impostare un sistema simile: <https://forum.yunohost.org/t/new-app-archivist/3747>
|
||||
|
||||
#### Backup completo con `dd`
|
||||
|
||||
Se state usando una board ARM un altro metodo per eseguire un backup completo è quello di creare un'immagine della card SD. Per fare questo innanzitutto spegnete la vostra board ARM, prendete la card SD e createne un'immagine completa con un comando come il seguente:
|
||||
|
||||
|
||||
```bash
|
||||
dd if=/dev/mmcblk0 of=./backup.img status=progress
|
||||
```
|
||||
|
||||
(modificate `/dev/mmcblk0` con il device reale della vostra card)
|
|
@ -9,10 +9,10 @@ If you want the network configuration to be set up automatically, you have to pl
|
|||
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 key
|
||||
## <small>2.</small> Boot on CD / USB stick
|
||||
|
||||
Boot up your server with the USB key or a CD-ROM inserted, and select it as **bootable device** by pressing one of the following keys (hardware specific):
|
||||
```<ESC>```, ```<F8>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<SUPPR>```
|
||||
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
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ Les connexions sans-fil ne sont pas supportées pour le moment, et si vous utili
|
|||
## <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>```, ```<F8>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<Suppr>```
|
||||
```<Échap>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<Suppr>```
|
||||
|
||||
## <small>3.</small> Lancer l’installation graphique
|
||||
|
||||
|
@ -46,5 +46,5 @@ identifiants suivants :
|
|||
|
||||
## <small>5.</small> Procéder à la post-installation
|
||||
|
||||
<a class="btn btn-lg btn-default" href="/postinstall_fr">Documentation de la post-installation</a>
|
||||
<a class="btn btn-lg btn-default" href="/postinstall">Documentation de la post-installation</a>
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# Flashing YunoHost ISO on a USB key or CD/DVD
|
||||
# Flashing the YunoHost ISO on a USB stick or CD/DVD
|
||||
|
||||
Now that you have the ISO image of YunoHost, you have to put it on a physical medium: **USB key** or **CD/DVD**
|
||||
Now that you downloaded the ISO image of YunoHost, you should flash/burn it on a physical medium. Typically, this is done on a **USB stick** but you might want to use a **CD/DVD** for older machines.
|
||||
|
||||
<img src="/images/usb_key.png" width=150>
|
||||
<img src="/images/cd.jpg" width=150>
|
||||
|
||||
---
|
||||
|
||||
## USB key
|
||||
## USB stick
|
||||
|
||||
### With Etcher
|
||||
|
||||
|
@ -15,7 +15,7 @@ Download <a href="https://etcher.io/" target="_blank">Etcher</a> for your operat
|
|||
|
||||
<img src="/images/etcher.gif">
|
||||
|
||||
Put your USB key on, select your YunoHost ISO and click "Flash"
|
||||
Plug your USB stick, select your YunoHost ISO and click "Flash"
|
||||
|
||||
### With UNetbootin
|
||||
|
||||
|
@ -23,15 +23,15 @@ Download <a href="https://unetbootin.github.io/">UNetbootin</a> for your operati
|
|||
|
||||
<img src="/images/unetbootin.png">
|
||||
|
||||
Put your USB key on, select your YunoHost ISO and click "OK"
|
||||
Put your USB stick on, select your YunoHost ISO and click "OK"
|
||||
|
||||
### With `dd`
|
||||
|
||||
If you know your way around command line, you may also flash your USB key with
|
||||
`dd`. Assuming your USB key is `/dev/sdb` (be careful !!), you may run :
|
||||
If you know your way around command line, you may also flash your USB stick with
|
||||
`dd`. Assuming your USB stick is `/dev/sdz` (be careful !!), you may run :
|
||||
|
||||
```bash
|
||||
dd if=/path/to/yunohost.iso of=/dev/sdb
|
||||
dd if=/path/to/yunohost.iso of=/dev/sdz
|
||||
```
|
||||
|
||||
---
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Flasher l'ISO YunoHost sur une clef USB ou un CD/DVD
|
||||
|
||||
Maintenant que vous avez téléchargé l’image ISO de YunoHost, vous devez la mettre sur un support physique : une **Clé USB** ou un **CD/DVD**.
|
||||
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** mais pour certaines raisons vous pouvez aussi utiliser un **CD/DVD**.
|
||||
|
||||
<img src="/images/usb_key.png" width=150>
|
||||
<img src="/images/cd.jpg" width=150>
|
||||
|
@ -28,11 +28,11 @@ Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'OK'
|
|||
### Avec `dd`
|
||||
|
||||
Si vous êtes familier avec la ligne de commande, il est possible de flasher la
|
||||
clef USB avec `dd`. En supposant que votre clef USB soit `/dev/sdb` (faites
|
||||
clef USB avec `dd`. En supposant que votre clef USB soit `/dev/sdz` (faites
|
||||
attention !!), vous pouvez exécuter :
|
||||
|
||||
```bash
|
||||
dd if=/chemin/de/yunohost.iso of=/dev/sdb
|
||||
dd if=/chemin/de/yunohost.iso of=/dev/sdz
|
||||
```
|
||||
|
||||
---
|
||||
|
|
|
@ -18,8 +18,8 @@ from the web administration interface or from the command line.
|
|||
### Install a Let's Encrypt certificate
|
||||
|
||||
Before attempting to install a Let's Encrypt certificate, you should make sure
|
||||
that your DNS is correctly configured (votre.domaine.tld should point to
|
||||
your server's IP) and that your domain is accessible though HTTP from outside
|
||||
that your DNS is correctly configured (your.domain.tld should point to
|
||||
your server's IP) and that your domain is accessible through HTTP from outside
|
||||
your local network (i.e. at least port 80 should be forwarded to your server).
|
||||
|
||||
#### From the web administration interface
|
||||
|
|
1
certificate_custom.md
Normal file
1
certificate_custom.md
Normal file
|
@ -0,0 +1 @@
|
|||
Unfortunately, this page only exists [in french here](certificate_custom_fr) for now.
|
|
@ -1,4 +1,4 @@
|
|||
**Note :** depuis la version 2.5, Yunohost intègre la gestion automatisée de certificats Let's Encrypt. Vous pouvez donc facilement et gratuitement [installer un certificat Let's Encrypt](certificate_fr). Le document suivant décrit la méthodologie pour installer un certificat, payant, d'une autre autorité de certification (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**).
|
||||
**Note :** depuis la version 2.5, Yunohost intègre la gestion automatisée de certificats Let's Encrypt. Vous pouvez donc facilement et gratuitement [installer un certificat Let's Encrypt](/certificate). Le document suivant décrit la méthodologie pour installer un certificat, payant, d'une autre autorité de certification (**Gandi**, **RapidSSL**, **StartSSL**, **Cacert**).
|
||||
|
||||
### Ajout d’un certificat signé par une autorité (autre que Let's Encrypt)
|
||||
|
||||
|
@ -18,7 +18,7 @@ pscp -P 22 CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt
|
|||
pscp -P 22 CLE.key admin@DOMAIN.TLD:ssl.key
|
||||
```
|
||||
|
||||
Dès lors que les fichiers sont sur le serveur, le reste du travail se fera sur celui-ci. En [ssh](https://yunohost.org/#/ssh_fr) ou en local.
|
||||
Dès lors que les fichiers sont sur le serveur, le reste du travail se fera sur celui-ci. En [ssh](/ssh) ou en local.
|
||||
|
||||
Tout d’abord, créez un dossier pour stocker les certificats obtenus.
|
||||
|
||||
|
|
77
certificate_es.md
Normal file
77
certificate_es.md
Normal file
|
@ -0,0 +1,77 @@
|
|||
# Certificado
|
||||
|
||||
Los certificados sirven para garantizar la confidencialidad y la autenticidad de las comunicaciones entre un navegador web y tu servidor. En particular, permite proteger los visitantes contra atacantes que podrían intentar de robar la identidad del servidor.
|
||||
|
||||
Por defecto, Yunohost provee un certificado **auto-firmado**, lo que significa que es tu servidor el que garantiza la validez del certificado. Es suficiente **en el caso de un uso personal**, porque puedes confiar en tu propio servidor, pero esto planteará problemas si piensas en abrir el acceso a tu servidor a personas anónimas, por ejemplo si quieres alojar un sitio web.
|
||||
En efecto, los usuarios deberán pasar por una pantalla de este tipo :
|
||||
|
||||
<img src="/images/postinstall_error.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||
|
||||
Esta pantalla equivale a que te pidan ** ¿ Confías en el servidor que aloja este sitio ? ***. Esto puede asustar tu usuarios (con toda la razón).
|
||||
|
||||
Para evitar esta confusión, es posible obtener un certificado, reconocido directamente por los navegadores, firmado por una autoridad « conocida » : **Let's Encrypt**, **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**.
|
||||
|
||||
**Let's Encrypt** propone certificados gratuitos. Desde la versión 2.5, Yunohost permite instalar directamente tales certificados desde la interfaz de administración o la línea de comandos. El resto del documento detalla la instalación y la firma de este tipo de certificado. También puedes [instalar un certificado de otra autoridad que Let's Encrypt](/certificate_custom).
|
||||
|
||||
### Instalar un certificado Let's Encrypt
|
||||
|
||||
Antes de intentar la instalación de un certificado Let's Encrypt, primero debes asegurarte de que el DNS está configurado correctamente (tu.dominio.tld debe apuntar hacia la IP de tu servidor) y que el sitio está accesible en HTTP desde afuera (i.e. por lo menos que el puerto 80 está correctamente redirigido hacia tu servidor).
|
||||
|
||||
#### Vía la interfaz de administración web
|
||||
|
||||
En la categoría 'Dominio' de la interfaz de administración, y luego en la sección dedicada a tu dominio, encontrarás un botón 'Certificado SSL'.
|
||||
|
||||

|
||||
|
||||
En la sección 'Certificado SSL', puedes ver el estado corriente del certificado.
|
||||
Si acabas de añadir el dominio, ya dispone de un certificado auto-firmado.
|
||||
|
||||

|
||||
|
||||
Si tu dominio está configurado correctamente, es posible instalar un certificado Let's Encrypt vía el botón verde.
|
||||
|
||||

|
||||
|
||||
Una vez la instalación terminada, puedes ir a tu dominio vía tu navegador, en HTTPS, para comprobar que tu certificado está bien firmado por Let's Encrypt. El certificado se renovará automáticamente al cabo de cada periodo de tres meses.
|
||||
|
||||

|
||||
|
||||
#### Vía línea de comandos
|
||||
|
||||
Conectate en tu servidor en SSH.
|
||||
|
||||
Puedes comprobar el estatus corriente de tu certificado vía
|
||||
|
||||
```bash
|
||||
yunohost domain cert-status tu.dominio.tld
|
||||
```
|
||||
|
||||
Instala el certificado Let's Encrypt vía
|
||||
|
||||
```bash
|
||||
yunohost domain cert-install tu.dominio.tld
|
||||
```
|
||||
|
||||
Este comando debe devolverte :
|
||||
|
||||
```bash
|
||||
Success! The SSOwat configuration has been generated
|
||||
Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD!
|
||||
```
|
||||
|
||||
Una vez que la instalación está terminada, puedes dirigirte a tu dominio vía tu navegador, en HTTPS, para comprobar que el certificado está bien firmado por Let's Encrypt. El certificado se renovará automáticamente al cabo de cada periodo de tres meses.
|
||||
|
||||
##### Si hay un problema
|
||||
|
||||
Si, después de una manipulación incorrecta, un certificado se encuentra en una mala situación (e.g. pérdida del certificado o imposibilidad de leerlo), es posible regenerar un certificado autofirmado :
|
||||
|
||||
```bash
|
||||
yunohost domain cert-install tu.dominio.tld --self-signed --force
|
||||
```
|
||||
|
||||
Si Yunohost te dice que tu dominio está mal configurado mientras que has verificado tu configuración DNS y que tienes acceso a tu servidor en HTTP desde afuera, puedes intentar :
|
||||
|
||||
- de añadir una línea `127.0.0.1 tu.dominio.tld` al archivo `/etc/hosts` en tu servidor ;
|
||||
- si la instalación todavía no funciona, desactiva las verificaciones añadiendo `--no-checks` al comando `cert-install`.
|
||||
|
||||
|
|
@ -12,14 +12,14 @@ Cela peut effrayer vos utilisateurs (à juste titre).
|
|||
|
||||
Pour éviter cette confusion, il est possible d’obtenir un certificat, reconnu directement par les navigateurs, signé par une autorité « connue » : **Let's Encrypt**, **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**.
|
||||
|
||||
**Let's Encrypt** propose des certificats gratuits. Depuis la version 2.5, YunoHost permet d'installer directement un tel certificat depuis l'interface d'administration ou la ligne de commande. La suite du document détaille l'installation et la gestion d'un tel certificat. Vous pouvez également [installer un certificat d'une autre autorité que Let's Encrypt](/certificate_custom_fr).
|
||||
**Let's Encrypt** propose des certificats gratuits. Depuis la version 2.5, YunoHost permet d'installer directement un tel certificat depuis l'interface d'administration ou la ligne de commande. La suite du document détaille l'installation et la gestion d'un tel certificat. Vous pouvez également [installer un certificat d'une autre autorité que Let's Encrypt](/certificate_custom).
|
||||
|
||||
### Installer un certificat Let's Encrypt
|
||||
|
||||
Avant de chercher à installer un certificat Let's Encrypt, assurez vous que
|
||||
votre DNS est correctement configuré (votre.domaine.tld doit pointer sur l'IP
|
||||
de votre serveur) et que votre site est accessible en HTTP depuis l'extérieur
|
||||
(i.e. qu'au moins le port 80 est correctement redirigé vers votre serveur).
|
||||
(c.-à-d. qu'au moins le port 80 est correctement redirigé vers votre serveur).
|
||||
|
||||
#### Via l'interface d'administration web
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Le mot de passe d’administration actuel est **requis** pour effectuer cette mo
|
|||
|
||||
##Administration web
|
||||
|
||||
Premièrement, connectez-vous à [l’administration web](/admin_fr).
|
||||
Premièrement, connectez-vous à [l’administration web](/admin).
|
||||
|
||||
Puis allez dans la section `Outils` > `Changer le mot de passe d’administration`.
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ You could join those chat rooms using :
|
|||
|
||||
#### Help and support chatroom
|
||||
|
||||
There is a [support](support_fr) chatroom for YunoHost users mutual support and help.
|
||||
There is a [support](/help) chatroom for YunoHost users mutual support and help.
|
||||
|
||||
- IRC: **#yunohost** on irc.freenode.net ;
|
||||
- Matrix: **#freenode_#yunohost:matrix.org** ;
|
||||
|
|
|
@ -9,7 +9,7 @@ Vous pouvez rejoindre ces salons avec:
|
|||
|
||||
|
||||
#### Salon d'entraide et de support
|
||||
Le salon d’[entraide](support_fr) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement.
|
||||
Le salon d’[entraide](/help) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement.
|
||||
- IRC : **#yunohost** sur irc.freenode.net (voir kiwiirc ci-dessus)
|
||||
- Matrix : **#freenode_#yunohost:matrix.org**
|
||||
- XMPP : **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)**
|
||||
|
|
30
commandline_es.md
Normal file
30
commandline_es.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Administrar YunoHost con la interfaz de línea de comandos
|
||||
|
||||
La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla.
|
||||
|
||||
En el contexto de Yunohost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh).
|
||||
|
||||
<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.
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
## Talks / conf
|
||||
|
||||
- (EN) [BattleMeshV12 - YunoHost and the Internet Cube (Brique Internet)](https://www.battlemesh.org/BattleMeshV12/Events#YunoHost_and_the_Internet_Cube_.28Brique_Internet.29)
|
||||
* (EN) [FOSDEM 2019 - The operating system to build the decentralized Internet](https://cinema.yunohost.support/videos/watch/1eb49594-0283-4a01-8691-3817a3cb31e6) ([slides](https://github.com/YunoHost/yunohost-fosdem-2019))
|
||||
* (FR) [Capitole du libre 2018 - YunoHost: un des chemins vers la décentralisation - Bram](https://www.youtube.com/watch?v=OEXEStoOYpw) ([slides](https://psycojoker.github.io/yunohost-cdl-2018/))
|
||||
* (FR) [Journées du logiciel libre 2018 - YunoHost : vers l’auto-hébergement et au-delà - Bram](https://www.videos-libr.es/videos/watch/45b48b1e-1b10-4e09-b29a-a404bd42c5d0) ([slides](https://psycojoker.github.io/yunohost-jdll-2018/))
|
||||
|
@ -30,9 +31,29 @@
|
|||
- (FR) [Linux Pratique n°96 – YunoHost, l’auto-hébergement à portée de main – juillet 2016](http://connect.ed-diamond.com/Linux-Pratique/LP-096/YunoHost-l-auto-hebergement-a-portee-de-main)
|
||||
- (EN) [Linux Magazine n°208 – YunoHost, Personal server for a private cloud – Mars 2018](http://www.linux-magazine.com/Issues/2018/208/YunoHost)
|
||||
- (FR) [Linux Pratique HS n° 044 février 2019 - Le choix de l’auto-hébergement avec YunoHost : rencontre avec l’équipe du projet](https://connect.ed-diamond.com/Linux-Pratique/LPHS-044/Le-choix-de-l-auto-hebergement-avec-YunoHost-rencontre-avec-l-equipe-du-projet)
|
||||
- (FR) [Duhaz.fr: Devenir votre propre hébergeur](https://www.duhaz.fr/blog/devenir-votre-propre-h%C3%A9bergeur/)
|
||||
- (FR) [Faimaison.net: au revoir Google, bonjour liberté!](https://www.faimaison.net/actualites/chatons-leprette-mai2019.html)
|
||||
- (FR) [Tineternet.net: Reprendre la main sur ses données avec l'auto-hébergement](https://www.tinternet.net/article/2019/05/dossier-reprendre-la-main-sur-ses-donnees-avec-lauto-hebergement)
|
||||
- (DE) [Yunohost Serverinstallation auf Laptop](https://www.giammi.com/2019/04/19/yunohost-serverinstallation-auf-laptop/)
|
||||
- (FR) [Cenabumix: Retour d’expérience Yunohost sur Raspberry](https://wiki.cenabumix.org/wordpress/2018/03/17/retour-dexperience-yunohost-sur-raspberry/)
|
||||
- (FR) [Geber.ga: Yunohost, ou l'auto-hébergement à portée de main...](https://www.geber.ga/yunohost-ou-l-auto-hebergement-a-portee-de-main/)
|
||||
- (EN) [Nequalsonelifestyle.com: Self Hosting Without Self Owning](https://www.nequalsonelifestyle.com/2019/05/04/self-hosting-without-self-owning/)
|
||||
- (EN) [Skysilk.com: How to Install YunoHost On a Debian VPS](https://www.skysilk.com/blog/2019/how-to-install-yunohost-on-a-debian-vps/)
|
||||
- (FR) [Alternativelibertaire.org: Auto-hébergement](https://www.alternativelibertaire.org/?Auto-hebergement-1-Un-serveur-a-mon-seul-service)
|
||||
- (ES) [Sololinux.es: Instalar YunoHost en Debian 9 Stretch](https://www.sololinux.es/instalar-yunohost-en-debian-9-stretch/)
|
||||
- (FR) [Bog.hugopoi.net: Le cloud maison](https://blog.hugopoi.net/2019/03/30/le-cloud-maison/)
|
||||
|
||||
## Past Events / Workshops
|
||||
|
||||
- (FR) [INFOTHEMA: Présentation de l’avancée du projet YunoHost INFOTHEMA + Présentation du collectif CHATONS](https://www.infothema.fr/begard-samedi-22-juin-2019-seance-infothema/)
|
||||
- (FR) [Normandie-libre.fr: Héberger ses sites web à la maison](https://normandie-libre.fr/heberger-ses-sites-web-a-la-maison/)
|
||||
- (FR) [Viregul.fr: Auto-hébergement, pour un Internet décentralisé](https://viregul.fr/auto-hebergement-pour-un-internet-decentralise-le-samedi-25-mai-2019/)
|
||||
- (EN) [35C3: Hands-on introduction to self-Hosting with YunoHos](https://events.ccc.de/congress/2018/wiki/index.php/Session:Hands-on_introduction_to_self-Hosting_with_YunoHost)
|
||||
- (FR) [Journées du Logiciel Libre 2019: l'auto-hébergement avec YunoHost](https://pretalx.jdll.org/jdll2019/talk/88GSPH/)
|
||||
|
||||
## YunoHost was cited in :
|
||||
|
||||
* [EXPERIMENTA 2018](https://livestream.com/accounts/26482307/events/8034656/player?width=960&height=540&enableInfoAndActivity=true&defaultDrawer=&autoPlay=true&mute=false) at 57.47 (depuis https://www.experimenta.fr/direct/)
|
||||
* [Capitole du libre 2017 - « Contributopia », Dégoogliser ne suffit pas](https://www.youtube.com/watch?v=ip6_VMkWpr8&feature=youtu.be&t=4793)
|
||||
* [Contributopia - Essaimage (Framasoft)](https://contributopia.org/fr/essaimage/)
|
||||
- (FR) [Triple A: Émission Underscore #144 du 19 mai 2019](https://www.triplea.fr/blog/podcast/emission-underscore-144-du-19-mai-2019/)
|
||||
|
|
|
@ -11,7 +11,7 @@ YunoHost depends exclusively on the participation of people like you.
|
|||
<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_en) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3
|
||||
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>
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<span class="glyphicon glyphicon-heart"></span> تحدثوا عن المشروع مِن حولكم
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting_fr)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3></div>
|
||||
تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3></div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
@ -33,7 +33,7 @@
|
|||
<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_fr), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
|
||||
Notre support est communautaire et 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>
|
||||
|
||||
|
@ -45,7 +45,7 @@ Notre support est communautaire et s’appuie sur des contributeurs comme vous.
|
|||
</div>
|
||||
<div dir="rtl" class="col col-md-8" markdown="1">
|
||||
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
|
||||
Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
|
||||
Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -67,7 +67,7 @@ Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de dis
|
|||
<span class="glyphicon glyphicon-edit"></span> أكتبوا
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation_fr) أو بترجمة صفحاته إلى لغتكم.
|
||||
ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation) أو بترجمة صفحاته إلى لغتكم.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -78,7 +78,7 @@ Découvrez [comment contribuer](/dev_fr), et rejoignez-nous sur le [salon de dis
|
|||
<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_fr). Jetez un œil à [ce qui a déjà été fait](/apps_fr) !
|
||||
É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) et une <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/apps">mailing-list</a> est également disponible.
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@ YunoHost dépend entièrement de la participation de gens comme vous.
|
|||
<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_fr), de YunoHost à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3
|
||||
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>
|
||||
|
||||
|
@ -33,7 +33,7 @@ Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essa
|
|||
<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_fr), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
|
||||
Notre support est communautaire et 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>
|
||||
|
||||
|
@ -45,7 +45,7 @@ Notre support est communautaire et s’appuie sur des contributeurs comme vous.
|
|||
</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_fr), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
|
||||
Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) et la <a href="http://list.yunohost.org/cgi-bin/mailman/listinfo/contrib">mailing-list</a> !
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -67,7 +67,7 @@ Participez en rendant les interfaces de YunoHost disponibles dans votre langue.
|
|||
<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_fr) ou en traduisant les existantes dans votre langue.
|
||||
Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation) ou en traduisant les existantes dans votre langue.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -78,7 +78,7 @@ Améliorez cette documentation en [proposant de nouvelles pages](/write_document
|
|||
<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_fr). Jetez un œil à [ce qui a déjà été fait](/apps_fr) !
|
||||
É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>
|
||||
|
||||
|
@ -86,5 +86,5 @@ Améliorez cette documentation en [proposant de nouvelles pages](/write_document
|
|||
|
||||
<br>
|
||||
<br>
|
||||
<p class="lead" markdown="1">Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms_fr) :-)</p>
|
||||
<p class="lead" markdown="1">Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)</p>
|
||||
|
||||
|
|
|
@ -7,23 +7,23 @@
|
|||
* [Apps wishlist](/apps_wishlist)
|
||||
* [General introduction to app packaging](/packaging_apps_start)
|
||||
* [Technical introduction to app packaging](/packaging_apps)
|
||||
* [Setting up a dev environment with VirtualBox](packaging_apps_virtualbox_fr)
|
||||
* [Setting up a dev environment with VirtualBox](/packaging_apps_virtualbox)
|
||||
* [Manifest](packaging_apps_manifest)
|
||||
* [Scripts](packaging_apps_scripts)
|
||||
* [Arguments management](packaging_apps_arguments_management)
|
||||
* [Nginx configuration](packaging_apps_nginx_conf)
|
||||
* [Multi-instance](packaging_apps_multiinstance)
|
||||
* [Helpers](packaging_apps_helpers)
|
||||
* [Trap usage](packaging_apps_trap_fr)
|
||||
* [Trap usage](/packaging_apps_trap)
|
||||
* [Adding your app to the community list](https://github.com/YunoHost/Apps/#contributing)
|
||||
* Quality tests
|
||||
* [Package linter](https://github.com/YunoHost/package_linter)
|
||||
* [Package check](https://github.com/YunoHost/package_check)
|
||||
* [Applications levels](packaging_apps_levels_fr)
|
||||
* [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_fr)
|
||||
* [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)
|
||||
|
@ -32,3 +32,4 @@
|
|||
* [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,30 +1,30 @@
|
|||
# Guide du contributeur
|
||||
|
||||
* [Liste des façons de contribuer à YunoHost](/contribute_fr)
|
||||
* [Écrire de la documentation](/write_documentation_fr)
|
||||
* [Salons de discussion](/chat_rooms_fr)
|
||||
* [Liste des façons de contribuer à YunoHost](/contribute)
|
||||
* [Écrire de la documentation](/write_documentation)
|
||||
* [Salons de discussion](/chat_rooms)
|
||||
* Packaging d'application
|
||||
* [Liste d'apps souhaitées par la communauté](/apps_wishlist_fr)
|
||||
* [Introduction générale au packaging d'apps](/packaging_apps_start_fr)
|
||||
* [Introduction technique au packaging d'apps](/packaging_apps_fr)
|
||||
* [Déployer un environnement de développement avec VirtualBox](packaging_apps_virtualbox_fr)
|
||||
* [Manifest](packaging_apps_manifest_fr)
|
||||
* [Scripts](packaging_apps_scripts_fr)
|
||||
* [Gestion des arguments](packaging_apps_arguments_management_fr)
|
||||
* [Configuration nginx](packaging_apps_nginx_conf_fr)
|
||||
* [Multi-instance](packaging_apps_multiinstance_fr)
|
||||
* [Fonctions utiles](packaging_apps_helpers_fr)
|
||||
* [Utilisation de 'trap'](packaging_apps_trap_fr)
|
||||
* [Liste d'apps 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)
|
||||
* [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)
|
||||
* [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 community](https://github.com/YunoHost/Apps/#contributing)
|
||||
* Tests de qualité
|
||||
* [Package linter](https://github.com/YunoHost/package_linter)
|
||||
* [Package check](https://github.com/YunoHost/package_check)
|
||||
* [Niveaux des applications](packaging_apps_levels_fr)
|
||||
* [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_fr)
|
||||
* [Contribuer à la partie "core" de YunoHost](/dev_fr)
|
||||
* [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)
|
||||
|
@ -32,4 +32,5 @@
|
|||
* [x86 ISO](https://github.com/YunoHost/cd_build)
|
||||
* [Images Raspberry Pi](https://github.com/YunoHost/rpi-image)
|
||||
* [Autres images pour cartes ARM](https://github.com/YunoHost/arm-images)
|
||||
* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api_fr)
|
||||
* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api)
|
||||
* [Une discussion sur la portée des variables en bash](shell_variables_scope)
|
||||
|
|
39
copy_image_es.md
Normal file
39
copy_image_es.md
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Flashear una tarjeta SD
|
||||
|
||||
Ahora que has descargado la imagen de Yunohost, tienes que copiar su contenido en una tarjeta SD. Esta etapa también puede llamarse 'flashear' la tarjeta SD.
|
||||
|
||||
<div class="alert alert-warning" markdown="1">
|
||||
En el marco del self-hosting / auto-alojamiento, está recomendado que tu tarjeta SD tenga una capacidad de por lo menos 8 Go (para diponer de suficientemente espacio para el sistema y un poco de datos) y esté al menos certificada de clase 10 (para tener bueno rendimiento).
|
||||
</div>
|
||||
|
||||
<img src="/imagen/sdcard.jpg" width=150><img src="https://yunohost.org/images/micro-sd-card.jpg">
|
||||
|
||||
### Con Etcher
|
||||
|
||||
Descarga <a href="https://etcher.io/" target="_blank">Etcher</a> para tu sistema operativo, e instálalo.
|
||||
|
||||
<img src="/images/etcher.gif">
|
||||
|
||||
Conecta tu tarjeta SD, selecciona tu imagen Yunohost y luego haz clic en 'Flash'.
|
||||
|
||||
### Con `dd`
|
||||
|
||||
Si estás en Linux / Mac y que estás cómodo con la línea de comandos, también puedes flashear tu tarjeta SD con el comando `dd`. Empieza por identificar el periférico que corresponde a tu tarjeta SD con `fdisk -l` o
|
||||
`lsblk`. Suponiendo que tu tarjeta SD sea `/dev/mmcblk0` (¡ ten cuidado
|
||||
!), puedes iniciar :
|
||||
|
||||
```bash
|
||||
dd if=/chemin/vers/yunohost.img of=/dev/mmcblk0
|
||||
```
|
||||
|
||||
## Extiende la partición root <small>(optionnel)</small>
|
||||
|
||||
<div class="alert alert-warning" markdown="1">
|
||||
Esta etapa es opcional porque normalmente la realiza automáticamente el sistema durante el primer inicio sobre las imágenes recientes.
|
||||
</div>
|
||||
|
||||
Por defecto, la partición root instalada en tu tarjeta SD con el comando `dd` es muy pequeña. Puedes redimensionarla con un programa como `resize2fs` (línea de comandos) o `Gparted` (interfaz gráfica) extendiendo la partición ext4 al máximo de modo a utilizar todo el espacio que no está asignado.
|
||||
|
||||
<img src="/images/gparted.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||
|
||||
<p class="text-muted">Vistazo de la interfaz de Gparted</p>
|
|
@ -1,150 +0,0 @@
|
|||
# Create a YunoHost Live ISO
|
||||
|
||||
<div class="alert alert-danger">This page is deprecated / obsolete / outdated. Information
|
||||
it contains should be updated (or should be removed).</div>
|
||||
|
||||
Tested on Debian Wheezy (should work on Ubuntu as well).
|
||||
Original tutorial here: http://willhaley.com/blog/create-a-custom-debian-live-environment/
|
||||
|
||||
**Warning**: I have **highlighted** all the places you should be in the **chroot** environment.
|
||||
|
||||
1. Install applications we need to build the environment.
|
||||
```bash
|
||||
sudo apt-get install debootstrap syslinux squashfs-tools genisoimage memtest86+ rsync
|
||||
```
|
||||
|
||||
2. Setup the base Debian environment. I am using wheezy for my distribution and i386 for the architecture. Please do change your mirror if you are not in the Netherlands or know of a mirror close to you.
|
||||
```bash
|
||||
mkdir live_boot && cd live_boot
|
||||
sudo debootstrap --arch=i386 --variant=minbase wheezy chroot http://ftp.nl.debian.org/debian/
|
||||
```
|
||||
|
||||
3. A couple of important steps before we chroot.
|
||||
```bash
|
||||
sudo mount -o bind /dev chroot/dev && sudo cp /etc/resolv.conf chroot/etc/resolv.conf
|
||||
```
|
||||
|
||||
4. Chroot to our Debian environment.
|
||||
```bash
|
||||
sudo chroot chroot
|
||||
```
|
||||
|
||||
5. **chroot**
|
||||
Set a few required variables and system settings in our Debian environment.
|
||||
```bash
|
||||
mount none -t proc /proc &&
|
||||
mount none -t sysfs /sys &&
|
||||
mount none -t devpts /dev/pts &&
|
||||
export HOME=/root &&
|
||||
export LC_ALL=C &&
|
||||
apt-get install dialog dbus --yes &&
|
||||
dbus-uuidgen > /var/lib/dbus/machine-id &&
|
||||
apt-get update
|
||||
```
|
||||
|
||||
6. **chroot** Set the root password to **yunohost**
|
||||
```bash
|
||||
passwd root
|
||||
```
|
||||
|
||||
7. **chroot** Install the required packages, replace the kernel version if needed.
|
||||
```bash
|
||||
apt-get install --no-install-recommends \
|
||||
linux-image-3.2.0-4-486 live-boot \
|
||||
net-tools wireless-tools wpagui tcpdump wget openssh-client \
|
||||
xserver-xorg-core xserver-xorg xinit xterm \
|
||||
pciutils usbutils gparted ntfsprogs hfsprogs rsync dosfstools syslinux partclone nano pv \
|
||||
chromium-browser libnss3-tools openbox git ca-certificates openssl
|
||||
```
|
||||
|
||||
8. **chroot** NetworkManager can break your network configuration in the chroot environment. You can install it afterward, and CTRL-C during the installation
|
||||
```bash
|
||||
apt-get --no-install-recommends install network-manager
|
||||
```
|
||||
|
||||
9. **chroot** Install YunoHost
|
||||
```bash
|
||||
git clone https://github.com/YunoHost/install_script /tmp/yunohost_install
|
||||
cd /tmp/yunohost_install && ./install_yunohost -a
|
||||
```
|
||||
|
||||
10. **chroot** Set parameters in order to launch everything right
|
||||
```bash
|
||||
echo "127.0.0.1 yunohost.org" >> /etc/hosts
|
||||
echo "chromium --user-data-dir=/root/.config/chromium --app=https://yunohost.org/yunohost/admin/" >> /etc/xdg/openbox/autostart
|
||||
echo -e "if [ -z \"\$DISPLAY\" ] && [ \$(tty) == /dev/tty1 ]; \nthen \n startx \nfi" >> /root/.bashrc
|
||||
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n YunoHostCA -i /etc/yunohost/certs/yunohost.org/ca.pem
|
||||
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YunoHostCrt -i /etc/yunohost/certs/yunohost.org/crt.pem
|
||||
```
|
||||
|
||||
11. **chroot** Edit `/etc/inittab` to login automatically
|
||||
```bash
|
||||
nano /etc/inittab
|
||||
# Replace the following line
|
||||
1:2345:respawn:/sbin/getty 38400 tty1
|
||||
# by this one
|
||||
1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1
|
||||
```
|
||||
|
||||
12. **chroot** Clean up our Debian environment before leaving.
|
||||
```bash
|
||||
rm -f /var/lib/dbus/machine-id &&
|
||||
apt-get clean &&
|
||||
rm -rf /tmp/* &&
|
||||
rm /etc/resolv.conf &&
|
||||
umount -lf /proc &&
|
||||
umount -lf /sys &&
|
||||
umount -lf /dev/pts
|
||||
# Then exit
|
||||
exit
|
||||
```
|
||||
|
||||
13. Unmount dev from the chroot
|
||||
```bash
|
||||
sudo umount -lf chroot/dev
|
||||
```
|
||||
|
||||
14. Make directories that will be copied to our bootable medium.
|
||||
```bash
|
||||
mkdir -p image/{live,isolinux}
|
||||
```
|
||||
|
||||
15. Compress the chroot environment into a Squash filesystem.
|
||||
```bash
|
||||
sudo mksquashfs chroot image/live/filesystem.squashfs -e boot
|
||||
```
|
||||
|
||||
16. Prepare our USB/CD bootloader.
|
||||
```bash
|
||||
cp chroot/boot/vmlinuz-3.2.0-4-486 image/live/vmlinuz1 &&
|
||||
cp chroot/boot/initrd.img-3.2.0-4-486 image/live/initrd1
|
||||
```
|
||||
|
||||
17. Create `image/isolinux/isolinux.cfg` menu for the bootloader.
|
||||
|
||||
```bash
|
||||
UI menu.c32
|
||||
|
||||
prompt 0
|
||||
menu title YunoHost Live
|
||||
|
||||
timeout 300
|
||||
|
||||
label YunoHost Live
|
||||
menu label ^YunoHost Live
|
||||
menu default
|
||||
kernel /live/vmlinuz1
|
||||
append initrd=/live/initrd1 boot=live
|
||||
```
|
||||
|
||||
### Build the .iso
|
||||
|
||||
Copy files necessary for the ISO to boot and then create the ISO
|
||||
|
||||
```bash
|
||||
cp /usr/lib/syslinux/isolinux.bin image/isolinux/ &&
|
||||
cp /usr/lib/syslinux/menu.c32 image/isolinux/
|
||||
cd image && genisoimage -rational-rock -volid "YunoHost Live" -cache-inodes -joliet -full-iso9660-filenames -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output ../yunohost-live.iso . && cd ..
|
||||
```
|
||||
|
||||
Great success! Now you can burn the .iso or use [Unetbootin](http://unetbootin.sourceforge.net/) to copy it on a USB key.
|
|
@ -1,152 +0,0 @@
|
|||
# Créer une Live ISO de YunoHost
|
||||
|
||||
<div class="alert alert-danger">This page is deprecated / obsolete / outdated. Information
|
||||
it contains should be updated (or should be removed).</div>
|
||||
|
||||
Testé sur Debian Wheezy (devrait marcher sur Ubuntu également).
|
||||
Tutoriel original : http://willhaley.com/blog/create-a-custom-debian-live-environment/
|
||||
|
||||
**Attention** : toutes les sections où vous devrez être dans un environnement **chroot** sont **surlignées**.
|
||||
|
||||
1. Installation des applications nécessaires à la compilation de l’environnement
|
||||
```bash
|
||||
sudo apt-get install debootstrap syslinux squashfs-tools genisoimage memtest86+ rsync
|
||||
```
|
||||
|
||||
2. Configuration de l’environnement de base Debian. Debian wheezy et une architecture i386 ont été utilisés pour effectuer les tests.
|
||||
Changer le miroir si vous n’êtes pas aux Pays-Bas ou que vous connaissez un miroir plus proche.
|
||||
|
||||
```bash
|
||||
mkdir live_boot && cd live_boot
|
||||
sudo debootstrap --arch=i386 --variant=minbase wheezy chroot http://ftp.nl.debian.org/debian/
|
||||
```
|
||||
|
||||
3. Deux étapes importantes avant de chroot :
|
||||
```bash
|
||||
sudo mount -o bind /dev chroot/dev && sudo cp /etc/resolv.conf chroot/etc/resolv.conf
|
||||
```
|
||||
|
||||
4. Chroot l’environnement Debian :
|
||||
```bash
|
||||
sudo chroot chroot
|
||||
```
|
||||
|
||||
5. **chroot**
|
||||
Configuration de variables et d’options système de l’environnement Debian :
|
||||
```bash
|
||||
mount none -t proc /proc &&
|
||||
mount none -t sysfs /sys &&
|
||||
mount none -t devpts /dev/pts &&
|
||||
export HOME=/root &&
|
||||
export LC_ALL=C &&
|
||||
apt-get install dialog dbus --yes &&
|
||||
dbus-uuidgen > /var/lib/dbus/machine-id &&
|
||||
apt-get update
|
||||
```
|
||||
|
||||
6. **chroot** Configuration du mot de passe root de **yunohost** :
|
||||
```bash
|
||||
passwd root
|
||||
```
|
||||
|
||||
7. **chroot** Installation des paquets requis, remplacement du noyau si nécessaire :
|
||||
```bash
|
||||
apt-get install --no-install-recommends \
|
||||
linux-image-3.2.0-4-486 live-boot \
|
||||
net-tools wireless-tools wpagui tcpdump wget openssh-client \
|
||||
xserver-xorg-core xserver-xorg xinit xterm \
|
||||
pciutils usbutils gparted ntfsprogs hfsprogs rsync dosfstools syslinux partclone nano pv \
|
||||
chromium-browser libnss3-tools openbox git ca-certificates openssl
|
||||
```
|
||||
|
||||
8. **chroot** Le NetworkManager peut casser la configuration de votre environnement chroot. Il est possible de l’installer a posteriori et d’annuler en pressant CTRL-C pendant l’installation.
|
||||
```bash
|
||||
apt-get --no-install-recommends install network-manager
|
||||
```
|
||||
|
||||
9. **chroot** Installation de YunoHost :
|
||||
```bash
|
||||
git clone https://github.com/YunoHost/install_script /tmp/yunohost_install
|
||||
cd /tmp/yunohost_install && ./install_yunohost -a
|
||||
```
|
||||
|
||||
10. **chroot** Configuration des paramètres :
|
||||
```bash
|
||||
echo "127.0.0.1 yunohost.org" >> /etc/hosts
|
||||
echo "chromium --user-data-dir=/root/.config/chromium --app=https://yunohost.org/yunohost/admin/" >> /etc/xdg/openbox/autostart
|
||||
echo -e "if [ -z \"\$DISPLAY\" ] && [ \$(tty) == /dev/tty1 ]; \nthen \n startx \nfi" >> /root/.bashrc
|
||||
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n YunoHostCA -i /etc/yunohost/certs/yunohost.org/ca.pem
|
||||
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YunoHostCrt -i /etc/yunohost/certs/yunohost.org/crt.pem
|
||||
```
|
||||
|
||||
11. **chroot** Éditer `/etc/inittab` pour se connecter automatiquement :
|
||||
```bash
|
||||
nano /etc/inittab
|
||||
# Remplacer la ligne suivante :
|
||||
1:2345:respawn:/sbin/getty 38400 tty1
|
||||
# par :
|
||||
1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1
|
||||
```
|
||||
|
||||
12. **chroot** Nettoyage de l’environnement Debian avant de quitter :
|
||||
```bash
|
||||
rm -f /var/lib/dbus/machine-id &&
|
||||
apt-get clean &&
|
||||
rm -rf /tmp/* &&
|
||||
rm /etc/resolv.conf &&
|
||||
umount -lf /proc &&
|
||||
umount -lf /sys &&
|
||||
umount -lf /dev/pts
|
||||
# Puis exit
|
||||
exit
|
||||
```
|
||||
|
||||
13. Démonter dev du chroot :
|
||||
```bash
|
||||
sudo umount -lf chroot/dev
|
||||
```
|
||||
|
||||
14. Créer les répertoires qui seront copiés dans le média bootable :
|
||||
```bash
|
||||
mkdir -p image/{live,isolinux}
|
||||
```
|
||||
|
||||
15. Compresser l’environnement chroot dans un système de fichier Squash :
|
||||
```bash
|
||||
sudo mksquashfs chroot image/live/filesystem.squashfs -e boot
|
||||
```
|
||||
|
||||
16. Préparer le bootloader USB/CD :
|
||||
```bash
|
||||
cp chroot/boot/vmlinuz-3.2.0-4-486 image/live/vmlinuz1 &&
|
||||
cp chroot/boot/initrd.img-3.2.0-4-486 image/live/initrd1
|
||||
```
|
||||
|
||||
17. Créer le menu `image/isolinux/isolinux.cfg` pour le bootloader.
|
||||
|
||||
```bash
|
||||
UI menu.c32
|
||||
|
||||
prompt 0
|
||||
menu title YunoHost Live
|
||||
|
||||
timeout 300
|
||||
|
||||
label YunoHost Live
|
||||
menu label ^YunoHost Live
|
||||
menu default
|
||||
kernel /live/vmlinuz1
|
||||
append initrd=/live/initrd1 boot=live
|
||||
```
|
||||
|
||||
### Compiler le .iso
|
||||
|
||||
Copier les fichiers nécessaires au démarrage de l’ISO et créer l’ISO :
|
||||
|
||||
```bash
|
||||
cp /usr/lib/syslinux/isolinux.bin image/isolinux/ &&
|
||||
cp /usr/lib/syslinux/menu.c32 image/isolinux/
|
||||
cd image && genisoimage -rational-rock -volid "YunoHost Live" -cache-inodes -joliet -full-iso9660-filenames -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output ../yunohost-live.iso . && cd ..
|
||||
```
|
||||
|
||||
Félicitations ! L’ISO peut désormais être gravée ou utilisée avec [Unetbootin](http://unetbootin.sourceforge.net/) pour la copier sur une clé USB.
|
11
default_es.md
Normal file
11
default_es.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
#Nueva página
|
||||
|
||||
Esta página todavía no existe, puedes editarla tecleando ```<Escap>``` en tu teclado, o clicando en el botón "Editar" abajo a la derecha de tu pantalla. Puedes echar un vistazo a los cambios que has efectuado empujando de nuevo la tecla ```<Escap>``` o clicando en el botón "Vistazo".
|
||||
|
||||
** Nota : ** Necesitarás una dirección email para validar tu propuesta.
|
||||
|
||||
|
||||
### Sintaxis
|
||||
Esta página utiliza la sintaxis Markdown, refiérete a la documentación para más informaciones :
|
||||
|
||||
http://daringfireball.net/projects/markdown/syntax
|
76
dev.md
76
dev.md
|
@ -7,7 +7,7 @@ contribution process.
|
|||
If you're looking for stuff to implement or fix, the bug-tracker is
|
||||
[here](https://github.com/YunoHost/issues/issues) !
|
||||
|
||||
**Come say hi to us in the [dev chatroom](xmpp:dev@conference.yunohost.org?join)** ! If you don't have an XMPP client, you can join using the widget at the bottom right of this page.
|
||||
**Come say hi to us in the [dev chatroom](/chat_rooms)** !
|
||||
|
||||
### Setting up a development environment
|
||||
|
||||
|
@ -19,16 +19,56 @@ If you're looking for stuff to implement or fix, the bug-tracker is
|
|||
|
||||
- **Implement and test your feature**. Depending on what you want to develop, you
|
||||
will want to :
|
||||
- **Python/CLI core** : work in `/vagrant/yunohost/`
|
||||
- **Web administration interface** : work in `/vagrant/yunohost-admin/`
|
||||
- **Python/CLI core** : work in `/ynh-dev/yunohost/`
|
||||
- **Web administration interface** : work in `/ynh-dev/yunohost-admin/`
|
||||
- You can also work on the other projects on which YunoHost is built
|
||||
(SSOwat, moulinette) in similar ways
|
||||
|
||||
### Overview of the 4 main pieces of YunoHost
|
||||
|
||||
#### Moulinette
|
||||
|
||||
It is a small "homemade" framework. [Its major role](https://moulinette.readthedocs.io/en/latest/actionsmap.html)
|
||||
is to allow us to build both a web API and a command-line API from the same
|
||||
Python code thanks to a YAML schema which we call
|
||||
[the actionmap](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml).
|
||||
|
||||
It handles other mechanisms like authentication, internationalization and
|
||||
small technical utilitary functions (e.g. reading/writing json).
|
||||
|
||||
Moulinette has its own documentation available [here](https://moulinette.readthedocs.io/en/latest/).
|
||||
|
||||
#### Yunohost
|
||||
|
||||
This piece is the very core of YunoHost. It contains:
|
||||
- [the python code](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) that manages users, domains, apps, services and other things
|
||||
- [bash helpers](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) mainly used by application packagers to package applications
|
||||
- [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) and [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) that are used to configure the various pieces of the ecosystem such as nginx, postfix, ...
|
||||
- [internationalized strings](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales)
|
||||
- [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests)
|
||||
|
||||
#### SSOwat
|
||||
|
||||
This is the single sign-on system of YunoHost. It both contains:
|
||||
- [Lua scripts](https://github.com/YunoHost/ssowat) that are directly interfaced with nginx and handle all the "technical" aspects of authentication and route accesses
|
||||
- the web [user portal](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) which is the interface used by YunoHost's end users to log in and browse installed apps
|
||||
|
||||
SSOwat is configured through `/etc/ssowat/conf.json` which is generated by YunoHost.
|
||||
|
||||
#### Yunohost-admin
|
||||
|
||||
It is an *optional* dependency of YunoHost and corresponds to an interface for the web API created by YunoHost and Moulinette (c.f. the `yunohost-api` service).
|
||||
|
||||
It essentially contains:
|
||||
- [view templates](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views)
|
||||
- corresponding [javascript controllers](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) that interact with the Yunohost API
|
||||
- and [internationalized strings](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales)
|
||||
|
||||
### Working on the YunoHost Python/CLI core
|
||||
|
||||
- Work in `/vagrant/yunohost/`.
|
||||
- Work in `/ynh-dev/yunohost/`.
|
||||
|
||||
- Run `/vagrant/ynh-dev use-git yunohost`.
|
||||
- Run `cd /ynh_dev/ && ./ynh-dev use-git yunohost`.
|
||||
|
||||
- The actionsmap file (`data/actionsmap/yunohost.yml`) defines the various
|
||||
categories, actions and arguments of the yunohost CLI. Define how you want
|
||||
|
@ -45,7 +85,7 @@ If you're looking for stuff to implement or fix, the bug-tracker is
|
|||
|
||||
##### Helpers / coding style
|
||||
|
||||
- To handle exceptions, you should raise some `MoulinetteError()`
|
||||
- To handle exceptions, you should raise some `YunohostError()`
|
||||
|
||||
- To help with internationalizing the messages, use `m18n.n('some-message-id')`
|
||||
and put your string in `locales/en.json`. You can also put arguments and use
|
||||
|
@ -57,17 +97,11 @@ If you're looking for stuff to implement or fix, the bug-tracker is
|
|||
|
||||
- Name of "private" functions should start with a `_`
|
||||
|
||||
##### Don't forget
|
||||
|
||||
- (Might not be necessary anymore) Each time you edit the actionsmap, you should
|
||||
force the refresh of the cache with `rm
|
||||
/var/cache/moulinette/actionsmap/yunohost.pkl`
|
||||
|
||||
### Working on the YunoHost web administration interface
|
||||
|
||||
- Work in `/vagrant/yunohost-admin/src/`.
|
||||
- Work in `/ynh-dev/yunohost-admin/src/`.
|
||||
|
||||
- Run `/vagrant/ynh-dev use-git yunohost-admin`. It launches gulp, such as each
|
||||
- Run `cd /ynh-dev && ./ynh-dev use-git yunohost-admin`. It launches gulp, such as each
|
||||
time you modify sources, it recompiles the code and you can use it by
|
||||
refreshing (Ctrl+F5) your web administration. To stop the command, just do Ctrl+C.
|
||||
|
||||
|
@ -99,8 +133,8 @@ If you're looking for stuff to implement or fix, the bug-tracker is
|
|||
|
||||
##### Don't forget
|
||||
|
||||
- Each time you edit the actionsmap, you should restart the yunohost-api :
|
||||
```service yunohost-api restart```
|
||||
- Each time you edit the actionsmap or the python code, you should restart the yunohost-api :
|
||||
```systemctl restart yunohost-api```
|
||||
(You'll need to retype your admin password in the web interface)
|
||||
|
||||
- You might need to force-clear the cache of your browser sometimes to refresh
|
||||
|
@ -111,14 +145,12 @@ If you're looking for stuff to implement or fix, the bug-tracker is
|
|||
|
||||
- Fork the relevant repo on Github, and commit stuff to a new branch. We recommend
|
||||
to name the branch with the following convention :
|
||||
- For an enhancement or new feature : `enh-REDMINETICKET-name-of-feature`
|
||||
- For a bugfix `fix-REDMINETICKET-description-of-fix`
|
||||
- `REDMINETICKET` is optional and is the id of a corresponding ticket on RedMine.
|
||||
- For an enhancement or new feature : `enh-ISSUENUMBER-name-of-feature`
|
||||
- For a bugfix `fix-ISSUENUMBER-description-of-fix`
|
||||
- `ISSUENUMBER` is optional and is the id of a corresponding ticket on the bug tracker.
|
||||
|
||||
- Once you're ready, open a Pull Request (PR) on Github. Please include `[fix]` or
|
||||
`[enh]` at the beginning of the title of your PR.
|
||||
|
||||
- After reviewing, testing and validation by other contributors, your branch
|
||||
should be merged in `testing` (?) !
|
||||
|
||||
|
||||
should be merged in `unstable` !
|
||||
|
|
69
dev_fr.md
69
dev_fr.md
|
@ -7,9 +7,7 @@ processus de contribution.
|
|||
Si vous chercher 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](xmpp:dev@conference.yunohost.org?join)** ! Si vous n'avez pas de client
|
||||
XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
|
||||
**Venez dire coucou sur le [salon de dev](/chat_rooms)** !
|
||||
|
||||
### Mettre en place un environnement de développement
|
||||
|
||||
|
@ -23,16 +21,55 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
|
|||
|
||||
- **Implémentez et testez votre fonctionnalité**. Suivant ce sur quoi vous
|
||||
voulez travailler :
|
||||
- **Cœur Python/ligne de comande** : allez dans `/vagrant/yunohost/`
|
||||
- **Interface d'administration web** : allez dans `/vagrant/yunohost-admin/`
|
||||
- **Cœur Python/ligne de comande** : 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 pour 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 es [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 `/vagrant/yunohost/`.
|
||||
- Allez dans `/ynh-dev/yunohost/`.
|
||||
|
||||
- Exécutez `/vagrant/ynh-dev use-git 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
|
||||
|
@ -49,7 +86,7 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
|
|||
|
||||
##### Helpers / style de code
|
||||
|
||||
- Pour gérer les exceptions, il existe un type `MoulinetteError()`
|
||||
- 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
|
||||
|
@ -62,17 +99,11 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
|
|||
|
||||
- Mettre un `_` devant les noms des fonctions "privées".
|
||||
|
||||
##### N'oubliez pas
|
||||
|
||||
- (Peut-être plus nécessaire) À chaque fois que vous modifiez l'actionsmap, il
|
||||
faut forcer le rafraîchissement du cache avec :
|
||||
`rm /var/cache/moulinette/actionsmap/yunohost.pkl`
|
||||
|
||||
### Travailler sur l'interface d'administration web
|
||||
|
||||
- Allez dans `/vagrant/yunohost-admin/src/`.
|
||||
- Allez dans `/ynh-dev/yunohost-admin/src/`.
|
||||
|
||||
- Exécutez `/vagrant/ynh-dev use-git yunohost-admin`. Ceci lance gulp, de sorte
|
||||
- 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.
|
||||
|
@ -121,14 +152,14 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page.
|
|||
- 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 :
|
||||
- Pour une nouvelle fonctionnalité ou amélioration : `enh-TICKETREDMINE-description-fonctionnalité`
|
||||
- Pour une nouvelle fonctionnalité ou amélioration : `enh-ISSUENUMBER-description-fonctionnalité`
|
||||
- Pour une correction de bug : `fix-REDMINETICKET-description-correctif`
|
||||
- `TICKETREDMINE` est optionnel et correspond au numéro du ticket sur RedMine
|
||||
- `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 `testing` (?) !
|
||||
branche sera mergée dans `unstable` !
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Diagnostic du bon fonctionnement de YunoHost
|
||||
|
||||
Si vous avez réussi l’[installation](/install_fr) de YunoHost et passé l’étape de [post-installation](/postinstall_fr), vous avez probablement un **serveur fonctionnel**.
|
||||
Si vous avez réussi l’[installation](/install) de YunoHost et passé l’étape de [post-installation](/postinstall), vous avez probablement un **serveur fonctionnel**.
|
||||
|
||||
### <small>1.</small> Essayer
|
||||
|
||||
|
@ -24,7 +24,7 @@ Si vous avez optez pour un nom de domaine se terminant par <b>.nohost.me</b> ou
|
|||
Cette étape n’est pas nécessaire si vous possédez un nom de domaine en <b>.nohost.me</b> ou un <b>.noho.st</b>
|
||||
</div>
|
||||
|
||||
Rendez-vous sur https://www.whatsmydns.net/, entrez votre nom de domaine dans le champ prévu à cet effet et cliquez sur `Search`. Si vous ne voyez pas votre adresse IP, ou s’il y a des croix rouges par endroit, cela signifie que vous avez probablement mal configuré votre [DNS](/dns_fr).
|
||||
Rendez-vous sur https://www.whatsmydns.net/, entrez votre nom de domaine dans le champ prévu à cet effet et cliquez sur `Search`. Si vous ne voyez pas votre adresse IP, ou s’il y a des croix rouges par endroit, cela signifie que vous avez probablement mal configuré votre [DNS](/dns).
|
||||
|
||||
---
|
||||
|
||||
|
@ -48,7 +48,7 @@ Vous pouvez également rediriger les ports manuellement vers l’adresse IP loca
|
|||
|
||||
Si le serveur est accessible de l’extérieur, mais inatteignable via son nom de domaine dans votre réseau local, votre box/routeur ne fait probablement pas correctement de <a href="https://fr.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>.
|
||||
|
||||
Voici un [tutoriel](dns_local_network_fr) pour pouvoir accéder à son serveur en réseau local et contourner le problème de hairpinning. Le tutoriel propose en première solution de mettre en place une redirection avec le DNS de la box et en seconde solution de modifier le fichier `hosts` des **clients** pour indiquer qu’il doit accéder au **serveur** via son IP locale. La première solution est préférable car il ne nécessite pas de modifier le fichier `hosts` sur chacun des clients du réseau local.
|
||||
Voici un [tutoriel](/dns_local_network) pour pouvoir accéder à son serveur en réseau local et contourner le problème de hairpinning. Le tutoriel propose en première solution de mettre en place une redirection avec le DNS de la box et en seconde solution de modifier le fichier `hosts` des **clients** pour indiquer qu’il doit accéder au **serveur** via son IP locale. La première solution est préférable car il ne nécessite pas de modifier le fichier `hosts` sur chacun des clients du réseau local.
|
||||
|
||||
___
|
||||
|
||||
|
|
8
dns.md
8
dns.md
|
@ -10,7 +10,7 @@ DNS stands for "Domain Name Server", and is often used for the configuration of
|
|||
|
||||
**For example**: `yunohost.org` points to the server at `88.191.153.110`.
|
||||
|
||||
This system was created to more easily keep track of server addresses. There are DNS registries for Internet names that you must register with. They are called "registrars", which will let you rent certain domain names for a price (between $5 or a few hundred, depending on the root domain and the chosen name). These [registrars](registrar) are private entities authorised by [ICANN](http://en.wikipedia.org/wiki/ICANN), such as [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). A privacy respecting registrar is [Njalla](https://njal.la/) or [Njalla Onion Site](njalladnspotetti.onion). With Njalla, you can register a domain name with just an email or XMPP address (N.B. : you won't have full control and ownership of the domain though).
|
||||
This system was created to more easily keep track of server addresses. There are DNS registries for Internet names that you must register with. They are called "registrars", which will let you rent certain domain names for a price (between $5 or a few hundred, depending on the root domain and the chosen name). These [registrars](registrar) are private entities authorised by [ICANN](http://en.wikipedia.org/wiki/ICANN), such as [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com). A privacy respecting registrar is [Njalla](https://njal.la/) or [Njalla Onion Site](http://njalladnspotetti.onion). With Njalla, you can register a domain name with just an email or XMPP address (N.B. : you won't have full control and ownership of the domain though).
|
||||
|
||||
It is important to note that subdomains do not necessarily have to send you to wherever the principal domain is pointing. If `yunohost.org` sends to `88.191.153.110`, that doesn't mean that `backup.yunohost.org` has to point at the same IP. You must therefore configure **all** of the domains and subdomains that you want to use.
|
||||
|
||||
|
@ -27,7 +27,7 @@ You have several choices here. Note that you can mix and match solutions if you
|
|||
**This is the recommended option if you are just starting out with self-hosting.**
|
||||
|
||||
2. You can use the DNS service offered by your **registrar** (Gandi, NameCheap, BookMyName or others) to configure your domain name. Here is the [standard DNS configuration](/dns_config). The DNS service of your router can also be used, more info on [how to setup a local domain](dns_local_network).
|
||||
You can also check out these pages for specific [registrar](/registrar_en) documentation: [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com).
|
||||
You can also check out these pages for specific [registrar](/registrar) documentation: [OVH](https://www.ovh.co.uk/index.xml), [Gandi](http://gandi.net), [NameCheap](http://namecheap.com) or [BookMyName](http://bookmyname.com).
|
||||
|
||||
**Warning**: If you choose this option, you will have more configuration possibilities, but nothing will be done for you. For example, if you want to use `webmail.my-server.org`, you must add it manually to the DNS records with your registrar.
|
||||
|
||||
|
@ -35,8 +35,8 @@ You can also check out these pages for specific [registrar](/registrar_en) docum
|
|||
|
||||
**Warning**: If you choose this option, all configuration options will be done automatically, you will retain a good deal of flexibility, but if your server gets knocked offline you will run into many problems. **Choose this only if you are certain.**
|
||||
|
||||
4. Once your DNS service is running, your server can use it but it needs to be configured, this is the [DNS resolver](/dns_resolver_en).
|
||||
4. Once your DNS service is running, your server can use it but it needs to be configured, this is the [DNS resolver](/dns_resolver).
|
||||
|
||||
|
||||
### Dynamic IP
|
||||
If the global IP address is changing follow this [tutorial](dns_dynamicip_en).
|
||||
If the global IP address is changing follow this [tutorial](/dns_dynamicip).
|
||||
|
|
|
@ -5,22 +5,23 @@ DNS (domain name system) is a system that converts human-readable addresses
|
|||
easily accessible by human beings, and for some services like mail to work
|
||||
properly, DNS must be configured.
|
||||
|
||||
If you're using a nohost.me / noho.st domain, the configuration should be
|
||||
If you're using an [automatic domain](/dns_nohost_me) provided by the YunoHost Project, the configuration should be
|
||||
performed automatically. If you're using your own domain name (e.g. bought via
|
||||
a registrar), you should manually configure your domain on your registrar's
|
||||
interface.
|
||||
|
||||
## Recommended DNS configuration
|
||||
NB: Examples here use the placeholder `your.domain.tld`, you have to replace it with your real domain, such as `www.yunohost.org`.
|
||||
|
||||
YunoHost provides a recommended DNS configuration, available via :
|
||||
- the webadmin, in Domain > your.domain.tld > DNS configuration ;
|
||||
- or the command line, `yunohost domain dns-conf your.domain.tld`
|
||||
|
||||
For specific needs or specific setups, and if you know what you're doing, you
|
||||
might want or have to tweak these or add additional ones (e.g. to handle
|
||||
might want or have to tweak these, or add additional ones (e.g. to handle
|
||||
subdomains).
|
||||
|
||||
The recommended configuration typically looks like this :
|
||||
The recommended configuration typically looks like this:
|
||||
|
||||
```bash
|
||||
#
|
||||
|
@ -51,7 +52,7 @@ mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=someHuuuuuuugeKey"
|
|||
_dmarc 3600 IN TXT "v=DMARC1; p=none"
|
||||
```
|
||||
|
||||
Though it might be easier to understand it if displayed like this :
|
||||
Though it might be easier to understand it if displayed like this:
|
||||
|
||||
|
||||
| Type | Name | Value |
|
||||
|
@ -76,7 +77,5 @@ Though it might be easier to understand it if displayed like this :
|
|||
- The dot at the end of `your.domain.tld.` is important ;) ;
|
||||
- `@` corresponds to `your.domain.tld`, and e.g. `muc` corresponds to `muc.your.domain.tld` ;
|
||||
- These are example values ! See your generated conf for the actual values you should use ;
|
||||
- We recommend a [TTL](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) of 3600 (1 hour). But you can use something else if you
|
||||
know what you're doing ;
|
||||
- Don't put an IPv6 record if you're not sure IPv6 really works on your server !
|
||||
You might have issues with Let's Encrypt if it doesn't.
|
||||
- We recommend a [TTL](https://en.wikipedia.org/wiki/Time_to_live#DNS_records) of 3600 (1 hour). But you can use something else if you know what you're doing ;
|
||||
- Don't put an IPv6 record if you're not sure IPv6 really works on your server! You might have issues with Let's Encrypt if it doesn't.
|
||||
|
|
74
dns_config_es.md
Normal file
74
dns_config_es.md
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Configuración de la zona DNS
|
||||
|
||||
DNS (sistema de nombre de dominios) es un elemento esencial de Internet que permite convertir direcciones comprensibles por seres humanos (los nombres de dominio) en direcciones comprensibles por la máquina (los IPs). Para que tu servidor esté fácilemente por otros seres humanos, y para que servicios como el mail funcionen correctamente, es preciso configurar la zona DNS de tu dominio.
|
||||
|
||||
Si utilizas un [dominio automático](/dns_nohost_me) provecho por el Proyecto Yunohost, la configuración debería ser automática. Si quieres utilizar tu propio nombre de dominio (comprado a un registrar), hay que configurar manualmente tu proprio nombre de dominio vía la interfaz de tu registrar.
|
||||
|
||||
|
||||
## Configuración DNS recomendada
|
||||
_Nota: los ejemplos utilizan el marcador `tu.dominio.tld`, debe ser reemplazado por su propio dominio, como `www.yunohost.org`._
|
||||
|
||||
YunoHost provee una configuración DNS recomendada, accesible vía :
|
||||
- la webadmin, en Dominios > tu.dominio.tld > Configuración DNS ;
|
||||
- o la linea de comando, `yunohost domain dns-conf tu.dominio.tld`
|
||||
|
||||
Para algunas necesidades o instalaciones particulares, y si sabes lo que estás haciendo, a lo mejor tendrás que modificar esa recomendación o añadir otros registros (e.g. para administrar subdominios).
|
||||
|
||||
La configuración recomendada típicamente se parece a :
|
||||
|
||||
```bash
|
||||
#
|
||||
# Registros IPv4/IPv6 básicos
|
||||
#
|
||||
@ 3600 IN A 111.222.33.44
|
||||
* 3600 IN A 111.222.33.44
|
||||
|
||||
# (Si tu servidor es compatibles con el IPv6, habrá registros AAAA)
|
||||
@ 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111
|
||||
* 3600 IN AAAA 2222:444:8888:3333:bbbb:5555:3333:1111
|
||||
|
||||
#
|
||||
# XMPP
|
||||
#
|
||||
_xmpp-client._tcp 3600 IN SRV 0 5 5222 tu.dominio.tld.
|
||||
_xmpp-server._tcp 3600 IN SRV 0 5 5269 tu.dominio.tld.
|
||||
muc 3600 IN CNAME @
|
||||
pubsub 3600 IN CNAME @
|
||||
vjud 3600 IN CNAME @
|
||||
|
||||
#
|
||||
# Mail (MX, SPF, DKIM et DMARC)
|
||||
#
|
||||
@ 3600 IN MX 10 votre.domaine.tld.
|
||||
@ 3600 IN TXT "v=spf1 a mx ip4:111.222.33.44 -all"
|
||||
mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=uneGrannnnndeClef"
|
||||
_dmarc 3600 IN TXT "v=DMARC1; p=none"
|
||||
```
|
||||
|
||||
Pero puede ser un poco más fácil entenderla viéndola de esta manera :
|
||||
|
||||
|
||||
| Tipo | Nombre | Valor |
|
||||
| :-----: | :--------------------: | :----------------------------------------------------: |
|
||||
| **A** | **@** | `111.222.333.444` (tu IPv4) |
|
||||
| A | * | `111.222.333.444` (tu IPv4) |
|
||||
| AAAA | @ | `2222:444:8888:3333:bbbb:5555:3333:1111` (tu IPv6) |
|
||||
| AAAA | * | `2222:444:8888:3333:bbbb:5555:3333:1111` (tu IPv6) |
|
||||
| **SRV** | **_xmpp-client._tcp** | `0 5 5222 tu.dominio.tld.` |
|
||||
| **SRV** | **_xmpp-server._tcp** | `0 5 5269 tu.dominio.tld.` |
|
||||
| CNAME | muc | `@` |
|
||||
| CNAME | pubsub | `@` |
|
||||
| CNAME | vjud | `@` |
|
||||
| **MX** | **@** | `tu.dominio.tld.` (y prioridad: 10) |
|
||||
| TXT | @ | `"v=spf1 a mx ip4:111.222.33.44 -all"` |
|
||||
| TXT | mail._domainkey | `"v=DKIM1; k=rsa; p=uneGrannnndeClef"` |
|
||||
| TXT | _dmarc | `"v=DMARC1; p=none"` |
|
||||
|
||||
#### Algunas notas a propósito de esta tabla :
|
||||
|
||||
- Todos los registros no son necesarios. Para una instalación mínima, solos los registros en negrita son necesarios.
|
||||
- El punto al final de `tu.dominio.tld.` es importante ;) ;
|
||||
- `@` corresponde a `tu.dominio.tld`, y por ejemplo `muc`corresponde a `muc.tu.dominio.tld` ;
|
||||
- ¡ Los valores mostrados son ejemplos ! Refiérete a la configuración generada por tu servidor qué valores utilizar.
|
||||
- Recomendamos un [TTL](https://en.wikipedia.org/wiki/Time_to_live) de 3600 (1 hora). Pero puedes utilizar otro valor si sabes lo que estás haciendo ;
|
||||
- ¡ No pongas registros IPv6 si no estás seguro que el IPv6 funcione en tu servidor ! Tendrás problemas con Let's Encrypt si no es el caso :-)
|
|
@ -7,12 +7,13 @@ votre serveur soit facilement accessible par d'autres êtres humains, et pour
|
|||
que certains services comme le mail fonctionnent correctement, il est nécessaire
|
||||
de configurer la zone DNS de votre domaine.
|
||||
|
||||
Si vous utilisez un domaine en nohost.me / noho.st domain, la configuration
|
||||
devrait être faite automatiquement. Si vous utilisez votre propre nom de domaine
|
||||
Si vous utilisez un [domaine automatique](/dns_nohost_me) fourni par le Projet Yunohost,
|
||||
la configuration devrait être faite automatiquement. Si vous utilisez votre propre nom de domaine
|
||||
(e.g. acheté chez un registrar), il vous faut configurer manuellement votre
|
||||
domaine via l'interface de votre registrar.
|
||||
|
||||
## Configuration DNS recommandée
|
||||
_NB : les exemples utilisent ici le texte `votre.domaine.tld`, à remplacer par votre propre domaine (par exemple `www.yunohost.org`)._
|
||||
|
||||
YunoHost fournit une configuration DNS recommandée, accessible via :
|
||||
- la webadmin, dans Domaines > votre.domain.tld > Configuration DNS ;
|
||||
|
@ -74,9 +75,9 @@ suivante :
|
|||
|
||||
#### Quelques notes à propos de cette table
|
||||
|
||||
- Tous ces enregistrements ne sont pas nécessaires. Pour une installation minimale, seuls les enregistrements en gras sont nécessaires.
|
||||
- Tous ces enregistrements ne sont pas nécessaires. Pour une installation minimale, seuls les enregistrements en gras sont nécessaires ;
|
||||
- Le point à la fin de `votre.domaine.tld.` est important ;) ;
|
||||
- `@` corresponds à `votre.domaine.tld`, et par ex. `muc` corresponds à `muc.votre.domaine.tld` ;
|
||||
- Les valeurs montrées sont des valeurs d'exemple ! Référez-vous à la configuration générée chez vous pour savoir quelles valeurs utiliser.
|
||||
- Les valeurs montrées ici sont des valeurs d'exemple ! Référez-vous à la configuration générée chez vous pour savoir quelles valeurs utiliser ;
|
||||
- Nous recommandons un [TTL](https://fr.wikipedia.org/wiki/Time_to_Live#Le_Time_to_Live_dans_le_DNS) de 3600 (1 heure). Mais vous pouvez utiliser une autre valeur si vous savez ce que vous faîtes ;
|
||||
- Ne mettez pas d'enregistrement IPv6 si vous n'êtes pas certains que l'IPv6 fonctionne sur votre serveur ! Vous aurez des problèmes avec Let's Encrypt si ce n'est pas le cas.
|
||||
|
|
|
@ -6,7 +6,7 @@ This tutorial aim to get around dynamic IP issue which is: when the IP public ad
|
|||
|
||||
The method proposed here consists of automatizing the fact the box annonces its global IP adress change to the dynamic DNS, so that the DNS zone will automatically be updated.
|
||||
|
||||
If you own a domain name at **OVH**, you may go to step 4 and follow this [tutorial](OVH_fr), given that OVH proposes a DynDNS service.
|
||||
If you own a domain name at **OVH**, you may go to step 4 and follow this [tutorial](/OVH), given that OVH proposes a DynDNS service.
|
||||
|
||||
#### 1. Create an account to a Dynamic DNS service
|
||||
Here are sites which offer a DynDNS service free of charge:
|
||||
|
@ -20,14 +20,14 @@ Here are sites which offer a DynDNS service free of charge:
|
|||
Register to one of them. It should provide you with one (or more) IP address to reach the service, and a login (that you may be able to self-define).
|
||||
|
||||
#### 2. Move the DNS zones
|
||||
Copy the [DNS zones](dns_config), except for the NS fields, from the [registrar](registrar_en) where you bought your domain name from to the dynamic DNS service you registrer at in step 1.
|
||||
Copy the [DNS zones](dns_config), except for the NS fields, from the [registrar](/registrar) where you bought your domain name from to the dynamic DNS service you registrer at in step 1.
|
||||
|
||||
#### 3. Switch the management of your domain name to the dynamic DNS server
|
||||
This step consists in declaring to your [registrar](registrar_en) that the DNS service will now be managed by the DynDNS service provider.
|
||||
This step consists in declaring to your [registrar](/registrar) that the DNS service will now be managed by the DynDNS service provider.
|
||||
|
||||
For this, fisrt declare in the NS field(s) the IP address provided by the DynDNS service.
|
||||
|
||||
Then, remove any other item in the [DNS zones](dns_config) (except the previous NS fields), from the [registrar](registrar_en).
|
||||
Then, remove any other item in the [DNS zones](dns_config) (except the previous NS fields), from the [registrar](/registrar).
|
||||
|
||||
#### 4. Configure the client
|
||||
This client could be your ISP-box, or a package installed on your server, such as `ddclient`.
|
||||
|
|
|
@ -8,7 +8,7 @@ Après avoir mis en place la solution proposée dans ce tutoriel, la redirection
|
|||
|
||||
La méthode qui sera mise en place consiste à rendre automatique le fait que la box annonce au DNS dynamique qu’elle a changée d’adresse IP publique, et qu’ensuite la zone DNS soit automatiquement changée.
|
||||
|
||||
Si vous possédez un nom de domaine chez **OVH**, vous pouvez aller à l’étape 4 et suivre ce [tutoriel](OVH_fr) étant donné qu’OVH propose un service de DynDNS.
|
||||
Si vous possédez un nom de domaine chez **OVH**, vous pouvez aller à l’étape 4 et suivre ce [tutoriel](/OVH) étant donné qu’OVH propose un service de DynDNS.
|
||||
|
||||
#### 1. Créer un compte pour un service de DNS dynamique
|
||||
|
||||
|
@ -22,13 +22,13 @@ Voici des sites qui proposent un service de DynDNS gratuitement :
|
|||
Créer un compte chez l’un d’eux.
|
||||
|
||||
#### 2. Déplacer les zones DNS
|
||||
Déplacer les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](registrar_en) où vous avez acheté votre nom de domaine vers le DNS dynamique où vous avez créé un compte à l’étape 1.
|
||||
Déplacer les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar) où vous avez acheté votre nom de domaine vers le DNS dynamique où vous avez créé un compte à l’étape 1.
|
||||
|
||||
#### 3. Basculer la gestion de votre nom de domaine vers le serveur DNS dynamique
|
||||
Cette étape consiste à faire savoir au [bureau d’enregistrement](registrar_en) que le service de DNS sera assuré par le service de DynDNS.
|
||||
Cette étape consiste à faire savoir au [bureau d’enregistrement](/registrar) que le service de DNS sera assuré par le service de DynDNS.
|
||||
Redirigez le champ NS vers l’adresse IP donnée par le service de DynDNS.
|
||||
|
||||
Ensuite, supprimez les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](registrar_en).
|
||||
Ensuite, supprimez les [zones DNS](dns_config), à l’exception des champs NS, du [bureau d’enregistrement](/registrar).
|
||||
|
||||
#### 4. Créer un identifiant de DNS dynamique
|
||||
Sur le service de DNS dynamique créer un identifiant qui sera entré dans un client de DNS dynamique.
|
||||
|
|
42
dns_es.md
Normal file
42
dns_es.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
# DNS : sistema de nombre de dominios
|
||||
|
||||
La configuración de los DNS es una etapa crucial para que tu servidor esté accesible. En efecto, si tus DNS están mal configurados, con mucha certeza tendrás problemas de conexión a tu servidor vía tu nombre de dominio.
|
||||
|
||||
*Aunque esta etapa de documentación parezca larga y compleja, sigue siendo muy importante si quieres entender correctamente las implicaciones de la denominación en Internet vía los nombres de dominio, que son necesarios para el funcionamiento de tu servidor Yunohost.*
|
||||
|
||||
### ¿ Qué es ?
|
||||
|
||||
DNS significa « Domain Name Server » en inglés, y está frecuentemente empleado para designar la configuración de tus nombres de dominio. Tu nombre de dominio debe apuntar hacia algo (en general, una dirección IP).
|
||||
|
||||
**Por ejemplo** : `yunohost.org` apunta hacia `88.191.153.110`.
|
||||
|
||||
Este sistema fue creado para poder memorizar más fácilmente las direcciones de servidores. Existen registros DNS en los cuales hay que apuntarse. Esto se hace con **registrars** que te alquilarán estos nombres de dominio a cambio de cierto importe (entre 5 y algunas centenas de euros). Estos [registrars](registrar) son entidades privadas autorizadas por el [ICANN](https://es.wikipedia.org/wiki/Corporaci%C3%B3n_de_Internet_para_la_Asignaci%C3%B3n_de_Nombres_y_N%C3%BAmeros), tales como [Gandi](http://gandi.net), [OVH](http://ovh.com) o [BookMyName](http://bookmyname.com).
|
||||
|
||||
Es importante notar que los subdominios no necesariamente apuntan al dominio principal.
|
||||
|
||||
Si `yunohost.org` apunta hacia `88.191.153.110`, no quiere decir que `backup.yunohost.org` apunte hacia la misma IP. Tienes que configurar **todos** los dominios y subdominios que deseas utilizar.
|
||||
|
||||
También existen **tipos** de registros DNS, lo que significa que un dominio puede apuntar hacia otra cosa que una dirección IP.
|
||||
|
||||
**Por ejemplo** : `www.yunohost.org` apunta hacia `yunohost.org`
|
||||
|
||||
|
||||
### ¿ Cómo (bien) hacer la configuración ?
|
||||
|
||||
Tienes varias opciones. Nota que puedes cumular estas soluciones si posees varios dominios : por ejemplo, puedes tener `mi-servidor.nohost.me` utilizando la solución **1.**, et `mi-servidor.org` utilizando la solución **2.**, redirigiéndolos hacia el mismo servidor YunoHost.
|
||||
|
||||
1. Puedes utilizar [el servicio DNS de YunoHost](/dns_nohost_me), que configurará él mismo los DNS de tu instancia YunoHost. Pero en este caso, tienes que elegir un dominio terminando por `.nohost.me`, `.noho.st` o `.ynh.fr`, lo que puede tener inconvenientes (tendrás direcciones email tales como `juan@mi-servidor.noho.st`).
|
||||
**Es el método recomendado si estás debutando.**
|
||||
|
||||
2. Puedes utilizar el servicio de DNS de tu **registrar** (Gandi, OVH, BookMyName u otro) para configurar tus nombres de dominio. Ésta es la [configuración DNS estándar](/dns_config). También es posible utilizar una redirección DNS local, más información sobre cómo [Acceder a su servidor desde la red local](/dns_local_network).
|
||||
También puedes consultar las documentaciones específicas a estas varias [oficinas de registro](/registrar) : [Gandi](http://gandi.net), [OVH](/OVH) o [BookMyName](http://bookmyname.com).
|
||||
|
||||
**Atención** : Si eliges este modo de funcionamiento, tendrás más flexibilidad, pero nada será automático. Por ejemplo si quieres utilizar `webmail.mi-servidor.org`, tendrás que añadirlo manualmente en la interfaz de tu registrar.
|
||||
|
||||
3. Tu instancia tiene un servicio DNS, lo que quiere decir que configura automáticamente sus registros DNS y que es posible delegarle la administración de estos registros. Por eso, tienes que indicar al **registrar** que es tu instancia Yunohost que es el servidor DNS de tu nombre de dominio creando un registro glue (a menudo denominado **glue record**) apuntando hacia la IP de tu instancia Yunohost.
|
||||
<br><br>**Atención** : Si eliges este modo de funcionamiento, todas las configuraciones serán automatizadas, tendrás mucha flexibilidad pero la pérdida de tu servidor potencialmente traerá muchos problemas. **Elige este método si estás muy seguro de los que estás haciendo.**
|
||||
|
||||
4. Una vez que tu servicio DNS está operacional, tu servidor puede utilizarlo pero hay que configurarlo, es el [revolvedor DNS](/dns_resolver).
|
||||
|
||||
### IP Dinámica
|
||||
Si la dirección IP pública cambia, sigue este [tutorial](/dns_dynamicip).
|
10
dns_fr.md
10
dns_fr.md
|
@ -27,18 +27,18 @@ Il existe également des **types** d’enregistrement DNS, ce qui veut dire qu
|
|||
|
||||
Plusieurs choix s’offrent à vous. Notez que vous pouvez cumuler ces solutions si vous possédez plusieurs domaines : par exemple vous pouvez avoir `mon-serveur.nohost.me` en utilisant la solution **1.**, et `mon-serveur.org` en utilisant la solution **2.**, redirigeant vers le même serveur YunoHost.
|
||||
|
||||
1. Vous pouvez utiliser [le service de DNS de YunoHost](/dns_nohost_me_fr), qui s’occupera de configurer tout seul les DNS de votre instance YunoHost. Vous devrez en revanche choisir un domaine se terminant par `.nohost.me`, `.noho.st` ou `.ynh.fr`, ce qui peut être inconvenant (vous aurez alors des adresses email telles que `jean@mon-serveur.noho.st`).
|
||||
1. Vous pouvez utiliser [le service de DNS de YunoHost](/dns_nohost_me), qui s’occupera de configurer tout seul les DNS de votre instance YunoHost. Vous devrez en revanche choisir un domaine se terminant par `.nohost.me`, `.noho.st` ou `.ynh.fr`, ce qui peut être inconvenant (vous aurez alors des adresses email telles que `jean@mon-serveur.noho.st`).
|
||||
**C’est la méthode recommandée si vous débutez.**
|
||||
|
||||
2. Vous pouvez utiliser le service de DNS de votre **registrar** (Gandi, OVH, BookMyName ou autre) pour configurer vos noms de domaine. Voici la [configuration DNS standard](/dns_config_fr). Il est aussi possible d'utiliser une redirection DNS locale, plus d'infos sur comment [Accéder à son serveur depuis le réseau local](/dns_local_network_fr).
|
||||
Vous pouvez également consulter les documentations spécifiques à ces différents [bureaux d’enregistrement](/registrar_fr) : [Gandi](http://gandi.net), [OVH](/OVH_fr) ou [BookMyName](http://bookmyname.com).
|
||||
2. Vous pouvez utiliser le service de DNS de votre **registrar** (Gandi, OVH, BookMyName ou autre) pour configurer vos noms de domaine. Voici la [configuration DNS standard](/dns_config). Il est aussi possible d'utiliser une redirection DNS locale, plus d'infos sur comment [Accéder à son serveur depuis le réseau local](/dns_local_network).
|
||||
Vous pouvez également consulter les documentations spécifiques à ces différents [bureaux d’enregistrement](/registrar) : [Gandi](http://gandi.net), [OVH](/OVH) ou [BookMyName](http://bookmyname.com).
|
||||
|
||||
**Attention** : Si vous choisissez ce mode de fonctionnement, vous aurez plus de flexibilité, mais rien ne sera automatique. Par exemple si vous souhaitez utiliser `webmail.mon-serveur.org`, vous devrez l’ajouter manuellement chez votre registrar.
|
||||
|
||||
3. Votre instance YunoHost possède un service DNS, ce qui veut dire qu’il configure automatiquement ses enregistrements DNS, et qu’il est possible de lui en déléguer la gestion. Pour ce faire, vous devez indiquer au **registrar** que c’est votre instance YunoHost qui est le serveur DNS de votre nom de domaine en créant un enregistrement glue (souvent appelé **glue record**) pointant vers l’IP de votre instance YunoHost.
|
||||
<br><br>**Attention** : Si vous choisissez ce mode de fonctionnement, toutes les configurations seront automatiques, vous disposerez d’une grande flexibilité, mais la perte de votre serveur entraînera potentiellement beaucoup d’ennuis. **Choisissez cette méthode si vous êtes sûr de vous.**
|
||||
|
||||
4. Une fois votre service DNS opérationnel, votre serveur peut l’utiliser mais il faut le configurer, c’est le [résolveur DNS](/dns_resolver_fr).
|
||||
4. Une fois votre service DNS opérationnel, votre serveur peut l’utiliser mais il faut le configurer, c’est le [résolveur DNS](/dns_resolver).
|
||||
|
||||
### IP Dynamique
|
||||
Si l’adresse IP publique change, suivez ce [tutoriel](dns_dynamicip_fr).
|
||||
Si l’adresse IP publique change, suivez ce [tutoriel](/dns_dynamicip).
|
||||
|
|
|
@ -12,7 +12,7 @@ You may retrieve your server private IP adress through different means:
|
|||
<img src="/images/ynh_login.png" width=600>
|
||||
|
||||
- Using Yunohost administration panel:
|
||||
Go to "State of the server" > Network
|
||||
Go to Tools > State of the server > Network
|
||||
<img src="/images/ynh_admin_etat_ip.png" width=900>
|
||||
|
||||
- Or using your router or internet box, depending on model.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue