告别纸质合同,使用DocuSeal搭建私有电子签平台

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

在企业开发中经常会遇到合同类的问题,随着互联网的发展电子签迅速被企业引入。很多企业没有自己的电子签平台,只能找第三方的电子签平台。第三方的服务、升级都影响着业务系统。

今天介绍一款开源的电子签平台:DocuSeal

02 简介

DocuSeal 是一个开源的数字文档签署与处理平台,提供安全、高效的在线文档填写与电子签名能力。它允许你在任何设备上通过移动端优化的 Web 工具,创建 PDF 表单、分发给签署人、并在线收集签名与填写内容。官方直接定位是Open source DocuSign alternative(开源版 DocuSign 替代品)。

核心解决痛点:不再依赖第三方电子签名服务商的「按信封(envelope)计费」模式,数据完全掌握在自己手里,适合对合同保密性、合规性要求高的企业。

当前项目的许可证是基于 AGPLv3,并附加 Section 7(b) Additional Terms(额外条款)。即:自由自用、自托管、修改均免费;但若提供网络服务并修改了代码,需以 AGPL 方式开放修改后的源码。商业闭源使用需购买 Pro 授权。版权 © 2023--2026 DocuSeal LLC。

GitHub地址:github.com/docusealco/...

官网地址:www.docuseal.com/

03 部署

3.1 Docker 部署

默认使用 SQLite 存储,无需额外数据库,数据持久化到本地 ./data 目录:

bash 复制代码
docker run --name docuseal -p 3000:3000 -v "$PWD/data:/data" docuseal/docuseal

启动后访问 http://localhost:3000,第一个注册的用户即为管理员。

若改用 PostgreSQL / MySQL,只需通过环境变量 DATABASE_URL 指定连接串即可,镜像本身不变。

3.2 Docker Compose 部署

官方 docker-compose.yml 包含三个服务:app(DocuSeal)+ postgres(数据库)+ caddy(反向代理自动签发 SSL)

  1. 下载官方编排文件:
bash 复制代码
curl https://raw.githubusercontent.com/docusealco/docuseal/master/docker-compose.yml > docker-compose.yml
  1. 用自定义域名启动(需将 DNS 解析指向该服务器,Caddy 会自动申请 Let's Encrypt 证书):
bash 复制代码
sudo HOST=your-domain-name.com docker compose up

3.3 源码部署

适合需要修改代码、做二次开发的场景。前置依赖:Ruby 3.x + Node.js + Yarn + PostgreSQL(或 MySQL/SQLite)。

bash 复制代码
# 1. 拉取源码
git clone https://github.com/docusealco/docuseal.git
cd docuseal

# 2. 安装依赖
bundle install
yarn install

# 3. 配置环境变量(至少设置 DATABASE_URL 与 SECRET_KEY_BASE)
cp .env.example .env
# 编辑 .env,填入:
#   DATABASE_URL=postgresql://user:pass@localhost:5432/docuseal
#   SECRET_KEY_BASE=$(openssl rand -hex 64)

# 4. 准备数据库
rails db:create db:migrate

# 5. 启动(开发模式)
rails server

# 生产模式(需预编译静态资源)
RAILS_ENV=production rails assets:precompile
RAILS_ENV=production rails server

3.4 PaaS 部署

官方 README 提供了一键部署按钮,无需手动配置:

04 体验

演示直接使用最简单的单机Docker部署方式,持久化使用Mysql。由于本机的3000端口被占用,这里改成4001端口。

bash 复制代码
docker run -d --name docuseal --network docuseal-net -p 4001:3000 -v docuseal_data:/data -e DATABASE_URL="mysql2://root:root@mysql8/docuseal" docuseal/docuseal

部署成功之后,直接通过IP+端口就可以访问。

4.1 初次访问

初次访问需要设置账号。语言中没有中文,有点小遗憾。

4.2 注册成功

注册成功之后就可以制作模板了。

上传模版后就可以标记签字盖章的地方了。

  • ① 区域罗列了很多签字相关的不同种类,签字、文本、日期等
  • ② 自动检测并识别签字的区域

4.3 编辑模版

我们需要根据需要调整签字区域,自动识别的不一定是我们想要的结果。以案例为准,我们需要签字模块和日期。

如图设置两个区域,分别包含了签字和日期。

4.4 保存与发送

保存完成后就可以查看了:

这里的保存和发送是有讲究的。如果当前保存时是第一部分,就只能签署第一部分的内容。如果是第二部分,也就只能八年级第二部分的内容。

下面是只保存了第一部分。

发送的话需要配置对应的参数。

4.5 签署

因为涉及两部分,需要发送给多人签署。配置参数后就可以按照上面的截图发送邮件了。

我都发给了我自己,我就会收到两份邮件:

邮件是这样的:

打开之后,就可以签署自己的那一份了。

全部签署完成之后就可以在后台查看:

完整的结果:

4.6 API支持

业务系统中最关心的就是和私有部署打通,这里提供了API的支持可以和业务系统打通。

05 小结

DocuSeal免费版还是有诸多的限制的,用量小的话没有问题。一旦增多可能需要使用企业版的软件了。

既然有限制,那么能不能使用AI自己开发一套呢?

相关推荐
七夜zippoe1 小时前
Spring AI 函数调用:让 Java 方法变成 Agent 的工具(实战全流程)
java·人工智能·spring·ai·agent·函数调用
萧瑟余晖1 小时前
Spring Batch 高级特性与实践详解
java·spring·batch
她说..1 小时前
常见设计模式-观察者模式
java·spring boot·spring·观察者模式·设计模式
vipxieliang1 小时前
Actuator 与 Micrometer:生产级监控体系搭建
java·spring boot
Seven972 小时前
Java已死?社招第一次跳槽:Boss沟通505次,6周拿下8个offer
java
一级新生2 小时前
LLM _ Agent _ Skill _ 专家 的关系与选型笔记
java·开发语言·人工智能·笔记·大模型·智能体·skill
文丑颜不良啊2 小时前
LeetCode1541~1560题目解析
java·leetcode
starzy19902 小时前
Scala String操作:从插值器到正则的完整指南
开发语言·后端·scala