ECS 部署指南
本指南面向服务管理员。它会在一台 Linux ECS 上启动 PostgreSQL、API、Caddy 和静态官网。
部署前检查
- 一台 Linux ECS(本项目按 2 GiB 内存配置),已安装 Docker Engine 和 Docker Compose v2。
- 域名 A 记录已指向这台 ECS 公网 IP。
- 安全组仅开放 80/443;SSH 与管理面板只允许可信来源;不要开放 5432。
- 确保 80/443 未被宝塔、Nginx 或其他 Web 服务占用。
- 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、私钥或邀请码。