记忆同步

ECS 部署指南

本指南面向服务管理员。它会在一台 Linux ECS 上启动 PostgreSQL、API、Caddy 和静态官网。

部署前检查

  1. 一台 Linux ECS(本项目按 2 GiB 内存配置),已安装 Docker Engine 和 Docker Compose v2。
  2. 域名 A 记录已指向这台 ECS 公网 IP。
  3. 安全组仅开放 80/443;SSH 与管理面板只允许可信来源;不要开放 5432。
  4. 确保 80/443 未被宝塔、Nginx 或其他 Web 服务占用。
  5. ECS 已获得该私有 GitHub 仓库的只读权限(例如 Deploy Key);否则先完成 GitHub 授权再克隆。

首次部署

在 ECS 上执行:

git clone https://github.com/chenyanze66/memory-sync-infra.git
cd memory-sync-infra/server
cp .env.example .env
chmod 600 .env

编辑 .env,替换所有 replace-with-... 示例值。管理员数据库密码、应用数据库密码、JWT 密钥和邀请码必须各不相同;不要把 .env 发到聊天、上传 Git 或保存进同步目录。

然后验证配置、构建并启动:

docker compose config
docker compose up -d --build
docker compose ps
curl -fsS "https://你的域名/readyz"

预期是 postgres、api、caddy 均显示运行/健康,最后一条命令返回 HTTP 200。Caddy 会在 DNS 已生效且 80/443 可访问时自动申请 HTTPS 证书。

使用者接入

将 HTTPS 地址和邀请码以私密方式发给使用者,再让其按 使用指南 安装。邀请码泄露时,修改 .env 后重启 API,并为后续新用户生成新邀请码。

更新到 GitHub 最新版本

在 ECS 的仓库根目录执行:

git fetch origin
git status
git pull --ff-only origin main
cd server
docker compose up -d --build
docker compose ps
curl -fsS "https://你的域名/readyz"

更新前先备份;若 git status 显示本地修改,先处理它,不要强行覆盖。更多检查与备份见 运维指南(英文)。

绝不能做的事

  • 不发布 PostgreSQL 的 5432 端口。
  • 不把 Dashboard 反向代理到公网;它只允许 127.0.0.1 本机访问。
  • 不把公司 P2 资料或 P3 凭据放进同步目录。
  • 不提交 .env、备份、用户配置、Token、私钥或邀请码。