FileRun 是一个极轻量,内存占用极小的网盘程序,用于替代 NextCloud 等网盘应用。
可能很多人都没听过 FileRun,它最初开发是用在树莓派上运行的,作者已经维护了很多年,在近期的版本更新又带来了很多强大的功能。
FileRun 是一个由 PHP 编写的网盘程序,核心功能是文件管理及文件共享,在这个基础上提供了丰富的插件,例如:文本编辑、OFFICE 文档、音视频播放、PDF 查看等。
安装简单,使用 Docker 就能轻松将它运行在服务器上,需要进行站点迁移也很方便。
优点:
- 支持在线查看图片、3D 模型、音视频播放、在线文档编辑、多任务分工等,支持 zip / tar / gz 等压缩文件在线解压。
- 多平台支持:支持 PC / Android / iOS 三端,借助 NextCloud 客户端以及第三方 WebDAV 客户端,即可做到 Win / Mac / Linux 等多端支持。
- 界面简洁、极轻量 & 内存占用低,并且兼容性好,运行在树莓派上也不吃力。
- 不会改变图片的文件名,文件的目录结构。不用担心精心分类好的相片被打乱。
缺点:
- 网盘程序不支持匿名访问,不能当作下载网盘给他人使用,只能通过链接分享
- 免费版功能有阉割,并且限制用户数量最大 5 个
官方创建了一个 DEMO,通过这个链接访问:https://demo.filerun.com/
环境搭建
推荐使用 Docker Compose 搭建并运行 FileRun 程序,并且使用 Caddy2 进行反向代理给外部使用。
- 关于 Docker 安装,建议阅读此文章:CentOS 7 安装 Docker 详细步骤(无坑)
- 非 CentOS 系统,请直接阅读此文章:Docker 安装教程
Caddy2 是一个用于替代 Nginx 的程序,配置很简单,并且可以直接开启 HTTPS 功能,不需要自己去申请证书,非常适合个人项目使用。
关于安装 Caddy2,可以参考这片文章:Caddy2 安装
使用 Docker Compose 配置
使用 Docker Compose 可以通过 yml 文件来配置 Docker 程序所需要的服务及配置,通过使用 docker-compose 命令就可以创建并启动 Docker 服务。
首先,我们创建一个用来放置 FileRun 配置的文件夹
1 | mkdir ~/filerun && cd ~/filerun |
使用上方命令,在当前用户目录创建一个 filerun 文件夹,并进入此文件夹,键入下方命令创建 docker-compose 的配置文件,并录入文件内容。
1 | vim docker-compose.yml |
将下方的代码复制到 docker-compose.yml 文件里:
1 | version: "3.8" |
让我们浏览一下这份配置文件:
- 首先,它会拉取用于存储数据的 MariaDB 数据库。 在 MariaDB 镜像的 environment 处配置 root 密码、MySQL 用户名、MySQL 密码和运行 FileRun 的数据库名称。 数据库将会安装在
~/filerun/db
目录下。 - 在 web 中修改 environment 内容,配置 FileRun 程序连接到 MariaDB 数据库。运行后 FileRun 的镜像在内部会运行一个 Apache 服务器并通过 80 端口开放 Web 服务。我们将 html 文件目录
~/filerun/html
以及用户上传的文件目录~/filerun/user-files
开放出来。
确认配置无误,保存文件后运行下方指令即可运行 FileRun 程序。
1 | docker-compose up -d |
配置反向代理
这里使用 Caddy2 进行反向代理,在添加反向代理之前,先确保已经完成了域名解析,并且已经安装了 Caddy2 程序。如果还没有安装,可以参考这片文章:Caddy2 安装
在上面的 docker-compose 配置文件里,将 FileRun 镜像开放出来的 80 端口,转发到本机的 8080 端口上,所以我们只需要将本机的 8080 代理到域名即可,这里使用下述 Caddyfile 配置文件。
1 | example.com { |
这份配置会自动给站点签发 SSL 证书,并且自动将此站点的所有请求转发给本机的 8080 端口程序(也就是 FileRun 程序)
最后,祝大家用的开心,并且强烈推荐再搭建一个 bitwarden 进行密码管理,同样是使用 Docker + Caddy2:创建私有密码管理程序BitWarden
参考链接
编写本文的配置文件,参考了官网的资料以及一些其他前辈的分享,有兴趣的可以去看看原文: