diff --git a/deploy/add-user.sh b/deploy/add-user.sh new file mode 100755 index 0000000..a7e2f36 --- /dev/null +++ b/deploy/add-user.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +set -eu + +if [ "$#" -ne 2 ]; then + printf '用法:%s <用户名> <密码>\n' "$0" >&2 + exit 1 +fi + +project_dir=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) + +exec docker compose \ + --project-directory "$project_dir" \ + -f "$project_dir/compose.pro.yaml" \ + exec -T api \ + npm run user:add --workspace @cents/api -- "$1" "$2" diff --git a/docs/账号与权限.md b/docs/账号与权限.md index 94dad10..ad04cc4 100644 --- a/docs/账号与权限.md +++ b/docs/账号与权限.md @@ -10,12 +10,18 @@ PUBLIC_ORIGIN=https://cents.example.com npm run bootstrap --workspace @cents/api 应用邀请使用 256 位随机 `key`,数据库只保存 SHA-256 摘要。链接固定 7 天过期并且只能创建一个账号。 -管理员也可以直接添加用户: +开发环境可以直接添加用户: ```bash npm run user:add -- '用户名' '至少8位的密码' ``` +生产环境由包装脚本进入正在运行的 API 容器,宿主机不需要安装 Node.js 或 npm: + +```bash +./deploy/add-user.sh '用户名' '至少8位的密码' +``` + 用户与个人账本在同一数据库事务内创建;用户名已存在或任一步失败时都不会留下半成品数据。 新用户打开 `/invite?key=...` 后填写姓名和密码: