Ce guide suit la documentation d'installation de Paperless-ngx, relue le 14 octobre 2026 ; la dernière version publiée est la 3.3.1. Il faut Docker Engine et son extension Compose.
Installer Paperless-ngx
Le projet propose un script interactif qui pose les fichiers et crée le compte. La méthode manuelle ci-dessous fait la même chose et laisse voir chaque fichier.
- Créez un dossier et placez-vous dedans :
mkdir ~/paperless && cd ~/paperless - Téléchargez les trois fichiers du dossier docker/compose du dépôt, la variante PostgreSQL, que la documentation conseille pour une nouvelle installation :
wget -O docker-compose.yml https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.postgres.yml
wget https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.env
wget https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/.env
- Réglez
docker-compose.envcomme décrit plus bas. - Dans
docker-compose.yml, remplacez la ligne"8000:8000"du servicewebserverpar"127.0.0.1:8000:8000", pour que l'interface ne soit joignable que depuis le serveur. - Récupérez les images, puis lancez :
docker compose pull, puisdocker compose up -d. - Ouvrez l'interface par le proxy ou un tunnel SSH ; à la première visite, elle demande de créer le compte administrateur.
Le fichier compose lance trois services : Paperless-ngx lui-même, PostgreSQL 18 et un serveur Valkey pour la file des tâches. L'image ghcr.io/paperless-ngx/paperless-ngx:latest suit toujours la dernière version stable, d'après la page d'administration citée plus bas.
Régler docker-compose.env
| Variable | Rôle |
|---|---|
PAPERLESS_SECRET_KEY | clé de signature des sessions, obligatoire |
PAPERLESS_URL | adresse publique, obligatoire derrière un proxy |
PAPERLESS_TIME_ZONE | fuseau horaire, UTC par défaut |
PAPERLESS_OCR_LANGUAGE | langue principale des documents, fra pour le français |
Le fichier rappelle comment produire la clé : python3 -c "import secrets; print(secrets.token_urlsafe(64))". Laisser la valeur d'exemple permettrait à un tiers de forger une session, prévient la documentation. L'image contient déjà la reconnaissance du français, avec l'anglais, l'allemand, l'italien et l'espagnol.
Envoyer des documents
Un document arrive dans Paperless-ngx de deux façons : glissé dans l'interface web, ou déposé dans le dossier consume à côté du fichier compose, que Paperless-ngx surveille. Un scanner qui enregistre ses fichiers dans ce dossier les fait donc entrer seul. Chaque document est lu, rendu cherchable, puis rangé.
Ouvrir l'interface en HTTPS
Paperless-ngx écoute sur le port 8000. Un proxy inverse lui donne une adresse en HTTPS ; avec Caddy installé sur le système, deux lignes suffisent :
papiers.votre-domaine.fr {
reverse_proxy 127.0.0.1:8000
}
Mettez alors la même adresse dans PAPERLESS_URL, puis relancez avec docker compose up -d. La mise en place du proxy et du certificat est détaillée dans Un certificat SSL sur son VPS.
Sauvegarder
L'outil d'export de Paperless-ngx copie les documents, la base et les réglages dans le dossier export, d'après la page d'administration :
docker compose exec -T webserver document_exporter ../export
L'option -T évite une erreur quand la commande tourne dans une tâche planifiée, ce que montre Planifier une tâche avec cron. Copiez ensuite le dossier export hors du serveur : une copie qui reste sur la même machine disparaît avec elle.
Mettre à jour
Faites une sauvegarde et attendez qu'aucun document ne soit en cours de traitement. Puis, dans le dossier : docker compose down, docker compose pull, docker compose up -d. Lisez les notes de version avant un changement de version majeure : le passage à la version 3 demandait des étapes manuelles, selon la documentation.
Sur un VPS Hubspace
Docker et Compose sont installés à la livraison, et le compte admin les utilise sans sudo. Le pare-feu ne laisse passer que 22, 80 et 443 depuis Internet : le port 8000 reste fermé même publié par Docker, et l'accès passe par le proxy. Le projet ne fixe pas de minimum chiffré ; la reconnaissance de texte utilise tous les cœurs disponibles, et un gros lot de documents en profite. Le disque principal est sauvegardé chaque jour, avec sept jours de conservation, mais l'export reste votre vraie sauvegarde. Pour vos photos, l'équivalent est Immich. Les serveurs VPS décrivent ce qui est livré.
Questions fréquentes
Paperless-ngx lit-il les documents en français ?
Oui. Le français fait partie des langues installées dans l'image. Réglez PAPERLESS_OCR_LANGUAGE=fra pour qu'il soit la langue principale de la reconnaissance.
Peut-il tourner avec peu de ressources ?
Oui, la documentation le fait tourner sur un Raspberry Pi. Elle conseille alors SQLite plutôt que PostgreSQL, un seul processus pour le serveur web et une reconnaissance limitée à la première page.
Faut-il exposer le port 8000 ?
Non. Publiez-le sur 127.0.0.1 et passez par un proxy inverse en HTTPS : vos documents ne circulent alors jamais en clair.
Articles liés
- Vaultwarden : installer et sécuriser avec DockerInstaller Vaultwarden avec Docker Compose sur un serveur Linux, derrière Caddy en HTTPS, fermer les inscriptions et protéger la page d'administration.
- Installer n8n avec Docker Compose sur un serveurInstaller n8n avec Docker Compose sur un serveur Linux, derrière Traefik en HTTPS, avec les bonnes variables pour les webhooks, sauvegarder et mettre à jour.
- Nextcloud Docker : installer Nextcloud sur un VPSInstaller Nextcloud avec Docker sur un VPS grâce à l'image officielle All-in-One, ouvrir son interface sans l'exposer et le servir sur votre domaine en HTTPS.