# Filebrowser 的部署和使用 Filebrowser 是一款开源的,基于 Go 语言开发的 Web 端文件浏览器,可实现文件上传,下载等。 ## 下载和安装 到 的 Release 中下载对应平台和系统的版本,解压即可使用。 ## 部署 Filebrowser 基于数据库形式的配置文件进行工作,用户可通过 Filebrowser 命令直接操作该数据库,不需要直接与数据库打交道。可以使用 -d 参数指定数据库文件,如没有提供该参数,将使用 filebrowser 程序文件路径下的默认数据库文件,如果该数据库文件不存在则自动创建。 使用两个基本指令 config 和 users 即可完成 Filebrowser 的简单配置,config 指令的用法如下: ```bash filebrowser config init # 查看当前属性配置 filebrowser config cat # 设置某属性 filebrowser config set ``` 用于配置的几个主要属性如下: | Attribute | Usage | |-----------|-------------------------------------------| | address | address to listen on | | port | port to listen on | | baseurl | base url | | cert | tls certificate | | key | tls key | | commands | a list of the commands a user can execute | | scope | scope for users | | signup | allow users to signup | | log | log output | users 指令的基本用法如下: ```bash # 列出所有用户 filebrowser users ls # 删除某用户 filebrowser users rm # 添加用户 filebrowser users add [flags] ``` 几个常用的的 flag 如下 | Flags | Usage | |------------|----------------------| | perm.admin | admin perm for users | | scope | scope for users | ## 示例 部署 Filebrowser 并创建一个管理员账户的示例流程如下: ```bash filebrowser -d /etc/filebrowser.db config init filebrowser -d /etc/filebrowser.db config set --address 0.0.0.0 filebrowser -d /etc/filebrowser.db config set --port 8088 filebrowser -d /etc/filebrowser.db config set --log /var/log/filebrowser.log filebrowser -d /etc/filebrowser.db users add root password --perm.admin ``` 其中的 root 和 password 分别是用户名和密码,根据自己的需求更改。 部署完成后,可在管理员账户的系统设置界面对系统进行一些其他设置,如视图模式、普通用户权限、区域和语言等。 ## 利用 Caddy 进行反向代理 可以利用 Caddy 为 Filebrowser 做反向代理 ## 在 Root Domain 进行反向代理 不需要修改 Filebrowser 配置,Caddyfile 示例内容如下: ```ini example.com { proxy / 127.0.0.1:8080 } ``` ## 在 Sub-directory 下进行反向代理 需要先修改 Filebrowser 配置,假设 Sub-directory 为 admin: ```bash filebrowser config set --baseurl /admin ``` Caddyfile 的示例内容如下: ```ini example.com { proxy /admin 127.0.0.1:808 } ``` 或 ```ini localhost:2015/admin { proxy / 127.0.0.1:8080 } ``` ## Https Filebrowser 内建了 HTTPS 支持,只需要配置 SSL 证书即可。 ```bash filebrowser config set --cert --key ```