95 lines
3.4 KiB
Markdown
95 lines
3.4 KiB
Markdown
# Administration de Vèy Lalwa
|
|||
|
|
|
||
|
|
## Où sont les choses
|
||
|
|
|
||
|
|
| Quoi | Où |
|
||
|
|
|---|---|
|
||
|
|
| Code et application construite | `__INSTALL_DIR__` |
|
||
|
|
| Base de veille, cache, export JSON | `__DATA_DIR__` |
|
||
|
|
| Configuration (identifiants compris) | `__INSTALL_DIR__/.env`, mode 600 |
|
||
|
|
| Journal de l'application web | `/var/log/__APP__/__APP__.log` |
|
||
|
|
| Journal des passages de collecte | `/var/log/__APP__/pipeline.log` |
|
||
|
|
|
||
|
|
Tout ce qui compte vit dans `__DATA_DIR__` : le répertoire d'installation est **intégralement remplacé** à chaque mise à jour.
|
||
|
|
|
||
|
|
## Le pipeline
|
||
|
|
|
||
|
|
Deux passages par jour, à 6 h et 18 h, plus un le dimanche à 9 h pour rattraper le Journal officiel de fin de semaine. Une dispersion de quinze minutes évite de frapper Légifrance en même temps que tout le monde.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Déclencher un passage tout de suite
|
||
|
|
systemctl start __APP__-pipeline.service
|
||
|
|
|
||
|
|
# Suivre ce qu'il fait
|
||
|
|
journalctl -u __APP__-pipeline -f
|
||
|
|
|
||
|
|
# Voir la prochaine échéance
|
||
|
|
systemctl list-timers __APP__-pipeline.timer
|
||
|
|
```
|
||
|
|
|
||
|
|
### Voir ce que le pipeline changerait, sans rien écrire
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd __INSTALL_DIR__
|
||
|
|
sudo -u __APP__ bash -c 'set -a; . ./.env; set +a; \
|
||
|
|
./venv/bin/python -m pipeline.update --dry-run'
|
||
|
|
```
|
||
|
|
|
||
|
|
(`set -a` exporte automatiquement ce que le fichier définit ; `xargs` échouerait
|
||
|
|
sur les valeurs contenant des espaces.)
|
||
|
|
|
||
|
|
Le rapport liste chaque écart avec son ancienne et sa nouvelle valeur. **Commencez toujours par là** avant de soupçonner un problème.
|
||
|
|
|
||
|
|
## Identifiants Légifrance
|
||
|
|
|
||
|
|
L'application fonctionne sans. Le rapport de passage indique alors :
|
||
|
|
|
||
|
|
```
|
||
|
|
legifrance ignoré — LEGIFRANCE_CLIENT_ID absent de .env — repli sur
|
||
|
|
l'Assemblée nationale, le Sénat et le Conseil constitutionnel
|
||
|
|
```
|
||
|
|
|
||
|
|
Pour les ajouter, éditez `__INSTALL_DIR__/.env`, puis `systemctl start __APP__-pipeline.service`.
|
||
|
|
|
||
|
|
**Le piège** : une application PISTE affiche deux couples de valeurs.
|
||
|
|
|
||
|
|
| Ce que PISTE affiche | À utiliser |
|
||
|
|
|---|---|
|
||
|
|
| **Client ID** / **Client secret** | ✅ oui |
|
||
|
|
| API key / API key secret | ❌ non — `invalid_client` |
|
||
|
|
|
||
|
|
Second piège : les identifiants de production ne fonctionnent pas en bac à sable, qui exige une application distincte.
|
||
|
|
|
||
|
|
## Sauvegarde
|
||
|
|
|
||
|
|
La sauvegarde YunoHost couvre la base et la configuration. À la main :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sqlite3 __DATA_DIR__/veille.db ".backup /sauvegardes/veille-$(date +%F).db"
|
||
|
|
```
|
||
|
|
|
||
|
|
N'utilisez jamais `cp` pendant un passage : le mode WAL laisse des fichiers annexes que `.backup` gère correctement.
|
||
|
|
|
||
|
|
## Diagnostic
|
||
|
|
|
||
|
|
| Symptôme | Piste |
|
||
|
|
|---|---|
|
||
|
|
| Page blanche, 502 | `systemctl status __APP__` puis `tail /var/log/__APP__/__APP__.log` |
|
||
|
|
| « Base introuvable » | La base a disparu de `__DATA_DIR__`. Rejouez le remplissage (voir plus bas). |
|
||
|
|
| Formulaire de recherche refusé | `ORIGIN` dans `.env` ne correspond plus au domaine servi |
|
||
|
|
| Aucun texte nouveau depuis des semaines | Normal hors session parlementaire. Vérifiez avec `--dry-run`. |
|
||
|
|
| `invalid_client` dans le journal | Clé d'API utilisée au lieu du couple OAuth, ou application non abonnée à l'API Légifrance |
|
||
|
|
|
||
|
|
### Reconstruire la base depuis le corpus
|
||
|
|
|
||
|
|
Le corpus de recherche est embarqué dans l'archive : la base peut toujours être reconstruite, sans réseau.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd __INSTALL_DIR__
|
||
|
|
sudo -u __APP__ bash -c 'set -a; . ./.env; set +a; \
|
||
|
|
./venv/bin/python -m pipeline.seed_from_research --repartir-de-zero'
|
||
|
|
systemctl restart __APP__
|
||
|
|
```
|
||
|
|
|
||
|
|
Vous perdrez l'historique des passages, pas les 52 textes du corpus.
|