import{_ as i,o as t,c as a,ag as e}from"./chunks/framework.CAXxHpAX.js";const c=JSON.parse('{"title":"Docker 安装","description":"","frontmatter":{},"headers":[],"relativePath":"zh/installation/docker.md","filePath":"zh/installation/docker.md","lastUpdated":1777012567000}'),d={name:"zh/installation/docker.md"};function h(l,s,n,p,o,r){return t(),a("div",null,[...s[0]||(s[0]=[e(`

Docker 安装

推荐用 Docker 跑 Memoh。编排里通常包含 PostgreSQL、主服务(内嵌 Containerd、智能体也在同一进程)、以及网页前端;主机上不必单独装 containerd、nerdctl、buildkit,都在容器里。

服务结构

Compose 里有多组服务。有的默认就起,有的通过 --profile 打开:

服务Profile说明
server(核心)主服务,内嵌 Containerd,智能体同进程
web(核心)网页端(Vue 3)
postgres(核心)PostgreSQL
qdrantqdrant向量库,给记忆检索用(稀疏/稠密)
browserbrowserPlaywright 浏览器网关,给机器人上网
sparsesparse神经稀疏编码,给记忆检索(见下)

sparse 服务

sparse 容器跑神经稀疏向量,给记忆检索用。里面是一个轻量 Python(Flask)服务,端口 8085,模型是 OpenSearch 项目放出来的 opensearch-neural-sparse-encoding-multilingual-v1

它做什么:

什么时候值得开:

何时启用:

打算用内置记忆提供方的 sparse 模式时,把 sparse profile 打开。镜像构建时会预下模型,启动不用临时拉权重。

bash
docker compose --profile qdrant --profile sparse --profile browser up -d

模式细节见 内置记忆提供方

先决条件

一键安装(推荐)

官方脚本(本机已装好 Docker 与 Compose):

bash
curl -fsSL https://memoh.sh | sudo sh

脚本会:检查 Docker/Compose;交互问配置(工作区、数据目录、管理员、JWT、Postgres 密码、是否开 sparse、浏览器核等);从 GitHub 取最新发布并克隆;按 Docker 模板生成 config.toml;钉死镜像版本;按选的核编浏览器镜像并拉齐服务。

静默安装(全默认、无提问):

bash
curl -fsSL https://memoh.sh | sudo sh -s -- -y

静默时默认大概:工作区 ~/memoh;数据 ~/memoh/data;管理员 admin / admin123;JWT 随机;Postgres 密码 memoh123

指定版本:

bash
curl -fsSL https://memoh.sh | sudo sh -s -- --version v0.6.0

或:

bash
curl -fsSL https://memoh.sh | sudo MEMOH_VERSION=v0.6.0 sh

大陆镜像(拉镜像慢时):

bash
curl -fsSL https://memoh.sh | sudo USE_CN_MIRROR=true sh

环境变量可组合,例如 MEMOH_VERSION=v0.6.0 USE_CN_MIRROR=true

手动安装

bash
git clone https://github.com/memohai/Memoh.git
cd Memoh
cp conf/app.docker.toml config.toml

至少改 config.toml 里:

然后(推荐开 Qdrant、浏览器、sparse):

bash
sudo POSTGRES_PASSWORD=你的库密码 docker compose --profile qdrant --profile browser --profile sparse up -d

只跑核心(无向量、无浏览器):

bash
sudo POSTGRES_PASSWORD=你的库密码 docker compose up -d

macOS 或用户已在 docker 组里,一般不必 sudo

重要docker-compose.yml 默认挂 ./config.toml,先建好文件再 up,否则起不来。

大陆镜像源

拉 Docker Hub 困难时,在 config.toml 里取消 registry 一行的注释:

toml
[workspace]
registry = "memoh.cn"

并叠加国内 overlay:

bash
sudo docker compose -f docker-compose.yml -f docker/docker-compose.cn.yml \\
  --profile qdrant --profile browser up -d

一键脚本在 USE_CN_MIRROR=true 时会处理这套。

访问地址

起来之后:

服务地址
网页http://localhost:8082
APIhttp://localhost:8080
浏览器网关http://localhost:8083

默认登录 admin / admin123(请在 config.toml 改掉)。首次拉镜像、初始化可能要一两分钟。

配置总览

config.toml 主段落大致如下:

段落含义
[log]等级与格式(info/debugtext/json
[server]监听,默认 :8080
[admin]管理员账号
[auth]JWT 与过期时间
timezone服时区,默认 UTC
[containerd]socket 与 namespace
[workspace]镜像、快照、数据路径、CNI、可选仓库镜像
[postgres]连接串
[qdrant]Qdrant 地址、密钥、超时
[sparse]稀疏服务 URL
[registry]供应商定义目录
[browser_gateway]浏览器网关
[web]前端 host/port

常用命令

Linux 上若用户不在 docker 组,命令前加 sudo

bash
docker compose up -d           # 起
docker compose down            # 停
docker compose logs -f         # 看日志
docker compose ps              # 状态
docker compose pull && docker compose up -d  # 更新镜像再起

环境变量

变量默认说明
POSTGRES_PASSWORDmemoh123须与 config.tomlpostgres.password 一致
MEMOH_CONFIG./config.toml配置文件路径
MEMOH_VERSION最新发版要装的 git 标签,也用于钉死镜像
USE_CN_MIRRORfalse是否用大陆镜像
BROWSER_CORESchromium,firefox浏览器镜像里包含的引擎
BROWSER_TAGlatest浏览器镜像 tag
`,59)])])}const F=i(d,[["render",h]]);export{c as __pageData,F as default};