لماذا Glance مثالي لخادم VPS
ما تحصل عليه افتراضيًا
- أدوات مدمجة: خلاصات RSS، Hacker News، Reddit، الطقس، الإشارات المرجعية، ساعة العالم
- مقاييس الخادم الحية: CPU وRAM والقرص ومتوسط التحميل
- حالة حاويات Docker (قيد التشغيل / متوقفة / متوقفة مؤقتًا)
- سمات فاتحة/داكنة وألوان مخصصة عبر YAML
- لا تبعيات خارجية: ملف ثنائي Go ثابت واحد (~15 ميغابايت)
- إعادة تحميل الإعداد مباشرةً دون إعادة تشغيل
Glance مقابل البدائل: Heimdall وHomepage وHomarr
مقارنة لوحات التحكم ذاتية الاستضافة
مرّر الجدول أفقيًا
| الأداة | اللغة | الذاكرة خاملة | الإعداد | مقاييس Docker | أدوات RSS/أخبار |
|---|---|---|---|---|---|
| **Glance** | Go | < 25 ميغابايت | YAML خالص | نعم (للقراءة فقط) | نعم (مدمج) |
| Homepage | Node/React | ~120 ميغابايت | YAML | نعم | جزئي |
| Homarr | Node/React | ~150 ميغابايت | واجهة رسومية + JSON | نعم | عبر تكامل |
| Heimdall | PHP/Laravel | ~200 ميغابايت | واجهة رسومية + MySQL | لا | لا |
يتميز Glance حين تكون الخفة والسرعة أهم من واجهة إعداد رسومية. بالنسبة للفرق غير التقنية التي تفضل النقر على تحرير YAML، فإن Homarr أو Heimdall هي بدائل صالحة.
المتطلبات الأساسية
ما تحتاجه قبل البدء
- خادم ServOrbit VPS يعمل بنظام Ubuntu 22.04 / Debian 12 (يكفي ≥ 1 vCPU و512 ميغابايت ذاكرة)
- تثبيت
dockerوdocker compose(Docker Engine 24+, Compose v2) - وصول SSH بصلاحيات root أو sudo
- نطاق فرعي يشير إلى خادمك (مثل
glance.mysite.tld) — اختياري لكن موصى به لـ HTTPS
نشر Glance على خادم ServOrbit VPS
التثبيت خطوة بخطوة
إنشاء دليل العمل
اتصل بخادمك عبر SSH وأنشئ المجلد الذي سيحتوي إعداد Glance:
mkdir -p /opt/glance && cd /opt/glanceكتابة ملف `docker-compose.yml`
أنشئ الملف التالي. تثبيت مقبس Docker للقراءة فقط إلزامي (انظر قسم الأمان أدناه):
services: glance: image: glanceapp/glance:latest restart: unless-stopped ports: - "8080:8080" volumes: - ./glance.yml:/app/glance.yml:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /proc:/proc:ro environment: - TZ=UTCإنشاء الإعداد الأساسي `glance.yml`
يحدد ملف YAML هذا صفحاتك وأعمدتك وأدواتك:
server: port: 8080 pages: - name: الرئيسية columns: - size: small widgets: - type: clock hour-format: 24h - type: resource-usage - size: full widgets: - type: hacker-news - type: rss feeds: - url: https://blog.servOrbit.com/rss title: ServOrbit Blog - size: small widgets: - type: docker-containersتشغيل الحاوية
docker compose up -dتحقق من أنها تعمل:
docker compose ps— يجب أن تظهر الحالةUp.فتح جدار الحماية (إن كان UFW مفعّلاً)
ufw allow 8080/tcpافتح
http://<IP-VPS>:8080في متصفحك للتأكد من استجابة Glance.إعداد وكيل عكسي nginx مع HTTPS
لخدمة Glance على
https://glance.mysite.tld، أنشئ vhost لـ nginx واحصل على الشهادة عبر Certbot:certbot --nginx -d glance.mysite.tld.تفعيل المصادقة الأساسية HTTP (موصى به)
Glance لا يوفر مصادقة مدمجة. احمِ الوصول عبر nginx:
htpasswd -c /etc/nginx/.htpasswd adminثم أضف في كتلة
location /من vhost:auth_basic "Glance"; auth_basic_user_file /etc/nginx/.htpasswd;أعد تحميل nginx:
systemctl reload nginx.التحقق من مقاييس النظام
تقرأ أداة
resource-usageملف/proc— لذا فإن تثبيت:roفيdocker-compose.ymlإلزامي. إن لم تظهر المقاييس، تحقق:docker compose logs glance | grep -i proc.إعادة تحميل الإعداد دون إعادة تشغيل
أي تعديل على
glance.ymlيُطبَّق بإرسال إشارةSIGHUPللحاوية:docker kill --signal=SIGHUP glance_glance_1تفعيل التحديثات التلقائية (اختياري)
انشر [Watchtower](https://containrrr.dev/watchtower/) للحفاظ على صورة Glance محدّثة تلقائيًا، أو أدِرها يدويًا:
docker compose pull && docker compose up -d
إعداد YAML المتقدم: الأدوات والسمات والتخطيط
تكمن قوة Glance في ملف YAML الخاص به. إليك أكثر التخصيصات فائدةً.
خيارات الإعداد المتقدمة
- سمة مخصصة — أضف تحت
server:: theme: { background-color: "240 21 15", primary-color: "217 92 83" }(بتنسيق HSL بدونhsl()) - صفحات متعددة — أضف كتل
- name:متعددة تحتpages:(مثل "تطوير"، "عملاء"، "شخصي") - أداة الإشارات المرجعية —
type: bookmarksمع مجموعات روابط لمركزة الوصول السريع لأدواتك الداخلية - أداة المراقبة —
type: monitorمع قائمة عناوين URL: تجري Glance فحوصات HTTP وتعرض زمن الاستجابة والحالة في الوقت الفعلي - أداة إصدارات GitHub —
type: releasesمع قائمة مستودعات: مثالية لتتبع الإصدارات الجديدة من أدواتك - فترة التحديث — تقبل كل أداة
cache: 1h(أو30mأو5m) للتحكم في تكرار الاستطلاع
الأمان: مقبس Docker للقراءة فقط
تثبيت /var/run/docker.sock داخل حاوية يمنح تلك الحاوية تحكمًا كاملاً محتملاً في daemon Docker للمضيف — ما يعادل صلاحيات root. هذا هو أكثر متجهات تصعيد الامتيازات شيوعًا في بيئات Docker.
المخاطر وطرق التخفيف
- الخطر: حاوية مخترقة بوصول
:rwللمقبس يمكنها تشغيل حاويات بصلاحيات root، وتثبيت/، وسرقة الأسرار - تخفيف 1 — تثبيت للقراءة فقط: يمنع
:roفيdocker-compose.ymlجميع الكتابات؛ تحتاج Glance فقط إلى قراءة حالة الحاوية - تخفيف 2 — وكيل المقبس: انشر [Docker Socket Proxy](https://github.com/Tecnativa/docker-socket-proxy) لعرض نقاط نهاية
GET /containersوGET /versionفقط - تخفيف 3 — عزل الشبكة: ضع Glance في شبكة Docker مخصصة، معزولة عن خدماتك التطبيقية
- التحقق:
docker inspect glance_glance_1 | grep -A5 Mounts— يجب أن تظهر قيمةModeكـroوليسrw
إن لم تكن بحاجة إلى مقاييس Docker، فأزل ببساطة تثبيت /var/run/docker.sock من docker-compose.yml وأزل أداة docker-containers من glance.yml. تعمل Glance بشكل مثالي دون وصول إلى daemon Docker.
استكشاف الأخطاء: الأخطاء الشائعة
المشكلات المتكررة وحلولها
- المنفذ 8080 مستخدم بالفعل —
ss -tlnp | grep 8080لتحديد العملية. غيّر منفذ المضيف فيdocker-compose.yml: "8181:8080"(يبقى منفذ الحاوية 8080 من جانب Glance). - الأداة لا تُحمَّل / دوار دائم — تحقق من الاتصال الصادر من الحاوية:
docker exec glance_glance_1 curl -s https://news.ycombinator.com. إن انتهت المهلة، فخادمك VPS خلف جدار حماية صادر مقيّد — افتح المنافذ 80/443 صادرة عبرufw. - رفض مقبس Docker (
permission denied) — تعمل الحاوية تحت UID غير root دون وصول إلى مجموعةdocker. الحل: أضفgroup_add: ["docker"]أو ثبّت المقبس بالصلاحيات الصحيحة. تحقق:ls -la /var/run/docker.sock(المجموعةdocker، الوضع660). - مقاييس
/procمفقودة — تثبيت/proc:/proc:roمفقود منdocker-compose.yml. بدونه، تعرضresource-usageقيمًا فارغة أو رسالة خطأ. أضف المجلد وأعد التشغيل:docker compose up -d.
حالات الاستخدام الواقعية لوكالة الويب
يمكن لوكالة تدير مشاريع عملاء متعددة على خوادم VPS منفصلة مركزة المراقبة في Glance بصفحة لكل عميل أو بيئة.
كيفية هيكلة Glance لوكالة
- صفحة لكل عميل: يتوافق كل كتلة
pages[n]مع مشروع — أداةmonitorمع عناوين URL الحيوية (الواجهة الأمامية، API، لوحة الإدارة) - صفحة "البنية التحتية العامة": يمكن لأداة
monitorفحص نقاط نهاية Healthcheck المكشوفة على كل خادم (مثل/healthz) - خلاصة RSS للتنبيهات: أضف خلاصة RSS من أداة المراقبة (UptimeKuma، Gatus) لعرض الحوادث دون مغادرة Glance
- أداة إصدارات GitHub: تتبع إصدارات CMS/frameworks لعملائك لاستباق التحديثات الحيوية
- وصول متعدد الفرق: واحدة Glance لكل بيئة (تجريبية / إنتاجية)، محمية بمصادقة HTTP منفصلة عبر nginx
توثيق Glance الرسمي (github.com/glanceapp/glance) يسرد جميع الأدوات المتاحة وخياراتها. قسم مرجع glance.yml هو المرجع الأحدث — تتطور الخيارات مع كل إصدار ثانوي.