# 离线导航页 **Repository Path**: jason0907/offline-navigation-page ## Basic Information - **Project Name**: 离线导航页 - **Description**: 在本地运行的导航页。 - **Primary Language**: Unknown - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 7 - **Created**: 2026-08-08 - **Last Updated**: 2026-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 个人导航页(NavPage) NavPage V0.3.0 是一个 Windows 单机服务版个人导航页。直接双击 `H技术派个人导航页.exe` 即可运行,不需要安装 Node.js、Go、数据库或其他运行环境。程序启动后常驻 Windows 通知区域。 项目地址:[Gitee](https://gitee.com/jason0907/offline-navigation-page) 从早期双击 `index.html` 的纯离线版升级到当前版本的变化,请参阅 [版本升级说明](UPGRADE.md)。 ## 使用方式 1. 解压完整的 Windows 发布包。 2. 双击 `H技术派个人导航页.exe`,程序会根据服务配置决定是否自动打开浏览器。 3. 浏览器访问 `http://127.0.0.1:8080`。 4. 页面修改会自动写入 `data/config.json`。 5. 需要关闭时右键通知区域图标并选择“退出”。 也可以右键通知区域中的 NavPage 图标,打开导航页、进入服务管理、打开配置目录、重启或退出程序。除“打开导航页”外,管理功能均使用 Windows 原生窗口,不会打开网页。 请不要直接双击 `index.html`。服务版前端需要通过本机服务读取和保存配置。 ## 配置管理 - 当前配置:`data/config.json` - 全局服务配置:`data/server-config.json` - 客户端上线记录:`data/clients.json` - 自动备份:`data/backups/` - 配置下载:设置面板中的“下载配置” - 配置导入:设置面板中的“导入配置” 单文件 EXE 已内置页面资源和初始配置。首次启动时会自动创建 `data/config.json`、`data/server-config.json` 和 `data/backups/`。每次保存或导入前会自动备份旧配置,最多保留最近 30 份。 ## 文件结构 | 文件 | 说明 | | --- | --- | | `H技术派个人导航页.exe` | Windows 单机服务程序(发布包包含) | | `index.html` | 页面结构与前端逻辑 | | `style.css` | 页面样式 | | `config.js` | 默认配置,用于页面重置 | | `config.json` | 首次启动配置模板 | | `data/config.json` | 运行期间的实际配置 | | `data/server-config.json` | 全局服务配置 | | `data/clients.json` | 最近连接的客户端及上次上线时间 | | `data/backups/` | 配置自动备份目录 | | `server/main.go` | Go 服务端源码 | ## 使用源码启动 普通用户不需要安装开发环境。只有需要修改源码、调试或重新生成 EXE 的开发者需要准备: - Windows 10 或 Windows 11; - Go 1.22 或更高版本; - Git(仅拉取源码时需要); - 首次构建时能够访问 Go 模块下载服务。 ### 1. 获取源码 ```powershell git clone https://gitee.com/jason0907/offline-navigation-page.git cd offline-navigation-page ``` 已经下载源码压缩包时,解压后在 PowerShell 中进入源码根目录即可。 ### 2. 构建源码 ```powershell .\build-windows.bat ``` 构建脚本会自动完成以下工作: 1. 将前端页面、样式、默认配置和图标暂存为 Go 嵌入资源; 2. 下载缺少的 Go 模块; 3. 编译 Windows 64 位单文件程序; 4. 删除构建过程中产生的临时资源目录。 构建成功后,源码根目录会生成: ```text navpage-server.exe ``` ### 3. 启动源码构建版本 ```powershell .\navpage-server.exe ``` 程序启动后会常驻 Windows 通知区域。是否自动打开浏览器由 `data/server-config.json` 中的 `openBrowserOnStart` 决定。也可以右键通知区域图标,选择“打开导航页”或“服务管理”。 首次启动后,运行数据会生成在源码根目录的 `data` 文件夹: ```text offline-navigation-page/ ├─ navpage-server.exe └─ data/ ├─ config.json ├─ server-config.json ├─ clients.json ├─ navpage.log └─ backups/ ``` 需要停止服务时,右键通知区域图标并选择“退出”。修改源码后,应先退出正在运行的旧程序,再重新执行构建和启动命令。 > 不建议直接执行 `go run ./server`。程序以可执行文件所在目录作为运行数据根目录,而 `go run` 会从 Go 临时目录启动临时 EXE,配置和日志位置不固定。使用 `build-windows.bat` 构建后再运行最接近实际发布环境。 ### 4. 发布 发布时使用构建生成的 EXE。页面资源和初始配置均已嵌入程序,首次运行会在 EXE 同级自动创建 `data` 目录。需要携带现有配置分发时,可同时携带对应的 `data` 目录。 ## API | 方法 | 地址 | 作用 | | --- | --- | --- | | `GET` | `/api/health` | 服务健康检查 | | `GET` | `/api/config` | 读取当前配置 | | `PUT` | `/api/config` | 保存当前配置 | | `GET` | `/api/config/export` | 下载配置文件 | | `POST` | `/api/config/import` | 导入配置文件 | 服务监听范围和端口由 `data/server-config.json` 决定。配置请求上限为 10 MB。 ## 局域网同步 服务启动时读取 EXE 同级的 `data/server-config.json`: ```json { "appName": "H技术派个人导航页", "mode": "lan", "port": 8080, "sync": true, "pollIntervalMs": 1500, "openBrowserOnStart": true, "clientHistoryDays": 30 } ``` - `appName`:本机程序、托盘菜单及服务管理窗口使用的软件名称,不会同步到网页。 - `mode: "lan"`:允许同一局域网内的设备访问;改为 `local` 则仅允许本机访问。 - `port`:服务端口。 - `sync`:是否自动同步不同浏览器和标签页的配置。 - `pollIntervalMs`:检查配置修订号的间隔,最低 500 毫秒。 - `openBrowserOnStart`:启动后是否自动打开导航页。 - `clientHistoryDays`:离线客户端记录保留天数。 局域网其他设备通过 `http://主机局域网IP:端口` 访问。任一页面保存配置后,其他页面会检测修订号并自动加载最新的 `data/config.json`。修改该文件后需要重启服务才会生效。 自动同步仅包含共享内容:页面标题、品牌图标、页脚、分类、网站卡片、收藏夹和事件。主题、背景、字体、搜索引擎、AI 助手、天气城市、下班时间、发薪日期及组件显示开关保存在各浏览器自己的 `localStorage`,不会覆盖其他浏览器或设备的偏好。 本项目不包含用户和密钥。局域网模式下,能够访问该地址的设备都可以查看和修改导航配置。Windows 首次开放局域网端口时可能需要允许防火墙访问。 ## 服务器管理 托盘菜单中的“服务管理”会打开紧凑的 Windows 原生管理窗口,并且始终只保留一个窗口;重复点击会激活已有窗口。服务器状态、运行配置、在线客户端和全局配置文件位置都集中在该窗口中。软件名称默认为“H技术派个人导航页”,可在“服务配置”中修改并保存到 `data/server-config.json`;访问范围或端口变化会自动重启 HTTP 监听。