# DHT Search Web 基于 Bun Vue 3 TypeScript Vite Tailwind CSS 和 shadcn-vue 的本地搜索界面 ## 开发 先在仓库根目录启动后端服务 ```powershell $env:LIBCLANG_PATH = "D:\tools\dht\.tools\libclang\clang\native" cargo run -p dht-search -- --config dht-search.example.toml ``` 然后打开另一个终端启动前端开发服务 ```powershell cd web bun install bun run dev ``` 打开 `http://127.0.0.1:5173` Vite 会将搜索详情状态等接口代理到 `http://127.0.0.1:8080` ## 检查和构建 ```powershell bun run check ``` 生产静态资源输出到 `web/dist` ## 生产运行 在启动 Rust 服务前构建一次 Web 资源 ```powershell cd web bun install --frozen-lockfile bun run build cd .. cargo run --release -p dht-search -- --config dht-search.example.toml ``` 打开 `http://127.0.0.1:8080` Axum 根据配置中的 `http.web_dir` 提供静态资源和单页回退 不需要单独运行 Vite ## 已实现功能 - 关键词 文件名片段和精确 infohash 搜索 - 自动识别通配符的普通关键词搜索和名称 文件路径正则搜索 - 相关度 时间 热度 大小和发现次数排序 - 有上限的结果分页和 URL 查询恢复 - 基于 reka-ui 的搜索结果数字分页和浏览器持久化每页数量选择 - 文件列表 热度 可用性和收录时间详情 - 基于 reka-ui 的数字分页文件列表和浏览器持久化每页数量选择 - 相同内容的不同 infohash 变体展示 - 磁力链接打开和复制 - DHT 采集 索引 持久化和验证运行状态 - 每秒自动刷新的运行状态和点击外部关闭 - 加载 空结果 接口错误 重试和移动端适配 ## 添加组件 当前 shadcn-vue registry 与最新版 CLI 的样式列表暂时不一致 项目使用已验证的 CLI 版本 ```powershell bunx shadcn-vue@2.4.3 add button -y ```