Kiwi TCMS多项目权限配置与多实例部署及更新方案咨询
Kiwi TCMS权限配置与多实例部署方案
一、单实例下实现需求的步骤
嘿,Kiwi TCMS的项目级权限控制完全能满足你的需求,不用折腾多实例,咱们一步步来配置:
1. 创建基础资源
- 创建项目:登录Kiwi后台,进入「Projects」页面,点击「Add Project」,依次创建Project A、Project B、Project C,填写名称和描述即可。
- 创建用户:进入「Admin > Users」,点击「Add user」,分别创建Alice、Bob、Vasya三个账号,设置好密码和基础信息。
2. 配置Alice的权限
- 打开Project A的详情页,找到侧边栏的「Members」(部分版本叫「Permissions」)选项,点击「Add member」。
- 选择Alice,角色下拉框选Tester,保存设置。
- 重复上述操作,给Project B也添加Alice为Tester。
- 不要给Alice分配Project C的任何成员权限,Kiwi默认会隔离无权限项目,她完全看不到Project C的内容。
3. 配置Bob的权限
- 仅在Project A的「Members」页面添加Bob,角色设为Tester。
- 不给Bob分配Project B、C的任何权限,这样他只能访问Project A。
4. 配置Vasya的权限
要让Vasya能管理三个项目的权限分配,给他设置每个项目的Project Manager角色即可:
- 分别打开Project A、B、C的「Members」页面,添加Vasya,角色选Project Manager。
- Kiwi的Project Manager角色默认拥有项目内成员权限管理(添加/移除成员、分配角色)、项目配置等权限,完全满足他配置Alice、Bob权限,以及给任一项目测试人员分配角色的需求。
二、如果需要多实例部署(单项目/实例)
要是你因为特殊需求必须用多实例(比如旧版本Kiwi权限控制不足,或者严格物理隔离要求),可以用Docker快速部署和管理:
1. 启动多个独立实例
每个实例需要独立的数据库、存储目录和端口,避免冲突。这里用Docker Compose举例:
实例1(对应Project A)
创建kiwi-project-a目录,里面放docker-compose.yml文件:
version: '3' services: kiwi: image: kiwitcms/kiwi:latest ports: - "8000:8080" # 用8000端口访问该实例 environment: - DATABASE_URL=postgres://kiwi:kiwi@db:5432/kiwi_proj_a - SECRET_KEY=your_unique_secret_key_a # 每个实例的SECRET_KEY需唯一 volumes: - ./kiwi-data:/var/kiwi/data # 独立存储测试附件等数据 depends_on: - db db: image: postgres:14 environment: - POSTGRES_USER=kiwi - POSTGRES_PASSWORD=kiwi - POSTGRES_DB=kiwi_proj_a volumes: - ./pg-data:/var/lib/postgresql/data # 独立存储数据库数据
在该目录下执行启动命令:
docker-compose up -d
实例2(Project B)
创建kiwi-project-b目录,修改docker-compose.yml的端口(比如8001:8080)、数据库名(kiwi_proj_b)、SECRET_KEY和挂载目录,重复启动命令即可。
实例3(Project C)
同理,端口用8002:8080,数据库名kiwi_proj_c,其他配置独立,启动后每个实例完全隔离,各自管理自己的项目。
2. 更新多个实例
每个实例的更新步骤一致,以Project A的实例为例:
- 备份数据(重要!):
- 备份数据库:
docker-compose exec db pg_dump -U kiwi kiwi_proj_a > project_a_backup.sql - 备份存储目录:
tar -czf project_a_data_backup.tar.gz ./kiwi-data
- 备份数据库:
- 停止当前实例:
docker-compose down - 拉取最新Kiwi镜像:
docker-compose pull kiwi - 重新启动实例:
docker-compose up -d - 执行数据库迁移(若新版本有结构变更):
docker-compose exec kiwi python manage.py migrate - 访问对应端口(比如8000),确认实例正常运行。
其他实例重复上述步骤即可,若有多个实例,也可编写简单shell脚本批量执行备份和更新操作。
内容的提问来源于stack exchange,提问作者Umnik
相关产品推荐
相关产品推荐

