【GoForm】一个单文件部署的轻量级动态表单系统

发布时间:2026-08-22 阅读量:15 Go Gin
【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 张测试表单(活动报名、设备报修、问卷调研、会议室预约、停用示例),可直接点击体验各项功能。了解清楚后再删掉测试表单,创建自己的表单。

第一步:创建表单

  1. 登录后台,进入「填报管理」页面
  2. 点击「新建表单」,进入三步向导:
  • 基本信息填写表单名称、备注说明、填报后跳转方式(核对数据 / 继续填报 / 关闭页面),并配置「填报设置」
  • 启用/停用开关
  • 有效期(开始/结束时间)
  • 提交次数上限(如 100 人报名)
  • 图片验证码开关
  • 表单访问密码、IP 限制、提交间隔(可选)
  • 拖拽设计从左侧组件库拖入所需字段(文本、数字、单选、附件等),配置标题、必填、选项等
  • 预览发布预览表单效果,确认无误后点击「发布」

  1. 发布后表单出现在左侧列表中,自动生成填报链接

第二步:分享表单

  1. 在「填报管理」列表中选中刚发布的表单
  2. 点击「填报二维码」按钮,弹出二维码对话框:
  • 对话框显示 256x256 的填报二维码
  • 下方显示完整的填报链接
  1. 两种分享方式任选:
  • 下载二维码点击「下载二维码」保存 PNG 图片,可嵌入通知、海报、群公告
  • 复制链接点击「复制链接」,粘贴到微信群、邮件、网页

用户扫码或点击链接即可填报,无需注册登录。

第三步:查看与导出数据

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

  1. 导出 Excel点击「导出数据」,一键导出全部字段为 Excel 文件(最大 10000 行)
  2. 导出附件若表单含上传字段,点击「导出附件」:
  • 选择「文件夹关联字段」(如按"姓名"分类,每人一个子文件夹)
  • 可选自定义文件名规则,如 {姓名}_{日期}
  • 打包为 ZIP 下载,附件按字段值归类存放
  1. 编辑/删除每行记录支持编辑(跳转填报页修改)和删除

用户篇:填报流程

方式一:扫码填报

  1. 手机扫描管理员分享的二维码
  2. 浏览器自动打开填报页面
  3. 填写表单字段,支持:
  • 文本输入、数字、日期选择
  • 单选/多选/下拉
  • 拍照上传或选择相册图片
  • 文档附件上传
  1. 点击「提交」,完成填报

方式二:链接填报

  1. 点击管理员分享的填报链接
  2. 浏览器打开填报页面(PC 和手机均适配)
  3. 填写并提交

填报后

根据管理员设置的跳转方式:

  • 核对数据显示已提交内容,可检查或返回修改
  • 继续填报清空表单,继续提交下一条(适合批量录入)
  • 关闭页面自动关闭浏览器标签

已提交的记录可通过管理员分享的编辑链接(带 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

AI

智能问答助手

基于本手册内容回答问题
AI
你好,我是本手册的 AI 助手,有任何安装问题可以直接问我。
← 返回手册列表

相关手册