最近在肝一个完全自研的 AI 私有化管理面板(内部叫 PanelAI),今天把刚刚打通的 文件管理器 + 右键打开终端 两个模块拿出来跟大家聊聊,纯技术交流,零广告。
为什么不直接套现成的文件管理组件?
网上其实一大把 Web 文件管理器(FileBrowser、KodExplorer、1Panel 自带的……),但真用起来总有几个死结:
- 基本只针对 Linux 深度优化,Windows Server 和 Docker 环境一团糟
- 权限系统跟业务完全解耦,后期对接要命
- 几乎没人做「在任意目录右键直接开终端」这种细节体验
- 回收站基本没有,删错就是真删
于是干脆从 0 开始自己写,目标只有一句话: 同一套代码,Linux / Windows Server / Docker 随便跑,后续所有子系统深度打通。
当前已落地的核心功能
功能
实现方式
踩坑记录
磁盘自动识别与挂载
Go 调用系统 API + 前端实时刷新
Windows 盘符、Linux mount 点、NAS 都测了三遍
文件全量操作
纯后端实现(上传下载流式 + 进度条)
大文件上传断点续传已搞定
多格式压缩解压
7z/tar 系统调用
Windows 下 7z 路径问题折腾了两天
回收站 + 批量恢复
删除标记 + 物理隔离目录
防止误删的救命稻草
任意目录打开终端
WebSocket + pty + xterm.js
这才是真·生产力工具
最爽的一点:随便点到一个目录 → 右键 → 「在此打开终端」,浏览器直接就是当前路径,pip install、git pull、bash run.sh 一把梭。
终端模块踩坑合集(血泪经验)
- Windows 下 pty 完全是另一套逻辑,最后 winpty + conpty 双保险
- 编码问题:Windows cmd → PowerShell → WSL 三种情况统一强转 UTF-8
- 长命令输出卡顿:改成分片推送 + 前端流式渲染才解决
- 权限继承:终端默认只能操作当前用户有权限看到的磁盘目录,防止越权
实测延迟(家 → 公司内网)
服务器:普通 EPYC 48 核机器 网络:家 200M 光纤 ↔ 公司内网 打开 PanelAI → 文件管理器 → 任意目录 → 打开终端 全链路延迟 800~950ms,基本感觉不到卡。
后面还想干的事(已立项)
- 日志中心(结构化 + 可视化查询 + 告警)
- 子服务器集群管理(一台主控管 N 台算力节点)
- AI 项目一键市场(ComfyUI、Ollama、OpenWebUI 等直接拉)
- 完整的 RBAC(精确到目录、项目、模型粒度)
最后说点真心话
这套东西从 0 开始写到现在,代码量 13w+ 行,每天都在修 bug、写单元测试、测兼容。 很多人说“这种后台一个月就搞定了”,我信,但大概率是“能跑就行”。 我想做的是“能扛几百上千个团队长期使用”的水平,这中间差的不是代码量,是无数细节的反复打磨。
目前还在闭关阶段,预计 2026 年上半年会开放小范围测试。 有对 Web 终端、跨平台文件管理、私有化部署 感兴趣的朋友,欢迎留言交流,后续会把每个模块的实现思路陆续开源出来。
纯技术分享,喜欢折腾后端的兄弟可以点个关注,后面还有更硬的干货。