انتقل إلى المحتوى
envdiff

مقارنة متغيرات البيئة

كل شيء يعمل في بيئة الاختبار ويتعطل في الإنتاج. قارن ملفات env.

الصق ملفي env، وأضف ملف .env.example إن كان لديك. يطابق Env Diff المفاتيح واحدًا واحدًا، ويبقي القيم مخفية، ويشير إلى المفاتيح الناقصة والقيم المختلفة ومفاتيح الاختبار في الإنتاج والأسرار المكشوفة للمتصفح والقيم المؤقتة التي لم يستبدلها أحد.

اطلع على كل الفحوص
- FEATURE_NEW_CHECKOUT=true
+ OPENAI_API_KEY=chan••••قيمة مؤقتة
~ APP_URL=http••••••••عنوان http غير مشفر
~ NEXT_PUBLIC_STRIPE_KEY=pk_l••••••••
  STRIPE_SECRET_KEY=sk_t••••••••مفتاح اختبار أو بيئة تجريبية
  JWT_SECRET=shar••••••••السر نفسه في البيئتين
مقارنة تجريبية. القيم وهمية ومخفية بالطريقة نفسها التي تخفي بها الأداة قيمك.

ما هي

أداة مجانية وخاصة لمقارنة متغيرات البيئة. تفهم صيغة dotenv وأسطر export وعلامات الاقتباس والقيم متعددة الأسطر وJSON وYAML البسيطة.

لمن هي

للمطورين الذين ينشرون وحدهم، ومسؤولي الإصدارات، وفرق DevOps، ولكل من أضاع أمسية كاملة بسبب مفتاح واحد ناقص في الإنتاج.

ما المشكلة التي تحلها

انحراف الإعدادات. الشيفرة تُراجع وتُختبر، أما ملفات env فغالبًا لا، فيمر مفتاح منسي أو مفتاح اختبار في الإنتاج دون أن ينتبه أحد.

قارن بين بيئتين

تجري القراءة والمقارنة داخل هذا التبويب. لا يُرفع شيء ولا يُسجل ولا يُحفظ.

صيغة dotenv أو JSON أو أسطر KEY: value.
صيغة dotenv أو JSON أو أسطر KEY: value.
اختياري. ملف .env.example الخاص بك، ويُستخدم قائمةً بالمفاتيح التي يجب أن تحتويها كل بيئة.

تبقى القيم مخفية ما لم تُظهرها بنفسك. التقرير لا يتضمن أي قيمة أبدًا.

$ env diff ▌

لم تُجرَ أي مقارنة بعد

الصق ملفي env، أو حمّل ملفات المثال لترى كل أنواع النتائج.

لا تغادر القيم هذه الصفحة أبدًا. التقرير وملف CSV يذكران المفاتيح والنتائج فقط.

ماذا يعني كل فحص

نتائج البيئة B تُعامل على أنها نتائج الإنتاج. أما الأسرار المكشوفة للمتصفح فتُحسب في الجهتين.

  • سر مكشوف للمتصفح

    بادئات مثل NEXT_PUBLIC أو VITE تضع القيمة داخل حزمة JavaScript. يستطيع أي شخص قراءتها.

  • مفتاح اختبار أو بيئة تجريبية

    مفاتيح مثل sk_test لا تقبض مدفوعات حقيقية ولا ترسل بريدًا حقيقيًا. لا بأس بها في بيئة الاختبار، لكنها في الإنتاج عطل صامت.

  • يشير إلى localhost

    عنوان قاعدة بيانات أو ذاكرة مؤقتة أو API لا يعمل إلا على جهاز المطور. في الإنتاج يفشل أو يصل إلى الخدمة الخطأ.

  • قيمة مؤقتة

    changeme أو xxx أو TODO أو أقواس زاوية. نسخ أحدهم المثال ولم يملأه قط.

  • السر نفسه في البيئتين

    بيئة الاختبار والإنتاج تتشاركان سرًا واحدًا، فأي تسريب في بيئة الاختبار يفتح الإنتاج أيضًا.

  • عنوان http غير مشفر

    عنوان عام بلا https. قد تتعطل ملفات تعريف الارتباط والرموز وعمليات إعادة التوجيه أو تتسرب.

  • وضع التصحيح مفعّل

    إعدادات التصحيح تعرض للزوار تتبع الأخطاء وتفاصيل داخلية، وتبطئ كل شيء.

  • سر قصير جدًا

    السر أو الرمز أو كلمة المرور الأقصر من 12 حرفًا سهل التخمين.

  • يشير إلى متغير غير معرّف

    القيمة تستخدم متغيرًا غير معرّف في الملف نفسه، فتتحول إلى لا شيء.

  • فارغ

    المفتاح موجود لكن بلا قيمة. مكتبات كثيرة تعدّه معيّنًا ثم تفشل بطرق غريبة.

طريقة الاستخدام

  1. الصق البيئة A

    غالبًا بيئة الاختبار أو ملفك المحلي. غيّر اسم التسمية بما يناسب إعدادك.

  2. الصق البيئة B

    غالبًا بيئة الإنتاج. صدّرها من منصة الاستضافة أو انسخها من خزنة الأسرار.

  3. أضف القالب

    اختياري. الصق .env.example لترى المفاتيح المطلوبة الناقصة والمفاتيح غير الموثقة.

  4. اقرأ الفروق

    تظهر المفاتيح الناقصة أولًا، ثم القيم المختلفة، ثم المتطابقة. القيم الخطرة مُعلَّمة في كل صف.

  5. أصلح وشارك

    نزّل ملف .env.example جديدًا يضم كل المفاتيح، وانسخ التقرير إلى قائمة فحص الإصدار.

معلومات مفيدة

  • تنظر الفحوص إلى الأسماء وأنماط القيم، ولا يمكنها معرفة ما إذا كان المفتاح صالحًا فعلًا لدى المزوّد.
  • لا تُنفَّذ ميزات الطرفية مثل استبدال الأوامر، وتُفحص الإشارات البسيطة إلى المتغيرات فقط.
  • يدعم YAML الأسطر المسطحة بصيغة KEY: value فقط، لا البنى المتداخلة.
  • إظهار القيم يغيّر ما تراه على الشاشة فقط. أغلق التبويب لمسح كل شيء.

أسئلة

هل لصق الأسرار الحقيقية هنا آمن؟

لا ترسل الصفحة ما تلصقه إلى أي مكان، والتقرير خالٍ من القيم. ومع ذلك فأسلم عادة هي تغيير أي سر ظهر ولو مرة على شاشة مشتركة.

لماذا تُعامل B على أنها الإنتاج؟

معظم الناس يقارنون بيئة الاختبار بالإنتاج. ضع في B البيئة التي توشك على إصدارها، فتنطبق عليها فحوص المخاطر.

ما البصمة؟

ملخص SHA 256 قصير لكل قيمة. يتيح لك أن ترى أن قيمتين مختلفتان دون إظهار أي منهما.

هل يمكن مقارنة أكثر من ملفين؟

قارنها زوجًا زوجًا مع القالب نفسه. القالب يربط كل مقارنة بقائمة مفاتيح واحدة.

تواصل مع المطوّر

لديك سؤال أو فكرة أو عرض عمل؟ راسلني على X أو Telegram.

ادعم المطوّر

إذا وفّرت عليك هذه الأداة وقتًا، يمكنك إرسال إكرامية إلى عنوان EVM هذا من محفظتك.

0xd28Fd90eD69092bd01598f237aad33a0cc9c3EeA