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

59 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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) :
```text
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).