说明:通过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分别是用户名和密码,根据自己的需求更改。