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

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
IT之家
IT之家
Google DeepMind News
Google DeepMind News
罗磊的独立博客
爱范儿
爱范儿
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
U
Unit 42
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
B
Blog
博客园 - 叶小钗
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

VPS – 灰灰的交易世界

搭建一個反向代理神器:Nginx Proxy Manager – 灰灰的交易世界 project zomboid Linux服務器搭建指南 (Ubuntu/Debian) – 灰灰的交易世界 自建安全密碼庫:Bitwarden (vaultwarden) – 灰灰的交易世界 新手入門vps的一些基礎技巧 – 灰灰的交易世界
記一次Bark編譯部署過程 (含關鍵詞過濾) – 灰灰的交易世界
by 灰灰 · 2025-03-14 · via VPS – 灰灰的交易世界

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