قبل أن تسأل، هل بحثت أولاً؟ اضغط على في أعلى اليمين للبحث
مرحباً،
أود أولاً أن أشكركم على أي دعم قد تقدمونه. مع أخذ ذلك في الاعتبار، أود مناقشة مشكلتي ثم أهدافي لمثيلتي المستضافة ذاتياً من Discourse.
المشكلة
أستخدم حاليًا Hetzner كخادمي الذي يستضيف مثيل Discourse. لقد قمت بإرفاق وحدات تخزين لـ Uploads و Backups. يتم استضافة حاويات وصور Docker الحالية، بالإضافة إلى app.yml وما إلى ذلك، على الخادم نفسه تحت /var/discourse.
لقد امتلكت هذا الخادم على مدار 3-4 سنوات أو أكثر، وخلال تلك الفترة، كنت دائمًا أواجه مشكلة المساحة على الخادم نفسه (وليس وحدات التخزين). في أي وقت أردت فيه إعادة بناء التطبيق أو إعادة تشغيله، كنت أواجه مشاكل في المساحة حيث كان يقوم بتثبيت الصور وحاويات Docker على الخادم المحلي بدلاً من وحدة تخزين. كنت بحاجة باستمرار إلى إزالة Docker وأي صور/حاويات وإجراء إعادة تثبيت نظيفة حتى أتمكن من إعادة البناء. أعتقد أيضًا أن بيانات SQL مرتبطة بالخادم المحلي بدلاً من وحدة تخزين.
الأهداف
لست متأكدًا مما سيكون الأفضل لي للمضي قدمًا. هل هو نقل مجلدات أو ملفات محددة إلى وحدة تخزين جديدة لقاعدة بيانات Postgres وصور Docker، وإذا كان الأمر كذلك، أود الحصول على دعم حول كيفية القيام بذلك؟ أو البدء من الصفر بخادم جديد، وإنشاء نسخة احتياطية من الخادم، واستعادتها على خادم جديد مع تكوين جميع وحدات التخزين في المواقع الصحيحة؟
مع كل ما قيل، أود الحصول على بعض الدعم في تكوين app.yml للحصول على وحدات تخزين مناسبة لكل ما يستهلك مساحة، حتى أتمكن من التوسع بشكل فردي عندما تحتاج النسخ الاحتياطية أو التحميلات أو قاعدة البيانات أو صور Docker، على سبيل المثال، إلى ذلك.
يمكنني تقديم ملف app.yml الخاص بي لاحقًا اليوم، حيث إنني حاليًا في العمل وأتطلع إلى التقدم.
أقوم باستضافة خطابي على AWS، وقد حققت نجاحًا كبيرًا حتى الآن في الاحتفاظ بـ /var/discourse على وحدة تخزين EBS قابلة للتركيب بشكل منفصل وربط هذه الوحدة بوحدات EC2 مختلفة حسب حاجتي للهجرة. لقد قمت حتى بتغيير البنية بالكامل من x64 إلى ARM (لقد قمت بتبديل وحدات EC2 من t3a.large إلى r7g.large) وبعد إعادة تركيب وحدة /var/discourse، عدت للعمل بعد أمر launcher rebuild app بسيط حتى مع تغيير البنية.
خلاصة القول، إذا تم تخزين /var/discourse في وحدة تخزين قابلة للتركيب، فلديك الحالة الكاملة لمنتدى الخاص بك في حالة قابلة للتركيب تقريبًا. طالما يمكنك إعداد مضيف وتثبيت Docker عليه، يمكنك تركيب /var/discourse عليه، وتشغيل launcher rebuild app، والبدء في العمل. (بافتراض أن أشياء مثل اسم المضيف وأشياء أخرى محددة في app.yml تظل ثابتة بين المضيفين.)
هل يمكنك تقديم مثال لملف app.yml لهذا الإعداد؟ وهل هو بسيط مثل نقل المحتوى من “/var/discourse” إلى وحدة تخزين مختلفة أم أحتاج إلى استنساخ المستودع في وحدة التخزين الجديدة؟
وهل يتم تخزين كل محتويات قاعدة البيانات في /var/discourse؟ فإذا نقلت كل محتويات /var/discourse إلى وحدة تخزين قابلة للتركيب، فهل ستستمر في استخدام كل البيانات الموجودة؟
سؤال، على الرغم من أنني نقلت مجلد /discourse إلى وحدة تخزين قابلة للتركيب، إلا أنني ما زلت أواجه مشكلة مع دوكر. حيث لا تزال الحاويات والصور تعمل على القرص المحلي بدلاً من وحدة تخزين. أي فكرة عن كيفية إصلاح هذا؟