跳转到内容

开发环境搭建

本页用于源码开发和本地调试。生产或单机私有化部署请优先使用 部署 中的 Docker Compose 分发包。

开发依赖服务

开发环境可以使用 development\docker 启动后端依赖服务:

powershell
Set-Location D:\Code\git\nodejs\sirp\development\docker
Copy-Item .env.example .env
docker compose up -d

该 Compose 会启动 PostgreSQL、Redis Stack 和 RustFS:

服务地址说明
PostgreSQLlocalhost:5432后端数据库。
Redislocalhost:6379Cache 和 Redis Stream。
Redis Stack UIhttp://localhost:8001Redis Web 管理界面。
RustFS S3 APIhttp://localhost:9000附件和头像使用的 S3 兼容接口。
RustFS Consolehttp://localhost:9001RustFS Web 管理界面。

对应后端 .env 示例:

text
POSTGRES_DB=asp
POSTGRES_USER=postgres
POSTGRES_PASSWORD=asp-dev-postgres-password
POSTGRES_HOST=localhost
POSTGRES_PORT=5432

REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=1
REDIS_PASSWORD=asp-dev-redis-password

RUSTFS_ENDPOINT_URL=http://localhost:9000
RUSTFS_ACCESS_KEY=asp
RUSTFS_SECRET_KEY=asp-dev-rustfs-password
RUSTFS_BUCKET=asp
RUSTFS_REGION=us-east-1

后端

进入 backend 目录后使用项目内虚拟环境运行管理命令。

安装依赖:

powershell
uv sync

配置 .env,至少确认以下运行依赖:

配置说明
POSTGRES_DB / POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_HOST / POSTGRES_PORTPostgreSQL 连接。
REDIS_HOST / REDIS_PORT / REDIS_DB / REDIS_PASSWORDRedis 连接。
RUSTFS_ENDPOINT_URL / RUSTFS_ACCESS_KEY / RUSTFS_SECRET_KEY / RUSTFS_BUCKETRustFS / S3 兼容对象存储。
DJANGO_SECRET_KEY本地开发可使用测试值,生产必须设置为随机密钥。
DJANGO_ALLOWED_HOSTS允许访问的主机名。

执行数据库迁移并启动开发服务:

powershell
.\.venv\Scripts\python.exe manage.py migrate
.\.venv\Scripts\python.exe manage.py runserver

后端 API 默认挂载在 /api/ 下。首次初始化数据库后创建管理员账号:

powershell
.\.venv\Scripts\python.exe manage.py createsuperuser

Custom 目录

源码开发时,backend\custom\ 与 Compose 发布包中的 custom\ 目录结构保持一致:

text
backend\custom\
  modules\
  playbooks\
  data\
    modules\
    siem\
    playbooks\
  requirements.txt

如需测试额外 Python 包,可以安装到本地 custom package 目录,并把它加入 PYTHONPATH

powershell
New-Item -ItemType Directory -Force .\.custom-packages
uv pip install --python .\.venv\Scripts\python.exe --target .\.custom-packages -r .\custom\requirements.txt
$env:ASP_CUSTOM_DIR = (Resolve-Path .\custom).Path
$env:PYTHONPATH = "$(Resolve-Path .\.custom-packages);$env:ASP_CUSTOM_DIR"

刷新并校验 custom 定义:

powershell
.\.venv\Scripts\python.exe manage.py shell -c "from apps.agentic.services.custom_scripts import refresh_custom_definitions; import json; print(json.dumps(refresh_custom_definitions(), ensure_ascii=False, indent=2))"

后台 worker

开发时根据需要启动对应 worker:

powershell
.\.venv\Scripts\python.exe manage.py run_agentic_module_worker
.\.venv\Scripts\python.exe manage.py run_agentic_case_analysis_worker
.\.venv\Scripts\python.exe manage.py run_agentic_playbook_worker
.\.venv\Scripts\python.exe manage.py run_elk_action_worker
Worker作用
run_agentic_module_worker消费 Redis Stream,运行 Module 生成 Case / Alert / Artifact。
run_agentic_case_analysis_worker执行 Case AI 分析任务。
run_agentic_playbook_worker执行用户触发的 Playbook。
run_elk_action_worker从 ELK Action Index 轮询告警。

MCP

MCP 端点挂载在 ASGI 应用的 /api/mcp。如果要在开发环境测试 ClaudeCode 插件,需要把 /api/mcp 路由到 ASGI 服务。

后端普通 API/Admin 可以走 WSGI,MCP 走 ASGI。

前端

进入 frontend 目录安装依赖并启动开发服务:

powershell
pnpm install
pnpm dev

前端 API 默认访问 /api,开发环境可通过 Vite 或反向代理转发到后端。