Hexo整合MemOS
前言
本文将介绍如何将MemOS整合到Hexo中,实现通过后台随时记录内容,并实时渲染至Hexo中,实现“动静结合”。
本站示例:碎笔 | 花猪
关于MemOS:MemOS 是开源的 AI 记忆管理操作系统,能为智能体和 AI 应用提供长期记忆能力。MemOS通过统一的记忆抽象层,支持多种记忆类型(如文本记忆、激活记忆、参数记忆),具备动态知识图谱、记忆调度和生命周期管理等功能。MemOS 能让 AI 系统像人类一样记住用户过往信息,在后续交互中主动调用记忆,实现更连贯、个性化的对话体验。MemOS强大的记忆调度和存储能力,解决了传统 RAG 的局限性,适用个性化助手、团队知识库等多种场景。
MemOS官网链接:智能始于记忆
操作
-
首先需要在服务器安装docker,并拉取安装MemOS镜像。在终端执行如下代码:
1
2
3
4
5docker run -d \
--name memos \
-p 5230:5230 \
-v ~/.memos/:/var/opt/memos \
neosmemo/memos:latest


注:需要开启服务器的5230端口,并确保该端口处于“空闲”状态。
可以通过
docker images命令查看是否安装成功。
-
通过
docker run neosmemo/memos命令启动MemOS服务。
-
接着访问
服务器ip:5230进入MemOS后台,并创建账户。
注意:这里是http,而非https!
-
后台提供多种设置,可以根据自己的喜好进行设置。

-
此时便可以发布帖子,可以设置该帖子的访问状态(私有/公开)。
之后如果需要将笔记内容渲染至Hexo中,则需要选择“公开”。(发布帖子后也可以随时更改状态)
至此,MemOS的搭建和使用操作就完成了,接下来就是如何将其整合至Hexo中。
-
在Hexo根目录中创建一个新的页面(命令:
hexo n page suibi):
-
编辑其中的
index.md文件(建议使用VS Code编辑器):并修改其中的
const MEMOS_API字段为:https://服务器IP(或域名)/memosapi/api/v1/memos?pageSize=20。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62---
title: 碎笔
date: 2026-03-10 13:40:08
---
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<div id="memos-container"></div>
<script>
const MEMOS_API = "https://cnhuazhu.top/memosapi/api/v1/memos?pageSize=20";
const container = document.getElementById("memos-container");
// 加载中
container.innerHTML = `<div style="text-align:center;padding:30px;color:var(--text-color);"><i class="fa-solid fa-spinner fa-spin"></i> 加载中...</div>`;
// XSS 安全转义
function escapeHtml(str) {
if (!str) return "";
return str
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
// 请求数据
fetch(MEMOS_API)
.then(res => {
if (!res.ok) throw new Error("请求失败");
return res.json();
})
.then(data => {
const list = data.memos || data || [];
if (list.length === 0) {
container.innerHTML = `<div style="text-align:center;padding:50px;color:var(--sec-text);">暂无动态</div>`;
return;
}
let html = "";
list.forEach(item => {
const time = new Date(item.createTime || item.createdTs * 1000).toLocaleString();
const content = escapeHtml(item.content)
.replace(/(#[^\s#]+)/g, `<span style="color:#49b1f5;font-weight:500;">$1</span>`);
html += `
<div style="background:var(--card-bg);border-radius:16px;padding:22px;margin-bottom:18px;box-shadow:var(--shadow);border:1px solid var(--border-color);">
<div style="font-size:0.85rem;color:var(--sec-text);margin-bottom:12px;">
<i class="fa-solid fa-clock"></i> ${time}
</div>
<div style="line-height:1.7;color:var(--text-color);">${content}</div>
</div>`;
});
container.innerHTML = html;
})
.catch(err => {
console.error(err);
container.innerHTML = `<div style="text-align:center;padding:30px;color:red;">加载失败</div>`;
});
</script> -
由于该网站添加了https,因此现在还无法正常访问,需要在conf文件中添加正确的代理。
在
/etc/nginx/sites-enabled路径下修改conf配置文件:
在server块下添加如下配置代码:
1
2
3
4
5
6
7
8location ^~ /memosapi/ {
proxy_pass http://127.0.0.1:5230/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Access-Control-Allow-Origin https://cnhuazhu.top always;
}注意调整最后一行的域名。
-
重启Nginx服务。
1
2nginx -t
systemctl restart nginx检查无误即配置完毕。
-
可以直接访问
https://域名/memosapi/api/v1/memos?pageSize=20查看是否可以正确访问。
后记
鼓捣了好几天,中间一度把服务器给搞崩掉,好在终于搞定了!在此特别感谢1nuo的教程!







