DocuSeal:自建电子签名平台,开源的 DocuSign 替代品
DocuSeal自建电子签名平台开源的 DocuSign 替代品DocuSeal 是一款开源的电子签名平台功能对标 DocuSign、HelloSign 等商业产品支持 PDF 文档签署、表单字段拖拽配置、邮件通知、Webhook 回调以及完整的 REST API。对于中小企业、法律团队或需要频繁处理合同签署流程的团队来说DocuSeal 可以将签署流程完全内化无需依赖第三方 SaaS数据存储在自己的服务器上安全合规。与 DocuSign 每月数十至数百美元的订阅费相比自托管 DocuSeal 的成本仅为服务器费用。本文将使用 Docker Compose Caddy 完成 DocuSeal 的完整部署。服务器配置DocuSeal 基于 Ruby on Rails 开发属于轻量级应用默认使用 SQLite 作为数据库资源占用极低。1 核 1GB机型即可流畅运行对于文档量较大的生产环境建议升级到 1 核 2GB 或 2 核 2GB并切换到 PostgreSQL 后端。推荐使用雨云服务器 rainyuncom部署 DocuSeal注册填优惠码2026off领 5 折优惠券轻量机型性价比极高。推荐配置项目规格CPU1 核测试/ 2 核生产内存1 GBSQLite/ 2 GBPostgreSQL磁盘20 GB SSD需存储 PDF 文件操作系统Ubuntu 22.04 LTS带宽3 Mbps 及以上安装 Docker 环境curl-fsSLhttps://get.docker.com|shdocker--versiondockercompose versionDocker Compose 部署方案一SQLite 快速部署适合测试和小规模使用创建项目目录mkdir-p/opt/docusealcd/opt/docusealmkdir-pdata创建docker-compose.ymlversion:3.9services:docuseal:image:docuseal/docuseal:latestcontainer_name:docusealrestart:unless-stoppedports:-127.0.0.1:3000:3000volumes:-./data:/dataenvironment:DATABASE_URL:sqlite3:/data/docuseal.sqlite3SECRET_KEY_BASE:your_random_64_chars_secret_key_here_change_this_now# 邮件配置SMTPSMTP_ADDRESS:smtp.gmail.comSMTP_PORT:587SMTP_USERNAME:your-emailgmail.comSMTP_PASSWORD:your_app_passwordSMTP_FROM:noreplyyourdomain.com# 应用 URL用于邮件中的链接APP_URL:https://sign.yourdomain.com# 时区TIME_ZONE:Asia/Shanghai方案二PostgreSQL 生产部署推荐version:3.9services:postgres:image:postgres:15-alpinecontainer_name:docuseal-postgresrestart:unless-stoppedenvironment:POSTGRES_DB:docusealPOSTGRES_USER:docusealPOSTGRES_PASSWORD:DocuSealSecurePass123!volumes:-postgres_data:/var/lib/postgresql/datanetworks:-docuseal-nethealthcheck:test:[CMD-SHELL,pg_isready -U docuseal]interval:10stimeout:5sretries:5docuseal:image:docuseal/docuseal:latestcontainer_name:docusealrestart:unless-stoppedports:-127.0.0.1:3000:3000volumes:-docuseal_data:/dataenvironment:DATABASE_URL:postgresql://docuseal:DocuSealSecurePass123!postgres:5432/docusealSECRET_KEY_BASE:your_random_64_chars_secret_key_here_change_this_now_must_be_64# 邮件配置SMTP_ADDRESS:smtp.gmail.comSMTP_PORT:587SMTP_ENABLE_STARTTLS_AUTO:trueSMTP_USERNAME:your-emailgmail.comSMTP_PASSWORD:your_gmail_app_passwordSMTP_FROM:noreplyyourdomain.com# 应用 URLAPP_URL:https://sign.yourdomain.com# 时区TIME_ZONE:Asia/Shanghai# 文件存储路径STORAGE_PATH:/data/storagedepends_on:postgres:condition:service_healthynetworks:-docuseal-netvolumes:postgres_data:docuseal_data:networks:docuseal-net:driver:bridge生成 SECRET_KEY_BASEopenssl rand-hex64启动服务dockercompose up-ddockercompose logs-fdocuseal等待日志出现Listening on http://0.0.0.0:3000即表示启动成功首次启动会自动执行数据库迁移。配置 Caddy 反代安装 Caddyaptinstall-ydebian-keyring debian-archive-keyring apt-transport-httpscurlcurl-1sLfhttps://dl.cloudsmith.io/public/caddy/stable/gpg.key|gpg--dearmor-o/usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl-1sLfhttps://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt|tee/etc/apt/sources.list.d/caddy-stable.listaptupdateaptinstallcaddy-y编辑/etc/caddy/Caddyfilesign.yourdomain.com { reverse_proxy localhost:3000 # PDF 文件上传需要较大的请求体限制 request_body { max_size 50MB } # 安全响应头 header { Strict-Transport-Security max-age31536000; includeSubDomains X-Content-Type-Options nosniff Referrer-Policy strict-origin-when-cross-origin -Server } # 访问日志 log { output file /var/log/caddy/docuseal-access.log } }重载 Caddymkdir-p/var/log/caddy systemctl reload caddy初始设置创建管理员账户首次访问https://sign.yourdomain.com系统自动跳转到注册页面。填写管理员邮箱用于登录密码点击Create account完成注册即成为平台管理员。配置公司信息登录后进入Settings设置Company Name填写公司或个人名称显示在签署邮件中Logo上传公司 Logo会出现在文档签署界面Time Zone选择Asia/ShanghaiDate Format选择合适的日期格式邮件测试进入Settings → Email验证 SMTP 配置是否正确点击Send test email发送测试邮件到管理员邮箱。使用方法创建文档模板Template模板是 DocuSeal 的核心概念先创建可复用的模板再基于模板发起签署流程。进入Templates→Create Template上传 PDF 文件如合同模板、NDA 协议等在 PDF 上拖拽添加字段Signature签名框Initials首字母签名Text文本输入姓名、职位等Date日期自动填充签署日期Checkbox勾选框Photo照片上传为每个字段指定签署方Submitter Role如甲方、“乙方”保存模板发起签署流程基于模板创建签署请求进入Submissions→New Submission选择已创建的模板填写签署方信息甲方姓名 邮箱乙方姓名 邮箱点击Send— 系统自动向各签署方发送邮件包含个人专属签署链接签署方操作流程签署方收到邮件后点击邮件中的签署链接无需注册账户在线查看 PDF 文档点击签名框通过鼠标/触屏绘制签名或输入文字签名完成所有必填字段点击Submit提交所有签署方完成后系统自动发送包含完整签署文件的确认邮件给所有参与方并在后台生成审计日志。API 使用示例DocuSeal 提供完整的 REST API适合集成到现有业务系统。首先在Settings → API Tokens中生成 API Token。获取所有模板API_TOKENyour_docuseal_api_tokencurl-HX-Auth-Token:$API_TOKEN\https://sign.yourdomain.com/api/templates|python3-mjson.tool通过 API 创建签署请求curl-XPOST\-HX-Auth-Token:$API_TOKEN\-HContent-Type: application/json\-d{ template_id: 1, send_email: true, submitters: [ { name: 张三, email: zhangsanexample.com, role: 甲方 }, { name: 李四, email: lisiexample.com, role: 乙方 } ], message: { subject: 请签署合作协议, body: 您好请点击链接查看并签署合作协议感谢您的配合。 } }\https://sign.yourdomain.com/api/submissions|python3-mjson.tool获取签署状态SUBMISSION_ID123curl-HX-Auth-Token:$API_TOKEN\https://sign.yourdomain.com/api/submissions/$SUBMISSION_ID|python3-mjson.tool下载已签署文件# 获取 submission 详情找到 documents 字段中的下载 URLcurl-HX-Auth-Token:$API_TOKEN\https://sign.yourdomain.com/api/submissions/$SUBMISSION_ID|\python3-cimport sys,json; [print(d[url]) for d in json.load(sys.stdin)[documents]]配置 WebhookWebhook 允许 DocuSeal 在签署状态变更时实时通知你的系统。进入Settings → Webhooks→Add Webhook{url:https://your-backend.com/webhooks/docuseal,events:[submission.created,submission.completed,submitter.completed]}Webhook 请求体示例submission.completed事件{event_type:submission.completed,timestamp:2026-05-16T10:30:00Z,data:{id:123,status:completed,template:{id:1,name:NDA 协议},submitters:[{name:张三,email:zhangsanexample.com,status:completed,completed_at:2026-05-16T10:25:00Z}],documents:[{name:signed_nda.pdf,url:https://sign.yourdomain.com/blobs/...}]}}数据备份# 备份 PostgreSQL 数据库dockerexecdocuseal-postgres pg_dump-Udocuseal docuseal|gzipdocuseal_db_$(date%Y%m%d).sql.gz# 备份上传的文件PDF 文件、签署记录等dockerrun--rm-vdocuseal_docuseal_data:/data-v$(pwd):/backup\alpinetarczf /backup/docuseal_files_$(date%Y%m%d).tar.gz /data常见问题PDF 上传失败检查 Caddy 的max_size配置是否足够大默认 10MB 可能不够调整为 50MB 或更大。邮件未发送确认 SMTP 配置正确Gmail 需使用应用专用密码。查看日志docker compose logs docuseal | grep -i smtp。签署链接报错确保APP_URL配置与实际访问域名完全一致包括https://前缀。审计合规性DocuSeal 为每次签署生成完整的审计日志包括签署时间、IP 地址、用户代理等可在 Submission 详情页查看。DocuSeal 以极低的部署成本提供了与商业电子签名平台相当的核心功能特别适合中小企业、律师事务所、HR 团队等需要定期处理合同签署的场景。在 1 核 1GB 的轻量服务器上即可流畅运行是性价比极高的自托管选择。如果你还在选择服务器推荐雨云服务器 rainyuncom注册填优惠码2026off即可领取 5 折优惠券1 核 1GB 机型完全够用价格实惠稳定性有保障。