生产部署
架构概览
生产环境使用 Traefik 作为反向代理,自动申请 Let's Encrypt TLS 证书:
Internet
└─→ Traefik (443/80) ← Let's Encrypt ACME
├─→ memex-server:8080 (Web UI + HTTP API)
└─→ memex-server:9001 (MCP)
配置步骤
1. 填写环境变量
cp .env.example .env
编辑 .env,填写以下必填项:
| 变量 | 说明 |
|---|---|
ENGINE_DIR | Memex 引擎目录(只读挂载) |
MEMEX_HOST | 对外域名,如 memex-server.memect.cn |
ACME_EMAIL | Let's Encrypt 注册邮箱 |
2. 启动
docker compose --env-file .env up -d
Traefik 会自动申请证书,首次启动稍等片刻。
3. 创建管理员 Token
curl -X POST https://memex-server.memect.cn/api/v1/auth/tokens \
-H "Content-Type: application/json" \
-d '{"name":"admin","username":"admin","role":"admin"}'
危险
安全警告:生产环境必须在 docker-compose.yml 的 command 中加入 --auth。
不加 --auth 时所有请求自动获得 admin 权限,端口暴露即裸奔。
环境变量完整参考
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
MEMEX_ROOT | ✓ | — | 引擎根目录 |
MEMEX_WIKIS_DIR | ~/wikis | wiki 产出 + DB 目录 | |
MEMEX_LOG_RETAIN_DAYS | 30 | 日志保留天数 | |
MEMEX_MAX_CONCURRENT_JOBS | 3 | 最大并发 job 数 | |
MEMEX_CORS_ORIGINS | 关闭 | CORS 白名单,逗号分隔 | |
FASTMCP_HOST | 0.0.0.0 | MCP 服务监听地址 | |
FASTMCP_PORT | 9001 | MCP 服务监听端口 |
数据持久化
wiki 数据存储在 MEMEX_WIKIS_DIR 挂载目录,建议挂载到宿主机持久卷。
日志存储在容器内,超过 MEMEX_LOG_RETAIN_DAYS 天自动清理。