飘在云端

啊!那蓝真天,白真云!

· 未定义 · · 343次浏览

Filebrowser 最新版 v2.21.1 配置的一些坑

环境:
Filebrowser v2.21.1
Nginx v1.21.4
Ubuntu v20.04.4 LTS

下载最新版 Linux x64 架构的 release,这里可以使用本站的 GitHub 镜像:

wget https://hub.0z.gs/filebrowser/filebrowser/releases/download/v2.21.1/linux-amd64-filebrowser.tar.gz

解压:tar zxvf linux-amd64-filebrowser.tar.gz -C /root

作为服务后台启动,创建一个空白文件,touch /etc/systemd/system/filebrowser.service,内容如下

[Unit]
Description=filebrowser service
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/root
Restart=always
RestartSec=3
ExecStart=/root/filebrowser -d=/root/filebrowser.db --disable-type-detection-by-header -b=/ --cache-dir=/root/files/cache --img-processors 6

[Install]
WantedBy=multi-user.target

其中,systemctl的配置项 ExecStart 输入Filebrowser路径和参数,这里 Filebrowser 执行文件参数不认 --参数名 "参数值" 的形式,要改成 --(或-)参数名 = 参数值 的形式,不然会报错,详见上面示例,每个参数结尾以 空格分割,且路径必须为绝对路径。

其他要注意的:
Filebrowser中的参数 baseurl 的值为网站路径(location匹配的路径),如果是部署在根目录,则为 /,如部署在二级目录, https://www.example.com/test,则为 /test

重新加载服务列表 systemctl daemon-reload
配置自启动 systemctl enable filebrowser

启动 Filebrowser systemctl start filebrowser
重启 Filebrowser systemctl restart filebrowser
停止 Filebrowser systemctl stop filebrowser
查看运行日志 systemctl status -l filebrowser

更多参数详见命令行帮助 ./filebrowser help config set

Nginx 反代配置优化,只列出关键部分:
注意我这里是 root 权限运行的 nginx,请根据实际情况修改。

server

server {
#其他内容
#允许大文件上传
client_max_body_size 0;
}

location

location ~* / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
#大文件上传参数优化
proxy_read_timeout                      86400s;
proxy_send_timeout                      86400s;
proxy_redirect                          off;
proxy_set_header                        Upgrade $http_upgrade;
proxy_set_header                        Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#禁止服务端、客户端缓存策略
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
 if_modified_since off;
 expires off;
 etag off;
}

自定义 CSS 和 Logo
在 root 目录中使用 tree -L 3,输出的路径层次为以下结构

├── filebrowser
├── filebrowser.db
├── files
│   ├── cache
├── custom.css
├── img
│   ├── icons
│   │   ├── android-chrome-192x192.png
│   │   ├── android-chrome-512x512.png
│   │   ├── apple-touch-icon.png
│   │   ├── browserconfig.xml
│   │   ├── favicon-16x16.png
│   │   ├── favicon-32x32.png
│   │   ├── favicon.ico
│   │   ├── mstile-150x150.png
│   │   ├── safari-pinned-tab.svg
│   │   └── site.webmanifest
│   └── logo.svg
├── tlscert
└── tlskey

此外如果 Nginx 配置启用了 gzip_static on,会导致 CSS、Logo 修改无法立刻生效预览,需要手动清除 Nginx 缓存