--- 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.