نصب برنامه دسکتاپ

نحوه نصب برنامه دسکتاپ 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
DEFAULTUSERNAMEDefaultUsernameهیچ چیز
AUTOUPDATEEnableAutoUpdater، 0 یا 1هیچ چیز: نسخه MSI برای به‌روزرسانی‌ها بررسی نمی‌کند
SERVERMANAGEMENTEnableServerManagement، 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 در یک دامنه

  1. antimatter.admx را به مخزن مرکزی، \\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions، و antimatter.adml را به پوشه en-US آن کپی کنید.
  2. در Group Policy Management Editor، Computer Configuration (یا User Configuration) › Policies › Administrative Templates › Antimatter را باز کنید.
  3. یک سیاست را ویرایش کنید، فعال شد را انتخاب کنید و آن را پر کنید. برای سرورها، روی نمایش کلیک کنید و برای هر سرور یک خط اضافه کنید: نام مقدار نام تب است و مقدار، 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 اختصاصی خود را به آن بدهید (uuidgen UUIDهای جدید می‌سازد) و آن را به‌عنوان یک پروفایل سفارشی بارگذاری کنید.
  • بیشتر 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 حذف کنید.