Files
delivery-desk/docs/operator-runbook.md
yuzhe b0c498fbb6 feat(auth): 添加认证模块和图片批注功能(项目初始化)
- 实现用户登录、登出、密码修改等认证功能
- 添加会话管理和权限控制中间件
- 创建图片批注组件和相关API路由
- 实现批注的增删改查功能
- 添加Docker和Git忽略配置文件
- 创建系统架构文档和开发约定说明
- 集成认证模块到前端应用路由中
2026-07-21 15:28:55 +08:00

2.6 KiB
Raw Blame History

部署与运维手册

环境变量

变量 必需 说明
NODE_ENV 正式环境设为 production
PORT API 与生产静态站端口,默认 3001
DATABASE_URL 正式环境 PostgreSQL 连接串;缺省时使用 SQLite
PGSSL 内网 PostgreSQL 可设为 disable
PG_POOL_MAX 连接池上限,默认 10
CORS_ORIGIN 公网分离部署 允许来源,多个值以逗号分隔
POSTGRES_PASSWORD Docker compose.yaml 使用的数据库密码
COS_CONFIG_ENCRYPTION_KEY 正式环境 至少 32 字符的稳定随机密钥
INITIAL_ADMIN_USERNAME 首次初始化 平台管理员账号,默认 admin
INITIAL_ADMIN_DISPLAY_NAME 首次初始化 平台管理员显示名
INITIAL_ADMIN_PASSWORD 首次初始化 空 PostgreSQL 必须提供的临时密码

真实环境变量只放在部署平台或未提交的 .env 中。

部署

cp .env.example .env
# 编辑 .env 后:
docker compose up -d --build

在 HTTPS 反向代理后公开应用。不要直接提交 TLS 私钥、数据库文件、.envdata/uploads/

冒烟检查

curl http://127.0.0.1:3001/api/health
docker compose ps
docker compose logs --tail=100 app

健康接口应返回 success: true,且正式环境的 database 应为 postgres

COS 配置

  1. 使用平台管理员进入“平台管理 → 腾讯云 COS”。
  2. 填写地域、带 APPID 的存储桶名、公开访问域名、可选 CDN 域名、路径前缀及密钥。
  3. 保存后执行连接测试。
  4. 测试通过后启用配置。

连接测试会真实执行一次上传、读取和删除,因此密钥至少需要目标前缀的这三项权限。测试对象会尽力清理;请求中断时可检查 <path-prefix>/.delivery-desk-check/ 是否残留临时文件。

COS 使用公开 URL。必须关闭桶列表功能并使用不可枚举对象名拿到 URL 的人可以直接访问文件。

数据备份与恢复

  • PostgreSQL 使用托管备份或定期 pg_dump,恢复流程需在预发布环境演练。
  • COS 开启版本控制或生命周期策略前先评估成本。
  • 本地 SQLite 的 data/ 只用于开发,不作为正式备份方案。
  • COS_CONFIG_ENCRYPTION_KEY 必须与数据库备份一同安全托管;遗失后无法解密已保存的 COS 凭证。

发布前检查

pnpm install --frozen-lockfile
pnpm check
pnpm lint
pnpm build
pnpm test:postgres-runtime

正式切换前还应验证管理员首次改密、客户访问门禁、COS 上传、客户批注与验收、数据库备份及 HTTPS Cookie。