إعدادات Docker
يوفّر AuroraSOC إعدادين لـ Docker Compose: مكدس إنتاج كامل ومكدس تطوير خفيف.
مكدس الإنتاج (docker-compose.yml)
عزل الشبكات
يستخدم مكدس الإنتاج أربع شبكات Docker لأغراض الأمان:
| الشبكة | الخدمات | الغرض |
|---|---|---|
frontend | dashboard, api | موجّهة للعامة |
backend | api, agents, rust-core | خدمات داخلية |
data | postgres, redis, qdrant | مخازن بيانات |
messaging | nats, mqtt, redis | نقل الأحداث |
لماذا عزل الشبكات؟ إذا تعرضت لوحة التحكم للاختراق، فلن يتمكن المهاجم من الوصول مباشرة إلى قاعدة البيانات أو الوكلاء. وحدها بوابة API تربط بين شبكتي الواجهة الأمامية والخلفية.
الخدمات الأساسية
services:
api:
build:
context: .
dockerfile: Dockerfile.python
ports:
- "8000:8000"
environment:
- AURORA_PG_HOST=postgres
- AURORA_REDIS_HOST=redis
- AURORA_QDRANT_HOST=qdrant
- AURORA_NATS_URL=nats://nats:4222
- AURORA_MQTT_HOST=mosquitto
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
networks:
- frontend
- backend
- data
- messaging
فحوصات السلامة
Every service defines health checks:
postgres:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U aurora"]
interval: 10s
timeout: 5s
retries: 5
redis:
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
تنتظر الخدمات جاهزية تبعياتها قبل البدء، مما يمنع أخطاء الاتصال أثناء الإقلاع.
مكدس التطوير (docker-compose.dev.yml)
مكدس التطوير خفيف ويشمل الخدمات الخارجية فقط:
services:
postgres:
image: postgres:16
ports:
- "5432:5432"
redis:
image: redis:7-alpine
ports:
- "6379:6379"
qdrant:
image: qdrant/qdrant:latest
ports:
- "6333:6333"
nats:
image: nats:latest
ports:
- "4222:4222"
mosquitto:
image: eclipse-mosquitto:2
ports:
- "1883:1883"
شغّل AuroraSOC محليًا بالاعتماد على هذه الخدمات:
# Start infrastructure
docker compose -f docker-compose.dev.yml up -d
# Run API locally
python -m aurorasoc.api.main
ملفات Dockerfile
Dockerfile.python (API + الوكلاء)
بناء متعدد المراحل لتطبيق Python:
# Stage 1: Build
FROM python:3.12-slim as builder
WORKDIR /app
COPY pyproject.toml .
RUN pip install --no-cache-dir .
# Stage 2: Runtime
FROM python:3.12-slim
COPY /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY aurorasoc/ /app/aurorasoc/
WORKDIR /app
CMD ["python", "-m", "aurorasoc.api.main"]
Dockerfile.rust (المحرك الأساسي)
بناء Rust متعدد المراحل:
FROM rust:1.77 as builder
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
COPY src/ ./src/
COPY proto/ ./proto/
RUN cargo build --release
FROM debian:bookworm-slim
COPY /app/target/release/aurora_core /usr/local/bin/
CMD ["aurora_core"]
Dockerfile.dashboard (Next.js)
FROM node:20-alpine as builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine
COPY /app/.next/standalone ./
COPY /app/.next/static ./.next/static
CMD ["node", "server.js"]
أهداف Makefile
يوفّر ملف Makefile أوامر مختصرة تسهّل التشغيل:
make docker-up # Start full compose stack
make docker-down # Stop compose stack
make docker-logs # Tail compose logs
make vllm-up # Start only vLLM service
make vllm-status # Check vLLM health
make train-specialist # Fine-tune specialist model
make train-orchestrator # Fine-tune orchestrator model
make train-all # Train both specialist + orchestrator
make serve-vllm # Serve trained model with vLLM
make serve-ollama # Serve trained model with Ollama
make docker-build # Build all Docker images
make migrate # Run Alembic migrations
make clean # Remove local build/test artifacts and caches
Development Workflow
مسار عمل التطوير الموصى به:
make docker-up— Start infrastructure and services- Develop in your IDE with hot-reload
make test— Run testsmake lint— Check code qualitymake docker-build— Build Docker images for staging