متغيرات البيئة (.env)
ملف .env هو قلب إع داد FeedbackPulse. يُنشأ تلقائيًا أثناء التثبيت، لكن يمكنك تعديله يدويًا في أي وقت.
📍 موقع الملف
/var/www/feedbackpulse-saas/.env
⚠️ الأمان: يحتوي ملف
.envعلى بيانات حساسة (كلمات مرور قاعدة البيانات، مفاتيح API). لا تحفظه أبدًا في نظام التحكم بالإصدارات ولا تعرضه للعموم. يجب أن تكون صلاحياته640.
🔧 بعد تعديل .env
بعد إجراء التغييرات، امسح ذاكرة التخزين المؤقتة للإعداد:
php artisan config:clear
php artisan config:cache # اختياري: التخزين المؤقت لأداء الإنتاج
📋 مرجع كامل للمتغيرات
🏠 إعدادات التطبيق
| المتغير | الافتراضي | الوصف |
|---|---|---|
APP_NAME | FeedbackPulse | اسم المنصة (يظهر في رسائل البريد والعناوين) |
APP_ENV | production | البيئة: production أو local أو staging |
APP_KEY | (يُنشأ تلقائيًا) | مفتاح التشفير. لا تغيّره أبدًا بعد التثبيت! |
APP_DEBUG | false | إظهار الأخطاء التفصيلية. يجب أن يكون false في الإنتاج! |
APP_URL | https://yourdomain.com | رابط المنصة الكامل (مع https) |
APP_LOCALE | en | اللغة الافتراضية |
APP_FALLBACK_LOCALE | en | اللغة الاحتياطية |
BCRYPT_ROUNDS | 12 | قوة تشفير كلمة المرور (أعلى = أبطأ لكن أكثر أمانًا) |
⚠️
APP_DEBUG=trueسيكشف معلومات حساسة (بيانات اعتماد قاعدة البيانات، مفاتيح API) في صفحات الأخطاء. لا تفعّله أبدًا في الإنتاج إلا لجلسات تصحيح قصيرة.
🗄️ قاعدة البيانات
| المتغير | الافتراضي | الوصف |
|---|---|---|
DB_CONNECTION | mysql | برنامج تشغيل قاعدة البيانات: mysql أو mariadb أو sqlite أو pgsql |
DB_HOST | 127.0.0.1 | عنوان خادم قاعدة البيانات |
DB_PORT | 3306 | منفذ قاعدة البيانات |
DB_DATABASE | feedbackpulse | اسم قاعدة البيانات |
DB_USERNAME | root | اسم مستخدم قاعدة البيانات |
DB_PASSWORD | (فارغ) | كلمة مرور قاعدة البيانات |
📧 البريد الإلكتروني / SMTP
| المتغير | الافتراضي | الوصف |
|---|---|---|
MAIL_MAILER | smtp | برنامج تشغيل البريد: smtp أو ses أو postmark أو sendmail أو log |
MAIL_HOST | smtp.mailgun.org | مضيف خادم SMTP |
MAIL_PORT | 587 | منفذ SMTP (587 لـ TLS، 465 لـ SSL) |
MAIL_USERNAME | (فارغ) | اسم مستخدم SMTP |
MAIL_PASSWORD | (فارغ) | كلمة مرور SMTP |
MAIL_ENCRYPTION | tls | التشفير: tls أو ssl أو null |
MAIL_FROM_ADDRESS | [email protected] | عنوان بريد المُرسل |
MAIL_FROM_NAME | FeedbackPulse | اسم المُرسل |
💳 Stripe (اختياري)
| المتغير | الافتراضي | الوصف |
|---|---|---|
STRIPE_PUBLISHABLE_KEY | (فارغ) | مفتاح Stripe العام (يبدأ بـ pk_) |
STRIPE_SECRET_KEY | (فارغ) | مفتاح Stripe السري (يبدأ بـ sk_) |
STRIPE_WEBHOOK_SECRET | (فارغ) | سر توقيع webhook في Stripe (يبدأ بـ whsec_) |
💰 PayPal (اختياري)
| المتغير | الافتراضي | الوصف |
|---|---|---|
PAYPAL_CLIENT_ID | (فارغ) | معرف عميل REST API الخاص بـ PayPal |
PAYPAL_CLIENT_SECRET | (فارغ) | سر عميل REST API الخاص بـ PayPal |
PAYPAL_WEBHOOK_ID | (فارغ) | معرف webhook الخاص بـ PayPal للتحقق |
PAYPAL_MODE | sandbox | الوضع: sandbox (اختبار) أو live (إنتاج) |
🔑 تسجيل الدخول الاجتماعي (اختياري)
| المتغير | الافتراضي | الوصف |
|---|---|---|
GOOGLE_CLIENT_ID | (فارغ) | معرف عميل Google OAuth |
GOOGLE_CLIENT_SECRET | (فارغ) | سر عميل Google OAuth |
GITHUB_CLIENT_ID | (فارغ) | معرف عميل GitHub OAuth |
GITHUB_CLIENT_SECRET | (فارغ) | سر عميل GitHub OAuth |
🤖 الذكاء الاصطناعي / OpenAI (اختياري)
| المتغير | الافتراضي | الوصف |
|---|---|---|
OPENAI_API_KEY | (فارغ) | مفتاح OpenAI API لتحليل المشاعر والوسوم التلقائية واقتراحات الردود |
🤖 reCAPTCHA (اختياري)
| المتغير | الافتراضي | الوصف |
|---|---|---|
RECAPTCHA_SITE_KEY | (فارغ) | مفتاح موقع Google reCAPTCHA v2/v3 |
RECAPTCHA_SECRET_KEY | (فارغ) | المفتاح السري لـ Google reCAPTCHA |
🍪 الجلسة والذاكرة المؤقتة
| المتغير | الافتراضي | الوصف |
|---|---|---|
SESSION_DRIVER | file | تخزين الجلسة: file أو database أو redis أو cookie |
SESSION_LIFETIME | 120 | مهلة انتهاء الجلسة بالدقائق |
SESSION_DOMAIN | (فارغ) | نطاق الكوكيز (اضبطه على .yourdomain.com للنطاقات الفرعية) |
SESSION_SECURE_COOKIE | true | طلب HTTPS لكوكيز الجلسة |
CACHE_STORE | file | برنامج تشغيل الذاكرة المؤقتة: file أو database أو redis أو memcached |
📦 قائمة الانتظار والوظائف
| المتغير | الافتراضي | الوصف |
|---|---|---|
QUEUE_CONNECTION | sync | برنامج تشغيل قائمة الانتظار: sync أو database أو redis |
⏰ Cron (الاستضافة المشتركة)
| المتغير | الافتراضي | الوصف |
|---|---|---|
CRON_TOKEN | (يُنشأ تلقائيًا) | رمز سري لنقطة نهاية cron المستندة إلى الويب /cron/run?token=. يُنشأ تلقائيًا أثناء التثبيت. مطلوب فقط عند استخدام cron المستند إلى URL بدلاً من CLI. |
📁 تخزين الملفات
| المتغير | الافتراضي | الوصف |
|---|---|---|
FILESYSTEM_DISK | local | قرص التخزين الافتراضي: local أو public أو s3 |
🪵 السجلات
| المتغير | الافتراضي | الوصف |
|---|---|---|
LOG_CHANNEL | stack | قناة السجل: stack أو single أو daily أو syslog |
LOG_LEVEL | error | الحد الأدنى لمستوى السجل: debug أو info أو notice أو warning أو error أو critical |
💡 مثال على ملف .env للإنتاج
APP_NAME="FeedbackPulse"
APP_ENV=production
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
APP_DEBUG=false
APP_URL=https://feedback.mycompany.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=feedbackpulse
DB_USERNAME=fp_user
DB_PASSWORD=super_secure_password_here
SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_DOMAIN=.feedback.mycompany.com
SESSION_SECURE_COOKIE=true
CACHE_STORE=file
QUEUE_CONNECTION=sync
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=mailgun_password_here
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="FeedbackPulse"
STRIPE_PUBLISHABLE_KEY=pk_live_xxxxx
STRIPE_SECRET_KEY=sk_live_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
OPENAI_API_KEY=sk-xxxxx
LOG_CHANNEL=daily
LOG_LEVEL=error