docs: RELEASE_SIGNING à jour — keystore versionné dans le dépôt privé comme sauvegarde

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kazeia Team 2026-06-11 08:38:16 +02:00
parent d936b0d55d
commit d834ea4955
2 changed files with 17 additions and 13 deletions

1
.gitignore vendored
View File

@ -13,6 +13,7 @@
!/.gitignore !/.gitignore
!/kazeia-android/ !/kazeia-android/
!/docs/ !/docs/
!/keystore/
!/scripts/ !/scripts/
!/executorch-custom/ !/executorch-custom/
!/executorch-patches/ !/executorch-patches/

View File

@ -20,9 +20,12 @@ Empreinte du certificat (référence pour vérifier qu'on signe avec la bonne cl
SHA256: 4B:40:8D:9D:40:09:FD:68:F7:FD:5B:E0:BD:64:2B:D3:EE:B8:F8:BD:7A:84:D3:9C:84:90:B8:63:21:AF:E4:90 SHA256: 4B:40:8D:9D:40:09:FD:68:F7:FD:5B:E0:BD:64:2B:D3:EE:B8:F8:BD:7A:84:D3:9C:84:90:B8:63:21:AF:E4:90
``` ```
Le dossier `keystore/` est **hors git** (le `.gitignore` racine est en liste blanche : tout **Le dossier `keystore/` est VERSIONNÉ dans le dépôt git** (décision 2026-06-11 : le dépôt
ce qui n'est pas explicitement inclus est ignoré). C'est voulu : un keystore + ses mots de `git.kazeia.com` est privé, auto-hébergé, équipe restreinte → le git sert de sauvegarde de
passe ne vont jamais dans un dépôt. la clé). Conséquences à garder en tête :
- **accès au dépôt = capacité de signer des mises à jour Kazeia** ;
- la clé reste dans l'historique git pour toujours ;
- **si le dépôt doit un jour être ouvert/partagé plus largement → rotation de clé AVANT** (§7).
## 2. Comment c'est câblé ## 2. Comment c'est câblé
@ -68,17 +71,17 @@ vérifient le SHA-256, et proposent l'installation (dialogue système).
La clé EST l'identité de l'app. Android n'accepte une mise à jour que si elle est signée La clé EST l'identité de l'app. Android n'accepte une mise à jour que si elle est signée
par la **même clé** que la version installée. par la **même clé** que la version installée.
**À faire immédiatement et à chaque rotation de machine :** **Sauvegarde principale : le dépôt git privé** (`keystore/` est versionné, cf §1). Une panne
```bash de la machine de build ne coûte donc plus la clé — tant que `git.kazeia.com` est vivant.
# Copier le dossier ENTIER (jks + credentials) vers AU MOINS DEUX emplacements hors machine :
tar czf kazeia-keystore-$(date +%Y%m%d).tar.gz -C /opt/Kazeia keystore/
# → Nextcloud (dossier PRIVÉ, pas le partage soft/), clé USB au coffre, gestionnaire de mots de passe…
```
Recommandé : déposer l'archive sur `box.kazeia.com` dans un dossier **privé** + une copie
hors-ligne (USB). Vérifier la restauration une fois (`tar xzf` + `keytool -list`).
**Sur une nouvelle machine de build** : restaurer `keystore/` dans `/opt/Kazeia/`, **Recommandé en plus** (le git et la machine de build peuvent partager un même sinistre —
vérifier `chmod 600`, builder — rien d'autre à configurer. serveur et poste au même endroit) : une copie hors-ligne occasionnelle :
```bash
tar czf kazeia-keystore-$(date +%Y%m%d).tar.gz -C /opt/Kazeia keystore/ # → USB / coffre
```
**Sur une nouvelle machine de build** : `git clone` suffit — `keystore/` arrive avec le dépôt.
Vérifier `chmod 600 keystore/credentials.properties`, builder, rien d'autre à configurer.
## 5. Scénarios de panne ## 5. Scénarios de panne