ڈیسک ٹاپ ایپ کی ڈیپلائمنٹ
کمپنی یا اسکول کے کمپیوٹرز پر Antimatter ڈیسک ٹاپ ایپ کیسے انسٹال کریں، اور اس کے سرورز، یوزر نیم اور اپڈیٹ چیکس کو Windows، macOS اور Linux پر مرکزی طور پر کیسے سیٹ کریں۔
ایپ ڈاؤن لوڈ کریں
ڈیسک ٹاپ ایپ کے ریلیز GitHub پر موجود ہیں، github.com/AntimatterChat/desktop-app/releases پر۔ سرور کی طرح، ایپ بھی بیٹا ہے: جس ریلیز کے ورژن میں ہائفن کے بعد ایک سافکس ہو، اسے Pre-release کے طور پر نشان زد کیا گیا ہے۔ ہر ریلیز کے ساتھ ہر فائل کے چیک سم کے ساتھ SHA256SUMS فائل ہوتی ہے۔ Linux پر sha256sum --check --ignore-missing SHA256SUMS کے ذریعے ڈاؤن لوڈ کی تصدیق کریں، یا PowerShell میں Get-FileHash <file> -Algorithm SHA256 کے آؤٹ پٹ کو SHA256SUMS میں موجود اس لائن کے ساتھ موازنہ کریں۔
- Windows (x64 اور arm64):
.exeانسٹالر،.msiپیکیج، یا.zipآرکائیو۔ مثال کے طور پرantimatter-desktop-<version>-win-x64.exeاورantimatter-desktop-<version>-win-x64.msi۔ - macOS: Apple silicon (
arm64)، Intel Macs (x64) یا دونوں (universal) کے لیے.dmgڈسک امیج یا.zip۔ - Linux (x64 اور arm64): .deb یا .rpm پیکیج، AppImage، Flatpak بंडل یا
.tar.gzآرکائیو۔
کون سا Windows انسٹالر استعمال کریں
| .exe انسٹالر | .msi پیکیج | |
|---|---|---|
| کس کے لیے | لوگوں کے لیے جو خود ایپ انسٹال کرتے ہیں | کمپنیوں کے لیے جو اسے اپنے کمپیوٹرز پر ڈیپلائ کرتی ہیں |
| انسٹالیشن | صرف موجودہ Windows اکاؤنٹ کے لیے، %LOCALAPPDATA%\Programs\antimatter-desktop میں، ایڈمنسٹریٹر کے حقوق کے بغیر | کمپیوٹر کے ہر صارف کے لیے، C:\Program Files\Antimatter میں، ایڈمنسٹریٹر کے حقوق کے ساتھ |
| اپڈیٹس | ایپ نئے ورژنز کی جانچ کرتی ہے اور نئے .exe کو ڈاؤن لوڈ کرنے کا پیشکش کرتی ہے، جو انسٹال شدہ کاپی کو جگہ پر اپڈیٹ کرتا ہے | ایپ نئے ورژنز کی جانچ نہیں کرتی: آپ انہیں ڈیپلائ کرتے ہیں |
ایپ گیت ہب پر نئے ورژنز کی جانچ ہر گھنٹے کرتی ہے جب یہ چل رہی ہو، اور صرف مکمل ریلیز دیکھتی ہے، پری ریلیز نہیں۔ جب وہ کوئی نیا ورژن پاتی ہے، تو اسے صارف کو بتاتی ہے اور ڈاؤن لوڈ کے لیے لنک فراہم کرتی ہے۔ 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: ایپ کبھی نئے ورژنز کی جانچ نہیں کرتی، اور Check for Updates کو چھپا دیتی ہے۔ 1 یا true: یہ چیک کرتی ہے، چاہے MSI کے ذریعے انسٹال ہو۔ سیٹ نہ ہو: .exe کاپی چیک کرتی ہے، MSI کاپی نہیں۔ |
TrustedEmbeddedMediaOrigins | ایک سبکی جس میں اسٹرنگ ویلیوز ہیں، ہر ایک ایک JSON آبجیکٹ ہے جس میں serverOrigin اور embeddedOrigin شامل ہیں | ڈکشنریز کا ایک ایرے جس میں serverOrigin اور embeddedOrigin شامل ہیں | سرور کے پیجز میں ایمبیڈ شدہ مواد، جیسے ویڈیو میٹنگ پیج، کو اس سرور کو دی گئی کیمرے اور مائیکروفون کی اجازتوں کا استعمال کرنے کی اجازت دیتا ہے۔ |
- صارف نام صرف ان سرورز کے لاگ ان صفحے پر خود بخود بھرا جاتا ہے جنہیں پالیسی کے ذریعے طے کیا گیا ہو، کسی ایسے سرور پر کبھی نہیں جسے صارف نے خود شامل کیا ہو، اور نہ ہی اس چیز پر جو کوئی خود ٹائپ کرے۔ صارفین اب بھی اسے تبدیل کر سکتے ہیں۔ پیر سینٹ کے درمیان موجود ماحولیاتی متغیرات (environment variables) تبدیل کر دیے جاتے ہیں، اس لیے ایک ہی قدر سب کے لیے موزوں ہے: Windows پر
%USERNAME%یا macOS اور Linux پر%USER%اکاؤنٹ کا نام دیتا ہے، اور%USERNAME%@example.comای میل ایڈریس دیتا ہے جو اس پیٹرن پر مبنی ہے۔ اگر کوئی متغیر سیٹ نہ ہو، تو ایپ کچھ نہیں بھرتی۔ - اگر آپ سرور مینجمنٹ بند کر دیں، تو
DefaultServerListمیں کم از کم ایک سرور سیٹ کریں۔ - Windows پر، کمپیوٹر پالیسی (
HKEY_LOCAL_MACHINE) صارف پالیسی (HKEY_CURRENT_USER) پر برتری حاصل کرتی ہے۔ دونوں کی سرور فہرستیں ملا کر استعمال کی جاتی ہیں۔ - ایپ شروع ہونے پر ترتیبات پڑھتی ہے: تبدیلی کے بعد صارفین کو ایپ بند کر کے دوبارہ کھولنی ہوگی۔
Windows: MSI کے ذریعے خاموش انسٹالیشن
MSI عوامی خصوصیات (public properties) قبول کرتا ہے جو ترتیبات کو کمپیوٹر پالیسی کے طور پر 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 فولڈر میں ہیں (MSI کے لیے C:\Program Files\Antimatter\gpo)، اور ایپ کے ریپوزٹری کے 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 › کنفیگریشن میں، antimatter.admx کو en-US\antimatter.adml کے ساتھ Import ADMX کے ذریعے درآمد کریں۔ پھر 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 پر، ایپ اپنے سیٹنگز کو اپنے بंडل آئی ڈینٹیفائر chat.antimatter.desktop کے منیجڈ پریفرینسز سے پڑھتی ہے، جن کی کنیاں سیٹنگز ٹیبل میں ہیں۔ انہیں اپنے MDM (Jamf, Intune, Kandji, Mosyle وغیرہ) کے ذریعے ایک کنفیگریشن پروفائل کے طور پر ڈپلوائ کریں۔
- ایپ کے ریپوزٹری کا resources/mac/mdm فولڈر ایک نمونہ پروفائل،
antimatter.mobileconfig، رکھتا ہے۔ اس کی ویلیوز میں ترمیم کریں، اسے اپنیPayloadIdentifierاورPayloadUUIDویلیوز دیں (uuidgenنئے UUIDs بناتا ہے)، اور اسے ایک کسٹم پروفائل کے طور پر اپ لوڈ کریں۔ - زیادہ تر MDMs صرف کنیاں بھی قبول کرتے ہیں،
chat.antimatter.desktopکے لیے "custom settings" یا "preference domain" پیلوڈ کے طور پر۔ اسی فولڈر میں وہ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 ڈیسک ٹاپ ایپ کے لیے سیٹ کی گئی پالیسیاں
ونڈوز پر، ایپ مزید یہ بھی پڑھتی ہے کہ Mattermost ڈیسک ٹاپ ایپ کے لیے سیٹ کیے گئے پالیسیز، جو SOFTWARE\Policies\Mattermost کے تحت موجود ہیں، ایک فیل بیک کے طور پر۔ یہ انہیں مقام کے لحاظ سے پڑھتی ہے: پالیسی کی کے کے براہِ راست نیچے موجود ویلیوز، DefaultServerList سبکی اور TrustedEmbeddedMediaOrigins سبکی۔ ان تینوں مقامات میں سے ہر ایک کے لیے، یہ Mattermost کی کو صرف تب پڑھتی ہے جب Antimatter کی کے کے وہاں کوئی ویلیو نہ ہو، چاہے وہ ہائیو میں سے کوئی بھی ہو۔ لہذا، جیسے ہی Antimatter کی کے کے براہِ راست نیچے کوئی ویلیو سیٹ ہو جاتی ہے، مثلاً MSI کی AUTOUPDATE پراپرٹی کے ذریعے، Mattermost کی کے کے براہِ راست نیچے موجود کوئی بھی ویلیو پڑھی نہیں جاتی۔ اپنی تمام پالیسیز ایک ہی وقت میں Antimatter کی کے کے منتقل کریں۔
macOS پر، 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 کے ذریعے نوترائزڈ (notarised) نہیں ہے۔ جب کوئی شخص پہلی بار ڈاؤن لوڈ شدہ کاپی کھولتا ہے، تو macOS کہتا ہے کہ یہ ایپ کے مالنویر سے خالی ہونے کی تصدیق نہیں کر سکتا، اور اسے کھولتا نہیں۔ macOS 15 اور اس کے بعد کی ورژنز پر، وہ System Settings › Privacy & Security کھولتے ہیں اور بہرحال کھولیں منتخب کرتے ہیں۔ پرانے ورژنز پر، وہ ایپ پر کنٹرول کلک کرتے ہیں اور کھولیں منتخب کرتے ہیں۔ Gatekeeper صرف ان فائلز کی جانچ کرتا ہے جنہیں ڈاؤن لوڈ شدہ کے طور پر نشان زد کیا گیا ہے (quarantine ایٹریبیٹ کے ساتھ): جب آپ اپنی ذاتی ٹولز کے ساتھ ایپ انسٹال کرتے ہیں، تو اپنے انسٹالیشن اسکرپٹ میں نشان ہٹا دیں،
xattr -dr com.apple.quarantine /Applications/Antimatter.appکے ذریعے۔