在此前的文章中,我们介绍了如何使用 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 站点内容,大幅提升信息查找效率!🚀