Caddy,用Go寫的一款至關優秀的Web服務器軟件,它有很多頗有特點的功能,國內目前來講用的很少,不過也逐漸有愈來愈多的人知道了,它有個特點的插件功能,其中一款插件是FileManager,能夠相似H5ai同樣提供一個美化的Index目錄列表,可是功能更多,不只能下載,還能上傳。可是,我一直不知道這玩意居然還有個獨立版本,最近Loc有人提到,我才發現這個確實不錯。因此另外介紹一下,固然,以後也可能順便介紹一下FileRun,不過這個免費版我感受功能限制的有點多,仍是須要考慮下。git
簡單到極致,看過我博客之前那些介紹用Go寫的程序的文章的同窗確定對某個特色印象深入,那就是安裝賊雞兒方便,特別是在官方提供現成的二進制文件的狀況下,那就是下載--解壓--done。FileManager秉承了這個優勢,官方甚至不須要你本身下載對應的二進制文件,全是一鍵腳本,自動判斷環境一步到位。docker
1
2
3
4
5
6
7
|
#Linux下, 提供curl和wget兩種
curl -fsSL https://henriquedias.com/filemanager/get.sh | bash
wget -qO- https://henriquedias.com/filemanager/get.sh | bash
#Windows下, 須要以管理員運行powershell而後安裝
iwr -useb https://henriquedias.com/filemanager/get.ps1 | iex
|
刺激不刺激,固然,你在安裝了Caddy的狀況下只須要打開http.filemanager插件就好了shell
此外,如今Docker這麼火固然也少不了它數據庫
1
2
3
4
5
6
|
docker run \
-v /path/to/sites/root:/srv \
-v /path/to/config.json:/config.json \
-v /path/to/database.db:/database.db \
-p 80:80 \
hacdias/filemanager
|
這個採用的是默認配置,以下json
1
2
3
4
5
6
7
8
9
10
|
{
"port": 80,
"address": "",
"database": "/etc/database.db",
"scope": "/srv",
"allowCommands": true,
"allowEdit": true,
"allowNew": true,
"commands": []
}
|
你也能夠把配置寫到命令裏sublime-text
1
2
3
4
5
6
7
8
9
|
docker run \
-v /path/to/sites/root:/srv \
-v /path/to/database.db:/database.db \
-p 80:80 \
hacdias/filemanager
--port 80
--database /database.db
--scope /srv
--other-flag other-value
|
固然,有一點須要注意,那就是FileManager不支持SSL,因此若是須要SSL或者說想用HTTP/2加速,請換Caddy配合插件bash
下面介紹一下,FileManager的命令行參數以及配置文件服務器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
-a, --address 監聽地址,默認爲空,即爲監聽全部地址
-b, --baseurl 根地址,即爲訪問的入口地址
--prefixurl 前綴地址
-c, --config 指定配置文件
-d, --databaseis 數據庫文件地址,默認爲 「./filemanager.db」
-l, --log 顯示錯誤日誌記錄器,可爲 ‘stdout’, ‘stderr’ 或者是一個文件路徑,默認爲「stdout」
-p, --port 監聽端口,默認爲0,即爲隨機的可用端口
--staticgen 指定你是否須要啓用靜態網站生成器,可用 jekyll 以及 hugo
-v, --version 打印程序版本
--recaptcha-key ReCAPTCHA 站點 key ,配置後可在登錄處啓用ReCAPTCHA
--recaptcha-secret ReCAPTCHA 站點 secret key ,配置後可在登錄處啓用ReCAPTCHA
#下面的選項用於爲新用戶配置默認設置
--allow-commands 容許使用命令的默認值,默認爲 true
--allow-edit 容許修改設置的默認值,默認爲 true
--allow-new 容許新建設置的默認值,默認爲 true
--allow-publish 容許發佈功能,默認爲 true
--view-mode 新用戶默認查看視圖,默認爲 mosaic
--locale 新用戶默認語言,可選 en, pt, jp, zh-cn, zh-tw (英語, 葡萄牙語, 日語, 簡體中文, 繁體中文)
--commands 新用戶可用命令,以空格分隔,默認爲 「git svn hg」
--no-auth 禁用認證,啓用這個選項會將權限設置爲默認
-s, --scope 新用戶的默認目錄,默認爲工做目錄
|
下面舉個栗子方便理解,在監聽全部地址的80端口,數據庫指定爲/etc/fm.db,新用戶默承認訪問/data目錄app
1
|
filemanager --port 80 --database /etc/fm.db --scope /data
|
FileManager的配置文件支持多種寫法,分別爲JSON,YAML以及TOMLcurl
IN JSON:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
{
"port": 80,
"noAuth": false,
"baseURL": "/admin",
"address": "127.0.0.1",
"reCaptchaKey": "",
"reCaptchaSecret": "",
"database": "/path/to/database.db",
"log": "stdout",
"plugin": "",
"scope": "/path/to/my/files",
"allowCommands": true,
"allowEdit": true,
"allowNew": true,
"commands": [
"git",
"svn"
]
}
|
In YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
port: 80
baseURL: /admin
noAuth: false
address: 127.0.0.1
reCaptchaKey: ''
reCaptchaSecret: ''
database: "/path/to/database.db"
log: stdout
plugin: ''
scope: "/path/to/my/files"
allowCommands: true
allowEdit: true
allowNew: true
commands:
- git
- svn
|
In TOML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
port = 80
baseURL = /admin
address = 127.0.0.1
noAuth = false
reCaptchaKey = ''
reCaptchaSecret = ''
database = "/path/to/database.db"
log = stdout
plugin = ''
scope = "/path/to/my/files"
allowCommands = true
allowEdit = true
allowNew = true
commands = ["git", "svn"]
|
建議看哪一種順眼選哪一種,不必糾結太多,反正也不是每天改
對了,默認用戶名密碼均爲admin,其餘看下圖
這是登錄界面,所謂自建雲盤嘛,雖然不必定有啥見不得人的東西,可是仍是要上個鎖的
在用戶設置中,能夠配置ACL規則以便多人使用的狀況下防止搞事,固然自定義CSS這種東西提供了更多的可能性
支持命令操做,是否是很刺激,這樣就能玩出更