Initial vault setup
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
---
|
||||
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](https://gitlab.com/Nystik/inkheart) |
|
||||
| **GitLab** | [Nystik/inkheart](https://gitlab.com/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).
|
||||
|
||||
```yaml
|
||||
# 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
|
||||
|
||||
- [GitLab Nystik/inkheart](https://gitlab.com/Nystik/inkheart)
|
||||
- [Docker Hub nobbe/inkheart](https://hub.docker.com/r/nobbe/inkheart)
|
||||
- [selfh.st Books](https://selfh.st/apps/?tag=books)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-books]] — Catégorie Books
|
||||
- [[app-stump]] — Lecteur comics/manga OPDS plus large
|
||||
- [[app-calibre]] — Géant EPUB/PDF, plus complet mais plus lourd
|
||||
- [[recettes-docker-compose]] — Templates Docker
|
||||
- [[app-caddy]] — Reverse-proxy HTTPS recommandé
|
||||
Reference in New Issue
Block a user