Günlük diziniDockup / saha notu
Note / self-host-docuseal

2026'da DocuSeal Nasıl Self-Host Edilir: İmzalama Linkleri, SMTP ve Denetim Verileri

DocuSeal'ı doğru portlar, kalıcı depolama, HTTPS, secret'lar, backup'lar ve upgrade kontrolleriyle self-host edin. E-posta linkleri localhost'u gösterdiğinde nasıl düzelteceğinizi öğrenin.

DocuSeal kurulum notlarının çoğu ilk sayfa yüklemesinde sona erer. Bu çok erken bir aşamadır: E-posta linkleri localhost'u gösterebilir veya proxy header'ları secure cookie'lerin çalışmasını engelleyebilir. Kullanışlı bir production testi daha kapsamlıdır — bir template yükleyin, alanları yerleştirin, bir imzalama isteği gönderin, işlemi tamamlayın ve hem imzalanmış dokümanı hem de audit bilgilerini indirin.

DocuSeal'ın rolü basittir: denetlenebilir bir imzalama geçmişiyle doküman imzalama. Operasyonel kapsamı web process'inden daha geniştir; bu nedenle gerçek veriler gelmeden önce dependency'ler, saklanan state ve public route açıkça tanımlanmalıdır.

DocuSeal'ın production yapısı

DocuSeal'ın etrafına üç sınır çizin: port 3000'e ingress, durable state ve supporting requirements. Container değiştirilebilir, ancak diğer iki alan için açıkça sahiplik tanımlanmalıdır. DocuSeal'ın network contract'ı SMTP ile durable database ve file storage'dır. Private endpoint'leri internal DNS üzerinde tutun, yalnızca gerekli outbound çağrılara izin verin ve DocuSeal'a scope'u sınırlandırılmış bir service credential verin.

Temiz bir client'ın template yükleyebildiği, alanları yerleştirebildiği, imzalama isteği gönderebildiği, işlemi tamamlayabildiği ve hem imzalanmış dokümanı hem de audit bilgilerini indirebildiği noktada diyagram tamamlanmış olur. Document storage, PDF processing, mail delivery, concurrent signers ve database transactions için timing ve resource verilerini kaydedin. Transaction başarısız olursa, dokümante edildiği gibi davranmayan ilk sınır; routing, local capacity veya supporting service alanlarından hangisini incelemeniz gerektiğini gösterir.

Launch öncesinde DocuSeal restore sürecini tasarlayın

Container'ı optimize etmeden önce DocuSeal'ın state'ini koruyun. Gerekli set database, signed files, templates ve audit events'tan oluşur. Bootstrap işleminden önce /data'yı mount edin, zararsız örnek veriler yazın ve bu path'in gerçekten persistent olduğunu kanıtlamak için container'ı değiştirin. Birden fazla store'un aynı duruma gelmesi gerekiyorsa, write işlemlerinin durdurulacağı ve backup'ların alınacağı sırayı dokümante edin.

Kopyaları deployment server'ın dışında tutun ve credential veya private content içeren materyalleri encrypt edin. Recovery; template'ler, submission'lar, signed file'lar ve audit event'ler geri geldiğinde ve tamamlanmış bir submission doğrulanabilir durumda kaldığında başarılıdır. Persistent mount ile bağımsız bir copy arasındaki ayrım persistent storage and snapshots başlıklı yazıda ele alınmıştır.

Geçici setup erişimini kapatın

Threat model'i yalnızca login formuna göre değil, DocuSeal'ın gerçekleştirdiği action'a göre oluşturun. Buradaki yüksek riskli hata, SECRET_KEY_BASE'i değiştirmek veya bir file copy'yi eksiksiz bir audit backup olarak görmektir. Şu sınırı uygulayın: template administration'ı sınırlandırın, signer data'yı koruyun ve link göndermeden önce external HTTPS host'u ayarlayın.

SECRET_KEY_BASE'i bir kez oluşturun, Git dışında tutun ve recovery manifest ile birlikte saklayın; çünkü değiştirilmesi encrypt edilmiş veya imzalanmış application state'i geçersiz kılabilir. Bir permission error'ını container'ı root olarak çalıştırarak veya host'u geniş kapsamlı mount ederek çözmeye çalışmayın. Document storage, PDF processing, mail delivery, concurrent signers ve database transactions kullanıcılar tarafından tetiklenebiliyorsa resource limit'leri de security design'ın parçasıdır.

Çalıştığı bilinen bir DocuSeal deployment'ını kaydedin

DocuSeal smoke test'ini tekrarlanabilir bir release command'a veya kısa bir runbook'a dönüştürün. Çıktı şu sonucu kanıtlamalıdır: bir template yükleyin, alanları yerleştirin, bir signing request gönderin, işlemi tamamlayın ve hem signed document'ı hem de audit information'ı indirin. Sonuçla birlikte application version, container digest, route hostname ve test-data identifier'ı kaydedin.

Aynı kontrolü rutin bir container değişiminden sonra ve database, signed files, templates ve audit events'ı başka bir yerde restore ettikten sonra çalıştırın. Restore; template'ler, submission'lar, signed file'lar ve audit event'ler geri geldiğinde ve tamamlanmış bir submission doğrulanabilir durumda kaldığında başarılıdır. Document storage, PDF processing, mail delivery, concurrent signers ve database transactions ile ilgili timing ve consumption değerlerini karşılaştırın; son action hâlâ başarılı olsa bile büyük bir değişiklik incelenmeye değerdir.

Ardından güvenli bir failure senaryosunu uygulayın: test identity'nin SMTP ile durable database ve file storage'a erişimini geçici olarak engelleyin. DocuSeal'ın hatayı görünür hâle getirdiğini ve yıkıcı manuel düzenlemeler olmadan normale döndüğünü doğrulayın. Yalnızca gerekli, redakte edilmiş log excerpt'ini saklayın. Bu dört parçalı gate; startup, persistence, recovery ve failure handling'i kapsar.

DocuSeal için bir Docker baseline'ı

Bootstrap tamamlanana kadar route'u private bırakacak şekilde DocuSeal'ı başlatın.

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

Process loop'a girerse image'ın beklediği user ile mount edilen her path'in owner'ını karşılaştırın. Çalışmaya devam ederse port 3000'i local olarak test edin ve ardından doğrudan workflow'a geçin: bir template yükleyin, alanları yerleştirin, bir signing request gönderin, işlemi tamamlayın ve hem signed document'ı hem de audit information'ı indirin. Image'ı version-pin işlemini ancak bu uçtan uca kontrol başarılı olduktan sonra yapın ve kesin configuration'ı service'in yanında kaydedin.

Proxy başarısının application failure'ı gizlemesini önleyin

External DocuSeal URL'sini redeploy'lar boyunca korunacak bir configuration olarak ele alın. Önce signing link'leri göndermeden application host'u ve HTTPS settings'i ayarlayın; ardından hostname'i, original host ve scheme bilgilerini koruyarak port 3000'e yönlendirin.

Deployment reachability checklist, request'lerin container'a girdiğini kanıtlayabilir. Bu noktadan sonra bilinen failure — e-posta linklerinin localhost'u göstermesi veya proxy header'larının secure cookie'lerin çalışmasını engellemesi — certificate automation'da değil, DocuSeal'da, state'inde veya workload'unda araştırılmalıdır.

Riskli DocuSeal değişikliğini prova edin

Çalışan bir container gereklidir ancak tek başına yeterli değildir. Service-level indicator, “bir template yükleyin, alanları yerleştirin, bir signing request gönderin, işlemi tamamlayın ve hem signed document'ı hem de audit information'ı indirin” işleminin başarılı şekilde tamamlanmasıdır; olası pressure signal'lar ise document storage, PDF processing, mail delivery, concurrent signers ve database transactions'tır.

Database migrations ve SECRET_KEY_BASE continuity test edilmesi gerektiği için change control önemlidir; çünkü yalnızca signed file'lar audit trail'i yeniden oluşturamaz. Eski image'ı koruyun, migration'ları kopyalanmış state üzerinde test edin ve schema taşındıktan sonra rollback'in desteklenip desteklenmediğini dokümante edin. E-posta linkleri localhost'u gösteriyorsa veya proxy header'ları secure cookie'lerin çalışmasını engelliyorsa, çalışan environment'tan farklı olan ilk sınırı teşhis edin.

DocuSeal'ı Dockup'ın lifecycle'ına bağlayın

DocuSeal için platform layer; port 3000, ingress, TLS, runtime configuration, storage ve dependency reachability'den oluşur. Dockup bu parçaları kendi infrastructure'ı veya müşterinin bağladığı bir server için yeniden oluşturabilir.

Ardından operator product layer'ı tamamlar: signing link'leri göndermeden önce application host'u ve HTTPS settings'i ayarlayın; şu access rule'u uygulayın — template administration'ı sınırlandırın, signer data'yı koruyun ve link göndermeden önce external HTTPS host'u ayarlayın — ve “bir template yükleyin, alanları yerleştirin, bir signing request gönderin, işlemi tamamlayın ve hem signed document'ı hem de audit information'ı indirin” testini çalıştırın. Bu testi deployment'ın yanında kaydetmek, automated provisioning ile application readiness kavramlarının karıştırılmasını önler.

Sık sorulan sorular

Production deployment için DocuSeal'ın neye ihtiyacı vardır?

DocuSeal container'ını tek bir HTTPS origin üzerinden port 3000'e yönlendirin. Supporting network requirement, SMTP ile durable database ve file storage'dır. Bir template yükleyip alanları yerleştirebildiğiniz, bir signing request gönderip işlemi tamamlayabildiğiniz ve hem signed document'ı hem de audit information'ı indirebildiğiniz noktaya kadar DocuSeal'ı hazır kabul etmeyin.

Hangi DocuSeal verileri backup'a dahil edilmelidir?

/data'yı persistent hâle getirin ve database, signed files, templates ve audit events'ı aynı recovery manifest'e dahil edin. Temiz bir DocuSeal restore'u yalnızca template'ler, submission'lar, signed file'lar ve audit event'ler geri geldiğinde ve tamamlanmış bir submission doğrulanabilir durumda kaldığında başarılıdır.

Reverse proxy arkasında DocuSeal için HTTPS gerekir mi?

Public DocuSeal origin için HTTPS kullanın ve port 3000'i internal route üzerinde tutun. DocuSeal setting'ini doğru uygulayın: signing link'leri göndermeden önce application host'u ve HTTPS settings'i ayarlayın. DocuSeal için HTTPS, credential'ları veya user content'i transit sırasında korur ve origin'e duyarlı client davranışının tutarlı kalmasını sağlar.

DocuSeal upgrade'i nasıl test edilmelidir?

Mevcut DocuSeal state'ini izole bir deployment'a restore edin, aday version'ı uygulayın ve acceptance transaction'ı tekrarlayın. Database migrations ve SECRET_KEY_BASE continuity test edilmesi gerektiği için özellikle dikkatli olun; çünkü yalnızca signed file'lar audit trail'i yeniden oluşturamaz. Data-migration ve rollback sınırları anlaşılana kadar önceki DocuSeal image'ını saklayın.