Quand un service disparaît et emporte vos données avec lui
Le 8 juillet 2025, Pocket a basculé en lecture seule. Mozilla avait annoncé la fermeture un mois plus tôt, en invoquant un changement de priorités stratégiques. Les utilisateurs ont eu environ 90 jours pour exporter leur bibliothèque via getpocket.com/export, avant que la date butoir du 12 novembre 2025 ne tombe : ce jour-là, Mozilla a désactivé l'export et supprimé définitivement les données de chaque compte. Ceux qui n'avaient pas exporté à temps ont tout perdu. Mozilla n'a conservé aucune copie, et l'API Pocket est aujourd'hui hors ligne. Omnivore, outil de lecture annoté racheté par ElevenLabs, avait fermé quelques mois plus tôt dans des conditions similaires. Ces deux fermetures successives ont mis en lumière un risque souvent sous-estimé : dix ans de veille, de highlights et de tags organisés peuvent disparaître en quelques semaines, sans procédure de recours. La question n'est plus de savoir si un tel événement peut se produire, mais à quelle fréquence.
Ce que vous gagnez à héberger votre liste de lecture
Héberger sa propre liste de lecture sur un VPS change fondamentalement la relation entre vous et vos données. Voici les avantages concrets par rapport à un service cloud comme Pocket ou Omnivore.
- Pérennité des données — vos articles archivés restent accessibles tant que votre serveur tourne, indépendamment des décisions commerciales ou financières d'un éditeur tiers ; une fermeture de startup ne vous concerne plus
- Confidentialité des lectures — aucun profil publicitaire ne se construit sur vos habitudes de lecture ; les URLs sauvegardées, les tags et les annotations ne quittent pas votre infrastructure
- Contrôle complet des sauvegardes — vous définissez la fréquence, la destination (S3, Backblaze, NAS local) et la durée de rétention de vos snapshots, sans dépendre d'un plan payant ou d'un quota d'espace
- Intégration libre avec votre stack — l'API REST de Karakeep ou de Wallabag se branche à n'importe quel outil (n8n, Zapier, scripts maison, extensions de navigateur) sans surcoût ni restriction de volumétrie
- Stockage sans quota artificiel — la limite est celle de votre disque ; vous ne payez pas de supplément pour archiver 50 000 articles plutôt que 1 000
- Mises à jour sous votre contrôle — vous choisissez quand appliquer une version majeure, pouvez tester en staging et revenir en arrière si une mise à jour introduit une régression
- Portabilité permanente — vos données sont dans une base SQLite ou PostgreSQL que vous exportez, migrez ou transformez à tout moment, sans dépendre d'un format propriétaire
Prérequis : quel VPS pour héberger une liste de lecture
Un outil de liste de lecture self-hosted n'est pas une application gourmande. Karakeep a besoin d'un peu plus de RAM que Wallabag, car il fait tourner Meilisearch pour la recherche sémantique et un moteur de rendu headless (Puppeteer) pour l'archivage du contenu complet. La configuration minimale recommandée est un VPS avec 2 Go de RAM, 1 vCPU et 20 Go de stockage SSD. Pour un usage en équipe de moins de dix personnes, cette configuration tient sans ajustement. Wallabag est encore plus léger : 512 Mo de RAM suffisent pour un usage individuel. Dans les deux cas, les ports 80 et 443 doivent être ouverts dans le pare-feu, Docker et Docker Compose v2 doivent être installés, et un nom de domaine pointant sur l'IP du serveur est nécessaire pour activer HTTPS via Let's Encrypt ou Caddy. Le certificat est obtenu automatiquement par votre reverse proxy : vous n'avez pas besoin de gérer le renouvellement à la main.
Déployer Karakeep sur VPS et importer vos données Pocket
Les étapes ci-dessous supposent un VPS avec 2 Go de RAM minimum, Docker et Docker Compose v2 installés, et un nom de domaine pointant sur l'IP du serveur. L'ensemble de l'opération prend moins de 30 minutes sur une instance fraîche.
Retrouver votre export Pocket
Si vous avez exporté avant le 12 novembre 2025, vous disposez d'un fichier ril_export.html. C'est un document HTML contenant la liste de toutes vos URLs avec leurs titres, tags et statut (lu / non lu). Ce fichier est votre seule source de données : conservez-en une copie sur un stockage externe avant de commencer.
Créer le répertoire de travail sur le VPS
Connectez-vous en SSH et exécutez : mkdir -p /opt/karakeep && cd /opt/karakeep. Ce répertoire contiendra le fichier Compose et le fichier d'environnement.
Télécharger le fichier Compose officiel
Récupérez la définition des services depuis le dépôt officiel : wget https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml. Ce fichier orchestre trois services : l'application principale, Meilisearch (moteur de recherche) et le service de crawl.
Configurer les variables d'environnement
Créez le fichier .env avec les valeurs minimales requises. Définissez KARAKEEP_VERSION=release pour toujours utiliser la dernière version stable. Définissez NEXTAUTH_SECRET sur une chaîne aléatoire longue (au moins 32 caractères), MEILISEARCH_MASTER_KEY sur une autre chaîne aléatoire, et NEXTAUTH_URL sur l'URL publique de votre instance, par exemple https://lectures.votre-domaine.com. Sans NEXTAUTH_URL correct, les redirections d'authentification échouent.
Démarrer les conteneurs
Exécutez docker compose up -d. Le premier démarrage télécharge les images (environ 500 Mo) et initialise la base de données. Vérifiez que les trois services sont en état running avec docker compose ps. L'interface est accessible sur le port 3000 ; configurez votre reverse proxy (Caddy ou nginx) pour exposer le domaine en HTTPS avant d'ouvrir le port au public.
Créer le compte administrateur
À la première connexion, Karakeep vous invite à créer un compte. Choisissez un mot de passe fort ; il n'y a pas de réinitialisation par e-mail par défaut si vous n'avez pas configuré de service SMTP.
Importer le fichier Pocket
Dans l'interface, ouvrez Paramètres → Import puis sélectionnez Pocket. Chargez votre fichier ril_export.html. Karakeep lit nativement ce format et importe les titres, URLs, tags et statuts en quelques secondes pour une bibliothèque de taille moyenne. Le crawl du contenu complet se fait en arrière-plan : un indicateur de progression s'affiche dans la vue de chaque article.
Vérifier l'import et configurer les sauvegardes
Parcourez la vue Toutes les lectures pour confirmer que vos articles sont présents. Planifiez ensuite une sauvegarde du volume Docker dans cron : docker run --rm -v karakeep_data:/data -v /opt/backups:/backup alpine tar czf /backup/karakeep-$(date +%Y%m%d).tar.gz /data. Conservez au minimum 7 jours de rétention sur un stockage distant.
Déployer Wallabag comme alternative
Si vous préférez un outil plus mature et plus léger, Wallabag existe depuis 2013 et dispose d'une base d'utilisateurs éprouvée. Il est particulièrement adapté si vous avez besoin d'applications mobiles stables, d'une intégration avec des liseuses (Kobo, Kindle) ou d'une interface plus sobre. Le déploiement Docker suit le même modèle.
Créer le répertoire et le fichier Compose
Exécutez mkdir -p /opt/wallabag && cd /opt/wallabag. Créez un fichier docker-compose.yml en vous basant sur le modèle officiel disponible sur hub.docker.com/_/wallabag. La configuration minimale expose le port 80 et monte un volume pour la base SQLite.
Démarrer le service
Lancez docker compose up -d. La première initialisation prend quelques minutes car Wallabag crée les tables de la base et installe les assets. Vérifiez les logs avec docker compose logs -f wallabag pour confirmer que le démarrage est complet.
Sécuriser le compte par défaut
Connectez-vous avec wallabag / wallabag puis accédez immédiatement à Gestion des utilisateurs pour changer le mot de passe. Ce compte par défaut est connu publiquement : ne l'exposez pas sans l'avoir modifié.
Activer Redis pour les imports volumineux
Sans Redis, les imports de plusieurs centaines d'articles dépassent le délai PHP par défaut. Dans l'interface admin (Paramètres internes → Import), activez Utiliser Redis. Ajoutez un service Redis dans votre docker-compose.yml si ce n'est pas déjà fait.
Importer depuis Pocket
Allez dans Importer → Pocket. Wallabag accepte le format CSV Pocket (colonnes url, title, tags, time_added, status) ou un fichier HTML converti. Si vous n'avez que le fichier HTML de Pocket, un script Python de quelques lignes suffit à extraire les URLs et les écrire au format CSV. Wallabag prend également en charge l'import direct depuis Instapaper et Pinboard.
Configurer HTTPS et les apps mobiles
Mettez Wallabag derrière un reverse proxy avec HTTPS. Les applications mobiles officielles (Android) utilisent l'URL de votre instance et les identifiants de votre compte : elles fonctionnent dès que le HTTPS est actif. L'application iOS n'est pas officielle ; des clients tiers comme Silica ou Lire supportent l'API Wallabag.
Karakeep ou Wallabag : tableau comparatif
Le choix entre Karakeep et Wallabag dépend avant tout de vos priorités : archivage enrichi versus légèreté. Le tableau ci-dessous résume les différences les plus importantes pour un usage quotidien.
| Critère | Karakeep | Wallabag |
|---|---|---|
| Import Pocket natif | HTML (`ril_export.html`) | CSV Pocket ou HTML converti |
| Archivage du contenu | Complet (Puppeteer, OCR, PDF) | Extraction texte uniquement |
| Recherche | Sémantique via Meilisearch | Texte intégral (SQL) |
| Interface mobile | Applications iOS et Android officielles | Android officiel, iOS via clients tiers |
| Tagging automatique | Oui, via LLM optionnel | Manuel uniquement |
| RAM recommandée | 2 Go minimum (Meilisearch inclus) | 512 Mo suffisent |
| Maturité du projet | Récent, communauté active | Stable depuis 2013, large adoption |
Quelle que soit la solution retenue, planifiez une sauvegarde quotidienne du volume Docker vers un stockage distant (S3, Backblaze B2 ou un second VPS). Une liste de lecture sans sauvegarde reste vulnérable à une panne disque — précisément le risque que vous cherchez à éliminer en quittant un service cloud. Testez la restauration au moins une fois avant de considérer votre setup comme fiable.
Problèmes courants et solutions
Les erreurs les plus fréquentes rencontrées lors du déploiement ou de l'utilisation de Karakeep et Wallabag suivent des schémas prévisibles. Voici les causes et les corrections pour les cas les plus courants.
- Port 3000 inaccessible depuis l'extérieur — vérifiez que le conteneur tourne avec
docker compose pset que le pare-feu autorise le trafic entrant ; configurez ensuite un reverse proxy (Caddy ou nginx) plutôt que d'exposer le port 3000 directement sur l'IP publique - Import bloqué à 0 % ou qui n'avance pas — avec Wallabag, vérifiez que Redis est activé dans les paramètres internes de l'admin ; avec Karakeep, assurez-vous que le service
crawlerest bien en étatrunningdansdocker compose ps - Boucle de redirection vers localhost — si Karakeep redirige en boucle,
NEXTAUTH_URLdans.envne correspond pas à l'URL publique réelle ; corrigez-le, recréez le conteneur avecdocker compose up -d --force-recreateet videz le cache du navigateur - Contenu non archivé après l'import — Karakeep utilise Puppeteer pour rendre les pages ; certains sites détectent les navigateurs headless et bloquent la requête. Le titre et l'URL sont toujours conservés ; le texte complet peut être absent pour les sites protégés ou derrière un paywall
- Erreur 502 juste après un redémarrage — Meilisearch peut mettre 10 à 30 secondes à démarrer et indexer ; attendez puis rechargez. Si l'erreur persiste, consultez
docker compose logs meilisearchpour identifier un éventuel problème de permissions sur le volume de données
Reprendre le contrôle durable de sa veille
La fermeture de Pocket en juillet 2025 n'est pas un incident isolé. C'est un signal clair sur la durée de vie des services gratuits financés par des données ou par des investisseurs dont les priorités changent. Karakeep et Wallabag proposent une alternative concrète : deux heures de configuration suffisent pour passer de zéro à une liste de lecture opérationnelle sur votre propre VPS, avec archivage du contenu, recherche plein texte et sauvegardes automatisées. Les commandes Docker présentées dans ce guide sont stables depuis plusieurs versions et ne supposent aucune expertise particulière en administration système. Ce que vous déployez aujourd'hui peut rester en production cinq ans sans intervention, tant que vous maintenez les images à jour et que vos sauvegardes sont testées. La différence avec Pocket, c'est que la décision de fermer appartient désormais à vous seul.