docs(env): document ENCRYPTION_MODE, BLIND_INDEX_PEPPER, and one-time migration SRC_DB_* vars

These were required on the server to run the v2 migration and switch
write mode to GCM, but .env.example didn't mention them — anyone
provisioning a fresh environment from this file alone would hit the
same "table doesn't exist" / "access denied" surprises we just debugged.
This commit is contained in:
Hamza-Ayed
2026-07-29 17:32:28 +03:00
parent 307009d149
commit 2cf5c63a1e
+17
View File
@@ -82,6 +82,23 @@ SECRET_KEY=cd0b94f349c292bf93c63e798b903bb4b3b3738a049654441d6524ba603d614147fbc
passwordnewpassenger=$2y$10$0WYS/2Fz9BTtoyCbTusudOG9JgTO3DqCPWBhS2Cf9gIu3H9KoSZKC passwordnewpassenger=$2y$10$0WYS/2Fz9BTtoyCbTusudOG9JgTO3DqCPWBhS2Cf9gIu3H9KoSZKC
initializationVector=abcdefghijklmnop initializationVector=abcdefghijklmnop
# وضع كتابة التشفير — 'gcm' (الافتراضي الحالي في الإنتاج) أو 'cbc' (قديم/توافقية).
# القراءة تدعم الصيغتين دائماً بغضّ النظر عن هذه القيمة.
ENCRYPTION_MODE=gcm
# مفتاح HMAC لفهرس البحث الأعمى فوق الحقول المشفّرة (core/Security/BlindIndex.php).
# ولّده بـ: openssl rand -hex 32 — ولا تغيّره بعد أول استخدام إلا مع إعادة بناء
# كل الفهارس (backfill_blind_index.php --force)، وإلا يتوقف كل بحث/تسجيل دخول.
BLIND_INDEX_PEPPER=
# ⚠️ متغيّرات مؤقتة لمرة واحدة — تُستخدم فقط عند تشغيل
# backend/scripts/migrate_v2_reencrypt.php (ترحيل قاعدة قديمة إلى هذا المخطط).
# لا علاقة لها بتشغيل التطبيق العادي؛ اتركها فارغة إن لم تكن تُرحّل بيانات.
SRC_DB_HOST=mysql
SRC_DB_NAME=
SRC_DB_USER=
SRC_DB_PASS=
# ⚠️ تحذير مسارات الملفات السرية: # ⚠️ تحذير مسارات الملفات السرية:
# في اللايف كانت هذه الملفات خارج مجلد htdocs. في الدوكر يجب وضع هذه الملفات داخل مجلد منفصل لتبقى آمنة. # في اللايف كانت هذه الملفات خارج مجلد htdocs. في الدوكر يجب وضع هذه الملفات داخل مجلد منفصل لتبقى آمنة.
# لقد قمت ببرمجة الدوكر ليقرأ مجلد docker/keys ويربطه بالمسار /keys/ المعزول تماماً عن الويب (لأن مسار الويب هو /var/www). # لقد قمت ببرمجة الدوكر ليقرأ مجلد docker/keys ويربطه بالمسار /keys/ المعزول تماماً عن الويب (لأن مسار الويب هو /var/www).