把 NAS 从角落翻出来,我用它搭了一套问卷系统
前言我先坦白我是个典型的设备爱好者买的时候想的特别好买回来用的次数一只手数得过来。NAS 就是最典型的例子——当年研究了半天买了台绿联 DX4600花了两千多。想着以后搭这个建那个结果呢存了几年照片平时连它的后台都懒得进。说实话每次看到它在电视柜角落积灰心里都有点堵总觉得钱白花了。转机出现在上个月。公司要做季度用户反馈调研我照例去某问卷平台准备新建——结果弹出来一个收费提示说我的数据量超过免费额度了想导出开会员吧。我当时就有点无语不就是几百条用户反馈吗回家路上我就开始琢磨有没有什么办法能让自己搭一个问卷系统数据存在自己硬盘里想怎么用就怎么用还不用看别人脸色。还真让我找到了。有个读者在群里推荐了*TDuck填鸭*说这是他们公司现在用的问卷、投票、报名表都能做关键是开源免费能直接部署在自己的 NAS 上。我当时第一反应是等等我又不是程序员我也能装看了下文档发现居然有****一键部署脚本****整个过程不到 10 分钟。说实话装完之后我有种打开新世界大门的感觉。原来 NAS 不只能存照片原来这些开源工具真的可以 5 分钟跑起来原来数据在自己手里是这种感觉。用了一个多月公司那档调研我全程在 TDuck 上跑的数据导出格式干净分析图表直接生成连给老板汇报的时候都体面不少。同事还问我这东西哪来的我一说 NAS 上搭的他们都觉得挺不可思议的。1 什么是 Tduck?TDuck填鸭是一款基于SpringBoot Vue技术栈开发的开源表单问卷系统。你可以把它想象成是一个完全属于你自己的“问卷星”或“金数据”。它最大的特点就是所见即所得。通过拖拽的方式你就能像搭积木一样快速创建出各种专业的问卷、考试试卷、或者信息收集表单。它能为你做什么支持27自定义组件拖拽式快速生成表单问卷。支持单行文本、多行文本、日期、下拉、单选、文件上传、排序、级联、轮播、一键定位、手机号验证、矩阵量表、子表单等组件。支持通过文本批量导入表单组件支持题目显隐逻辑设置。表单数据支持数据新增、编辑、导出、打印、预览和打包下载附件。表单外观支持头图、背景图、背景颜色、按钮文字等配置。报表支持对问题实时统计分析并以图形柱状图、折线图、饼图的形式展示输出和导出png图片。提交后自定义文案、提交后自动跳转网址。每个微信、账号、ip、设备、答题次数限制、支持设置允许填写时间、记录微信个人信息。支持发邮件、微信公众号模板推送提醒。支持数据同步Api全量数据、数据WebHook推送可订阅事件新增、修改、删除。支持保存至模板中心支持从模板中心选用模板创建表单问卷。用户管理新增用户、修改用户、删除用户。文件存储自定义配置支持阿里云、七牛云、又拍云、本地、通用S3协议上传。支持邮件、短信阿里云、腾讯云、中昱维信、微信公众号参数配置。支持回收中心快速恢复问卷。支持配置TReport可视化大屏高效展示数据2 通过脚本一键部署Tduck本部分以绿联 NAS 作为演示其他 NAS 系统如群晖、极空间的操作步骤基本一致只要能 SSH 连接并能运行 Docker 命令即可。2.1 连接SSH终端首先需要先给绿联Nas开启SSH远程登录功能点击首页的控制面板然后点击终端机图标点击进入点击勾选SSH功能然后点击应用注意SSH密码为登录的密码建议密码一定要设置强密码特别是公网环境下接着电脑上摁Win X键选择终端管理员打开PowerShell终端在终端输入如下命令连接你的绿联Nas终端# ssh 你的绿联Nas用户名你的绿联Nas访问IP地址sshsusu192.168.50.99连接上绿联Nas的终端后在终端中输入如下命令切换至root用户sudo-i2.2 一键部署Tduck连接到你的 NAS后复制如下我编写的一键部署脚本到终端粘贴并且回车curl-fsSLhttps://gitee.com/jun-wan/script/raw/master/tduck_deploy/deploy-tduck.sh-o/tmp/deploy-tduck.shchmodx /tmp/deploy-tduck.sh/tmp/deploy-tduck.sh可以看到交互提示直接回车使用毫秒镜像源即可可以看到回车后脚本自动执行了相关的环境检查相关文件目录等创建并进行部署等待部署完成可以看到部署完成后输出了访问地址和默认账号信息这样就部署好了是不是特别简单2.3 验证访问当脚本提示“部署成功”后打开浏览器访问访问地址http://NAS_IP:8999将NAS_IP换成你 NAS 的局域网 IP默认账号admintduckcloud.com默认密码123456 提示成功登录后请务必第一时间修改默认密码。可以看到成功的访问到了Tduck的登录界面接着使用默认的账号密码进行登录登录成功可以看到 TDuck 的后台管理界面。界面设计非常现代化左侧是导航栏右侧是内容区。3 创建问卷并测试3.1 创建及设置问卷以创建一份《2025 生活结算单嘿这一年辛苦啦》问卷为例首先点击我的项目页的创建表单按钮填写你要创建的问卷信息点击确认后来到表单设计页面可以看到左侧有许多控件和组件将主键拖拽至右侧区域即可比如设置完成后类似如下点击右上角的按钮还可以预览效果返回来到外观页面还可以设置表单的相关样式来到设置页面支持多种设置比如提交完成后跳转一个网页比如抽奖还有回收设置支持相关答题限制等3.2 发布问卷设置好以后来到发布页面点击页面上的发布按钮即可发布发布后会生成对应链接复制链接即可发送给你的好朋友进行答题了当然当前只能在局域网中访问如果设置了相关限制比如只能在微信中打开就会和如下一样浏览器是打不开的会出现相关提示在微信中点击链接打开即可显示3.3 数据查看接着来到数据页面即可查看提交问卷用户的内容最后一个统计页面则是可以查看该问卷的整体记录趋势等信息4 使用cpolar穿透Tduck实现公网填写到这里,你的 TDuck 问卷系统已经在 NAS 上跑起来了,创建问卷、收集数据都完全没问题。但转折点就在这里——现在你的问卷只能在家里的局域网里访问。换句话说,如果你想把问卷链接发给公司同事、学校同学,或者发到微信群让大家填写,他们根本打不开,因为他们不在你家的网络环境里。好消息是——使用 cpolar 内网穿透工具,就能轻松把局域网里的 TDuck 映射到公网,生成一个可以随时随地访问的链接。无论对方在咖啡厅、办公室还是地铁上,只要有网络就能填写你的问卷。而且 cpolar 提供免费方案,完全可以满足个人使用需求。接下来,我们就来配置 cpolar,让你的 NAS 问卷系统真正实现全球可访问!4.1 什么是cpolar?cpolar 是一款内网穿透工具可以将你在局域网内运行的服务如本地 Web 服务器、SSH、远程桌面等通过一条安全加密的中间隧道映射至公网让外部设备无需配置路由器即可访问。广泛支持Windows、macOS、Linux、树莓派、群晖 NAS等平台并提供一键安装脚本方便部署。4.2 安装cpolar回到PowerShell终端如果还在容器内部执行exit命令即可退出退出Docker容器内部后执行如下命令一键安装cpolarsudocurlhttps://get.cpolar.sh|sh接着输入如下命令确认cpolar是否启动sudosystemctl status cpolar可以看到显示为activerunning表示为正常在线状态。接着我们在浏览器中输入你的绿联NAS的IP地址9200端口进行访问cpolar的web ui控制台http://192.168.50.99:9200/可以发现成功的访问到cpolar的web ui页面啦如果没有注册cpolar的小伙伴也可以点击底部的按钮跳转注册4.3 穿透Tduck实现公网访问注册好账号以后回到该页面进行登录即可登录成功后进入侧边的【隧道管理隧道列表】可以看到有2条隧道选择website这条隧道点击编辑进行修改也可以创建新的隧道设置一个方便辨识的隧道名称然后协议选择http,本地地址填写博客的访问端口8999地地区这里选择的China Top最后点击更新创建或者更新完成后接着点击【状态在线隧道里列表】可以看到有2条名称为tduck的隧道一条为http的协议另一条为https的协议复制公网地址这里以https为例访问测试一下访问成功让我们登录一下查看分享的链接是否发生变化可以看到来到发布页查看原来的局域网IP已经变更为穿透的域名地址了让我们访问看看访问成功这样你就可以把该链接发送给任何人了——无论是微信群、QQ群、朋友圈还是钉钉、企业微信对方只要点击链接就能直接填写问卷完全不受网络环境限制。5 固定二级子域名刚才我们用的是 cpolar 的免费随机域名方案虽然能用但有个小麻烦——域名每 24 小时就会自动更换一次。也就是说如果你今天把问卷链接发到微信群明天这个链接可能就失效了你得重新生成新链接再发一遍。对于临时性的活动问卷还行但如果是长期收集反馈、客户调研、或者员工满意度调查这种每天换链接的方式就太折腾了。不过转折点就在这里——cpolar 还提供了固定二级子域名功能如果你希望获得一个永久不变的专属域名比如my-survey.cpolar.cn而不是每天都要更换链接那么可以选择使用 cpolar 的进阶方案。这样一来你的问卷链接就能一次设置、永久使用再也不用担心链接失效、重复发送的问题了。接下来我们就来看看如何配置固定二级子域名让你的 TDuck 问卷系统拥有一个专业且稳定的访问地址首先进入官网的预留页面https://dashboard.cpolar.com/reserved然后选择预留菜单即可看到保留二级子域名项填写其中的地区、名称、描述可不填项然后点击保留按钮操作步骤图如下列表中显示了一条已保留的二级子域名记录地区显示为China Top。二级域名显示为tduck。注二级域名是唯一的每个账号都不相同请以自己设置的二级域名保留的为主接着进入侧边菜单栏的隧道管理下的隧道列表可以看到名为tduck的隧道点击编辑按钮进入编辑页面修改域名类型为二级子域名然后填写前面配置好的子域名点击更新按钮接着来到状态菜单下的在线隧道列表可以看到隧道名称为tduck的公网地址已经变更为二级子域名固定域名主体及后缀的形式了这里以https访问测试一下访问成功让我们登录查看问卷的分享链接是否更新成为固定的二级子域名链接可以看到成功的将分享链接更新为固定的二级子域名地址了让我们同样访问测试一下访问成功这个链接从此就是你专属的永久地址无论过多久都不会失效。你可以把它印在宣传册上、写进邮件签名、或者固定在企业内部文档里再也不用担心链接过期的问题。而且相比那些随机域名比如a7b8c9d.cpolar.cn固定的二级子域名看起来更加专业和可信。当别人看到tduck.cpolar.cn这样简洁明了的域名时会更愿意点击和填写。 小贴士建议将这个固定域名保存到备忘录或者密码管理器中方便随时调用。如果你有多个长期运行的问卷项目cpolar 还支持配置多个不同的固定子域名每个项目都能拥有独立的专属地址总结其实写这篇没别的意思就是觉得好东西不该只有我知道。一个吃灰三年的设备加一个免费的开源工具加一个 10 分钟的一键脚本就能换来一个永久属于自己的问卷平台。数据不会被人拿走功能比大多数收费平台还全用下来最直接的感受就是*原来让 NAS 发挥价值这件事没有想的那么难*。如果你也有一台在角落积灰的 NAS或者受够了第三方问卷平台的广告和限制TDuck 值得你花 10 分钟试试。当然NAS 装应用的门槛比纯小白高一点但按着教程走真的不难——我这种设备买回来吃灰型选手都成功跑起来了你们肯定也没问题。