简单的私有云数据访问工具 – FileBrowser 部署记要

为了低成本脱离互联网的各种服务,从自弄了机器做NAS,时不时就得折腾一下,证明我还不完全死去,正如我在「我那点文件数据的过去、现在与未来」 最后所说的那样,虽然这些都不是什么重要的东西,但是弄好还是挺开心的。

为了从外部网络更方便的访问自己的数据,我从NextCloud 折腾到 FileRun,后面也弄过 Alist 玩过一段时间,最后找到了 FileBrowser ,它简单,刚好满足我简单的需求,记录一下部署过程,以备后用。

我的需求:

  • 在外部网络使用网页访问我的数据
  • 使用 Nginx 二级目录进行反向代理,多个应用只记一个域名和端口就行

环境:

  • Debian/12
  • Docker/27.3.1
  • Nginx/1.27.2

前期准备工具

准备好用来挂载到容器的文件夹,并设置相应的权限,主要是文件目录(参考下面Docker启动配置),比如说准备用用户 www 来管理,那就先设置权限: chown www:www /srv/disk -P (注意,这很重要,不然系统可能直接起不来)

查看用户 ID,备用: id www

配置 Docker 容器并启用

这里使用 linuxserver 镜像 (官方参考: https://filebrowser.org/installation

官方提供的方法是直接挂载文件,我这里会报错 :unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

所以,这里改一下,挂载文件夹,而不是文件,这也是选择 linuxserver 镜像的原因,它的配置文件和数据库文件在文件夹下面,而 alpine  的两个文件在根目录下,最终如下,保存这段配置为 .sh 文件:

    docker run -d \
    --name filebrowser \
    -v /srv/mydisk:/srv \ #文件目录,即准备用filebrowser来管理的目录
    -v /Docker/filebrowser/database:/database \ #数据文件目录
    -v /Docker/filebrowser/config:/config \ #json配置文件目录
    -e PUID=$(id -u) \ #改成前面查到的用户ID,比如 PUID=1000
    -e PGID=$(id -g) \ #改成查到的用户组ID, 比如 PGID=1000
    -p 8080:80 \
    filebrowser/filebrowser:s6
    # 如果你复制这段进行修改使用,注意格式,比如空格、注释删除等

创建并启动容器: bash filebrowser_linuxserver.sh

查看容器是否运行正常: docker ps

如果容器运行正常,这个时候防火墙开放端口(上面演示的是8080,防火墙可以使用 UFW),就可以通过本地IP+端口进行访问了

配置二级目录反向代理

FileBrowser 端:修改 json 配置文件 , 将 baseURL 设置为二级目录的名称,比如这这里是 /files(更多选项参考:filebrowser config set | File Browser

 nano /DockerData/filebrowser/config/settings.json

{
  "port": 80,
  "baseURL": "/files",
  "address": "",
  "log": "stdout",
  "database": "/database/filebrowser.db",
  "root": "/srv"
}

Nginx 端:在现有站点配置文件下,添加下面反向代理配置(如果没有站点,那就新建一个,可以使用  LNMP 面板进行管理,参考 「说说 LNMP 面板」)

## firebrowser
        location ^~ /files {
                proxy_pass http://127.0.0.1:8080;
                client_max_body_size  2048m;
                proxy_read_timeout  86400s;
                proxy_send_timeout  86400s;
                proxy_set_header  X-Forwarded-Host $host;
                proxy_set_header  X-Forwarded-Server $host;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  Host $host;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_http_version  1.1;
                proxy_redirect  off;
                proxy_set_header  Upgrade $http_upgrade;
                proxy_set_header  Connection "upgrade";
        }

重启容器:docker restart filebrowser 

这时,就可以使用 https://你的域名:端口/files  进行访问了

以上

本文是 居家服务器折腾笔记 的一部分

One thought on “简单的私有云数据访问工具 – FileBrowser 部署记要”

Leave a Reply

Your email address will not be published. Required fields are marked *