FileBrowser安装

FileBrowser 是一个基于 Web 的文件管理器,采用go语言编写,它可以通过浏览器对服务器上的文件进行管理,如:创建、删除、移动、复制等。它支持多个用户的管理,而且每个用户可以拥有自己可以访问的文件和权限。它还支持文件分享,就行网盘那样,你可以通过它来向你的朋友分享文件。使用非常简单方便,功能很强大。

安装FileBrowser

项目地址:
https://github.com/filebrowser/filebrowser

安装:

curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash filebrowser -r /path/to/your/files

创建目录:

/data 目录下创建 filebrowser/ 目录,并在 filebrowser/ 目录下创建data/etc/log/ 三个目录,分别用来存放数据文件、配置文件、日志文件。

配置filebrowser:

# filebrowser -d etc/filebrowser.db config init # 初始化配置
# filebrowser -d etc/filebrowser.db config cat # 查看配置

# filebrowser -d etc/filebrowser.db config set --port 8088 # 设置监听端口(默认8080)
# filebrowser -d etc/filebrowser.db config set --address 192.168.8.11 # 设置监听地址(默认127.0.0.1)
# filebrowser -d etc/filebrowser.db config set --root /data/filebrowser/data # 设置文件存放路径
# filebrowser -d etc/filebrowser.db config set --database /data/filebrowser/etc/filebrowser.db # 设置数据库文件
# filebrowser -d etc/filebrowser.db config set --log /data/filebrowser/log/log.log # 设置日志文件(默认stdout)
# filebrowser -d etc/filebrowser.db config set --locale zh-cn # 设置语言(默认英文)
# filebrowser -d etc/filebrowser.db users add username password # 添加用户

启动:

# filebrowser -d etc/filebrowser.db

配置systemctl启动

# vim /etc/systemd/system/filebrowser.service

[Unit]
Description=File Browser
After=syslog.target network.target

[Service]
ExecStart=/usr/local/bin/filebrowser -d /data/filebrowser/etc/filebrowser.db

[Install]
WantedBy=multi-user.target

设置域名访问

修改filebrowser的监听地址配置

filebrowser -d etc/filebrowser.db config set --address 127.0.0.1

添加nginx配置:

server {
    listen 80;
    server_name file.domain.com;

    access_log /data/logs/nginx/access-servername.log main;
    error_log /data/logs/nginx/error-servername.log;

    location / {
        proxy_pass          http://127.0.0.1:8088/;
        proxy_redirect      off;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;

        client_max_body_size        10m;
        client_body_buffer_size     128k;
        proxy_connect_timeout       30;
        proxy_read_timeout          60;
        proxy_buffer_size           4k;
        proxy_buffers               6 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;
        proxy_max_temp_file_size    0;
    }
}