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

推荐订阅源

S
Schneier on Security
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
D
DataBreaches.Net
F
Full Disclosure
腾讯CDC
博客园 - 【当耐特】
MyScale Blog
MyScale Blog
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
The Register - Security
The Register - Security
WordPress大学
WordPress大学
博客园 - 聂微东
雷峰网
雷峰网
J
Java Code Geeks
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
A
Arctic Wolf
Scott Helme
Scott Helme
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
G
Google Developers Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CERT Recently Published Vulnerability Notes
O
OpenAI News
Project Zero
Project Zero
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
P
Palo Alto Networks Blog
Schneier on Security
Schneier on Security

灰灰 – 灰灰的交易世界

如何成神 – 灰灰的交易世界 《不被支配》反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