Filebrowser在Window环境下编译打包到路由器

由于releases页面中的十多个包中,并没有mips平台的包,只能自己编译打包
对于 使用Go语言做开发的同学,这个问题很简单,可以咱不会GO怎么办,小白来一步步演示如何编译打包到自己的小米路由器
成功搭建自己的文件管理 + 私人网盘

1 首先,Window上需要安装环境

安装没什么好说的,下载之后直接点下一步下一步就安装好了

2 下载filebrowser源码,编译前端静态资源

源码地址:https://github.com/filebrowser/filebrowser

电脑有安装Git的话,直接clone。没有的话就下载zip

CMD窗口进入源码根目录

依次执行这三条命令
先编译前端资源,进入前端目录 cd frontend
安装依赖 npm ci
注意了 敲黑板了这里有一个坑 需要修改package.json的配置,因为Window下没有这个命令会报错。然后再执行 npm run build

等待一下,看到这个结果就证明前端资源打包好了(中间会出现警告 可以忽略)

3 配置对应平台编译配置

以我的路由器为例,查看系统信息,确定平台

1
2
> uname -a
> Linux mips GNU/Linux

注意啦,如果你也是用这款小米路由器,一定不要被这个 mips 平台迷惑了
mips存在两种架构,分别为大端和小端,其中mips代表大端方式;而mipsle代表小端方式,我的小米路由器使用的mips处理器是小端方式,如果我们使用mips则运行会出现如下错误:

1
line 1: syntax error: unexpected "("

所以正确的平台应该是 mipsle

OK,确定了系统平台之后,我们开始设置GO的编译环境

回到filebrowser根目录,执行如下命令,设置环境

1
2
SET GOOS=linux
SET GOARCH=mipsle

执行编译打包

1
go build main.go

等待片刻,会在目录下生成一个main文件(不带后缀名的)

4 上传到路由器,执行初始化并运行

改名为filebrowser,放到/etc目录下

1
2
3
4
5
6
7
8
9
10
11
12
13
// 给予权限
chmod 755 filebrowser
// 初始化配置数据库
./filebrowser -d filebrowser.db config init
// 设置无限制访问
./filebrowser -d filebrowser.db config set --address 0.0.0.0
// 设置端口
./filebrowser -d filebrowser.db config set --port 8080
// 设置管理员账号密码
./filebrowser -d filebrowser.db users add admin 123456 --perm.admin

// 启动
daemon /etc/filebrowser -d /etc/filebrowser.db
1
2
// 测试连接
> curl 127.0.0.1:8080

游览器访问 路由器IP:端口就完成搭建了

遇到的问题,filebrowser的版本号显示异常,但是不影响使用

5 filebrowser开启https

1.首先获取自己域名的证书,这里以阿里云免费证书为例,选择下载证书后,得到一个压缩包,我们需要用到 .key.pem 这两个文件。上传到路由器。

2.配置到filebrowser.db中,文件目录和名称记得替换成你们自己的。

1
2
./filebrowser -d filebrowser.db config set --key /etc/dollcode.key
./filebrowser -d filebrowser.db config set --cert /etc/dollcode.pem

3.kill掉进程,重新执行启动命令。浏览器用域名访问,就需要加上https前缀了,http方式就打不开了(会提示Client sent an HTTP request to an HTTPS server.)