惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
Jina AI
Jina AI
博客园 - 叶小钗
雷峰网
雷峰网
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
量子位

灰灰 – 灰灰的交易世界

如何成神 – 灰灰的交易世界 《不被支配》反PUA指南 – 灰灰的交易世界 錢的千年興衰史 – 灰灰的交易世界 你想從生命中得到什麽? – 灰灰的交易世界 搭建一個反向代理神器:Nginx Proxy Manager – 灰灰的交易世界 交易最簡單的事 – 灰灰的交易世界 你的決策真的是理性的嗎? – 灰灰的交易世界 正確跟女生聊天的四大核心 – 灰灰的交易世界 project zomboid Linux服務器搭建指南 (Ubuntu/Debian) – 灰灰的交易世界
記一次Bark編譯部署過程 (含關鍵詞過濾) – 灰灰的交易世界
by 灰灰 · 2025-03-14 · via 灰灰 – 灰灰的交易世界

系統: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