- Contexte et objectif
- Qu’est-ce que Karakeep ?
- Mon installation dans le homelab
- Configurer un conteneur LXC dans Proxmox
- 1) Télécharger le modèle et créer le conteneur
- 2) Activer les fonctions LXC pour Docker
- 3) Conteneur non privilégié ou privilégié
- Installation : Karakeep avec Docker dans un conteneur LXC Proxmox
- 1) Préparer le conteneur LXC
- 2) Créer le dossier du projet et les fichiers
- 3) Adapter le fichier .env
- 4) Adapter docker-compose.yml
- 5) Démarrer et mettre à jour Karakeep
- Configuration expliquée rapidement
- Enregistrer des vidéos avec Karakeep
- Extensions de navigateur et applications
- Fonctions d’importation
- Karakeep et Linkwarden : comparaison
- Alternatives
- Sauvegarde, restauration et migration
- Sécurité et exploitation
- Conseils pour les performances
- Dépannage dans un environnement LXC
- FAQ
- Glossaire
Contexte et objectif
Karakeep, anciennement Hoarder, est un gestionnaire de favoris auto-hébergé pour les liens, images, PDF, vidéos et notes. Il récupère automatiquement les métadonnées et peut créer des captures d’écran ou des copies complètes des pages, puis rechercher dans leur contenu. Je présente ses fonctions, son installation avec Docker dans un conteneur LXC Proxmox, ses différences avec Linkwarden et les autres solutions disponibles. Vous trouverez aussi des conseils sur les performances, les sauvegardes, la sécurité et l’enregistrement de vidéos YouTube avec Karakeep.
Qu’est-ce que Karakeep ?
En bref, Karakeep est votre archive personnelle de connaissances. Vous y rassemblez pages Web, notes, images et PDF, les classez en listes et sous-listes et ajoutez des étiquettes. La recherche utilise Meilisearch. L’IA peut attribuer automatiquement des étiquettes, via OpenAI ou localement avec Ollama. Le service propose aussi l’OCR pour le texte des images, l’archivage de pages entières, les captures d’écran et le téléchargement de vidéos avec yt-dlp.
Exemples d’utilisation :
- Recherche d’articles de blog, de conférences ou de projets clients
- Moodboards pour idées de design, campagnes et web design
- Recueillir les instructions, les extraits de code et la documentation
- Magazine numérique avec fonction de lecture différée
Mon installation dans le homelab
J’utilise Karakeep sur le système suivant :
Hôte Proxmox
- Proxmox 8.4.1 sur HP ProDesk 400 G7 SFF
- CPU Intel i5-10500, 48 GB RAM, 2T NVME SSD
Conteneur LXC
- Ubuntu 22.04
- Démarrage automatique : oui
- Nesting : oui
- Keyctl : oui
- Au départ, 2 cœurs et 2 GB de RAM ; ensuite, 6 cœurs et 6 GB de RAM
- Swap : 4 GB au départ, puis 8 GB
- Disque : 96 GB
Conseil pratique : 2 cœurs et 2 GB de RAM suffisent pour commencer. Pour des fichiers volumineux, de nombreux transferts, plusieurs tâches d’exploration simultanées ou l’OCR, davantage de cœurs et de RAM améliorent sensiblement les performances.
Configurer un conteneur LXC dans Proxmox
1) Télécharger le modèle et créer le conteneur
- Dans l’arborescence de gauche de Proxmox, ouvrez le stockage des modèles et téléchargez le modèle standard Ubuntu 22.04 sous « Modèles ».
- Nouveau → Conteneur LXC :
- Choisissez le nœud, l’identifiant du conteneur et un nom d’hôte, par exemple
karakeep. - Définir le mot de passe
- Modèle: Ubuntu 22.04.
- Disque racine : 60 à 120 GB sur SSD ou NVMe.
- CPU: Commencez par 2 cœurs, augmentez plus tard si nécessaire.
- RAM : commencez avec 2 GB et 4 GB de swap.
- Réseau: Pont
vmbr0, IPv4 DHCP ou IP fixe. - DNS: soit automatiquement, soit par exemple 1.1.1.1 et 9.9.9.9.
- Choisissez le nœud, l’identifiant du conteneur et un nom d’hôte, par exemple
- Cochez « Démarrer au démarrage ».
2) Activer les fonctions LXC pour Docker
Après sa création, sélectionnez le conteneur → Options :
- Fonctions → activer Keyctl
- Fonctions → activer Nesting
Docker et le service Chrome sans interface graphique utilisé pour les captures d’écran fonctionneront ainsi de manière plus fiable.
3) Conteneur non privilégié ou privilégié
- Recommandation : conteneur LXC non privilégié avec les fonctions
nestingetkeyctl. Cette configuration est plus sûre. - Si Docker pose des problèmes dans LXC (par exemple avec Chrome ou les cgroups), deux possibilités s’offrent à vous :
- rendre le conteneur privilégié et ajouter dans
/<CTID>.conf: - Ou utiliser une petite VM sous Ubuntu plutôt qu’un conteneur LXC. Cela évite certains cas particuliers, au prix d’une légère hausse de la consommation de ressources.
- rendre le conteneur privilégié et ajouter dans
#nano /etc/pve/lxc/<ctid>.conf
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.mount.auto: "proc:rw sys:rw cgroup:rw"
N’utilisez un conteneur privilégié qu’en cas de besoin et notez ce choix dans votre documentation.
Installation : Karakeep avec Docker dans un conteneur LXC Proxmox
1) Préparer le conteneur LXC
Dans Proxmox, choisissez Ubuntu 22.04 pour le conteneur LXC et activez Nesting et Keyctl. Ensuite, dans le conteneur :
sudo apt update
sudo apt upgrade -y
sudo apt install -y zip bzip2 gzip unzip htop git wget curl nano
Installer Docker :
sudo apt update
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# falls du einen anderen Benutzer als root verwendest
# sudo groupadd docker
# sudo usermod -aG docker $USER
2) Créer le dossier du projet et les fichiers
mkdir karakeep && cd karakeep
wget https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml
wget -O .env https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/.env.sample
3) Adapter le fichier .env
Vous pouvez aussi générer en ligne les clés secrètes de votre fichier de configuration : randomkeygen.com
Définir au minimum :
KARAKEEP_VERSION=release
DATA_DIR=/data
MEILI_ADDR=http://127.0.0.1:7700
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=<openssl rand -base64 36>
MEILI_MASTER_KEY=<openssl rand -base64 36 | tr -dc 'A-Za-z0-9'>
Mes réglages supplémentaires pour les médias, l’OCR et les vidéos :
MAX_ASSET_SIZE_MB=200
CRAWLER_ENABLE_ADBLOCKER=true
# wird fuer den YouTube Video Download benoetigt
CRAWLER_VIDEO_DOWNLOAD=true
CRAWLER_VIDEO_DOWNLOAD_MAX_SIZE=5000000
CRAWLER_VIDEO_DOWNLOAD_TIMEOUT_SEC=7200
DISABLE_SIGNUPS=true #deaktiviert die Registrierung in Karakeep
CRAWLER_DOWNLOAD_BANNER_IMAGE=true
CRAWLER_STORE_SCREENSHOT=true
CRAWLER_FULL_PAGE_SCREENSHOT=true
CRAWLER_FULL_PAGE_ARCHIVE=true
OCR_LANGS=deu,eng #Deutsch und Englisch
4) Adapter docker-compose.yml
Je stocke les données dans un sous-dossier ./data à côté du fichier Compose. Les sauvegardes sont ainsi plus simples et les fichiers restent directement accessibles en cas de problème.
services:
web:
image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
restart: unless-stopped
volumes:
- ./data:/data # Bind Mount angepasst
5) Démarrer et mettre à jour Karakeep
docker compose up -d
Interface Web : http://<deine-ip>:3000.
Stratégie de mise à jour : augmenter la version dans .env ou conserver le canal de publication et redémarrer après un « pull ». Avant la mise à jour, sauvegardez le ./data dossier ainsi que le volume Meilisearch.
Configuration expliquée rapidement
| Paramètre | Effet | Ressources nécessaires |
|---|---|---|
CRAWLER_STORE_SCREENSHOT | Crée une capture d’écran par page | Moyen |
CRAWLER_FULL_PAGE_SCREENSHOT | Longue capture de la page entière ; les bannières de cookies peuvent apparaître | Élevé |
CRAWLER_FULL_PAGE_ARCHIVE | Copie locale de la page | Élevé |
CRAWLER_VIDEO_DOWNLOAD | Télécharge les vidéos avec yt-dlp | Élevé, selon la taille |
OCR_LANGS | OCR pour les images et les PDF | Sollicite fortement le processeur |
MAX_ASSET_SIZE_MB | Taille maximale des fichiers transférés | Selon la valeur |
DISABLE_SIGNUPS | Désactive les inscriptions | Sans effet |
Enregistrer des vidéos avec Karakeep
Cette fonction repose sur yt-dlp. Activez-la avec CRAWLER_VIDEO_DOWNLOAD=true et définissez des limites adaptées avec CRAWLER_VIDEO_DOWNLOAD_MAX_SIZE et CRAWLER_VIDEO_DOWNLOAD_TIMEOUT_SEC. Respectez les conditions d’utilisation des plateformes concernées. Les longues vidéos nécessitent suffisamment d’espace de stockage et un délai d’attente généreux.
Extensions de navigateur et applications
- Extension Google Chrome : https://chromewebstore.google.com/detail/karakeep/kgcjekpmcjjogibpjebkhaanilehneje
- Add-on Mozilla Firefox: https://addons.mozilla.org/en-US/firefox/addon/karakeep/
- Application Android : https://play.google.com/store/apps/details?id=app.hoarder.hoardermobile
- Appli iOS : https://apps.apple.com/us/app/karakeep-app/id6479258022
Les extensions enregistrent la page actuelle en un clic, avec ses étiquettes et sa liste de destination.
Fonctions d’importation
- Chrome et Firefox: Exporter les signets en HTML et les importer dans les paramètres Karakeep.
- Pocket: Importer CSV de l’exportation.
- Omnivore: Exporter les JSON, en option avec
jqfusionner et importer dans Karakeep. - Linkwarden: un outil d’importation est disponible et facilite la migration.
Karakeep et Linkwarden : comparaison
| Critère | Karakeep | Linkwarden |
|---|---|---|
| Types de données | Liens, notes, images, PDF, archives de pages complètes, vidéos | Favoris avec archivage poussé, PDF et captures d’écran |
| Recherche | Recherche en texte intégral avec Meilisearch | Recherche en texte intégral et affichage des archives |
| Archivage des vidéos | Intégré via des variables d’environnement | Plutôt via des outils externes ou des processus dédiés |
| Mobile | Applications natives et extensions de navigateur | PWA et les applications communautaires |
| Fonctions d’IA | Facultatif via OpenAI ou localement avec Ollama | Disponible selon la version et la configuration |
| Hébergement | Docker Compose par défaut | Docker Compose par défaut |
| Fonctions de l’équipe | Disponibles et en développement | Disponibles et éprouvées |
En résumé, Karakeep est très polyvalent : il gère les favoris, mais aussi les médias et les notes. Linkwarden se distingue par une vue des archives particulièrement aboutie et par sa PWA. Ceux qui enregistrent beaucoup de vidéos et de captures d’écran apprécieront les fonctions intégrées de Karakeep.
Alternatives
- Raindrop Service Cloud avec belle interface et nombreuses intégrations
- Instapaper Classiques pour lire plus tard
- wallabag, LinkAce, Linkding, Shaarli Open source pour l’auto-hébergement
- Pocket – Service arrêté ou en voie d’arrêt : exportez vos données et migrez
- Linkwarden Gestionnaire de signets auto-organisés
Sauvegarde, restauration et migration
Sauvegarde
- Dossier
./datasauvegarder - Volume Docker
meilisearchsauvegarder - Sauvegarde ou instantanés hors site optionnels sur l’hôte Proxmox
Restauration
- Arrêter les conteneurs
- Restaurer le dossier de données et le volume
- Démarrer les conteneurs
Migration
- Exporter les données de Pocket, Omnivore, Linkwarden ou d’un navigateur
- Importer dans Karakeep via les paramètres
Sécurité et exploitation
- Placer Karakeep derrière un proxy inverse avec HTTPS
DISABLE_SIGNUPS=true, si vous êtes seul à utiliser le service- Connexion OAuth en option pour SSO
- Mises à jour et sauvegardes régulières
- Surveiller l’espace de stockage, surtout pour les archives de pages complètes et les vidéos
- Pour LXC : utiliser si possible une version récente de Proxmox et activer Nesting et Keyctl
Conseils pour les performances
- Davantage de cœurs CPU accélèrent l’exploration, l’OCR et le traitement vidéo
- Utilisez SSD ou NVMe pour le répertoire de données
CRAWLER_FULL_PAGE_*Activez seulement là où vous en avez vraiment besoin- Prévoir un disque séparé ou du stockage d’objets pour les gros fichiers multimédias
Dépannage dans un environnement LXC
- Démarrer le conteneur avec Nesting et Keyctl
- Si Docker pose problème dans un conteneur LXC non privilégié, utiliser un conteneur privilégié, adapter les règles AppArmor ou, en dernier recours, désinstaller AppArmor
- Vérifier que le
chromeservice fonctionne, car Karakeep l’utilise pour les captures d’écran et l’exploration sans interface graphique - Ports 3000 et 9222 non bloqués par des pare-feu
- En cas de problème d’autorisation, vérifier les droits du chemin
./dataconcerné
FAQ
Karakeep est libre et open source ?
Oui, Karakeep est open source et conçu pour l’auto-hébergement.
Ai-je besoin d’OpenAI pour la recherche ou le marquage ?
Non. La recherche fonctionne localement avec Meilisearch. L’étiquetage par IA est facultatif et peut utiliser OpenAI ou Ollama en local.
Puis-je enregistrer des vidéos YouTube ?
Oui, avec CRAWLER_VIDEO_DOWNLOAD=true Karakeep utilise yt-dlp. Respectez les limites de taille et de délai d’attente, ainsi que le cadre juridique.
Comment mettre à jour Karakeep?
Créer une sauvegarde, augmenter la version ou télécharger de nouvelles images, puis docker compose up -d exécuter. Vous pouvez également sauvegarder le LXC dans Proxmox, manuellement ou régulièrement par cron.
Où vaut-il mieux stocker les données ?
Soit dans ./data sur l’hôte ou dans un stockage d’objets compatible S3. Sauvegardez régulièrement vos données.
Glossaire
- Karakeep – Gestionnaire de favoris auto-hébergé, anciennement Hoarder
- Linkwarden – Alternative auto-hébergée pour les favoris avec une excellente vue des archives
- Meilisearch – Recherche en texte intégral, utilisée par Karakeep
- OCR Reconnaissance du texte pour les images et les PDF numérisés
- yt-dlp – Outil de téléchargement utilisé par Karakeep pour archiver les vidéos
- Monolith – Outil créant des archives HTML en un seul fichier, utilisé par Karakeep pour les pages entières
- Ollama – Serveur d’IA local qui permet à Karakeep de créer des étiquettes et des résumés sans cloud
- Stockage S3 Stockage d’objets tels que les services MinIO ou Cloud, adapté aux grandes données multimédias
- PWA Application Web progressive, installable comme une application, fonctionne dans le navigateur
- Docker Compose Décrit les piles multi-conteneurs dans un fichier YAML
- LXC Conteneurs légers en Proxmox, de bonnes performances avec de faibles frais généraux
- LXC privilégié – Conteneurs avec droits étendus, nécessaires pour certaines configurations Docker
- AppArmor – Module de sécurité Linux, peut être personnalisé dans les environnements LXC
- Proxy inversé Serveur web en amont comme Nginx ou Traefik, prend en charge HTTPS, routage et en-tête
- Secret NextAuth – Clé secrète pour la couche d’authentification à Karakeep
- Variables ENV – Valeurs de configuration de la
.envfichier, appliquées aux conteneurs pendant leur exécution
Cet article a été traduit avec l’aide de l’IA.
















