2019-07-11 15:54:55 +08:00
|
|
|
|
# Filebrowser 的部署和使用
|
2019-07-16 11:44:18 +08:00
|
|
|
|
|
|
|
|
|
Filebrowser 是一款开源的,基于 Go 语言开发的 Web 端文件浏览器,可实现文件上传,下载等。
|
|
|
|
|
|
|
|
|
|
## 下载和安装
|
|
|
|
|
|
|
|
|
|
到 <https://github.com/filebrowser/filebrowser> 的 Release 中下载对应平台和系统的版本,解压即可使用。
|
|
|
|
|
|
|
|
|
|
## 部署
|
|
|
|
|
|
|
|
|
|
Filebrowser 基于数据库形式的配置文件进行工作,用户可通过 Filebrowser 命令直接操作该数据库,不需要直接与数据库打交道。可以使用 -d 参数指定数据库文件,如没有提供该参数,将使用 filebrowser 程序文件路径下的默认数据库文件,如果该数据库文件不存在则自动创建。
|
|
|
|
|
|
|
|
|
|
使用两个基本指令 config 和 users 即可完成 Filebrowser 的简单配置,config 指令的用法如下:
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2019-07-16 11:44:18 +08:00
|
|
|
|
filebrowser config init <attribute> <value>
|
|
|
|
|
# 查看当前属性配置
|
|
|
|
|
filebrowser config cat
|
|
|
|
|
# 设置某属性
|
|
|
|
|
filebrowser config set <attribute> <value>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
用于配置的几个主要属性如下:
|
|
|
|
|
|
|
|
|
|
| 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 指令的基本用法如下:
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2019-07-16 11:44:18 +08:00
|
|
|
|
# 列出所有用户
|
|
|
|
|
filebrowser users ls
|
|
|
|
|
# 删除某用户
|
|
|
|
|
filebrowser users rm <id|username>
|
|
|
|
|
# 添加用户
|
|
|
|
|
filebrowser users add <username> <password> [flags]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
几个常用的的 flag 如下
|
|
|
|
|
|
|
|
|
|
| Flags | Usage |
|
|
|
|
|
|------------|----------------------|
|
|
|
|
|
| perm.admin | admin perm for users |
|
|
|
|
|
| scope | scope for users |
|
|
|
|
|
|
|
|
|
|
## 示例
|
|
|
|
|
|
|
|
|
|
部署 Filebrowser 并创建一个管理员账户的示例流程如下:
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2019-07-16 11:44:18 +08:00
|
|
|
|
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 示例内容如下:
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```ini
|
2019-07-16 11:44:18 +08:00
|
|
|
|
example.com {
|
|
|
|
|
proxy / 127.0.0.1:8080
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 在 Sub-directory 下进行反向代理
|
|
|
|
|
|
|
|
|
|
需要先修改 Filebrowser 配置,假设 Sub-directory 为 admin:
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2019-07-16 11:44:18 +08:00
|
|
|
|
filebrowser config set --baseurl /admin
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Caddyfile 的示例内容如下:
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```ini
|
2019-07-16 11:44:18 +08:00
|
|
|
|
example.com {
|
|
|
|
|
proxy /admin 127.0.0.1:808
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
或
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```ini
|
2019-07-16 11:44:18 +08:00
|
|
|
|
localhost:2015/admin {
|
|
|
|
|
proxy / 127.0.0.1:8080
|
|
|
|
|
}
|
|
|
|
|
```
|
2019-07-16 13:38:39 +08:00
|
|
|
|
|
|
|
|
|
## Https
|
|
|
|
|
|
|
|
|
|
Filebrowser 内建了 HTTPS 支持,只需要配置 SSL 证书即可。
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2019-07-16 13:38:39 +08:00
|
|
|
|
filebrowser config set --cert <crt> --key <key>
|
|
|
|
|
```
|