Индекс на дневникаDockup / бележка от практиката
Note / self-host-docuseal

Как да хоствате DocuSeal самостоятелно през 2026 г.: връзки за подписване, SMTP и одитни данни

Хоствайте DocuSeal самостоятелно с правилни портове, устойчиво съхранение, HTTPS, тайни, резервни копия и проверки при надграждане. Научете как да отстраните проблема, при който връзките в имейлите водят към localhost.

Повечето бележки за инсталиране на DocuSeal приключват при първото зареждане на страницата. Това е твърде рано: връзките в имейлите може да водят към localhost или proxy заглавките да причинят неуспешна работа на защитените бисквитки. Полезният production тест е по-взискателен — качете шаблон, поставете полета, изпратете заявка за подписване, завършете я и изтеглете както подписания документ, така и одитната информация.

Ролята на DocuSeal е ясна: подписване на документи с проследим и одитируем процес. Оперативният му обхват включва повече от web процеса, затова зависимостите, съхраняваното състояние и публичният маршрут трябва да бъдат изрично описани, преди да постъпят реални данни.

Production архитектурата на DocuSeal

Очертайте три граници около DocuSeal: входящия трафик към port 3000, устойчивото състояние и поддържащите изисквания. Контейнерът може да бъде заменен, но за останалите две области трябва да има изрично определени отговорници. Мрежовият договор за DocuSeal включва SMTP, както и устойчива база данни и файлово съхранение. Дръжте частните endpoint-и във вътрешен DNS, разрешете само необходимите изходящи заявки и предоставете на DocuSeal service credential с ограничен обхват.

Диаграмата е завършена, когато чист клиент може да качи шаблон, да постави полета, да изпрати заявка за подписване, да я завърши и да изтегли както подписания документ, така и одитната информация. Събирайте данни за времето и ресурсите при съхранение на документи, обработка на PDF, доставка на имейли, едновременни подписващи лица и транзакции към базата данни. Ако транзакцията се провали, първата граница, която не се държи според документацията, показва дали трябва да проверите маршрутизацията, локалния капацитет или поддържаща услуга.

Проектирайте възстановяването на DocuSeal преди стартирането

Защитете състоянието на DocuSeal, преди да оптимизирате контейнера му. Необходимият набор включва базата данни, подписаните файлове, шаблоните и одитните събития. Монтирайте /data преди bootstrap, запишете безвредни примерни данни и заменете контейнера, за да докажете, че този път действително е устойчив. Ако няколко хранилища трябва да останат синхронизирани, документирайте реда, в който се спират записите и се създават резервните копия.

Съхранявайте копия извън сървъра за deployment и шифровайте материалите, съдържащи идентификационни данни или частно съдържание. Възстановяването е успешно, когато шаблоните, submissions, подписаните файлове и одитните събития бъдат върнати и завършен submission остане проверим. Разликата между устойчив mount и независимо копие е разгледана в устойчиво съхранение и snapshots.

Затворете временния достъп за настройка

Направете threat model на действието, което DocuSeal извършва, а не само на login формата му. Тук високорисковата грешка е да промените SECRET_KEY_BASE или да приемете, че копието на файл е пълно резервно копие на одита. Реализирайте следната граница: ограничете администрирането на шаблони, защитете данните на подписващите лица и задайте външния HTTPS host, преди да изпращате връзки.

Генерирайте SECRET_KEY_BASE веднъж, дръжте го извън Git и го запазете заедно с recovery manifest, защото промяната му може да направи криптираното или подписаното application state невалидно. Не решавайте грешка с права, като стартирате контейнера като root или монтирате хоста без ограничения. Resource limits също са част от security дизайна, когато потребителите могат да предизвикват съхранение на документи, обработка на PDF, доставка на имейли, едновременни подписващи лица и транзакции към базата данни.

Запишете проверена deployment конфигурация на DocuSeal

Превърнете smoke теста на DocuSeal в повторяема release команда или кратък runbook. Резултатът трябва да демонстрира следното: качете шаблон, поставете полета, изпратете заявка за подписване, завършете я и изтеглете както подписания документ, така и одитната информация. Запишете версията на приложението, container digest, hostname на маршрута и идентификатора на тестовите данни заедно с резултата.

Изпълнявайте същата проверка след стандартна подмяна на контейнера и след възстановяване на базата данни, подписаните файлове, шаблоните и одитните събития на друго място. Възстановяването е успешно, когато шаблоните, submissions, подписаните файлове и одитните събития бъдат върнати и завършен submission остане проверим. Сравнете времето и потреблението, свързани със съхранението на документи, обработката на PDF, доставката на имейли, едновременните подписващи лица и транзакциите към базата данни; значителната промяна заслужава разследване, дори когато финалното действие все още преминава успешно.

След това упражнете безопасен отказ: временно забранете на тестовата identity достъпа до SMTP, устойчивата база данни и файловото съхранение. Потвърдете, че DocuSeal показва грешката и се връща към нормална работа без разрушителни ръчни промени. Запазете само необходимия, редактиран откъс от log-а. Този gate от четири части обхваща стартирането, устойчивостта, възстановяването и обработката на откази.

Базова Docker конфигурация за DocuSeal

Стартирайте DocuSeal така, че маршрутът да остане частен, докато 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

Ако процесът влиза в цикъл, сравнете очаквания user на image-а с owner-а на всеки монтиран path. Ако остане активен, тествайте port 3000 локално и след това преминете директно към workflow-а: качете шаблон, поставете полета, изпратете заявка за подписване, завършете я и изтеглете както подписания документ, така и одитната информация. Фиксирайте версията на image-а едва след като тази end-to-end проверка премине успешно и запишете точната конфигурация до service-а.

Не позволявайте успешният proxy да прикрива повреда в приложението

Третирайте външния URL на DocuSeal като конфигурация, която се запазва при redeploy. Първо задайте application host и HTTPS настройките, преди да изпращате връзки за подписване; след това насочете hostname-а към port 3000, като запазите оригиналните host и scheme.

Контролният списък за reachability при deployment може да докаже, че заявките влизат в контейнера. След тази точка известният проблем — връзките в имейлите водят към localhost или proxy заглавките причиняват неуспешна работа на защитените бисквитки — трябва да се разследва в DocuSeal, неговото състояние или workload-а му, а не в автоматизацията на сертификатите.

Репетирайте рисковата промяна в DocuSeal

Активният контейнер е необходим, но не е достатъчен. Service-level indicator е успешното изпълнение на „качете шаблон, поставете полета, изпратете заявка за подписване, завършете я и изтеглете както подписания документ, така и одитната информация“, а вероятните сигнали за натоварване са съхранението на документи, обработката на PDF, доставката на имейли, едновременните подписващи лица и транзакциите към базата данни.

Change control е важен, защото миграциите на базата данни и непрекъснатостта на SECRET_KEY_BASE трябва да бъдат тествани, тъй като само подписаните файлове не могат да възстановят одитната следа. Запазете стария image, тествайте миграциите върху копирано състояние и документирайте дали rollback се поддържа след промяна на схемата. Ако връзките в имейлите водят към localhost или proxy заглавките причиняват неуспешна работа на защитените бисквитки, диагностицирайте първата граница, която се различава от работещата среда.

Свържете DocuSeal с жизнения цикъл на Dockup

Platform слоят за DocuSeal се състои от port 3000, ingress, TLS, runtime конфигурация, storage и reachability на зависимостите. Dockup може да възпроизведе тези компоненти за собствената си инфраструктура или за сървър, свързан от клиента.

След това операторът завършва product слоя: задава application host и HTTPS настройките, преди да изпраща връзки за подписване; налага това правило за достъп — ограничава администрирането на шаблони, защитава данните на подписващите лица и задава външния HTTPS host, преди да изпраща връзки; и изпълнява „качете шаблон, поставете полета, изпратете заявка за подписване, завършете я и изтеглете както подписания документ, така и одитната информация“. Записването на този тест заедно с deployment-а предотвратява объркването между автоматизираното provision-ване и готовността на приложението.

Често задавани въпроси

Какво е необходимо на DocuSeal за production deployment?

Маршрутизирайте контейнера на DocuSeal през port 3000 и един HTTPS origin. Поддържащото мрежово изискване включва SMTP, както и устойчива база данни и файлово съхранение. Не приемайте DocuSeal за готов, докато не можете да качите шаблон, да поставите полета, да изпратите заявка за подписване, да я завършите и да изтеглите както подписания документ, така и одитната информация.

Кои данни на DocuSeal трябва да бъдат включени в резервно копие?

Направете /data устойчиво и включете базата данни, подписаните файлове, шаблоните и одитните събития в един и същ recovery manifest. Чистото възстановяване на DocuSeal е успешно само когато шаблоните, submissions, подписаните файлове и одитните събития бъдат върнати и завършен submission остане проверим.

Изисква ли DocuSeal HTTPS зад reverse proxy?

Използвайте HTTPS за публичния origin на DocuSeal и оставете port 3000 във вътрешния маршрут. Приложете правилно настройката на DocuSeal: задайте application host и HTTPS настройките, преди да изпращате връзки за подписване. При DocuSeal HTTPS защитава идентификационните данни или потребителското съдържание при пренос и поддържа съгласувано поведение на клиента, чувствително към origin-а.

Как трябва да се тества надграждане на DocuSeal?

Възстановете текущото състояние на DocuSeal в изолирана deployment среда, приложете кандидат-версията и повторете acceptance транзакцията. Обърнете специално внимание, защото миграциите на базата данни и непрекъснатостта на SECRET_KEY_BASE трябва да бъдат тествани, тъй като само подписаните файлове не могат да възстановят одитната следа. Запазете предишния image на DocuSeal, докато границите на миграцията на данните и rollback-а не бъдат изяснени.