# متغيرات البيئة

> كيفية ضبط متغيرات البيئة لتطبيقك على Daki Hosting باستخدام ملف .env.

تتيح لك متغيرات البيئة تمرير قيم الإعداد — مثل توكن بوت Discord أو مفتاح API — إلى تطبيقك دون كتابتها مباشرةً في كود مصدرك. على Daki Hosting، الطريقة الموصى بها هي إنشاء **ملف `.env`** مباشرةً على خادمك باستخدام مدير الملفات في Portal أو عبر SFTP.

## ما ستتعلمه

- ما هي متغيرات البيئة ولماذا تهم
- كيفية إنشاء ملف `.env` على خادمك
- كيفية تحميل قيم `.env` في Node.js وPython
- أفضل الممارسات للحفاظ على الأسرار آمنة

---

## ما هي متغيرات البيئة؟

متغيرات البيئة أزواج مفتاح-قيمة يمكن لتطبيقك الجاري قراءتها من بيئته. وهي الطريقة القياسية لـ:

- تخزين القيم الحساسة (التوكنات ومفاتيح API وكلمات المرور) بمعزل عن الكود
- تغيير الإعدادات دون تعديل ملفات المصدر أو إعادة نشرها
- تجنب رفع الأسرار إلى نظام التحكم بالإصدارات

---

## إنشاء ملف `.env`

أبسط طريقة وأكثرها موثوقية لإدارة متغيرات البيئة على Daki هي إنشاء ملف `.env` على خادمك. يمكنك ذلك بطريقتين:

### الخيار 1: استخدام مدير الملفات (للتعديلات السريعة)

1. افتح خادمك في Portal ([portal.daki.cc](https://portal.daki.cc)).
2. انتقل إلى تبويب **Files**.
3. انقر على **New File** وسمِّه `.env`.
4. انقر على الملف لفتحه في المحرر على الويب وأضف متغيراتك:
   ```
   BOT_TOKEN=your_discord_bot_token_here
   PORT=3000
   DATABASE_URL=your_db_connection_string
   ```
5. انقر على **Save**.
6. أعد تشغيل خادمك.

### الخيار 2: استخدام SFTP (موصى به للإعداد الأولي)

اتصل بخادمك عبر SFTP (بيانات الاعتماد في تبويب **Settings**) وارفع ملف `.env` مباشرةً من جهازك المحلي. انظر [مدير الملفات](https://daki.cc/ar/wiki/guides/file-manager) لتعليمات إعداد SFTP.

> **تحذير:** لا ترفع أبدًا ملف `.env` إلى مستودع Git عام. أضف `.env` إلى ملف `.gitignore` لمنع كشف الأسرار عن طريق الخطأ.

---

## تحميل قيم `.env` في تطبيقك

التطبيقات لا تقرأ ملفات `.env` تلقائيًا، بل تحتاج إلى مكتبة لتحميلها في البيئة.

**Node.js (dotenv)**

ثبّت الحزمة (أضفها إلى `package.json` كاعتمادية):
```json
{
  "dependencies": {
    "dotenv": "^16.0.0"
  }
}
```
حمّلها في أعلى ملف الدخول لديك:
```js
require('dotenv').config();

const token = process.env.BOT_TOKEN;
const port  = process.env.PORT || 3000;
```

**Python (python-dotenv)**

أضف `python-dotenv` إلى `requirements.txt`:
```
python-dotenv
```
حمّلها في أعلى ملف الدخول لديك:
```python
from dotenv import load_dotenv
import os

load_dotenv()

token = os.environ.get("BOT_TOKEN")
port  = int(os.environ.get("PORT", 3000))
```

---

## تنسيق ملف `.env`

كل سطر في ملف `.env` يتبع الصيغة `KEY=VALUE`:

```

# Comments start with a hash

BOT_TOKEN=your_token_here

API_KEY=some_api_key

DB_HOST=localhost

DB_PORT=5432

DEBUG=false

```
- المفاتيح عادةً بأحرف كبيرة مع شرطات سفلية.
- لا تحتاج القيم إلى علامات اقتباس، لكنها مدعومة.
- الأسطر التي تبدأ بـ `#` تعليقات وتُتجاهل.

---

## أفضل الممارسات

- **لا تكتب التوكنات أو الأسرار مباشرةً** في ملفات الكود المصدري، خاصةً إذا كان كودك على GitHub.
- **أضف `.env` إلى `.gitignore`** حتى لا يُرفع أبدًا عن طريق الخطأ.
- **أنشئ ملف `.env` على الخادم**، لا على جهازك المحلي — أو استخدم SFTP لرفع ملف `.env` محلي مستبعد من نظام التحكم بالإصدارات.
- **أعد تشغيل خادمك** بعد إنشاء ملف `.env` أو تعديله.
- استخدم **أسماء مفاتيح وصفية** تجعل إعداداتك موثّقة بذاتها.

---

## الخطوات التالية

- [إعدادات التشغيل](https://daki.cc/ar/wiki/guides/startup-settings) — اضبط أمر التثبيت وأمر التشغيل وصورة Docker.
- [نشر بوت Discord.js](https://daki.cc/ar/wiki/guides/deploy-discordjs) — شرح كامل للنشر بما في ذلك إعداد التوكن.
- [نشر بوت Python](https://daki.cc/ar/wiki/guides/deploy-python) — شرح كامل للنشر بما في ذلك إعداد التوكن.

---
Source: https://daki.cc/ar/wiki/guides/environment-variables
