المراقبة المحلية أم السحابة: لماذا تستضيف نظام NVR الخاص بك
تُسجّل حلول المراقبة SaaS — مثل Reolink Cloud وAmazon Ring وSynology Surveillance Station المرتبطة بخوادم خارجية — تدفقات الفيديو على خوادم أطراف ثالثة. في مقابل اشتراك شهري، تحصل على تطبيق موبايل وتخزين بعيد واكتشاف للأحداث. لكنك تتنازل عن السيطرة الكاملة على ما يجري أمام كاميراتك.
استضافة نظام NVR الخاص بك على VPS تعكس هذه المعادلة: تدفقاتك لا تغادر بنيتك التحتية قط، واكتشاف الكائنات (الأشخاص والمركبات والحيوانات) يعمل محليًا دون إرسال أي صورة لطرف ثالث، والتسجيلات مخزّنة على أقراصك أنت.
Frigate NVR هو المرجع مفتوح المصدر في هذه الفئة. يستقبل تدفقات RTSP من كاميرات IP، ويقطّع مقاطع عند الأحداث المكتشفة، ويحتفظ بلقطات ويوفر واجهة REST API متوافقة مع Home Assistant. الإصدار 0.18، الصادر في سبتمبر 2026، يستبدل ملف config.yml الإلزامي بواجهة رسومية متكاملة: تضبط الكاميرات ومناطق الكشف والعتبات من المتصفح دون لمس YAML إن شئت.
الفوائد العملية لـ Frigate ذاتي الاستضافة على VPS
- تدفقات الفيديو والتسجيلات محلية 100%: لا يصل أي طرف ثالث إلى لقطاتك.
- اكتشاف الكائنات بالذكاء الاصطناعي (أشخاص، مركبات، حيوانات) يعمل على معالجك الخاص دون حصص API.
- لا اشتراك متكرر: تدفع مقابل VPS لا مقابل رخصة اكتشاف.
- تكامل أصلي مع Home Assistant عبر MQTT وواجهة REST API.
- مقاطع الأحداث واللقطات والجدول الزمني متاحة من واجهة Frigate.
- متوافق مع كل كاميرات IP تقريبًا عبر بروتوكول RTSP القياسي.
- مناطق كشف قابلة للضبط لكل كاميرا لتصفية التنبيهات الخاطئة.
- إعداد كامل عبر الواجهة الرسومية منذ الإصدار 0.18 — YAML ممكن لكنه لم يعد إلزاميًا.
المتطلبات بالأرقام: تحديد مواصفات VPS لـ Frigate
Frigate تطبيق يستهلك موارد CPU بشكل مكثّف في وضع البرمجيات فقط. يعتمد اكتشاف الكائنات على نموذج TensorFlow Lite يُنفَّذ على كل إطار مُحلَّل.
لـ 1 إلى 2 كاميرا بدقة 1080p: 2 vCPU و2 جيجابايت RAM هو الحد الأدنى الوظيفي. معدّل التحليل الموصى به: 5 إطارات في الثانية كحد أقصى.
لـ 3 إلى 5 كاميرات بدقة 1080p: 4 vCPU و4 جيجابايت RAM يوفران هامشًا مريحًا. خطة VPS Power (4 vCPU / 8 GB جيجابايت RAM) هي الحد الأدنى الواقعي لهذه الحالة.
لأكثر من 5 كاميرات: 6 إلى 8 vCPU و8 جيجابايت RAM أو أكثر. التسريع عبر Coral TPU أو GPU يقلّص الحمل على CPU بشكل كبير لكنه غير متاح على VPS المُستضاف الاعتيادي.
التخزين: كل كاميرا 1080p تُنتج بالمتوسط 1 إلى 3 جيجابايت في الساعة في وضع التسجيل المستمر. في الوضع الحدثي، خصّص 5 إلى 15 جيجابايت لكل كاميرا يوميًا.
الشبكة: كل تدفق RTSP يستهلك 1 إلى 4 ميغابت/ثانية. كاميرا H.264 بدقة 1080p تستهلك عادةً 1.5 إلى 2.5 ميغابت/ثانية.
البرمجيات المطلوبة: Docker Engine 24+ وDocker Compose v2، وصول root إلى VPS، نطاق فرعي DNS، وبروكسي عكسي (Nginx أو Caddy أو Traefik) لإنهاء TLS.
نشر Frigate NVR باستخدام Docker Compose
إنشاء هيكل مجلدات الإعداد
اتصل بـ VPS عبر SSH وأنشئ هيكل المجلدات الذي سيستخدمه Frigate للإعداد والتسجيلات واللقطات:
mkdir -p /opt/frigate/{config,storage/recordings,storage/clips,storage/exports} cd /opt/frigateيتوقع Frigate ملف الإعداد في
/opt/frigate/config/config.yml. مع الإصدار 0.18، يمكن أن يظل هذا الملف في حده الأدنى عند البدء — تُكمل الواجهة الرسومية الإعداد بعد ذلك.إنشاء إعداد بدء تشغيل أدنى
أنشئ
/opt/frigate/config/config.ymlبالمحتوى التالي:mqtt: enabled: false record: enabled: true retain: days: 7 mode: motion snapshots: enabled: true retain: default: 10 detectors: cpu1: type: cpu num_threads: 3مفتاح
detectorsيُعلن عن كاشف برمجي على CPU.num_threads: 3توازن جيد لـ 2 إلى 4 كاميرات.كتابة ملف Docker Compose
أنشئ
/opt/frigate/docker-compose.ymlبالإعداد التالي:services: frigate: container_name: frigate image: ghcr.io/blakeblackshear/frigate:stable restart: unless-stopped shm_size: "256mb" volumes: - /opt/frigate/config:/config - /opt/frigate/storage:/media/frigate - /etc/localtime:/etc/localtime:ro ports: - "5000:5000" - "8554:8554" - "8555:8555/tcp" - "8555:8555/udp" environment: FRIGATE_RTSP_PASSWORD: "changeme" devices: - /dev/dri:/dev/driالمنافذ المكشوفة: 5000 للواجهة الرسومية وREST API، 8554 لخادم RTSP الداخلي، 8555 لـ WebRTC.
تشغيل Frigate ومراجعة السجلات
من مجلد
/opt/frigate، شغّل الحاوية وراقب سجلات البدء:docker compose up -d docker compose logs -f frigateعند أول تشغيل، يُنزّل Frigate نموذج TensorFlow Lite (~6 ميغابايت) ويُهيّئ قاعدة بيانات SQLite. يستغرق ذلك 30 إلى 90 ثانية. يجب أن تظهر
Frigate is runningفي السجل.ادخل إلى الواجهة على
http://<ip-vps>:5000للتحقق الأولي.إعداد بروكسي عكسي للوصول عبر HTTPS
Frigate لا يتعامل مع TLS بشكل أصلي. أعدّ Nginx كبروكسي عكسي. أنشئ
/etc/nginx/sites-available/frigate:server { listen 443 ssl; server_name frigate.yourdomain.com; ssl_certificate /etc/letsencrypt/live/frigate.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/frigate.yourdomain.com/privkey.pem; location / { proxy_pass http://127.0.0.1:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_read_timeout 86400; } }احصل على شهادة Let's Encrypt:
certbot --nginx -d frigate.yourdomain.com.إضافة الكاميرات عبر واجهة Frigate v0.18 الرسومية
افتح واجهة Frigate في المتصفح. يوفر الإصدار 0.18 معالج إضافة كاميرا من Configuration → Cameras → Add Camera. أدخل:
- اسم الكاميرا (بدون مسافات أو أحرف خاصة).
- رابط RTSP مثلrtsp://admin:[email protected]:554/stream1.
- الدقة تُكتشف تلقائيًا أو تُحدَّد يدويًا.
- ملف الكشف: *Standard* للتوازن بين الدقة وحمل CPU، *Lightweight* لـ VPS الأصغر.تُنشئ الواجهة وتُحقّق من كتلة YAML المقابلة قبل تطبيقها — يمكنك التبديل إلى وضع YAML الخام عبر تبويب Advanced في أي وقت.
التحقق من عمل التسجيلات والكشف
من لوحة تحكم Frigate، انتقل إلى Events لتأكيد توليد أحداث الكشف. تحقق من تبويب Recordings للتحقق من كتابة ملفات mp4 في
/opt/frigate/storage/recordings/.على VPS، راقب حمل CPU في الوقت الفعلي:
docker stats frigateفي وضع CPU فقط مع كاميرتين بدقة 1080p وتحليل 5 إطارات/ثانية، توقع 60 إلى 90% من vCPU واحد.
ضبط الكاميرات ومناطق الكشف عبر الواجهة الرسومية
الميزة المحورية في Frigate v0.18 هي محرر مناطق الكشف المرئي. حتى الإصدار 0.14، كان تحديد المنطقة يتطلب حساب إحداثيات المضلع يدويًا في ملف YAML.
منذ الإصدار 0.18، يعرض تبويب Zones لكل كاميرا الصورة المباشرة ويتيح رسم المضلعات بالماوس مباشرةً. كل منطقة تحصل على اسم (مثل entrance، garden، street) وفلاتر للكائنات — تستطيع تحديد أن منطقة street تتجاهل الأشخاص لكن تُنبّه عند المركبات.
أقنعة الحركة: تتيح الواجهة رسم أقنعة على المناطق التي تُولّد كثيرًا من التنبيهات الخاطئة كشجرة متحركة أو ضوء متقطع. القناع يمنع Frigate من تحليل تلك البكسلات دون التأثير على التسجيل.
عتبات الثقة: كل كائن قابل للكشف (شخص، سيارة، كلب، قطة...) له عتبة ثقة قابلة للضبط بين 0 و1. القيمة الافتراضية 0.5 معقولة؛ خفضها إلى 0.35 يزيد الحساسية على حساب تنبيهات خاطئة أكثر.
إعداد الإشعارات: يتكامل Frigate مع Home Assistant عبر MQTT أو REST API. دون Home Assistant، يمكنك إرسال التنبيهات إلى أي webhook عبر notify.webhook.
تأمين الوصول إلى واجهة Frigate
لا تتضمن واجهة Frigate نظام مصادقة في نسختها المستقرة. ثلاثة إجراءات تكميلية قبل نشر النطاق الفرعي:
مصادقة HTTP Basic عبر Nginx: أضف auth_basic وauth_basic_user_file في كتلة location. أنشئ ملف كلمات المرور بـ htpasswd -c /etc/nginx/.htpasswd your_user.
تقييد IP: أضف allow 203.0.113.x; deny all; في كتلة location إذا كنت تصل من IP ثابت.
الوصول عبر VPN فقط: الحل الأكثر متانةً. نشر WireGuard على نفس VPS وجعل المنفذ 5000 متاحًا محليًا فقط أو عبر نفق VPN — الواجهة لن تكون مكشوفة على الإنترنت مباشرةً.
استكشاف الأخطاء وإصلاحها: الأخطاء الشائعة
Failed to connect to camera: Connection refused أو انتهاء مهلة الاتصال
Frigate لا يصل إلى تدفق RTSP. تحقق من صحة رابط RTSP عبر ffprobe من VPS: ffprobe -v quiet -print_format json -show_streams rtsp://.... إذا كانت الكاميرا على شبكة خاصة منفصلة عن VPS فهي غير متاحة مباشرةً — تحتاج إلى نفق أو RTSP relay.
ffmpeg process crashed يتكرر في السجلات
الأرجح: كودك غير مدعوم (H.265/HEVC) أو دقة عالية جدًا للنطاق الترددي المتاح. الحل: أضف input_args: preset-rtsp-restream في إعداد الكاميرا، أو خفّض دقة الكاميرا إلى 1280×720.
Insufficient shared memory عند بدء تشغيل الحاوية
يعني أن shm_size صغير جدًا. القاعدة: 256 ميغابايت لكاميرتين، 512 ميغابايت لأربع، 1 جيجابايت لثماني فأكثر. عدّل shm_size في docker-compose.yml.
Database is locked أو تعطلات عشوائية
Frigate يستخدم SQLite الذي يتعامل بشكل سيء مع أقراص الشبكة (NFS, CIFS). انقل قاعدة البيانات إلى قرص محلي: db_path: /tmp/frigate.db في الإعداد. يمكن أن تبقى التسجيلات على القرص البعيد.
الكشف لا يُطلَق رغم وجود حركة مرئية
تحقق أولًا من أن منطقة الكشف تغطي المنطقة المطلوبة في المحرر المرئي. ثم راجع تبويب Debug للكاميرا في الواجهة: يُظهر مستطيلات الكشف في الوقت الفعلي على التدفق. إذا لم تظهر مستطيلات، النموذج يعمل لكنه لا يجد شيئًا — عتبة الثقة قد تكون عالية جدًا أو الكائنات صغيرة جدًا في إطار الكاميرا.
للمزيد
يحوّل Frigate NVR VPS اعتياديًا إلى محطة مراقبة سيادية. اكتشاف الكائنات يعمل محليًا، تسجيلاتك تبقى على أقراصك، والإصدار 0.18 يجعل التثبيت متاحًا دون خبرة YAML.
إذا كنت توسّع مجموعة تطبيقاتك ذاتية الاستضافة، تغطي المقالات التالية خدمات تكميلية تتكامل جيدًا مع Frigate: Jellyfin لمكتبة الوسائط، Pi-hole لتصفية DNS، وHomepage كلوحة تحكم لجميع خدماتك. خطة VPS Power تغطي معظم إعدادات 3 إلى 5 كاميرات في وضع CPU فقط مع هامش للحاويات الأخرى.