【GoForm】一个单文件部署的轻量级动态表单系统
还在为表单系统复杂的部署环境发愁?今天介绍一个用 Go + Vue3 打造的动态表单系统——GoForm,编译出一个二进制文件就能跑,无需安装数据库,无需配置 Nginx,拷贝到服务器直接启动。
为什么做这个系统
团队日常工作中,信息收集是个高频需求:活动报名、问卷调研、设备报修、物资领用……每次都找开发写页面不现实,用市面上的 SaaS 表单又担心数据安全。
用 SaaS 表单的痛点大家都遇到过:
- 数据存在别人服务器上,敏感信息不敢往上放
- 免费版有限制:表单数、提交量、附件大小、导出次数……处处设卡
- 想加个自定义字段、改个校验规则,还得看人家给不开放
- 一旦服务停摆或涨价,辛辛苦苦收集的数据全泡汤
GoForm 的目标很简单:自己部署、数据自持、开箱即用。一个二进制文件,内置数据库和前端,十分钟搞定一套表单系统。
演示站:https://goform.kzhgzs.cn/账号:admin 密码:123456
与 SaaS 表单对比
对比项
SaaS 表单(问卷星等)
GoForm
数据存储
存在厂商服务器
自己服务器,数据完全自持
部署方式
注册账号即用
一个二进制文件,拷贝即跑
表单数量
免费版受限
不限
提交量
免费版受限
不限(仅受服务器性能约束)
附件大小
免费版受限
不限(仅受磁盘空间约束)
数据导出
免费版受限/付费
不限,免费导出
定制能力
厂商决定
开源,可自行修改
离线使用
不支持
支持(内网/离线环境可部署)
费用
免费版受限,高级版按年付费
一次部署,零持续费用
如果你更看重「数据自主权」和「零成本扩展」,GoForm 是更合适的选择。

核心功能一览
1. 可视化表单设计
内置 form-create 拖拽式设计器,所见即所得:
- 支持文本、数字、单选、多选、下拉、日期、附件上传等常见字段
- 字段可设置必填、默认值、校验规则
- 三步向导式创建:填写基本信息 → 拖拽设计表单 → 预览发布
- 发布后自动生成填报链接,分享即可收集数据
不需要写一行代码,业务人员也能自助建表。
2. 智能填报
- 公开链接填报无需登录,打开链接即可填写
- 移动端适配手机浏览器直接访问,字段布局自动适配
- 附件上传支持图片、文档等附件,上传后自动保存
- 数据编辑支持填报后修改,凭提交记录 ID 即可定位编辑
- 双重校验前端实时校验 + 后端必填/长度/数值范围校验,防止绕过前端提交脏数据
- 图片验证码管理员可开启图片验证码防刷,提交前需输入验证码
3. 表单生命周期控制
表单发布后,管理员可在「填报设置」中精细控制表单状态:
- 开关控制一键启用/停用,停用后无法提交
- 有效期设置开始/结束时间,到点自动开放或关闭
- 提交上限设置总提交次数,达到上限自动关闭(适合名额有限的报名)
- 图片验证码开启后提交需输入验证码,防止机器刷单
- 表单密码设置访问密码,仅限知道密码的人填报
- IP 限制限制每个 IP 的提交次数(按天或总计)
- 提交间隔限制两次提交的最小间隔(秒),防止快速重复提交
所有校验由后端强制执行,前端预检只是体验优化,绕过前端也无法突破限制。
4. 数据管理
收集到的数据,后台一目了然:
- 列表查看分页展示所有提交记录,支持搜索筛选
- Excel 导出一键导出全部数据为 Excel,方便二次分析
- 附件批量导出按字段值自动创建子文件夹,附件打包下载
- 例如按"部门"字段分类,每个部门一个文件夹
- 支持自定义文件名规则,如 {姓名}_{日期}
- 数据删除支持单条删除,清理无效数据

5. 数据分析
每张表单内置一个「数据分析」按钮,一键查看收集情况:
- 总提交数当前表单累计提交量
- 今日新增今日提交数量
- 收集进度配合提交上限显示进度百分比(如 32/100)
- 字段分布单选/多选/下拉字段的选项占比(如性别比例)
- 7 日趋势最近 7 天每日提交数趋势图
无需导出 Excel,后台直接掌握数据概况。
6. 权限管理
基于 Casbin RBAC 模型,三级角色精细控制:
角色
权限范围
管理员
用户管理、表单管理、数据管理、AI、文件上传
项目管理员
表单管理、数据管理、AI、文件上传
普通用户
AI 对话、文件上传
新增后台接口自动注册 RBAC 策略,无需手动配置权限规则。
使用指南
管理员篇:从建表到收集数据
💡 提示:首次登录后,系统已预置 5 张测试表单(活动报名、设备报修、问卷调研、会议室预约、停用示例),可直接点击体验各项功能。了解清楚后再删掉测试表单,创建自己的表单。
第一步:创建表单
- 登录后台,进入「填报管理」页面
- 点击「新建表单」,进入三步向导:
- 基本信息填写表单名称、备注说明、填报后跳转方式(核对数据 / 继续填报 / 关闭页面),并配置「填报设置」
- 启用/停用开关
- 有效期(开始/结束时间)
- 提交次数上限(如 100 人报名)
- 图片验证码开关
- 表单访问密码、IP 限制、提交间隔(可选)
- 拖拽设计从左侧组件库拖入所需字段(文本、数字、单选、附件等),配置标题、必填、选项等
- 预览发布预览表单效果,确认无误后点击「发布」


- 发布后表单出现在左侧列表中,自动生成填报链接
第二步:分享表单
- 在「填报管理」列表中选中刚发布的表单
- 点击「填报二维码」按钮,弹出二维码对话框:
- 对话框显示 256x256 的填报二维码
- 下方显示完整的填报链接
- 两种分享方式任选:
- 下载二维码点击「下载二维码」保存 PNG 图片,可嵌入通知、海报、群公告
- 复制链接点击「复制链接」,粘贴到微信群、邮件、网页
用户扫码或点击链接即可填报,无需注册登录。


第三步:查看与导出数据
- 在「填报管理」列表选中表单,主区自动展示提交记录:
- 支持关键词搜索、分页浏览
- 附件字段直接预览缩略图,点击可查看大图或下载
- 单选字段按选项颜色区分,一目了然
- 数据分析点击「数据分析」按钮,查看总提交数、今日新增、收集进度、字段分布、7 日趋势

- 导出 Excel点击「导出数据」,一键导出全部字段为 Excel 文件(最大 10000 行)
- 导出附件若表单含上传字段,点击「导出附件」:
- 选择「文件夹关联字段」(如按"姓名"分类,每人一个子文件夹)
- 可选自定义文件名规则,如 {姓名}_{日期}
- 打包为 ZIP 下载,附件按字段值归类存放
- 编辑/删除每行记录支持编辑(跳转填报页修改)和删除
用户篇:填报流程
方式一:扫码填报
- 手机扫描管理员分享的二维码
- 浏览器自动打开填报页面
- 填写表单字段,支持:
- 文本输入、数字、日期选择
- 单选/多选/下拉
- 拍照上传或选择相册图片
- 文档附件上传
- 点击「提交」,完成填报
方式二:链接填报
- 点击管理员分享的填报链接
- 浏览器打开填报页面(PC 和手机均适配)
- 填写并提交
填报后
根据管理员设置的跳转方式:
- 核对数据显示已提交内容,可检查或返回修改
- 继续填报清空表单,继续提交下一条(适合批量录入)
- 关闭页面自动关闭浏览器标签
已提交的记录可通过管理员分享的编辑链接(带 sid 参数)再次修改。
快速安装
服务器无需安装任何开发环境,一个二进制文件即可运行。上传到服务器站点目录,首次运行会自动生成 config.yaml,关键字段:
app:
port: 2000
# 监听端口
database:
path: database.db
# SQLite 文件路径
所有配置项均支持环境变量覆盖,方便容器化部署。
下面以linux宝塔面板为例,新建站点,将其上传到站点目录下:

添加反代:

在进程守护管理器中添加goform路径:

windows平台的话,只需要双击goform.exe文件即可。
适用场景
- 企业内部设备报修(含故障照片上传)、物资领用、会议室预约(密码限制)、活动报名(名额上限)
- 教育机构问卷调研(提交上限控制样本量)、课程反馈、报名登记、考试成绩收集
- 社区组织信息登记、志愿者招募、活动报名(验证码防刷)
- 内网/离线环境军工、政府、医疗等数据不能出内网的场景,本地部署完全自主
- 个人使用AI 对话助手、轻量数据收集、快速搭建临时表单
技术栈
层级
技术选型
后端
Go 1.25 + Gin + GORM + SQLite
前端
Vue 3 + Vite 5 + Element Plus
表单
@form-create/designer
权限
Casbin v3 + JWT v5
AI
Google Gemini API (SSE 流式)
常见问题
Q:数据存在哪里?安全吗?
数据存在你自己服务器的 SQLite 文件中,不经过任何第三方。文件级备份只需拷贝 database.db,迁移只需复制文件到新服务器。
Q:支持多少人同时填报?
SQLite 开启 WAL 模式后支持并发读,单机轻松应对百人级并发填报。如果需要更高并发,可替换为 MySQL 数据库。
Q:首次启动会自动创建测试数据吗?
会。首次启动时自动创建 5 张测试表单(活动报名、设备报修、问卷调研、会议室预约、停用示例),每张含样本数据,方便你直接体验各项功能。删除测试表单后在 forms 表为空时重启可重新生成。
Q:支持 Docker 部署吗?
支持。单二进制文件天然适合容器化,只需挂载 database.db 和 config.yaml 两个文件即可持久化数据。
Q:表单数据能迁移到其他系统吗?
可以。所有数据存储在标准 SQLite 文件中,可用任何 SQLite 工具导出为 CSV/JSON,也可通过 Excel 导出功能一键导出。
写在最后
GoForm 的设计理念是轻量、自持、实用。不追求大而全的功能堆砌,而是把核心场景做扎实:表单能快速建、数据能方便导、部署能足够简。
如果你也曾为这些场景头疼过——
- 团队需要收集信息,但不想把数据交给第三方
- 频繁的信息收集需求,每次找开发写页面不现实
- 内网环境无法使用 SaaS 表单
- 想要一个能完全掌控的轻量工具
不妨试试 GoForm。一个二进制文件,十分钟上手,数据自己掌控。
项目地址:https://gitee.com/ydxjyjkzh/goform
演示站:https://goform.kzhgzs.cn/(admin / 123456)
技术栈:Go + Gin + Vue3 + SQLite + Casbin
License:MIT
温馨提示
知识产权声明:本软件已获国家版权局软件著作权登记(登记号:2022SR0558725),受《计算机软件保护条例》保护。未经书面授权,严禁对本软件进行反向工程、反编译、破解或任何形式的篡改。侵权必究。
官方指引:本文档为官方安装部署说明,仅适用于当前发布版本,后续版本请以最新官方文档为准。
环境要求:安装前请确认操作系统版本、运行环境(如 .NET、Java 等)及硬件配置满足软件运行要求,避免因环境不兼容导致异常。
操作风险与免责:安装配置涉及防火墙、注册表或环境变量等系统级变更,建议由具备相关经验的技术人员操作。因用户未严格遵循本官方指引或操作不当导致的任何数据丢失、系统异常或其他损失,我方不承担相关责任。如遇问题,请及时联系技术支持。
反馈渠道:如有未覆盖的问题,欢迎通过客服反馈,我们将持续更新与改进。
版本记录:最后更新于 2026-08-22