专门为开发者和技术爱好者设计的导航网站,基于 Nuxt 3 构建,提供分类管理、链接收藏、友情链接等功能。
![]() |
![]() |
- 🗂️ 分类管理 - 灵活的分类系统,支持图标和排序
- 🔗 链接管理 - 链接收藏和管理,支持标签、描述等元信息
- 👥 友情链接 - 友情链接展示和管理
- 📝 申请系统 - 支持链接和友情链接的在线申请和审核
- ⚙️ 站点配置 - 灵活的站点信息配置
- 📦 备份与恢复 - 完整的数据备份和恢复功能
- 📤 数据导出 - 支持分类和链接数据的JSON格式导出
- 📥 数据导入 - 支持批量导入分类和链接数据
- 🔄 智能更新 - 导入时自动识别和更新现有数据
- 🎨 现代化界面 - 基于 Naive UI 的现代化管理界面
- 🌙 主题切换 - 支持明暗主题切换
- 📱 响应式设计 - 完美适配各种设备
- 🔍 搜索功能 - 快速搜索和定位内容
- ⌨️ 快捷键支持 - 支持键盘快捷键操作
- Node.js 18+
- pnpm (推荐) 或 npm/yarn
pnpm install
# 生成 Prisma 客户端
pnpm run db:generate
# 推送数据库结构
pnpm run db:push
# 初始化种子数据
pnpm run db:seed
pnpm run dev
# 构建项目
pnpm run build
# 预览构建结果
pnpm run preview
├── assets/ # 静态资源
├── components/ # Vue 组件
├── composables/ # 组合式函数
├── layouts/ # 布局文件
├── pages/ # 页面文件
│ ├── admin/ # 管理后台页面
│ ├── index.vue # 首页
│ └── ...
├── server/ # 服务端 API
│ ├── api/ # API 路由
│ └── ...
├── types/ # TypeScript 类型定义
├── prisma/ # 数据库相关
│ ├── schema.prisma # 数据库模型
│ └── ...
└── ...
- 访问
/admin
或/login
页面 - 使用管理员账号登录
- 默认账号:
admin
/123456
- ➕ 创建、编辑、删除分类
- 🎨 设置分类图标和排序
- 📤 导出分类数据为 JSON 格式
- 📥 从 JSON 文件批量导入分类
- ➕ 添加、编辑、删除链接
- 🏷️ 设置标签、描述等元信息
- 📂 按分类筛选和管理
- 📤 导出链接数据(支持全部或按分类导出)
- 📥 从 JSON 文件批量导入链接
- 🌐 自动获取网站图标和信息
- 👥 管理友情链接展示
- ⚙️ 设置链接排序和状态
- 📝 审核链接申请
- 👥 审核友情链接申请
- ✅ 批准或拒绝申请
- 📦 导出完整的站点数据(JSON 格式)
- 🔄 从备份文件恢复数据
⚠️ 支持安全的数据恢复(保留用户数据)
- 🏠 设置站点基本信息
- 🎨 配置站点外观
- 📧 设置联系信息
# 通过管理界面
访问 /admin/categories,点击"导出分类"按钮
# 通过 API
GET /api/admin/categories/export
# 导出全部链接
GET /api/admin/links/export
# 按分类导出
GET /api/admin/links/export?categoryId=分类ID
# 通过管理界面
访问 /admin/backup,点击"导出数据"按钮
# 通过 API
GET /api/admin/backup/export-data
- 访问
/admin/categories
- 点击"导入分类"按钮
- 选择之前导出的 JSON 文件
- 系统会自动识别和更新现有分类
- 访问
/admin/links
- 点击"导入链接"按钮
- 选择之前导出的 JSON 文件
- 系统会验证分类存在性并智能更新
- 访问
/admin/backup
- 在"数据恢复"区域选择备份文件
- 确认恢复操作(会清空现有业务数据)
导出的 JSON 文件包含完整的数据结构和元信息:
{
"categories": [...], // 分类数据
"links": [...], // 链接数据(包含分类关联信息)
"exportedAt": "2025-01-01T00:00:00.000Z",
"total": 10
}
# 查看数据库
pnpm run db:studio
# 数据库迁移
pnpm run db:migrate
# 重置数据库
pnpm run db:push
# 代码检查
pnpm run lint
# 自动修复
pnpm run lint:fix
# 构建镜像
docker build -t t-nav .
# 运行容器
docker run -p 3000:3000 t-nav
或使用 Docker Compose:
docker-compose up -d
GET /api/categories
- 获取分类列表GET /api/links
- 获取链接列表GET /api/friends
- 获取友情链接GET /api/menu
- 获取菜单数据
POST /api/admin/categories
- 创建分类PUT /api/admin/categories/:id
- 更新分类DELETE /api/admin/categories/:id
- 删除分类GET /api/admin/categories/export
- 导出分类数据POST /api/admin/categories/import
- 导入分类数据
GET /api/admin/backup/export-data
- 导出完整数据POST /api/admin/backup/restore
- 恢复数据
- 框架: Nuxt 3
- UI 库: Naive UI
- 样式: UnoCSS + SCSS
- 数据库: SQLite + Prisma ORM
- 认证: JWT
- 图标: Iconify (Tabler Icons)
- 部署: Docker
欢迎提交 Issue 和 Pull Request!
MIT License