لماذا تستضيف Homepage على خادم VPS الخاص بك
Homepage (gethomepage.dev) لوحة تحكم ساكنة مكتوبة بـ Next.js، مصمّمة لتكون صفحة البداية لبنيتك التحتية. خلافاً لحلول SaaS من نوع صفحة البداية، يبقى كل شيء تحت سيطرتك: تعيش الإعدادات في ملفات YAML بسيطة، وتستعلم الأدوات المصغّرة عن خدماتك أنت (Proxmox، qBittorrent، Sonarr، Pi-hole…)، ولا تمرّ أي بيانات عبر سحابة خارجية. واستضافتها على خادم VPS تجعلها متاحة في كل مكان، من أي متصفح، بأدنى تأخّر لأن الصفحة تُقدَّم كمحتوى ساكن بالكامل تقريباً. وهي أيضاً نقطة الدخول المثالية لقيادة حزمة Docker متنامية: يكفي ملف services.yaml واحد لرسم خريطة عشرات الحاويات.
الفوائد الملموسة لـ Homepage المستضاف ذاتياً
- إعدادات بصيغة YAML قابلة للإصدار في Git: تعيد بناء لوحة تحكمك طبق الأصل خلال ثوانٍ.
- أدوات مصغّرة أصلية لأكثر من 100 خدمة (Docker، Proxmox، Plex، Grafana، AdGuard) مع عرض إحصاءات آنيّ.
- اكتشاف تلقائي لحاويات Docker عبر الوسوم (labels)، دون إدخال يدوي للروابط.
- بصمة ذاكرة ضئيلة: أقل من 128 ميغابايت من الذاكرة، مثالية على خادم VPS صغير.
- لا قياس عن بُعد ولا اعتماد على السحابة: تبقى صفحة بدايتك خاصة 100٪.
- تخصيص كامل للمظهر، وخلفيات الشاشة، وشريط البحث.
المتطلبات التقنية
Homepage خفيفة جداً. خادم VPS بـ 1 vCPU و1 غيغابايت من الذاكرة كافٍ إلى حد بعيد، حتى مع تشغيل حاويات أخرى بجانبها. احسب نحو 300 ميغابايت من مساحة القرص للصورة والإعدادات. ستحتاج إلى Docker وDocker Compose (v2) مثبَّتَين، ونطاق أو نطاق فرعي يشير إلى عنوان IP لخادم VPS (مثل home.mydomain.com)، ووسيط عكسي مثل Traefik أو Caddy لإدارة HTTPS. وإن أردت استثمار أدوات Docker المصغّرة، اربط مقبس /var/run/docker.sock للقراءة فقط.
انشر Homepage مع Docker في 5 خطوات
تجهيز شجرة المجلدات
اتصل بخادم VPS عبر SSH وأنشئ المجلدات: mkdir -p ~/homepage/config. ستُولَّد ملفات services.yaml وwidgets.yaml وsettings.yaml وbookmarks.yaml عند أول تشغيل في هذا المجلد.
كتابة ملف docker-compose.yml
في ~/homepage/docker-compose.yml، صرّح عن الخدمة بصورة ghcr.io/gethomepage/homepage:latest، واربط ./config:/app/config ومقبس Docker /var/run/docker.sock:/var/run/docker.sock:ro. أضِف المتغيّر HOMEPAGE_ALLOWED_HOSTS=home.mydomain.com للسماح لنطاقك.
تشغيل الحاوية
نفّذ docker compose up -d ثم تحقّق بـ docker compose logs -f. يستمع Homepage افتراضياً على المنفذ 3000. اختبر محلياً بـ curl http://localhost:3000.
ربط الوسيط العكسي وSSL
مع Caddy، يكفي سطر واحد: home.mydomain.com { reverse_proxy localhost:3000 }. يولّد Caddy شهادة Let's Encrypt ويجدّدها تلقائياً. مع Traefik، أضِف الوسوم traefik.http.routers.homepage.rule=Host(\home.mydomain.com\) ومحلّل ACME.
تخصيص الخدمات والأدوات المصغّرة
حرّر config/services.yaml لتجميع تطبيقاتك، ثم config/widgets.yaml لشريط الموارد (المعالج، الذاكرة، القرص). أعِد تحميل الصفحة: يعيد Homepage قراءة الإعدادات فورياً، دون إعادة تشغيل الحاوية.
فعّل الاكتشاف التلقائي بإضافة الوسوم homepage.group وhomepage.name وhomepage.href مباشرةً على حاويات Docker الأخرى لديك. يكتشفها Homepage عبر المقبس المربوط ويضيفها إلى لوحة التحكم دون المساس بـ services.yaml. وباقترانها مع ملف .env لتخزين مفاتيح API الخاصة بأدواتك المصغّرة (لا تكن ظاهرة أبداً في YAML المُدار بالإصدارات)، تحصل على لوحة تحكم تحدّث نفسها مع كل نشر جديد.