- 中文 | English
- 使用filebrowser好看的ui来浏览文件,同时具备服务器管理能力。
- 安装
npm install filecat -g
然后执行filecat
,使用参数filecat --help
可以获取更多参数说明。也支持二进制方式直接运行,更多使用方式请参考下文。
url: http://116.198.245.137:5569/
账号密码: admin
/admin
暂时没有权限功能,请不要修改密码,影响别人体验
- 如果你的服务器上已经安装了node和npm,使用
npm install filecat -g
全局安装,后然后使用filecat
命令即可运行,或者npm install filecat
安装到本项目下,使用npx filecat
运行; - 如果网络比较差,可以使用淘宝镜像源
npm config set registry https://registry.npmmirror.com
。或者,安装的时候临时使用淘宝镜像源npm install -g filecat --registry https://registry.npmmirror.com
。 - 许多依赖是预构建放在github上的(支持node 16、18、20、22),如果主机环境访问github很慢(多尝试几下也许就好了),需要编译,查看报错后安装诸如
npm -g install node-addon-api
的依赖。实在访问不了github导致安装不了也可以使用下面的二进制或者docker运行。在windwos上编译可能遇到的问题可以查看这个链接 https://blog.csdn.net/jjocwc/article/details/134152602
下载最新release
然后使用各个平台的可执行程序运行;(windows在系统信息中,查看处理器如果是AMD就是x64,或者就是arm,linux输入uname -m
可以显示架构类型);
- 执行命令
filecat.exe --port 5567 --base_folder /home
不设置username的话,账号密码默认是admin - 使用例子中的配置文件,执行命令
filecat --env ./env
;linux下也许需要执行sudo chmod +x ./filecat-linux
获得执行权限
这里的安装是安装到systemd作为后台进程,默认需要使用root权限,对于Linux系统现在提供自动安装功能,推荐使用这种systemd方式运行;只需要下载最新版本的filecat-linux
可执行程序后,给与它chod可执行权限,然后运行 ./filecat-linux --install linux
;如果你使用npm安装了filecat,可以直接使用filecat --install linux
来安装到systemd。
使用docker run -d --name filecat --restart=always --net=host -v /home:/home ghcr.io/xiaobaidadada/filecat:latest --port 5567 --base_folder /home
命令直接运行。
说明:
- 所有的用于可执行的参数在这里都可用,也可以省略参数,那么参数会使用项目下的env文件。
- 可以使用
-v
参数映射一个env配置文件给程序,-v /home:/home
是管理文件的必要参数(使用base_folder
参数设置),否则能够看到的只是容器内的临时文件。 --net=host
参数可以使用项目的所有关于网络的功能(虚拟网络,ddns等),由于在容器内运行,系统基本信息有些获取不到,但是内存和cpu使用率还是可以获取到物理机的。- 如果只是想用文件管理功能,使用docker是可以的,否则还是建议在物理机上安装此程序。
- 目前在mac上 直接install会失败(没有测试过),可以使用
npm install --ignore-scripts
。 - 本项目所有需要编译的依赖都使用了预构建,会从github下载编译好的文件,如果你电脑上的网络安装的时候无法访问github则会退化成编译。如果是在windows上需要编译编译可能遇到的问题可以参考这个链接https://blog.csdn.net/jjocwc/article/details/134152602
- 项目使用nodejs, web网页构建使用react,没有使用Ui框架,而是使用filebrowser项目的css,本地dev开发的时候服务端是转发webpack的服务,打包环境下是把web网页作为资源加载的,服务器的路由使用routing-controllers来处理http,使用common下的frame处理websocket(使用和socket.io解析json一样的库socket.io-parser,有一个参数
export const protocolIsProto2 = true;
可选择使用proto协议,为什么不直接使用socket.io呢,是因为当时本来采用的proto,想更多的复用一下代码),都支持修饰器用法,打包的时候前后端都会使用webpack打包。
- 文件管理
- 图片,视频,markdown 等文件格式在线预览。
- 代码编辑器,可选择文件打开方式。
- 图片编辑器,对图片右键可以进入图片编辑器模式。
- studio 编辑器,右键文件夹可以打开一个类似vscode的编辑器页面,可用于linux程序临时开发环境。
- excalidraw绘图编辑器,这是一个很好用白板工具。
- 切换根目录,在设置中添加多个文件夹路径后,可以在右上角选择切换根目录,只对一个session生效。
- 终端,默认是bash, windwos下是 powershell。
- 超大文本日志查看器,对任意大小的文本右键使用作为日志类型查看,点击窗口后可以使用上下键来快速滚动翻页,还可以实时输出内容。
- ssh代理,ftp代理: 可以管理多个linux服务器,作用和winscp类似,让终端和文件管理更方便。
- 网站,是网址收藏夹,可用于保存服务器上其它的网站
- ddns
- http网页代理、rdp代理(windwos远程控制)、rtsp代理播放器,输入直播源,比如监控的url可以实时网页观看
- docker容器,镜像管理,查看日志等功能
- 系统内存cpu信息,进程cpu信息(利用c插件、使用极低的资源,实时查看系统全部进程信息,类似windows的任务管理器),systemd管理(linux下才有)
- wol网络唤醒
- 虚拟网络,可以实现p2p,vpn功能。(不是端口转发,而是利用tun在主机上创建虚拟ip)
- 由于一些库目前不支持mac(比如虚拟网络) mac下无法使用上面的安装方式直接安装成功,在windows需要管理员模式下运行,linux需要root权限才可以使用该功能。此外还很多功能没有在macos下测试过,只支持windows和Linux;
- 部分功能目前处于demo阶段,未来会持续优化;
- 优化更多操作细节
- 支持更多的文件格式浏览
- 支持更多的流媒体功能
- 支持更多的ddns平台
- 自动化爬虫
- 路由权限
824838674
本项目部分功能还基于或者借鉴于以下项目