在此前的文章中,我們介紹了如何使用 Coco Server 連接 Notion,實現智能內容檢索。本次,我們將進一步探索如何在 Coco Server 最新版本 中集成 Hugo Site,以便對 Hugo 站點 進行高效檢索。
Coco Server 部署方式
要在本地或服務器上運行 Coco Server,可以借助 Docker 進行快速部署。
1. 直接運行 Coco Server(默認配置)
執行以下命令,快速啟動 Coco Server(版本 0.2.2-2000
):
docker run -d --name cocoserver -p 9000:9000 infinilabs/coco:0.2.2-2000
此命令將在后臺運行 Coco Server,并將 9000 端口 映射到本機,以便通過 Web UI 進行訪問。
2. 啟用數據持久化(推薦)
如果希望數據在容器重啟或刪除后仍然保留,建議啟用 數據持久化,操作步驟如下:
(1)創建數據目錄并設置權限
mkdir -p $(pwd)/cocoserver/{data,logs}
sudo chown -R 602:602 $(pwd)/cocoserver
(2)啟動 Coco Server 并掛載數據目錄
docker run -d \--name cocoserver \--hostname coco-server \--restart unless-stopped \-m 4g \--cpus="2" \-p 9000:9000 \-v $(pwd)/cocoserver/data:/app/easysearch/data \-v $(pwd)/cocoserver/logs:/app/easysearch/logs \-e EASYSEARCH_INITIAL_ADMIN_PASSWORD=coco-server \-e ES_JAVA_OPTS="-Xms2g -Xmx2g" \infinilabs/coco:0.2.2-2000
這樣,所有 檢索數據 和 日志信息 都會存儲在 ./cocoserver/data
和 ./cocoserver/logs
目錄下,即使容器重啟,數據仍然可用。
3. 使用 Docker Compose 部署
如果你希望使用 docker-compose
進行更便捷的管理,可以采用以下 docker-compose.yml
文件:
version: '3.8'services:cocoserver:image: infinilabs/coco:0.2.2-2000container_name: cocoserverhostname: coco-serverrestart: unless-stoppedports:- "9000:9000"deploy:resources:limits:memory: 4gcpus: "2"volumes:- ./cocoserver/data:/app/easysearch/data- ./cocoserver/logs:/app/easysearch/logsenvironment:EASYSEARCH_INITIAL_ADMIN_PASSWORD: "coco-server"ES_JAVA_OPTS: "-Xms2g -Xmx2g"volumes:data:logs:
運行以下命令啟動 Coco Server:
docker-compose up -d
如需停止并刪除容器,可執行:
docker-compose down
如果需要同時刪除存儲數據,則執行:
docker-compose down -v
Hugo 站點智能檢索
成功部署 Coco Server 后,即可將 Hugo 站點 作為數據源進行智能檢索。
1. 添加 Hugo Site 數據源
在 Coco Server Web UI 中,進入 “數據源” 頁面,并點擊 “添加 Hugo Site”。
2. 設定 Hugo 站點 URL
以 Pizza 官網 為示例,在輸入框中填入相應的 URL 并保存。
配置完成后,Coco Server 會自動抓取 Hugo 站點的內容并進行索引。
構建自己的 Hugo 站點,并讓 Coco 進行檢索
完成 Pizza 官網的 Hugo 站點檢索測試后,我們可以創建 自己的 Hugo 站點,并讓 Coco Server 進行智能索引。
1. 安裝 Hugo
Mac
brew install hugo
Windows
scoop install hugo-extended
Linux
sudo apt install hugo
安裝完成后,可運行 hugo version
確認是否安裝成功。
2. 創建 Hugo 站點
hugo new site my-hugo-site
cd my-hugo-site
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
3. 配置 Hugo 以生成 JSON 數據
在 hugo.toml
文件中,添加 JSON 輸出 配置:
baseURL = "https://example.com/"
languageCode = "en-us"
title = "My Hugo Site"
theme = "ananke"[outputs]home = ["HTML", "JSON"]section = ["HTML", "JSON"]taxonomy = ["HTML", "JSON"]term = ["HTML", "JSON"]
4. 創建 JSON 模板
在 layouts/_default/list.json
文件中,添加以下內容:
[{{- range $index, $element := .Site.RegularPages -}}{{- if gt $index 0 }},{{ end }}{"category": {{ $element.Params.category | jsonify }},"content": {{ $element.Content | plainify | jsonify }},"created": {{ $element.Date | time.Format "2006-01-02T15:04:05Z07:00" | jsonify }},"lang": {{ $element.Lang | default "en" | jsonify }},"subcategory": {{ $element.Params.subcategory | jsonify }},"summary": {{ $element.Params.summary | jsonify }},"tags": {{ $element.Params.tags | jsonify }},"title": {{ $element.Title | jsonify }},"updated": {{ $element.Lastmod | time.Format "2006-01-02T15:04:05Z07:00" | jsonify }},"url": {{ $element.RelPermalink | jsonify }}}{{- end -}}
]
5. 運行 Hugo 并生成 JSON
hugo server -D
然后在瀏覽器訪問:
http://localhost:1313/index.json
你將看到 Hugo 站點生成的 JSON 數據,例如:
[{"title": "My First Post","content": "This is a test post...","url": "/posts/my-first-post/"}
]
6. 讓 Coco Server 索引 Hugo JSON API
在 Coco Server 數據源管理 中,輸入 Hugo 站點 JSON API 地址,例如:
http://host.docker.internal:1313/index.json
如果 Coco Server 運行在 Docker 內,而 Hugo 站點 運行在本機,則 localhost
訪問可能會失效,此時應使用 host.docker.internal
訪問宿主機。
添加成功后,Coco Server 會自動抓取并解析 Hugo 站點數據,實現智能檢索。
總結
通過本指南,我們已成功完成:
? 部署 Coco Server(支持 Docker / Docker Compose)
? 添加 Hugo Site 作為數據源
? 配置 Hugo 站點,生成 JSON API
? 讓 Coco Server 索引 Hugo 站點,實現智能檢索
現在,我們可以使用 Coco AI 高效檢索 Hugo 站點內容,大幅提升信息查找效率!🚀