NotePublic/Software/Applications/Filebrowser/Filebrowser_的部署和使用.md

116 lines
3.4 KiB
Markdown
Raw Normal View History

2019-07-11 15:54:55 +08:00
# Filebrowser 的部署和使用
Filebrowser 是一款开源的,基于 Go 语言开发的 Web 端文件浏览器,可实现文件上传,下载等。
## 下载和安装
<https://github.com/filebrowser/filebrowser> 的 Release 中下载对应平台和系统的版本,解压即可使用。
## 部署
Filebrowser 基于数据库形式的配置文件进行工作,用户可通过 Filebrowser 命令直接操作该数据库,不需要直接与数据库打交道。可以使用 -d 参数指定数据库文件,如没有提供该参数,将使用 filebrowser 程序文件路径下的默认数据库文件,如果该数据库文件不存在则自动创建。
使用两个基本指令 config 和 users 即可完成 Filebrowser 的简单配置config 指令的用法如下:
```bash
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 指令的基本用法如下:
```bash
# 列出所有用户
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 并创建一个管理员账户的示例流程如下:
```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 <crt> --key <key>
```