Offre Durée limitée : -10% sur tout le site* avec le code WELCOME10

Installer DocuSeal sur un VPS Linux avec Docker : la signature électronique auto-hébergée

Mis à jour le 31 octobre 2026 12 min de lecture 10 sections

DocuSeal : un logiciel de signature électronique open source

DocuSeal est un logiciel de signature électronique open source qui permet de signer des documents en ligne depuis n'importe quel appareil (ordinateur, tablette, smartphone). Publiée sous licence AGPLv3, cette plateforme de dématérialisation couvre le cycle complet de la signature des documents : création de formulaires PDF, envoi des demandes aux signataires par e-mail, collecte des signatures électroniques et conservation des documents signés. L'interface web est optimisée pour le mobile, et les signataires n'ont besoin d'aucune application pour apposer leur signature.

Auto-héberger cet outil de signature sur un VPS Linux offre un contrôle total sur les documents signés : aucune donnée ne transite par un prestataire tiers. C'est un avantage pour les entreprises, les associations et les administrateurs de serveurs qui traitent des contrats, des bons de commande, des devis acceptés ou des mandats SEPA. Les transactions restent confidentielles, la base de données vous appartient, et les documents signés sont conservés de manière sécurisée sur votre propre infrastructure.

Ce guide couvre le déploiement de DocuSeal avec Docker Compose sur un VPS Linux Ubuntu ou Debian, la configuration HTTPS automatique via Caddy, l'envoi des demandes de signature par SMTP, la sauvegarde de la base PostgreSQL et du volume de données, la mise à jour, le certificat de signature numérique, les types de signatures électroniques définis par le règlement eIDAS et la valeur juridique de la signature électronique en France.

Prérequis

  • Un VPS Linux sous Ubuntu 22.04 LTS ou Debian 12 avec un accès root en SSH ;
  • Docker et Docker Compose installés (guide d'installation de Docker sur un VPS) ;
  • Un nom de domaine avec un enregistrement DNS de type A pointant vers l'adresse IP du VPS (exemple : sign.exemple.fr) ;
  • Les ports 80 (HTTP) et 443 (HTTPS) ouverts dans le pare-feu (configurer UFW sur VPS Ubuntu) ;
  • Un accès SSH au VPS avec une connexion sécurisée par clé publique.

Déployer DocuSeal avec Docker Compose

Le dépôt officiel DocuSeal (GitHub : docusealco/docuseal) fournit un fichier docker-compose.yml prêt à l'emploi. Il déploie trois services : l'application DocuSeal (le logiciel de signature), une base de données PostgreSQL et un reverse proxy Caddy pour le HTTPS automatique. Créez un répertoire dédié et téléchargez le fichier depuis le terminal :

mkdir -p /opt/docuseal && cd /opt/docuseal
curl -o docker-compose.yml https://raw.githubusercontent.com/docusealco/docuseal/master/docker-compose.yml

Contenu du fichier docker-compose.yml officiel :

services:
  app:
    depends_on:
      postgres:
        condition: service_healthy
    image: docuseal/docuseal:latest
    ports:
      - 3000:3000
    volumes:
      - ./docuseal:/data/docuseal
    environment:
      - FORCE_SSL=${HOST}
      - DATABASE_URL=postgresql://postgres:postgres@postgres:5432/docuseal

  postgres:
    image: postgres:18
    volumes:
      - ./pg_data:/var/lib/postgresql/18/docker
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: docuseal
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

  caddy:
    image: caddy:latest
    command: caddy reverse-proxy --from $HOST --to app:3000
    ports:
      - 80:80
      - 443:443
      - 443:443/udp
    volumes:
      - ./caddy:/data/caddy
    environment:
      - HOST=${HOST}

Points importants dans ces configurations Docker Compose :

  • HOST : la variable d'environnement passée au démarrage. Elle contient le nom de domaine (sign.exemple.fr). Caddy l'utilise pour obtenir automatiquement un certificat TLS via Let's Encrypt ;
  • FORCE_SSL : redirige les requêtes HTTP vers HTTPS pour une connexion sécurisée. La valeur est le nom de domaine, identique à HOST ;
  • DATABASE_URL : chaîne de connexion vers la base PostgreSQL. Par défaut, le mot de passe est postgres. Remplacez-le par un mot de passe fort avant le premier démarrage ;
  • Volume ./docuseal : stocke les documents PDF, les signatures collectées et les fichiers de configuration de l'application ;
  • Volume ./pg_data : stocke les données de la base PostgreSQL (comptes, formulaires, métadonnées des documents signés) ;
  • Caddy : sert de reverse proxy HTTPS. Il obtient et renouvelle automatiquement les certificats TLS via Let's Encrypt. Aucune configuration Nginx ou Apache n'est nécessaire.

Avant de démarrer, remplacez le mot de passe PostgreSQL par défaut dans le fichier docker-compose.yml : modifiez la valeur de POSTGRES_PASSWORD et la partie postgres:postgres@ de DATABASE_URL pour qu'elles correspondent.

Démarrez les trois services en passant votre nom de domaine via la variable HOST :

sudo HOST=sign.exemple.fr docker compose up -d

Caddy obtient automatiquement un certificat TLS si le DNS pointe vers l'adresse IP du VPS et que les ports 80 et 443 sont ouverts. Ouvrez https://sign.exemple.fr dans un navigateur pour accéder à l'interface de création de compte. Le premier utilisateur inscrit devient administrateur de l'instance et peut commencer à signer des documents électroniquement.

Pour la syntaxe Docker Compose et la gestion des volumes : guide Docker Compose sur VPS Linux. Pour la configuration HTTPS d'un service auto-hébergé avec Nginx et Certbot (alternative à Caddy) : publier un service sur un VPS Linux en HTTPS.

Configurer SMTP pour l'envoi des demandes de signature

Sans configuration SMTP, DocuSeal ne peut pas envoyer les demandes de signature par e-mail aux signataires. Le SMTP est configurable depuis l'interface d'administration de DocuSeal (Settings) ou via des variables d'environnement dans le fichier docker-compose.yml.

Pour configurer SMTP via les variables d'environnement, ajoutez les lignes suivantes dans la section environment du service app :

      - SMTP_ADDRESS=smtp.exemple.fr
      - SMTP_PORT=587
      - SMTP_USERNAME=docuseal@exemple.fr
      - SMTP_PASSWORD=mot-de-passe-smtp
      - SMTP_FROM=docuseal@exemple.fr
      - SMTP_AUTHENTICATION=plain

Détail des variables :

  • SMTP_ADDRESS : le serveur SMTP (adresse ou nom d'hôte) ;
  • SMTP_PORT : le port SMTP, 587 par défaut (STARTTLS). Le chiffrement STARTTLS est activé par défaut ;
  • SMTP_USERNAME et SMTP_PASSWORD : les identifiants d'authentification pour le serveur de messagerie ;
  • SMTP_FROM : l'adresse expéditeur affichée dans les e-mails envoyés aux signataires ;
  • SMTP_AUTHENTICATION : méthode d'authentification (plain ou login).

Après modification des configurations, redémarrez les services :

cd /opt/docuseal
sudo HOST=sign.exemple.fr docker compose up -d

Testez l'envoi en créant un formulaire dans l'interface DocuSeal et en envoyant une demande de signature à votre propre adresse e-mail. Si le signataire reçoit le lien et parvient à signer le document, le SMTP est opérationnel.

Sauvegarder le volume et la base PostgreSQL

Deux éléments sont à sauvegarder pour garantir l'intégrité de votre instance DocuSeal : la base de données PostgreSQL (comptes, formulaires, métadonnées des signatures) et le volume de données de l'application (documents PDF signés, formulaires, configurations).

Pour la base PostgreSQL, utilisez pg_dump via le conteneur :

docker compose exec postgres pg_dump -U postgres docuseal > /opt/docuseal/backups/docuseal-$(date +%Y%m%d-%H%M).sql

Pour le volume de données (documents signés, formulaires et fichiers de configuration), archivez le répertoire ./docuseal :

mkdir -p /opt/docuseal/backups
tar czf /opt/docuseal/backups/docuseal-data-$(date +%Y%m%d-%H%M).tar.gz -C /opt/docuseal docuseal

Automatisez ces deux opérations avec une tâche cron (planifier des tâches automatiques avec cron et systemd timers) et synchronisez les sauvegardes vers un stockage distant (sauvegarder un VPS avec rsync). Pour chiffrer les archives avant de les exfiltrer : chiffrer les sauvegardes serveur Linux hors site.

Mettre à jour DocuSeal

La mise à jour du logiciel de signature consiste à tirer la dernière image Docker et à relancer les conteneurs. Les données persistent dans les volumes locaux :

cd /opt/docuseal
docker compose pull
sudo HOST=sign.exemple.fr docker compose up -d

Consultez les notes de version sur le dépôt GitHub docusealco/docuseal avant chaque mise à jour pour vérifier les éventuelles migrations de base de données ou changements de configurations.

Certificat de signature numérique et intégrité des documents

Lorsqu'un signataire appose sa signature électronique via DocuSeal, l'application intègre un certificat électronique dans le PDF signé. Ce certificat numérique repose sur un mécanisme de chiffrement asymétrique : une clé privée, détenue par le serveur, signe le document, et la clé publique correspondante permet à tout lecteur de vérifier que le document signé n'a pas été modifié après signature. Ce procédé de signature garantit l'intégrité du document et l'authentification de son origine.

Par défaut, la version auto-hébergée de DocuSeal utilise un certificat auto-signé généré automatiquement à l'installation. Ce certificat remplit sa fonction technique (intégrité du document signé), mais les lecteurs PDF comme Adobe Acrobat affichent un avertissement car l'autorité de certification n'est pas reconnue comme tiers de confiance.

DocuSeal permet d'importer son propre certificat de signature dans les paramètres de l'application (Settings > E-Signature > Upload Cert). Les formats acceptés sont .p12, .pfx et .der. Si le certificat est protégé par un mot de passe, renseignez-le lors de l'import. Un certificat émis par une autorité de certification reconnue (tiers de confiance) supprime l'avertissement dans Adobe Acrobat et renforce la confiance des signataires dans le document signé.

Les niveaux de signature supérieurs ne sont pas disponibles en version auto-hébergée gratuite (Open Source). Ils sont proposés par DocuSeal dans son offre Pro (sur docuseal.com) :

Niveau de signatureAuto-hébergé (gratuit, Open Source)Pro (Cloud ou On-Premises, payant)
Certificat auto-signéInclus par défautInclus
Certificat personnalisé (.p12, .pfx, .der)Importable dans SettingsImportable dans Settings
Certificat de confiance (reconnu Adobe)Non inclusInclus
Signature qualifiée eIDAS (QeS)Non disponibleDisponible (2 à 4 $ par signature)

Les types de signatures électroniques selon le règlement eIDAS

Le règlement européen eIDAS (n° 910/2014), relatif à la signature électronique et aux services de confiance pour les transactions électroniques, définit trois types de signatures électroniques. Comprendre ces niveaux permet de choisir le procédé de signature adapté à chaque usage.

Signature électronique simple

La signature électronique simple désigne toute donnée sous forme électronique utilisée par le signataire pour signer un document. Un clic sur un bouton de validation, une image de signature manuscrite tracée à la souris ou au doigt sur un écran, un nom tapé au clavier : tous ces procédés constituent une signature électronique simple. C'est le type de signature que DocuSeal auto-hébergé produit par défaut.

La signature simple a une valeur légale : elle ne peut pas être refusée comme preuve en justice au seul motif qu'elle est sous forme électronique (eIDAS, article 25, paragraphe 1). En cas de contestation, c'est à celui qui invoque le document signé électroniquement de prouver la fiabilité du procédé utilisé.

Signature électronique avancée

La signature électronique avancée (SEA) répond à quatre exigences définies par l'article 26 du règlement eIDAS : elle est liée au signataire de manière univoque, elle permet de l'identifier formellement, elle est créée avec des données sous le contrôle exclusif du signataire, et elle est liée aux données signées de telle sorte que toute modification ultérieure soit détectable. Ce type de signature nécessite un certificat électronique personnel et un dispositif de création sécurisé pour authentifier le signataire.

La signature électronique avancée est souvent exigée dans les marchés publics et les transactions à enjeu financier significatif. Les prestataires de services de confiance qualifiés, inscrits sur les listes nationales de confiance, délivrent les certificats nécessaires à ce niveau.

Signature électronique qualifiée

La signature électronique qualifiée (SEQ) est le niveau le plus élevé. Elle repose sur un certificat qualifié de signature électronique, délivré par un prestataire de services de confiance qualifié inscrit sur la liste de confiance nationale (en France, la liste est tenue par l'ANSSI). Le signataire doit s'authentifier avec un moyen fort (carte d'identité électronique, vérification vidéo ou en personne) avant d'obtenir son certificat qualifié.

La signature qualifiée a la même valeur juridique que la signature manuscrite dans tous les États membres de l'Union européenne (eIDAS, article 25, paragraphe 2). Elle bénéficie d'une présomption de fiabilité : en cas de litige, c'est à celui qui conteste la signature de prouver qu'elle n'est pas fiable.

DocuSeal auto-hébergé (version Open Source gratuite) produit des signatures simples. Les signatures qualifiées eIDAS sont disponibles dans l'offre Pro de DocuSeal, facturées entre 2 et 4 dollars par signature.

Valeur juridique de la signature électronique en France

Le cadre juridique relatif à la signature électronique en France repose sur le règlement européen eIDAS (n° 910/2014) et le Code civil. Voici les points essentiels pour un administrateur qui déploie un outil de signature électronique sur son serveur.

Principe de non-discrimination (eIDAS, article 25, paragraphe 1) : une signature électronique ne peut pas être refusée comme preuve en justice au seul motif qu'elle est sous forme électronique ou qu'elle ne satisfait pas aux exigences de la signature qualifiée. Signer un document électroniquement avec un logiciel de signature auto-hébergé comme DocuSeal produit une signature juridiquement recevable devant les tribunaux.

L'écrit électronique a la même valeur probante que l'écrit papier (Code civil, article 1366), à condition que la personne dont il émane puisse être identifiée et que le document soit conservé dans des conditions garantissant son intégrité. La dématérialisation d'un contrat ou d'un bon de commande ne réduit pas sa force probante.

La signature électronique (Code civil, article 1367) consiste en l'usage d'un procédé fiable d'identification garantissant le lien de la signature avec l'acte auquel elle s'attache. Lorsqu'une signature simple est contestée, c'est à celui qui s'en prévaut de démontrer la fiabilité du procédé utilisé : identité du signataire, intégrité du document signé, horodatage.

Seule la signature qualifiée bénéficie de la présomption de fiabilité (décret n° 2017-1416 du 28 septembre 2017, relatif à la signature électronique). En cas de contestation, une signature qualifiée est présumée fiable jusqu'à preuve du contraire. Une signature simple exige de son utilisateur qu'il apporte la preuve de sa fiabilité. Pour authentifier un signataire avec certitude dans le cadre d'un litige, seul un certificat qualifié délivré par un prestataire de services de confiance qualifié bénéficie de cette présomption.

Actes exclus (Code civil, article 1175, dans sa version en vigueur depuis le 1er janvier 2022, modifié par l'ordonnance n° 2021-1192 du 15 septembre 2021) : les actes sous seing privé relatifs au droit de la famille et des successions ne peuvent pas être établis sous forme électronique, sauf convention contresignée par avocats en présence des parties et déposée au rang des minutes d'un notaire. Les testaments olographes, les PACS et les mandats de protection future restent exclus de la signature électronique.

En résumé : DocuSeal auto-hébergé produit des signatures électroniques simples, juridiquement recevables en France pour la grande majorité des contrats commerciaux, bons de commande, devis acceptés, mandats SEPA et transactions courantes. La signature manuscrite et la signature électronique simple ont la même valeur probante, à condition de pouvoir prouver la fiabilité du procédé de signature. Pour les actes à fort enjeu financier ou juridique, ou pour les marchés publics exigeant une signature avancée ou qualifiée, consultez un avocat qui évaluera le type de signature adapté à votre situation.

Aller plus loin

DocuSeal est en place, accessible en HTTPS et sauvegardé. Pour compléter le déploiement de votre outil de signature électronique :

  • Durcissez le VPS : sécuriser un VPS Ubuntu (SSH, UFW, Fail2ban) ;
  • Si vous disposez déjà d'un reverse proxy Nginx ou Apache, retirez le service caddy du fichier docker-compose.yml, liez le port 3000 à 127.0.0.1 et configurez un virtualhost avec un certificat Let's Encrypt ;
  • Pour une instance légère avec peu de documents, DocuSeal fonctionne aussi avec SQLite : retirez le service postgres et la variable DATABASE_URL. DocuSeal utilise SQLite par défaut en l'absence de cette variable ;
  • Consultez les autres guides de la série auto-hébergement Docker : installer Vaultwarden (gestionnaire de mots de passe) et installer Nextcloud (cloud personnel).

FAQ

Combien de RAM faut-il pour héberger DocuSeal sur un VPS ?

DocuSeal avec PostgreSQL et Caddy consomme environ 500 Mo à 1 Go de RAM au repos. Un VPS avec 2 Go de RAM suffit pour une utilisation courante. Si vous hébergez d'autres services Docker sur le même VPS, prévoyez 4 Go pour disposer d'une marge confortable.

La signature produite par DocuSeal auto-hébergé est-elle juridiquement valable en France ?

Oui. Le règlement eIDAS (article 25) interdit de refuser une signature au seul motif qu'elle est électronique. Le Code civil français (articles 1366 et 1367) reconnaît l'écrit et la signature électroniques. DocuSeal auto-hébergé produit une signature simple, recevable devant les tribunaux. En cas de contestation, c'est à celui qui invoque la signature de prouver la fiabilité du procédé utilisé. Pour les actes à fort enjeu, consultez un avocat.

Peut-on utiliser SQLite au lieu de PostgreSQL avec DocuSeal ?

Oui. Par défaut, DocuSeal utilise SQLite en l'absence de la variable DATABASE_URL. Pour une instance avec peu de documents et un seul utilisateur, SQLite suffit. Pour un usage en équipe ou un volume important de documents signés, PostgreSQL est recommandé car il gère mieux les accès concurrents.

Comment importer un certificat de signature personnalisé dans DocuSeal ?

Dans l'interface DocuSeal, accédez à Settings, donnez un nom au certificat, téléversez le fichier au format .p12, .pfx ou .der et renseignez le mot de passe si le fichier est protégé. Un certificat émis par une autorité de certification reconnue supprime l'avertissement affiché par Adobe Acrobat à l'ouverture du PDF signé.

DocuSeal auto-hébergé est-il gratuit ?

Oui. La version auto-hébergée de DocuSeal est gratuite et publiée sous licence AGPLv3. Elle inclut la création de formulaires PDF, la collecte de signatures, la gestion des utilisateurs et la conservation illimitée des documents signés. L'offre cloud Pro (payante) ajoute les envois illimités par e-mail, les signatures qualifiées eIDAS et un certificat de signature reconnu par Adobe.

Les signataires ont-ils besoin d'un compte DocuSeal pour signer ?

Non. Les signataires reçoivent un lien par e-mail et signent directement dans leur navigateur, sur ordinateur, tablette ou smartphone. L'interface de signature est responsive et optimisée pour le mobile. Aucune application ni compte DocuSeal n'est nécessaire côté signataire.

Quelle est la différence entre signature électronique simple, avancée et qualifiée ?

Le règlement eIDAS définit trois types de signatures électroniques. La signature simple est un procédé d'identification de base (clic, image tracée à l'écran). La signature électronique avancée exige un lien univoque avec le signataire, une identification formelle et un contrôle exclusif du dispositif de création. La signature qualifiée repose sur un certificat qualifié délivré par un prestataire de services de confiance qualifié et a la même valeur juridique que la signature manuscrite. DocuSeal auto-hébergé produit des signatures simples.

DocuSeal convient-il pour signer des documents dans le cadre de marchés publics ?

Les marchés publics exigent souvent une signature électronique avancée ou qualifiée, selon la réglementation applicable. DocuSeal auto-hébergé produit des signatures simples, qui ne répondent pas à ces exigences. Pour signer électroniquement dans le cadre de marchés publics, un certificat qualifié de signature électronique délivré par un prestataire de services de confiance qualifié est généralement requis. Vérifiez le cahier des charges et consultez un avocat.

Comment fonctionne le certificat électronique intégré dans le PDF signé ?

DocuSeal intègre un certificat électronique dans chaque PDF signé. Ce certificat repose sur un chiffrement asymétrique : la clé privée du serveur signe le document et la clé publique permet de vérifier que le document n'a pas été modifié. Par défaut, le certificat est auto-signé. Vous pouvez importer votre propre certificat (.p12, .pfx, .der) dans les paramètres pour supprimer l'avertissement affiché par Adobe Acrobat.