- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| scripts | ||
| v3 | ||
| README.md | ||
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
- 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 augit.revisionindiqué). - Créer l'entrée depuis le clone local du paquet, sur cette branche :
Catégories YunoHost :scripts/bump_app.py --add <categorie> <app_id> ~/apps/<app>_ynhproductivity,communication,office,publishing,system_tools,dev,multimedia,social_media,small_utilities,synchronization,wat… - Logo (sinon la tuile du portail n'a pas d'icône) : voir « Logo d'une app » ci-dessous.
git commit && git push, puis sur le serveursudo yunohost tools update apps.- Vérifier :
yunohost app catalog --full | grep -A3 <app_id>(repositorynimesys). Si l'app existe aussi au catalogue officiel, c'est notre entrée qui gagne tant quenimesysest en tête deapps_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.architecturesdoit rester la chaîne"all"(une liste["all"]échoue au contrôle d'architecture sur amd64).potential_alternative_branches/potential_alternative_to/subtags/antifeaturessont attendus en listes (absents → l'UI admin plante).- Le paquet doit fournir
packaging_format,upstream,maintainersdans lemanifestdu catalogue, sinon_check_manifest_requirementséchoue au contrôle de mise à jour.