Installer et utiliser Karakeep : gestionnaire de favoris auto-hébergé comparé à Linkwarden

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 ?

karakeep-installation-27

karakeep-installation-27

karakeep-installation-29

karakeep-installation-29

karakeep-installation-30

karakeep-installation-30

karakeep-installation-31

karakeep-installation-31

karakeep-installation-33

karakeep-installation-33

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

karakeep-installation-02

karakeep-installation-02

karakeep-installation-03

karakeep-installation-03

karakeep-installation-04

karakeep-installation-04

karakeep-installation-05

karakeep-installation-05

karakeep-installation-06

karakeep-installation-06

karakeep-installation-07

karakeep-installation-07

karakeep-installation-08

karakeep-installation-08

karakeep-installation-09

karakeep-installation-09

karakeep-installation-10

karakeep-installation-10

karakeep-installation-12

karakeep-installation-12

1) Télécharger le modèle et créer le conteneur

  1. 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 ».
  2. 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.
  3. 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 nesting et keyctl. 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.
#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ètreEffetRessources nécessaires
CRAWLER_STORE_SCREENSHOTCrée une capture d’écran par pageMoyen
CRAWLER_FULL_PAGE_SCREENSHOTLongue capture de la page entière ; les bannières de cookies peuvent apparaîtreÉlevé
CRAWLER_FULL_PAGE_ARCHIVECopie locale de la pageÉlevé
CRAWLER_VIDEO_DOWNLOADTélécharge les vidéos avec yt-dlpÉlevé, selon la taille
OCR_LANGSOCR pour les images et les PDFSollicite fortement le processeur
MAX_ASSET_SIZE_MBTaille maximale des fichiers transférésSelon la valeur
DISABLE_SIGNUPSDésactive les inscriptionsSans 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

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 jq fusionner et importer dans Karakeep.
  • Linkwarden: un outil d’importation est disponible et facilite la migration.

Karakeep et Linkwarden : comparaison

CritèreKarakeepLinkwarden
Types de donnéesLiens, notes, images, PDF, archives de pages complètes, vidéosFavoris avec archivage poussé, PDF et captures d’écran
RechercheRecherche en texte intégral avec MeilisearchRecherche en texte intégral et affichage des archives
Archivage des vidéosIntégré via des variables d’environnementPlutôt via des outils externes ou des processus dédiés
MobileApplications natives et extensions de navigateurPWA et les applications communautaires
Fonctions d’IAFacultatif via OpenAI ou localement avec OllamaDisponible selon la version et la configuration
HébergementDocker Compose par défautDocker Compose par défaut
Fonctions de l’équipeDisponibles et en développementDisponibles 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 ./data sauvegarder
  • Volume Docker meilisearch sauvegarder
  • 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 chrome service 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 ./data concerné

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 .env fichier, appliquées aux conteneurs pendant leur exécution

Cet article a été traduit avec l’aide de l’IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Leave a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top