Docker一键部署Docuseal电子签名系统
一、项目简介
项目简介
DocuSeal是一个基于AGPLv3开源协议的高性能电子签名与数字化表单平台。它专注于提供开箱即用的文档数字化签署流程,支持可视化的PDF表单构建器(WYSIWYG 字段拖拽)、多签署人协同流转、自动邮件提醒以及强大的数据存储扩展(本地磁盘或 S3 兼容云存储)。作为一款对开发者极其友好的工具,它允许企业将其无缝嵌入现有的业务系统或移动端应用中,在实现无纸化办公的同时,100% 确保核心合同与敏感隐私数据的完全合规与本地化留存。
技术生态优势
现代前后端解耦架构:前端基于响应式技术栈(React / TypeScript)构建,经过针对移动端屏幕的专属优化与像素级适配,确保签署人在任何设备上都能获得丝滑的交互体验;后端采用高性能的 Ruby on Rails 框架,底层数据由成熟稳健的PostgreSQL关系型数据库驱动,并自带开箱即用的REST API、Webhooks以及全功能的CLI工具链,技术栈不仅吞吐量卓越,且对现代全栈开发者极其友好。
精细化表单构建与工作流:区别于只做简单图片叠加的传统签名工具,DocuSeal从底层数据模型上即内置了多达12种原生字段类型(包含签名、文本框、多选、日期、文件上传等)。系统深度支持复杂的多签署人流转逻辑以及自动化邮件SMTP触达机制,允许开发者通过一行嵌入代码或API调度,将整个合同签署、催签和归档流程完美串联,实现真正的数字化业务闭环。
工业级合规与安全加固:系统在架构设计上将数据主权与安全性放在首位,所有生成的合同文件均会自动附加符合法律效力(ESIGN / eIDAS 标准)的SHA-256加密数字证书,并提供透明的 PDF 签名有效性验证与篡改审计。应用层原生集成了网络限流防护(Rate Limiting 抵御暴力请求),支持严格的权限控制,配合私有化部署可轻松在VPN隔离或零信任网络中运行,为企业核心数字资产筑起坚实防御。
原生容器化与无缝运维:官方提供极简的Docker部署生态,支持通过Docker Compose实现一键轻量化微服务编排。值得一提的是,其容器化方案原生适配主流的边缘路由/反向代理(如 Caddy/Nginx),内置自动化SSL证书签发支持。运维人员只需通过配置环境文件(.env)即可实现存储后端(本地、AWS S3、MinIO、Google Storage)的无缝切换,极大降低了私有化部署、安全平滑升级与自动化运维的门槛。
二、环境准备
- VPS一台 最低配置2核2G 带宽1M即可
- 服务器系统:本文演示的系统是Ubuntu-24.04.1(LTS),部署的是测试环境。
- 是否备案:如果服务器在国外,站点无须备案;如果服务器在国内,网站必须备案。
- 提前解析好的域名一个
- 图床一个(又拍云、阿里云oss、腾讯云cos、七牛云等)
- 为了便于后期的升级维护以及卸载,利用docker+Nginx Proxy Manager部署
- 安装好Docker、Docker-compose、Nginx Proxy Manager(安装教程)
- SSH工具:FinalShell官网
- 项目地址:Github官网
- 官方软硬件配置要求请参考以下链接:Docuseal官网文档说明
三、部署过程
系统初始化,更新索引
#更新索引库
sudo apt-get update
创建部署目录
# 创建docker项目目录
mkdir -p /root/data/docker_workspace
# 进入目录
cd /root/data/docker_workspace
# 克隆仓库
git clone https://github.com/docusealco/docuseal.git
# 进入docuseal仓库目录
cd /root/data/docker_workspace/docuseal
编辑docker-compose.yml文件如下
services:
app:
image: docuseal/docuseal:latest
container_name: docuseal
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./docuseal:/data/docuseal
environment:
DATABASE_URL: postgresql://postgres:postgres@postgres:5432/docuseal
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:17
container_name: docuseal-postgres
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: docuseal
volumes:
- ./pg_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 10
服务器内部开放3000端口(云服务器安全组同时也需要开放)
ufw allow 3000
启动容器
# 启动docuseal容器
docker compose up -d

使用服务器ip:3000登录

填写好注册信息后登录首页,上传一个测试用的合同文档

进入编辑页,从右侧列表中拖动对应的字段到合同中对应的位置,编辑完后保存

签字演示

绑定域名
可参考下面的文章去Nginx Proxy Manager里设置域名访问
