premier essaie

This commit is contained in:
mathieu
2026-08-18 15:15:53 +02:00
commit f942f41f34
18 changed files with 1889 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
# À faire avant la première installation
Deux points restés en suspens à la livraison du paquet, à traiter quand tu voudras
déployer. Rien ici n'est bloqué par le code : tout fonctionne, il manque des
informations que seul toi peux fournir.
---
## 1. Remplacer l'URL de démonstration et déposer la release
Le `manifest.toml` porte une URL **fictive** (`gitea.example.org`) : le paquet ne
pouvait pas connaître ton vrai domaine Gitea au moment de sa création. En l'état,
l'installation échouerait au téléchargement de l'archive.
### Ce qu'il faut faire
**a. Créer la release du code.** Sur le dépôt `mabibli` (celui du code C#, pas
celui-ci) :
```
git tag v0.1.0
git push origin v0.1.0
```
Puis créer la release correspondante dans l'interface Gitea et y téléverser
l'archive `build/dist/mabibli-0.1.0-linux-x64.tar.gz`.
⚠️ L'archive fait **68 Mo** — c'est normal, le publish est *self-contained* et
embarque le runtime .NET. C'est précisément ce qui évite d'installer
`dotnet-runtime` sur le serveur YunoHost.
**b. Régénérer le manifeste avec la vraie URL :**
```
./build/publier-release.sh --base-url <ton URL Gitea réelle>
```
Le script recompile, produit l'archive, calcule son `sha256` et l'inscrit dans le
`manifest.toml` avec la bonne URL. Committer ensuite le manifeste modifié.
**c. Chercher les autres occurrences du domaine fictif**, qui ne sont pas couvertes
par le script :
```
grep -rn "gitea.example.org" .
```
Elles se trouvent dans `manifest.toml` (champ `upstream.code`), `README.md`, et
`conf/systemd.service` (directive `Documentation=`).
### Comment vérifier
Le `sha256` du manifeste doit correspondre à l'archive réellement déposée :
```
sha256sum build/dist/mabibli-0.1.0-linux-x64.tar.gz
grep sha256 manifest.toml
```
S'ils diffèrent, l'installation s'interrompra à la vérification d'intégrité — ce qui
est le comportement souhaité, mais autant le savoir avant.
---
## 2. L'application exige un domaine entier, pas un sous-chemin
**Contrainte technique, pas un choix.** MaBibli doit être installée sur
`mabibli.mondomaine.tld`, et **non** sur `mondomaine.tld/mabibli`.
### Pourquoi
Deux éléments sont figés **à la compilation** du client Blazor WebAssembly :
- la balise `<base href="/">` de `index.html`, qui détermine la racine de toutes les
URL de l'application ;
- les empreintes d'intégrité inscrites dans `service-worker-assets.js`, qui
garantissent que le service worker sert bien les fichiers attendus.
Réécrire ces valeurs sur le serveur au moment de l'installation casserait les
empreintes, donc le service worker, donc le fonctionnement hors-ligne. Et comme
rien n'est recompilé côté serveur — c'est tout l'intérêt du déploiement
self-contained —, il n'existe pas de solution propre pour un sous-chemin.
Le paquet déclare donc l'application en `full_domain` auprès de YunoHost, qui
demandera un domaine dédié à l'installation.
### Si tu voulais lever cette contrainte plus tard
Il faudrait produire une archive **par chemin d'installation**, ou recompiler sur le
serveur. Les deux annulent le bénéfice du self-contained. À moins d'un besoin réel,
un sous-domaine reste la bonne réponse.