跳转到内容

部署

ASP 后端是 Django,前端是 Vite + Ant Design。单机私有化部署推荐使用 Docker Compose 发布包。

Docker Compose 发布包适合单机部署、内网测试和生产环境。发布包只包含部署模板、初始化脚本和定制目录,后端/前端镜像会从 GHCR 拉取。

1. 下载发布包

bash
curl -fL -O https://github.com/FunnyWolf/agentic-soc-platform/releases/download/v0.5.2/asp-compose-0.5.2.tar.gz
tar -xzf asp-compose-0.5.2.tar.gz
cd asp-compose

2. 发布包内容

解压后会生成 asp-compose/ 目录,主要包含:

text
compose.yaml
.env.example
scripts/
custom/
logs/
certs/
  • compose.yaml:Docker Compose 编排文件。
  • .env.example:默认配置模板,初始化时会复制为 .env
  • scripts/:初始化、升级、诊断和自定义依赖安装脚本。
  • custom/:用户自定义 Module、Playbook、SIEM YAML 和依赖目录。
  • logs/:前端 Nginx 和后端进程日志挂载目录。
  • certs/:HTTPS 证书目录。

3. 首次初始化

默认部署直接执行:

bash
./scripts/init.sh
docker compose exec asp-web python manage.py createsuperuser

如果 .env 不存在,init.sh 会从 .env.example 创建 .env,并写入随机的 DJANGO_SECRET_KEY、PostgreSQL 密码、Redis 密码和 RustFS/S3 Secret。初始化完成后,可以继续编辑 .env,改成自己的密码、域名或端口。

如果 .env 中仍存在 change-me-* 占位密码,初始化会中止,避免使用默认密码启动服务。

如果 custom/requirements.txt 中已有额外 Python 依赖,并且需要指定 PyPI 源,可以把 uv pip install 参数追加到 init.sh

bash
./scripts/init.sh --index-url https://pypi.org/simple
docker compose exec asp-web python manage.py createsuperuser

init.sh 只有在 custom/requirements.txt 存在且包含非空依赖时才会运行 asp-custom-deps--index-url 等参数只会传给 uv pip install,依赖包仍需要写在 custom/requirements.txt 中。

代理需要按用途配置:

  • 拉取 GHCR 镜像由 Docker 负责。如果 docker compose pull 需要代理,请优先在 Docker Desktop 或 Docker daemon 中配置代理。
  • 安装 custom/requirements.txt 中的 Python 依赖时,代理需要进入 asp-custom-deps 容器。可以把代理变量写入 .env,或在单独执行 asp-custom-deps 时用 -e 传入。
bash
docker compose run --rm \
  -e HTTP_PROXY=http://proxy.example:8080 \
  -e HTTPS_PROXY=http://proxy.example:8080 \
  asp-custom-deps --index-url https://pypi.org/simple

4. 默认服务

Compose 默认包含:

  • asp-frontend:前端 HTTPS 入口。
  • asp-web:Django HTTP API。
  • asp-asgi:ASGI / WebSocket 服务。
  • asp-worker-module:Module Worker。
  • asp-worker-case-analysis:Case Analysis Worker。
  • asp-worker-playbook:Playbook Worker。
  • asp-worker-elk-action:ELK Action Worker。
  • asp-worker-dashboard-cache:定时生成 Dashboard 24h、7d 和 30d 缓存。
  • postgres:PostgreSQL。
  • redis-stack:Redis Stack。
  • rustfs:RustFS / S3-compatible object storage。

5. HTTPS 与证书

Compose 部署默认只监听 HTTPS。宿主机绑定地址和端口由 .env 中的 ASP_BINDASP_HTTPS_PORT 控制。

默认值:

text
ASP_BIND=0.0.0.0
ASP_HTTPS_PORT=443
  • 如果 443 已被占用,只需要修改 ASP_HTTPS_PORT
  • 前端容器固定读取 certs/asp.crtcerts/asp.key
  • 如果证书文件不存在,asp-frontend 首次启动时会自动生成当前环境独有的自签名证书。

生产环境建议在启动前准备企业 CA 或公网 CA 签发的证书,并放到部署目录:

text
certs/asp.crt
certs/asp.key

如果暂时没有正式证书,自动生成的自签名证书可以用于初始化或内网测试。浏览器会提示证书不受信任,这是预期行为;正式环境不建议长期使用自签名证书。

替换证书后重启前端容器:

bash
docker compose restart asp-frontend

6. Web API 与上传限制

.env 中可以调整 Web API 进程和上传大小:

text
ASP_WEB_WORKERS=3
ASP_WEB_TIMEOUT=210
ASP_MAX_UPLOAD_SIZE=20m

7. 管理界面端口

Redis Stack 和 RustFS 自带 Web 管理界面。为避免反向代理导致静态资源或 WebSocket 兼容问题,部署包按官方默认方式直接暴露 HTTP 管理端口。

服务默认地址说明
Redis Stack UIhttp://<server>:8001Redis 管理界面。
RustFS Consolehttp://<server>:9001RustFS Web 管理界面。

端口和绑定地址在 .env 中配置:

text
ASP_MANAGEMENT_BIND=0.0.0.0
ASP_REDIS_UI_PORT=8001
ASP_RUSTFS_CONSOLE_PORT=9001

默认绑定 0.0.0.0,适合服务器部署。生产环境应结合防火墙或 VPN 控制管理界面的访问范围。

8. Compose 定制

init.sh 会在首次初始化时创建带说明注释和 services: {} 空映射的 compose.override.yaml。Docker Compose 会自动将它与官方 compose.yaml 合并。

  • 密码、端口、镜像等已有配置优先写入 .env
  • 新增 volume、环境变量、command 或其他服务级覆盖时,编辑 compose.override.yaml
  • 托管升级会替换官方 compose.yaml,但永不覆盖 .envcompose.override.yaml

不要直接修改官方 compose.yaml,否则下一次升级会将这些改动备份后替换。完整升级行为见升级

9. 定制目录

部署包中的 custom/ 用于放置用户定制内容:

路径用途
custom/modules/*.py自定义 Module。
custom/playbooks/*.py自定义 Playbook。
custom/data/modules/<module_slug>/raw_alert_*.jsonModule 开发调试样本。
custom/data/siem/*.yaml自定义 SIEM YAML。
custom/data/playbooks/<playbook_slug>/*.md自定义 Playbook Prompt。
custom/requirements.txtModule / Playbook 需要的额外 Python 包。
  • 修改脚本或 YAML 后,可以在 Custom Console 对应 Tab 中执行 Refresh / Validate
  • 如果变更了 Python 依赖或公共 helper module,需要重新执行 asp-custom-deps 并重启相关容器:
bash
docker compose run --rm asp-custom-deps --index-url https://pypi.org/simple
docker compose restart asp-web asp-worker-module asp-worker-playbook

10. 日志

Nginx 和后端进程日志会挂载到部署目录的 logs/

text
logs/nginx/access.log
logs/nginx/error.log
logs/django.log
logs/asgi.log
logs/agentic-module-worker.log
logs/agentic-case-analysis-worker.log
logs/agentic-playbook-worker.log
logs/elk-action-worker.log
logs/dashboard-cache-worker.log

容器标准输出和标准错误仍可通过 docker compose logs 查看。

下一步

  • 首次登录 — 登录系统并完成管理员账号准备。
  • 基础配置 — 配置 LLM、SIEM、威胁情报和 LDAP。
  • Mock 数据 — 导入示例数据,快速体验 Case、Alert 和 Artifact。
  • 告警接入 — 了解 Splunk、Kibana 和 ELK Index Action 的接入方式。