vault backup: 2026-03-12 20:49:17
This commit is contained in:
@@ -1,3 +0,0 @@
|
|||||||
aujourd'hui j'ai installé un client pour me connecté sur mon bus [[MQTT]].
|
|
||||||
j'ai utilisé [[mosquitto]]. ça marche super bien. il fonctionne sous [[linux]].
|
|
||||||
|
|
||||||
378
articles/2026/Déployer DocuSeal sur Debian 13.md
Normal file
378
articles/2026/Déployer DocuSeal sur Debian 13.md
Normal file
@@ -0,0 +1,378 @@
|
|||||||
|
---
|
||||||
|
title: Déployer DocuSeal sur Debian 13
|
||||||
|
description: Procédure permettant de déployer DocuSeal sur une machine virtuelle Debian 13 (Trixie) hébergée dans Proxmox, en utilisant Docker Compose.
|
||||||
|
tags:
|
||||||
|
- docuseal
|
||||||
|
- pdf
|
||||||
|
- signature
|
||||||
|
- autohebergement
|
||||||
|
date: 2026-03-12 20:26
|
||||||
|
lastmod: 2026-03-12 20:39
|
||||||
|
type:
|
||||||
|
- article
|
||||||
|
category:
|
||||||
|
- "[[Guide]]"
|
||||||
|
status: brouillon
|
||||||
|
---
|
||||||
|
|
||||||
|
# Déployer DocuSeal sur Debian 13
|
||||||
|
|
||||||
|
Ce document décrit la procédure complète permettant de déployer **DocuSeal** sur une machine virtuelle **Debian 13 (Trixie)** hébergée dans **Proxmox**, en utilisant **Docker Compose**.
|
||||||
|
|
||||||
|
L’objectif est d’obtenir une instance **auto-hébergée et souveraine** du service de signature électronique accessible via le domaine `sign.a5l.fr`.
|
||||||
|
|
||||||
|
L’utilisation de Docker permet :
|
||||||
|
|
||||||
|
- d’isoler l’application du système hôte,
|
||||||
|
|
||||||
|
- de simplifier les mises à jour,
|
||||||
|
|
||||||
|
- de faciliter les sauvegardes et la portabilité de l’instance.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 1. Création du conteneur LXC dans Proxmox
|
||||||
|
|
||||||
|
Créer une conteneur Debian 13 dans Proxmox.
|
||||||
|
|
||||||
|
Ressources recommandées :
|
||||||
|
|
||||||
|
- **2 vCPU**
|
||||||
|
|
||||||
|
- **2 Go de RAM**
|
||||||
|
|
||||||
|
- **10 Go de stockage minimum**
|
||||||
|
|
||||||
|
|
||||||
|
DocuSeal reste relativement léger, mais la mémoire est utile lors du traitement de documents PDF.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2. Installation de l’agent Proxmox
|
||||||
|
|
||||||
|
Se connecter au conteneur via SSH ou via la console Proxmox, puis mettre le système à jour :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt upgrade -y
|
||||||
|
```
|
||||||
|
|
||||||
|
Il est également conseillé d’installer quelques outils utiles :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt install -y curl ca-certificates gnupg
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 3. Installation de Docker
|
||||||
|
|
||||||
|
Debian 13 utilise une gestion moderne des dépôts sécurisés.
|
||||||
|
La méthode recommandée consiste à utiliser le dépôt officiel Docker.
|
||||||
|
|
||||||
|
## Ajout de la clé GPG Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
|
||||||
|
curl -fsSL https://download.docker.com/linux/debian/gpg \
|
||||||
|
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||||
|
|
||||||
|
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ajout du dépôt Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo \
|
||||||
|
"deb [arch=$(dpkg --print-architecture) \
|
||||||
|
signed-by=/etc/apt/keyrings/docker.gpg] \
|
||||||
|
https://download.docker.com/linux/debian \
|
||||||
|
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
||||||
|
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
```
|
||||||
|
|
||||||
|
## Installation du moteur Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
|
||||||
|
sudo apt install -y \
|
||||||
|
docker-ce \
|
||||||
|
docker-ce-cli \
|
||||||
|
containerd.io \
|
||||||
|
docker-buildx-plugin \
|
||||||
|
docker-compose-plugin
|
||||||
|
```
|
||||||
|
|
||||||
|
## Autoriser l’utilisateur courant à utiliser Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo usermod -aG docker $USER
|
||||||
|
```
|
||||||
|
|
||||||
|
Une **déconnexion / reconnexion de session** est nécessaire pour que ce changement prenne effet.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 4. Déploiement de DocuSeal
|
||||||
|
|
||||||
|
Créer un répertoire dédié à l’application.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/docuseal/data
|
||||||
|
cd ~/docuseal
|
||||||
|
```
|
||||||
|
|
||||||
|
Créer ensuite le fichier de configuration Docker Compose.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
Contenu recommandé :
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
docuseal:
|
||||||
|
image: docuseal/docuseal:latest
|
||||||
|
container_name: docuseal
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
|
||||||
|
environment:
|
||||||
|
HOST: sign.a5l.fr
|
||||||
|
DATABASE_URL: sqlite3:/data/docuseal.db
|
||||||
|
FORCE_SSL: true
|
||||||
|
```
|
||||||
|
|
||||||
|
Explications :
|
||||||
|
|
||||||
|
- **ports 3000:3000**
|
||||||
|
expose le service localement.
|
||||||
|
|
||||||
|
- **volume `./data`**
|
||||||
|
contient :
|
||||||
|
|
||||||
|
- la base SQLite
|
||||||
|
|
||||||
|
- les documents PDF
|
||||||
|
|
||||||
|
- les fichiers temporaires
|
||||||
|
|
||||||
|
- **HOST**
|
||||||
|
doit correspondre au nom de domaine utilisé.
|
||||||
|
|
||||||
|
- **FORCE_SSL**
|
||||||
|
impose l’utilisation de HTTPS lorsque l’application est derrière un reverse proxy.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lancement de l’application
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Vérifier que le conteneur fonctionne :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
|
```
|
||||||
|
|
||||||
|
L’application est alors accessible sur :
|
||||||
|
|
||||||
|
```
|
||||||
|
http://IP_DE_LA_VM:3000
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 5. Mise en place du reverse proxy HTTPS
|
||||||
|
|
||||||
|
Pour sécuriser les signatures électroniques, l’accès doit être protégé par **HTTPS**.
|
||||||
|
|
||||||
|
On utilise ici **Nginx** et **Let’s Encrypt (Certbot)**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install -y nginx certbot python3-certbot-nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Configuration du virtual host
|
||||||
|
|
||||||
|
Créer le fichier :
|
||||||
|
|
||||||
|
```
|
||||||
|
/etc/nginx/sites-available/docuseal
|
||||||
|
```
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
|
||||||
|
listen 80;
|
||||||
|
server_name sign.a5l.fr;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
|
||||||
|
proxy_pass http://127.0.0.1:3000;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
client_max_body_size 50M;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette configuration :
|
||||||
|
|
||||||
|
- redirige les requêtes HTTP vers DocuSeal
|
||||||
|
|
||||||
|
- transmet l’IP réelle de l’utilisateur
|
||||||
|
|
||||||
|
- autorise l’envoi de documents PDF volumineux.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Activation du site
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ln -s /etc/nginx/sites-available/docuseal /etc/nginx/sites-enabled/
|
||||||
|
sudo nginx -t
|
||||||
|
sudo systemctl reload nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Génération du certificat SSL
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo certbot --nginx -d sign.a5l.fr
|
||||||
|
```
|
||||||
|
|
||||||
|
Certbot :
|
||||||
|
|
||||||
|
- configure automatiquement HTTPS
|
||||||
|
|
||||||
|
- installe un renouvellement automatique du certificat.
|
||||||
|
|
||||||
|
|
||||||
|
Une fois terminé, l’interface est accessible via :
|
||||||
|
|
||||||
|
```
|
||||||
|
https://sign.a5l.fr
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 6. Sauvegardes et maintenance
|
||||||
|
|
||||||
|
## Sauvegarde des données
|
||||||
|
|
||||||
|
Les données importantes se trouvent dans :
|
||||||
|
|
||||||
|
```
|
||||||
|
~/docuseal/data
|
||||||
|
```
|
||||||
|
|
||||||
|
Ce dossier contient :
|
||||||
|
|
||||||
|
- la base SQLite
|
||||||
|
|
||||||
|
- les documents signés
|
||||||
|
|
||||||
|
- les métadonnées.
|
||||||
|
|
||||||
|
|
||||||
|
Il est recommandé de :
|
||||||
|
|
||||||
|
- sauvegarder ce dossier régulièrement
|
||||||
|
|
||||||
|
- utiliser les sauvegardes Proxmox.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Mise à jour de DocuSeal
|
||||||
|
|
||||||
|
La mise à jour de l’application est simple :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/docuseal
|
||||||
|
|
||||||
|
docker compose pull
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Avant toute mise à jour, il est recommandé de créer un **snapshot Proxmox**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 7. Configuration SMTP
|
||||||
|
|
||||||
|
Pour que DocuSeal puisse envoyer les invitations à signer, un serveur SMTP doit être configuré dans les paramètres de l’application.
|
||||||
|
|
||||||
|
Les informations à fournir :
|
||||||
|
|
||||||
|
- serveur SMTP
|
||||||
|
|
||||||
|
- port
|
||||||
|
|
||||||
|
- utilisateur
|
||||||
|
|
||||||
|
- mot de passe
|
||||||
|
|
||||||
|
- chiffrement TLS ou SSL
|
||||||
|
|
||||||
|
|
||||||
|
Sans configuration SMTP, les invitations par email ne fonctionneront pas.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 8. Points de sécurité recommandés
|
||||||
|
|
||||||
|
Plusieurs bonnes pratiques améliorent la sécurité de l’instance :
|
||||||
|
|
||||||
|
- limiter l’accès SSH à des clés publiques
|
||||||
|
|
||||||
|
- activer un pare-feu (`ufw` ou `nftables`)
|
||||||
|
|
||||||
|
- restreindre l’accès direct au port **3000**
|
||||||
|
|
||||||
|
- maintenir Debian et Docker à jour
|
||||||
|
|
||||||
|
- effectuer des sauvegardes régulières.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 9. Avantages de DocuSeal en auto-hébergement
|
||||||
|
|
||||||
|
DocuSeal présente plusieurs avantages pour un déploiement auto-hébergé :
|
||||||
|
|
||||||
|
- **Souveraineté des données** : les documents restent sur votre infrastructure.
|
||||||
|
|
||||||
|
- **Légèreté** : fonctionnement possible sur une petite VM.
|
||||||
|
|
||||||
|
- **Déploiement simple** grâce à Docker.
|
||||||
|
|
||||||
|
- **Maintenance limitée** : les mises à jour ne modifient pas le système hôte.
|
||||||
|
|
||||||
|
|
||||||
|
Cette architecture permet de disposer d’un service de signature électronique fiable, isolé et facilement maintenable dans une infrastructure Proxmox.
|
||||||
Reference in New Issue
Block a user