[Radicale] Package rewritten for Radicale 3: reviews and testers welcome / paquet réécrit, relecteurs et testeurs bienvenus

Français plus bas

The Radicale package had been moved to the graveyard: it was still on Radicale 1.1 (Python 2, uWSGI) with packaging v1 and could not be installed on current YunoHost. I rewrote it for Radicale 3.8.3 and packaging v2.

What it does

  • Login with the YunoHost account (username or email address), restricted to the users and groups allowed on the app permission
  • Each user only accesses their own calendars and address books; a default calendar and address book are created on first login
  • Optional history of every change in a git repository, toggled from the config panel
  • /.well-known/caldav and carddav redirections, unless another app of the domain already uses them
  • Fail2Ban on failed logins
  • InfCloud is dropped, Radicale’s own web interface is used

Upgrade from the old 1.x package: the data is first copied to /home/yunohost.app/radicale/radicale1-backup, then converted and checked by Radicale 3. If something cannot be converted, the upgrade stops and tells where the data is.

To test (make a backup first if you upgrade an existing install):

# fresh install
sudo yunohost app install https://github.com/retiolus/radicale_ynh/tree/radicale-v3
# upgrade an existing install
sudo yunohost app upgrade radicale -u https://github.com/retiolus/radicale_ynh/tree/radicale-v3

Could someone from the @Apps group trigger the CI on the package PR?


Le paquet Radicale avait été déplacé dans le « cimetière » : il était resté sur Radicale 1.1 (Python 2, uWSGI) avec le packaging v1 et ne s’installait plus sur YunoHost actuel. Je l’ai réécrit pour Radicale 3.8.3 et le packaging v2.

Ce qu’il fait

  • Connexion avec le compte YunoHost (identifiant ou adresse e-mail), limitée aux utilisateurs et groupes autorisés sur la permission de l’app
  • Chacun n’accède qu’à ses propres agendas et carnets d’adresses ; un agenda et un carnet par défaut sont créés à la première connexion
  • Historique optionnel de chaque modification dans un dépôt git, activable depuis le panneau de configuration
  • Redirections /.well-known/caldav et carddav, sauf si une autre app du domaine les utilise déjà
  • Fail2Ban sur les échecs de connexion
  • InfCloud est retiré, l’interface web de Radicale est utilisée

Mise à jour depuis l’ancien paquet 1.x : les données sont d’abord copiées dans /home/yunohost.app/radicale/radicale1-backup, puis converties et vérifiées par Radicale 3. Si quelque chose ne peut pas être converti, la mise à jour s’arrête et indique où se trouvent les données.

Pour tester (faites une sauvegarde avant si vous mettez à jour une installation existante) : voir les commandes ci-dessus.

Quelqu’un du groupe @Apps pourrait-il lancer la CI sur la PR du paquet ?

Thanks for the review.

  • Size: git stores each change compressed and packs the history on its own. In a test with 5000 changes on a calendar of 1000 events, it took about 1 KB per change (9 MB in total). A busy calendar stays at a few MB per year.
  • Disabling: the option is in the configuration panel. It only removes the hook from Radicale’s configuration. The calendars and address books are not touched, and the existing history is kept.
  • Pruning: there is none built in. To drop the history, disable the option and delete /home/yunohost.app/radicale/collections/.git. Enabling it again starts a new history from the current state.