# linux-nav **Repository Path**: deepin20/linux-nav ## Basic Information - **Project Name**: linux-nav - **Description**: Linux 导航站 & ESA 管理工具: 一个包含两个子项目的仓库: 1. web/`— Linux 资源导航站(纯静态 HTML,部署到阿里云 ESA Pages) 2. tools/`— 阿里云 ESA 综合管理桌面工具(Python + tkinter) - **Primary Language**: HTML - **License**: MIT - **Default Branch**: main - **Homepage**: https://gitee.com/deepin20/linux-nav - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-13 - **Last Updated**: 2026-10-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux 导航站 & ESA 管理工具 & TuxNav 桌面客户端 一个包含三个子项目的仓库: 1. **`web/`** — Linux 资源导航站(纯静态 HTML + ES Module,部署到阿里云 ESA Pages) 2. **`tools/`** — 阿里云 ESA 综合管理桌面工具(Python + tkinter) 3. **`src-tauri/`** — TuxNav 桌面客户端(Tauri 2 + Rust,Debian 包分发) ## 📁 目录结构 ``` linux-nav/ ├── .gitignore ├── LICENSE ├── README.md ├── esa.jsonc ├── update-nav.sh # 更新导航数据 ├── update-nav-gui.sh # 更新导航数据(GUI) │ ├── web/ # 1. Linux 资源导航站 │ ├── index.html │ ├── manifest.webmanifest │ ├── sw.js │ ├── esa.jsonc │ ├── README.md │ ├── wallpapers.txt │ ├── api/ │ │ └── status.json │ ├── css/ │ │ └── style.css │ ├── js/ │ │ ├── main.js │ │ ├── config.js │ │ ├── data.js # 站点数据(260 条) │ │ ├── state.js │ │ ├── i18n.js │ │ ├── filter.js │ │ ├── render.js │ │ ├── favicon.js │ │ ├── favicon-map.js │ │ ├── utils.js │ │ ├── music.js │ │ ├── wallpaper.js │ │ └── wallpaper-data.js │ ├── images/ │ │ ├── logo.svg │ │ ├── favicon-32.png │ │ ├── logo-192.png │ │ ├── logo-512.png │ │ ├── logo-180.png │ │ ├── favicons/ │ │ ├── l265/ │ │ └── wallpapers/ │ └── audio/ │ ├── tools/ # 2. ESA 综合管理桌面工具 │ ├── esa_manager.py │ ├── esa_manager/ │ │ ├── alidns.py │ │ ├── api.py │ │ ├── app.py │ │ ├── credentials.py │ │ ├── gitee.py │ │ ├── helpers.py │ │ ├── pages.py │ │ └── tabs/ │ │ ├── analytics.py │ │ ├── bind.py │ │ ├── cert.py │ │ ├── deploy.py │ │ ├── icp.py │ │ ├── onestep.py │ │ ├── records.py │ │ ├── routines.py │ │ └── sites.py │ ├── nav_updater.py │ ├── nav_updater_gui.py │ ├── requirements.txt │ └── README.md │ ├── src-tauri/ # 3. TuxNav 桌面客户端 │ ├── Cargo.toml │ ├── tauri.conf.json │ ├── build.rs │ ├── capabilities/ │ │ └── default.json │ ├── icons/ │ └── src/ │ ├── main.rs │ └── lib.rs │ ├── scripts/ │ ├── prepare-web.sh │ ├── apply-theme-css.py │ └── gen-fake-status.py │ ├── web-tools/ │ ├── validate-data.mjs │ ├── check-https.mjs │ ├── serve.py │ ├── download-favicons.py │ ├── download-wallpapers.py │ ├── compress-audio.sh │ ├── reports/ │ └── wallpapers.txt │ └── docs/ └── screenshots/ ├── web-preview.png └── tool-preview.png ``` ## 🚀 快速开始 ### 一、导航站(web/) **本地预览** 必须通过 HTTP 服务访问(ES Module 有 CORS 限制): ```bash cd web python3 -m http.server 8080 ``` 浏览器打开 。 **部署到阿里云 ESA Pages** 1. 登录 [ESA 控制台](https://esa.console.aliyun.com/) 2. 进入「函数和 Pages」→「创建项目」 3. 选择「导入 Gitee 仓库」,授权并选择本仓库 4. **根目录填 `web`**(重要:否则找不到 `esa.jsonc`) 5. 构建命令留空或填 `exit 0` 6. 输出目录填 `./` 7. 点击部署,等待完成后获得默认域名 8. 后续按 ICP 备案 → 绑定 `tuxnav.cn` → 配置 CNAME → 开启 HTTPS 的流程上线 **功能特性** - 收录 **260 个** 精选 Linux 相关站点 - 按类型 / 发行版家族 / 地域三维标签筛选 - 搜索与筛选联动,支持 URL 参数分享(`?q=ubuntu&tags=distro,debian`) - 数据驱动,新增站点只需在 `SITES` 数组加一行 - 响应式布局,桌面端多列、移动端单列 - 回到顶部、组合筛选、实时结果计数 - **收藏夹**:一键收藏,支持导出/导入 JSON - **深色/浅色主题**:☀️ 浅色 / 🌙 深色 / 🌗 跟随系统 - **自定义分类排序**:拖拽调整首页展示顺序 - **站点状态检测**:失效站点显示 ⚠️ 并降权 - **背景音乐 + 动态壁纸**(附加功能) - 纯原生 CSS + JS,**无 CDN 依赖**,离线可用 ### 二、Python 桌面工具(tools/) **安装依赖** ```bash cd tools pip install -r requirements.txt ``` **运行** ```bash python esa_manager.py ``` **打包成可执行文件(可选)** 不同平台打包产物不同: ```bash pip install pyinstaller pyinstaller -F -w -n ESA管理器 esa_manager.py ``` 生成的可执行文件位于 `dist/` 目录下: | 平台 | 产物文件名 | |---|---| | Windows | `ESA管理器.exe` | | Linux / macOS | `ESA管理器`(无后缀) | > ⚠️ 各平台只能打包出对应平台的可执行文件,不能跨平台运行。 **完整功能说明见 [`tools/README.md`](tools/README.md)**,包括: - 单域名 / 批量域名绑定 - 解析记录查询 / 修改 / 删除 - SSL 证书申请 - ICP 备案查询 - 凭证持久化 ### 三、TuxNav 桌面客户端(src-tauri/) **系统依赖** ```bash sudo apt update sudo apt install -y \ libwebkit2gtk-4.1-dev \ build-essential \ curl wget file \ libxdo-dev libssl-dev \ libayatana-appindicator3-dev \ librsvg2-dev ``` **安装 Rust 和 Tauri CLI** ```bash # Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env # Tauri CLI npm init -y npm install -D @tauri-apps/cli@latest ``` **开发模式** ```bash npx tauri dev ``` 首次编译约 5-10 分钟。成功后弹出 TuxNav 窗口。 **打包 .deb** ```bash npx tauri build ``` 输出: ``` src-tauri/target/release/bundle/deb/tuxnav_1.1.0_amd64.deb ``` **安装** ```bash sudo dpkg -i tuxnav_1.1.0_amd64.deb sudo apt install -f # 如有依赖缺失 ``` 启动:开始菜单搜索 "TuxNav" 或命令行运行 `tuxnav`。 **桌面端专属功能** - **系统托盘**:关闭窗口最小化到托盘 - **全局快捷键**:`Ctrl+Shift+T` 一键唤起 - **单实例**:重复启动时聚焦已有窗口 - **离线模式**:本地打包,首屏 < 1 秒 - **收藏夹备份**:原生文件对话框,导出/导入 JSON ## 🛠️ 开发工具 ### 数据校验 ```bash # 校验 data.js 完整性(必填字段、URL 格式、标签合法性、重复条目) node web-tools/validate-data.mjs --strict # 检测所有站点可用性 python3 web-tools/serve.py --check-only # HTTPS 探测 node web-tools/check-https.mjs ``` ### 图标与资源 ```bash # 批量下载站点 favicon python3 web-tools/download-favicons.py # 下载壁纸 python3 web-tools/download-wallpapers.py # 压缩音频 cd web && bash compress-audio.sh ``` ### 更新导航数据 ```bash bash update-nav.sh # 命令行版 bash update-nav-gui.sh # GUI 版 ``` ## 📦 版本历史 ### v1.1.0(当前) **新增功能** - 离线模式:本地打包,首屏 < 1 秒 - 深色/浅色主题手动切换 - 收藏夹导出/导入(原生文件对话框) - 自定义分类排序(拖拽) - 站点失效自动检测 **UI 优化** - 工具栏图标 emoji → SVG - 应用图标全新企鹅 Logo - 新增友情链接区块 **技术改进** - 应用体积:5 MB → 18 MB(含离线资源) - favicon 覆盖率:70% → 95% - 依赖插件:5 → 7 个 ### v1.0.0 - 首次发布 - 260 个精选站点 - 基础筛选、收藏、搜索 ## 🔒 安全提醒 **绝对不要**把以下文件提交到仓库: - `~/.esa_manager_creds.json`(包含 AK/SK 明文) - 任何 `.env` 文件 - 任何包含 `access_key_id` / `access_key_secret` 的文件 `.gitignore` 已经默认排除这些文件,但仍需在提交前用 `git status` 再确认一次。 如果误提交了凭证: 1. **立即**登录阿里云 RAM 控制台,禁用并删除泄露的 AccessKey 2. 用 `git filter-repo` 或 BFG 清理 Git 历史 3. 或者直接删除仓库重建 ## 🛠️ 环境要求 | 子项目 | 要求 | |---|---| | web/ | 任意现代浏览器;部署需要 ESA 账号 + 已备案域名 | | tools/ | Python ≥ 3.7;网络可访问阿里云 API | | src-tauri/ | Rust 1.77+;Node.js 18+;Linux 系统依赖 | | web-tools/ | Node.js 18+ / Python 3.7+ | ## 📄 许可证 本项目采用 [MIT License](LICENSE)。 ### 资源版权说明 - **站点信息**:来自各站点公开信息,版权归原站点所有 - **favicon**:通过公开 API 获取,版权归原站点所有 - **壁纸**:来源见 `web/wallpapers.txt`,仅用于学习演示 - **音乐**:来源见 `web/audio/` 目录,仅用于学习演示,请勿商用 如涉及版权问题,请联系删除。 ## 🙏 致谢 - 站点数据参考 [DistroWatch](https://distrowatch.com)、[LinuxLinks](https://www.linuxlinks.com) 及各大开源社区 - 桌面客户端基于 [Tauri](https://tauri.app/) + [Rust](https://www.rust-lang.org/) - [Linux265 资源分享网](https://www.linux265.com/) — 友情链接 - 阿里云 SDK 由 [Alibaba Cloud](https://github.com/aliyun) 提供 ## 📮 反馈 如有问题或建议,欢迎在 Gitee 提交 Issue: --- **TuxNav · 精选 · 权威 · 活跃**