Pourquoi auto-héberger Paperless-ngx sur un VPS
Factures, contrats, fiches de paie, courriers administratifs : la gestion documentaire touche des données confidentielles que peu d'entreprises veulent confier à un cloud tiers. Paperless-ngx ingère chaque PDF ou scan, lui applique un OCR (reconnaissance de texte) pour le rendre cherchable, puis le classe automatiquement par correspondant, type et tags grâce à un moteur de correspondance. Sur un VPS, vous obtenez une archive accessible depuis n'importe où, alimentée par un simple dépôt de fichiers dans un dossier surveillé ou par e-mail. La stack repose sur PostgreSQL pour l'index, Redis pour la file de tâches, et un service de traitement qui exécute Tesseract pour l'OCR. Vous maîtrisez la rétention légale, le chiffrement des sauvegardes et l'accès, sans dépendance à un éditeur.
Les bénéfices de Paperless-ngx auto-hébergé
- OCR automatique via Tesseract : chaque scan ou PDF devient cherchable plein texte.
- Classement automatique par correspondant, type de document et tags selon vos règles.
- Dossier surveillé et ingestion par e-mail : déposez un fichier, il est traité et indexé seul.
- Recherche instantanée dans tout le contenu textuel, pas seulement les noms de fichiers.
- Conservation des originaux intacts à côté des versions OCRisées, pour la valeur probante.
- Sauvegardes maîtrisées d'une archive juridiquement sensible, sans cloud tiers.
Prérequis matériels et logiciels
Paperless-ngx est raisonnable au repos mais l'OCR est gourmand par à-coups : 2 vCPU et 3 à 4 Go de RAM offrent un bon confort, l'OCR d'un document multipage sollicitant temporairement le CPU. Pour une grosse ingestion initiale de plusieurs milliers de documents, des cœurs supplémentaires accélèrent nettement le traitement. Prévoyez du stockage pour les originaux plus les fichiers d'archive OCRisés, soit environ le double du volume brut. Côté logiciel : Docker et docker compose v2, PostgreSQL, Redis, et les langues Tesseract dont vous avez besoin (fra, eng, ara). Un domaine (docs.votreentreprise.ma) et, en option, un compte IMAP dédié pour l'ingestion automatique des pièces jointes par e-mail.
Déployer Paperless-ngx étape par étape
Préparer le VPS et les volumes
Installez Docker, puis créez les dossiers persistants : consume (dépôt surveillé), media (archive OCRisée), data et export. Le dossier consume sera votre boîte d'entrée documentaire.
Récupérer le compose officiel
Le projet fournit un script d'installation interactif, mais en production partez du docker-compose.yml officiel déclarant webserver, broker (Redis), db (PostgreSQL) et le worker. Adaptez les chemins de volumes vers vos dossiers créés.
Configurer les langues OCR et les secrets
Dans le fichier d'environnement, définissez PAPERLESS_OCR_LANGUAGE=fra+eng+ara, PAPERLESS_SECRET_KEY généré avec openssl rand -base64 48, et l'URL publique PAPERLESS_URL=https://docs.votreentreprise.ma.
Créer le superutilisateur et démarrer
Lancez docker compose up -d, puis créez l'administrateur avec docker compose run --rm webserver createsuperuser. Connectez-vous ensuite à l'interface pour vérifier que les workers traitent bien la file de tâches.
Ajouter un reverse proxy et le SSL
Placez Caddy devant le service web pour docs.votreentreprise.ma, certificat Let's Encrypt automatique. Augmentez la taille maximale d'upload du proxy pour accepter les gros PDF scannés sans erreur 413.
Brancher l'ingestion par e-mail
Dans Administration, configurez un compte IMAP dédié : Paperless-ngx récupérera les pièces jointes des e-mails entrants, les OCRisera et les classera automatiquement selon vos règles de correspondance.
Définissez des correspondants et des types de documents avec des règles de correspondance automatique (par mot-clé ou expression régulière) dès le départ. Paperless-ngx apprend aussi par classification : après avoir taggé manuellement une cinquantaine de documents, activez le classifieur automatique pour qu'il propose seul les tags des nouveaux fichiers. Combiné au dossier consume surveillé, vous obtenez une chaîne entièrement automatique du scan à l'archive indexée.