系統:Debian
1. 更新系統並安裝必要的依賴:
sudo apt update && sudo apt upgrade -y
sudo apt install -y git build-essential curl
git: 用於下載源代碼。
build-essential: 提供編譯所需的工具(如 gcc、make 等)。
curl: 用於下載文件或檢查網絡資源。
2. 安裝 Go 語言環境
bark-server 是用 Go 語言編寫的,因此需要安裝 Go 編譯環境。
curl -LO https://go.dev/dl/go1.21.7.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.7.linux-amd64.tar.gz
設置 Go 環境變量,將以下內容添加到你的 ~/.bashrc 或 ~/.zshrc 文件中:
export PATH=PATH:/usr/local/go/bin
export GOPATH=HOME/go
應用環境變量:
source ~/.bashrc
驗證 Go 是否安裝成功:
go version
如果顯示類似 go version go1.21.7 linux/amd64,則說明 Go 已成功安裝。
3. 下載 bark-server 源代碼
bark-server 的源代碼托管在 GitHub 上。使用以下命令克隆項目:
git clone https://github.com/Finb/bark-server.git
cd bark-server
4. 編譯 bark-server
在 bark-server 目錄中,運行以下命令以編譯源代碼:
go build -o bark-server
這將生成一個名為 bark-server 的可執行文件。
如果遇到錯誤,請檢查是否缺少依賴包,可以運行以下命令自動下載依賴:
go mod tidy
5. 測試運行 bark-server
為bark-server新增可執行權限:
chmod +x bark-server
編譯完成後,可以直接運行 bark-server 進行測試:
./bark-server
默認情況下,bark-server 會監聽 8080 端口。
訪問 http://ip:8080/
正常情況下,瀏覽器會返回 ok
6.添加過濾器中間件
先謝謝大佬 Chao 提供的中間件代碼
修改 router.go
nano router.go
在以下文字的下方添加如下代碼:
// register new route with key name
// key name is used to eliminate duplicate routes
// key name not case sensitive
// BlockRSSHubMiddleware 过滤 "rsshub://" 的中间件
func BlockRSSHubMiddleware(c *fiber.Ctx) error {
IllegalCharacter := "改成你想過濾的關鍵詞"
// 检查 URL
if strings.Contains(c.OriginalURL(), IllegalCharacter) {
return c.JSON(failed(200, "字符非法"))
}
// 检查请求 Body
if c.Method() == fiber.MethodPost {
body := c.Body()
if strings.Contains(string(body), IllegalCharacter) {
return c.JSON(failed(200, "字符非法"))
}
}
// 继续处理请求
return c.Next()
}
然後在router.Use(fiberrecover.New())下方注冊一下,添加這行代碼:
router.Use(BlockRSSHubMiddleware)
然後保存退出,重新編譯
go build -o bark-server
7. 持久化運行
為了長期運行 bark-server,我個人習慣使用TMUX
apt install tmux
tmux
cd bark-server
./bark-server --addr 0.0.0.0:8080 --data ./bark-data