**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/
3.1 KiB
3.1 KiB
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), conteneurbitcoin-signet-instance. Utilisedocker composeoudocker-composeselon disponibilité. - Log :
data/restart-services.log(timestamps, rotation sur 100 dernières lignes).
Comportement
- Vérification
is-enabled: pour chaque service, si non activé au démarrage → logWARN. - 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). - Vérification
is-activeaprès redémarrage : pour chaque unité redémarrée, si inactive → logWARN. - Docker Mempool : si
mempool/docker-compose.signet.ymlexiste etdockerest disponible, redémarrage de la stack viadocker composeoudocker-compose. SinonSKIP. - Docker bitcoind : si le conteneur
bitcoin-signet-instanceexiste,docker restart. SinonSKIP(bitcoind peut être systemd).
Prérequis
- Exécution en cron (utilisateur avec
sudosans mot de passe poursystemctl restart, ou cron root). - Unités systemd installées et activées sur la machine (ou
SKIPsi absentes). - Pour Mempool / bitcoind Docker :
dockeretdocker-composeoudocker composedisponibles, 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
- Rendre le script exécutable :
chmod +x data/restart-services-cron.sh - Ajouter une entrée cron quotidienne (ex. 4h00) :
0 4 * * * /home/ncantu/Bureau/code/bitcoin/data/restart-services-cron.sh - Tester manuellement :
./data/restart-services-cron.sh
Modalités d’analyse
- Consulter
data/restart-services.logpour 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).