دليل النشر

Homarr أو Glance: لوحة تحكم self-hosted لخادم VPS

انشر على VPS Cloud ←

دليل عملي

Homarr أو Glance: لوحة تحكم self-hosted لخادم VPS

الاستضافة الذاتية8 دقائق للقراءةعدد الخطوات: 11

‏تدير خمسة أو عشرة أو خمسة عشر حاوية Docker على خادم VPS وتنتقل بين الواجهات واحدة تلو الأخرى — ‏Dozzle للسجلات، وUptime Kuma للحالة، وGitea للكود. لوحة تحكم مستضافة ذاتيًا تحل هذه المشكلة في أقل من ساعة. يبرز أداتان اليوم: **‏Homarr** الغني بالميزات والمرئي، و**‏Glance** البسيط وخفيف الوزن للغاية. يقارن هذا الدليل بين الاثنين، ويثبّت كل منهما خطوة بخطوة، ويساعدك على الاختيار.

المحتويات· لماذا تحتاج إلى لوحة تحكم مستضافة ذاتيًا على خادم VPS1/11
  1. 01لماذا تحتاج إلى لوحة تحكم مستضافة ذاتيًا على خادم VPS
  2. 02حالات استخدام عملية
  3. 03‏Homarr: لوحة تحكم متكاملة بواجهة رسومية
  4. 04نشر Homarr باستخدام Docker Compose
  5. 05‏Glance: ملف Go ثنائي وإعداد YAML وبدون قاعدة بيانات
  6. 06نشر Glance باستخدام Docker
  7. 07‏Homarr مقابل Glance: جدول مقارنة
  8. 08العرض عبر HTTPS مع بروكسي عكسي
  9. 09التصليب الأمني: تقييد الوصول إلى لوحة التحكم
  10. 10استكشاف الأخطاء: الأخطاء الشائعة
  11. 11أي أداة تختار؟

لماذا تحتاج إلى لوحة تحكم مستضافة ذاتيًا على خادم VPS

‏خادم VPS متعدد التطبيقات بلا صفحة مركزية يعني إدارة أعمى. تحفظ كل منفذ (http://your-domain.com:3001‏، :8080‏، :9000‏…)، وتضيع الوقت في البحث عن واجهة خدمة توقفت منذ ثلاثة أسابيع، وليس لديك أي عرض موحّد لحالة حاوياتك.

‏لوحة تحكم مستضافة ذاتيًا تحل هذا دون تثقيل بنيتك التحتية: صفحة واحدة، متاحة عبر HTTPS خلف البروكسي العكسي، تجمع الحالة والاختصارات والمقاييس. لا تشارك أي بيانات مع طرف ثالث، ولا تدفع اشتراكًا إضافيًا.

حالات استخدام عملية

  • ‏الصفحة الرئيسية للمتصفح تشير إلى خادمك الخاص: جميع خدماتك بنقرة واحدة.
  • ‏عرض الحالة اللحظية لحاويات Docker دون فتح Portainer أو Dozzle.
  • ‏تجميع خلاصات RSS وأخبار تقنية (‏Hacker News، ‏Reddit، ‏GitHub releases) على الشاشة ذاتها مع خدماتك.
  • ‏وصول مركزي لفريق أو وكالة تتشارك خادم VPS مشتركًا.
  • ‏صفحة بداية لمختبرك المنزلي أو بنية التطوير لديك.
  • ‏مراقبة خفيفة دون نشر مجموعة كاملة من Grafana/‏Prometheus.

‏Homarr: لوحة تحكم متكاملة بواجهة رسومية

‏Homarr لوحة تحكم مستضافة ذاتيًا بـ Next.js مع واجهة إعداد رسومية بالكامل — تسحب البلاطات وتفلتها، وتضبط تكاملات Docker وSonarr وRadarr وJellyfin أو أي خدمة تملك API. تعمل في حاوية Docker واحدة (صورة ghcr.io/homarr-labs/homarr‏) وتحفظ إعداداتها على وحدة تخزين.

‏المتطلبات: خادم VPS بذاكرة وصول عشوائي لا تقل عن 512 ميغابايت متاحة بعد حاوياتك الأخرى، مع تثبيت Docker وDocker Compose، واسم نطاق أو نطاق فرعي يشير إلى عنوان IP الخاص بك. توقع 150 إلى 250 ميغابايت من ذاكرة الوصول العشوائي عند الخمول حسب التكاملات النشطة.

نشر Homarr باستخدام Docker Compose

  1. إنشاء المجلد وملف Compose

    ‏على خادم VPS، أنشئ مجلدًا مخصصًا وملف docker-compose.yml‏:

    mkdir -p /opt/homarr && cd /opt/homarr

    ‏محتوى ملف docker-compose.yml‏:

    services:
      homarr:
        image: ghcr.io/homarr-labs/homarr:latest
        container_name: homarr
        restart: unless-stopped
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
          - ./appdata:/appdata
        environment:
          - SECRET_ENCRYPTION_KEY=your-random-32-char-key
        ports:
          - "7575:7575"

    ‏SECRET_ENCRYPTION_KEY‏ مطلوب: يشفّر Homarr أسرار تكاملاته (رموز API وكلمات المرور) بهذا المفتاح. أنشئ مفتاحًا باستخدام openssl rand -hex 32‏.

  2. توليد مفتاح التشفير

    ‏يتطلب Homarr مفتاحًا سداسي عشريًا مؤلفًا من 64 حرفًا:

    openssl rand -hex 32

    ‏انسخ القيمة إلى SECRET_ENCRYPTION_KEY‏ في ملف Compose. بدون هذا المتغير، ترفض الحاوية الإقلاع.

  3. تشغيل الحاوية

    docker compose up -d

    ‏يصبح Homarr متاحًا على http://your-domain.com:7575‏. عند الدخول الأول، أنشئ حساب المشرف. يتم الإعداد الأولي (البلاطات والسمة والتكاملات) بالكامل من واجهة الويب.

  4. إعداد تكامل Docker

    ‏مقبس Docker‏ (/var/run/docker.sock‏) مثبَّت للقراءة فقط. في واجهة Homarr، انتقل إلى ‏الإعدادات ← التكاملات وأضف تكامل Docker يشير إلى unix:///var/run/docker.sock‏. سيعرض Homarr تلقائيًا حالة (running/stopped) حاوياتك على البلاطات المرتبطة.

  5. إعداد Traefik كبروكسي عكسي

    ‏لعرض Homarr عبر HTTPS، أضف هذه التسميات إلى الخدمة في ملف Compose:

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.homarr.rule=Host(`dashboard.your-domain.com`)"
      - "traefik.http.routers.homarr.entrypoints=websecure"
      - "traefik.http.routers.homarr.tls.certresolver=letsencrypt"
      - "traefik.http.services.homarr.loadbalancer.server.port=7575"

    ‏احذف كتلة ports‏ إذا كنت تعرضه عبر Traefik فقط.

  6. بديل nginx

    ‏إذا كنت تستخدم nginx، أنشئ ملف vhost‏ /etc/nginx/sites-available/homarr.conf‏:

    server {
        listen 443 ssl;
        server_name dashboard.your-domain.com;
    
        ssl_certificate     /etc/letsencrypt/live/dashboard.your-domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/dashboard.your-domain.com/privkey.pem;
    
        location / {
            proxy_pass http://127.0.0.1:7575;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    ‏شهادة Let's Encrypt عبر certbot --nginx -d dashboard.your-domain.com‏.

‏Glance: ملف Go ثنائي وإعداد YAML وبدون قاعدة بيانات

‏Glance في الطرف المقابل من حيث التعقيد مقارنةً بـ Homarr. إنه ملف Go ثنائي ساكن: لا Node.js، لا قاعدة بيانات، لا واجهة إعداد. كل شيء يُعلَن في ملف glance.yml‏. يستهلك ‏أقل من 50 ميغابايت من ذاكرة الوصول العشوائي عند الخمول، مما يجعله الخيار الطبيعي لخادم VPS محدود الموارد.

‏الترخيص: ‏AGPL-3.0 (مثل Homarr). الكود المصدري على GitHub.

نشر Glance باستخدام Docker

  1. إنشاء المجلد وملف الإعداد

    mkdir -p /opt/glance && cd /opt/glance

    ‏أنشئ ملف glance.yml‏ بسيطًا مع أداة Hacker News وأداة Docker:

    server:
      host: 0.0.0.0
      port: 8080
    
    pages:
      - name: الرئيسية
        columns:
          - size: full
            widgets:
              - type: hacker-news
                title: Hacker News
    
          - size: small
            widgets:
              - type: docker-containers
                title: الحاويات
                collapsed-by-default: false

    ‏يعرض Glance المنفذ ‏8080 افتراضيًا.

  2. التشغيل باستخدام Docker Compose

    ‏أنشئ ملف docker-compose.yml‏:

    services:
      glance:
        image: glanceapp/glance:latest
        container_name: glance
        restart: unless-stopped
        volumes:
          - ./glance.yml:/app/glance.yml:ro
          - /var/run/docker.sock:/var/run/docker.sock:ro
        ports:
          - "8080:8080"

    ‏ابدأ بـ:

    docker compose up -d

    ‏يصبح Glance متاحًا على http://your-domain.com:8080‏.

  3. إضافة أداة الطقس

    ‏أداة weather‏ هي الأبسط في الإعداد — تتطلب موقعًا فقط:

    - type: weather
      title: الطقس
      location: Casablanca, Morocco
      units: metric
      hour-format: 24h

    ‏أضف هذه الكتلة في قسم widgets‏ في العمود الذي تختاره.

  4. إعداد البروكسي العكسي لـ Glance

    ‏مع Traefik، أضف في docker-compose.yml‏:

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.glance.rule=Host(`glance.your-domain.com`)"
      - "traefik.http.routers.glance.entrypoints=websecure"
      - "traefik.http.routers.glance.tls.certresolver=letsencrypt"
      - "traefik.http.services.glance.loadbalancer.server.port=8080"

    ‏مع nginx، نفس البنية كما في Homarr، مع استبدال المنفذ بـ 8080‏.

  5. إعادة التحميل التلقائية للإعداد

    ‏يراقب Glance ملف إعداده ويعيد التحميل تلقائيًا عند تعديله. لا حاجة لإعادة تشغيل الحاوية بعد كل إضافة أداة — سيعرض docker logs glance -f‏ السطر Config reloaded‏ بعد ثوانٍ.

‏Homarr مقابل Glance: جدول مقارنة

مرّر الجدول أفقيًا

المعيارHomarrGlance
ذاكرة الوصول العشوائي عند الخمول‏150 – 250 ميغابايت‏< 50 ميغابايت
الإعدادواجهة رسومية بالسحب والإفلاتملف YAML فقط
قاعدة البيانات‏SQLite مدمجةلا شيء
الأدوات المتاحة‏تكاملات (Sonarr, Jellyfin, Docker…) + بلاطات حرة‏RSS, Hacker News, طقس, Docker, GitHub, تقويم…
التحديث‏`docker compose pull && docker compose up -d`‏`docker compose pull && docker compose up -d`
الترخيصAGPL-3.0AGPL-3.0
الأنسب لـبنية تحتية غنية، استخدام يومي، مشاركة فريقخادم VPS خفيف، homelab بسيط، عرض سريع

العرض عبر HTTPS مع بروكسي عكسي

‏يستمع كلا الأداتين على HTTP محليًا (7575‏ لـ Homarr، 8080‏ لـ Glance). عرض لوحة تحكم مباشرةً على الإنترنت بدون TLS يعني نقل رموز التكامل والجلسات بنص واضح.

‏خياران شائعان:

‏Traefik — الخيار المُوصى به إذا كان لديك Traefik على خادم VPS. التسميات كافية (أمثلة أعلاه). يطلب Traefik شهادات Let's Encrypt ويجددها تلقائيًا عبر ACME DNS-01 أو HTTP-01.

‏nginx — الخيار الطبيعي إذا كان خادمك يعمل بالفعل على nginx. بنية proxy_pass http://127.0.0.1:<port>‏ متطابقة لكلا الأداتين؛ يتغير المنفذ فقط.

التصليب الأمني: تقييد الوصول إلى لوحة التحكم

‏لوحة تحكم مستضافة ذاتيًا تكشف خدماتك الداخلية. بعض الاحتياطات:

‏مصادقة Homarr: فعّل المصادقة المدمجة عند تسجيل الدخول الأول. لا تترك لوحة التحكم مفتوحة بدون كلمة مرور.

‏Glance: لا يوفر مصادقة أصلية. احمه بـ middleware في Traefik‏ (BasicAuth‏ أو ForwardAuth‏) أو عبر auth_basic‏ في nginx قبل عرضه علنيًا.

‏شبكة Docker مخصصة: أنشئ شبكة internal: true‏ للخدمات التي لا تحتاج وصولًا خارجيًا، وصل Homarr أو Glance فقط بشبكة Traefik.

‏مقبس Docker للقراءة فقط: يثبّت كلا الأداتين /var/run/docker.sock‏ — ثبّته بـ :ro‏ كما في الأمثلة أعلاه. حاوية مخترقة لن تستطيع تشغيل حاويات جديدة عبر المقبس.

استكشاف الأخطاء: الأخطاء الشائعة

‏Homarr يرفض الإقلاع — SECRET_ENCRYPTION_KEY missing: متغير البيئة غائب أو فارغ. أنشئ مفتاحًا بـ openssl rand -hex 32‏ وأضفه إلى ملف Compose.

‏Homarr يعرض "Docker integration error": تحقق من أن /var/run/docker.sock‏ مثبَّت في الحاوية (docker inspect homarr | grep docker.sock‏) وأن المقبس قابل للقراءة.

‏Glance لا يحمّل أداة docker-containers: مقبس Docker غير مثبَّت. أضف الوحدة /var/run/docker.sock:/var/run/docker.sock:ro‏ إلى Compose.

‏Glance يعرض شاشة بيضاء: ملف glance.yml‏ يحتوي على خطأ في بنية YAML. تحقق بـ docker logs glance‏ — رسالة الخطأ تشير إلى السطر الدقيق.

‏خطأ 502 Bad Gateway خلف nginx/‏Traefik: الحاوية لا تعمل أو المنفذ لا يتطابق. تحقق بـ docker ps | grep homarr‏ أو docker ps | grep glance‏.

أي أداة تختار؟

‏اختر Homarr إذا كان لديك خدمات متعددة بـ APIs‏ (Sonarr, Radarr, Jellyfin, Pi-hole…)، أو إذا كنت تفضل الإعداد عبر واجهة رسومية، أو إذا كنت تشارك لوحة التحكم مع آخرين. خصص 200 ميغابايت إضافية من ذاكرة الوصول العشوائي في ميزانية الحاويات.

‏اختر Glance إذا كان خادم VPS محدود الذاكرة، أو إذا كنت مرتاحًا مع YAML، أو إذا كنت تريد أداة تبدأ في ثوانٍ وتستهلك الحد الأدنى. الإعداد المُعتمَد في ملف نصي هو أيضًا ميزة للبيئات المُدارة كـ infrastructure-as-code.

‏الأداتان تعملان معًا على خادم VPS الواحد إذا كانت الذاكرة كافية — Homarr كلوحة رئيسية وGlance كعرض سريع جانبي.

خادم VPS لاستضافة لوحة التحكم الخاصة بك

‏خادم VPS من ServOrbit بصلاحية root وعنوان IPv4 مخصص يمنحك حرية تشغيل Homarr وGlance وجميع خدماتك خلف بروكسي عكسي، دون قيود على المنافذ أو الحاويات.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة