当前位置:首页>java>kali上docker里部署ai代码审计工具DeepAudit(支持本地Ollama部署)

kali上docker里部署ai代码审计工具DeepAudit(支持本地Ollama部署)

  • 2026-10-24 10:34:44
kali上docker里部署ai代码审计工具DeepAudit(支持本地Ollama部署)
环境支持:
虚拟机:kali内存:8GB处理器:2硬盘(SCSI):大于等于50GB网络:NAT开源项目:DeepAudit
整体思维导图如下:
1、确保Docker和Docker Compose已安装
#验证安装docker --versiondocker compose version
#如果是普通用户部署,将当前用户加入docker组(避免每次用sudo)sudo usermod -aG docker $USER# 需要重新登录或执行以下命令生效newgrp docker

2、部署一体化Docker Compose方案

#我们创建一个专门的目录来管理所有配置:sudo mkdir -p /opt/ai-auditcd /opt/ai-audit

在 /opt/ai-audit 目录下创建 docker-compose.yml 文件

💡 重要提醒:

  • 必须在 /opt/ai-audit/ 目录下创建这个文件

  • 之后的所有操作(运行 ./start.sh 等)都要在这个目录下执行

  • 这个目录需要有sudo权限创建,但之后可以通过 chown 改变所有权

# 使用vim编辑器创建文件sudo vim docker-compose.yml

将以下内容完整复制到编辑器中

services:  # Ollama 服务 - AI模型引擎  ollama:    image: ollama/ollama:latest    container_name: ollama    ports:      - "11434:11434"    volumes:      # 持久化存储模型数据      - ./ollama_data:/root/.ollama    restart: unless-stopped    environment:      - OLLAMA_MODELS_SOURCE=aliyun #添加这行国内镜像        networks:      - ai-audit-network  # DeepAudit 后端服务  backend:    image: ghcr.io/lintsinghua/deepaudit-backend:latest    container_name: backend    depends_on:      - postgres      - redis      - ollama     ports:      - "3001:8000"     environment:      # 数据库配置      - DATABASE_URL=postgresql+asyncpg://postgres:postgres@postgres:5432/deepaudit      - REDIS_URL=redis://redis:6379/0      # 关键:连接本地Ollama(使用Docker服务名)      - LLM_PROVIDER=ollama      - OLLAMA_API_BASE_URL=http://ollama:11434      - DEFAULT_LLM_MODEL=deepseek-coder:6.7b      - EMBEDDING_MODEL_PROVIDER=ollama      - DEFAULT_EMBEDDING_MODEL=nomic-embed-text      # 其他配置      - NODE_ENV=production      - PORT=8000      -AGENT_ENABLED=true      -SANDBOX_ENABLED=true      -SANDBOX_IMAGE=decaudit/sandbox:latest     volumes:      - ./uploads:/app/uploads      - ./reports:/app/reports      - /var/run/docker.sock:/var/run/docker.sock          networks:      - ai-audit-network    restart: unless-stopped  # DeepAudit 前端服务  deepaudit-frontend:    image: ghcr.io/lintsinghua/deepaudit-frontend:latest    container_name: deepaudit-frontend    depends_on:      - backend    ports:      - "3000:80"   # Web界面访问端口    environment:      - API_BASE_URL=http://backend:8000    networks:      - ai-audit-network    restart: unless-stopped  # PostgreSQL数据库  postgres:    image: postgres:15-alpine    container_name: postgres    environment:      - POSTGRES_DB=deepaudit      - POSTGRES_USER=postgres      - POSTGRES_PASSWORD=postgres    volumes:      - ./postgres_data:/var/lib/postgresql/data    networks:      - ai-audit-network    restart: unless-stopped  # Redis缓存  redis:    image: redis:7-alpine    container_name: redis    volumes:      - ./redis_data:/data    networks:      - ai-audit-network    restart: unless-stopped# 自定义网络,确保所有容器可以相互通信networks:  ai-audit-network:    driver: bridge
3、创建管理脚本
创建启动脚本文件
# 创建启动脚本文件sudo vim start.sh
将以下内容复制到编辑器中:
#!/bin/bashecho "=== 启动DeepAudit代码审计平台 ==="# 创建数据目录mkdir -p {ollama_data,postgres_data,redis_data,uploads,reports}# 设置权限chmod -R 755 .echo "1. 拉取并启动所有Docker服务..."# 自动检测使用哪个Docker Compose命令if command -v docker-compose &> /dev/null; then    echo "检测到 docker-compose(旧版),使用带连字符的命令"    DOCKER_COMPOSE_CMD="docker-compose"elif docker compose version &> /dev/null; then    echo "检测到 docker compose(新版),使用不带连字符的命令"    DOCKER_COMPOSE_CMD="docker compose"else    echo "错误:未找到Docker Compose命令"    echo "请安装Docker Compose:"    echo "sudo apt-get install docker-compose-plugin"    exit 1fi# 停止并清理旧容器$DOCKER_COMPOSE_CMD down# 启动所有服务$DOCKER_COMPOSE_CMD up -decho "2. 等待服务启动..."sleep 15echo "3. 检查服务状态:"docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"echo ""echo "4. 开始拉取AI模型(deepseek-coder:6.7b)..."echo "   注意:模型大小约4GB,下载需要一些时间"echo "   下载进度可以在另一个终端查看:docker logs ollama -f"# 在后台拉取模型docker exec ollama ollama pull deepseek-coder:6.7b > /tmp/ollama_pull.log 2>&1 &echo "   模型下载任务已在后台启动..."echo ""echo "5. 服务访问信息:"echo "   - DeepAudit Web界面: http://localhost:3000"echo "   - Ollama API: http://localhost:11434"echo ""echo "6. 监控命令:"echo "   - 查看模型下载进度: docker logs ollama -f"echo "   - 查看已下载模型: docker exec ollama ollama list"echo "   - 停止所有服务: cd /opt/ai-audit && docker-compose down"echo ""echo "首次启动可能需要较长时间(取决于网络速度)。"echo "模型下载期间,其他服务已正常运行,可以访问Web界面进行初始配置。"
#设置权限sudo chmod +x start.sh
创建停止脚本文件
# 创建停止脚本sudo vim stop.shsudo chmod +x stop.sh
将以下内容复制到编辑器中:
#!/bin/bashecho "=== 停止DeepAudit代码审计平台 ==="docker compose down

创建日志查看脚本文件

# 创建日志查看脚本sudo vim logs.shsudo chmod +x logs.sh
将以下内容复制到编辑器中:
#!/bin/bashecho "=== 查看服务日志 ==="echo "1. 查看所有服务日志: docker compose logs"echo "2. 查看Ollama日志: docker logs ollama -f"echo "3. 查看DeepAudit后端日志: docker logs backend -f"echo ""echo "请选择要查看的日志(输入数字):"select opt in "所有服务" "Ollama" "DeepAudit后端" "退出"; do  case $opt in    "所有服务") docker compose logs -f; break ;;    "Ollama") docker logs ollama -f; break ;;    "DeepAudit后端") docker logs backend -f; break ;;    "退出") break ;;    *) echo "无效选项";;  esacdone
4、启动一体化服务
运行启动脚本
# 启动所有服务sudo ./start.sh
注意:首次运行会下载多个Docker镜像,包括:1. Ollama (~1GB)2. DeepAudit前后端 (~1GB)3. PostgreSQL (~200MB)4. Redis (~50MB)总共约 2.5GB 下载量,请确保网络连接良好。
# 可查看所有容器状态docker ps# 预期输出类似:# NAMES                STATUS              PORTS# ollama               Up 5 minutes        0.0.0.0:11434->11434/tcp# backend              Up 5 minutes        3001/tcp# deepaudit-frontend   Up 5 minutes        0.0.0.0:3000->80/tcp# postgres             Up 5 minutes        5432/tcp# redis                Up 5 minutes        6379/tcp
#Ollama容器会自动下载 deepseek-coder:6.7b 模型(约4GB),查看进度:# 查看Ollama容器日志docker logs ollama --tail 20# 持续查看日志(按Ctrl+C退出)docker logs ollama -f
# 查看当前下载进度docker exec ollama ollama list# 或者通过API查看curl http://localhost:11434/api/tags

📁 完整的目录结构应该是:

/opt/ai-audit/├── docker-compose.yml    # Docker编排文件(你正在创建)├── start.sh             # 启动脚本├── stop.sh              # 停止脚本├── logs.sh              # 日志查看脚本├── ollama_data/         # Ollama模型数据(自动创建)├── postgres_data/       # 数据库数据(自动创建)├── redis_data/          # Redis缓存数据(自动创建)├── uploads/             # 上传文件(自动创建)└── reports/             # 审计报告(自动创建)

可以查看容器网段情况

# 直接查看所有容器IP                             for container in $(docker ps --format "{{.Names}}"); do  echo "=== $container ==="  echo "状态: $(docker inspect -f '{{.State.Status}}' $container)"  echo "IP地址: $(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $container)"  echo "端口: $(docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}}{{$p}}->{{(index $conf 0).HostPort}} {{end}}' $container)"  echo ""

5、模型配置

5.1、配置LLM

登录DeepAudit Web界面(http://localhost:3000),在系统设置中手动配置:

  • LLM提供商:选择 Ollama

  • API地址:http://ollama:11434

  • 模型名称:deepseek-coder:6.7b

  • API密钥:留空(本地部署不需要api密钥也可以自己设置)

5.2、配置嵌入式模型
dockerexec ollama ollama pull nomic-embed-text  #拉取嵌入式模型#查看已拉取的模型docker exec ollama ollama list
#测试嵌入模型会返回向量curl -X POST http://localhost:11434/api/embeddings \  -H "Content-Type: application/json" \  -d '{    "model": "nomic-embed-text",    "prompt": "Hello, world!"  }'

在DeepAudit的Web界面中,进入系统设置,找到嵌入模型(Embedding Model)配置部分。确保配置如下:

  • 嵌入模型提供商:Ollama

  • 嵌入模型名称:nomic-embed-text

  • API地址:如果是Ollama模式,则填写 http://ollama:11434

项目审计,能审计500MB以内的压缩包

最新文章

随机文章