Files
MemRelay/projects/ebb54e31-5afe-4f9b-a291-4e3b03ca3b21/curated/development/MemRelay System Architecture – Components and Deployment Topology.md
T

93 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 与数据迁移均正常。