Merge branch 'master' into pr/1490
9
.gitignore
vendored
Normal file → Executable file
|
@ -1,2 +1,7 @@
|
||||||
*~
|
/*
|
||||||
*.sw[op]
|
!/pages
|
||||||
|
!/images
|
||||||
|
!/themes
|
||||||
|
!/Dockerfile
|
||||||
|
!/docker-compose.yml
|
||||||
|
!/dev/plugins
|
||||||
|
|
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "themes/learn4"]
|
||||||
|
path = themes/learn4
|
||||||
|
url = https://github.com/getgrav/grav-theme-learn4.git
|
|
@ -2,5 +2,3 @@ language: bash
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- bash tests/dead_links.sh
|
- bash tests/dead_links.sh
|
||||||
- bash tests/unreferenced_pages.sh
|
|
||||||
- bash tests/check_code_block_syntax.sh
|
|
||||||
|
|
89
Dockerfile
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
FROM php:7.4-apache
|
||||||
|
LABEL maintainer="Andy Miller <rhuk@getgrav.org> (@rhukster)"
|
||||||
|
|
||||||
|
RUN usermod --uid 1000 www-data
|
||||||
|
RUN groupmod --gid 1000 www-data
|
||||||
|
# Enable Apache Rewrite + Expires Module
|
||||||
|
RUN a2enmod rewrite expires && \
|
||||||
|
sed -i 's/ServerTokens OS/ServerTokens ProductOnly/g' \
|
||||||
|
/etc/apache2/conf-available/security.conf
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
unzip \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libjpeg62-turbo-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libyaml-dev \
|
||||||
|
libzip4 \
|
||||||
|
libzip-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
libicu-dev \
|
||||||
|
g++ \
|
||||||
|
git \
|
||||||
|
cron \
|
||||||
|
vim \
|
||||||
|
&& docker-php-ext-install opcache \
|
||||||
|
&& docker-php-ext-configure intl \
|
||||||
|
&& docker-php-ext-install intl \
|
||||||
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
||||||
|
&& docker-php-ext-install -j$(nproc) gd \
|
||||||
|
&& docker-php-ext-install zip \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# set recommended PHP.ini settings
|
||||||
|
# see https://secure.php.net/manual/en/opcache.installation.php
|
||||||
|
RUN { \
|
||||||
|
echo 'opcache.memory_consumption=128'; \
|
||||||
|
echo 'opcache.interned_strings_buffer=8'; \
|
||||||
|
echo 'opcache.max_accelerated_files=4000'; \
|
||||||
|
echo 'opcache.revalidate_freq=2'; \
|
||||||
|
echo 'opcache.fast_shutdown=1'; \
|
||||||
|
echo 'opcache.enable_cli=1'; \
|
||||||
|
echo 'upload_max_filesize=128M'; \
|
||||||
|
echo 'post_max_size=128M'; \
|
||||||
|
echo 'expose_php=off'; \
|
||||||
|
} > /usr/local/etc/php/conf.d/php-recommended.ini
|
||||||
|
|
||||||
|
RUN pecl install apcu \
|
||||||
|
&& pecl install yaml-2.0.4 \
|
||||||
|
&& docker-php-ext-enable apcu yaml
|
||||||
|
|
||||||
|
CMD ["sh", "-c", "usermod --uid 1000 www-data"]
|
||||||
|
CMD ["sh", "-c", "groupmod --gid 1000 www-data"]
|
||||||
|
# Set user to www-data
|
||||||
|
RUN chown www-data:www-data /var/www
|
||||||
|
USER www-data
|
||||||
|
|
||||||
|
# Define Grav specific version of Grav or use latest stable
|
||||||
|
ARG GRAV_VERSION=latest
|
||||||
|
|
||||||
|
# Install grav
|
||||||
|
WORKDIR /var/www
|
||||||
|
RUN curl -o grav-admin.zip -SL https://getgrav.org/download/core/grav-admin/${GRAV_VERSION} && \
|
||||||
|
unzip grav-admin.zip && \
|
||||||
|
mv -T /var/www/grav-admin /var/www/html && \
|
||||||
|
rm grav-admin.zip
|
||||||
|
|
||||||
|
# Install plugins
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
|
||||||
|
RUN bin/gpm install admin email feed git-sync langswitcher presentation shortcode-core anchors error flex-objects highlight login presentation-deckset tntsearch breadcrumbs external_links form image-captions markdown-notices problems
|
||||||
|
|
||||||
|
# Create cron job for Grav maintenance scripts
|
||||||
|
RUN (crontab -l; echo "* * * * * cd /var/www/html;/usr/local/bin/php bin/grav scheduler 1>> /dev/null 2>&1") | crontab -
|
||||||
|
|
||||||
|
# Return to root user
|
||||||
|
USER root
|
||||||
|
|
||||||
|
# Copy init scripts
|
||||||
|
# COPY docker-entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
COPY --chown=1000:1000 themes/learn4 /var/www/html/user/themes/learn4
|
||||||
|
|
||||||
|
# provide container inside image for data persistence
|
||||||
|
VOLUME ["/var/www/html/backup", "/var/www/html/user/themes/yunohost-docs", "/var/www/html/logs", "/var/www/html/user/pages", "/var/www/html/user/config", "/var/www/html/user/images"]
|
||||||
|
|
||||||
|
# ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
# CMD ["apache2-foreground"]
|
||||||
|
CMD ["sh", "-c", "cron && apache2-foreground"]
|
37
README.md
|
@ -1,10 +1,39 @@
|
||||||
# YunoHost Documentation
|
# YunoHost Documentation
|
||||||
|
|
||||||
* [Web Site](https://yunohost.org)
|
* [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).
|
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
|
# Contributing
|
||||||
[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).
|
This repo use a **submodule** to provide the theme. So when you clone use:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone --recursive https://github.com/YunoHost/doc.git
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
You can refer to the page on [writing documentation](https://yunohost.org/write_documentation).
|
||||||
|
|
||||||
|
If you know docker, you can run:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
|
55
admin_api.md
|
@ -1,55 +0,0 @@
|
||||||
# Administration from the API or an external application
|
|
||||||
|
|
||||||
All command line actions can also be ran from the web API. The API is available at https://your.server/yunohost/api. For now there's no documentation on the various routes... but you can get an idea by looking at the actionmap [here](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml) (in particular the `api` stuff).
|
|
||||||
|
|
||||||
## Using cURL
|
|
||||||
|
|
||||||
You must first retrieve a login cookie to perform the actions. Here is an example with cURL:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Login (with admin password)
|
|
||||||
curl -k -H "X-Requested-With: customscript" \
|
|
||||||
-d "password=supersecretpassword" \
|
|
||||||
-dump-header headers \
|
|
||||||
https://your.server/yunohost/api/login
|
|
||||||
|
|
||||||
# GET example
|
|
||||||
curl -k -i -H "Accept: application/json" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-L -b headers -X GET https://your.server/yunohost/api/ROUTE \
|
|
||||||
| grep } | python -mjson.tool
|
|
||||||
```
|
|
||||||
|
|
||||||
## Using a PHP class
|
|
||||||
|
|
||||||
To simplify the remote administration of a YunoHost instance in CHATONS/Librehosters projects, API classes have been developed by users.
|
|
||||||
|
|
||||||
For example, this [PHP class](https://github.com/scith/yunohost-api-php) will allow you to administer your YunoHost instance from a PHP application (website, capacity management tool...).
|
|
||||||
|
|
||||||
Here is an example of PHP code to add a user to your YunoHost instance:
|
|
||||||
|
|
||||||
```php
|
|
||||||
require("ynh_api.class.php");
|
|
||||||
$ynh = new YNH_API("adresse IP du serveur YunoHost ou nom d’hôte", "mot de passe administrateur");
|
|
||||||
|
|
||||||
if ($ynh->login()) {
|
|
||||||
$domains = $ynh->get("/domains");
|
|
||||||
$first_domain = $domains['domains'][0];
|
|
||||||
|
|
||||||
$arguments = array(
|
|
||||||
'username' => 'test',
|
|
||||||
'password' => 'yunohost',
|
|
||||||
'firstname' => 'Prénom',
|
|
||||||
'lastname' => 'Nom',
|
|
||||||
'mail' => 'test@'.$first_domain,
|
|
||||||
'mailbox_quota' => '500M'
|
|
||||||
);
|
|
||||||
|
|
||||||
$user_add = $ynh->post("/users", $arguments);
|
|
||||||
print_r($user_add);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
print("Login to YunoHost failed.\n");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
```
|
|
12
admin_fr.md
|
@ -1,12 +0,0 @@
|
||||||
# L’interface d’administration Web
|
|
||||||
|
|
||||||
YunoHost est fourni avec une interface graphique d’administration. L’autre méthode est d’utiliser la [ligne de commande](/commandline).
|
|
||||||
|
|
||||||
### Accès
|
|
||||||
|
|
||||||
L’interface admin est accessible depuis votre instance YunoHost à l’adresse https://exemple.org/yunohost/admin (remplacez exemple.org par la bonne valeur)
|
|
||||||
|
|
||||||
<div class="text-center" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
|
|
||||||
<img src="/images/webadmin_fr.png" style="max-width:100%;">
|
|
||||||
</div>
|
|
||||||
|
|
64
admindoc.md
|
@ -1,64 +0,0 @@
|
||||||
# Administrator documentation
|
|
||||||
|
|
||||||
* Discovering self-hosting
|
|
||||||
* [What is Self-hosting](/selfhosting)
|
|
||||||
* [What is YunoHost](/whatsyunohost)
|
|
||||||
* [Try YunoHost](/try)
|
|
||||||
* [How to host yourself](howtohostyourself)
|
|
||||||
* [Choosing hardware](/hardware)
|
|
||||||
* [About the friendliness of internet service providers](/isp)
|
|
||||||
* [Installing YunoHost](/install)
|
|
||||||
* [On a regular computer](/install_iso)
|
|
||||||
* [On a dedicated or a virtual private server](/install_on_vps)
|
|
||||||
* [On a Raspberry Pi](/install_on_raspberry)
|
|
||||||
* [On an ARM board](/install_on_arm_board)
|
|
||||||
* [On Debian](/install_on_debian)
|
|
||||||
* [On VirtualBox](/install_on_virtualbox)
|
|
||||||
* Finalizing your setup
|
|
||||||
* [Post-installation](/postinstall)
|
|
||||||
* [Configuring port forwarding](/isp_box_config)
|
|
||||||
* [Configuring DNS records](/dns_config)
|
|
||||||
* [Installing an SSL certificate](/certificate)
|
|
||||||
* [Diagnose if your setup is working properly](/diagnostic)
|
|
||||||
* Getting to know YunoHost
|
|
||||||
* [Overview of YunoHost](/overview)
|
|
||||||
* [General advices and guidelines](/guidelines)
|
|
||||||
* [Web administration interface](/admin)
|
|
||||||
* [SSH](/ssh) and [command-line administration](/commandline)
|
|
||||||
* [Users and the SSO](/users)
|
|
||||||
* [Groups and permissions](/groups_and_permissions)
|
|
||||||
* [Applications](/apps_overview)
|
|
||||||
* [Domains, DNS and certificates](/domains)
|
|
||||||
* [Email](/email)
|
|
||||||
* [Forms to remove its IP address from the black lists](/blacklist_forms)
|
|
||||||
* [XMPP](/XMPP)
|
|
||||||
* [Backup](/backup)
|
|
||||||
* [Updating the system](/update) and [apps](/app_update)
|
|
||||||
* [Security](/security)
|
|
||||||
* Going further
|
|
||||||
* Domain names
|
|
||||||
* [Noho.st / nohost.me / ynh.fr domain names](/dns_nohost_me)
|
|
||||||
* [Configure a dynamic DNS with a dynamic IP address](/dns_dynamicip)
|
|
||||||
* [DNS and subdomains for apps](/dns_subdomains)
|
|
||||||
* [Managing DNS records at OVH](/OVH)
|
|
||||||
* Notes about some French ISPs
|
|
||||||
* [SFR](/isp_sfr)
|
|
||||||
* [Orange](/isp_orange)
|
|
||||||
* [Free](/isp_free)
|
|
||||||
* [Specific apps documentations](/appsdoc)
|
|
||||||
* [Equivalence between Framasoft service and apps](/apps_framasoft)
|
|
||||||
* [Exchange files with your server using a graphical interface](/filezilla)
|
|
||||||
* [Customize the appearance of the YunoHost portal](/theming)
|
|
||||||
* [Adding an external storage](/external_storage)
|
|
||||||
* [Moving an app folder to an other storage](/moving_app_folder)
|
|
||||||
* [Migrating emails to YunoHost](/email_migration)
|
|
||||||
* [Hide services with Tor](/torhiddenservice)
|
|
||||||
* [Using certificates other than Let's Encrypt](/certificate_custom)
|
|
||||||
* [A discussion about the advantages of using a VPN](/vpn_advantage)
|
|
||||||
* [Stretch->Buster migration procedure](stretch_buster_migration)
|
|
||||||
* [(old) Jessie->Stretch migration procedure](jessie_stretch_migration)
|
|
||||||
* Troubleshooting
|
|
||||||
* [Changing the administration password](/change_admin_password)
|
|
||||||
* [Recover access to your server](/noaccess)
|
|
||||||
* [Unban IPs in IPiptables/Fail2Ban](/fail2ban)
|
|
||||||
* [Configuring IPv6](/ipv6)
|
|
|
@ -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)
|
|
||||||
* [Applikationen](/apps_overview)
|
|
||||||
* [Domains, DNS und Zertifikate](/domains)
|
|
||||||
* [E-Mail](/email)
|
|
||||||
* [XMPP](/XMPP)
|
|
||||||
* [Datensicherung](/backup)
|
|
||||||
* [System-Update](/update) and [apps](/app_update)
|
|
||||||
* [Sicherheit](/security)
|
|
||||||
* Weiteres
|
|
||||||
* [Noho.st / nohost.me / ynh.fr Domain-Namen](/dns_nohost_me)
|
|
||||||
* [Grafischer Dateiaustausch mit deinem Server](/filezilla)
|
|
||||||
* [Passe das Aussehen vom Yunohost-Portal an](/theming)
|
|
||||||
* [Für externen Speicher hinzu](/external_storage)
|
|
||||||
* [Migriere E-Mails zu Yunohost](/email_migration)
|
|
||||||
* [Verstecke Services mit Tor](/torhiddenservice)
|
|
||||||
* Hinweise zur Fehlersuche
|
|
||||||
* [Entsperren von IPs in Fail2Ban](/fail2ban)
|
|
||||||
* [Administrator-Passwort ändern](/change_admin_password)
|
|
|
@ -1,64 +0,0 @@
|
||||||
# Documentation pour les administrateurs YunoHost
|
|
||||||
|
|
||||||
* Découvrir l'auto-hébergement
|
|
||||||
* [Qu'est-ce que l'auto-hébergement](/selfhosting)
|
|
||||||
* [Qu'est-ce que YunoHost](/whatsyunohost)
|
|
||||||
* [Essayer YunoHost](/try)
|
|
||||||
* [Choisir son mode d'hébergement](/howtohostyourself)
|
|
||||||
* [Matériel compatible](/hardware)
|
|
||||||
* [À propos des fournisseurs d'accès internet](/isp)
|
|
||||||
* [Guide d’installation](/install)
|
|
||||||
* [Sur un ordinateur "standard"](/install_iso)
|
|
||||||
* [Sur un serveur dédié ou virtuel (VPS)](/install_on_vps)
|
|
||||||
* [Sur un Raspberry Pi](/install_on_raspberry)
|
|
||||||
* [Sur une carte ARM](/install_on_arm_board)
|
|
||||||
* [Sur Debian](/install_on_debian)
|
|
||||||
* [Sur VirtualBox](/install_on_virtualbox)
|
|
||||||
* Finaliser son installation
|
|
||||||
* [Post-installation](/postinstall)
|
|
||||||
* [Configurer les redirections de port](/isp_box_config)
|
|
||||||
* [Configurer les enregistrements DNS](/dns_config)
|
|
||||||
* [Installer un certificat SSL](/certificate)
|
|
||||||
* [Diagnostic du bon fonctionnement du YunoHost](/diagnostic)
|
|
||||||
* Apprendre à connaitre YunoHost
|
|
||||||
* [Vue d'ensemble de YunoHost](/overview)
|
|
||||||
* [Conseil généraux](/guidelines)
|
|
||||||
* [L'interface d'administration web](/admin)
|
|
||||||
* [SSH](/ssh) et [l'administration en ligne de commande](/commandline)
|
|
||||||
* [Les utilisateurs et le SSO](/users)
|
|
||||||
* [Les groupes et les permissions](/groups_and_permissions)
|
|
||||||
* [Les applications](/apps_overview)
|
|
||||||
* [Les domaines, la configuration DNS et les certificats](/domains)
|
|
||||||
* [Les emails](/email)
|
|
||||||
* [Formulaires pour enlever son adresse IP des listes noires](/blacklist_forms)
|
|
||||||
* [XMPP](/XMPP)
|
|
||||||
* [Les sauvegardes](/backup)
|
|
||||||
* [Mettre à jour le système](/update) et [les applications](/app_update)
|
|
||||||
* [La sécurité](/security)
|
|
||||||
* Pour aller plus loin
|
|
||||||
* Noms de domaine
|
|
||||||
* [Nom de domaine en noho.st / nohost.me / ynh.fr](/dns_nohost_me)
|
|
||||||
* [Configurer un DNS dynamique avec une adresse IP dynamique](/dns_dynamicip)
|
|
||||||
* [DNS et installation d’une application sur un sous-domaine](/dns_subdomains)
|
|
||||||
* [Gérer les enregistrements DNS chez OVH](/OVH)
|
|
||||||
* Notes à propos de certains fournisseurs d'accès à Internet
|
|
||||||
* [SFR](/isp_sfr)
|
|
||||||
* [Orange](/isp_orange)
|
|
||||||
* [Free](/isp_free)
|
|
||||||
* [Documentation spécifique à certaines apps](/appsdoc)
|
|
||||||
* [Équivalence entre service Framasoft et apps](/apps_framasoft)
|
|
||||||
* [Échanger des fichiers avec son serveur à l'aide d'une interface graphique](/filezilla)
|
|
||||||
* [Modifier l'apparence du portail utilisateur](/theming)
|
|
||||||
* [Ajouter un stockage externe](/external_storage)
|
|
||||||
* [Déplacer un dossier d'app vers un autre stockage](/moving_app_folder)
|
|
||||||
* [Migrer ses emails vers YunoHost](/email_migration)
|
|
||||||
* [YunoHost avec un service caché Tor](/torhiddenservice)
|
|
||||||
* [Utilisation de certificats autres que Let's Encrypt](/certificate_custom)
|
|
||||||
* [Une discussion sur les avantages d'utiliser un VPN](/vpn_advantage)
|
|
||||||
* [Procedure de Migration Stretch->Buster](stretch_buster_migration)
|
|
||||||
* [(vieux) Procedure de Migration Jessie->Stretch](jessie_stretch_migration)
|
|
||||||
* Dépannage
|
|
||||||
* [Changer le mot de passe d’administration](/change_admin_password)
|
|
||||||
* [Récupérer l'accès à son serveur](/noaccess)
|
|
||||||
* [Débannir une IP dans Fail2Ban/IPtables](/fail2ban)
|
|
||||||
* [Configurer l'IPv6](/ipv6)
|
|
|
@ -1,15 +0,0 @@
|
||||||
# <img src="/images/collabora_logo.png" height="80px" alt="logo de collabora"> Collabora
|
|
||||||
|
|
||||||
[](https://install-app.yunohost.org/?app=collabora) [](https://dash.yunohost.org/appci/app/collabora)
|
|
||||||
|
|
||||||
### Index
|
|
||||||
|
|
||||||
- [Liens utiles](#liens-utiles)
|
|
||||||
|
|
||||||
Collabora est une suite bureautique en ligne basée sur LibreOffice et utilisable avec Nextcloud ou ownCloud. Elle permet d'éditer des documents textes, des tableaux, des diaporamas. L'édition en ligne peut se faire en simultanée et permet d'exporter et d'imprimer des documents grâce au format PDF généré.
|
|
||||||
|
|
||||||
## Liens utiles
|
|
||||||
|
|
||||||
+ Site web : [www.collaboraoffice.com](https://www.collaboraoffice.com/)
|
|
||||||
+ Dépôt logiciel de l'application : [github.com - YunoHost-Apps/collabora](https://github.com/YunoHost-Apps/collabora_ynh)
|
|
||||||
+ Remonter un bug ou une amélioration en créant un ticket (issue) : [github.com -YunoHost-Apps/collabora/issues](https://github.com/YunoHost-Apps/collabora_ynh/issues)
|
|
|
@ -1,20 +0,0 @@
|
||||||
# <img src="/images/yunohost_package.png" height="80px" alt="Package"> Fallback
|
|
||||||
|
|
||||||
[](https://install-app.yunohost.org/?app=fallback) [](https://dash.yunohost.org/appci/app/fallback)
|
|
||||||
|
|
||||||
### Index
|
|
||||||
|
|
||||||
- [Configuration](#configuration)
|
|
||||||
- [Useful links](#useful-links)
|
|
||||||
|
|
||||||
Fallback is a special app, only by command line interface, which provide a way to have a secondary server which you can used if your main server goes down.
|
|
||||||
This other server will allow you to deploy a copy of your server to bring back you to internet during your break down.
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
After the installation, you should not have anything else to configure. If you want anyway, you can find the list of app to backup in the file `/home/yunohost.app/fallback/app_list` and a global configuration in this other file `/home/yunohost.app/fallback/config.conf`
|
|
||||||
|
|
||||||
## Useful links
|
|
||||||
|
|
||||||
+ Application software repository: [github.com - YunoHost-Apps/fallback](https://github.com/YunoHost-Apps/fallback_ynh)
|
|
||||||
+ Fix a bug or an improvement by creating a ticket (issue): [github.com - YunoHost-Apps/fallback/issues](https://github.com/YunoHost-Apps/fallback_ynh/issues)
|
|
|
@ -1,3 +0,0 @@
|
||||||
# <img src="/images/jappix_logo.png" height="80px" alt="Jappix logo"> Jappix
|
|
||||||
|
|
||||||
Jappix is a web client for [XMPP](/XMPP).
|
|
|
@ -1,3 +0,0 @@
|
||||||
# <img src="/images/jappix_logo.png" height="80px" alt="Jappix logo"> Jappix
|
|
||||||
|
|
||||||
Jappix est un client web [XMPP](/XMPP).
|
|
|
@ -1,20 +0,0 @@
|
||||||
# Documentation My_webapp
|
|
||||||
|
|
||||||
In addition to the application's Readme.md, here are some useful tips.
|
|
||||||
|
|
||||||
## Automatic update of the site content
|
|
||||||
|
|
||||||
The application creates a new user with limited rights: it can connect (with a password) through SFTP to access the `/var/www/my_webapp` directory (or `/var/www/my_webapp__<number>` if there are several installations of this application).
|
|
||||||
|
|
||||||
This configuration requires updating the site content manually, with a password connection.
|
|
||||||
|
|
||||||
If you want to automate things, you need to be able to connect without typing a password (i.e. "non-interactive"). Here are the steps to follow to get there:
|
|
||||||
- Enable public key connection, in `/etc/ssh/ssh/sshd_config`, on the server
|
|
||||||
- Create a public/private key pair for your script on the "writing" computer - without a protective passphrase.
|
|
||||||
- Copy the public key to the server, in `/var/www/my_webapp(__#)/.ssh/authorized_keys`
|
|
||||||
- Set the user `webapp#` as owner of the file and directory
|
|
||||||
- You can now connect without a password, with `sftp -b`, `lftp` or other SFTP clients.
|
|
||||||
|
|
||||||
NB: The port number to use for the SFTP connection is the one used for the SSH, and configured in `/etc/ssh/sshd_config`.
|
|
||||||
|
|
||||||
This tip allows you to automatically update your site. For example, the makefile of the Pelican tool allows you to use `make ftp_upload`.
|
|
|
@ -1,20 +0,0 @@
|
||||||
# Documentation My_webapp
|
|
||||||
|
|
||||||
En complément du Readme.md de l'application, voici des astuces utiles.
|
|
||||||
|
|
||||||
## Mise à jour automatique du contenu du site.
|
|
||||||
|
|
||||||
L'application créée un nouvel utilisateur avec des droits limités : il peut se connecter (avec un mot de passe) en SFTP pour accéder au dossier `/var/www/my_webapp` (ou `/var/www/my_webapp__<numero>` s'il y a plusieurs installations de cette appli).
|
|
||||||
|
|
||||||
Cette configuration oblige à mettre à jour le contenu du site à la main, avec une connexion à mot de passe.
|
|
||||||
|
|
||||||
Si vous souhaitez automatiser des choses, il vous faut une possibilité de connexion sans mot de passe à taper (dite "non-interactive"). Voici les étapes à suivre pour y arriver :
|
|
||||||
- Activer la connexion par clé publique, dans `/etc/ssh/sshd_config`, sur le serveur
|
|
||||||
- Créer une paire clé publique/privée pour votre script, sur l'ordinateur "de rédaction" - sans mettre de phrase de passe de protection.
|
|
||||||
- Copier la clé publique sur le serveur, dans `/var/www/my_webapp(__#)/.ssh/authorized_keys`
|
|
||||||
- Rentre l'utilisateur `webapp#` propriétaire du fichier et du dossier
|
|
||||||
- Vous pouvez maintenant vous connecter sans mot de passe, avec `sftp -b`, `lftp` ou bien d'autres clients SFTP.
|
|
||||||
|
|
||||||
NB : Le numéro de port à utiliser pour la connection SFTP est celui utilisé pour le SSH, et configuré dans `/etc/ssh/sshd_config`.
|
|
||||||
|
|
||||||
Cette asctuce vous permet de mettre à jour automatiquement votre site. Par exemple, le makefile de l'outil Pelican vous permet d'utiliser `make ftp_upload`.
|
|
|
@ -1 +0,0 @@
|
||||||
default.md
|
|
|
@ -1 +0,0 @@
|
||||||
default.md
|
|
|
@ -1 +0,0 @@
|
||||||
default.md
|
|
|
@ -1,169 +0,0 @@
|
||||||
# <img src="/images/nextcloud_logo.png" alt="logo de Nextcloud"> Nextcloud
|
|
||||||
|
|
||||||
- [Découverte de l'environnement de Nextcloud](#EnvironnementNextcloud)
|
|
||||||
- [Logiciels Clients pour mobile et ordinateur](#LogicielsClients)
|
|
||||||
- [Manipulations & Problèmes rencontrés utiles](#ManipulationsUtiles)
|
|
||||||
- [Ajouter de l'espace à Nextcloud](#AjoutEspace)
|
|
||||||
- [Applications tiers](#AppsTiers)
|
|
||||||
- [Liens utiles](#liensutiles)
|
|
||||||
|
|
||||||
Nextcloud est un service d'hébergement de fichiers, de nombreuses applications peuvent être installées afin de lui offrir de nouvelles fonctionnalités tel qu'un agenda, un répertoire de contacts, des notes et pleins d'autres possibles (vous pouvez trouver quelques applications dans la partie [applications tiers](#AppsTiers) mais il en existe une multitude suivant vos besoins).
|
|
||||||
|
|
||||||
## Découverte de l'environnement de Nextcloud<a name="EnvironnementNextcloud" href=""></a>
|
|
||||||
|
|
||||||
Du fait de la constitution de Nextcloud, une base avec des applications tiers à installer, ce chapitre ne concernera que la base de nextcloud sans applications ajoutés. Plus d'informations sur les applications dans la partie dédiée ou sur le catalogue d'application de Nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com).
|
|
||||||
Nextcloud est avant tout un service de cloud (comme Seafile et d'autres logiciels), il permet une synchronisation et le partage de fichiers sur internet et entre plusieurs terminaux (ordinateurs, smartphone) mais aussi avec plusieurs personnes.
|
|
||||||
|
|
||||||
## Logiciels Clients<a name="LogicielsClients" href=""></a>
|
|
||||||
|
|
||||||
Il existe des logiciels clients pour de nombreux terminaux. Vous pouvez les retrouver sur le site de Nextcloud : [nextcloud.com/install/#install-clients](https://nextcloud.com/install/#install-clients)
|
|
||||||
|
|
||||||
## Manipulations utiles & problèmes rencontrés<a name="ManipulationsUtiles" href=""></a>
|
|
||||||
|
|
||||||
### Ajouter de l'espace à Nextcloud<a name="AjoutEspace" href=""></a>
|
|
||||||
|
|
||||||
La solution I. permet d'ajouter un lien vers un dossier local ou distant.
|
|
||||||
La solution II. permet de déplacer l'espace de stockage principal de Nextcloud.
|
|
||||||
|
|
||||||
#### I. Ajouter un espace de stockage externe
|
|
||||||
|
|
||||||
Paramètre => [Administration] Stockages externe.
|
|
||||||
|
|
||||||
En bas de la liste vous pouvez rajouter un dossier (Il est possible de définir un sous dossier en utilisant la convention `dossier/sousDossier`.)
|
|
||||||
Sélectionner un type de stockage et indiquez les information de connexion demandés.
|
|
||||||
Vous pouvez restreindre ce dossier à un ou plusieurs utilisateurs nextcloud avec la colonne `Disponible pour`.
|
|
||||||
Avec l'engrenage vous pouvez autoriser ou interdire la prévisualisation et le partage des fichiers.
|
|
||||||
Enfin cliquer sur la coche pour valider le dossier.
|
|
||||||
|
|
||||||
#### II. Migrer les données de Nextcloud dans une partition plus grosse
|
|
||||||
|
|
||||||
**Remarque** : Ce qui suit suppose que vous avez un disque dur monté sur `/media/stockage`. Référez-vous à [cet article](/external_storage) pour préparer votre système.
|
|
||||||
|
|
||||||
**Remarque** : Remplacez `nextcloud` par le nom de son instance, si vous avez plusieurs apps Nextcloud installées.
|
|
||||||
|
|
||||||
Commencez par éteindre le serveur web avec la commande :
|
|
||||||
```bash
|
|
||||||
systemctl stop nginx
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Choix de l'emplacement
|
|
||||||
|
|
||||||
**Cas A : Stockage vierge, exclusif à Nextcloud**
|
|
||||||
|
|
||||||
Pour l'instant seul root peut y écrire dans `/media/stockage` ; ce qui signifie que NGINX et Nextcloud ne pourront donc pas l'utiliser.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
chown -R nextcloud:nextcloud /media/stockage
|
|
||||||
chmod 775 -R /media/stockage
|
|
||||||
```
|
|
||||||
|
|
||||||
**Cas B : Stockage partagé, données déjà présentes, données Nextcloud dans un sous-dossier**
|
|
||||||
|
|
||||||
Si vous souhaitez utiliser ce disque pour d'autres applications, vous pouvez créer un sous-dossier appartenant à Nextcloud.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkdir -p /media/stockage/nextcloud_data
|
|
||||||
chown -R nextcloud /media/stockage/nextcloud_data
|
|
||||||
chmod 775 -R /media/stockage/nextcloud_data
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Migrer les données
|
|
||||||
|
|
||||||
Migrez vos données vers le nouveau disque. Pour ce faire *(soyez patient, cela peut être long)* :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
Cas A : cp -ir /home/yunohost.app/nextcloud /media/stockage
|
|
||||||
Cas B : cp -ir /home/yunohost.app/nextcloud /media/stockage/nextcloud_data
|
|
||||||
```
|
|
||||||
|
|
||||||
L'option `i` permet de vous demander quoi faire en cas de conflit de fichier, notamment si vous écrasez un ancien dossier de données Owncloud ou Nextcloud.
|
|
||||||
Pour vérifier que tout s'est bien passé, comparer ce qu'affichent ces deux commandes (le contenu doit être identique) :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ls -la /home/yunohost.app/nextcloud
|
|
||||||
|
|
||||||
Cas A : ls -al /media/stockage
|
|
||||||
Cas B : ls -al /media/stockage/nextcloud_data/nextcloud
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Configurer Nextcloud
|
|
||||||
|
|
||||||
Pour informer Nextcloud de son nouveau répertoire, modifiez le fichier `/var/www/nextcloud/config/config.php` avec la commande :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
nano /var/www/nextcloud/config/config.php
|
|
||||||
```
|
|
||||||
|
|
||||||
Cherchez la ligne :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
'datadirectory' => '/home/yunohost.app/nextcloud/data',
|
|
||||||
```
|
|
||||||
|
|
||||||
Que vous modifiez :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
CAS A : 'datadirectory' => '/media/stockage',
|
|
||||||
CAS B : 'datadirectory' => '/media/stockage/nextcloud_data/nextcloud/data',
|
|
||||||
```
|
|
||||||
|
|
||||||
Sauvegardez avec `ctrl+x` puis `y` ou `o` (dépend de la locale de votre serveur).
|
|
||||||
|
|
||||||
Relancez le serveur web :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
systemctl start nginx
|
|
||||||
```
|
|
||||||
|
|
||||||
Ajouter le fichier .ocdata
|
|
||||||
```bash
|
|
||||||
CAS A : nano /media/stockage/.ocdata
|
|
||||||
CAS B : nano /media/stockage/nextcloud_data/nextcloud/data/.ocdata
|
|
||||||
```
|
|
||||||
Ajouter un espace au fichier pour pouvoir le sauvegarder
|
|
||||||
|
|
||||||
Sauvegardez avec `ctrl+x` puis `y` ou `o` (dépend de la locale de votre serveur).
|
|
||||||
|
|
||||||
Lancez un scan du nouveau répertoire par Nextcloud:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd /var/www/nextcloud
|
|
||||||
sudo -u nextcloud php7.3 occ files:scan --all
|
|
||||||
```
|
|
||||||
|
|
||||||
C'est terminé. À présent testez si tout va bien, essayez de vous connecter à votre instance Nextcloud, envoyer un fichier, vérifiez sa bonne synchronisation.
|
|
||||||
|
|
||||||
|
|
||||||
### Nextcloud et Cloudflare
|
|
||||||
|
|
||||||
Si vous utilisez Cloudflare pour vos DNS, *ce qui peut-être pratique si vous avez une IP dynamique*, vous aurez très probablement des problèmes d'authentification avec l'application Nextcloud. Sur Internet beaucoup de gens proposent de créer une règle ayant pour effet de désactiver toutes les options reliées à la sécurité et à la vitesse de Cloudflare pour l'URL pointant sur votre instance Nextcloud. Bien que cela fonctionne, ce n'est pas la solution optimale. Je vous propose, certes de créer une règle pour l'URL pointant sur votre instance Nextcloud, mais de désactiver seulement 2 options. Voici donc comment :
|
|
||||||
|
|
||||||
#### Cloudflare Page Rules
|
|
||||||
|
|
||||||
Dans le panneau de contrôle de Cloudflare, choisissez votre domaine et trouvez Page Rules
|
|
||||||
l'URL dans votre barre d'addresse ressemblera à : https://dash.cloudflare.com/*/domain.tld/page-rules
|
|
||||||
|
|
||||||
#### Ajouter une règle
|
|
||||||
|
|
||||||
La règle à ajouter doit s'appliquer pour l'URL de votre instance Nextcloud soit :
|
|
||||||
- `https://nextcloud.domain.tld/*` si vous utilisez un sous-domaine
|
|
||||||
- `https://domain.tld/nextcloud/*` si vous avez déployé Nextcloud dans un répertoire
|
|
||||||
|
|
||||||
Les options à désactiver (Off) sont :
|
|
||||||
|
|
||||||
- Rocket Loader
|
|
||||||
- Email Obfuscation
|
|
||||||
|
|
||||||
Sauvegarder et nettoyer vos caches (Cloudflare, navigateur...) et le tour est joué.
|
|
||||||
|
|
||||||
## Applications Tiers<a name="AppsTiers" href=""></a>
|
|
||||||
|
|
||||||
+ [Calendrier](/app_nextcloud_calendar)
|
|
||||||
+ [Contact](/app_nextcloud_contact)
|
|
||||||
+ [KeeWeb](/app_nextcloud_keeweb)
|
|
||||||
+ [Carnet](/app_nextcloud_carnet)
|
|
||||||
|
|
||||||
## Quelques liens utiles<a name="liensutiles" href=""></a>
|
|
||||||
|
|
||||||
+ Site officiel : [nextcloud.com (en)](https://nextcloud.com/)
|
|
||||||
+ Catalogue d'application pour Nextcloud : [apps.nextcloud.com](https://apps.nextcloud.com/)
|
|
|
@ -1,29 +0,0 @@
|
||||||
# <img src="/images/piwigo_logo.png" width="80px" alt="Piwigo's logo"> Piwigo
|
|
||||||
|
|
||||||
[](https://install-app.yunohost.org/?app=piwigo) [](https://dash.yunohost.org/appci/app/piwigo)
|
|
||||||
|
|
||||||
### Index
|
|
||||||
|
|
||||||
- [Useful links](#useful-links)
|
|
||||||
|
|
||||||
[Piwigo](http://piwigo.org) is a photo gallery software for the Web, built by an active community of users and developers.
|
|
||||||
Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and opensource.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
In addition to Piwigo [core features](http://piwigo.org/basics/features), the following are made available with
|
|
||||||
this package:
|
|
||||||
|
|
||||||
* Integrate with YunoHost users and SSO:
|
|
||||||
* private mode: limit access to YunoHost users
|
|
||||||
* public mode:
|
|
||||||
* SSO for YunoHost users
|
|
||||||
* allow other users management, and guest mode
|
|
||||||
* Allow one YunoHost user to be the administrator (set at the installation)
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
* Report a bug: https://github.com/YunoHost-Apps/piwigo_ynh/issues
|
|
||||||
* Piwigo website: http://piwigo.org/
|
|
|
@ -1 +0,0 @@
|
||||||
Unfortunately, this page only exists [in french here](app_pleroma_fr) for now.
|
|
|
@ -1,23 +0,0 @@
|
||||||
# PluXml
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
PluXml is a blog/CMS storing data in XML and not in a SQL database.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Plugins and themes
|
|
||||||
|
|
||||||
Plugins and themes should respectively be installed in the following folders: `/var/www/pluxml/plugins`, `/var/www/pluxml/themes`.
|
|
||||||
|
|
||||||
## Backup
|
|
||||||
|
|
||||||
To restore your blog, you should keep a copy of the folder `/var/www/pluxml/data`. It is recommended to do this backup before any upgrade.
|
|
||||||
|
|
||||||
## Link
|
|
||||||
|
|
||||||
PluXml : https://www.pluxml.org/
|
|
||||||
Documentation : https://wiki.pluxml.org/
|
|
||||||
Forum : https://forum.pluxml.org/
|
|
|
@ -1,23 +0,0 @@
|
||||||
# PluXml
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
PluXml est un moteur de blog/CMS stockant ces données en XML et ne nécessitant pas de base de données SQL.
|
|
||||||
|
|
||||||
## Aperçu
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Plugins et thèmes
|
|
||||||
|
|
||||||
Les plugins et thèmes doivent être installés manuellement respectivement dans les dossiers `/var/www/pluxml/plugins` et `/var/www/pluxml/themes`.
|
|
||||||
|
|
||||||
## Sauvegarde
|
|
||||||
|
|
||||||
Pour sauvegarder votre blog, il est nécessaire de réaliser une copie du dossier `/var/www/pluxml/data`. Cette procédure de sauvegarde est également recommandée avant toute mise à jour de l'application.
|
|
||||||
|
|
||||||
## Liens
|
|
||||||
|
|
||||||
PluXml : https://www.pluxml.org/
|
|
||||||
Documentation : https://wiki.pluxml.org/
|
|
||||||
Forum : https://forum.pluxml.org/
|
|
|
@ -1 +0,0 @@
|
||||||
(This page only exists in french for now)
|
|
|
@ -1,38 +0,0 @@
|
||||||
# Upgrade your applications
|
|
||||||
|
|
||||||
Once you installed applications, you may need to upgrade them, sooner or later.
|
|
||||||
|
|
||||||
**Caution:** please be advised to backup your databases (using phpMyAdmin application for example) and files before any upgrade.
|
|
||||||
|
|
||||||
### Upgrade using the admin panel
|
|
||||||
Go to Tools > Update system
|
|
||||||
|
|
||||||
Once the applications packages list is retrieved, you will be able to update official applications that have a pending upgrade.
|
|
||||||
|
|
||||||
### Upgrade using command line
|
|
||||||
First, connect to your server through SSH and type in the following command (WordPress update):
|
|
||||||
```bash
|
|
||||||
yunohost app upgrade wordpress
|
|
||||||
```
|
|
||||||
**Note:** in case you have multiple instances of the same type (ex: 2 wordpress) installed, you will need to specify the instance name (ex: wordpress or wordpress__2).
|
|
||||||
|
|
||||||
#### Upgrade an unofficial application
|
|
||||||
Specify the Git repository containing the upgrade.
|
|
||||||
|
|
||||||
For intance, to upgrade LimeSurvey:
|
|
||||||
```bash
|
|
||||||
yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh
|
|
||||||
```
|
|
||||||
|
|
||||||
**Note:** be cautious when installing unofficial applications and upgrades. Be sure that theses updates are stables and are not a step in the development process. There may be a good reason if an application is not listed in the official repository.
|
|
||||||
|
|
||||||
**Caution:** be sure to check the content of any update; installing or upgrading an unofficial application allows it to run scripts with the highest privileges.
|
|
||||||
|
|
||||||
#### Command line options
|
|
||||||
|
|
||||||
When upgrading apps from the command line, you can specify specific options to change the behaviour of the upgrade script.
|
|
||||||
To set those options, set the corresponding variable before the upgrade command: `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress`
|
|
||||||
|
|
||||||
Available options are:
|
|
||||||
- `NO_BACKUP_UPGRADE`: Do not perform the backup before the upgrade. Which means the upgrade will be operated without a security backup.
|
|
||||||
- `YNH_FORCE_UPGRADE`: Force the upgrade of the app and the package, even if the app is already up to date.
|
|
|
@ -1,39 +0,0 @@
|
||||||
#Mettre à jour ses applications
|
|
||||||
|
|
||||||
Une fois que vous avez installé des applications, il est nécessaire de les mettre à jour. Plusieurs méthodes existent et sont détaillées ci-dessous.
|
|
||||||
|
|
||||||
** Attention : ** il est recommandé de faire une sauvegarde de la base de données (par exemple via l’application [phpMyAdmin](https://github.com/YunoHost-apps/phpmyadmin_ynh) ([installer](https://install-app.yunohost.org/?app=phpmyadmin))) ainsi que des fichiers avant une opération de mise à jour.
|
|
||||||
|
|
||||||
### Mise à jour par l’interface Web
|
|
||||||
Pour cela, il faut aller dans l’onglet "Mettre à jour le système".
|
|
||||||
|
|
||||||
Une fois la liste des paquets et des applications rafraîchie, il sera proposé de mettre à jour les applications et paquets qui peuvent l’être.
|
|
||||||
|
|
||||||
|
|
||||||
### Mise à jour en ligne de commande
|
|
||||||
Il faut d’abord se connecter sur le serveur en SSH, puis entrer la commande suivante (dans le cas d’une mise à jour WordPress) :
|
|
||||||
```bash
|
|
||||||
yunohost app upgrade wordpress
|
|
||||||
```
|
|
||||||
**Note :** dans le cas où plusieurs applications du même type (ex : deux WordPress) sont installées sur le serveur, il est nécessaire de spécifier le nom d’instance (ex : wordpress ou wordpress__2).
|
|
||||||
|
|
||||||
#### Mise à jour d’une application non officielle
|
|
||||||
Il faut pour cela indiquer le dépôt Git qui contient la mise à jour.
|
|
||||||
|
|
||||||
Par exemple, pour mettre à jour LimeSurvey, entrer :
|
|
||||||
```bash
|
|
||||||
yunohost app upgrade limesurvey -u https://github.com/zamentur/limesurvey_ynh
|
|
||||||
```
|
|
||||||
|
|
||||||
**Note :** faites attention aux applications/mises à jour non officielles que vous installez. Assurez-vous que ces mises à jour sont stables et ne constituent pas une étape de développement. Si une application ou une mise à jour n’est pas intégrée au dépôt officiel, il y a sûrement une raison.
|
|
||||||
|
|
||||||
**Attention :** assurez-vous du contenu de cette mise à jour ; l’installation ou la mise à jour d’une application non officielle permet à cette dernière d’exécuter des scripts avec les privilèges les plus élevés. Si le script est malicieux, il pourrait nuire à votre vie privée en communiquant à des tiers toute donnée présente sur le serveur, ou bien les détruire irrémédiablement.
|
|
||||||
|
|
||||||
##### Options de ligne de commande
|
|
||||||
|
|
||||||
Lorsque vous mettez à jour des applications à partir de la ligne de commande, vous pouvez spécifier des options spécifiques pour modifier le comportement du script d'upgrade.
|
|
||||||
Pour définir ces options, définissez la variable correspondante avant la commande d'upgrade : `sudo OPTION_TO_SET=1 yunohost app upgrade wordpress`
|
|
||||||
|
|
||||||
Les options disponibles sont:
|
|
||||||
- `NO_BACKUP_UPGRADE`: Ne pas effectuer le backup avant la mise à jour. Ce qui veut dire que la mise à jour se fera sans sauvegarde de sécurité.
|
|
||||||
- `YNH_FORCE_UPGRADE`: Force la mise à jour de l'application et du package, même si l'application est déjà à jour.
|
|
|
@ -1,5 +0,0 @@
|
||||||
# Yunofav: (unofficial) Page of favorite links for YunoHost
|
|
||||||
|
|
||||||
homepage: https://github.com/YunoHost-Apps/yunofav_ynh
|
|
||||||
|
|
||||||
Functionality: Creates a page for your favorite links, using the YunoHost tiles look and feel.
|
|
|
@ -1,6 +0,0 @@
|
||||||
# Yunofav : (non officiel) Page de liens favoris pour YunoHost
|
|
||||||
|
|
||||||
page d'accueil : https://github.com/YunoHost-Apps/yunofav_ynh
|
|
||||||
|
|
||||||
|
|
||||||
Fonctionnalité : Crée une page pour vos liens préférés, en utilisant le style et le fonctionnement des tuiles YunoHost.
|
|
379
apps.md
|
@ -1,379 +0,0 @@
|
||||||
# Application catalog
|
|
||||||
|
|
||||||
<span class="javascriptDisclaimer">
|
|
||||||
This page requires JavaScript enabled to display properly :s.
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Search bar
|
|
||||||
-->
|
|
||||||
|
|
||||||
<div class="input-group">
|
|
||||||
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
|
|
||||||
<input id="filter-app-cards" type="text" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
|
|
||||||
<div class="input-group-btn">
|
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<span id="current-quality-filter" data-filter="decent">Only decent quality apps</span> <span class="caret"></span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="#" data-quality-filter="high">Only high quality apps</a></li>
|
|
||||||
<li><a href="#" data-quality-filter="decent">Only decent quality apps</a></li>
|
|
||||||
<li><a href="#" data-quality-filter="working">Only working apps</a></li>
|
|
||||||
<li><a href="#" data-quality-filter="none">All apps</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Disclaimers
|
|
||||||
-->
|
|
||||||
|
|
||||||
<div class="alert alert-info">The application packaging team will welcome your feedback! If you install an app and find issues or possible improvements, do not hesitate to contribute by reporting your issues directly on the corresponding code repositories.</div>
|
|
||||||
|
|
||||||
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
|
|
||||||
Applications flagged as <span class="label label-warning label-as-badge">low quality</span> may be working, but they may not respect good packaging practices or lack integration of some features like backup/restore or single authentication. Be cautious when installing them.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="broken-apps-disclaimer" class="alert alert-danger">
|
|
||||||
Applications flagged as <span class="label label-danger label-as-badge">not working</span> are known to be broken and/or are still in development. **Do not install them** in a production environment!
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="app-cards-list" class="app-cards-list"></div>
|
|
||||||
|
|
||||||
<div class="alert alert-warning">If you don't find the app you are looking for, you can try to look for a appname_ynh repository on GitHub or on the internet, or add it to the <a href="/apps_wishlist">apps wishlist</a>.</div>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Custom CSS for this page
|
|
||||||
-->
|
|
||||||
|
|
||||||
<style>
|
|
||||||
#wrapper {
|
|
||||||
max-width: 1100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*=================================================
|
|
||||||
Search bar
|
|
||||||
=================================================*/
|
|
||||||
#filter-app-cards, #app-cards-list {
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
/*===============================================*/
|
|
||||||
|
|
||||||
/*=================================================
|
|
||||||
Force return space after card list
|
|
||||||
=================================================*/
|
|
||||||
#app-cards-list:after {
|
|
||||||
content:'';
|
|
||||||
display:block;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
/*===============================================*/
|
|
||||||
|
|
||||||
/*=================================================
|
|
||||||
App card
|
|
||||||
=================================================*/
|
|
||||||
|
|
||||||
.app-card {
|
|
||||||
margin-bottom:20px;
|
|
||||||
width:31.2%;
|
|
||||||
float:left;
|
|
||||||
min-height: 1px;
|
|
||||||
margin-right: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
border-radius: 3px;
|
|
||||||
position: relative;
|
|
||||||
height: 230px;
|
|
||||||
}
|
|
||||||
.app-title {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
font-size: 1.2em;
|
|
||||||
font-weight: 700;
|
|
||||||
line-height: 1.1;
|
|
||||||
color: black;
|
|
||||||
padding: 15px;
|
|
||||||
padding-bottom: 0;
|
|
||||||
}
|
|
||||||
.app-title .label {
|
|
||||||
font-size: 0.5em;
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
padding: 0.5em 0.6em;
|
|
||||||
padding-bottom: 0.3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-epic {
|
|
||||||
background-color: darkorchid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-descr {
|
|
||||||
height:100px;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-footer {
|
|
||||||
width:100%;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-maintainer {
|
|
||||||
font-size: 0.7em;
|
|
||||||
text-align: right;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-card .unmaintained {
|
|
||||||
color: #e0aa33;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*===============================================
|
|
||||||
App buttons
|
|
||||||
=================================================*/
|
|
||||||
.app-buttons {
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
.app-buttons > .btn {
|
|
||||||
border-bottom:0;
|
|
||||||
font-size: 0.9em;
|
|
||||||
line-height: 1.58;
|
|
||||||
}
|
|
||||||
.app-buttons > .btn:first-child {
|
|
||||||
border-left:0;
|
|
||||||
border-top-left-radius:0;
|
|
||||||
}
|
|
||||||
.app-buttons > .btn:last-child {
|
|
||||||
border-right:0;
|
|
||||||
border-top-right-radius:0;
|
|
||||||
margin-left: 0px;
|
|
||||||
width: 33.6%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*===============================================*/
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
App card template
|
|
||||||
-->
|
|
||||||
|
|
||||||
<script type="text/template" id="app-template2">
|
|
||||||
<div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
|
|
||||||
|
|
||||||
<div class="app-title">{app_name}</div>
|
|
||||||
<div class="app-descr">{app_description}</div>
|
|
||||||
<div class="app-footer">
|
|
||||||
<div class="app-maintainer">
|
|
||||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
|
||||||
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
|
|
||||||
</div>
|
|
||||||
<div class="app-buttons btn-group" role="group">
|
|
||||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
|
||||||
<a href="#/app_{app_id}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
|
||||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Javascript helpers
|
|
||||||
-->
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
function timeConverter(UNIX_timestamp) {
|
|
||||||
var a = new Date(UNIX_timestamp*1000);
|
|
||||||
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
|
|
||||||
var year = a.getFullYear();
|
|
||||||
var month = months[a.getMonth()];
|
|
||||||
var date = a.getDate();
|
|
||||||
var hour = a.getHours();
|
|
||||||
var min = a.getMinutes();
|
|
||||||
if (hour < 10) { hour = '0' + hour; }
|
|
||||||
if (min < 10) { min = '0' + min; }
|
|
||||||
var time = date+' '+month+' '+year;//+' at '+hour+':'+min
|
|
||||||
return time;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$(document).ready(function () {
|
|
||||||
|
|
||||||
var default_lang = "en";
|
|
||||||
|
|
||||||
// Hide warrant about states when we're using the default filter
|
|
||||||
$('#state-disclaimer').hide();
|
|
||||||
var quality_filters = "decent";
|
|
||||||
|
|
||||||
function filter(){
|
|
||||||
|
|
||||||
var current_quality_filter = $('#current-quality-filter').data("filter");
|
|
||||||
var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
|
|
||||||
|
|
||||||
$('.app-card').each(function() {
|
|
||||||
// This is where we actually define how apps are filtered:
|
|
||||||
// we look for the name of the app (h3) and try to find the user input
|
|
||||||
// + we check this app match the current quality filter
|
|
||||||
var text = $(this).find('.app-title').text().toLowerCase() + " " + $(this).find('.app-descr').text().toLowerCase();
|
|
||||||
if (text.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
|
|
||||||
{
|
|
||||||
$(this).show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$(this).hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Display or hide the disclaimers depending on the current filter...
|
|
||||||
((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
|
|
||||||
((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
//=================================================
|
|
||||||
// Search & filter bar event
|
|
||||||
//=================================================
|
|
||||||
$('#filter-app-cards').keyup(filter);
|
|
||||||
|
|
||||||
$('a[data-quality-filter]').on("click", function(){
|
|
||||||
$('#current-quality-filter').text($(this).text());
|
|
||||||
$('#current-quality-filter').data("filter", $(this).data("quality-filter"));
|
|
||||||
filter();
|
|
||||||
});
|
|
||||||
|
|
||||||
filter();
|
|
||||||
|
|
||||||
//=================================================
|
|
||||||
// Upload apps lists
|
|
||||||
//=================================================
|
|
||||||
var catalog = undefined;
|
|
||||||
|
|
||||||
// Fetch application catalog
|
|
||||||
|
|
||||||
$.getJSON('https://app.yunohost.org/default/v2/apps.json', {}, function(data) {
|
|
||||||
|
|
||||||
catalog = $.map(data["apps"], function(el) { return el; });
|
|
||||||
|
|
||||||
// Clarify high quality state, and level if undefined or inprogress or notworking...
|
|
||||||
|
|
||||||
$.each(catalog, function(k, infos) {
|
|
||||||
if ((infos.level === undefined) || (infos.level === 0) || (infos.state === "inprogress") || (infos.state === "notworking")) {
|
|
||||||
infos.level = null;
|
|
||||||
}
|
|
||||||
if ((infos.high_quality === true) && (infos.level === 8)) {
|
|
||||||
infos.state = "high quality";
|
|
||||||
}
|
|
||||||
else if ((infos.state === "working") && (infos.level !== null) && (infos.level <= 4)) {
|
|
||||||
infos.state = "low quality";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Sort apps according to their state and level...
|
|
||||||
|
|
||||||
catalog.sort(function(a, b){
|
|
||||||
a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
|
|
||||||
b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
|
|
||||||
if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
|
|
||||||
else if (a.manifest.id == b.manifest.id) {return 0;}
|
|
||||||
return -1;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add the card for each app
|
|
||||||
|
|
||||||
$.each(catalog, function(k, infos) {
|
|
||||||
|
|
||||||
app_id = infos.manifest.id;
|
|
||||||
|
|
||||||
// Define what style to use for state, level and install button
|
|
||||||
// according to the app quality ....
|
|
||||||
|
|
||||||
if (infos.state === "high quality") {
|
|
||||||
app_quality = "high,decent,working,none";
|
|
||||||
app_badge = "high quality";
|
|
||||||
app_badge_css_style = "epic";
|
|
||||||
app_install_css_style = "success";
|
|
||||||
} else if ((infos.state === "working") && (infos.level > 4)) {
|
|
||||||
app_quality = "decent,working,none";
|
|
||||||
app_badge = null;
|
|
||||||
app_badge_css_style = "success";
|
|
||||||
app_install_css_style = "success";
|
|
||||||
} else if (infos.state === "low quality") {
|
|
||||||
app_quality = "working,none";
|
|
||||||
app_badge = "low quality";
|
|
||||||
app_badge_css_style = "warning";
|
|
||||||
app_install_css_style = "warning";
|
|
||||||
} else {
|
|
||||||
app_quality = "none";
|
|
||||||
app_badge = "not working";
|
|
||||||
app_badge_css_style = "danger";
|
|
||||||
app_install_css_style = "danger";
|
|
||||||
}
|
|
||||||
|
|
||||||
// If level is null, we wanna display '?'
|
|
||||||
if (infos.level == null) {
|
|
||||||
infos.level = '?';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fill the template
|
|
||||||
html = $('#app-template2').html()
|
|
||||||
.replace(/{app_id}/g, app_id)
|
|
||||||
.replace(/{app_name}/g, infos.manifest.name)
|
|
||||||
.replace('{app_description}', infos.manifest.description[default_lang] || infos.manifest.description["en"])
|
|
||||||
.replace(/{app_git}/g, infos.git.url)
|
|
||||||
.replace('{app_branch}', infos.git.branch)
|
|
||||||
.replace('{app_level}', infos.level)
|
|
||||||
.replace('{app_quality}', app_quality)
|
|
||||||
.replace('{app_update}', timeConverter(infos.lastUpdate))
|
|
||||||
.replace('{app_install_css_style}', app_install_css_style);
|
|
||||||
|
|
||||||
// Handle the maintainer info
|
|
||||||
if (infos.maintained == false)
|
|
||||||
{
|
|
||||||
html = html
|
|
||||||
.replace('{maintained_state}', 'unmaintained')
|
|
||||||
.replace('{maintained_icon}', 'warning-sign')
|
|
||||||
.replace('{app_maintainer}', "Unmaintained")
|
|
||||||
.replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
html = html
|
|
||||||
.replace('{maintained_state}', 'maintained')
|
|
||||||
.replace('{maintained_icon}', 'user')
|
|
||||||
.replace('{maintained_help}', "Current maintainer of this package");
|
|
||||||
|
|
||||||
if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
|
|
||||||
html = html.replace('{app_maintainer}', infos.manifest.developer.name);
|
|
||||||
}
|
|
||||||
else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
|
|
||||||
html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
html = html.replace('{app_maintainer}', "???");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fill the template
|
|
||||||
$('#app-cards-list').append(html);
|
|
||||||
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
|
|
||||||
if (app_badge !== null) {
|
|
||||||
$('.app-card_'+ app_id + ' .app-title').append(' <span class="label label-'+app_badge_css_style+'">'+app_badge+'</span>');
|
|
||||||
}
|
|
||||||
if (typeof(infos.category) === "string") {
|
|
||||||
category = data["categories"].find(function(el) { return el.id == infos.category; });
|
|
||||||
if (typeof(category) !== "undefined")
|
|
||||||
{
|
|
||||||
display = category["title"][default_lang] || category["title"]["en"];
|
|
||||||
$('.app-card_'+ app_id + ' .app-title').append(' <span class="label label-default">'+display.toLowerCase()+'</span>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
filter();
|
|
||||||
});
|
|
||||||
//=================================================
|
|
||||||
});
|
|
||||||
</script>
|
|
378
apps_fr.md
|
@ -1,378 +0,0 @@
|
||||||
# Catalogue d’applications
|
|
||||||
|
|
||||||
<span class="javascriptDisclaimer">
|
|
||||||
Cette page requiert que JavaScript soit activé pour s'afficher correctement :s.
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Search bar
|
|
||||||
-->
|
|
||||||
<div class="input-group">
|
|
||||||
<span id="basic-addon1" class="input-group-addon" ><span class="glyphicon glyphicon-search"></span></span>
|
|
||||||
<input id="filter-app-cards" type="text" class="form-control" placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
|
|
||||||
<div class="input-group-btn">
|
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<span id="current-quality-filter" data-filter="decent">Seulement les apps de qualité décente</span> <span class="caret"></span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="#" data-quality-filter="high">Seulement les apps haute-qualité</a></li>
|
|
||||||
<li><a href="#" data-quality-filter="decent">Seulement les apps de qualité décente</a></li>
|
|
||||||
<li><a href="#" data-quality-filter="working">Seulement les apps fonctionelles</a></li>
|
|
||||||
<li><a href="#" data-quality-filter="none">Toutes les apps</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Disclaimers
|
|
||||||
-->
|
|
||||||
|
|
||||||
<div class="alert alert-info">L'équipe de packaging d'applications sera heureuse de recevoir vos commentaires ! Si vous trouvez des problèmes ou des améliorations possibles en installant une app, n'hésitez pas à contribuer en créant un ticket (issue) directement sur le dépôt de code.</div>
|
|
||||||
|
|
||||||
<div id="bad-quality-apps-disclaimer" class="alert alert-warning">
|
|
||||||
Les applications étiquettées <span class="label label-warning label-as-badge">low quality</span> fonctionnent peut-être, mais ne respectent pas les bonnes pratiques de packaging ou ne supportent pas certaines fonctionnalités comme les sauvegardes/restauration ou l'authentication unifiée. Soyez prudent si vous les installez.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="broken-apps-disclaimer" class="alert alert-danger">
|
|
||||||
Les applications étiquettées <span class="label label-danger label-as-badge">not working</span> sont connues pour être cassées et/ou encore en développement. **Ne les installez pas** sur un serveur de production !
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="app-cards-list" class="app-cards-list"></div>
|
|
||||||
|
|
||||||
<div class="alert alert-warning">Si vous ne trouvez pas une application précise que vous recherchez, vous pouvez chercher un dépôt nommé nomdelapp_ynh sur GitHub ou internet, ou bien l'ajouter à la <a href="/apps_wishlist">liste d'apps souhaitées</a>.</div>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Custom CSS for this page
|
|
||||||
-->
|
|
||||||
|
|
||||||
<style>
|
|
||||||
#wrapper {
|
|
||||||
max-width: 1100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*=================================================
|
|
||||||
Search bar
|
|
||||||
=================================================*/
|
|
||||||
#filter-app-cards, #app-cards-list {
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
/*===============================================*/
|
|
||||||
|
|
||||||
/*=================================================
|
|
||||||
Force return space after card list
|
|
||||||
=================================================*/
|
|
||||||
#app-cards-list:after {
|
|
||||||
content:'';
|
|
||||||
display:block;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
/*===============================================*/
|
|
||||||
|
|
||||||
/*=================================================
|
|
||||||
App card
|
|
||||||
=================================================*/
|
|
||||||
|
|
||||||
.app-card {
|
|
||||||
margin-bottom:20px;
|
|
||||||
width:31.2%;
|
|
||||||
float:left;
|
|
||||||
min-height: 1px;
|
|
||||||
margin-right: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
border-radius: 3px;
|
|
||||||
position: relative;
|
|
||||||
height: 230px;
|
|
||||||
}
|
|
||||||
.app-title {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
font-size: 1.2em;
|
|
||||||
font-weight: 700;
|
|
||||||
line-height: 1.1;
|
|
||||||
color: black;
|
|
||||||
padding: 15px;
|
|
||||||
padding-bottom: 0;
|
|
||||||
}
|
|
||||||
.app-title .label {
|
|
||||||
font-size: 0.5em;
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
padding: 0.5em 0.6em;
|
|
||||||
padding-bottom: 0.3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-epic {
|
|
||||||
background-color: darkorchid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-descr {
|
|
||||||
height:100px;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-footer {
|
|
||||||
width:100%;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-maintainer {
|
|
||||||
font-size: 0.7em;
|
|
||||||
text-align: right;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-card .unmaintained {
|
|
||||||
color: #e0aa33;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*===============================================
|
|
||||||
App buttons
|
|
||||||
=================================================*/
|
|
||||||
.app-buttons {
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
.app-buttons > .btn {
|
|
||||||
border-bottom:0;
|
|
||||||
font-size: 0.9em;
|
|
||||||
line-height: 1.58;
|
|
||||||
}
|
|
||||||
.app-buttons > .btn:first-child {
|
|
||||||
border-left:0;
|
|
||||||
border-top-left-radius:0;
|
|
||||||
}
|
|
||||||
.app-buttons > .btn:last-child {
|
|
||||||
border-right:0;
|
|
||||||
border-top-right-radius:0;
|
|
||||||
margin-left: 0px;
|
|
||||||
width: 33.6%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*===============================================*/
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
App card template
|
|
||||||
-->
|
|
||||||
|
|
||||||
<script type="text/template" id="app-template2">
|
|
||||||
<div class="app-card_{app_id} app-card panel panel-default" data-quality="{app_quality}">
|
|
||||||
|
|
||||||
<div class="app-title">{app_name}</div>
|
|
||||||
<div class="app-descr">{app_description}</div>
|
|
||||||
<div class="app-footer">
|
|
||||||
<div class="app-maintainer">
|
|
||||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
|
||||||
<span title="{maintained_help}" class="{maintained_state}"><span class="glyphicon glyphicon-{maintained_icon}"></span> {app_maintainer}</span>
|
|
||||||
</div>
|
|
||||||
<div class="app-buttons btn-group" role="group">
|
|
||||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
|
||||||
<a href="#/app_{app_id}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
|
||||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_css_style} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Javascript helpers
|
|
||||||
-->
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
function timeConverter(UNIX_timestamp) {
|
|
||||||
var a = new Date(UNIX_timestamp*1000);
|
|
||||||
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
|
|
||||||
var year = a.getFullYear();
|
|
||||||
var month = months[a.getMonth()];
|
|
||||||
var date = a.getDate();
|
|
||||||
var hour = a.getHours();
|
|
||||||
var min = a.getMinutes();
|
|
||||||
if (hour < 10) { hour = '0' + hour; }
|
|
||||||
if (min < 10) { min = '0' + min; }
|
|
||||||
var time = date+' '+month+' '+year;//+' at '+hour+':'+min
|
|
||||||
return time;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$(document).ready(function () {
|
|
||||||
|
|
||||||
var default_lang = "fr";
|
|
||||||
|
|
||||||
// Hide warrant about states when we're using the default filter
|
|
||||||
$('#state-disclaimer').hide();
|
|
||||||
var quality_filters = "decent";
|
|
||||||
|
|
||||||
function filter(){
|
|
||||||
|
|
||||||
var current_quality_filter = $('#current-quality-filter').data("filter");
|
|
||||||
var user_input_in_search_field = $('#filter-app-cards').val().toLowerCase();
|
|
||||||
|
|
||||||
$('.app-card').each(function() {
|
|
||||||
// This is where we actually define how apps are filtered:
|
|
||||||
// we look for the name of the app (h3) and try to find the user input
|
|
||||||
// + we check this app match the current quality filter
|
|
||||||
var text = $(this).find('.app-title').text().toLowerCase() + " " + $(this).find('.app-descr').text().toLowerCase();
|
|
||||||
if (text.indexOf(user_input_in_search_field) >= 0 && $(this).data("quality").indexOf(current_quality_filter) >= 0)
|
|
||||||
{
|
|
||||||
$(this).show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$(this).hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Display or hide the disclaimers depending on the current filter...
|
|
||||||
((current_quality_filter == "working") || (current_quality_filter == "none")) ? $("#bad-quality-apps-disclaimer").show() : $("#bad-quality-apps-disclaimer").hide();
|
|
||||||
((current_quality_filter == "none")) ? $("#broken-apps-disclaimer").show() : $("#broken-apps-disclaimer").hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
//=================================================
|
|
||||||
// Search & filter bar event
|
|
||||||
//=================================================
|
|
||||||
$('#filter-app-cards').keyup(filter);
|
|
||||||
|
|
||||||
$('a[data-quality-filter]').on("click", function(){
|
|
||||||
$('#current-quality-filter').text($(this).text());
|
|
||||||
$('#current-quality-filter').data("filter", $(this).data("quality-filter"));
|
|
||||||
filter();
|
|
||||||
});
|
|
||||||
|
|
||||||
filter();
|
|
||||||
|
|
||||||
//=================================================
|
|
||||||
// Upload apps lists
|
|
||||||
//=================================================
|
|
||||||
var catalog = undefined;
|
|
||||||
|
|
||||||
// Fetch application catalog
|
|
||||||
|
|
||||||
$.getJSON('https://app.yunohost.org/default/v2/apps.json', {}, function(data) {
|
|
||||||
|
|
||||||
catalog = $.map(data["apps"], function(el) { return el; });
|
|
||||||
|
|
||||||
// Clarify high quality state, and level if undefined or inprogress or notworking...
|
|
||||||
|
|
||||||
$.each(catalog, function(k, infos) {
|
|
||||||
if ((infos.level === undefined) || (infos.level === 0) || (infos.state === "inprogress") || (infos.state === "notworking")) {
|
|
||||||
infos.level = null;
|
|
||||||
}
|
|
||||||
if ((infos.high_quality === true) && (infos.level === 8)) {
|
|
||||||
infos.state = "high quality";
|
|
||||||
}
|
|
||||||
else if ((infos.state === "working") && (infos.level !== null) && (infos.level <= 4)) {
|
|
||||||
infos.state = "low quality";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Sort apps according to their state and level...
|
|
||||||
|
|
||||||
catalog.sort(function(a, b){
|
|
||||||
a_state = (a.state === "high quality")?4:(a.level > 4)?3:(a.state > 0)?2:1;
|
|
||||||
b_state = (b.state === "high quality")?4:(b.level > 4)?3:(b.state > 0)?2:1;
|
|
||||||
if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
|
|
||||||
else if (a.manifest.id == b.manifest.id) {return 0;}
|
|
||||||
return -1;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add the card for each app
|
|
||||||
|
|
||||||
$.each(catalog, function(k, infos) {
|
|
||||||
|
|
||||||
app_id = infos.manifest.id;
|
|
||||||
|
|
||||||
// Define what style to use for state, level and install button
|
|
||||||
// according to the app quality ....
|
|
||||||
|
|
||||||
if (infos.state === "high quality") {
|
|
||||||
app_quality = "high,decent,working,none";
|
|
||||||
app_badge = "high quality";
|
|
||||||
app_badge_css_style = "epic";
|
|
||||||
app_install_css_style = "success";
|
|
||||||
} else if ((infos.state === "working") && (infos.level > 4)) {
|
|
||||||
app_quality = "decent,working,none";
|
|
||||||
app_badge = null;
|
|
||||||
app_badge_css_style = "success";
|
|
||||||
app_install_css_style = "success";
|
|
||||||
} else if (infos.state === "low quality") {
|
|
||||||
app_quality = "working,none";
|
|
||||||
app_badge = "low quality";
|
|
||||||
app_badge_css_style = "warning";
|
|
||||||
app_install_css_style = "warning";
|
|
||||||
} else {
|
|
||||||
app_quality = "none";
|
|
||||||
app_badge = "not working";
|
|
||||||
app_badge_css_style = "danger";
|
|
||||||
app_install_css_style = "danger";
|
|
||||||
}
|
|
||||||
|
|
||||||
// If level is null, we wanna display '?'
|
|
||||||
if (infos.level == null) {
|
|
||||||
infos.level = '?';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fill the template
|
|
||||||
html = $('#app-template2').html()
|
|
||||||
.replace(/{app_id}/g, app_id)
|
|
||||||
.replace(/{app_name}/g, infos.manifest.name)
|
|
||||||
.replace('{app_description}', infos.manifest.description[default_lang] || infos.manifest.description["en"])
|
|
||||||
.replace(/{app_git}/g, infos.git.url)
|
|
||||||
.replace('{app_branch}', infos.git.branch)
|
|
||||||
.replace('{app_level}', infos.level)
|
|
||||||
.replace('{app_quality}', app_quality)
|
|
||||||
.replace('{app_update}', timeConverter(infos.lastUpdate))
|
|
||||||
.replace('{app_install_css_style}', app_install_css_style);
|
|
||||||
|
|
||||||
// Handle the maintainer info
|
|
||||||
if (infos.maintained == false)
|
|
||||||
{
|
|
||||||
html = html
|
|
||||||
.replace('{maintained_state}', 'unmaintained')
|
|
||||||
.replace('{maintained_icon}', 'warning-sign')
|
|
||||||
.replace('{app_maintainer}', "Unmaintained")
|
|
||||||
.replace('{maintained_help}', "This package is currently unmaintained. Feel free to propose yourself as the new maintainer !");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
html = html
|
|
||||||
.replace('{maintained_state}', 'maintained')
|
|
||||||
.replace('{maintained_icon}', 'user')
|
|
||||||
.replace('{maintained_help}', "Current maintainer of this package");
|
|
||||||
|
|
||||||
if ((infos.manifest.developer) && (infos.manifest.developer.name)) {
|
|
||||||
html = html.replace('{app_maintainer}', infos.manifest.developer.name);
|
|
||||||
}
|
|
||||||
else if ((infos.manifest.maintainer) && (infos.manifest.maintainer.name)) {
|
|
||||||
html = html.replace('{app_maintainer}', infos.manifest.maintainer.name);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
html = html.replace('{app_maintainer}', "???");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fill the template
|
|
||||||
$('#app-cards-list').append(html);
|
|
||||||
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
|
|
||||||
if (app_badge !== null) {
|
|
||||||
$('.app-card_'+ app_id + ' .app-title').append(' <span class="label label-'+app_badge_css_style+'">'+app_badge+'</span>');
|
|
||||||
}
|
|
||||||
if (typeof(infos.category) === "string") {
|
|
||||||
category = data["categories"].find(function(el) { return el.id == infos.category; });
|
|
||||||
if (typeof(category) !== "undefined")
|
|
||||||
{
|
|
||||||
display = category["title"][default_lang] || category["title"]["en"];
|
|
||||||
$('.app-card_'+ app_id + ' .app-title').append(' <span class="label label-default">'+display.toLowerCase()+'</span>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
filter();
|
|
||||||
});
|
|
||||||
//=================================================
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1 +0,0 @@
|
||||||
Unfortunately, this page only exists [in french here](apps_framasoft_fr) for now.
|
|
|
@ -1,48 +0,0 @@
|
||||||
# Équivalence avec les applications Framasoft
|
|
||||||
|
|
||||||
| App Framasoft | Équivalent | Package |
|
|
||||||
| :---: | :---: | :---: |
|
|
||||||
| Framabag | Wallabag | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wallabag2_ynh)   |
|
|
||||||
| Framabee | Searx | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/searx_ynh)   |
|
|
||||||
| Framabin | PrivateBin | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/zerobin_ynh)   |
|
|
||||||
| Framaboard | Kanboard | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/kanboard_ynh)   |
|
|
||||||
| Framabookin | BicBucStriim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/bicbucstriim_ynh)   |
|
|
||||||
| Framacalc | Ethercalc | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/ethercalc_ynh)   |
|
|
||||||
| Framacarte | uMap | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/umap_ynh)   |
|
|
||||||
| Framaclic | Matomo | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/matomo_ynh)   |
|
|
||||||
| Framadate | OpenSondage | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/opensondage_ynh)   |
|
|
||||||
| Framadrive | Nextcloud | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/nextcloud_ynh)   |
|
|
||||||
| Framadrop | Lufi | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lufi_ynh)   |
|
|
||||||
| Framaestro | Framaestro | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaestro_ynh)   |
|
|
||||||
| Framaforms | Framaforms | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framaforms_ynh)   |
|
|
||||||
| Framagames | Framagames | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/framagames_ynh)   |
|
|
||||||
| Framagenda | (Agenda Nextcloud) | c.f. Nextcloud |
|
|
||||||
| Framagit | GitLab | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gitlab_ynh)   |
|
|
||||||
| | Gogs | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/gogs_ynh)   |
|
|
||||||
| Frama.link | Lstu | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lstu_ynh)   |
|
|
||||||
| Framalistes | Mailman | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mailman_ynh)   |
|
|
||||||
| | Sympa | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/alexAubin/sympa_ynh)   |
|
|
||||||
| Framanews | TinyTinyRSS | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-apps/ttrss_ynh)   |
|
|
||||||
| Framanotes | Turtl | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/turtl_ynh)   |
|
|
||||||
| Framapad | Etherpad + mypads | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/etherpad_mypads_ynh)   |
|
|
||||||
| Framapiaf | Mastodon | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mastodon_ynh)   |
|
|
||||||
| Framapic | Lutim | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/lutim_ynh)   |
|
|
||||||
| Framasites | Grav | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/grav_ynh)   |
|
|
||||||
| Framaslides | Strut | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/strut_ynh)   |
|
|
||||||
| Framasphère | Diaspora | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/aymhce/diaspora_ynh)   |
|
|
||||||
| Framatalk | Jitsi Meet | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/jitsi_ynh)   |
|
|
||||||
| Framateam | Mattermost | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/mattermost_ynh)   |
|
|
||||||
| Framatrad | ? | Non packagé |
|
|
||||||
| Framatube | Peertube | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/peertube_ynh)   |
|
|
||||||
| Framavectoriel | SVG-Edit | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/svgedit_ynh)   |
|
|
||||||
| Framavox | Loomio | Non packagé |
|
|
||||||
| Framemo | Scrumblr | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/scrumblr_ynh)   |
|
|
||||||
| Framindmap | Wisemapping | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/wisemapping_ynh)   |
|
|
||||||
| Framinetest | Minetest | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/minetest_ynh)   |
|
|
||||||
| MyFrama | Shaarli | [<span class="glyphicon glyphicon-gift"></span>](https://github.com/YunoHost-Apps/shaarli_ynh)   |
|
|
||||||
|
|
||||||
### Voir aussi
|
|
||||||
|
|
||||||
- [Liste complète des applications packagées](/apps)
|
|
||||||
- [La roadmap 'Dégooglisons'](https://github.com/YunoHost/issues/milestone/13)
|
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
# Applications
|
|
||||||
|
|
||||||
One of the key feature of YunoHost is the ability to easily install applications which are then immediately usable. Example of applications include a blog system, a "cloud" (to host and sync files), a website, an RSS reader...
|
|
||||||
|
|
||||||
Applications must be packaged manually by application packagers/maintainers. Apps can be integrated with YunoHost to support upgrades, backup/restore and LDAP/SSO integration among other things.
|
|
||||||
|
|
||||||
Applications can be installed and managed through the webadmin interface in 'Applications' or through commands of the `yunohost app` category.
|
|
||||||
|
|
||||||
## Application lists
|
|
||||||
|
|
||||||
From the technical point of view, applications are public code repository (such as [this one](https://github.com/YunoHost-Apps/wordpress_ynh)). Existing applications are indexed using "application lists". Those lists can be managed in Applications > Install > Manage applications lists or with commands such as `yunohost app fetchlist`.
|
|
||||||
|
|
||||||
The full list of application can be browsed at [this page](/apps).
|
|
||||||
|
|
||||||
## Integration and quality levels
|
|
||||||
|
|
||||||
Automated tests are being run regularly to test the integration and quality of all official apps, as well as community apps who were declared to be 'working'. The result is a level between 0 and 7, whose meaning is detailed on [this page](/packaging_apps_levels). Some tests results may also be available [on this dashboard](https://dash.yunohost.org/appci/branch/stable).
|
|
||||||
|
|
||||||
## LDAP / SSO integration
|
|
||||||
|
|
||||||
Applications may support integration with the LDAP / Single Sign On system, such that users who connects to the user portal can be automatically logged in all those apps. Some applications however do not support this as it can be either not implemented in the upstream, or the package didn't work on this part yet.
|
|
||||||
|
|
||||||
## Multi-instance applications
|
|
||||||
|
|
||||||
Some applications support the ability to be installed several times (at different locations) ! To do so, just go another time in Applications > Install, and select again the application to install.
|
|
||||||
|
|
||||||
## User access management
|
|
||||||
|
|
||||||
Access to apps can be restricted to some users only. This can be configured via the webadmin in the [Groups and permissions panel](/groups_and_permissions), or similarly via the command-line subcategory `yunohost user permission`.
|
|
||||||
|
|
||||||
## Packaging applications
|
|
||||||
|
|
||||||
If you want to learn or contribute to app packaging, please check the [contributor documentation](contributordoc).
|
|
|
@ -1,33 +0,0 @@
|
||||||
# Applications
|
|
||||||
|
|
||||||
L'une des fonctionnalités principales de YunoHost est la possibilité d'installer facilement des applications immédiatement utilisables. Pour donner des exemples d'application, il est possible d'installer un système de blog, un "cloud" (pour héberger et synchroniser des fichiers), un site web, un lecteur RSS...
|
|
||||||
|
|
||||||
Les applications doivent être packagées manuellement par les packageurs/mainteneurs d'applications. Les applications peuvent être intégrées avec YunoHost pour gérer les mise à jour, la sauvegarde/restauration et l'intégration LDAP/SSO, entre autres.
|
|
||||||
|
|
||||||
Les applications peuvent être installées et gérées via l'interface webadmin dans la partie 'Applications', ou via les commandes de la catégorie `yunohost app`.
|
|
||||||
|
|
||||||
## Listes d'applications
|
|
||||||
|
|
||||||
Du point de vue technique, les applications sont des dépôts de code public (comme [celui-ci](https://github.com/YunoHost-Apps/wordpress_ynh)). Les applications existantes sont indexées à l'aide de "listes d'applications". Ces listes peuvent être gérées dans Applications > Installer > Gérer les listes d'applications, ou avec des commandes telles que `yunohost app fetchlist`.
|
|
||||||
|
|
||||||
La liste des applications existantes peut être consultée sur [cette page](/apps).
|
|
||||||
|
|
||||||
## Niveaux d'intégration et de qualité
|
|
||||||
|
|
||||||
Des tests automatisés sont exécutés régulièrement pour tester l'intégration et la qualité de toutes les applications officielles, ainsi que les applications communautaires qui ont été déclarées "working". Le résultat est un niveau entre 0 et 7, dont la signification est détaillée sur [cette page](/packaging_apps_levels). Certains résultats de tests peuvent également être disponibles sur [ce tableau de bord](https://dash.yunohost.org/appci/branch/stable).
|
|
||||||
|
|
||||||
## Intégration LDAP / SSO
|
|
||||||
|
|
||||||
Les applications peuvent prendre en charge l'intégration avec le système LDAP / Single Sign On, de sorte que les utilisateurs qui se connectent au portail utilisateur peuvent être automatiquement authentifiés sur toutes ces applications. Certaines applications ne le supportent pas car cette fonctionnalité n'est, soit pas implémentée en amont du logiciel de l'application, soit le mainteneur n'a pas encore travaillé sur cette partie.
|
|
||||||
|
|
||||||
## Applications multi-instances
|
|
||||||
|
|
||||||
Certaines applications peuvent être installées plusieurs fois (à différents endroits) ! Pour ce faire, il suffit de retourner dans Applications > Installer, et de sélectionner à nouveau l'application à installer.
|
|
||||||
|
|
||||||
## Gestion de l'accès des utilisateurs
|
|
||||||
|
|
||||||
L'accès aux applications peut être limité à certains utilisateurs seulement. Ceci peut être configuré via la webadmin sur la page [Groupes et permissions](groups_and_permissions), ou de la même manière via la sous-catégorie de commandes `yunohost user permission`.
|
|
||||||
|
|
||||||
## Packaging d'applications
|
|
||||||
|
|
||||||
Si vous voulez apprendre ou contribuer à l'empaquetage des applications, veuillez consulter la [documentation des contributeurs](contributordoc).
|
|
117
appsdoc.md
|
@ -1,117 +0,0 @@
|
||||||
- [Adminer](app_adminer)
|
|
||||||
- [Airsonic](app_airsonic)
|
|
||||||
- [Ampache](app_ampache)
|
|
||||||
- [Anarchism](app_anarchism)
|
|
||||||
- [Anfora](app_anfora)
|
|
||||||
- [Archivist](app_archivist)
|
|
||||||
- [Baïkal](app_baikal)
|
|
||||||
- [Bitwarden](app_bitwarden)
|
|
||||||
- [Bibliogram](app_bibliogram)
|
|
||||||
- [Bludit](app_bludit)
|
|
||||||
- [Blogotext](app_blogotext)
|
|
||||||
- [Borg](app_borg)
|
|
||||||
- [BoZoN](app_bozon)
|
|
||||||
- [Calibre-Web](app_calibreweb)
|
|
||||||
- [Cheky](app_cheky)
|
|
||||||
- [CiviCRM](app_civicrm_drupal7)
|
|
||||||
- [CodiMD](app_codimd)
|
|
||||||
- [Collabora](app_collabora)
|
|
||||||
- [Collabora (in Docker)](app_collaboradocker)
|
|
||||||
- [Concret5](app_concrete5)
|
|
||||||
- [Cowyo](app_cowyo)
|
|
||||||
- [Custom Webapp](app_my_webapp)
|
|
||||||
- [Diagrams.net](app_diagramsnet)
|
|
||||||
- [Discourse](app_discourse)
|
|
||||||
- [Distbin](app_distbin)
|
|
||||||
- [Dokuwiki](app_dokuwiki)
|
|
||||||
- [Dolibarr](app_dolibarr)
|
|
||||||
- [Dotclear 2](app_dotclear2)
|
|
||||||
- [Drupal](app_drupal)
|
|
||||||
- [Drupal 7](app_drupal7)
|
|
||||||
- [Etherpad (with mypads's plugin)](app_etherpad_mypads)
|
|
||||||
- [Fallback](app_fallback)
|
|
||||||
- [FirefoxSync](app_ffsync)
|
|
||||||
- [Fireflyiii](app_firefly-iii)
|
|
||||||
- [Flarum](app_flarum)
|
|
||||||
- [FluxBB](app_fluxbb)
|
|
||||||
- [Framaforms](app_framaforms)
|
|
||||||
- [FreshRSS](app_freshrss)
|
|
||||||
- [Friendica](app_friendica)
|
|
||||||
- [Funkwhale](app_funkwhale)
|
|
||||||
- [Garradin](app_garradin)
|
|
||||||
- [Gitea](app_gitea)
|
|
||||||
- [GitLab](app_gitlab)
|
|
||||||
- [GitLab Runner](app_gitlab-runner)
|
|
||||||
- [Glowing Bear](app_glowing_bear)
|
|
||||||
- [Gogs](app_gogs)
|
|
||||||
- [Gotify](app_gotify)
|
|
||||||
- [Grav](app_grav)
|
|
||||||
- [Halcyon](app_halcyon)
|
|
||||||
- [Haste](app_haste)
|
|
||||||
- [HedgeDoc](app_hedgedoc)
|
|
||||||
- [Hextris](app_hextris)
|
|
||||||
- [Horde](app_horde)
|
|
||||||
- [Hubzilla](app_hubzilla)
|
|
||||||
- [InvoiceNinja](app_invoiceninja)
|
|
||||||
- [Jappix](app_jappix)
|
|
||||||
- [Jirafeau](app_jirafeau)
|
|
||||||
- [Jitsi](app_jitsi)
|
|
||||||
- [JupyterLab](app_jupyterlab)
|
|
||||||
- [Keeweb](app_keeweb)
|
|
||||||
- [Kresus](app_kresus)
|
|
||||||
- [Leed](app_leed)
|
|
||||||
- [Limesurvey](app_limesurvey)
|
|
||||||
- [Lstu](app_lstu)
|
|
||||||
- [Lufi](app_lufi)
|
|
||||||
- [Lutim](app_lutim)
|
|
||||||
- [Lychee](app_lychee)
|
|
||||||
- [Mattermost](app_mattermost)
|
|
||||||
- [Mailman](app_mailman)
|
|
||||||
- [Mantis](app_mantis)
|
|
||||||
- [Matomo](app_matomo)
|
|
||||||
- [Mattermost](app_mattermost)
|
|
||||||
- [Mediawiki](app_mediawiki)
|
|
||||||
- [Mindmaps](app_mindmaps)
|
|
||||||
- [Minetest](app_minetest)
|
|
||||||
- [Minidlna](app_minidlna)
|
|
||||||
- [Mobilizon](app_mobilizon)
|
|
||||||
- [Moodle](app_moodle)
|
|
||||||
- [Mumble](app_mumbleserver)
|
|
||||||
- [Navidrome](app_navidrome)
|
|
||||||
- [Netdata](app_netdata)
|
|
||||||
- [Nextcloud](app_nextcloud)
|
|
||||||
- [Noalyss](app_noalyss)
|
|
||||||
- [OnlyOffice](app_onlyoffice)
|
|
||||||
- [Opensondage](app_opensondage)
|
|
||||||
- [OSticket](app_osticket)
|
|
||||||
- [Peertube](app_peertube)
|
|
||||||
- [PHPmyadmin](app_phpmyadmin)
|
|
||||||
- [PHPsysinfo](app_phpsysinfo)
|
|
||||||
- [Pihole](app_pihole)
|
|
||||||
- [Piwigo](app_piwigo)
|
|
||||||
- [Pleroma](app_pleroma)
|
|
||||||
- [Plume](app_plume)
|
|
||||||
- [Pluxml](app_pluxml)
|
|
||||||
- [PrivateBin](app_privatebin)
|
|
||||||
- [Radicale](app_radicale)
|
|
||||||
- [Rainloop](app_rainloop)
|
|
||||||
- [Searx](app_searx)
|
|
||||||
- [Shaarli](app_shaarli)
|
|
||||||
- [Shellinabox](app_shellinabox)
|
|
||||||
- [Simple-torrent](app_simple-torrent)
|
|
||||||
- [Slingcode](app_slingcode)
|
|
||||||
- [Sogo](app_sogo)
|
|
||||||
- [Spip](app_spip)
|
|
||||||
- [Strut](app_strut)
|
|
||||||
- [Transmission](app_transmission)
|
|
||||||
- [TinyTinyRSS](app_ttrss)
|
|
||||||
- [Unattended upgrades](app_unattended_upgrades)
|
|
||||||
- [Wallabag2](app_wallabag2)
|
|
||||||
- [Weblate](app_weblate)
|
|
||||||
- [Wekan](app_wekan)
|
|
||||||
- [Wiki.js](app_wikijs)
|
|
||||||
- [Webtrees](app_webtrees)
|
|
||||||
- [WordPress](app_wordpress)
|
|
||||||
- [Yunofav](app_yunofav)
|
|
||||||
- [Zerobin](app_zerobin)
|
|
||||||
- (Note that you can add a new page here if you want to start document in another `app`...)
|
|
170
backup.md
|
@ -1,170 +0,0 @@
|
||||||
# Backing up your server and apps
|
|
||||||
|
|
||||||
Backing up your server, apps and data is an important concern when administrating a server. This protects you from unexpected events that could happen (server lost in a fire, database corruption, loss of access, server compromised...). The backup policy you will put in place depends of the importance of the services and data hosted. For instance you won't care too much about having backup on a test server, but you will care about having a backup of critical data of your association or company, and having this backup *in a different physical place*.
|
|
||||||
|
|
||||||
## Backups in the context of YunoHost
|
|
||||||
|
|
||||||
YunoHost comes with a backup system, that allows to backup (and restore) system configurations and data (e.g. mails) and apps if they support it.
|
|
||||||
|
|
||||||
You can manage backups either from the command line (`yunohost backup --help`) or from the web administration (in the Backups section) though some features are not yet available in the webadmin.
|
|
||||||
|
|
||||||
The current default method consists in creating a `.tar.gz` archive containing all relevant files. In the future, YunoHost plans to support [Borg](https://www.borgbackup.org/) which is a more flexible, efficient and powerful solution.
|
|
||||||
|
|
||||||
## Creating backups
|
|
||||||
|
|
||||||
### From the webadmin
|
|
||||||
|
|
||||||
You can easily create backup archives from the webadmin by going in Backups > Local storage and clicking on "New backup". You will then be asked to select which configuration, data and apps you want to backup.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### From the command line
|
|
||||||
|
|
||||||
You can create a new backup archive with the command line. Here are a few simple example of commands and their corresponding behavior:
|
|
||||||
|
|
||||||
- Backing up everything (all system parts and apps):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost backup create
|
|
||||||
```
|
|
||||||
|
|
||||||
- Backing up only apps
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost backup create --apps
|
|
||||||
```
|
|
||||||
|
|
||||||
- Backing up only two apps (wordpress and shaarli)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost backup create --apps wordpress shaarli
|
|
||||||
```
|
|
||||||
|
|
||||||
- Backing up only mails
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost backup create --system data_mail
|
|
||||||
```
|
|
||||||
|
|
||||||
- Backing up mails and wordpress
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost backup create --system data_mail --apps wordpress
|
|
||||||
```
|
|
||||||
|
|
||||||
For more informations and options about backup creation, consult `yunohost backup create --help`. You can also list system parts that can be backuped with `yunohost hook list backup`.
|
|
||||||
|
|
||||||
### Apps-specific configuration
|
|
||||||
|
|
||||||
Some apps such as Nextcloud may be related to a large quantity of data. If you want you can backup the app without the user data. This practice is referred to "backing up only the core" (of the app).
|
|
||||||
When performing an upgrade, apps with large quantity of data will, usually, do a backup without those data.
|
|
||||||
|
|
||||||
To manually disable the backup of large data, for application that implement that feature, you can set the variable `BACKUP_CORE_ONLY`. To do so, the variable have to be set before the backup command: `sudo BACKUP_CORE_ONLY=1 yunohost backup create --apps nextcloud`. Be careful though that mean you will have to backup user data yourself. But doing so, you will be able to do incremental or differential backups of this large amount of data (which is not an option provided by yunohost yet).
|
|
||||||
|
|
||||||
## Downloading and uploading backups
|
|
||||||
|
|
||||||
After creating backup archives, it is possible to list and inspect them via the corresponding views in the webadmin, or via `yunohost backup list` and `yunohost backup info <archivename>` from the command line. By default, backups are stored in `/home/yunohost.backup/archives/`.
|
|
||||||
|
|
||||||
Currently, the most accessible way to download archives is to use the program FileZilla as explained in [this page](/filezilla).
|
|
||||||
|
|
||||||
Alternatively, a solution can be to install Nextcloud or a similar app and configure it to be able to access files in `/home/yunohost.backup/archives/` from a web browser.
|
|
||||||
|
|
||||||
One solution consists in using `scp` (a program based on [`ssh`](/ssh)) to copy files between two machines via the command line. Hence, from a machine running GNU/Linux, you should be able to run the following to download a specific backup:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
scp admin@your.domain.tld:/home/yunohost.backup/archives/<archivename>.tar.gz ./
|
|
||||||
```
|
|
||||||
|
|
||||||
Similarly, you can upload a backup from a machine to your server with:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
scp /path/to/your/<archivename>.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/
|
|
||||||
```
|
|
||||||
|
|
||||||
## Restoring backups
|
|
||||||
|
|
||||||
### From the webadmin
|
|
||||||
|
|
||||||
Go in Backup > Local storage and select your archive. You can then select which items you want to restore, then click on 'Restore'.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### From the command line
|
|
||||||
|
|
||||||
From the command line, you can run `yunohost backup restore <archivename>` (without the `.tar.gz`) to restore an archive. As for `yunohost backup create`, this will restore everything in the archive by default. If you want to restore only specific items, you can use for instance `yunohost backup restore --apps wordpress` which will restore only the wordpress app.
|
|
||||||
|
|
||||||
### Constraints
|
|
||||||
|
|
||||||
To restore an app, the domain on which it was installed should already be configured (or you need to restore the corresponding system configuration). You also cannot restore an app which is already installed... which means that to restore an old version of an app, you must first uninstall it.
|
|
||||||
|
|
||||||
### Restoring during the postinstall
|
|
||||||
|
|
||||||
One specific feature is the ability to restore a full archive *instead* of the postinstall step. This makes it useful when you want to reinstall a system entirely from an existing backup. To be able to do this, you will need to upload the archive on the server and place it in `/home/yunohost.backup/archives`. Then, **instead of** `yunohost tools postinstall` you can run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost backup restore <archivename>
|
|
||||||
```
|
|
||||||
|
|
||||||
Note: If your archive isn't in `/home/yunohost.backup/archives`, you can create the directory, move the archive into it, and restore it like this:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkdir -p /home/yunohost.backup/archives
|
|
||||||
mv /path/to/<archivename> /home/yunohost.backup/archives/
|
|
||||||
yunohost backup restore <archivename>
|
|
||||||
```
|
|
||||||
|
|
||||||
## To go futher
|
|
||||||
|
|
||||||
### Storing backups on a different drive
|
|
||||||
|
|
||||||
If you want, you can connect and mount an external drive to store backup archives on it (among other things). For this, plug in the drive and make sure that next time it is mounted automatically, by following the instruction at [Adding an external storage to your server](https://yunohost.org/#/external_storage).
|
|
||||||
|
|
||||||
Then, move the existing archives and then add a symbolic link.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
PATH_TO_DRIVE="/media/my_external_drive" # For instance, depends of where you mounted your drive
|
|
||||||
mkdir $PATH_TO_DRIVE/yunohost_backup_archives # On your external drive create the folder where the backups will go
|
|
||||||
mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives # Move the archive folder including existing backups (if you made them) to the new folder on the external drive
|
|
||||||
ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives # Create a symbolic link from the old local folder to the new folder on the external drive
|
|
||||||
```
|
|
||||||
|
|
||||||
### Automatic backups
|
|
||||||
|
|
||||||
You can add a simple cron job to trigger automatic backups regularly. For instance, to backup your wordpress weekly, create a file `/etc/cron.weekly/backup-wordpress` with the following content:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
#!/bin/bash
|
|
||||||
yunohost backup create --apps wordpress
|
|
||||||
```
|
|
||||||
|
|
||||||
then make it executable:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
chmod +x /etc/cron.weekly/backup-wordpress
|
|
||||||
```
|
|
||||||
|
|
||||||
Be careful what you backup exactly and when: you don't want to end up with your whole disk space saturated because you backuped 30 GB of data every day.
|
|
||||||
|
|
||||||
#### Backing your server on a remote server
|
|
||||||
|
|
||||||
You can follow this tutorial on the forum to setup Borg between two servers: <https://forum.yunohost.org/t/how-to-backup-your-yunohost-server-on-another-server/3153>
|
|
||||||
|
|
||||||
Alternatively, the app Archivist allows to setup a similar system: <https://forum.yunohost.org/t/new-app-archivist/3747>
|
|
||||||
|
|
||||||
#### Avoiding the backup of some folders
|
|
||||||
If needed, you can specify that some `/home/user` folders are left out of the `yunohost backup` command, by creating a blank file named `.nobackup` in them.
|
|
||||||
|
|
||||||
#### Full backup with `dd`
|
|
||||||
|
|
||||||
If you are using an ARM board, another method for doing a full backup can be to create an image of the SD card. For this, poweroff your ARM board, get the SD card in your computer then create a full image with something like:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
dd if=/dev/mmcblk0 of=./backup.img status=progress
|
|
||||||
```
|
|
||||||
|
|
||||||
(replace `/dev/mmcblk0` with the actual device of your SD card)
|
|
||||||
|
|
||||||
You can also create a compressed image using gzip this way:
|
|
||||||
```bash
|
|
||||||
dd if=/dev/mmcblk0 | gzip > ./image.gz
|
|
||||||
```
|
|
164
backup_fr.md
|
@ -1,164 +0,0 @@
|
||||||
# Sauvegarder son serveur et ses apps
|
|
||||||
|
|
||||||
Dans le contexte de l'auto-hébergement, les sauvegardes (backup) sont un élément important pour pallier les événements inattendus (incendies, corruption de base de données, perte d'accès au serveur, serveur compromis...). La politique de sauvegardes à mettre en place dépend de l'importance des services et des données que vous gérez. Par exemple, sauvegarder un serveur de test aura peu d'intérêt, tandis que vous voudrez être très prudent si vous gérez des données critiques pour une association ou une entreprise - et dans ce genre de cas, vous souhaiterez stocker les sauvegardes *dans un endroit différent*.
|
|
||||||
|
|
||||||
## Les sauvegardes avec YunoHost
|
|
||||||
|
|
||||||
YunoHost contient un système de sauvegarde, qui permet de sauvegarder (et restaurer) les configurations du système, les données "système" (comme les mails) et les applications si elles le supportent.
|
|
||||||
|
|
||||||
Vous pouvez gérer vos sauvegardes via la ligne de commande (`yunohost backup --help`) ou la webadmin (dans la section Sauvegardes) bien que certaines fonctionnalités ne soient pas disponibles via celle-ci.
|
|
||||||
|
|
||||||
La méthode de sauvegarde actuelle consiste à créer des archives `.tar.gz` qui contiennent les fichiers pertinents. Pour le futur, YunoHost envisage de supporter nativement [Borg](https://www.borgbackup.org/) qui est une solution plus flexible, performante et puissante pour gérer des sauvegardes.
|
|
||||||
|
|
||||||
## Créer des sauvegardes
|
|
||||||
|
|
||||||
#### Depuis la webadmin
|
|
||||||
|
|
||||||
Vous pouvez facilement créer des archives depuis la webadmin en allant dans Sauvegardes > Archives locales et en cliquant sur "Nouvelle sauvegarde". Vous pourrez ensuite sélectionner les éléments à sauvegarder (configuration, données "système", applications).
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
#### Depuis la ligne de commande
|
|
||||||
|
|
||||||
Vous pouvez créer de nouvelles archives depuis la ligne de commande. Voici quelques exemples de commandes et leur comportement correspondant :
|
|
||||||
|
|
||||||
- Tout sauvegarder (système et apps)
|
|
||||||
```bash
|
|
||||||
yunohost backup create
|
|
||||||
```
|
|
||||||
|
|
||||||
- Sauvegarder seulement les apps
|
|
||||||
```bash
|
|
||||||
yunohost backup create --apps
|
|
||||||
```
|
|
||||||
|
|
||||||
- Sauvegarder seulement deux apps (WordPress et Shaarli)
|
|
||||||
```bash
|
|
||||||
yunohost backup create --apps wordpress shaarli
|
|
||||||
```
|
|
||||||
|
|
||||||
- Sauvegarder seulement les mails
|
|
||||||
```bash
|
|
||||||
yunohost backup create --system data_mail
|
|
||||||
```
|
|
||||||
|
|
||||||
- Sauvegarder les mails et WordPress
|
|
||||||
```bash
|
|
||||||
yunohost backup create --system data_mail --apps wordpress
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour plus d'informations et d'options sur la création d'archives, consultez `yunohost backup create --help`. Vous pouvez également lister les parties du système qui sont sauvegardables avec `yunohost hook list backup`.
|
|
||||||
|
|
||||||
#### Configuration spécifique à certaines apps
|
|
||||||
|
|
||||||
Certaines apps comme Nextcloud sont potentiellement rattachées à des quantités importantes de données. Il est possible de ne pas les sauvegarder par défaut. Dans ce cas, on dit que l'app "sauvegarde uniquement le core" (de l'app).
|
|
||||||
Lors d'une mise à jour, les apps contenant une grande quantité de données effectuent généralement une sauvegarde sans ces données.
|
|
||||||
|
|
||||||
Pour désactiver manuellement la sauvegarde des données volumineuses, pour les applications qui implémentent cette fonctionnalité, vous pouvez définir la variable `BACKUP_CORE_ONLY`. Pour ce faire, la variable doit être définie avant la commande de backup : `sudo BACKUP_CORE_ONLY=1 yunohost backup create --apps nextcloud`. Soyez prudent : il vous faudra alors sauvegarder vous-même les données des utilisateurs de Nextcloud. Choisir ce type de sauvegarde vous permettra de mettre en place manuellement des sauvegardes incrémentielles ou différentielles (que YunoHost ne permet pas encore de faire automatiquement).
|
|
||||||
|
|
||||||
## Télécharger et téléverser des sauvegardes
|
|
||||||
|
|
||||||
Après avoir créé des sauvegardes, il est possible de les lister et de les inspecter grâce aux vues correspondantes dans la webadmin, ou via `yunohost backup list` et `yunohost backup info <nom_d'archive>` depuis la ligne de commande. Par défaut, les sauvegardes sont stockées dans `/home/yunohost.backup/archives/`.
|
|
||||||
|
|
||||||
À l'heure actuelle, la solution la plus accessible pour récupérer les sauvegardes est d'utiliser le programme FileZilla comme expliqué dans [cette page](/filezilla).
|
|
||||||
|
|
||||||
Une autre solution alternative consiste à installer une application comme Nextcloud et à la configurer pour être en mesure d'accéder aux fichiers dans `/home/yunohost.backup/archives/` depuis un navigateur web.
|
|
||||||
|
|
||||||
Enfin, il est possible d'utiliser `scp` (un programme basé sur [`ssh`](/ssh)) pour copier des fichiers entre deux machines grâce à la ligne de commande. Ainsi, depuis une machine sous GNU/Linux, vous pouvez utiliser la commande suivante pour télécharger une archive :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
scp admin@your.domain.tld:/home/yunohost.backup/archives/<nom_d'archive>.tar.gz ./
|
|
||||||
```
|
|
||||||
|
|
||||||
De façon similaire, vous pouvez téléverser une sauvegarde depuis une machine vers votre serveur avec :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
scp /path/to/your/<nom_d'archive>.tar.gz admin@your.domain.tld:/home/yunohost.backup/archives/
|
|
||||||
```
|
|
||||||
|
|
||||||
## Restaurer des sauvegardes
|
|
||||||
|
|
||||||
#### Depuis la webadmin
|
|
||||||
|
|
||||||
Allez dans Sauvegardes > Sauvegardes locales et sélectionnez l'archive. Vous pouvez ensuite choisir les différents éléments que vous voulez restaurer puis cliquer sur "Restaurer".
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
#### Depuis la ligne de commande
|
|
||||||
|
|
||||||
Depuis la ligne de commande, vous pouvez utiliser `yunohost backup restore <nom_d'archive>` (sans le `.tar.gz`) pour restaurer une archive. Tout comme `yunohost backup create`, cela restaure tout le contenu par défaut. Si vous souhaitez restaurer seulement certaines parties, vous pouvez utiliser par exemple `yunohost backup restore --apps wordpress` qui restaurera seulement l'app WordPress.
|
|
||||||
|
|
||||||
#### Contraintes
|
|
||||||
|
|
||||||
Pour restaurer une application, le domaine sur laquelle elle est installée doit déjà être configuré (ou il vous faut restaurer en même temps la configuration correspondante). Aussi, il n'est pas possible de restaurer une application déjà installée... ce qui veut dire que pour restaurer une sauvegarde d'une app, il vous faut déjà la désinstaller.
|
|
||||||
|
|
||||||
#### Restauration d'une archive à la place de la post-installation
|
|
||||||
|
|
||||||
Une fonctionnalité particulière est la possibilité de restaurer une archive entière *à la place* de faire la post-installation. Ceci est utile pour réinstaller un système entièrement à partir d'une sauvegarde existante. Pour faire cela, il vous faudra d'abord téléverser l'archive sur le serveur et la placer dans `/home/yunohost.backup/archives`.
|
|
||||||
|
|
||||||
Ensuite, **à la place de** `yunohost tools postinstall`, réalisez la restauration de l'archive téléversée par cette ligne de commande avec le nom de l'archive (sans le `.tar.gz`) :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost backup restore <nom_d'archive>
|
|
||||||
```
|
|
||||||
|
|
||||||
Note: si votre archive n'est pas dans `/home/yunohost.backup/archives`, vous pouvez créer le répertoire et déplacer l'archive comme ceci :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkdir -p /home/yunohost.backup/archives
|
|
||||||
mv /chemin/vers/<nom_d'archive> /home/yunohost.backup/archives/
|
|
||||||
yunohost backup restore <nom_d'archive>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Pour aller plus loin
|
|
||||||
|
|
||||||
#### Stocker les archives sur un autre disque
|
|
||||||
|
|
||||||
Si vous le souhaitez, vous pouvez connecter un disque externe à votre serveur pour (parmi d'autres choses) stocker les archives de backup dessus. Pour cela, il faut d'abord déplacer les archives existantes vers le disque, puis créer un lien symbolique:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
PATH_TO_DRIVE="/media/mon_disque_externe" # Par exemple - Tout dépend d'où le disque est monté
|
|
||||||
mv /home/yunohost.backup/archives $PATH_TO_DRIVE/yunohost_backup_archives
|
|
||||||
ln -s $PATH_TO_DRIVE/yunohost_backup_archives /home/yunohost.backup/archives
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Sauvegardes automatiques
|
|
||||||
|
|
||||||
Vous pouvez ajouter une tâche cron pour déclencher automatiquement une sauvegarde régulièrement. Par exemple pour sauvegarder l'application WordPress toutes les semaines, créez un fichier `/etc/cron.weekly/backup-wordpress` avec le contenu suivant :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
#!/bin/bash
|
|
||||||
yunohost backup create --apps wordpress
|
|
||||||
```
|
|
||||||
puis rendez-le exécutable :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
chmod +x /etc/cron.weekly/backup-wordpress
|
|
||||||
```
|
|
||||||
|
|
||||||
Soyez prudent à propos de ce que vous sauvegardez et de la fréquence : il vaut mieux éviter de se retrouver avec un disque saturé car vous avez voulu sauvegarder 30 Go de données tous les jours...
|
|
||||||
|
|
||||||
#### Sauvegarder sur un serveur distant
|
|
||||||
|
|
||||||
Vous pouvez suivre ce tutoriel sur le forum pour mettre en place Borg entre deux serveurs : https://forum.yunohost.org/t/how-to-backup-your-yunohost-server-on-another-server/3153
|
|
||||||
|
|
||||||
Il existe aussi l'application Archivist qui permet un système similaire : https://forum.yunohost.org/t/new-app-archivist/3747
|
|
||||||
|
|
||||||
#### Éviter de sauvegarder certains dossiers
|
|
||||||
Si besoin, vous pouvez spécifier que certains dossiers `home` d'utilisateurs ne soient pas sauvegardés par la commande `yunohost backup`, en créant un fichier vide nommé `.nobackup` à l'intérieur.
|
|
||||||
|
|
||||||
#### Backup complet avec `dd`
|
|
||||||
|
|
||||||
Si vous êtes sur une carte ARM, une autre méthode pour créer une sauvegarde complète consiste à créer une image (copie) de la carte SD. Pour cela, éteignez votre serveur, insérez la carte SD dans votre ordinateur et créez une image avec une commande comme :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
dd if=/dev/mmcblk0 of=./backup.img status=progress
|
|
||||||
```
|
|
||||||
|
|
||||||
(remplacez `/dev/mmcblk0` par le vrai nom de votre carte SD)
|
|
||||||
|
|
||||||
Vous pouvez aussi compresser l'image à l'aide de gzip :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
dd if=/dev/mmcblk0 | gzip > ./image.gz
|
|
||||||
```
|
|
|
@ -1,20 +0,0 @@
|
||||||
# Blacklist forms
|
|
||||||
|
|
||||||
It could happen sometimes that your IP is blacklisted by some email provider, or anti-spam services.
|
|
||||||
|
|
||||||
## Test your server
|
|
||||||
|
|
||||||
* [Test sending an email](https://www.mail-tester.com)
|
|
||||||
- [Test from an IP address](http://whatismyipaddress.com/blacklist-check)
|
|
||||||
|
|
||||||
Here is some forms that could help you remove your IP address from these lists
|
|
||||||
|
|
||||||
## Email providers
|
|
||||||
|
|
||||||
* [Microsoft](https://support.microsoft.com/en-us/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=en-us)
|
|
||||||
* [GMail](https://support.google.com/mail/contact/msgdelivery)
|
|
||||||
|
|
||||||
## Anti-spam services
|
|
||||||
|
|
||||||
* [SpamHaus](http://www.spamhaus.org/lookup)
|
|
||||||
* http://whatismyipaddress.com/blacklist-check
|
|
|
@ -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,46 +0,0 @@
|
||||||
# Flashing the YunoHost ISO
|
|
||||||
|
|
||||||
Now that you downloaded the ISO image of YunoHost, you should flash/burn it on a physical medium. Typically, this is done on a **USB stick** or an **SD card**.
|
|
||||||
|
|
||||||
<img src="/images/sdcard.jpg" width=100>
|
|
||||||
<img src="/images/micro-sd-card.jpg" width=100>
|
|
||||||
<img src="/images/usb_key.png" width=150>
|
|
||||||
<img src="/images/cd.jpg" width=100>
|
|
||||||
|
|
||||||
### (Recommended) With Etcher
|
|
||||||
|
|
||||||
Download <a href="https://etcher.io/" target="_blank">Etcher</a> for your operating system and install it.
|
|
||||||
|
|
||||||
<img src="/images/etcher.gif">
|
|
||||||
|
|
||||||
Plug your USB stick, select your YunoHost ISO and click "Flash"
|
|
||||||
|
|
||||||
### With UNetbootin
|
|
||||||
|
|
||||||
Download <a href="https://unetbootin.github.io/">UNetbootin</a> for your operating system and install it.
|
|
||||||
|
|
||||||
<img src="/images/unetbootin.png">
|
|
||||||
|
|
||||||
Put your USB stick on, select your YunoHost ISO and click "OK"
|
|
||||||
|
|
||||||
|
|
||||||
### With `dd`
|
|
||||||
|
|
||||||
If you are on GNU/Linux / macOS and know your way around command line, you may also flash your USB stick or SD card with `dd`. You can identify which device corresponds to your USB stick or SD card with `fdisk -l` or `lsblk`. A typical SD card name is something like `/dev/mmcblk0`. BE CAREFUL and make sure you got the right name.
|
|
||||||
|
|
||||||
Then run :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Replace /dev/mmcblk0 if the name of your device is different...
|
|
||||||
dd if=/path/to/yunohost.img of=/dev/mmcblk0
|
|
||||||
```
|
|
||||||
|
|
||||||
### Burning a CD/DVD
|
|
||||||
|
|
||||||
For older devices, you might want to burn a CD/DVD. The software to use depends on your operating system.
|
|
||||||
|
|
||||||
* On Windows, use [ImgBurn](http://www.imgburn.com/) to write the image file on the disc
|
|
||||||
|
|
||||||
* On macOS, use [Disk Utility](http://support.apple.com/kb/ph7025)
|
|
||||||
|
|
||||||
* On GNU/Linux, you have plenty of choices, like [Brasero](https://wiki.gnome.org/Apps/Brasero) or [K3b](http://www.k3b.org/)
|
|
|
@ -1,45 +0,0 @@
|
||||||
# Flasher l’ISO YunoHost
|
|
||||||
|
|
||||||
Maintenant que vous avez téléchargé l’image ISO de YunoHost, vous devez la mettre sur un support physique. Classiquement, il s'agit d'une **Clé USB** ou d'une **Carte SD**.
|
|
||||||
|
|
||||||
<img src="/images/sdcard.jpg" width=100>
|
|
||||||
<img src="/images/micro-sd-card.jpg" width=100>
|
|
||||||
<img src="/images/usb_key.png" width=150>
|
|
||||||
<img src="/images/cd.jpg" width=100>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### (Recommandé) Avec Etcher
|
|
||||||
|
|
||||||
Téléchargez <a href="https://etcher.io/" target="_blank">Etcher</a> pour votre système d'exploitation et installez-le.
|
|
||||||
|
|
||||||
<img src="/images/etcher.gif">
|
|
||||||
|
|
||||||
Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'Flash'
|
|
||||||
|
|
||||||
### Avec UNetbootin
|
|
||||||
|
|
||||||
Téléchargez <a href="https://unetbootin.github.io/">UNetbootin</a> pour votre système d'exploitation et installez-le.
|
|
||||||
|
|
||||||
<img src="/images/unetbootin.png">
|
|
||||||
|
|
||||||
Branchez votre clef USB, selectionnez l'ISO YunoHost puis cliquez sur 'OK'
|
|
||||||
|
|
||||||
### Avec `dd`
|
|
||||||
|
|
||||||
Si vous êtes familier avec la ligne de commande, il est possible de flasher la clef USB ou carte SD avec `dd`. Vous pouvez identifier le nom du périphérique avec `fdisk -l` ou `lsblk`. Une carte SD s'apelle typiquement `/dev/mmcblk0`. ATTENTION à faire attention de prendre le bon nom !
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Remplacer /dev/mmcblk0 par le nom de votre périphérique
|
|
||||||
dd if=/chemin/de/yunohost.iso of=/dev/mmcblk0
|
|
||||||
```
|
|
||||||
|
|
||||||
### CD/DVD
|
|
||||||
|
|
||||||
Pour les anciens matériels, il vous faut peut-être utiliser un CD/DVD. Le logiciel à utiliser est différent suivant votre système d’exploitation.
|
|
||||||
|
|
||||||
* Sur Windows, utilisez [ImgBurn](http://www.imgburn.com/) pour écrire l’image sur le disque
|
|
||||||
|
|
||||||
* Sur macOS, utilisez [Disk Utility](http://support.apple.com/kb/ph7025)
|
|
||||||
|
|
||||||
* Sur GNU/Linux, vous avez plusieurs choix, tels que [Brasero](https://wiki.gnome.org/Apps/Brasero) ou [K3b](http://www.k3b.org/)
|
|
|
@ -1,30 +0,0 @@
|
||||||
# Administrate YunoHost in command line
|
|
||||||
|
|
||||||
The command line interface (CLI) is, in the computer world, the original (and more technical) way of interacting with a computer compared to graphical interface. Command line interfaces are generally said to be more complete, powerful or efficient than a graphical interface, though it is more difficult to learn.
|
|
||||||
|
|
||||||
In the context of YunoHost, or system administration in general, the CLI is commonly used to remotely control machines after connecting through [connecting to it via SSH](/ssh).
|
|
||||||
|
|
||||||
<div class="alert alert-info" markdown="1">
|
|
||||||
Providing a full tutorial about the command line is quite beyond the scope of the YunoHost documentation : for this, consider reading a dedicated tutorial such as [this one](https://ryanstutorials.net/linuxtutorial/) or [this one](http://linuxcommand.org/). But be reassured that you don't need to be a CLI expert to start using it !
|
|
||||||
</div>
|
|
||||||
|
|
||||||
The `yunohost` command can be used to administrate your server and perform the various actions similarly to what you do on the webadmin. The command must be launched either from the `root` user or from the `admin` user by preceeding them with `sudo`. (ProTip™ : you can become `root` with the command `sudo su` as `admin`).
|
|
||||||
|
|
||||||
YunoHost commands usually have this kind of structure :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost app install wordpress --label Webmail
|
|
||||||
^ ^ ^ ^
|
|
||||||
| | | |
|
|
||||||
category action argument options
|
|
||||||
```
|
|
||||||
|
|
||||||
Don't hesitate to browse and ask for more information about a given category or action using the the `--help` option. For instance, those commands :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost --help
|
|
||||||
yunohost user --help
|
|
||||||
yunohost user create --help
|
|
||||||
```
|
|
||||||
|
|
||||||
will successively list all the categories available, then the actions available in the `user` category, then the usage of the action `user create`. You might notice that the YunoHost command tree is built with a structure similar to the YunoHost admin pages.
|
|
|
@ -1,30 +0,0 @@
|
||||||
# Administrar YunoHost con la interfaz de línea de comandos
|
|
||||||
|
|
||||||
La interfaz de línea de comandos (CLI) es, en informática, la manera original (y más técnica) de interactuar con un ordenador. Está generalmente considera como más completa, más potente y eficaz que las interfaces gráficas, aunque sea más difícil de aprenderla.
|
|
||||||
|
|
||||||
En el contexto de YunoHost, o de la administración de sistemas en general, la línea de comandos comúnmente se utiliza después de haberse [conectado en SSH](/ssh).
|
|
||||||
|
|
||||||
<div class="alert alert-info" markdown="1">
|
|
||||||
Proveer un tutorial completo sobre la línea de comandos saldría del marco de la documentación de YunoHost : por eso, refiérete a totorales como [éste](https://www.fing.edu.uy/inco/cursos/sistoper/recursosLaboratorio/tutorial0.pdf) o [éste (en)](http://linuxcommand.org/). Pero no te preocupes : no hace falta ser un experto para comenzar a utilizarla !
|
|
||||||
</div>
|
|
||||||
|
|
||||||
El comando `yunohost` puede ser utilizado para administrar tu servidor o realizar las mismas acciones que en la interfaz gráfica webadmin. Hay que iniciarla como usuario `root`, o como el usuario `admin` poniendo `sudo` antes del comando. (ProTip™ : puedes convertirte en usuario `root` vía el comando `sudo su` cuando eres `admin`.)
|
|
||||||
|
|
||||||
Los comandos YunoHost tienen este tipo de estructura :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost app install wordpress --label Webmail
|
|
||||||
^ ^ ^ ^
|
|
||||||
| | | |
|
|
||||||
categoría acción argumento opción
|
|
||||||
```
|
|
||||||
|
|
||||||
No dudes en navegar ni en pedir información a propósito de una categoría o acción utilizando la opción `--help`. Por ejemplo, estos comandos :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost --help
|
|
||||||
yunohost user --help
|
|
||||||
yunohost user create --help
|
|
||||||
```
|
|
||||||
|
|
||||||
de manera sucesiva van a enumerar todas las categorías disponibles, luego las acciones de la categoría `user`, y luego explicar cómo utilizar la acción `user create`. Deberías notar que el árbol de los comandos YunoHost tiene la misma estructura que las páginas del webadmin.
|
|
|
@ -1,30 +0,0 @@
|
||||||
# Administrer YunoHost en ligne de commande
|
|
||||||
|
|
||||||
L'interface en ligne de commande (CLI) est, en informatique, la manière originale (et plus technique) d'interagir avec un ordinateur comparé aux interfaces graphiques. La ligne de commande est généralement considéré comme plus complète, puissante et efficace que les interfaces graphiques, bien que plus difficile à apprendre.
|
|
||||||
|
|
||||||
Dans le contexte de YunoHost, ou de l'administration système en général, la ligne de commande est communément utilisée après s'être [connecté en SSH](/ssh).
|
|
||||||
|
|
||||||
<div class="alert alert-info" markdown="1">
|
|
||||||
Fournir un tutorial complet sur la ligne de commande est bien au dela du cadre de la documentation de YunoHost : pour cela, référez-vous à des tutoriaux comme [celui-ci](https://doc.ubuntu-fr.org/tutoriel/console_ligne_de_commande) ou [celui-ci (en)](http://linuxcommand.org/). Mais soyez rassuré qu'il n'y a pas besoin d'être un expert pour commencer à l'utiliser !
|
|
||||||
</div>
|
|
||||||
|
|
||||||
La commande `yunohost` peut être utilisée pour administrer votre serveur ou réaliser les mêmes actions que celles disponibles sur la webadmin. Elle doit être lancée en depuis l'utilisateur `root`, ou bien depuis l'utilisateur `admin` en précédant la commande de `sudo`. (ProTip™ : il est possible de devenir `root` via la commande `sudo su` en tant qu'`admin`.)
|
|
||||||
|
|
||||||
Les commandes YunoHost ont ce type de structure :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost app install wordpress --label Webmail
|
|
||||||
^ ^ ^ ^
|
|
||||||
| | | |
|
|
||||||
categorie action argument options
|
|
||||||
```
|
|
||||||
|
|
||||||
N'hesitez pas à naviguer et demander des informations à propos d'une catégorie ou action donnée via l'option `--help`. Par exemple, ces commandes :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yunohost --help
|
|
||||||
yunohost user --help
|
|
||||||
yunohost user create --help
|
|
||||||
```
|
|
||||||
|
|
||||||
vont successivement lister toutes les catégories disponibles, puis les actions de la catégorie `user`, puis expliquer comment utiliser l'action `user create`. Vous devriez remarquer que l'arbre des commandes YunoHost suit une structure similaire aux pages de la webadmin.
|
|
17
config/site.yaml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
title: 'YunoHost Documentation'
|
||||||
|
default_lang: en
|
||||||
|
author:
|
||||||
|
name: YunoHost
|
||||||
|
email: yunohost@yunohost.org
|
||||||
|
taxonomies:
|
||||||
|
- category
|
||||||
|
- tag
|
||||||
|
metadata:
|
||||||
|
description: 'YunoHost Documentation'
|
||||||
|
summary:
|
||||||
|
enabled: true
|
||||||
|
format: short
|
||||||
|
size: 300
|
||||||
|
delimiter: '==='
|
||||||
|
redirects: null
|
||||||
|
routes: null
|
218
config/system.yaml
Normal file
|
@ -0,0 +1,218 @@
|
||||||
|
absolute_urls: false
|
||||||
|
timezone: null
|
||||||
|
param_sep: ':'
|
||||||
|
wrapped_site: false
|
||||||
|
reverse_proxy_setup: false
|
||||||
|
force_ssl: false
|
||||||
|
force_lowercase_urls: true
|
||||||
|
custom_base_url: null
|
||||||
|
username_regex: '^[a-z0-9_-]{3,16}$'
|
||||||
|
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'
|
||||||
|
intl_enabled: true
|
||||||
|
http_x_forwarded:
|
||||||
|
protocol: true
|
||||||
|
host: false
|
||||||
|
port: true
|
||||||
|
ip: true
|
||||||
|
languages:
|
||||||
|
supported:
|
||||||
|
- en
|
||||||
|
- fr
|
||||||
|
- de
|
||||||
|
- es
|
||||||
|
- ar
|
||||||
|
- oc
|
||||||
|
- it
|
||||||
|
- ru
|
||||||
|
default_lang: en
|
||||||
|
include_default_lang: true
|
||||||
|
include_default_lang_file_extension: true
|
||||||
|
translations: true
|
||||||
|
translations_fallback: true
|
||||||
|
session_store_active: false
|
||||||
|
http_accept_language: true
|
||||||
|
override_locale: false
|
||||||
|
content_fallback:
|
||||||
|
en: 'fr,de,es'
|
||||||
|
de: 'en,fr,es'
|
||||||
|
es: 'en,fr,de'
|
||||||
|
pages_fallback_only: false
|
||||||
|
home:
|
||||||
|
alias: /home
|
||||||
|
hide_in_urls: true
|
||||||
|
pages:
|
||||||
|
type: regular
|
||||||
|
theme: yunohost-docs
|
||||||
|
order:
|
||||||
|
by: default
|
||||||
|
dir: asc
|
||||||
|
list:
|
||||||
|
count: 20
|
||||||
|
dateformat:
|
||||||
|
default: null
|
||||||
|
short: 'jS M Y'
|
||||||
|
long: 'F jS \a\t g:ia'
|
||||||
|
publish_dates: true
|
||||||
|
process:
|
||||||
|
markdown: true
|
||||||
|
twig: false
|
||||||
|
twig_first: false
|
||||||
|
never_cache_twig: false
|
||||||
|
events:
|
||||||
|
page: true
|
||||||
|
twig: true
|
||||||
|
markdown:
|
||||||
|
extra: false
|
||||||
|
auto_line_breaks: false
|
||||||
|
auto_url_links: false
|
||||||
|
escape_markup: false
|
||||||
|
special_chars:
|
||||||
|
'>': gt
|
||||||
|
'<': lt
|
||||||
|
valid_link_attributes:
|
||||||
|
- rel
|
||||||
|
- target
|
||||||
|
- id
|
||||||
|
- class
|
||||||
|
- classes
|
||||||
|
types:
|
||||||
|
- html
|
||||||
|
- htm
|
||||||
|
- xml
|
||||||
|
- txt
|
||||||
|
- json
|
||||||
|
- rss
|
||||||
|
- atom
|
||||||
|
append_url_extension: null
|
||||||
|
expires: 604800
|
||||||
|
cache_control: null
|
||||||
|
last_modified: false
|
||||||
|
etag: true
|
||||||
|
vary_accept_encoding: false
|
||||||
|
redirect_default_route: false
|
||||||
|
redirect_default_code: '302'
|
||||||
|
redirect_trailing_slash: true
|
||||||
|
ignore_files:
|
||||||
|
- .DS_Store
|
||||||
|
ignore_folders:
|
||||||
|
- .git
|
||||||
|
- .idea
|
||||||
|
ignore_hidden: true
|
||||||
|
hide_empty_folders: false
|
||||||
|
url_taxonomy_filters: true
|
||||||
|
frontmatter:
|
||||||
|
process_twig: false
|
||||||
|
ignore_fields:
|
||||||
|
- form
|
||||||
|
- forms
|
||||||
|
cache:
|
||||||
|
enabled: true
|
||||||
|
check:
|
||||||
|
method: file
|
||||||
|
driver: auto
|
||||||
|
prefix: g
|
||||||
|
purge_at: '0 4 * * *'
|
||||||
|
clear_at: '0 3 * * *'
|
||||||
|
clear_job_type: standard
|
||||||
|
clear_images_by_default: true
|
||||||
|
cli_compatibility: false
|
||||||
|
lifetime: 604800
|
||||||
|
gzip: true
|
||||||
|
allow_webserver_gzip: false
|
||||||
|
redis:
|
||||||
|
socket: '0'
|
||||||
|
server: null
|
||||||
|
port: null
|
||||||
|
password: null
|
||||||
|
memcache:
|
||||||
|
server: null
|
||||||
|
port: null
|
||||||
|
memcached:
|
||||||
|
server: null
|
||||||
|
port: null
|
||||||
|
twig:
|
||||||
|
cache: true
|
||||||
|
debug: false
|
||||||
|
auto_reload: true
|
||||||
|
autoescape: false
|
||||||
|
undefined_functions: true
|
||||||
|
undefined_filters: true
|
||||||
|
umask_fix: false
|
||||||
|
assets:
|
||||||
|
css_pipeline: false
|
||||||
|
css_pipeline_include_externals: true
|
||||||
|
css_pipeline_before_excludes: true
|
||||||
|
css_minify: true
|
||||||
|
css_minify_windows: false
|
||||||
|
css_rewrite: true
|
||||||
|
js_pipeline: false
|
||||||
|
js_pipeline_include_externals: true
|
||||||
|
js_pipeline_before_excludes: true
|
||||||
|
js_minify: true
|
||||||
|
enable_asset_timestamp: false
|
||||||
|
collections:
|
||||||
|
jquery: 'system://assets/jquery/jquery-2.x.min.js'
|
||||||
|
errors:
|
||||||
|
display: 1
|
||||||
|
log: true
|
||||||
|
log:
|
||||||
|
handler: file
|
||||||
|
syslog:
|
||||||
|
facility: local6
|
||||||
|
debugger:
|
||||||
|
enabled: false
|
||||||
|
provider: clockwork
|
||||||
|
censored: false
|
||||||
|
shutdown:
|
||||||
|
close_connection: true
|
||||||
|
twig: true
|
||||||
|
images:
|
||||||
|
default_image_quality: 85
|
||||||
|
cache_all: false
|
||||||
|
cache_perms: '0755'
|
||||||
|
debug: false
|
||||||
|
auto_fix_orientation: true
|
||||||
|
seofriendly: true
|
||||||
|
defaults:
|
||||||
|
loading: auto
|
||||||
|
media:
|
||||||
|
enable_media_timestamp: false
|
||||||
|
unsupported_inline_types: null
|
||||||
|
allowed_fallback_types: null
|
||||||
|
auto_metadata_exif: false
|
||||||
|
upload_limit: 2097152
|
||||||
|
session:
|
||||||
|
enabled: true
|
||||||
|
initialize: true
|
||||||
|
timeout: 1800
|
||||||
|
name: grav-site
|
||||||
|
uniqueness: path
|
||||||
|
secure: false
|
||||||
|
httponly: true
|
||||||
|
samesite: Lax
|
||||||
|
split: true
|
||||||
|
path: null
|
||||||
|
gpm:
|
||||||
|
releases: stable
|
||||||
|
proxy_url: null
|
||||||
|
method: auto
|
||||||
|
verify_peer: true
|
||||||
|
official_gpm_only: true
|
||||||
|
accounts:
|
||||||
|
type: regular
|
||||||
|
storage: file
|
||||||
|
flex:
|
||||||
|
cache:
|
||||||
|
index:
|
||||||
|
enabled: true
|
||||||
|
lifetime: 60
|
||||||
|
object:
|
||||||
|
enabled: true
|
||||||
|
lifetime: 600
|
||||||
|
render:
|
||||||
|
enabled: true
|
||||||
|
lifetime: 600
|
||||||
|
strict_mode:
|
||||||
|
yaml_compat: true
|
||||||
|
twig_compat: true
|
||||||
|
blueprint_compat: true
|
18
config/themes/yunohost-docs.yaml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
streams:
|
||||||
|
schemes:
|
||||||
|
theme:
|
||||||
|
type: ReadOnlyStream
|
||||||
|
prefixes:
|
||||||
|
'': [user/themes/yunohost-docs, user/themes/learn4]
|
||||||
|
enabled: true
|
||||||
|
production-mode: true
|
||||||
|
grid-size: grid-xl
|
||||||
|
github:
|
||||||
|
note: false
|
||||||
|
link: true
|
||||||
|
tree: 'https://github.com/yunohost/doc/blob/grav/'
|
||||||
|
commits: 'https://github.com/yunohost/doc/commits/grav/'
|
||||||
|
spectre:
|
||||||
|
exp: false
|
||||||
|
icons: false
|
||||||
|
top_level_version: true
|
|
@ -1,93 +0,0 @@
|
||||||
# Get involved
|
|
||||||
|
|
||||||
<p class="lead">
|
|
||||||
YunoHost depends exclusively on the participation of people like you.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-heart"></span> Spread the word
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Talk about software freedom, [self-hosting](/selfhosting) and YunoHost to your relatives and at your work. We rely on Datalove evangelists like you <3
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-exclamation-sign"></span> Testing
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
We need people able to test YunoHost deeply. If you find a bug, try to identify it, and report it on our <a href="https://github.com/YunoHost/issues/issues" target="_blank">bug tracker</a>.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-user"></span> Helping users
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Our support relies on contributors like you. Just come to [the support chatroom](/help) and help new users getting started, or pick a question on the <a href="https://forum.yunohost.org/" target="_blank">Forum</a>.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-cog"></span> Coding
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
You can involve in the YunoHost's development regardless of your skill.
|
|
||||||
Sysadmins, web developers, designers and pythonists <a href="https://github.com/YunoHost" target="_blank">are welcome</a>!
|
|
||||||
<br>
|
|
||||||
Learn [how to contribute](/dev), and join us on the [development chat room](xmpp:dev@conference.yunohost.org?join).
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-globe"></span> Localization
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Get involved by making YunoHost interfaces available in your language.
|
|
||||||
<a href="https://translate.yunohost.org/" target="_blank">Get started</a>!
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-edit"></span> Write
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Improve this documentation by [writing new pages](/write_documentation) or translating existing ones to your language.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-gift"></span> Packaging
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Extend YunoHost capabilities by [packaging new services and web applications](/packaging_apps).
|
|
||||||
Have a look of [what has been done yet](/apps)!
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<p class="lead" markdown="1">In any case, please come chat with us on [the dev chatroom](/chat_rooms) :-)</p>
|
|
||||||
|
|
|
@ -1,92 +0,0 @@
|
||||||
# <div dir="rtl">المساهمة</div>
|
|
||||||
|
|
||||||
<p dir="rtl" class="lead">
|
|
||||||
إنّ مصير واي يونوهوست YunoHost يُقرّره أناس و أنتم مِن بين هؤلاء
|
|
||||||
</p>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div dir="rtl" class="row">
|
|
||||||
<div dit="rtl" class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-heart"></span> تحدثوا عن المشروع مِن حولكم
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
تحدثوا عن البرمجيات الحرّة، تحدثوا عن واي يونوهوست YunoHost مع أقربائكم و زملائكم في العمل. حدّثوهم عن [الإستضافة الذاتية](/selfhosting)، نحن بحاجة و واثقون مِن قدرات محبي البيانات مثلكم 3></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div dir="rtl" class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-exclamation-sign"></span> جَرّبُوا
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
نحن بحاجة إلى تجريب حثيث لواي يونوهوست YunoHost. فإن صادفتم مشكلة، يرجى القيام بتحديد الخلل و ثم الإبلاغ عنه عبر
|
|
||||||
<a href="https://github.com/YunoHost/issues/issues" target="_blank">مُتعقب الأخطاء</a>.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div dir="rtl" class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-user"></span> ساعدوا المستخدمِين
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div dir="rtl" class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-cog"></span> أكتبوا الشفرة
|
|
||||||
</div>
|
|
||||||
<div dir="rtl" class="col col-md-8" markdown="1">
|
|
||||||
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
|
|
||||||
Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) !
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div dir="rtl" class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-globe"></span> ترجِموا
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
ساهموا في توفير واجهات واي يونوهوست YunoHost بلغتكم. <a href="https://translate.yunohost.org/" target="_blank">إبدأوا الآن</a> !
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div dir="rtl" class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-edit"></span> أكتبوا
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
ساهموا في تحسين هذا الدليل و ذلك [باقتراح صفحات جديدة](/write_documentation) أو بترجمة صفحاته إلى لغتكم.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div dir="rtl" class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-gift"></span> ساهموا في التحزيم
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
|
|
||||||
<br>
|
|
||||||
Un [salon de développement](xmpp:dev@conference.yunohost.org?join) est également disponible.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<p dir="rtl" class="lead" markdown="1">على أي حال تعالوا و انضموا إلى [غرفة المحادثة الخاصة بالمطوّرين](xmpp:dev@conference.yunohost.org?join) إن كنتم ترغبون في المساهمة :-)</p>
|
|
||||||
|
|
|
@ -1,90 +0,0 @@
|
||||||
# Contribuer
|
|
||||||
|
|
||||||
<p class="lead">
|
|
||||||
YunoHost dépend entièrement de la participation de gens comme vous.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-heart"></span> Passez le mot
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Parlez de logiciel libre, d’[auto-hébergement](/selfhosting), de YunoHost à vos proches et à votre travail. Nous comptons sur des évangélistes du Datalove comme vous <3
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-exclamation-sign"></span> Testez
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Nous avons besoin de tester YunoHost profondément. Si vous trouvez un bug, essayez de l’identifier, puis reportez-le sur notre <a href="https://github.com/YunoHost/issues/issues/new" target="_blank">bug tracker</a>.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-user"></span> Aidez les utilisateurs
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Notre support est communautaire et s’appuie sur des contributeurs comme vous. Venez simplement sur le [salon d'aide](/help), ou tentez de répondre aux questions du <a href="https://forum.yunohost.org/" target="_blank">Forum</a>. Vous pouvez aussi organiser des <a href="https://hackstub.netlib.re/wiki/index.php?title=Atelier_3_avenir%28s%29_d%27internet_-_Introduction_%C3%A0_Yunohost_et_la_brique_internet" target="_blank">ateliers de formation</a>.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-cog"></span> Codez
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Vous pouvez vous impliquer dans le développement de YunoHost peu importe votre niveau. Administrateurs système, développeurs web, designers et pythonistes <a href="https://github.com/YunoHost" target="_blank">sont les bienvenus</a>.<br>
|
|
||||||
Découvrez [comment contribuer](/dev), et rejoignez-nous sur le [salon de discussion](xmpp:dev@conference.yunohost.org?join) !
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-globe"></span> Traduisez
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Participez en rendant les interfaces de YunoHost disponibles dans votre langue. <a href="https://translate.yunohost.org/" target="_blank">Lancez-vous</a> !
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-edit"></span> Écrivez
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Améliorez cette documentation en [proposant de nouvelles pages](/write_documentation) ou en traduisant les existantes dans votre langue.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col col-md-3 lead">
|
|
||||||
<span class="glyphicon glyphicon-gift"></span> Packagez
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-8" markdown="1">
|
|
||||||
Étendez les capacités de YunoHost en [packageant de nouveaux services et applications web](/packaging_apps). Jetez un œil à [ce qui a déjà été fait](/apps) !
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<p class="lead" markdown="1">Dans tous les cas, venez discuter avec nous sur [le salon de développement](/chat_rooms) :-)</p>
|
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
# Contributor documentation
|
|
||||||
|
|
||||||
* [General ways of contributing to YunoHost](/contribute)
|
|
||||||
* [Chat rooms](/chat_rooms)
|
|
||||||
* [Writing documentation](/write_documentation)
|
|
||||||
* [Documentation writing guide](/doc_writing_guide)
|
|
||||||
* [Markdown guide](/doc_markdown_guide)
|
|
||||||
* [Power your code using Git & GitHub](/doc_use_git)
|
|
||||||
* Application packaging
|
|
||||||
* [Apps wishlist](/apps_wishlist)
|
|
||||||
* [General introduction to app packaging](/packaging_apps_start)
|
|
||||||
* [Technical introduction to app packaging](/packaging_apps)
|
|
||||||
* [How to use Git to package apps](/packaging_apps_git)
|
|
||||||
* [Setting up a dev environment with VirtualBox](/packaging_apps_virtualbox)
|
|
||||||
* [Manifest](/packaging_apps_manifest)
|
|
||||||
* [Scripts](/packaging_apps_scripts)
|
|
||||||
* [Arguments management](/packaging_apps_arguments_management)
|
|
||||||
* [Arguments format](/packaging_apps_arguments_format)
|
|
||||||
* [NGINX configuration](/packaging_apps_nginx_conf)
|
|
||||||
* [User groups and permissions](/groups_and_permissions)
|
|
||||||
* [Multi-instance](/packaging_apps_multiinstance)
|
|
||||||
* [Helpers](/packaging_apps_helpers)
|
|
||||||
* [Trap usage](/packaging_apps_trap)
|
|
||||||
* [App permissions](/packaging_apps_permissions)
|
|
||||||
* [Adding your app to the apps list](https://github.com/YunoHost/Apps/#contributing)
|
|
||||||
* [Advanced packaging features](/packaging_apps_advanced)
|
|
||||||
* [Application actions](/packaging_apps_actions)
|
|
||||||
* [Application configuration panel](/packaging_apps_config_panel)
|
|
||||||
* Quality tests
|
|
||||||
* [Package linter](https://github.com/YunoHost/package_linter)
|
|
||||||
* [Package check](https://github.com/YunoHost/package_check)
|
|
||||||
* [Applications levels](/packaging_apps_levels)
|
|
||||||
* [App Continuous Integration](https://ci-apps.yunohost.org)
|
|
||||||
* [App CI dashboard](https://dash.yunohost.org/appci/branch/stable)
|
|
||||||
* [App Continuous Integration for packagers](/packaging_apps_ci)
|
|
||||||
* [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines)
|
|
||||||
* [Contributing to the YunoHost core](/dev)
|
|
||||||
* [Setting up a dev environment with ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
|
|
||||||
* [Deb build chain](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
|
|
||||||
* Image building
|
|
||||||
* [x86 ISO](https://github.com/YunoHost/cd_build)
|
|
||||||
* [Raspberry Pi images](https://github.com/YunoHost/rpi-image)
|
|
||||||
* [Other ARM board images](https://github.com/YunoHost/arm-images)
|
|
||||||
* [Using the YunoHost API outside of the webadmin](/admin_api)
|
|
||||||
* [A discussion about shell variable scope](/shell_variables_scope)
|
|
|
@ -1,46 +0,0 @@
|
||||||
# Guide du contributeur
|
|
||||||
|
|
||||||
* [Liste des façons de contribuer à YunoHost](/contribute)
|
|
||||||
* [Salons de discussion](/chat_rooms)
|
|
||||||
* [Écrire de la documentation](/write_documentation)
|
|
||||||
* [Guide de redaction de la documentation](/doc_writing_guide)
|
|
||||||
* [Guide Markdown](/doc_markdown_guide)
|
|
||||||
* [Propulser son code avec Git & GitHub](/doc_use_git)
|
|
||||||
* Packaging d'application
|
|
||||||
* [Liste d'applications souhaitées par la communauté](/apps_wishlist)
|
|
||||||
* [Introduction générale au packaging d'apps](/packaging_apps_start)
|
|
||||||
* [Introduction technique au packaging d'apps](/packaging_apps)
|
|
||||||
* [Comment utiliser Git pour packager les applications](/packaging_apps_git)
|
|
||||||
* [Déployer un environnement de développement avec VirtualBox](/packaging_apps_virtualbox)
|
|
||||||
* [Manifest](/packaging_apps_manifest)
|
|
||||||
* [Scripts](/packaging_apps_scripts)
|
|
||||||
* [Gestion des arguments](/packaging_apps_arguments_management)
|
|
||||||
* [Format des arguments](/packaging_apps_arguments_format)
|
|
||||||
* [Configuration NGINX](/packaging_apps_nginx_conf)
|
|
||||||
* [Groupes et permissions](/groups_and_permissions)
|
|
||||||
* [Multi-instance](/packaging_apps_multiinstance)
|
|
||||||
* [Fonctions utiles](/packaging_apps_helpers)
|
|
||||||
* [Utilisation de 'trap'](/packaging_apps_trap)
|
|
||||||
* [App permissions](/packaging_apps_permissions)
|
|
||||||
* [Ajouter son application à la liste des apps](https://github.com/YunoHost/Apps/#contributing)
|
|
||||||
* [Feature de packaging avancées](/packaging_apps_advanced)
|
|
||||||
* [Actions pour une application](/packaging_apps_actions)
|
|
||||||
* [Panneau de configuration pour une application](/packaging_apps_config_panel)
|
|
||||||
* Tests de qualité
|
|
||||||
* [Package linter](https://github.com/YunoHost/package_linter)
|
|
||||||
* [Package check](https://github.com/YunoHost/package_check)
|
|
||||||
* [Niveaux des applications](/packaging_apps_levels)
|
|
||||||
* [Intégration continue des apps](https://ci-apps.yunohost.org)
|
|
||||||
* [Tableau de bord du CI des apps](https://dash.yunohost.org/appci/branch/stable)
|
|
||||||
* [Intégration continue pour packagers](/packaging_apps_ci)
|
|
||||||
* [YEP - YunoHost Enhancement Proposals](/packaging_apps_guidelines)
|
|
||||||
* [Contribuer à la partie "core" de YunoHost](/dev)
|
|
||||||
* [Déployer un environnement de dev avec ynh-dev](https://github.com/YunoHost/ynh-dev/blob/master/README.md)
|
|
||||||
* [Construction des paquets debian](https://github.com/YunoHost/vinaigrette/blob/master/README.md)
|
|
||||||
* [Feuilles de route du projet](https://github.com/YunoHost/issues/milestones?direction=asc&sort=title&state=open)
|
|
||||||
* Construction des images
|
|
||||||
* [x86 ISO](https://github.com/YunoHost/cd_build)
|
|
||||||
* [Images Raspberry Pi](https://github.com/YunoHost/rpi-image)
|
|
||||||
* [Autres images pour cartes ARM](https://github.com/YunoHost/arm-images)
|
|
||||||
* [Utiliser l'API YunoHost en dehors de la webadmin](/admin_api)
|
|
||||||
* [Une discussion sur la portée des variables en bash](/shell_variables_scope)
|
|
|
@ -1,10 +0,0 @@
|
||||||
# Diagnose YunoHost functioning
|
|
||||||
|
|
||||||
To diagnose that all critical aspects of your server are properly configured,
|
|
||||||
you should run a diagnosis from the webadmin in the "Diagnosis" section. (This
|
|
||||||
feature was added in YunoHost 3.8).
|
|
||||||
|
|
||||||
TODO: elaborate on the fact that the diagnosis runs periodically, sends an email
|
|
||||||
to root which is forwarded to the very first user created, and that issues
|
|
||||||
should either be fixed or ignored (if they are understood/not relevant)
|
|
||||||
otherwise an email will be sent twice a day..
|
|
|
@ -1,13 +0,0 @@
|
||||||
# Diagnostic du bon fonctionnement de YunoHost
|
|
||||||
|
|
||||||
Pour vérifier que tous les aspects critiques de votre serveur sont correctement
|
|
||||||
configurés, il est recommandé d'utiliser le système de diagnostic disponible
|
|
||||||
dans la webadmin de YunoHost. (Cette fonctionnalité a été ajoutée dans la version
|
|
||||||
3.8)
|
|
||||||
|
|
||||||
Quelques points à retenir:
|
|
||||||
* Le diagnostique tourne périodiquement
|
|
||||||
* Un email est envoyé à root, qui est normalement forwardé vers le premier utilisateur créé
|
|
||||||
* Les problèmes trouvés doivent soient être réglé, soit ignorés (si ils sont
|
|
||||||
compris ou ne sont pas pertinents) autrement un mail est envoyé deux fois par
|
|
||||||
jour.
|
|
18
docker-compose.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
grav:
|
||||||
|
build: ./
|
||||||
|
ports:
|
||||||
|
- 8000:80
|
||||||
|
volumes:
|
||||||
|
- ./themes/yunohost-docs:/var/www/html/user/themes/yunohost-docs
|
||||||
|
- ./config:/var/www/html/user/config
|
||||||
|
- ./pages:/var/www/html/user/pages
|
||||||
|
- ./images:/var/www/html/user/images
|
||||||
|
# tntsearch:
|
||||||
|
# restart: "no"
|
||||||
|
# build: ./
|
||||||
|
# volumes:
|
||||||
|
# - ./config:/var/www/html/user/config
|
||||||
|
# - ./pages:/var/www/html/user/pages
|
||||||
|
# command: bin/plugin tntsearch index
|
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/yunohost/ (YunoHost v4+)
|
|
||||||
* I386 (old computers)
|
|
||||||
* https://hub.docker.com/r/domainelibre/yunohost-i386/ (YunoHost v4+)
|
|
||||||
* ARMV7 (Raspberry Pi 2/3 ...)
|
|
||||||
* https://hub.docker.com/r/domainelibre/yunohost-arm/ (YunoHost v4+)
|
|
||||||
* ARMV6 (Raspberry Pi 1)
|
|
||||||
* https://hub.docker.com/r/tuxalex/yunohost-armv6/ (old yunoHost version)
|
|
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/yunohost/ (YunoHost v4+)
|
|
||||||
* I386 (anciens pc)
|
|
||||||
* https://hub.docker.com/r/domainelibre/yunohost-i386/ (YunoHost v4+)
|
|
||||||
* ARMV7 (Raspberry Pi 2/3 ...)
|
|
||||||
* https://hub.docker.com/r/domainelibre/yunohost-arm/ (YunoHost v4+)
|
|
||||||
* ARMV6 (Raspberry Pi 1)
|
|
||||||
* https://hub.docker.com/r/tuxalex/yunohost-armv6/ (ancienne version de YunoHost)
|
|
34
docs.md
|
@ -1,34 +0,0 @@
|
||||||
# Documentation
|
|
||||||
|
|
||||||
<p class="lead">
|
|
||||||
YunoHost's documentation has 2 different sections:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="row text-center">
|
|
||||||
|
|
||||||
<div class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Administrator guide</a>
|
|
||||||
<p><small class="text-muted">Including installation, server management and application management</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Contributor guide</a>
|
|
||||||
<p><small class="text-muted">Which contains everything you have to know about us and the way we work</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
* Project's life:
|
|
||||||
* [Frequently asked questions](/faq)
|
|
||||||
* [Project news](/news)
|
|
||||||
* [Project organization](/project_organization)
|
|
||||||
* [Project budget](/project_budget)
|
|
||||||
* [Forum](https://forum.yunohost.org)
|
|
||||||
* [Chat rooms](/chat_rooms)
|
|
||||||
* [Communication](/communication)
|
|
||||||
* [Support / Help](/help)
|
|
||||||
* [Sponsors and partners](/sponsors_partners)
|
|
||||||
|
|
||||||
* Use example:
|
|
||||||
* [YunoHost for non-profit organisations](/use_case_non-profit_organisations)
|
|
||||||
* (FR) [YunoHost for CHATONS (A collective of independant, transparent, open, neutral and ethical hosters providing FLOSS-based online services.)](https://wiki.chatons.org/doku.php/yunohost)
|
|
31
docs_ar.md
|
@ -1,31 +0,0 @@
|
||||||
#<div dir="auto">الدليل</div>
|
|
||||||
|
|
||||||
<p dir="rtl" class="lead">
|
|
||||||
دليل واي يونوهوست YunoHost يرتكز أساسًا على ثلاثة محاور :
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="row text-center">
|
|
||||||
|
|
||||||
<div dir="rtl" class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> دليل المدير</a>
|
|
||||||
<p><small class="text-muted">يتطرق إلى طريقة التنصيب و إدارة السيرفر و التطبيقات</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div dir="rtl" class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> دليل المساهم</a>
|
|
||||||
<p><small class="text-muted">يحتوي على كافة المعلومات التي تخصنا و أسلوب عملنا و مساهمتنا</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
* Project's life:
|
|
||||||
* [Frequently asked questions](/faq)
|
|
||||||
* [Project organization](/project_organization)
|
|
||||||
* [Blog](https://forum.yunohost.org/c/announcement)
|
|
||||||
* [Forum](https://forum.yunohost.org)
|
|
||||||
* [Chat rooms](/chat_rooms)
|
|
||||||
* [Communication](/communication)
|
|
||||||
* [Support / Help](/help)
|
|
||||||
|
|
||||||
* استخدم مثال:
|
|
||||||
* [YunoHost للمنظمات غير الهادفة للربح](/use_case_non-profit_organisations)
|
|
31
docs_de.md
|
@ -1,31 +0,0 @@
|
||||||
# Documentation
|
|
||||||
|
|
||||||
<p class="lead">
|
|
||||||
Die YunoHost Dokumentation ist in 2 Bereiche aufgeteilt:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="row text-center">
|
|
||||||
|
|
||||||
<div class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Handbuch für Administratoren</a>
|
|
||||||
<p><small class="text-muted">Befasst sich mit den Installationsschritten und der Verwaltung von Server und Apps.</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Handbuch für Mitwirkende</a>
|
|
||||||
<p><small class="text-muted">Alles, was du über uns und unsere Art zu arbeiten wissen musst.</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
* Das Projektleben:
|
|
||||||
* [Häufig gestellte Fragen](/faq)
|
|
||||||
* [Projektorganisation](/project_organization)
|
|
||||||
* [Blog](https://forum.yunohost.org/c/announcement)
|
|
||||||
* [Forum](https://forum.yunohost.org)
|
|
||||||
* [Chaträume](/chat_rooms)
|
|
||||||
* [Kommunikation](/communication)
|
|
||||||
* [Support / Hilfe](/help)
|
|
||||||
|
|
||||||
* Verwenden Sie ein Beispiel:
|
|
||||||
* [YunoHost für gemeinnützige Organisationen](/use_case_non-profit_organisations)
|
|
34
docs_fr.md
|
@ -1,34 +0,0 @@
|
||||||
# Documentation
|
|
||||||
|
|
||||||
<p class="lead">
|
|
||||||
La documentation de YunoHost s’articule autour de deux sections :
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="row text-center">
|
|
||||||
|
|
||||||
<div class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Guide de l’administrateur</a>
|
|
||||||
<p><small class="text-muted">Incluant l’installation, la gestion du serveur et des applications</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Guide du contributeur</a>
|
|
||||||
<p><small class="text-muted">Qui contient tout ce que vous devez savoir à propos de nous et de notre manière de travailler</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
* Vie du projet :
|
|
||||||
* [Foire aux questions](/faq)
|
|
||||||
* [Nouvelles du projet](/news)
|
|
||||||
* [Organisation du projet](/project_organization)
|
|
||||||
* [Budget previsionnel](/project_budget)
|
|
||||||
* [Forum](https://forum.yunohost.org)
|
|
||||||
* [Salons de discussions](/chat_rooms)
|
|
||||||
* [Communication extérieure](/communication)
|
|
||||||
* [Support / Aide](/help)
|
|
||||||
* [Mécénes et partenaires](/sponsors_partners_fr)
|
|
||||||
|
|
||||||
* Exemple d'utilisation :
|
|
||||||
* [YunoHost pour les organisations à but non lucratif](/use_case_non-profit_organisations)
|
|
||||||
* [YunoHost pour les CHATONS (Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires)](https://wiki.chatons.org/doku.php/yunohost)
|
|
31
docs_it.md
|
@ -1,31 +0,0 @@
|
||||||
# Documentazione
|
|
||||||
|
|
||||||
<p class="lead">
|
|
||||||
La documentazione di YunoHost ha 2 differenti sezioni:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="row text-center">
|
|
||||||
|
|
||||||
<div class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-primary btn-lg" href="/admindoc"><span class="glyphicon glyphicon-lock"></span> Guida di amministrazione</a>
|
|
||||||
<p><small class="text-muted">Include l'installazione, la gestione del server e delle applicazioni</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col col-md-4 col-md-offset-1">
|
|
||||||
<a class="btn btn-danger btn-lg" href="/contributordoc"><span class="glyphicon glyphicon-heart"></span> Guida del contributore</a>
|
|
||||||
<p><small class="text-muted">Contiene tutto quello che devi sapere su di noi e su come lavoriamo</small></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
* Vita del progetto :
|
|
||||||
* [Frequently asked questions](/faq)
|
|
||||||
* [Project organization](/project_organization)
|
|
||||||
* [Blog](https://forum.yunohost.org/c/announcement)
|
|
||||||
* [Forum](https://forum.yunohost.org)
|
|
||||||
* [Chat rooms](/chat_rooms)
|
|
||||||
* [Communication](/communication)
|
|
||||||
* [Supporto / Aiuto](/help)
|
|
||||||
|
|
||||||
* Usa l'esempio :
|
|
||||||
* [YunoHost per le organizzazioni senza scopo di lucro](/use_case_non-profit_organisations)
|
|
47
domains.md
|
@ -1,47 +0,0 @@
|
||||||
# Domains, DNS conf and certificate
|
|
||||||
|
|
||||||
YunoHost allows you to manage and serve several domains on the same server. For instance, you can host a blog and Nextcloud on a first domain `yolo.com`, and a web mail client on a second domain `swag.nohost.me`. Each domain is automatically configured to handle web services, mail services and XMPP services.
|
|
||||||
|
|
||||||
Domains can be managed in the 'Domain' section of the webadmin, or through the `yunohost domain` category of the command line. Each time you add a domain, it is expected that you bought it (or own it) on a domain registrar, so you can manage the [DNS configuration](dns). The exception is the [`.nohost.me`, `.noho.st` and `ynh.fr` domains](/dns_nohost_me) which are paid for by the YunoHost Project, and can be directly integrated with YunoHost thanks to an automated dynDNS setup. (To limit costs and abuses, each instance may only have one of these domains setup at any given time).
|
|
||||||
|
|
||||||
The domain chosen during the postinstall is defined as the main domain of the server : this is where the SSO and the web admin interface will be available. The main domain can later be changed through the web admin in Domains > (the domain) > Set default, or with the command line `yunohost tools maindomain`.
|
|
||||||
|
|
||||||
Finally, take note that, in the context of YunoHost, there is no hierarchy between the domains it knows. In the previous example, you may add a third domain `foo.yolo.com` - but it would be considered as a domain independent of `yolo.com`.
|
|
||||||
|
|
||||||
## Non-latin characters
|
|
||||||
|
|
||||||
If your domain has special, non-latin characters, you need to use its [internationalized version](https://en.wikipedia.org/wiki/Internationalized_domain_name) through [Punycode](https://en.wikipedia.org/wiki/Punycode). You can use [this converter](https://www.charset.org/punycode), and use the converted domain name in your YunoHost configuration.
|
|
||||||
|
|
||||||
## DNS configuration
|
|
||||||
|
|
||||||
DNS (Domain Name System) is a system that allows computers from around the world to translate human-readable domain names (such as `yolo.com`) to machine-understandable adresses called IP addresses (such as `11.22.33.44`). For this translation (and other features) to work, you must carefully configure DNS records.
|
|
||||||
|
|
||||||
YunoHost can generate a recommended DNS configuration for each domain, including elements needed for mail and XMPP. The recommended DNS configuration is available in the webadmin via Domain > (the domain) > DNS configuration, or with the command `yunohost domain dns-conf the.domain.tld`.
|
|
||||||
|
|
||||||
## SSL/HTTPS certificates
|
|
||||||
|
|
||||||
Another important aspect of domain configuration is the SSL/HTTPS certificate. YunoHost is integrated with Let's Encrypt, so once your server is correctly reachable from anybody on the internet through the domain name, the administrator can request a Let's Encrypt certificate. See the documentation about [certificates](certificate) for more information.
|
|
||||||
|
|
||||||
## Subpaths vs. individual domains per apps
|
|
||||||
|
|
||||||
In the context of YunoHost, it is quite common to have a single (or a few) domains on which several apps are installed in "subpaths", so that you end up with something like this:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yolo.com
|
|
||||||
├── /blog : Wordpress (a blog)
|
|
||||||
├── /cloud : Nextcloud (a cloud service)
|
|
||||||
├── /rss : TinyTiny RSS (a RSS reader)
|
|
||||||
├── /wiki : DokuWiki (a wiki)
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively, you may choose to install each (or some) apps on a dedicated domain. This might look prettier for end users, but is generally considered more complicated and less efficient in the context of YunoHost, since you need to add a new domain each time. Nevertheless, some apps might need an entire domain dedicated to them, for technical reasons.
|
|
||||||
|
|
||||||
If all apps from the previous example were installed on a separate domain, this would give something like this:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
blog.yolo.com : Wordpress (a blog)
|
|
||||||
cloud.yolo.com : Nextcloud (a cloud service)
|
|
||||||
rss.yolo.com : TinyTiny RSS (a RSS reader)
|
|
||||||
wiki.yolo.com : DokuWiki (a wiki)
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
# Domaines, configuration DNS et certificats
|
|
||||||
|
|
||||||
YunoHost permet de gérer et de servir plusieurs domaines sur un même serveur. Vous pouvez donc héberger, par exemple, un blog et un Nextcloud sur un premier domaine `yolo.com`, et un client de messagerie web sur un second domaine `swag.nohost.me`. Chaque domaine est automatiquement configuré pour pouvoir gérer des services web, des courriels et une messagerie instantannée XMPP.
|
|
||||||
|
|
||||||
Les domaines peuvent être gérés dans la section 'Domaine' de la webadmin, ou via la catégorie `yunohost domain` de la ligne de commande. Chaque fois que vous ajoutez un domaine, il est supposé que vous avez acheté (ou en tout cas que vous contrôliez) le domaine, de sorte que vous puissiez gérer la [configuration DNS](dns) ce celui-ci. Une exception concerne les [domaines en `.nohost.me`, `.noho.st` et `ynh.fr`](/dns_nohost_me) qui sont offerts par le Projet YunoHost, et peuvent être directement intégrés avec YunoHost grâce à une configuration dynDNS automatique. (Pour limiter les abus et les coûts, une instance ne peut avoir qu'un seul domaine offert à la fois).
|
|
||||||
|
|
||||||
Le domaine choisi lors de la postinstall est défini comme le domaine principal du serveur : c'est là que le SSO et l'interface d'administration web seront disponibles. Le domaine principal peut être modifié ultérieurement via la webadmin dans Domaines > (le domaine) > Définir par défaut, ou avec la ligne de commande `yunohost tools maindomain`.
|
|
||||||
|
|
||||||
Enfin, il faut noter que, dans le contexte de YunoHost, il n'y a pas de hiérarchie entre les domaines qu'il connaît. Dans l'exemple précédent, on peut ajouter un troisième domaine `foo.yolo.com` - mais il serait considéré comme un domaine indépendant de `yolo.com`.
|
|
||||||
|
|
||||||
## Caractères non latins
|
|
||||||
|
|
||||||
Si votre domain contient des caractères spéciaux, non latins, vous devez utiliser sa [version internationalisée](https://fr.wikipedia.org/wiki/Nom_de_domaine_internationalis%C3%A9) en [Punycode](https://fr.wikipedia.org/wiki/Punycode). Vous pouvez utiliser [ce convertisseur](https://www.charset.org/punycode), et utiliser le nom de domaine converti dans YunoHost.
|
|
||||||
|
|
||||||
## Configuration DNS
|
|
||||||
|
|
||||||
DNS (Domain Name System) est un système qui permet aux ordinateurs du monde entier de traduire les noms de domaine lisibles par l'homme (comme `yolo.com`) en adresses IP compréhensibles par les machines (comme `11.22.33.44`). Pour que cette traduction (et d'autres fonctionnalités) fonctionne, il faut configurer soigneusement les enregistrements DNS.
|
|
||||||
|
|
||||||
YunoHost peut générer une configuration DNS recommandée pour chaque domaine, y compris les enregistrements nécessaires pour les parties emails et XMPP. La configuration DNS recommandée est disponible dans l'administrateur web via Domaine > (le domaine) > configuration DNS, ou avec la commande `yunohost domain dns-conf the.domain.tld`.
|
|
||||||
|
|
||||||
## Certificats SSL/HTTPS
|
|
||||||
|
|
||||||
Un autre aspect important de la configuration des domaines est le certificat SSL/HTTPS. YunoHost est intégré avec Let's Encrypt, de sorte qu'une fois que votre serveur est correctement accessible depuis n'importe qui sur Internet via le nom de domaine, l'administrateur peut demander l'installation d'un certificat Let's Encrypt. Voir la documentation sur les [certificats](/certificate) pour plus d'informations.
|
|
||||||
|
|
||||||
## Sous-chemins vs. domaines individuels par application
|
|
||||||
|
|
||||||
Dans le contexte de YunoHost, il est assez courant d'avoir un seul (ou quelques) domaines sur lesquels plusieurs applications sont installées dans des "sous-chemins", de sorte que l'on se retrouve avec quelque chose comme ceci :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yolo.com
|
|
||||||
├─── /blog : Wordpress (un blog)
|
|
||||||
├─── /cloud : Nextcloud (un service de cloud)
|
|
||||||
├─── /rss : TinyTiny RSS (un lecteur RSS)
|
|
||||||
├─── /wiki : DokuWiki (un wiki)
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternativement, on peut choisir d'installer chaque application (ou certaines) sur un domaine dédié. Cela peut sembler plus joli pour les utilisateurs finaux, mais est généralement considéré comme plus compliqué et moins efficace dans le contexte de YunoHost, car vous devez ajouter un nouveau domaine à chaque fois. Néanmoins, certaines applications peuvent avoir besoin d'un domaine entier qui leur est dédié, pour des raisons techniques.
|
|
||||||
|
|
||||||
Si toutes les applications de l'exemple précédent étaient installées sur un domaine séparé, cela donnerait quelque chose comme ceci :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
blog.yolo.com : Wordpress (un blog)
|
|
||||||
cloud.yolo.com : Nextcloud (un service de cloud)
|
|
||||||
rss.yolo.com : TinyTiny RSS (un lecteur RSS)
|
|
||||||
wiki.yolo.com : DokuWiki (un wiki)
|
|
||||||
```
|
|
|
@ -1,43 +0,0 @@
|
||||||
## Configurer un client email
|
|
||||||
|
|
||||||
Vous pouvez récupérer et envoyer des emails avec votre instance YunoHost grâce à des logiciels comme Mozilla Thunderbird, ou sur votre smartphone grâce à des applications comme K-9 Mail.
|
|
||||||
|
|
||||||
Normalement, votre client email devrait recevoir la configuration automatiquement lorsque vous ajoutez un compte. Si cela ne fonctionne pas, il est possible de le faire manuellement en suivant les quelques étapes suivantes. (Cependant, cela devrait être compris comme étant un bug dans YunoHost, et le cas échéant, c'est cool si vous nous notifiez du problème pour que nous puissions tenter de reproduire et corriger le problème !)
|
|
||||||
|
|
||||||
### Réglages génériques
|
|
||||||
|
|
||||||
Voici les éléments que vous devrez entrer pour configurer manuellement votre client email (`domain.tld` fait référence à ce qui est après le @ dans votre adresse email, et `nom_dutilisateur` ce qui est avant @).
|
|
||||||
|
|
||||||
| Protocole | Port | Chiffrement | Authentification | Login |
|
|
||||||
| :--: | :-: | :--: | :--: | :--: |
|
|
||||||
| IMAP | 993 | SSL/TLS | Mot de passe normal | `nom_dutilisateur` (sans `@domain.tld`) |
|
|
||||||
| SMTP | 587 | STARTTLS | Mot de passe normal | `nom_dutilisateur` (sans `@domain.tld`) |
|
|
||||||
|
|
||||||
### <img src="images/thunderbird.png" width=50> Configurer Mozilla Thunderbird
|
|
||||||
|
|
||||||
Pour configurer manuellement un nouveau compte dans Thunderbird commencez par remplir les informations de base (Nom, adresse et mot de passe), cliquez sur Continuer puis Configuration Manuelle. Enlevez le `.` avant le nom de domaine. Sélectionnez le port 993 avec SSL/TLS pour IMAP, et le port 587 avec STARTTLS pour SMTP. Sélectionnez 'Mot de passe normal' pour l'authentification. Testez la configuration puis validez. (Il vous faudra ensuite possiblement accepter des certificats pour que tout fonctionne correctement.)
|
|
||||||
|
|
||||||
<img src="/images/thunderbird_config_1.png" width=900>
|
|
||||||
<img src="/images/thunderbird_config_2.png" width=900>
|
|
||||||
|
|
||||||
* [Gérer les alias mails](https://support.mozilla.org/en-US/kb/configuring-email-aliases)
|
|
||||||
|
|
||||||
### <img src="images/k9mail.png" width=50> Configurer K-9 Mail (sur Android)
|
|
||||||
|
|
||||||
Suivez les instructions suivantes. (Comme pour Thunderbird, il vous faudra peut-être accepter des certificats à un moment)
|
|
||||||
|
|
||||||
<a href="/images/k9mail_config_1.png"><img src="/images/k9mail_config_1.png" width=200/></a>
|
|
||||||
<a href="/images/k9mail_config_2.png"><img src="/images/k9mail_config_2.png" width=200/></a>
|
|
||||||
<a href="/images/k9mail_config_3.png"><img src="/images/k9mail_config_3.png" width=200/></a>
|
|
||||||
<a href="/images/k9mail_config_4.png"><img src="/images/k9mail_config_4.png" width=200/></a>
|
|
||||||
|
|
||||||
### <img src="images/dekko-app.png" width=50> Configure Dekko (on Ubuntu Touch)
|
|
||||||
|
|
||||||
La première fois, vous pouvez simplement choisir "Ajouter un compte". Si vous avez déjà un compte configuré, appuyez sur le menu hamburger puis sur le rouage, choisissez Courrier, Comptes et appuyez sur le symbole " + ".
|
|
||||||
|
|
||||||
Sélectionnez ensuite IMAP. Remplissez les champs et appuyez sur Suivant. Dekko va ensuite chercher la configuration. Vérifiez que tous les champs sont corrects. Assurez-vous d'avoir votre nom d'utilisateur yunohost, PAS votre adresse email et choisissez "Autoriser les certificats non fiables". Faites ceci pour IMAP et SMTP et appuyez sur Suivant. Dekko va ensuite synchroniser le compte après quoi vous aurez terminé. Félicitations !
|
|
||||||
|
|
||||||
<a href="/images/dekko_config_1.png"><img src="/images/dekko_config_1.png" width=200/></a>
|
|
||||||
<a href="/images/dekko_config_2.png"><img src="/images/dekko_config_2.png" width=200/></a>
|
|
||||||
<a href="/images/dekko_config_3.png"><img src="/images/dekko_config_3.png" width=200/></a>
|
|
||||||
<a href="/images/dekko_config_4.png"><img src="/images/dekko_config_4.png" width=200/></a>
|
|
|
@ -1,77 +0,0 @@
|
||||||
# Configure SMTP relay
|
|
||||||
|
|
||||||
If your ISP blocks port 25, if you can't set a reverseDNS on your server, or if you have any other troubles using the built-in SMTP server on YunoHost, you may want to setup your YunoHost server to use a SMTP relay.
|
|
||||||
|
|
||||||
## What is a SMTP relay?
|
|
||||||
|
|
||||||
A SMTP relay is basically a third party hosted SMTP server that will send emails on behalf of your own SMTP server (Postfix service on YunoHost).
|
|
||||||
Once setup correctly on YunoHost, it will operate in a totally transparent manner, both for you and for your correspondents: they will see emails as coming from your YunoHost main URL, but all the sending will be delegated to the SMTP relay you have chosen and configured.
|
|
||||||
|
|
||||||
<div class="alert alert-warning" markdown="1">
|
|
||||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
|
||||||
It's important to note that using a SMTP relay has to be seen as a (big) compromise in the world of self-hosting. Indeed, when using a SMTP relay, you will not only let a third party send emails on your behalf, but also be able to access to the full content of all the emails you'll send. Be also aware that a SMTP relay is setup for your whole YunoHost server: you can't choose which emails or which users go through it because all future emails will.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
## How to use a SMTP relay with YunoHost?
|
|
||||||
|
|
||||||
YunoHost has a built-in SMTP relay configuration, available from version 4.1. That configuration is not yet available from the admin web interface, though. You will have to use the command line interface.
|
|
||||||
|
|
||||||
### Step 1: Register on a SMTP relay provider
|
|
||||||
|
|
||||||
Many providers exist. Some have free plans with or without limitations, it's up to you. As written above, you have to be careful with your choice as you will basically handover all your emails to that third party. Whether you can trust it or not, that's your call!
|
|
||||||
|
|
||||||
### Step 2: Setup your DNS records correctly
|
|
||||||
|
|
||||||
Once registered, the SMTP relay provider will usually ask you to modify your DNS.
|
|
||||||
Standard procedure is to add a DKIM key and a SPF key to your DNS records.
|
|
||||||
The way to modify these records and the value of the keys you'll have to add depend both on your domain name provider and SMTP relay provider.
|
|
||||||
|
|
||||||
Usually, the SMTP relay provider will provide you with a guide on how to modify these records, together with an automatic check tool that will tell you when your DNS have been setup correctly. That step is mandatory to prove "the world" that you, owner of your domain name, did explicitly authorize your SMTP relay provider to send emails on your behalf.
|
|
||||||
|
|
||||||
Please note that modifying your DNS records could sometimes take over 24h to take effect, so be patient!
|
|
||||||
|
|
||||||
<div class="alert alert-warning" markdown="1">
|
|
||||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
|
||||||
From now on, a non trusty SMTP relay provider could send emails from your main domain without telling you.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
### Step 3: Setup YunoHost correctly
|
|
||||||
|
|
||||||
In order to setup your YunoHost to use your SMTP relay, you will have to configure three things:
|
|
||||||
1. Your SMTP relay URL (for this tutorial we will use `smtprelay.tld`)
|
|
||||||
2. Your SMTP relay username (for this tutorial we will use `username`)
|
|
||||||
3. Your SMTP relay password (for this tutorial we will use `password`)
|
|
||||||
|
|
||||||
Your SMTP relay will obviously provide you with these three things, that should be available in your control panel or whatsoever.
|
|
||||||
|
|
||||||
You can log into your YunoHost server using SSH:
|
|
||||||
```bash
|
|
||||||
ssh admin@yourdomain.tld
|
|
||||||
```
|
|
||||||
|
|
||||||
Then you can update the three values as below:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo yunohost settings set smtp.relay.host -v smtprelay.tld
|
|
||||||
sudo yunohost settings set smtp.relay.user -v username
|
|
||||||
sudo yunohost settings set smtp.relay.password -v password
|
|
||||||
```
|
|
||||||
|
|
||||||
It may be a good idea to double confirm your settings by doing:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo yunohost settings list
|
|
||||||
```
|
|
||||||
|
|
||||||
Your SMTP relay is now configured!
|
|
||||||
|
|
||||||
<div class="alert alert-warning" markdown="1">
|
|
||||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
|
||||||
From now on, a non trusty SMTP relay provider could read or use the data of all the emails you send without telling you (but still won't be able to read nor to use the data from emails you receive).
|
|
||||||
</div>
|
|
||||||
|
|
||||||
### Step 4: Check your setup
|
|
||||||
|
|
||||||
You can check your setup by sending emails and try if everything works.
|
|
||||||
Some of the SMTP relay will give you insights about the emails you send so that can also be a good way to check that everythings works as needed.
|
|
||||||
Of course, you can always have a try with [mail-tester.com](mail-tester.com) to check for any problem or discrepancy.
|
|
|
@ -1,121 +0,0 @@
|
||||||
# Adding an external storage to your server
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
If you did not allocate a large partition to `/home` before installing YunoHost, and that your apps require a lot of spaces, you can still add an external driver after setting up your system.
|
|
||||||
|
|
||||||
## Before starting
|
|
||||||
|
|
||||||
Even though these steps are relatively simple, they may appear technical. In any case, they require you to **take your time**.
|
|
||||||
|
|
||||||
You should be connected as root on your server, for instance via [SSH](/ssh). (Note: being logged as `admin`, you can upgrade to `root` with the command `sudo su`)
|
|
||||||
|
|
||||||
It can be useful to [create a backup](/backup) of your install before starting.
|
|
||||||
|
|
||||||
You should also have your external drive (plugged via USB or SATA).
|
|
||||||
|
|
||||||
## 1. Connect and identify the disk
|
|
||||||
|
|
||||||
Start by connecting your drive to the system. You shall then identify which name is used by the system to refer to the disk.
|
|
||||||
|
|
||||||
You can do this with this command :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
lsblk
|
|
||||||
```
|
|
||||||
|
|
||||||
It may yield something like this :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
|
|
||||||
sda 8:0 0 931.5G 0 disk
|
|
||||||
└─sda1 8:1 0 931.5G 0 part
|
|
||||||
mmcblk0 179:0 0 14.9G 0 disk
|
|
||||||
├─mmcblk0p1 179:1 0 47.7M 0 part /boot
|
|
||||||
└─mmcblk0p2 179:2 0 14.8G 0 part /
|
|
||||||
```
|
|
||||||
|
|
||||||
Here, `mmcblk0` corresponds to an SD card of 16Go (the partitions `mmcblk0p1` et `mmcblk0p2` are used as the boot partition `/boot` and the system partition `/`). The external drive is `sda` which is about 1TB and has only one partition `sda1` which is not mounted (no "MOUNTPOINT").
|
|
||||||
|
|
||||||
<div class="alert alert-warning" markdown="1">
|
|
||||||
<span class="glyphicon glyphicon-warning-sign"></span> On a different setup, your system partition might be `sda` and so your external drive might be `sdb` for instance.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
## 2. (Optional) Format the disk
|
|
||||||
|
|
||||||
This operation is optional if your disk has already been formatted.
|
|
||||||
|
|
||||||
First let's create a new partition on the disk :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
fdisk /dev/YOUR_DISK
|
|
||||||
```
|
|
||||||
|
|
||||||
then sucessfully type `n`, `p`, `1`, `Enter`, `Enter`, then `w` to create the new partition.
|
|
||||||
|
|
||||||
Check with `lsblk` that your disk really does contain a single partition.
|
|
||||||
|
|
||||||
Before you can use your disk it has to be formatted.
|
|
||||||
|
|
||||||
You should be aware that **formating a drive implies to erasing every data on it !** If your disk is already "clean", you may ignore this step.
|
|
||||||
|
|
||||||
To format the partition :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkfs.ext4 /dev/YOUR_DISK1
|
|
||||||
# then 'y' to validate
|
|
||||||
```
|
|
||||||
|
|
||||||
(Replace `YOUR_DISK1` by the name of the first partition on the disk. Be careful not to do any mistake here, as it can mean erasing data on your main system if you are using the wrong name ! In the previous example, the name of our disk was `sda`.)
|
|
||||||
|
|
||||||
|
|
||||||
## 3. Mount the disk
|
|
||||||
|
|
||||||
"Mounting" a disk corresponds to making it effectively accessible in the filesystem tree. Here, we choose the arbitrary name `/media/storage` but you can choose a different name (for instance, `/media/my_disk` ... ).
|
|
||||||
|
|
||||||
Let's start by creating the directory :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkdir /media/storage
|
|
||||||
```
|
|
||||||
|
|
||||||
Then we can manually mount the disk with :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mount /dev/YOUR_DISK1 /media/storage
|
|
||||||
```
|
|
||||||
|
|
||||||
(Here, `/dev/YOUR_DISK1` corresponds to the first partition on the disk)
|
|
||||||
|
|
||||||
Next, you should be able to create files in `/media/storage`, and, for instance, add `/media/storage` as an external drive in Nextcloud.
|
|
||||||
|
|
||||||
## 4. Mount the disk automatically at boot
|
|
||||||
|
|
||||||
So far, we only mounted the disk manually. But it can be nice and useful to have it being mounted automatically at each boot.
|
|
||||||
|
|
||||||
Let's start by finding the UUID (universal identifier) of the disk with :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
blkid | grep "/dev/YOUR_DISK1:"
|
|
||||||
# Should return something like
|
|
||||||
# /dev/sda1:UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" TYPE="ext4" PARTUUID="34e4b02c-02"
|
|
||||||
```
|
|
||||||
|
|
||||||
Let's add a line in the file `/etc/fstab` which manages which disks are mounted at boot. We open this file with `nano` :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
nano /etc/fstab
|
|
||||||
```
|
|
||||||
|
|
||||||
And add this line :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" /media/storage ext4 defaults,nofail 0 0
|
|
||||||
```
|
|
||||||
|
|
||||||
(this line should be adapated according to previous info and choices)
|
|
||||||
|
|
||||||
Use Ctrl+X then `y` to save.
|
|
||||||
|
|
||||||
You can then reboot the system to test if the disk is mounted automatically.
|
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
# Ajouter un stockage externe à son serveur
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
Si vous n'avez pas dédié une grande partition à `/home` avant d'installer YunoHost, et que vos applications nécessitent beaucoup d'espace disque, vous pouvez toujours ajouter un disque externe *a posteriori*.
|
|
||||||
|
|
||||||
## Avant de commencer
|
|
||||||
|
|
||||||
Les étapes à réaliser, même si elles sont relativement simples, peuvent parfois paraître techniques et nécessitent dans tous les cas **de prendre son temps**.
|
|
||||||
|
|
||||||
Vous devez également être connecté en root sur votre système, par exemple via [SSH](/ssh). (Note : en étant connecté en tant qu'utilisateur `admin`, vous pouvez passer root avec `sudo su`)
|
|
||||||
|
|
||||||
Il peut être utile de [faire un backup](/backup) de votre installation.
|
|
||||||
|
|
||||||
Vous devez également disposer d'un disque dur supplémentaire (branché en USB ou en SATA).
|
|
||||||
|
|
||||||
## 1. Connecter et identifier le disque
|
|
||||||
|
|
||||||
Commencez par brancher ce disque dur à votre système. Il faut ensuite identifier sous quel nom est désigné le disque par le système.
|
|
||||||
|
|
||||||
Pour cela, utilisez la commande :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
lsblk
|
|
||||||
```
|
|
||||||
|
|
||||||
Elle peut renvoyer quelque chose comme :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
|
|
||||||
sda 8:0 0 931.5G 0 disk
|
|
||||||
└─sda1 8:1 0 931.5G 0 part
|
|
||||||
mmcblk0 179:0 0 14.9G 0 disk
|
|
||||||
├─mmcblk0p1 179:1 0 47.7M 0 part /boot
|
|
||||||
└─mmcblk0p2 179:2 0 14.8G 0 part /
|
|
||||||
```
|
|
||||||
|
|
||||||
Ici, `mmcblk0` corresponds à une carte SD de 16Go (on voit que les partitions `mmcblk0p1` et `mmcblk0p2` correspondent à la partition de démarrage `/boot` et à la partition système `/`). Le disque dur branché correspond à `sda` qui fait environ 1To, et contient une seule partition `sda1` qui n'est pas monté (pas de "MOUNTPOINT").
|
|
||||||
|
|
||||||
<div class="alert alert-warning" markdown="1">
|
|
||||||
<span class="glyphicon glyphicon-warning-sign"></span> Sur un autre système, il se peut que votre système soit installé sur `sda` et que votre disque soit alors `sdb` par exemple.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
## 2. (Optionnel) Formater le disque
|
|
||||||
|
|
||||||
Cette opération est optionnelle si votre disque est déjà formaté.
|
|
||||||
|
|
||||||
Créons une nouvelle partition sur le disque :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
fdisk /dev/VOTRE_DISQUE
|
|
||||||
```
|
|
||||||
|
|
||||||
puis entrez successivement `n`, `p`, `1`, `Entrée`, `Entrée`, et `w` pour créer une nouvelle partition.
|
|
||||||
|
|
||||||
Vérifiez avec `lsblk` que vous avez bien votre disque contenant une seule partition.
|
|
||||||
|
|
||||||
Avant de pouvoir utiliser votre disque, il doit être formaté.
|
|
||||||
|
|
||||||
Attention : **formater un disque implique de supprimer toutes les données inscrites dessus !** Si votre disque est déjà "propre", vous pouvez passer cette étape.
|
|
||||||
|
|
||||||
Pour formater la partition :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkfs.ext4 /dev/VOTRE_DISQUE1
|
|
||||||
# puis 'y' pour valider
|
|
||||||
```
|
|
||||||
|
|
||||||
(Remplacez `VOTRE_DISQUE1` par le nom de la première partition sur le disque. Attention à ne pas vous tromper de nom, car cela peut avoir pour conséquence de formater un autre disque que celui voulu ! Dans l'exemple donné précédemment, il s'agissait de `sda`.)
|
|
||||||
|
|
||||||
|
|
||||||
## 3. Monter le disque
|
|
||||||
|
|
||||||
"Monter" un disque corresponds à le rendre effectivement accessible dans l'arborescence des fichiers. Nous allons choisir arbitrairement de monter le disque dans `/media/stockage` mais vous pouvez le nommer différement (par exemple `/media/mon_disque` ...).
|
|
||||||
|
|
||||||
Commençons par cŕeer le répertoire :
|
|
||||||
```bash
|
|
||||||
mkdir /media/stockage
|
|
||||||
```
|
|
||||||
|
|
||||||
Puis nous pouvons monter le disque manuellement avec :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mount /dev/VOTRE_DISQUE1 /media/stockage
|
|
||||||
```
|
|
||||||
|
|
||||||
(Ici, `/dev/VOTRE_DISQUE1` corresponds à la première partition sur le disque)
|
|
||||||
|
|
||||||
Ensuite, vous devriez pouvoir créer des fichiers dans `/media/stockage`, et, par exemple, ajouter `/media/stockage` comme périphérique externe dans Nextcloud.
|
|
||||||
|
|
||||||
## 4. Monter le disque automatiquement au démarrage
|
|
||||||
|
|
||||||
Jusqu'ici, nous avons monté manuellement le disque. Cependant, il peut être utile de configurer le système pour qu'il monte automatiquement le disque après un démarrage.
|
|
||||||
|
|
||||||
Pour commencer, trouvons l'UUID (identifiant universel) de notre disque avec :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
blkid | grep "/dev/VOTRE_DISQUE1:"
|
|
||||||
# Retourne quelque chose comme :
|
|
||||||
# /dev/sda1:UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" TYPE="ext4" PARTUUID="34e4b02c-02"
|
|
||||||
```
|
|
||||||
|
|
||||||
Ajoutons alors une ligne au fichier `/etc/fstab` qui gère le montage des disques au démarrage. On ouvre donc le fichier avec `nano` :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
nano /etc/fstab
|
|
||||||
```
|
|
||||||
|
|
||||||
Puis on ajoute cette ligne :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
UUID="cea0b7ae-2fbc-4f01-8884-3cb5884c8bb7" /media/stockage ext4 defaults,nofail 0 0
|
|
||||||
```
|
|
||||||
|
|
||||||
(il faut adapter cette ligne en fonction des informations et choix précédents)
|
|
||||||
|
|
||||||
Utiliser Ctrl+X puis `o` pour sauvegarder.
|
|
||||||
|
|
||||||
Vous pouvez ensuite tester de redémarrer le système pour voir si le disque est monté automatiquement.
|
|
||||||
|
|
14
hardware.md
|
@ -1,14 +0,0 @@
|
||||||
# Hardware
|
|
||||||
|
|
||||||
YunoHost can be installed on the following hardware:
|
|
||||||
- ARM boards (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.);
|
|
||||||
- 'Old' desktop computers or laptops;
|
|
||||||
- Remote servers, a.k.a Virtual Private Servers (VPS).
|
|
||||||
|
|
||||||
Corresponding installation guides can be found on [this page](/install).
|
|
||||||
|
|
||||||
### Minimum requirements
|
|
||||||
|
|
||||||
* 500 MHz CPU
|
|
||||||
* 512 MB RAM (recommended : 1 GB in order to run all the services and apps properly)
|
|
||||||
* 8 GB storage capacity (recommended : 32 GB to store mails and documents)
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Hardware
|
|
||||||
|
|
||||||
YunoHost kann auf folgender Hardware installiert werden:
|
|
||||||
- ARM Boards (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.) ;
|
|
||||||
- 'Alte' Desktop Computer oder Laptops/Notebooks ;
|
|
||||||
- Remote servers, auch bekannt als Virtual Private Servers (VPS).
|
|
||||||
|
|
||||||
Entsprechende Installationsanleitungen finden Sie auf [dieser Seite](/install).
|
|
||||||
|
|
||||||
### Minimale Voraussetzungen
|
|
||||||
|
|
||||||
* 500 MHz CPU
|
|
||||||
* 512 MB RAM (empfohlen : 1 GB um alle Apps und Programme schnell ausführen zu können)
|
|
||||||
* 8 GB Speicher/HDD (empfohlen : 32 GB bei Nutzung als Mail oder Dokumentenserver)
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Hardware
|
|
||||||
|
|
||||||
YunoHost puede ser instalado en este hardware :
|
|
||||||
- Tarjetas ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.) ;
|
|
||||||
- 'Viejos' ordenadores de escritorio ou portátiles ;
|
|
||||||
- Servidores remotos, también llamado Virtual Private Servers (VPS).
|
|
||||||
|
|
||||||
Los guías de instalación se encuentran en [esta página](/install).
|
|
||||||
|
|
||||||
### Configuración minimal
|
|
||||||
|
|
||||||
* Procesador 500 MHz
|
|
||||||
* 512 Mo de RAM (recomendado : 1Go para que los servicios y las aplicaciones funcionen correctamente
|
|
||||||
* 8 Go de espacio de almacenamiento (recomendado : 32 Go para poder almacenar emails y documentos)
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Matériel
|
|
||||||
|
|
||||||
YunoHost peut être installé sur les types de matériel suivants :
|
|
||||||
- Cartes ARM (Raspberry Pi, Olinuxino LIME1 & 2, Orange Pi, etc.) ;
|
|
||||||
- 'Vieux' ordinateurs de bureau ou portables ;
|
|
||||||
- Serveurs distants, aussi appelé Virtual Private Servers (VPS).
|
|
||||||
|
|
||||||
Les guides d'installations peuvent être trouvés sur [cette page](/install).
|
|
||||||
|
|
||||||
### Configuration minimale
|
|
||||||
|
|
||||||
* Processeur 500 MHz
|
|
||||||
* 512 Mo de RAM (recommandé : 1 Go pour pouvoir faire tourner les services et applications correctement)
|
|
||||||
* 8 Go d'espace de stockage (recommandé : 32 Go pour pouvoir stocker emails et documents)
|
|
59
help.md
|
@ -1,59 +0,0 @@
|
||||||
# Looking for help?
|
|
||||||
|
|
||||||
<h3>Connect to the support chatroom</h3>
|
|
||||||
<center>
|
|
||||||
<div class="alert alert-info" markdown="1" style="max-width:700px;">
|
|
||||||
<strong>ProTips™</strong>
|
|
||||||
<ul style="text-align:left;">
|
|
||||||
<li>Don't ask to ask, just ask !</li>
|
|
||||||
<li><em>Be patient</em>, it can take a few minutes before someone sees your messages.</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<iframe src="https://kiwiirc.com/nextclient/?settings=7b72a0a81838360686798199ed53624f" style="width:100%;height:450px;border:0;display:block"></iframe>
|
|
||||||
|
|
||||||
</br>
|
|
||||||
</br>
|
|
||||||
<em>Note : this room is available via IRC (#yunohost on freenode - <a href="https://kiwiirc.com/nextclient/?settings=7b72a0a81838360686798199ed53624f">using kiwiirc</a>), via XMPP <small>(support@conference.yunohost.org)</small>, or Matrix <small>(#freenode_#yunohost:matrix.org - <a target="_blank" href="https://riot.im/app/#/room/#yunohost:matrix.org">using Riot</a>)</small></em>
|
|
||||||
</center>
|
|
||||||
|
|
||||||
<h3>... or ask on the forum !</h3>
|
|
||||||
|
|
||||||
<center>
|
|
||||||
<button id="goForum" type="button" class="btn btn-success" style="font-weight:bold;">
|
|
||||||
<span class="glyphicon glyphicon-comment"></span> Go to the forum
|
|
||||||
</button>
|
|
||||||
</center>
|
|
||||||
|
|
||||||
<h3>You've found a bug ?</h3>
|
|
||||||
|
|
||||||
<center>
|
|
||||||
<br>
|
|
||||||
<em>Please report it on our bugtracker or contact the developers</em><br><br>
|
|
||||||
<button id="goBugtracker" type="button" class="btn btn-warning" style="font-weight:bold;">
|
|
||||||
<span class="glyphicon glyphicon-exclamation-sign"></span> Report a bug
|
|
||||||
</button>
|
|
||||||
<button id="goDevroom" type="button" class="btn btn-warning" style="font-weight:bold; margin-left:40px">
|
|
||||||
<span class="glyphicon glyphicon-comment"></span> Contact the developers
|
|
||||||
</button>
|
|
||||||
</br>
|
|
||||||
</br>
|
|
||||||
<em>Note : you can also connect to the devrooms, using your favorite XMPP client, to </br>
|
|
||||||
dev@conference.yunohost.org and apps@conference.yunohost.org</br>
|
|
||||||
or with a Matrix client to</br>
|
|
||||||
#freenode_#yunohost-dev:matrix.org</em>
|
|
||||||
</center>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
document.getElementById("goForum").onclick = function() {
|
|
||||||
window.location.href = "https://forum.yunohost.org/latest";
|
|
||||||
}
|
|
||||||
document.getElementById("goBugtracker").onclick = function() {
|
|
||||||
window.location.href = "https://github.com/yunohost/issues/issues";
|
|
||||||
}
|
|
||||||
document.getElementById("goDevroom").onclick = function() {
|
|
||||||
window.location.href = "https://kiwiirc.com/client/irc.freenode.net/yunohost-dev";
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
61
help_fr.md
|
@ -1,61 +0,0 @@
|
||||||
# Besoin d’aide ?
|
|
||||||
|
|
||||||
<h3>Connectez-vous au salon de support</h3>
|
|
||||||
<center>
|
|
||||||
<div class="alert alert-info" markdown="1" style="max-width:750px;">
|
|
||||||
<strong>ProTips™</strong>
|
|
||||||
<ul style="text-align:left;">
|
|
||||||
<li>Pas besoin de demander si vous pouvez poser une question - posez-la directement !</li>
|
|
||||||
<li><em>Soyez patient</em>, cela peut prendre plusieurs minutes avant que quelqu'un remarque vos messages.</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<iframe src="https://kiwiirc.com/nextclient/?settings=78e5074440caaa9141c9e30629f6b29d" style="width:100%;height:450px;border:0;display:block"></iframe>
|
|
||||||
|
|
||||||
</br>
|
|
||||||
</br>
|
|
||||||
<em>Note : ce salon est accessible via IRC (#yunohost sur freenode en utilisant <a href="https://kiwiirc.com/nextclient/?settings=78e5074440caaa9141c9e30629f6b29d">Kiwiirc</a>), via XMPP <small>(support@conference.yunohost.org)</small>, ou Matrix <small>(#freenode_#yunohost:matrix.org - <a target="_blank" href="https://app.element.io/#/room/#yunohost:matrix.org">en utilisant Element</a>)</small>.</em>
|
|
||||||
</center>
|
|
||||||
|
|
||||||
<h3>... ou demandez sur le forum !</h3>
|
|
||||||
|
|
||||||
<center>
|
|
||||||
<button id="goForum" type="button" class="btn btn-success" style="font-weight:bold;">
|
|
||||||
<span class="glyphicon glyphicon-comment"></span> Aller sur le forum
|
|
||||||
</button>
|
|
||||||
</center>
|
|
||||||
|
|
||||||
<h3>Vous avez trouvé un bug ?</h3>
|
|
||||||
|
|
||||||
<center>
|
|
||||||
<br>
|
|
||||||
<em>Vous pouvez rapporter le bug sur le bugtracker ou contacter les développeurs</em><br><br>
|
|
||||||
<button id="goBugtracker" type="button" class="btn btn-warning" style="font-weight:bold;">
|
|
||||||
<span class="glyphicon glyphicon-exclamation-sign"></span> Rapporter un bug
|
|
||||||
</button>
|
|
||||||
<button id="goDevroom" type="button" class="btn btn-warning" style="font-weight:bold; margin-left:40px">
|
|
||||||
<span class="glyphicon glyphicon-comment"></span> Contacter les développeurs
|
|
||||||
</button>
|
|
||||||
</br>
|
|
||||||
</br>
|
|
||||||
<em>Note : vous pouvez aussi vous connecter aux salons de dev, via votre client XMPP favori, à</br>
|
|
||||||
dev@conference.yunohost.org et apps@conference.yunohost.org</br>
|
|
||||||
ou bien via votre client matrix préféré, à</br>
|
|
||||||
#freenode_#yunohost-dev:matrix.org</em>
|
|
||||||
</center>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
document.getElementById("goForum").onclick = function() {
|
|
||||||
window.location.href = "https://forum.yunohost.org/latest";
|
|
||||||
}
|
|
||||||
document.getElementById("goBugtracker").onclick = function() {
|
|
||||||
window.location.href = "https://github.com/yunohost/issues/issues";
|
|
||||||
}
|
|
||||||
document.getElementById("goDevroom").onclick = function() {
|
|
||||||
window.location.href = "https://kiwiirc.com/client/irc.freenode.net/yunohost-dev";
|
|
||||||
}
|
|
||||||
document.getElementById("goForum").onclick = function() {
|
|
||||||
window.location.href = "https://forum.yunohost.org";
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
122
images.md
|
@ -1,122 +0,0 @@
|
||||||
# Pre-installed images
|
|
||||||
|
|
||||||
<span class="javascriptDisclaimer">
|
|
||||||
This page requires Javascript enabled to display properly :s.
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
N.B. : Even if the image does not corresponds to the latest version of YunoHost, you can still use it and do a regular system upgrade after setting up!
|
|
||||||
|
|
||||||
<div id="cards-list">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type="text/template" id="image-template">
|
|
||||||
<div id="{id}" class="card panel panel-default">
|
|
||||||
<div class="panel-body text-center">
|
|
||||||
<h3>{name}</h3>
|
|
||||||
<div class="card-comment">{comment}</div>
|
|
||||||
<div class="card-desc text-center">
|
|
||||||
<img src="/images/{image}" height=100 style="vertical-align:middle">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="annotations">
|
|
||||||
<div class="col-sm-6 annotation"><a href="{file}.sha256sum"><span class="glyphicon glyphicon-barcode" aria-hidden="true"></span> Checksum</a></div>
|
|
||||||
<div class="col-sm-6 annotation"><a href="{file}.sig"><span class="glyphicon glyphicon-tag" aria-hidden="true"></span> Signature</a></div>
|
|
||||||
</div>
|
|
||||||
<div class="btn-group" role="group">
|
|
||||||
<a href="{file}" target="_BLANK" type="button" class="btn btn-info col-sm-12"><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> Download <small>{version}</small></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/*
|
|
||||||
###############################################################################
|
|
||||||
Style sheet for the cards
|
|
||||||
###############################################################################
|
|
||||||
*/
|
|
||||||
#cards-list:after {
|
|
||||||
content:'';
|
|
||||||
display:block;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card {
|
|
||||||
margin-bottom:20px;
|
|
||||||
width:270px;
|
|
||||||
float:left;
|
|
||||||
min-height: 1px;
|
|
||||||
margin-right: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card .panel-body > h3 {
|
|
||||||
margin-top:0;
|
|
||||||
margin-bottom:5px;
|
|
||||||
font-size:1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-desc {
|
|
||||||
height:100px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card .btn-group {
|
|
||||||
width:100%;
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
.card > .btn-group > .btn{
|
|
||||||
border-bottom:0;
|
|
||||||
}
|
|
||||||
.card > .btn-group {
|
|
||||||
border-left:0;
|
|
||||||
border-top-left-radius:0;
|
|
||||||
border-top-right-radius:0;
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
.card-comment {
|
|
||||||
font-size: 0.8em;
|
|
||||||
margin-top:-5px;
|
|
||||||
}
|
|
||||||
.card > .annotations {
|
|
||||||
text-align:center;
|
|
||||||
font-size:small;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
/*
|
|
||||||
###############################################################################
|
|
||||||
Script that loads the infos from JavaScript and creates the corresponding
|
|
||||||
cards
|
|
||||||
###############################################################################
|
|
||||||
*/
|
|
||||||
$(document).ready(function () {
|
|
||||||
console.log("in load");
|
|
||||||
$.getJSON('https://build.yunohost.org/images.json', function (images) {
|
|
||||||
$.each(images, function(k, infos) {
|
|
||||||
// Fill the template
|
|
||||||
html = $('#image-template').html()
|
|
||||||
.replace('{id}', infos.id)
|
|
||||||
.replace('{name}', infos.name)
|
|
||||||
.replace('{comment}', infos.comment || " ")
|
|
||||||
.replace('{image}', infos.image)
|
|
||||||
.replace('{version}', infos.version);
|
|
||||||
|
|
||||||
if (infos.file.startsWith("http"))
|
|
||||||
html = html.replace(/{file}/g, infos.file);
|
|
||||||
else
|
|
||||||
html = html.replace(/{file}/g, "https://build.yunohost.org/"+infos.file);
|
|
||||||
|
|
||||||
if ((typeof(infos.has_sig_and_sums) !== 'undefined') && infos.has_sig_and_sums == false)
|
|
||||||
{
|
|
||||||
var $html = $(html);
|
|
||||||
$html.find(".annotations").html(" ");
|
|
||||||
html = $html[0];
|
|
||||||
}
|
|
||||||
$('#cards-list').append(html);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
BIN
images/Galette_1_en_Update.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
images/Galette_1_fr_MAJ.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
images/Galette_2_en_Passwd.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
images/Galette_2_fr_MdP.png
Normal file
After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 7.4 KiB |
BIN
images/adguardhome-logo.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
images/administrate/specific_use_cases/virtualbox-snapshot.jpg
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
images/administrate/specific_use_cases/virtualbox-snapshot2.webp
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/administrate/specific_use_cases/virtualbox-snapshot3.webp
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/administrate/specific_use_cases/virtualbox-snapshot4.webp
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
images/angryip.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
images/app_config_operations.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
images/app_config_panel.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
images/app_install_form.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
images/app_install_form_cli.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
images/apps_catalog.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
images/apps_custom_url.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/apps_list.png
Normal file
After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 21 KiB |
BIN
images/create-first-user-cli.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
images/create-first-user.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
images/create_user_1.png
Normal file
After Width: | Height: | Size: 20 KiB |