如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
为项目点亮星标🌟,以获取发布通知并助力社区发展!
intuitem.com · SaaS免费试用 · 路线图 · 文档 · 语言 ·
· 框架
CISO Assistant 为网络安全管理和GRC(治理、风险与合规)实践提供了全新视角:
我们的愿景是打造网络安全管理的一站式平台——通过简化和互操作性实现GRC现代化。
作为与网络安全和IT专业人员合作的从业者,我们曾面临同样的问题:工具碎片化、数据重复,以及缺乏直观的集成解决方案。CISO Assistant 源于这些经验教训,我们正围绕务实、常识性原则构建社区。
我们不断根据用户和客户的反馈进行改进。CISO Assistant 就像一只章鱼🐙,不断长出新的“触手”——为网络安全团队带来清晰度、自动化和生产力,同时减少数据输入和输出的工作量。
[!TIP] 最简单的入门方式是通过此处提供的云实例免费试用。
或者,在您的工作站或服务器上安装好_Docker_和_Docker-compose_后:
克隆仓库:
git clone --single-branch -b main https://github.com/intuitem/ciso-assistant-community.git
并运行启动脚本
./docker-compose.sh # Linux/MacOS
./docker-compose.ps1 # Windows
如果您正在寻找其他自托管安装选项,请查看配置生成器和文档。
[!NOTE] docker-compose脚本使用预构建的Docker镜像,支持大多数标准硬件架构。 如果您使用Windows,请确保已安装带WSL2的Docker Desktop并触发PowerShell脚本。它将代表您配置Docker Desktop。
可以调整docker compose文件以传递额外参数,以适应您的设置(例如邮件发送器设置)。
[!WARNING] 如果您收到关于镜像平台与主机平台不匹配的警告或错误,请提交包含详细信息的issue,我们将很快添加支持。您也可以改用
docker-compose-build.sh(见下文)为您的特定架构构建镜像。
[!IMPORTANT] 不要直接将
main分支代码用于生产环境,因为它是上游合并分支,在我们的开发过程中可能包含破坏性变更。请使用tags获取稳定版本或预构建镜像。
即将推出的功能列在路线图上。
CISO Assistant 由Intuitem开发和维护,这是一家专注于网络安全、云以及数据/AI的公司。
以下是CISO Assistant中一些构建块的摘要,用于说明鼓励复用的解耦概念:
有关完整详细信息,请查看数据模型文档。
CISO Assistant 的核心是解耦原则,它支持强大的用例并显著节省时间:
以下是解耦原则及其优势的说明:
查看 上的在线文档。
在此处了解更多:AI引擎
库可以表示一个框架、威胁目录、一组参考控制措施,甚至是自定义风险矩阵。
现在可以直接从 Excel 文件加载库。无需事先手动将其转换为 YAML——上传 Excel 文件时,内部会处理转换过程。
查看 tools 目录及其专用 README,其中描述了 Excel 格式库源文件的预期格式。excel 子目录包含用作现有库源的示例 XLSX 文件,可作为创建自定义库的模板。
要从 Excel 文件加载库,请转到 Governance → Library 页面,点击 Load,然后选择您的 Excel 源文件。导入过程中会报告任何验证或解析错误。
虽然可以直接加载 Excel 文件,但仍可使用外部 Python 脚本将库源文件转换为 YAML:
convert_library_v2.py 帮助您从简单的 Excel 文件生成库。将项目按预期格式结构化后,运行该脚本以生成相应的 YAML 文件。tools 目录还包含针对特定框架的专用转换器(例如,CIS 或 CCM 控制措施)。为便于创建框架之间的映射,可使用 prepare_mapping_v2.py 工具。它基于两个现有的 YAML 格式框架库生成 Excel 文件。填写映射后,生成的 Excel 文件可:
直接加载到应用程序中,或
使用 convert_library_v2.py 转换为 YAML。
Python 3.14+
pip 25.3+
uv 0.9+
node 24+
npm 10.2+
pnpm 10.30+
yaml-cpp(brew install yaml-cpp libyaml 或 apt install libyaml-cpp-dev)
[实验性] 无WSL2的Windows开发额外要求
如果您希望在不使用WSL2的情况下开发项目,需要安装 MSYS2,将 MSYS2 UCRT64 二进制文件添加到您的系统PATH环境变量(通常二进制文件位于 C:\msys64\ucrt64\bin),然后通过 MSYS2 UCRT64 使用 pacman 安装以下依赖:
pacman -S mingw-w64-ucrt-x86_64-file mingw-w64-ucrt-x86_64-pango
安装依赖后,还需添加以下两个系统环境变量:
MAGIC=magic.mgc 文件的完整路径(通常为 `C:\msys64\ucrt64\share\misc\magic.mgc`)
WEASYPRINT_DLL_DIRECTORIES=MSYS2 UCRT64 二进制文件的路径(同上)
由于Windows的默认编码不是 UTF-8 而是 cp1252,某些打印 UTF-8 字符(如表情符号)的Python脚本可能在某些情况下导致后端崩溃或故障(例如库导入)。
为避免此项目出现该问题,通过添加以下两个用户环境变量强制使用 UTF-8 编码:
PYTHONUTF8=1
PYTHONIOENCODING=utf-8:replace
[!NOTE]
- Windows上的
libmagic库(MIME检测)在读取Excel文件(.xlsx)的前2048位时难以识别文件类型,导入Excel库时通常返回application/octet-stream(后端会显示警告消息[warning ] Invalid MIME type)。得益于backend/library/views.py:StoredLibraryViewSet.upload_library中的回退方法,这不会阻止Excel文件的导入。
git clone git@github.com:intuitem/ciso-assistant-community.git
cd ciso-assistant-community
" " 替换为您的私有值。注意不要将此文件提交到git仓库。必填变量
后端的所有变量都有便捷的默认值。
推荐变量
export DJANGO_DEBUG=True
# 默认URL设置为 http://localhost:5173,但您可以更改,例如使用caddy代理启用https
export CISO_ASSISTANT_URL=https://localhost:8443
# 例如使用Mailhog设置开发邮件服务器
export EMAIL_HOST_USER=''
export EMAIL_HOST_PASSWORD=''
export DEFAULT_FROM_EMAIL=ciso-assistant@ciso-assistantcloud.com
export EMAIL_HOST=localhost
export EMAIL_PORT=1025
export EMAIL_USE_TLS=True # true表示使用STARTTLS
export EMAIL_USE_SSL=False # true表示使用SMTPS
其他变量
# CISO Assistant默认使用SQLite,但您可以通过声明以下变量来设置PostgreSQL
export POSTGRES_NAME=ciso-assistant
export POSTGRES_USER=ciso-assistantuser
export POSTGRES_PASSWORD=
export POSTGRES_PASSWORD_FILE= # 指定密码的另一种方式
export DB_HOST=localhost
export DB_PORT=5432 # 可选,默认值为5432
# CISO Assistant默认使用文件系统存储后端。
# 一次只能激活一个云存储后端(USE_S3和USE_AZURE互斥)。
# --- AWS S3 ---
# 您可以通过声明以下变量使用S3存储桶
# 启动CISO Assistant前必须创建S3存储桶
export USE_S3=True
export AWS_STORAGE_BUCKET_NAME=
export AWS_S3_REGION_NAME= # 可选,例如 us-east-1
# S3认证选项1:访问密钥(适用于独立部署或S3兼容服务)
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export AWS_S3_ENDPOINT_URL= # S3兼容服务(如MinIO)必填
# S3认证选项2:IRSA(适用于Kubernetes/EKS部署)
# 在启用IAM Roles for Service Accounts (IRSA)的EKS上运行时,
# 这些环境变量由Pod的服务账户自动注入。
# 无需显式配置——只需确保设置USE_S3=True和AWS_STORAGE_BUCKET_NAME。
# export AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/eks.amazonaws.com/serviceaccount/token
# export AWS_ROLE_ARN=arn:aws:iam::123456789012:role/ciso-assistant-s3-role
# --- Azure Blob Storage ---
# 您可以使用Azure Blob Storage容器代替S3。
# 启动CISO Assistant前必须创建容器。
# export USE_AZURE=True
# export AZURE_CONTAINER= # 默认:ciso-assistant-container
# export AZURE_CUSTOM_DOMAIN= # 可选,例如 cdn.example.com
# export AZURE_LOCATION= # 可选,容器内的路径前缀(例如 "media")
# Azure认证选项1:账户密钥
# export AZURE_ACCOUNT_NAME=
# export AZURE_ACCOUNT_KEY=
# Azure认证选项2:连接字符串
# export AZURE_CONNECTION_STRING=
# Azure认证选项3:托管身份(适用于Azure托管部署)
# 需要AZURE_ACCOUNT_NAME。Pod/VM分配的托管身份会自动使用。
# export AZURE_ACCOUNT_NAME=
# export AZURE_USE_MANAGED_IDENTITY=True
# 添加第二个备用邮件服务器(即将弃用,不推荐使用)
export EMAIL_HOST_RESCUE=
export EMAIL_PORT_RESCUE=587
export EMAIL_HOST_USER_RESCUE=
export EMAIL_HOST_PASSWORD_RESCUE=
export EMAIL_USE_TLS_RESCUE=True
export EMAIL_USE_SSL_RESCUE=False
# 您可以定义第一个超级用户的邮箱,便于自动化。系统会向超级用户发送密码初始化邮件
export CISO_SUPERUSER_EMAIL=
# 默认情况下,Django密钥在CISO Assistant每次启动时随机生成。这便于快速测试,
# 但不推荐用于生产环境,因为可能会破坏会话(详见
# 此[主题](https://stackoverflow.com/questions/15170637/effects-of-changing-djangos-secret-key))。
# 要设置固定密钥,请使用环境变量DJANGO_SECRET_KEY。
export DJANGO_SECRET_KEY=...
# 运行不受信任代码的沙箱模式(例如库Excel文件)
# 警告:生产环境中必须启用沙箱。
export ENABLE_SANDBOX=True # 可选,生产环境(DJANGO_DEBUG=False)默认值为True,开发环境(DJANGO_DEBUG=True)默认值为False。
pre-commit install
psql as superadminsudo su postgrespsqlcreate database ciso-assistant;
create user ciso-assistantuser with password ' ';
grant all privileges on database ciso-assistant to ciso-assistantuser;
[!NOTE] 前端无法自动推断主机,因此您需要设置ORIGIN变量,或者设置
HOST_HEADER和PROTOCOL_HEADER变量。有关此复杂问题,请参见sveltekit文档。请注意,此方法不适用于"pnpm run dev",这在生产环境中无需担心。
[!NOTE] Caddy需要接收SNI头。因此,对于您的公共URL(在
CISO_ASSISTANT_URL中声明的URL),您需要使用FQDN,而不是IP地址,因为如果主机是IP地址,浏览器不会传输SNI。这是另一个复杂问题!
[!NOTE] docker-compose模板文件现在以非root模式启动后端、huey和前端。如果您使用旧的docker-compose.yml文件,建议进行更新。容器兼容root和非root两种模式。
docker-compose.yml现在依赖镜像中已有的非root用户1001:1001。旧部署使用root用户,该模式仍受支持。要迁移到非root模式,请在主机中执行以下步骤:
参考文件为en.json;覆盖率=每个区域设置文件中存在的参考键的比例。每日自动刷新——详细分类请参见https://intuitem.github.io/metrics/i18n/%E3%80%82
我们已尽力遵循安全最佳实践。如发现任何问题,请报告至。
本仓库包含CISO Assistant开源版本(社区版)和商业版本(专业版和企业版)的源代码,其中社区版采用AGPL v3许可协议发布,商业版采用intuitem商业软件许可协议发布。为简化管理,采用了单仓库的方式。
顶级"enterprise"目录中的所有文件均采用intuitem商业软件许可协议发布。
顶级"enterprise"目录之外的所有文件均采用AGPLv3许可协议发布。
详情参见LICENSE.md。有关商业版本的更多详情,您可以通过联系我们。
除非另有说明,所有文件均© intuitem。
来自真实用户的反馈,见证轩辕镜像的优质服务