anchorage_layer_simple/features/cron-restart-services-local.md
ncantu 6bf37be44e Cron restart services (bitcoind, mempool), service-login-verify, website-skeleton, docs
**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/
2026-01-28 00:48:37 +01:00

3.1 KiB
Raw Blame History

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 dSSH

Tous les scripts du projet sont locaux et ne doivent pas appeler de commandes SSH. La relance seffectue via systemctl (unités systemd) et, le cas échéant, docker / docker-compose (Mempool, bitcoind conteneur) sur la machine où le cron sexé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 dSSH).
  • 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) :
    0 4 * * * /home/ncantu/Bureau/code/bitcoin/data/restart-services-cron.sh
    
  3. Tester manuellement : ./data/restart-services-cron.sh

Modalités danalyse

  • 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 : lunité nest pas installée ou pas active sur cette machine (déploiement partiel possible).