YunoHost 3.5 release / Sortie de YunoHost 3.5

:gb: English version

Hello everyone!

We’re happy to announce the release of version 3.5 :partying_face:!

This release includes various highlights :sparkles::

  • The appearance of the user SSO portal can now be changed using themes ! This allows you to customize the look and feel of your user portal, including changing the YunoHost logo / branding, such that you may feel more “at home” (e.g. if you run a YunoHost instance for a small association or company and would like to display your own logo instead :slight_smile: ). For now this is only available through the command line, but the procedure and how-tos are documented here !
  • Many small UX and robustness improvements during app installations and upgrades (e.g. display more messages explaining what’s happening, and detect/prevent common issues before they happen)
  • New global settings have been introduced to be able to change the compability vs. security tradeoff for nginx and sshd configurations. So for instance if you’d like to harden the nginx ciphers used, check out this page (section “Change cipher compatibility configuration”)
  • For app packagers : many improvements and new helpers ! Including : the use of getopts for more flexible and semantic arguments, ynh_script_progression (progress bar), fail2ban helpers, ynh_systemd_action, improve setting helpers, postgresql and nodejs helpers, …
  • Metronome gets upgraded to 3.11.8
  • Many translations additions / improvements in so many languages : French, Catalan, Esperanto, Occitan, Russian, Chinese, Portuguese, Hungarian, Breton, Greek, Swedish, Polish, Arabic, Italian, Bengali
  • And of course as always, many technical bugfixes and improvements for UX, robustness and security !

Thanks to all contributors (Aleks, ariasuni, Arthur L., Bram, ButterflyOfFire, chateau, frju365, Gabriel C., Jibec, JimboeJoe, Josué, Kayou, ljf, Lukas F., Maniack, mytechpro, n3uz, opi, ppr, Quentí, Romuald, silkevicious, Taekiro, Xaloc, yalh76, Алексей) ! :heart:

:scroll: Detailed changelog

Core

  • [enh] Display version inside app info (YunoHost-admin#235)
  • [fix] Fix the dbus interface to get info for services (avoid annoying error about being unable to fetch info for a disabled service) (#698)
  • [fix] Rework tools_update to better handle the damn “FetchFailedException” (#695)
  • [enh] Be able to use themes for the User SSO portal (SSOwat#122, #689)
  • [enh] Check that required services are up before running app install and upgrade (#670)
  • [enh] Add settings to control security vs. compatibility tradeoff for nginx and sshd configurations (#640)
  • [enh] Allow apps to extend the recommended DNS configuration through a hook (#517)
  • [fix] Disable gzip entirely to avoid BREACH attacks (#675)
  • [fix] Repair backup tests (#673)
  • [fix] Backup fails because output directory not empty (#672)
  • [fix] Reject app password if they contains { or } (#671)
  • [fix] Optimize dyndns requests (#662)
  • [enh] Don’t add Strict-Transport-Security header in nginx conf if using a selfsigned cert (#661)
  • [enh] Add apt-transport-https to dependencies (#658)
  • [enh] Cache results from meltdown vulnerability checker (#656)
  • [enh] Ensure the tar file is closed during the backup (#655)
  • [enh] Be able to define hook to trigger when changing a setting (#654)
  • [enh] Assert apt/dpkg is not broken before app install (#652)
  • [fix] Loading only one helper file leads to errors because missing getopts (#651)
  • [enh] Improve / add some messages to improve UX (#650)
  • [enh] Reload fail2ban instead of restart to improve performances (#649)
  • [enh] Add IPv6 resolvers from diyisp.org to resolv.dnsmasq.conf (#639)
  • [fix] Remove old SMTP port (465) from fail2ban jail.conf (#637)
  • [enh] Improve protection against indexation from robots (#622)
  • [enh] Allow hooks to return data (#526)
  • [fix] Do not make version number available from web API to unauthenticated users (#291, YunoHost-admin#226, YunoHost-admin#233)
  • [enh] Add Konami code in webadmin :ok_hand: (YunoHost-admin#208)
  • [i18n] Improve translations for French, Catalan, Esperanto, Occitan, Russian, Chinese, Portuguese, Hungarian, Breton, Greek, Swedish, Polish, Arabic, Italian, Bengali

App helpers

  • [enh] Support php versions in ynh_add_fpm_config (#674)
  • [fix] Make sure that ynh_system_user_delete also deletes the group (#680)
  • [doc] Add min version for all helpers (#664)
  • [enh] Optimize app setting helpers (#663, #676)
  • [enh] Allow display_text ‘fake’ argument in manifest.json (#669, #697, YunoHost-admin#234)
  • [enh] Handle ynh_install_nodejs for arm64 / aarch64 (#660)
  • [enh] Update postgresql helpers (#657)
  • [enh] Print diff of files when backup by ynh_backup_if_checksum_is_different (#648)
  • [enh] Add app debugger helper (#647)
  • [fix] ynh_local_curl not using the right url in some cases (#644)
  • [fix] Get rid of annoying ‘unable to initialize frontend’ messages (#643)
  • [enh] Check if dpkg is not broken when calling ynh_wait_dpkg_free (#638)
  • [enh] Warn the packager that ynh_secure_remove should be used with only one arg… (#635, #642)
  • [enh] Add ynh_script_progression helper (#634)
  • [enh] Add ynh_systemd_action helper (#633, #681)
  • [enh] Allow to dig deeper into an archive with ynh_setup_source (#630)
  • [enh] Use getops for app helpers (#561, #646, #685, #683)
  • [enh] Add ynh_check_app_version_changed helper (#521)
  • [enh] Add fail2ban helpers (#364)

:arrow_up: How to upgrade

From the web admin

:warning: If you are not yet in 3.4.x, we recommend upgrading from the command line to avoid an issue related to the Metronome upgrade

  • Go to “Update system”
  • Then hit the “Update” button in the “System” block.

Or from the command line

$ apt-get update
$ apt-get dist-upgrade

(if during the upgrade, the system asks which version of Metronome configuration to keep, answer ‘N’ (default value))

:newspaper: Misc news about the project

Many things are happening in parallel of this release, especially on the apps side !

In the following months, we are progressively going to remove the concept of “official” (vs “community”) apps. We identified that the concept of “official” was too constraining and not really effective (it’s been a long time since a new app was added in the official apps, and it’s not clear who is supposed to maintain them). Instead, we will introduce a new concept of “high quality” apps for those who closely follow packaging recommendations, and evolution will be reviewed by the app team.

This happens at the same time as a rework of the definition of app levels. So far, level 4 was related to the LDAP/SSO integration which turns out to be quite complicated for many apps … hence quite a lot of apps were stuck to level 3~4 whereas they implement backup/restore (corresponding to level 7). Those definitions were therefore rework to make more sense. (More info here : https://github.com/YunoHost/doc/pull/927).

About the packaging of app themselves : the new recommendations includes more verbosity for the app scripts. You will notice that more and more apps will display messages explaining what’s happening while they install (using not-too-technical messages) instead or displaying nothing or just warnings. Some of them might even show a progress bar ! (c.f. the ynh_script_progression helper)

Cool news if you would like to obtain a VPS with preinstalled YunoHost : Time4VPS now makes it easy to obtain a VPS installed with YunoHost ! In the future, we except to see other actors being able to provide such pre-installed VPS (Alsace Réseau Neutre, Scaleway, …) :wink:


:fr: Version française

Bonjour tout le monde !

Nous sommes heureux d’annoncer la sortie de la version 3.5 :partying_face: !

Voici les points clefs de cette version :sparkles: :

  • L’apparence du portail utilisateur (SSO) peut maintenant être modifié en utilisant des thèmes ! Cela vous permet de personnaliser votre portail utilisateur, y compris de changer le logo ‘YunoHost’, afin que votre serveur puisse avoir un peu plus un air de “chez soi” (notamment si vous utilisez une instance YunoHost pour une petite association ou entreprise et aimeriez avoir votre propre logo affiché :slight_smile: ). Pour l’instant, cela n’est disponible qu’en ligne de commande, mais la procédure et la marche à suivre sont documentées ici !
  • Beaucoup de petites améliorations sur l’UX et la robustesse lors de l’installation et de la mise à jour d’applications (par exemple, afficher plus de messages expliquant ce qui se passe, et détecter/prévenir des problèmes courants avant qu’ils ne se produisent)
  • De nouveaux paramètres globaux ont été introduits pour être capable de choisir quel compromis faire entre sécurité et compatibilité pour les configurations nginx et sshd. Ainsi, par exemple, si vous souhaitez durcir les ciphers utilisés par nginx, vous pouver regarder la procédure à suivre sur cette page (section “Durcir la sécurité de la configuration des services”)
  • Pour les packageurs d’applications : beaucoup d’améliorations et de nouveaux helpers ! Dont : l’utilisation de getopts qui permet une gestion d’options plus flexibles et sémantiques, ynh_script_progression (barre de progression), ajout des helpers fail2ban, ynh_systemd_action, amélioration des helpers pour les settings, postgresql et nodejs…
  • Mise à jour de Metronome en 3.11.8
  • De nombreuses contributions sur les traductions ! : Français, Catalan, Espéranto, Occitan, Russe, Chinois, Portugais, Hongrois, Breton, Grec, Suédois, Polonais, Arabe, Italien, Bengali
  • Et bien sûr, comme toujours, diverses corrections techniques et autres améliorations sur l’UX, la robustesse et la sécurité !

*Merci à tou·te·s les contributeur.ice.s (Aleks, ariasuni, Arthur L., Bram, ButterflyOfFire, chateau, frju365, Gabriel C., Jibec, JimboeJoe, Josué, Kayou, ljf, Lukas F., Maniack, mytechpro, n3uz, opi, ppr, Quentí, Romuald, silkevicious, Taekiro, Xaloc, Yalh76, Алексей) !

:scroll: Details des changements

Core

  • [enh] Affichage de la version dans les infos d’une application (YunoHost-admin#235)
  • [fix] Correction de l’interface dbus pour obtenir des informations sur les services (#698)
  • [fix] Refonte de tools_update pour mieux gérer la foutue erreur “FetchFailedException” (#695))
  • [enh] Poussibilité d’utiliser des thèmes pour le portail utilisateur / SSO (SSOwat#122,#689)
  • [enh] Vérifiez que les services requis sont en place avant d’exécuter l’installation et la mise à niveau des applications (#670))
  • [enh] Ajout de paramètres pour contrôler le compromis entre sécurité et compatibilité pour les configurations nginx et sshd (#640)
  • [enh] Permettre aux applications d’étendre la configuration DNS recommandée via un hook (#517)
  • [fix] Désactiver complètement gzip pour éviter les attaques BREACH (#675)
  • [fix] Réparation des tests de backups (#673)
  • [fix] Certaines sauvegardes échouaient parce que le répertoire de sortie n’était pas vide (#672))
  • [fix] Rejet des mot de passe pour apps s’ils contiennent { ou }. (#671))
  • [fix] Optimiser les requêtes dyndns (#662)
  • [enh] Ne pas ajouter le header Strict-Transport-Security dans nginx si un certificat auto-signé est utilisé (#661)
  • [enh] Ajout de apt-transport-https aux dépendances (#658)
  • [enh] Mettre en cache les résultat du diagnostic de vulnérabilité à Meltdown (#656))
  • [enh] S’assurer que le fichier tar est fermé pendant la sauvegarde (#655)
  • [enh] Possibilité de déclencher des hooks lorsqu’un setting est modifié (#654)
  • [enh] Vérifier que apt/dpkg n’est pas cassé avant d’installer une application (#652))
  • [fix] Correction du chargement des helpers suite à l’utilisation de getopts (#651)
  • [enh] Améliore / ajoute des messages pour améliorer l’UX (#650)
  • [enh] Recharger fail2ban au lieu de le redémarrer pour améliorer les performances (#649)
  • [enh] Ajout des résolveurs IPv6 de diyisp.org à resolv.dnsmasq.conf (#639)
  • [fix] Suppression de l’ancien port SMTP (465) de fail2ban jail.conf (#637))
  • Améliorer la protection contre l’indexation des robots (#622)
  • [enh] Permettre aux hooks de retourner des données (#526)
  • [fix] Ne pas rendre le numéro de version disponible depuis l’API web aux utilisateurs non authentifiés (#291,YunoHost-admin#226,YunoHost-admin#233)
  • Ajouter d’un Konami code dans la webadmin :ok_hand: (YunoHost-admin#208)
  • [i18n] Amélioration des traductions en français, catalan, espéranto, occitan, russe, chinois, portugais, hongrois, breton, grec, suédois, polonais, arabe, italien, bengali

Helpers pour les apps

  • [enh] Support des versions php dans ynh_add_fpm_config (#674))
  • [fix] Faire en sorte que ynh_system_user_delete supprime également le groupe (#680)
  • [doc] Ajouter la version minimale pour tous les helpers (#664)
  • [enh] Optimisation des helpers pour les settings (#663,#676)
  • [enh] Support des arguments de type display_text dans manifest.json (#669,#697,YunoHost-admin#234)
  • [enh] Gestion de ynh_install_nodejs pour arm64 / aarch64 (#660))
  • [enh] Mise à jour des helpers postgresql (#657))
  • [enh] Montrer les différences des fichiers lors de la sauvegarde par ynh_backup_if_checksum_is_different (#648))
  • [enh] Ajouter d’un helper pour aider au debug d’apps (#647))
  • [fix] ynh_local_curl n’utilisais pas la bonne url dans certains cas (#644)
  • [fix] Suppression des messages relou ‘unable to initialize frontend’ (#643)
  • [enh] Vérifiez que dpkg n’est pas cassé lorsque ynh_wait_dpkg_free est appelé (#638))
  • [enh] Avertir les packagers que ynh_secure_remove doit être utilisé avec un seul argument… (#635,#642)
  • [enh] Ajout de ynh_script_progression (#634)
  • [enh] Ajout de ynh_systemd_action (#633, #681))
  • [enh] Permettre d’aller plus profondément dans l’archive lors de l’utilisation de ynh_setup_source (#630)
  • [enh] Utilisez getops for app helpers (#561, #646, #685, #683)
  • [enh] Ajout de ynh_check_app_version_version_changed** (#521)
  • [enh] Ajouter des helpers fail2ban (#364)

:arrow_up: Comment mettre à jour

Depuis la webadmin

:warning: Si vous n’êtes pas sur la version 3.4.x, nous vous recommandons de mettre à jour à partir de la ligne de commande pour éviter un problème lié à la mise à jour du Metronome.

  • Aller dans “Mettre à jour le système”
  • Puis cliquez sur “Mettre à jour” dans le bloc “Système”.

Ou à partir de la ligne de commande

$ apt-get update
$ apt-get dist-upgrade

(si pendant l’upgrade le système vous demande quelle version de la configuration de Metronome garder, répondre ‘N’ (valeur par défaut))

:newspaper: Autres nouvelles du projet

Beaucoup de choses se passent en parallèle de cette version, en particulier du côté des applications !

Dans les mois à venir, nous allons progressivement supprimer le concept d’applications “officielles” (vs “communautaires”). Nous avons conclu que ce concept d’application " officiellle" était trop contraignant et pas vraiment efficace (cela fait un moment qu’aucune application n’a pas été ajoutée dans les apps officielles, et ça n’a jamais été très clair de savoir qui est censé maintenir ces apps). À la place, nous introduisons un concept d’“applications de haute qualité” pour celles qui suivent de près les recommendations de packaging, et qui suivent un protocole rigoureux d’après lequel les évolution de l’app sont revue et validée par l’équipe des apps.

En parallèle, la définition des niveaux des applications a été revue. Jusqu’à présent, le niveau 4 était lié à l’intégration LDAP/SSO qui est au final un des aspects les plus compliqués du packaging des applications… Ainsi, beaucoup d’applications étaient restées au niveau 3~4 alors qu’elles implémentent la sauvegarde/restauration (correspondant au niveau 7). Ces définitions ont donc été retravaillées pour avoir plus de sens. (Plus d’informations ici : https://github.com/YunoHost/doc/pull/927).

A propos du packaging des apps en lui-même : les nouvelles recommandations incluent plus de verbosité pour les scripts de l’application. Vous remarquerez peut-être que de plus en plus d’applications afficheront des messages expliquant ce qui se passe pendant l’installation (en utilisant des messages pas trop techniques) plutôt que ne rien afficher ou bien d’afficher uniquement les avertissements… Certaines apps afficheront peut-être même une barre de progression ! (c.f. le helper ynh_script_progression)

Autre nouvelle intéressante : si vous êtes intéressé par la commande d’un VPS avec YunoHost préinstallé : Time4VPS propose maintenant des VPS installés avec YunoHost ! A l’avenir, il est possible que d’autres acteurs se mettent à proposer ce genre de service (Alsace Réseau Neutre, Scaleway, …) :wink:

RPi v2 is now updated without a problem for now.
Thx!!

Bonjour,
J’ai remarqué deux changements après cette mise à jour:

  • Les couleurs des tuiles d’applications ont changé (certainement avec l’introduction des thèmes)
  • YunoFav n’a plus de style appliqué…

Mise à jour faite sans soucis, je note cependant quelques soucis depuis :

  1. Je suis souvent déconnectés de mes outils, parfois le moindre rechargement de page me demande de me re-connecter
  2. Je n’ai pas réussi à appliquersudo yunohost settings set service.ssh.compatibility -v modern avec le message d’erreur suivant : La clef 'service.ssh.compatibility' n’existe pas dans les configurations générales, vous pouvez voir toutes les clefs disponibles en saisissant 'yunohost settings list'. Le service ne serait-il pas plutôt “security.ssh.compatibility” ?

Sinon, beau travail, j’ai hâte de personnaliser un peu mon interface, et la config https est bien mieux notée :slight_smile:
3) Pour la commande côté nginx, j’ai des messages d’erreurs sur quelques services me disant que les fichiers ont été modifiés à la main (exemple sudo yunohost settings set service.ssh.compatibility -v modern), est ce qu’il y a moyen de forcer la commande ? (pour les 3 listés, je suis quasiment sur de ne les avoir jamais touchés moi même)

Uh beh je sais pas trop quoi te dire là dessus :confused: Ça me parrait vague … est-ce que ça ne pourrait pas être lié à des extensions dans ton navigateur ? Est-ce que ça semble vraiment lié à la 3.5 ?

Anéfé, vais mettre la doc à jour (elle l’est deja en anglais je crois car quelqu’un à poussé une modif pour cette typo)

yunohost service regen-conf nginx --dry-run -d pour voir les différences, puis si ça a l’air ok, yunohost service regen-conf nginx --force

Problème de mise à jour, sur Debian 9:

unable to upgrade packages: Failed to fetch http://forge.yunohost.org/debian/pool/stable/y/yunohost/yunohost_3.5.2_all.deb 404 Not Found

Et en effet, actuellement c’est http://forge.yunohost.org/debian/pool/stable/y/yunohost/yunohost_3.5.2.**1**_all.deb qui fonctionne.
Une mise à jour des dépôts non faite ?

Mise à jour effectuée sans aucun soucis.
Chapeau et merci à l’équipe !!

Uuuh si le apt update n’a pas été fait juste avant, oui sans doute …?

Mise à jour réalisée hier sans aucun accroc, merci à tous.
Pour les utilisateurs de Lime 2 j’ai en revanche toujours un problème de boot avec le noyau 4.9 voir topic
https://forum.yunohost.org/t/brique-ne-demarre-plus-apres-migration/7152/18

Un grand merci à l’équipe Yunohost !

Au delà de la mise à jour qui s’est parfaitement bien déroulée, la personnalisation de l’interface fonctionne parfaitement également ! :+1:

Hello,

rien à dire non plus, j’ai changé le style d’interface et superbe!

An issue I am having with themes is that they are not found on the server, nginx doesn’t display them.image

Can you try to restart nginx to see if that solves the issue ?

The issue still persists.

So what does yunohost service regen-conf nginx --dry-run tells ?

Doesn’t output anything, just blank.

[EN]
Hi not having the opportunity to file an issue on the Ssowat Git
here is a return of error on the establishment of a domain redirection on one of the installed applications.

> Blockquote Error while reading SSOwat persist configuration: Expecting, delimiter: line 7 column 1 (char 104). Edit /etc/ssowat/conf.json.persistent file to fix the JSON syntax

this is part of the changes to this file for installing a theme.

[FR] Salut n ayant pas la possibilité de déposer une issue sur le Git de Ssowat
voici un retour d erreur sur la mise en place d’une redirection de domaine sur l une des applications installées.

Blockquote Error while reading SSOwat persistent configuration: Expecting , delimiter: line 7 column 1 (char 104). Edit /etc/ssowat/conf.json.persistent file to fix the JSON syntax

cela s’inscrit dans les changements apporté à ce fichier pour l’installation d’un thème.