Un an après la sortie de la v.2.2, l’équipe de YunoHost a le plaisir de vous annoncer la sortie de la version 2.4.
Ce billet fait un bilan de ce qui s’est passé au sein du projet YunoHost depuis un an.
Dans un premier temps, seront présentées les améliorations apportées par YunoHost 2.4, les travaux qui ont été menés sur l’infrastructure du projet, les nouveaux outils de développement et pour finir seront listés les futurs développements.
Pour couronner le tout, un tutoriel vous permettra de mettre à niveau votre serveur vers Debian Jessie et YunoHost 2.4, puisque cette nouvelle version est uniquement disponible sous Debian Jessie.
Sommaire
- Nouvelles fonctionnalités de YunoHost 2.4
- Infrastructure du projet YunoHost
- Outils de développement
- Futurs développements
- Remerciements
- Mise à niveau de Debian de Wheezy à Jessie
- Mise à niveau de YunoHost 2.2 à 2.4
- Automatisée
- Manuelle
Nouvelles fonctionnalités de YunoHost 2.4
Système de sauvegarde et de restauration
L’ajout majeur de la version 2.4 est la possibilité de sauvegarder et restaurer complètement le système :
- à partir de l’interface web d’administration et de la ligne de commande avec la commande :
yunohost backup -h
-
dont, en particulier les comptes utilisateurs, les applications, les courriels, la configuration des services et les données.
-
Pour l’instant, les sauvegardes sont stockées localement, c’est-à-dire que l’archive est créée sur le serveur directement, mais le système a été pensé pour gérer à terme, d’autres emplacements ((S)FTP, autre serveur, etc.).
-
Notez quand même que cette fonctionnalité est encore toute jeune, et nécessitera sûrement des améliorations pour être bien stable ! Aussi, n’hésitez pas à remonter des bugs.
Gestion fine de la configuration des services
Jusque-là l’installation venait avec une multitude de paquets yunohost-config-*
. Tout a été rassemblé dans l’unique paquet yunohost !
Ceci a été rendu possible en améliorant la façon dont les différents services gérés par YunoHost (Nginx, Postfix, rspamd, etc) sont configurés. YunoHost dispose maintenant de modèles de configurations de base (templates) pour les services.
De plus, une nouvelle commande, disponible uniquement en ligne de commande pour l’instant, permet de gérer les différentes configurations :
yunohost service regen-conf
Cette commande permet de les régénérer et d’afficher les changements en attente. Si vous modifiez les fichiers de configuration, sachez qu’ils ne seront jamais écrasés lors d’une mise à jour. Vous pourrez même afficher les différences entre le fichier de configuration et le modèle de base avec la commande :
yunohost service regen-conf --list-pending --with-diff
À noter que cette fonctionnalité s’adresse principalement aux administrateurs avancés souhaitant configurer eux-mêmes les services.
Gestion et packaging des applications
Deux articles ont été publiés au sujet des applications :
Voici néanmoins quelques points majeurs…
La façon dont sont gérées les applications multi-instances (le fait de pouvoir installer une application plusieurs fois) a été revue. Attention, ce changement n’est pas rétro-compatible, rendant impossible l’installation en version 2.2 des applications ayant été mises à jour, et inversement si l’application n’a pas été mise à jour.
De plus, pour ceux qui maintiennent (ou désirent maintenir !) une application, des commandes pratiques (helpers) en shell sont maintenant disponibles pour faciliter le packaging, notamment dans les tâches courantes (génération d’un mot de passe, création d’une base de donnée MySQL…). Des exemples sont donnés dans l’application d’exemple.
Enfin, les applications officielles ont quasiment toutes été mises à niveau pour utiliser ces nouvelles fonctionnalités, à noter également :
- mise à niveau de ownCloud en version 9.0 ;
- mise à niveau de Roundcube en version 1.2.0 ;
- changements dans my_webapp pour offrir un accès SFTP et gérer une base de données MySQL (attention, une mise à jour manuelle est requise).
Mgration des services
-
Migration du système de base de données MySQL vers le fork communautaire MariaDB.
-
Migration du système d’anti-spam d’amavis/spamassassin vers l’anti-spam plus léger rspamd/rmilter avec l’ajout des configurations courriel DKIM et DMARC par défaut.
Autres fonctionnalités
On peut également noter l’ajout :
-
d’un bouton sur l’interface d’admin pour accéder à la partie utilisateur (voir la seconde image de l’article).
-
des labels indiquant si une application est installée dans la liste des applications en partie admin.
-
d’un système de diagnostic qui donne des informations sur l’instance de YunoHost est accessible en ligne de commande (
yunohost tools diagnosis
) et via l’interface d’administration dans la section Outils. Cet outil remonte les informations suivantes : -
les versions de Debian, du noyau Linux et des paquets YunoHost.
-
l’espace libre, l’utilisation de la mémoire vive et de la swap.
-
la liste des services et leurs statuts, la liste des applications installées.
-
Les adresses IP et les noms de domaine peuvent également être récupérés en mode privé.
-
d’une fonction de génération automatique de la zone DNS des noms de domaines qui pourront directement être placés dans la zone DNS de son bureau d’enregistrement. Ils sont accessibles dans la partie
Domains
de l’admin web
et avec la commande :yunohost domain dns-conf exemple.tld
Pour plus de détails sur les bugs corrigés et les nouvelles fonctionnalités intégrées dans YunoHost 2.4, consultez la feuille de route.
Infrastructure du projet YunoHost
-
Mise en place du bugtracker Redmine. Depuis septembre 2015 nous hébergeons l’outil Redmine dédié au suivi des bugs et améliorations. Il est possible d’ouvrir un ticket de manière anonyme (attention cependant, vous ne pourrez pas recevoir de notification par courriel en cas de réponse, demande de précisions…). Cet outil a été mis en place conjointement avec l’équipe du projet LaBriqueInternet, et permet également de gérer les rapports de bugs de ce dernier.
-
Mise en place de l’outil de traduction Weblate. YunoHost est prévu pour être traduit intégralement, que ça soit au niveau de la ligne de commande qu’au niveau des interfaces web. Être traducteur·ice pour YunoHost n’est pas une tâche technique, il suffit de se créer un compte sur l’outil de traduction et de regarder ce qui reste à traduire parmi une dizaine de langues disponibles. Pour la petite histoire, nous sommes passés du service propriétaire Transifex au logiciel libre Weblate que l’on héberge sur notre serveur.
-
Mise en place de certificats Let’s Encrypt sur tous les services.
-
Mise en place d’un paste. Pastez avec la
commande | yunopaste
, pour obtenir le lien du paste.
Outils de développement
-
YnH-Dev permet de créer, sur son ordinateur de bureau, une machine virtuelle basé sur Vagrant pour développer et tester la version avancé de YunoHost.
-
Un outil d’intégration continue vient d’être démarré pour automatiser des tests sur les applications.
-
Un linter vérifie le manifeste, les scripts des applications et donne des conseils sur les bonnes pratiques de packaging.
Futurs développements
Selon la feuille de route, voici les prochains travaux qui seront menés par l’équipe de YunoHost :
- Images ISO.
- Amélioration du système de sauvegardes.
- Certificats :
- Gestion des certificats Let’s Encrypt.
- Gestion plus fine des certificats classiques et auto-signés.
- Applications :
- Changement du nom de domaine et du chemin d’installation d’une application.
- Changement du statut public ou privé d’une application.
- Gestion des arguments lors de la suppression, la mise à jour, la sauvegarde et la restauration des applications.
- Hébergement de notre forge de développement git : GitLab ou Gogs.
- …
Remerciements
Un grand merci à tous les contributeurs qui continuent de faire vivre le projet
@beudbeud, @Bram, @jerome, @juju, @kload, @ljf, @opi, @Maniack_Crudelis, @Moul, @scith, @titoko, @tostaki, les nombreux packageurs et mainteneurs d’applications, les traducteurs d’interfaces, les testeurs, remonteurs de bugs, les contributeurs de la Brique Internet et bien d’autres qui ne sont pas cités…
Mise à niveau de Debian de Wheezy à Jessie
Attention, YunoHost 2.4 est uniquement compatible avec Debian Jessie ; si votre serveur est en Wheezy il faut préalablement faire une mise à niveau de Debian avant de pouvoir profiter de YunoHost 2.4. Vous pouvez suivre les instructions suivante, ou suivre le guide officiel, plus long et fastidieux, mais plus sûr !
Si votre serveur est en Jessie, vous pouvez passer au paragraphe suivant.
Pour commencer, éditez le fichier /etc/apt/sources.list
et éditez toutes les lignes debian de wheezy
à jessie
:
deb http://http.debian.net/debian jessie main
deb http://http.debian.net/debian jessie-updates main
deb http://security.debian.org jessie/updates main
Ensuite, lancez la mise à niveau :
sudo apt-get update && sudo apt-get dist-upgrade
Une fois en Jessie vous pourrez passer à la…
Mise à niveau de YunoHost 2.2 à 2.4
Attention, préférez la mise à niveau manuelle si vous avez modifié des fichiers de configuration de services, car ils seront écrasés ! Une sauvegarde est néanmoins faites dans le dossier /home/yunohost.conf/backup
.
Automatisée
La commande yunohost a été mise à jour pour intégrer la mise à niveau automatique de YunoHost en 2.4.
Pour cela, mettez à jour votre système afin de récupérer la dernière version de YunoHost 2.2, puis lancez la mise à niveau :
sudo apt-get update && sudo apt-get upgrade
sudo yunohost tools upgrade --v24
Manuelle
Voici comment procéder étape par étape :
Il est tout d’abord nécessaire de se connecter en tant que l’utilisateur root
pour exécuter les commandes suivantes. Si ce n’est pas déjà le cas :
sudo -i
- S’assurer que le système est à jour :
apt-get update && apt-get upgrade
- Supprimer les anciens dépôts définis
/etc/apt/sources.list
qui sont de la forme
deb http://repo.yunohost.org/ ...
- Ajouter le nouveau dépôt de YunoHost :
echo 'deb http://repo.yunohost.org/debian/ jessie stable' > /etc/apt/sources.list.d/yunohost.list
- Mettre à jour la liste de paquets disponibles, et installer la nouvelle version du paquet yunohost :
apt-get update && apt-get install yunohost
- Enlever les paquets qui ne sont plus nécessaires :
apt-get autoremove
Application des nouvelles configurations des services
À ce stade, il ne reste plus qu’à régénérer la configuration des différents services. Il y a deux possibilités :
- Si vous n’avez rien modifié, vous pouvez simplement régénérer la configuration pour tous les services :
yunohost service regen-conf --force
-
Si vous avez modifié manuellement des configurations (ou si vous voulez simplement voir les changements avant de les appliquer)
- Commencez par régénérer toutes les configurations possibles (sans les écraser) :
yunohost service regen-conf
- Une liste de fichiers dans
pending
vous sera sûrement affichée, correspondant aux fichiers de configurations en attente pour les services donnés. Pour afficher les modifications de ces fichiers :
yunohost service regen-conf --list-pending --with-diff
- À noter que cette action prend également des noms de services en argument, par exemple pour n’afficher les modifications que pour le service NGINX :
yunohost service regen-conf nginx --list-pending --with-diff
- Enfin, si les modifications en attente vous conviennent, vous devrez les appliquer, soit pour un service donné :
yunohost service regen-conf nginx --force
- …ou soit pour tous les services :
yunohost service regen-conf --force
Notez que cette dernière étape n’est à faire qu’une fois pour initialiser cette nouvelle gestion des configurations.
Sauf, si bien sûr vous modifiez par la suite certaines configurations. Dans ce cas, vous pouvez reprendre les différentes étapes et commandes données plus haut.