Intermédiaire ⏱ 30 min de mise en œuvre Mis à jour le 11 août 2026

Héberger DocuSeal : signature électronique et formulaires de documents open source

Faire signer contrats et formulaires en ligne, sans confier vos documents à un SaaS étranger. DocuSeal est une alternative open source à DocuSign. Voici comment l'héberger.

Faire signer des contrats, avenants RH, mandats ou formulaires en ligne ne devrait pas obliger une entreprise à confier ses documents sensibles à un SaaS étranger. DocuSeal apporte une réponse open source et auto-hébergeable : l’organisation conserve la maîtrise de l’application, de ses données et de ses sauvegardes.

DocuSeal permet de préparer un PDF, d’y placer des champs, puis d’inviter plusieurs personnes à le compléter et à le signer depuis leur navigateur. Le document finalisé reste hébergé sur votre propre infrastructure.

Une prudence juridique s’impose toutefois dès le départ : comme avec Documenso, la valeur probante dépend du processus utilisé et du niveau de signature prévu par le règlement eIDAS. Une signature électronique peut être simple, avancée ou qualifiée. Un déploiement standard de DocuSeal ne doit pas être présenté automatiquement comme une signature qualifiée. Faites valider le dispositif selon vos documents, votre secteur et le niveau de risque associé.

Ce que permet DocuSeal

DocuSeal réunit les fonctions essentielles d’une plateforme de signature électronique :

  • Importer un document PDF et le transformer en modèle réutilisable.
  • Ajouter des champs de signature, texte, date ou case à cocher.
  • Définir les champs obligatoires et leur signataire.
  • Envoyer une demande de signature par courrier électronique.
  • Faire signer le document directement dans un navigateur.
  • Produire un PDF finalisé une fois le parcours terminé.
  • Créer des formulaires de documents accessibles depuis un lien.
  • Suivre l’état des demandes et des signatures.

Un service RH peut ainsi préparer un modèle de contrat, placer les zones réservées au salarié et à l’employeur, puis le réutiliser pour chaque embauche. Une PME peut faire de même avec ses devis, attestations, autorisations ou formulaires internes.

L’auto-hébergement permet surtout de choisir où résident les documents. Chez TalCloud, l’objectif est de proposer une infrastructure française avec des serveurs situés en France, du stockage NVMe, une protection Anti-DDoS Netrix et un support humain. Les offres VPS démarrent à 4,99 € par mois et peuvent accueillir ce type de service sans recours à un GPU.

DocuSeal ou Documenso : deux options open source

DocuSeal et Documenso couvrent tous deux le besoin de signature électronique open source. Ils permettent de préparer des documents, de collecter des informations et d’organiser un parcours de signature sans dépendre exclusivement d’une plateforme propriétaire comme DocuSign.

Le choix peut se faire selon l’interface préférée, les intégrations recherchées, le rythme des mises à jour ou l’expérience de votre équipe. Pour un besoin classique de contrats et de formulaires, il n’y a pas de mauvais choix de principe. Testez les deux solutions avec vos propres modèles et retenez celle qui s’intègre le mieux à vos procédures.

Dans les deux cas, l’auto-hébergement ne remplace pas l’analyse juridique du mécanisme de signature. La souveraineté des données et le niveau eIDAS sont deux sujets liés, mais distincts.

Prérequis pour héberger DocuSeal

Prévoyez les éléments suivants :

  • Un VPS Linux avec Docker et le module Docker Compose (voir installer Docker sur un VPS).
  • Un nom de domaine ou un sous-domaine, par exemple signature.exemple.fr.
  • Un enregistrement DNS pointant vers l’adresse IP du serveur.
  • Un relais SMTP opérationnel pour envoyer les demandes de signature.
  • Un reverse proxy capable de fournir une connexion HTTPS.
  • Une stratégie de sauvegarde externe au VPS.
  • Une base PostgreSQL pour un environnement de production.

DocuSeal fonctionne avec SQLite par défaut, ce qui convient à une démonstration ou à un essai local. Pour une utilisation durable à plusieurs utilisateurs, PostgreSQL apporte une exploitation plus robuste. MySQL est également envisageable si votre environnement le privilégie.

Déployer DocuSeal avec Docker Compose

Créez un répertoire de travail sur le VPS :

mkdir -p /opt/docuseal
cd /opt/docuseal

Générez une clé secrète longue :

openssl rand -hex 64

Placez le résultat dans un fichier .env, avec des identifiants propres à votre installation :

POSTGRES_PASSWORD=remplacer-par-un-mot-de-passe-long
SECRET_KEY_BASE=coller-ici-la-cle-generee
SMTP_ADDRESS=smtp.exemple.fr
SMTP_PORT=587
SMTP_USERNAME=docuseal@exemple.fr
SMTP_PASSWORD=remplacer-par-le-mot-de-passe-smtp
SMTP_DOMAIN=exemple.fr
SMTP_FROM=docuseal@exemple.fr

Créez ensuite compose.yaml :

services:
  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: docuseal
      POSTGRES_USER: docuseal
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U docuseal -d docuseal"]
      interval: 10s
      timeout: 5s
      retries: 5

  docuseal:
    image: docuseal/docuseal:latest
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    ports:
      - "127.0.0.1:3000:3000"
    environment:
      DATABASE_URL: postgresql://docuseal:${POSTGRES_PASSWORD}@postgres:5432/docuseal
      SECRET_KEY_BASE: ${SECRET_KEY_BASE}
      SMTP_ADDRESS: ${SMTP_ADDRESS}
      SMTP_PORT: ${SMTP_PORT}
      SMTP_USERNAME: ${SMTP_USERNAME}
      SMTP_PASSWORD: ${SMTP_PASSWORD}
      SMTP_DOMAIN: ${SMTP_DOMAIN}
      SMTP_FROM: ${SMTP_FROM}
      SMTP_AUTHENTICATION: plain
      SMTP_ENABLE_STARTTLS_AUTO: "true"
    volumes:
      - docuseal_data:/data

volumes:
  postgres_data:
    name: docuseal_postgres_data
  docuseal_data:
    name: docuseal_data

Protégez le fichier contenant les secrets, puis démarrez les conteneurs :

chmod 600 .env
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=100 docuseal

Le port 3000 écoute uniquement sur 127.0.0.1. DocuSeal ne sera donc pas directement exposé sur Internet : les visiteurs passeront par le reverse proxy HTTPS.

Vérifiez les noms des variables SMTP dans la documentation correspondant à la version déployée avant la mise en production. Testez ensuite l’envoi vers plusieurs fournisseurs de messagerie afin de détecter les problèmes d’authentification, de SPF, de DKIM ou de classement en courrier indésirable.

Effectuer le premier accès

Une fois le reverse proxy configuré, ouvrez l’adresse publique de DocuSeal et créez le premier compte administrateur. Utilisez une adresse professionnelle contrôlée par l’organisation et un mot de passe unique conservé dans un gestionnaire de secrets.

Contrôlez immédiatement les paramètres généraux, l’URL publique et l’identité utilisée pour les courriers électroniques. Un mauvais domaine public peut produire des liens de signature incorrects. Envoyez une demande de test avant d’intégrer des documents réels.

Créer un modèle et envoyer un document

Depuis l’interface, créez un modèle puis importez le PDF à faire signer. DocuSeal affiche les pages du document et permet d’y positionner les champs nécessaires.

Commencez par définir les rôles, par exemple « Employeur » et « Salarié ». Affectez ensuite chaque champ au bon rôle :

  • Une signature pour chaque partie.
  • Un champ texte pour le nom ou une mention complémentaire.
  • Une date de signature.
  • Une case à cocher pour une validation explicite.

Vérifiez la taille et l’emplacement des champs sur toutes les pages. Définissez les champs indispensables comme obligatoires, puis renseignez les adresses des signataires. DocuSeal utilise le serveur SMTP configuré pour envoyer les invitations.

Pour un document sensible, réalisez d’abord un essai avec des comptes internes. Vérifiez le contenu des messages, l’ordre du parcours, le PDF final et les informations enregistrées avec la soumission.

Le parcours du signataire

Le destinataire reçoit un courrier électronique contenant un lien individuel. Il ouvre ce lien dans son navigateur, consulte le document, complète les champs qui lui sont attribués et saisit ou dessine sa signature.

Une fois les étapes terminées, DocuSeal finalise le document. Selon le parcours configuré, le PDF peut ensuite être consulté ou téléchargé par les participants autorisés.

Expliquez clairement aux utilisateurs ce qu’ils acceptent, comment leurs données sont traitées et combien de temps les documents sont conservés. Pour les contrats importants, associez le parcours technique à une procédure interne documentée et adaptée au niveau de preuve attendu.

Activer HTTPS avec un reverse proxy

Publiez DocuSeal derrière Nginx, Caddy, Traefik ou un autre reverse proxy. Celui-ci doit terminer la connexion TLS, renouveler le certificat et transmettre les requêtes vers 127.0.0.1:3000.

Le domaine public doit uniquement exposer les ports 80 et 443. N’ouvrez ni le port PostgreSQL ni le port 3000 dans le pare-feu. Activez la redirection permanente de HTTP vers HTTPS et transmettez correctement les en-têtes Host, X-Forwarded-For et X-Forwarded-Proto.

HTTPS est indispensable : les utilisateurs échangent des contrats, des données personnelles et des signatures. Avant la mise en service, vérifiez aussi que les liens générés utilisent bien l’adresse HTTPS publique.

Sécuriser, mettre à jour et sauvegarder

DocuSeal traite potentiellement des documents RH, commerciaux ou juridiques. Limitez les comptes administrateurs, supprimez les accès devenus inutiles et appliquez une politique de mots de passe adaptée. Le serveur doit recevoir régulièrement ses correctifs de sécurité.

Pour mettre à jour l’application :

cd /opt/docuseal
docker compose pull
docker compose up -d
docker compose logs --tail=100 docuseal

Sauvegardez à la fois PostgreSQL et le volume /data. La base contient l’état applicatif, tandis que le volume conserve les documents et fichiers persistants.

Exemple de sauvegarde PostgreSQL :

mkdir -p backups
docker compose exec -T postgres pg_dump -U docuseal -d docuseal > backups/docuseal-$(date +%F).sql

Exemple d’archive du volume documentaire :

docker run --rm \
  -v docuseal_data:/data:ro \
  -v "$PWD/backups:/backup" \
  alpine \
  tar czf /backup/docuseal-data-$(date +%F).tar.gz -C /data .

Copiez ces sauvegardes vers un stockage distinct, chiffrez-les et définissez une durée de rétention compatible avec vos obligations RGPD. Notre guide sur les sauvegardes chiffrées avec restic détaille l’automatisation. Enfin, testez régulièrement une restauration sur un environnement isolé : une sauvegarde non restaurée n’est pas encore une garantie de reprise.