cwwk KVM - Serveur virtuel Debian 13 (vmtrix) Paperless-ngx
Paperless est l’un des meilleurs moyens de numériser vos documents et de réduire votre dépendance au papier. En plus de réduire votre dépendance au papier, il vous aide à organiser toutes vos informations. Il intègre la reconnaissance optique de caractères (OCR) et le balisage basé sur l’apprentissage automatique.
Paperless-ngx est une application libre, gratuite et auto-hébergeable qui permet de numériser et classer ses papiers afin de pouvoir les retrouver facilement. Ce logiciel GED propose de nombreuses fonctionnalités comme l’apprentissage automatique lui permettant de classer les documents avec le bon correspondant par exemple.
Machine virtuelle
KVM - Créer une machine virtuelle vmtrix debian 13 en ligne de commande
1
2
3
4
5
6
7
8
9
10
11
sudo virt-install \
--osinfo debiantesting \
--name vm-debian13 \
--memory 4096 \
--vcpus 1 \
--cpu host \
--hvm \
--disk path=/srv/kvm/libvirt/images/vm-debian13.qcow2,format=qcow2,size=45 \
--cdrom /home/yick/FreeUSB2To/iso/debian-13.0.0-amd64-netinst.iso \
--network bridge=br0 \
--graphics vnc,port=5910
Pour afficher la procédure d’installation
1
ssh -L 5900:127.0.0.1:5910 yick@192.168.0.205 -p 55205 -i /home/yann/.ssh/yick-ed25519
machine: vmtrix
root/rtyuiop
utilisateur: userx/userx49
vmtrix
On se connecte en utilisateur
1
ssh userx@192.168.10.182
SSH clés
Port: 55220
ssh fichier: vm-vmtrix
IP statique
Réseau: /etc/network/interfaces
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens18
#iface ens18 inet dhcp
iface ens18 inet static
address 192.168.10.220/24
gateway 192.168.10.1
# This is an autoconfigured IPv6 interface
iface ens18 inet6 auto
sudo
Passer en mode root: su -
Récapitulatif des commandes
1
2
apt install sudo
echo "userx ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/10-userx
Outils
nodejs, npm et yarn
node et npm
1
sudo apt install nodejs npm -y
Versions: nodejs --version && npm --version
v20.19.2
9.2.0
yarn
1
sudo npm install --global yarn
Version: yarn --version
1.22.22
docker et docker-compose
docker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Avant d'installer Docker, assurez-vous que votre système Debian est à jour
sudo apt update && sudo apt upgrade -y
#
# Comment installer le dernier docker dans Debian 13 trixie
# Prerequisites
sudo apt install apt-transport-https ca-certificates curl gpg
# Add Docker’s GPG Repo Key
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
# Add Docker Repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian trixie stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#
sudo apt update
# verify that the Docker repo was properly added
apt-cache policy
# Install Docker on Debian 13 (Trixie)
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Cela installe les composants Docker suivants :
- docker-ce : le moteur Docker lui-même.
- docker-ce-cli : un outil en ligne de commande qui vous permet de communiquer avec le démon Docker.
- containerd.io : un runtime de conteneur qui gère le cycle de vie du conteneur.
- docker-buildx-plugin : cette extension pour Docker améliore les capacités de création d’images, en mettant l’accent sur les créations multi-plateformes.
- docker-compose-plugin : un plugin de gestion de configuration qui aide à gérer les applications Docker multi-conteneurs à l’aide d’un seul fichier YAML.
Docker, utilisateur non root
1
2
sudo usermod -aG docker ${USER}
newgrp docker
Domaine local ged.home.arpa
Se connecter SSH sur cwwk
Créer les certificats
pour le domaine local ged.home.arpa
1
./gencert.sh ged.home.arpa
Copier les certificats
1
2
3
sudo mv ged.home.arpa.crt /etc/ssl/private/
sudo mv ged.home.arpa.key /etc/ssl/private/
rm *.home.arpa.*
DNS unbound
DNS unbound /etc/unbound/unbound.conf.d/local-unbound.conf
, ajouter ce qui suit:
1
2
local-data: "ged.home.arpa. 86400 IN A 192.168.0.205"
local-data-ptr: "192.168.10.205 86400 ged.home.arpa."
Redémarrer unbound
1
sudo systemctl restart unbound
Paperless-NGX
Caractéristiques
- Organisez et indexez vos documents numérisés avec des balises, des correspondants, des types et plus encore.
- Vos données sont stockées localement sur votre serveur et ne sont jamais transmises ou partagées.
- Effectue l’OCR sur vos documents, en ajoutant du texte consultable et sélectionnable, même aux documents numérisés avec seulement des images.
- Utilise le moteur Tesseract open-source pour reconnaître plus de 100 langues.
- Les documents sont enregistrés en format PDF/A qui est conçu pour le stockage à long terme, aux côtés des originaux non modifiés.
- Utilise l’apprentissage automatique pour ajouter automatiquement des étiquettes, des correspondants et des types de documents à vos documents.
- Prend en charge les documents PDF, les images, les fichiers texte, les documents Office (équivalents Word, Excel, PowerPoint et LibreOffice)1 et plus.
- Paperless stocke vos documents sur disque. Les noms de fichiers et les dossiers sont gérés par Paperless et leur format peut être configuré librement avec différentes configurations assignées à différents documents.
- Belle application web moderne qui dispose:
- Tableau de bord personnalisable avec statistiques.
- Filtrage par tags, correspondants, types et plus encore.
- Édition en vrac de tags, correspondants, types et plus.
- Téléchargement de documents dans l’application.
- Les vues personnalisables peuvent être enregistrées et affichées sur le tableau de bord et / ou la barre latérale.
- Prise en charge de champs personnalisés de différents types de données.
- Liens publics partageables avec expiration facultative.
- La recherche en texte complet vous aide à trouver ce dont vous avez besoin :
- “auto completion” suggère des mots pertinents à partir de vos documents.
- Les résultats sont triés par pertinence pour votre recherche.
- En surbrillance vous montre quelles parties du document correspondaient à la requête.
- Recherche de documents similaires (“Plus comme ceci”)
- Traitement des courriels1:
- importer des documents à partir de vos comptes email:
- Configurer plusieurs comptes et règles pour chaque compte.
- Après traitement, sans papier peut effectuer des actions sur les messages tels que le marquage comme lecture, suppression et plus.
- importer des documents à partir de vos comptes email:
- Un système intégré de permissions multi-utilisateurs robuste qui prend en charge les permissions ‘globales’ ainsi que par document ou objet.
- Un puissant système de workflow qui vous donne encore plus de contrôle.
- Optimisé pour les systèmes à plusieurs cœurs: Paperless-ngx consomme plusieurs documents en parallèle.
- Le vérificateur de santé intégré veille à ce que votre archive de documents soit en bonne santé.
Services optionnels
Tika
Paperless peut utiliser Tika et Gotenberg pour analyser et convertir des documents « Office » (tels que « .doc », « .xlsx » et « .odt »). Tika et Gotenberg sont également nécessaires pour permettre l’analyse des e-mails (.eml).
Si vous souhaitez utiliser cette fonctionnalité, vous devez fournir un serveur Tika et un serveur Gotenberg, configurer leurs points de terminaison et activer la fonctionnalité.
1
2
3
4
5
6
7
8
9
10
11
PAPERLESS_TIKA_ENABLED=<bool>
Activez (ou désactivez) l'analyseur Tika.
La valeur par défaut est false.
PAPERLESS_TIKA_ENDPOINT=<url>
Définit l'URL du point de terminaison où Paperless peut atteindre votre serveur Tika.
La valeur par défaut est « http://localhost:9998 ».
PAPERLESS_TIKA_GOTENBERG_ENDPOINT=<url>
Définissez l'URL du point de terminaison où Paperless peut atteindre votre serveur Gotenberg.
La valeur par défaut est « http://localhost:3000 ».
Si vous exécutez Paperless sur Docker, vous pouvez ajouter ces services au fichier Docker Compose (voir le fichier docker-compose.sqlite-tika.yml fourni à titre de référence).
Ajoutez les trois paramètres de configuration à votre configuration. Si vous utilisez Docker, il peut s’agir de la clé d’environnement du serveur web ou d’un fichier docker-compose.env. Les installations bare metal peuvent avoir un fichier .conf contenant les paramètres de configuration. Veillez à utiliser le format correct et faites attention à l’indentation si vous modifiez le fichier YAML.
Docker Paperless-NGX
Paperless-NGX est l’un des systèmes de gestion de documents open source les plus populaires. Il est conçu pour simplifier au maximum la conversion de vos documents physiques en archives en ligne consultables.
Cet outil regorge de fonctionnalités pour vous aider à stocker vos documents. Il permet notamment d’effectuer l’OCR sur vos documents afin de les convertir en texte indexable. Grâce à Paperless et à Tesseract, il peut effectuer cette OCR dans plus de 100 langues différentes.
En plus de prendre en charge les documents physiques, Paperless-NGX offre un support complet pour divers formats numériques, tels que les PDF, les images, les fichiers texte brut et même les documents Office des produits Microsoft ou de LibreOffice.
L’un des moyens les plus simples d’installer Paperless-NGX sur votre machine est d’utiliser Docker. Docker vous permet d’exécuter le logiciel et sa base de données en quelques minutes seulement.
L’autre avantage d’utiliser Docker pour héberger ce logiciel est que la mise à jour vers la dernière version se fait simplement en exécutant quelques commandes. Vous n’avez pas à vous soucier de l’installation de logiciels supplémentaires, car tout ce dont vous avez besoin est généralement inclus dans le conteneur.
Une fois Docker installé, nous allons passer à la création d’un répertoire dans lequel nous stockerons le fichier Docker Compose pour Paperless avec ses données.
Nous allons créer ce répertoire à l’emplacement «$HOME/paperless-ngx » à l’aide de la commande mkdir et de son option «-p».
1
mkdir -p $HOME/paperless-ngx
Accéder à ce nouveau répertoire
1
cd $HOME/paperless-ngx
Création docker-compose
1
nano docker-compose.yaml
Remplissez les lignes suivantes dans ce fichier. Ces lignes définissent les trois conteneurs que nous utiliserons et où les données seront stockées.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: docker.io/library/postgres:17
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
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
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
USERMAP_UID: 1000
USERMAP_GID: 1000
PAPERLESS_SECRET_KEY: xhpso......ggBBNE
PAPERLESS_TIME_ZONE: Europe/Paris
PAPERLESS_OCR_LANGUAGE: fra
PAPERLESS_URL: https://ged.home.arpa
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
# Gotenberg est orienté vers la conversion et la génération de fichiers PDF
# à partir de divers formats de documents via une API REST.
gotenberg:
image: docker.io/gotenberg/gotenberg:7.10
restart: unless-stopped
security_opt:
- no-new-privileges:true
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
# Tika est principalement utilisé pour l'extraction de contenu et
# de métadonnées de divers types de fichiers (PDF, docx, HTML,...).
tika:
image: docker.io/apache/tika:latest
restart: unless-stopped
security_opt:
- no-new-privileges:true
volumes:
data:
media:
pgdata:
redisdata:
Après avoir rempli le fichier Compose, vous pouvez enregistrer et quitter Nano en appuyant sur CTRL+ X, Y, puis ENTER.
Démarrage du conteneur Docker
Avec le fichier Docker Compose et son fichier de configuration écrits, le démarrage du conteneur Docker Paperless-NGX est désormais très simple. Pour lancer le logiciel, il vous suffit d’exécuter la commande suivante dans le terminal.
1
docker compose up -d
Mise à jour du conteneur Docker
L’un des principaux avantages de l’utilisation de Docker pour exécuter Paperless-NGX est la simplification du processus de mise à jour. Les étapes suivantes vous montreront comment extraire facilement le dernier conteneur et l’exécuter.
Pour mettre à jour vers la dernière version de Paperless-NGX, nous devons d’abord changer le répertoire dans lequel nous avons écrit le fichier Docker Compose dans ce tutoriel.
Vous pouvez accéder à ce dossier en utilisant la commande suivante.
1
cd $HOME/paperless-ngx
Une fois que vous êtes dans le bon répertoire, nous voudrons extraire la dernière version du conteneur en utilisant la commande ci-dessous. Cela téléchargera l’image la plus récente, mais ne mettra pas à niveau le conteneur déjà en cours d’exécution, ce qui nécessite une autre commande.
1
docker compose pull
Une fois la dernière image téléchargée, vous pouvez utiliser la commande ci-dessous pour arrêter le conteneur déjà en cours d’exécution et passer à la nouvelle version. Une fois le conteneur redémarré, vous devriez être sur la dernière version de Paperless-NGX.
1
docker compose up -d
Accéder à l’interface Web
Le conteneur Docker Paperless-NGX étant désormais opérationnel sur votre machine, vous souhaiterez désormais accéder à son interface Web, que vous utiliserez pour utiliser le logiciel.
Si vous ne connaissez pas l’adresse IP de votre machine, vous pouvez la récupérer à l’aide de la commande hostname .
1
hostname -I
13.Dans votre navigateur web préféré, accédez à l’adresse suivante http://<IPADDRESS>:8000
. Assurez-vous de remplacer «
http://<IPADDRESS>:8000
Lors de votre premier accès à l’interface web Paperless-ngx, vous serez invité à créer un compte administrateur.
Saisissez un nom d’utilisateur et un mot de passe pour accéder à Paperless
Après avoir renseigné vos informations, cliquez click sur le bouton «S’inscrire». La première fois que vous cliquerez sur ce bouton, vous serez automatiquement connecté.
Vous avez maintenant installé Paperless-ngx avec succès grâce à un conteneur Docker. Vous pouvez désormais commencer à importer et traiter vos documents. Cet outil vous montre rapidement sa puissance et son utilité, surtout si vous avez beaucoup de paperasse à gérer.
Connecté au conteneur Docker Paperless-NGX
Proxy nginx
Pour une utilisation dans le domaine local home.arpa
Créer un proxy nginx sur la machine cwwk pour un accès https
/etc/nginx/conf.d/ged.home.arpa.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
listen 443 ssl http2;
server_name ged.home.arpa;
ssl_certificate /etc/ssl/private/ged.home.arpa.crt;
ssl_certificate_key /etc/ssl/private/ged.home.arpa.key;
location / {
# Optionnel / Permet de limiter l'accès au réseau local
# allow 127.0.0.1;
# allow 192.168.1.0/24;
# deny all;
# Important pour uploader des documents
# Ici la taille des fichiers est limitée à 20 Mo
client_max_body_size 20M;
proxy_pass http://192.168.10.220:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Recharger nginx
1
sudo systemctl reload nginx
Accès https: https://ged.home.arpa