93 lines
4.0 KiB
Markdown
93 lines
4.0 KiB
Markdown
---
|
||
title: MemRelay System Architecture – Components and Deployment Topology
|
||
type: curated
|
||
permalink: main/projects/ebb54e31-5afe-4f9b-a291-4e3b03ca3b21/curated/development/mem-relay-system-architecture-components-and-deployment-topology
|
||
stable_id: 6b2d8349-7a95-4a18-8e4b-20dd2ab95e2f
|
||
scope: project
|
||
project_id: ebb54e31-5afe-4f9b-a291-4e3b03ca3b21
|
||
workspace_type: development
|
||
usage_profile_id: null
|
||
preference_context: development
|
||
document_type: architecture
|
||
revision: 1
|
||
source_memory_ids: []
|
||
source_checkpoint_ids: []
|
||
source_file_ids: []
|
||
source_git_commit: null
|
||
source_git_commits: []
|
||
source_agent_sync_ids: []
|
||
model_connection: Sub2API
|
||
model_name: git-restore
|
||
source_count: 20
|
||
source_revisions:
|
||
memory:7ab8ac01-9e4d-4222-b224-7735fdeafdc8: '1'
|
||
memory:b9a463d1-5659-4baa-aaf4-6464661ef074: '1'
|
||
memory:b3fc5d7e-f1d7-4a63-860b-37f9f35cb136: '1'
|
||
memory:23bcc4c0-4992-41d6-b70e-210937a76a0f: '1'
|
||
memory:9092af09-6a60-404e-88ad-3344f2fdf0ca: '1'
|
||
memory:c16b8950-20d2-4d3d-87b3-0a8bfd20790d: '1'
|
||
memory:109e5244-ad26-4650-8a49-e6cebbabe7d7: '1'
|
||
source_dispositions:
|
||
processed: 20
|
||
unchanged: 0
|
||
unsupported: 0
|
||
skipped: 0
|
||
cited_source_ids:
|
||
- curated_baseline:6b2d8349-7a95-4a18-8e4b-20dd2ab95e2f
|
||
- curated_baseline:eebf38d3-36dc-4b57-b8d7-1f2c8be2f234
|
||
- curated_baseline:b54bd6b0-bbdd-4ab2-92d3-a4f5d58e8f83
|
||
- curated_baseline:47740b04-4f30-47c0-a68c-8fe5e19133e7
|
||
- curated_baseline:d459e837-b05c-4f31-9b05-7f9d09c71f25
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
- global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d
|
||
- global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
- global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823
|
||
- memory:7ab8ac01-9e4d-4222-b224-7735fdeafdc8
|
||
- memory:23bcc4c0-4992-41d6-b70e-210937a76a0f
|
||
- memory:b9a463d1-5659-4baa-aaf4-6464661ef074
|
||
- memory:9092af09-6a60-404e-88ad-3344f2fdf0ca
|
||
- memory:c16b8950-20d2-4d3d-87b3-0a8bfd20790d
|
||
- memory:109e5244-ad26-4650-8a49-e6cebbabe7d7
|
||
- memory:b3fc5d7e-f1d7-4a63-860b-37f9f35cb136
|
||
job_cited_source_ids:
|
||
- curated_baseline:6b2d8349-7a95-4a18-8e4b-20dd2ab95e2f
|
||
conflicts: []
|
||
supersedes: []
|
||
preferences: []
|
||
source_cursor: 0
|
||
source_hash: cd96d5b27b5d1ef34ff30350e40c12b9d9b7e389c5813755521578d1f2597d9c
|
||
prompt_version: 2026-08-12.3
|
||
schema_version: '3'
|
||
curation_job_id: null
|
||
created_at: '2026-08-08T09:52:36.631067+00:00'
|
||
updated_at: '2026-09-23T15:13:21.395620+00:00'
|
||
tags:
|
||
- architecture
|
||
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
|
||
---
|
||
|
||
# MemRelay 架构概览
|
||
|
||
## 高层技术栈
|
||
|
||
| 层级 | 技术 |
|
||
|------|------|
|
||
| **后端** | Python 3.12, FastAPI, FastMCP, SQLAlchemy, SQLite |
|
||
| **前端** | Vue 3, TypeScript, Vite, Element Plus, Vue I18n |
|
||
| **记忆引擎** | Basic Memory v0.22.1 (Markdown 存储), MiniLM 语义搜索 (降级为全文搜索) |
|
||
| **密码库** | Vaultwarden (兼容 Bitwarden) 带进程内快照 |
|
||
| **代理 / CDN** | OpenResty (HTTPS 终结, 静态资源缓存) |
|
||
| **容器化** | Docker Desktop (Windows) & Docker‑Compose (Linux) – 支持 `amd64` 与 `arm64` |
|
||
|
||
## 部署拓扑
|
||
|
||
- **公网入口**: `https://mr.asio.asia` – OpenResty 终止 TLS 并转发至 FRPS。
|
||
- **应用主机**: Armbian ARM64 (`192.168.32.100`) 监听端口 `3003`。
|
||
- **Compose 目录**: `/opt/1panel/docker/compose/memrelay`。
|
||
- **持久化存储**: `/data/memrelay-stack`(MemRelay 与 Basic Memory 共享挂载)。
|
||
- **FRP 栈**: OpenWrt 上的 FRPC `0.70.1` 使用 WebSocket 连接 FRPS;`MemRelay_http` 将 `mr.asio.asia` 映射到 `192.168.32.100:3003`。
|
||
- **会话 Cookie**: 根据请求协议动态决定 `Secure` 标记,局域网 HTTP 与公网 HTTPS 均可使用。
|
||
- **缓存策略**: OpenResty 对登录、API、MCP、密码库、上传下载等端点不启用代理缓存;静态资源使用 ETag 与浏览器缓存。
|
||
- **备份**: `/data/memrelay-backups/memrelay-20260805T234836Z.tar.gz`。
|
||
- **健康检查**: 内网、公网均验证登录、95 个 MCP 工具、Basic Memory、Vaultwarden 与数据迁移均正常。 |