Files
wiki/Catalogue-Self-Hosted/apps/app-inkheart.md
T
2026-06-09 18:40:21 +02:00

5.7 KiB


title: Inkheart created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, books, pdf, reader, rust, svelte, bibliotheque] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=books, https://gitlab.com/Nystik/inkheart]

📖 Inkheart

Lecteur et indexeur PDF minimaliste auto-hébergé : parcourez, recherchez en plein texte, annotez et partagez vos PDFs en deep-link direct vers une page précise.

Métadonnée Valeur
Site web gitlab.com/Nystik/inkheart
GitLab Nystik/inkheart
License MIT
Langage Rust (backend), Svelte (frontend), PDF.js
Étoiles ~150 (GitLab)
Dernière MAJ 2026-05 (v1.3.0)
Catégorie cat-books

Description

Inkheart est né d'un constat simple : la plupart des lecteurs PDF auto-hébergeables (Paperless-ngx, Calibre, etc.) sont trop lourds quand on veut juste browsing + lecture + lien direct vers une page. Le mainteneur Nystik voulait pouvoir lier une page précise d'un PDF depuis Notion et lire des PDF trop gros pour Google Drive — Inkheart est exactement ce petit outil chirurgical.

L'indexation est filesystem-based (pas de base de données à gérer) avec un index full-text gardé en mémoire et persisté sur disque. Le rendu utilise PDF.js côté navigateur, ce qui garantit la compatibilité avec n'importe quel viewer moderne. Le tout en Rust pour le backend (performances, binaire unique) et Svelte pour le frontend (SPA légère).

Inkheart supporte les collections (regroupements自定义), les pinned folders (raccourcis sidebar), la recherche full-text sur l'ensemble du contenu extrait de chaque PDF, le deep-linking vers une page précise (/pdf/123#page=42), le sauvegarde de progression automatique par fichier, et un mode de visualisation configurable (page simple, spreads pairs, spreads impairs). Authentification optionnelle via Firebase Auth avec whitelist.

Points forts : binaire Rust très rapide, image Docker multi-arch (amd64 + arm64 pour Raspberry Pi), lecteur PDF.js fluide, recherche full-text, deep-linking utile, configuration TOML simple, telemetry Plausible désactivable.

Points faibles : PDF uniquement (pas d'ePub, pas de Mobi), index full-text en mémoire donc à éviter au-delà de quelques milliers de PDFs, pas de métadonnées stockées (tout est filesystem), bus factor 1 (un seul mainteneur), interface jeune.

Installation

Via Docker (recommandé)

Image officielle nobbe/inkheart sur Docker Hub, multi-architecture (x86_64 + aarch64).

# docker-compose.yml
services:
  inkheart:
    image: nobbe/inkheart:latest
    container_name: inkheart
    restart: unless-stopped
    network_mode: bridge
    ports:
      - "8080:8080"
    volumes:
      - /chemin/vers/pdfs:/media
      - ./covers:/covers
      - ./thumbnails:/thumbnails
      - ./config:/config
    environment:
      - MEDIA_DIR=/media
      - CONFIG_PATH=/config/inkheart.toml
      - BIND_ADDR=0.0.0.0
      - TELEMETRY_ENABLED=false

Créez les répertoires covers/, thumbnails/ et config/ avant le premier démarrage.

Installation manuelle

Voir https://gitlab.com/Nystik/inkheart : cloner, cargo build --release --no-default-features (sans telemetry), configurer inkheart.toml, lancer le binaire.

Configuration

  1. Monter vos PDFs dans /media.
  2. Démarrer le conteneur ; le premier scan extrait le texte de chaque page (peut être long sur de grosses bibliothèques).
  3. Accéder à http://IP:8080, créer la première collection.
  4. Activer l'auth Firebase si vous voulez restreindre l'accès (whitelist par email).
  5. Pour servir derrière un sous-chemin : BASE_PATH=/pdfs + reverse-proxy Nginx/Caddy.
  6. Désactiver la télémétrie Plausible via TELEMETRY_ENABLED=false (sinon un ping anonymisé par page d'index).

Alternatives

Open source

  • app-stump — Comics/manga/LN, plus large mais aussi plus lourd
  • Paperless-ngx — GED complète (OCR, tags, correspondants) — surdimensionné pour juste lire
  • Calibre — Le monstre, EPUB/MOBI/PDF mais stack Python lourde
  • Hammond — Lecteur PDF auto-hébergé, plus minimal qu'Inkheart
  • Docspell — Idem Paperless, plus orienté archivage

Propriétaires

  • Google Drive — Viewer PDF intégré, pas de deep-link public stable
  • Readwise Reader — Outil de lecture highlight multi-formats, freemium, pas self-hostable
  • Zotero — Gestionnaire biblio avec lecteur PDF intégré, freemium

Sécurité

  • ⚠️ Bus factor 1 : un seul mainteneur (Nystik), pas de roadmap publique large
  • Auth optionnelle via Firebase Auth (whitelist)
  • ⚠️ Telemetry Plausible activée par défaut — bien lire ce qui est collecté (compteur d'installations, version, taille de biblio bucketisée, pays) ; désactiver via env
  • Pas d'auth native = à mettre derrière un app-caddy + basic auth ou app-authentik si exposé
  • ⚠️ Index full-text en RAM : prévoir de la RAM proportionnelle à la taille de la bibliothèque
  • ⚠️ PDF peut contenir du JavaScript embarqué : PDF.js est sandboxé mais restez prudent

Ressources

Pages Liées