إذا كنت تدير حاويات دوكر، فمن المحتمل أنك واجهت مشكلة التعامل مع أرقام منافذ عشوائية والغياب المحبط لشهادات HTTPS لتطبيقاتك. الخبر السار هو أن استخدام Caddy مع Docker Compose على نظام Ubuntu 26.04 يبسط هذا التحدي بشكل لا يصدق. هذا يعني لك وداعاً لإعداد Plex على المنفذ 32400 أو لوحة تحكم على المنفذ 9000، والأهم من ذلك، التخلص من عناء تأمينها يدوياً بشهادات HTTPS. يمكنك الآن الحصول على أسماء نطاقات نظيفة وآمنة مثل plex.example.com أو books.example.com، مع شهادات أمان حقيقية تعمل تلقائياً. الميزة الكبرى هنا هي Caddy، فهو حل موثوق ومباشر. كل ما يتطلبه الأمر هو سطر واحد في ملف Caddyfile ليقوم Caddy تلقائياً بالحصول على شهادة Let's Encrypt، وخدمتها على المنفذ 443، وتجديدها إلى الأبد دون أي تدخل منك. لن تحتاج بعد الآن إلى تكوينات Nginx المعقدة يدوياً أو تشغيل Certbot بجدولة زمنية. الفكرة الأساسية وراء هذا الإعداد بسيطة: يجب أن يتشارك Caddy وتطبيقاتك في نفس شبكة Docker. بهذه الطريقة، يمكن لـ Caddy الوصول إلى الحاويات بأسماءها الداخلية مباشرةً بدلاً من الحاجة إلى تعريض كل منفذ على المضيف. على سبيل المثال، إذا كان لديك تطبيق باسم 'whoami' على الشبكة المشتركة، يمكن لـ Caddy أن يشير إليه مباشرة بـ 'whoami' في التكوين الخاص به. هذا يعني أن حاويات تطبيقاتك لا تحتاج لنشر أي منافذ على الجهاز المضيف على الإطلاق، وهو ما يبسط الأمور كثيراً ويزيد الأمان. لتطبيق هذا، ستحتاج إلى تشغيل Caddy ضمن نفس مشروع Compose الذي يضم تطبيقاتك. تأكد من أن جميع الحاويات موجودة على شبكة Docker مشتركة واحدة. في ملف Caddyfile، استخدم توجيه reverse_proxy للإشارة إلى اسم الحاوية ومنفذها الداخلي، وتجنب استخدام 'localhost'. سيقوم Caddy بتفعيل HTTPS تلقائياً طالما أن سجل DNS لنطاقك يشير إلى عنوان IP الخاص بالخادم وأن المنفذين 80 و 443 يمكن الوصول إليهما من الإنترنت. قبل البدء، تأكد أن لديك Ubuntu 26.04 مع Docker وملحق Compose مثبتين. ستحتاج أيضاً إلى نطاق تتحكم فيه، مع سجل A (و AAAA إذا كنت تستخدم IPv6) يشير إلى عنوان IP العام لجهازك. ولا تنسَ التأكد من أن المنفذين 80 و 443 متاحان من الإنترنت؛ قد تحتاج إلى فتحهما في جدار الحماية (UFW) وإعادة توجيههما على جهاز التوجيه الخاص بك إذا كنت خلف NAT. أثناء الاختبار، يفضل استخدام نقطة نهاية Let's Encrypt التجريبية (staging endpoint) لتجنب استنزاف حصتك الأسبوعية من الشهادات الحقيقية في حال وجود أخطاء في التكوين. هذا الإعداد يضمن لك سهولة الوصول وأمان البيانات دون أي جهد إضافي.