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>
69 lines
3.3 KiB
Markdown
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).
|