يمكنك استضافة موقع إلكتروني على ZimaOS من دون تعديل حزمة خادم الويب الخاصة بنظام التشغيل نفسه: شغّل Apache أو Nginx أو خادم ويب آخر داخل حاوية Docker معزولة، وانشر منفذًا منفصلًا على المضيف مثل 8080. وبذلك يظل إعداد موقعك مستقلًا عن واجهة إدارة ZimaOS.
يوضح مثال المجتمع هذا النمط الأساسي، لكن هناك تفصيلًا يحتاج إلى تصحيح: يعرّف Dockerfile فيه المنفذ 10000، لكنه لا يثبّت Webmin. فتعيين منفذ لا ينشئ خدمة تعمل خلفه.
استخدم حاوية بدلًا من إعادة تهيئة ZimaOS نفسه
يستخدم ZimaOS خدمات ويب لواجهته الخاصة. ويؤدي استبدال خدمات المضيف أو إعادة تهيئتها إلى مخاطر غير ضرورية تتعلق بالترقية وتعارض المنافذ. أما الحاوية المنفصلة فتوفر للموقع نظام ملفات وحزمًا ومنافذ خاصة به.
يدعم ZimaOS التطبيقات المخصصة القائمة على Docker، كما يفصل مرجع تطبيقات Docker Compose الحالي بين إعدادات تشغيل Compose العادية وبيانات تطبيقات متجر ZimaOS.
نمط Apache أبسط
بالنسبة إلى موقع إلكتروني ثابت أو أساسي محليًا، لا تحتاج أولًا إلى إنشاء صورة Ubuntu كاملة. يمكن لخدمة Compose بسيطة تركيب مجلد الموقع داخل صورة Apache:
services:
web:
image: httpd:2.4
restart: unless-stopped
ports:
- "8080:80"
volumes:
- /path/to/www:/usr/local/apache2/htdocs:ro
بعد ذلك، انتقل إلى http://SERVER-IP:8080 على الشبكة المحلية. استخدم مجلدًا دائمًا على المضيف لحفظ ملفات موقعك. وإذا كنت تحتاج إلى PHP أو قاعدة بيانات أو وكيل عكسي أو واجهة إدارة، فأضفها كخدمات صريحة بدلًا من افتراض أن تعيين منفذ مكشوف يوفرها.
لم يكن المنفذ 10000 يعني تثبيت Webmin
ثبّت Dockerfile المذكور في المنتدى Apache وعدة أدوات، ثم أعلن EXPOSE 80 443 10000. إن إعلان المنفذ في Docker ليس سوى بيانات وصفية. فما تزال الصورة بحاجة إلى عملية تستمع على المنفذ 10000. وبما أن Dockerfile لم يثبّت Webmin أو يشغّله، فإن نشر -p 10000:10000 وحده لا يمكن أن ينشئ لوحة تحكم Webmin.
يوضح توثيق نشر المنافذ في Docker أن المنافذ المنشورة توجه حركة المرور إلى خدمة داخل الحاوية، لكنها لا تنشئ التطبيق نفسه.
التطوير المحلي والاستضافة العامة مستويان مختلفان من المخاطر
إن تشغيل موقع متاح على الشبكة المحلية فقط أمر مباشر. أما استضافته على الإنترنت العام فتضيف متطلبات مثل TLS وDNS والمصادقة وتثبيت التحديثات والتسجيل وإعداد الوكيل العكسي وتعريض جهاز التوجيه أو جدار الحماية. لا تعرّض واجهة إدارة خام مثل Webmin للإنترنت لمجرد أن الحاوية تستطيع نشر المنفذ.
إذا كان الهدف هو تشغيل حزمة مستضافة ذاتيًا على مدار الساعة، فيمكن لـ خادم صغير للاستضافة الذاتية تشغيل أعباء العمل، لكن أمان الاستخدام العام يظل معتمدًا على بنية البرمجيات وضوابط الشبكة، لا على طراز العتاد.
الخلاصة
شغّل الموقع كخدمة Docker مستقلة وانشر منفذًا لا يتعارض مع غيره. استخدم صورًا مخصصة للغرض أو حزمة Compose محددة بوضوح، واحفظ بيانات الموقع خارج الحاوية، وأضف Webmin أو قواعد البيانات أو TLS فقط عند تثبيت هذه الخدمات وإعدادها فعليًا.
