在 iAOP 生产服务器(39.101.182.167)上部署 FBA(fastapi-best-architecture)认证/RBAC 基座,对应 Epic #159 的 Phase 0。
用户角色权限模块整体迁移到 FBA(详见 #159)。Phase 0 部署包已就绪并推送 main,代码位于仓库 deploy/fba/ 目录,包含完整部署文档 deploy/fba/README.md。
deploy/fba/
deploy/fba/README.md
docker compose version
70c680a
cd /opt/apps # 假设 iAOP 在 /opt/apps/iAOP git clone https://github.com/fastapi-practices/fastapi-best-architecture fba-backend
deploy/fba/compose.env
FBA_PG_PASSWORD
deploy/fba/fba.env
DATABASE_PASSWORD
TOKEN_SECRET_KEY
python3 -c "import secrets; print(secrets.token_urlsafe(32))"
cd deploy/fba && docker compose --env-file compose.env up -d --build
docker exec -it fba_server fba init
docker exec -it fba_server python backend/cli.py init
deploy/fba/nginx-fba.conf
nginx -t && nginx -s reload
curl -s http://127.0.0.1:8001/api/v1/auth/captcha
curl -s http://39.101.182.167:8090/fba/api/v1/auth/captcha
docker ps
POST /fba/api/v1/auth/login
70c680a6123ed947b3163fd172a52e2526142613
✅ 已完成 issue #160「FBA 基础设施部署(Epic #159 · Phase 0)」。
在 39.101.182.167 完成 FBA(fastapi-best-architecture)认证/RBAC 基座部署:
1. 环境与源码
/root/fba-backend
/root/fba-deploy
compose.env
FBA_SRC=/root/fba-backend
2. 安全配置(生产必做项)
3. 构建启动
docker compose --env-file compose.env up -d --build
4. 数据库初始化
fba init
echo y | PYTHONPATH=/fba python backend/cli.py init
init_test_data.sql
5. nginx 合并
nginx-fba.conf
6. 登录验收
is_enabled:true
curl 127.0.0.1:8001/api/v1/auth/captcha
curl http://39.101.182.167:8090/fba/api/v1/auth/captcha
/fba/
/api/v1
已指派 bot_qa 验收。
✅ 审核通过(执行账号: bot_dev1)
已独立复核 issue #160「FBA 基础设施部署(Epic #159 · Phase 0)」,验收结论:合格。
复核依据:
http://39.101.182.167:8090/fba/api/v1/auth/captcha
{"code":200,"msg":"请求成功",...}
uuid
image
127.0.0.1:8001
fba_network
遗留事项(非阻塞,转 Phase 1 处理):
本 issue 关闭。感谢 bot_dev2 的部署。
No dependencies set.
The note is not visible to the blocked user.
任务
在 iAOP 生产服务器(39.101.182.167)上部署 FBA(fastapi-best-architecture)认证/RBAC 基座,对应 Epic #159 的 Phase 0。
背景
用户角色权限模块整体迁移到 FBA(详见 #159)。Phase 0 部署包已就绪并推送 main,代码位于仓库
deploy/fba/目录,包含完整部署文档deploy/fba/README.md。部署步骤(摘要,详见 deploy/fba/README.md)
docker compose version可用。若服务器无 Docker,请在本 issue 回复,将改用备选方案。70c680a的 main。deploy/fba/compose.env中FBA_PG_PASSWORDdeploy/fba/fba.env中DATABASE_PASSWORD(与上一致)和TOKEN_SECRET_KEY(用python3 -c "import secrets; print(secrets.token_urlsafe(32))"生成)cd deploy/fba && docker compose --env-file compose.env up -d --builddocker exec -it fba_server fba init(若 fba 命令不可用,用docker exec -it fba_server python backend/cli.py init)deploy/fba/nginx-fba.confinclude 进现有 8090 站点的 server 块,nginx -t && nginx -s reload验收标准
curl -s http://127.0.0.1:8001/api/v1/auth/captcha返回 JSON(容器内直连验证)curl -s http://39.101.182.167:8090/fba/api/v1/auth/captcha返回 JSON(外部反代验证)docker ps中 fba_server / fba_postgres / fba_redis 三容器均为 UpPOST /fba/api/v1/auth/login返回 token),登录后立即修改默认密码注意事项
关联
70c680a6123ed947b3163fd172a52e2526142613✅ 已完成 issue #160「FBA 基础设施部署(Epic #159 · Phase 0)」。
完成说明
在 39.101.182.167 完成 FBA(fastapi-best-architecture)认证/RBAC 基座部署:
1. 环境与源码
/root/fba-backend(18MB,含 Dockerfile);/root/fba-deploy(compose.env的FBA_SRC=/root/fba-backend)。2. 安全配置(生产必做项)
TOKEN_SECRET_KEY(secrets.token_urlsafe(32));FBA_PG_PASSWORD/DATABASE_PASSWORD(随机 Iaop+hex,两文件一致,已隐藏)。3. 构建启动
docker compose --env-file compose.env up -d --build→ fba_server / fba_postgres / fba_redis 三容器 Up(fba_server 仅绑 127.0.0.1:8001,PG/Redis 不映射宿主端口,与现有 iAOP 服务完全并行)。4. 数据库初始化
fba init为交互式(默认取消)+ 需 PYTHONPATH;echo y | PYTHONPATH=/fba python backend/cli.py init建表成功但种子数据未插入 → 手动执行init_test_data.sql导入种子(admin 超管 + test 用户)。5. nginx 合并
nginx-fba.confinclude 进现有 8090 server 块(容器挂载/root/fba-deploy),语法测试通过。6. 登录验收
is_enabled:true)。验收标准对照
curl 127.0.0.1:8001/api/v1/auth/captcha→ 200 JSONcurl http://39.101.182.167:8090/fba/api/v1/auth/captcha→ 200 JSON(外部反代)影响
/fba/前缀与 iAOP 的/api/v1隔离。已指派 bot_qa 验收。
✅ 审核通过(执行账号: bot_dev1)
已独立复核 issue #160「FBA 基础设施部署(Epic #159 · Phase 0)」,验收结论:合格。
复核依据:
http://39.101.182.167:8090/fba/api/v1/auth/captcha返回{"code":200,"msg":"请求成功",...},验证码uuid+image正常下发,外部链路通畅。127.0.0.1:8001,fba_postgres / fba_redis 不映射宿主端口,独立 bridge 网络fba_network与现有 iAOP 服务隔离。/fba/前缀隔离,不影响 :8090/:30800/:8088 现有服务。遗留事项(非阻塞,转 Phase 1 处理):
is_enabled:true) 已恢复,符合生产态。本 issue 关闭。感谢 bot_dev2 的部署。