Indice del diarioDockup / nota dal campo
Note / self-host-docuseal

Come eseguire il self-hosting di DocuSeal nel 2026: link di firma, SMTP e dati di audit

Esegui il self-hosting di DocuSeal con porte corrette, storage persistente, HTTPS, secret, backup e verifiche degli aggiornamenti. Scopri come risolvere il problema dei link email che puntano a localhost.

La maggior parte delle guide all'installazione di DocuSeal si ferma al primo caricamento della pagina. È troppo presto: i link email possono puntare a localhost oppure gli header del proxy possono impedire il funzionamento dei cookie sicuri. Un test di produzione efficace è più esigente: caricare un template, posizionare i campi, inviare una richiesta di firma, completarla e scaricare sia il documento firmato sia le informazioni di audit.

Il ruolo di DocuSeal è semplice: firmare documenti mantenendo una traccia di firma verificabile. Il suo perimetro operativo comprende più del solo processo web, quindi dipendenze, stato persistente e route pubblica devono essere definiti esplicitamente prima che arrivino dati reali.

La struttura di produzione di DocuSeal

Definisci tre confini attorno a DocuSeal: ingress verso la porta 3000, stato persistente e requisiti di supporto. Il container è sostituibile, ma gli altri due elementi devono avere responsabili espliciti. Il contratto di rete di DocuSeal comprende SMTP, un database persistente e uno storage di file persistente. Mantieni gli endpoint privati nel DNS interno, autorizza solo le chiamate in uscita necessarie e assegna a DocuSeal credenziali di servizio con permessi limitati.

Il diagramma è completo quando un client pulito può caricare un template, posizionare i campi, inviare una richiesta di firma, completarla e scaricare sia il documento firmato sia le informazioni di audit. Raccogli dati su tempi e risorse per lo storage dei documenti, l'elaborazione dei PDF, la consegna delle email, i firmatari simultanei e le transazioni del database. Se la transazione fallisce, il primo confine che non si comporta come documentato indica se occorre analizzare il routing, la capacità locale o un servizio di supporto.

Progetta il ripristino di DocuSeal prima del lancio

Proteggi lo stato di DocuSeal prima di ottimizzare il container. L'insieme necessario comprende database, file firmati, template ed eventi di audit. Monta /data prima del bootstrap, scrivi dati di esempio innocui e sostituisci il container per verificare che quel percorso sia realmente persistente. Se più storage devono restare coerenti, documenta l'ordine in cui sospendere le scritture ed eseguire i backup.

Conserva copie al di fuori del server di deployment e cifra il materiale che contiene credenziali o contenuti privati. Il ripristino ha esito positivo quando template, submission, file firmati ed eventi di audit vengono recuperati e una submission completata resta verificabile. La differenza tra un mount persistente e una copia indipendente è trattata in storage persistente e snapshot.

Chiudi l'accesso temporaneo di configurazione

Analizza le minacce in base all'azione eseguita da DocuSeal, non solo al suo form di login. In questo caso, l'errore più rischioso consiste nel modificare SECRET_KEY_BASE o nel considerare una copia dei file un backup completo dell'audit. Implementa questo confine: limita l'amministrazione dei template, proteggi i dati dei firmatari e imposta l'host HTTPS esterno prima di inviare i link.

Genera SECRET_KEY_BASE una sola volta, tienilo fuori da Git e conservalo insieme al manifest di ripristino, perché modificarlo può invalidare lo stato applicativo cifrato o firmato. Non risolvere un errore di permessi eseguendo il container come root o montando indiscriminatamente il sistema host. Anche i limiti delle risorse fanno parte del design di sicurezza quando gli utenti possono attivare lo storage dei documenti, l'elaborazione dei PDF, la consegna delle email, la gestione di firmatari simultanei e le transazioni del database.

Registra un deployment di DocuSeal verificato

Trasforma lo smoke test di DocuSeal in un comando di release ripetibile o in una breve procedura operativa. Il risultato deve dimostrare questo esito: caricare un template, posizionare i campi, inviare una richiesta di firma, completarla e scaricare sia il documento firmato sia le informazioni di audit. Registra insieme al risultato la versione dell'applicazione, il digest del container, l'hostname della route e l'identificativo dei dati di test.

Esegui lo stesso controllo dopo una normale sostituzione del container e dopo aver ripristinato altrove database, file firmati, template ed eventi di audit. Il ripristino è riuscito quando template, submission, file firmati ed eventi di audit vengono recuperati e una submission completata resta verificabile. Confronta tempi e consumi relativi allo storage dei documenti, all'elaborazione dei PDF, alla consegna delle email, ai firmatari simultanei e alle transazioni del database; una variazione significativa merita un'analisi anche quando l'azione finale continua ad avere esito positivo.

Poi esegui un errore controllato: nega temporaneamente all'identità di test l'accesso a SMTP, al database persistente e allo storage di file persistente. Verifica che DocuSeal segnali il problema e torni alla normalità senza modifiche manuali distruttive. Conserva solo l'estratto di log necessario e opportunamente anonimizzato. Questo controllo in quattro parti copre avvio, persistenza, ripristino e gestione degli errori.

Una baseline Docker per DocuSeal

Avvia DocuSeal in modo che la route resti privata fino al completamento del bootstrap.

docker run -d \
  --name docuseal \
  --restart unless-stopped \
  -p 127.0.0.1:3000:3000 \
  -v docuseal-data:/data \
  -e SECRET_KEY_BASE=replace-with-a-long-random-value \
  docuseal/docuseal:latest

Se il processo entra in un loop, confronta l'utente previsto dall'immagine con il proprietario di ogni percorso montato. Se resta attivo, verifica localmente la porta 3000 e passa subito al workflow: caricare un template, posizionare i campi, inviare una richiesta di firma, completarla e scaricare sia il documento firmato sia le informazioni di audit. Fissa la versione dell'immagine solo dopo il superamento di questo controllo end-to-end e registra la configurazione esatta accanto al servizio.

Evita che il successo del proxy mascheri un errore dell'applicazione

Tratta l'URL esterno di DocuSeal come una configurazione che deve sopravvivere ai redeploy. Prima imposta l'host dell'applicazione e le configurazioni HTTPS, quindi invia i link di firma; successivamente instrada l'hostname verso la porta 3000 mantenendo invariati host e scheme originali.

La checklist di raggiungibilità del deployment può dimostrare che le richieste entrano nel container. Dopo questo punto, il problema noto — i link email puntano a localhost oppure gli header del proxy impediscono il funzionamento dei cookie sicuri — deve essere analizzato in DocuSeal, nel suo stato o nel suo workload, non nell'automazione dei certificati.

Prova in anticipo la modifica rischiosa di DocuSeal

Un container attivo è necessario, ma non sufficiente. L'indicatore di servizio è il completamento corretto di “caricare un template, posizionare i campi, inviare una richiesta di firma, completarla e scaricare sia il documento firmato sia le informazioni di audit”, mentre i segnali di pressione più probabili riguardano storage dei documenti, elaborazione dei PDF, consegna delle email, firmatari simultanei e transazioni del database.

Il change control è importante perché le migrazioni del database e la continuità di SECRET_KEY_BASE devono essere verificate: i soli file firmati non ricostruiscono la traccia di audit. Conserva la vecchia immagine, testa le migrazioni su una copia dello stato e documenta se il rollback è supportato dopo la modifica dello schema. Se i link email puntano a localhost oppure gli header del proxy impediscono il funzionamento dei cookie sicuri, analizza il primo confine che differisce dall'ambiente funzionante.

Collega DocuSeal al ciclo di vita di Dockup

Il platform layer di DocuSeal comprende la porta 3000, l'ingress, TLS, la configurazione di runtime, lo storage e la raggiungibilità delle dipendenze. Dockup può riprodurre questi elementi sulla propria infrastruttura o su un server collegato dal cliente.

L'operatore completa quindi il product layer: imposta l'host dell'applicazione e le configurazioni HTTPS prima di inviare i link di firma; applica questa regola di accesso — limita l'amministrazione dei template, protegge i dati dei firmatari e imposta l'host HTTPS esterno prima di inviare i link —; quindi esegue “caricare un template, posizionare i campi, inviare una richiesta di firma, completarla e scaricare sia il documento firmato sia le informazioni di audit”. Registrare questo test insieme al deployment evita di confondere il provisioning automatico con la readiness dell'applicazione.

Domande frequenti

Di cosa ha bisogno DocuSeal per un deployment di produzione?

Instrada il container DocuSeal sulla porta 3000 attraverso un'unica origine HTTPS. Il requisito di rete di supporto comprende SMTP, un database persistente e uno storage di file persistente. Non considerare DocuSeal pronto finché non puoi caricare un template, posizionare i campi, inviare una richiesta di firma, completarla e scaricare sia il documento firmato sia le informazioni di audit.

Quali dati di DocuSeal devono essere inclusi in un backup?

Rendi persistente /data e includi database, file firmati, template ed eventi di audit nello stesso manifest di ripristino. Un ripristino pulito di DocuSeal ha esito positivo solo quando template, submission, file firmati ed eventi di audit vengono recuperati e una submission completata resta verificabile.

DocuSeal richiede HTTPS dietro un reverse proxy?

Usa HTTPS per l'origine pubblica di DocuSeal e mantieni la porta 3000 nella route interna. Applica correttamente l'impostazione di DocuSeal: imposta l'host dell'applicazione e le configurazioni HTTPS prima di inviare i link di firma. Per DocuSeal, HTTPS protegge le credenziali o i contenuti degli utenti durante il transito e mantiene coerente il comportamento del client sensibile all'origine.

Come deve essere testato un aggiornamento di DocuSeal?

Ripristina lo stato attuale di DocuSeal in un deployment isolato, applica la versione candidata e ripeti la transazione di accettazione. Presta particolare attenzione: le migrazioni del database e la continuità di SECRET_KEY_BASE devono essere verificate, perché i soli file firmati non ricostruiscono la traccia di audit. Mantieni la precedente immagine di DocuSeal finché non avrai compreso il confine tra migrazione dei dati e rollback.