Documenso - open-source платформа электронной подписи документов и self-hosted замена DocuSign и HelloSign. Загружаете PDF (договор, акт, NDA), размечаете поля (подпись, дата, инициалы, текст) и отправляете контрагентам - они подписывают по ссылке в браузере без регистрации, а вы получаете подписанный PDF с журналом аудита (кто, когда, с какого IP).
В отличие от облачных сервисов, документы и подписи хранятся на вашем сервере, и вы не платите за каждый отправленный конверт. Процесс тот же, что у DocuSign: загрузка, разметка полей, отправка на подпись, готовый подписанный документ.
После создания сервера Documenso ставится автоматически с PostgreSQL и Caddy (Let's Encrypt на magic-DNS домене). Аккаунт администратора создается и подтверждается сразу - вы входите паролем сервера, без настройки почты. Подписной сертификат и права на него выставлены правильно (частая грабля, из-за которой подписанный документ виснет в статусе PENDING, здесь закрыта).
Что внутри
- Documenso (Next.js) - веб-приложение, редактор полей, публичные ссылки на подпись, порт 3000.
- PostgreSQL 16 - документы, пользователи, шаблоны, журнал аудита.
- Caddy - reverse-proxy и авто-TLS (Let's Encrypt).
- Подписной сертификат .p12 - им Documenso подписывает итоговый PDF.
Безопасность
- Аккаунт закрыт паролем сервера - вход сразу под паролем вашей машины, инстанс нельзя занять в первые минуты после запуска.
- fail2ban - банит IP после серии неудачных попыток входа по SSH.
- HTTPS + security-заголовки - Let's Encrypt (авто-продление), HSTS, X-Content-Type-Options, Referrer-Policy. Documenso слушает только localhost, наружу - через Caddy.
- Данные на вашем сервере - документы, подписи и журнал аудита в томе PostgreSQL, не в чужом облаке.
Как войти
- Адрес формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. Пример: IP45.15.159.10->https://45-15-159-10.fatmetal.net/. - Логин:
admin@<ваш-домен>(напримерadmin@45-15-159-10.fatmetal.net). Пароль: пароль вашего сервера с добавленным в конце знаком!(Documenso требует спецсимвол). Пароль сервера - в личном кабинете. Аккаунт уже подтвержден, входите сразу и смените пароль в настройках профиля. - Загрузите PDF, разметьте поле подписи, укажите email контрагента и отправьте на подпись.
Важно
Для отправки приглашений на подпись нужен SMTP: впишите данные своего почтового сервера в /opt/documenso/.env (SMTP_HOST/PORT/USER/PASS) и выполните cd /opt/documenso && docker compose up -d. Вход в аккаунт и работа с документами доступны и без SMTP. Все документы и подписи лежат в томе PostgreSQL (pgdata) - бэкапьте его. Порт приложения наружу не публикуется - только через Caddy с TLS.
Юридическая значимость
Documenso создает простую электронную подпись (ПЭП) по смыслу ФЗ-63 «Об электронной подписи»: фиксация факта подписания, журнал аудита и подпись PDF локальным сертификатом. Такая подпись работает по соглашению сторон и для внутреннего документооборота. Это не квалифицированная ЭП (УКЭП) - ее выдает только аккредитованный УЦ (или Госключ), и Documenso ее не заменяет.
Лицензия
Documenso - открытый код под лицензией AGPL-3.0: свободное использование, в том числе коммерческий self-host-хостинг.
Свой домен
Наведите CNAME на этот сервер, впишите домен в /opt/Caddyfile и в WEBURL (/opt/documenso/.env), затем docker compose up -d и docker restart documenso-caddy - Caddy выпустит Let's Encrypt. NEXT_PUBLIC_WEBAPP_URL обязан совпадать с публичным адресом, иначе ссылки на подпись будут битые.
Требования
Ubuntu 24.04, открытые порты 80/443. Стек легкий: в простое около 0.4 ГБ (documenso ~323, postgres ~52, caddy ~24 МиБ), образы ~3.4 ГБ. Комфортный тариф CPU2-RAM4.