Pendant du commit du paquet. Les passages qui PARLAIENT du placeholder annoncaient desormais la vraie URL comme etant un placeholder : ils sont reecrits pour dire ce qui est. docs/publier-une-version.md porte maintenant la marche a suivre pour produire une copie publique — depot neuf sans historique, URL neutralisees, identite a revoir — avec le rm -rf .git AVANT le git init : un git clone ne conviendrait pas, l'historique portant les URL reelles dans chaque ancien commit. CLAUDE.md consigne l'erreur et la regle qui en sort : on anonymise une copie, jamais l'original. 626 tests au vert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
MaBibli
Gestion de bibliothèque personnelle, auto-hébergée, pensée pour un foyer. Catalogue, prêts, scan de code-barres, consultation hors-ligne.
- Catalogue des livres physiques et des ebooks — fiches uniquement, aucun fichier n'est hébergé. Revues et séries ont leurs propres fiches.
- Prêts — à qui, depuis quand, et l'historique complet.
- Scan ISBN au code-barres depuis le téléphone, ou saisie manuelle, avec pré-remplissage du titre, de l'auteur, de l'éditeur et de la couverture.
- Statuts de lecture personnels — chacun sa progression, sur une collection commune.
- Liste d'envies personnelle, exportable en
.txtet.csv. - Consultation hors-ligne — PWA installable ; la bibliothèque reste consultable et cherchable sans réseau.
Les métadonnées viennent de la BnF puis d'OpenLibrary, deux sources libres et sans clé d'API. Aucune dépendance à Google Books.
Documentation
| Document | Répond à | Pour qui |
|---|---|---|
| docs/installer.md | Comment je l'héberge ? | qui installe, sur YunoHost ou ailleurs |
| docs/publier-une-version.md | Comment je sors une version ? | qui maintient le projet |
| docs/architecture.md | Pourquoi le code est ainsi ? | qui veut comprendre ou contribuer |
mabibli_ynh/doc/ADMIN.md |
Où sont les données, qui a accès ? | l'administrateur, après installation |
CLAUDE.md porte le contexte complet et l'historique des décisions, avec leurs mesures —
y compris les raisonnements qui se sont révélés faux, gardés exprès pour ne pas les
reconduire. IDEES.md recueille les pistes non actées.
En bref
Trois projets .NET, un seul processus en production : le client Blazor WebAssembly est compilé en fichiers statiques que l'API sert elle-même.
MaBibli.Client ─┐
MaBibli.Shared ─┼──► dotnet publish MaBibli.Api ──► un service systemd
MaBibli.Api ─┘ (self-contained) sur 127.0.0.1
| Backend | C# / ASP.NET Core, .NET 10 |
| Frontend | Blazor WebAssembly, en PWA |
| Base | SQLite + EF Core |
| Scan | zbar compilé en WebAssembly (LGPL-2.1) |
| Authentification | SSO YunoHost, via les en-têtes SSOwat — pas d'auth propre |
| Hébergement | YunoHost, installation native (sans Docker) |
Trois contraintes ne se négocient pas : x86_64, HTTPS (sans quoi le scan caméra ne s'ouvre jamais) et un domaine entier, pas un sous-chemin. Le pourquoi est dans docs/architecture.md.
Démarrer
dotnet build && dotnet test
dotnet run --project MaBibli.Api
L'API sert aussi le client compilé : une seule commande suffit.
Ce dépôt porte les URL du serveur de son auteur
https://git.akbar.nohost.me/mathieu/… — c'est le dépôt de travail, et il doit rester
opérationnel. Une seule ligne les commande toutes : depot_code, en tête de
mabibli_ynh/build/publier.sh.
Pour en tirer une copie publique destinée à des tiers, la marche à suivre — dépôt neuf sans historique, URL neutralisées — est dans docs/publier-une-version.md.
⚠️ Depuis la 0.5.0, aucune base antérieure n'est migrable
Les migrations ont été fondues en une seule. Sur un serveur déjà installé, il faut
remove --purge puis réinstaller, avec perte du catalogue — voir
docs/installer.md.
Licence
AGPL v3 — voir LICENSE. L'AGPL attend que les utilisateurs d'un service en réseau puissent en obtenir la source : le lien vers le dépôt affiché dans la page « À propos » de l'application n'est pas un ornement.