基於Caddy 搭建基於網頁的文件共享管理系統
Linux 下搭建Caddy
任務時間:10min
軟件安裝
Caddy是一個輕巧的服務器軟件(主打免費Https),本身提供了很多擴展,其中的FileBrowser
擴展可以輕鬆的構建出一個基於Web端的文件管理器,無論是當做局域網共享文件使用還是放在服務器當做私人網盤使用都是很方便的。
Caddy 的安裝十分簡單,這裡採用終端安裝的方式:
curl https://getcaddy.com | bash -s personal http.filemanager
配置文件
Caddy 的默認安裝目錄位於:/usr/local/bin/
但是為了安全起見,我們將配置文件放到用戶家目錄下:
mkdir caddy
cd caddy
新建配置文件 Caddyfile
:
vim Caddyfile
在文件中寫入以下內容:點我快速編輯
示例代碼:/home/ubuntu/caddy/Caddyfile
:8080 {
gzip
timeouts none
filemanager / / {
database /home/ubuntu/caddy/filemanager.db
}
}
以上寫法的作用是通過IP 的8080 端口訪問網頁,這個IP 既可以是公網IP 也可以是內網IP 。而具體的文件路徑可以在登錄網頁後在網站設置內手動修改,數據庫的存放目錄要靈活自己選擇。
如果想綁定域名,通過域名訪問,則可以這樣寫:
http://domain.com:80 {
... # 同 IP 写法
}
同樣的,Https 模式則是:
https://domain.com:443 {
tls /root/xxx.crt /root/xxx.key
... # 其余同 IP 写法
}
PS:簡要Vim 操作提示
q
:退出程序w
:保存文件i
:進入編輯模式:
:進入底線命令模式ESC
: 退出當前命令模式ESC
+:
+w
+q
:保存並退出VimESC
+:
+q
+!
:不保存強制退出Vim
運行軟件
接著在終端下運行命令,然後打開網站鏈接訪問內容:
caddy
http://<您的CVM IP 地址>:8080/ (此方法只使用綁定IP 方式)
默認的用戶名和密碼均為:admin
終端可能會提醒你:
WARNING: File descriptor limit 1024 is too low for production servers...
可以按照提示輸入解決(非服務器系統可以忽略):
ulimit -n 8192
接下來先Ctrl
+ C
關閉軟件,將caddy放到後台運行:
nohup caddy &
至於為什麼不使用別的方法運行Caddy (比如使用系統服務的方式):這裡的觀點是對於服務器來說,相比較而言Nginx 之類的更流行,以一個很輕量的方式執行Caddy 程序,更加簡便些。
一些有趣的嘗試:
任務時間:時間未知
Caddy With Android
大致思路為: 安裝終端軟件Termux ,然後配置Caddy 。
Termux下載鏈接:Termux – Google Play
打開Termux ,安裝一些基礎軟件:
pkg install curl vim
然後就是安裝Caddy 到手機中:
curl https://getcaddy.com | bash -s personal http.filemanager
接下來,利用vim 創建配置文件:
vim Caddyfile
在配置文件中稍作處理,如下內容:
:8080 {
filemanager / /sdcard {
database /data/data/com.termux/files/home/filemanager.db
}
timeouts none
gzip
}
最後是運行Caddy ,同樣使用nohup 命令:
nohup caddy &
瀏覽器打開127.0.0.1:8080
訪問。
Caddy – WebDAV
簡述Caddy 的WebDAV 插件。
首先停止正在運行的Caddy :
pkill caddy
接著,再正常安裝,其安裝命令為:
curl https://getcaddy.com | bash -s personal http.filemanager,http.webdav
有關WebDAV的配置參數(搬運官網):
webdav [url] {
scope path
modify [true|false]
allow path
allow_r regex
block path
block_r regex
}
url
:默認值:/
,功能上類似於域名的子文件夾。scope
:默認值:/
,WebDAV可以訪問的文件目錄。modify
:默認值:true
,是否允許編輯/修改。- 剩餘的則是具體文件訪問控制,
_r
選項允許使用正則。
配置文件同樣放在Caddyfile文件中,Caddy允許監聽多個端口,另起一行即可,相關配置文件如下:(實現的是通過IP:8899
訪問,訪問目錄/home/ubuntu
,用戶名root
,密碼toor
):
示例代碼:/home/ubuntu/caddy/Caddyfile
:8080 {
gzip
timeouts none
filemanager / / {
database /home/ubuntu/caddy/filemanager.db
}
}
:8899 {
gzip
timeouts none
basicauth / root toor
webdav {
scope /home/ubuntu
}
}
接下來就是正常的運行Caddy 了:
nohup caddy &
驗證(當前IP: <您的CVM IP 地址>):
Linux 下可以使用文件管理訪問: dav://<您的CVM IP 地址>:8899
Windows下參考:你知道Windows也能使用WebDAV嗎?
實驗結束
本實驗到此結束,感謝閱讀~