{"id":2770,"date":"2026-01-11T07:38:40","date_gmt":"2026-01-11T06:38:40","guid":{"rendered":"https:\/\/artheodoc.fr\/?page_id=2770"},"modified":"2026-01-11T07:38:40","modified_gmt":"2026-01-11T06:38:40","slug":"installation-de-paperless-ngx-avec-docker-compose-sous-debian-13","status":"publish","type":"page","link":"https:\/\/artheodoc.fr\/index.php\/installation-de-paperless-ngx-avec-docker-compose-sous-debian-13\/","title":{"rendered":"Installation de Paperless-ngx avec Docker Compose sous Debian 13"},"content":{"rendered":"\n<p><strong>Paperless-ngx<\/strong> est un syst\u00e8me de gestion de documents open source soutenu par la communaut\u00e9 qui transforme vos documents physiques en une archive en ligne consultable, vous permettant ainsi de conserver moins de papier.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Configuration de Debian 13<\/h1>\n\n\n\n<p>Pour les tests, j&rsquo;ai install\u00e9 une machine virtuelle sous Debian 13 avec VirtualBox sans interface graphique avec le serveur SSH install\u00e9 (j&rsquo;ai cr\u00e9\u00e9 l&rsquo;utilisateur <strong>dominique<\/strong>). Si vous avez des probl\u00e8mes pour utiliser certaines lignes de commande du Shell Bash modifiez la variable d\u2019environnement PATH. Vous pouvez commenter la ligne du sources.list qui correspond au CDROM d\u2019installation. Un serveur doit \u00eatre en IP fixe. \u00c9ventuellement, modifier le port SSH.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/artheodoc.fr\/index.php\/modification-de-la-variable-denvironnement-path-pour-pouvoir-utiliser-les-commandes-du-shell\/\" data-type=\"page\" data-id=\"34\" target=\"_blank\" rel=\"noreferrer noopener\">Modification de la variable d\u2019environnement PATH pour pouvoir utiliser les commandes du Shell<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/artheodoc.fr\/index.php\/modification-du-fichier-sources-list-sous-debian-11\/\" data-type=\"page\" data-id=\"38\" target=\"_blank\" rel=\"noreferrer noopener\">Modification du fichier sources.list sous Debian 11<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/artheodoc.fr\/index.php\/exemple-de-parametrages-en-ip-fixe-sous-debian-11\/\" data-type=\"page\" data-id=\"41\" target=\"_blank\" rel=\"noreferrer noopener\">Exemple de param\u00e9trages en IP fixe sous debian 11<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/artheodoc.fr\/index.php\/changer-le-port-pour-ssh\/\" data-type=\"page\" data-id=\"50\" target=\"_blank\" rel=\"noreferrer noopener\">Changer le port pour SSH<\/a><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Installation de Docker et Docker Compose<\/h1>\n\n\n\n<p>Alternative 100&nbsp;% Debian (sans d\u00e9p\u00f4t Docker)<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt install docker.io docker-compose<\/pre>\n\n\n\n<p>Pour que Docker d\u00e9marre automatiquement avec la machine&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl enable docker<\/pre>\n\n\n\n<p>Pour v\u00e9rifier que Docker est bien install\u00e9&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl status docker<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Utilisateur, groupe et dossier<\/h1>\n\n\n\n<p>En administrateur root (<strong>su<\/strong>).<\/p>\n\n\n\n<p>Ajouter mon utilisateur \u00ab\u00a0<strong>dominique<\/strong>\u00a0\u00bb cr\u00e9\u00e9 lors de l&rsquo;installation de Debian au groupe docker&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">usermod -aG docker dominique<\/pre>\n\n\n\n<p>Cr\u00e9ez le dossier&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir -p \/opt\/paperless-ngx<\/pre>\n\n\n\n<p>Attribuer le dossier \u00e0 l&rsquo;utilisateur et au groupe dominique&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chown dominique:dominique \/opt\/paperless-ngx<\/pre>\n\n\n\n<p>Aller dans le dossier&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/opt\/paperless-ngx<\/pre>\n\n\n\n<p>Copiez les fichiers docker-compose.yml et docker-compose.env dans ce dossier.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Configuration de docker-compose.yml<\/h1>\n\n\n\n<p>Modifiez le fichier <strong>docker-compose.yml<\/strong> pour utiliser la <strong>version 2.20.2<\/strong> et activer <strong>Redis<\/strong> (n\u00e9cessaire pour les r\u00e8gles\/automatisations) dans le dossier <strong>\/opt\/paperless-ngx<\/strong>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano docker-compose.yml<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">services:<br>  broker:<br>    image: redis:7<br>    restart: unless-stopped<br><br>  db:<br>    image: postgres:15<br>    restart: unless-stopped<br>    volumes:<br>      - pgdata:\/var\/lib\/postgresql\/data<br>    environment:<br>      POSTGRES_DB: paperless<br>      POSTGRES_USER: paperless<br>      POSTGRES_PASSWORD: paperless<br><br>  tika:<br>    image: apache\/tika:3.2.3.0-full<br>    restart: unless-stopped<br><br>  gotenberg:<br>    image: gotenberg\/gotenberg:8.10.0<br>    restart: unless-stopped<br>    command:<br>      - \"gotenberg\"<br>      - \"--chromium-disable-javascript=true\"<br>      - \"--chromium-allow-list=file:\/\/\/tmp\/.*\"<br>    environment:<br>      - LIBREOFFICE_TIMEOUT=120  # D\u00e9lai en secondes (par d\u00e9faut\u00a0: 30)<br><br>  webserver:<br>    image: ghcr.io\/paperless-ngx\/paperless-ngx:2.20.2<br>    restart: unless-stopped<br>    depends_on:<br>      - db<br>      - broker<br>      - tika<br>      - gotenberg<br>    ports:<br>      - \"8000:8000\"<br>    volumes:<br>      - data:\/usr\/src\/paperless\/data<br>      - media:\/usr\/src\/paperless\/media<br>      - .\/export:\/usr\/src\/paperless\/export<br>    env_file: docker-compose.env<br>    environment:<br>      PAPERLESS_REDIS: redis:\/\/broker:6379<br>      PAPERLESS_TASK_WORKERS: 2<br>      PAPERLESS_OCR_LANGUAGES: fra eng<br>      PAPERLESS_TIKA_ENABLED: 1<br>      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http:\/\/gotenberg:3000<br>      PAPERLESS_TIKA_ENDPOINT: http:\/\/tika:9998<br>    dns:<br>      - 8.8.8.8   # Google DNS<br>      - 1.1.1.1   # Cloudflare DNS<br>volumes:<br>  data:<br>  media:<br>  pgdata:<\/pre>\n\n\n\n<p>Apr\u00e8s modifications.<\/p>\n\n\n\n<p><code>CRTL<\/code> + <code>X<\/code> pour quitter l\u2019\u00e9diteur nano.<\/p>\n\n\n\n<p><code>O<\/code> pour confirmer l\u2019enregistrement des modifications.<\/p>\n\n\n\n<p><code>Entr\u00e9e<\/code> pour confirmer le nom du fichier.<\/p>\n\n\n\n<p>Ports d\u00e9finis \u00e0 <strong>8000<\/strong>.<\/p>\n\n\n\n<p><strong>la base de donn\u00e9es PostgreSQL<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Une base de donn\u00e9es nomm\u00e9e <strong>paperless<\/strong> est cr\u00e9\u00e9e.<\/li>\n\n\n\n<li>Un utilisateur <strong>paperless<\/strong> avec le mot de passe <strong>paperless<\/strong> est configur\u00e9.<\/li>\n<\/ul>\n\n\n\n<p>Si vous souhaitez changer le nom de la base, l\u2019utilisateur ou le mot de passe, modifiez les valeurs dans le <strong>docker-compose.yml<\/strong> et ajoutez les variables correspondantes dans <strong>docker-compose.env<\/strong>.<\/p>\n\n\n\n<p>Durant mes tests, j\u2019ai param\u00e9tr\u00e9 le timeout pour Gotenberg ainsi que les DNS.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Configuration de docker-compose.env<\/h1>\n\n\n\n<p>Voici un exemple complet de fichier docker-compose.env pour <strong>paperless-ngx v2.20.2<\/strong>, incluant les param\u00e8tres essentiels pour une installation fonctionnelle avec <strong>Redis<\/strong>, les r\u00e8gles\/automatisations, et l\u2019acc\u00e8s \u00e0 <strong>manage.py<\/strong>. Toujours dans le dossier <strong>\/opt\/paperless-ngx<\/strong>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano docker-compose.env<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"># Identifiants de l'utilisateur syst\u00e8me (UID\/GID)<br>USERMAP_UID=1000<br>USERMAP_GID=1000<br><br># Configuration de l'utilisateur administrateur<br>PAPERLESS_ADMIN_USER=admin<br>PAPERLESS_ADMIN_PASSWORD=test79<br>PAPERLESS_ADMIN_MAIL=mon.adresse@mail.com<br><br># Param\u00e8tres de base<br>PAPERLESS_TIME_ZONE=Europe\/Paris<br>PAPERLESS_OCR_LANGUAGES=fra eng<br>PAPERLESS_CONSUMER_POLLING=60<br>PAPERLESS_CONSUMER_RECURSIVE=true<br>PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=true<br><br># Configuration pour Redis (n\u00e9cessaire pour les r\u00e8gles\/automatisations)<br>PAPERLESS_REDIS=redis:\/\/broker:6379<br><br># Nombre de workers pour les t\u00e2ches en arri\u00e8re-plan<br>PAPERLESS_TASK_WORKERS=2<br><br># Chemins des volumes (adaptez selon votre configuration)<br>PAPERLESS_DATA_DIR=\/usr\/src\/paperless\/data<br>PAPERLESS_MEDIA_ROOT=\/usr\/src\/paperless\/media<br>PAPERLESS_EXPORT_DIR=\/usr\/src\/paperless\/export<br><br># Param\u00e8tres optionnels pour le traitement des documents<br>PAPERLESS_TIKA_ENABLED=1<br>PAPERLESS_TIKA_GOTENBERG_ENDPOINT=http:\/\/gotenberg:3000<br>PAPERLESS_TIKA_ENDPOINT=http:\/\/tika:9998<br><br># Param\u00e8tres pour l'authentification HTTP (si utilis\u00e9 derri\u00e8re un proxy)<br># PAPERLESS_ENABLE_HTTP_REMOTE_USER=true<br><br># Param\u00e8tres pour la base de donn\u00e9es (si vous utilisez PostgreSQL)<br>PAPERLESS_DBHOST=db<br>PAPERLESS_DBPORT=5432<br>PAPERLESS_DBNAME=paperless<br>PAPERLESS_DBUSER=paperless<br>PAPERLESS_DBPASS=paperless<\/pre>\n\n\n\n<p>Apr\u00e8s modifications.<\/p>\n\n\n\n<p><code>CRTL<\/code> + <code>X<\/code> pour quitter l\u2019\u00e9diteur nano.<\/p>\n\n\n\n<p><code>O<\/code> pour confirmer l\u2019enregistrement des modifications.<\/p>\n\n\n\n<p><code>Entr\u00e9e<\/code> pour confirmer le nom du fichier.<\/p>\n\n\n\n<p>Explications des param\u00e8tres cl\u00e9s&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>USERMAP_UID\/GID<\/strong>\u00a0: Doivent correspondre \u00e0 votre utilisateur Linux pour \u00e9viter les probl\u00e8mes de permissions (Dans mon cas <strong>1000<\/strong> v\u00e9rifi\u00e9 avec la commande\u00a0: <code>id dominique<\/code>).<\/li>\n\n\n\n<li><strong>PAPERLESS_ADMIN_*<\/strong>\u00a0: Identifiants de l\u2019administrateur de l\u2019interface web (Dans mon cas, utilisateur\u00a0: <strong>admin<\/strong>, mots de passe\u00a0: <strong>test79<\/strong>, adresse mail, \u00e0 personnaliser.).<\/li>\n\n\n\n<li><strong>PAPERLESS_REDIS<\/strong>\u00a0: Obligatoire pour les r\u00e8gles\/automatisations.<\/li>\n\n\n\n<li><strong>PAPERLESS_OCR_LANGUAGES<\/strong>\u00a0: Langues pour la reconnaissance optique (ex: fra eng pour fran\u00e7ais et anglais).<\/li>\n\n\n\n<li><strong>PAPERLESS_DATA_DIR\/MEDIA_ROOT\/EXPORT_DIR<\/strong>\u00a0: Chemins internes aux conteneurs, ne pas modifier sauf besoin sp\u00e9cifique.<\/li>\n\n\n\n<li><strong>PAPERLESS_TIKA_*<\/strong>\u00a0: \u00c0 activer si vous utilisez Tika et Gotenberg pour le traitement avanc\u00e9 des documents.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Lancement de paperless-ngx<\/h1>\n\n\n\n<p>D\u00e9marrez les conteneurs depuis le dossier <strong>\/opt\/paperless-ngx<\/strong>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose up -d<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Acc\u00e8s \u00e0 l\u2019interface et \u00e0 manage.py<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u2019interface web est accessible sur <strong>http:\/\/adresse_IP:8000<\/strong> (Dans mon cas, utilisateur\u00a0: <strong>admin<\/strong>, mots de passe\u00a0: <strong>test79<\/strong>).<\/li>\n<\/ul>\n\n\n\n<p><strong>Pour acc\u00e9der \u00e0 manage.py (par exemple pour lancer des commandes Django)<\/strong><\/p>\n\n\n\n<p>docker compose exec webserver python3 manage.py [commande]<\/p>\n\n\n\n<p>Exemple pour cr\u00e9er un superutilisateur&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/opt\/paperless-ngx<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose exec webserver python3 manage.py createsuperuser<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Tika et Gotenberg<\/h1>\n\n\n\n<p>Pourquoi ces services&nbsp;?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tika\u00a0: Permet d\u2019extraire le texte et les m\u00e9tadonn\u00e9es de nombreux types de fichiers (PDF, Office, etc.).<\/li>\n\n\n\n<li>Gotenberg\u00a0: Convertit les fichiers (comme les emails .eml) en PDF pour un traitement optimal par paperless-ngx.<\/li>\n<\/ul>\n\n\n\n<p><br>Consulter les logs Tika et Gotenberg&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose logs tika gotenberg<\/pre>\n\n\n\n<p>Pour voir la derni\u00e8re version de Tika&nbsp;:<\/p>\n\n\n\n<p><a href=\"https:\/\/hub.docker.com\/r\/apache\/tika\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/hub.docker.com\/r\/apache\/tika<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Exemple si l\u2019on veut modifier le fichier docker-compose.yml<\/h1>\n\n\n\n<p>Si on veut modifier une configuration d\u00e9j\u00e0 existante&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/opt\/paperless-ngx<\/pre>\n\n\n\n<p>arr\u00eater nos conteneurs Docker&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose down<\/pre>\n\n\n\n<p>Red\u00e9marrer les conteneurs apr\u00e8s avoir modifi\u00e9 les fichiers de configuration&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose up -d<\/pre>\n\n\n\n<p>Pour v\u00e9rifier&nbsp;le r\u00e9sultat&nbsp;dans mon cas&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker logs -f paperless-ngx-webserver-1<\/pre>\n\n\n\n<p>Pour lister les conteneurs&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker ps<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Voir \u00e9galement les commandes Docker<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/artheodoc.fr\/index.php\/les-commandes-docker\/\" data-type=\"page\" data-id=\"1990\" target=\"_blank\" rel=\"noreferrer noopener\">Les commandes Docker<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Pour recevoir les fichiers depuis une adresse mail<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1 &#8211; docker-compose.env (optionnel)<\/h2>\n\n\n\n<p>Je ne suis pas convaincu de l&rsquo;utilit\u00e9 de cette configuration dans mon cas. Pour le moment, je teste sans l&rsquo;utiliser. Je conserve n\u00e9anmoins ces informations<\/p>\n\n\n\n<p>Je passe directement \u00e0 la \u00ab\u00a0Configuration depuis l&rsquo;interface WEB des comptes de messageries\u00a0\u00bb.<\/p>\n\n\n\n<p>On peut ajouter \u00e0 la fin du fichier <strong>docker-compose.env<\/strong> la configuration IMAP d&rsquo;une adresse mail (Mailo par exemple)&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/opt\/paperless-ngx<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">nano docker-compose.env<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"># Configuration IMAP pour Mailo<br>PAPERLESS_MAIL_SERVER=mail.mailo.com<br>PAPERLESS_MAIL_PORT=993<br>PAPERLESS_MAIL_USERNAME=mon.adresse@mailo.com<br>PAPERLESS_MAIL_PASSWORD=mon-mot-de-passe<br>PAPERLESS_MAIL_USE_SSL=true<br>PAPERLESS_MAIL_USE_TLS=false<br>PAPERLESS_MAIL_FOLDER=INBOX<br>PAPERLESS_MAIL_FILTER=\"\"<\/pre>\n\n\n\n<p>Apr\u00e8s modifications.<\/p>\n\n\n\n<p><code>CRTL<\/code> + <code>X<\/code> pour quitter l\u2019\u00e9diteur nano.<\/p>\n\n\n\n<p><code>O<\/code> pour confirmer l\u2019enregistrement des modifications.<\/p>\n\n\n\n<p><code>Entr\u00e9e<\/code> pour confirmer le nom du fichier.<\/p>\n\n\n\n<p>Si vous modifiez une configuration existante, arr\u00eatez puis recr\u00e9ez les conteneurs Docker comme vu pr\u00e9c\u00e9demment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2 &#8211; Configuration depuis l&rsquo;interface WEB des comptes de messageries<\/h2>\n\n\n\n<p>J&rsquo;ai test\u00e9 la configuration de deux adresses mail Mailo avec cette proc\u00e9dure.<\/p>\n\n\n\n<p>J&rsquo;ai ensuite poursuivi la configuration depuis l&rsquo;interface WEB.<\/p>\n\n\n\n<p>Courriel ==&gt; Comptes de messagerie ==&gt; <code>Ajouter un compte<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nom\u00a0: <em><strong>mon.adresse@mailo.com<\/strong><\/em><\/li>\n\n\n\n<li>Serveur IMAP\u00a0: <strong>mail.mailo.com<\/strong><\/li>\n\n\n\n<li>Port IMAP\u00a0: <strong>993<\/strong><\/li>\n\n\n\n<li>S\u00e9curit\u00e9 IMAP\u00a0: <strong>SSL<\/strong><\/li>\n\n\n\n<li>Nom d&rsquo;utilisateur\u00a0: <em><strong>mon.adresse@mailo.com<\/strong><\/em><\/li>\n\n\n\n<li>Mot de passe\u00a0: <em><strong>mon-mot-de-passe<\/strong><\/em><\/li>\n\n\n\n<li>Le mot de passe est un jeton d&rsquo;authentification\u00a0: <strong>D\u00e9coch\u00e9<\/strong><\/li>\n\n\n\n<li>Jeu de caract\u00e8res\u00a0: <strong>UTF-8<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Puis <code>Enregister<\/code><\/p>\n\n\n\n<p>Courriel ==&gt; R\u00e8gles de courriel ==&gt; <code>Ajouter une r\u00e8gle<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nom\u00a0: <em><strong>mon.adresse@mailo.com<\/strong><\/em> <em>par exemple<\/em><\/li>\n\n\n\n<li>Compte\u00a0: <em><strong>mon.adresse@mailo.com<\/strong><\/em><\/li>\n\n\n\n<li>Ordre\u00a0: <strong>1<\/strong> <em>par exemple<\/em><\/li>\n\n\n\n<li>\u00c2ge maximum (jours)\u00a0: <strong>30<\/strong> <em>par exemple<\/em><\/li>\n<\/ul>\n\n\n\n<p>J&rsquo;ai conserv\u00e9 les options par d\u00e9faut pour le reste&#8230;<\/p>\n\n\n\n<p>Puis <code>Enregister<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3 &#8211; Plus d&rsquo;informations pour les d\u00e9pannages<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configurer un seul compte dans docker-compose.env (optionnel, je n&rsquo;utilise pas).<\/li>\n\n\n\n<li>Ajouter tous les comptes suppl\u00e9mentaires dans l\u2019interface graphique.<\/li>\n<\/ul>\n\n\n\n<p>Depuis le dossier&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/opt\/paperless-ngx<\/pre>\n\n\n\n<p>V\u00e9rifier les logs pour confirmer le traitement&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose logs webserver<\/pre>\n\n\n\n<p>Tester la connectivit\u00e9 avec curl (pour v\u00e9rifier si le serveur IMAP r\u00e9pond, celui de mailo dans mon cas)&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose exec webserver curl -v telnet:\/\/imap.mailo.com:993<\/pre>\n\n\n\n<p>Quitter avec <code>CTRL<\/code> + <code>C<\/code><\/p>\n\n\n\n<p>j&rsquo;ai rencontr\u00e9 des probl\u00e8mes de DNS&#8230;<\/p>\n\n\n\n<p>Pour voir les serveurs DNS utilis\u00e9s par le conteneur&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose exec webserver cat \/etc\/resolv.conf<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Pour v\u00e9rifier le bon fonctionnement des comptes de messagerie<\/h3>\n\n\n\n<p>Depuis l\u2019interface WEB&nbsp;:<\/p>\n\n\n\n<p>Courriel ==&gt; Comptes de messagerie ==&gt; <code>Modifier<\/code> ==&gt; <code>Tester<\/code><\/p>\n\n\n\n<p>Journaux ==&gt; mail.log<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Arr\u00eat et red\u00e9marrage manuel du serveur<\/h1>\n\n\n\n<p>Se d\u00e9connecter de l&rsquo;interface WEB.<\/p>\n\n\n\n<p>Pour arr\u00eater les conteneurs Docker depuis la console ou depuis un terminal en SSH.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1 &#8211; Arr\u00eat<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/opt\/paperless-ngx<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose down<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cette commande arr\u00eate tous les conteneurs (paperless-ngx, Redis, PostgreSQL, Tika, Gotenberg) de mani\u00e8re propre, sans perdre de donn\u00e9es.<\/li>\n<\/ul>\n\n\n\n<p>Si vous avez configur\u00e9 le <strong>service<\/strong>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl stop paperless-ngx.service<\/pre>\n\n\n\n<p>V\u00e9rifier que les conteneurs sont bien arr\u00eat\u00e9s&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker ps<\/pre>\n\n\n\n<p>Red\u00e9marrer le serveur (si n\u00e9cessaire)&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose up -d<\/pre>\n\n\n\n<p>En administrateur root (<strong>su<\/strong>).<\/p>\n\n\n\n<p>Red\u00e9marrage du serveur sous Debian 13&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">shutdown -r now<\/pre>\n\n\n\n<p>Arr\u00eat du serveur sous Debian 13&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">shutdown -h now<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2 &#8211; Red\u00e9marrage<\/h2>\n\n\n\n<p>Si vous n&rsquo;utilisez pas le d\u00e9marrage automatique du service.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/opt\/paperless-ngx<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose up -d<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Activer le service Docker au d\u00e9marrage de Debian 13<\/h1>\n\n\n\n<p>V\u00e9rifiez que Docker est configur\u00e9 pour d\u00e9marrer automatiquement en administrateur root (<strong>su<\/strong>)&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl enable docker<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cela garantit que le d\u00e9mon Docker est lanc\u00e9 d\u00e8s le d\u00e9marrage du syst\u00e8me.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">1 &#8211; Cr\u00e9er un service syst\u00e8me pour paperless-ngx<\/h2>\n\n\n\n<p>Cr\u00e9ez un fichier de service pour g\u00e9rer le d\u00e9marrage automatique de vos conteneurs paperless-ngx en administrateur root (<strong>su<\/strong>)&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano \/etc\/systemd\/system\/paperless-ngx.service<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">[Unit]<br>Description=Paperless-ngx Docker Compose<br>Requires=docker.service<br>After=docker.service<br><br>[Service]<br>Type=oneshot<br>RemainAfterExit=yes<br>WorkingDirectory=\/opt\/paperless-ngx<br>ExecStart=\/usr\/bin\/docker compose up -d<br>ExecStop=\/usr\/bin\/docker compose down<br>TimeoutStartSec=0<br><br>[Install]<br>WantedBy=multi-user.target<\/pre>\n\n\n\n<p>Apr\u00e8s modifications.<\/p>\n\n\n\n<p><code>CRTL<\/code> + <code>X<\/code> pour quitter l\u2019\u00e9diteur nano.<\/p>\n\n\n\n<p><code>O<\/code> pour confirmer l\u2019enregistrement des modifications.<\/p>\n\n\n\n<p><code>Entr\u00e9e<\/code> pour confirmer le nom du fichier.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2 &#8211; Activer le service paperless-ngx<\/h2>\n\n\n\n<p>Activez le service pour qu\u2019il d\u00e9marre automatiquement en administrateur root (<strong>su<\/strong>)&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl enable paperless-ngx.service<\/pre>\n\n\n\n<p>D\u00e9marrer le service imm\u00e9diatement (optionnel dans le cas o\u00f9 Paperless est arr\u00eat\u00e9)&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl start paperless-ngx.service<\/pre>\n\n\n\n<p>Pour v\u00e9rifier que tout fonctionne&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl status paperless-ngx.service<\/pre>\n\n\n\n<p>Pour l&rsquo;arr\u00eat du service&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl stop paperless-ngx.service<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3 &#8211; Voir \u00e9galement les services Linux<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/artheodoc.fr\/index.php\/les-services-linux-avec-systemd\/\" data-type=\"page\" data-id=\"1979\" target=\"_blank\" rel=\"noreferrer noopener\">Les services Linux avec systemd<\/a><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Installations r\u00e9alis\u00e9es<\/h1>\n\n\n\n<p>J\u2019ai commenc\u00e9 par une installation sur une machine virtuelle sous VirtualBox sur mon ordinateur personnel sous Linux Mint. Maintenant, je travaille sur une installation sur un serveur sous Proxmox. La machine virtuelle se trouvant derri\u00e8re un pare-feu IPFire, j\u2019ai d\u00fb autoriser l\u2019acc\u00e8s via le port 8000. L\u2019envoi de documents par mail a bien fonctionn\u00e9.<\/p>\n\n\n\n<p>Dominique Renaudeau<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Paperless-ngx est un syst\u00e8me de gestion de documents open source soutenu par la communaut\u00e9 qui transforme vos documents physiques en une archive en ligne consultable, vous permettant ainsi de conserver moins de papier. Configuration de Debian 13 Pour les tests, j&rsquo;ai install\u00e9 une machine virtuelle sous Debian 13 avec VirtualBox sans interface graphique avec le [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2770","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/pages\/2770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/comments?post=2770"}],"version-history":[{"count":1,"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/pages\/2770\/revisions"}],"predecessor-version":[{"id":2771,"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/pages\/2770\/revisions\/2771"}],"wp:attachment":[{"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/media?parent=2770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}