下载:https://download.csdn.net/download/YUJIANYUE/93399432

Gocha 通用查询系统 · Windows 版(Gocha.exe)
Go 编写的通用查询系统,单文件运行、无安装、无运行时依赖、免服务器等运行环境安装, 双击即可运行。通过 **系统托盘** 常驻,
用浏览器访问 **本机 IP / 局域网 / 公网 + 端口** 即可查询。后台以 SQLite 存储配置,
以 TSV 文件承载数据,支持条件查询、分页、排序、验证码、域名限制与防下载等能力。
> 版本:1.0.3 | 官网:https://chalide.cn/ | 平台:Windows 7 及以上 | 数据库:SQLite(mattn/go-sqlite3)
一、运行环境
-
**单文件 exe,无需安装**:直接把 `Gocha.exe`(64 位)或 `Gocha32.exe`(32 位)放到任意目录双击运行。
-
**纯 Go 编译,无外部依赖**:不依赖 .NET / VC++ / Java 等运行时。
-
**数据在同目录**:程序会在自身所在目录自动创建 `data/`、`datar/`、`inc/` 等目录,
所有数据库、配置、数据文件都与 exe 放在一起,迁移时整目录复制即可。
- **首次运行**:自动建库建表、写入默认配置,并创建默认管理员账户
**admin / admin888**(建议登录后到"修改密码"中更改)。
> 分发文件说明:
> | 文件 | 说明 |
> |---|---|
> | `Gocha.exe` | 64 位正式版(无控制台窗口,后台常驻) |
> | `Gocha32.exe` | 32 位正式版(老旧 32 位系统用) |
>
> 正式版为 GUI 无窗口模式(双击后只见到系统托盘图标,属正常现象)。
二、启动与系统托盘
-
双击 `Gocha.exe`,程序启动后 **右下角系统托盘出现常驻图标**。
-
默认会 **按配置自动打开浏览器** 进入功能主页(可在设置中关闭)。
-
托盘图标交互:
-
**双击图标** → 打开功能主页。
-
**右键图标** → 菜单:`功能主页` / `官方网址` / `关于` / `设置` / `重启` / `退出`。
-
`重启`:热重启服务(改配置或数据后生效,无需退出)。
-
`退出`:停止全部监听并退出程序。
- 程序运行期间无可见窗口,**托盘存在即服务在运行**;要停止请右键选"退出",不要强行结束进程。
> 开机自启(可选):将 `Gocha.exe` 快捷方式放入
> `C:\Users\你的用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup`
> 即可开机自动运行(建议用 `Gocha.exe` 而非调试版)。
三、使用
- 启动后在浏览器访问主页,默认地址如 `http://localhost:12391/\`
(局域网/公网下的其它设备用手机或电脑的浏览器访问 `http://<本机IP>:12391/`)。
-
管理后台:主页右下或"关于/设置"进入(http://localhost:12391/?act=admin ),登录账户 **admin / admin888**。
-
后台可完成:建立查询列表、关联数据文件、设置查询条件与可见字段、
数据预览、修改密码、验证码开关、站点标题与页脚等。
-
用户端:在查询页输入条件即可检索,支持分页与排序;空条件按规则处理(需满足条件才返回结果)。
-
生成的查询网址 / 二维码使用程序实际监听地址,便于直接分享给同网络用户。
四、设置
4.1 运行配置(config.json,位于 exe 同目录)
| 字段 | 说明 | 默认 |
|---|---|---|
| `ports` | 监听端口,**多端口用列表**,如 `"12391","80";留空则默认 12391 起自动遍历空闲端口(123**)** | 空 |
| `bind` | 绑定地址,留空 = `0.0.0.0` **泛绑定**(IP/局域网/公网/域名均可访问);填 `127.0.0.1` 仅本机 | 空 |
| `domain` | 域名限制,留空 = 不限制;填写后仅允许该域名(支持 `*` 通配、逗号分隔多域名) | 空 |
| `open_browser` | 启动是否自动打开浏览器 | `true` |
| `home` | 主页路径 | `/` |
修改 `config.json` 后,右键托盘 → `重启` 即可生效(无需退出重开)。
4.2 站点配置(网页后台)
-
**站点标题 / 页脚 / 页脚链接**:存于 `inc/sita.json`。
-
**提示语**:存于 `inc/tips.json`(按错误码管理,如 域名不符 / 无结果 / 请先登录 等)。
-
以上均在网页后台"设置"中修改并自动保存。
五、安全能力
网页端内置以下防护,与安卓版一致:
- **数据/目录防下载**:禁止直接访问 `data/`、`inc/`、`upload/`、`datar/` 等受保护目录及其子路径;
禁止下载 `.json` / `.sqlite` / `.db` / `.sql` / `.cache` 等后缀文件(返回 403)。
-
**域名限制**:通过 `config.json` 的 `domain` 字段限制可访问的域名,其它域名返回"域名或访问地址不存在"。
-
**验证码**:登录与查询可启用 SVG 验证码(无第三方字体依赖,可开关);验证码位置在输入框前方,点击可刷新。
-
**会话管理**:登录写入 `HttpOnly` Cookie,默认有效期 7 天;支持"修改密码"与退出登录。
六、数据
- 查询数据以 **TSV(制表符分隔、首行表头)文件** 承载,放在 `datar/` 目录下
(示例 `datar/demo.csv` 为演示数据;正式使用建议用 `.tsv` 命名)。
-
**编码自动识别**:UTF-8(含 BOM)或 GBK 均会自动转码为 UTF-8。
-
**缓存与重载**:数据按 MD5 缓存,文件内容变化后下次访问自动重载,无需重启。
-
每条查询列表在后台关联一个数据文件,定义查询条件列、可见字段、分页与排序方式。
-
SQLite 库文件位于 `data/app.db`(配置、列表、账户等结构化数据)。
> 如需从零开始:访问 `http://localhost:12391/?act=inst\` 进入安装/环境检查页,
> 可写入初始化数据并导入演示数据。
七、日志与排错
- 程序日志写入 **`gocha.log`**(与 exe 同目录,追加模式)。
GUI 版无控制台窗口,**"双击无反应"时务必先看此文件**定位问题。
-
常见排查:
-
**启动无托盘 / 无主页**:打开 `gocha.log` 查看是否有端口被占用、权限或数据库初始化失败。
-
**端口被占**:默认会自动遍历 `123**` 找空闲端口;或显式在 `config.json` 指定 `ports`。
-
**局域网访问不通**:确认 `bind` 为 `0.0.0.0`(默认即泛绑定),并检查系统防火墙是否放行该端口。
-
**需要详细输出**:改用 `Gocha-debug.exe`,会弹出控制台实时打印日志。
八、已知限制
-
**单实例演示定位**:会话保存在内存中,程序重启后登录态清空;SQLite 与 TSV 数据持久化于本地目录。
-
**Win7 兼容**:正式版为无窗口 GUI,已在 Win7 验证可常驻托盘;若个别环境双击无反应,
先用 `Gocha-debug.exe` 看控制台报错,再按 `gocha.log` 排查。
- **数据位置**:数据库、配置、TSV 数据均在 exe 同目录,删除 `data/`、`datar/`、`inc/` 会清空对应内容;
迁移整机时整目录复制即可保留全部数据。
- 公网暴露请确保配置 **域名限制** 与强密码,避免被随意访问。
九、与安卓版差异(参考)
| 维度 | Windows 版 | 安卓版 |
|---|---|---|
| 形态 | 单文件 exe + 系统托盘 | APK(前台服务 + 原生三页) |
| 常驻方式 | 托盘常驻(右键退出) | 前台服务 + 通知 + 开机自启 + 电池豁免 |
| 数据库 | mattn/go-sqlite3(CGO,体积小) | modernc.org/sqlite(纯 Go,UPX 压缩) |
| 配置入口 | 托盘菜单 + 网页设置 + config.json | 原生"设置"页 |
| 安装包体积 | 约 2.8 MB(exe) | 约 2.8 MB(APK) |