**Motivations:** - Consigner l'état actuel du dépôt (cron, service-login-verify, website-skeleton, userwallet, docs). - Centraliser les modifications en attente. **Root causes:** - N/A (commit groupé). **Correctifs:** - N/A. **Evolutions:** - Cron quotidien restart services : script local sans SSH, systemd (bitcoin-signet, bitcoin, APIs, dashboard, userwallet, website-skeleton) + Docker (mempool, bitcoin-signet-instance). - Feature cron-restart-services-local : documentation et règle scripts locaux / pas d'SSH. - service-login-verify : module vérification login (buildAllowedPubkeys, verifyLoginProof, nonceCache). - website-skeleton : app iframe UserWallet, config, systemd unit. - userwallet : collectSignatures, relay. - docs : DOMAINS_AND_PORTS, README, WEBSITE_SKELETON ; features userwallet-contrat-login, timeouts-backoff, service-login-verify. **Pages affectées:** - data/restart-services-cron.sh, data/restart-services.log, data/sync-utxos.log - features/cron-restart-services-local.md, features/service-login-verify.md, features/userwallet-contrat-login-reste-a-faire.md, features/userwallet-timeouts-backoff.md - docs/DOMAINS_AND_PORTS.md, docs/README.md, docs/WEBSITE_SKELETON.md - configure-nginx-proxy.sh - service-login-verify/ (src, dist, node_modules) - userwallet/src/utils/collectSignatures.ts, userwallet/src/utils/relay.ts - website-skeleton/
59 lines
3.1 KiB
Markdown
59 lines
3.1 KiB
Markdown
# Cron quotidien de relance des services (local uniquement)
|
||
|
||
**Auteur** : Équipe 4NK
|
||
**Date** : 2026-01-28
|
||
|
||
## Objectif
|
||
|
||
Relancer quotidiennement tous les services systemd du projet sur la machine locale, avec vérification des unités activées au démarrage et actives après redémarrage.
|
||
|
||
## Règle : scripts locaux, pas d’SSH
|
||
|
||
Tous les scripts du projet sont **locaux** et **ne doivent pas appeler de commandes SSH**. La relance s’effectue via `systemctl` (unités systemd) et, le cas échéant, `docker` / `docker-compose` (Mempool, bitcoind conteneur) sur la machine où le cron s’exécute. Aucune connexion à une autre machine.
|
||
|
||
## Solution implémentée
|
||
|
||
### Script `data/restart-services-cron.sh`
|
||
|
||
- **Local uniquement** : aucun `ssh`, aucune commande distante.
|
||
- Gère les unités systemd sur la machine courante : `systemctl is-enabled`, `systemctl is-active`, `sudo systemctl restart`.
|
||
- **Systemd** : `bitcoin-signet`, `bitcoin`, `anchorage-api`, `api-relay`, `clamav-api`, `faucet-api`, `filigrane-api`, `signet-dashboard`, `userwallet`, `website-skeleton`.
|
||
- **Docker (local)** : stack Mempool (`docker-compose.signet.yml`), conteneur `bitcoin-signet-instance`. Utilise `docker compose` ou `docker-compose` selon disponibilité.
|
||
- Log : `data/restart-services.log` (timestamps, rotation sur 100 dernières lignes).
|
||
|
||
### Comportement
|
||
|
||
1. **Vérification `is-enabled`** : pour chaque service, si non activé au démarrage → log `WARN`.
|
||
2. **Redémarrage** : seules les unités actives sont redémarrées ; les autres sont ignorées avec log `SKIP` (non installées ou non démarrées sur cette machine).
|
||
3. **Vérification `is-active` après redémarrage** : pour chaque unité redémarrée, si inactive → log `WARN`.
|
||
4. **Docker Mempool** : si `mempool/docker-compose.signet.yml` existe et `docker` est disponible, redémarrage de la stack via `docker compose` ou `docker-compose`. Sinon `SKIP`.
|
||
5. **Docker bitcoind** : si le conteneur `bitcoin-signet-instance` existe, `docker restart`. Sinon `SKIP` (bitcoind peut être systemd).
|
||
|
||
### Prérequis
|
||
|
||
- Exécution en cron (utilisateur avec `sudo` sans mot de passe pour `systemctl restart`, ou cron root).
|
||
- Unités systemd installées et activées sur la machine (ou `SKIP` si absentes).
|
||
- Pour Mempool / bitcoind Docker : `docker` et `docker-compose` ou `docker compose` disponibles, et droits pour redémarrer les conteneurs.
|
||
|
||
## Modifications
|
||
|
||
**Fichiers créés :**
|
||
|
||
- `data/restart-services-cron.sh` : script de relance (local, pas d’SSH).
|
||
- `features/cron-restart-services-local.md` : cette documentation.
|
||
|
||
## Modalités de déploiement
|
||
|
||
1. Rendre le script exécutable : `chmod +x data/restart-services-cron.sh`
|
||
2. Ajouter une entrée cron quotidienne (ex. 4h00) :
|
||
```text
|
||
0 4 * * * /home/ncantu/Bureau/code/bitcoin/data/restart-services-cron.sh
|
||
```
|
||
3. Tester manuellement : `./data/restart-services-cron.sh`
|
||
|
||
## Modalités d’analyse
|
||
|
||
- Consulter `data/restart-services.log` pour les relances et les avertissements.
|
||
- Vérifier les unités : `systemctl is-enabled <unit>`, `systemctl is-active <unit>`.
|
||
- En cas de `SKIP` : l’unité n’est pas installée ou pas active sur cette machine (déploiement partiel possible).
|