การติดตั้งแอปเดสก์ท็อป
วิธีการติดตั้งแอป Antimatter บนคอมพิวเตอร์ของบริษัทหรือโรงเรียน และกำหนดค่าเซิร์ฟเวอร์ ชื่อผู้ใช้ และการตรวจสอบการอัปเดตส่วนกลางบน Windows, macOS และ Linux
ดาวน์โหลดแอป
เวอร์ชันของแอปเดสก์ท็อปอยู่ที่ GitHub ที่ github.com/AntimatterChat/desktop-app/releases เช่นเดียวกับเซิร์ฟเวอร์ แอปนี้ยังอยู่ในช่วงเบต้า: เวอร์ชันที่มีคำต่อท้ายหลังเครื่องหมายขีดกลางจะถูกทำเครื่องหมายว่า Pre-release แต่ละเวอร์ชันมีไฟล์ SHA256SUMS ที่รวม checksum ของทุกไฟล์ ตรวจสอบการดาวน์โหลดด้วย 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 bundle หรือไฟล์
.tar.gz
ตัวติดตั้ง Windows แบบใดควรใช้
| ตัวติดตั้ง .exe | แพ็กเกจ .msi | |
|---|---|---|
| สำหรับ | ผู้ที่ติดตั้งแอปด้วยตนเอง | บริษัทที่ติดตั้งบนคอมพิวเตอร์ของบริษัท |
| การติดตั้ง | เฉพาะบัญชี Windows ปัจจุบันเท่านั้น ใน %LOCALAPPDATA%\Programs\antimatter-desktop โดยไม่ต้องใช้สิทธิ์ผู้ดูแลระบบ | สำหรับผู้ใช้ทุกคนบนคอมพิวเตอร์ ใน C:\Program Files\Antimatter โดยใช้สิทธิ์ผู้ดูแลระบบ |
| การอัปเดต | แอปจะตรวจสอบเวอร์ชันใหม่และเสนอให้ดาวน์โหลดไฟล์ .exe ใหม่ ซึ่งจะทำให้อัปเดตสำเนาที่ติดตั้งไว้ที่เดิม | แอปจะไม่ตรวจสอบเวอร์ชันใหม่: คุณต้องติดตั้งเอง |
แอปจะตรวจสอบเวอร์ชันใหม่บน GitHub ทุกชั่วโมงระหว่างที่ทำงาน และจะมองเห็นเฉพาะการเปิดตัวฉบับสมบูรณ์เท่านั้น ไม่รวมเวอร์ชันพรีรีลีส เมื่อพบเวอร์ชันใหม่ แอปจะแจ้งให้ผู้ใช้ทราบและเสนอลิงก์สำหรับดาวน์โหลด สำเนาที่ติดตั้งด้วย MSI จะไม่ตรวจสอบโดยอัตโนมัติ เนื่องจากผู้ใช้มักไม่มีสิทธิ์ติดตั้งซอฟต์แวร์ คุณสามารถเปิดการตรวจสอบสำหรับสำเนานี้ได้ด้วยการตั้งค่า EnableAutoUpdater: ไฟล์ที่เสนอให้ดาวน์โหลดในกรณีนี้จะเป็น .msi ใหม่ ซึ่งต้องการสิทธิ์ผู้ดูแลระบบ
ใช้ MSI สำหรับการจัดวางแบบจัดการด้วย SCCM (Configuration Manager), Intune หรือการติดตั้งซอฟต์แวร์ผ่าน Group Policy การติดตั้ง MSI จะลบสำเนา .exe ของบัญชีผู้ใช้ที่ดำเนินการติดตั้ง (ถ้ามี)
การตั้งค่าที่คุณสามารถจัดการได้
การตั้งค่าเหล่านี้มีอยู่ในทุกระบบ บน Windows จะเป็นค่าในรีจิสทรีภายใต้ SOFTWARE\Policies\Antimatter ใน HKEY_LOCAL_MACHINE (สำหรับคอมพิวเตอร์) หรือ HKEY_CURRENT_USER (สำหรับผู้ใช้แต่ละคน) บน macOS และ Linux จะเป็นคีย์ของ managed preferences หรือไฟล์ policy
| การตั้งค่า | บน 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 รับคุณสมบัติสาธารณะ (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 ให้ใช้เครื่องหมายอัญประกาศเดี่ยว (single quotes) ในไฟล์.batให้เขียนว่า%%USERNAME%%หลังจากติดตั้งเพื่อทดสอบแล้ว ให้ตรวจสอบใน registry ว่าDefaultUsernameมีค่าเป็น%USERNAME%- ส่งคุณสมบัติอีกครั้งในทุกการอัปเกรด. การติดตั้งเวอร์ชันใหม่ของ MSI จะลบเวอร์ชันเก่าพร้อมค่าที่เขียนไว้ จากนั้นจึงเขียนค่าจากบรรทัดคำสั่งใหม่ SCCM และ Intune จะเก็บบรรทัดคำสั่งของแอปพลิเคชันไว้: นำกลับมาใช้ใหม่สำหรับแต่ละเวอร์ชันใหม่ หรือใช้นโยบาย Group Policy หรือ Intune แทน ซึ่งการอัปเกรดจะไม่แตะต้อง
- MSI และ Group Policy จะเขียนค่า registry เดียวกัน สำหรับแต่ละการตั้งค่า ให้ใช้วิธีใดวิธีหนึ่ง: การถอนการติดตั้ง 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:
| นโยบาย | ค่า Registry | การตั้งค่า |
|---|---|---|
| เซิร์ฟเวอร์ (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 และตั้งค่า policies ของ Antimatter ในนั้น
คอมพิวเตอร์เครื่องเดียว หรือสคริปต์
คัดลอกเทมเพลตไปยัง C:\Windows\PolicyDefinitions เพื่อใช้งานใน gpedit.msc (Windows Pro และ Enterprise) หรือเขียนค่า registry โดยตรง ด้วยไฟล์ .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 แอปจะอ่านค่าการตั้งค่าจาก managed preferences ของ bundle identifier ของแอป chat.antimatter.desktop โดยใช้คีย์จากตารางการตั้งค่า จัดการ deploy ด้วย MDM ของคุณ (เช่น Jamf, Intune, Kandji, Mosyle และอื่นๆ) ในรูปแบบโปรไฟล์การตั้งค่า
- โฟลเดอร์ resources/mac/mdm ใน repository ของแอปมีตัวอย่างโปรไฟล์
antimatter.mobileconfigแก้ไขค่าต่างๆ ให้เป็นของคุณเอง พร้อมค่าPayloadIdentifierและPayloadUUID(uuidgenใช้สร้าง UUID ใหม่) จากนั้นอัปโหลดเป็นโปรไฟล์แบบ custom - MDM ส่วนใหญ่ยังยอมรับคีย์เดี่ยวๆ ในรูปแบบ "custom settings" หรือ "preference domain" 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/>
ค่า boolean สามารถระบุเป็นจำนวนเต็ม 0 และ 1 ได้ด้วย
Linux: ไฟล์ policy
บน Linux แอปจะอ่าน /etc/antimatter-desktop/policies.json ซึ่งเป็น JSON object ที่มีคีย์จากตารางการตั้งค่า:
{
"DefaultServerList": [
{"name": "Chat", "url": "https://chat.example.com"}
],
"DefaultUsername": "%USER%",
"EnableServerManagement": false,
"EnableAutoUpdater": false,
"TrustedEmbeddedMediaOrigins": []
}
Deploy ด้วยเครื่องมือจัดการการตั้งค่าของคุณ (เช่น Ansible, Puppet, Salt และอื่นๆ) โดยให้ root เป็นเจ้าของไฟล์ อ่านได้ทุกคน และเขียนได้เฉพาะ root:
sudo install -d /etc/antimatter-desktop
sudo install -m 644 policies.json /etc/antimatter-desktop/policies.json
ไฟล์ที่ไม่เป็น JSON ที่ถูกต้องจะถูกเพิกเฉย พร้อมคำเตือนใน log ของแอป เวอร์ชัน Flatpak จะไม่มองเห็น /etc ของ host: ให้สิทธิ์การอ่าน และมันจะอ่านไฟล์จาก /run/host/etc/antimatter-desktop/policies.json:
sudo flatpak override --system --filesystem=host-etc:ro chat.antimatter.desktop
Policies ที่ตั้งค่าไว้สำหรับแอป Mattermost desktop
บน Windows แอปยังอ่านนโยบายที่ตั้งไว้สำหรับแอปเดสก์ท็อป Mattermost ภายใต้ SOFTWARE\Policies\Mattermost เป็นค่าสำรอง โดยจะอ่านตามตำแหน่ง: ค่าที่อยู่โดยตรงภายใต้คีย์นโยบาย, คีย์ย่อย DefaultServerList และคีย์ย่อย TrustedEmbeddedMediaOrigins สำหรับแต่ละตำแหน่งทั้งสามนี้ แอปจะอ่านคีย์ Mattermost เฉพาะเมื่อคีย์ Antimatter ไม่มีค่าในตำแหน่งนั้นใน hive ใด hive หนึ่ง ดังนั้น เมื่อตั้งค่าใดค่าหนึ่งไว้โดยตรงภายใต้คีย์ Antimatter แล้ว เช่น ผ่านคุณสมบัติ AUTOUPDATE ของ MSI ค่าที่อยู่โดยตรงภายใต้คีย์ Mattermost จะไม่ถูกอ่านเลย กรุณาย้ายนโยบายทั้งหมดของคุณไปยังคีย์ Antimatter ในครั้งเดียว
บน macOS ค่า managed preferences ของแอปเดสก์ท็อป Mattermost (com.mattermost.desktop) จะไม่ถูกอ่าน: กรุณาตั้งค่าสำหรับ chat.antimatter.desktop แทน
การติดตั้งที่ไม่ได้ลงนาม
การติดตั้งของแอปเดสก์ท็อปยังไม่ได้ลงนามด้วยใบรับรองของผู้เผยแพร่
- Windows. เมื่อผู้ใช้เปิดไฟล์
.exeหรือ.msiที่ดาวน์โหลดมา Microsoft Defender SmartScreen จะแจ้งว่า Windows ได้ปกป้องคอมพิวเตอร์ไว้ และระบุชื่อผู้เผยแพร่ที่ไม่รู้จัก ผู้ใช้ต้องเลือก More info จากนั้นเลือก Run anyway SmartScreen จะตรวจสอบไฟล์ที่ผู้ใช้เปิดหลังจากดาวน์โหลด ดังนั้นผู้ใช้จึงจะไม่เห็นคำเตือนนี้เมื่อคุณติดตั้งแอปผ่าน SCCM, Intune หรือ Group Policy หากคอมพิวเตอร์ของคุณรันซอฟต์แวร์จากผู้เผยแพร่ที่ได้รับอนุญาตเท่านั้น (กฎ AppLocker หรือ App Control for Business) ให้อนุญาตแอปโดยใช้เส้นทางติดตั้งหรือแฮชของไฟล์แทน - macOS. แอปได้รับการลงนามแบบ ad hoc แต่ไม่ได้ผ่านการรับรอง (notarise) จาก Apple ครั้งแรกที่ผู้ใช้เปิดสำเนาที่ดาวน์โหลดมา macOS จะแจ้งว่าไม่สามารถตรวจสอบได้ว่าแอปปลอดจากมัลแวร์ และไม่เปิดแอป บน macOS 15 และใหม่กว่า ผู้ใช้ต้องเปิด System Settings › Privacy & Security และเลือก Open Anyway บนเวอร์ชันก่อนหน้า ให้ผู้ใช้ Control-click ที่แอปแล้วเลือก Open Gatekeeper จะตรวจสอบเฉพาะไฟล์ที่ถูกระบุว่าเป็นไฟล์ที่ดาวน์โหลด (มี quarantine attribute) เท่านั้น: เมื่อคุณติดตั้งแอปด้วยเครื่องมือของคุณเอง ให้ลบการระบุนี้ในสคริปต์การติดตั้งของคุณ โดยใช้
xattr -dr com.apple.quarantine /Applications/Antimatter.app