淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun
我之前折腾过一段时间的Nextcloud,但是最后发现这个东西不仅吃资源,而且速度慢。在图片多的时候,卡顿非常严重
查找资料后才发现,Nextcloud会为图片生产各种尺寸的略缩图,有的根本用不上,到最后会出现略缩图比原文件大的奇葩现象
即使通过优化图片略缩图大小,加上redis,使用体验依旧不尽人意
直到前几天我发现了一个叫做FileRun的网盘,它的功能非常强大
个人觉得FileRun最大的优势就是查看图片的速度。它不像nextcloud那样所有图片都产生各种尺寸的略缩图。默认情况下,只有当图片大于8MB的时候,FileRun才会生成略缩图,否则就直接调用原文件。这大大加快了查看图片的速度,也减少了略缩图占用磁盘空间。
与荔枝相册不同的是,FileRun不会改变图片的文件名和目录结构。你再也不用担心原来精心分类好的相片被打乱了。
你还可以直接通过FTP、SMB等共享协议,直接对FileRun的文件进行管理,修改会直接反馈到FileRun。
对于家庭用户来说,相片占据了文件相当大一部分。上述几个优势让FileRun非常适合家庭用户储存相片,而非专业用户直接管理文件也不用去担心数据库操作的问题。这也是我推荐FileRun的原因。
官方搭建了一个Demo,大家可以尝试一下,再考虑自己搭建。由于这个Demo服务器在国外,速度会有点慢,如果在本地NAS使用的话会快很多。
官方Demo试用 demo.filerun.co/
本文使用docker compose搭建FileRun,需要一点docker的基础知识。可以参考一下我上一篇文章,快速入门。
首先要安装docker compose。但每个NAS系统安装的方法不一样,由于手上也没有那么多的设备,只能讲解大概。群晖本身就内置了docker compose,不需要安装。unraid则需要安装 NerdPack 插件。openmediavault因为是基于Debian,就简单不少。
编辑 /etc/apt/sources.list 在文件末尾添加 deb http://ftp.de.debian.org/debian sid main
最后执行apt update && apt install docker-compose
安装完毕之后输入docker-compose --version
docker compose是通过docker-compose.yml文件来生成容器。docker-compose.yml文件里面就包含了生成容器所需要的各种配置信息。我已经写好了这个yml文件,下载地址在文章后面。大家只需要根据自己需求修改即可。如果是矿渣,则需要把image里面的latest改成arm32v7
上面配置了数据库的连接信息,以及使用www-data用户运行容器。框框部分volumes是数据卷,也就是文件保存的位置。这里有两个目录,一个是FileRun程序的目录,一个是文件保存的目录。你把端口以及数据卷改成自己需要的即可。
这个配置在容器生成时,会同时创建一个filrerun的数据库,并赋予filerundb用户管理数据库的所有权限。如果目标数据库存在,就会使用已经存在的数据库。你需要修改的是数据库的PUID和PGID,指定运行数据库容器的用户,以及数据库的保存位置。
不明白PUID和GUID可以看我之前介绍Linux权限文章
这个数据库并没有设置端口映射,filerun直接在docker内部网络使用db:3306(数据库端口默认3306)访问数据库。这样子做的好处就是当你迁移到其他机器、或者IP变化的时候,filerun还是可以使用db:3306来连接数据库,避免了为了修改数据库地址而去手动修改配置文件的麻烦。docker-compose特别适合使用数据库的应用。
把docker-compose.yml文件上传到NAS上。比如我把文件上传到/root目录下,那么我就输入命令cd /root 切换到根目录下,再输入docker-compose up -d。 如果yml文件格式错误,会提示第几行错误,一般都是使用tab代替空格导致的。
yml文件格式要求严格,一定要使用空格。建议使用notepad++文本编辑器来编辑,它可以清楚的标明行号。filnallshell的内置编辑器也还可以。出错的时候去对应的行号修改即可。
yml文件格式正确,docker就会自动下载镜像并生成容器。
输入docker ps查看正在运行的容器
这里再顺便介绍几条常用命令,docker-compose down可以删除容器,docker-compose stop停止运行,docker-compose restart 重启容器。
上面配置FileRun绑定的端口是8888,输入NAS的IP:8888就可以正常访问FileRun,初始账号密码都是superuser
默认并没有中文的界面,还需要一点小工作才能完成汉化,打开汉化文件地址,复制另存为chinese.php
点主界面右上角的齿轮,打开控制面板,点option—upload file
刷新之后会出现chinese,点Save changes,再刷新一次全部界面都会变中文了
编辑customizables/config.php可以修改高级设置,文件需要以<?php开头
修改时区 date_default_timezone_set("Asia/Shanghai");
cache为略缩图文件 $config['path']['thumbnail_cache'] = '/var/www/html/cache';
同时上传文件数 $config['app']['upload']['max_simultaneous'] = 15;
默认8MB以下的图片文件不产生略缩图,单位为Byte
$config['thumbs']['output_small_max_filesize'] = 8388608;
默认略缩图大小限制为20MB $config['thumbs']['limit_file_size'] = 20971520;
切换到filerun的 cron目录下,用命令可以使行工具,实现一些功能。例如你在windows下通过smb共享大量删除了filerun里面的文件,因为没有通过网页删除文件,数据库中会依然存在这些文件路径,就需要使用php paths_cleanup.php删除数据库中已经不存在的文件,提高数据库性能。重置密码的命令也可以在里面找。
docker-compose.yml文件和config.php下载地址 提取码da35
记得要把config.php的文件所属更改为运行用户www-data
chown www-data:www-data config.php
FileRun可以使用Nextcloud的手机客户端,首先需要打开API
在手机客户端输入ip:8888连接filerun之后,即可使用账号密码登陆
通过自动上传备份手机里面的图片。可以指定备份目录,何时上传。但是安卓要给nextcloud自启动的权限才能自动上传,否则需要手动打开APP。
只要你保存好yml文件,以后无论在什么机器上,只要有docker-compose,都可以使用docker-compose up -d快速搭建filerun。迁移到其他机器的时候,需要保证运行用户和文件权限一致,这点我在之前的文章写过。只要你认真看懂我之前写的文章,这些都不难。
码字不易,如果觉得本文对你有帮助,收藏的同时顺手点个赞,谢谢
文章的点赞数经常不到收藏的十分一
能帮助更多的人才是我写文章的初衷 有疑问的请留言,我会尽量回复


























解毒药
校验提示文案
weyes
校验提示文案
王德發儿
校验提示文案
zjcim
校验提示文案
左手饭特稀
校验提示文案
cateran
校验提示文案
龙飞1
校验提示文案
yfdoor
校验提示文案
值友8091108285
校验提示文案
xyzylj
2.在customizables目录下没有config.php文件,手动上传到目录下,执行命令不成功。困扰了好久,不知道哪出错了。期待您的解答。
校验提示文案
到底叫啥
校验提示文案
CooleR88
校验提示文案
老图老图
校验提示文案
上古咸鱼
校验提示文案
zbuhui
校验提示文案
大咖啤
校验提示文案
值友6324453390
校验提示文案
iwtu
校验提示文案
云南大侠A
校验提示文案
hillpig
校验提示文案
东皓雪
校验提示文案
疯狂的蜂鸟
校验提示文案
值友9034375054
校验提示文案
sahara11
校验提示文案
值友8758008811
校验提示文案
陌陌未央
校验提示文案
值友4942337340
校验提示文案
etrock
校验提示文案
轮回O过程
校验提示文案
watsons
怎么破
校验提示文案
值友6324453390
校验提示文案
問道于心
校验提示文案
值友2099714742
校验提示文案
紫城明月夜
HTTP ERROR 500
校验提示文案
封尘印
文件同步还是seafile好用点
校验提示文案
iwtu
校验提示文案
zbuhui
校验提示文案
吉佑吉呈
校验提示文案
魔法柴郡猫
校验提示文案
小牛么么
校验提示文案