Merge branch 'YunoHost:master' into master

This commit is contained in:
Leandro Noferini 2023-07-02 16:06:01 +02:00 committed by GitHub
commit a723f4d30a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 351 additions and 905 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

BIN
images/olinuxino.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

BIN
images/raspberrypi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

BIN
images/rpi1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View file

@ -1,68 +0,0 @@
---
title: الصور
template: docs
taxonomy:
category: docs
routes:
default: '/images'
---
<div class="hardware-image">
<div id="cards-list">
</div>
</div>
<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="/user/images/{image}" height=100 style="vertical-align:middle">
</div>
</div>
<div class="annotations flex-container">
<div class="flex-child annotation"><a href="{file}.sha256sum">[fa=barcode] Checksum</a></div>
<div class="flex-child annotation"><a href="{file}.sig">[fa=tag] 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>
</template>
<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 || "&nbsp;")
.replace('%7Bimage%7D', infos.image)
.replace('{image}', infos.image)
.replace('{version}', infos.version);
if (!infos.file.startsWith("http"))
infos.file="https://build.yunohost.org/"+infos.file;
html = html.replace(/%7Bfile%7D/g, infos.file).replace(/{file}/g, infos.file);
if ((typeof(infos.has_sig_and_sums) !== 'undefined') && infos.has_sig_and_sums == false)
{
var $html = $(html);
$html.find(".annotations").html("&nbsp;");
html = $html[0];
}
$('#cards-list').append(html);
});
});
});
</script>

View file

@ -51,6 +51,7 @@ $(document).ready(function () {
console.log("in load"); console.log("in load");
$.getJSON('https://build.yunohost.org/images.json', function (images) { $.getJSON('https://build.yunohost.org/images.json', function (images) {
$.each(images, function(k, infos) { $.each(images, function(k, infos) {
if (infos.hide == true) { return; }
// Fill the template // Fill the template
html = $('#image-template').html() html = $('#image-template').html()
.replace('{id}', infos.id) .replace('{id}', infos.id)

View file

@ -50,6 +50,7 @@ $(document).ready(function () {
console.log("in load"); console.log("in load");
$.getJSON('https://build.yunohost.org/images.json', function (images) { $.getJSON('https://build.yunohost.org/images.json', function (images) {
$.each(images, function(k, infos) { $.each(images, function(k, infos) {
if (infos.hide == true) { return; }
// Fill the template // Fill the template
html = $('#image-template').html() html = $('#image-template').html()
.replace('{id}', infos.id) .replace('{id}', infos.id)

View file

@ -17,10 +17,6 @@ Cette page requiert que Javascript soit activé pour s'afficher correctement :s.
!!! Si vous souhaitez vérifier la validité de nos images signées, vous pouvez [télécharger notre clé publique](https://forge.yunohost.org/yunohost.asc). !!! Si vous souhaitez vérifier la validité de nos images signées, vous pouvez [télécharger notre clé publique](https://forge.yunohost.org/yunohost.asc).
! Certaines images sont encore basées sur Debian Buster (YunoHost v4.x) et nécessitent que vous fassiez la commande `apt update` en SSH ou ligne de commande pour continuer les mises à jour.
! Répondez Oui à l'avertissement à propos du changement de `stable` vers `oldstable`.
! Cette opération n'est pas nécessaire pour YunoHost 11.x (images Bullseye)
<div class="hardware-image"> <div class="hardware-image">
<div id="cards-list"> <div id="cards-list">
</div> </div>
@ -56,6 +52,7 @@ $(document).ready(function () {
console.log("in load"); console.log("in load");
$.getJSON('https://build.yunohost.org/images.json', function (images) { $.getJSON('https://build.yunohost.org/images.json', function (images) {
$.each(images, function(k, infos) { $.each(images, function(k, infos) {
if (infos.hide == true) { return; }
// Fill the template // Fill the template
html = $('#image-template').html() html = $('#image-template').html()
.replace('{id}', infos.id) .replace('{id}', infos.id)

View file

@ -17,10 +17,6 @@ This page requires Javascript enabled to display properly :s.
!!! If you wish to check the validity of our signed images, you can [download our public key](https://forge.yunohost.org/yunohost.asc). !!! If you wish to check the validity of our signed images, you can [download our public key](https://forge.yunohost.org/yunohost.asc).
! Some images are still in Debian Buster (YunoHost v4.x) and will require that you perform a manual `apt update` command in SSH or CLI to continue updating.
! Answer Yes to the warning about switching from `stable` to `oldstable`.
! You don't need to do that for YunoHost 11.x (Bullseye images)
<div class="hardware-image"> <div class="hardware-image">
<div id="cards-list"> <div id="cards-list">
</div> </div>
@ -56,6 +52,7 @@ $(document).ready(function () {
console.log("in load"); console.log("in load");
$.getJSON('https://build.yunohost.org/images.json', function (images) { $.getJSON('https://build.yunohost.org/images.json', function (images) {
$.each(images, function(k, infos) { $.each(images, function(k, infos) {
if (infos.hide == true) { return; }
// Fill the template // Fill the template
html = $('#image-template').html() html = $('#image-template').html()
.replace('{id}', infos.id) .replace('{id}', infos.id)

View file

@ -14,7 +14,6 @@ page-toc:
routes: routes:
default: '/install' default: '/install'
aliases: aliases:
- '/docker'
- '/install_iso' - '/install_iso'
- '/install_on_vps' - '/install_on_vps'
- '/install_manually' - '/install_manually'
@ -29,7 +28,7 @@ routes:
- '/hardware' - '/hardware'
--- ---
{% set image_type = 'YunoHost' %} {% set image_type = 'YunoHost' %}
{% set arm, at_home, regular, rpi2plus, rpi1, rpi0, arm_sup, arm_unsup, vps, vps_debian, vps_ynh, virtualbox, internetcube, docker = false, false, false, false, false, false, false, false, false, false, false, false, false, false %} {% set arm, at_home, regular, rpi34, rpi012, show_legacy_arm_menu, arm_sup, arm_unsup, vps, vps_debian, vps_ynh, virtualbox, internetcube = false, false, false, false, false, false, false, false, false, false, false, false, false %}
{% set hardware = uri.param('hardware') %} {% set hardware = uri.param('hardware') %}
{% if hardware == 'regular' %} {% if hardware == 'regular' %}
@ -37,16 +36,21 @@ routes:
{% elseif hardware == 'internetcube' %} {% elseif hardware == 'internetcube' %}
{% set arm, arm_sup, internetcube = true, true, true %} {% set arm, arm_sup, internetcube = true, true, true %}
{% set image_type = 'La Brique Internet' %} {% set image_type = 'La Brique Internet' %}
{% elseif hardware == 'rpi2plus' %} {% set show_legacy_arm_menu = true %}
{% set arm, rpi2plus = true, true %} {% elseif hardware == 'rpi34' %}
{% elseif hardware == 'rpi1' %} {% set arm, rpi34 = true, true %}
{% set arm, rpi1 = true, true %} {% elseif hardware == 'rpi012' %}
{% elseif hardware == 'rpi0' %} {% set arm, arm_unsup, rpi012 = true, true, true %}
{% set arm, rpi0 = true, true %} {% set image_type = 'Raspberry Pi OS Lite (32-bit, Bullseye)' %}
{% elseif hardware == 'arm_sup' %} {% elseif hardware == 'arm_sup' %}
{% set arm, arm_sup = true, true %} {% set arm, arm_sup = true, true %}
{% set show_legacy_arm_menu = true %}
{% elseif hardware == 'arm' %}
{% set arm, arm_unsup = true, true %}
{% set image_type = 'Armbian' %}
{% elseif hardware == 'arm_unsup' %} {% elseif hardware == 'arm_unsup' %}
{% set arm, arm_unsup = true, true %} {% set arm, arm_unsup = true, true %}
{% set show_legacy_arm_menu = true %}
{% set image_type = 'Armbian' %} {% set image_type = 'Armbian' %}
{% elseif hardware == 'vps_debian' %} {% elseif hardware == 'vps_debian' %}
{% set vps, vps_debian = true, true %} {% set vps, vps_debian = true, true %}
@ -54,8 +58,6 @@ routes:
{% set vps, vps_ynh = true, true %} {% set vps, vps_ynh = true, true %}
{% elseif hardware == 'virtualbox' %} {% elseif hardware == 'virtualbox' %}
{% set at_home, virtualbox = true, true %} {% set at_home, virtualbox = true, true %}
{% elseif hardware == 'docker' %}
{% set docker = true %}
{% endif %} {% endif %}
{% if arm or regular %} {% if arm or regular %}
@ -69,12 +71,12 @@ Sélectionnez le matériel sur lequel vous souhaitez installer YunoHost :
[[figure caption="VirtualBox"]![](image://virtualbox.png?height=75)[/figure]](/install/hardware:virtualbox) [[figure caption="VirtualBox"]![](image://virtualbox.png?height=75)[/figure]](/install/hardware:virtualbox)
[/div] [/div]
[div class="flex-child hardware{%if rpi2plus or rpi1 or rpi0 %} active{% endif %}"] [div class="flex-child hardware{%if rpi34 or rpi012 %} active{% endif %}"]
[[figure caption="Raspberry Pi"]![](image://raspberrypi.jpg?height=75)[/figure]](/install/hardware:rpi2plus) [[figure caption="Raspberry Pi"]![](image://raspberrypi.png?height=75)[/figure]](/install/hardware:rpi34)
[/div] [/div]
[div class="flex-child hardware{%if arm_sup or arm_unsup or internetcube %} active{% endif %}"] [div class="flex-child hardware{%if arm_sup or (arm_unsup and not rpi012) or internetcube %} active{% endif %}"]
[[figure caption="Carte ARM"]![](image://olinuxino.jpg?height=75)[/figure]](/install/hardware:arm_sup) [[figure caption="Carte ARM"]![](image://olinuxino.png?height=75)[/figure]](/install/hardware:arm)
[/div] [/div]
[div class="flex-child hardware{%if regular %} active{% endif %}"] [div class="flex-child hardware{%if regular %} active{% endif %}"]
@ -88,26 +90,23 @@ Sélectionnez le matériel sur lequel vous souhaitez installer YunoHost :
[/div] [/div]
[div class="flex-container pt-2"] [div class="flex-container pt-2"]
{% if rpi2plus or rpi1 or rpi0 %} {% if rpi34 or rpi012 %}
[div class="flex-child hardware{%if rpi2plus %} active{% endif %}"] [div class="flex-child hardware{%if rpi34 %} active{% endif %}"]
[[figure caption="Raspberry Pi 2, 3 ou 4"]![](image://raspberrypi.jpg?height=50)[/figure]](/install/hardware:rpi2plus) [[figure caption="Raspberry Pi 3 ou 4"]![](image://raspberrypi.png?height=50)[/figure]](/install/hardware:rpi34)
[/div] [/div]
[div class="flex-child hardware{%if rpi1 %} active{% endif %}"] [div class="flex-child hardware{%if rpi012 %} active{% endif %}"]
[[figure caption="Raspberry Pi 1"]![](image://rpi1.jpg?height=50)[/figure]](/install/hardware:rpi1) [[figure caption="Raspberry Pi 0, 1 or 2"]![](image://rpi1.png?height=50)[/figure]](/install/hardware:rpi012)
[/div] [/div]
[div class="flex-child hardware{%if rpi0 %} active{% endif %}"] {% elseif show_legacy_arm_menu %}
[[figure caption="Raspberry Pi zero"]![](image://rpi0.jpg?height=50)[/figure]](/install/hardware:rpi0)
[/div]
{% elseif arm_sup or arm_unsup or internetcube %}
[div class="flex-child hardware{%if internetcube %} active{% endif %}"] [div class="flex-child hardware{%if internetcube %} active{% endif %}"]
[[figure caption="La Brique Internet avec un VPN"]![](image://internetcube.png?height=50)[/figure]](/install/hardware:internetcube) [[figure caption="La Brique Internet avec un VPN"]![](image://internetcube.png?height=50)[/figure]](/install/hardware:internetcube)
[/div] [/div]
[div class="flex-child hardware{%if arm_sup and not internetcube %} active{% endif %}"] [div class="flex-child hardware{%if arm_sup and not internetcube %} active{% endif %}"]
[[figure caption="Olinuxino lime1&2 ou Orange Pi PC+"]![](image://olinuxino.jpg?height=50)[/figure]](/install/hardware:arm_sup) [[figure caption="Olinuxino lime1&2 ou Orange Pi PC+"]![](image://olinuxino.png?height=50)[/figure]](/install/hardware:arm_sup)
[/div] [/div]
[div class="flex-child hardware{%if arm_unsup %} active{% endif %}"] [div class="flex-child hardware{%if arm_unsup %} active{% endif %}"]
@ -130,33 +129,14 @@ Sélectionnez le matériel sur lequel vous souhaitez installer YunoHost :
{% if hardware != '' %} {% if hardware != '' %}
{% if docker %}
!! **YunoHost ne supporte plus officiellement Docker depuis les problèmes rencontrés avec la version 2.4+. En cause, YunoHost dépend désormais de systemd et Docker a décidé quil ne le supporterait pas nativement (et il y a d'autres problèmes liés au firewall et aux services).**
!!
!! **Nous vous décourageons fortement d'utiliser YunoHost sur docker avec ces images.**
## Images communautaires
Cependant, ces images communautaires existent et sont disponibles sur Docker Hub :
* [AMD64 (classic) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost/)
* [I386 (old computers) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost-i386/)
* [ARM64V8 (Raspberry Pi 4) (YunoHost 4.x)](https://hub.docker.com/r/cms0/yunohost/)
* [ARMV7 (Raspberry Pi 2/3 ...) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost-arm/)
* [ARMV6 (Raspberry Pi 1) (ancienne version de YunoHost)](https://hub.docker.com/r/tuxalex/yunohost-armv6/)
{% else %}
## [fa=list-alt /] Pré-requis ## [fa=list-alt /] Pré-requis
{% if regular %} {% if regular %}
* Un matériel compatible x86 dédié à YunoHost : portable, netbook, ordinateur avec 512Mo de RAM et 16Go de capacité de stockage (au moins) ; * Un matériel compatible x86 dédié à YunoHost : portable, netbook, ordinateur avec 512Mo de RAM et 16Go de capacité de stockage (au moins) ;
{% elseif rpi2plus %} {% elseif rpi34 %}
* Un Raspberry Pi 2, 3 ou 4 ; * Un Raspberry Pi 3 ou 4 ;
{% elseif rpi1 %} {% elseif rpi012 %}
* Un Raspberry Pi 1 avec au moins 512Mo de RAM ; * Un Raspberry Pi 0, 1 ou 2 avec au moins 512Mo de RAM ;
{% elseif rpi0 %}
* Un Raspberry Pi Zero ;
{% elseif internetcube %} {% elseif internetcube %}
* Un Orange Pi PC+ ou une Olinuxino Lime 1 ou 2 ; * Un Orange Pi PC+ ou une Olinuxino Lime 1 ou 2 ;
* Un VPN avec une IP publique dédiée et un fichier `.cube` ; * Un VPN avec une IP publique dédiée et un fichier `.cube` ;
@ -180,19 +160,16 @@ Cependant, ces images communautaires existent et sont disponibles sur Docker Hub
{% endif %} {% endif %}
{% if at_home %} {% if at_home %}
* Un [fournisseur d'accès à Internet correct](/isp), de préférence avec une bonne vitesse dupload ; * Un [fournisseur d'accès à Internet correct](/isp), de préférence avec une bonne vitesse dupload ;
{% if rpi0 %} {% if not virtualbox %}
* Un câble OTG ou un adaptateur Wifi USB pour connecter votre Raspberry Pi Zero ; * Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet {% if rpi012 %} (Ou pour Rasperry Pi Zero : Un câble OTG ou un adaptateur Wifi USB) {% endif %} ;
{% elseif not virtualbox %}
* Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet ;
{% endif %} {% endif %}
* Un ordinateur pour lire ce guide, flasher l'image et accéder à votre serveur. * Un ordinateur pour lire ce guide, flasher l'image et accéder à votre serveur.
{% endif %} {% else %}
{% if not at_home %}
* Un ordinateur ou un smartphone pour lire ce guide et accéder à votre serveur. * Un ordinateur ou un smartphone pour lire ce guide et accéder à votre serveur.
{% endif %} {% endif %}
{% if virtualbox %} {% if virtualbox %}
! N.B. : Installer YunoHost dans une VirtualBox est utile pour tester la distribution. Pour réellement s'autohéberger sur le long terme, il vous faudra probablement une machine physique (vieil ordinateur, carte ARM...) ou un serveur en ligne. ! N.B. : Installer YunoHost dans une VirtualBox est généralement destiné à tester la distribution ou pour développer. VirtualBox n'est pas pratique pour faire tourner un 'vrai' serveur sur le long terme car la machine surlaquelle il est installé ne sera sans doute pas allumé 24h/24, et parce que Virtualbox rajoute une couche de complexité supplémentaire pour ce qui est d'exposer la machine sur Internet.
{% endif %} {% endif %}
@ -221,12 +198,14 @@ Ci-dessous une liste de fournisseurs de VPS supportant nativement YunoHost :
{% if at_home %} {% if at_home %}
## [fa=download /] Télécharger l'image {{image_type}} ## [fa=download /] Télécharger l'image {{image_type}}
! Les liens vers les images sont actuellement cassés. Pendant que nous travaillons sur le problème, trouvez-les directement à l'adresse https://build.yunohost.org/ {% if rpi012 %}
! Le support des Rasperry Pi 0, 1 et 2 est malheureusement sur la pente descendante : construire des images à jour est complexe, et les cartes RPi 0, 1 et 2 sont des systèmes ARM 32 bit qui vont être de plus en plus déprécié au fur et à mesure du temps. Nos images pré-installées sont vieilles. Nous recommendons à la place de [télécharger l'image officielle Rasperry Pi OS Lite (**32-bit**, **Bullseye**)](https://downloads.raspberrypi.org/raspios_lite_armhf/images/?C=M;O=D) et d'installer YunoHost par dessus, [de manière similaire à ce qui est proposé pour les autres cartes ARM](/install/hardware:arm)
{% endif %}
{% if virtualbox or regular %} {% if virtualbox or regular %}
!!! Si votre hôte est en 32 bits, faites bien attention à télécharger l'image 32 bits. !!! Si votre hôte est en 32 bits, faites bien attention à télécharger l'image 32 bits.
{% elseif arm_unsup %} {% elseif arm_unsup and not rpi012 %}
<a href="https://www.armbian.com/download/" target="_BLANK" type="button" class="btn btn-info col-sm-12">[fa=external-link] Télécharger l'image pour votre carte sur le site d'Armbian</a> <a href="https://www.armbian.com/download/" target="_BLANK" type="button" class="btn btn-info col-sm-12" style="background:none;">[fa=external-link] Télécharger l'image pour votre carte sur le site d'Armbian</a>
!!! N.B.: il vous faut télécharger l'image Armbian Bullseye. !!! N.B.: il vous faut télécharger l'image Armbian Bullseye.
{% endif %} {% endif %}
@ -272,6 +251,7 @@ $(document).ready(function () {
console.log("in load"); console.log("in load");
$.getJSON('https://build.yunohost.org/images.json', function (images) { $.getJSON('https://build.yunohost.org/images.json', function (images) {
$.each(images, function(k, infos) { $.each(images, function(k, infos) {
if (infos.hide == true) { return; }
if (infos.tuto.indexOf(hardware) == -1) return; if (infos.tuto.indexOf(hardware) == -1) return;
// Fill the template // Fill the template
html = $('#image-template').html() html = $('#image-template').html()
@ -481,7 +461,7 @@ Ne perdez pas de vue que:
{% endif %} {% endif %}
{% if rpi1 or rpi0 %} {% if rpi012 %}
## [fa=bug /] Se connecter à la carte et corriger l'image ## [fa=bug /] Se connecter à la carte et corriger l'image
Les Raspberry Pi 1 et Zero ne sont pas totalement supportés à cause de [problèmes de compilation pour cette architecture](https://github.com/YunoHost/issues/issues/1423). Les Raspberry Pi 1 et Zero ne sont pas totalement supportés à cause de [problèmes de compilation pour cette architecture](https://github.com/YunoHost/issues/issues/1423).
@ -588,44 +568,20 @@ Cest le nom de domaine qui permettra laccès à votre serveur ainsi qua
!!! Oui, vous *devez* configurer un nom de domaine. Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en **.nohost.me**, **.noho.st** ou **.ynh.fr**, vous pouvez utilisez un « faux » domaine comme par exemple `yolo.test` et [modifier votre fichier `/etc/hosts` **sur votre ordinateur local** pour que ce domaine pointe vers l'IP de votre serveur, comme expliqué ici](/dns_local_network). !!! Oui, vous *devez* configurer un nom de domaine. Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en **.nohost.me**, **.noho.st** ou **.ynh.fr**, vous pouvez utilisez un « faux » domaine comme par exemple `yolo.test` et [modifier votre fichier `/etc/hosts` **sur votre ordinateur local** pour que ce domaine pointe vers l'IP de votre serveur, comme expliqué ici](/dns_local_network).
##### [fa=key /] Mot de passe dadministration ##### [fa=key /] Premier compte utilisateur
Cest le mot de passe qui vous permettra daccéder à linterface dadministration de votre serveur. Vous pourrez également lutiliser pour vous connecter à distance [via SSH](/ssh), ou [en SFTP](/filezilla) pour transférer des fichiers. De manière générale, cest la **clé dentrée à votre système**, pensez donc à la choisir attentivement.
## [fa=user /] Créer un premier utilisateur [Depuis YunoHost 11.1](https://forum.yunohost.org/t/yunohost-11-1-release-sortie-de-yunohost-11-1/23378), le premier compte utilisateur est créé à cette étape. Il vous faudra choisir un nom d'utilisateur et un mot de passe raisonablement complexe. (Nous ne pouvons que souligner l'importance du choix d'un mot de passe **robuste** !) Ce compte utilisateur sera ajouté au groupe Admins, et pourra se connecter au portail utilisateur, à la webadmin, et se connecter [via **SSH**](/ssh) ou [**SFTP**](/filezilla). Les admins recevront aussi les mails envoyés à `root@votredomaine.tld` et `admin@votredomaine.tld` : ces emails peuvent être utilisés pour envoyer des informations ou des alertes techniques. Vous pourrez plus tard ajouter d'autres comptes utilisateur supplémentaire, qu'il est aussi possible d'ajouter au groupe Admins.
Une fois la configuration initiale faite, vous devriez être capable de vous connecter à la webadmin en utilisant le mot de passe d'administration. Ce compte remplace l'ancien compte `admin`, qui est peut être toujours mentionné dans certaines pages de documentation. Dans ce cas, remplacez simplement `admin` par votre identifiant.
Bien que votre serveur dispose maintenant d'un utilisateur `admin`, cet utilisateur `admin` n'est pas un utilisateur « standard » et ne peut pas se connecter sur le [portail utilisateur](/users).
Par conséquent, vous devriez ajouter un premier utilisateur « standard ».
!!! Le premier utilisateur que vous créez est un peu spécial : il recevra les emails envoyés à `root@votredomaine.tld` et `admin@votredomaine.tld`. Ces emails peuvent être utilisés pour envoyer des informations ou des alertes techniques.
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="À partir de l'interface web"]
Allez dans `Utilisateurs > Nouvel utilisateur`.
[figure class="nomargin" caption="Aperçu de l'interface de création utilisateur"]
![Création d'un utilisateur](image://create-first-user.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[ui-tab title="À partir de la ligne de commande"]
```
yunohost user create johndoe
```
[figure class="nomargin" caption="Aperçu de l'interface de création utilisateur en ligne de commande"]
![Création d'un utilisateur en ligne de commande](image://create-first-user-cli.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[/ui-tabs]
{% endif %}
## [fa=stethoscope /] Lancer le diagnostic ## [fa=stethoscope /] Lancer le diagnostic
Une fois la postinstall terminée, vous devriez pouvoir vous connecter à la webadmin en utilisant les identiants du premier compte utilisateur que vous venez de créer.
{% if virtualbox %}
! Rappel : YunoHost dans VirtualBox ne sera sans doute pas accessible depuis l'extérieur sans une configuration supplémentaire dans les paramètres de Virtualbox. Le diagnostique se plaindra sans doute de cela.
{% endif %}
Le système de diagnostic est conçu pour fournir un moyen facile de valider que tous les aspects critiques de votre serveur sont proprement configurés et pour vous guider dans la résolution des problèmes soulevés. Le diagnostic se lance deux fois par jour et envoie une alerte si un dysfonctionnement est détecté. Le système de diagnostic est conçu pour fournir un moyen facile de valider que tous les aspects critiques de votre serveur sont proprement configurés et pour vous guider dans la résolution des problèmes soulevés. Le diagnostic se lance deux fois par jour et envoie une alerte si un dysfonctionnement est détecté.
!!! N.B. : **ne partez pas en courant** ! La première fois que vous lancerez le diagnostic, il est assez normal d'avoir plusieurs alertes rouges ou jaunes car vous devez généralement [configurer les enregistrements DNS](/dns_config) (si vous n'utilisez pas un domaine `.nohost.me`, `.noho.st` ou `.ynh.fr`), ajouter un fichier de swap {%if at_home %} et/ou [configurer la redirection des ports](/isp_box_config){% endif %}. !!! N.B. : **ne partez pas en courant** ! La première fois que vous lancerez le diagnostic, il est assez normal d'avoir plusieurs alertes rouges ou jaunes car vous devez généralement [configurer les enregistrements DNS](/dns_config) (si vous n'utilisez pas un domaine `.nohost.me`, `.noho.st` ou `.ynh.fr`), ajouter un fichier de swap {%if at_home %} et/ou [configurer la redirection des ports](/isp_box_config){% endif %}.
@ -669,10 +625,10 @@ yunohost domain cert install
``` ```
[/ui-tab] [/ui-tab]
[/ui-tabs] [/ui-tabs]
{% endif %}
## ![](image://tada.png?resize=32&classes=inline) Félicitations ! ## ![](image://tada.png?resize=32&classes=inline) Félicitations !
Vous avez maintenant un serveur plutôt bien configuré. Si vous découvrez YunoHost, nous vous recommandons de jeter un œil à [la visite guidée](/overview). Vous devriez aussi être en mesure d'[installer vos applications favorites](/apps). N'oubliez pas de [prévoir des sauvegardes](/backup) ! Vous avez maintenant un serveur plutôt bien configuré. Si vous découvrez YunoHost, nous vous recommandons de jeter un œil à [la visite guidée](/overview). Vous devriez aussi être en mesure d'[installer vos applications favorites](/apps). N'oubliez pas de [prévoir des sauvegardes](/backup) !
{% endif %} {% endif %}
{% endif %}

View file

@ -1,621 +0,0 @@
---
title: Installa YunoHost
template: docs
taxonomy:
category: docs
never_cache_twig: true
twig_first: true
process:
markdown: true
twig: true
page-toc:
active: true
depth: 2
routes:
default: '/install'
aliases:
- '/docker'
- '/install_iso'
- '/install_on_vps'
- '/install_manually'
- '/install_on_raspberry'
- '/install_on_arm_board'
- '/install_on_debian'
- '/install_on_virtualbox'
- '/plug_and_boot'
- '/burn_or_copy_iso'
- '/boot_and_graphical_install'
- '/postinstall'
- '/hardware'
---
{% set image_type = 'YunoHost' %}
{% set arm, at_home, regular, rpi2plus, rpi1, rpi0, arm_sup, arm_unsup, vps, vps_debian, vps_ynh, virtualbox, internetcube, docker = false, false, false, false, false, false, false, false, false, false, false, false, false, false %}
{% set hardware = uri.param('hardware') %}
{% if hardware == 'regular' %}
{% set regular = true %}
{% elseif hardware == 'internetcube' %}
{% set arm, arm_sup, internetcube = true, true, true %}
{% set image_type = 'Internet Cube' %}
{% elseif hardware == 'rpi2plus' %}
{% set arm, rpi2plus = true, true %}
{% elseif hardware == 'rpi1' %}
{% set arm, rpi1 = true, true %}
{% elseif hardware == 'rpi0' %}
{% set arm, rpi0 = true, true %}
{% elseif hardware == 'arm_sup' %}
{% set arm, arm_sup = true, true %}
{% elseif hardware == 'arm_unsup' %}
{% set arm, arm_unsup = true, true %}
{% set image_type = 'Armbian' %}
{% elseif hardware == 'vps_debian' %}
{% set vps, vps_debian = true, true %}
{% elseif hardware == 'vps_ynh' %}
{% set vps, vps_ynh = true, true %}
{% elseif hardware == 'virtualbox' %}
{% set at_home, virtualbox = true, true %}
{% elseif hardware == 'docker' %}
{% set docker = true %}
{% endif %}
{% if arm or regular %}
{% set at_home = true %}
{% endif %}
Seleziona l'hardware sul quale desideri installare YunoHost :
[div class="flex-container"]
[div class="flex-child hardware{%if virtualbox %} active{% endif %}"]
[[figure caption="VirtualBox"]![](image://virtualbox.png?height=75)[/figure]](/install/hardware:virtualbox)
[/div]
[div class="flex-child hardware{%if rpi2plus or rpi1 or rpi0 %} active{% endif %}"]
[[figure caption="Raspberry Pi"]![](image://raspberrypi.jpg?height=75)[/figure]](/install/hardware:rpi2plus)
[/div]
[div class="flex-child hardware{%if arm_sup or arm_unsup or internetcube %} active{% endif %}"]
[[figure caption="ARM board"]![](image://olinuxino.jpg?height=75)[/figure]](/install/hardware:arm_sup)
[/div]
[div class="flex-child hardware{%if regular %} active{% endif %}"]
[[figure caption="Personal computer"]![](image://computer.png?height=75)[/figure]](/install/hardware:regular)
[/div]
[div class="flex-child hardware{%if vps_debian or vps_ynh %} active{% endif %}"]
[[figure caption="Server remoto"]![](image://vps.png?height=75)[/figure]](/install/hardware:vps_debian)
[/div]
[/div]
[div class="flex-container pt-2"]
{% if rpi2plus or rpi1 or rpi0 %}
[div class="flex-child hardware{%if rpi2plus %} active{% endif %}"]
[[figure caption="Raspberry Pi 2, 3 oppure 4"]![](image://raspberrypi.jpg?height=50)[/figure]](/install/hardware:rpi2plus)
[/div]
[div class="flex-child hardware{%if rpi1 %} active{% endif %}"]
[[figure caption="Raspberry Pi 1"]![](image://rpi1.jpg?height=50)[/figure]](/install/hardware:rpi1)
[/div]
[div class="flex-child hardware{%if rpi0 %} active{% endif %}"]
[[figure caption="Raspberry Pi zero"]![](image://rpi0.jpg?height=50)[/figure]](/install/hardware:rpi0)
[/div]
{% elseif arm_sup or arm_unsup or internetcube %}
[div class="flex-child hardware{%if internetcube %} active{% endif %}"]
[[figure caption="Internet cube attraverso una VPN"]![](image://internetcube.png?height=50)[/figure]](/install/hardware:internetcube)
[/div]
[div class="flex-child hardware{%if arm_sup and not internetcube %} active{% endif %}"]
[[figure caption="Olinuxino lime1&2 oppure Orange Pi PC+"]![](image://olinuxino.jpg?height=50)[/figure]](/install/hardware:arm_sup)
[/div]
[div class="flex-child hardware{%if arm_unsup %} active{% endif %}"]
[[figure caption="Altre architetture"]![](image://odroidhc4.png?height=50)[/figure]](/install/hardware:arm_unsup)
[/div]
{% elseif vps_debian or vps_ynh %}
[div class="flex-child hardware{%if vps_debian %} active{% endif %}"]
[[figure caption="VPS o server dedicato con Debian 11"]![](image://debian-logo.png?height=50)[/figure]](/install/hardware:vps_debian)
[/div]
[div class="flex-child hardware{%if vps_ynh %} active{% endif %}"]
[[figure caption="VPS o server dedicato con YunoHost pre-installed"]![](image://logo.png?height=50)[/figure]](/install/hardware:vps_ynh)
[/div]
{% endif %}
[/div]
{% if hardware != '' %}
{% if docker %}
!! **YunoHost doesnt support Docker officially since issues with versions 2.4+. In question, YunoHost 2.4+ doesnt work anymore on Docker because YunoHost requires systemd and Docker has chosen to not support it natively (and there are other problems link to the firewall and services).**
!!
!! **We strongly discourage you to run YunoHost on docker with those images**
## Community images
However, community images exist and are available on Docker Hub:
* [AMD64 (classic) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost/)
* [I386 (old computers) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost-i386/)
* [ARM64V8 (Raspberry Pi 4) (YunoHost 4.x)](https://hub.docker.com/r/cms0/yunohost/)
* [ARMV7 (Raspberry Pi 2/3 ...) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost-arm/)
* [ARMV6 (Raspberry Pi 1) (old yunoHost version)](https://hub.docker.com/r/tuxalex/yunohost-armv6/)
{% else %}
## [fa=list-alt /] Pre-requisites
{% if regular %}
* Un x86-compatibile con hardware dedicato a YunoHost: laptop, nettop, netbook, desktop con almeno 512MB di RAM e almeno 16GB di memoria di massa
{% elseif rpi2plus %}
* A Raspberry Pi 2, 3 or 4
{% elseif rpi1 %}
* A Raspberry Pi 1 with at least 512MB RAM
{% elseif rpi0 %}
* A Raspberry Pi zero
{% elseif internetcube %}
* An Orange Pi PC+ or an Olinuxino Lime 1 or 2
* A VPN with a dedicated public IP and a `.cube` file
{% elseif arm_sup %}
* An Orange Pi PC+ or an Olinuxino Lime 1 or 2
{% elseif arm_unsup %}
* An ARM board with at least 512MB RAM
{% elseif vps_debian %}
* A dedicated or virtual private server with Debian 11 (Bullseye) <small>(with **kernel >= 3.12**)</small> preinstalled, 512MB RAM and 16GB capacity (at least)
{% elseif vps_ynh %}
* A dedicated or virtual private server with yunohost preinstalled, 512MB RAM and 16GB capacity (at least)
{% elseif virtualbox %}
* An x86 computer with [VirtualBox installed](https://www.virtualbox.org/wiki/Downloads) and enough RAM capacity to be able to run a small virtual machine with 1024MB RAM and 8GB capacity (at least)
{% endif %}
{% if arm %}
* A power supply (either an adapter or a MicroUSB cable) for your board;
* A microSD card: 16GB capacity (at least), [class "A1"](https://en.wikipedia.org/wiki/SD_card#Class) highly recommended (such as [this SanDisk A1 card](https://www.amazon.fr/SanDisk-microSDHC-Adaptateur-homologu%C3%A9e-Nouvelle/dp/B073JWXGNT/));
{% endif %}
{% if regular %}
* A USB stick with at least 1GB capacity OR a standard blank CD
{% endif %}
{% if at_home %}
* A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth
{% if rpi0 %}
* An usb OTG or a wifi dongle to connect your Raspberry Pi Zero
{% elseif not virtualbox %}
* An ethernet cable (RJ-45) to connect your server to your router.
{% endif %}
* A computer to read this guide, flash the image and access your server.
{% endif %}
{% if not at_home %}
* A computer or a smartphone to read this guide and access your server.
{% endif %}
{% if virtualbox %}
! N.B. : Installing YunoHost in a VirtualBox is usually intended for testing. To run an actual server on the long-term, you usually need a dedicated physical machine (old computer, ARM board...) or a server online.
{% endif %}
{% if vps_ynh %}
## YunoHost VPS providers
Here are some VPS providers supporting YunoHost natively :
[div class="flex-container"]
[div class="flex-child"]
[[figure caption="Alsace Réseau Neutre - FR"]![](image://vps_ynh_arn.png?height=50)[/figure]](https://vps.arn-fai.net)
[/div]
[/div]
{% endif %}
{% if at_home %}
## [fa=download /] Download the {{image_type}} image
! I link alle immagini sono attualmente interrotti. Mentre stiamo lavorando al problema, potete trovarli direttamente su https://build.yunohost.org/
{% if virtualbox or regular %}
!!! If your host OS is 32 bits, be sure to download the 32-bit image.
{% elseif arm_unsup %}
<a href="https://www.armbian.com/download/" target="_BLANK" type="button" class="btn btn-info col-sm-12">[fa=external-link] Download the image for your board on Armbian's website</a>
!!! N.B.: you should download the image Armbian Bullseye.
{% endif %}
<div class="hardware-image">
<div id="cards-list">
</div>
</div>
<template id="image-template">
<div id="{id}" class="card panel panel-default">
<div class="panel-body text-center pt-2">
<h3>{name}</h3>
<div class="card-comment">{comment}</div>
<div class="card-desc text-center">
<img src="/user/images/{image}" height=100 style="vertical-align:middle">
</div>
</div>
<div class="annotations flex-container">
<div class="flex-child annotation"><a href="{file}.sha256sum">[fa=barcode] Checksum</a></div>
<div class="flex-child annotation"><a href="{file}.sig">[fa=tag] Signature</a></div>
</div>
<div class="btn-group" role="group">
<a href="{file}" target="_BLANK" type="button" class="btn btn-info col-sm-12">[fa=download] Download <small>{version}</small></a>
</div>
</div>
</template>
<script>
var hardware = "{{ hardware|escape('js') }}";
/*
###############################################################################
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) {
if (infos.tuto.indexOf(hardware) == -1) return;
// Fill the template
html = $('#image-template').html()
.replace('{id}', infos.id)
.replace('{name}', infos.name)
.replace('{comment}', infos.comment || "&nbsp;")
.replace('%7Bimage%7D', infos.image)
.replace('{image}', infos.image)
.replace('{version}', infos.version);
if (!infos.file.startsWith("http"))
infos.file="https://build.yunohost.org/"+infos.file;
html = html.replace(/%7Bfile%7D/g, infos.file).replace(/{file}/g, infos.file);
if ((typeof(infos.has_sig_and_sums) !== 'undefined') && infos.has_sig_and_sums == false)
{
var $html = $(html);
$html.find(".annotations").html("&nbsp;");
html = $html[0];
}
$('#cards-list').append(html);
});
});
});
</script>
{% if not virtualbox %}
{% if arm %}
## ![microSD card with adapter](image://sdcard_with_adapter.png?resize=100,75&class=inline) Flash the {{image_type}} image
{% else %}
## ![USB drive](image://usb_key.png?resize=100,100&class=inline) Flash the YunoHost image
{% endif %}
Now that you downloaded the image of {{image_type}}, you should flash it on {% if arm %}a microSD card{% else %}a USB stick or a CD/DVD.{% endif %}
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="(Recommended) With Etcher"]
Download <a href="https://www.balena.io/etcher/" target="_blank">Etcher</a> for your operating system and install it.
Plug your {% if arm %}SD card{% else %}USB stick{% endif %}, select your image and click "Flash"
![Etcher](image://etcher.gif?resize=700&class=inline)
[/ui-tab]
[ui-tab title="With USBimager"]
Download [USBimager](https://bztsrc.gitlab.io/usbimager/) for your operating system and install it.
Plug your {% if arm %}SD card{% else %}USB stick{% endif %}, select your image and click "Write"
![USBimager](image://usbimager.png?resize=700&class=inline)
[/ui-tab]
[ui-tab title="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
```
[/ui-tab]
{% if regular %}
[ui-tab title="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/)
[/ui-tab]
{% endif %}
[/ui-tabs]
{% else %}
## Create a new virtual machine
![](image://virtualbox_1.png?class=inline)
! It's okay if you can only have 32-bit versions, just be sure that you downloaded the 32-bit image previously.
## Tweak network settings
! This step is important to properly expose the virtual machine on the network
Go to **Settings** > **Network**:
* Select `Bridged adapter`
* Select your interface's name:
**wlan0** if you are connected wirelessly, or **eth0** otherwise.
![](image://virtualbox_2.png?class=inline)
{% endif %}
{% if arm %}
## [fa=plug /] Power up the board
* Plug the ethernet cable (one side on your main router, the other on your board).
* For advanced users willing to configure the board to connect to WiFi instead, see for example [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md).
* Plug the SD card in your board
* (Optional) You can connect a screen+keyboard directly on your board if you want to troubleshoot the boot process or if you're more comfortable to "see what happens" or want a direct access to the board.
* Power up the board
* Wait a couple minutes while the board autoconfigure itself during the first boot
* Make sure that your computer (desktop/laptop) is connected to the same local network (i.e. same internet box) as your server.
{% elseif virtualbox %}
## [fa=plug /] Boot up the virtual machine
Start the virtual machine after selecting the YunoHost image.
![](image://virtualbox_2.1.png?class=inline)
! If you encounter the error "VT-x is not available", you probably need to enable Virtualization in the BIOS of your computer.
{% else %}
## [fa=plug /] Boot the machine on your USB stick
* Plug the ethernet cable (one side on your main router, the other on your server).
* 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>`.
* N.B. : if the server was previously installed with a recent version of Windows (8+), you first need to tell Windows, to "actually reboot". This can be done somewhere in "Advanced startup options".
{% endif %}
{% if regular or virtualbox %}
## [fa=rocket /] Launch the graphical install
!! N.B. : The installation will totally erase the data on the server's hard drive!
You should see a screen like this:
[figure class="nomargin" caption="Preview of the ISO menu"]
![](image://virtualbox_3.png?class=inline)
[/figure]
1. Select `Graphical install`
2. Select your language, your location and your keyboard layout
3. The installer will then download and install all required packages.
{% endif %}
{% if rpi1 or rpi0 %}
## [fa=bug /] Connect to the board and hotfix the image
Raspberry Pi 1 and 0 are not totally supported due to [compilation issues for this architecture](https://github.com/YunoHost/issues/issues/1423).
However, it is possible to fix by yourself the image before to run the initial configuration.
To achieve this, you need to connect on your raspberry pi as root user [via SSH](/ssh) with the temporary password `yunohost`:
```
ssh root@yunohost.local
```
(o `yunohost-2.local`, e così via se più server YunoHost sono sulla tua rete)
Then run the following commands to work around the metronome issue:
```
mv /usr/bin/metronome{,.bkp}
mv /usr/bin/metronomectl{,.bkp}
ln -s /usr/bin/true /usr/bin/metronome
ln -s /usr/bin/true /usr/bin/metronomectl
```
And this one to work around the upnpc issue:
```
sed -i 's/import miniupnpc/#import miniupnpc/g' /usr/lib/moulinette/yunohost/firewall.py
```
! This last command need to be run after each yunohost upgrade :/
{% elseif arm_unsup %}
## [fa=terminal /] Connect to the board
Next you need to [find the local IP address of your server](/finding_the_local_ip) to connect as root user [via SSH](/ssh) with the temporary password `1234`.
```
ssh root@192.168.x.xxx
```
{% endif %}
{% endif %}
{% if vps_debian or arm_unsup %}
## [fa=rocket /] Run the install script
- Open a command line prompt on your server (either directly or [through SSH](/ssh))
- Make sure you are root (or type `sudo -i` to become root)
- Run the following command:
```bash
curl https://install.yunohost.org | bash
```
!!! If `curl` is not installed on your system, you might need to install it with `apt install curl`.
!!! Otherwise, if the command does not do anything, you might want to `apt install ca-certificates`
!!! **Note for advanced users concerned with the `curl|bash` approach:** consider reading ["Is curl|bash insecure?"](https://sandstorm.io/news/2015-09-24-is-curl-bash-insecure-pgp-verified-install) on Sandstom's blog, and possibly [this discussion on Hacker News](https://news.ycombinator.com/item?id=12766350&noprocess).
{% endif %}
## [fa=cog /] Proceed with the initial configuration
!!! If you are in the process of restoring a server using a YunoHost backup, you should skip this step and instead [restore the backup instead of the postinstall step](/backup#restoring-during-the-postinstall).
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="From the web interface"]
{%if at_home %}
In an internet browser, type **{% if internetcube %}`https://internetcube.local`{% else %}`https://yunohost.local` (o `yunohost-2.local`, e così via se più server YunoHost sono sulla tua rete){% endif %}**.
!!! If this doesn't work, you can [look for the the local IP address of your server](/finding_the_local_ip). The address typically looks like `192.168.x.y`, and you should therefore type `https://192.168.x.y` in your browser's address bar.
{% else %}
You can perform the initial configuration with the web interface by typing in the adress bar of your web browser **the public IP address of your server**. Typically, your VPS provider should have provided you with the IP of the server.
{% endif %}
! During the first visit, you will very likely encounter a security warning related to the certificate used by the server. For now, your server uses a self-signed certificate. You will later be able to add a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). For now, you should add a security exception to accept the current certificate. (Though PLEASE, don't take the habit to blindly accepting this kind of security alerts !)
{% if not internetcube %}
You should then land on this page :
[figure class="nomargin" caption="Preview of the Web initial configuration page"]
![Initial configuration page](image://postinstall_web.png?resize=100%&class=inline)
[/figure]
{% endif %}
[/ui-tab]
[ui-tab title="From the command line"]
You can also perform the postinstallation with the command `yunohost tools postinstall` directly on the server, or [via SSH](/ssh).
[figure class="nomargin" caption="Preview of the command-line post-installation"]
![Initial configuration with CLI](image://postinstall_cli.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[/ui-tabs]
{% if not internetcube %}
##### [fa=globe /] Main domain
This will be the domain used by your server's users to access the **authentication portal**. You can later add other domains, and change which one is the main domain if needed.
* If you're new to self-hosting and do not already have a domain name, we recommend using a **.nohost.me** / **.noho.st** / **.ynh.fr** (e.g. `homersimpson.nohost.me`). Provided that it's not already taken, the domain will be configured automatically and you won't need any further configuration step. Please note that the downside is that you won't have full-control over the DNS configuration.
* If you already own a domain name, you probably want to use it here. You will later need to configure DNS records as explained [here](/dns_config).
!!! Yes, you *have to* configure a domain name. If you don't have any domain name and don't want a **.nohost.me** / **.noho.st** / **.ynh.fr** either, you can set up a dummy domain such as `yolo.test` and tweak your `/etc/hosts` file such that this dummy domain points to the appropriate IP, as explained [here](/dns_local_network)).
##### [fa=key /] Administration password
This password will be used to access to your server's administration interface. You will also use it to connect [via **SSH**](/ssh) or [**SFTP**](/filezilla). In general terms, this is your **system's key**, choose it carefully!
## [fa=user /] Create a first user
Once the postinstall is done, you should be able to actually log in the web admin interface using the administration password.
So far, your server now has an `admin` user - but `admin` is not a "regular" user and *can't* be used to log on [the user portal](/users).
Let's therefore add a first "regular" user.
!!! The first user you create is a bit special : it will receive emails sent to `root@yourdomain.tld` and `admin@yourdomain.tld`. These emails may be used to send technical informations or alerts.
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="From the web interface"]
Go in Users > Add
[figure class="nomargin" caption="Anteprima dell'interfaccia utente di creazione dell'utente"]
![creazione dell'utente](image://create-first-user.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[ui-tab title="From the command line"]
```
yunohost user create johndoe
```
[figure class="nomargin" caption="Anteprima dell'interfaccia utente di creazione dell'utente CLI"]
![creazione dell'utente CLI](image://create-first-user-cli.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[/ui-tabs]
{% endif %}
## [fa=stethoscope /] Run the initial diagnosis
The diagnosis system is meant to provide an easy way to validate that all critical aspects of your server are properly configured - and guide you in how to fix issues. The diagnosis will run twice a day and send an alert if issues are detected.
!!! N.B. : **don't run away** ! The first time you run the diagnosis, it is quite expected to see a bunch of yellow/red alerts because you typically need to [configure DNS records](/dns_config) (if not using a `.nohost.me`/`noho.st`/`ynh.fr` domain), add a swapfile if not enough ram {% if at_home %} and/or [port forwarding](/isp_box_config){% endif %}.
!!! If an alert is not relevant (for example because you don't intend on using a specific feature), it is perfectly fine to flag the issue as 'ignored' by going in the webadmin > Diagnosis, and clicking the ignore button for this specifc issue.
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="(Recommended) From the web interface"]
To run a diagnosis, go on Web Admin in the Diagnosis section. You should get a screen like this :
[figure class="nomargin" caption="Preview of the diagnostic panel"]
![](image://diagnostic.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[ui-tab title="From the command line"]
```
yunohost diagnosis run
yunohost diagnosis show --issues --human-readable
```
[/ui-tab]
[/ui-tabs]
## [fa=lock /] Get a Let's Encrypt certificate
Once you configured DNS records and port forwarding (if needed), you should be able to install a a Let's Encrypt certificate. This will get rid of the spooky security warning from earlier for new visitors.
For more detailled instructions, or to lean more about SSL/TLS certificates, see [the corresponding page here](/certificate).
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="From the web interface"]
[figure class="nomargin" caption="Preview of the diagnostic panel"]
![](image://certificate-before-LE.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[ui-tab title="From the command line"]
```
yunohost domain cert install
```
[/ui-tab]
[/ui-tabs]
{% endif %}
## ![](image://tada.png?resize=32&classes=inline) Congratz!
You now have a pretty well configured server. If you're new to YunoHost, we recommend to have a look at [the guided tour](/overview). You should also be able to [install your favourite applications](/apps). Don't forget to [plan backups](/backup) !
{% endif %}

View file

@ -14,7 +14,6 @@ page-toc:
routes: routes:
default: '/install' default: '/install'
aliases: aliases:
- '/docker'
- '/install_iso' - '/install_iso'
- '/install_on_vps' - '/install_on_vps'
- '/install_manually' - '/install_manually'
@ -29,7 +28,7 @@ routes:
- '/hardware' - '/hardware'
--- ---
{% set image_type = 'YunoHost' %} {% set image_type = 'YunoHost' %}
{% set arm, at_home, regular, rpi2plus, rpi1, rpi0, arm_sup, arm_unsup, vps, vps_debian, vps_ynh, virtualbox, wsl, internetcube, docker = false, false, false, false, false, false, false, false, false, false, false, false, false, false, false %} {% set arm, at_home, regular, rpi34, rpi012, show_legacy_arm_menu, arm_sup, arm_unsup, vps, vps_debian, vps_ynh, virtualbox, wsl, internetcube = false, false, false, false, false, false, false, false, false, false, false, false, false, false %}
{% set hardware = uri.param('hardware') %} {% set hardware = uri.param('hardware') %}
{% if hardware == 'regular' %} {% if hardware == 'regular' %}
@ -37,16 +36,21 @@ routes:
{% elseif hardware == 'internetcube' %} {% elseif hardware == 'internetcube' %}
{% set arm, arm_sup, internetcube = true, true, true %} {% set arm, arm_sup, internetcube = true, true, true %}
{% set image_type = 'Internet Cube' %} {% set image_type = 'Internet Cube' %}
{% elseif hardware == 'rpi2plus' %} {% set show_legacy_arm_menu = true %}
{% set arm, rpi2plus = true, true %} {% elseif hardware == 'rpi34' %}
{% elseif hardware == 'rpi1' %} {% set arm, rpi34 = true, true %}
{% set arm, rpi1 = true, true %} {% elseif hardware == 'rpi012' %}
{% elseif hardware == 'rpi0' %} {% set arm, arm_unsup, rpi012 = true, true, true %}
{% set arm, rpi0 = true, true %} {% set image_type = 'Raspberry Pi OS Lite (32-bit, Bullseye)' %}
{% elseif hardware == 'arm_sup' %} {% elseif hardware == 'arm_sup' %}
{% set arm, arm_sup = true, true %} {% set arm, arm_sup = true, true %}
{% set show_legacy_arm_menu = true %}
{% elseif hardware == 'arm' %}
{% set arm, arm_unsup = true, true %}
{% set image_type = 'Armbian' %}
{% elseif hardware == 'arm_unsup' %} {% elseif hardware == 'arm_unsup' %}
{% set arm, arm_unsup = true, true %} {% set arm, arm_unsup = true, true %}
{% set show_legacy_arm_menu = true %}
{% set image_type = 'Armbian' %} {% set image_type = 'Armbian' %}
{% elseif hardware == 'vps_debian' %} {% elseif hardware == 'vps_debian' %}
{% set vps, vps_debian = true, true %} {% set vps, vps_debian = true, true %}
@ -54,8 +58,6 @@ routes:
{% set vps, vps_ynh = true, true %} {% set vps, vps_ynh = true, true %}
{% elseif hardware == 'virtualbox' %} {% elseif hardware == 'virtualbox' %}
{% set at_home, virtualbox = true, true %} {% set at_home, virtualbox = true, true %}
{% elseif hardware == 'docker' %}
{% set docker = true %}
{% elseif hardware == 'wsl' %} {% elseif hardware == 'wsl' %}
{% set wsl = true %} {% set wsl = true %}
{% endif %} {% endif %}
@ -71,12 +73,12 @@ Select the hardware on which you want install YunoHost :
[[figure caption="VirtualBox"]![](image://virtualbox.png?height=75)[/figure]](/install/hardware:virtualbox) [[figure caption="VirtualBox"]![](image://virtualbox.png?height=75)[/figure]](/install/hardware:virtualbox)
[/div] [/div]
[div class="flex-child hardware{%if rpi2plus or rpi1 or rpi0 %} active{% endif %}"] [div class="flex-child hardware{%if rpi012 or rpi34 %} active{% endif %}"]
[[figure caption="Raspberry Pi"]![](image://raspberrypi.jpg?height=75)[/figure]](/install/hardware:rpi2plus) [[figure caption="Raspberry Pi"]![](image://raspberrypi.png?height=75)[/figure]](/install/hardware:rpi34)
[/div] [/div]
[div class="flex-child hardware{%if arm_sup or arm_unsup or internetcube %} active{% endif %}"] [div class="flex-child hardware{%if arm_sup or (arm_unsup and not rpi012) or internetcube %} active{% endif %}"]
[[figure caption="ARM board"]![](image://olinuxino.jpg?height=75)[/figure]](/install/hardware:arm_sup) [[figure caption="ARM board"]![](image://olinuxino.png?height=75)[/figure]](/install/hardware:arm)
[/div] [/div]
[div class="flex-child hardware{%if regular %} active{% endif %}"] [div class="flex-child hardware{%if regular %} active{% endif %}"]
@ -94,26 +96,23 @@ Select the hardware on which you want install YunoHost :
[/div] [/div]
[div class="flex-container pt-2"] [div class="flex-container pt-2"]
{% if rpi2plus or rpi1 or rpi0 %} {% if rpi012 or rpi34 %}
[div class="flex-child hardware{%if rpi2plus %} active{% endif %}"] [div class="flex-child hardware{%if rpi34 %} active{% endif %}"]
[[figure caption="Raspberry Pi 2, 3 or 4"]![](image://raspberrypi.jpg?height=50)[/figure]](/install/hardware:rpi2plus) [[figure caption="Raspberry Pi 3 or 4"]![](image://raspberrypi.png?height=50)[/figure]](/install/hardware:rpi34)
[/div] [/div]
[div class="flex-child hardware{%if rpi1 %} active{% endif %}"] [div class="flex-child hardware{%if rpi012 %} active{% endif %}"]
[[figure caption="Raspberry Pi 1"]![](image://rpi1.jpg?height=50)[/figure]](/install/hardware:rpi1) [[figure caption="Raspberry Pi 0, 1 or 2"]![](image://rpi1.png?height=50)[/figure]](/install/hardware:rpi012)
[/div] [/div]
[div class="flex-child hardware{%if rpi0 %} active{% endif %}"] {% elseif show_legacy_arm_menu %}
[[figure caption="Raspberry Pi zero"]![](image://rpi0.jpg?height=50)[/figure]](/install/hardware:rpi0)
[/div]
{% elseif arm_sup or arm_unsup or internetcube %}
[div class="flex-child hardware{%if internetcube %} active{% endif %}"] [div class="flex-child hardware{%if internetcube %} active{% endif %}"]
[[figure caption="Internet cube With VPN"]![](image://internetcube.png?height=50)[/figure]](/install/hardware:internetcube) [[figure caption="Internet cube With VPN"]![](image://internetcube.png?height=50)[/figure]](/install/hardware:internetcube)
[/div] [/div]
[div class="flex-child hardware{%if arm_sup and not internetcube %} active{% endif %}"] [div class="flex-child hardware{%if arm_sup and not internetcube %} active{% endif %}"]
[[figure caption="Olinuxino lime1&2 or Orange Pi PC+"]![](image://olinuxino.jpg?height=50)[/figure]](/install/hardware:arm_sup) [[figure caption="Olinuxino lime1&2 or Orange Pi PC+"]![](image://olinuxino.png?height=50)[/figure]](/install/hardware:arm_sup)
[/div] [/div]
[div class="flex-child hardware{%if arm_unsup %} active{% endif %}"] [div class="flex-child hardware{%if arm_unsup %} active{% endif %}"]
@ -140,33 +139,15 @@ Select the hardware on which you want install YunoHost :
!! This setup is mainly meant for local testing by advanced users. Due to limitations on WSL's side (changing IP address, notably), selfhosting from it can be tricky and will not be described here. !! This setup is mainly meant for local testing by advanced users. Due to limitations on WSL's side (changing IP address, notably), selfhosting from it can be tricky and will not be described here.
{% endif %} {% endif %}
{% if docker %}
!! **YunoHost doesnt support Docker officially since issues with versions 2.4+. In question, YunoHost 2.4+ doesnt work anymore on Docker because YunoHost requires systemd and Docker has chosen to not support it natively (and there are other problems link to the firewall and services).**
!!
!! **We strongly discourage you to run YunoHost on docker with those images**
## Community images
However, community images exist and are available on Docker Hub:
* [AMD64 (classic) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost/)
* [I386 (old computers) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost-i386/)
* [ARM64V8 (Raspberry Pi 4) (YunoHost 4.x)](https://hub.docker.com/r/cms0/yunohost/)
* [ARMV7 (Raspberry Pi 2/3 ...) (YunoHost 4.x)](https://hub.docker.com/r/domainelibre/yunohost-arm/)
* [ARMV6 (Raspberry Pi 1) (old yunoHost version)](https://hub.docker.com/r/tuxalex/yunohost-armv6/)
{% else %}
## [fa=list-alt /] Pre-requisites ## [fa=list-alt /] Pre-requisites
{% if regular %} {% if regular %}
* A x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop with 512MB RAM and 16GB capacity (at least) * A x86-compatible hardware dedicated to YunoHost: laptop, nettop, netbook, desktop with 512MB RAM and 16GB capacity (at least)
{% elseif rpi2plus %} {% elseif rpi34 %}
* A Raspberry Pi 2, 3 or 4 * A Raspberry Pi 3 or 4
{% elseif rpi1 %} {% elseif rpi012 %}
* A Raspberry Pi 1 with at least 512MB RAM * A Raspberry Pi 0, 1 or 2 with at least 512MB RAM
{% elseif rpi0 %}
* A Raspberry Pi zero
{% elseif internetcube %} {% elseif internetcube %}
* An Orange Pi PC+ or an Olinuxino Lime 1 or 2 * An Orange Pi PC+ or an Olinuxino Lime 1 or 2
* A VPN with a dedicated public IP and a `.cube` file * A VPN with a dedicated public IP and a `.cube` file
@ -196,19 +177,16 @@ However, community images exist and are available on Docker Hub:
{% endif %} {% endif %}
{% if at_home %} {% if at_home %}
* A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth * A [reasonable ISP](/isp), preferably with a good and unlimited upstream bandwidth
{% if rpi0 %} {% if not virtualbox %}
* An usb OTG or a wifi dongle to connect your Raspberry Pi Zero * An ethernet cable (RJ-45) to connect your server to your router. {% if rpi012 %} (Or, for Rasperry Pi Zero : and USB OTG or a wifi Dongle) {% endif %}
{% elseif not virtualbox %}
* An ethernet cable (RJ-45) to connect your server to your router.
{% endif %} {% endif %}
* A computer to read this guide, flash the image and access your server. * A computer to read this guide, flash the image and access your server.
{% endif %} {% else %}
{% if not at_home %}
* A computer or a smartphone to read this guide and access your server. * A computer or a smartphone to read this guide and access your server.
{% endif %} {% endif %}
{% if virtualbox %} {% if virtualbox %}
! N.B. : Installing YunoHost in a VirtualBox is usually intended for testing. To run an actual server on the long-term, you usually need a dedicated physical machine (old computer, ARM board...) or a server online. ! N.B. : Installing YunoHost in a VirtualBox is usually intended for testing or development. It is not convenient to run an actual server on the long-term, because the machine it's installed on probably won't be up 24/7, and because Virtualbox adds an additional layer of complexity in exposing the machine to the Internet.
{% endif %} {% endif %}
{% if wsl %} {% if wsl %}
@ -331,8 +309,10 @@ wsl --import YunoHost .\WSL\YunoHost .\WSL\YunoHost.tar.gz --version 2
``` ```
{% endif %} {% endif %}
{% if vps_ynh %} {% if vps_ynh %}
## YunoHost VPS providers ## YunoHost VPS providers
Here are some VPS providers supporting YunoHost natively : Here are some VPS providers supporting YunoHost natively :
[div class="flex-container"] [div class="flex-container"]
@ -340,7 +320,12 @@ Here are some VPS providers supporting YunoHost natively :
[div class="flex-child"] [div class="flex-child"]
[[figure caption="Alsace Réseau Neutre - FR"]![](image://vps_ynh_arn.png?height=50)[/figure]](https://vps.arn-fai.net) [[figure caption="Alsace Réseau Neutre - FR"]![](image://vps_ynh_arn.png?height=50)[/figure]](https://vps.arn-fai.net)
[/div] [/div]
[div class="flex-child"]
[[figure caption="FAImaison - FR"]![](image://vps_ynh_faimaison.svg?height=50)[/figure]](https://www.faimaison.net/services/vm.html)
[/div]
[div class="flex-child"]
[[figure caption="Association ECOWAN - FR"]![](image://vps_ynh_ecowan.png?height=50)[/figure]](https://www.ecowan.fr/vps-linux)
[/div]
[/div] [/div]
{% endif %} {% endif %}
@ -348,12 +333,14 @@ Here are some VPS providers supporting YunoHost natively :
{% if at_home %} {% if at_home %}
## [fa=download /] Download the {{image_type}} image ## [fa=download /] Download the {{image_type}} image
! The links to the images are currently broken. While we resolve the issue, you can find them directly on https://build.yunohost.org/ {% if rpi012 %}
! Support for Rasperry Pi 0, 1 and 2 is unfortunately slowly dropping : building fresh images is complex, and RPi 0, 1 and 2 are ARM-32bit systems which will get more and more deprecated over time. Our pre-installed images are quite old. We recommend instead to [download the official Rasperry Pi OS Lite (**32-bit**, **Bullseye**)](https://downloads.raspberrypi.org/raspios_lite_armhf/images/?C=M;O=D) and installing YunoHost on top [using similar instructions as for other ARM boards](/install/hardware:arm)
{% endif %}
{% if virtualbox or regular %} {% if virtualbox or regular %}
!!! If your host OS is 32 bits, be sure to download the 32-bit image. !!! If your host OS is 32 bits, be sure to download the 32-bit image.
{% elseif arm_unsup %} {% elseif arm_unsup and not rpi012 %}
<a href="https://www.armbian.com/download/" target="_BLANK" type="button" class="btn btn-info col-sm-12">[fa=external-link] Download the image for your board on Armbian's website</a> <a href="https://www.armbian.com/download/" target="_BLANK" type="button" class="btn btn-info col-sm-12" style="background: none;">[fa=external-link] Download the image for your board on Armbian's website</a>
!!! N.B.: you should download the image Armbian Bullseye. !!! N.B.: you should download the image Armbian Bullseye.
{% endif %} {% endif %}
@ -399,6 +386,7 @@ $(document).ready(function () {
console.log("in load"); console.log("in load");
$.getJSON('https://build.yunohost.org/images.json', function (images) { $.getJSON('https://build.yunohost.org/images.json', function (images) {
$.each(images, function(k, infos) { $.each(images, function(k, infos) {
if (infos.hide == true) { return; }
if (infos.tuto.indexOf(hardware) == -1) return; if (infos.tuto.indexOf(hardware) == -1) return;
// Fill the template // Fill the template
html = $('#image-template').html() html = $('#image-template').html()
@ -607,7 +595,7 @@ Keep in mind that:
{% endif %} {% endif %}
{% if rpi1 or rpi0 %} {% if rpi012 %}
## [fa=bug /] Connect to the board and hotfix the image ## [fa=bug /] Connect to the board and hotfix the image
Raspberry Pi 1 and 0 are not totally supported due to [compilation issues for this architecture](https://github.com/YunoHost/issues/issues/1423). Raspberry Pi 1 and 0 are not totally supported due to [compilation issues for this architecture](https://github.com/YunoHost/issues/issues/1423).
@ -670,8 +658,6 @@ curl https://install.yunohost.org | bash
!!! If you are in the process of restoring a server using a YunoHost backup, you should skip this step and instead [restore the backup instead of the postinstall step](/backup#restoring-during-the-postinstall). !!! If you are in the process of restoring a server using a YunoHost backup, you should skip this step and instead [restore the backup instead of the postinstall step](/backup#restoring-during-the-postinstall).
{% if not wsl %}
[ui-tabs position="top-left" active="0" theme="lite"] [ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="From the web interface"] [ui-tab title="From the web interface"]
{%if at_home %} {%if at_home %}
@ -682,8 +668,6 @@ In an internet browser, type **{% if internetcube %}`https://internetcube.local`
You can perform the initial configuration with the web interface by typing in the adress bar of your web browser **the public IP address of your server**. Typically, your VPS provider should have provided you with the IP of the server. You can perform the initial configuration with the web interface by typing in the adress bar of your web browser **the public IP address of your server**. Typically, your VPS provider should have provided you with the IP of the server.
{% endif %} {% endif %}
{% endif %}
! During the first visit, you will very likely encounter a security warning related to the certificate used by the server. For now, your server uses a self-signed certificate. {% if not wsl %}You will later be able to add a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). {% endif %} For now, you should add a security exception to accept the current certificate. (Though, PLEASE, do not take the habit of blindly accepting this kind of security alert!) ! During the first visit, you will very likely encounter a security warning related to the certificate used by the server. For now, your server uses a self-signed certificate. {% if not wsl %}You will later be able to add a certificate automatically recognized by web browsers as described in the [certificate documentation](/certificate). {% endif %} For now, you should add a security exception to accept the current certificate. (Though, PLEASE, do not take the habit of blindly accepting this kind of security alert!)
{% if not internetcube %} {% if not internetcube %}
@ -739,48 +723,23 @@ If you want to create subdomains, do not forget to add them in the `hosts` file
{% endif %} {% endif %}
##### [fa=key /] Administration password ##### [fa=key /] First user
This password will be used to access to your server's administration interface. You will also use it to connect [via **SSH**](/ssh) or [**SFTP**](/filezilla). In general terms, this is your **system's key**, choose it carefully! [Since YunoHost 11.1](https://forum.yunohost.org/t/yunohost-11-1-release-sortie-de-yunohost-11-1/23378), the first user is now created at this stage. You should pick a username and a reasonably complex password. (We cannot stress enough that the password should be **robust**!) This user will be added to the Admins group, and will therefore be able to access the user portal, the web admin interface, and connect [via **SSH**](/ssh) or [**SFTP**](/filezilla). Admins will also receive emails sent to `root@yourdomain.tld` and `admin@yourdomain.tld` : these emails may be used to send technical informations or alerts. You can later add additional users, which you can also add to the Admins group.
## [fa=user /] Create a first user This user replaces the old `admin` user, which some old documentation page may still refer to. In which case : just replace `admin` with your username.
Once the postinstall is done, you should be able to actually log in the web admin interface using the administration password.
So far, your server now has an `admin` user - but `admin` is not a "regular" user and *can't* be used to log on [the user portal](/users).
Let's therefore add a first "regular" user.
!!! The first user you create is a bit special : it will receive emails sent to `root@yourdomain.tld` and `admin@yourdomain.tld`. These emails may be used to send technical informations or alerts.
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="From the web interface"]
Go in Users > Click on "+ New User" button
[figure class="nomargin" caption="Preview of the user creation UI"]
![User creation](image://create-first-user.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[ui-tab title="From the command line"]
```
yunohost user create johndoe
```
[figure class="nomargin" caption="Preview of the user creation CLI"]
![User creation CLI](image://create-first-user-cli.png?resize=100%&class=inline)
[/figure]
[/ui-tab]
[/ui-tabs]
{% endif %}
## [fa=stethoscope /] Run the initial diagnosis ## [fa=stethoscope /] Run the initial diagnosis
Once the postinstall is done, you should be able to actually log in the web admin interface using the credentials of the first user you just created.
{% if wsl %} {% if wsl %}
! Reminder: YunoHost in WSL will likely not be reachable from outside, and real domains and certificates won't be able to be assigned to it. ! Reminder: YunoHost in WSL will likely not be reachable from outside, and real domains and certificates won't be able to be assigned to it.
{% endif %} {% endif %}
{% if virtualbox %}
! Reminder: YunoHost in VirtualBox will likely not be reachable from outside without further network configuration in Virtualbox's settings. The diagnosis will probably complain about this.
{% endif %}
The diagnosis system is meant to provide an easy way to validate that all critical aspects of your server are properly configured - and guide you in how to fix issues. The diagnosis will run twice a day and send an alert if issues are detected. The diagnosis system is meant to provide an easy way to validate that all critical aspects of your server are properly configured - and guide you in how to fix issues. The diagnosis will run twice a day and send an alert if issues are detected.
@ -827,10 +786,10 @@ yunohost domain cert install
``` ```
[/ui-tab] [/ui-tab]
[/ui-tabs] [/ui-tabs]
{% endif %}
## ![](image://tada.png?resize=32&classes=inline) Congratz! ## ![](image://tada.png?resize=32&classes=inline) Congratz!
You now have a pretty well configured server. If you're new to YunoHost, we recommend to have a look at [the guided tour](/overview). You should also be able to [install your favourite applications](/apps). Don't forget to [plan backups](/backup) ! You now have a pretty well configured server. If you're new to YunoHost, we recommend to have a look at [the guided tour](/overview). You should also be able to [install your favourite applications](/apps). Don't forget to [plan backups](/backup) !
{% endif %} {% endif %}
{% endif %}

View file

@ -7,31 +7,34 @@ routes:
default: '/groups_and_permissions' default: '/groups_and_permissions'
--- ---
Vous pouvez accéder à l'interface de gestion des *groupes et des permissions* depuis la webadmin Vous pouvez accéder à l'interface de gestion des *groupes et des permissions* depuis l'admin web en allant dans la section "Utilisateurs" et en cliquant sur le bouton correspondant :
en allant dans la section "Utilisateurs" et en cliquant sur le bouton correspondant :
![](image://button_to_go_to_permission_interface_fr.png) ![](image://button_to_go_to_permission_interface_fr.png?resize=800)
## Gestion des groupes ## Gestion des groupes
Le mécanisme de groupe peut être utilisé pour définir des groupes d'utilisateurs qui peuvent ensuite être utilisés pour restreindre les autorisations pour les applications et autres services (tels que l'email ou XMPP). Notez qu'il n'est *pas* obligatoire de créer un groupe pour ce faire : vous pouvez également restreindre l'accès à une application ou à un service de manière individuelle. Le mécanisme de groupe peut être utilisé pour définir des groupes d'utilisateurs qui peuvent ensuite être utilisés pour restreindre les autorisations pour les applications et autres services (tels que l'email ou XMPP). Notez qu'il n'est *pas* obligatoire de créer un groupe pour ce faire : vous pouvez également restreindre l'accès à une application ou à un service de manière individuelle.
L'utilisation de groupes est cependant utile pour la sémantique, par exemple si vous hébergez plusieurs groupes d'amis, des associations ou des entreprises sur votre serveur, vous pouvez créer des groupes comme "association1" et "association2" et ajouter les membres de chaque association au groupe concerné. L'utilisation de groupes est cependant utile pour la sémantique, par exemple si vous hébergez plusieurs groupes d'amis, des associations ou des entreprises sur votre serveur, vous pouvez créer des groupes comme `association1` et `association2` et ajouter les membres de chaque association au groupe concerné.
Il est également possible de définir des alias mail pour un groupe, afin que les mails envoyés à `groupe@domain.tld` soient redirigés vers tous les membres du groupe.
### Groupes par défaut ### Groupes par défaut
Par défaut, deux groupes spéciaux sont créés : Par défaut, deux groupes spéciaux sont créés :
- `all_users`, qui contient tous les utilisateurs enregistrés sur YunoHost, - `all_users`, qui contient tous les utilisateurs enregistrés sur YunoHost,
- `visitors`, c'est-à-dire les personnes qui consultent le serveur sans être connectées. - `visitors`, c'est-à-dire les personnes qui consultent le serveur sans être connectées.
- `admins`, apparut depuis Yunohost 11.1, ce groupe permet de gérer les administrateurs de la machine, chaque utilisateur aura alors (selon la configuration du serveur) accès en SSH ainsi que la webadmin.
Vous ne pouvez pas changer le contenu de ces groupes, seulement les permissions qui leur sont accordées. Vous ne pouvez pas changer le contenu de ces groupes, seulement les permissions qui leur sont accordées.
### Lister les groupes existants ### Lister les groupes existants
[ui-tabs position="top-left" active="0" theme="lite"] [ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="À partir de l'interface web"] [ui-tab title="À partir de l'interface web"]
Les groupes existants sont listés en haut de la page *groupes et autorisations*. Les groupes existants sont listés en haut de la page *groupes et autorisations*.
![](image://groups_default-groups.png) ![](image://groups_default-groups_fr.png)
[/ui-tab] [/ui-tab]
[ui-tab title="À partir de la ligne de commande"] [ui-tab title="À partir de la ligne de commande"]
@ -234,3 +237,27 @@ $ yunohost user permission update wordpress.admin --show_tile True
``` ```
[/ui-tab] [/ui-tab]
[/ui-tabs] [/ui-tabs]
### Gérer les alias des groupes
Chaque groupe peut utiliser des alias de mail, bien que leur configuration se fasse actuellement uniquement depuis la CLI. Par défaut, le groupe `admins` dispose ainsi de `admins@domain.tld`, `root@domain.tld` ... : les messages envoyés à ces adresses sont redirigés vers tous les membres du groupe `admins`.
L'utilisation de la commande `yunohost user group info` permet de lister tous les alias pour le groupe renseigné.
```shell
$ yunohost user group info admins
[...]
mail-aliases:
- root@maindomain.tld
- admin@maindomain.tld
- admins@maindomain.tld
- webmaster@maindomain.tld
- postmaster@maindomain.tld
- abuse@maindomain.tld
[...]
```
Il est possible de les ajouter avec l'action `add-mailalias` ou de les enlever avec `remove-mailalias`.
```shell
$ yunohost user group add-mailalias <groupe> <adresse@domaine.tld>
```

View file

@ -18,6 +18,9 @@ The group mechanism can be used to define groups of users which then can be used
Using groups is however useful for semantics, for example if you host multiple groups of friends, associations or businesses on your server, you might want to create groups like `association1` and `association2` and add members of each association to the relevant group. Using groups is however useful for semantics, for example if you host multiple groups of friends, associations or businesses on your server, you might want to create groups like `association1` and `association2` and add members of each association to the relevant group.
It's also possible to define mail aliases for a group, such that mails sent to `groupe@domain.tld` will be dispatched to all members of the group.
### Default groups ### Default groups
By default, two special groups are created: By default, two special groups are created:
@ -234,3 +237,27 @@ $ yunohost user permission update wordpress.admin --show_tile True
``` ```
[/ui-tab] [/ui-tab]
[/ui-tabs] [/ui-tabs]
### Config alias group
Each group can use mail aliases, but their configuration is only available from the CLI so far. For example, the `admins` group is configured with aliases such as `admins@domain.tld`, `root@domain.tld` ... : mail sent to these addresses will be dispatched to all members of the `admins` group.
The command `yunohost user group info` will list them.
```shell
$ yunohost user group info admins
[...]
mail-aliases:
- root@maindomain.tld
- admin@maindomain.tld
- admins@maindomain.tld
- webmaster@maindomain.tld
- postmaster@maindomain.tld
- abuse@maindomain.tld
[...]
```
To add a new mail, use the action `add-mailalias` or `remove-mailalias` to delete it.
```shell
$ yunohost user group add-mailalias <group> <address@domaine.tld>
```

View file

@ -43,6 +43,15 @@ Les applications web peuvent fournir des tuiles disponibles depuis le portail ut
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`. 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`.
## Éxécuter des commandes au sein d'une app
À partir de YunoHost v11.1.21.4, si vous avez besoin d'exécuter des commandes avec le binaire de l'application, ou des commandes PHP, etc., vous pouvez exécuter la commande `yunohost app shell <app>`.
Cela aura pour effet de :
- ouvrir un nouveau shell Bash en tant qu'utilisateur système de l'application
- ouvrir le répertoire de travail de l'application (par exemple `/var/www/<app>`)
- précharger l'environnement avec des variables provenant du service de l'application, s'il existe
- remplacer `php`, pour qu'il pointe vers la version de PHP utilisée par l'application
## Packaging d'applications ## Packaging d'applications
Si vous voulez apprendre ou contribuer à l'empaquetage des applications, veuillez consulter la [documentation des contributeurs](/contributordoc). Si vous voulez apprendre ou contribuer à l'empaquetage des applications, veuillez consulter la [documentation des contributeurs](/contributordoc).

View file

@ -157,6 +157,14 @@ The `<key>` is the setting name, for example `main.sftp.with_sftp` from above.
[/ui-tab] [/ui-tab]
[/ui-tabs] [/ui-tabs]
## Execute commands within the app
Starting YunoHost v11.1.21.4, if you need to execute commands with the app's binary, or PHP commands, etc., you can execute the command `yunohost app shell <app>`.
It will:
- open a new Bash shell as the app's system user
- open the app's working directory (e.g. `/var/www/<app>`)
- preload the environment with variables taken from the app's service, if it exists
- override `php`, so that it points to the PHP version used by the app
## Applications packaging ## Applications packaging

View file

@ -33,6 +33,8 @@ Des alias de messagerie et des redirections peuvent être configurés pour chaqu
Une autre fonctionnalité méconnue est l'utilisation de suffixes commencant par "+". Par exemple, les emails envoyés à `johndoe+sncf@votre.domaine.tld` atteriront dans le dossier 'sncf' de la boîte mail de John Doe (ou bien directement dans la boîte mail si ce dossier n'existe pas). C'est une technique pratique pour, par exemple, fournir une adresse mail à un site puis facilement trier (via des filtres automatiques) les courriers venant de ce site. Une autre fonctionnalité méconnue est l'utilisation de suffixes commencant par "+". Par exemple, les emails envoyés à `johndoe+sncf@votre.domaine.tld` atteriront dans le dossier 'sncf' de la boîte mail de John Doe (ou bien directement dans la boîte mail si ce dossier n'existe pas). C'est une technique pratique pour, par exemple, fournir une adresse mail à un site puis facilement trier (via des filtres automatiques) les courriers venant de ce site.
Les groupes aussi peuvent utiliser des alias, par défaut le groupe `admins` dispose de `root@<domain.tld>` ou encore `webmaster@<domain.tld>`. [Plus d'information dans la page dédiée](/groups_and_permissions#&eacute;érer-les-alias-des-groupes).
## Que se passe-t-il si mon serveur devient indisponible ? ## Que se passe-t-il si mon serveur devient indisponible ?
Si votre serveur devient indisponible, les courriels envoyés à votre serveur resteront dans une file d'attente du côté de l'expéditeur pendant environ 5 jours. L'hébergeur de l'expéditeur tentera régulièrement de renvoyer le courrier, jusqu'à ce qu'il le jette s'il n'a pas pu l'envoyer. Si votre serveur devient indisponible, les courriels envoyés à votre serveur resteront dans une file d'attente du côté de l'expéditeur pendant environ 5 jours. L'hébergeur de l'expéditeur tentera régulièrement de renvoyer le courrier, jusqu'à ce qu'il le jette s'il n'a pas pu l'envoyer.

View file

@ -33,6 +33,8 @@ Mail aliases and forwards can be configured for each users. For instance, the fi
Another feature which few people know about is the use of suffixes beginning with "+". For example, emails sent to `johndoe+booking@the.domain.tld` will automatically land in the `booking` dir (lowercase) of John Doe's mailbox or in John Doe's inbox if `booking` directory doesn't exist . It is a practical technique for example to provide an e-mail address to a website, then easily sort (via automatic filters) the mail coming from this website. Another feature which few people know about is the use of suffixes beginning with "+". For example, emails sent to `johndoe+booking@the.domain.tld` will automatically land in the `booking` dir (lowercase) of John Doe's mailbox or in John Doe's inbox if `booking` directory doesn't exist . It is a practical technique for example to provide an e-mail address to a website, then easily sort (via automatic filters) the mail coming from this website.
Groups also can use alias features, by default the group `admins` have `root@<domain.tld>` or `webmaster@<domain.tld>`. [More information to use-it with the dedicated page](/groups_and_permissions#config-alias-group).
## What happens if my server becomes unavailable? ## What happens if my server becomes unavailable?
If your server becomes unavailable, emails sent to your server will stay in a pending queue on the sender's side for as long as ~5 days. The sender's hoster will regularly try to resend the email, until it drops it if it was unable to send it. If your server becomes unavailable, emails sent to your server will stay in a pending queue on the sender's side for as long as ~5 days. The sender's hoster will regularly try to resend the email, until it drops it if it was unable to send it.

View file

@ -11,16 +11,16 @@ routes:
Si votre fournisseur d'accès à Internet bloque le port 25, ou si vous rencontrez un problème dutilisation du serveur SMTP natif de YunoHost, vous pouvez configurer votre serveur YunoHost pour utiliser un relais SMTP. Si votre fournisseur d'accès à Internet bloque le port 25, ou si vous rencontrez un problème dutilisation du serveur SMTP natif de YunoHost, vous pouvez configurer votre serveur YunoHost pour utiliser un relais SMTP.
## Qu'est ce qu'un relais SMTP ## Qu'est-ce qu'un relais SMTP
C'est un serveur SMTP tiers qui va envoyer les e-mails aux destinataires à la place de votre propre serveur SMTP. C'est un serveur SMTP tiers qui va envoyer les e-mails aux destinataires à la place de votre propre serveur SMTP.
Une fois correctement installé, le fonctionnement est transparent pour lutilisateur. Vos correspondants verront vos e-mails comme sils venaient de votre propre serveur, mais ils seront passés par le relais SMTP que vous aurez choisi et configuré. Une fois correctement installé, le fonctionnement est transparent pour lutilisateur. Vos correspondants verront vos e-mails comme sils venaient de votre propre serveur, mais ils seront passés par le relais SMTP que vous aurez choisis et configurés.
## [fa=exclamation-triangle /] Inconvénients des relais SMTP ## [fa=exclamation-triangle /] Inconvénients des relais SMTP
Il est important de noter que dans le monde de l'auto-hébergement, utiliser un relais SMTP est un énorme compromis ! En effet, le relais SMTP sera non seulement capable d'envoyer les e-mails de votre part, mais il a également accès au contenu intégral de vos e-mails et peut éventuellement les modifier (Par exemple, par défaut, MailJet réécrit les hyperliens html contenus dans vos mails, afin de traquer l'activité de vos correspondants). Il faut également savoir qu'une fois mis en place, tout le trafic e-mail sortant de votre serveur passera par ce relais; il n'est pas possible de choisir de l'utiliser ou pas selon l'expéditeur ou la destination. Il est important de noter que dans le monde de l'auto-hébergement, utiliser un relais SMTP est un énorme compromis ! En effet, le relais SMTP sera non seulement capable d'envoyer les e-mails de votre part, mais il a également accès au contenu intégral de vos e-mails et peut éventuellement les modifier (Par exemple, par défaut, MailJet réécrit les hyperliens html contenus dans vos mails, afin de traquer l'activité de vos correspondants). Il faut également savoir qu'une fois mis en place, tout le trafic e-mail sortant de votre serveur passera par ce relais ; il n'est pas possible de choisir de l'utiliser ou pas selon l'expéditeur ou la destination.
Au delà des considérations de confidentialité ci-dessus, un relais SMTP peut imposer des limitations techniques que l'on n'aurait pas si le port 25 était ouvert. Par exemple, avec la plupart des relais, si un utilisateur de votre serveur YunoHost déclare **une "adresse de transfert" extérieure** dans le but de transférer automatiquement les messages reçus sur votre serveur YunoHost vers une autre boîte mail, **ce transfert ne fonctionnera pas** pour les courriels venant de l'extérieur de votre serveur, sans qu'il soit en averti. En effet, les relais exigent généralement que les messages qu'ils transmettent aient un adresse d'expéditeur de votre domaine (pour lutter contre le spam et présever la réputation de leurs services), ce qui n'est pas le cas pour un "forward automatique" où l'expéditeur originel du mail est conservé; le message est alors bloqué par le relais (qui, normalement, prévient votre admin YunoHost, mais seulement après coup). Au-delà des considérations de confidentialité ci-dessus, un relais SMTP peut imposer des limitations techniques que l'on n'aurait pas si le port 25 était ouvert. Par exemple, avec la plupart des relais, si un utilisateur de votre serveur YunoHost déclare **une "adresse de transfert" extérieure** dans le but de transférer automatiquement les messages reçus sur votre serveur YunoHost vers une autre boîte mail, **ce transfert ne fonctionnera pas** pour les courriels venant de l'extérieur de votre serveur, sans qu'il soit en averti. En effet, les relais exigent généralement que les messages qu'ils transmettent aient une adresse d'expéditeur de votre domaine (pour lutter contre le spam et préserver la réputation de leurs services), ce qui n'est pas le cas pour un "forward automatique" où l'expéditeur originel du mail est conservé ; le message est alors bloqué par le relais (qui, normalement, prévient votre admin YunoHost, mais seulement après coup).
## Comment utiliser un relais SMTP avec YunoHost ? ## Comment utiliser un relais SMTP avec YunoHost ?
@ -28,7 +28,7 @@ YunoHost supporte depuis la version 4.1 la configuration d'un relais SMTP. Pour
### Étape 1 : S'inscrire chez un fournisseur de relais SMTP ### Étape 1 : S'inscrire chez un fournisseur de relais SMTP
Beaucoup de fournisseurs existent dans ce domaine. Certains sont gratuits et d'autres proposent des services payants contre différentes options. Comme écrit plus haut vous devez être sûr de pouvoir lui faire confiance, mais cela reste à votre entier égard. Beaucoup de fournisseurs existent dans ce domaine. Certains sont gratuits et d'autres proposent des services payants contre différentes options. Comme écrit plus haut, vous devez être sûr de pouvoir lui faire confiance, mais cela reste à votre entier égard.
### Étape 2 : Paramétrer sa zone DNS correctement ### Étape 2 : Paramétrer sa zone DNS correctement
@ -39,7 +39,21 @@ Habituellement les fournisseurs ont une documentation à ce sujet.
! [fa=exclamation-triangle /] Attention une fois la zone DNS enregistrée, le relais SMTP peut envoyer des e-mails à votre nom sans que vous ne le sachiez ! [fa=exclamation-triangle /] Attention une fois la zone DNS enregistrée, le relais SMTP peut envoyer des e-mails à votre nom sans que vous ne le sachiez
## Étape 3 :Configurer YunoHost correctement ## Étape 3 :Configurer YunoHost correctement
Il est possible de configurer soit via la webadmin ou en ligne de commande.
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="Depuis la webadmin"]
Depuis l'interface d'administration, dans la section `Outils` > `Paramètres de YunoHost`, et l'onglet `Email`.
Il suffit d'activer l'option, et de renseigner les champs nécessaires :
- **Adresse du relais SMTP** : L'url pour le serveur SMTP.
- **Port du relais SMTP** : Le port utilisé sur le serveur renseigné.
- **Utilisateur du relais SMTP** : Login ou mail d'identification pour le serveur.
- **Mot de passe du relais SMTP** : Tout simplement le mot de passe.
![Option-Relais-Smtp](image://relay_smtp_option_webadmin_en.png?resize=800)
[/ui-tab]
[ui-tab title="En ligne de commande"]
Pour que YunoHost soit capable d'utiliser le relais, il faut paramétrer 4 choses. Pour que YunoHost soit capable d'utiliser le relais, il faut paramétrer 4 choses.
1. Votre url de relais SMTP (on utilisera `smtprelay.tld`). 1. Votre url de relais SMTP (on utilisera `smtprelay.tld`).
2. Le port sur lequel on accède au relais (on utilisera le port 2525 ci-dessous) 2. Le port sur lequel on accède au relais (on utilisera le port 2525 ci-dessous)
@ -66,6 +80,8 @@ sudo yunohost settings set smtp.relay.password -v password
C'est une bonne idée de confirmer les informations en faisant `sudo yunohost settings list` C'est une bonne idée de confirmer les informations en faisant `sudo yunohost settings list`
[/ui-tab] [/ui-tabs]
Votre relais SMTP est maintenant configuré ! Votre relais SMTP est maintenant configuré !
! [fa=exclamation-triangle /] Maintenant le relais SMTP est capable de lire et d'utiliser toutes les informations contenues dans les emails que vous envoyez sans votre accord. Mais il ne sera pas capable de lire les informations des emails que vous recevez. ! [fa=exclamation-triangle /] Maintenant le relais SMTP est capable de lire et d'utiliser toutes les informations contenues dans les emails que vous envoyez sans votre accord. Mais il ne sera pas capable de lire les informations des emails que vous recevez.

View file

@ -43,7 +43,21 @@ Please note that modifying your DNS records could sometimes take over 24h to tak
! [fa=exclamation-triangle /] From now on, a non trusty SMTP relay provider could send emails from your main domain without telling you. ! [fa=exclamation-triangle /] From now on, a non trusty SMTP relay provider could send emails from your main domain without telling you.
### Step 3: Setup YunoHost correctly ### Step 3: Setup YunoHost correctly
It can be configured either from the webadmin or the command line.
[ui-tabs position="top-left" active="0" theme="lite"]
[ui-tab title="From the webadmin"]
Go to your web admin, in `Tools` > `Yunohost Settings` and `Email`.
Now set all options requests :
- **SMTP relay host** : SMTP server url.
- **SMTP relay port** : Port use with the distant server.
- **SMTP relay user** : Login or identification mail server.
- **SMTP relay password** : Your SMTP relay password.
![Option-Relais-Smtp](image://relay_smtp_option_webadmin_en.png?resize=800)
[/ui-tab]
[ui-tab title="From the command line"]
In order to setup your YunoHost to use your SMTP relay, you will have to configure four things: In order to setup your YunoHost to use your SMTP relay, you will have to configure four things:
1. Your SMTP relay URL (for this tutorial we will use `smtprelay.tld`) 1. Your SMTP relay URL (for this tutorial we will use `smtprelay.tld`)
2. The port on which you access the relay (for this tutorial we will use port 2525 below) 2. The port on which you access the relay (for this tutorial we will use port 2525 below)
@ -73,6 +87,9 @@ It may be a good idea to double confirm your settings by doing:
sudo yunohost settings list sudo yunohost settings list
``` ```
[/ui-tab]
[/ui-tabs]
Your SMTP relay is now configured! Your SMTP relay is now configured!
! [fa=exclamation-triangle /] 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). ! [fa=exclamation-triangle /] 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).

View file

@ -130,7 +130,7 @@ Lancez un scan du nouveau répertoire par Nextcloud:
```bash ```bash
cd /var/www/nextcloud cd /var/www/nextcloud
sudo -u nextcloud php7.3 occ files:scan --all sudo -u nextcloud php8.1 --define apc.enable_cli=1 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. 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.
@ -274,7 +274,7 @@ Enregistrer le fichier (**CTRL** + **o**) et quitter nano (**CTRL** + **c**).
Ensuite lancer un scan en tant que root : Ensuite lancer un scan en tant que root :
```bash ```bash
sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all sudo -u nextcloud php8.1 --define apc.enable_cli=1 files:scan --all
``` ```
À présent, le problème est corrigé. À présent, le problème est corrigé.

View file

@ -130,7 +130,7 @@ Run a scan of the new directory by Nextcloud:
```bash ```bash
cd /var/www/nextcloud cd /var/www/nextcloud
sudo -u nextcloud php7.3 occ files:scan --all sudo -u nextcloud php8.1 --define apc.enable_cli=1 files:scan --all
``` ```
Update the YunoHost setting, so automatic upgrades and backups know where the datadir is located: Update the YunoHost setting, so automatic upgrades and backups know where the datadir is located:
@ -195,7 +195,7 @@ Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
Then run a scan by executing next command as root: Then run a scan by executing next command as root:
```bash ```bash
sudo -u nextcloud php /var/www/nextcloud/occ files:scan --all sudo -u nextcloud php8.1 --define apc.enable_cli=1 files:scan --all
``` ```
Now the problem is fixed. Now the problem is fixed.

View file

@ -20,6 +20,7 @@ You can [contribute to this list by adding something you'd like to be packaged](
| adhocserver | An ad hoc server for the Sony PSP | | [Package Draft](https://github.com/matlink/adhocserver_ynh) | | adhocserver | An ad hoc server for the Sony PSP | | [Package Draft](https://github.com/matlink/adhocserver_ynh) |
| [Ajenti](https://ajenti.org) | Ajenti is a Linux & BSD modular server admin panel | [Upstream](https://github.com/ajenti/ajenti/) | | | [Ajenti](https://ajenti.org) | Ajenti is a Linux & BSD modular server admin panel | [Upstream](https://github.com/ajenti/ajenti/) | |
| Akaunting | Manage payments/invoices/expenses | [Upstream](https://github.com/akaunting/akaunting) | | | Akaunting | Manage payments/invoices/expenses | [Upstream](https://github.com/akaunting/akaunting) | |
| [Amara](https://amara.org/) | Collaborative translation of subtitles for videos. | [Upstream](https://gitlab.com/hanklank/amara-archive) | |
| Anki Sync Server | a personal Anki server |[Upstream](https://github.com/ankicommunity/anki-sync-server) | | | Anki Sync Server | a personal Anki server |[Upstream](https://github.com/ankicommunity/anki-sync-server) | |
| [AnonAddy](https://anonaddy.com/) | Anonymous email forwarding - Create Unlimited Email Aliases For Free | [Upstream](https://github.com/anonaddy/anonaddy) | | | [AnonAddy](https://anonaddy.com/) | Anonymous email forwarding - Create Unlimited Email Aliases For Free | [Upstream](https://github.com/anonaddy/anonaddy) | |
| [Ansible Matrix Docker Deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) | Full Featured Matrix Server Setup with All Bridges and Integrations | [Upstream](https://github.com/spantaleev/matrix-docker-ansible-deploy) | | | [Ansible Matrix Docker Deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) | Full Featured Matrix Server Setup with All Bridges and Integrations | [Upstream](https://github.com/spantaleev/matrix-docker-ansible-deploy) | |
@ -223,7 +224,6 @@ You can [contribute to this list by adding something you'd like to be packaged](
| Pelias | | [Upstream](https://github.com/pelias/pelias) | | | Pelias | | [Upstream](https://github.com/pelias/pelias) | |
| [Penpot](https://penpot.app/) | Design Freedom for Teams | [Upstream](https://github.com/penpot) | | | [Penpot](https://penpot.app/) | Design Freedom for Teams | [Upstream](https://github.com/penpot) | |
| personal-management-system | Your web application for managing personal data. | [Upstream](https://github.com/Volmarg/personal-management-system) | | | personal-management-system | Your web application for managing personal data. | [Upstream](https://github.com/Volmarg/personal-management-system) | |
| [Photoprism](https://photoprism.org/) | | [Upstream](https://github.com/photoprism/photoprism) | |
| [PHPList](https://www.phplist.com) | | [Upstream](https://github.com/phpList) | | | [PHPList](https://www.phplist.com) | | [Upstream](https://github.com/phpList) | |
| [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) | | [Upstream](https://github.com/alchemy-fr/Phraseanet-Docs) | | | [Phraseanet](https://docs.phraseanet.com/3.8/fr/index.html#) | | [Upstream](https://github.com/alchemy-fr/Phraseanet-Docs) | |
| [pia](https://github.com/LINCnil/pia) | A tool to help carrying out Privacy Impact Assessments | | [Package Draft](https://github.com/YunoHost-Apps/pia_ynh) | | [pia](https://github.com/LINCnil/pia) | A tool to help carrying out Privacy Impact Assessments | | [Package Draft](https://github.com/YunoHost-Apps/pia_ynh) |
@ -338,7 +338,6 @@ You can [contribute to this list by adding something you'd like to be packaged](
| [vpnserver](https://openvpn.net) | Create/provide VPNs from your server | | [Package Draft](https://github.com/YunoHost-Apps/vpnserver_ynh) | | [vpnserver](https://openvpn.net) | Create/provide VPNs from your server | | [Package Draft](https://github.com/YunoHost-Apps/vpnserver_ynh) |
| [Webhook.site](https://docs.webhook.site/) | | [Upstream](https://github.com/fredsted/webhook.site) | | | [Webhook.site](https://docs.webhook.site/) | | [Upstream](https://github.com/fredsted/webhook.site) | |
| [WebODF](https://webodf.org) | | [Upstream](https://github.com/webodf/WebODF) | | | [WebODF](https://webodf.org) | | [Upstream](https://github.com/webodf/WebODF) | |
| webogram | Webogram - a new era of messaging | [Upstream](https://github.com/zhukov/webogram) | [Package Draft](https://github.com/YunoHost-Apps/webogram_ynh) |
| Webterminal | A web-based Jump Host / Bastion, supports VNC, SSH, RDP, Telnet, SFTP... | [Upstream](https://github.com/jimmy201602/webterminal/) | | | Webterminal | A web-based Jump Host / Bastion, supports VNC, SSH, RDP, Telnet, SFTP... | [Upstream](https://github.com/jimmy201602/webterminal/) | |
| [WebThings Gateway](https://iot.mozilla.org/gateway/) | | [Upstream](https://github.com/mozilla-iot/) | | | [WebThings Gateway](https://iot.mozilla.org/gateway/) | | [Upstream](https://github.com/mozilla-iot/) | |
| [wg-access-server](https://github.com/freifunkMUC/wg-access-server) | VPN Server OIDC ipv4 ipv6 | [Upstream](https://github.com/freifunkMUC/wg-access-server) | | | [wg-access-server](https://github.com/freifunkMUC/wg-access-server) | VPN Server OIDC ipv4 ipv6 | [Upstream](https://github.com/freifunkMUC/wg-access-server) | |

View file

@ -143,6 +143,7 @@ The full list of question types is : `string`, `text`, `select`, `tags`, `email`
`password`-type questions have special behavior and are NOT automatically saved as setting (user-chosen password should ideally not be stored, at least not hashed...) `password`-type questions have special behavior and are NOT automatically saved as setting (user-chosen password should ideally not be stored, at least not hashed...)
Every install question is not necessarily mandatory (e.g. a question to propose to add an api key for a better user experience, although the app still works without). To make those questions optional, just write `optional = true`.
## Resource system ## Resource system

View file

@ -578,10 +578,11 @@ This hooks is run at the end of the command `yunohost firewall reload` or equiva
##### Examples ##### Examples
###### Forbid completely the outgoing 25 port ###### Forbid completely the outgoing 25 port except for postfix user
```bash ```bash
#!/bin/bash #!/bin/bash
iptables -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp --dport 25 -m owner --uid-owner postfix -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -m tcp -j REJECT --reject-with icmp-port-unreachable
``` ```
[/details] [/details]

View file

@ -287,7 +287,7 @@ The script will rely on the code repo specified in the upstream section of the m
`autoupdate.strategy` is expected to be one of : `autoupdate.strategy` is expected to be one of :
- `latest_github_tag` : look for the latest tag (by sorting tags and finding the "largest" version). Then using the corresponding tar.gz url. Tags containing `rc`, `beta`, `alpha`, `start` are ignored, and actually any tag which doesn't look like `x.y.z` or `vx.y.z` - `latest_github_tag` : look for the latest tag (by sorting tags and finding the "largest" version). Then using the corresponding tar.gz url. Tags containing `rc`, `beta`, `alpha`, `start` are ignored, and actually any tag which doesn't look like `x.y.z` or `vx.y.z`
- `latest_github_release` : similar to `latest_github_tags`, but starting from the list of releases. Pre- or draft releases are ignored. Releases may have assets attached to them, in which case you can define: - `latest_github_release` : similar to `latest_github_tags`, but starting from the list of releases. Pre- or draft releases are ignored. Releases may have assets attached to them, in which case you can define:
- `autoupdate.asset = "some regex"` (when there's only one asset to use). The regex is used to find the appropriate asset among the list of all assets - `autoupdate.asset = "some regex"` (when there's only one asset to use). The regex is used to find the appropriate asset among the list of all assets. Note that the regex must follow [Python's regex implementation](https://docs.python.org/3/howto/regex.html#regex-howto) (for instance a double backslash is to be used as escape character).
- or several `autoupdate.asset.$arch = "some_regex"` (when the asset is arch-specific). The regex is used to find the appropriate asset for the specific arch among the list of assets - or several `autoupdate.asset.$arch = "some_regex"` (when the asset is arch-specific). The regex is used to find the appropriate asset for the specific arch among the list of assets
- `latest_github_commit` : will use the latest commit on github, and the corresponding tarball. If this is used for the 'main' source, it will also assume that the version is YYYY.MM.DD corresponding to the date of the commit. - `latest_github_commit` : will use the latest commit on github, and the corresponding tarball. If this is used for the 'main' source, it will also assume that the version is YYYY.MM.DD corresponding to the date of the commit.

View file

@ -0,0 +1,115 @@
---
title: Introduction au packaging
template: docs
taxonomy:
category: docs
routes:
default: '/packaging_apps_intro'
aliases:
- '/packaging_apps'
---
Cette documentation a pour but de fournir tous les concepts de base et le vocabulaire nécessaire pour comprendre le packaging d'applications.
Nous détaillerons ce qu'est un paquet d'applications YunoHost, comment il fonctionne, comment créer votre propre paquet et comment trouver de l'aide si vous en avez besoin.
## 1. La Philosophie du Packaging
La possibilité d'installer facilement des applications à partir d'un catalogue est une caractéristique clé de YunoHost. Alors que vous vous plongez dans le processus de packaging d'applications de YunoHost, vous devez vous souvenir de ces principes clés :
- **L'administrateur ne doit pas avoir un doctorat en informatique pour pouvoir installer, configurer et utiliser votre application** : partez du principe que l'administrateur ne connaît pas les concepts informatiques avancés;
- **Less is more**, **Keep it simple!**: ne surchargez pas l'administrateur avec une douzaine de questions techniques ;
- **Les choses doivent être opérationnelles dès le départ** : par exemple, l'administrateur ne doit pas avoir à terminer manuellement le processus d'installation en remplissant manuellement les informations d'identification de la base de données;
- Le packaging d'une application YunoHost **ne se limite pas à l'installation** des sources et des dépendances : il concerne également la maintenance (mise à jour, sauvegarde...) et l'intégration de l'application dans l'écosystème YunoHost (NGINX, SSO/LDAP, Fail2Ban, catalogue d'applications, UI/UX...).
## 2. Prérequis
Avant d'entrer dans le vif du sujet, cette documentation part du principe que :
1. Vous êtes déjà administrateur YunoHost et vous savez déjà à quoi ressemble le processus d'installation ;)
2. Vous êtes familiarisé avec l'administration système et la programmation bash (ou vous êtes prêt à les apprendre) ;
3. Vous êtes familier avec Git (ou vous êtes prêt à l'apprendre) ;
4. Vous êtes à l'aise avec le bricolage et le débogage de matériel informatique en général.
Nous vous encourageons également à rejoindre le [salon de discussion sur le packaging](/chat_rooms) pour poser toutes les questions que vous pourriez avoir !
À un moment donné, vous voudrez aussi avoir un environnement de développement/test, soit en utilisant [VirtualBox](/packaging_apps_virtualbox) ou [LXC/ynh-dev](https://github.com/yunohost/ynh-dev) qui est destiné au noyau mais peut tout à fait être utilisé pour le développement d'applications. Vous pouvez également mettre en place un VPS de développement/test sur votre hébergeur préféré, ou même développer sur votre prod si vous aimez vivre dangereusement ;).
## 3. Notes sur l'histoire du packaging des applications de YunoHost
Beaucoup de choses dans YunoHost, et dans le format d'emballage de l'application YunoHost, sont historiques ou ont été conçues de manière organique. Certains aspects peuvent donc légitimement sembler anciens.
La **"v0" du packaging d'applications** consistait à écrire des scripts bash bruts sans réelle standardisation/contrainte.
Au fil du temps, les étapes récurrentes (comme l'installation des dépendances avec apt, ou la configuration de NGINX) ont été formalisées dans des fonctions bash standardisées, appelées "helpers". Cela a marqué **le début de l'ère de la "v1" packaging**.
Divers outils ont été mis en place pour tester l'application et normaliser son comportement.
Après un certain temps, un ensemble de pratiques et de conventions communes a émergé et est en quelque sorte reflété et maintenu dans l'application modèle `example_ynh`. Bien qu'il soit tentant pour les développeurs de changer les schémas de nommage des variables ou de refactoriser la structure des scripts, il s'avère qu'il est encore plus important de s'en tenir à l'ensemble des pratiques communes (même si elles sont arbitraires et peu élégantes) pour faciliter la maintenance de toutes les applications par n'importe quel membre de la communauté du packaging à travers tous les dépôts !
Néanmoins, même si les aides existaient, la structure inhérente des applications était difficile et ennuyeuse à maintenir avec trop de morceaux de code redondants ou remplis de conventions historiques bizarres. **Un nouveau format v2** [a été conçu et ajouté à YunoHost 11.1 début 2023] (https://github.com/YunoHost/yunohost/pull/1289) dans l'espoir de moderniser et de simplifier l'emballage des applications et d'améliorer l'UI/UX de YunoHost.
Cependant, [**un futur format v3** est encore à venir] (https://github.com/YunoHost/issues/issues/2136) pour simplifier davantage l'empaquetage des applications (comme la prise en charge des configurations NGINX/systemd/..., l'élimination du besoin d'écrire manuellement des scripts de suppression/sauvegarde/restauration, etc.)
## 4. Aperçu général de la structure d'une application YunoHost
Une application YunoHost est construite dans un dépôt Git. Nous vous encourageons à jeter un coup d'oeil à ces dépôts de code pour vous familiariser avec les structures des dépôts d'applications :
- l'application [`helloworld_ynh`](https://github.com/YunoHost-Apps/helloworld_ynh)
- l'application [`example_ynh`](https://github.com/YunoHost/example_ynh) which illustrates all common features and recommended formatting
- votre application "réelle" préférée dans la liste des dépots [YunoHost-Apps].(https://github.com/orgs/YunoHost-Apps/repositories))
Parmi les fichiers contenus dans un paquet, les plus importants sont les suivants :
- le **manifeste de l'application** `manifest.toml` <small>(ou `.json` dans le passé)</small>
- Il peut être considéré comme la carte d'identité de l'application, contenant diverses métadonnées.
- Il contient également les questions posées lors de l'installation de l'application.
- **scripts/** contient un ensemble de scripts bash correspondant aux actions exposées dans YunoHost
- `_common.sh`: common variables or custom functions included in other scripts
- `install`/`remove` : la procédure d'installation et de suppression
- `upgrade` : la procédure de mise à niveau
- `backup`/`restore` : les procédures de sauvegarde/restauration
- (`change_url`) : changer l'endroit où l'application est installée en termes de son url d'accès web
- **conf/** contient un ensemble de modèles de configuration utilisés lors de l'installation de l'application. Voici quelques exemples de fichiers couramment trouvés :
- `app.src` : contient l'URL et la somme de contrôle pour télécharger les sources de l'application
- `nginx.conf` : le modèle de configuration de NGINX (=serveur web) pour cette application
- `systemd.service` : le modèle de configuration du service systemd pour cette application
- `config.json/yaml/???` : le modèle de configuration de l'application
Grosso modo, l'installation proprement dite se compose généralement des opérations suivantes (qui peuvent toutefois varier en fonction de la complexité et des technologies utilisées par l'application) - pas nécessairement dans cet ordre exact :
1. YunoHost récupère le dépôt Git du paquet.
2. YunoHost pose à l'administrateur les questions d'installation définies dans `manifest.toml`.
3. L'administrateur remplit le formulaire et démarre l'installation.
4. YunoHost fournit un ensemble de pré-requis techniques (appelés 'ressources') tels que :
- initialise le magasin de clés/valeurs de l'application `settings.yml` avec les réponses de l'administrateur au formulaire d'installation
- crée un utilisateur UNIX pour cette application
- installe les dépendances apt nécessaires à cette application
- choisit un port pour le reverse-proxying interne
- initialise une base de données SQL vide
- configure les permissions SSOwat
- ...
5. Le script `install` de l'application est exécuté et ses fonctions typiques sont de :
- récupérer et déployer les sources de l'application
- configurer l'application (typiquement les identifiants de la base de données, le port interne du reverse-proxy...)
- ajouter la configuration de NGINX
- ajoute la configuration systemd du daemon de l'application
- démarre le daemon de l'application
- divers réglages de finalisation
6. ???
7. L'application est prête à l'emploi !
## 5. Créer votre tout premier paquet YunoHost
A moins que vous ne souhaitiez vraiment partir de zéro ou de [`example_ynh`] (https://github.com/YunoHost/example_ynh), une pratique courante consiste à identifier une application similaire à celle que vous essayez d'empaqueter - typiquement parce qu'elle repose sur les mêmes technologies - à cloner le dépôt de code correspondant, et à adapter les différents fichiers.
- Applications PHP :
- Applications NodeJS :
- Applications Python :
- ???