diff --git a/GITHUB.md b/GITHUB.md new file mode 100644 index 0000000..cfe42b9 --- /dev/null +++ b/GITHUB.md @@ -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) : . + +--- + +## 1. Créer le dépôt privé + +1. Allez sur . +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 + (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*.