نشر تطبيق سطح المكتب
كيفية تثبيت تطبيق Antimatter لسطح المكتب على حواسيب شركة أو مدرسة، وإعداد خوادمه واسم المستخدم وفحص التحديثات مركزياً على Windows وmacOS وLinux.
تنزيل التطبيق
إصدارات تطبيق سطح المكتب متاحة على GitHub في github.com/AntimatterChat/desktop-app/releases. وكما هو الحال مع الخادم، فإن التطبيق في مرحلة تجريبية: الإصدار الذي يحتوي على لاحقة بعد شرطة في رقمه يُوسم بـإصدار مسبق. يحتوي كل إصدار على ملف SHA256SUMS يضم بصمة التحقق لكل ملف. تحقق من التنزيل باستخدام sha256sum --check --ignore-missing SHA256SUMS على Linux، أو قارن مخرجات Get-FileHash <file> -Algorithm SHA256 في PowerShell بالسطر المقابل في SHA256SUMS.
- Windows (x64 وarm64): مُثبّت
.exe، أو حزمة.msi، أو أرشيف.zip. على سبيل المثالantimatter-desktop-<version>-win-x64.exeوantimatter-desktop-<version>-win-x64.msi. - macOS: صورة قرص
.dmgأو أرشيف.zip، لمعالجات Apple silicon (arm64)، أو حواسيب Mac من Intel (x64)، أو كلاهما (universal). - Linux (x64 وarm64): حزمة .deb أو .rpm، أو AppImage، أو حزمة Flatpak، أو أرشيف
.tar.gz.
أي مُثبّت Windows يجب استخدامه
| مُثبّت .exe | حزمة .msi | |
|---|---|---|
| مناسب لـ | الأشخاص الذين يثبّتون التطبيق بأنفسهم | الشركات التي تنشره على حواسيبها |
| التثبيت | لحساب Windows الحالي فقط، في %LOCALAPPDATA%\Programs\antimatter-desktop، دون صلاحيات مسؤول | لكل مستخدم على الحاسوب، في C:\Program Files\Antimatter، مع صلاحيات مسؤول |
| التحديثات | يفحص التطبيق الإصدارات الجديدة ويقترح تنزيل .exe الجديد، مما يُحدّث النسخة المثبتة في مكانها | لا يفحص التطبيق الإصدارات الجديدة: أنت من ينشرها |
يتحقق التطبيق من الإصدارات الجديدة على GitHub كل ساعة أثناء تشغيله، ويرى فقط الإصدارات الكاملة وليس الإصدارات التجريبية. عند العثور على إصدار جديد، يُعلم المستخدم ويقدم له رابطًا لتنزيله. النسخة المثبتة باستخدام MSI لا تتحقق من التحديثات افتراضيًا، لأن المستخدمين عادةً لا يستطيعون تثبيت البرامج. يمكنك تفعيل التحقق من التحديثات لهذه النسخة باستخدام إعداد EnableAutoUpdater: في هذه الحالة، يكون التنزيل المقترح هو ملف .msi الجديد، والذي يتطلب صلاحيات المسؤول.
استخدم MSI لنشر مُدار باستخدام SCCM (Configuration Manager) أو Intune أو تثبيت البرامج عبر سياسات المجموعة. يؤدي تثبيت MSI إلى إزالة نسخة .exe الخاصة بالحساب الذي يقوم بالتثبيت، إذا كانت موجودة.
الإعدادات التي يمكنك إدارتها
توجد نفس الإعدادات على جميع الأنظمة. على Windows، تكون قيم سجل نظام تحت SOFTWARE\Policies\Antimatter، في HKEY_LOCAL_MACHINE (للكمبيوتر) أو HKEY_CURRENT_USER (لمستخدم واحد). على macOS وLinux، تكون مفاتيح التفضيلات المُدارة أو ملف السياسة.
| الإعداد | على Windows | على macOS وLinux | وظيفته |
|---|---|---|---|
DefaultServerList | مفتاح فرعي يحتوي على قيمة نصية واحدة لكل خادم: اسم القيمة هو اسم تبويب الخادم، والبيانات هي عنوان URL الخاص به | مصفوفة من القواميس (كائنات على Linux) تحتوي على name وurl | يضيف الخوادم إلى التطبيق. لا يستطيع المستخدمون تعديلها أو إزالتها. |
DefaultUsername | نص | نص | يملأ اسم المستخدم في صفحة تسجيل الدخول لهذه الخوادم. |
EnableServerManagement | DWORD، 0 أو 1 | قيمة منطقية | 0 أو false: يمكن للمستخدمين استخدام الخوادم المحددة بواسطة DefaultServerList فقط، ويخفي التطبيق خيارات إضافة الخوادم أو تعديلها أو إزالتها. غير مُعيَّن: يمكن للمستخدمين إضافة خوادمهم الخاصة. |
EnableAutoUpdater | DWORD، 0 أو 1 | قيمة منطقية | 0 أو false: لا يتحقق التطبيق أبدًا من الإصدارات الجديدة، ويخفي التحقق من التحديثات. 1 أو true: يتحقق من التحديثات، حتى عند التثبيت باستخدام MSI. غير مُعيَّن: تتحقق نسخة .exe من التحديثات، بينما لا تفعل نسخة MSI. |
TrustedEmbeddedMediaOrigins | مفتاح فرعي يحتوي على قيم نصية، كل منها كائن JSON يحتوي على serverOrigin وembeddedOrigin | مصفوفة من القواميس تحتوي على serverOrigin وembeddedOrigin | يسمح للمحتوى المضمّن في صفحات الخادم، مثل صفحة اجتماع الفيديو، باستخدام أذونات الكاميرا والميكروفون الممنوحة لذلك الخادم. |
- اسم المستخدم يُملأ فقط في صفحة تسجيل الدخول لل خوادم المحددة بواسطة السياسة، ولا يُملأ أبدًا على خادم أضافه شخص ما، ولا يُستبدل أبدًا بما كتبه أحدهم. يمكن للأشخاص تغييره في أي وقت. تُستبدل متغيرات البيئة الموجودة بين علامات النسبة المئوية، لذا فإن قيمة واحدة تناسب الجميع:
%USERNAME%في Windows أو%USER%في macOS وLinux يعطي اسم الحساب، و%USERNAME%@example.comيعطي عنوان بريد إلكتروني يتبع هذا النمط. إذا لم يتم تعيين متغير، فلن يملأ التطبيق أي شيء. - إذا قمت بإيقاف إدارة الخوادم، فعيّن خادمًا واحدًا على الأقل في
DefaultServerList. - في Windows، تتفوق سياسة الحاسوب (
HKEY_LOCAL_MACHINE) على سياسة المستخدم (HKEY_CURRENT_USER). يتم دمج قوائم الخوادم لكليهما. - يقوم التطبيق بقراءة الإعدادات عند بدء تشغيله: بعد إجراء تغيير، يجب على المستخدمين إغلاق التطبيق وفتحه مرة أخرى.
Windows: التثبيت الصامت باستخدام MSI
يقبل ملف MSI خصائص عامة تكتب الإعدادات كسياسات حاسوب، في HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter. استخدمها في تطبيق SCCM، أو تطبيق Intune، أو في سكربت. في PowerShell:
msiexec /i antimatter-desktop-<version>-win-x64.msi /qn SERVERURL=https://chat.example.com SERVERNAME=Chat DEFAULTUSERNAME='%USERNAME%' AUTOUPDATE=0 SERVERMANAGEMENT=0
| الخاصية | تكتب | إذا لم تُعطَ |
|---|---|---|
SERVERURL | خادم في DefaultServerList، بهذا العنوان | لا يوجد خادم |
SERVERNAME | اسم تبويب ذلك الخادم | Antimatter |
DEFAULTUSERNAME | DefaultUsername | لا شيء |
AUTOUPDATE | EnableAutoUpdater، 0 أو 1 | لا شيء: نسخة MSI لا تفحص عن التحديثات |
SERVERMANAGEMENT | EnableServerManagement، 0 أو 1 | لا شيء: يمكن للأشخاص إضافة خوادم |
- الخاصية التي لا تُعطى لا تكتب شيئًا، لذا فهي لا تُستبدل بقيمة مضبوطة بواسطة Group Policy. تقبل
AUTOUPDATEوSERVERMANAGEMENTفقط 0 أو 1. يضبط MSI خادمًا واحدًا: استخدم Group Policy لمزيد من الخوادم. - يجب أن يصل
DEFAULTUSERNAMEإلى المثبّت كنص%USERNAME%، حتى يستبدله التطبيق لكل شخص. وإلا فإن shell الذي يشغّل التثبيت يستبدله باسم حسابه الخاص. في PowerShell، احتفظ بالعلامات الاقتباس المفردة. في ملف.bat، اكتب%%USERNAME%%. بعد تثبيت تجريبي، تحقق في السجل (registry) من أنDefaultUsernameيحتوي على%USERNAME%. - مرر الخصائص مرة أخرى عند كل ترقية. تثبيت إصدار جديد من MSI يزيل القديم، مع القيم التي كتبها، ثم يكتب قيم سطر الأوامر الجديد. تحافظ SCCM وIntune على سطر الأوامر لتطبيق: أعد استخدامه لكل إصدار جديد. أو اضبط السياسات باستخدام Group Policy أو Intune بدلاً من ذلك، والتي لا تلمسها الترقيات.
- يكتب كل من MSI وسياسة المجموعة (Group Policy) قيم السجل (Registry) نفسها. بالنسبة لكل إعداد، استخدم أحدهما أو الآخر: عند إلغاء تثبيت MSI، تُحذف القيم التي كتبها، حتى لو كانت سياسة المجموعة قد ضبطتها أيضاً.
- يسجّل MSI أيضاً مجلد التثبيت الخاص به في
HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop(InstallDir). بهذه الطريقة تعرف التطبيق أنه تم تثبيته باستخدام MSI.
لإلغاء التثبيت: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. في Intune، يقبل النوع "تطبيق Windows (Win32)" نفس سطور الأوامر. أما بالنسبة لنوع "تطبيق الأعمال (Line-of-business app)"، فأضف الخصائص إلى معلمات سطر الأوامر الخاص به.
Windows: سياسة المجموعة وIntune
تتوفر القوالب الإدارية، antimatter.admx وen-US\antimatter.adml، في مجلد gpo من التطبيق المثبّت (C:\Program Files\Antimatter\gpo في حالة MSI)، وفي مجلد resources/windows/gpo في مستودع التطبيق. تعرض هذه السياسات، تحت القوالب الإدارية › Antimatter:
| السياسة | قيمة السجل | الإعدادات |
|---|---|---|
| الخوادم (DefaultServerList) | المفتاح الفرعي DefaultServerList | الحاسوب والمستخدم |
| اسم المستخدم للملء المسبق (DefaultUsername) | DefaultUsername | الحاسوب والمستخدم |
| السماح للأشخاص بإضافة وإزالة الخوادم (EnableServerManagement) | EnableServerManagement | الحاسوب والمستخدم |
| الإشعار عن الإصدارات الجديدة (EnableAutoUpdater) | EnableAutoUpdater | الحاسوب فقط |
| مصادر الوسائط المضمنة الموثوقة (TrustedEmbeddedMediaOrigins) | المفتاح الفرعي TrustedEmbeddedMediaOrigins | الحاسوب والمستخدم |
سياسة المجموعة في نطاق (Domain)
- انسخ
antimatter.admxإلى المتجر المركزي،\\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions، وantimatter.admlإلى مجلدen-USالخاص به. - في محرر إدارة سياسة المجموعة، افتح إعدادات الحاسوب (أو إعدادات المستخدم) › السياسات › القوالب الإدارية › Antimatter.
- حرّر سياسة، واختر مفعّل واملأها. بالنسبة إلى الخوادم، انقر عرض وأضف سطراً واحداً لكل خادم: اسم القيمة هو اسم التبويب، والقيمة هي عنوان الخادم، مثل
https://chat.example.com.
تفعيل السماح للأشخاص بإضافة وإزالة الخوادم أو الإشعار عن الإصدارات الجديدة يكتب 1؛ وتعطيلها يكتب 0.
Intune
في الأجهزة › التكوين، استخدم استيراد ADMX لاستيراد antimatter.admx مع en-US\antimatter.adml. ثم أنشئ ملفًا من القوالب › قوالب الإدارة المستوردة، و اضبط سياسات Antimatter فيه.
حاسوب واحد، أو سكربت
انسخ القوالب إلى C:\Windows\PolicyDefinitions لاستخدامها في gpedit.msc (Windows Pro و Enterprise). أو اكتب قيم السجل مباشرةً، باستخدام ملف .reg يُستورد بصلاحيات المسؤول (reg import antimatter-policies.reg)، مثل هذا. يحتوي ملف example-policies.reg في المجلد نفسه على هذه القيم، مع تعليقات.
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter]
"EnableServerManagement"=dword:00000000
"EnableAutoUpdater"=dword:00000000
"DefaultUsername"="%USERNAME%"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter\DefaultServerList]
"Chat"="https://chat.example.com"
macOS: ملف تكوين
على macOS، يقرأ التطبيق إعداداته من التفضيلات المُدارة لمعرّف الحزمة الخاص به، chat.antimatter.desktop، باستخدام مفاتيح جدول الإعدادات. انشرها عبر نظام إدارة الأجهزة (MDM) الخاص بك (Jamf، Intune، Kandji، Mosyle وغيرها) كملف تكوين.
- يحتوي مجلد resources/mac/mdm في مستودع التطبيق على ملف تكوين نموذجي،
antimatter.mobileconfig. عدّل قيمه، وأضف قيمPayloadIdentifierوPayloadUUIDخاصة بك (uuidgenيُنشئ UUIDs جديدة)، ثم ارفعه كملف تكوين مخصص. - تقبل معظم أنظمة إدارة الأجهزة المفاتيح وحدها، كحمولة "إعدادات مخصصة" أو "نطاق تفضيلات" لـ
chat.antimatter.desktop. يحتوي المجلد نفسه على هذه المفاتيح فيexample-managed-preferences.plist.
الإعدادات داخل حمولة ملف التكوين:
<key>PayloadType</key>
<string>chat.antimatter.desktop</string>
<key>DefaultServerList</key>
<array>
<dict>
<key>name</key>
<string>Chat</string>
<key>url</key>
<string>https://chat.example.com</string>
</dict>
</array>
<key>DefaultUsername</key>
<string>%USER%</string>
<key>EnableServerManagement</key>
<false/>
<key>EnableAutoUpdater</key>
<false/>
يمكن أيضًا تقديم القيم المنطقية كأعداد صحيحة 0 و 1.
Linux: ملف السياسة
على Linux، يقرأ التطبيق /etc/antimatter-desktop/policies.json، وهو كائن JSON بمفاتيح جدول الإعدادات:
{
"DefaultServerList": [
{"name": "Chat", "url": "https://chat.example.com"}
],
"DefaultUsername": "%USER%",
"EnableServerManagement": false,
"EnableAutoUpdater": false,
"TrustedEmbeddedMediaOrigins": []
}
انشره باستخدام أداة إدارة التكوين الخاصة بك (Ansible، Puppet، Salt وغيرها)، بحيث يكون مملوكًا لـ root، وقابلًا للقراءة للجميع، وقابلًا للكتابة بواسطة root فقط:
sudo install -d /etc/antimatter-desktop
sudo install -m 644 policies.json /etc/antimatter-desktop/policies.json
يُتجاهل أي ملف ليس JSON صالحًا، مع تحذير في سجل التطبيق. لا ترى نسخة Flatpak مجلد /etc الخاص بالنظام المضيف: امنحها صلاحية القراءة، وستقرأ الملف من /run/host/etc/antimatter-desktop/policies.json:
sudo flatpak override --system --filesystem=host-etc:ro chat.antimatter.desktop
السياسات المُضبة لتطبيق Mattermost سطح المكتب
على نظام Windows، تقرأ التطبيق أيضاً السياسات المُعيّنة لتطبيق Mattermost سطح المكتب، تحت SOFTWARE\Policies\Mattermost، كخيار احتياطي. تقرأها حسب الموقع: القيم مباشرةً تحت مفتاح السياسة، والمفتاح الفرعي DefaultServerList، والمفتاح الفرعي TrustedEmbeddedMediaOrigins. لكلٍّ من هذه المواقع الثلاثة، تقرأ مفتاح Mattermost فقط عندما لا يحتوي مفتاح Antimatter على قيم هناك، في أيٍّ من الفروع. لذا، بمجرد تعيين قيمة واحدة مباشرةً تحت مفتاح Antimatter، على سبيل المثال عبر خاصية AUTOUPDATE الخاصة بملف MSI، لن تُقرأ أيٌّ من القيم مباشرةً تحت مفتاح Mattermost. انقل جميع سياساتك إلى مفتاح Antimatter دفعةً واحدة.
على نظام macOS، لا تُقرأ التفضيلات المُدارة لتطبيق Mattermost سطح المكتب (com.mattermost.desktop): عيّن هذه التفضيلات لـ chat.antimatter.desktop.
الإصدارات غير الموقّعة
لم تُوقَّع إصدارات تطبيق سطح المكتب بعد بشهادة ناشر.
- النوافذ. عندما يفتح شخص ملف
.exeأو.msiتم تنزيله، يُصدر Microsoft Defender SmartScreen تنبيهاً يفيد بأن Windows قد حمى الجهاز، مع ذكر ناشر غير معروف. يختار المستخدم مزيد من المعلومات، ثم تشغيل على أي حال. يفحص SmartScreen الملفات التي يفتحها المستخدمون بعد تنزيلها، لذا لا يرى المستخدمون هذا التنبيه عند نشر التطبيق عبر SCCM أو Intune أو Group Policy. إذا كانت أجهزة الحاسوب لديك تشغّل البرامج من الناشرين المعتمدين فقط (قواعد AppLocker أو App Control for Business)، فاسمح للتطبيق عبر مسار التثبيت أو بصمة الملف بدلاً من ذلك. - macOS. التطبيق موقّع بشكل مؤقت (ad hoc)، لكنه غير مُوثّق من قِبل Apple. عند أول مرة يفتح فيها شخص نسخةً تم تنزيلها، يُصدر macOS تنبيهاً يفيد بأنه لا يمكنه التحقق من خلو التطبيق من البرمجيات الخبيثة، ولا يفتحه. على macOS 15 وما بعده، يفتح المستخدم إعدادات النظام › الخصوصية والأمان ويختار فتح على أي حال. على الإصدارات الأقدم، ينقر المستخدم على التطبيق مع الضغط على زر Control ويختار فتح. يفحص Gatekeeper الملفات المُعلَّمة كملفات تم تنزيلها (مع خاصية الحجر): عند تثبيت التطبيق بأدواتك الخاصة، احذف العلامة في سكربت التثبيت باستخدام
xattr -dr com.apple.quarantine /Applications/Antimatter.app.