دليل التثبيت على macOS لإصدار digna 2026.11¶
الإصدار: 2026.11
آخر تحديث: 7 نوفمبر، 2026
جدول المحتويات¶
- مقدمة
- متطلبات النظام
- الإعداد قبل التثبيت
- إعداد خادم PostgreSQL
- تكوين خادم الويب
- التثبيت الابتدائي
- تكوين الBackend
- تكوين اللوحة
- تشغيل digna كخدمة في الخلفية
- الترقية إلى إصدار جديد
مقدمة¶
عن digna¶
digna هي منصة شاملة مدعومة بالذكاء الاصطناعي مصممة لتحسين إدارة جودة البيانات عبر بيئات بيانات متعددة مثل المخازن، والـ lakes، و lakehouses. بُنيت لتكون قابلة للتوسع والتكيف بدرجة عالية، وتتعامل digna مع تحديات البيانات الحديثة من خلال الأتمتة، والمراقبة في الوقت الفعلي، واكتشاف الشذوذ.
يتكون digna من مكوّنين رئيسيين:
- digna: نواة التطبيق، وهي المسؤولة عن معالجة البيانات وتنفيذ فحوص الجودة. تجمع الواجهة الخلفية وواجهة سطر الأوامر في ملف تنفيذي واحد، وتحل محل البرنامجين المنفصلين
dignabackendوdignacliفي الإصدارات السابقة. - dignadashboard: واجهة ويب مستضافة على خادم ويب، توفّر طريقة سهلة للتفاعل مع منصة digna وعرض مقاييس جودة البيانات.
الجديد في إصدار 2026.11¶
يضيف هذا الإصدار digna Data Reconciliation، وdigna Agentic مع digna MCP Server، وdigna Engine الذي يستطيع إجراء تنميط البيانات (profiling) داخل digna والتحقق من التكامل المرجعي بين تقنيات قواعد بيانات مختلفة. راجع ملاحظات الإصدار للتفاصيل الكاملة.
بالنسبة إلى التثبيت، يجلب الإصدار آلية جديدة لترحيل المستودع، وقسمًا اختياريًا [duckdb] في config.toml من أجل digna Engine، وملف ترخيص جديدًا. يتناول قسم الترقية كلًّا منها.
تبحث عن Windows أو Linux؟¶
يغطي هذا الدليل macOS. للمنصات الأخرى، راجع دليل التثبيت على Windows أو دليل التثبيت على Linux.
متطلبات النظام¶
قبل البدء بالتثبيت، تأكد من أن النظام يلبي متطلبات الحد الأدنى التالية:
| المتطلب | المواصفة |
|---|---|
| نظام التشغيل | macOS 13 (Ventura) أو أحدث |
| المعمارية | Apple Silicon (arm64) أو Intel (x86_64) |
| الذاكرة (إعداد أدنى) | 16 غيغابايت RAM |
| مساحة القرص | 10 غيغابايت مساحة متاحة |
| قاعدة البيانات | PostgreSQL Server 12 أو أحدث |
| خادم الويب | nginx، Apache httpd، أو ما يعادله |
| أدوات سطر الأوامر | Xcode Command Line Tools (مطلوبة بواسطة Homebrew) |
digna Engine
اتصالات قواعد البيانات التي تستخدم digna Engine موقعًا للتنميط يُجرى تنميطها على مضيف digna نفسه. خطّط لذاكرة ومساحة قرص إضافيتين من أجلها، انظر قسم [duckdb].
خيارات تثبيت قاعدة البيانات¶
إذا كان PostgreSQL مثبتًا بالفعل: يمكنك إضافة قاعدة بيانات جديدة لـ digna إلى خادم PostgreSQL الموجود لديك.
إذا كنت تثبت PostgreSQL على نفس الجهاز الذي سيجري عليه تشغيل digna:
المواصفات الموصى بها
- الذاكرة: 32 غيغابايت RAM (بدلاً من 16 غيغابايت)
- مساحة القرص: 50 غيغابايت مساحة متاحة (بدلاً من 10 غيغابايت)
هذه المواصفات الأعلى تستوعب تشغيل digna و PostgreSQL معًا على الجهاز نفسه.
التحقق من المعمارية الخاصة بك¶
تختلف العديد من المسارات في هذا الدليل بين أجهزة Apple Silicon و Intel. للتحقق من نوع المعالج، افتح Terminal وشغّل:
arm64— Apple Silicon. يثبت Homebrew في/opt/homebrew.x86_64— Intel. يثبت Homebrew في/usr/local.
نصيحة
بدلاً من ترميز أحد المسارين بشكل ثابت، يستخدم هذا الدليل $(brew --prefix)، التي تتوسع إلى الموقع الصحيح على كلتا المعماريتين. يمكنك نسخ الأوامر كما هي.
الإعداد قبل التثبيت¶
قبل تثبيت digna، تأكد من وجود ثلاثة متطلبات أساسية:
- Homebrew – مدير الحزم المستخدم لتثبيت المكوّنات أدناه
- PostgreSQL Server – لتخزين المقاييس المحسوبة وبيانات الأداء
- خادم الويب – لاستضافة لوحة digna
إذا لم تكن هذه المكوّنات مُعدة بالفعل، اتبع الأقسام أدناه لتثبيتها وتكوينها.
تثبيت Homebrew¶
Homebrew هو مدير الحزم القياسي لنظام macOS ويُستخدم طوال هذا الدليل لتثبيت PostgreSQL و nginx.
الخطوة 1: تحقق مما إذا كان Homebrew مثبتًا بالفعل¶
افتح Terminal (اضغط Cmd + Space، اكتب Terminal، واضغط Enter) وشغّل:
إذا تم إرجاع رقم إصدار، انتقل إلى قسم إعداد خادم PostgreSQL.
الخطوة 2: تثبيت Homebrew¶
إذا لم يتم العثور على الأمر، ثبّت Homebrew باتباع التعليمات على موقع Homebrew الرسمي. يقوم المثبّت أيضًا بتثبيت Xcode Command Line Tools إذا لم تكن موجودة بالفعل.
الخطوة 3: أضف Homebrew إلى PATH¶
على Apple Silicon، يعرض المثبّت أمرين لإضافة Homebrew إلى بيئة الصدفة الخاصة بك. نفّذهما كما هو مذكور، ثم تأكد:
يجب أن يعرض /opt/homebrew على Apple Silicon أو /usr/local على Intel.
إعداد خادم PostgreSQL¶
إذا كان لديك PostgreSQL بالفعل¶
إذا كان PostgreSQL مثبتًا ويعمل على جهازك المحلي أو إذا كنت تستخدم خادم PostgreSQL مُدار عن بُعد، يمكنك الانتقال إلى القسم التالي.
خيارات التثبيت¶
يوفر macOS طريقتين بسيطتين لتثبيت PostgreSQL. اختر واحدة فقط:
- Homebrew — تثبيت عبر سطر الأوامر، موصى به لنشر الخادم
- Postgres.app — تثبيت رسومي، مناسب للتقييم المحلي
تثبيت PostgreSQL باستخدام Homebrew¶
الخطوة 1: تثبيت الصيغة الخاصة بـ PostgreSQL¶
الخطوة 2: أضف PostgreSQL إلى PATH¶
الصيغ ذات الإصدار المحدد تكون keg-only، مما يعني أن Homebrew لا يربط أوتوماتيكيًا أوامره في PATH لديك. أضفها بنفسك:
ملاحظة
هذا يفترض استخدام الصدفة الافتراضية zsh التي يستخدمها macOS. إذا كنت تستخدم bash، أضف نفس السطر إلى ~/.bash_profile بدلًا من ذلك.
الخطوة 3: ابدأ خدمة PostgreSQL¶
هذا يشغل PostgreSQL فورًا ويضبطه ليبدأ تلقائيًا عند تسجيل الدخول.
الخطوة 4: تحقق من التثبيت¶
يجب أن ترى إصدار PostgreSQL إذا نجح التثبيت.
الخطوة 5: الاتصال بالخادم¶
مهم — يختلف macOS عن Windows هنا
يطالب مُثبت Windows بإنشاء مستخدم postgres بكلمة مرور. Homebrew لا يفعل ذلك. بدلًا من ذلك ينشئ superuser باسم حساب macOS الخاص بك، دون كلمة مرور، ويمكن الوصول إليه فقط من الجهاز المحلي.
هذا يعني أنه لا يوجد دور postgres على تثبيت Homebrew الطازج. استخدم اسم حسابك عند الحاجة إلى صلاحيات superuser، وأنشئ مستخدم digna صريحًا كما هو موضح في التثبيت الابتدائي.
الخطوة 6: تأكد من المنفذ¶
المنفذ الافتراضي لـ PostgreSQL هو 5432. لتأكيد المنفذ الذي يستمع عليه الخادم:
سجّل القيمة — ستحتاجها عند تكوين backend الخاص بـ digna.
تثبيت PostgreSQL باستخدام Postgres.app¶
إذا فضّلت التثبيت الرسومي:
- حمّل Postgres.app واسحبه إلى مجلد Applications
- افتح التطبيق وانقر Initialize لإنشاء خادم جديد
- اتبع تعليمات التطبيق لإضافة أدوات سطر الأوامر إلى PATH
- تحقق من التثبيت:
يقوم Postgres.app أيضًا بإنشاء superuser باسم حساب macOS الخاص بك.
تكوين خادم الويب¶
تتطلب digna خادم ويب لاستضافة اللوحة. اختر أحد الخيارات التالية:
- nginx — يُثبت عبر Homebrew، موصى به
- Apache httpd — مُضمّن مع macOS
تحتاج فقط إلى تثبيت وتكوين أحد هذه الخوادم.
يُكوّن كلا القسمين شيئين تعتمد عليهما اللوحة:
- آلية تراجع لتطبيق الصفحة الواحدة (SPA)، حتى لا يعيد تحديث عنوان URL للوحة صفحة 404
- نوع MIME لملفات
.md، حتى تُخدم ملفات Markdown بشكل صحيح
إعداد nginx¶
نظرة عامة¶
nginx هو خادم ويب خفيف وعالي الأداء مناسب لخدمة لوحة digna الثابتة.
التثبيت¶
بدء nginx¶
التحقق من التثبيت¶
- افتح متصفحك
- انتقل إلى
http://localhost:8080 - يجب أن ترى صفحة الترحيب الخاصة بـ nginx
ملاحظة — المنفذ الافتراضي هو 8080، وليس 80
يضبط Homebrew nginx للاستماع على المنفذ 8080 حتى يعمل بدون امتيازات المسؤول. على macOS، ربط المنفذ 80 أو أي منفذ أقل من 1024 يتطلب صلاحيات root.
لخدمة اللوحة على المنفذ 80، غيّر listen 8080; إلى listen 80; في التكوين أدناه وابدأ nginx باستخدام sudo brew services start nginx بدلًا من ذلك.
تكوين موقع للوحة¶
يشمل تكوين nginx الخاص بـ Homebrew كل ملف في دليل servers الخاص به. أنشئ ملف تكوين مخصص لـ digna هناك:
ألصق التالي، مع استبدال /path/to/digna/dashboard بالمسار الفعلي لمجلد dashboard المستخرج لديك:
server {
listen 8080;
server_name localhost;
root /path/to/digna/dashboard;
index index.html;
# Serve Markdown files with the correct MIME type.
types {
text/markdown md;
}
# Single-page-application fallback: unknown paths return index.html
# instead of a 404, so dashboard routes survive a browser refresh.
location / {
try_files $uri $uri/ /index.html;
}
}
مهم
بدون توجيه try_files، سيؤدي إعادة تحميل أي صفحة للوحة بخلاف عنوان الجذر إلى إرجاع 404. هذا مكافئ nginx لوحدة إعادة كتابة العناوين المطلوبة في IIS على Windows.
تطبيق التكوين¶
اختبر التكوين للأخطاء النحوية، ثم أعد تحميل nginx:
إعداد Apache httpd¶
نظرة عامة¶
يتضمن macOS Apache httpd، لذا لا حاجة لتثبيته. هو معطَّل افتراضيًا.
بدء Apache¶
التحقق من التثبيت¶
- افتح متصفحك
- انتقل إلى
http://localhost - يجب أن ترى الرسالة "It works!"
مطلوب: تمكين mod_rewrite¶
تتطلب اللوحة إعادة كتابة URL. افتح ملف تكوين Apache:
ابحث عن السطر التالي وأزل الـ # القيّمة لفتحه:
مطلوب: السماح بتجاوزات .htaccess¶
في نفس الملف، حدد الكتلة <Directory "/Library/WebServer/Documents"> وغير:
إلى:
مطلوب: نوع MIME لملفات Markdown¶
لا تزال في httpd.conf، أضف السطر التالي حتى تُخدم ملفات Markdown بشكل صحيح:
مهم
بدون هذا الإعداد، قد لا تُخدم ملفات .md بشكل صحيح.
تطبيق التكوين¶
تحقق من التكوين للأخطاء النحوية، ثم أعد تشغيل Apache:
التثبيت الابتدائي¶
الخطوة 1: إعداد مستودع digna¶
يخزن مستودع digna كل المقاييس المحسوبة بواسطة digna. يعمل كمركز قاعدة بيانات للبيانات التحليلية وبيانات الأداء.
إنشاء الـ Schema والمستخدم للمستودع¶
افتح عميل PostgreSQL الخاص بك (psql، pgAdmin، أو ما شابه) ونفّذ أوامر SQL التالية:
CREATE SCHEMA <digna_repo_schema>;
CREATE USER <digna_repo_user> WITH PASSWORD '<digna_repo_password>';
GRANT ALL PRIVILEGES ON SCHEMA <digna_repo_schema> TO <digna_repo_user>;
استبدل العناصر النائبة التالية:
<digna_repo_schema>— اسم الـ schema الذي تريده (مثلاً،dignarepo)<digna_repo_user>— اسم المستخدم المطلوب (مثلاً،digna_user)<digna_repo_password>— كلمة مرور آمنة لهذا المستخدم
مثال:
CREATE SCHEMA dignarepo;
CREATE USER digna_user WITH PASSWORD 'YourSecurePassword123!';
GRANT ALL PRIVILEGES ON SCHEMA dignarepo TO digna_user;
لتنفيذ هذه من الـ Terminal في خطوة واحدة:
ثم ألصق العبارات عند موجه postgres=# واكتب \q للخروج.
أفضل الممارسات
استخدم كلمات مرور قوية ومعقّدة لمستخدمي قاعدة البيانات. تجنّب بيانات اعتماد يسهل تخمينها.
الخطوة 2: فك حزمة تثبيت digna¶
- حدّد ملف ZIP لتثبيت digna المقدم لك
- فك ضغطه إلى موقع التثبيت المرغوب — على سبيل المثال
/opt/dignaأو~/digna - بعد الاستخراج، يجب أن ترى العناصر التالية:
dashboard/— واجهة الويب للوحةdigna— الملف التنفيذي الرئيسي (backend + CLI مدمجان)
ملفا التهيئة والترخيص غير موجودين في الحزمة
لا يأتي config.toml ولا dashboard/dashboard_config.toml مع التثبيت — بل تنشئ كليهما بنفسك، في تهيئة الواجهة الخلفية و تهيئة لوحة التحكم. ولا يأتي license.toml معه كذلك؛ إذ يقدّمه digna بشكل منفصل، كما هو موضّح في الخطوة 3.
لفك الضغط من الـ Terminal:
اجعل الملف التنفيذي قابلاً للتشغيل¶
اعتمادًا على طريقة نقل الأرشيف، قد لا يبقى بت التشغيل بعد الاستخراج. حدده صراحةً:
إذا قام macOS بحظر التطبيق¶
الملفات التي تُحمّل عبر متصفح أو عميل بريد يتم وسمها بصفة الحجر الصحي (quarantine). إذا أبلغك macOS أن التطبيق "cannot be opened because the developer cannot be verified", نظّف السمة من دليل التثبيت:
بدلاً من ذلك، افتح System Settings → Privacy & Security، ابحث عن العنصر المحظور قرب أسفل الصفحة، وانقر Open Anyway.
ملاحظة
هذه الخطوة مطلوبة فقط إذا قام macOS فعليًا بحظر الملف التنفيذي. الحزم المنقولة عبر SSH أو من مشاركات ملفات داخلية عادةً لا تُعلّق بالحجر الصحي.
الخطوة 3: تثبيت ملف الترخيص¶
مهم
ملف الترخيص غير متضمن في حزمة التثبيت وسيُقدّم لك بشكل منفصل من قِبل digna.
- حدّد ملف
license.tomlالمزوّد لك - انسخه إلى جذر دليل تثبيت digna (حيث يتواجد
config.tomlوالملف التنفيذيdigna)
لماذا هذا مهم: يحتوي ملف الترخيص على معلومات العميل، وتاريخ انتهاء الترخيص، والتوقيع الرقمي. لا تعدّل هذا الملف — أي تغييرات ستبطل صحته.
هيكل الدليل بعد الإعداد:
/opt/digna/
├── config.toml (ملف التكوين)
├── license.toml (ملف الترخيص الخاص بك - انسخه هنا)
├── digna (الملف التنفيذي الرئيسي)
├── bin/ (سكريبتات إدارة الخدمة)
└── dashboard/ (واجهة الويب)
└── (ملفات اللوحة)
تكوين الBackend¶
الخطوة 1: إنشاء وتعديل ملف التكوين¶
يوجد ملف config_template.toml في دليل تثبيت digna الخاص بك. كل ما عليك هو إعادة تسميته إلى config.toml.
الموقع: /opt/digna/config.toml
افتح config.toml في محرر نصي وقم بتكوين كل قسم أدناه.
قسم [app]¶
يضبط هذا القسم مشاركة الموارد عبر المصادر (CORS) بين لوحة التحكم والواجهة الخلفية (backend):
[app]
DIGNA_APP_CORS_ALLOW_ORIGINS = ["http://localhost:5173"]
DIGNA_APP_CORS_ALLOW_CREDENTIALS = true
| المعامل | القيمة | ملاحظات |
|---|---|---|
DIGNA_APP_CORS_ALLOW_ORIGINS | عناوين URL للوحة التحكم | عناوين URL التي تُقدَّم منها لوحة التحكم. تُرفض طلبات المتصفح الواردة من أي أصل آخر |
DIGNA_APP_CORS_ALLOW_CREDENTIALS | true | مطلوب، كي يرسل المتصفح ملف تعريف ارتباط الجلسة مع كل طلب |
ملاحظة
إذا قمت بخدمة اللوحة من nginx الخاص بـ Homebrew على المنفذ الافتراضي، فإن الأصل الذي يجب السماح به هو http://localhost:8080.
القسم [app] اختياري
ابتداءً من الإصدار 2026.11، يمكن حذف المفتاحين، بل القسم [app] بأكمله. وهذا هو الإعداد الصحيح عندما يقدّم وكيل عكسي (reverse proxy) لوحة التحكم والواجهة الخلفية تحت أصل واحد: عندئذٍ لا يرسل المتصفح أي طلبات عبر المصادر، ولا يُسمح بأي منها افتراضيًا.
قسم [repo]¶
هذا القسم يضبط الاتصال بقاعدة بيانات PostgreSQL:
[repo]
DIGNA_REPO_HOST = "localhost"
DIGNA_REPO_PORT = 5432
DIGNA_REPO_DB = "postgres"
DIGNA_REPO_SCHEMA = "dignarepo"
DIGNA_REPO_USER = "digna_user"
DIGNA_REPO_PASSWORD = "YourSecurePassword123!"
DIGNA_REPO_SSLMODE = "prefer"
DIGNA_REPO_NUM_CONNS = 16
| المعامل | القيمة | ملاحظات |
|---|---|---|
DIGNA_REPO_HOST | localhost أو IP | اسم مضيف/IP خادم PostgreSQL |
DIGNA_REPO_PORT | 5432 (افتراضي) | منفذ PostgreSQL |
DIGNA_REPO_DB | postgres | اسم قاعدة البيانات |
DIGNA_REPO_SCHEMA | dignarepo | الـ schema الذي أنشأته سابقًا |
DIGNA_REPO_USER | digna_user | المستخدم الذي أنشأته في إعداد PostgreSQL |
DIGNA_REPO_PASSWORD | كلمة مرورك | كلمة المرور التي تم تعيينها أثناء إنشاء الـ schema |
DIGNA_REPO_SSLMODE | prefer (افتراضي) | اختياري. وضع SSL في PostgreSQL: disable أو allow أو prefer أو require أو verify-ca أو verify-full |
DIGNA_REPO_NUM_CONNS | 16 (افتراضي) | اختياري. عدد الاتصالات التي يُبقيها digna مفتوحة مع المستودع |
قسم [base]¶
يحتوي هذا القسم على إعدادات الأمان وملفات تعريف الارتباط والفحص:
[base]
DIGNA_FERNET_KEY = "DU4a0yJ-OqvbKCL4hNQn_CsknH-V1vWmHZqBUl-AY44="
DIGNA_COOKIE_DOMAIN = "localhost"
DIGNA_COOKIE_SECURE = false
DIGNA_COOKIE_HTTPONLY = true
DIGNA_TOKEN_EXPIRES_IN = 86400
DIGNA_MAX_WORKERS = 4
DIGNA_FRONTEND_BASEURL = "http://localhost/"
DIGNA_SOURCE_QUERY_TIMEOUT_SEC = 3600
DIGNA_SOURCE_LOGIN_TIMEOUT_SEC = 30
| المعامل | القيمة | ملاحظات |
|---|---|---|
DIGNA_FERNET_KEY | القيمة الموضحة أعلاه | مفتاح التشفير الذي استخدمته الإصدارات السابقة. يجب أن يكون موجودًا؛ احتفظ بالقيمة الموضحة |
DIGNA_COOKIE_DOMAIN | localhost | المضيف الذي يُوصَل عبره إلى لوحة التحكم. القيمة "" لا تعيّن أي نطاق، وهذا هو الصحيح خلف وكيل يقدّم لوحة التحكم والواجهة الخلفية تحت أصل واحد |
DIGNA_COOKIE_SECURE | false (HTTP) / true (HTTPS) | يجب أن تكون القيمة true كلما قُدِّم digna عبر HTTPS |
DIGNA_COOKIE_HTTPONLY | true | يُبقي ملف تعريف ارتباط الجلسة بعيدًا عن متناول السكربتات |
DIGNA_TOKEN_EXPIRES_IN | 86400 (24 ساعة) | مهلة الجلسة بالثواني |
DIGNA_MAX_WORKERS | عدد أنوية CPU - 1 | عدد عمليات الفحص التي يمكن أن تعمل في الوقت نفسه |
DIGNA_FRONTEND_BASEURL | عنوان URL للوحة التحكم | إلزامي. يُستخدم للروابط في رسائل الإشعارات، لذا يجب أن يكون عنوانًا يستطيع المستلمون فتحه |
DIGNA_SOURCE_QUERY_TIMEOUT_SEC | 3600 (افتراضي) | اختياري. عدد الثواني التي يمكن أن يعمل خلالها استعلام واحد على قاعدة بيانات مصدر قبل إيقافه؛ القيمة 0 تعطّل المهلة |
DIGNA_SOURCE_LOGIN_TIMEOUT_SEC | 30 (افتراضي) | اختياري. عدد ثواني انتظار الاتصال بقاعدة بيانات مصدر؛ القيمة 0 تعني الانتظار بلا حد |
نصيحة
لمعرفة عدد أنوية المعالج المتاحة على جهاز Mac، شغّل sysctl -n hw.ncpu.
قسم [encryption]¶
يحتوي هذا القسم على المفتاح المستخدم لتشفير القيم الحساسة المخزنة في المستودع. وهو إلزامي — يُبلغ config check عن القسم [encryption] بحالة FAILED إذا كان المفتاح مفقودًا.
| المعامل | القيمة | ملاحظات |
|---|---|---|
DIGNA_ENCRYPTION_KEY | مفتاح مُرمّز بصيغة Base64 | يشفّر القيم الحساسة المخزنة في مستودع digna |
احمِ الملف config.toml
هذا المفتاح قيمة ثابتة ومتطابقة في جميع تثبيتات digna، وهو ما يفك تشفير القيم الحساسة في مستودعك. اقصر الوصول إلى config.toml على الحساب الذي يشغّل digna، وأبقِ الملف خارج نظام إدارة الإصدارات والأقراص المشتركة، واستبعده من أي نسخة احتياطية تُحفظ بأمان أقل من المستودع نفسه.
قسم [logging]¶
هذا القسم يضبط سلوك التسجيل:
| المعامل | القيمة | ملاحظات |
|---|---|---|
DIGNA_LOGGING_MODE | INFO أو DEBUG | INFO للإنتاج، DEBUG لاستكشاف الأخطاء. تُقبل أيضًا القيم TRACE وWARN وERROR |
DIGNA_LOGGING_DIR | logs (افتراضي) | اختياري. دليل ملفات السجل المتناوبة، نسبةً إلى دليل العمل |
DIGNA_LOGGING_MAX_FILES | 30 (افتراضي) | اختياري. عدد ملفات السجل المتناوبة التي يُحتفظ بها |
قسم [duckdb] (اختياري)¶
جديد في الإصدار 2026.11. يحدد هذا القسم موارد digna Engine، الذي يُجري تنميط البيانات داخل digna لاتصالات قواعد البيانات التي يكون موقع التنميط فيها digna Engine، ويُشغّل فحوصات التكامل المرجعي بين مصادر بيانات موجودة على اتصالات قواعد بيانات مختلفة. انظر موقع التنميط.
هذا القسم اختياري. من دونه تُطبَّق القيم الافتراضية أدناه.
| المعامل | القيمة | ملاحظات |
|---|---|---|
DIGNA_DUCKDB_MEMORY_LIMIT_MB | 1024 (افتراضي) | الذاكرة بالميغابايت التي يمكن أن يستخدمها تشغيل واحد لـ digna Engine. يمكن أن يكون ما يصل إلى DIGNA_MAX_WORKERS من عمليات التشغيل نشطًا في الوقت نفسه |
DIGNA_DUCKDB_TEMP_DIRECTORY | الافتراضي: الدليل المؤقت للنظام ($TMPDIR للحساب الذي يشغّل digna) | دليل الملفات المؤقتة عندما لا تتسع الذاكرة للبيانات |
تحديد حجم digna Engine
خطّط لما يصل إلى DIGNA_MAX_WORKERS × DIGNA_DUCKDB_MEMORY_LIMIT_MB من الذاكرة على مضيف digna، فوق ما يستخدمه digna نفسه، ولمساحة قرص حرة كافية في الدليل المؤقت تتسع لأكبر تاريخ مفحوص من مصادر البيانات التي تستخدم digna Engine. وجّه DIGNA_DUCKDB_TEMP_DIRECTORY إلى قرص تتوفر فيه هذه المساحة ويستطيع الحساب الذي يشغّل digna الكتابة فيه:
لا تحتاج إلى هذا القسم إلا إذا كان اتصال واحد على الأقل بقاعدة بيانات يستخدم digna Engine، أو كان فحص تكامل مرجعي يقارن مصادر بيانات موجودة على اتصالات مختلفة.
الخطوة 2: تحقق من التهيئة¶
قبل تهيئة المستودع، تحقق من أن config.toml مكتمل ومبني بشكل صحيح. نفّذ في دليل تثبيت digna:
يُتحقق من كل قسم على حدة، بحيث لا يخفي خطأ واحد حالة الأقسام الأخرى:
Configuration validation report (source: config.toml):
- App config: OK
- Repository config: OK
- Base config: OK
- Logging config: OK
- Encryption config: OK
- OIDC config(s): OK
- Template overrides: OK
- Unknown keys: OK
Overall: OK
صحّح كل ما يُبلَّغ عنه بحالة FAILED، وأعد تنفيذ الأمر قبل المتابعة. يسرد WARNING تحت Unknown keys المفاتيح الموجودة في config.toml التي لا يقرؤها digna؛ ليس لها أي تأثير، لذا احذفها أو صحّح تهجئتها. القائمة الكاملة للخيارات موجودة في مرجع CLI.
الخطوة 3: تهيئة المستودع¶
- افتح Terminal
- انتقل إلى دليل تثبيت digna (حيث يوجد
config.tomlوالملف التنفيذيdigna) - شغّل اختبار الاتصال:
على مخطط جديد، يتصل الأمر ثم يُبلغ بأنه لا يوجد مستودع مثبّت بعد:
في هذه المرحلة هذه هي النتيجة المتوقعة: فهي تؤكد أن digna يصل إلى PostgreSQL وإلى المخطط. أما خطأ الاتصال أو المصادقة فيشير بدلًا من ذلك إلى القسم [repo] أو إلى إعداد PostgreSQL.
ملاحظة
على macOS، الأوامر في الدليل الحالي ليست في PATH، لذا يُستدعى الملف التنفيذي كـ ./digna بدلًا من digna. لاستخدام الشكل الأقصر في كل مكان، أضف دليل التثبيت إلى PATH لديك:
الخطوة 4: تثبيت مخطط المستودع¶
في نفس الدليل، شغّل:
يُثبّت هذا الأمر الجداول اللازمة في مخطط المستودع وينتهي بالرسالة:
الأمر repo upgrade يثبّت ويرقّي
ابتداءً من الإصدار 2026.11، يثبّت repo upgrade مستودعًا جديدًا ويرقّي مستودعًا موجودًا. ولا يزال repo install يعمل كاسم آخر للأمر نفسه.
الخطوة 5: إنشاء مستخدم مسؤول (Admin)¶
- افتح نافذة Terminal جديدة
- انتقل إلى دليل تثبيت digna
- شغّل الأمر التالي لإنشاء مستخدم مسؤول:
مثال:
يؤدي ذلك إلى إنشاء مستخدم بعنوان البريد الإلكتروني admin@example.com وامتيازات إدارية كاملة.
نصيحة
ضع كلمة المرور بين علامات اقتباس مفردة. يتعامل zsh مع أحرف مثل ! و $ و * بشكل خاص، والكلمة غير المقتبسة التي تحتوي عليها لن تُمرَّر كما كتبت.
أفضل الممارسات
استخدم كلمة مرور قوية تحتوي مزيجًا من أحرف كبيرة، وصغيرة، وأرقام، ورموز خاصة.
الخطوة 6: بدء خادم digna¶
في دليل تثبيت digna، ابدأ الخادم بـ:
المعلمات: - --address — اسم المضيف/IP للخادم (الافتراضي 127.0.0.1) - --port — منفذ الخادم (الافتراضي 8000)
عندما يعمل الخادم، يطبع العنوان الذي يستمع عليه:
نصيحة
في المرة الأولى التي تشغّل فيها الخادم، قد يسألك macOS ما إذا كنت تريد السماح للتطبيق بقبول اتصالات الشبكة الواردة. انقر Allow، وإلا فلن تتمكن اللوحة من الوصول إلى الـ backend.
الخادم يشغل الطرفية
يعمل serve في المقدمة ويستمر حتى توقفه بالضغط على Ctrl+C. اتركه يعمل بينما تكمل الإعداد؛ ولتشغيله تلقائيًا عند الإقلاع بدلًا من ذلك انظر تشغيل digna كخدمة في الخلفية.
تكوين اللوحة¶
الخطوة 1: نشر اللوحة على خادم الويب¶
تقرأ لوحة digna تهيئتها الخاصة من dashboard/dashboard_config.toml. هذا الملف لا يأتي مع التثبيت — بل تنشئه في دليل dashboard/ إلى جانب ملفات لوحة التحكم.
محتوياته موضّحة في الدخول الموحّد (SSO)، وهناك أيضًا يلزم الملف: فهو يحمل خيارات تسجيل الدخول التي تعرضها لوحة التحكم، وفي عمليات النشر متعددة النسخ، اتصال الواجهة الخلفية.
اختر خادم الويب الخاص بك واتبع خطوات النشر المناسبة.
النشر على nginx¶
إذا اتبعت قسم إعداد nginx، فإن كتلة الخادم تشير بالفعل إلى مجلد dashboard الخاص بك ولا حاجة للنسخ.
- تأكد من المسار
- افتح
$(brew --prefix)/etc/nginx/servers/digna.conf -
تحقق أن
rootيشير إلى مجلدdashboardالمستخرج -
تأكد أن المجلد قابل للقراءة
-
أعد تحميل nginx
-
اختبر التثبيت
- افتح متصفحك
- انتقل إلى
http://localhost:8080(أو عنوان URL الذي ضبطته) - يجب أن ترى صفحة تسجيل دخول لوحة digna
النشر على Apache httpd¶
-
انسخ اللوحة إلى جذر المستندات
-
أضف قواعد إعادة الكتابة
أنشئ ملف .htaccess داخل المجلد المنشور حتى تبقى مسارات اللوحة صالحة عند تحديث المتصفح:
ألصق التالي:
RewriteEngine On
RewriteBase /digna/
# Serve existing files and directories as-is.
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Everything else falls back to the single-page application entry point.
RewriteRule ^ index.html [L]
-
أعد تشغيل Apache
-
الوصول إلى اللوحة
- افتح متصفحك
- انتقل إلى
http://localhost/digna - يجب أن ترى صفحة تسجيل دخول لوحة digna
تشغيل digna كخدمة في الخلفية¶
لماذا تشغيل digna كخدمة؟¶
تشغيل backend الخاص بـ digna كخدمة في الخلفية يضمن أن:
- يبدأ تلقائيًا عند إقلاع الجهاز
- يعمل في الخلفية دون الحاجة إلى نافذة Terminal مفتوحة
- يعاد تشغيله تلقائيًا إذا تعطل
- يمكن إدارته عبر
launchctl، مدير الخدمات في macOS
ملفات إدارة الخدمة¶
جميع الملفات اللازمة تقع في دليل تثبيت digna تحت: bin/
السكربتات الشل التالية متاحة:
install_service.sh— يسجل digna لدى launchduninstall_service.sh— يلغى تسجيل الخدمةstart_service.sh— يشغّل الخدمة المسجلةstop_service.sh— يوقف الخدمة العاملة
مطلوب صلاحيات المسؤول
يجب تنفيذ كل السكربتات باستخدام sudo، لأن تسجيل خدمة تبدأ عند الإقلاع يكتب إلى /Library/LaunchDaemons.
جعل السكربتات قابلة للتنفيذ¶
قد لا تحفظ عملية الاستخراج بت التشغيل. قبل الاستخدام الأول:
تثبيت الخدمة¶
-
افتح Terminal
-
انتقل إلى مجلد bin
-
شغّل سكربت التثبيت
تم الآن تسجيل خادم digna لدى launchd مع تشغيل تلقائي عند الإقلاع. لا تبدأ الخدمة فورًا — راجع القسم التالي لبدئها.
بدء وإيقاف الخدمة¶
لبدء الخدمة¶
- افتح Terminal
- انتقل إلى
/opt/digna/bin - شغّل:
لإيقاف الخدمة¶
- افتح Terminal
- انتقل إلى
/opt/digna/bin - شغّل:
نصيحة
أوقِف دائمًا الخدمة قبل تحديث ملفات التطبيق.
التحقق من الخدمة¶
لتأكيد أن الخدمة مسجلة وتعمل:
سطر يبدأ بمعرف عملية يدل على أن الخدمة تعمل. وجود - في العمود الأول يعني أنها مسجلة ولكن متوقفة.
نقل الخدمة إلى دليل جديد¶
يخزن launchd المسار المطلق للملف التنفيذي، لذا يتطلب نقل التثبيت إعادة تسجيل الخدمة:
-
إلغاء تثبيت الخدمة الحالية
-
نقل ملفات التطبيق
-
إعادة تثبيت الخدمة
-
بدء الخدمة
إلغاء تثبيت الخدمة¶
-
أوقف الخدمة العاملة
-
ألغِ تثبيت الخدمة
تم الآن إلغاء تسجيل خادم digna من launchd.
الترقية إلى إصدار جديد¶
يرقّي هذا القسم تثبيتًا من الإصدار 2026.06 إلى الإصدار 2026.11. إذا كان تثبيتك أقدم، فاقرأ أولًا الترقية من إصدار سابق لـ 2026.06.
قبل الترقية¶
النسخ الاحتياطي لمستودع digna إلزامي
قبل ترقية digna، اعمل نسخة احتياطية من مستودعك (PostgreSQL) لحماية بياناتك من الضياع. النسخة الاحتياطية تضمن إمكانية الاسترداد إذا واجهت الترقية مشكلات غير متوقعة.
لإنشاء نسخة احتياطية من الـ Terminal:
طلب ملف الترخيص للإصدار 2026.11
يحتاج الإصدار 2026.11 إلى ملف license.toml جديد. اطلبه من فريق digna قبل أن تبدأ، واجعله جاهزًا لـ الخطوة 7.
الترقية من إصدار سابق لـ 2026.06¶
جلب الإصدار 2026.06 ثلاثة تغييرات لا تزال سارية عندما ترقّي تثبيتًا أقدم مباشرةً إلى 2026.11:
- ODBC فقط. يصل digna إلى كل تقنية مصدر عبر ODBC. كل اتصال بقاعدة بيانات لا يستخدم ODBC بعد يجب تحويله إلى ODBC بعد الترقية؛ لا يوجد تحويل تلقائي. ثبّت برامج تشغيل ODBC على مضيف digna مسبقًا، انظر تثبيت برنامج تشغيل ODBC على مضيف digna، وجهّز خصائص كل اتصال من أدلة التقنيات. لم يعد موصل Databricks Legacy موجودًا؛ انقل تلك الاتصالات إلى موصل Databricks.
- ملف تنفيذي واحد. يحل الملف التنفيذي الواحد
digna، الذي يجمع الواجهة الخلفية وواجهة سطر الأوامر (CLI)، محلdignabackendوdignacli. - config.toml. القسم
[encryption]إلزامي، ولم يعدDIGNA_APP_HOSTوDIGNA_APP_PORTيُقرآن: يأخذ الخادم عنوانه ومنفذه منdigna serve. قارن ملفك بقسم تكوين الخلفية (Backend).
تشير الخطوات أدناه إلى المواضع التي يحتاج فيها التثبيت الأقدم إلى إجراء مختلف. ترقية المستودع في الخطوة 8 تنقل مستودع أي إصدار سابق مباشرةً إلى 2026.11.
عملية الترقية¶
الخطوة 1: إيقاف خدمة digna¶
إذا كان digna يعمل كخدمة في الخلفية، فأوقفه أولًا:
إذا كان digna يعمل في المقدمة (foreground)، اضغط Ctrl+C في نافذة Terminal الخاصة به.
الخطوة 2: انسخ التثبيت الحالي احتياطيًا¶
في دليل تثبيت digna، أعد تسمية الملف التنفيذي ومجلد لوحة التحكم في تثبيتك الحالي، حتى يمكن نشر الإصدار الجديد بجوارهما:
احتفظ بـ digna_old حتى تتحقق من الترقية، وبـ dashboard_old حتى تستعيد منه ملفات التهيئة الخاصة بك (انظر الخطوة 4). بعد ذلك يمكنك حذفهما.
الترقية من إصدار سابق لـ 2026.06
أعد تسمية مجلدَي dignabackend وdignacli بدلًا من الملف التنفيذي: mv dignabackend dignabackend_old وmv dignacli dignacli_old. لا يستخدم الإصدار 2026.11 أيًّا منهما.
الخطوة 3: فك ونشر النسخة الجديدة¶
- فك ملف ZIP للنسخة الجديدة من digna
- انسخ الملف التنفيذي الجديد
dignaومجلدdashboardإلى دليل التثبيت - أعد بت التنفيذ، وأزل سمة الحجر (quarantine) عند الحاجة:
مهم
لا يُضمَّن config.toml ولا dashboard/dashboard_config.toml أبدًا في أرشيف ZIP الخاص بالتثبيت — فريق digna لا يرسل أيًّا من الملفين أبدًا. لذلك تبقى تهيئتك الحالية بمنأى عن الترقية، والنسخ الموجودة في المجلدات المعاد تسميتها *_old هي النسخ الوحيدة التي لديك.
الخطوة 4: استعادة ملفات التهيئة الخاصة بك¶
لا يحتاج الإصدار 2026.11 إلى أي تغيير في config.toml: الملف الذي يعمل مع الإصدار 2026.06 يظل يعمل. هناك تغييران اختياريان:
- أضف قسم
[duckdb]إذا كانت اتصالات قواعد البيانات ستستخدم digna Engine ولم تكن قيمه الافتراضية مناسبة لمضيفك. - احذف القسم
[app]إذا كان وكيل عكسي يقدّم لوحة التحكم والواجهة الخلفية تحت أصل واحد.
إعدادات لا يقرؤها digna
عرضت نسخ سابقة من هذا الدليل بعض الإعدادات التي لا يقرؤها digna. ليس لها أي تأثير، ويسردها config check تحت Unknown keys في الخطوة 6. احذفها أو صحّحها:
DIGNA_SCHEDULER_MAX_DELAYوDIGNA_CLEANUP_TIMEوdigna_COOKIE_PATHوdigna_COOKIE_SAME_SITEوdigna_APP_CORS_ALLOW_METHODSوdigna_APP_CORS_ALLOW_HEADERSوdigna_LOGGING_BACKUP_COUNTغير موجودة. احذفها.- أسماء الإعدادات حساسة لحالة الأحرف. يقرأ digna
DIGNA_REPO_HOST، لاdigna_REPO_HOST. اكتب كل اسم بأحرف كبيرة، كما في تكوين الخلفية (Backend).
الدخول الموحّد: أبقِ على [[oidc_clients]]
يقرأ digna مزوّدي الدخول الموحّد كقائمة من إدخالات [[oidc_clients]]، لكلٍّ منها DIGNA_OIDC_KEY الخاص به. إذا كنت قد حوّلت مزوّديك إلى أقسام [oidc_clients.<key>]، كما عرضت نسخة سابقة من هذا الدليل، فأعدها إلى الصيغة السابقة. يُبلغ config check عن OIDC config(s) بحالة FAILED ما دامت تلك الصيغة قائمة:
[[oidc_clients]]
DIGNA_OIDC_KEY = 'microsoft'
DIGNA_OIDC_CLIENT_ID = '<client_id>'
DIGNA_OIDC_CLIENT_SECRET = '<client_secret>'
DIGNA_OIDC_REDIRECT_URI = 'http://localhost:3000/oidc/callback'
DIGNA_OIDC_CONFIGURATION_URL = 'https://login.microsoftonline.com/<tenant_id>/v2.0/.well-known/openid-configuration'
كرّر الإدخال لكل مزوّد، وأبقِ كل DIGNA_OIDC_KEY مطابقًا لـ key في dashboard_config.toml. لا يتأثر بذلك سوى التثبيتات التي تستخدم الدخول الموحّد.
الخطوة 5: إعادة تحميل خادم الويب¶
لوحة التحكم عبارة عن مجموعة من الملفات الثابتة، لذا قد يظل خادم الويب — والمتصفح — يقدّمان الإصدار السابق. أعد تحميل أو أعد تشغيل خادم الويب الذي يستضيف مجلد dashboard، ثم أعد تحميل الصفحة بتحديث كامل (Cmd+Shift+R).
الخطوة 6: تحقق من التهيئة¶
تأكد من أن ملف config.toml مكتمل قبل أن تمسّ المستودع:
يجب أن يُبلِّغ كل قسم بحالة OK. صحّح كل ما يُبلَّغ عنه بحالة FAILED، واحذف المفاتيح المدرجة تحت Unknown keys، وأعد تنفيذ الأمر قبل المتابعة.
الخطوة 7: استبدال ملف الترخيص¶
ينتقل ملف الترخيص عادةً من إصدار إلى الإصدار الذي يليه. الإصدار 2026.11 استثناء: فهو يضيف وحدتين مرخّصتين، digna Data Reconciliation وdigna Agentic، والترخيص الصادر قبل 2026.11 لا يتضمنهما. انسخ ملف license.toml الذي قدّمه فريق digna للإصدار 2026.11 إلى دليل التثبيت، ليحل محل الملف القديم:
لا تحتفظ بالترخيص السابق
مع الترخيص السابق يبدأ digna، لكن digna Data Reconciliation وdigna MCP Server يبقيان معطّلين. وكل أمر يتحقق من الترخيص — user و inspection وrepo — يتوقف قبل أن يمسّ المستودع عند فشل التحقق. تحقّق من الترخيص الجديد قبل المتابعة:
الخطوة 8: ترقية مخطط المستودع¶
في دليل تثبيت digna، شغّل:
يدير الإصدار 2026.11 مخطط المستودع بعمليات ترحيل ذات أرقام إصدارات (versioned migrations). أول ترقية من إصدار سابق تنقل المخطط إلى آخر نسخة من الآلية السابقة، وتسجّل ذلك نقطةَ بداية له، ثم تطبّق عمليات ترحيل الإصدار 2026.11. وتنتهي بالرسالة:
تُحفظ جميع البيانات الحالية. لمعرفة حالة المستودع في أي وقت، شغّل ./digna repo check: فهو يسرد آخر عملية ترحيل مطبّقة وأي عمليات ترحيل معلّقة.
لا يبدأ digna على مستودع قديم
ابتداءً من الإصدار 2026.11، يرفض الخادم البدء ما دام المستودع يحتاج إلى ترقية، ويُبلغ بذلك، على سبيل المثال:
شغّل repo upgrade قبل أن تبدأ الخادم أو الخدمة.
الخطوة 9: إعادة تشغيل الخدمات¶
إذا كان يعمل كخدمة في الخلفية:
إذا كنت تشغّله يدويًا، أعد تشغيل الخادم:
إذا كنت تستخدم nginx أو Apache، أعد تشغيل خادم الويب المعني:
الخطوة 10: التحقق من الترقية¶
-
تأكد من إصدار الملف التنفيذي الجديد:
يجب أن يكون السطر الأول
Release: 2026.11. -
افتح لوحة digna وتحقق من تحميل الواجهة بشكل صحيح.
- تحقق من مخرجات الخادم ومن الملفات في الدليل
logsبحثًا عن أخطاء. - اختبر اتصالات قواعد البيانات — انظر اختبار اتصال. بعد الترقية من إصدار سابق لـ 2026.06، حوّل أولًا إلى ODBC كل اتصال لم يكن يستخدمه بعد.
للبدء مع الوحدات الجديدة، انظر digna Data Reconciliation، وربط وكيل ذكاء اصطناعي من أجل digna MCP Server، وموقع التنميط من أجل digna Engine.