148 lines
7.5 KiB
Markdown
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é
|