如果你使用 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 就像一只章鱼 🐙,不断长出新的“触手”——为网络安全团队带来清晰度、自动化和生产力,同时减少数据输入和输出的工作量。
开始使用的最快最简单方法是通过此处提供的云实例免费试用版。
[实验性] 在不使用 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
安装依赖项后,还需添加以下 2 个系统环境变量:
MAGIC=Full path to the `magic.mgc` file (usually `C:\msys64\ucrt64\share\misc\magic.mgc`)
WEASYPRINT_DLL_DIRECTORIES=Same path as your MSYS2 UCRT64 binaries
由于 Windows 上的默认编码不是 UTF-8 而是 cp1252,某些打印 UTF-8 字符(如表情符号)的 Python 脚本可能会导致后端崩溃或在某些情况下出现故障(例如库导入)。为避免此项目出现该问题,通过添加以下 2 个用户环境变量强制使用 UTF-8 编码:
PYTHONUTF8=1
PYTHONIOENCODING=utf-8:replace
[!NOTE]
- Windows 上的
libmagic库(MIME 检测)通过读取前2048位来识别 Excel 文件(.xlsx)时存在困难,在导入 Excel 库时通常返回application/octet-stream(后端会显示警告消息[warning ] Invalid MIME type)。由于backend/library/views.py:StoredLibraryViewSet.upload_library中的 fallback 方法,这不会阻止 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(作为超级管理员)sudo 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变量。有关此棘手问题,请参见 https://kit.svelte.dev/docs/adapter-node#environment-variables-origin-protocolheader-hostheader-and-port-header%E3%80%82%E8%AF%B7%E6%B3%A8%E6%84%8F%EF%BC%8C%E6%AD%A4%E6%96%B9%E6%B3%95%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8Epnpm 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 许可证发布;同时包含 CISO Assistant 商业版(专业版和企业版)的源代码,该版本基于 intuitem 商业软件许可证发布。采用单仓库方式是为了简化管理。
顶层 "enterprise" 目录中的所有文件均基于 intuitem 商业软件许可证发布。
顶层 "enterprise" 目录外的所有文件均基于 https://choosealicense.com/licenses/agpl-3.0/ 许可证发布。
详情请参见 LICENSE.md。如需了解商业版的更多详情,可通过 与我们联系。
除非另有说明,所有文件均 © intuitem。
来自真实用户的反馈,见证轩辕镜像的优质服务