حلّ المجتمع

تثبيت Redis على CasaOS باستخدام Docker Compose بأمان

A 2023 CasaOS tutorial introduced Redis installation but did not cover current persistence, authentication, or safe network exposure.

الطريقة الحالية الأكثر أمانًا لتشغيل Redis على CasaOS هي استخدامه كحاوية Docker مع وحدة تخزين بيانات دائمة ومصادقة صريحة وتحديد واضح لنطاق الوصول إلى الشبكة. يُعدّ الدليل المنشور في المنتدى عام 2023 قديمًا جدًا بحيث لا يمكن استخدامه دليلًا كاملًا للنشر، لأن الإعدادات الافتراضية الحالية لـ Redis ومتطلبات الأمان قد تطورت.

ابدأ باستخدام صورة Redis الرسمية، وأبقِ المنفذ 6379 خاصًا بشبكة LAN أو شبكة Docker، واجعل /data دائمًا، وحدد ما إذا كنت تحتاج إلى استمرارية AOF/RDB قبل وضع بيانات التطبيق فيه.

استخدم صورة Redis الرسمية

يوثّق دليل Redis الخاص بـ Docker صورة redis:<version> الرسمية والمنفذ القياسي 6379.

استخدم Docker Compose على CasaOS

services:
  redis:
    image: redis:8
    container_name: redis
    restart: unless-stopped
    command: ["redis-server", "--appendonly", "yes", "--requirepass", "CHANGE_ME"]
    volumes:
      - /DATA/AppData/redis/data:/data
    ports:
      - "127.0.0.1:6379:6379"

غيّر كلمة المرور وعدّل عنوان الربط فقط إذا كان مضيف آخر يحتاج فعلًا إلى وصول مباشر إلى Redis.

اجعل /data دائمًا

من دون وحدة تخزين مرتبطة بالمضيف، تعيش بيانات Redis داخل طبقة الحاوية المؤقتة وقد تختفي عند إعادة إنشاء الحاوية. اربط /data بتخزين CasaOS الدائم.

اختر إعداد الاستمرارية بعناية

يسجل AOF عمليات الكتابة ويحسّن قابلية الاسترداد، بينما تكون لقطات RDB أخف. وقد يتقبل تطبيقك استخدام Redis كذاكرة تخزين مؤقتة مؤقتة. اختر وضع الاستمرارية بما يتناسب مع دور Redis في تطبيقك.

لا تكشف Redis مباشرةً على الإنترنت

ينبغي عدم إعادة توجيه المنفذ 6379 للعامة. إذا كان تطبيق آخر يعمل على مضيف Docker نفسه، فضَع الحاويتين على شبكة Docker خاصة واتصل بهما باستخدام اسم الخدمة.

استخدم المصادقة وقوائم ACL

يُعدّ استخدام requirepass واحدًا أمرًا بسيطًا للاستخدام المنزلي، بينما يدعم Redis حاليًا أيضًا قوائم ACL للمستخدمين والأوامر بمستوى تحكم أدق. لا تترك مثيل Redis يمكن الوصول إليه عن بُعد من دون مصادقة.

اختبر باستخدام redis-cli

docker exec -it redis redis-cli -a CHANGE_ME ping

ينبغي أن يعيد الخادم السليم القيمة PONG.

انسخ بيانات Redis الدائمة احتياطيًا

إذا كان Redis يحتوي على أي بيانات مهمة، فأوقف عمليات الكتابة أو نسّقها وانسخ وحدة التخزين الدائمة احتياطيًا وفقًا لطريقة RDB/AOF التي اخترتها. لا تفترض أن إعادة تشغيل الحاوية تعني إنشاء نسخة احتياطية.

ينطبق دليل نشر Docker أيضًا على التطبيقات المخصصة في CasaOS.

تحقق من حدود الذاكرة قبل الاستخدام الإنتاجي

Redis برنامج يعتمد أولًا على الذاكرة. راقب الحجم الفعلي لمجموعة البيانات وذاكرة RAM في المضيف بدلًا من افتراض أن عددًا صغيرًا من المفاتيح يعني استهلاكًا صغيرًا. بالنسبة إلى مضيف CasaOS مشترك، فكّر في تطبيق سياسة maxmemory مدروسة فقط بعد فهم كيفية تفاعل تطبيقك مع طرد البيانات.

استخدم شبكة Docker خاصة لتبعيات التطبيق

إذا كان Redis موجودًا فقط لخدمة حاوية أخرى، مثل منصة أتمتة أو تطبيق ويب، فضَع الخدمتين على شبكة Docker خاصة واحدة وألغِ نشر منفذ المضيف تمامًا. يمكن للتطبيق الاتصال بـ redis:6379 باستخدام اسم الخدمة.

تحقق من الاستمرارية بعد إعادة إنشاء الحاوية

بعد الإعداد الأولي، اكتب مفتاح اختبار، ثم أعد إنشاء الحاوية باستخدام وحدة التخزين نفسها، وتأكد من أن المفتاح لا يزال متاحًا. يثبت هذا الاختبار البسيط أن المسار على المضيف دائم فعلًا قبل اعتماد تطبيق مهم عليه.

الأسئلة الشائعة

ما المنفذ الذي يستخدمه Redis؟

يستخدم المنفذ 6379 افتراضيًا.

هل ينبغي أن أربط المنفذ 6379 بكل الواجهات؟

لا. اربطه فقط بالمكان المطلوب، ويفضل أن يكون المضيف المحلي أو مسار Docker/LAN خاصًا.

أين ينبغي أن توجد بيانات Redis؟

اربط مجلد /data في الحاوية بتخزين CasaOS الدائم.

هل أحتاج إلى RedisInsight؟

لا. إنها واجهة إدارة اختيارية؛ ويعمل Redis نفسه من دونها.