Intermédiaire ⏱ 30 min de mise en œuvre Mis à jour le 11 août 2026

Héberger Paperless-ngx : votre gestion électronique de documents (GED) souveraine

Retrouver une facture, un contrat ou une fiche de paie en deux secondes, sans confier vos papiers à un cloud tiers. Paperless-ngx est la GED open source souveraine. Voici comment la déployer.

Les factures glissées dans un tiroir, les contrats enregistrés sous des noms incompréhensibles et les courriers importants dispersés entre plusieurs appareils finissent toujours par coûter du temps. Avec une gestion électronique de documents, retrouver une fiche de paie, une attestation ou une facture ne prend plus que quelques secondes.

Paperless-ngx transforme vos PDF et vos scans en une bibliothèque documentaire structurée et consultable. Cette GED open source s’installe sur votre propre serveur. Vos documents administratifs, financiers et professionnels restent ainsi dans une infrastructure que vous maîtrisez, au lieu d’être confiés à un cloud tiers.

Pour un particulier organisé, un indépendant, une association ou une TPE/PME, cet auto-hébergement apporte un avantage concret : centraliser les documents tout en conservant le contrôle de leur stockage. TalCloud propose justement une offre VPS à partir de 4,99 € par mois, avec des serveurs situés en France, du stockage NVMe, une protection Anti-DDoS Netrix et un support humain.

Comment fonctionne Paperless-ngx ?

Le fonctionnement repose sur une chaîne simple :

  1. Vous déposez un PDF ou une image dans Paperless-ngx.
  2. Le moteur OCR Tesseract analyse le fichier et en extrait le texte.
  3. Paperless-ngx associe le document à un correspondant, un type et des étiquettes.
  4. Le contenu devient accessible depuis le moteur de recherche plein texte.

Un dossier appelé consume peut être surveillé en permanence. Dès qu’un scanner, un script ou un utilisateur y dépose un fichier, Paperless-ngx lance automatiquement son traitement. Le document original est conservé, tandis que son contenu textuel et ses métadonnées sont indexés.

L’OCR prend en charge plusieurs langues, dont le français. Il permet par exemple de retrouver une facture en recherchant le nom du fournisseur, une référence, une date ou une expression présente dans le document, même si le fichier initial était un simple scan.

Le traitement OCR sollicite toutefois le processeur. L’import initial de plusieurs milliers de pages peut donc provoquer une charge importante. Il est préférable d’effectuer cette première indexation par lots et de surveiller les ressources du serveur.

Prérequis pour héberger sa GED

Pour déployer Paperless-ngx, prévoyez :

  • un VPS Linux avec un accès SSH ;
  • Docker et le plugin Docker Compose (voir installer Docker sur un VPS) ;
  • un nom de domaine ou un sous-domaine, par exemple ged.exemple.fr ;
  • un enregistrement DNS pointant vers l’adresse IP du VPS ;
  • un volume de stockage adapté à la quantité de documents ;
  • un espace distinct pour les sauvegardes.

La capacité nécessaire dépend surtout du volume des fichiers originaux. Un dossier contenant des PDF bureautiques occupera beaucoup moins d’espace qu’une archive constituée de scans couleur en haute résolution.

Le stockage ne doit pas être dimensionné uniquement pour les documents actuels. Il faut également prévoir la base de données, les fichiers générés par l’OCR, les miniatures, les exports et la croissance future de l’archive.

Déployer Paperless-ngx avec Docker Compose

Le projet Paperless-ngx fournit un installateur et des configurations Docker Compose officielles. Utilisez une version issue de la documentation du projet, puis placez-vous dans le répertoire contenant le fichier Compose.

L’architecture comprend plusieurs composants :

  • le webserver, qui expose l’interface et l’API ;
  • PostgreSQL, qui conserve les utilisateurs, les métadonnées et l’index documentaire ;
  • Redis, utilisé comme broker pour les tâches en arrière-plan ;
  • le worker, qui réalise notamment l’import et les traitements OCR.

Selon la version de la configuration officielle, certaines fonctions du worker peuvent être regroupées avec le conteneur applicatif ou représentées par un service séparé. Il faut conserver la structure fournie avec la version installée plutôt que de mélanger des exemples provenant de versions différentes.

Dans docker-compose.env, définissez au minimum les paramètres suivants :

PAPERLESS_OCR_LANGUAGE=fra
PAPERLESS_SECRET_KEY=remplacer-par-une-valeur-longue-et-aleatoire
PAPERLESS_URL=https://ged.exemple.fr
PAPERLESS_ADMIN_USER=administrateur
PAPERLESS_ADMIN_PASSWORD=remplacer-par-un-mot-de-passe-unique

La clé secrète doit être longue, aléatoire et conservée avec vos sauvegardes de configuration. Vous pouvez en générer une sur le serveur avec :

openssl rand -base64 48

Ne reprenez pas les valeurs d’exemple en production. Le mot de passe administrateur doit être unique et ne pas être utilisé sur un autre service.

Avant le démarrage, vérifiez la configuration interpolée :

docker compose config

Téléchargez ensuite les images et lancez les services :

docker compose pull
docker compose up -d

Contrôlez leur état et consultez les journaux du serveur web :

docker compose ps
docker compose logs -f webserver

Laissez quelques instants à PostgreSQL et aux migrations applicatives pour terminer leur initialisation.

Premier accès et compte administrateur

Ouvrez l’adresse définie dans PAPERLESS_URL, puis connectez-vous avec le compte administrateur configuré. Les variables PAPERLESS_ADMIN_USER et PAPERLESS_ADMIN_PASSWORD servent à créer le premier compte lors de l’initialisation. Elles ne permettent pas nécessairement de modifier le mot de passe d’un compte déjà existant.

Si aucun compte n’a été créé, utilisez la commande Django intégrée :

docker compose exec webserver python3 manage.py createsuperuser

Créez ensuite un compte nominatif pour chaque utilisateur. Évitez de partager le compte administrateur entre plusieurs personnes.

Alimenter Paperless-ngx

Plusieurs méthodes permettent d’ajouter des documents :

  • téléversement manuel depuis l’interface web ;
  • dépôt automatique dans le dossier consume ;
  • import depuis une boîte email configurée ;
  • dépôt par un scanner réseau ;
  • envoi depuis une application mobile compatible.

Le dossier consume est particulièrement pratique avec un scanner multifonction. Celui-ci peut envoyer ses fichiers vers un partage réseau monté sur le serveur. Paperless-ngx détecte alors les nouveaux scans et les traite sans intervention supplémentaire.

Pour les emails, créez de préférence une adresse dédiée aux documents. Définissez des règles prudentes afin d’éviter qu’une pièce jointe non sollicitée soit automatiquement intégrée à votre GED.

Les applications mobiles et clients compatibles facilitent la numérisation d’un courrier depuis un téléphone. Vérifiez leur provenance, leurs permissions et leur mode d’authentification avant de leur donner accès à une archive sensible.

Configurer le classement et l’OCR français

La variable suivante demande à Tesseract de privilégier le français :

PAPERLESS_OCR_LANGUAGE=fra

Pour des archives multilingues, adaptez les langues installées et configurées à la documentation de votre version. Ajouter inutilement de nombreuses langues peut ralentir l’OCR ou réduire la qualité de reconnaissance.

Dans l’interface, commencez par définir quelques catégories stables :

  • correspondants : banque, fournisseur, administration, client ;
  • types : facture, contrat, courrier, fiche de paie ;
  • tags : année, projet, statut, confidentialité.

Créez ensuite des règles de correspondance à partir de mots, d’expressions ou de métadonnées récurrentes. Par exemple, un nom de fournisseur peut affecter automatiquement un correspondant et le tag comptabilite.

Évitez une taxonomie trop complexe au départ. Quelques catégories cohérentes produisent généralement une recherche plus efficace qu’une centaine d’étiquettes rarement utilisées.

Activer HTTPS avec un reverse proxy

Paperless-ngx ne doit pas être exposé publiquement en HTTP. Placez-le derrière un reverse proxy comme Caddy, Traefik ou Nginx Proxy Manager, puis activez un certificat TLS valide.

Le reverse proxy reçoit les connexions sur les ports 80 et 443 et les transmet au webserver sur le réseau interne. PostgreSQL et Redis ne doivent jamais être publiés directement sur Internet.

Vérifiez que PAPERLESS_URL contient bien l’adresse HTTPS finale. Une URL incorrecte peut perturber les redirections, les cookies et certaines protections applicatives.

Sécuriser des documents sensibles

Une GED contient souvent des pièces d’identité, des relevés bancaires, des contrats ou des documents sociaux. Sa sécurité doit donc être traitée comme celle d’un service critique.

Appliquez au minimum les mesures suivantes :

  • authentification par clé SSH et désactivation de la connexion SSH par mot de passe lorsque cela est possible ;
  • pare-feu limitant les ports publics aux services nécessaires ;
  • mots de passe longs et uniques ;
  • comptes individuels avec les droits strictement nécessaires ;
  • mises à jour régulières du système, de Docker et de Paperless-ngx ;
  • absence d’exposition publique de PostgreSQL et Redis ;
  • surveillance de l’espace disque et des journaux ;
  • chiffrement des sauvegardes avant leur stockage hors du serveur.

Un VPS hébergé en France facilite la maîtrise de la localisation des données et la démarche RGPD, mais la sécurité applicative, les habilitations et la politique de conservation restent sous la responsabilité de l’administrateur de l’instance.

Sauvegardes vitales et restauration

Une sauvegarde n’est utile que si elle contient les documents, les métadonnées et la configuration nécessaires à la restauration.

Paperless-ngx fournit document_exporter, qui crée un export cohérent et réimportable :

docker compose exec webserver document_exporter ../export

Vérifiez où le répertoire export est monté sur l’hôte dans votre fichier Compose, puis copiez son contenu vers un stockage distinct et chiffré.

Une autre stratégie consiste à sauvegarder séparément PostgreSQL et les volumes applicatifs. Pour une configuration utilisant paperless comme base et comme utilisateur :

docker compose exec -T db pg_dump -U paperless paperless > paperless-postgresql.sql

Adaptez les noms à votre fichier Compose. Sauvegardez également les volumes ou répertoires media et data, ainsi que les fichiers Compose et docker-compose.env. Le dossier consume doit aussi être inclus s’il contient des fichiers encore en attente. Notre guide sur la stratégie de sauvegarde d’un serveur détaille l’automatisation et la rotation.

Conservez plusieurs générations de sauvegardes, dont au moins une copie hors du VPS. Planifiez régulièrement un test de restauration sur une instance isolée.

Mettre Paperless-ngx à jour

Avant chaque mise à jour, consultez les notes de version et créez une sauvegarde complète. Effectuez ensuite la mise à jour avec :

docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=100 webserver

Après redémarrage, testez immédiatement la connexion, l’import d’un document, l’OCR, la recherche plein texte et l’accès à un ancien fichier. Ajoutez enfin à votre calendrier une sauvegarde quotidienne, une vérification mensuelle des journaux et un test de restauration trimestriel.