Archive

Articles taggués ‘docker’

Paperless-ngx : numériser, classer et retrouver tous vos papiers

08/11/2026 Aucun commentaire

Un logiciel libre qui transforme vos factures, courriers et contrats en archive consultable en quelques secondes. Voici ce qu’il apporte et comment l’installer avec Docker Compose.

 

 

Qu’est-ce que Paperless-ngx ?

Paperless-ngx est un système de gestion électronique de documents (GED) libre, conçu pour l’auto-hébergement. Vous lui donnez un PDF ou une photo de document : il en extrait le texte par reconnaissance optique de caractères (OCR), l’indexe, propose un classement et conserve l’original à côté d’une version archivée.

Le projet est la suite communautaire de Paperless et de Paperless-ng. Il se déploie avant tout avec Docker, et l’image est publiée sur le registre de conteneurs GitHub.

Auto-hébergement · Gestion électronique de documents

Paperless-ngx : numériser, classer et retrouver tous vos papiers

Un logiciel libre qui transforme vos factures, courriers et contrats en archive consultable en quelques secondes. Voici ce qu’il apporte et comment l’installer avec Docker Compose.

Mis à jour le 8 novembre 2026 · Paperless-ngx 3.1.1 · lecture : 10 min

Qu’est-ce que Paperless-ngx ?

Paperless-ngx est un système de gestion électronique de documents (GED) libre, conçu pour l’auto-hébergement. Vous lui donnez un PDF ou une photo de document : il en extrait le texte par reconnaissance optique de caractères (OCR), l’indexe, propose un classement et conserve l’original à côté d’une version archivée.

Le projet est la suite communautaire de Paperless et de Paperless-ng. Il se déploie avant tout avec Docker, et l’image est publiée sur le registre de conteneurs GitHub.

Tableau de bord de Paperless-ngx avec vues enregistrées, documents récents et statistiques
Le tableau de bord : vues enregistrées (factures impayées, documents fiscaux…), documents récents, boîte de réception et statistiques. Capture issue du dépôt officiel Paperless-ngx.

Pourquoi l’adopter

Retrouver un document par son contenu

L’OCR rend le texte de chaque page interrogeable. Plus besoin de se rappeler du nom du fichier ou du dossier : la barre de recherche retrouve « contrat chaudière » ou un numéro de client à l’intérieur même d’un scan.

Liste de documents avec aperçu du texte extrait par OCR
Chaque document affiche le texte extrait par l’OCR : la recherche porte sur ce contenu, pas seulement sur le titre.

Un classement qui se fait presque tout seul

Chaque document peut recevoir des étiquettes, un correspondant (l’émetteur), un type de document et un chemin de stockage. Des règles de correspondance, ou un apprentissage à partir de vos propres classements, attribuent ces métadonnées automatiquement aux nouveaux documents. Le tri manuel se limite aux cas inédits.

Sélection de plusieurs documents avec menu des étiquettes pour les modifier en lot
Édition en lot : on sélectionne plusieurs documents puis on leur applique une étiquette, un correspondant ou un type d’un seul geste.

Une porte d’entrée pour tous vos papiers

  • Dossier surveillé : tout fichier déposé dans le dossier consume est traité. Un scanner réseau qui envoie vers un partage SMB ou NFS suffit à alimenter la GED.
  • Boîtes e-mail : des règles de messagerie récupèrent les pièces jointes (factures, relevés) et les classent.
  • Glisser-déposer depuis l’interface web, et une API REST pour les automatisations et applications tierces.

Des documents vivants, pas un simple dépôt de PDF

Champs personnalisés (montant, échéance, numéro de compte), notes, versions d’un document, vues enregistrées affichées sur le tableau de bord, workflows déclenchés à l’arrivée ou à la modification d’un document : l’outil sert aussi de pense-bête administratif, par exemple pour suivre les factures impayées.

Fiche d'un document avec ses métadonnées à gauche et l'aperçu du PDF à droite
La fiche d’un document : métadonnées et champs personnalisés à gauche, aperçu du fichier à droite.

Vos données restent chez vous

Aucun abonnement, aucun envoi vers un cloud tiers : les documents sont stockés sur votre serveur. L’application gère plusieurs utilisateurs avec des droits par document, ce qui permet de partager une GED familiale tout en gardant certains dossiers privés. Le contenu est stocké dans des formats ouverts, et un export complet est intégré.

Prérequis

  • Un serveur ou mini-PC sous Linux (ou un NAS compatible Docker) ; Paperless-ngx tourne sur architectures amd64, arm et arm64.
  • Docker et le plugin Docker Compose (docker compose). Suivez le guide d’installation officiel de Docker pour votre distribution.
  • De la marge en mémoire et en processeur : l’OCR est gourmand, surtout lors de l’import d’une grosse archive. Prévoyez plusieurs Go de RAM libres.
  • De l’espace disque pour les originaux et les versions archivées, soit grossièrement le double de vos fichiers.

Installation avec Docker Compose

Deux voies existent. Dans les deux cas, on obtient la même pile de trois conteneurs : webserver (l’application), db (PostgreSQL, recommandé pour une nouvelle installation) et broker (file de tâches Valkey, compatible Redis).

Option 1 : le script d’installation (le plus rapide)

Le projet fournit un script interactif qui pose quelques questions (port, dossier de données, base de données, fuseau horaire, langue de l’OCR, utilisateur administrateur), télécharge les fichiers et lance la pile :

bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
Comme pour tout script lancé directement depuis Internet, ouvrez-le d’abord dans un navigateur ou avec curl -L …/install-paperless-ngx.sh | less pour voir ce qu’il fait.

Option 2 : installation manuelle, pas à pas

Cette voie donne la maîtrise complète des fichiers et s’intègre mieux à une gestion par dépôt Git ou par Portainer.

1. Créer le dossier du projet

sudo mkdir -p /opt/paperless/{consume,export}
sudo chown -R $USER:$USER /opt/paperless
cd /opt/paperless

2. Récupérer les fichiers officiels : le compose PostgreSQL, le fichier d’environnement et le fichier .env qui fixe le nom du projet.

B=https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose
curl -fsSL $B/docker-compose.postgres.yml -o docker-compose.yml
curl -fsSL $B/docker-compose.env          -o docker-compose.env
curl -fsSL $B/.env                        -o .env

Pour lire aussi les documents Office (Word, Excel, LibreOffice), prenez à la place le fichier docker-compose.postgres-tika.yml qui ajoute les conteneurs Tika et Gotenberg.

3. Vérifier le docker-compose.yml. Voici, sans ses commentaires, la version officielle au moment de la rédaction :

docker-compose.yml

services:
  broker:
    image: docker.io/valkey/valkey:9-alpine
    restart: unless-stopped
    volumes:
      - redisdata:/data

  db:
    image: docker.io/library/postgres:18
    restart: unless-stopped
    volumes:
      - pgdata:/var/lib/postgresql
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8000:8000"
    volumes:
      - data:/usr/src/paperless/data
      - media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DBENGINE: postgresql

volumes:
  data:
  media:
  pgdata:
  redisdata:

Trois points à connaître :

  • 8000:8000 : le port de gauche est celui exposé sur votre machine. Changez-le (par exemple 8283:8000) si 8000 est déjà pris.
  • ./consume et ./export sont des dossiers visibles sur l’hôte ; data et media sont des volumes gérés par Docker. Pour garder tous les documents dans un dossier précis (un montage NAS, par exemple), remplacez media:/usr/src/paperless/media par /chemin/vers/media:/usr/src/paperless/media.
  • Le mot de passe PostgreSQL par défaut est paperless. La base n’est pas exposée hors du réseau Docker, mais si vous le changez, modifiez aussi PAPERLESS_DBPASS du service webserver.

4. Régler le fichier d’environnement. Ouvrez docker-compose.env : seule la clé secrète est active par défaut, et elle doit être remplacée.

docker-compose.env

PAPERLESS_SECRET_KEY=remplacez-par-une-longue-chaine-aleatoire
PAPERLESS_TIME_ZONE=Europe/Paris
PAPERLESS_OCR_LANGUAGE=fra+eng
#PAPERLESS_URL=https://paperless.exemple.fr
#USERMAP_UID=1000
#USERMAP_GID=1000

Pour générer la clé : openssl rand -base64 48.

5. Télécharger les images et démarrer

docker compose pull
docker compose up -d
docker compose ps

Le premier démarrage prend une à deux minutes (migrations de la base). Suivez-le avec docker compose logs -f webserver.

6. Créer le compte administrateur

docker compose run --rm webserver createsuperuser

Saisissez l’identifiant, l’e-mail (facultatif) et le mot de passe, puis ouvrez http://ADRESSE_DU_SERVEUR:8000 et connectez-vous. Le compte créé ici est le seul au départ.

Réglages à faire dès le départ

Variable Rôle
PAPERLESS_SECRET_KEY Clé de signature des sessions. À changer absolument et à conserver : la modifier déconnecte tous les utilisateurs.
PAPERLESS_TIME_ZONE Fuseau horaire utilisé pour les dates des documents (Europe/Paris).
PAPERLESS_OCR_LANGUAGE Langues de l’OCR. fra+eng pour des documents en français et en anglais ; la valeur par défaut est eng, ce qui dégrade la reconnaissance des accents.
PAPERLESS_OCR_LANGUAGES Paquets de langues supplémentaires à installer dans le conteneur, pour les langues absentes de l’image de base.
PAPERLESS_URL URL publique, indispensable derrière un reverse proxy HTTPS.
USERMAP_UID / USERMAP_GID Identifiants de l’utilisateur Linux qui doit être propriétaire des fichiers des dossiers montés (id -u et id -g).

Après toute modification du fichier d’environnement : docker compose up -d recrée le conteneur avec les nouvelles valeurs.

Premiers pas

  1. Déposer des documents : glissez-les dans l’interface, ou copiez-les dans /opt/paperless/consume. Ils apparaissent après traitement, avec l’étiquette « Inbox » si elle existe.
  2. Créer vos attributs dans Gérer : correspondants (EDF, impôts, banque), types (facture, contrat, relevé), étiquettes. Pour chacun, choisissez l’algorithme de correspondance : « Automatique » s’appuie sur ce que vous avez déjà classé.
  3. Corriger les premiers classements : l’apprentissage automatique s’affine avec vos corrections. Quelques dizaines de documents suffisent à améliorer nettement les propositions.
  4. Enregistrer des vues (documents fiscaux, factures impayées) et les épingler sur le tableau de bord.
  5. Brancher le scanner ou une règle de messagerie pour automatiser l’arrivée des documents.
Liste des documents en tableau avec filtres par étiquette, correspondant, type et dates
Affichage en tableau : filtres par titre et contenu, étiquettes, correspondant, type de document, dates et permissions.

Sauvegarde et mise à jour

Sauvegarder

Ne vous contentez pas de copier les volumes Docker pendant que la base tourne. Utilisez l’exporteur intégré, qui produit les fichiers d’origine, les métadonnées et un manifeste restaurable :

docker compose exec -T webserver document_exporter ../export --no-progress-bar

Le résultat se trouve dans /opt/paperless/export : copiez ce dossier vers un second support, de préférence hors de la machine. Vous pouvez planifier la commande par cron chaque nuit. Pour restaurer, le conteneur propose la commande symétrique document_importer.

Gardez aussi une copie de docker-compose.yml, de docker-compose.env (clé secrète comprise) et du fichier .env.

Mettre à jour

cd /opt/paperless
docker compose pull
docker compose up -d

Lisez les notes de version avant les changements de version majeure : certaines évolutions de PostgreSQL ou de la base demandent une manipulation. Si vous voulez éviter les surprises, remplacez latest par un numéro de version précis dans le fichier compose et montez-le vous-même.

Sécurité et accès distant

  • Ne publiez pas le port 8000 directement sur Internet. Placez un reverse proxy HTTPS (Nginx, Apache, Caddy, Traefik) devant, et renseignez PAPERLESS_URL.
  • Pour un usage purement domestique, un VPN (WireGuard, Tailscale, ZeroTier) donne accès à la GED depuis l’extérieur sans l’exposer.
  • Créez un compte par personne plutôt que de partager le compte administrateur, et utilisez les permissions par document pour les dossiers sensibles.
  • Vos documents contiennent des données personnelles et financières : chiffrez le support des sauvegardes.

Pour conclure

Une heure suffit pour monter Paperless-ngx : quelques fichiers, trois conteneurs, un compte administrateur. Le vrai gain vient ensuite, quand un courrier numérisé retrouve tout seul son étiquette, son correspondant et sa date. Une fois l’habitude prise, le papier passe au scanner dès son arrivée et la question « où ai-je mis cette facture ? » disparaît.

idth= »494″ height= »359″ />
Le tableau de bord : vues enregistrées (factures impayées, documents fiscaux…), documents récents, boîte de réception et statistiques. Capture issue du dépôt officiel Paperless-ngx.

Lire la suite…

Categories: Logiciel, Tutoriel Tags: , ,

HomeBox : l’inventaire de la maison auto-hébergé, et son installation avec Docker

08/11/2026 Aucun commentaire

Si votre maison brûle ou est cambriolée, pourrez-vous dire à votre assureur ce que vous possédiez, combien ça valait et où c’était rangé ? La plupart d’entre nous répondraient « à peu près ». HomeBox est un outil libre, léger et auto-hébergé qui sert précisément à remplacer ce « à peu près » par un inventaire précis, avec photos, factures et notices.

À quoi sert HomeBox ?

HomeBox est un système d’inventaire et d’organisation pensé pour les particuliers. C’est la suite du projet HomeBox d’origine, aujourd’hui maintenue par SysAdmins Media sous licence AGPL v3. Il est écrit en Go, utilise SQLite et embarque son interface web : un seul conteneur suffit, sans base de données externe à administrer.

Ses usages typiques :

  • Justifier un sinistre auprès de l’assurance : liste des biens, photos, prix et dates d’achat, numéros de série, factures et garanties au même endroit.
  • Savoir où sont les choses : chaque objet est rattaché à un emplacement (pièce, meuble, étagère, boîte), ce qui évite le « on en a déjà un quelque part ».
  • Suivre garanties et entretien : dates d’achat, fin de garantie, échéances de maintenance.
  • Conserver la documentation : notices, éclatés, catalogues, manuels, joints directement à la fiche de l’objet.
  • Gérer un atelier ou une collection : outillage, machines, composants, avec des champs personnalisés (référence, marque, état, etc.).

Ce qu’il fait concrètement

  • Organisation par emplacements (hiérarchiques), étiquettes et champs personnalisés.
  • Recherche rapide dans tout l’inventaire.
  • Photos et pièces jointes (documents, garanties, factures).
  • Informations d’achat : date, prix, vendeur, durée de garantie.
  • Import et export CSV : on peut partir d’un tableur existant et ressortir ses données à tout moment.
  • Génération d’étiquettes avec QR code à coller sur les boîtes et les rangements.
  • Interface utilisable sur ordinateur, tablette et téléphone.
  • API REST, point de contrôle de santé (utile pour la supervision) et client MQTT pour les intégrations domotiques.

Hiérarchie des emplacements et fiche d'un objet dans HomeBox

Pourquoi l’auto-héberger ?

Un inventaire pour l’assurance contient la liste de tout ce qui a de la valeur chez vous, avec photos. C’est typiquement une donnée que l’on préfère garder chez soi plutôt que sur un service tiers. Il n’y a ni abonnement, ni limite d’objets, ni suivi. Contrepartie : la sauvegarde devient votre responsabilité, et il faut qu’elle soit hors de la maison, sinon un incendie emporte l’inventaire avec le reste (voir la section sauvegarde).

Lire la suite…