Files
Mathieu LimonierandClaude Opus 5 1373532345 Paquet YunoHost de MaBibli 1.0.0
Installe l'archive self-contained publiée en release du dépôt du code,
amd64 ou arm64 selon la machine.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 22:36:27 +02:00

69 lines
3.3 KiB
Markdown

## Où vivent les données
| Quoi | Où |
|---|---|
| Binaires et client web | `/var/www/mabibli` |
| Base SQLite | `/home/yunohost.app/mabibli/mabibli.db` |
| Journaux | `journalctl -u mabibli` |
La base est séparée des binaires : une mise à jour remplace `/var/www/mabibli` sans toucher
aux données, et le schéma est migré automatiquement au démarrage. Rien à lancer à la main.
## Qui a accès
> ## ⚠️ MaBibli est une application **privée**
>
> Elle n'est **pas** faite pour être publique. L'installation la règle sur `all_users` —
> les comptes du serveur — et **ne pose pas la question**, parce qu'il n'y a pas de bonne
> raison de l'ouvrir plus large.
>
> **N'ajoutez jamais le groupe `visitors` à la permission `mabibli.main`.**
>
> Deux raisons, et ce sont des propriétés du code, pas des préférences :
>
> 1. **L'application n'a aucune authentification à elle.** Elle lit l'en-tête `YNH_USER`
> que le portail YunoHost injecte à chaque requête, et lui fait confiance. Ouverte aux
> visiteurs, plus personne n'écrit cet en-tête : tout ce qui est **personnel** — statuts
> de lecture, liste d'envies — devient lisible et modifiable par n'importe qui.
> 2. **Toute personne autorisée peut tout modifier**, y compris **supprimer** des livres du
> catalogue commun. Il n'existe ni rôle, ni lecture seule, ni journal des suppressions.
> C'est assumé pour un foyer, dont les membres se connaissent.
>
> Restreindre plus (un groupe dédié) est parfaitement légitime, et se fait dans les
> permissions YunoHost (`mabibli.main`). C'est **l'élargissement** qui est un contresens.
MaBibli n'a pas de connexion propre : l'identité vient du portail YunoHost. **Réglez les accès
dans les permissions YunoHost** (`mabibli.main`), pas dans l'application.
La collection est **commune** à toutes les personnes autorisées. Les statuts de lecture sont
personnels, les prêts sont communs.
⚠️ **Ne jamais élargir l'écoute du service.** Il écoute sur `127.0.0.1` uniquement, et c'est
une frontière de sécurité : l'application fait confiance à l'en-tête `YNH_USER` parce que
SSOwat l'écrase à chaque requête. Un service joignable directement permettrait de le forger.
## Sauvegarde manuelle
La base est en mode WAL : **un `cp` du fichier `.db` peut ne rien sauvegarder du tout.**
```bash
sqlite3 /home/yunohost.app/mabibli/mabibli.db ".backup '/quelque/part/mabibli.db'"
```
`yunohost backup create` fait déjà ce qu'il faut, sans arrêter le service.
## Ce dont le serveur a besoin
- **Accès sortant HTTPS** vers `catalogue.bnf.fr` et `openlibrary.org`, pour pré-remplir les
fiches depuis un ISBN. Sans lui l'application marche, mais toute saisie devient manuelle.
- **HTTPS** pour le scan du code-barres : les navigateurs n'ouvrent la caméra qu'en contexte
sécurisé. Le certificat Let's Encrypt de YunoHost suffit ; joindre le serveur par son IP
locale fera toujours échouer le scan. La saisie manuelle reste disponible.
- **Un domaine entier.** MaBibli ne s'installe pas sous un sous-chemin : le client Blazor fige
son chemin de base à la compilation, et rien n'est compilé sur le serveur.
---
Le détail — conception du paquet, publication, mise à jour pas à pas, retour arrière —
est dans le [README du dépôt du code](https://forge.example.org/mabibli#readme).