260813 - solutions de page Internet pour transfert des epub sur la liseuse Kobo Aura 2
Transfert d'epub sur la Kobo Aura Edition 2 sans câble USB
Date : 2026-08-13 — Statut : en production, validé sur l'appareil
Matériel : Kobo Aura Edition 2 (6 pouces, micro-USB)
URL de service : juxjux.ovh/56ifciz (HTTP)
1. Le problème
Le port USB de la liseuse ne permet plus aucun transfert. Le PC ne détecte rien du tout — pas même un périphérique en erreur.
Diagnostic mené sur le poste Windows julie :
| Vérification | Résultat |
|---|---|
Périphérique VID_2237 (Kobo Inc.) présent |
absent |
Périphérique inconnu ou en erreur (Status ≠ OK) |
aucun |
Historique registre Enum\USB — trace d'un VID_2237 |
aucune |
Historique USBSTOR |
un seul boîtier ASMT, jamais de Kobo |
| Disques vus | Patriot (C:), Toshiba (D:), ASMT (E:), Seagate (F:) — rien de plus |
Conclusion : Windows ne reçoit aucun handshake USB. Le problème est en amont du système — ce n'est ni un pilote, ni une lettre de lecteur, ni une base de registre à nettoyer. Aucune piste logicielle n'est exploitable.
Causes matérielles possibles, par probabilité décroissante :
- Câble charge seule — cause n°1 et de loin. Beaucoup de câbles micro-USB ne câblent que 2 fils sur 4
- Port de la liseuse encrassé — la micro-USB accumule peluches et poussière de poche
- Batterie profondément déchargée — une Kobo à plat ne s'énumère pas, même branchée. Il faut la laisser une heure sur un chargeur secteur avant de retenter
- Port physiquement HS
Le contournement décrit ci-dessous rend la liseuse pleinement utilisable, mais ne remplace pas un test câble. Voir § 7.
Commandes de diagnostic réutilisables (PowerShell) :
Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match 'USB' } |
Select-Object Status,Class,FriendlyName,InstanceId | Sort-Object Class
Get-ChildItem 'HKLM:\SYSTEM\CurrentControlSet\Enum\USB' |
Where-Object { $_.PSChildName -match 'VID_2237' }
2. Solutions écartées, et pourquoi
Ce tableau évite de refaire le tour des mêmes impasses.
| Piste | Verdict | Raison |
|---|---|---|
| GUI Syncthing | impossible | Ne permet aucun téléchargement de fichier — Syncthing synchronise, il ne sert pas de fichiers. Et c'est une application JS moderne, illisible sur ce navigateur |
FileBrowser (files.juxjux.ovh) |
impossible | SPA + login JWT — injouable sur le WebKit de la liseuse |
| OPDS (Komga, Kavita, Ubooquity) | impossible | Le navigateur stock de la Kobo ne lit pas l'OPDS. Ne deviendrait pertinent qu'avec KOReader installé |
| Kobo Sync natif de Calibre-web | bloqué | C'est la bonne solution sur le papier : synchronisation native par Wi-Fi. Mais elle impose de modifier api_endpoint dans .kobo/Kobo/Kobo eReader.conf sur la liseuse — donc exige l'USB, précisément ce qui est en panne. À reconsidérer si le port refonctionne |
| Yourls pour raccourcir l'URL | inutile | juxjux.ovh/56ifciz est déjà court à taper au doigt. Éviter la redirection supprime un point de fragilité, et Yourls est en HTTPS — même problème TLS (§ 4) |
Page HTML nue en autoindex |
retenu | Pas de JavaScript, pas de session, pas de cookie. Le navigateur Kobo télécharge le fichier et l'ajoute à la bibliothèque |
3. La solution retenue
Un location nginx en autoindex greffé sur le vhost juxjux.ovh existant, servant un dossier de l'arbre Syncthing.
Dépôt du fichier Syncthing nginx autoindex Navigateur bêta
D:\Syncthing\Kobo\ → (n'importe quelle → juxjux.ovh/56ifciz → de la liseuse
machine du maillage) (port 80) → bibliothèque
Aucun DNS ni certificat n'a été créé — la location est greffée sur un vhost déjà en place.
| Élément | Valeur |
|---|---|
| URL liseuse | juxjux.ovh/56ifciz (HTTP, pas HTTPS) |
| Dossier VPS | /home/debian/Documents/Kobo/ |
| Équivalent Windows | D:\Syncthing\Kobo\ |
| Propriétaire | debian:debian (Syncthing tourne sous cet utilisateur) |
| Vhost modifié | /etc/nginx/sites-available/juxjux.ovh |
| Sauvegarde | /etc/nginx/sites-available/juxjux.ovh.bak-260813 |
Mode d'emploi
Déposer un livre : le glisser dans D:\Syncthing\Kobo\ depuis n'importe quelle machine du maillage. Syncthing le pousse au VPS, il apparaît dans la page — aucune autre manipulation.
Le récupérer sur la liseuse : Menu → Plus → Navigateur bêta → taper juxjux.ovh/56ifciz → toucher le lien de l'epub. Téléchargement, puis ajout automatique à la bibliothèque.
4. Les quatre pièges, et leur correctif
Ce sont les points à ne pas défaire par inadvertance.
4.1 HTTP volontaire — ne pas « corriger » en HTTPS
- ses versions TLS peuvent être antérieures à ce qu'accepte nginx (
options-ssl-nginx.confimpose TLS 1.2+) - son magasin de racines peut ignorer la chaîne Let's Encrypt actuelle
Les deux se soldent par un échec sec, indiagnosticable depuis la liseuse. En HTTP, ces deux risques disparaissent.
https://juxjux.ovh/56ifciz/renvoie 404 — c'est attendu et voulu, la location n'existe que sur le port 80.
Contrepartie : le chemin et les fichiers circulent en clair. Ne rien déposer de sensible dans ce dossier.
4.2 La redirection 80 → 443 devait être restructurée
Le vhost portait la redirection sous cette forme, posée par Certbot :
if ($host = juxjux.ovh) { return 301 https://$host$request_uri; }
Écrit au niveau serveur, ce if s'évalue en phase rewrite — c'est-à-dire avant le choix de la location. Il est donc impossible d'y soustraire un chemin : /56ifciz/ partait en redirection HTTPS comme tout le reste.
Correctif : remplacer le if par un location / explicite. Une location plus spécifique (/56ifciz/) l'emporte alors naturellement.
location / {
return 301 https://$host$request_uri;
}
4.3 nginx ne connaît pas le type MIME epub
/etc/nginx/mime.types ne contient ni epub, ni mobi, ni azw. Sans déclaration, le fichier est servi en text/plain et la liseuse l'affiche au lieu de le télécharger.
Piège dans le piège : un bloc types { } placé dans une location remplace intégralement la table MIME pour cette location — il ne s'y ajoute pas. Tout type utile doit donc y figurer, d'où le default_type application/octet-stream en filet de sécurité.
4.4 Permissions — Syncthing dépose parfois en 640
www-data doit pouvoir lire les fichiers déposés. Or Syncthing crée parfois des fichiers en 640, ce qui produirait un 403 silencieux.
Correctif — une ACL par défaut sur le dossier, qui force la lisibilité des fichiers à venir :
setfacl -m o::rx /home/debian/Documents/Kobo
setfacl -d -m o::r /home/debian/Documents/Kobo
setfacl -d -m u::rw /home/debian/Documents/Kobo
setfacl -d -m g::r /home/debian/Documents/Kobo
Attention : si le dossier est créé avec
sudo, il appartient àrootet Syncthing ne peut plus y écrire. Vérifierchown -R debian:debianaprès création.
5. Configuration nginx appliquée
Bloc port 80 du fichier /etc/nginx/sites-available/juxjux.ovh :
server {
listen 80;
server_name juxjux.ovh www.juxjux.ovh;
# --- Acces liseuse Kobo Aura Edition 2 (ajout 2026-08-13)
# HTTP volontaire : le navigateur de la liseuse est trop ancien pour la
# config TLS actuelle (TLS 1.2+ / racine Let's Encrypt). Ne rien mettre
# de sensible dans /home/debian/Documents/Kobo.
location /56ifciz/ {
alias /home/debian/Documents/Kobo/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8;
add_header X-Robots-Tag "noindex, nofollow" always;
types {
application/epub+zip epub;
application/pdf pdf;
application/x-mobipocket-ebook mobi;
application/vnd.amazon.ebook azw3;
application/vnd.comicbook+zip cbz;
text/plain txt;
}
default_type application/octet-stream;
}
location / {
return 301 https://$host$request_uri;
}
}
Le bloc port 443 est inchangé (racine /var/www/juxjux.ovh/html, certificat Certbot).
6. Vérifications de bon fonctionnement
Depuis le VPS et depuis l'extérieur :
# Page d'index
curl -s -o /dev/null -w 'HTTP %{http_code} type=%{content_type}\n' http://juxjux.ovh/56ifciz/
# Type MIME du fichier — doit repondre application/epub+zip
curl -s -o /dev/null -D - "http://juxjux.ovh/56ifciz/<fichier>.epub" | grep -iE 'HTTP/|content-type'
# La racine doit toujours rediriger en HTTPS
curl -s -o /dev/null -w 'HTTP %{http_code} -> %{redirect_url}\n' http://juxjux.ovh/
Résultats attendus, relevés le 2026-08-13 :
| Test | Attendu | Obtenu |
|---|---|---|
| Index HTTP | 200 / text/html; charset=utf-8 |
conforme |
| Epub | 200 / application/epub+zip |
conforme |
| Index HTTPS | 404 (location absente du bloc 443) |
conforme |
Racine / en HTTP |
301 vers https://juxjux.ovh/ |
conforme |
Lecture par www-data |
autorisée | conforme |
7. Limites et suites
Sécurité
La seule protection est l'obscurité du chemin. Il n'y a aucune authentification — le navigateur Kobo gère mal les invites Basic Auth, ce qui l'excluait. Un X-Robots-Tag: noindex, nofollow évite l'indexation par les moteurs.
Conséquence pratique : ce dossier est à considérer comme public. Y déposer uniquement des livres, jamais un document personnel.
Nommage des fichiers
Éviter accents et espaces. L'autoindex les encode correctement (%20), mais le navigateur de la liseuse est capricieux sur les URL encodées.
À faire — tester le câble USB
Le contournement fonctionne, mais la panne USB reste non élucidée. Dans l'ordre :
- Tester un autre câble dont on sait qu'il transporte des données (celui d'un disque externe ou d'un téléphone déjà utilisé en transfert)
- Inspecter et nettoyer le port de la liseuse à la lampe, appareil éteint, avec un cure-dent en bois — jamais en force
- Laisser une heure sur chargeur secteur (pas le PC) avant de retenter
- Reset matériel : bouton d'alimentation maintenu 30 secondes
- Croiser les variables : ce câble sur un autre appareil, cette liseuse sur un autre PC
Si l'USB revient, basculer sur le Kobo Sync de Calibre-web — synchronisation native, bidirectionnelle, avec suivi de la position de lecture. Nettement supérieur à cette page. Il ne faut l'USB qu'une seule fois, pour écrire api_endpoint dans .kobo/Kobo/Kobo eReader.conf.
Voir aussi
CLAUDE.md— section « Liseuse Kobo Aura Edition 2 — dépôt epub par le navigateur »- Page 249 — stabilité du PC Windows (même chapitre, dépannages)