أمامك طريقان: أن تترك لوحة العميل تنشر تطبيقا معروفا بنقرة واحدة، أو أن تثبّت بنفسك ما تحتاج إليه. الطريق الأول يوفر الوقت على خادم جديد، والثاني يمنحك التحكم الكامل في كل شيء.
ما التطبيقات التي يمكن تثبيتها تلقائيا على خادم VPS الخاص بي؟
تتيح بعض العروض تثبيت تطبيق فور تسليم الخادم. ويشمل الكتالوج على وجه الخصوص Pterodactyl وNextcloud وFastPanel وn8n وCoolify وVaultwarden.
يمكنك اختيار التطبيق في مرحلتين:
- عند الطلب، في نموذج المنتج؛
- لاحقا، في تبويب إعادة التثبيت الخاص بخدمتك — لكن تذكّر أن إعادة التثبيت تمحو كل ما هو موجود على الجهاز.
في شاشة الاختيار، تساعدك خانة ابحث عن تطبيق… على العثور على ما تريد بسرعة، وتبقى بطاقة بدون تطبيق محددة إذا كنت تفضل نظاما مجردا. أما التطبيقات غير المتوافقة مع النظام المختار فتظهر باهتة.
ماذا يحدث أثناء تثبيت تطبيقي؟
إذا كان التطبيق يتطلب إعدادات، تعرض لوحة العميل أولا شاشة «اضبط …» مع الرسالة «أدخل إعدادات تطبيقك قبل التثبيت.»، وعنوان IP واسم المضيف للخادم VPS، ثم الحقول الخاصة بالتطبيق. يبدأ زر ابدأ التثبيت عملية النشر.
تعلن الشاشة التالية «جارٍ التثبيت...» وتوضح أن «قد تستغرق هذه العملية عدة دقائق.» تُعاد تحميل الصفحة تلقائيا كل ثلاثين ثانية؛ اتركها تعمل.
عند الانتهاء، تعرض صفحة الخدمة سطر التطبيق ضمن معلومات خادم VPS، بالإضافة إلى إطار يتضمن معلومات الاتصال الخاصة بالتطبيق: عنوان الوصول، وحساب المسؤول، وإرشادات الإعداد الأولي. دوّنها وغيّر كلمات المرور المقترحة فورا.
في حال الفشل، تعرض اللوحة «فشل التثبيت» مع قسم التفاصيل قابل للتوسيع. انسخ هذه التفاصيل في تذكرة دعم: فهي تحتوي على الخطأ بدقة.
كيف أثبّت بنفسي تطبيقا غير موجود في الكتالوج؟
إذا لم يكن ما تحتاج إليه موجودا في الكتالوج، فثبّته بنفسك. على خادم جديد، يغطي نهجان جميع الحالات تقريبا.
حزمة تقليدية، من حزم التوزيعة:
apt update
apt install nginx mariadb-server php-fpm php-mysql
systemctl enable --now nginx mariadb php8.2-fpm
mysql_secure_installation
حاويات، أسهل في العزل والنقل والتحديث:
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
docker compose version
بعد ذلك، ضع كل تطبيق في ملف compose.yaml خاص به، داخل مجلد خاص به. بهذا ستعرف بعد ستة أشهر ما الذي يعمل ولماذا.
ما الاحتياطات الواجب اتخاذها قبل إتاحة تطبيق على الإنترنت؟
أربعة: عدم فتح سوى المنافذ العامة فعلا، ووضع اسم نطاق وHTTPS أمام كل واجهة ويب، وأخذ لقطة (snapshot) قبل أي تحديث رئيسي، ونسخ البيانات احتياطيا خارج خادم VPS.
- لا تنشر إلا ما يجب نشره. اجعل قواعد البيانات تستمع على
127.0.0.1ولا تفتح في الجدار الناري إلا منافذ الخدمة العامة. راجع دليل الجدار الناري وfail2ban. - ضع اسم نطاق وHTTPS أمام كل واجهة ويب. يمكن الحصول على شهادة Let’s Encrypt بأمر واحد باستخدام
certbot، وهي تمنع إرسال بيانات دخولك دون تشفير. - خذ لقطة (snapshot) قبل أي تحديث رئيسي للتطبيق: فالتراجع يستغرق بضع دقائق فقط.
- انسخ البيانات احتياطيا، لا النظام. قاعدة بيانات تُصدَّر بانتظام إلى تخزين خارج خادم VPS ستنقذك بشكل أضمن بكثير من صورة كاملة لن تستعيدها أبدا.
ماذا أفعل إذا لم يبدأ تطبيقي؟
تكفي خمسة أوامر في أغلب الأحيان لمعرفة السبب: حالة الخدمة، وسجلها، وسجلات الحاويات، والمنافذ المشغولة، والمساحة المتوفرة على القرص.
systemctl status NOM_DU_SERVICE
journalctl -u NOM_DU_SERVICE -n 100 --no-pager
docker compose logs --tail=100
ss -tulpn
df -h
في تسع حالات من عشر، تجد الإجابة في هذه الأوامر الخمسة: خدمة متوقفة، أو منفذ مشغول، أو قرص ممتلئ، أو خطأ في الإعداد مذكور بوضوح في السجل.