Files
2026-06-09 18:40:21 +02:00

148 lines
7.5 KiB
Markdown

---
title: "I, Librarian"
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, document-management, pdf, bibliotheque, php, recherche, scientifique]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=document-management, https://github.com/mrzv/librarian, https://www.i-librarian.net/]
---
# I, Librarian 📚
> **Gestionnaire de bibliothèque PDF** pour chercheurs/académiques : indexation full-text, annotations, collections partagées, références bibliographiques, et lecteur PDF intégré avec highlighting synchronisé.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://www.i-librarian.net/ |
| **GitHub** | https://github.com/mrzv/librarian |
| **License** | AGPL-3.0 |
| **Langage** | PHP (backend) + JavaScript (frontend), PostgreSQL |
| **Étoiles** | ⭐32 |
| **Dernière MAJ** | 2026-04-05 |
| **Catégorie** | [[cat-document-management]] |
## Description
I, Librarian est un **gestionnaire de bibliothèque PDF** conçu pour les **chercheurs, doctorants, enseignants et équipes de R&D** qui accumulent des centaines/milliers de PDF scientifiques. Contrairement à Calibre (orienté ebooks) ou Paperless (orienté GED), I, Librarian est **spécialisé dans le workflow de recherche bibliographique** : import depuis DOI/arXiv, extraction de métadonnées BibTeX, indexation full-text, lecteur PDF avec **annotations synchronisées** (highlights, sticky notes), recherche avancée multi-critères, et **partage de collections** entre collaborateurs.
L'**indexation** est le point fort : I, Librarian extrait le texte intégral de chaque PDF (via pdftotext ou OCR Tesseract si scanné), indexe dans une base **PostgreSQL** avec extension **Tantivy** (search engine Rust) pour des recherches sub-secondes sur des collections de 100k+ documents. Le **lecteur PDF intégré** (PDF.js) affiche le document et synchronise les highlights avec la base : vous surlignez un passage dans le PDF, l'annotation est stockée et retrouvable via la recherche full-text.
L'**écosystème scientifique** comprend : import depuis **Zotero**, **Mendeley**, **DOI batch**, **arXiv bulk** ; export **BibTeX**, **Endnote**, **RIS** ; intégration **ORCID** pour identifier les auteurs ; système de **collections** partagées entre groupes (utile pour un labo ou un département). L'UI est **dense et fonctionnelle** (pas moderne à la Notion, plus « Zotero web »), avec un mode sombre. C'est un projet mature (1ère release 2012), avec une base d'utilisateurs académique solide.
## Installation
### Via Docker Compose (recommandé)
```yaml
# docker-compose.yml
services:
librarian:
image: mrzv/librarian:latest
container_name: i-librarian
restart: unless-stopped
ports:
- "8084:80"
volumes:
- librarian-data:/var/www/data
- librarian-library:/var/www/library
environment:
- POSTGRES_HOST=db
- POSTGRES_DB=librarian
- POSTGRES_USER=librarian
- POSTGRES_PASSWORD=*** - LIBRARIAN_SECRET=*** - LIBRARIAN_URL=https://lib.example.com
depends_on:
- db
db:
image: postgres:16-alpine
container_name: librarian-db
restart: unless-stopped
environment:
- POSTGRES_DB=librarian
- POSTGRES_USER=librarian
- POSTGRES_PASSWORD=*** volumes:
- librarian-db:/var/lib/postgresql/data
volumes:
librarian-data:
librarian-library:
librarian-db:
```
> **Pré-requis côté hôte** : installer `pdftotext` (poppler-utils), `tesseract-ocr` + langues (`fra`, `eng`), `imagemagick` pour le bon fonctionnement du container.
### Installation manuelle
1. **Pré-requis** : PHP 8.0+, PostgreSQL 13+, Apache/Nginx, `pdftotext` (poppler-utils), `tesseract-ocr`, `imagemagick`, `unzip`, `curl`.
2. **Téléchargement** : récupérer l'archive depuis [i-librarian.net/download](https://www.i-librarian.net/download/) ou cloner le repo GitHub.
3. **Déploiement** : copier dans `/var/www/html/librarian`, configurer Apache/Nginx (rewrite rules incluses dans le repo).
4. **Install web** : ouvrir `https://lib.example.com/install/` dans le navigateur, suivre l'assistant (DB, secret, admin).
5. **Premier admin** : créé via l'install wizard.
6. **Crons** : configurer un cron pour `php librarian/cron.php` (indexation périodique).
## Configuration
- **Premier admin** : créé lors de l'install web, noter le mot de passe.
- **Import DOI/arXiv** : dans Library → Import, coller un DOI unique ou un lot (jusqu'à 1000 à la fois), le système télécharge et indexe automatiquement.
- **Métadonnées** : extraction BibTeX automatique, complétion via CrossRef/OpenAlex.
- **OCR** : configurer les langues Tesseract dans Settings → OCR (`fra+eng+deu+spa` pour multi-langue).
- **Collections** : créer des collections thématiques (ex: « Machine Learning », « Bioinformatique »), assigner des utilisateurs.
- **Partage** : activer le partage public de collections dans Settings → Sharing.
- **ORCID** : configurer l'intégration ORCID pour identification automatique des auteurs.
- **HTTPS** : obligatoire via reverse proxy.
- **Backups** : `pg_dump` + rsync du dossier `library/` (PDF originaux) + `data/` (index).
- **Performance** : pour 50k+ documents, prévoir SSD et 8+ Go de RAM (l'index Tantivy est memory-hungry).
## Alternatives
### Open Source
- [[app-pdfding]] — gestionnaire PDF minimaliste (Python)
- [[app-paperless-ngx]] — GED complète avec OCR (plus généraliste)
- [[app-papermerge]] — GED moderne UI Vue (Python)
- [[app-stirling-pdf]] — outil PDF complet (Java)
- [[app-papra]] — GED TypeScript minimaliste
- **Calibre** — gestionnaire ebooks (PDF/EPUB/MOBI) — très mature
- **Zotero** — référence académique, client + serveur partagé (pas vraiment self-hosted web)
- **Alexandria** — bookmark manager PDF
- **Paperful** — alternative jeune à I, Librarian
### Propriétaires
- **Mendeley** (Elsevier) — référence académique, freemium, cloud
- **Zotero** (cloud optionnel) — gratuit, freemium cloud 2 Go
- **EndNote** (Clarivate) — référence institutionnelle, ~250€/an
- **ReadCube Papers** — lecteur PDF académique, freemium
- **DEVONthink** — GED Mac/iOS
- **Notion + PDF** — pas vraiment bibliothèque PDF
- **Google Scholar** — recherche, pas stockage
- **Papers.app** (ReadCube) — Mac/iOS, freemium
## Sécurité
- **HTTPS obligatoire** + HSTS via reverse proxy.
- **Auth** : email + mot de passe (bcrypt), sessions PHP server-side.
- **2FA** : non natif — compter sur Authelia/Authentik via reverse proxy.
- **Permissions** : par utilisateur/collection (lecteur, éditeur, admin).
- **SSO** : intégrable via plugins tiers (SAML/OIDC).
- **Chiffrement at-rest** : monter les volumes sur stockage chiffré.
- **CVE** : PHP/PostgreSQL à maintenir à jour, suivre les releases I, Librarian.
- **Isolation** : ne pas exposer I, Librarian en direct, passer par reverse proxy.
- **Backups testés** : tester la restauration (DB Tantivy + fichiers PDF).
- **Quota** : limiter l'upload par utilisateur pour éviter les abus.
## Ressources
- Site officiel : https://www.i-librarian.net/
- Documentation : https://www.i-librarian.net/manual/
- GitHub : https://github.com/mrzv/librarian
- Forum communautaire : https://www.i-librarian.net/forum/
- selfh.st : https://selfh.st/apps/?tag=document-management
## Pages Liées
- [[cat-document-management]] — catégorie parente
- [[app-pdfding]] — cousin gestionnaire PDF
- [[app-paperless-ngx]] — GED plus généraliste
- [[app-stirling-pdf]] — outil PDF complémentaire
- [[recettes-docker-compose]] — templates de déploiement
- [[securisation-home-lab]] — bonnes pratiques sécurité