نصب برنامه دسکتاپ
نحوه نصب برنامه دسکتاپ Antimatter روی رایانههای یک شرکت یا مدرسه، و تنظیم سرورها، نام کاربری و بررسی بهروزرسانیها بهصورت متمرکز در Windows، macOS و Linux.
دانلود برنامه
نسخههای برنامه دسکتاپ در GitHub موجود است، در github.com/AntimatterChat/desktop-app/releases. مانند سرور، برنامه در حالت بتا است: نسخهای که پس از خط تیره در شماره نسخه، پسوندی دارد، با Pre-release مشخص شده است. هر نسخه دارای فایل SHA256SUMS با چکسام هر فایل است. دانلود را در Linux با sha256sum --check --ignore-missing SHA256SUMS بررسی کنید، یا خروجی 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)، مکهای 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 جدید است که به دسترسیهای مدیر نیاز دارد.
برای استقرار مدیریتشده با SCCM (Configuration Manager)، Intune یا نصب نرمافزار از طریق Group Policy از MSI استفاده کنید. نصب 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%در ویندوز یا%USER%در macOS و Linux نام حساب را میدهد و%USERNAME%@example.comیک نشانی ایمیل که این الگو را دنبال میکند. اگر متغیری تنظیم نشده باشد، برنامه چیزی را پر نمیکند. - اگر مدیریت سرور را غیرفعال کنید، حداقل یک سرور را در
DefaultServerListتنظیم کنید. - در ویندوز، یک سیاست رایانه (
HKEY_LOCAL_MACHINE) بر یک سیاست کاربر (HKEY_CURRENT_USER) اولویت دارد. فهرستهای سرور هر دو ترکیب میشوند. - برنامه تنظیمات را هنگام شروع میخواند: پس از یک تغییر، افراد باید از آن خارج شده و دوباره آن را باز کنند.
ویندوز: نصب بیصدا با 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، با این URL | هیچ سروری |
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%%را بنویسید. پس از یک نصب آزمایشی، در رجیستری بررسی کنید کهDefaultUsernameحاوی%USERNAME%است.- ویژگیها را در هر ارتقا دوباره بدهید. نصب یک نسخه جدید از MSI نسخه قدیمی را، همراه با مقادیری که نوشته است، حذف میکند، سپس مقادیر خط فرمان جدید را مینویسد. SCCM و Intune خط فرمان یک برنامه را حفظ میکنند: برای هر نسخه جدید از آن استفاده کنید. یا به جای آن سیاستها را با Group Policy یا Intune تنظیم کنید، که ارتقاها به آنها دست نمیزنند.
- MSI و Group Policy مقادیر یکسان را در رجیستری مینویسند. برای هر تنظیم، از یکی از این دو استفاده کنید؛ اگر MSI را حذف کنید، مقادیری که نوشته بود حذف میشوند، حتی اگر Group Policy هم آنها را تنظیم کرده باشد.
- MSI همچنین پوشه نصب خود را در
HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop(InstallDir) ثبت میکند. این روشی است که برنامه با آن میفهمد با MSI نصب شده است.
برای حذف نصب: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. در Intune، نوع «Windows app (Win32)» از همان خط فرمانها استفاده میکند. برای نوع «Line-of-business app»، این ویژگیها را به آرگومانهای خط فرمان آن اضافه کنید.
Windows: Group Policy و Intune
قالبهای مدیریتی، antimatter.admx و en-US\antimatter.adml، در پوشه gpo از برنامه نصبشده (C:\Program Files\Antimatter\gpo برای MSI) و در پوشه resources/windows/gpo از مخزن برنامه قرار دارند. این سیاستها را زیر Administrative Templates › Antimatter نمایش میدهند:
| سیاست | مقدار رجیستری | پیکربندی |
|---|---|---|
| سرورها (DefaultServerList) | زیرکلید DefaultServerList | کامپیوتر و کاربر |
| نام کاربری برای پیشپر کردن (DefaultUsername) | DefaultUsername | کامپیوتر و کاربر |
| اجازه افزودن و حذف سرورها (EnableServerManagement) | EnableServerManagement | کامپیوتر و کاربر |
| اعلان درباره نسخههای جدید (EnableAutoUpdater) | EnableAutoUpdater | فقط کامپیوتر |
| منشأهای رسانههای جاسازیشده مورد اعتماد (TrustedEmbeddedMediaOrigins) | زیرکلید TrustedEmbeddedMediaOrigins | کامپیوتر و کاربر |
Group Policy در یک دامنه
antimatter.admxرا به مخزن مرکزی،\\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions، وantimatter.admlرا به پوشهen-USآن کپی کنید.- در Group Policy Management Editor، Computer Configuration (یا User Configuration) › Policies › Administrative Templates › Antimatter را باز کنید.
- یک سیاست را ویرایش کنید، فعال شد را انتخاب کنید و آن را پر کنید. برای سرورها، روی نمایش کلیک کنید و برای هر سرور یک خط اضافه کنید: نام مقدار نام تب است و مقدار، URL سرور، مانند
https://chat.example.com.
فعال کردن اجازه افزودن و حذف سرورها یا اعلان درباره نسخههای جدید مقدار 1 مینویسد؛ غیرفعال کردن آن 0 مینویسد.
Intune
در Devices › پیکربندی، از Import ADMX برای وارد کردن antimatter.admx همراه با en-US\antimatter.adml استفاده کنید. سپس از Templates › Imported Administrative templates یک پروفایل ایجاد کنید و سیاستهای Antimatter را در آن تنظیم کنید.
یک رایانه واحد، یا یک اسکریپت
برای استفاده از قالبها در gpedit.msc (Windows Pro و Enterprise)، آنها را در C:\Windows\PolicyDefinitions کپی کنید. یا مقادیر رجیستری را مستقیماً با یک فایل .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، برنامه تنظیمات خود را از ترجیحات مدیریتشده شناسه بسته (bundle identifier) خود، chat.antimatter.desktop، با کلیدهای جدول تنظیمات میخواند. آنها را بهصورت یک پروفایل پیکربندی با MDM خود (Jamf, Intune, Kandji, Mosyle و غیره) پیادهسازی کنید.
- پوشه resources/mac/mdm در مخزن برنامه یک پروفایل نمونه،
antimatter.mobileconfig، دارد. مقادیر آن را ویرایش کنید، مقادیرPayloadIdentifierوPayloadUUIDاختصاصی خود را به آن بدهید (uuidgenUUIDهای جدید میسازد) و آن را بهعنوان یک پروفایل سفارشی بارگذاری کنید. - بیشتر MDMها کلیدها را بهتنهایی نیز میپذیرند، بهعنوان یک بارگذاری (payload) «تنظیمات سفارشی» یا «دامنه ترجیحات» برای
chat.antimatter.desktop. همان پوشه آنها را درexample-managed-preferences.plistدارد.
تنظیمات درون بارگذاری (payload) پروفایل:
<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/>
مقادیر بولی (Booleans) همچنین میتوانند بهصورت اعداد صحیح 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
در ویندوز، برنامه بهعنوان یک راهحل جایگزین، سیاستهای تنظیمشده برای برنامه دسکتاپ Mattermost را نیز از مسیر SOFTWARE\Policies\Mattermost میخواند. این خواندن بر اساس محل انجام میشود: مقادیر مستقیماً زیر کلید سیاست، زیرکلید DefaultServerList و زیرکلید TrustedEmbeddedMediaOrigins. برای هر یک از این سه محل، کلید Mattermost تنها در صورتی خوانده میشود که کلید Antimatter در هیچیک از hiveها مقداری در آن محل نداشته باشد. بنابراین، بهمحض اینکه یک مقدار مستقیماً زیر کلید Antimatter تنظیم شود (مثلاً توسط خاصیت AUTOUPDATE در فایل MSI)، هیچیک از مقادیر مستقیماً زیر کلید Mattermost خوانده نخواهد شد. تمام سیاستهای خود را یکجا به کلید Antimatter منتقل کنید.
در macOS، ترجیحات مدیریتشده (managed preferences) برنامه دسکتاپ Mattermost (com.mattermost.desktop) خوانده نمیشوند؛ آنها را برای chat.antimatter.desktop تنظیم کنید.
نسخههای بدون امضا
نسخههای برنامه دسکتاپ هنوز با گواهی ناشر امضا نشدهاند.
- پنجرهها. هنگامی که کاربری یک فایل
.exeیا.msiدانلودشده را باز میکند، Microsoft Defender SmartScreen اعلام میکند که ویندوز از رایانه محافظت کرده است و نام یک ناشر ناشناس را ذکر میکند. کاربر باید گزینه اطلاعات بیشتر را انتخاب کند و سپس اجرا در هر صورت را بزند. SmartScreen فایلهایی را بررسی میکند که کاربران پس از دانلود باز میکنند، بنابراین اگر برنامه را از طریق SCCM، Intune یا Group Policy پیادهسازی کنید، کاربران این هشدار را نخواهند دید. اگر رایانههای شما فقط نرمافزارهایی از ناشران تأییدشده را اجرا میکنند (قوانین AppLocker یا App Control for Business)، برنامه را بهجای نام ناشر، با مسیر نصب یا هش فایل مجاز کنید. - macOS. برنامه بهصورت ad hoc امضا شده، اما توسط Apple تأیید (notarise) نشده است. اولین باری که کاربری یک نسخه دانلودشده را باز میکند، macOS اعلام میکند که نمیتواند اطمینان حاصل کند که برنامه از بدافزار پاک است و آن را باز نمیکند. در macOS 15 و نسخههای بعدی، کاربر باید تنظیمات سیستم › حریم خصوصی و امنیت را باز کند و گزینه باز کردن در هر صورت را انتخاب کند. در نسخههای قبلی، کاربر باید روی برنامه Control-click کند و گزینه باز کردن را انتخاب کند. Gatekeeper فقط فایلهایی را بررسی میکند که بهعنوان دانلودشده علامتگذاری شدهاند (با ویژگی قرنطینه): هنگام نصب برنامه با ابزارهای خودتان، این علامت را در اسکریپت نصب خود با دستور
xattr -dr com.apple.quarantine /Applications/Antimatter.appحذف کنید.