Files
dht/src/web

DHT Search Web

基于 Bun Vue 3 TypeScript Vite Tailwind CSS 和 shadcn-vue 的本地搜索界面

开发

先在仓库根目录启动后端服务

$env:LIBCLANG_PATH = "D:\tools\dht\.tools\libclang\clang\native"
cargo run -p dht-search --bin dht-search -- --config config.toml

然后打开另一个终端启动前端开发服务

cd src/web
bun install
bun run dev

打开 http://127.0.0.1:5173

Vite 会将搜索详情状态诊断和配置接口代理到 http://127.0.0.1:8080 可以通过 DHT_API_TARGET 环境变量覆盖目标

检查和构建

bun run check

生产静态资源输出到 src/web/dist

生产运行

在启动 Rust 服务前构建一次 Web 资源

cd src/web
bun install --frozen-lockfile
bun run build
cd ../..
cargo run --release -p dht-search --bin dht-search -- --config config.toml

打开 http://127.0.0.1:8080

Axum 根据配置中的 http.web_dir 提供静态资源和单页回退 不需要单独运行 Vite

已实现功能

  • 关键词 文件名片段和精确 infohash 搜索
  • 根据输入语法自动识别普通关键词 通配符和名称文件路径正则搜索
  • 相关度 时间 热度 大小和发现次数排序
  • 有上限的结果分页和 URL 查询恢复
  • 基于 reka-ui 的搜索结果数字分页和浏览器持久化每页数量选择
  • 文件列表 热度 可用性和收录时间详情
  • 基于 reka-ui 的数字分页文件列表和浏览器持久化每页数量选择
  • 相同内容的不同 infohash 变体展示
  • 磁力链接打开和复制
  • 在系统诊断页统一展示 DHT 采集 索引 持久化和验证运行状态
  • 使用右上角图标即时启停 DHT 持续采集并持久化离线模式
  • 仅在系统诊断页打开时每秒刷新服务状态
  • 独立展示进程 RocksDB Tantivy DHT 和队列诊断数据
  • 使用懒加载 ECharts 展示内存存储压力 Metadata 吞吐以及 HTTP 请求错误趋势
  • 使用设置与过滤两个精简页签管理常用配置 Metadata 单位换算和按行通配符
  • 搜索诊断配置使用互不冲突的单页路由
  • 加载 空结果 接口错误 重试和移动端适配

添加组件

当前 shadcn-vue registry 与最新版 CLI 的样式列表暂时不一致 项目使用已验证的 CLI 版本

bunx shadcn-vue@2.4.3 add button -y