说明:通过FileBrowser上传的文件可以在系统中正常查看,在系统内新建的文件也会显示在FileBrowser中,在FileBrowser中可以看到磁盘使用情况
下载地址:
https://github.com/filebrowser/filebrowser/releases
下载地址中作者提供了各平台编译好的二进制文件,根据自己的平台下载解压即可,无需自行编译。

##下载File Browser
wget https://github.com/filebrowser/filebrowser/releases/download/v2.31.1/linux-amd64-filebrowser.tar.gz
#创建文件夹
mkdir -p /app/filebrowser
#移动位置
mv linux-amd64-filebrowser.tar.gz /app/filebrowser/
#解压
cd /app/filebrowser/
tar -zxvf linux-amd64-filebrowser.tar.gz
#删除压缩包
rm linux-amd64-filebrowser.tar.gz

创建配置文件

File Browser支持json, toml, yaml, yml格式的配置文件,以json格式为例,命令如下:

#新建配置文件
nano /app/filebrowser/config.json

复制下面的内容保存到/app/filebrowser/config.json

{
    "address":"0.0.0.0",
    "database":"/app/filebrowser/filebrowser.db",
    "log":"/app/filebrowser/filebrowser.log",
    "port":8080,
    "root":"/html/filebrowser",
    "username":"admin" #用户名可以在登陆后修改
}

上面参数含义为如下,请根据自身情况修改。

address:监听地址
database:数据库地址
log:日志文件路径
port:需要监听的端口
root:需要读取哪个目录下的文件
username:用户名

运行File Browser

参数-c是指定File Browser配置文件路径,请根据自身情况填写路径,命令如下:

#常规运行
/app/filebrowser/filebrowser -c /app/filebrowser/config.json
#如果需要保持在后台运行,执行
nohup /app/filebrowser/filebrowser -c /app/filebrowser/config.json &

守护进程

nano /etc/systemd/system/filebrowser.service
[Unit]
Description=File browser
After=network.target

[Service]
ExecStart=/app/filebrowser/filebrowser -c /app/filebrowser/config.json

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable filebrowser.service
systemctl start filebrowser
systemctl status filebrowser

申请证书

#nginx -s stop
systemctl stop nginx
apt-get install socat curl cron
curl https://get.acme.sh | sh
#通配符证书申请
mkdir /etc/nginx/ssl/
acme.sh --issue --standalone -d kkiikk.top -d www.kkiikk.top -k ec-256
acme.sh --installcert -d kkiikk.top -d www.kkiikk.top --fullchain-file /etc/nginx/ssl/kkiikk.top.crt --key-file /etc/nginx/ssl/kkiikk.top.key --ecc
#普通证书申请
#~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
#~/.acme.sh/acme.sh --issue -d www.kkiikk.top --standalone -k ec-256 --force --test
#rm -rf ~/.acme.sh/www.kkiikk.top_ecc
#以上是测试
#~/.acme.sh/acme.sh --issue -d www.kkiikk.top --standalone -k ec-256 --force
#mkdir /etc/nginx/ssl/
#~/.acme.sh/acme.sh --installcert -d www.kkiikk.top --fullchainpath /etc/nginx/ssl/www.kkiikk.top.crt --keypath /etc/nginx/ssl/www.kkiikk.top.key --ecc --force

2.2 配置nginx

nginx.conf配置

nano /etc/nginx/conf/nginx.conf 
#nano /etc/nginx/nginx.conf

编辑nginx.conf

user  root;
worker_processes  auto;
error_log  /etc/nginx/error.log warn;
pid        /run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/conf/mime.types; #注意路径,必须写,否则可能造成css无法加载
    #include       /etc/nginx/mime.types; #注意路径,必须写,否则可能造成css无法加载
    default_type  application/octet-stream;
    log_format  main  '\$remote_addr - \$remote_user [\$time_local] "\$request" '
                      '\$status \$body_bytes_sent "\$http_referer" '
                      '"\$http_user_agent" "\$http_x_forwarded_for"';
    access_log /etc/nginx/access.log main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  120;
    client_max_body_size 20m;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

filebrowser.conf配置

nano /etc/nginx/conf.d/filebrowser.conf

输入

server {
        listen 443 ssl;
        listen [::]:443 ssl; #没有ipv6的话要注释掉这行
        ssl_certificate       /etc/nginx/ssl/www.kkiikk.top.crt;
        ssl_certificate_key   /etc/nginx/ssl/www.kkiikk.top.key;
        ssl_protocols         TLSv1.3;
        ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
        server_name www.kkiikk.top;

        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;
        }
        #允许大文件上传
        client_max_body_size 0;
        # Config for 0-RTT in TLSv1.3
        ssl_early_data on;
        ssl_stapling on;
        ssl_stapling_verify on;
        proxy_set_header Early-Data $ssl_early_data;
        add_header Strict-Transport-Security "max-age=31536000";

}

server {
        listen 80;
        listen [::]:80;   #没有ipv6的话要注释掉这行
        server_name www.kkiikk.top;
        return 301 https://www.kkiikk.top$request_uri;
}

server {
        listen 80;
        listen [::]:80;   #没有ipv6的话要注释掉这行
        server_name kkiikk.top;
        return 301 https://www.kkiikk.top$request_uri;
}

重启服务

systemctl restart nginx
systemctl restart filebrowser

用户名为admin,密码为admin

扩展

创建配置数据库:
/app/filebrowser/filebrowser -d /etc/filebrowser.db config init
设置监听地址:
/app/filebrowser/filebrowser -d /etc/filebrowser.db config set --address 0.0.0.0
设置监听端口:
/app/filebrowser/filebrowser -d /etc/filebrowser.db config set --port 8080
设置语言环境:
/app/filebrowser/filebrowser -d /etc/filebrowser.db config set --locale zh-cn
设置日志位置:
/app/filebrowser/filebrowser -d /etc/filebrowser.db config set --log /var/log/filebrowser.log
添加一个用户:
/app/filebrowser/filebrowser -d /etc/filebrowser.db users add root password --perm.admin
其中的root和password分别是用户名和密码,根据自己的需求更改。
最后修改:2025 年 03 月 09 日
如果觉得我的文章对你有用,请随意赞赏