docs(sync): guide pas a pas de la synchro par un depot GitHub prive

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-10-02 23:38:08 +01:00
parent c78b80a073
commit 4d9cb909c4
+109
View File
@@ -0,0 +1,109 @@
# Synchroniser le PC et le téléphone par un dépôt GitHub privé
Le PC publie une copie **chiffrée** de votre coffre dans un dépôt GitHub
**privé** ; le téléphone la reprend. Contrairement au WebDAV local
(`WEBDAV-LOCAL.md`), la synchro marche **de partout**, en 4G comme sur
n'importe quel Wi-Fi, PC éteint.
> **Ce qui est sur GitHub** : un fichier `data.json` illisible sans le *mot de
> passe de synchro*, qui ne quitte jamais vos appareils.
> **Ce mot de passe est la seule protection de cette copie** : choisissez-le
> fort (5 mots au hasard, ou 16 caractères tirés au hasard).
Il faut un compte GitHub (gratuit) : <https://github.com/signup>.
---
## 1. Créer le dépôt privé
1. Allez sur <https://github.com/new>.
2. **Repository name** : un nom neutre, par exemple `notes` (évitez `vault`,
`passwords`…).
3. Cochez **Private**. **Important** : l'application **refuse** un dépôt
public — chaque synchro y reste dans l'historique, lisible par tous.
4. **Create repository**. Pas besoin de README.
Notez son adresse, par exemple `https://github.com/moi/notes`.
## 2. Créer le jeton d'accès
Le jeton permet à l'application d'écrire **dans ce dépôt-là seulement**.
1. Allez sur <https://github.com/settings/personal-access-tokens/new>
(ou : photo de profil → **Settings** → **Developer settings** →
**Personal access tokens** → **Fine-grained tokens** →
**Generate new token**).
2. **Token name** : `Password Manager`.
3. **Expiration** : la durée de votre choix. À l'expiration, la synchro
s'arrête (erreur 401) et il faudra en créer un nouveau (voir plus bas).
4. **Repository access** : **Only select repositories** → choisissez
**votre dépôt** (`notes`). N'accordez pas l'accès à tous vos dépôts.
5. **Permissions** → **Repository permissions** → **Contents** :
**Read and write**. (GitHub ajoute *Metadata : Read-only* tout seul.)
Rien d'autre.
6. **Generate token**, puis **copiez-le tout de suite** (`github_pat_…`) :
GitHub ne le montre qu'une fois.
## 3. Configurer le PC
Password Manager → **Settings → Sync** :
| Champ | Valeur |
|---|---|
| Enable sync | coché |
| URL | l'adresse du dépôt : `https://github.com/moi/notes` |
| Username | laisser vide (ignoré pour GitHub) |
| Password / token | le jeton `github_pat_…` |
1. **Test connection** → *Connection OK · snapshot not created yet*.
2. **Set sync password** → choisissez le **mot de passe de synchro** (le même
sur tous vos appareils ; différent du mot de passe maître).
3. **Sync now** → un fichier `data.json` apparaît dans le dépôt, avec un
commit *update from desktop*.
## 4. Configurer le téléphone
1. Installez `pmserverApk.apk` (autorisez l'installation depuis cette source
quand Android le demande).
2. Sur le PC : **Settings → Sync → QR for phone** (le QR reste 60 secondes).
3. Sur le téléphone : **Settings → Scan the QR shown on the PC**. L'adresse
et le jeton se remplissent.
4. Tapez le **mot de passe de synchro** (il n'est **jamais** dans le QR),
puis **Save**. Le coffre se télécharge.
Sans QR, à la main : URL `https://github.com/moi/notes`, Token `github_pat_…`.
## 5. Au quotidien
- **PC** : **Sync now** après vos modifications.
- **Téléphone** : à l'ouverture, il vérifie en arrière-plan. Si le PC a
publié du nouveau, le bouton Sync s'allume ; touchez-le pour récupérer.
Une modification faite sur le téléphone est publiée aussitôt.
- Chaque synchro est un **commit** : c'est normal de voir l'historique du
dépôt grandir.
## Quand le jeton expire
La synchro échoue en **401**. Créez un nouveau jeton (étape 2), collez-le sur
le PC (**Password / token**), puis refaites **QR for phone** et le scan sur le
téléphone. Le mot de passe de synchro, lui, ne change pas.
---
## En cas de problème
| Message | Cause probable |
|---|---|
| *This repository is PUBLIC - make it private…* | Le dépôt est public. Sur GitHub : dépôt → **Settings** → **Danger Zone** → **Change visibility** → **Private**. |
| *Auth failed (401)* | Jeton faux, mal copié ou expiré. |
| *Auth failed (403)* | Le jeton n'a pas **Contents : Read and write**, ou n'a pas accès à ce dépôt. |
| *404* / *Nothing to download* | Le PC n'a pas encore fait **Sync now** — ou bien le jeton ne voit pas ce dépôt (GitHub répond 404 plutôt que de révéler un dépôt privé). Vérifiez l'étape 2, point 4. |
| *Network failure*, *HTTP 0* | Pas de réseau. L'application réessaie trois fois ; relancez la synchro. |
| Le coffre ne s'ouvre pas sur le téléphone | Le mot de passe de synchro n'est pas le même que sur le PC. |
**Limite** : GitHub ne rend plus un fichier de plus de **1 Mo** par cette
voie. Un coffre chiffré fait environ 250 Ko ; seules de très nombreuses
icônes personnalisées pourraient s'en approcher.
**GitLab n'est pas pris en charge.** Gitea (auto-hébergé) fonctionne de la même
façon : adresse du dépôt, jeton avec le droit *write:repository*.