記一次Bark編譯部署過程 (含關鍵詞過濾)

系統: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
Posted in VPS

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *