Catalogue YunoHost perso de NIMESYS (CollabMD, Ardoise, forks Docs/Meet/Twenty)
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-22 16:45:51 +00:00
scripts feat: docker_stack 0.2~ynh1 (entrée du catalogue) ; bump_app.py : upstream.website facultatif 2026-10-14 15:20:37 +00:00
v3 consuldemocracy 2.6.1~ynh3 (nouvelle app) 2026-10-22 16:45:51 +00:00
README.md renommé nimesys-catalog ; bump_app.py : --add (nouvelle app), branche lue dans le clone ; README : ajouter une app 2026-10-14 15:16:19 +00:00

nimesys-catalog

Catalogue YunoHost perso de NIMESYS (CollabMD, Ardoise, forks Docs/Meet/Twenty) — consommé par le serveur via /etc/yunohost/apps_catalog.yml (id: nimesys, url: https://git.nimesys.fr/cedric/nimesys-catalog/raw/branch/main, JSON servi sur v3/apps.json). Ancien nom (jusqu'au 14/10/2026) : collabmd-catalog / collabmd-nimesys (créé d'abord pour CollabMD seul).

Pourquoi ce dépôt

C'est lui qui fait apparaître « Mettre à jour » dans l'interface YunoHost pour des apps hors catalogue officiel : YunoHost compare la manifest.version du catalogue à la version installée, puis va chercher le paquet au git.revision indiqué. Pousser un tag ou un commit sur le dépôt du paquet ne suffit pas — l'entrée du catalogue doit être mise à jour.

Ordre des catalogues (apps aussi présentes au catalogue officiel)

lasuite-docs et lasuite-meet existent aussi dans le catalogue default : YunoHost garde la première entrée trouvée (avertissement « Duplicate app »). nimesys doit donc être en tête de /etc/yunohost/apps_catalog.yml (fait le 14/10, copie apps_catalog.yml.bak-20261014), sinon les mises à jour proposées viennent du paquet officiel, sans nos ajouts. Vérifier : yunohost app catalog --full → repository: nimesys pour ces apps.

Ajouter une app

  1. Le paquet YunoHost est sur la forge (git.nimesys.fr/cedric/<app>_ynh), commit poussé sur la branche voulue (YunoHost télécharge le paquet depuis la forge au git.revision indiqué).
  2. Créer l'entrée depuis le clone local du paquet, sur cette branche :
    scripts/bump_app.py --add <categorie> <app_id> ~/apps/<app>_ynh
    
    Catégories YunoHost : productivity, communication, office, publishing, system_tools, dev, multimedia, social_media, small_utilities, synchronization, wat…
  3. Logo (sinon la tuile du portail n'a pas d'icône) : voir « Logo d'une app » ci-dessous.
  4. git commit && git push, puis sur le serveur sudo yunohost tools update apps.
  5. Vérifier : yunohost app catalog --full | grep -A3 <app_id> (repository nimesys). Si l'app existe aussi au catalogue officiel, c'est notre entrée qui gagne tant que nimesys est en tête de apps_catalog.yml.

Une app absente du catalogue s'installe quand même par URL (yunohost app install <url-du-paquet>) ; le catalogue sert à la voir dans l'admin et à recevoir les mises à jour.

Mettre à jour une app (nouvelle version du paquet)

scripts/bump_app.py <app_id> ~/apps/<app>_ynh   # version, revision et branche lues dans le clone
git commit -am "chore: <app_id> <version>" && git push
sudo yunohost tools update apps                 # sur le serveur

L'interface (Applications → l'app → Mettre à jour) propose alors la nouvelle version (manifest.version du catalogue plus grande que la version installée : incrémenter ~ynhN dans le paquet).

Logo d'une app

YunoHost affiche le logo de l'app (admin + portail SSO) à partir du champ logo_hash de l'entrée : au tools update, il télécharge v3/logos/<logo_hash>.png et vérifie que le sha256 du fichier vaut bien ce hash. Pour changer le logo : PNG carré (256×256), nommé par son sha256, déposé dans v3/logos/, puis logo_hash mis à jour dans v3/apps.json (bump_app.py conserve ce champ). Source du logo Ardoise : design/logo-ardoise.png du dépôt ardoise.

Pièges

  • manifest.integration.architectures doit rester la chaîne "all" (une liste ["all"] échoue au contrôle d'architecture sur amd64).
  • potential_alternative_branches / potential_alternative_to / subtags / antifeatures sont attendus en listes (absents → l'UI admin plante).
  • Le paquet doit fournir packaging_format, upstream, maintainers dans le manifest du catalogue, sinon _check_manifest_requirements échoue au contrôle de mise à jour.