Pag-deploy ng desktop app
Paano i-install ang Antimatter desktop app sa mga kompyuter ng isang kumpanya o paaralan, at itakda nang sentral ang mga server, username, at update checks sa Windows, macOS, at Linux.
I-download ang app
Nasa GitHub ang mga release ng desktop app, sa github.com/AntimatterChat/desktop-app/releases. Katulad ng server, nasa beta ang app: ang release na may suffix pagkatapos ng hyphen sa version ay nakamarkahan bilang Pre-release. May SHA256SUMS file bawat release na may checksum ng bawat file. I-check ang download gamit ang sha256sum --check --ignore-missing SHA256SUMS sa Linux, o ihambing ang output ng Get-FileHash <file> -Algorithm SHA256 sa PowerShell sa linya nito sa SHA256SUMS.
- Windows (x64 at arm64): ang
.exeinstaller, ang.msipackage, o isang.ziparchive. Halimbawa,antimatter-desktop-<version>-win-x64.exeatantimatter-desktop-<version>-win-x64.msi. - macOS: isang
.dmgdisk image o.zip, para sa Apple silicon (arm64), Intel Macs (x64), o pareho (universal). - Linux (x64 at arm64): isang .deb o .rpm package, AppImage, Flatpak bundle, o
.tar.gzarchive.
Aling Windows installer ang gagamitin
| Ang .exe installer | Ang .msi package | |
|---|---|---|
| Para sa | Mga taong nag-i-install ng app mismo | Mga kumpanyang nag-deploy nito sa kanilang mga kompyuter |
| Pag-install | Para sa kasalukuyang Windows account lamang, sa %LOCALAPPDATA%\Programs\antimatter-desktop, nang walang administrator rights | Para sa bawat user ng kompyuter, sa C:\Program Files\Antimatter, gamit ang administrator rights |
| Mga update | Sinusuri ng app ang mga bagong version at nag-aalok na i-download ang bagong .exe, na nag-a-update ng installed copy sa lugar nito | Hindi sinusuri ng app ang mga bagong version: ikaw ang nag-deploy nito |
Sinusuri ng app ang mga bagong bersyon sa GitHub, tuwing oras habang tumatakbo, at nakikita lamang ang mga buong release, hindi ang mga prerelease. Kapag nakahanap ito, ipapahiwatig nito sa tao at magbibigay ng link para i-download. Ang kopya na naka-install gamit ang MSI ay hindi sinusuri nang default, dahil sa mga tao na gumagamit nito ay karaniwang hindi makapag-install ng software. Pwede mong i-on ang pagsusuri gamit ang EnableAutoUpdater setting: ang download na ibibigay ay ang bagong .msi, na nangangailangan ng administrator rights.
Gumamit ng MSI para sa managed deployment gamit ang SCCM (Configuration Manager), Intune, o Group Policy software installation. Ang pag-install ng MSI ay tatanggalin ang .exe kopya ng account na nagpapatupad ng installation, kung mayroon.
Mga setting na ma-manage
Ang parehong settings ay umiiral sa bawat system. Sa Windows, mga registry values sila sa ilalim ng SOFTWARE\Policies\Antimatter, sa HKEY_LOCAL_MACHINE (para sa computer) o HKEY_CURRENT_USER (para sa isang user). Sa macOS at Linux, mga keys sila ng managed preferences o ng policy file.
| Setting | Sa Windows | Sa macOS at Linux | Ginagawa nito |
|---|---|---|---|
DefaultServerList | Isang subkey na may isang string value bawat server: ang pangalan ng value ay ang pangalan ng tab nito, ang data naman ay ang URL nito | Isang array ng dictionaries (objects sa Linux) na may name at url | Idadagdag ang mga server sa app. Hindi ma-edit o ma-alis ng mga tao. |
DefaultUsername | Isang string | Isang string | Pupunan ang username sa login page ng mga server na ito. |
EnableServerManagement | Isang DWORD, 0 o 1 | Isang boolean | 0 o false: maaari lamang gamitin ng mga tao ang mga server na itinakda ng DefaultServerList, at itatago ng app ang mga opsyon para magdagdag, mag-edit, at mag-alis ng server. Hindi nakatakda: maaari magdagdag ng sariling server ng mga tao. |
EnableAutoUpdater | Isang DWORD, 0 o 1 | Isang boolean | 0 o false: hindi kailanman sinusuri ng app ang mga bagong bersyon, at itatago ang Check for Updates. 1 o true: sinusuri, kahit naka-install gamit ang MSI. Hindi nakatakda: sinusuri ng .exe kopya, hindi naman ng MSI kopya. |
TrustedEmbeddedMediaOrigins | Isang subkey na may mga string values, bawat isa ay isang JSON object na may serverOrigin at embeddedOrigin | Isang array ng dictionaries na may serverOrigin at embeddedOrigin | Pinapayagan ang content na naka-embed sa mga pahina ng server, tulad ng video meeting page, na gamitin ang mga pahintulot sa camera at microphone na ibinigay sa server na iyon. |
- Ang username ay punan lamang sa login page ng mga server na itinakda ng policy, hindi sa server na idinagdag ng tao, at hindi rin sa naka-type na ng tao. Maaari pa ring palitan ng mga tao ito. Ang mga environment variable sa pagitan ng percent signs ay palalitan, kaya ang isang value ay angkop sa lahat: ang
%USERNAME%sa Windows o ang%USER%sa macOS at Linux ay nagbibigay ng account name, at ang%USERNAME%@example.comay isang email address na sumusunod sa pattern na ito. Kung hindi nakaset ang variable, wala ang ipunan ng app. - Kung isasara ang server management, itakda ang kahit isang server sa
DefaultServerList. - Sa Windows, ang computer policy (
HKEY_LOCAL_MACHINE) ay mananalo sa user policy (HKEY_CURRENT_USER). Ang mga server list ng pareho ay pinagsasama. - Binabasa ng app ang mga setting kapag ito ay nagsisimula: pagkatapos ng pagbabago, dapat umalis at muling buksan ng mga tao ito.
Windows: tahimik na installation gamit ang MSI
Tumatanggap ang MSI ng public properties na nagpapa-write ng mga setting bilang computer policies, sa HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter. Gamitin ang mga ito sa isang SCCM application, Intune app, o script. Sa PowerShell:
msiexec /i antimatter-desktop-<version>-win-x64.msi /qn SERVERURL=https://chat.example.com SERVERNAME=Chat DEFAULTUSERNAME='%USERNAME%' AUTOUPDATE=0 SERVERMANAGEMENT=0
| Property | Nagpapa-write | Kung hindi ibinigay |
|---|---|---|
SERVERURL | Isang server sa DefaultServerList, na may URL na ito | Walang server |
SERVERNAME | Ang pangalan ng tab ng server na iyon | Antimatter |
DEFAULTUSERNAME | DefaultUsername | Wala |
AUTOUPDATE | EnableAutoUpdater, 0 o 1 | Wala: hindi sinusuri ng MSI copy ang mga update |
SERVERMANAGEMENT | EnableServerManagement, 0 o 1 | Wala: maaari ng mga tao magdagdag ng server |
- Ang property na hindi ibinigay ay wala ang ipapa-write, kaya hindi ito mag-o-overwrite ng value na nakaset ng Group Policy. Ang
AUTOUPDATEatSERVERMANAGEMENTay tumatanggap lamang ng 0 o 1. Nagpapa-set ng isang server ang MSI: gamitin ang Group Policy para sa mas marami. - Ang
DEFAULTUSERNAMEay dapat maabot ang installer bilang text na%USERNAME%, upang palitan ng app ito para sa bawat tao. Kung hindi, ang shell na nagpapa-run ng installation ang palalitan ito ng sarili nitong account name. Sa PowerShell, panatilihin ang single quotes. Sa isang.batfile, isulat ang%%USERNAME%%. Pagkatapos ng test installation, suriin sa registry na angDefaultUsernameay naglalaman ng%USERNAME%. - Ibigay muli ang mga property sa bawat upgrade. Ang pag-install ng bagong bersyon ng MSI ay tatanggalin ang lumang isa, kasama ang mga value na naka-write nito, at magpapa-write ng mga value ng bagong command line. Pinapanatili ng SCCM at Intune ang command line ng isang application: gamitin ulit ito para sa bawat bagong bersyon. O itakda ang mga policy gamit ang Group Policy o Intune sa halip, na hindi tinatamaan ng mga upgrade.
- Ang MSI at Group Policy ay nagbabasa ng parehong registry values. Para sa bawat setting, gamitin ang isa o ang kabilang isa: kapag na-uninstall ang MSI, mawawala ang mga value na isinulat nito, kahit na itinatag din ng Group Policy.
- Ang MSI ay nagre-record din ng installation folder nito sa
HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop(InstallDir). Ito ang paraan kung paano nalalaman ng app na naka-install ito gamit ang MSI.
Para i-uninstall: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. Sa Intune, ang uri na "Windows app (Win32)" ay tumatanggap ng parehong command lines. Para sa uri na "Line-of-business app", dagdagan ang mga properties sa mga command-line arguments nito.
Windows: Group Policy at Intune
Ang mga administrative templates, antimatter.admx at en-US\antimatter.adml, ay nasa gpo folder ng naka-install na app (C:\Program Files\Antimatter\gpo para sa MSI), at nasa resources/windows/gpo folder ng repository ng app. Ipinapakita nila ang mga policy na ito, sa ilalim ng Administrative Templates › Antimatter:
| Policy | Registry value | Konfigurasyon |
|---|---|---|
| Servers (DefaultServerList) | DefaultServerList subkey | computer at user |
| Username na gagamitin bilang prefill (DefaultUsername) | DefaultUsername | computer at user |
| Payagan ang pagdagdag at pagtanggal ng mga server (EnableServerManagement) | EnableServerManagement | computer at user |
| Magbigay ng notisikasyon tungkol sa mga bagong bersyon (EnableAutoUpdater) | EnableAutoUpdater | computer lamang |
| Mga pinagmulan ng trusted embedded media (TrustedEmbeddedMediaOrigins) | TrustedEmbeddedMediaOrigins subkey | computer at user |
Group Policy sa domain
- Kopyahin ang
antimatter.admxsa central store,\\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions, at angantimatter.admlsaen-USfolder nito. - Sa Group Policy Management Editor, buksan ang Computer Configuration (o User Configuration) › Policies › Administrative Templates › Antimatter.
- I-edit ang isang policy, piliin ang Aktibo at punan ito. Para sa Servers, pindutin ang Ipakita at magdagdag ng isang linya bawat server: ang pangalan ng value ay ang pangalan ng tab, ang value ay ang URL ng server, tulad ng
https://chat.example.com.
Ang pag-activate ng Payagan ang pagdagdag at pagtanggal ng mga server o Magbigay ng notisikasyon tungkol sa mga bagong bersyon ay isusulat ang 1; ang pag-deactivate nito ay isusulat ang 0.
Intune
Sa Devices › Configuration, gamitin ang Import ADMX upang i-import ang antimatter.admx kasama ang en-US\antimatter.adml. Pagkatapos, gumawa ng profile mula sa Templates › Imported Administrative templates, at itakda ang mga Antimatter policies dito.
Isang solong computer, o isang script
Kopyahin ang mga template sa C:\Windows\PolicyDefinitions upang gamitin sila sa gpedit.msc (Windows Pro at Enterprise). O magpasulat ng mga registry value direkta, gamit ang isang .reg file na i-import bilang administrator (reg import antimatter-policies.reg), gaya ng sumusunod. Ang example-policies.reg file sa parehong folder ay may mga value na ito, kasama ang mga komento.
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: isang configuration profile
Sa macOS, binabasa ng app ang mga setting nito mula sa managed preferences ng bundle identifier nito, chat.antimatter.desktop, gamit ang mga key ng talaan ng mga setting. I-deploy sila gamit ang MDM (Jamf, Intune, Kandji, Mosyle, at iba pa) bilang isang configuration profile.
- Ang resources/mac/mdm folder ng repository ng app ay may halimbawang profile,
antimatter.mobileconfig. I-edit ang mga value nito, bigyan ito ng sarili mongPayloadIdentifieratPayloadUUIDvalues (gumagawa ng bagong UUID anguuidgen), at i-upload ito bilang isang custom profile. - Tumatanggap din ng mga key lamang ang karamihan sa MDM, bilang "custom settings" o "preference domain" payload para sa
chat.antimatter.desktop. Mayroon sila sa parehong folder saexample-managed-preferences.plist.
Ang mga setting sa loob ng payload ng profile:
<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/>
Maaari ring bigyan ang mga boolean bilang mga integer na 0 at 1.
Linux: ang policy file
Sa Linux, binabasa ng app ang /etc/antimatter-desktop/policies.json, isang JSON object na may mga key ng talaan ng mga setting:
{
"DefaultServerList": [
{"name": "Chat", "url": "https://chat.example.com"}
],
"DefaultUsername": "%USER%",
"EnableServerManagement": false,
"EnableAutoUpdater": false,
"TrustedEmbeddedMediaOrigins": []
}
I-deploy ito gamit ang iyong configuration management tool (Ansible, Puppet, Salt, at iba pa), na may root bilang owner, mababasa ng lahat, at maaari lang magsulat ng root:
sudo install -d /etc/antimatter-desktop
sudo install -m 644 policies.json /etc/antimatter-desktop/policies.json
Ang file na hindi valid na JSON ay iniignore, kasama ang babala sa log ng app. Ang Flatpak version ay hindi nakikita ang /etc ng host: bigyan ito ng read access, at babasahin nito ang file mula sa /run/host/etc/antimatter-desktop/policies.json:
sudo flatpak override --system --filesystem=host-etc:ro chat.antimatter.desktop
Mga policy na itinakda para sa Mattermost desktop app
Sa Windows, binabasa rin ng app ang mga policy na nakalagay para sa Mattermost desktop app, ilalim ng SOFTWARE\Policies\Mattermost, bilang fallback. Binabasa ito ayon sa lokasyon: ang mga value na direkta sa ilalim ng policy key, ang DefaultServerList subkey, at ang TrustedEmbeddedMediaOrigins subkey. Para sa bawat isa sa tatlong lokasyong ito, binabasa ang Mattermost key lamang kapang walang value ang Antimatter key sa lugar na iyon, sa alinmang hive. Kaya kapag may isang value na nakalagay direkta sa ilalim ng Antimatter key, halimbawa sa pamamagitan ng AUTOUPDATE property ng MSI, hindi na binabasa ang anumang value sa ilalim ng Mattermost key. Ilipat ang lahat ng policy sa Antimatter key nang sabay-sabay.
Sa macOS, hindi binabasa ang mga managed preferences ng Mattermost desktop app (com.mattermost.desktop): ilagay ito para sa chat.antimatter.desktop.
Mga unsigned na build
Hindi pa firm na firm (signed) ang mga build ng desktop app gamit ang publisher certificate.
- Windows. Kapag binuksan ng isang tao ang downloaded na
.exeo.msi, sinasabi ng Microsoft Defender SmartScreen na protektado ng Windows ang computer at binanggit ang isang hindi kilalang publisher. Pinipili nila ang Karagdagang Impormasyon, tapos ang Run anyway. Sinusuri ng SmartScreen ang mga file na binubuksan ng mga tao pagkatapos i-download, kaya hindi nila makikita ang babala na ito kapag idedeploy mo ang app gamit ang SCCM, Intune, o Group Policy. Kung ang mga computer mo ay tumatakbo lamang ng software mula sa mga approved na publisher (AppLocker o App Control for Business rules), pahintulutan ang app gamit ang installation path o file hash nito. - macOS. Ad hoc ang firm (signed) ng app, ngunit hindi napatunayan (notarised) ng Apple. Sa unang pagbukas ng isang downloaded na kopya, sinasabi ng macOS na hindi niya matataya kung walang malware ang app, at hindi ito binubuksan. Sa macOS 15 at mas bagong bersyon, binubuksan nila ang System Settings › Privacy & Security at pinipili ang Open Anyway. Sa mas lumang bersyon, nag-Control-click sila sa app at pinipili ang Open. Sinusuri ng Gatekeeper lamang ang mga file na may tatak na downloaded (may quarantine attribute): kapag inu-install mo ang app gamit ang sarili mong mga tool, alisin ang tatak sa installation script mo gamit ang
xattr -dr com.apple.quarantine /Applications/Antimatter.app.