mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
Merge remote-tracking branch 'upstream/master' into advanced_packaging
This commit is contained in:
commit
8dec705da5
1027 changed files with 52849 additions and 15270 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -1,2 +1,4 @@
|
|||
*~
|
||||
*.sw[op]
|
||||
/*
|
||||
!/pages
|
||||
!/images
|
||||
!/themes
|
|
@ -2,5 +2,3 @@ language: bash
|
|||
|
||||
script:
|
||||
- bash tests/dead_links.sh
|
||||
- bash tests/unreferenced_pages.sh
|
||||
- bash tests/check_code_block_syntax.sh
|
||||
|
|
24
README.md
24
README.md
|
@ -1,10 +1,26 @@
|
|||
# YunoHost Documentation
|
||||
|
||||
* [Web Site](https://yunohost.org)
|
||||
* Based on [Simone](https://github.com/YunoHost/Simone)
|
||||
* Based on [Grav](https://getgrav.org/)
|
||||
|
||||
Please report [issues on YunoHost bugtracker](https://github.com/YunoHost/issues/issues).
|
||||
|
||||
You can live test any changes by adding `/edit` to the URL on
|
||||
[yunohost.org](https://yunohost.org). For example, if you make changes to
|
||||
[apps.md](./apps.md), you can test them on [yunohost.org/#/apps/edit](https://yunohost.org/#/apps/edit).
|
||||
# Contributing
|
||||
|
||||
You can refer to the page on [writing documentation](https://yunohost.org/write_documentation).
|
||||
|
||||
## Regenerate the css
|
||||
|
||||
We use scss to manage the css. If you want to change it, you must rebuild it.
|
||||
|
||||
First install npm, then in the root folder of this repo, install sass: `npm install sass`
|
||||
|
||||
Finally you can rebuild the css with (You can replace `expanded` by `compressed` if you want):
|
||||
|
||||
```bash
|
||||
./node_modules/sass/sass.js themes/yunohost-docs/scss:themes/yunohost-docs/css --style expanded
|
||||
```
|
||||
|
||||
Source:
|
||||
https://sass-lang.com/guide
|
||||
|
||||
|
|
60
XMPP.md
60
XMPP.md
|
@ -1,60 +0,0 @@
|
|||
# Chat, VoIP and social network with <img src="/images/XMPP_logo.png" width=100>
|
||||
|
||||
YunoHost comes installed by default with an instant messaging server Metronome which implements the [XMPP protocol](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) (previously known as Jabber).
|
||||
|
||||
This protocol is already used by millions of people around the world - it is an open protocol. All applications based on XMPP are compatible with each other: when using an XMPP client, you can interact with anybody who has an XMPP account.
|
||||
|
||||
XMPP is an extensible protocol - this means users can configure "extensions" to chatrooms, to share messages and files, and to make voice and video calls using XMPP.
|
||||
|
||||
## XMPP account
|
||||
|
||||
To use an XMPP account you need a username, which takes the format: `user@domain.tld`, and a password.
|
||||
|
||||
With YunoHost, an XMPP account is created for all YunoHost users automatically. The XMPP account credentials corresponds to the user's main email address and password.
|
||||
|
||||
## Connecting to your YunoHost XMPP account
|
||||
|
||||
You can connect to your YunoHost XMPP account in different ways.
|
||||
|
||||
### Web clients
|
||||
|
||||
- [Movim](https://movim.eu)
|
||||
- [ConverseJS](https://conversejs.org/)
|
||||
- [Libervia/Salut à Toi](https://salut-a-toi.org/)
|
||||
|
||||
### Desktop clients
|
||||
|
||||
- [Gajim](http://gajim.org/) (Linux,Windows)
|
||||
- [Dino](https://dino.im) (Linux)
|
||||
- [Thunderbird](https://www.thunderbird.net/fr/) (multiplatform)
|
||||
- [Beagle IM](https://beagle.im/) (Mac OS)
|
||||
- [Profanity](https://profanity-im.github.io/) (Linux)
|
||||
|
||||
### Mobile clients
|
||||
|
||||
- [Conversations](https://conversations.im/) (Android)
|
||||
- [Xabber](http://xabber.com) (Android)
|
||||
- [Movim under Android](https://movim.eu)
|
||||
- [Monal](https://monal.im/) (iOS)
|
||||
- [Siskin IM](https://siskin.im/) (iOS)
|
||||
- [Kaidan](https://www.kaidan.im/) (Ubuntu Touch / Plasma Mobile)
|
||||
|
||||
Here is an exhaustive list of XMPP clients : https://xmpp.org/software/clients.html
|
||||
|
||||
## Encrypt conversations with OMEMO
|
||||
|
||||
XMPP chats can be made secure and private using [OMEMO] encryption (https://xmpp.org/extensions/xep-0384.html), for instance using Gajim:
|
||||
- Install `gajim` and the plugin `gajim-omemo`
|
||||
- Enable the plugin in `Tools > Plugins`
|
||||
- Enable it
|
||||
- Enable the encryption in the chat with somebody who also has OMEMO
|
||||
|
||||
## Chatrooms
|
||||
|
||||
To create a chatroom (multi-user chat) on your YunoHost server, use the identifier `chatroomname@muc.yourdomain.tld`.
|
||||
|
||||
For this to work you need to [add the corresponding `muc.` DNS record](/dns_config) in the DNS configuration.
|
||||
|
||||
## VoIP and videoconferences
|
||||
|
||||
A practical tool to call an XMPP client, either with voice or voice+video, is to use the client [Jitsi](http://jitsi.org/).
|
37
admin.md
37
admin.md
|
@ -1,37 +0,0 @@
|
|||
# Administrator web interface
|
||||
|
||||
Yunohost has an administrator web interface. The other way to administrate your Yunohost install is through the [command line](/commandline).
|
||||
|
||||
### Access
|
||||
|
||||
You can access your administrator web interface at this address: https://example.org/yunohost/admin (replace 'example.org' with your own domain name)
|
||||
|
||||
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||
<img src="/images/webadmin.png" style="max-width:100%;">
|
||||
</div>
|
||||
|
||||
|
||||
### Reset admin password
|
||||
|
||||
To reset the admin password (as root) :
|
||||
|
||||
```bash
|
||||
$ yunohost-reset-ldap-password
|
||||
```
|
||||
|
||||
A temporary password will be created, which you can use to define the new password.
|
||||
|
||||
|
||||
### How to move application folder
|
||||
|
||||
To change an application folder, only a few commands are needed: move content, create a symlink and set access rights.
|
||||
|
||||
Sample with WordPress:
|
||||
```bash
|
||||
# Move wordpress folder to an external hard drive
|
||||
$ sudo mv /var/www/wordpress /media/externalharddrive
|
||||
# Symbolic link
|
||||
$ sudo ln -s /media/externalharddrive/wordpress /var/www/wordpress
|
||||
# Folder must belong to www-data
|
||||
$ sudo chown -R www-data:www-data /media/externalharddrive/wordpress
|
||||
```
|
37
admin_es.md
37
admin_es.md
|
@ -1,37 +0,0 @@
|
|||
# La interfaz de administración web
|
||||
|
||||
Yunohost tiene una interfaz gráfica de administración. El otro método consiste en utilizar la [linea de comando](/commandline).
|
||||
|
||||
### Acceso
|
||||
|
||||
La interfaz admin está accesible desde tu instancia Yunohost en esta dirección : https://ejemplo.org/yunohost/admin (reemplaza ejemplo.org por tu nombre de dominio)
|
||||
|
||||
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||
<img src="/images/webadmin.png" style="max-width:100%;">
|
||||
</div>
|
||||
|
||||
|
||||
### 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
|
||||
```
|
37
admin_fr.md
37
admin_fr.md
|
@ -1,37 +0,0 @@
|
|||
# L’interface d’administration web
|
||||
|
||||
YunoHost est fourni avec une interface graphique d’administration. L’autre méthode est d’utiliser la [ligne de commande](/commandline).
|
||||
|
||||
### Accès
|
||||
|
||||
L’interface admin est accessible depuis votre instance YunoHost à l’adresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur)
|
||||
|
||||
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||
<img src="/images/webadmin_fr.png" style="max-width:100%;">
|
||||
</div>
|
||||
|
||||
|
||||
### Réinitialiser le mot de passe administrateur
|
||||
|
||||
Pour réinitialiser le mot de passe administrateur de YunoHost (à partir de l'utilisateur root) :
|
||||
|
||||
```bash
|
||||
$ yunohost-reset-ldap-password
|
||||
```
|
||||
|
||||
Un mot de passe temporaire sera créé, que vous pouvez utiliser pour ensuite définir un nouveau mot de passe.
|
||||
|
||||
|
||||
### Comment déplacer le dossier d’une application
|
||||
|
||||
Pour changer le dossier contenant une application, seules quelques commandes sont nécessaires : déplacer le contenu, créer un lien symbolique et définir les droits d’accès.
|
||||
|
||||
Exemple avec WordPress :
|
||||
```bash
|
||||
# Deplacement du wordpress vers un autre support
|
||||
$ sudo mv /var/www/wordpress /mon/dossier/cible
|
||||
# Création du lien symbolique
|
||||
$ sudo ln -s /media/disqueexterne/wordpress /var/www/wordpress
|
||||
# Le répertoire doit appartenir à www-data
|
||||
sudo chown -R www-data:www-data /media/externalharddrive/wordpress
|
||||
```
|
51
admindoc.md
51
admindoc.md
|
@ -1,51 +0,0 @@
|
|||
# Administrator documentation
|
||||
|
||||
* Discovering self-hosting
|
||||
* [What is Self-hosting](/selfhosting)
|
||||
* [What is YunoHost](/whatsyunohost)
|
||||
* [Try YunoHost](/try)
|
||||
* [How to host yourself](howtohostyourself)
|
||||
* [Choosing hardware](/hardware)
|
||||
* [About the friendliness of internet service providers](/isp)
|
||||
* [Installing YunoHost](/install)
|
||||
* [On a regular computer](/install_iso)
|
||||
* [On a dedicated or a virtual private server](/install_on_vps)
|
||||
* [On a Raspberry Pi](/install_on_raspberry)
|
||||
* [On an ARM board](/install_on_arm_board)
|
||||
* [On Debian](/install_on_debian)
|
||||
* [On VirtualBox](/install_on_virtualbox)
|
||||
* Finalizing your setup
|
||||
* [Post-installation](/postinstall)
|
||||
* [Configuring port forwarding](/isp_box_config)
|
||||
* [Configuring DNS records](/dns_config)
|
||||
* [Installing an SSL certificate](/certificate)
|
||||
* [Diagnose if your setup is working properly](/diagnostic)
|
||||
* Getting to know YunoHost
|
||||
* [Overview of YunoHost](/overview)
|
||||
* [General advices and guidelines](/guidelines)
|
||||
* [Web administration interface](/admin)
|
||||
* [SSH](/ssh) and [command-line administration](/commandline)
|
||||
* [Users and the SSO](/users)
|
||||
* [Groups and permissions](/groups_and_permissions)
|
||||
* [Applications](/apps_overview)
|
||||
* [Domains, DNS and certificates](/domains)
|
||||
* [Email](/email)
|
||||
* [Forms to remove its IP address from the black lists](/blacklist_forms)
|
||||
* [XMPP](/XMPP)
|
||||
* [Backup](/backup)
|
||||
* [Updating the system](/update) and [apps](/app_update)
|
||||
* [Security](/security)
|
||||
* Going further
|
||||
* [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
|
||||
* [Changing the administration password](/change_admin_password)
|
||||
* [Recover access to your server](/noaccess)
|
||||
* [Unban IPs in iptables/fail2ban](/fail2ban)
|
|
@ -1,45 +0,0 @@
|
|||
# Administrator-Dokumentation
|
||||
|
||||
* Self-Hosting entdecken
|
||||
* [Was ist Self-Hosting](/selfhosting)
|
||||
* [Was ist YunoHost](/whatsyunohost)
|
||||
* [Probiere YunoHost aus](/try)
|
||||
* [Wie du selber hostest](howtohostyourself)
|
||||
* [Wähle die Hardware](/hardware)
|
||||
* [Über die Freundlichkeit von Internet-Service-Providern](/isp)
|
||||
* [YunoHost installieren](/install)
|
||||
* [Auf einem normalen Computer](/install_iso)
|
||||
* [Auf einem eigenen oder virtuellen Server](/install_on_vps)
|
||||
* [Auf einem Raspberry Pi](/install_on_raspberry)
|
||||
* [Auf einem ARM-Board](/install_on_arm_board)
|
||||
* [Auf Debian](/install_on_debian)
|
||||
* [Auf VirtualBox](/install_on_virtualbox)
|
||||
* Setup abschließen
|
||||
* [Nach der Installation](/postinstall)
|
||||
* [Port-Forwarding konfigurieren](/isp_box_config)
|
||||
* [DNS-Einträge konfigurieren](/dns_config)
|
||||
* [SSL-Zertifikate installieren](/certificate)
|
||||
* [Diagnostiziere deine Installation](/diagnostic)
|
||||
* YunoHost kennenlernen
|
||||
* [Übersicht über YunoHost](/overview)
|
||||
* [Allgemeine Hinweise und Hilfestellungen](/guidelines)
|
||||
* [Web-Administrations-Interface](/admin)
|
||||
* [SSH](/ssh) and [command-line administration](/commandline)
|
||||
* [Benutzer und SSO (Single-Sign-On)](/users)
|
||||
* [Applicationen](/apps_overview)
|
||||
* [Domains, DNS und Zertifikate](/domains)
|
||||
* [E-Mail](/email)
|
||||
* [XMPP](/XMPP)
|
||||
* [Datensicherung](/backup)
|
||||
* [System-Update](/update) and [apps](/app_update)
|
||||
* [Sicherheit](/security)
|
||||
* Weiteres
|
||||
* [Noho.st / nohost.me / ynh.fr Domain-Namen](/dns_nohost_me)
|
||||
* [Grafischer Dateiaustausch mit deinem Server](/filezilla)
|
||||
* [Passe das Aussehen vom Yunohost-Portal an](/theming)
|
||||
* [Für externen Speicher hinzu](/external_storage)
|
||||
* [Migriere E-Mails zu Yunohost](/email_migration)
|
||||
* [Verstecke Services mit Tor](/torhiddenservice)
|
||||
* Hinweise zur Fehlersuche
|
||||
* [Entsperren von IPs in fail2ban](/fail2ban)
|
||||
* [Administrator-Passwort ändern](/change_admin_password)
|
|
@ -1,62 +0,0 @@
|
|||
# Documentation pour les administrateurs YunoHost
|
||||
|
||||
* Découvrir l'auto-hébergement
|
||||
* [Qu'est-ce que l'auto-hébergement](/selfhosting)
|
||||
* [Qu'est-ce que YunoHost](/whatsyunohost)
|
||||
* [Essayer YunoHost](/try)
|
||||
* [Choisir son mode d'hébergement](/howtohostyourself)
|
||||
* [Matériel compatible](/hardware)
|
||||
* [À propos des fournisseurs d'accès internet](/isp)
|
||||
* [Guide d’installation](/install)
|
||||
* [Sur un ordinateur "standard"](/install_iso)
|
||||
* [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps)
|
||||
* [Sur un Raspberry Pi](/install_on_raspberry)
|
||||
* [Sur une carte ARM](/install_on_arm_board)
|
||||
* [Sur Debian](/install_on_debian)
|
||||
* [Sur VirtualBox](/install_on_virtualbox)
|
||||
* Finaliser son installation
|
||||
* [Post-installation](/postinstall)
|
||||
* [Configurer les redirections de port](/isp_box_config)
|
||||
* [Configurer les enregistrements DNS](/dns_config)
|
||||
* [Installer un certificat SSL](/certificate)
|
||||
* [Diagnostic du bon fonctionnement du YunoHost](/diagnostic)
|
||||
* Apprendre à connaitre YunoHost
|
||||
* [Vue d'ensemble de YunoHost](/overview)
|
||||
* [Conseil généraux](/guidelines)
|
||||
* [L'interface d'administration web](/admin)
|
||||
* [SSH](/ssh) et [l'administration en ligne de commande](/commandline)
|
||||
* [Les utilisateurs et le SSO](/users)
|
||||
* [Les groupes et les permissions](/groups_and_permissions)
|
||||
* [Les applications](/apps_overview)
|
||||
* [Les domaines, la configuration DNS et les certificats](/domains)
|
||||
* [Les emails](/email)
|
||||
* [Formulaires pour enlever son adresse IP des listes noires](/blacklist_forms)
|
||||
* [XMPP](/XMPP)
|
||||
* [Les sauvegardes](/backup)
|
||||
* [Mettre à jour le système](/update) et [les applications](/app_update)
|
||||
* [La sécurité](/security)
|
||||
* Pour aller plus loin
|
||||
* Noms de domaine
|
||||
* [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me)
|
||||
* [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip)
|
||||
* [DNS et installation d’une application sur un sous-domaine](/dns_subdomains)
|
||||
* [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)
|
||||
* [Orange](/isp_orange)
|
||||
* [Free](/isp_free)
|
||||
* [Documentation spécifique à certaines apps](/appsdoc)
|
||||
* [Equivalence entre service framasoft et apps](/apps_framasoft)
|
||||
* [Échanger des fichiers avec son serveur à l'aide d'une interface graphique](/filezilla)
|
||||
* [Modifier l'apparence du portail utilisateur](/theming)
|
||||
* [Ajouter un stockage externe](/external_storage)
|
||||
* [Migrer ses emails vers YunoHost](/email_migration)
|
||||
* [YunoHost avec un service caché Tor](/torhiddenservice)
|
||||
* [Utilisation de certificats autres que Let's Encrypt](/certificate_custom)
|
||||
* [Une discussion sur les avantages d'utiliser un VPN](/vpn_advantage)
|
||||
* [(vieux) Procedure de Migration Jessie->Stretch](jessie_stretch_migration)
|
||||
* Dépannage
|
||||
* [Changer le mot de passe d’administration](/change_admin_password)
|
||||
* [Récupérer l'accès à son serveur](/noaccess)
|
||||
* [Débannir une IP dans Fail2ban/IPtables](/fail2ban)
|
|
@ -1,53 +0,0 @@
|
|||
#Baïkal
|
||||
|
||||
Baïkal is a server for calendars and address book, which used CalDav and CardDav protocol. Baïkal can be synced with a lot of client like Thunderbird + Lightning.
|
||||
|
||||
**WARNING**: Baikal will not work if you have installed a **Nextcloud** ( their cardav/caldav functions conflict).
|
||||
|
||||
### Web admin connection
|
||||
In SSO portal, click on "Baïkal", a link lead to a web page showing a message saying that the service is running. To acces the admin web page, add `/admin` to the URL. For example:
|
||||
|
||||
https://domain.org/baikal/admin
|
||||
|
||||
The user name specified is "admin" followed by the specific password choosen at Baïkal installation procedure. Please note, the password should not contain special characters.
|
||||
|
||||
### Example of creating a new user:
|
||||
|
||||
Add users to the "Users and resources" tab.
|
||||
|
||||
## CalDAV Connection
|
||||
|
||||
### Connection with Thunderbird + Lightning
|
||||
|
||||
Add a new agenda with type "Network" and "CalDAV"
|
||||
|
||||
The new URL to add is :
|
||||
|
||||
https://domain.org/baikal/cal.php/calendars/username/default
|
||||
|
||||
Be careful to replace "domain.org" by your own domain and the "username" by your user name.
|
||||
|
||||
### Connection to AgenDAV
|
||||
|
||||
AgenDAV is a web client for using your calendars. It's packaged for Yunohost and you can used it after installing Baïkal.
|
||||
|
||||
AgenDAV is already connected to Baïkal, any other configuration is necessary. If you create a new entry in Thunderbird + Lightning calendar, refresh your AgenDAV page is enough to see your modifications.
|
||||
|
||||
AgenDAV also allows you to create a new calendars very easily.
|
||||
|
||||
## CardDAV Connection
|
||||
### Roundcube Connection
|
||||
|
||||
Add new adressbook by navigating to Parameters > Preferences > CardDAV.
|
||||
|
||||
Make sure it is filled with:
|
||||
* Addressbook name: `default`
|
||||
* Username: `username`
|
||||
* Password: `thePasswordAssociatedToUsername`
|
||||
* URL : `https://example.com/baikal/card.php/addressbooks/username/default`
|
||||
|
||||
* Make sure to replace "example.com" with your domain and "username" with your username*
|
||||
|
||||
Save.
|
||||
|
||||
Now, the adressbook is accessible.
|
|
@ -1,55 +0,0 @@
|
|||
#Baïkal
|
||||
|
||||
Baïkal est un serveur de calendriers et de contacts accessible par les protocoles CalDAV (calendriers) et CardDAV (carnets d’adresses), autorisant ainsi la synchronisation avec de nombreux clients (Thunderbird + Lightning par exemple).
|
||||
|
||||
**AVERTISSEMENT** : Baikal ne fonctionnera pas si vous avez installé un **Nextcloud** ( leurs fonctions cardav/caldav entrent en conflit).
|
||||
|
||||
## Connexion à l’interface d’admin
|
||||
Sur le portail SSO, si on clique sur la tuile « Baïkal », on tombe sur une page bien peu conviviale qui explique que le service fonctionne. Pour accéder à l’admin, il faut rajouter `/admin`. Par exemple :
|
||||
|
||||
https://example.com/baikal/admin
|
||||
|
||||
Le nom d’utilisateur à spécifier est « admin » suivi du mot de passe spécifique que vous avez choisi lors de l’installation de Baïkal. Attention, le mot de passe ne doit pas contenir de carractères spéciaux.
|
||||
|
||||
### Exemple de création d'un nouvel utilisateur :
|
||||
|
||||
Aller dans l'onglet « settings », sélectionner « Digest » dans « WebDAV authentication type ».
|
||||
Ajouter les utilisateurs dans l'onglet « Users and resources ».
|
||||
|
||||
## Connexion CalDAV
|
||||
|
||||
### Connexion de Thunderbird + Lightning
|
||||
|
||||
Ajoutez un nouvel agenda de type « Réseau » puis « CalDAV ».
|
||||
|
||||
L’URL à entrer est la suivante :
|
||||
|
||||
`https://example.com/baikal/cal.php/calendars/username/default`
|
||||
|
||||
*En prenant soin de remplacer « example.com » par votre domaine puis « username » par votre nom d’utilisateur*
|
||||
|
||||
### Connexion de AgenDAV
|
||||
|
||||
AgenDAV est un client web permettant de manipuler vos calendriers. Il est packagé pour YunoHost et vous pouvez donc l’installer juste après avoir installé Baïkal.
|
||||
|
||||
AgenDAV est déjà connecté à Baïkal, aucune manipulation n’est nécessaire. Si vous créez une entrée dans le calendrier Thunderbird + Lightning, il vous suffit d’actualiser votre page AgenDAV pour voir les modifications apparaître.
|
||||
|
||||
AgenDAV vous permet également de créer de nouveaux calendriers très simplement.
|
||||
|
||||
##Connexion CardDAV
|
||||
|
||||
### Connexion de Roundcube
|
||||
|
||||
Ajoutez un nouveau carnet d’adresses en allant dans Paramètres > Préférences > CardDAV.
|
||||
|
||||
Renseigner :
|
||||
* Nom du carnet d’adresses : `default`
|
||||
* Nom d’utilisateur : `username`
|
||||
* Mot de passe : `leMotDePasseAssociéAUusername`
|
||||
* URL : `https://example.com/baikal/card.php/addressbooks/username/default`
|
||||
|
||||
*En prenant soin de remplacer « example.com » par votre domaine et « username » par votre nom d’utilisateur*
|
||||
|
||||
Enregistrer
|
||||
|
||||
Le carnet d’adresses est maintenant accessible.
|
|
@ -1,11 +0,0 @@
|
|||
#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
|
|
@ -1,11 +0,0 @@
|
|||
#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,28 +0,0 @@
|
|||
# Install Collabora with Nextcloud, using Docker
|
||||
**Note :** This walkthrough is based on a Debian 8 instance, and has not been tested since version 3 upgrade of Yunohost. As a prerequisite, you must have configured your domains and sub-domains in the DNS, in compliance with : [DNS](/dns), [Sub-domain install of an app](/dns_subdomains), [DNS settings](/dns_config) and [noho.st / nohost.me / ynh.fr domains](/dns_nohost_me)).
|
||||
|
||||
### 0. Install Nextcloud
|
||||
|
||||
If Nextcloud is not already installed on your Yunohost instance, you may do so with this link : [Install Nextcloud](https://install-app.yunohost.org/?app=nextcloud)
|
||||
|
||||
### 1. Install Collabora app within yunohost
|
||||
**In the admin interface :**
|
||||
|
||||
Applications > Install > at the bottom _Install a custom application_ > enter this url « https://github.com/aymhce/collaboradocker_ynh » > Enter the domain/subdomain name you wish for the Collabora application.
|
||||
|
||||
### 2. Configuration within Nextcloud
|
||||
|
||||
**Add the Collabora Online application in Nextcloud :**
|
||||
|
||||
Click on the user icon (top right) > Applications > Desktop & Text > Under the « Collabora Online » tile, click on `Activate` .
|
||||
|
||||
**Setup Collabora in Nextcloud :**
|
||||
|
||||
Click on the user icon (top right) > Parametres > Under _Administration_, _Collabora Online_ .
|
||||
Specify the « Online Collabora server » with the domain name chosen during the collabora install in Yunohost (full with « https:// »).
|
||||
|
||||
### 3. Reboot
|
||||
To allow all the pieces to work, system must be reboot. You can do so through the admin interface (Tools > Stop/reboot > `Reboot`) or via the command line interface : ``sudo reboot now``.
|
||||
|
||||
## Debugging
|
||||
Following some system, Yunohost or app updates, Collabora may display an error message such as "It's embarrassing...". To put things back in order, you just have to restart the docker machine, with the command ``systemctl restart docker``.
|
|
@ -1,13 +0,0 @@
|
|||
DokuWiki
|
||||
========
|
||||
|
||||
Homepage: https://dokuwiki.org
|
||||
|
||||
DokuWiki is a wiki application licensed under GPLv2 and written in the PHP programming language. It works on plain text files and thus does not need a database. Its syntax is similar to the one used by MediaWiki.More at Wikipedia
|
||||
|
||||
Developer(s):Andreas Gohr, et al.
|
||||
|
||||
Operating system:Cross-platform
|
||||
Platform:PHP
|
||||
|
||||
License:GNU General Public License
|
|
@ -1,13 +0,0 @@
|
|||
#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
|
|
@ -1,15 +0,0 @@
|
|||
# Firefox Sync
|
||||
Firefox Sync permits synchronize plugins, tabs, bookmarks, favorites, history over many Firefox instances.
|
||||
|
||||
### Firefox configuration
|
||||
#### Firefox desktop
|
||||
In Firefox URL bar put: `about:config`.
|
||||
|
||||
Search for: `identity.sync.tokenserver.uri`.
|
||||
|
||||
Replace the URL by: https://mydomain.tld/path/token/1.0/sync/1.5
|
||||
|
||||
Create an account at Mozilla: https://accounts.firefox.com/signup
|
||||
|
||||
#### Firefox mobile
|
||||
With the last version of firefox mobile it's same than for desktop.
|
|
@ -1,17 +0,0 @@
|
|||
# Firefox Sync
|
||||
Firefox Sync permet la synchronisation des favoris, des marques-pages, de l’historique, des onglets, des extensions entre plusieurs instances du navigateur web Firefox.
|
||||
|
||||
### Configuration de Firefox
|
||||
Configurer Firefox pour utiliser votre serveur pour la synchronisation.
|
||||
|
||||
#### Firefox bureau
|
||||
Tapez `about:config` dans la barre d’URL.
|
||||
|
||||
Recherchez : `identity.sync.tokenserver.uri`.
|
||||
|
||||
Remplacez l’URL par la vôtre : https://mondomaine.tld/adresse/token/1.0/sync/1.5
|
||||
|
||||
Créez un compte chez Mozilla : https://accounts.firefox.com/signup
|
||||
|
||||
#### Firefox mobile
|
||||
Avec la dernière version de firefox mobile c'est identique à firefox pour le bureau.
|
|
@ -1,6 +0,0 @@
|
|||
# Firefly III
|
||||
|
||||
For support and notes regarding the installation and use of Firefly III on YunoHost, please see these pages:
|
||||
|
||||
* [The official documentation](http://firefly-iii.readthedocs.io/en/latest/)
|
||||
* [The pages on YunoHost specifically](http://firefly-iii.readthedocs.io/en/latest/installation/yunohost.html)
|
|
@ -1,7 +0,0 @@
|
|||
#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/)
|
|
@ -1,5 +0,0 @@
|
|||
#FluxBB
|
||||
|
||||
FluxBB est un forum de discussions écrit en PHP rapide et léger.
|
||||
|
||||
[Site internet](https://fluxbb.org/)
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](app_gogs_fr) for now.
|
|
@ -1,12 +0,0 @@
|
|||
#  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/)
|
|
@ -1,4 +0,0 @@
|
|||
#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,4 +0,0 @@
|
|||
#Hextris
|
||||
|
||||
Car parfois il faut savoir se détendre. Hébergez votre propre fork du célèbre Tetris et devenez le maitre de cet hexagone infernal.
|
||||
Qui domptera cet hexagone infernal ?
|
|
@ -1,3 +0,0 @@
|
|||
#<img src="/images/jappix.png">Jappix
|
||||
|
||||
Jappix is a web client for [XMPP](/XMPP).
|
|
@ -1,3 +0,0 @@
|
|||
#<img src="/images/jappix.png">Jappix
|
||||
|
||||
Jappix est un client web [XMPP](/XMPP).
|
|
@ -1,12 +0,0 @@
|
|||
#<img src="/images/limesurvey.png">LimeSurvey
|
||||
|
||||
LimeSurvey is used to create advanced poll/form.
|
||||
|
||||
### How to create a poll
|
||||
You need to access the admin interfaces.
|
||||
|
||||
You can do it by adding /admin to the web address where the LimeSurvey is setup.
|
||||
|
||||
For example, if it is install on : https://example.org/poll/ you can access it on https://example.org/poll/admin/
|
||||
|
||||
* [LimeSurvey Website](https://www.limesurvey.org/)
|
|
@ -1,12 +0,0 @@
|
|||
#<img src="/images/limesurvey.png">LimeSurvey
|
||||
|
||||
LimeSurvey est un outil de création et diffusion de sondage/formulaire en ligne.
|
||||
|
||||
### Comment créer un questionnaire
|
||||
Pour créer un questionnaire, il faut accéder à l'interface d'administration.
|
||||
|
||||
Pour l'atteindre, il faut ajouter /admin à l'adresse web sur laquelle est installée le LimeSurvey.
|
||||
|
||||
Par exemple, si le LimeSurvey est installé sur https://example.org/poll/ il est possible d'accéder à l'interface d'administration via https://example.org/poll/admin/
|
||||
|
||||
* [LimeSurvey Website](https://www.limesurvey.org/)
|
|
@ -1,15 +0,0 @@
|
|||
# Mediawiki
|
||||
|
||||

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

|
||||
|
||||
## Link
|
||||
|
||||
Mediawiki : https://www.mediawiki.org/
|
||||
FAQ : https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ
|
||||
Support Desk : https://www.mediawiki.org/wiki/Project:Support_desk
|
|
@ -1,15 +0,0 @@
|
|||
# Mediawiki
|
||||
|
||||

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

|
||||
|
||||
## Liens
|
||||
|
||||
Mediawiki : https://www.mediawiki.org/
|
||||
FAQ : https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ
|
||||
Support Desk : https://www.mediawiki.org/wiki/Project:Support_desk
|
|
@ -1,25 +0,0 @@
|
|||
# Minidlna
|
||||
|
||||
Minidlna is a lightweight [dlna](https://fr.wikipedia.org/wiki/Digital_Living_Network_Alliance) server.
|
||||
It allows to easily share multimedia files with any compatible devices present on the LAN.
|
||||
|
||||
Minidlna does not have a graphical interface, but it does not require any special configuration.
|
||||
|
||||
### What multimedia files are shared?
|
||||
Minidlna sharing the folder `/home/yunohost.multimedia/share`, which is common to each user in `/home/$USER/Multimedia/Share`.
|
||||
[More information about multimedia files here.](Https://github.com/maniackcrudelis/yunohost.multimedia)
|
||||
|
||||
~~If [transmission](https://github.com/Kloadut/transmission_ynh) is installed, the downloaded media will be available in dlna.~~
|
||||
|
||||
### How to view and play media files shared by minidlna?
|
||||
To view and play media files, all you need is a compatible client DLNA/UPNP.
|
||||
|
||||
The majority of set-top boxes provided by ISPs are DLNA compatible, simply look for sources of external media.
|
||||
This is also true for the latest generation game consoles connected to internet.
|
||||
|
||||
Some TV and blu-ray player is also DLNA compatible.
|
||||
|
||||
In any case, it is generally sufficient to seek external sources, USB etc, to find the DLNA server, displayed under the name **YunoHost DLNA**.
|
||||
|
||||
There are a multitude of DLNA client for all platforms, including the following [not exhaustive list](https://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients#UPnP_AV_clients).
|
||||
In general, a DLNA client does not require any special configuration to access the media sharing.
|
|
@ -1,25 +0,0 @@
|
|||
# Minidlna
|
||||
|
||||
Minidlna est un serveur [dlna](https://fr.wikipedia.org/wiki/Digital_Living_Network_Alliance) ultra léger.
|
||||
Il permet de partager très simplement les fichiers multimédias avec tous les appareils compatibles présents sur le réseau local.
|
||||
|
||||
Minidlna ne dispose pas d’une interface graphique, mais ne nécessite pas de configuration particulière.
|
||||
|
||||
### Quels fichiers multimédias sont partagés ?
|
||||
Minidlna partage le dossier `/home/yunohost.multimedia/share`, qui est commun à chaque utilisateur dans le dossier `/home/$USER/Multimedia/Share`.
|
||||
[Plus d’informations sur les dossiers multimédias](https://github.com/maniackcrudelis/yunohost.multimedia).
|
||||
|
||||
~~Si [transmission](https://github.com/Kloadut/transmission_ynh) est installé, les médias téléchargés seront disponibles en dlna.~~
|
||||
|
||||
### Comment consulter et lire les fichiers multimédias partagés par minidlna ?
|
||||
Pour voir et lire les fichiers multimédias, il suffit de disposer d’un client compatible DLNA/UPNP.
|
||||
|
||||
La majorité des décodeurs TV fournis par les FAI sont compatibles DLNA, il suffit de chercher les sources de médias externes.
|
||||
C’est le cas également pour les consoles de jeux dernière génération connectée à internet.
|
||||
|
||||
Certaines TV et lecteur blu-ray sont également compatibles DLNA.
|
||||
|
||||
Dans tous les cas, il suffit en général d’aller chercher les sources externes, USB etc., pour trouver le serveur DLNA, affiché sous le nom **YunoHost DLNA**.
|
||||
|
||||
Il existe une multitude de clients DLNA pour toutes les plateformes, dont voici une [liste non exhaustive](https://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients#UPnP_AV_clients).
|
||||
De manière générale, un client DLNA ne nécessite pas de configuration particulière pour accéder au partage de fichiers multimédias.
|
|
@ -1 +0,0 @@
|
|||
default.md
|
|
@ -1 +0,0 @@
|
|||
default.md
|
|
@ -1 +0,0 @@
|
|||
default.md
|
|
@ -1,3 +0,0 @@
|
|||
# Peertube
|
||||
|
||||
PeerTube is a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser, using WebTorrent.
|
|
@ -1,16 +0,0 @@
|
|||
# <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)
|
|
@ -1,5 +0,0 @@
|
|||
===== Pihole =====
|
||||
|
||||
Homepage: https://pi-hole.net
|
||||
|
||||
**Pi-hole®** Network-wide ad blocking via your own DNS server, with nice Performance And Statistics web page.
|
|
@ -1,5 +0,0 @@
|
|||
# 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.
|
|
@ -1,32 +0,0 @@
|
|||
## <img src="https://yunohost.org/images/piwigo.png">
|
||||
|
||||
|
||||
|
||||
|
||||
[Piwigo](http://piwigo.org) is a photo gallery software for the web, built by an active community of users and developers.
|
||||
|
||||
Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and opensource.
|
||||
|
||||
[](https://install-app.yunohost.org/?app=piwigo)
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
In addition to Piwigo [core features](http://piwigo.org/basics/features), the following are made available with
|
||||
this package:
|
||||
|
||||
* Integrate with YunoHost users and SSO:
|
||||
* private mode: limit access to Yunohost users
|
||||
* public mode:
|
||||
* SSO for YunoHost users
|
||||
* allow other users management, and guest mode
|
||||
* Allow one YunoHost user to be the administrator (set at the installation)
|
||||
|
||||
|
||||
## Links
|
||||
|
||||
* Report a bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues
|
||||
* Piwigo website: http://piwigo.org/
|
||||
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
## <img src="https://yunohost.org/images/piwigo.png">
|
||||
|
||||
|
||||
|
||||
|
||||
[Piwigo](http://piwigo.org) est un logiciel de galerie photo pour le web, bâti par une communauté active d'utilisateurs et de développeurs.
|
||||
|
||||
Les extensions rendent Piwigo facilement personnalisable. Cerise sur le gâteau, Piwigo est libre et gratuit.
|
||||
|
||||
[](https://install-app.yunohost.org/?app=piwigo)
|
||||
|
||||

|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
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 :
|
||||
* SSO pour les utilisateurs YunoHost
|
||||
* permet de gérer l'accès à d'autres utilisateurs, et mode invité possible
|
||||
* de permettre à un utilisateur d'être administrateur (réglage lors de l'installation)
|
||||
|
||||
## Liens
|
||||
|
||||
* Rapport de bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues
|
||||
* Site web Piwigo : http://piwigo.org/
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](app_pleroma_fr) for now.
|
|
@ -1,19 +0,0 @@
|
|||
# Rainloop
|
||||
|
||||
Rainloop is a lightweight webmail.
|
||||
|
||||
To configure it, go to http://DOMAIN.TLD/rainloop/app/?admin
|
||||
|
||||
- The default login is : admin
|
||||
- The default password is : Password chosen during install
|
||||
- If you lost the admin password, you can retrieve it using ``sudo yunohost app settings rainloop password``
|
||||
|
||||
Each user can add a remote carddav server from their own parameters interface.
|
||||
|
||||
- If you use baikal, the CardDav address is: https://DOMAIN.TLD/baikal/card.php/addressbooks/USER/default/
|
||||
- If you use NextCloud, the CardDav address is: https://DOMAIN.TLD/nextcloud/remote.php/carddav/addressbooks/USER/contacts
|
||||
|
||||
Rainloop saves your PGP private keys in the browser storage. This means that you will loose your private keys if you clear your browser storage (e.g., private browsing, different computer...). This packages integrates [PGPback by chtixof](https://github.com/chtixof/pgpback_ynh) so you can store your PGP private keys on the server securely. Go to **http://DOMAIN.TLD/rainloop/pgpback** to backup your PGP keys on the server or restore them.
|
||||
|
||||
To upgrade the app once a new rainloop version is available, simply run in a local shell via ssh or otherwise :
|
||||
``sudo yunohost app upgrade -u https://github.com/YunoHost-Apps/rainloop_ynh rainloop``
|
|
@ -1,25 +0,0 @@
|
|||
# Rainloop
|
||||
|
||||
Rainloop est un webmail simple et léger.
|
||||
|
||||
Pour le configurer après l'installation, veuillez vous rendre sur http://DOMAIN.TLD/rainloop/app/?admin
|
||||
|
||||
- Le nom d'utilisateur admin par défaut est : admin
|
||||
- Le mot de passe admin par défaut est : Mot de passe choisi lors de l'installation
|
||||
- Si vous avez oublié votre mot de passe, vous pouvez le retrouver avec ``sudo yunohost app settings rainloop password``
|
||||
|
||||
## Carnet d'adresses
|
||||
Rainloop intègre par défaut un carnet d'adresse avec les utilisateurs du serveur yunohost. Chaque utilisateur peut ajouter un carnet d'adresse distant CardDav via leurs propres paramètres.
|
||||
- Si vous utilisez Baikal, l'adresse à renseigner est du type : https://DOMAIN.TLD/baikal/card.php/addressbooks/UTILISATEUR/default/
|
||||
- Si vous utilisez NextCloud, l'adresse à renseigner est du type : https://DOMAIN.TLD/nextcloud/remote.php/carddav/addressbooks/USER/contacts
|
||||
|
||||
## Gestion des domaines
|
||||
Les utilisateurs peuvent se servir de Rainloop pour accéder à d'autres boites mail que celle fournie par yunohost (par exemple gmail.com ou laposte.net). L'option est disponible par le bouton "compte -> ajouter un compte".
|
||||
L'administrateur doit pour cela autoriser la connexion à des domaines tiers, via une liste blanche dans l'interface administration.
|
||||
|
||||
## Gestion des clés PGP
|
||||
Rainloop stocke les clés PGP privées dans le stockage de navigateur. Cela implique que vos clés seront perdues quand vous videz le stockage de navigateur (navigation incognito, changement d'ordinateur, ...). Ce paquet intègre donc [PGPback de chtixof](https://github.com/chtixof/pgpback_ynh) pour que vous puissiez stocker vos clés privées PGP de manière sécurisée sur le serveur. Rendez-vous à l'adresse **http://DOMAIN.TLD/rainloop/pgpback** pour stocker vos clés privées PGP sur le serveur ou les restaurer dans un nouveau navigateur.
|
||||
|
||||
## Mise à jour
|
||||
Pour mettre à jour rainloop lorsqu'une nouvelle version est disponible, lancez en console locale (ssh ou autre) :
|
||||
``sudo yunohost app upgrade -u https://github.com/YunoHost-Apps/rainloop_ynh rainloop``
|
|
@ -1,19 +0,0 @@
|
|||
#<img src="/images/roundcube.png">Roundcube - Webmail
|
||||
|
||||
Roundcube is a web client for email messaging also called webmail.
|
||||
|
||||
### Synchronize your contacts
|
||||
|
||||
Roundcube offers you at the installation to synchronize your contacts with a CardDAV server, through a third party plugin. Using a CardDAV server like Baïkal or ownCloud's "Contacts" application, both available in YunoHost, allows you to centralize and manage your contacts.
|
||||
|
||||
Similarly to IMAP that allows you to synchronize your emails with your mail server, CardDAV allows you to access your contacts through multiple clients, such as Roundcube. Thanks to CardDAV, you will not have to import your contacts in each of your devices.
|
||||
|
||||
Note that addressbooks defined in Baïkal or ownCloud will be automatically added in Roundcube for each user if they are already installed.
|
||||
|
||||
----
|
||||
|
||||
In case you've installed ownCloud after, here is how to add your addressbooks:
|
||||
|
||||
* Go to "Contacts" section of your owncloud application and click on the gear wheel icon located at the bottom left. Then, click on "CardDAV link" and copy the URL that appeared.
|
||||
|
||||
* Go to Roundcube's CardDAV section and type in "ownCloud" in "Label" field, paste the previously copied URL and type your username and password. Your contacts are now synchronized!
|
|
@ -1,19 +0,0 @@
|
|||
#<img src="/images/roundcube.png">Roundcube - Webmail libre
|
||||
|
||||
Roundcube est un client web de courrier électronique libre ou aussi appelé un webmail.
|
||||
|
||||
### Synchronisation des contacts
|
||||
|
||||
Roundcube vous propose à l'installation, via un greffon tiers, de pouvoir synchroniser vos contacts avec un serveur CardDAV. Utiliser un serveur CardDAV comme Baïkal ou l’application « Contacts » d’ownCloud, tous deux disponibles pour YunoHost, a l’avantage de permettre une gestion centralisée de vos contacts.
|
||||
|
||||
De la même façon que le protocole IMAP vous permet de synchroniser vos courriels avec votre serveur mail, CardDAV vous permet d’avoir accès à vos contacts depuis une multitude de clients, dont Roundcube. Avec CardDAV, nous n’aurez donc plus besoin d’importer vos contacts dans chaque client.
|
||||
|
||||
Notez que si Baïkal ou ownCloud sont déjà installés, les carnets d'adresses qui y sont définis seront automatiquement ajoutés pour chaque utilisateur dans Roundcube.
|
||||
|
||||
----
|
||||
|
||||
Si vous avez installé ownCloud après, voici comment ajouter vos carnets d'adresses :
|
||||
|
||||
* Rendez-vous dans la section « Contacts » de votre espace ownCloud et cliquez sur l’icône représentant une roue dentée en bas à gauche. Ensuite, cliquez sur l’icône « Lien CardDAV » et copiez l’URL qui s’affiche en dessous.
|
||||
|
||||
* Rendez-vous ensuite dans la section CardDAV des paramètres de Roundcube et entrez « ownCloud » dans le champ « Label », collez l’URL que vous venez de copier et enfin entrez votre nom d’utilisateur et votre mot de passe. Vos contacts sont désormais synchronisés !
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](app_sogo_fr) for now.
|
|
@ -1,8 +0,0 @@
|
|||
#  SOGo
|
||||
|
||||
SOGo est un service de webmail pour votre serveur email, c'est une alternative à [RoundCube](app_roundcube). Il permet aussi la gestion des agendas et contacts présents sur le serveur.
|
||||
|
||||
## Quelques liens utiles
|
||||
|
||||
+ Site officiel de SOGo : [sogo.nu](https://sogo.nu/a)
|
||||
+ Dépot de l'application pour Yunohost : [github.com/YunoHost-Apps/sogo_ynh](https://github.com/YunoHost-Apps/sogo_ynh)
|
20
app_ttrss.md
20
app_ttrss.md
|
@ -1,20 +0,0 @@
|
|||
# <img src="/images/ttrss.png">Tiny Tiny RSS
|
||||
|
||||
Tiny Tiny RSS is a news feed reader using RSS and atom protocols.
|
||||
|
||||
### Exporting/importing feeds
|
||||
TTRSS allows you to save your feeds in opml format.
|
||||
In order to do so, go to Actions -> Configuration -> feed tab -> OPML section -> Export/Import OPML.
|
||||
|
||||
### Android Client
|
||||
|
||||
You can read your feeds on Android using ttrss-reader application:
|
||||
|
||||
**[ttrss-reader](https://f-droid.org/packages/org.ttrssreader/)**
|
||||
|
||||
To use it, you need to go to Actions -> Configuration, in TTRSS web interface and select "Activate API".
|
||||
Then, in your android ttrss-reader, fill the TTRSS server adress: "https://yourdomain.org/ttrss", username, password (no need to use HTTP authentification).
|
||||
|
||||
**Note** : you may need to uninstall and reinstall the TTRSS application through the Yunohost admin panel in order to be able to connect.
|
||||
|
||||
* [Tiny Tiny RSS Website](https://git.tt-rss.org/git/tt-rss/wiki)
|
|
@ -1,21 +0,0 @@
|
|||
# <img src="/images/ttrss.png">Tiny Tiny RSS
|
||||
|
||||
Tiny Tiny RSS est un lecteur de flux d’actualité utilisant les protocoles RSS et atom.
|
||||
|
||||
### Exportation/importation des flux
|
||||
Il est possible de faire une sauvegarde de ces flux d’actualité en format opml.
|
||||
|
||||
Pour cela, il faut aller dans Actions -> Configuration -> onglet flux -> chapitre OPML -> Exporter/Importer en OPML.
|
||||
|
||||
### Client Android
|
||||
|
||||
Il est possible d’utiliser le client Android ttrss-reader pour consulter ces flux :
|
||||
|
||||
**[ttrss-reader](https://f-droid.org/packages/org.ttrssreader/)**
|
||||
|
||||
Sur l’interface web, dans Actions -> Configuration, cochez « Activer l’accès par API »
|
||||
puis dans ttrss-reader sur Android, l’adresse du serveur TTRSS : « https://votredomaine.org/ttrss », nom d’utilisateur, mot de passe. (pas besoin d’utiliser l’authentification HTTP)
|
||||
|
||||
**Note** : vous pouvez avoir besoin de désinstaller, puis réinstaller entièrement l’app ttrss via l’administration de YunoHost pour que la connexion puisse se faire.
|
||||
|
||||
* [Site de Tiny Tiny RSS](https://git.tt-rss.org/git/tt-rss/wiki)
|
|
@ -1,38 +0,0 @@
|
|||
#Upgrade your applications
|
||||
|
||||
Once you installed applications, you may need to upgrade them, sooner or later.
|
||||
|
||||
** Caution: ** please be advised to backup your databases (using phpmyadmin application for example) and files before any upgrade.
|
||||
|
||||
### Upgrade using the admin panel
|
||||
Go to Tools > Update system
|
||||
|
||||
Once the applications packages list is retrieved, you will be able to update official applications that have a pending upgrade.
|
||||
|
||||
### Upgrade using command line
|
||||
First, connect to your server through SSH and type in the following command (WordPress update):
|
||||
```bash
|
||||
yunohost app upgrade wordpress
|
||||
```
|
||||
** Note: ** in case you have multiple instances of the same type (ex: 2 wordpress) installed, you will need to specify the instance name (ex: wordpress or wordpress__2).
|
||||
|
||||
#### Upgrade an unofficial application
|
||||
Specify the git repository containing the upgrade.
|
||||
|
||||
For intance, to upgrade LimeSurvey:
|
||||
```bash
|
||||
yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh
|
||||
```
|
||||
|
||||
** Note: ** be cautious when installing unofficial applications and upgrades. Be sure that theses updates are stables and are not a step in the development process. There may be a good reason if an application is not listed in the official repository.
|
||||
|
||||
** Caution: ** be sure to check the content of any update; installing or upgrading an unofficial application allows it to run scripts with the highest privileges.
|
||||
|
||||
#### Command line options
|
||||
|
||||
When upgrading apps from the command line, you can specify specific options to change the behaviour of the upgrade script.
|
||||
To set those options, set the corresponding variable before the upgrade command: `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress`
|
||||
|
||||
Available options are:
|
||||
- `NO_BACKUP_UPGRADE`: Do not perform the backup before the upgrade. Which means the upgrade will be operated without a security backup.
|
||||
- `YNH_FORCE_UPGRADE`: Force the upgrade of the app and the package, even if the app is already up to date.
|
|
@ -1,39 +0,0 @@
|
|||
#Mettre à jour ses applications
|
||||
|
||||
Une fois que vous avez installé des applications, il est nécessaire de les mettre à jour. Plusieurs méthodes existent et sont détaillées ci-dessous.
|
||||
|
||||
** Attention : ** il est recommandé de faire une sauvegarde de la base de données (par exemple via l’application [phpmyadmin](https://github.com/YunoHost-apps/phpmyadmin_ynh) ([installer](https://install-app.yunohost.org/?app=phpmyadmin))) ainsi que des fichiers avant une opération de mise à jour.
|
||||
|
||||
### Mise à jour par l’interface web
|
||||
Pour cela, il faut aller dans l’onglet "Mettre à jour le système".
|
||||
|
||||
Une fois la liste des paquets et des applications rafraîchie, il sera proposé de mettre à jour les applications et paquets qui peuvent l’être.
|
||||
|
||||
|
||||
### Mise à jour en ligne de commande
|
||||
Il faut d’abord se connecter sur le serveur en ssh, puis entrer la commande suivante (dans le cas d’une mise à jour WordPress) :
|
||||
```bash
|
||||
yunohost app upgrade wordpress
|
||||
```
|
||||
** Note : ** dans le cas où plusieurs applications du même type (ex : deux WordPress) sont installées sur le serveur, il est nécessaire de spécifier le nom d’instance (ex : wordpress ou wordpress__2).
|
||||
|
||||
#### Mise à jour d’une application non officielle
|
||||
Il faut pour cela indiquer le dépôt git qui contient la mise à jour.
|
||||
|
||||
Par exemple, pour mettre à jour LimeSurvey, entrer :
|
||||
```bash
|
||||
yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh
|
||||
```
|
||||
|
||||
** Note : ** faites attention aux applications/mises à jour non officielles que vous installez. Assurez-vous que ces mises à jour sont stables et ne constituent pas une étape de développement. Si une application ou une mise à jour n’est pas intégrée au dépôt officiel, il y a sûrement une raison.
|
||||
|
||||
** Attention : ** assurez-vous du contenu de cette mise à jour ; l’installation ou la mise à jour d’une application non officielle permet à cette dernière d’exécuter des scripts avec les privilèges les plus élevés. Si le script est malicieux, il pourrait nuire à votre vie privée en communiquant à des tiers toute donnée présente sur le serveur, ou bien les détruire irrémédiablement.
|
||||
|
||||
##### Options de ligne de commande
|
||||
|
||||
Lorsque vous mettez à jour des applications à partir de la ligne de commande, vous pouvez spécifier des options spécifiques pour modifier le comportement du script d'upgrade.
|
||||
Pour définir ces options, définissez la variable correspondante avant la commande d'upgrade: `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress`
|
||||
|
||||
Les options disponibles sont:
|
||||
- `NO_BACKUP_UPGRADE`: Ne pas effectuer le backup avant la mise à jour. Ce qui veut dire que la mise à jour se fera sans sauvegarde de sécurité.
|
||||
- `YNH_FORCE_UPGRADE`: Force la mise à jour de l'application et du package, même si l'application est déjà à jour.
|
|
@ -1,33 +0,0 @@
|
|||
## <img src="https://yunohost.org/images/Logo-wallabag-svg.svg">
|
||||
|
||||
[Wallabag](https://www.wallabag.org/) is a self hostable Read-It-Later application allowing
|
||||
you to not miss any content anymore. Click, save, read it when you can.
|
||||
It extracts content so that you can read it when you have time.
|
||||
|
||||
[](https://install-app.yunohost.org/?app=wallabag2)
|
||||
|
||||
It provides a web interface, browser (Firefox / Chrome / Opera) add-ons, mobile apps (Android / iOS / Windows Phone) and even on e-reader (PocketBook / Kobo)
|
||||
|
||||
### Features
|
||||
|
||||
In addition to Wallabag core features, the following are made available with
|
||||
this package:
|
||||
|
||||
* Integrate with YunoHost users and SSO - i.e. logout button
|
||||
* Allow one user to be the administrator (set at the installation)
|
||||
* Asynchronous import using Redis (need to be enabled in the *Internal Settings*). RabbitMQ import not supported (yet ?)
|
||||
|
||||
### Links
|
||||
|
||||
* Report a bug: https://github.com/YunoHost-Apps/wallabag2_ynh/issues
|
||||
* Wallabag website: https://www.wallabag.org/
|
||||
* Wallabag documentation: https://doc.wallabag.org/ (fr/en/it/de)
|
||||
* [Video demo](https://vimeo.com/video/167435064)
|
||||
|
||||
----
|
||||
|
||||
### Upgrade from v1.x
|
||||
|
||||
No automatic upgrade process is available. You need a manual (but simple) migration from [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh).
|
||||
Please take a look at the [official documentation](https://doc.wallabag.org/en/user/import/wallabagv1.html).
|
|
@ -1,30 +0,0 @@
|
|||
## <img src="https://yunohost.org/images/Logo-wallabag-svg.svg">
|
||||
|
||||
|
||||
[Wallabag](https://www.wallabag.org/) est une application de lecture différée : elle permet simplement d’archiver une page web en ne conservant que le contenu. Les éléments superflus (menus, publicités, etc.) sont supprimés.
|
||||
|
||||
Sont disponibles: une interface web, des add-ons pour navigateurs (Firefox / Chrome / Opera), des applications pour mobile (Android / iOS / Windows Phone) et même sur liseuse (PocketBook / Kobo).
|
||||
|
||||
[](https://install-app.yunohost.org/?app=wallabag2)
|
||||
|
||||
### Fonctionnalités
|
||||
|
||||
En plus des fonctionnalités principales de Wallabag, ce paquet propose également:
|
||||
|
||||
* Une intégration avec le système de gestion des utilisateurs et le SSO de Yunohost - e.g. un bouton de déconnexion
|
||||
* De permettre à un utilisateur d'être administrateur (réglage lors de l'installation)
|
||||
* Un import asynchrone utilisant Redis (à activer dans les *Paramètres Internes*). L'import via RabbitMQ n'est pas (encore ?) supporté.
|
||||
|
||||
### Liens
|
||||
|
||||
* Rapport de bug: https://github.com/YunoHost-Apps/wallabag2_ynh/issues
|
||||
* Site web de Wallabag: https://www.wallabag.org/
|
||||
* Documentation de Wallabag: https://doc.wallabag.org/ (fr/en/it/de)
|
||||
* [Demo vidéo](https://player.vimeo.com/video/167435064)
|
||||
|
||||
----
|
||||
|
||||
### Mettre à niveau depuis la v1.x
|
||||
|
||||
La mise à niveau depuis le paquet Yunohost de [Wallabag v1](https://github.com/YunoHost-Apps/wallabag_ynh) demande une opération manuelle, c'est pourquoi un nouveau paquet est fournit.
|
||||
Pour le processus de migration, merci de vous référer à [la documentation officiel de Wallabag](https://doc.wallabag.org/fr/user/import/wallabagv1.html).
|
|
@ -1,5 +0,0 @@
|
|||
#Yunofav : (unofficial) Page of favorite links for Yunohost
|
||||
|
||||
homepage: https://github.com/YunoHost-Apps/yunofav_ynh
|
||||
|
||||
Functionality: Creates a page for your favorite links, using the Yunohost tiles look and feel.
|
|
@ -1,6 +0,0 @@
|
|||
# Yunofav : (non officiel) Page de liens favoris pour Yunohost
|
||||
|
||||
page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh
|
||||
|
||||
|
||||
Fonctionnalité : Crée une page pour vos liens préférés, en utilisant le style et le fonctionnement des tuiles Yunohost.
|
368
apps.md
368
apps.md
|
@ -1,368 +0,0 @@
|
|||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
This page requires Javascript enabled to display properly :s.
|
||||
<br/>
|
||||
<br/>
|
||||
</span>
|
||||
|
||||
<!--
|
||||
Search bar
|
||||
-->
|
||||
|
||||
<div class="input-group">
|
||||
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input id="filter-app-cards" type="text" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
|
||||
<div class="input-group-btn">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
|
||||
<li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
|
||||
<li><a href="#" data-quality-filter="working">Only working apps</a></li>
|
||||
<li><a href="#" data-quality-filter="none">All apps</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the 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>
|
368
apps_ar.md
368
apps_ar.md
|
@ -1,368 +0,0 @@
|
|||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
This page requires Javascript enabled to display properly :s.
|
||||
<br/>
|
||||
<br/>
|
||||
</span>
|
||||
|
||||
<!--
|
||||
Search bar
|
||||
-->
|
||||
|
||||
<div class="input-group">
|
||||
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input id="filter-app-cards" type="text" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
|
||||
<div class="input-group-btn">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
|
||||
<li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
|
||||
<li><a href="#" data-quality-filter="working">Only working apps</a></li>
|
||||
<li><a href="#" data-quality-filter="none">All apps</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the 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>
|
368
apps_es.md
368
apps_es.md
|
@ -1,368 +0,0 @@
|
|||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
This page requires Javascript enabled to display properly :s.
|
||||
<br/>
|
||||
<br/>
|
||||
</span>
|
||||
|
||||
<!--
|
||||
Search bar
|
||||
-->
|
||||
|
||||
<div class="input-group">
|
||||
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input id="filter-app-cards" type="text" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
|
||||
<div class="input-group-btn">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
|
||||
<li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
|
||||
<li><a href="#" data-quality-filter="working">Only working apps</a></li>
|
||||
<li><a href="#" data-quality-filter="none">All apps</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the 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>
|
367
apps_fr.md
367
apps_fr.md
|
@ -1,367 +0,0 @@
|
|||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
|
||||
<br/>
|
||||
<br/>
|
||||
</span>
|
||||
|
||||
<!--
|
||||
Search bar
|
||||
-->
|
||||
<div class="input-group">
|
||||
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input id="filter-app-cards" type="text" class="form-control" placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
|
||||
<div class="input-group-btn">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="current-quality-filter" data-filter="decent">Seulement les apps de qualité décente</span> <span class="caret"></span>
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#" data-quality-filter="high">Seulement les apps haute-qualité</a></li>
|
||||
<li><a href="#" data-quality-filter="decent">Seulement les apps de qualité décente</a></li>
|
||||
<li><a href="#" data-quality-filter="working">Seulement les apps fonctionelles</a></li>
|
||||
<li><a href="#" data-quality-filter="none">Toutes les apps</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<div class="alert alert-info">L'équipe de packaging d'applications sera heureuse de recevoir vos commentaires! Si vous trouvez des problèmes ou des améliorations possibles en installant une app, n'hésitez pas à contribuer en créant un ticket (issue) directement sur le dépôt de code.</div>
|
||||
|
||||
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
|
||||
Les applications 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 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 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>
|
||||
/*=================================================
|
||||
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> Installer</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.fr)
|
||||
.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">niveau '+infos.level+'</span>');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
});
|
||||
</script>
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](apps_framasoft_fr) for now.
|
|
@ -1,48 +0,0 @@
|
|||
# Équivalence avec les applications Framasoft
|
||||
|
||||
| App Framasoft | Équivalent | Package |
|
||||
| :---: | :---: | :---: |
|
||||
| Framabag | Wallabag | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wallabag2_ynh)   |
|
||||
| Framabee | Searx | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/searx_ynh)   |
|
||||
| Framabin | PrivateBin | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/zerobin_ynh)   |
|
||||
| Framaboard | Kanboard | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/kanboard_ynh)   |
|
||||
| Framabookin | BicBucStriim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/bicbucstriim_ynh)   |
|
||||
| Framacalc | Ethercalc | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/ethercalc_ynh)   |
|
||||
| Framacarte | uMap | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/umap_ynh)   |
|
||||
| Framaclic | Matomo | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/matomo_ynh)   |
|
||||
| Framadate | OpenSondage | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/opensondage_ynh)   |
|
||||
| Framadrive | Nextcloud | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/nextcloud_ynh)   |
|
||||
| Framadrop | Lufi | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lufi_ynh)   |
|
||||
| Framaestro | Framaestro | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaestro_ynh)   |
|
||||
| Framaforms | Framaforms | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaforms_ynh)   |
|
||||
| Framagames | Framagames | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framagames_ynh)   |
|
||||
| Framagenda | (Agenda Nextcloud) | c.f. Nextcloud |
|
||||
| Framagit | GitLab | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gitlab_ynh)   |
|
||||
| | Gogs | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gogs_ynh)   |
|
||||
| Frama.link | Lstu | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lstu_ynh)   |
|
||||
| Framalistes | Mailman | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)   |
|
||||
| | Sympa | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/alexAubin/sympa_ynh)   |
|
||||
| Framanews | TinyTinyRSS | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/ttrss_ynh)   |
|
||||
| Framanotes | Turtl | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/turtl_ynh)   |
|
||||
| Framapad | Etherpad + mypads | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/etherpad_mypads_ynh)   |
|
||||
| Framapiaf | Mastodon | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mastodon_ynh)   |
|
||||
| Framapic | Lutim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lutim_ynh)   |
|
||||
| Framasites | Grav | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/grav_ynh)   |
|
||||
| Framaslides | Strut | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/strut_ynh)   |
|
||||
| Framasphère | Diaspora | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/aymhce/diaspora_ynh)   |
|
||||
| Framatalk | Jitsi Meet | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_ynh)   |
|
||||
| Framateam | Mattermost | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mattermost_ynh)   |
|
||||
| Framatrad | ? | Non packagé |
|
||||
| Framatube | Peertube | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/peertube_ynh)   |
|
||||
| Framavectoriel | SVG-Edit | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/svgedit_ynh)   |
|
||||
| Framavox | Loomio | Non packagé |
|
||||
| Framemo | Scrumblr | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/scrumblr_ynh)   |
|
||||
| Framindmap | Wisemapping | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wisemapping_ynh)   |
|
||||
| Framinetest | Minetest | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/minetest_ynh)   |
|
||||
| MyFrama | Shaarli | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/shaarli_ynh)   |
|
||||
|
||||
### Voir aussi
|
||||
|
||||
- [Liste complète des applications packagées](/apps)
|
||||
- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)
|
||||
|
368
apps_it.md
368
apps_it.md
|
@ -1,368 +0,0 @@
|
|||
# Application catalog
|
||||
|
||||
<span class="javascriptDisclaimer">
|
||||
This page requires Javascript enabled to display properly :s.
|
||||
<br/>
|
||||
<br/>
|
||||
</span>
|
||||
|
||||
<!--
|
||||
Search bar
|
||||
-->
|
||||
|
||||
<div class="input-group">
|
||||
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input id="filter-app-cards" type="text" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
|
||||
<div class="input-group-btn">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
|
||||
<li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
|
||||
<li><a href="#" data-quality-filter="working">Only working apps</a></li>
|
||||
<li><a href="#" data-quality-filter="none">All apps</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<!--
|
||||
Disclaimers
|
||||
-->
|
||||
|
||||
<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the 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>
|
159
apps_wishlist.md
159
apps_wishlist.md
|
@ -1,159 +0,0 @@
|
|||
# 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">apps list</a></div>
|
||||
|
||||
The following list is a compiled wishlist of applications that would be nice-to-have.
|
||||
|
||||
[Edit this list](/write_documentation) to add your own favorite app, or learn to [package apps](/packaging_apps) yourself.
|
||||
|
||||
- [List of awesome selfhosted apps](https://github.com/Kickball/awesome-selfhosted)
|
||||
- [List of awesome sysadmin apps](https://github.com/kahun/awesome-sysadmin)
|
||||
- [List of awesome Node.js projects](https://github.com/sqreen/awesome-nodejs-projects)
|
||||
- [List of SIP softwares/applications](https://en.wikipedia.org/wiki/List_of_SIP_software#Free_and_open-source_license)
|
||||
- [10er10](https://github.com/dready92/10er10)
|
||||
- [Ajenti](http://ajenti.org) / [github](https://github.com/ajenti/ajenti/)
|
||||
- [Akaunting](https://akaunting.com) Everything you need to manage your finances. Keep track of all of your payments, invoices, expenses, etc. / [github](https://github.com/akaunting/akaunting)
|
||||
- [Auth0 SSO Dashboard](https://github.com/auth0-extensions/auth0-sso-dashboard-extension)
|
||||
- [Bitmessage](https://bitmessage.org/wiki/Compiling_instructions) / [github](https://github.com/Bitmessage/PyBitmessage)
|
||||
- [Beehive](https://github.com/muesli/beehive)
|
||||
- [BigBlueButton](https://bigbluebutton.org) / [install instruction](http://docs.bigbluebutton.org/2.2/install.html) / [github](https://github.com/bigbluebutton/bigbluebutton) Complete open source web conferencing system.
|
||||
- [Bludit](https://www.bludit.com) / [github](https://github.com/bludit/bludit)
|
||||
- [Blynk](https://github.com/blynkkk/blynk-library)
|
||||
- [Bookstack](https://www.bookstackapp.com/) / [github](https://github.com/BookStackApp/BookStack)
|
||||
- [btcpayserver](https://github.com/btcpayserver/btcpayserver)
|
||||
- [cgit](http://git.zx2c4.com/cgit/about)
|
||||
- [CheckUp](https://sourcegraph.github.io/checkup) / [github](https://github.com/sourcegraph/checkup)
|
||||
- [citadel-suite - Debian](https://packages.debian.org/stretch/citadel-suite) / [citadel easyinstall - citadel.org](http://www.citadel.org/doku.php?id=installation:easyinstall:easyinstall) Citadel is a complete and feature-rich open source groupware platform. Directly descending from a well known C/PM BBS system, it has a venerable [history](http://www.citadel.org/doku.php?id=documentation:citadel_past_present_and_future#citadel.past.present.and.future)
|
||||
- [Cockpit](http://cockpit-project.org/)
|
||||
- [Commafeed](https://github.com/Athou/commafeed)
|
||||
- [Converse.js](https://conversejs.org) / [github](https://github.com/jcbrand/converse.js)
|
||||
- [Couchdb](https://couchdb.apache.org/) databases creation and management
|
||||
- [Cozy](https://github.com/cozy)
|
||||
- [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
|
||||
- [Darkwire.io](https://github.com/seripap/darkwire.io)
|
||||
- [DirectoryLister](https://github.com/DirectoryLister/DirectoryLister)
|
||||
- [Draw.io](https://github.com/jgraph/drawio) : a diagram online creator
|
||||
- [EasyAppointments](https://easyappointments.org/) Online appointment booker (similar to Doodle)
|
||||
- [eLabFTW](https://www.elabftw.net/) electronic lab notebook / [github](https://github.com/elabftw/elabftw)
|
||||
- [Emoncms](https://github.com/emoncms/emoncms)
|
||||
- [ERPnext](https://erpnext.com/download) / [github](https://github.com/frappe/erpnext)
|
||||
- [EteSync](https://www.etesync.com/) / [github](https://github.com/etesync)
|
||||
- [Epicyon](https://epicyon.net/) / [gitlab](https://gitlab.com/bashrc2/epicyon)
|
||||
- [Ferdi server](https://github.com/getferdi/server) is the server to self host the data and configuration of the [ferdi](https://getferdi.com/) messaging aggregator client.
|
||||
- [FEX](http://fex.rus.uni-stuttgart.de/)
|
||||
- [FitTrackee](https://github.com/SamR1/FitTrackee)
|
||||
- [Fossil](http://www.fossil-scm.org)
|
||||
- [WebThings Gateway](https://iot.mozilla.org/gateway/) [github](https://github.com/mozilla-iot/)
|
||||
- [Gancio](https://gancio.org/) / [framagit](https://framagit.org/les/gancio)
|
||||
- [Geneweb](https://geneweb.tuxfamily.org) / [github](https://github.com/geneweb/geneweb)
|
||||
- [GetSimple CMS](http://get-simple.info) / [github](https://github.com/GetSimpleCMS/GetSimpleCMS)
|
||||
- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts) / [github](https://github.com/allinurl/goaccess)
|
||||
- [Gollum](https://github.com/gollum/gollum)
|
||||
- [Goploader](https://github.com/Depado/goploader)
|
||||
- [Granary](https://github.com/snarfed/granary)
|
||||
- [Guacamole](http://guacamole.apache.org/)
|
||||
- [Habitica](https://habitica.com/) / [github](https://github.com/HabitRPG/habitica)
|
||||
- [HackMD CE](https://github.com/hackmdio/hackmd)
|
||||
- [Helpy](https://github.com/helpyio/helpy)
|
||||
- [Hexo](https://hexo.io/) / [github](https://github.com/hexojs/hexo)
|
||||
- [Icecast 2](http://www.icecast.org) / [gitlab](https://gitlab.xiph.org/xiph/icecast-server/)
|
||||
- [ikiwiki](http://ikiwiki.info)
|
||||
- [Invidious](https://github.com/omarroth/invidious)
|
||||
- [Invoice Ninja](https://www.invoiceninja.com) / [github](https://github.com/invoiceninja/invoiceninja)
|
||||
- [InvoicePlane](https://invoiceplane.com) / [github](https://github.com/InvoicePlane/InvoicePlane)
|
||||
- [IPFS](https://ipfs.io) / [github](https://github.com/ipfs/ipfs)
|
||||
- [Jellyfin](https://github.com/jellyfin)
|
||||
- [JS Bin](http://jsbin.com/help/2-second-setup) / [github](https://github.com/jsbin/)
|
||||
- [Joplin](http://joplin.cozic.net/) / [github](https://github.com/laurent22/joplin)
|
||||
- [Joplin-web](https://github.com/foxmask/joplin-web) / [github](https://github.com/foxmask/joplin-web)
|
||||
- [Kiwix](http://www.kiwix.org/) Offline wikipedia / [github](https://github.com/kiwix/)
|
||||
- [Known](https://withknown.com) / [github](https://github.com/idno/known)
|
||||
- [Koel](http://koel.phanan.net) / [github](https://github.com/phanan/koel)
|
||||
- [Kontalk](https://kontalk.org) / [github](https://github.com/kontalk)
|
||||
- [Koozip](http://koozic.net) / [github](https://github.com/DocMarty84/koozic)
|
||||
- [L'atelier](https://github.com/jbl2024/latelier)
|
||||
- [Lemmy](https://dev.lemmy.ml) / [github](https://github.com/dessalines/lemmy) A federated alternative to reddit.
|
||||
- [Lessy](https://lessy.io) / [github](https://github.com/lessy-community/lessy)
|
||||
- [LibreOffice Online](https://wiki.documentfoundation.org/ReleaseNotes/5.3/fr#LibreOffice_Online)
|
||||
- [LiquidSoap](http://savonet.sourceforge.net/) / [github](https://github.com/savonet/liquidsoap)
|
||||
- [LocomotiveCMS](https://github.com/locomotivecms/engine)
|
||||
- [Loomio](https://www.loomio.org) / [github](https://github.com/loomio/loomio/)
|
||||
- [MaidSafe](http://maidsafe.net) / [github](https://github.com/maidsafe)
|
||||
- [Mailpile](https://www.mailpile.is) / [github](https://github.com/mailpile/Mailpile)
|
||||
- [Mailtrain](https://mailtrain.org/) / [github](https://github.com/Mailtrain-org/mailtrain)
|
||||
- [Mautic](https://github.com/mautic/mautic)
|
||||
- [microblog.pub](https://microblog.pub) / [github](https://github.com/tsileo/microblog.pub)
|
||||
- [Mirakel](http://mirakel.azapps.de/taskwarrior.html) / [github](https://github.com/GothenburgBitFactory/taskwarrior) (/!\ SSL-Warning)
|
||||
- [Modoboa](http://modoboa.org) / [github](https://github.com/modoboa/)
|
||||
- [MotionEye](https://github.com/ccrisan/motioneye)
|
||||
- [MPD](http://www.musicpd.org)
|
||||
- [MyBB](https://mybb.com/) / [github](https://github.com/mybb)
|
||||
- [Museek+](https://github.com/eLvErDe/museek-plus)
|
||||
- [N8n.io](https://n8n.io)
|
||||
- [Netrunner](https://github.com/mtgred/netrunner)
|
||||
- [Nibbleblog](http://www.nibbleblog.com)/ [github](https://github.com/dignajar/nibbleblog)
|
||||
- [Nuage](https://nuage.kerjean.me/login) / [github](https://github.com/mickael-kerjean/filestash)
|
||||
- [OhMyForm](https://github.com/ohmyform) (Only support Docker install way and some VPS aren't compatible, see TellForm which support non-Docker install but is discontinued)
|
||||
- [Ombi](https://github.com/tidusjar/Ombi)
|
||||
- [Omeka S](https://omeka.org/s/) / [github](https://github.com/omeka/omeka-s)
|
||||
- [OpenBazaar](https://openbazaar.org) / [github](https://github.com/openbazaar)
|
||||
- [OpenCart](https://www.opencart.com) / [github](https://github.com/opencart/opencart)
|
||||
- [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 / [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)
|
||||
- [Pump.io](http://pump.io) / [github](https://github.com/pump-io/pump.io)
|
||||
- [qBittorrent](https://github.com/qbittorrent/qBittorrent)
|
||||
- [racktables](http://racktables.org) / [github](https://github.com/RackTables/racktables)
|
||||
- [Radarr](https://github.com/Radarr/Radarr)
|
||||
- [Request Tracker](https://bestpractical.com) / [github](https://github.com/bestpractical/rt)
|
||||
- [Restya](http://restya.com) / [github](https://github.com/RestyaPlatform/board/)
|
||||
- [Retroshare](https://retroshare.cc/) / [github](https://github.com/RetroShare/RetroShare)
|
||||
- [ScenariChain-server](https://download.scenari.software/SCENARIchain-server/)
|
||||
- [Scuttlebutt Pub](https://www.scuttlebutt.nz/contributing)
|
||||
- [ShareLatex](https://www.sharelatex.com) / [github](https://github.com/overleaf/overleaf)
|
||||
- [Schleuder](https://schleuder.org/schleuder/docs/concept.html)(Schleuder is a gpg-enabled mailing list manager with resending capabilities.)
|
||||
- [SocialHome](https://github.com/jaywink/socialhome) (Socialhome is best described as a federated personal profile with social networking functionality) (https://socialhome.network)
|
||||
- [smokeping](https://packages.debian.org/buster/smokeping) / [github](https://github.com/oetiker/SmokePing)
|
||||
- [Sonarr](https://sonarr.tv) / [github](https://github.com/Sonarr/Sonarr)
|
||||
- [Stackedit](https://stackedit.io) / [github](https://github.com/benweet/stackedit)
|
||||
- [StandardNotes](https://standardnotes.org) (a clean, simple, E2E-encrypted notes app) -- specifically, the server-side [StandardFile](https://standardfile.org) portion / [github](https://github.com/standardnotes/web)
|
||||
- [Streisand](https://github.com/jlund/streisand)
|
||||
- [Subspace](https://github.com/subspacecloud/subspace) (A simple WireGuard VPN server GUI)
|
||||
- [Syspass](http://www.syspass.org/) / [github](https://github.com/nuxsmin/sysPass)
|
||||
- [Taiga](https://taiga.io) / [github](https://github.com/taigaio/)
|
||||
- [Taskwarrior](https://taskwarrior.org) / [github](https://github.com/GothenburgBitFactory/taskwarrior)
|
||||
- [Technitium DNS](https://technitium.com/dns/) / [github](https://github.com/TechnitiumSoftware/DnsServer)
|
||||
- [TellForm](https://github.com/tellform/tellform) (Discontinued (see OhMyForm) but it can be great to have it since OhMyForm does only support Docker install)
|
||||
- [TMate](https://tmate.io/) / [github](https://github.com/tmate-io/tmate)
|
||||
- [Tracim](https://github.com/tracim/tracim)
|
||||
- [Thredded](https://thredded.org/) / [github](https://github.com/thredded/thredded)
|
||||
- [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)
|
||||
- [Zoneminder](https://github.com/ZoneMinder/zoneminder)
|
||||
- [Zulip](https://zulipchat.com/) / [github](https://github.com/zulip/zulip)
|
||||
- [Yggdrasil](https://yggdrasil-network.github.io/) / [github](https://github.com/yggdrasil-network/yggdrasil-go)
|
||||
- [WiseMapping](http://www.wisemapping.com/inyourserver.html) / [developpement](https://bitbucket.org/wisemapping/wisemapping-open-source)
|
33
appsdoc.md
33
appsdoc.md
|
@ -1,33 +0,0 @@
|
|||
- [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...))
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
# Graphical installation
|
||||
|
||||
Now that your YunoHost install medium, you can start with the installation.
|
||||
|
||||
## <small>1.</small> Plug the network cable
|
||||
|
||||
If you want the network configuration to be set up automatically, you have to plug your server with an **Ethernet** cable **right behind your main router**.
|
||||
|
||||
The wireless connections are not supported yet, and if you use intermediate routers, the network ports opening will not be automatic: Your server will not be accessible externally.
|
||||
|
||||
|
||||
## <small>2.</small> Boot on CD / USB stick
|
||||
|
||||
Boot up your server with the USB stick or a CD-ROM inserted, and select it as **bootable device** by pressing one of the following keys (hardware specific):
|
||||
```<ESC>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<DEL>```
|
||||
|
||||
## <small>3.</small> Launch graphical installation
|
||||
|
||||
You should see a screen like this:
|
||||
|
||||
<img src="/images/virtualbox_3.png">
|
||||
|
||||
|
||||
* Select `Graphical install`
|
||||
|
||||
* Select your language, your location and your keyboard layout
|
||||
|
||||
* If a partitioning screen appears, confirm.
|
||||
|
||||
<div class="alert alert-danger"><b>Caution:</b> This will totally erase the data on your hard drive</div>
|
||||
|
||||
|
||||
* Let the installer do the rest, it will download required packages and install them.
|
||||
|
||||
<div class="alert alert-info">If it fails, you probably have an Internet connection issue.
|
||||
Check that your computer is physically connected and retry.</div>
|
||||
|
||||
* It should reboot automatically.
|
||||
|
||||
## <small>4.</small> Log in
|
||||
|
||||
After the reboot, you should see a black screen with a few words asking you to
|
||||
log in. You can log with the following credentials :
|
||||
|
||||
* User: **root**
|
||||
* Password: **yunohost**
|
||||
|
||||
## <small>5.</small> Proceed to post-installation
|
||||
|
||||
<a class="btn btn-lg btn-default" href="/postinstall">Post-install documentation</a>
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
# Installation graphique
|
||||
|
||||
Maintenant que vous possédez un support YunoHost, vous pouvez procéder à l’installation.
|
||||
|
||||
## <small>1.</small> Brancher le câble réseau
|
||||
|
||||
Si vous souhaitez que la configuration réseau soit configurée automatiquement, vous devez brancher votre serveur avec un câble **Ethernet** directement **derrière votre routeur (ou box) principal**.
|
||||
|
||||
Les connexions sans-fil ne sont pas supportées pour le moment, et si vous utilisez des routeurs intermédiaires, l’ouverture des ports réseau ne se fera pas automatiquement : votre serveur ne sera pas accessible depuis l’extérieur.
|
||||
|
||||
## <small>2.</small> Démarrer sur le CD/la clé USB
|
||||
|
||||
Démarrez votre serveur avec la clé USB ou le CD-ROM inséré, et sélectionnez-le comme **périphérique de démarrage** en pressant l’une des touches suivantes (dépendant de votre ordinateur) :
|
||||
```<Échap>```, ```<F9>```, ```<F10>```, ```<F11>```, ```<F12>``` or ```<Suppr>```
|
||||
|
||||
## <small>3.</small> Lancer l’installation graphique
|
||||
|
||||
Vous devriez voir un écran comme ça :
|
||||
|
||||
<img src="/images/virtualbox_3.png">
|
||||
|
||||
|
||||
* Sélectionnez `Graphical install`
|
||||
|
||||
* Sélectionnez votre langue, votre localisation et votre agencement de clavier.
|
||||
|
||||
* Si un écran de partitionnement apparaît, confirmez simplement.
|
||||
|
||||
<div class="alert alert-danger"><b>Attention :</b> Cette opération effacera totalement les données sur votre disque dur</div>
|
||||
|
||||
* Laissez l’installateur faire le reste, il téléchargera les paquets requis et les installera.
|
||||
|
||||
<div class="alert alert-info">Si cette opération échoue, vous avez probablement un problème de connexion à Internet.
|
||||
Vérifiez que votre serveur est bien branché et réessayez.</div>
|
||||
|
||||
* L’ordinateur devrait redémarrer automatiquement à la fin de l’installation.
|
||||
|
||||
## <small>4.</small> Log in
|
||||
|
||||
Après avoir redémarré, votre machine devrait afficher un écran noir avec
|
||||
quelques mots vous invitant à vous identifier. Vous pouvez utiliser les
|
||||
identifiants suivants :
|
||||
|
||||
* User: **root**
|
||||
* Password: **yunohost**
|
||||
|
||||
## <small>5.</small> Procéder à la post-installation
|
||||
|
||||
<a class="btn btn-lg btn-default" href="/postinstall">Documentation de la post-installation</a>
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
# Flashing the YunoHost ISO on a USB stick 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 stick
|
||||
|
||||
### With Etcher
|
||||
|
||||
Download <a href="https://etcher.io/" target="_blank">Etcher</a> for your operating system and install it.
|
||||
|
||||
<img src="/images/etcher.gif">
|
||||
|
||||
Plug your USB stick, select your YunoHost ISO and click "Flash"
|
||||
|
||||
### With UNetbootin
|
||||
|
||||
Download <a href="https://unetbootin.github.io/">UNetbootin</a> for your operating system and install it.
|
||||
|
||||
<img src="/images/unetbootin.png">
|
||||
|
||||
Put your USB stick on, select your YunoHost ISO and click "OK"
|
||||
|
||||
### With `dd`
|
||||
|
||||
If you 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/sdz
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## CD/DVD
|
||||
|
||||
The software to use differs regarding your operating system.
|
||||
|
||||
* On Windows, use [ImgBurn](http://www.imgburn.com/) to write the image file on the disc
|
||||
|
||||
* On Mac OS, use [Disk Utility](http://support.apple.com/kb/ph7025)
|
||||
|
||||
* On GNU/Linux, you have plenty of choices, like [Brasero](https://wiki.gnome.org/Apps/Brasero) or [K3b](http://www.k3b.org/)
|
|
@ -1,48 +0,0 @@
|
|||
# Flasher l'ISO YunoHost 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. 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>
|
||||
|
||||
---
|
||||
|
||||
## Clé USB
|
||||
|
||||
### Avec Etcher
|
||||
|
||||
Téléchargez <a href="https://etcher.io/" target="_blank">Etcher</a> pour votre système d'exploitation et installez-le.
|
||||
|
||||
<img src="/images/etcher.gif">
|
||||
|
||||
Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'Flash'
|
||||
|
||||
### Avec UNetbootin
|
||||
|
||||
Téléchargez <a href="https://unetbootin.github.io/">UNetbootin</a> pour votre système d'exploitation et installez-le.
|
||||
|
||||
<img src="/images/unetbootin.png">
|
||||
|
||||
Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'OK'
|
||||
|
||||
### Avec `dd`
|
||||
|
||||
Si vous êtes familier avec la ligne de commande, il est possible de flasher la
|
||||
clef USB 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/sdz
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## CD/DVD
|
||||
|
||||
Le logiciel à utiliser est différent suivant votre système d’exploitation.
|
||||
|
||||
* Sur Windows, utilisez [ImgBurn](http://www.imgburn.com/) pour écrire l’image sur le disque
|
||||
|
||||
* Sur Mac OS, utilisez [Disk Utility](http://support.apple.com/kb/ph7025)
|
||||
|
||||
* Sur GNU/Linux, vous avez plusieurs choix, tels que [Brasero](https://wiki.gnome.org/Apps/Brasero) ou [K3b](http://www.k3b.org/)
|
|
@ -1 +0,0 @@
|
|||
Unfortunately, this page only exists [in french here](certificate_custom_fr) for now.
|
|
@ -1,21 +0,0 @@
|
|||
#Change administration password
|
||||
|
||||
For security reasons you may have to change your administration password. To achieve this, 2 different methods exists.
|
||||
|
||||
<div class="alert alert-warning">
|
||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
||||
The current administration password is **required** to perform this task.
|
||||
</div>
|
||||
|
||||
##Web administration
|
||||
|
||||
First, connect to your [web administration](/admin).
|
||||
|
||||
Then go to `Tools` > `Change administration password`.
|
||||
|
||||
|
||||
##Command line
|
||||
|
||||
```bash
|
||||
yunohost tools adminpw
|
||||
```
|
|
@ -1,26 +0,0 @@
|
|||
#Changer le mot de passe d’administration
|
||||
|
||||
Pour des raisons de sécurité vous pouvez avoir besoin de changer votre mot de passe d’administration. Pour cela, deux méthodes sont possibles.
|
||||
|
||||
<div class="alert alert-warning">
|
||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
||||
Le mot de passe d’administration actuel est **requis** pour effectuer cette modification.
|
||||
</div>
|
||||
|
||||
##Administration web
|
||||
|
||||
Premièrement, connectez-vous à [l’administration web](/admin).
|
||||
|
||||
Puis allez dans la section `Outils` > `Changer le mot de passe d’administration`.
|
||||
|
||||
##Ligne de commande
|
||||
|
||||
```bash
|
||||
yunohost tools adminpw
|
||||
```
|
||||
|
||||
Si vous avez oublié votre mot de passe, utilisez plutôt:
|
||||
|
||||
```bash
|
||||
yunohost-reset-ldap-password
|
||||
```
|
|
@ -1,30 +0,0 @@
|
|||
# Administrate YunoHost in command line
|
||||
|
||||
The command line interface (CLI) is, in the computer world, the original (and more technical) way of interacting with a computer compared to graphical interface. Command line interfaces are generally said to be more complete, powerful or efficient than a graphical interface, though it is more difficult to learn.
|
||||
|
||||
In the context of YunoHost, or system administration in general, the CLI is commonly used to remotely control machines after connecting through [connecting to it via SSH](/ssh).
|
||||
|
||||
<div class="alert alert-info" markdown="1">
|
||||
Providing a full tutorial about the command line is quite beyond the scope of the YunoHost documentation : for this, consider reading a dedicated tutorial such as [this one](https://ryanstutorials.net/linuxtutorial/) or [this one](http://linuxcommand.org/). But be reassured that you don't need to be a CLI expert to start using it !
|
||||
</div>
|
||||
|
||||
The `yunohost` command can be used to administrate your server and perform the various actions similarly to what you do on the webadmin. The command must be launched either from the `root` user or from the `admin` user by preceeding them with `sudo`. (ProTip™ : you can become `root` with the command `sudo su` as `admin`).
|
||||
|
||||
YunoHost commands usually have this kind of structure :
|
||||
|
||||
```bash
|
||||
yunohost app install wordpress --label Webmail
|
||||
^ ^ ^ ^
|
||||
| | | |
|
||||
category action argument options
|
||||
```
|
||||
|
||||
Don't hesitate to browse and ask for more information about a given category or action using the the `--help` option. For instance, those commands :
|
||||
|
||||
```bash
|
||||
yunohost --help
|
||||
yunohost user --help
|
||||
yunohost user create --help
|
||||
```
|
||||
|
||||
will successively list all the categories available, then the actions available in the `user` category, then the usage of the action `user create`. You might notice that the YunoHost command tree is built with a structure similar to the YunoHost admin pages.
|
|
@ -1,30 +0,0 @@
|
|||
# Administrar YunoHost con la interfaz de línea de comandos
|
||||
|
||||
La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla.
|
||||
|
||||
En el contexto de Yunohost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh).
|
||||
|
||||
<div class="alert alert-info" markdown="1">
|
||||
Proveer un tutorial completo sobre la línea de comandos saldría del marco de la documentación de Yunohost : por eso, refiérete a totorales como [éste](https://www.fing.edu.uy/inco/cursos/sistoper/recursosLaboratorio/tutorial0.pdf) o [éste (en)](http://linuxcommand.org/). Pero no te preocupes : no hace falta ser un experto para comenzar a utilizarla !
|
||||
</div>
|
||||
|
||||
El comando `yunohost` puede ser utilizado para administrar tu servidor o realizar las mismas acciones que en la interfaz gráfica webadmin. Hay que iniciarla como usuario `root`, o como el usuario `admin` poniendo `sudo` antes del comando. (ProTip™ : puedes convertirte en usuario `root` vía el comando `sudo su` cuando eres `admin`.)
|
||||
|
||||
Los comandos Yunohost tienen este tipo de estructura :
|
||||
|
||||
```bash
|
||||
yunohost app install wordpress --label Webmail
|
||||
^ ^ ^ ^
|
||||
| | | |
|
||||
categoría acción argumento opción
|
||||
```
|
||||
|
||||
No dudes en navegar ni en pedir información a propósito de una categoría o acción utilizando la opción `--help`. Por ejemplo, estos comandos :
|
||||
|
||||
```bash
|
||||
yunohost --help
|
||||
yunohost user --help
|
||||
yunohost user create --help
|
||||
```
|
||||
|
||||
de manera sucesiva van a enumerar todas las categorías disponibles, luego las acciones de la categoría `user`, y luego explicar cómo utilizar la acción `user create`. Deberías notar que el árbol de los comandos Yunohost tiene la misma estructura que las páginas del webadmin.
|
|
@ -1,30 +0,0 @@
|
|||
# Administrer YunoHost en ligne de commande
|
||||
|
||||
L'interface en ligne de commande (CLI) est, en informatique, la manière originale (et plus technique) d'interagir avec un ordinateur comparé aux interfaces graphiques. La ligne de commande est généralement considéré comme plus complète, puissante et efficace que les interfaces graphiques, bien que plus difficile à apprendre.
|
||||
|
||||
Dans le contexte de YunoHost, ou de l'administration système en général, la ligne de commande est communément utilisée après s'être [connecté en SSH](/ssh).
|
||||
|
||||
<div class="alert alert-info" markdown="1">
|
||||
Fournir un tutorial complet sur la ligne de commande est bien au dela du cadre de la documentation de YunoHost : pour cela, référez-vous à des tutoriaux comme [celui-ci](https://doc.ubuntu-fr.org/tutoriel/console_ligne_de_commande) ou [celui-ci (en)](http://linuxcommand.org/). Mais soyez rassuré qu'il n'y a pas besoin d'être un expert pour commencer à l'utiliser !
|
||||
</div>
|
||||
|
||||
La commande `yunohost` peut être utilisée pour administrer votre serveur ou réaliser les mêmes actions que celles disponibles sur la webadmin. Elle doit être lancée en depuis l'utilisateur `root`, ou bien depuis l'utilisateur `admin` en précédant la commande de `sudo`. (ProTip™ : il est possible de devenir `root` via la commande `sudo su` en tant qu'`admin`.)
|
||||
|
||||
Les commandes YunoHost ont ce type de structure :
|
||||
|
||||
```bash
|
||||
yunohost app install wordpress --label Webmail
|
||||
^ ^ ^ ^
|
||||
| | | |
|
||||
categorie action argument options
|
||||
```
|
||||
|
||||
N'hesitez pas à naviguer et demander des informations à propos d'une catégorie ou action donnée via l'option `--help`. Par exemple, ces commandes :
|
||||
|
||||
```bash
|
||||
yunohost --help
|
||||
yunohost user --help
|
||||
yunohost user create --help
|
||||
```
|
||||
|
||||
vont successivement lister toutes les catégories disponibles, puis les actions de la catégorie `user`, puis expliquer comment utiliser l'action `user create`. Vous devriez remarquer que l'arbre des commandes YunoHost suit une structure similaire aux pages de la webadmin.
|
17
config/site.yaml
Normal file
17
config/site.yaml
Normal file
|
@ -0,0 +1,17 @@
|
|||
title: 'Yunohost Documentation'
|
||||
default_lang: en
|
||||
author:
|
||||
name: Yunohost
|
||||
email: yunohost@yunohost.org
|
||||
taxonomies:
|
||||
- category
|
||||
- tag
|
||||
metadata:
|
||||
description: 'Yunohost Documentation'
|
||||
summary:
|
||||
enabled: true
|
||||
format: short
|
||||
size: 300
|
||||
delimiter: '==='
|
||||
redirects: null
|
||||
routes: null
|
218
config/system.yaml
Normal file
218
config/system.yaml
Normal file
|
@ -0,0 +1,218 @@
|
|||
absolute_urls: false
|
||||
timezone: null
|
||||
param_sep: ':'
|
||||
wrapped_site: false
|
||||
reverse_proxy_setup: false
|
||||
force_ssl: false
|
||||
force_lowercase_urls: true
|
||||
custom_base_url: null
|
||||
username_regex: '^[a-z0-9_-]{3,16}$'
|
||||
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'
|
||||
intl_enabled: true
|
||||
http_x_forwarded:
|
||||
protocol: true
|
||||
host: false
|
||||
port: true
|
||||
ip: true
|
||||
languages:
|
||||
supported:
|
||||
- en
|
||||
- fr
|
||||
- de
|
||||
- es
|
||||
- ar
|
||||
- oc
|
||||
- it
|
||||
- ru
|
||||
default_lang: en
|
||||
include_default_lang: true
|
||||
include_default_lang_file_extension: true
|
||||
translations: true
|
||||
translations_fallback: true
|
||||
session_store_active: false
|
||||
http_accept_language: true
|
||||
override_locale: false
|
||||
content_fallback:
|
||||
en: 'fr,de,es'
|
||||
de: 'en,fr,es'
|
||||
es: 'en,fr,de'
|
||||
pages_fallback_only: false
|
||||
home:
|
||||
alias: /home
|
||||
hide_in_urls: true
|
||||
pages:
|
||||
type: regular
|
||||
theme: yunohost-docs
|
||||
order:
|
||||
by: default
|
||||
dir: asc
|
||||
list:
|
||||
count: 20
|
||||
dateformat:
|
||||
default: null
|
||||
short: 'jS M Y'
|
||||
long: 'F jS \a\t g:ia'
|
||||
publish_dates: true
|
||||
process:
|
||||
markdown: true
|
||||
twig: false
|
||||
twig_first: false
|
||||
never_cache_twig: false
|
||||
events:
|
||||
page: true
|
||||
twig: true
|
||||
markdown:
|
||||
extra: false
|
||||
auto_line_breaks: false
|
||||
auto_url_links: false
|
||||
escape_markup: false
|
||||
special_chars:
|
||||
'>': gt
|
||||
'<': lt
|
||||
valid_link_attributes:
|
||||
- rel
|
||||
- target
|
||||
- id
|
||||
- class
|
||||
- classes
|
||||
types:
|
||||
- html
|
||||
- htm
|
||||
- xml
|
||||
- txt
|
||||
- json
|
||||
- rss
|
||||
- atom
|
||||
append_url_extension: null
|
||||
expires: 604800
|
||||
cache_control: null
|
||||
last_modified: false
|
||||
etag: true
|
||||
vary_accept_encoding: false
|
||||
redirect_default_route: false
|
||||
redirect_default_code: '302'
|
||||
redirect_trailing_slash: true
|
||||
ignore_files:
|
||||
- .DS_Store
|
||||
ignore_folders:
|
||||
- .git
|
||||
- .idea
|
||||
ignore_hidden: true
|
||||
hide_empty_folders: false
|
||||
url_taxonomy_filters: true
|
||||
frontmatter:
|
||||
process_twig: false
|
||||
ignore_fields:
|
||||
- form
|
||||
- forms
|
||||
cache:
|
||||
enabled: true
|
||||
check:
|
||||
method: file
|
||||
driver: auto
|
||||
prefix: g
|
||||
purge_at: '0 4 * * *'
|
||||
clear_at: '0 3 * * *'
|
||||
clear_job_type: standard
|
||||
clear_images_by_default: true
|
||||
cli_compatibility: false
|
||||
lifetime: 604800
|
||||
gzip: true
|
||||
allow_webserver_gzip: false
|
||||
redis:
|
||||
socket: '0'
|
||||
server: null
|
||||
port: null
|
||||
password: null
|
||||
memcache:
|
||||
server: null
|
||||
port: null
|
||||
memcached:
|
||||
server: null
|
||||
port: null
|
||||
twig:
|
||||
cache: true
|
||||
debug: false
|
||||
auto_reload: true
|
||||
autoescape: false
|
||||
undefined_functions: true
|
||||
undefined_filters: true
|
||||
umask_fix: false
|
||||
assets:
|
||||
css_pipeline: false
|
||||
css_pipeline_include_externals: true
|
||||
css_pipeline_before_excludes: true
|
||||
css_minify: true
|
||||
css_minify_windows: false
|
||||
css_rewrite: true
|
||||
js_pipeline: false
|
||||
js_pipeline_include_externals: true
|
||||
js_pipeline_before_excludes: true
|
||||
js_minify: true
|
||||
enable_asset_timestamp: false
|
||||
collections:
|
||||
jquery: 'system://assets/jquery/jquery-2.x.min.js'
|
||||
errors:
|
||||
display: 1
|
||||
log: true
|
||||
log:
|
||||
handler: file
|
||||
syslog:
|
||||
facility: local6
|
||||
debugger:
|
||||
enabled: false
|
||||
provider: clockwork
|
||||
censored: false
|
||||
shutdown:
|
||||
close_connection: true
|
||||
twig: true
|
||||
images:
|
||||
default_image_quality: 85
|
||||
cache_all: false
|
||||
cache_perms: '0755'
|
||||
debug: false
|
||||
auto_fix_orientation: true
|
||||
seofriendly: true
|
||||
defaults:
|
||||
loading: auto
|
||||
media:
|
||||
enable_media_timestamp: false
|
||||
unsupported_inline_types: null
|
||||
allowed_fallback_types: null
|
||||
auto_metadata_exif: false
|
||||
upload_limit: 2097152
|
||||
session:
|
||||
enabled: true
|
||||
initialize: true
|
||||
timeout: 1800
|
||||
name: grav-site
|
||||
uniqueness: path
|
||||
secure: false
|
||||
httponly: true
|
||||
samesite: Lax
|
||||
split: true
|
||||
path: null
|
||||
gpm:
|
||||
releases: stable
|
||||
proxy_url: null
|
||||
method: auto
|
||||
verify_peer: true
|
||||
official_gpm_only: true
|
||||
accounts:
|
||||
type: regular
|
||||
storage: file
|
||||
flex:
|
||||
cache:
|
||||
index:
|
||||
enabled: true
|
||||
lifetime: 60
|
||||
object:
|
||||
enabled: true
|
||||
lifetime: 600
|
||||
render:
|
||||
enabled: true
|
||||
lifetime: 600
|
||||
strict_mode:
|
||||
yaml_compat: true
|
||||
twig_compat: true
|
||||
blueprint_compat: true
|
18
config/themes/yunohost-docs.yaml
Normal file
18
config/themes/yunohost-docs.yaml
Normal file
|
@ -0,0 +1,18 @@
|
|||
streams:
|
||||
schemes:
|
||||
theme:
|
||||
type: ReadOnlyStream
|
||||
prefixes:
|
||||
'': [user/themes/yunohost-docs, user/themes/learn4]
|
||||
enabled: true
|
||||
production-mode: false
|
||||
grid-size: grid-xl
|
||||
github:
|
||||
note: false
|
||||
link: true
|
||||
tree: 'https://github.com/yunohost/doc/blob/grav/'
|
||||
commits: 'https://github.com/yunohost/doc/commits/grav/'
|
||||
spectre:
|
||||
exp: false
|
||||
icons: false
|
||||
top_level_version: true
|
|
@ -1,93 +0,0 @@
|
|||
# Get involved
|
||||
|
||||
<p class="lead">
|
||||
YunoHost depends exclusively on the participation of people like you.
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-heart"></span> Spread the word
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Talk about software freedom, [self-hosting](/selfhosting) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-exclamation-sign"></span> Testing
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
We need people able to test YunoHost deeply. If you find a bug, try to identify it, and report it on our <a href="https://github.com/YunoHost/issues/issues" target="_blank">bug tracker</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-user"></span> Helping users
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Our support relies on contributors like you. Just come to [the support chatroom](/help) and help new users getting started, or pick a question on the <a href="https://forum.yunohost.org/" target="_blank">Forum</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-cog"></span> Coding
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
You can involve in the YunoHost's development regardless of your skill.
|
||||
Sysadmins, web developers, designers and pythonists <a href="https://github.com/YunoHost" target="_blank">are welcome</a>!
|
||||
<br>
|
||||
Learn [how to contribute](/dev), and join us on the [development chat room](xmpp:dev@conference.yunohost.org?join).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-globe"></span> Localization
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Get involved by making YunoHost interfaces available in your language.
|
||||
<a href="https://translate.yunohost.org/" target="_blank">Get started</a>!
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-edit"></span> Write
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Improve this documentation by [writing new pages](/write_documentation) or translating existing ones to your language.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-gift"></span> Packaging
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Extend YunoHost capabilities by [packaging new services and web applications](/packaging_apps).
|
||||
Have a look of [what has been done yet](/apps)!
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<br>
|
||||
<p class="lead" markdown="1">In any case, please come chat with us on [the dev chatroom](/chat_rooms) :-)</p>
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
# <div dir="rtl">المساهمة</div>
|
||||
|
||||
<p dir="rtl" class="lead">
|
||||
إنّ مصير واي يونوهوست YunoHost يُقرّره أناس و أنتم مِن بين هؤلاء
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<div dir="rtl" class="row">
|
||||
<div dit="rtl" class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-heart"></span> تحدثوا عن المشروع مِن حولكم
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3></div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div dir="rtl" class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-exclamation-sign"></span> جَرّبُوا
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
نحن بحاجة إلى تجريب حثيث لواي يونوهوست YunoHost. فإن صادفتم مشكلة، يرجى القيام بتحديد الخلل و ثم الإبلاغ عنه عبر
|
||||
<a href="https://github.com/YunoHost/issues/issues" target="_blank">مُتعقب الأخطاء</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div dir="rtl" class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-user"></span> ساعدوا المستخدمِين
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div dir="rtl" class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-cog"></span> أكتبوا الشفرة
|
||||
</div>
|
||||
<div dir="rtl" class="col col-md-8" markdown="1">
|
||||
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
|
||||
Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) !
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div dir="rtl" class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-globe"></span> ترجِموا
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
ساهموا في توفير واجهات واي يونوهوست YunoHost بلغتكم. <a href="https://translate.yunohost.org/" target="_blank">إبدأوا الآن</a> !
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div dir="rtl" class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-edit"></span> أكتبوا
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation) أو بترجمة صفحاته إلى لغتكم.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div dir="rtl" class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-gift"></span> ساهموا في التحزيم
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
|
||||
<br>
|
||||
Un [salon de développement](xmpp:dev@conference.yunohost.org?join) est également disponible.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<p dir="rtl" class="lead" markdown="1">على أي حال تعالوا و انضموا إلى [غرفة المحادثة الخاصة بالمطوّرين](xmpp:dev@conference.yunohost.org?join) إن كنتم ترغبون في المساهمة :-)</p>
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
# Contribuer
|
||||
|
||||
<p class="lead">
|
||||
YunoHost dépend entièrement de la participation de gens comme vous.
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-heart"></span> Passez le mot
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Parlez de logiciel libre, d’[auto-hébergement](/selfhosting), de YunoHost à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-exclamation-sign"></span> Testez
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essayez de l’identifier, puis reportez-le sur notre <a href="https://github.com/YunoHost/issues/issues/new" target="_blank">bug tracker</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-user"></span> Aidez les utilisateurs
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-cog"></span> Codez
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
|
||||
Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) !
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-globe"></span> Traduisez
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Participez en rendant les interfaces de YunoHost disponibles dans votre langue. <a href="https://translate.yunohost.org/" target="_blank">Lancez-vous</a> !
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-edit"></span> Écrivez
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation) ou en traduisant les existantes dans votre langue.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-md-3 lead">
|
||||
<span class="glyphicon glyphicon-gift"></span> Packagez
|
||||
</div>
|
||||
<div class="col col-md-8" markdown="1">
|
||||
Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
|
||||
</div>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<p class="lead" markdown="1">Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)</p>
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
# Contributor documentation
|
||||
|
||||
* [General ways of contributing to YunoHost](/contribute)
|
||||
* [Writing documentation](/write_documentation)
|
||||
* [Chat rooms](/chat_rooms)
|
||||
* Application packaging
|
||||
* [Apps wishlist](/apps_wishlist)
|
||||
* [General introduction to app packaging](/packaging_apps_start)
|
||||
* [Technical introduction to app packaging](/packaging_apps)
|
||||
* [How to use Git to package apps](/packaging_apps_git)
|
||||
* [Setting up a dev environment with VirtualBox](/packaging_apps_virtualbox)
|
||||
* [Manifest](packaging_apps_manifest)
|
||||
* [Scripts](packaging_apps_scripts)
|
||||
* [Arguments management](packaging_apps_arguments_management)
|
||||
* [Nginx configuration](packaging_apps_nginx_conf)
|
||||
* [Multi-instance](packaging_apps_multiinstance)
|
||||
* [Helpers](packaging_apps_helpers)
|
||||
* [Trap usage](/packaging_apps_trap)
|
||||
* [Adding your app to the 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)
|
||||
* [App Continuous Integration](https://ci-apps.yunohost.org)
|
||||
* [App CI dashboard](https://dash.yunohost.org/appci/branch/stable)
|
||||
* [App Continuous Integration for packagers](/packaging_apps_ci)
|
||||
* [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines)
|
||||
* [Contributing to the YunoHost core](/dev)
|
||||
* [Setting up a dev environment with ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
|
||||
* [Deb build chain](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
|
||||
* Image building
|
||||
* [x86 ISO](https://github.com/YunoHost/cd_build)
|
||||
* [Raspberry Pi images](https://github.com/YunoHost/rpi-image)
|
||||
* [Other ARM board images](https://github.com/YunoHost/arm-images)
|
||||
* [Using the YunoHost API outside of the webadmin](/admin_api)
|
||||
* [A discussion about shell variable scope](shell_variables_scope)
|
|
@ -1,37 +0,0 @@
|
|||
# Guide du contributeur
|
||||
|
||||
* [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)
|
||||
* [Introduction générale au packaging d'apps](/packaging_apps_start)
|
||||
* [Introduction technique au packaging d'apps](/packaging_apps)
|
||||
* [Comment utiliser Git pour packager les applications](/packaging_apps_git)
|
||||
* [Déployer un environnement de développement avec VirtualBox](/packaging_apps_virtualbox)
|
||||
* [Manifest](/packaging_apps_manifest)
|
||||
* [Scripts](/packaging_apps_scripts)
|
||||
* [Gestion des arguments](/packaging_apps_arguments_management)
|
||||
* [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)
|
||||
* [Intégration continue des apps](https://ci-apps.yunohost.org)
|
||||
* [Tableau de bord du CI des apps](https://dash.yunohost.org/appci/branch/stable)
|
||||
* [Intégration continue pour packagers](/packaging_apps_ci)
|
||||
* [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines)
|
||||
* [Contribuer à la partie "core" de YunoHost](/dev)
|
||||
* [Déployer un environnement de dev avec ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
|
||||
* [Construction des paquets debian](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
|
||||
* [Feuilles de route du projet](https://github.com/YunoHost/issues/milestones?direction=asc&sort=title&state=open)
|
||||
* Construction des images
|
||||
* [x86 ISO](https://github.com/YunoHost/cd_build)
|
||||
* [Images Raspberry Pi](https://github.com/YunoHost/rpi-image)
|
||||
* [Autres images pour cartes ARM](https://github.com/YunoHost/arm-images)
|
||||
* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api)
|
||||
* [Une discussion sur la portée des variables en bash](shell_variables_scope)
|
|
@ -1,47 +0,0 @@
|
|||
# Flashing an SD card
|
||||
|
||||
Now that you download the YunoHost image, you have to copy its content to an SD
|
||||
card. This step is also sometimes called 'flashing' the SD card.
|
||||
|
||||
<div class="alert alert-warning" markdown="1">
|
||||
In the context of self-hosting, it is recommended that your SD card be at least
|
||||
8 GB (to have a reasonable space available for the system and a few data) and at
|
||||
least Class 10 (to ensure reasonable performances).
|
||||
</div>
|
||||
|
||||
<img src="/images/sdcard.jpg" width=150><img src="https://yunohost.org/images/micro-sd-card.jpg">
|
||||
|
||||
### With Etcher
|
||||
|
||||
Download <a href="https://etcher.io/" target="_blank">Etcher</a> for your
|
||||
operating system and install it.
|
||||
|
||||
<img src="/images/etcher.gif">
|
||||
|
||||
Plug your SD card, select your YunoHost image and click "Flash"
|
||||
|
||||
### With `dd`
|
||||
|
||||
If you are on Linux / Mac and know your way around command line, you may also
|
||||
flash your SD card with `dd`. You can identify which device corresponds to your
|
||||
SD card with `fdisk -l` or `lsblk`. Assuming your SD card is `/dev/mmcblk0` (be
|
||||
careful !!), you may run :
|
||||
|
||||
```bash
|
||||
dd if=/path/to/yunohost.img of=/dev/mmcblk0
|
||||
```
|
||||
|
||||
## Expand the root partition <small>(optional)</small>
|
||||
|
||||
<div class="alert alert-warning" markdown="1">
|
||||
This step is optional as it should be performed automatically during the first
|
||||
boot on recent images.
|
||||
</div>
|
||||
|
||||
By default, the root partition of your SD card is very small.
|
||||
You can resize it by using software like `resize2fs` (command-line) or `gparted`
|
||||
(graphical).
|
||||
|
||||
<img src="/images/gparted.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||
|
||||
<p class="text-muted">Preview of the Gparted window</p>
|
|
@ -1,39 +0,0 @@
|
|||
# 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,52 +0,0 @@
|
|||
# Flasher une carte SD
|
||||
|
||||
Maintenant que vous avez téléchargé l'image de YunoHost, il vous faut copier son
|
||||
contenu sur une carte SD. Cette étape est aussi souvent appelé 'flasher' la
|
||||
carte SD.
|
||||
|
||||
<div class="alert alert-warning" markdown="1">
|
||||
Dans le contexte de l'auto-hébergement, il est recommandé que votre carte SD
|
||||
fasse au moins 8 Go (pour disposer d'un espace raisonnable pour le système et
|
||||
quelques données) et soit au moins certifiée classe 10 (pour avoir des
|
||||
performances raisonnables).
|
||||
</div>
|
||||
|
||||
<img src="/images/sdcard.jpg" width=150><img src="https://yunohost.org/images/micro-sd-card.jpg">
|
||||
|
||||
### Avec Etcher
|
||||
|
||||
Télécharger <a href="https://etcher.io/" target="_blank">Etcher</a> pour votre
|
||||
système d'exploitation, et installez-le.
|
||||
|
||||
<img src="/images/etcher.gif">
|
||||
|
||||
Connectez votre carte SD, sélectionnez votre image YunoHost, puis cliquez sur
|
||||
'Flash'.
|
||||
|
||||
### Avec `dd`
|
||||
|
||||
Si vous êtes sous Linux / Mac et que vous êtes à l'aise avec la ligne de
|
||||
commande, vous pouvez aussi flasher votre carte SD avec `dd`. Commencez par
|
||||
identifier le périphérique correspondant à votre carte SD avec `fdisk -l` ou
|
||||
`lsblk`. En supposant que votre carte SD soit `/dev/mmcblk0` (faites attention
|
||||
!), vous pouvez lancer :
|
||||
|
||||
```bash
|
||||
dd if=/chemin/vers/yunohost.img of=/dev/mmcblk0
|
||||
```
|
||||
|
||||
## Étendre la partition root <small>(optionnel)</small>
|
||||
|
||||
<div class="alert alert-warning" markdown="1">
|
||||
Cette étape est optionnelle car elle est normalement effectuée automatiquement
|
||||
par le système lors du premier démarrage sur les images récentes.
|
||||
</div>
|
||||
|
||||
Par défaut, la partition root installée sur votre carte SD avec la commande `dd`
|
||||
est très petite. Vous pouvez la redimensionner avec un logiciel comme
|
||||
`resize2fs` (ligne de commande) ou `Gparted` (interface graphique) en étendant
|
||||
la partition ext4 au maximum de façon à utiliser tout l’espace non alloué.
|
||||
|
||||
<img src="/images/gparted.jpg" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
||||
|
||||
<p class="text-muted">Aperçu de l’interface de Gparted</p>
|
164
dev_fr.md
164
dev_fr.md
|
@ -1,164 +0,0 @@
|
|||
## Contribuer au cœur de YunoHost
|
||||
|
||||
Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne
|
||||
savez pas comment procéder ? Ce guide parcourt les étapes du développement et du
|
||||
processus de contribution.
|
||||
|
||||
Si vous cherchez quelque chose à implémenter ou un bug à réparer, le
|
||||
bug tracker est [ici](https://github.com/yunohost/issues/issues) !
|
||||
|
||||
**Venez dire coucou sur le [salon de dev](/chat_rooms)** !
|
||||
|
||||
### Mettre en place un environnement de développement
|
||||
|
||||
- **Utilisez [ynh-dev](https://github.com/YunoHost/ynh-dev)** (voir le README)
|
||||
pour mettre en place un environnement de développement - en local sur une
|
||||
machine virtuelle, ou bien sur un VPS.
|
||||
Ceci installera une instance fonctionelle de YunoHost, en utilisant
|
||||
directement les dépôts git à l'aide de liens symboliques. De cette façon, il
|
||||
vous sera possible de modifier les fichiers, de tester les changements en
|
||||
temps réel, et de commiter et push/pull directement depuis cet environnement.
|
||||
|
||||
- **Implémentez et testez votre fonctionnalité**. Suivant ce sur quoi vous
|
||||
voulez travailler :
|
||||
- **Cœur Python/ligne de 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 par les utilisateurs de YunoHost
|
||||
|
||||
SSOwat est configuré via `/etc/ssowat/conf.json` qui est généré par YunoHost.
|
||||
|
||||
##### YunoHost-admin
|
||||
|
||||
C'est une dépendance *optionnelle* de YunoHost et correspond à une interface pour l'API web créée par YunoHost et Moulinette (service `yunohost-api`).
|
||||
|
||||
Il contient essentiellement :
|
||||
- [des templates pour les vues](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views)
|
||||
- les [contrôleurs JavaScript](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) correspondants, qui interagissent avec l'API YunoHost
|
||||
- et ses [chaînes internationalisées](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales)
|
||||
|
||||
### Travailler sur le cœur Python / ligne de commande
|
||||
|
||||
- Allez dans `/ynh-dev/yunohost/`.
|
||||
|
||||
- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost`.
|
||||
|
||||
- Le fichier actionsmap (`data/actionsmap/yunohost.yml`) définit les différentes
|
||||
catégories, actions et arguments de la ligne de commande YunoHost. Choisissez
|
||||
comment vous voulez que les utilisateurs utilisent votre fonctionnalité, et
|
||||
ajoutez/éditez les catégories, actions et arguments correspondants. Par
|
||||
exemple, dans `yunohost domain add some.domain.tld`, la catégorie est
|
||||
`domain`, l'action est `add` et `some.domain.tld` est un argument.
|
||||
|
||||
- Moulinette va automatiquement faire le lien entre les commandes de
|
||||
l'actionsmap et les fonctions Python (ainsi que leurs arguments) dans
|
||||
`src/yunohost/`. Par exemple, `yunohost domain add some.domain.tld`
|
||||
déclenchera un appel de `domain_add(domainName)` dans `domain.py`, avec l'argument
|
||||
`domainName` qui vaudra `"some.domain.tld"`.
|
||||
|
||||
##### Helpers / style de code
|
||||
|
||||
- Pour gérer les exceptions, il existe un type `YunohostError()`
|
||||
|
||||
- Pour aider avec l'internationalisation des messages, utilisez `m18n.n('some-message-id')`
|
||||
et mettez le message correspondant dans `locales/en.json`. Vous pouvez aussi
|
||||
utiliser des arguments pour construire les messages, avec `{{some-argument:s}}`.
|
||||
Ne modifiez pas de fichiers de locales autres que en.json, la traduction sera
|
||||
faite avec [Weblate](https://translate.yunohost.org/) !
|
||||
|
||||
- YunoHost essaye de suivre le style de code [PEP8](http://pep8.org/). Des
|
||||
outils existent pour vérifier automatiquement la conformité du code.
|
||||
|
||||
- Mettre un `_` devant les noms des fonctions "privées".
|
||||
|
||||
### Travailler sur l'interface d'administration web
|
||||
|
||||
- Allez dans `/ynh-dev/yunohost-admin/src/`.
|
||||
|
||||
- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost-admin`. Ceci lance gulp, de sorte
|
||||
qu'à chaque fois que vous modifiez les sources, il recompilera le code
|
||||
(JS) et vous pourrez voir les changements dans le navigateur web (Ctrl+F5).
|
||||
Pour stopper la commande, faites simplement Ctrl+C.
|
||||
|
||||
- L'interface web utilise une API pour communiquer avec YunoHost. Les
|
||||
commandes/requêtes de l'API sont également définies dans l'actionsmap. Par
|
||||
exemple, accéder à la page ```https://domain.tld/yunohost/api/users```
|
||||
correspond à une requête `GET /users` vers l'API YunoHost. Cette requête
|
||||
est mappée sur `user_list()`. Accéder à cette URL devrait afficher le json
|
||||
retourné par cette fonction. Les requêtes 'GET' sont typiquement destinées à
|
||||
demander de l'information au serveur, tandis que les requêtes 'POST' sont
|
||||
destinées à demander au serveur de modifier/changer des informations ou de
|
||||
réaliser des actions.
|
||||
|
||||
- `js/yunohost/controllers` contient les parties JavaScript, et définit quelles
|
||||
requêtes faire à l'API pendant le chargement d'une page donnée de l'interface,
|
||||
et comment traiter les données récupérées pour générer la page, en utilisant
|
||||
des templates.
|
||||
|
||||
- `views` contient les templates des pages de l'interface. Dans le template,
|
||||
les données venant du JavaScript peuvent être utilisées avec la syntaxe
|
||||
`{{some-variable}}`, qui sera remplacée pendant la construction de la page.
|
||||
Il est également possible d'avoir des conditions avec la syntaxe
|
||||
d'[handlebars.js](http://handlebarsjs.com) : ```{{#if
|
||||
some-variable}}<p>du HTML conditionnel ici !</p>{{/if}}```
|
||||
|
||||
- Pour l'internationalisation des messages, utilisez `y18n.t('some-string-code')`
|
||||
dans le JavaScript, ou `{{t 'some-string-code'}}` dans le template HTML, et
|
||||
mettez votre message dans `locales/en.json`. Ne modifiez pas de fichiers de
|
||||
locales autres que en.json, la traduction sera faite avec
|
||||
[Weblate](https://translate.yunohost.org/) !
|
||||
|
||||
##### N'oubliez pas
|
||||
|
||||
- À chaque modification de l'actionsmap, il faut redémarrer l'API yunohost :
|
||||
```service yunohost-api restart```
|
||||
(Il faudra retaper le mot de passe administrateur dans l'interface web)
|
||||
|
||||
- Il faudra peut-être régulièrement forcer le rafraîchissement du cache
|
||||
navigateur pour propager correctement le JavaScript et/ou HTML (à chaque fois
|
||||
que l'on change quelque chose dans `js` ou `views`, donc).
|
||||
|
||||
|
||||
### Votre fonctionnalité est prête et vous souhaitez qu'elle soit intégrée dans YunoHost
|
||||
|
||||
- Forkez le dépòt correspondant sur Github, et commitez vos changements dans
|
||||
une nouvelle branche, Il est recommandé de nommer la branche avec la
|
||||
convention suivante :
|
||||
- Pour une nouvelle fonctionnalité ou amélioration : `enh-ISSUENUMBER-description-fonctionnalité`
|
||||
- Pour une correction de bug : `fix-REDMINETICKET-description-correctif`
|
||||
- `ISSUENUMBER` est optionnel et correspond au numéro du ticket sur le bug tracker
|
||||
|
||||
- Une fois prêt, ouvrez une Pull Request (PR) sur Github. De préférence, inclure
|
||||
`[fix]` ou `[enh]` au début du titre de la PR.
|
||||
|
||||
- Après relecture, test et validation par les autres contributeurs, votre
|
||||
branche sera mergée dans `unstable` !
|
||||
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
# Diagnose YunoHost functioning
|
||||
|
||||
If you have successfully [installed](/install) YunoHost and passed through the [post-installation](/postinstall), you probably have a **working server**.
|
||||
|
||||
### <small>1.</small> Test it
|
||||
|
||||
In a web browser, access to your server via the domain name you just entered at the post-installation step.
|
||||
|
||||
For example: `http://mydomain.com`
|
||||
|
||||
|
||||
<div class="alert alert-warning">
|
||||
If you have taken a <b>.nohost.me</b> or a <b>.noho.st</b> domain, you may have to wait 5 min before the address is reachable.
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
#### If that does not work...
|
||||
|
||||
---
|
||||
|
||||
### <small>2.</small> Have you configured your DNS well ?
|
||||
|
||||
<div class="alert alert-info">
|
||||
This step is not necessary if you have a <b>.nohost.me</b> or a <b>.noho.st</b> domain
|
||||
</div>
|
||||
|
||||
Go to https://www.whatsmydns.net/ , enter your domain name in the field and click `Search`.
|
||||
If you do not see your IP address, or if there are red crosses everywhere, then you have probably misconfigured your [DNS](/dns).
|
||||
|
||||
---
|
||||
|
||||
### <small>3.</small> Are network ports opened on your router ?
|
||||
|
||||
If your DNS is properly configured, and your server is accessible locally, you may have **network ports blocked** or it may not be forwarded by your router.
|
||||
In order to verify this, try accessing your server with a client outside your local network. For example via another WiFi access point or with your mobile phone in 3G/4G.
|
||||
|
||||
If the server is unreachable from outside your local network too, then the problem probably comes from your router's configuration.
|
||||
|
||||
<div class="alert alert-info">
|
||||
Try to activate uPnP in your router's configuration interface, and check that your server is plugged in Ethernet directly behind it.
|
||||
<p>
|
||||
You can also redirect ports manually to your server's local IP address on the router's configuration interface.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
### <small>4.</small> Does your router have hairpinning ?
|
||||
|
||||
If the server is accessible from outside your local network, but unreachable with its domain name on the local network, then your router probably lacks <a href="https://en.wikipedia.org/wiki/Hairpinning" target="_blank">hairpinning</a>.
|
||||
|
||||
Here is a [tutorial](dns_local_network) to access your server on a local network and bypass the hairpinning problem. The tutorial proposes a first solution to create a redirection with DNS of the ISP box and a second solution to modify the `hosts` file of the **clients** to instruct it to access the **server** via its local IP address. The first solution is preferable because it's not necessary to modify the `hosts` files on every computer on your local network, if you are using many different clients.
|
|
@ -1,55 +0,0 @@
|
|||
# Diagnostic du bon fonctionnement de YunoHost
|
||||
|
||||
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
|
||||
|
||||
Dans un navigateur web, essayez d’accéder à votre serveur grâce au nom de domaine que vous avez entré à l’étape de post-installation.
|
||||
|
||||
Par exemple : `http://mondomaine.org`
|
||||
|
||||
<div class="alert alert-warning">
|
||||
Si vous avez opté pour un nom de domaine se terminant par <b>.nohost.me</b> ou <b>.noho.st</b>, vous devrez patienter cinq minutes avant que l’adresse soit atteignable.
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
#### Si ça ne fonctionne pas…
|
||||
|
||||
---
|
||||
|
||||
### <small>2.</small> Avez-vous bien configuré votre DNS ?
|
||||
|
||||
<div class="alert alert-info">
|
||||
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 endroits, cela signifie que vous avez probablement mal configuré votre [DNS](/dns).
|
||||
|
||||
---
|
||||
|
||||
### <small>3.</small> Est-ce que les ports de votre box/routeur sont ouverts ?
|
||||
|
||||
Si vos DNS sont bien configurés, et que le serveur est accessible localement, vous avez probablement des **ports bloqués** sur votre box/routeur ou non dirigés vers votre serveur.
|
||||
Afin de le vérifier, essayez d’accéder à votre serveur avec un client extérieur au réseau local. Par exemple grâce à un autre accès Wi-Fi ou avec un smartphone en 3G/4G.
|
||||
|
||||
Si le serveur est inatteignable depuis l’extérieur du réseau local, le problème vient probablement de la configuration du routeur.
|
||||
|
||||
<div class="alert alert-info">
|
||||
Essayez d’activer l’uPnP sur l’interface de configuration de votre box/routeur, et vérifiez que le serveur y est directement connecté en Ethernet.
|
||||
<p>
|
||||
Vous pouvez également rediriger les ports manuellement vers l’adresse IP locale de votre serveur grâce à l’interface de configuration de votre box/routeur.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
### <small>4.</small> Est-ce que votre box/routeur fait du hairpinning ?
|
||||
|
||||
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) 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.
|
||||
|
||||
___
|
||||
|
||||
Sinon, retentez l’installation en prenant cette fois un nom de domaine en **.nohost.me** ou en **.noho.st**.
|
|
@ -1,38 +0,0 @@
|
|||
#Acceder a tu servidor desde la red local
|
||||
|
||||
Después de haber instalado tu servidor, es probable que tu nombre de dominio no esté accesible desde la red local donde se encuentra el servidor. Esto es un problema que se llama el [hairpinning](https://en.wikipedia.org/wiki/Hairpinning).
|
||||
|
||||
Para resolver este problema, es preciso configurar el DNS de tu router o, por defecto, el o los archivos hosts de tu ordenadores clientes.
|
||||
|
||||
### Obtener la dirección IP local del servidor
|
||||
A fin de configurar el DNS o el archivo hosts, tienes que conocer la dirección IP privada de tu servidor. Esta dirección sólo puede ser utilizada en la red local donde está el servidor, y no está vinculada con tu dirección pública utilizada en Internet.
|
||||
|
||||
Puedes descubrir la dirección privada de tu servidor de varias maneras :
|
||||
- En la pantalla de conexión de Yunohost en el mismo servidor :
|
||||
<img src="/images/ynh_login.png" width=600>
|
||||
|
||||
- Desde la interfaz de administración de tu servidor Yunohost :
|
||||
en Herramientas > Estado del servidor > Red
|
||||
<img src="/images/ynh_admin_etat_ip.png" width=900>
|
||||
|
||||
- O desde tu router o tu caja Internet, dependiendo de su modelo.
|
||||
|
||||
## Configurar el DNS de la caja Internet o del router
|
||||
|
||||
Vas a crear una redirección que estará activa en toda tu red local. El objetivo es crear una redirección DNS hacia el IP de tu servidor en tu caja Internet. Hay que acceder a la interfaz de configuración de tu caja y a los parámetros DNS, y luego crear una redirección local (por ejemplo, yunohost.local puede redigir hacia 192.168.21).
|
||||
|
||||
## Configurar el archivo [hosts](https://es.wikipedia.org/wiki/Archivo_hosts) del ordenador cliente
|
||||
Sólo deberías modificar el archivo hosts si no puedes modificar el DNS de tu caja Internet / router, porque el archivo hosts únicamente afectará el ordenador en el cual el archivo esté modificado.
|
||||
|
||||
- En Windows, encontrarás el archivo hosts aquí :
|
||||
`%SystemRoot%\system32\drivers\etc\`
|
||||
> Es preciso visualizar los archivos y sistemas escondidos para ver el archivo hosts.
|
||||
- En sistemas UNIX (GNU/Linux, Mac OS), lo encontrarás aquí :
|
||||
`/etc/hosts`
|
||||
> Necesitarás derechos root para modificar el archivo.
|
||||
|
||||
Simplemente añade al final del archivo hosts una linea conteniendo la dirección IP privada del servidor y tu nombre de dominio
|
||||
|
||||
```bash
|
||||
192.168.1.62 domain.tld
|
||||
```
|
|
@ -1,73 +0,0 @@
|
|||
# Nohost.me domains
|
||||
|
||||
In order to make self-hosting as accessible as possible, the YunoHost Project provides a *free*
|
||||
and *automatically configured* domain name service. By using this service, you
|
||||
won't have to [configure DNS records](/dns_config) yourself, which
|
||||
can be tedious and technical.
|
||||
|
||||
The following (sub)domains are proposed:
|
||||
- `whateveryouwant.nohost.me`;
|
||||
- `whateveryouwant.noho.st`;
|
||||
- `whateveryouwant.ynh.fr`.
|
||||
|
||||
To use this service, you simply have to choose such a domain during the
|
||||
post-installation. It will then be automatically configured by YunoHost !
|
||||
|
||||
N.B.: As a fairness measure, each instance may only
|
||||
have **one such domain** setup at any given time.
|
||||
|
||||
#### Subdomains
|
||||
|
||||
The `nohost.me`, `noho.st` and `ynh.fr` domain service does not allow the creation of
|
||||
subdomains.
|
||||
|
||||
Even if YunoHost allows the installation of applications on subdomains (for
|
||||
example, having the Owncloud application accessible from the
|
||||
`cloud.mydomain.org` address), this feature is not allowed with the `nohost.me`
|
||||
and `noho.st` domains and it is not possible to have a subdomain such as `my
|
||||
application.mydomain.nohost.me`.
|
||||
|
||||
To be able to enjoy applications that can only be installed at the root of a
|
||||
domain name, you must have your own domain name.
|
||||
|
||||
### Adding a nohost.me, noho.st or ynh.fr domain after the post-installation
|
||||
|
||||
If you already did the postinstall and want to add an automatic domain, you
|
||||
may do so from the "Domains" web interface, selecting the option "I don't have a domain name..."
|
||||
|
||||
Alternatively, the following commands can be used.
|
||||
|
||||
```bash
|
||||
# Add the domain
|
||||
yunohost domain add whateveryouwant.nohost.me
|
||||
|
||||
# Subscribe/register to the dyndns service
|
||||
yunohost dyndns subscribe -d whateveryouwant.nohost.me
|
||||
|
||||
# [ wait ~ 30 seconds ]
|
||||
|
||||
# Update the DNS conf
|
||||
yunohost dyndns update
|
||||
|
||||
# Set it as the main domain
|
||||
yunohost tools maindomain --new-domain whateveryouwant.nohost.me
|
||||
```
|
||||
|
||||
#### Retrieve a nohost.me, noho.st or ynh.fr domain
|
||||
|
||||
If you reinstall your server and want to use a domain already used previously,
|
||||
you must request a domain reset on the forum
|
||||
[in the dedicated thread](https://forum.yunohost.org/t/nohost-domain-recovery/442).
|
||||
|
||||
|
||||
#### Change a nohost.me, noho.st or ynh.fr domain
|
||||
|
||||
If you wish to use a different automatic domain, you first have to remove
|
||||
your present domain registration. This is done in 3 steps:
|
||||
|
||||
1. Remove the domain from your instance (via webadmin or the `yunohost doamin remove` CLI).
|
||||
**/!\ Caution: this will remove any app installed on this domain, along with its data.**
|
||||
2. Ask for registration removal [in the dedicated forum thread](https://forum.yunohost.org/t/nohost-domain-recovery/442).
|
||||
3. Remove automatic domain configuration files on your server, via CLI only : `sudo rm /etc/cron.d/yunohost-dyndns && sudo rm -r /etc/yunohost/dyndns`
|
||||
|
||||
You may then add a new domain.
|
|
@ -1,30 +0,0 @@
|
|||
# YunoHost DNS Resolver
|
||||
|
||||
+<div class="alert alert-danger">This page is deprecated / obsolete. Information it contains should be updated (or should be removed).</div>
|
||||
|
||||
### Presentation
|
||||
YunoHost provide a DNS service for DNS name resolution. Usually, your server is not configured to use it, it's your ISP DNS. For instance, for the Free ISP with Freebox router the DNS resolver IP is `192.168.0.254`.
|
||||
|
||||
How to known: watch the file `/etc/resolv.conf`. This file is not modifiable because it is rewriten by the DHCP service. A DHCP client is configured, it requests the router to get DNS resolver IPs.
|
||||
This IPs is provided by your ISP.
|
||||
|
||||
### Configuration
|
||||
To use YunoHost DNS resolver of your server, modify your DHCP configuration client: remove DNS name server request, and add static IP of your server `127.0.0.1`.
|
||||
|
||||
Edit the file `/etc/dhcp/dhclient.conf`, add the line `supersede` and remove in the line `request` the word `domain-name-servers`:
|
||||
```bash
|
||||
supersede domain-name-servers 127.0.0.1, 192.168.0.254;
|
||||
request subnet-mask, broadcast-address, time-offset, routers,
|
||||
domain-name, domain-search, host-name,
|
||||
dhcp6.name-servers, dhcp6.domain-search,
|
||||
netbios-name-servers, netbios-scope, interface-mtu,
|
||||
rfc3442-classless-static-routes, ntp-servers;
|
||||
```
|
||||
Apply this modification by rebooting the DNS server:
|
||||
|
||||
```bash
|
||||
service dnsmasq restart
|
||||
```
|
||||
|
||||
(TODO: It's possible to restart a service to take into account the modification -DHCP?-, but didn't work for me).
|
||||
It's possible to do same modification in all machine in local network by replacing *127.0.0.1* by IP server.
|
|
@ -1,32 +0,0 @@
|
|||
# Résolveur DNS de YunoHost
|
||||
|
||||
<div class="alert alert-danger">Cette page est dépréciée / obsolète. Les informations présentées ont besoin d'être mise à jour (ou doivent être retirée).</div>
|
||||
|
||||
### Présentation
|
||||
YunoHost est installé avec un service DNS pour la résolution des noms de domaine. En général, votre serveur n’est pas configuré, c’est celui de votre FAI.
|
||||
Par exemple pour une Freebox la résolution se fait par l’adresse `192.168.0.254`.
|
||||
|
||||
Comment savoir ? Regarder le contenu du fichier `/etc/resolv.conf`. Ce fichier n’est pas modifiable car il est réécrit par le service DHCP.
|
||||
Un client DHCP est configuré, celui-ci interroge votre routeur pour les adresses IP de vos serveurs de résolution de DNS. Ces IPs sont fournis par votre FAI.
|
||||
|
||||
### Configuration
|
||||
Afin d’utiliser le résolveur DNS de votre instance YunoHost, il faut modifier la configuration DHCP pour ne pas faire de requêtes à votre routeur. Il faut donc mettre de façon statique la nouvelle adresse à savoir dans ce cas `127.0.0.1`.
|
||||
|
||||
Éditer le fichier `/etc/dhcp/dhclient.conf`, ajouter une ligne `supersede` et supprimer de la ligne `request` le mot `domain-name-servers` :
|
||||
```bash
|
||||
supersede domain-name-servers 127.0.0.1, 192.168.0.254;
|
||||
request subnet-mask, broadcast-address, time-offset, routers,
|
||||
domain-name, domain-search, host-name,
|
||||
dhcp6.name-servers, dhcp6.domain-search,
|
||||
netbios-name-servers, netbios-scope, interface-mtu,
|
||||
rfc3442-classless-static-routes, ntp-servers;
|
||||
```
|
||||
|
||||
Afin de prendre en compte la modification, redémarrer le serveur DNS :
|
||||
|
||||
```bash
|
||||
service dnsmasq restart
|
||||
```
|
||||
|
||||
(TODO : il doit être possible de reconfigurer à chaud, mais ça n’a pas fonctionné).
|
||||
Il est possible de faire la même modification sur toutes vos machines du réseau local en remplaçant 127.0.0.1 par l’IP de votre serveur.
|
23
docker.md
23
docker.md
|
@ -1,23 +0,0 @@
|
|||
# Docker and YunoHost
|
||||
|
||||
<div class="alert alert-danger">
|
||||
<b>
|
||||
Yunohost doesn't support Docker officially since issues with versions 2.4+.
|
||||
In question, YunoHost 2.4+ doesn't work anymore on Docker
|
||||
because YunoHost requires systemd and Docker has chosen to not support it natively (and
|
||||
there are other problems link to the firewall and services).
|
||||
</b>
|
||||
</div>
|
||||
|
||||
## Community images
|
||||
|
||||
However, community images exist and are available on Docker Hub :
|
||||
|
||||
* AMD64 (classic)
|
||||
* https://hub.docker.com/r/domainelibre/yunohost3/ (Yunohost v3)
|
||||
* I386 (old computers)
|
||||
* https://hub.docker.com/r/domainelibre/yunohost3-i386/ (Yunohost v3)
|
||||
* ARMV7 (raspberry pi 2/3 ...)
|
||||
* https://hub.docker.com/r/domainelibre/yunohost3-arm/ (Yunohost v3)
|
||||
* ARMV6 (raspberry pi 1)
|
||||
* https://hub.docker.com/r/tuxalex/yunohost-armv6/ (old yunohost version)
|
23
docker_fr.md
23
docker_fr.md
|
@ -1,23 +0,0 @@
|
|||
# Docker et YunoHost
|
||||
|
||||
<div class="alert alert-danger">
|
||||
<b>
|
||||
Yunohost ne supporte plus officiellement Docker depuis les problèmes rencontrés avec la version 2.4+.
|
||||
En cause, YunoHost dépend désormait de systemd et docker a décidé qu'ils ne le
|
||||
supporteraient pas nativement (et il y a d'autres problèmes liés au firewall et aux
|
||||
services).
|
||||
</b>
|
||||
</div>
|
||||
|
||||
## Images communautaires
|
||||
|
||||
Cependant il existe des images communautaires disponibles sur Docker Hub :
|
||||
|
||||
* AMD64 (classique)
|
||||
* https://hub.docker.com/r/domainelibre/yunohost3/ (Yunohost v3)
|
||||
* I386 (anciens pc)
|
||||
* https://hub.docker.com/r/domainelibre/yunohost3-i386/ (Yunohost v3)
|
||||
* ARMV7 (raspberry pi 2/3 ...)
|
||||
* https://hub.docker.com/r/domainelibre/yunohost3-arm/ (Yunohost v3)
|
||||
* ARMV6 (raspberry pi 1)
|
||||
* https://hub.docker.com/r/tuxalex/yunohost-armv6/ (ancienne version de Yunohost)
|
32
docs.md
32
docs.md
|
@ -1,32 +0,0 @@
|
|||
#Documentation
|
||||
|
||||
<p class="lead">
|
||||
YunoHost's documentation has 2 different sections:
|
||||
</p>
|
||||
|
||||
<div class="row text-center">
|
||||
|
||||
<div class="col col-md-4 col-md-offset-1">
|
||||
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Administrator guide</a>
|
||||
<p><small class="text-muted">Including installation, server management and application management</small></p>
|
||||
</div>
|
||||
|
||||
<div class="col col-md-4 col-md-offset-1">
|
||||
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Contributor guide</a>
|
||||
<p><small class="text-muted">Which contains everything you have to know about us and the way we work</small></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
* Project's life:
|
||||
* [Frequently asked questions](/faq)
|
||||
* [Project news](/news)
|
||||
* [Project organization](/project_organization)
|
||||
* [Project budget](/project_budget)
|
||||
* [Forum](https://forum.yunohost.org)
|
||||
* [Chat rooms](/chat_rooms)
|
||||
* [Communication](/communication)
|
||||
* [Support / Help](/help)
|
||||
|
||||
* Use example:
|
||||
* [YunoHost for non-profit organisations](/use_case_non-profit_organisations)
|
31
docs_ar.md
31
docs_ar.md
|
@ -1,31 +0,0 @@
|
|||
#<div dir="auto">الدليل</div>
|
||||
|
||||
<p dir="rtl" class="lead">
|
||||
دليل واي يونوهوست YunoHost يرتكز أساسًا على ثلاثة محاور :
|
||||
</p>
|
||||
|
||||
<div class="row text-center">
|
||||
|
||||
<div dir="rtl" class="col col-md-4 col-md-offset-1">
|
||||
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> دليل المدير</a>
|
||||
<p><small class="text-muted">يتطرق إلى طريقة التنصيب و إدارة السيرفر و التطبيقات</small></p>
|
||||
</div>
|
||||
|
||||
<div dir="rtl" class="col col-md-4 col-md-offset-1">
|
||||
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> دليل المساهم</a>
|
||||
<p><small class="text-muted">يحتوي على كافة المعلومات التي تخصنا و أسلوب عملنا و مساهمتنا</small></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
* Project's life:
|
||||
* [Frequently asked questions](/faq)
|
||||
* [Project organization](/project_organization)
|
||||
* [Blog](https://forum.yunohost.org/c/announcement)
|
||||
* [Forum](https://forum.yunohost.org)
|
||||
* [Chat rooms](/chat_rooms)
|
||||
* [Communication](/communication)
|
||||
* [Support / Help](/help)
|
||||
|
||||
* استخدم مثال:
|
||||
* [YunoHost للمنظمات غير الهادفة للربح](/use_case_non-profit_organisations)
|
31
docs_de.md
31
docs_de.md
|
@ -1,31 +0,0 @@
|
|||
#Documentation
|
||||
|
||||
<p class="lead">
|
||||
Die YunoHost Dokumentation ist in 2 Bereiche aufgeteilt:
|
||||
</p>
|
||||
|
||||
<div class="row text-center">
|
||||
|
||||
<div class="col col-md-4 col-md-offset-1">
|
||||
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Handbuch für Administratoren</a>
|
||||
<p><small class="text-muted">Befasst sich mit den Installationsschritten und der Verwaltung von Server und Apps.</small></p>
|
||||
</div>
|
||||
|
||||
<div class="col col-md-4 col-md-offset-1">
|
||||
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Handbuch für Mitwirkende</a>
|
||||
<p><small class="text-muted">Alles, was du über uns und unsere Art zu arbeiten wissen musst.</small></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
* Das Projektleben:
|
||||
* [Häufig gestellte Fragen](/faq)
|
||||
* [Projektorganisation](/project_organization)
|
||||
* [Blog](https://forum.yunohost.org/c/announcement)
|
||||
* [Forum](https://forum.yunohost.org)
|
||||
* [Chaträume](/chat_rooms)
|
||||
* [Kommunikation](/communication)
|
||||
* [Support / Hilfe](/help)
|
||||
|
||||
* Verwenden Sie ein Beispiel:
|
||||
* [YunoHost für gemeinnützige Organisationen](/use_case_non-profit_organisations)
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue