找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 1994|回复: 14

[k3] !用windows电脑编译各种平台的filebrowser

[复制链接]
发表于 2022-9-26 22:58 | 显示全部楼层 |阅读模式
filebrowser 是一款网页版文件管理器,也可叫做nas,个人网盘等等,是git上一个免费开源的软件。服务器端用go语言编写,所以运行速度超快,安装简单,非常适合在路由器等低性能设备上运行。
好多网友想学怎么编译filebrowser。我以前写过一个教程,但不适合2.12以后的版本编译了,因为2.12以后的版本有些库没有windows版本,只能用linux编译。可大多数人都没有Linux设备,所以我还是写一下在windows下怎么编译filebrowser。大家学会了之后,就可以编译自己需要的版本,或者修改一些自己需要的功能(前端网页是用vue写的,非常容易修改)。

用windows编译filebrowser,
1. 需要先安装docker,再在docker里拉取ubuntu(一种linux)镜像。这时你就有linux环境了。
2. 然后再在ubuntu里安装go(编译后端要用)和nodejs(编译前端要用)。
3. 然后就可以在ubuntu里通过几个命令编译filebrowser了,非常简单。

1.1 安装docker:
从官网下载并安装好docker:
https://docs.docker.com/desktop/install/windows-install/
直接双击默认安装。但重启后可能会提示wsl2需要升级,从给出的地址下载wsl2升级包,安装上,之后再重启就好了。

在docker运行起来后,就可以在powershell里运行docker命令了 (>),不过这里推荐安装微软免费的Windows Terminal,比powershell好用很多。https://apps.microsoft.com/store ... ?hl=zh-cn&gl=cn

1.2 拉取ubuntu 镜像:
先在电脑的c盘里建立一个dshare文件夹(可以自己改名字),用于windows和linux相互交换文件。

在电脑上的docker运行起来后,在Windows Terminal里键入:
docker run -t -i --name="doing"  -v /run/desktop/mnt/host/c/dshare:/dshare ubuntu:xenial-20210804 /bin/bash
* 这个命令拉取的是20210804的版本,也是我用的。大家可以在hub.docker.com里查找最新的ubuntu镜像。
* 这个命令会把windows c:\dshare 文件夹共享为ubuntu根目录里的share文件夹,使用起来非常方便。

运行完这个命令后就会进入到ubuntu终端了(#)。自此windows下的linux环境搭建完了。

2.1 安装go:

进入ubuntu环境并且配置源。这个ubuntu好像是一个最小的镜像,连基本的编辑器例如vim这些东西都没有,所以,要先依次执行:(从这里拷贝后,在windows terminal里点击鼠标右键直接粘结)
    mv /etc/apt/sources.list /etc/apt/sources.list.bak
    echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list
    echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list
    echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list
    echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list
    apt update
    apt upgrade

安装最新版的go,需要执行:
apt install wget
wget -c https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz -O - |  tar -xz -C /usr/local
(去这里查最新版https://golang.google.cn/dl/
如:https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz,替换一下地址就好。

看看装好了吗:
cd /usr/local/go/bin
./go version     如果有显示版本好,就说明安装好了。

然后配置go的环境变量:
apt install vim
mkdir /home/gowork
vim ~/.bashrc

输入字母 i,进入插入模式,把光标移到最下面的蓝色#注释段上一行,回车,重启一行。

输入下面一整段 (拷贝后右键粘入):

export GOROOT="/usr/local/go"
export GOBIN=$GOROOT/bin
export GOPATH="/home/gowork"     
export PATH=$PATH:/usr/local/go/bin

按esc 退出插入模式,

输入三个字母  :wq  保存文件并退出,(注意 :q是不保存退出)

重新加载新的PATH 环境变量到当前的 shell 会话:
source ~/.bashrc

go env  (关键查看gopath路径是不是改成/home/gowork/了。把filebrowser源文件要放在gopath (/home/gowork/)里面编译))

自此,go 就安装完毕。

2.2 安装Nodejs

apt update
apt install npm   先安装npm
npm install -g n

mkdir -p /usr/local/n

mkdir -p /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

#更改为淘宝镜像源
echo 'export N_NODE_MIRROR="https://npm.taobao.org/mirrors/node"' >> ~/.bashrc

更新:
source ~/.bashrc

安装nodejs最新LTS版
n lts

更新npm到最新版:
npm install -g npm@latest
验证是否安装成功:
node -v   目前是16.17.0
npm -v  目前是8.19.0

3.1 然后就可以编译filebrowser了。
先从github上下载最新版的源文件:https://github.com/filebrowser/filebrowser/releases,注意下那个source code(.zip)。
解压后把filebrowser放到c:\dshare里。然后拷贝到go的工作目录:
cp -r /dshare/filebrowser /home/gowork/filebrowser

编译前端:
cd /home/gowork/filebrowser/frontend
npm config set registry http://registry.npm.taobao.org   -- 使用淘宝的镜像网址
npm install  (第一次运行可能要卡一会,得等个10多分钟)
npm run build

编译后端:
cd /home/gowork/filebrowser/
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

go env -w GOOS=windows
go env -w GOARCH=amd64

go get
go build
cp -rf /home/gowork/filebrowser/filebrowser.exe /dshare/filebrowser.exe

然后你就可以在c:\dshare文件夹里看见filebrowser.exe这个成品了。

3.2 跨平台编译。
上面编译的是在windows下运行的filebrowser.exe。
如果你想编译在linux amd平台上运行的filebrowser,则需要在编译后端时,把 go env -w GOOS=windows和go env -w GOARCH=amd64换成
go env -w GOOS=linux
go env -w GOARCH=amd64

如果想在k3路由器上运行,则需要换成:
go env -w GOOS=linux
go env -w GOARCH=arm
go env -w GOARM=5

编译之后,运行:cp -rf /home/gowork/filebrowser/filebrowser /dshare/filebrowser,之后就能在c:\dshare\filebrowser文件夹里找到filebrowser这个成品文件了。(注意和filebrowser.exe所在的文件夹不同)。

注意,其他平台也类似,比如小睿私人云用的是:
go env -w GOOS=linux
go env -w GOARCH=arm64

评分

参与人数 2恩山币 +2 收起 理由
云*** + 1 你好,久仰卧龙大名,在下凤雏!
lvxi*** + 1 感谢你的分享,无论怎样,你都是最无私的人.

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-9-26 23:10 | 显示全部楼层
每次编译完,用
exit
来退出ubuntu系统。再次进入时先需要在docker下挂在这个用过的镜像。
docker ps -a,  查找到此容器的id。然后挂在此镜像:
docker start 此container_id
docker attach 此container_id
比如:
docker start 55a609836a19
docker attach 55a609836a19

每次修改完源代码,需要重新编译时,可以只运行:
(如果只改了前端的代码,前端代码都在filebrowser\frontend\src文件夹里)
rm -rf /home/gowork/filebrowser/frontend/src
cp -rf /dshare/filebrowser/frontend/src /home/gowork/filebrowser/frontend/src
cd /home/gowork/filebrowser/frontend
npm install
npm run build

cd /home/gowork/filebrowser/
go get
go build
cp -rf /home/gowork/filebrowser/filebrowser.exe /dshare/filebrowser.exe

如果更改了后端的源代码,需要替换掉整个filebrowser文件夹:
rm -rf /home/gowork/filebrowser
cp -rf /dshare/filebrowser /home/gowork/
cd /home/gowork/filebrowser/frontend
npm install
npm run build

cd /home/gowork/filebrowser/
go get
go build
cp -rf /home/gowork/filebrowser/filebrowser.exe /dshare/filebrowser.exe
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-9-26 23:35 来自手机 | 显示全部楼层
注意,编译时,有warning没关系。如果有error,就通不过了。github如果访问太慢,可以下一个fastgithub的软件,速度飞快。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-10-25 15:30 | 显示全部楼层
感谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-11-3 17:12 | 显示全部楼层
大佬,你编译的filebrowser,能给我一份吗?我的路由器是小米R3G,和斐讯的K2,K3一样
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-11-4 15:39 | 显示全部楼层
楼主牛Bplus,先收藏,过几天试试
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-11-5 00:52 | 显示全部楼层
大神,我的K3官改21d非常喜欢filebrowser,公网DDNS后filebrowser非常好用,不过我很想把域名的SSL签名证书加进去,大神你能解决这个问题吗?如果可以的话有偿请你帮忙解决。我是代码小白。望回复。

点评

filebrowserssl顣п顣  详情 回复 发表于 2022-11-18 21:13
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-11-18 21:13 来自手机 | 显示全部楼层
sz815  2022-11-5 00:52
K321dfilebrowserDDNSfilebrowserSSL ...

记得filebrowser支持ssl啊。去官网上查查,搞不定的话,等我有空了,我帮你查查。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-11-20 11:58 | 显示全部楼层
niubility 发表于 2022-11-18 21:13
记得filebrowser支持ssl啊。去官网上查查,搞不定的话,等我有空了,我帮你查查。

终于等到大神回复了,我固件是官改21d,想把软件市场的filebrowser加入ssl,目前用服务器反代的方式实现,但是速度影响非常大,想请你帮忙解决ssl问题,方便的话我薇 sz0815
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-2-11 17:55 | 显示全部楼层
都搭建好了,能否发个编译好的路由器能用的文件来
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-10-2 23:15 | 显示全部楼层
大佬威武,,跟着教程真的成功了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-10-2 23:16 | 显示全部楼层
大佬,这个在windows下只能识别一个硬盘,能修改成识别多个硬盘路径吗

点评

在windows下把e盘映射到d盘的文件夹上,这样就能用filebrowser访问全部电脑文件了。 https://jingyan.baidu.com/article/49ad8bce1206111934d8faf4.html 先在d盘建一个空文件夹e, 右键点击我的电脑--属性--磁盘管理  详情 回复 发表于 2024-2-14 10:14
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2024-2-14 10:13 | 显示全部楼层
最新的【有道云笔记】!!!windows下直接编译filebrowser https://note.youdao.com/s/TCbvCTTu
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2024-2-14 10:14 | 显示全部楼层
18072532070 发表于 2023-10-2 23:16
大佬,这个在windows下只能识别一个硬盘,能修改成识别多个硬盘路径吗

在windows下把e盘映射到d盘的文件夹上,这样就能用filebrowser访问全部电脑文件了。
https://jingyan.baidu.com/article/49ad8bce1206111934d8faf4.html
先在d盘建一个空文件夹e,
右键点击我的电脑--属性--磁盘管理---右键点击e盘---更改驱动器号和路径---添加--装入以下空白ntfs文件夹中--浏览---选择d:\e,确定!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2024-2-14 10:49 | 显示全部楼层
本来想过年时把它更新一下,还是弄不下去啊。官版更新太多了,我以前改的也太多了,一个一个文件对,真没法弄到一起。

不过官办也没增加啥实质内容,就是有个上传框挺好,可以显示每个文件的进度,很漂亮。其他的很多功能都没我改的好。
我改的主要的功能有:
1. 浏览图片时,手机上可以滑动切换图片,下滑关闭图片,都加了动画。而且把浏览窗口放大到全屏了,官方的上面大headbar给改透明了,并延时自动隐藏。
2. 图片列表改成虚拟列表,即使文件夹里有几千个图片,下滑加载也非常流畅,不占用浏览器内存。
3. 从图片浏览返回列表页时能返回之前的位置,不会重新加载列表的页面。本来很简单的功能,但filebrowser里实现这个挺麻烦的,github上很多人都想要这个功能,可的确不好实现,因为记得好像是listing.vue和preview.vue不是父子关系,是兄弟关系,从listing进到preview时, listing就被销毁了。有人给listing加了个位置定位,可效果不好,回不到准确位置,而且有延时,能看见找位置时的页面滚动,特逗,不爽。我是把listing冻住了,回来时再解冻,效果很酷。
4. 把导航栏面包屑重新做了,很酷。
5. 设置里加了个大缩略图选项,感觉比官方后来改的好看,尤其手机上。
6. 能显示图片拍摄时的地理位置(必须是照片原图啊,exif里有gps信息,显示很准,因为国内不让准确显示,我还重新算了一下),国外的图片也能显示。
7. 分享链接里可以直接观看视频,播放音乐,浏览图片。

我改的版本下载:链接: https://pan.baidu.com/s/1mPuwLBUUHDFaDl9rnDaWIA?pwd=xezu 提取码: xezu 复制这段内容后打开百度网盘手机App,操作更方便哦,这个是基于2.20.1的,貌似不能在windows下直接编译,必须用第一帖里的方法,在windows下装ubuntu再编译。

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-26 21:49

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表