This commit is contained in:
HoneyBBQ
2026-02-26 12:21:05 +00:00
parent 31188f120e
commit a9f2e5cfd9
48 changed files with 184 additions and 190 deletions
+2 -2
View File
@@ -9,7 +9,7 @@
<link rel="preload stylesheet" href="/assets/style.BPi_7-V7.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.D-Qg-UCv.js"></script>
<script type="module" src="/assets/app.CD9R37In.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="icon" href="/logo.png">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -17,7 +17,7 @@
</head>
<body>
<div id="app"></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BJygOlxN\",\"installation_docker.md\":\"Cmz-MLJu\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BasYU7hp\",\"installation_docker.md\":\"Ce3JA8xc\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>
@@ -1 +1 @@
import{t as p}from"./chunks/theme.g0QZU-ka.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.ePeAWSvT.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
import{t as p}from"./chunks/theme.Dzd8uadc.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.ePeAWSvT.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{_ as s,o as a,c as e,ag as i}from"./chunks/framework.ePeAWSvT.js";const k=JSON.parse('{"title":"config.toml Reference","description":"","frontmatter":{},"headers":[],"relativePath":"installation/config-toml.md","filePath":"installation/config-toml.md","lastUpdated":1771874735000}'),d={name:"installation/config-toml.md"};function n(o,t,h,r,l,p){return a(),e("div",null,[...t[0]||(t[0]=[i("",30)])])}const E=s(d,[["render",n]]);export{k as __pageData,E as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{_ as s,o as e,c as a,ag as i}from"./chunks/framework.ePeAWSvT.js";const k=JSON.parse('{"title":"config.toml Reference","description":"","frontmatter":{},"headers":[],"relativePath":"installation/config-toml.md","filePath":"installation/config-toml.md","lastUpdated":1772108429000}'),d={name:"installation/config-toml.md"};function n(o,t,r,h,l,c){return e(),a("div",null,[...t[0]||(t[0]=[i("",27)])])}const E=s(d,[["render",n]]);export{k as __pageData,E as default};
+10
View File
@@ -0,0 +1,10 @@
import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.ePeAWSvT.js";const c=JSON.parse('{"title":"Docker Installation","description":"","frontmatter":{},"headers":[],"relativePath":"installation/docker.md","filePath":"installation/docker.md","lastUpdated":1772108429000}'),n={name:"installation/docker.md"};function l(o,s,h,r,p,d){return a(),e("div",null,[...s[0]||(s[0]=[t(`<h1 id="docker-installation" tabindex="-1">Docker Installation <a class="header-anchor" href="#docker-installation" aria-label="Permalink to &quot;Docker Installation&quot;"></a></h1><p>Docker is the recommended way to run Memoh. The stack includes PostgreSQL, Qdrant, the main server (with embedded Containerd), agent gateway, and web UI — all orchestrated via Docker Compose. You do not need to install containerd, nerdctl, or buildkit on your host; everything runs inside containers.</p><h2 id="prerequisites" tabindex="-1">Prerequisites <a class="header-anchor" href="#prerequisites" aria-label="Permalink to &quot;Prerequisites&quot;"></a></h2><ul><li><a href="https://docs.docker.com/get-docker/" target="_blank" rel="noreferrer">Docker</a></li><li><a href="https://docs.docker.com/compose/install/" target="_blank" rel="noreferrer">Docker Compose v2</a></li><li>Git</li></ul><h2 id="one-click-install-recommended" tabindex="-1">One-Click Install (Recommended) <a class="header-anchor" href="#one-click-install-recommended" aria-label="Permalink to &quot;One-Click Install (Recommended)&quot;"></a></h2><p>Run the official install script (requires Docker and Docker Compose):</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsSL</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://memoh.sh</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> sh</span></span></code></pre></div><p>The script will:</p><ol><li>Check for Docker and Docker Compose</li><li>Prompt for configuration (workspace, data directory, admin credentials, JWT secret, Postgres password, China mirror)</li><li>Clone the repository</li><li>Generate <code>config.toml</code> from the Docker template with your settings</li><li>Pull images and start all services</li></ol><p><strong>Silent install</strong> (use all defaults, no prompts):</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsSL</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://memoh.sh</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -s</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span></span></code></pre></div><p>Defaults when running silently:</p><ul><li>Workspace: <code>~/memoh</code></li><li>Data directory: <code>~/memoh/data</code></li><li>Admin: <code>admin</code> / <code>admin123</code></li><li>JWT secret: auto-generated</li><li>Postgres password: <code>memoh123</code></li></ul><h2 id="manual-install" tabindex="-1">Manual Install <a class="header-anchor" href="#manual-install" aria-label="Permalink to &quot;Manual Install&quot;"></a></h2><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> clone</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://github.com/memohai/Memoh.git</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Memoh</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> conf/app.docker.toml</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config.toml</span></span></code></pre></div><p>Edit <code>config.toml</code> at minimum change:</p><ul><li><code>admin.password</code> Admin password</li><li><code>auth.jwt_secret</code> Generate with <code>openssl rand -base64 32</code></li><li><code>postgres.password</code> Database password (also set <code>POSTGRES_PASSWORD</code> env var to match)</li></ul><p>Then start:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> POSTGRES_PASSWORD=your-db-password</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span></span></code></pre></div><blockquote><p>On macOS or if your user is in the <code>docker</code> group, <code>sudo</code> is not required.</p></blockquote><blockquote><p><strong>Important</strong>: <code>docker-compose.yml</code> mounts <code>./config.toml</code> by default. You must create this file before starting running without it will fail.</p></blockquote><h3 id="china-mainland-mirror" tabindex="-1">China Mainland Mirror <a class="header-anchor" href="#china-mainland-mirror" aria-label="Permalink to &quot;China Mainland Mirror&quot;"></a></h3><p>For users in mainland China who cannot access Docker Hub directly, uncomment the <code>registry</code> line in <code>config.toml</code>:</p><div class="language-toml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">toml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">mcp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">registry = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;memoh.cn&quot;</span></span></code></pre></div><p>And use the China mirror compose overlay:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker-compose.yml</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker/docker-compose.cn.yml</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span></span></code></pre></div><p>The install script handles this automatically when you answer &quot;yes&quot; to the China mirror prompt.</p><h2 id="access-points" tabindex="-1">Access Points <a class="header-anchor" href="#access-points" aria-label="Permalink to &quot;Access Points&quot;"></a></h2><p>After startup:</p><table tabindex="0"><thead><tr><th>Service</th><th>URL</th></tr></thead><tbody><tr><td>Web UI</td><td><a href="http://localhost:8082" target="_blank" rel="noreferrer">http://localhost:8082</a></td></tr><tr><td>API</td><td><a href="http://localhost:8080" target="_blank" rel="noreferrer">http://localhost:8080</a></td></tr><tr><td>Agent Gateway</td><td><a href="http://localhost:8081" target="_blank" rel="noreferrer">http://localhost:8081</a></td></tr></tbody></table><p>Default login: <code>admin</code> / <code>admin123</code> (change this in <code>config.toml</code>).</p><p>First startup may take 12 minutes while images are pulled and services initialize.</p><h2 id="common-commands" tabindex="-1">Common Commands <a class="header-anchor" href="#common-commands" aria-label="Permalink to &quot;Common Commands&quot;"></a></h2><blockquote><p>Prefix with <code>sudo</code> on Linux if your user is not in the <code>docker</code> group.</p></blockquote><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Start</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> down</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Stop</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> logs</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -f</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # View logs</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ps</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Status</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> pull</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &amp;&amp; </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Update to latest images</span></span></code></pre></div><h2 id="production-checklist" tabindex="-1">Production Checklist <a class="header-anchor" href="#production-checklist" aria-label="Permalink to &quot;Production Checklist&quot;"></a></h2><ol><li><strong>Passwords</strong> Change all default passwords and secrets in <code>config.toml</code></li><li><strong>HTTPS</strong> Configure SSL (e.g. via <code>docker-compose.override.yml</code> with certs or a reverse proxy)</li><li><strong>Firewall</strong> Restrict access to necessary ports</li><li><strong>Resource limits</strong> Set memory/CPU limits for containers</li><li><strong>Backups</strong> Regular backups of Postgres and Qdrant data</li></ol><h2 id="troubleshooting" tabindex="-1">Troubleshooting <a class="header-anchor" href="#troubleshooting" aria-label="Permalink to &quot;Troubleshooting&quot;"></a></h2><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> logs</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> server</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # View main service logs</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Validate configuration</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-cache</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &amp;&amp; </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Full rebuild</span></span></code></pre></div><h2 id="security-warnings" tabindex="-1">Security Warnings <a class="header-anchor" href="#security-warnings" aria-label="Permalink to &quot;Security Warnings&quot;"></a></h2><ul><li>The main service runs with privileged container access only run in trusted environments</li><li>You must change all default passwords and secrets before production use</li><li>Use HTTPS in production</li></ul>`,41)])])}const g=i(n,[["render",l]]);export{c as __pageData,g as default};
@@ -1 +1 @@
import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.ePeAWSvT.js";const c=JSON.parse('{"title":"Docker Installation","description":"","frontmatter":{},"headers":[],"relativePath":"installation/docker.md","filePath":"installation/docker.md","lastUpdated":1772006186000}'),n={name:"installation/docker.md"};function l(o,s,h,r,p,d){return a(),e("div",null,[...s[0]||(s[0]=[t("",40)])])}const g=i(n,[["render",l]]);export{c as __pageData,g as default};
import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.ePeAWSvT.js";const c=JSON.parse('{"title":"Docker Installation","description":"","frontmatter":{},"headers":[],"relativePath":"installation/docker.md","filePath":"installation/docker.md","lastUpdated":1772108429000}'),n={name:"installation/docker.md"};function l(o,s,h,r,p,d){return a(),e("div",null,[...s[0]||(s[0]=[t("",41)])])}const g=i(n,[["render",l]]);export{c as __pageData,g as default};
-11
View File
@@ -1,11 +0,0 @@
import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.ePeAWSvT.js";const c=JSON.parse('{"title":"Docker Installation","description":"","frontmatter":{},"headers":[],"relativePath":"installation/docker.md","filePath":"installation/docker.md","lastUpdated":1772006186000}'),n={name:"installation/docker.md"};function l(o,s,h,r,p,d){return a(),e("div",null,[...s[0]||(s[0]=[t(`<h1 id="docker-installation" tabindex="-1">Docker Installation <a class="header-anchor" href="#docker-installation" aria-label="Permalink to &quot;Docker Installation&quot;"></a></h1><p>Docker is the recommended way to run Memoh. The stack includes PostgreSQL, Qdrant, Containerd, the main server, agent gateway, and web UI — all orchestrated via Docker Compose. You do not need to install containerd, nerdctl, or buildkit on your host; everything runs inside containers.</p><h2 id="prerequisites" tabindex="-1">Prerequisites <a class="header-anchor" href="#prerequisites" aria-label="Permalink to &quot;Prerequisites&quot;"></a></h2><ul><li><a href="https://docs.docker.com/get-docker/" target="_blank" rel="noreferrer">Docker</a></li><li><a href="https://docs.docker.com/compose/install/" target="_blank" rel="noreferrer">Docker Compose v2</a></li><li>Git</li></ul><h2 id="one-click-install" tabindex="-1">One-Click Install <a class="header-anchor" href="#one-click-install" aria-label="Permalink to &quot;One-Click Install&quot;"></a></h2><p>Run the official install script (requires Docker and Docker Compose):</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsSL</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://memoh.sh</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> sh</span></span></code></pre></div><p>The script will:</p><ol><li>Check for Docker and Docker Compose</li><li>Prompt for configuration (workspace, data directory, admin credentials, JWT secret, Postgres password)</li><li>Clone the repository</li><li>Generate <code>config.toml</code> from the Docker template</li><li>Start all services with <code>docker compose up -d --build</code></li></ol><p><strong>Silent install</strong> (use all defaults, no prompts):</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsSL</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://memoh.sh</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -s</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span></span></code></pre></div><p>Defaults when running silently:</p><ul><li>Workspace: <code>~/memoh</code></li><li>Data directory: <code>~/memoh/data</code></li><li>Admin: <code>admin</code> / <code>admin123</code></li><li>JWT secret: auto-generated</li><li>Postgres password: <code>memoh123</code></li></ul><h2 id="manual-install" tabindex="-1">Manual Install <a class="header-anchor" href="#manual-install" aria-label="Permalink to &quot;Manual Install&quot;"></a></h2><p>Clone the repository and start with Docker Compose:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> clone</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://github.com/memohai/Memoh.git</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> Memoh</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span></span></code></pre></div><blockquote><p>On macOS or if your user is in the <code>docker</code> group, <code>sudo</code> is not required.</p></blockquote><p>By default, Docker Compose uses <code>conf/app.docker.toml</code>. No config file in the project root is mounted only this built-in config is used. See <a href="./config-toml.html">config.toml reference</a> for all configuration fields.</p><h2 id="access-points" tabindex="-1">Access Points <a class="header-anchor" href="#access-points" aria-label="Permalink to &quot;Access Points&quot;"></a></h2><p>After startup:</p><table tabindex="0"><thead><tr><th>Service</th><th>URL</th></tr></thead><tbody><tr><td>Web UI</td><td><a href="http://localhost:8082" target="_blank" rel="noreferrer">http://localhost:8082</a></td></tr><tr><td>API</td><td><a href="http://localhost:8080" target="_blank" rel="noreferrer">http://localhost:8080</a></td></tr><tr><td>Agent Gateway</td><td><a href="http://localhost:8081" target="_blank" rel="noreferrer">http://localhost:8081</a></td></tr></tbody></table><p>Default login: <code>admin</code> / <code>admin123</code></p><p>First startup may take 12 minutes while images build and services initialize.</p><h2 id="custom-configuration" tabindex="-1">Custom Configuration <a class="header-anchor" href="#custom-configuration" aria-label="Permalink to &quot;Custom Configuration&quot;"></a></h2><p>To use your own config file:</p><ol><li>Copy the Docker config template and edit it. See <a href="./config-toml.html">config.toml reference</a> for field descriptions:</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> conf/app.docker.toml</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config.toml</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">nano</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config.toml</span></span></code></pre></div><ol start="2"><li>Point <code>MEMOH_CONFIG</code> at your config when starting (path is on the host; run <code>docker compose</code> from the project root):</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> MEMOH_CONFIG=./config.toml</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span></span></code></pre></div><p><strong>Recommended changes for production</strong> (see <a href="./config-toml.html">config.toml reference</a> for details):</p><ul><li><code>admin.password</code> Change the admin password</li><li><code>auth.jwt_secret</code> Generate with <code>openssl rand -base64 32</code></li><li><code>postgres.password</code> Change the database password (and set <code>POSTGRES_PASSWORD</code> when running <code>docker compose</code>)</li></ul><h2 id="common-commands" tabindex="-1">Common Commands <a class="header-anchor" href="#common-commands" aria-label="Permalink to &quot;Common Commands&quot;"></a></h2><blockquote><p>Prefix with <code>sudo</code> on Linux if your user is not in the <code>docker</code> group.</p></blockquote><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Start</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> down</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Stop</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> logs</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -f</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # View logs</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ps</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Status</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Rebuild and restart</span></span></code></pre></div><h2 id="production-checklist" tabindex="-1">Production Checklist <a class="header-anchor" href="#production-checklist" aria-label="Permalink to &quot;Production Checklist&quot;"></a></h2><ol><li><strong>HTTPS</strong> Configure SSL (e.g. via <code>docker-compose.override.yml</code> with certs)</li><li><strong>Passwords</strong> Change all default passwords and secrets</li><li><strong>Firewall</strong> Restrict access to necessary ports</li><li><strong>Resource limits</strong> Set memory/CPU limits for containers</li><li><strong>Backups</strong> Regular backups of Postgres and Qdrant data</li></ol><h2 id="troubleshooting" tabindex="-1">Troubleshooting <a class="header-anchor" href="#troubleshooting" aria-label="Permalink to &quot;Troubleshooting&quot;"></a></h2><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> logs</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> server</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # View main service logs</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> logs</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containerd</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # View containerd logs</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Validate configuration</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-cache</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &amp;&amp; </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # Full rebuild</span></span></code></pre></div><h2 id="security-warnings" tabindex="-1">Security Warnings <a class="header-anchor" href="#security-warnings" aria-label="Permalink to &quot;Security Warnings&quot;"></a></h2><ul><li>The main service runs with privileged container access only run in trusted environments</li><li>You must change all default passwords and secrets before production use</li><li>Use HTTPS in production</li></ul>`,40)])])}const g=i(n,[["render",l]]);export{c as __pageData,g as default};
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -9,9 +9,9 @@
<link rel="preload stylesheet" href="/assets/style.BPi_7-V7.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.D-Qg-UCv.js"></script>
<script type="module" src="/assets/app.CD9R37In.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.g0QZU-ka.js">
<link rel="modulepreload" href="/assets/chunks/theme.Dzd8uadc.js">
<link rel="modulepreload" href="/assets/chunks/framework.ePeAWSvT.js">
<link rel="modulepreload" href="/assets/cli_config.md.B8bSu8j2.lean.js">
<link rel="icon" href="/logo.png">
@@ -23,7 +23,7 @@
<span class="line"><span>port = 8080</span></span></code></pre></div><h2 id="config-set" tabindex="-1">config set <a class="header-anchor" href="#config-set" aria-label="Permalink to &quot;config set&quot;"></a></h2><p>Update the config. Prompts for host and port if not provided via options.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--host &lt;host&gt;</code></td><td>API host (e.g. <code>127.0.0.1</code> or <code>api.example.com</code>)</td></tr><tr><td><code>--port &lt;port&gt;</code></td><td>API port (default: 8080)</td></tr></tbody></table><p>Examples:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --host</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 192.168.1.100</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --port</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 8080</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Interactive prompts for host and port</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-a98d3285 data-v-cd4d56d3><!--[--><!--]--><div class="edit-info" data-v-cd4d56d3><div class="edit-link" data-v-cd4d56d3><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/cli/config.md" target="_blank" rel="noreferrer" data-v-cd4d56d3><!--[--><span class="vpi-square-pen edit-link-icon" data-v-cd4d56d3></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-cd4d56d3><p class="VPLastUpdated" data-v-cd4d56d3 data-v-868b2e6d>Last Updated: <time datetime="2026-02-15T13:20:22.000Z" data-v-868b2e6d></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-cd4d56d3><span class="visually-hidden" id="doc-footer-aria-label" data-v-cd4d56d3>Pager</span><div class="pager" data-v-cd4d56d3><!----></div><div class="pager" data-v-cd4d56d3><a class="VPLink link pager-link next" href="/index.html" data-v-cd4d56d3><!--[--><span class="desc" data-v-cd4d56d3>Next page</span><span class="title" data-v-cd4d56d3>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-0b622e3d data-v-7ace51a1><div class="container" data-v-7ace51a1><p class="message" data-v-7ace51a1>Published under AGPLv3</p><p class="copyright" data-v-7ace51a1>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BJygOlxN\",\"installation_docker.md\":\"Cmz-MLJu\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BasYU7hp\",\"installation_docker.md\":\"Ce3JA8xc\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>
+3 -3
View File
@@ -9,9 +9,9 @@
<link rel="preload stylesheet" href="/assets/style.BPi_7-V7.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.D-Qg-UCv.js"></script>
<script type="module" src="/assets/app.CD9R37In.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.g0QZU-ka.js">
<link rel="modulepreload" href="/assets/chunks/theme.Dzd8uadc.js">
<link rel="modulepreload" href="/assets/chunks/framework.ePeAWSvT.js">
<link rel="modulepreload" href="/assets/cli_index.md.CZsWbIpX.lean.js">
<link rel="icon" href="/logo.png">
@@ -26,7 +26,7 @@
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> link</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --global</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --help</span></span></code></pre></div><p>Ensure your Memoh server is running (see <a href="/installation/docker.html">Docker installation</a>) and the API is reachable at the configured host/port (default: <code>127.0.0.1:8080</code>).</p><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to &quot;Configuration&quot;"></a></h2><p>The CLI stores config in <code>~/.memoh/config.toml</code> and auth token in <code>~/.memoh/token.json</code>. Use <code>memoh config</code> to view and <code>memoh config set</code> to change host/port.</p><h2 id="commands" tabindex="-1">Commands <a class="header-anchor" href="#commands" aria-label="Permalink to &quot;Commands&quot;"></a></h2><table tabindex="0"><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td><a href="./auth.html#login">login</a></td><td>Log in to the Memoh server</td></tr><tr><td><a href="./auth.html#logout">logout</a></td><td>Log out and clear token</td></tr><tr><td><a href="./auth.html#whoami">whoami</a></td><td>Show current user</td></tr><tr><td><a href="./config.html">config</a></td><td>Show or update CLI config (host, port)</td></tr><tr><td><a href="./provider.html">provider</a></td><td>List, create, delete LLM providers</td></tr><tr><td><a href="./model.html">model</a></td><td>List, create, delete models</td></tr><tr><td><a href="./bot.html">bot</a></td><td>List, create, update, delete bots; chat; set model</td></tr><tr><td><a href="./channel.html">channel</a></td><td>List channels; get/set bot channel config; get/set user binding</td></tr><tr><td><a href="./schedule.html">schedule</a></td><td>List, create, update, toggle, delete bot schedules</td></tr><tr><td><a href="./chat.html">chat</a></td><td>Interactive chat with a bot (default command)</td></tr><tr><td><a href="./chat.html#tui">tui</a></td><td>Terminal UI chat session</td></tr><tr><td><a href="./chat.html#version">version</a></td><td>Show CLI version</td></tr></tbody></table><p>Most commands require authentication. Run <code>memoh login</code> first.</p></div></div></main><footer class="VPDocFooter" data-v-a98d3285 data-v-cd4d56d3><!--[--><!--]--><div class="edit-info" data-v-cd4d56d3><div class="edit-link" data-v-cd4d56d3><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/cli/index.md" target="_blank" rel="noreferrer" data-v-cd4d56d3><!--[--><span class="vpi-square-pen edit-link-icon" data-v-cd4d56d3></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-cd4d56d3><p class="VPLastUpdated" data-v-cd4d56d3 data-v-868b2e6d>Last Updated: <time datetime="2026-02-15T13:20:22.000Z" data-v-868b2e6d></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-cd4d56d3><span class="visually-hidden" id="doc-footer-aria-label" data-v-cd4d56d3>Pager</span><div class="pager" data-v-cd4d56d3><!----></div><div class="pager" data-v-cd4d56d3><a class="VPLink link pager-link next" href="/index.html" data-v-cd4d56d3><!--[--><span class="desc" data-v-cd4d56d3>Next page</span><span class="title" data-v-cd4d56d3>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-0b622e3d data-v-7ace51a1><div class="container" data-v-7ace51a1><p class="message" data-v-7ace51a1>Published under AGPLv3</p><p class="copyright" data-v-7ace51a1>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BJygOlxN\",\"installation_docker.md\":\"Cmz-MLJu\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BasYU7hp\",\"installation_docker.md\":\"Ce3JA8xc\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>
+3 -3
View File
@@ -9,9 +9,9 @@
<link rel="preload stylesheet" href="/assets/style.BPi_7-V7.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.D-Qg-UCv.js"></script>
<script type="module" src="/assets/app.CD9R37In.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.g0QZU-ka.js">
<link rel="modulepreload" href="/assets/chunks/theme.Dzd8uadc.js">
<link rel="modulepreload" href="/assets/chunks/framework.ePeAWSvT.js">
<link rel="modulepreload" href="/assets/cli_model.md.DjdZHTvQ.lean.js">
<link rel="icon" href="/logo.png">
@@ -23,7 +23,7 @@
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model_id</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> text-embedding-3-small</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openai</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --client_type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> openai-completions</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> embedding</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dimensions</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 1536</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Interactive prompts</span></span></code></pre></div><h2 id="model-delete" tabindex="-1">model delete <a class="header-anchor" href="#model-delete" aria-label="Permalink to &quot;model delete&quot;"></a></h2><p>Delete a model by model ID.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">model_i</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">d</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span></span></code></pre></div><p>Example:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> gpt-4</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-a98d3285 data-v-cd4d56d3><!--[--><!--]--><div class="edit-info" data-v-cd4d56d3><div class="edit-link" data-v-cd4d56d3><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/cli/model.md" target="_blank" rel="noreferrer" data-v-cd4d56d3><!--[--><span class="vpi-square-pen edit-link-icon" data-v-cd4d56d3></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-cd4d56d3><p class="VPLastUpdated" data-v-cd4d56d3 data-v-868b2e6d>Last Updated: <time datetime="2026-02-18T10:30:27.000Z" data-v-868b2e6d></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-cd4d56d3><span class="visually-hidden" id="doc-footer-aria-label" data-v-cd4d56d3>Pager</span><div class="pager" data-v-cd4d56d3><!----></div><div class="pager" data-v-cd4d56d3><a class="VPLink link pager-link next" href="/index.html" data-v-cd4d56d3><!--[--><span class="desc" data-v-cd4d56d3>Next page</span><span class="title" data-v-cd4d56d3>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-0b622e3d data-v-7ace51a1><div class="container" data-v-7ace51a1><p class="message" data-v-7ace51a1>Published under AGPLv3</p><p class="copyright" data-v-7ace51a1>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BJygOlxN\",\"installation_docker.md\":\"Cmz-MLJu\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BasYU7hp\",\"installation_docker.md\":\"Ce3JA8xc\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>
+3 -3
View File
@@ -9,9 +9,9 @@
<link rel="preload stylesheet" href="/assets/style.BPi_7-V7.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.D-Qg-UCv.js"></script>
<script type="module" src="/assets/app.CD9R37In.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.g0QZU-ka.js">
<link rel="modulepreload" href="/assets/chunks/theme.Dzd8uadc.js">
<link rel="modulepreload" href="/assets/chunks/framework.ePeAWSvT.js">
<link rel="modulepreload" href="/assets/cli_provider.md.D1oztYQ9.lean.js">
<link rel="icon" href="/logo.png">
@@ -23,7 +23,7 @@
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openai</span></span></code></pre></div><h2 id="provider-create" tabindex="-1">provider create <a class="header-anchor" href="#provider-create" aria-label="Permalink to &quot;provider create&quot;"></a></h2><p>Create a new provider. Prompts for any missing fields.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [options]</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>--name &lt;name&gt;</code></td><td>Provider name</td></tr><tr><td><code>--base_url &lt;url&gt;</code></td><td>Base URL for the API</td></tr><tr><td><code>--api_key &lt;key&gt;</code></td><td>API key</td></tr></tbody></table><p>Examples:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-ollama</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --base_url</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://localhost:11434/v1</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> create</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Interactive prompts</span></span></code></pre></div><h2 id="provider-delete" tabindex="-1">provider delete <a class="header-anchor" href="#provider-delete" aria-label="Permalink to &quot;provider delete&quot;"></a></h2><p>Delete a provider by name.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">nam</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">e</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span></span></code></pre></div><p>Example:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">memoh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> delete</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --provider</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-ollama</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-a98d3285 data-v-cd4d56d3><!--[--><!--]--><div class="edit-info" data-v-cd4d56d3><div class="edit-link" data-v-cd4d56d3><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/cli/provider.md" target="_blank" rel="noreferrer" data-v-cd4d56d3><!--[--><span class="vpi-square-pen edit-link-icon" data-v-cd4d56d3></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-cd4d56d3><p class="VPLastUpdated" data-v-cd4d56d3 data-v-868b2e6d>Last Updated: <time datetime="2026-02-18T10:30:27.000Z" data-v-868b2e6d></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-cd4d56d3><span class="visually-hidden" id="doc-footer-aria-label" data-v-cd4d56d3>Pager</span><div class="pager" data-v-cd4d56d3><!----></div><div class="pager" data-v-cd4d56d3><a class="VPLink link pager-link next" href="/index.html" data-v-cd4d56d3><!--[--><span class="desc" data-v-cd4d56d3>Next page</span><span class="title" data-v-cd4d56d3>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-0b622e3d data-v-7ace51a1><div class="container" data-v-7ace51a1><p class="message" data-v-7ace51a1>Published under AGPLv3</p><p class="copyright" data-v-7ace51a1>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BJygOlxN\",\"installation_docker.md\":\"Cmz-MLJu\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BasYU7hp\",\"installation_docker.md\":\"Ce3JA8xc\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>
+3 -3
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"blogs_2026-02-16.md":"CVgn4GCU","blogs_index.md":"DyCOc_Zm","cli_auth.md":"C8ws3CHD","cli_bot.md":"BnhEB6FG","cli_channel.md":"BBEJiWrG","cli_chat.md":"Cr9VFV7R","cli_config.md":"B8bSu8j2","cli_index.md":"CZsWbIpX","cli_model.md":"DjdZHTvQ","cli_provider.md":"D1oztYQ9","cli_schedule.md":"D2s8Q1KC","concepts_bot.md":"C_C3siLW","concepts_channel.md":"DdS-uyu8","concepts_container.md":"Djausou_","concepts_conversation-and-history.md":"BS_PnG4v","concepts_index.md":"Ci6EwNPX","concepts_mcp.md":"B9KnE-R7","concepts_memory.md":"BgBEcLnX","concepts_provider-and-model.md":"DQq3j0ql","concepts_schedule.md":"COs_2DXO","concepts_skills.md":"HeUi2diL","concepts_subagents.md":"C0_bz0wW","getting-started.md":"C9lgqnN0","getting-started_create-bot.md":"Da6WTI-u","getting-started_platform-telegram.md":"BlTohjMj","getting-started_provider-and-model.md":"hf8EhYPV","index.md":"BXBUN2vU","installation_config-toml.md":"BJygOlxN","installation_docker.md":"Cmz-MLJu","troubleshooting.md":"rkMlAGoL","zh_concepts_identity-and-binding.md":"B6I6pSqI","zh_concepts_index.md":"uaZIblvt","zh_index.md":"DbGu2QT1","zh_style_terminology.md":"C89A7q1C"}
{"blogs_2026-02-16.md":"CVgn4GCU","blogs_index.md":"DyCOc_Zm","cli_auth.md":"C8ws3CHD","cli_bot.md":"BnhEB6FG","cli_channel.md":"BBEJiWrG","cli_chat.md":"Cr9VFV7R","cli_config.md":"B8bSu8j2","cli_index.md":"CZsWbIpX","cli_model.md":"DjdZHTvQ","cli_provider.md":"D1oztYQ9","cli_schedule.md":"D2s8Q1KC","concepts_bot.md":"C_C3siLW","concepts_channel.md":"DdS-uyu8","concepts_container.md":"Djausou_","concepts_conversation-and-history.md":"BS_PnG4v","concepts_index.md":"Ci6EwNPX","concepts_mcp.md":"B9KnE-R7","concepts_memory.md":"BgBEcLnX","concepts_provider-and-model.md":"DQq3j0ql","concepts_schedule.md":"COs_2DXO","concepts_skills.md":"HeUi2diL","concepts_subagents.md":"C0_bz0wW","getting-started.md":"C9lgqnN0","getting-started_create-bot.md":"Da6WTI-u","getting-started_platform-telegram.md":"BlTohjMj","getting-started_provider-and-model.md":"hf8EhYPV","index.md":"BXBUN2vU","installation_config-toml.md":"BasYU7hp","installation_docker.md":"Ce3JA8xc","troubleshooting.md":"rkMlAGoL","zh_concepts_identity-and-binding.md":"B6I6pSqI","zh_concepts_index.md":"uaZIblvt","zh_index.md":"DbGu2QT1","zh_style_terminology.md":"C89A7q1C"}
+3 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -9,9 +9,9 @@
<link rel="preload stylesheet" href="/assets/style.BPi_7-V7.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.D-Qg-UCv.js"></script>
<script type="module" src="/assets/app.CD9R37In.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.g0QZU-ka.js">
<link rel="modulepreload" href="/assets/chunks/theme.Dzd8uadc.js">
<link rel="modulepreload" href="/assets/chunks/framework.ePeAWSvT.js">
<link rel="modulepreload" href="/assets/troubleshooting.md.rkMlAGoL.lean.js">
<link rel="icon" href="/logo.png">
@@ -23,7 +23,7 @@
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">data_root = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;/opt/memoh/data&quot;</span></span></code></pre></div><ol start="2"><li>Clean up the stale containerd container (if it exists):</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containers</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mcp-</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">bot-i</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">d</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span></span></code></pre></div><ol start="3"><li>Restart the server:</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> restart</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> server</span></span></code></pre></div><blockquote><p><strong>Note</strong>: If you also run the server locally (outside Docker), keep the Docker config (<code>conf/app.docker.toml</code>) separate from your local <code>config.toml</code>, and update <code>docker-compose.yml</code> to mount the Docker-specific config instead.</p></blockquote><h2 id="mcp-container-image-update-not-taking-effect-after-rebuild" tabindex="-1">MCP Container: Image update not taking effect after rebuild <a class="header-anchor" href="#mcp-container-image-update-not-taking-effect-after-rebuild" aria-label="Permalink to &quot;MCP Container: Image update not taking effect after rebuild&quot;"></a></h2><h3 id="symptom-1" tabindex="-1">Symptom <a class="header-anchor" href="#symptom-1" aria-label="Permalink to &quot;Symptom&quot;"></a></h3><p>After updating <code>Dockerfile.containerd</code> (e.g., adding Node.js/Python to the MCP image), rebuilding and restarting the containerd container, MCP tools still fail with errors like:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>exec: &quot;npx&quot;: executable file not found in $PATH</span></span></code></pre></div><h3 id="cause-1" tabindex="-1">Cause <a class="header-anchor" href="#cause-1" aria-label="Permalink to &quot;Cause&quot;"></a></h3><p>The containerd entrypoint script (<code>containerd-entrypoint.sh</code>) skips image import if the image already exists in containerd&#39;s image store:</p><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">if</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> !</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> check</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;name==${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">MCP_IMAGE</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">; </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">then</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # import</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">fi</span></span></code></pre></div><p>Since <code>containerd_data</code> is a persistent Docker volume, the old MCP image survives across container restarts. The new image embedded in the rebuilt Docker image is never imported.</p><h3 id="solution-1" tabindex="-1">Solution <a class="header-anchor" href="#solution-1" aria-label="Permalink to &quot;Solution&quot;"></a></h3><ol><li>Remove the old MCP image from containerd:</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker.io/library/memoh-mcp:latest</span></span></code></pre></div><ol start="2"><li>Restart the containerd container to trigger re-import:</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> restart</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containerd</span></span></code></pre></div><ol start="3"><li>Verify the new image was imported (size should be significantly larger if Node.js/Python were added):</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> exec</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> memoh-containerd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ctr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> images</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ls</span></span></code></pre></div><ol start="4"><li>Delete the bot&#39;s MCP container and recreate it from the bot detail page so it uses the new image.</li></ol></div></div></main><footer class="VPDocFooter" data-v-a98d3285 data-v-cd4d56d3><!--[--><!--]--><div class="edit-info" data-v-cd4d56d3><div class="edit-link" data-v-cd4d56d3><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/memohai/Memoh/edit/main/docs/docs/troubleshooting.md" target="_blank" rel="noreferrer" data-v-cd4d56d3><!--[--><span class="vpi-square-pen edit-link-icon" data-v-cd4d56d3></span> Edit on GitHub<!--]--></a></div><div class="last-updated" data-v-cd4d56d3><p class="VPLastUpdated" data-v-cd4d56d3 data-v-868b2e6d>Last Updated: <time datetime="2026-02-18T16:20:27.000Z" data-v-868b2e6d></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-cd4d56d3><span class="visually-hidden" id="doc-footer-aria-label" data-v-cd4d56d3>Pager</span><div class="pager" data-v-cd4d56d3><!----></div><div class="pager" data-v-cd4d56d3><a class="VPLink link pager-link next" href="/index.html" data-v-cd4d56d3><!--[--><span class="desc" data-v-cd4d56d3>Next page</span><span class="title" data-v-cd4d56d3>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-0b622e3d data-v-7ace51a1><div class="container" data-v-7ace51a1><p class="message" data-v-7ace51a1>Published under AGPLv3</p><p class="copyright" data-v-7ace51a1>Copyright © 2024 Memoh</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BJygOlxN\",\"installation_docker.md\":\"Cmz-MLJu\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"blogs_2026-02-16.md\":\"CVgn4GCU\",\"blogs_index.md\":\"DyCOc_Zm\",\"cli_auth.md\":\"C8ws3CHD\",\"cli_bot.md\":\"BnhEB6FG\",\"cli_channel.md\":\"BBEJiWrG\",\"cli_chat.md\":\"Cr9VFV7R\",\"cli_config.md\":\"B8bSu8j2\",\"cli_index.md\":\"CZsWbIpX\",\"cli_model.md\":\"DjdZHTvQ\",\"cli_provider.md\":\"D1oztYQ9\",\"cli_schedule.md\":\"D2s8Q1KC\",\"concepts_bot.md\":\"C_C3siLW\",\"concepts_channel.md\":\"DdS-uyu8\",\"concepts_container.md\":\"Djausou_\",\"concepts_conversation-and-history.md\":\"BS_PnG4v\",\"concepts_index.md\":\"Ci6EwNPX\",\"concepts_mcp.md\":\"B9KnE-R7\",\"concepts_memory.md\":\"BgBEcLnX\",\"concepts_provider-and-model.md\":\"DQq3j0ql\",\"concepts_schedule.md\":\"COs_2DXO\",\"concepts_skills.md\":\"HeUi2diL\",\"concepts_subagents.md\":\"C0_bz0wW\",\"getting-started.md\":\"C9lgqnN0\",\"getting-started_create-bot.md\":\"Da6WTI-u\",\"getting-started_platform-telegram.md\":\"BlTohjMj\",\"getting-started_provider-and-model.md\":\"hf8EhYPV\",\"index.md\":\"BXBUN2vU\",\"installation_config-toml.md\":\"BasYU7hp\",\"installation_docker.md\":\"Ce3JA8xc\",\"troubleshooting.md\":\"rkMlAGoL\",\"zh_concepts_identity-and-binding.md\":\"B6I6pSqI\",\"zh_concepts_index.md\":\"uaZIblvt\",\"zh_index.md\":\"DbGu2QT1\",\"zh_style_terminology.md\":\"C89A7q1C\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Memoh Documentation\",\"description\":\"Multi-Member, Structured Long-Memory, Containerized AI Agent System.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"siteTitle\":\"Memoh\",\"sidebar\":{\"/blogs/\":[{\"text\":\"Blogs\",\"link\":\"/blogs/index.md\",\"items\":[{\"text\":\"Introduction (Feb 2026)\",\"link\":\"/blogs/2026-02-16.md\"}]}],\"/\":[{\"text\":\"Overview\",\"link\":\"/index.md\"},{\"text\":\"About Memoh\",\"link\":\"/getting-started.md\"},{\"text\":\"Installation\",\"items\":[{\"text\":\"Docker\",\"link\":\"/installation/docker.md\"},{\"text\":\"config.toml\",\"link\":\"/installation/config-toml.md\"}]},{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Provider and Model\",\"link\":\"/getting-started/provider-and-model.md\"},{\"text\":\"Create Bot\",\"link\":\"/getting-started/create-bot.md\"},{\"text\":\"telegram platform\",\"link\":\"/getting-started/platform-telegram.md\"}]},{\"text\":\"Concepts\",\"items\":[{\"text\":\"Overview\",\"link\":\"/concepts/index.md\"},{\"text\":\"Bot\",\"link\":\"/concepts/bot.md\"},{\"text\":\"Provider and Model\",\"link\":\"/concepts/provider-and-model.md\"},{\"text\":\"Schedule\",\"link\":\"/concepts/schedule.md\"},{\"text\":\"Memory\",\"link\":\"/concepts/memory.md\"},{\"text\":\"Channel\",\"link\":\"/concepts/channel.md\"},{\"text\":\"Container\",\"link\":\"/concepts/container.md\"},{\"text\":\"MCP\",\"link\":\"/concepts/mcp.md\"},{\"text\":\"Subagents\",\"link\":\"/concepts/subagents.md\"},{\"text\":\"Skills\",\"link\":\"/concepts/skills.md\"},{\"text\":\"Conversation and History\",\"link\":\"/concepts/conversation-and-history.md\"}]}],\"/zh/\":[{\"text\":\"文档总览\",\"link\":\"/zh/index.md\"}]},\"nav\":[{\"text\":\"Guides\",\"link\":\"/\"},{\"text\":\"Blogs\",\"link\":\"/blogs/\"}],\"logo\":{\"src\":\"/logo.png\",\"alt\":\"Memoh\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/memohai/Memoh\"}],\"footer\":{\"message\":\"Published under AGPLv3\",\"copyright\":\"Copyright © 2024 Memoh\"},\"search\":{\"provider\":\"local\"},\"editLink\":{\"pattern\":\"https://github.com/memohai/Memoh/edit/main/docs/docs/:path\",\"text\":\"Edit on GitHub\"},\"lastUpdated\":{\"text\":\"Last Updated\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}}},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\"},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long