Documenso 电子签名平台部署教程
Documenso 是一款开源的电子签名平台,作为 DocuSign 的自托管替代方案。它允许你上传 PDF 文档,添加签名字段,通过邮件邀请签署方完成电子签名流程。所有文档数据存储在你自己的服务器上,保障商业文档的安全性和隐私性。本教程将在搬瓦工 VPS 上使用 Docker 部署 Documenso。
一、Documenso 核心功能
- 文档签署:上传 PDF 文档,拖拽添加签名、日期、姓名等字段,发送给多个签署方。
- 签名类型:支持手绘签名、文字签名和上传签名图片。
- 签署流程:支持顺序签署(按顺序依次签名)和并行签署(同时发送给所有人)。
- 模板管理:将常用文档保存为模板,快速创建签署请求。
- 审计追踪:完整记录文档的每一步操作,包括查看、签名时间和 IP 地址。
- API 集成:提供 REST API,可以集成到业务系统中实现自动化签署流程。
二、环境准备
- 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
- 内存:至少 1GB RAM,推荐 2GB。
- 磁盘:至少 10GB 可用空间。
- Docker:已安装 Docker 和 Docker Compose(参考 Docker 安装教程)。
选购搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 折扣。
三、Docker Compose 部署
3.1 创建项目目录
mkdir -p /opt/documenso && cd /opt/documenso
3.2 创建环境变量文件
cat > .env <<'EOF'
NEXTAUTH_URL=http://your-domain.com
NEXTAUTH_SECRET=your_nextauth_secret
NEXT_PRIVATE_ENCRYPTION_KEY=your_encryption_key
NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=your_secondary_key
NEXT_PUBLIC_WEBAPP_URL=http://your-domain.com
NEXT_PRIVATE_DATABASE_URL=postgresql://documenso:your_db_password@db:5432/documenso
NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql://documenso:your_db_password@db:5432/documenso
NEXT_PRIVATE_SMTP_HOST=smtp.example.com
NEXT_PRIVATE_SMTP_PORT=587
NEXT_PRIVATE_SMTP_USERNAME=your-email@example.com
NEXT_PRIVATE_SMTP_PASSWORD=your-email-password
NEXT_PRIVATE_SMTP_FROM_ADDRESS=noreply@example.com
NEXT_PRIVATE_SMTP_FROM_NAME=Documenso
EOF
生成所需的密钥:
echo "NEXTAUTH_SECRET: $(openssl rand -base64 32)"
echo "ENCRYPTION_KEY: $(openssl rand -hex 32)"
echo "SECONDARY_KEY: $(openssl rand -hex 32)"
3.3 创建 Docker Compose 文件
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
documenso:
image: documenso/documenso:latest
container_name: documenso
restart: always
ports:
- "3000:3000"
env_file:
- .env
depends_on:
- db
db:
image: postgres:15-alpine
container_name: documenso-db
restart: always
environment:
POSTGRES_USER: documenso
POSTGRES_PASSWORD: your_db_password
POSTGRES_DB: documenso
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
EOF
3.4 启动服务
docker compose up -d
docker compose logs -f documenso
访问 http://你的服务器IP:3000 注册账户开始使用。
四、Nginx 反向代理
cat > /etc/nginx/sites-available/documenso <<'EOF'
server {
listen 80;
server_name sign.example.com;
client_max_body_size 50m;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
ln -s /etc/nginx/sites-available/documenso /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d sign.example.com
启用 HTTPS 后务必更新 .env 中的 URL 为 HTTPS 地址并重启。邮件发送功能必须配置 SMTP 才能正常工作。
五、使用 Documenso
5.1 创建签署请求
登录后点击"New Document"上传 PDF 文档。然后添加签署方(输入邮箱和姓名),为每个签署方分配签名字段。字段类型包括签名、姓名、邮箱、日期、文本和复选框。拖拽字段到文档的对应位置,调整大小后发送签署请求。
5.2 签署流程
签署方会收到包含签署链接的邮件。点击链接后进入签署页面,在指定位置完成签名。所有签署方完成签名后,系统自动将签署完成的文档发送给所有参与方。
5.3 文档模板
对于经常使用的合同或协议,可以将文档保存为模板。模板保留所有字段位置和签署方角色设置,下次使用时只需填入签署方的具体信息即可快速发起签署。
5.4 API 集成
Documenso 提供 REST API 用于程序化创建和管理签署请求。在账户设置中生成 API Token,然后通过 API 上传文档、添加签署方和发送签署请求,实现业务系统的自动化集成。
六、备份与升级
# 备份数据库
docker exec documenso-db pg_dump -U documenso documenso > /opt/documenso/backup_$(date +%Y%m%d).sql
# 升级
cd /opt/documenso
docker compose pull
docker compose down
docker compose up -d
总结
Documenso 为需要电子签名功能的个人和企业提供了可靠的自托管方案,确保敏感商业文档的安全性。部署在搬瓦工 VPS 上运行稳定,成本低廉。购买搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 折扣。更多教程请访问 搬瓦工VPS中文网。