演示从创建信封、发送签署链接到 Webhook 回调更新状态的完整电子签名流程
signatureapi-rails-starter — Rails 启动器模板
作者 signatureapi
基于 Rails 的 SignatureAPI 电子签名集成启动器,演示发送文档、验证 Webhook 并下载已签署 PDF 的完整流程。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
使用 Standard Webhooks 库验证 Webhook 签名,并据此更新协议状态
已完成的协议可跳转下载签署后的 PDF
集成逻辑集中在 service 与 webhooks controller 两个文件,便于扩展收件人、地点或信封选项
内置 SignatureAPI agent skills 与 MCP 服务器配置,支持多种 AI 编码工具
单元测试使用 WebMock 桩接 API 并签名测试 Webhook,无需 API key
模板详细介绍
这是一个 Ruby on Rails 启动器模板,用于对接 SignatureAPI 电子签名服务。表单收集签署人姓名与邮箱后,应用上传示例 PDF、创建信封并保存 Agreement 记录,SignatureAPI 向签署人发送签署链接。签署完成后,Webhook 将协议状态更新为 completed、rejected、failed 或 canceled,已完成的协议可跳转下载签署后的 PDF。
集成逻辑集中在两个文件:app/services/signature_api.rb 负责调用 REST API,app/controllers/signatureapi_webhooks_controller.rb 使用 Standard Webhooks 库验证 Webhook 并更新协议状态。仓库还内置了 SignatureAPI 的 agent skills 与 MCP 服务器配置,覆盖 Claude Code、Codex、Cursor、Copilot 等工具。
模板默认使用 SQLite,未包含用户认证。README 指出生产环境需要更换 live API key、注册公开 Webhook URL、设置 SECRET_KEY_BASE 并为 SQLite 提供持久化磁盘或切换数据库;交付物链接一小时后过期,如需保留已签署 PDF 需自行下载存储。
适合你的项目吗?
适用场景
- 在 Rails 应用中快速接入 SignatureAPI 电子签名能力
- 学习如何创建信封、处理签署状态回调并获取签署后 PDF
- 作为需要发送协议供他人签署的内部工具或原型的起点
- 参考 Standard Webhooks 验证与 AI 编码工具集成的实现方式
适合人群
- 熟悉 Ruby on Rails 并希望集成电子签名的开发者
- 需要可运行示例来理解 SignatureAPI 信封与 Webhook 流程的团队
- 计划在 Rails 项目中添加文档签署环节的产品原型
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Ruby(见 .ruby-version)和 Node.js 20 或更高版本以使用 npx
- 2
运行 npx --yes signatureapi init 将测试 API key 写入 .env
- 3
执行 bin/setup --skip-server 安装依赖并创建数据库,再运行 bin/rails server -p 3000
- 4
另开终端运行 npx --yes signatureapi listen --forward-to http://127.0.0.1:3000/webhooks/signatureapi 转发测试 Webhook,首次运行会写入 SIGNATUREAPI_WEBHOOK_SECRET,需重启服务器加载
- 5
生产环境需更换 live API key、注册公开 Webhook URL、设置 SECRET_KEY_BASE 并为 SQLite 提供持久化磁盘或切换数据库
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 使用前必须获取并配置 SignatureAPI 的测试 API key,模板依赖该外部服务才能运行。
- 初始化需通过 npx 运行 SignatureAPI CLI 命令,依赖外部工具与网络。
- 本地开发需运行 SignatureAPI CLI 转发测试 Webhook,依赖外部服务。
- 首次运行 listen 会写入 Webhook 密钥,必须重启服务器才能加载,否则 Webhook 验证失败。
- 端到端测试需要 API key 并保持 listen 运行,依赖外部服务。
- 生产环境必须使用 SignatureAPI 的 live API key,属于外部付费服务依赖。
- 生产环境需在 SignatureAPI 控制台注册公开 Webhook URL 并配置签名密钥。
- 模板不包含用户认证,直接用于生产需自行添加认证机制。
- 交付物链接一小时后过期,如需长期保存已签署 PDF 必须自行下载存储。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
Write a test API key to `.env`:
README 原文
npx --yes signatureapi init
README 原文
forward test webhooks to the app:
README 原文
The first `listen` writes `SIGNATUREAPI_WEBHOOK_SECRET` to `.env`. Restart the server once so it loads the secret.
README 原文
The end-to-end test in [`e2e/`](e2e/README.md) sends, signs and completes a real test-mode envelope. It needs a key and a running `listen`.
README 原文
Use a live API key in `SIGNATUREAPI_KEY`.
README 原文
Register your public webhook URL in the SignatureAPI dashboard and set `SIGNATUREAPI_WEBHOOK_SECRET` to its signing secret.
README 原文
Add authentication for your users. This app has none.
README 原文
https://github.com/signatureapi/signatureapi-rails-starter/blob/main/LICENSEhttps://github.com/signatureapi/signatureapi-rails-starter/blob/main/README.mdDeliverable URLs expire after an hour. Download and store the signed PDF (for example on `deliverable.generated`) if you need to keep it.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-09。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 83 / 100
- 技术栈
- Rails
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-09
- 截图检查日期
- 2026-10-09
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Rails。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-10
查看当时使用的来源资料
SHA-256: 7218f92554b9ba11f3721ef180af5c9ebbf96d5a80815cd2ee0110d60eccd609
2026-10-09T16:37:19.811Z
来源文件 / 仓库# SignatureAPI Rails starter
A Ruby on Rails template for sending documents for signature with the SignatureAPI e-signature API.
[](docs/media/demo.mp4)
## What it does
- A form takes a signer's name and email.
- The app uploads a sample PDF, creates an envelope and saves an `Agreement`.
- SignatureAPI emails the signer a signing link.
- A webhook updates the agreement's status: completed, rejected, failed or canceled.
- A completed agreement links to its signed PDF.
## Use this template
Select **Use this template** on GitHub to create your own repository, then clone it.
## Quickstart
You need Ruby (see `.ruby-version`) and Node.js 20 or later for `npx`.
Write a test API key to `.env`:
```bash
npx --yes signatureapi init
```
Install gems, create the database and start the app:
```bash
bin/setup --skip-server
bin/rails server -p 3000
```
In another terminal, forward test webhooks to the app:
```bash
npx --yes signatureapi listen --forward-to http://127.0.0.1:3000/webhooks/signatureapi
```
The first `listen` writes `SIGNATUREAPI_WEBHOOK_SECRET` to `.env`. Restart the
server once so it loads the secret.
Open http://localhost:3000 and send an agreement.
## How it works
```mermaid
sequenceDiagram
participant U as Browser
participant A as Rails app
participant S as SignatureAPI
participant R as Signer
U->>A: POST /agreements (name, email)
A->>S: POST /uploads (sample PDF)
A->>S: POST /envelopes
A->>A: Save Agreement (status: sent)
S->>R: Email with signing link
R->>S: Signs
S->>A: POST /webhooks/signatureapi (envelope.completed)
A->>A: Verify signature, set status: completed
U->>A: GET /agreements/:id/signed.pdf
A->>S: GET /envelopes/:id/deliverables
A-->>U: 302 to the signed PDF
```
Two files hold the integration:
- [`app/services/signature_api.rb`](app/services/signature_api.rb) calls the REST API.
Add places, recipients or envelope options here.
- [`app/controllers/signatureapi_webhooks_controller.rb`](app/controllers/signatureapi_webhooks_controller.rb)
verifies each webhook with the [Standard Webhooks](https://github.com/standard-webhooks/standard-webhooks)
library and updates the agreement. Add events here.
## AI agents
The repo comes with the SignatureAPI agent skills and MCP server set up:
- Claude Code: the SignatureAPI plugin (skills and MCP) in `.claude/settings.json`.
- Codex, Cursor, Copilot and others: the same skills in `.agents/skills/`,
and the MCP server in `.cursor/mcp.json` and `.codex/config.toml`.
Both are pinned to commit `93c02a9f1336952b0da9c71a2da2f0024e8afaaa` of
[signatureapi/skills](https://github.com/signatureapi/skills). To update:
```bash
scripts/update-agent-skills.sh <commit-sha>
```
## Tests
```bash
bin/rails test
bin/rubocop
```
Unit tests stub SignatureAPI with WebMock and sign test webhooks with the
Standard Webhooks library. They need no API key.
The end-to-end test in [`e2e/`](e2e/README.md) sends, signs and completes a
real test-mode envelope. It needs a key and a running `listen`.
## Going to production
- Use a live API key in `SIGNATUREAPI_KEY`.
- Register your public webhook URL in the SignatureAPI dashboard and set
`SIGNATUREAPI_WEBHOOK_SECRET` to its signing secret.
- Set `SECRET_KEY_BASE` and give SQLite a persistent disk, or switch databases.
- Add authentication for your users. This app has none.
- Deliverable URLs expire after an hour. Download and store the signed PDF
(for example on `deliverable.generated`) if you need to keep it.
## License
[MIT](LICENSE)
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

react-starter-kit
Inertia Rails React Starter Kit
Rails · 启动器

rails-tabler-starter
Free and open source Ruby on Rails starter kit built using Tabler
Rails · 后台

plutonium-core
Build production-ready Rails apps in minutes, not days. Convention-driven, fully customizable, AI-ready.
Rails · 后台

ace-template
Rails 8+ app template. Go from 0 to full-featured deployed app in less than 5 minutes (self-hosted or PaaS)
Rails · 启动器

kern
SaaS starter for Rails apps. Skip the boilerplate and start shipping the actual product.
Rails · SaaS

rails-react-starter
Simple React & Rails starter
Rails · 启动器
