Paquet YunoHost pour Vèy Lalwa — v1.0.1~ynh1

Format de paquetage 2, helpers 2.1, sur le modèle de jwe_ynh.

Ce que l'installation fait, dans cet ordre : extraire l'archive, rendre le
.env depuis les réponses d'installation, construire l'application web (npm ci,
polices, build, prune), monter l'environnement Python, puis remplir la base
depuis le corpus de recherche embarqué.

Trois choix qui méritent d'être dits :

- La base, le cache et l'export vivent dans data_dir, jamais dans le répertoire
  d'installation. « ynh_setup_source --full_replace » efface celui-ci
  intégralement à chaque mise à jour : y laisser la base effacerait tout le
  travail de veille accumulé. Vérifié en simulant la mise à jour — 59 textes,
  367 sources et 3 passages survivent à l'effacement.
- Un domaine dédié, sans question « path ». Les liens internes sont absolus et
  SvelteKit demanderait une recompilation avec « paths.base » pour tenir sur
  un sous-chemin. Mieux vaut une contrainte annoncée qu'un sous-chemin à
  moitié fonctionnel.
- Les identifiants Légifrance sont facultatifs, et les tests s'exécutent sans :
  cela vérifie au passage le mode dégradé documenté. Le rapport de passage
  affiche alors « legifrance ignoré — repli sur … », et les deux autres
  collecteurs détectent quand même les 7 ajouts et les 4 changements de
  décision.

Un minuteur systemd distinct porte le passage de collecte, le helper
« ynh_config_add_systemd » ne gérant que l'unité principale. Il est arrêté
avant toute mise à jour : un passage qui démarrerait pendant le remplacement
des fichiers travaillerait sur un arbre à moitié écrit.

Vérifié avant publication, pas après : séquence npm complète depuis l'archive
publiée, environnement Python, remplissage, démarrage du service lisant la base
de data_dir, origine déduite des en-têtes du proxy, passage en mode dégradé, et
simulation d'effacement du répertoire d'installation. shellcheck sans
avertissement, TOML valides.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Cyber Mawonaj
2026-07-25 23:33:28 -04:00
co-authored by Claude Opus 5
commit 07b349be86
23 changed files with 1144 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# Vèy Lalwa pour YunoHost
[![Version](https://img.shields.io/badge/version-1.0.1~ynh1-FDB813)](https://labola.o-k-i.net/cyber-mawonaj/veye-lalwa)
[![Licence](https://img.shields.io/badge/licence-AGPL--3.0--or--later-00D66C)](https://www.gnu.org/licenses/agpl-3.0.html)
*Paquet YunoHost pour [Vèy Lalwa](https://labola.o-k-i.net/cyber-mawonaj/veye-lalwa), veille législative française sous l'angle des libertés — zoom Guadeloupe.*
**N'installez pas ce paquet à la main s'il figure dans le catalogue YunoHost.** Utilisez plutôt `yunohost app install veyelalwa`.
## Vue d'ensemble
Vèy Lalwa suit les lois, projets et propositions de loi françaises, ainsi que les décisions du Conseil constitutionnel, et les lit sous un angle précis : ce qu'elles changent aux **libertés des individus, des associations et des entreprises**, avec un zoom Guadeloupe et outre-mer.
L'application se compose de deux moitiés indissociables :
- un **pipeline Python** qui remplit la base depuis un corpus de recherche embarqué, puis la tient à jour depuis Légifrance, le Sénat et le Conseil constitutionnel ;
- une **application SvelteKit** rendue côté serveur : recherche plein texte, filtres combinables, fiches sourcées, calendrier des échéances.
**Version incluse :** 1.0.1
## Captures
L'application est en français, thème sombre par défaut, thème clair disponible. Aucune image n'est embarquée dans ce paquet : l'interface n'utilise que du texte, des tracés SVG et deux polices auto-hébergées.
## Ce que l'installation met en place
| | |
|---|---|
| Service web | `veyelalwa.service` — Node, derrière le NGINX de YunoHost |
| Passage de collecte | `veyelalwa-pipeline.service`, déclenché par un minuteur |
| Cadence | 6 h et 18 h tous les jours, plus le dimanche à 9 h |
| Base pré-remplie | 52 textes, 360 sources, arrêtées au 25 juillet 2026 |
| Données persistantes | `/home/yunohost.app/veyelalwa/` — survivent aux mises à jour |
## Avant d'installer
**Un domaine dédié est nécessaire.** L'application occupe la racine (`/`) : ses liens internes sont absolus et SvelteKit exigerait une recompilation pour tenir sur un sous-chemin. Mieux vaut une contrainte annoncée qu'un sous-chemin à moitié fonctionnel.
**Les identifiants Légifrance sont facultatifs.** Sans eux, le collecteur correspondant se désactive et l'annonce dans le rapport de passage ; le Sénat et le Conseil constitutionnel prennent le relais, ce qui suffit à suivre les promulgations et les décisions constitutionnelles.
Si vous en avez : sur [piste.gouv.fr](https://piste.gouv.fr), déclarez une application **et abonnez-la à l'API « Légifrance »**. Utilisez le couple **OAuth** (« Client ID » / « Client secret ») — la clé d'API, elle, est refusée par le point d'accès du jeton.
## Documentation
- Administration au quotidien : `doc/ADMIN_fr.md`
- Fonctionnement du pipeline et dépannage : [`README-pipeline.md`](https://labola.o-k-i.net/cyber-mawonaj/veye-lalwa/src/branch/main/README-pipeline.md) du dépôt amont
## Installation
```bash
sudo yunohost app install https://labola.o-k-i.net/cyber-mawonaj/veye-lalwa_ynh
```
Mise à jour :
```bash
sudo yunohost app upgrade veyelalwa -u https://labola.o-k-i.net/cyber-mawonaj/veye-lalwa_ynh
```
L'installation construit l'application web (npm) et l'environnement Python, puis remplit la base : comptez quelques minutes et environ 1 Go de mémoire disponible pendant la construction.
## Licence
Paquet et application sous AGPL-3.0-or-later. Le corpus de recherche embarqué reste la propriété de ses auteurs.
Si vous réutilisez ces données, citez la source primaire — Journal officiel, assemblées, Conseil constitutionnel — plutôt que cette plateforme : elle n'est qu'un intermédiaire.