一个自用的 API 服务,后端基于 Quarkus 实现,使用 CSV 文件作为轻量数据库,并支持 GraalVM Native Image 构建。
当前已包含的功能:
- JRebel激活工具
- 磁力聚合搜索
- GitHub仓库搜索
- 图片处理工具
- 转发下载工具
- 网络剪贴板
- Markdown编辑器
- 代码编辑器
backend/:后端服务代码frontend/:前端页面include/:当前目录下的所有文件会在build过后包含在构建输出目录script/:项目脚本,包括构建脚本和远程管理脚本db/:本地开发阶段使用的 CSV 数据目录target/:构建输出目录,生成 jar/native、配置文件、管理脚本和压缩包
开发模式:
mvn -f backend/pom.xml quarkus:devQuarkus dev 默认监听调试端口 5005,IDE 可以通过 remote debugger attach 到 localhost:5005。
普通 jar:
mvn -f backend/pom.xml package -DskipTests
java -jar backend/target/SimpleServer-1.0-runner.jarNative:
mvn -f backend/pom.xml package -Dquarkus.native.enabled=true -Dquarkus.native.native-image-xmx=2g -DskipTests
backend/target/SimpleServer-1.0-runner默认配置文件位于 backend/src/main/resources/config.json。
运行时配置读取顺序:
- 程序所在目录下的
config.json resources中的默认配置
日志配置位于 log 节点,例如:
{
"log": {
"level": "INFO",
"file": "logs/app.log",
"maxFileSize": "10M"
}
}log.level:日志级别log.file:日志文件路径;当前由 Quarkus file logging 输出,不支持日期模板log.maxFileSize:单个日志文件最大大小,例如10M、100M
构建脚本:script/build.sh
用法:
bash script/build.sh buildJar
bash script/build.sh buildNative
bash script/build.sh clean
bash script/build.sh clean buildJar说明:
buildJar:构建前端并打包后端 Quarkus runner jar 版本buildNative:构建前端并打包后端 native 版本,需要本机可用native-imageclean:清理前端构建目录、后端构建目录和根目录target/
构建完成后,构建产物位于:target/
脚本模板位于 include/manage.sh,构建时会复制到 target/manage.sh。
用法:
bash manage.sh start
bash manage.sh stop
bash manage.sh restart
bash manage.sh status说明:
start:后台启动服务stop:结束服务restart:重启服务status:查看服务状态
jar 模式支持通过 JAVA_OPTS 传入 JVM 参数,例如:
JAVA_OPTS="-Xms256m -Xmx512m" bash manage.sh start远程管理脚本:script/remote-manage.sh
用法:
bash script/remote-manage.sh push
bash script/remote-manage.sh start
bash script/remote-manage.sh restart
bash script/remote-manage.sh stop
bash script/remote-manage.sh status也支持通过参数覆盖远程配置:
bash script/remote-manage.sh push \
--remoteAddress 127.0.0.1 \
--remotePort 22 \
--remoteUser root \
--remoteDeployPath /opt/SimpleServer如需同时推送配置文件:
bash script/remote-manage.sh push --includeConfig默认从项目根目录 .env 读取以下配置:
remoteAddress=127.0.0.1
remotePort=22
remoteUser=root
remotePassword=xxx
remoteDeployPath=/opt/SimpleServer说明:
- 推送前建议先确认本地配置文件与远程配置文件是否一致,避免覆盖或遗漏必要配置
push:将本地target/下的发布文件直接推送到远程部署目录,不上传压缩包,默认不上传config.json,也不会清空远程目录中的其他文件push --includeConfig:推送时额外包含target/config.jsonstart|restart|stop|status:通过远程调用部署目录中的manage.sh执行- 支持 SSH 密钥登录
- 如果配置了
remotePassword,则通过sshpass走密码登录
必要配置缺失时脚本会直接报错。
访问路径:/codeEditor
代码编辑器基于 Monaco Editor 和浏览器 File System Access API 实现,可以直接打开并读写本地目录,适合进行轻量级代码浏览、修改和 AI 辅助开发。文件访问能力主要面向 Chromium 系浏览器,并要求页面运行在 HTTPS 或 localhost 环境。
主要功能:
- 本地工作区:递归文件树、多文件标签页、新建文件或目录、保存、删除及语言切换
- 搜索与变更:跨文件文本搜索和替换、未保存变更列表、批量保存或回滚、Monaco Diff 对比
- 编辑体验:语法高亮、命令面板、代码折叠、Minimap、自动换行、主题、字号和可自定义快捷键
- 预览与格式化:支持 Markdown、MDX、HTML 侧边预览和图片查看,并为常用前端语言动态加载 Prettier 格式化能力
- AI 行内补全:通过快捷键手动触发当前代码位置的补全建议
- AI 编程助手:兼容 OpenAI Responses API,可配置模型和推理等级,支持 SSE 流式请求、多会话独立运行、停止任务、上下文压缩和 Token 用量展示
- AI 工作区工具:支持文件列举、读取、搜索、创建、修改、待删除、Diff、图片读取、图片生成或编辑、隔离 JavaScript 执行及后端 HTTP 代理;JavaScript 工具可声明工作区输入、固定输出或动态输出目录,并在 Worker 内执行受大小限制的直连或代理请求
- 工作区指令:自动读取根目录
AGENTS.md,作为 AI 执行任务时的附加约束 - SSH 与 SFTP:通过后端连接远程主机,支持多终端标签、文件上传下载、传输进度和任务取消
- AI 远程工具:可将指定 SSH 配置暴露给 AI,并通过命令白名单、高风险确认和执行原因展示控制命令调用
- PWA:支持安装为独立应用,并缓存应用页面和已访问的同源静态资源
- 设置导入导出:可将编辑器、AI、后端和 SSH 设置压缩到 URL Hash 中,用于迁移配置
使用说明:
- AI 创建或修改的文件默认只保存在编辑器内存中,需要用户检查变更后手动保存到磁盘
- 图片生成模型可单独配置;图片工具未传输入图片时调用 OpenAI Images generations 接口,传入图片时调用 edits 接口,结果会在聊天框和编辑器中预览
- 多个 AI 会话的消息、运行状态、停止控制器和上下文用量相互隔离,但仍共享同一个工作区;同时修改同一文件时可能产生冲突
- AI 会话只保存在当前页面内存中,刷新页面后不会恢复
- AI 接口由浏览器直接请求,服务端需要允许 CORS;长任务使用 SSE 流式响应,避免无响应数据时触发网关超时
- SSH、SFTP 和 HTTP 请求代理依赖后端服务,单独运行前端时不可用
- 设置保存在浏览器
localStorage。导出的设置 URL 可能包含 AI API Key、SSH 密码或私钥等敏感信息,请勿公开分享 - 当前不包含完整 IDE 的 LSP、调试器、扩展系统和 Git 暂存区;“查找引用”基于工作区文本匹配
部分磁力站点启用了 Cloudflare 防护,需要额外的绕过服务才能访问。
可使用项目:https://github.com/sarperavci/CloudflareBypassForScraping
- 如果修改了绕过服务端口,需要同步调整配置里的
torrent.bypassCfApi - 如果绕过服务需要单独代理,需要配置
torrent.bypassCfApiProxy - Cloudflare 绕过通常较慢,建议适当调大对应站点的
requestTimeout