# Veedon Edge Box — يعمل على أي Mini PC بنظام Linux + Docker
# التجهيز: انسخ .env من لوحة الإدارة (صفحة الفرع) ثم: docker compose up -d
#
# white-label: المحرك (veedon-engine) صورته veedon-ai/edge-engine، بلا أي منفذ
# منشور — لا واجهة ولا API يصل إليهما أحد من شبكة الفرع. كل شيء من سحابة Veedon.
#
# حماية: الوكيل يحسب بصمة العتاد ويرسلها للسحابة؛ المحرك لا يعمل إلا بعد موافقة
# الأدمن + تطابق البصمة + كون الجهاز غير افتراضي. نسخة على جهاز/VM آخر تبقى معطّلة.

services:
  veedon-engine:
    image: veedon-ai/edge-engine:stable
    container_name: veedon-engine
    restart: unless-stopped
    stop_grace_period: 30s
    shm_size: "256mb"
    volumes:
      - ./config:/config
      - ./storage:/media/frigate
      - /etc/localtime:/etc/localtime:ro
    # لا ports: — مقصود (مخفي تماماً عن شبكة الفرع)

  veedon-agent:
    build: ./agent
    image: veedon-ai/edge-agent:latest
    container_name: veedon-agent
    restart: unless-stopped
    environment:
      - VEEDON_CLOUD_URL=${VEEDON_CLOUD_URL}
      - VEEDON_DEVICE_TOKEN=${VEEDON_DEVICE_TOKEN}
    volumes:
      - ./config:/config
      - ./models:/models
      - /var/run/docker.sock:/var/run/docker.sock  # لإدارة المحرك (تشغيل/إيقاف/تحديث)
      # بصمة العتاد (read-only) — تربط النسخة بهذا الجهاز الفعلي
      - /etc/machine-id:/host/machine-id:ro
      - /etc/hostname:/host/hostname:ro
      - /sys/class/dmi/id:/host/dmi:ro
    depends_on:
      - veedon-engine
