1.前言
filebrowser,轻量级文件服务器,一个开源的基于go的web文件管理器,支持Windows,Linux,docker以及安卓termux。开源地址: https://github.com/filebrowser/filebrowser。
支持下载上传,支持用户注册多用户,支持链接分享。能进行简单的文件编辑,支持图片音乐视频浏览
。和同类产品同类比较,比chfs
操作方便(chfs不支持批量操作),相比kodbox
功能较少,但胜在开箱即用的方便,毕竟主要拿来做文件管理器的,要啥子自行车。
2.安装
filebrowser
依赖极少,基本上你系统能安装上,它就能在上面运行了。
在hone
目录(~
)下新建filebrowser
安装目录:
cd ~ &&mkdir .filebrowser
在安装目录里下载filebrowser
压缩安装包:
cd .filebrowser
wget -O filebrowser.tar.gz https://github.com/filebrowser/filebrowser/releases/download/v2.22.4/linux-arm64-filebrowser.tar.gz
下载的时候可以去项目仓库https://github.com/filebrowser/filebrowser/releases查看最新版本:
选择这里的arm64
版本,右键复制下载链接替换上面的wget
链接就好。
解压安装,赋予执行权限,最后删除无用压缩包:
tar -zxvf filebrowser.tar.gz
chmod +x filebrowser
rm filebrowser.tar.gz
3.启动
常规启动命令:
~/.filebroswer/filebrowser -a [address] -p [port] -r [RootDirectory]
其中参数意义为:
参数 | 意义 | 默认值 |
---|---|---|
address | 可访问IP名单 | 0.0.0.0 任意地址可访问 |
port | 监听端口 | 8080 |
RootDirectory | 管理器根目录起点 | /data/data/com.termux/files |
启动后会在启动路径下生成配置文件:
,第一次带参数启动后,默认值会随之更改
~/.filebrowser/filebrowser -a 0.0.0.0 -p 18650 -r /data/data/com.termux/files
同局域网下就可以通过Termux_IP:port访问了:
初始用户名和密码都为admin
。
filebrowser默认是前台启动的,使用nohup
大法来实现服务后台启动,后台启动命令:
nohup ~/.filebrowser/filebrowser -a 0.0.0.0 -p 18650 -r /data/data/com.termux/files > /dev/null 2>&1 &
不懂后台操作命令的参考这两篇文章:《nohup & ——Linux后台运行命令》 《commond >/dev/null 2>&1 命令详解》
4.配置
filebrowser
提供两种配置修改方法:一是命令行操作,二是登录网页后在web端设置里修改。
命令行能做到的,启动命令
+web端设置
都能做到,这里不再啰嗦命令行操作了,毕竟安装filebrowser
为的不就是摆脱文件命令行操作吗。
语言设置
登录后依次Settings
->Profile Settings
->Language
,选择中文(简体)
后点击UPDATE
即可生效。
修改完之后就看见在这个页面下还有一些个人配置,显示设置还有密码设置之类的。
用户管理
使用管理员账户登陆后可以看见用户管理标签卡,在里面可以操作用户的增删操作及用户名、密码、可访问目录范围等分项配置。
分享管理
filebrowser
支持文件分享功能。
点击分享则分享创建成功,然后想对历史分享进行管理或者查找,点击设置的分享管理标签页就能看到了:
5.设置服务自启动
Termux是一个及其特殊的Linux系统,它并没有常规Linux发行版的服务开机自启动功能,这里提供两种方法来将filebrowser
设置为随着Termux软件同时启动。
1) 将开机命令写入termux-login.sh
$PREFIX/etc/termux-login.sh
文件会在每个shell会话启动时被执行一次,我们只需要将filebrowser
后台启动命令追加到$PREFIX/etc/termux-login.sh
中即可:
echo "nohup ~/.filebrowser/filebrowser -a 0.0.0.0 -p 18650 -r/data/data/com.termux/files > /dev/null 2>&1 &" >> $PREFIX/etc/termux-login.sh
但是这样做会有一个问题,那就是filebrowser
服务同时只能存在一个,新开shell会话会导致filebrowser
服务重启,如果此时有下载或者在线观看请求正在被处理,那么这个请求就会被打断,造成下载失败,为了解决这个问题,我们可以加一个简单的判断,手动修改termux-login.sh
文件,将刚刚追加的命令修改为:
if pgrep -x "nohup ~/.filebrowser/filebrowser -a 0.0.0.0 -p 18650 -r/data/data/com.termux/files" >/dev/null
then
echo "filebrowser服务运行中..."
else
nohup ~/.filebrowser/filebrowser -a 0.0.0.0 -p 18650 -r/data/data/com.termux/files > /dev/null 2>&1 &
echo "filebrowser服务已开启..."
fi
这样就解决被迫重启的问题了。
但是还有一个问题,如果暂时不想使用,手动关闭了filebrowser
服务,此时先开启shell会话,filebrowser
服务依旧会被唤起,怎么解决呢?继续增加判断条件一定能够解决这个问题,但如果每个服务都这么做,工作量不是一般的大。。。
后来官方针对这个问题,封装了一个Termux-services
工具来解决这个问题,这就是我们要说的第二个方法。
2) Termux-services
安装Termux-services
:
pkg install termux-services -y
配置Termux-services
下的filebrowser
服务启动文件:
mkdir -p $PREFIX/var/service/filebrowser
vim $PREFIX/var/service/filebrowser/run
将下面命令粘贴进$PREFIX/var/service/filebrowser/run
文件:
#!/data/data/com.termux/files/usr/bin/sh
exec ~/.filebrowser/filebrowser -a 0.0.0.0 -p 18650 -r /data/data/com.termux/files &
配置Termux-services
下的filebrowser
服务日志文件:
mkdir -p $PREFIX/var/service/filebrowser/log
vim $PREFIX/var/service/filebrowser/log/run
将下面命令粘贴进$PREFIX/var/service/filebrowser/log/run
文件:
#!/data/data/com.termux/files/usr/bin/sh
svlogger="/data/data/com.termux/files/usr/share/termux-services/svlogger"
exec "${svlogger}" "$@"
保存,赋予脚本执行权限:
chmod +x $PREFIX/var/service/filebrowser/run &&chmod +x $PREFIX/var/service/filebrowser/log/run
相关命令:
sv-enable filebrowser #filebrowser服务设为自启动
sv-disable filebrowser #取消自启动
sv down filebrowser #临时关闭filebrowser自启动服务,本次Termux运行过程中将不再重启
#但不会关闭正在运行的filebrowser服务
pkill filebrowser #杀死filebrowser服务,但如果自启动为生效状态,filebrowser服务会立即重启
sv up filebrowser #启动filebrowser服务,同时使自启动设置生效
sv start filebrowser #临时启动filebrowser服务,但不改变自启动设置状态
sv status filebrowser #查看filebrowser服务运行状态
日志文件在$PREFIX/var/log/sv/filebrowser/current
中:
关于 后面我会专门写一篇文章,说说Termux-services
Termux-services
的实现原理,分享如何编写配置文件来搭建一个自启动服务的方法,有兴趣的可以到时候去看一看: 《Termux设置——服务自启动》
快速导航 | |||
👈 一些看起来很酷的事儿 | Termux个人云盘搭建——kodbox 👉 |