找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1964

积分

0

好友

280

主题
发表于 7 天前 | 查看: 15| 回复: 0

在寻找合适的电子签名工具时,商业平台如DocuSign、Adobe Sign虽然功能强大,但其高昂的订阅费用和数据隐私顾虑常常令人却步。最近,一个名为DocuSeal的开源项目进入了视野,它是一个完全开源的电子签名平台,支持私有化部署,提供了从PDF表单构建、多方签署到自动邮件通知和API集成的完整解决方案。其Docker一键部署极为便捷,移动端体验也经过优化。经过数月的使用,感觉它完全有能力替代商业方案,将数据掌控权留在自己手中,让人倍感安心。

DocuSeal移动端签名界面与字段设置

DocuSeal是什么?

这是一个开源的数字文档签名与处理平台,定位为 DocuSign的开源替代方案。它提供从PDF表单创建到在线签署的全流程解决方案,支持12种字段类型、多方签署、自动邮件通知和移动端优化。你可以将其部署在自己的服务器上,其技术栈基于Ruby on Rails与Vue.js,完全免费开源。

开源成就

  • Star数:已在GitHub上收获 11K Star,成为开源电子签名工具中的热门选择。
  • 技术栈:主要使用Ruby (43%)、HTML (24.2%)、Vue (22%) 和 JavaScript (10.4%) 开发。
  • 版本迭代:已发布 133个版本,显示出活跃的维护状态,最新版本2.2.7于近期发布。

核心功能

DocuSeal PDF表单编辑界面

  • 可视化表单构建器:提供所见即所得的拖拽式PDF表单设计,无需编程基础即可快速创建专业表单。
  • 12种字段类型:全面支持签名、日期、文件上传、复选框、文本输入、单选按钮、图片、印章等丰富字段。
  • 多方签署支持:一份文档可设置让多个签署人按指定顺序或同时进行签署。
  • 自动邮件通知:通过SMTP服务自动向签署人发送签署邀请、提醒及完成通知邮件。
  • 灵活存储方案:文档支持存储在本地磁盘,或集成AWS S3、Google Cloud Storage、Azure Blob Storage等云端对象存储。
  • 自动电子签名:签署完成后,系统会自动在PDF文档中嵌入符合标准的电子签名,并支持签名验证
  • 用户管理系统:内置完整的用户、角色与权限管理功能,适合团队协作。
  • 移动端优化:界面针对手机、平板等移动设备进行了响应式优化,签署体验流畅。
  • 多语言支持:管理界面支持7种语言,而签署流程页面更是支持多达14种语言。
  • API和Webhooks:提供完整的REST API接口和Webhook事件通知,便于集成到现有业务系统中。

安装与使用指南

Docker快速启动

这是最简单快速的体验方式。

# 一行命令启动
docker run --name docuseal -p 3000:3000 -v ./data:/data docuseal/docuseal

# 访问应用
http://localhost:3000

# 默认使用SQLite数据库
# 如需使用PostgreSQL或MySQL,添加DATABASE_URL环境变量
docker run --name docuseal -p 3000:3000 \
  -e DATABASE_URL=postgresql://user:password@host:5432/dbname \
  -v ./data:/data \
  docuseal/docuseal

Docker Compose部署

推荐用于生产环境,便于管理。

# 下载配置文件
curl https://raw.githubusercontent.com/docusealco/docuseal/master/docker-compose.yml > docker-compose.yml

# 使用自定义域名启动(自动配置HTTPS)
sudo HOST=your-domain.com docker compose up

# 后台运行
sudo HOST=your-domain.com docker compose up -d

云平台一键部署

项目也支持在主流的云平台一键部署。

# 支持的平台
- Heroku: 点击Deploy to Heroku按钮
- Railway: 点击Deploy on Railway按钮
- DigitalOcean: 点击Deploy to DigitalOcean按钮
- Render: 点击Deploy to Render按钮

# 访问项目GitHub页面点击相应按钮即可
https://github.com/docusealco/docuseal

创建PDF表单

通过直观的可视化构建器设计表单。

# 使用表单构建器
1. 登录DocuSeal后台
2. 点击 “New Template” 创建模板
3. 上传PDF文件或创建空白模板
4. 拖拽字段到PDF页面的指定位置
5. 配置字段属性(签名/日期/文本等)
6. 保存模板

# 12种字段类型
- Signature: 手写签名
- Initials: 姓名首字母
- Date: 日期选择
- Text: 文本输入
- Number: 数字输入
- Select: 下拉选择
- Checkbox: 复选框
- Radio: 单选按钮
- File: 文件上传
- Image: 图片上传
- Cells: 单元格
- Stamp: 印章

发送文档进行签署

# 通过Web界面发送
1. 选择创建好的模板
2. 点击 “Send” 发送
3. 填写签署人信息(姓名、邮箱)
4. 设置签署顺序(按顺序或同时)
5. 点击发送,系统将自动发送邀请邮件

# 签署人会收到
- 包含唯一签署链接的邮件
- 点击链接打开待签署的表单页面
- 填写所需信息并完成签名
- 提交后即完成签署

通过API创建签署任务

对于需要自动化集成的场景,可以直接调用API。

# 通过API发送文档
curl -X POST https://your-domain.com/api/submissions \
  -H “X-Auth-Token: your_api_token” \
  -H “Content-Type: application/json” \
  -d ‘{
    “template_id”: 123,
    “send_email”: true,
    “submitters”: [
      {
        “role”: “签署方”,
        “email”: “client@example.com”,
        “name”: “张三”
      }
    ]
  }’

# API返回示例
{
  “id”: 456,
  “status”: “pending”,
  “submission_url”: “https://your-domain.com/s/abc123”
}

查询签署状态

# 通过API查询特定提交的状态
curl -X GET https://your-domain.com/api/submissions/456 \
  -H “X-Auth-Token: your_api_token”

# 返回状态信息
{
  “id”: 456,
  “status”: “completed”,  # 可能的状态: pending/completed/expired
  “completed_at”: “2025-12-22T10:30:00Z”,
  “documents”: [
    {
      “url”: “https://your-domain.com/documents/signed.pdf”
    }
  ]
}

接收Webhook通知

可以配置Webhook来实时接收签署状态变更事件。

# 配置Webhook URL
1. 在后台设置中添加你的Webhook URL
2. 选择要监听的事件类型
3. 保存配置

# 主要事件类型
- submission.created: 签署任务被创建
- submission.completed: 签署完成
- submission.declined: 签署被拒绝
- submission.expired: 签署链接过期

# Webhook数据示例
{
  “event_type”: “submission.completed”,
  “timestamp”: “2025-12-22T10:30:00Z”,
  “data”: {
    “id”: 456,
    “template_id”: 123,
    “status”: “completed”,
    “completed_at”: “2025-12-22T10:30:00Z”
  }
}

配置SMTP邮件服务

确保自动邮件通知功能正常工作。

# 通过环境变量配置SMTP
docker run --name docuseal -p 3000:3000 \
  -e SMTP_ADDRESS=smtp.gmail.com \
  -e SMTP_PORT=587 \
  -e SMTP_USERNAME=your-email@gmail.com \
  -e SMTP_PASSWORD=your-app-password \
  -e SMTP_DOMAIN=gmail.com \
  -v ./data:/data \
  docuseal/docuseal

# 支持的邮件服务
- Gmail
- SendGrid
- Mailgun
- AWS SES
- 自建SMTP服务器

配置云端对象存储

将签署的文件存储到云端,更可靠且易于扩展。

# 配置AWS S3存储
docker run --name docuseal -p 3000:3000 \
  -e AWS_ACCESS_KEY_ID=your-key \
  -e AWS_SECRET_ACCESS_KEY=your-secret \
  -e AWS_REGION=us-east-1 \
  -e AWS_S3_BUCKET=your-bucket \
  -v ./data:/data \
  docuseal/docuseal

# Google Cloud Storage
-e GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json
-e GCS_BUCKET=your-bucket

# Azure Blob Storage
-e AZURE_STORAGE_ACCOUNT=your-account
-e AZURE_STORAGE_ACCESS_KEY=your-key
-e AZURE_STORAGE_CONTAINER=your-container

签名验证

确保签署后文档的真实性与完整性。

# PDF签名自动验证
1. 下载签署完成的PDF文档
2. 使用Adobe Acrobat或其他支持标准的PDF阅读器打开
3. 查看签名面板
4. 阅读器会显示签名的有效性状态和可信时间戳

# 通过API验证签名
curl -X POST https://your-domain.com/api/verify \
  -H “X-Auth-Token: your_api_token” \
  -F “file=@signed.pdf”

用户与权限管理

系统内置了完整的RBAC(基于角色的访问控制)模型。

# 创建与管理用户
1. 以管理员身份登录后台
2. 进入 “Users” 页面
3. 点击 “Add User”
4. 填写用户邮箱、姓名等信息
5. 为用户分配合适的角色

# 系统预置角色
- Admin: 拥有所有权限,包括系统设置
- Manager: 可以管理所有文档和用户(除系统设置)
- Member: 可以创建和发送自己的文档
- Viewer: 仅能查看文档,无编辑或发送权限

多语言设置

DocuSeal支持国际化的签署流程。

# 管理界面语言(7种)
- English
- 中文
- Español
- Français
- Deutsch
- Português
- 日本語

# 签署流程语言(14种)
支持更广泛的语种,签署人打开链接时,系统会优先使用其浏览器语言设置。

更多功能预览

PDF表单字段编辑视图

PDF表单填写界面

PDF文档签名完成页面

批量添加收件人界面

开源地址https://github.com/docusealco/docuseal

DocuSeal作为一个由Ruby on Rails驱动并拥有11K Star的开源项目,展示了开源社区在构建企业级应用方面的强大能力。它不仅仅是一个工具,更为开发者提供了深入研究现代Web应用架构,特别是Ruby on Rails全栈开发实践的绝佳案例。如果你正在为电子签名需求寻找一个安全、可控且功能全面的解决方案,DocuSeal无疑值得你亲自部署体验。更多技术实践与开源项目探讨,欢迎访问云栈社区进行交流。




上一篇:NetSpeedTray:开源轻量工具,在Windows任务栏实时显示网速
下一篇:Python FastRTC库实战:快速构建实时音视频应用的开发指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-10 09:19 , Processed in 0.326120 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表