feat: upgrade to V1.2 - Tags, Click Stats, and Robust WebDAV
- add Tagging system (backend and frontend) - add Click count statistics and redirection logic - add config.example.py - fix WebDAV MKCOL 405 error and response handling - fix redirection loop during force password change - audit SQL queries for security
This commit is contained in:
88
README.md
88
README.md
@@ -1,69 +1,31 @@
|
||||
# ToNav - 个人导航页系统
|
||||
# ToNav - 高级个人导航系统
|
||||
|
||||
ToNav 是一个轻量级、简洁美观的个人内网服务/常用链接导航系统。它采用 Flask + SQLite 架构,支持响应式布局、分类管理、服务健康状态检测以及完善的后台管理功能。
|
||||
ToNav 是一个功能丰富、架构健壮的个人内网服务导航站。
|
||||
|
||||
## 🎨 界面风格
|
||||
继承自 `contraband_manager` 的设计语言:
|
||||
- **紫色渐变背景**: 现代感十足的视觉体验。
|
||||
- **卡片式布局**: 简洁直观的服务展示。
|
||||
- **响应式设计**: 完美适配电脑、平板及移动端。
|
||||
- **状态感知**: 实时显示服务的在线/离线状态。
|
||||
## ✨ 新增功能 (V1.2)
|
||||
- **🏷️ 多标签系统**: 支持为每个服务设置多个自定义标签,前台彩色直观显示。
|
||||
- **🔥 点击统计**: 实时记录各服务的点击访问次数,并在卡片右下角展示热度。
|
||||
- **☁️ 增强云备份**:
|
||||
- 支持自定义 WebDAV 配置。
|
||||
- 自动创建 `tonav/` 存储目录。
|
||||
- **一键恢复**: 直接在管理后台从云端历史备份点恢复全量数据。
|
||||
- **🔍 实时搜索**: 前台支持对服务名称和描述进行毫秒级模糊匹配。
|
||||
- **🛡️ 安全加固**:
|
||||
- 强制首次登录修改默认密码。
|
||||
- 全量参数化查询,杜绝 SQL 注入。
|
||||
- 智能 API 拦截,防止改密死循环。
|
||||
|
||||
## 🚀 核心功能
|
||||
- **服务管理**: 支持添加、修改、删除服务,支持自定义图标 (Emoji)、描述和排序权重。
|
||||
- **分类管理**: 灵活的分类系统,支持分类重命名及同步更新所属服务。
|
||||
- **健康检测**: 自动检测服务 URL 的可用性,前台实时反馈(在线 🟢 / 离线 🔴)。
|
||||
- **后台管理**: 完善的 Dashboard 统计,支持修改管理员密码。
|
||||
- **防缓存机制**: API 请求自带时间戳,确保数据修改后即刻生效。
|
||||
## 🛠️ 快速开始
|
||||
1. **安装依赖**: `pip install -r requirements.txt`
|
||||
2. **配置文件**: 复制 `config.example.py` 为 `config.py` 并根据需要修改。
|
||||
3. **初始化**: `python3 utils/database.py` (默认 admin/admin123)
|
||||
4. **运行**: `./tonav-ctl.sh start`
|
||||
|
||||
## 🛠️ 技术栈
|
||||
- **后端**: Python 3 + Flask
|
||||
- **数据库**: SQLite 3
|
||||
- **前端**: HTML5 + CSS3 (Grid/Flexbox) + Vanilla JavaScript
|
||||
- **部署**: Systemd + Bash Control Script
|
||||
|
||||
## 📦 安装与部署
|
||||
|
||||
### 依赖安装
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 初始化数据库
|
||||
```bash
|
||||
python3 utils/database.py
|
||||
```
|
||||
*默认账号: `admin` / 密码: `admin123`*
|
||||
|
||||
### 启动服务
|
||||
你可以直接使用控制脚本进行管理:
|
||||
```bash
|
||||
chmod +x tonav-ctl.sh
|
||||
./tonav-ctl.sh start
|
||||
```
|
||||
|
||||
## ⚙️ 服务管理命令 (tonav-ctl.sh)
|
||||
- `start`: 启动服务
|
||||
- `stop`: 停止服务
|
||||
- `restart`: 重启服务
|
||||
- `status`: 查看运行状态
|
||||
- `log`: 查看最后50行日志
|
||||
- `logtail`: 实时查看日志
|
||||
- `enable`: 设置开机自启
|
||||
|
||||
## 📁 目录结构
|
||||
```text
|
||||
ToNav/
|
||||
├── app.py # Flask 主应用
|
||||
├── config.py # 系统配置文件
|
||||
├── tonav.db # SQLite 数据库
|
||||
├── tonav-ctl.sh # 服务管理脚本
|
||||
├── templates/ # HTML 模板
|
||||
│ ├── index.html # 前台展示页
|
||||
│ └── admin/ # 后台管理页面
|
||||
├── static/ # 静态资源 (CSS/JS)
|
||||
└── utils/ # 数据库及认证工具类
|
||||
```
|
||||
## 📁 项目结构
|
||||
- `app.py`: 核心后端逻辑。
|
||||
- `tonav.db`: SQLite 数据存储。
|
||||
- `templates/`: 响应式 HTML 模板。
|
||||
- `config.example.py`: 配置模板。
|
||||
|
||||
---
|
||||
Developed for personal use. Powered by OpenClaw.
|
||||
Powered by OpenClaw. Improved by Continuous Audit.
|
||||
|
||||
Reference in New Issue
Block a user