diff --git a/README.md b/README.md index 72b2c3f..6ce87a8 100644 --- a/README.md +++ b/README.md @@ -31,12 +31,53 @@ npm run typecheck npm run build ``` +## 生产环境启动 + +在生产环境 clone 目录中更新代码。首次启动时从示例创建 `.env`;如果已经存在 `.env`,不要覆盖: + +```bash +git pull +test -f .env || cp .env.example .env +``` + +编辑 `.env`,确认域名、frp 服务地址和数据库配置正确,并为 `POSTGRES_PASSWORD` 设置高强度密码: + +```dotenv +DOMAIN=cents.homemade.net.cn +APP_VARIANT=pro +FRPC_SERVER_HOST=119.28.12.24 +FRPC_SERVER_PORT=7000 +TEST_MODE=false +POSTGRES_DB=cents +POSTGRES_USER=cents +POSTGRES_PASSWORD=replace-with-a-strong-password +``` + +构建并启动生产环境: + +```bash +docker compose --env-file .env -f compose.pro.yaml up -d --build +``` + +检查容器状态和日志: + +```bash +docker compose --env-file .env -f compose.pro.yaml ps +docker compose --env-file .env -f compose.pro.yaml logs -f api web frpc cert +``` + +后续更新同样执行 `git pull` 和 `up -d --build`,数据库卷会保留。停止环境时不要添加 `-v`,否则会删除生产数据库卷: + +```bash +docker compose --env-file .env -f compose.pro.yaml down +``` + ## 生产环境添加用户 生产环境通过 Docker Compose 在 API 容器内运行 npm 脚本,宿主机无需安装 Node.js 或 npm: ```bash -docker compose -f compose.pro.yaml exec api \ +docker compose --env-file .env -f compose.pro.yaml exec api \ npm run user:add --workspace @cents/api -- '用户名' '至少8位的密码' ```