Pag-install ng Antimatter

I-install ang Antimatter gamit ang handang compose file, mula sa .deb o .rpm package ng isang release, o mula sa isang release archive. Pagkatapos, gumawa ng unang administrator account.

I-install gamit ang Docker Compose

Ito ang inirerekomendong paraan. Isang compose file ang nagpapatakbo ng Antimatter, PostgreSQL, file storage, at GIF service. Kailangan ng Linux server na may Docker Engine at kanyang Compose plugin (docker compose), 2 CPU cores, at 4 GB ng memory o higit pa.

1. I-download ang compose file

mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml

2. Gumawa ng .env file

Binabasa ng compose file ang mga setting nito mula sa isang .env file sa parehong directory. Gumawa nito gamit ang mga random secrets:

cat > .env <<EOF
SITE_URL=http://localhost:8065
POSTGRES_PASSWORD=$(openssl rand -hex 24)
S3_SECRET_KEY=$(openssl rand -hex 24)
GIFS_API_KEY=$(openssl rand -hex 24)
AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)
EOF
chmod 600 .env

Itakda ang SITE_URL sa address na ilalagay ng mga tao sa kanilang browser, halimbawa http://192.168.1.20:8065 sa local network o https://chat.example.com gamit ang domain. Panatilihing buo ang .env file: ang database at storage ay gumagamit ng mga password na ito mula sa unang pag-start, ang mga API key ng mga koneksyon ng AI model ay naka-encrypt gamit ang AM_AI_ENCRYPTION_KEY, at kailangan mo ang parehong file upang ma-restore ang isang backup.

3. I-start ito

docker compose up -d
docker compose ps

Ang unang pag-start ay tumatagal ng isang o dalawang minuto: ginagawa ng PostgreSQL ang database, ginagawa ng one-shot bucket service ang storage bucket, ginagawa ng one-shot gifs-stickers service ang import ng starter sticker pack, at ginagawa ng Antimatter ang mga table nito. Sundan ito gamit ang docker compose logs -f antimatter.

Para gamitin ang domain name at HTTPS mula sa simula, tingnan ang Domain at HTTPS: gamit ang compose file, dalawang linya pa lang ito sa .env at ang https profile.

Mga variable ng .env

VariableDefaultGinagawa nito
SITE_URLkailanganPampublikong address ng Antimatter (ServiceSettings.SiteURL).
POSTGRES_PASSWORDkailanganPassword ng antimatter database user.
S3_SECRET_KEYkailanganSecret key ng file storage.
GIFS_API_KEYkailanganKey na ginagamit ng Antimatter para tumawag sa GIF service.
AM_AI_ENCRYPTION_KEYwalang lamanAng key na nag-e-encrypt ng mga API key ng mga koneksyon ng AI model (openssl rand -base64 32). Kung walang laman: gagawa ng key file ang server sa data volume. Tingnan ang The encryption key.
GIFS_UPLOAD_KEYwalang lamanPinapayagan ang mga tao na magdagdag ng sarili nilang GIF at stickers mula sa picker, at mabura ang mga ito. Kung walang laman, hindi na gagana ang upload.
DOMAINwalang lamanDomain name mo, para sa https profile.
HTTP_PORT8065Host port ng web server ng Antimatter.
CALLS_PORT8443UDP at TCP port ng audio at video ng tawag.
EDGE_SUBNET172.29.71.0/28Subnet ng network sa pagitan ng Caddy at Antimatter. Baguhin ito kung magkakasabay ito sa isa sa iyong mga network.
TZUTCTime zone ng mga container.
ANTIMATTER_IMAGEghcr.io/antimatterchat/antimatter-next:latestAntimatter image na gagamitin (tingnan sa ibaba).

Ano ang nagpapatakbo

ServiceImageTungkulin
antimatterghcr.io/antimatterchat/antimatter-nextAng server, web app, at mga kasamang apps. Inilalabas ang HTTP_PORT at CALLS_PORT. Ang data directory nito ay ang data volume.
postgrespostgres:17-alpineAng database, nasa postgres volume.
filesrustfs/rustfsS3-compatible storage para sa mga na-upload na file at installed na apps, nasa files volume.
bucketamazon/aws-cliGumagawa ng antimatter bucket, tapos nag-e-exit.
gifsghcr.io/antimatterchat/gifs-serverSerbisyo para sa GIF at sticker, nasa gifs volume.
gifs-stickersghcr.io/antimatterchat/gifs-serverNaiimport ang starter sticker pack sa unang paggamit, tapos nag-e-exit.
httpscaddy:2-alpineLagpas sa https profile lamang: HTTPS sa ports 80 at 443.

Ang PostgreSQL, storage, at GIF service ay nasa internal network (private) na walang access sa Internet, na pinagsasali lang ng Antimatter. Walang port ang sinasabi na inilalabas.

Ang Antimatter container ay hindi nag-iwan ng anumang bagay sa disk: ang mga setting nito ay nasa database (tinutukoy nito ng AM_CONFIG) at ang mga file at apps nito ay nasa storage service. Maaari mong alisin at baguhin ang container anumang oras. Ang data volume nito ay naglalaman lamang ng AI encryption key file, na ginagawa ng server kapag walang laman ang AM_AI_ENCRYPTION_KEY. Lahat ng dapat i-backup ay nasa mga postgres, files, gifs, at data volumes, kasama ang iyong .env.

Pumili ng image

Dalawang Antimatter image ang ipinapubliko, parehong para sa linux/amd64 at linux/arm64, at parehong gawa mula sa main branch ng bawat repository:

ImageMga app na kasama sa AntimatterMga Tag
ghcr.io/antimatterchat/antimatterAI chat, Mga Tawag, GitHub, GitLab, Jira at Metrics.latest, X.Y.Z para sa mga release, sha-<commit>
ghcr.io/antimatterchat/antimatter-nextPareho, kasama ang Voice channel, Poll, Mail, Kalendaryo, Tala, Whiteboard, GIF, To-do, at Meme. Binubuo bawat gabi.latest, nightly, nightly-<YYYYMMDD>, sha-<commit>

Hindi na kasama sa mga image bundle ang Kanban o Playbooks: i-install ang alinman sa mga ito mula sa sariling GitHub release (tingnan ang sa ibaba) kung nais mo ito. Ang server na may na-install na isa ay mananatili ito sa pag-upgrade.

Ginagamit ng compose file ng site ang antimatter-next, dahil nasa image na iyon lamang ang GIF service at karamihan sa mga app na ilarawan sa site na ito. Para magbago ng image, itakda ang ANTIMATTER_IMAGE sa .env at patakbuhin ang docker compose up -d.

Nagbabago ang latest sa ilalim mo. Sa production, i-pin ang tag tulad ng nightly-20261015 o sha-<commit>, at baguhin ito nang may layunin kapag nag-upgrade. Kapag nagsisimula, nag-a-upgrade ng database ang server, kaya hindi ka makakabalik sa mas lumang image, o mula sa antimatter-next patungo sa antimatter, nang walang pag-restore ng backup na ginawa bago. Tingnan ang Mga Backup at Upgrade.

Loob ng image

  • Nasa /antimatter ang server, kasama ang mga binary na antimatter at amctl sa /antimatter/bin (nasa PATH).
  • Tumatakbo ito bilang unprivileged user na antimatter (uid 2000) sa minimal na distroless base, na walang shell.
  • Mga Port: 8065 (web at API), 8067 (metrics), 8074 (cluster), 8443 UDP at TCP (tawag).
  • Naka-on ang Local mode (ServiceSettings.EnableLocalMode), kaya gumagana ang amctl --local sa loob ng container. Ang health check ay nagpapatakbo ng amctl system status --local.
  • Nasa /antimatter/prepackaged_plugins ang mga kasamang app, na naka-sign gamit ang Antimatter app signing key.
  • Kasama ang mga tool para sa pag-extract ng text (pdftotext, wvText, unrtf, tidy), kaya maaaring hanapin ang nilalaman ng mga na-upload na dokumento.

Iba pang compose file

Nasa antimatter-docker repository ang production setup sa deploy/compose/: nginx na may sarili mong certificates o Let's Encrypt (certbot), PostgreSQL, ang opsyonal na GIF service (profile gifs), at mga named volume para sa configuration, data, at logs ng server, na nakadokumento sa kanyang README. Gumagamit ito ng stable image bilang default at nag-i-store ng mga file sa local volume sa halip na S3 storage. Gamitin ito kung mas gusto mo ang nginx kaysa sa Caddy, o kung mayroon ka nang certificates.

Gumawa ng unang administrator

Buksan ang SITE_URL sa iyong browser at gumawa ng account. Ang unang account na gagawin sa bagong server ay maging system administrator, at ang setup ay gabay ka na sa paggawa ng unang community (tawag ng Antimatter sa team o workspace).

Gawin ito agad pagkatapos ng unang pag-start: hanggang doon, ang sinumang unang makakarating sa server ay maging administrator nito. Kung gusto mong gumawa ng account mula sa command line, bago ma-access ang server mula sa labas:

docker compose exec antimatter amctl --local user create --system-admin --email-verified \
    --email admin@example.com --username admin --password 'a-long-password'
docker compose exec antimatter amctl --local team create --name main --display-name "Main"
docker compose exec antimatter amctl --local team users add main admin

Pagkatapos, mag-sign in sa SITE_URL. Simulan ang command ng isang space upang maiwasan ang pagkakalantag ng password sa iyong shell history (gamit ang HISTCONTROL=ignorespace), o palitan ang password pagkatapos mag-sign in.

Mga susunod na hakbang pagkatapos ka na makapasok:

  1. Para sa isang kompanya o organisasyon, itakda ang Uri ng mga bagong community sa Workspace, at baguhin ang uri ng isang community na nagawa mo na sa mga setting nito: Guild o workspace.
  2. Tukuyin kung sino ang maaaring gumawa ng account: Sign-in at mga account.
  3. I-configure ang email, upang gumana ang mga imbitasyon at pag-reset ng password: Email at mga push notification.
  4. Buksan ang port ng tawag sa iyong firewall: Tawag at boses.
  5. : Mga kasamang app.

I-download ang isang release

Kung walang Docker, i-install ang Antimatter mula sa mga file ng isang release sa GitHub: github.com/AntimatterChat/antimatter/releases. Bawat release ay may version number tulad ng 0.9.0, at ang tag nito ay parehong numero na may v sa harap (v0.9.0).

Ang Antimatter ay nasa beta: ang mga release nito ay nasa serye ng 0.9.0. Ang isang release na may suffix pagkatapos ng hyphen sa bersyon, tulad ng 0.9.0-rc.1, ay nakamarkahan bilang Pre-release sa GitHub. Ito ay isang test version, na ipinubliko bago ang final release.

Bawat release ay may mga file na ito, para sa mga server na amd64 at arm64:

FileAno ito
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.debAng package para sa Debian, Ubuntu, at mga distribution na batay sa kanila.
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpmAng package para sa Fedora, RHEL, at mga distribution na compatible sa RHEL.
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gzAng release archive, para sa anumang Linux distribution, na itinatag manually.
SHA256SUMSAng SHA-256 checksum ng bawat file ng release.

Ang packages at ang archive ay naglalaman ng iisang program: ang server (antimatter), ang command-line tool (amctl), ang dalawang web apps (ang default interface at ang classic one), ang mga bundled apps, ang mga email templates, at ang mga translation. Ang mga package ay nagdadagdag ng isang systemd service at isang settings file, kaya bawat isa ay isang all-in-one installation: ikaw lang ay magdadagdag ng isang PostgreSQL database. Walang magkahiwalay na binary downloads: ang mga binary ay nasa archive, sa antimatter/bin/. Sila ay static, kaya gumagana sila sa anumang Linux distribution ng kanilang architecture.

Sa mga pangalan ng package, ang hyphen ng isang prerelease version ay nagiging tilde, upang ma-sort ng package manager ang prerelease bago ang final release: ang bersyon 0.9.0-rc.1 ay nagbibigay ng antimatter_0.9.0~rc.1-1_amd64.deb at antimatter-0.9.0~rc.1-1.x86_64.rpm. Ang archive ay panatayin ang hyphen.

Ang antimatter version ay ipinapakita ang release version bilang Numero ng Build, kasama ang commit na gawa nito bilang Hash ng Build. Ang linya ng Bersyon nito ay ang bersyon ng Mattermost line na batay sa Antimatter.

Suriin ang download

I-download ang file na kailangan mo at ang SHA256SUMS sa parehong directory, mula sa release page o gamit ang curl, tapos suriin ang file:

curl -fLO https://github.com/AntimatterChat/antimatter/releases/download/v<version>/antimatter_<version>-1_amd64.deb
curl -fLO https://github.com/AntimatterChat/antimatter/releases/download/v<version>/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS

Bawat file na i-download mo ay dapat nakalista kasama ang OK. Ang anumang ibang resulta ay nangangahulugang sira o hindi kumpleto ang file: i-download ulit ito, at huwag itong i-install. Ang SHA256SUMS ay hindi naka-sign: ito ay nakikita ang sira ng download, at hindi nagpapatunay ng higit pa sa ang HTTPS download mula sa GitHub.

I-install ang .deb o .rpm package

Ang package ay nag-i-install ng Antimatter bilang isang systemd service, na nangangailangan lamang ng database upang magsimula. Gamitin ito sa 64-bit na Debian, Ubuntu, Fedora, o RHEL-compatible server na may systemd.

Ano ang inii-install ng package

PathLaman nito
/opt/antimatterAng mga programa: bin/antimatter, bin/amctl, ang mga web app (client/, client-fusion/), ang mga kasamang app (prepackaged_plugins/), ang mga template, pagsasalin, at font. Tinatawag ng bawat upgrade.
/etc/antimatter/antimatter.envAng mga setting ng serbisyo, bilang mga AM_ variable: ang database, ang URL ng site, at ang GIF service. Basahin lamang ng root. Pinapanatili ng mga upgrade.
/etc/antimatter/config/config.jsonAng configuration file, kung saan inilalagay ng server ang mga setting na binago sa System Console. Lumilikha ito mula sa /opt/antimatter/defaults/config.json sa unang pag-install, at hindi na ito tinatawag pagkatapos.
/var/lib/antimatterAng mga na-upload na file (data/) at ang mga naka-install na app (plugins/, client-plugins/).
/var/log/antimatterAng mga log file, kung on ang file logging. Off ito: pumupunta ang mga log sa journal.
/usr/lib/systemd/system/antimatter.serviceAng serbisyo.
/usr/bin/amctlIsang link sa /opt/antimatter/bin/amctl.

Ang mga directory na binubuhusan ng server sa /opt/antimatter (config, data, plugins, client/plugins, at logs) ay mga link sa /etc/antimatter, /var/lib/antimatter, at /var/log/antimatter. Kaya ang upgrade, na tinatawag ang /opt/antimatter, ay hindi nakakaapekto sa iyong data. Lumilikha rin ng package ang system user antimatter, na nagpapatakbo ng server at may-ari ng mga directory na ito.

Nagdepende ang package sa ca-certificates. Inirerekomenda nito ang PostgreSQL (postgresql sa Debian at Ubuntu, postgresql-server sa Fedora at RHEL), media-types (mailcap para sa .rpm), at gifs-server, ang GIF service, na may sariling release (tingnan ang sa ibaba). Ina-install ng apt at dnf ang mga inirerekomendang package kapag natagpuan nila. Inisusugest nito ang poppler-utils, wv, unrtf, at tidy (walang wv para sa .rpm): nag-e-extract ito ng text ng mga na-upload na dokumento, upang makahanap ng mga salita sa loob nito. I-install mo mismo kung gusto mo ito.

1. I-install ang mga package

I-download ang package ng Antimatter at ang package ng GIF service ng iyong architecture, i-verify ito ayon sa itaas, at i-install ang dalawa sa isang command, upang matugunan ang rekomendasyon ng gifs-server (hindi nito nasa repository ng mga distribution):

# Debian, Ubuntu
sudo apt install ./antimatter_<version>-1_amd64.deb ./gifs-server_*_amd64.deb
# Fedora, RHEL
sudo dnf install ./antimatter-<version>-1.x86_64.rpm ./gifs-server-*.x86_64.rpm

Itaas ang ./: ito ang nagpapaalam kay apt at dnf na mag-install ng local na file. Para mag-install nang walang GIF service, huwag isama ang package nito. Pinagpapagana ng package ang antimatter service ngunit hindi ito pinapagsimula, at ipapakita ang mga susunod na hakbang.

2. Lumikha ng database

Kailangan ng Antimatter ng PostgreSQL 15 o mas bago, sa server na ito o sa ibang server. Suriin ang bersyon ng PostgreSQL ng iyong distribution gamit ang psql --version. Kung mas lumang ito, mag-install ng mas bagong bersyon mula sa mga repository ng PostgreSQL project mismo, o gamitin ang database sa ibang server. Sa Debian at Ubuntu, ang postgresql package ang nagpapa-start ng database. Sa Fedora at RHEL, lumikha at simulan muna ito:

sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql

Pagkatapos, lumikha ng user at database para sa Antimatter:

sudo -u postgres psql -c "CREATE USER antimatter WITH PASSWORD 'a-long-password'"
sudo -u postgres psql -c "CREATE DATABASE antimatter OWNER antimatter"

Dapat tanggapin ng PostgreSQL ang mga koneksyon gamit ang password mula sa 127.0.0.1: ang mga host lines ng pg_hba.conf file nito, gamit ang scram-sha-256 method.

3. I-set ang database at URL ng site

I-edit ang /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Alisin ang # sa harap ng mga linya na gagamitin, at i-set ang database at ang address na buksan ng mga tao:

AM_SQLSETTINGS_DRIVERNAME=postgres
AM_SQLSETTINGS_DATASOURCE=postgres://antimatter:a-long-password@localhost:5432/antimatter?sslmode=disable&connect_timeout=10
AM_SERVICESETTINGS_SITEURL=https://chat.example.com

Ang anumang setting ng configuration ay maaaring ilagay sa file na ito, bilang AM_<SECTION>_<SETTING>: halimbawa, ang SqlSettings.DataSource ay AM_SQLSETTINGS_DATASOURCE. Ang setting na naka-set dito ay hindi na maaaring baguhin sa System Console. Tingnan ang Configuration. I-restart ang server pagkatapos ng bawat pagbabago: sudo systemctl restart antimatter.

Inilalagay din ng service ang ilang defaults, na maaring palitan ng linya sa antimatter.env: ang logging sa files ay naka-off (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), at ang local mode ay naka-on (AM_SERVICESETTINGS_ENABLELOCALMODE=true), upang gumana ang amctl --local sa server.

4. Simulan ito

sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status

Sa unang pagbukas, gumagawa ang server ng mga table nito, tapos nakikinig sa port 8065. Buksan ang http://<server>:8065, o ang domain mo kapag may reverse proxy na (tingnan ang Domain at HTTPS), at agad na lumikha ng unang account: ito ang maging system administrator. Kung gusto mong lumikha nito mula sa command line, gamitin ang mga amctl command ng Paglikha ng unang administrator, gamit ang sudo -u antimatter amctl --local sa halip ng docker compose exec antimatter amctl --local.

5. I-on ang mga GIF

Ang app ng mga GIF ay kasama at naka-on, at ang antimatter.env ay tumutukoy na sa GIF service sa parehong server (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Kailangan pa rin nito ng API key ng service. Ang gifs-server package ay nag-generate ng isa noong nag-install ito:

sudo systemctl start gifs-server-stickers    # imports the sticker pack, about a minute and a half
sudo systemctl start gifs-server
sudo grep -v '^#' /etc/gifs-server/api-keys

Ilagay ang key sa antimatter.env bilang AM_GIFS_API_KEY=<key> at i-restart ang Antimatter, o ilagay ito bilang API key sa System Console › Plugins › Mga GIF. Kung nasa ibang server ang GIF service, i-set ang AM_GIFS_SERVICE_URL sa address nito. Para sa pagpapahintulot sa mga tao na magdagdag ng sarili nilang GIF at sticker, tingnan ang Mga GIF.

Ang service

  • Ito ay tumatakbo bilang antimatter user, sa /opt/antimatter, at bumabasa ng /etc/antimatter/antimatter.env. Ii-restart ng systemd ang server kapag ito ay tumigil, at bibigyan ito ng hanggang isang oras para magsimula, dahil ang mga database migration ng bagong bersyon ay maaaring mahaba.
  • Ang mga log nito ay nasa journal: journalctl -u antimatter.
  • Ito ay pinatibay: ang /usr at /etc ay read-only para sa server, maliban sa /etc/antimatter/config, at hindi makikita nito ang /home, /root o /run/user. Kung ililipat mo ang file storage (FileSettings.Directory), pumili ng directory na nasa labas ng mga ito, na may-ari ng antimatter.
  • Ang mga upgrade ay palalitan ang service file. Para baguhin ito, gamitin ang sudo systemctl edit antimatter, na pananatili ng mga pagbabago mo sa hiwalay na file.

Pag-upgrade ng package

  1. Kunin ang backup (tingnan ang Mga Backup at Upgrade).
  2. I-download ang bagong package at SHA256SUMS, at suriin ang mga ito.
  3. I-stop ang server, i-install ang bagong package sa itaas ng lumang isa, at i-start ulit ito:
    sudo systemctl stop antimatter
    sudo apt install ./antimatter_<new version>-1_amd64.deb     # or: sudo dnf install ./antimatter-<new version>-1.x86_64.rpm
    sudo systemctl start antimatter
    journalctl -u antimatter -f

Hindi binabago ng package ang server mismo. Pagkatapos ng upgrade, ipapakita nito ang Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: kung hindi mo na-stop ang server bago, i-restart agad ito. Palalitan ng upgrade ang /opt/antimatter at ang service file, at panatilihin ang antimatter.env, config.json, /var/lib/antimatter at ang mga log. Kapag nagsimula, a-upgrade ng server ang database at ilalagay ang mas bagong bersyon ng mga kasamang app.

Kung nagbago ang default antimatter.env sa bagong bersyon, tanungin ng apt kung panatilihin mo ang iyong bersyon: panatilihin ito. Panatilihin ng dnf ang iyong bersyon at isisave ang bagong isa bilang /etc/antimatter/antimatter.env.rpmnew. Pataas lang ang mga upgrade: huwag ilagay ang mas lumang bersyon sa mas bago.

Pag-alis ng package

Ang sudo apt remove antimatter o sudo dnf remove antimatter ay humihinto at nagpapa-off ng service, at tinatanggal ang program. Panatilihin nito ang data (/var/lib/antimatter), ang configuration (/etc/antimatter), ang database, at ang antimatter user: alisin mo mismo ang mga ito upang matanggal ang Antimatter nang buo.

Mga app sa mga package at archive

Kasama sa mga package at archive ang pinakabagong signed release ng mga app na ito, sa prepackaged_plugins/: AI chat, Mga Tawag, GIFs, Memes, Mga Tala, Mga Poll, Todo, Mga Voice Channel at Whiteboard. Ang app na walang release pa noong ginawa ang release ng server ay hindi kasama: ipinapakita ng ls /opt/antimatter/prepackaged_plugins kung ano ang kasama sa iyong release. Kasama ang Memes at Todo ngunit hindi pinagana: ipinaliliwanag ng Mga bundled app kung paano i-install at paganahin ang mga ito.

Hindi na kasama ang Kanban at Playbooks sa server o sa alinman sa mga Docker image: ang server na may na-install na isa ay mananatili ito sa pag-upgrade, at ang sinuman ay i-install ito mula sa sariling release, tulad ng mga app sa ibaba. Ang ibang mga app ng mga Docker image ay hindi rin kasama sa mga package o archive: Mail, Kalendaryo, GitHub, GitLab, Jira at Metrics. I-install ang bawat isa, kasama ang Kanban at Playbooks, mula sa sarili nilang mga release:

AppMga ReleaseApp id
Kanbanantimatter-plugin-boardsfocalboard
Playbooksantimatter-plugin-playbooksplaybooks
Mailantimatter-plugin-mailcom.antimatterchat.mail
Kalendaryoantimatter-plugin-calendarcom.antimatterchat.calendar
GitHubantimatter-plugin-githubgithub
GitLabantimatter-plugin-gitlabcom.github.manland.mattermost-plugin-gitlab
Jiraantimatter-plugin-jirajira
MetricsAntimatter-plugin-metricscom.mattermost.mattermost-plugin-metrics

Bawat release ng app ay may bundle ng app (isang .tar.gz file), ang kanyang signature (parehong pangalan na may .sig na idinagdag), at isang SHA256SUMS file. Para i-install ang isang app, pumayag sa mga upload, tapos idagdag ang bundle gamit ang amctl:

# 1. In /etc/antimatter/antimatter.env, add this line, then restart Antimatter
AM_PLUGINSETTINGS_ENABLEUPLOADS=true
sudo systemctl restart antimatter
# 2. Download the bundle where the antimatter user can read it, and install it
cd /tmp
curl -fLO https://github.com/AntimatterChat/antimatter-plugin-boards/releases/download/v<version>/<bundle>.tar.gz
sudo -u antimatter amctl --local plugin add <bundle>.tar.gz
sudo -u antimatter amctl --local plugin enable focalboard

Para i-upgrade ang isang app na naka-install gamit ang paraan na ito, idagdag ang bagong bundle gamit ang plugin add --force: ang mga package upgrade ay nag-a-upgrade lamang ng mga naka-bundle na app. Maaari mong alisin muli ang AM_PLUGINSETTINGS_ENABLEUPLOADS line pagkatapos. Tingnan ang Pag-install ng ibang apps para sa ibang paraan ng pag-install ng apps.

Mga signature ng app

Ang mga app bundle ay naka-sign gamit ang Antimatter app signing key: bawat .tar.gz.sig file ay isang detached GPG signature ng kanyang bundle. Sinusuri ng server ang mga signature na ito bago ito mag-install ng isang naka-bundle na app. Para i-check ang bundle mismo:

curl -fsSLO https://raw.githubusercontent.com/AntimatterChat/antimatter-docker/main/keys/antimatter-plugin-signing.asc
gpg --import antimatter-plugin-signing.asc
gpg --verify <bundle>.tar.gz.sig <bundle>.tar.gz

Ang gpg ay dapat mag-report ng isang mabuting signature mula sa Antimatter Plugin Signing, na may fingerprint na 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Bababala rin ito na hindi naka-certify ang key gamit ang isang trusted signature: normal iyon para sa isang key na hindi mo mismo naka-sign. Ang isang app release na walang .sig files ay hindi naka-sign, at sinasabi ng kanyang release notes ang bagay na iyon.

Pag-install mula sa release archive

Ang archive, antimatter-<version>-linux-<arch>.tar.gz (halimbawa antimatter-0.9.0-linux-amd64.tar.gz), ay angkop para sa isang distribution na walang .deb o .rpm packages, o para sa isang layout na iyong sarili. Ito ay naglalaman ng isang antimatter/ directory na may bin/antimatter, bin/amctl, config/config.json, ang mga web apps (client/ at client-fusion/), ang mga naka-bundle na apps (prepackaged_plugins/, tingnan ang sa itaas), ang mga email templates, at ang mga translation.

1. Ihanda ang PostgreSQL

Sinusuportahan lamang ng Antimatter ang PostgreSQL, bersyon 15 o mas bagong (tumatakbo ang mas lumang bersyon, may error sa log). Gumawa ng user at database:

sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF

2. I-unpack at i-configure

sudo tar -xzf antimatter-<version>-linux-amd64.tar.gz -C /opt
sudo useradd --system --user-group antimatter
sudo mkdir -p /opt/antimatter/data
sudo chown -R antimatter:antimatter /opt/antimatter

Ituro ang server sa database, naaari sa /opt/antimatter/config/config.json (SqlSettings.DataSource) o gamit ang environment variables, at itakda ang site URL:

AM_SQLSETTINGS_DRIVERNAME=postgres
AM_SQLSETTINGS_DATASOURCE=postgres://antimatter:a-long-password@localhost:5432/antimatter?sslmode=disable&connect_timeout=10
AM_SERVICESETTINGS_SITEURL=https://chat.example.com

Ang config.json ng archive ay isang kumpletong default configuration: ang mga setting na binago sa System Console ay naa-save pabalik dito. Para manatili ang configuration sa database, tingnan ang Configuration.

3. Patakbuhin bilang service

Isang systemd unit, nasa /etc/systemd/system/antimatter.service:

[Unit]
Description=Antimatter
After=network.target postgresql.service

[Service]
Type=notify
User=antimatter
Group=antimatter
WorkingDirectory=/opt/antimatter
ExecStart=/opt/antimatter/bin/antimatter
EnvironmentFile=-/etc/antimatter.env
TimeoutStartSec=3600
Restart=always
RestartSec=10
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Ilagay ang iyong AM_ variables sa /etc/antimatter.env (mababasa ng root lamang), tapos:

sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f

Nakikinig ang server sa port 8065. Buksan ang http://<server>:8065, o ang iyong domain kapag naka-setup na ang reverse proxy (tingnan ang Domain and HTTPS), at gumawa ng unang account: ito ang maging system administrator.

Ang bin/amctl ay pamamahala sa tumatakbo na server mula sa command line. Sa server mismo, gumagana ito nang walang sign-in gamit ang local mode: itakda ang AM_SERVICESETTINGS_ENABLELOCALMODE=true, tapos patakbuhin ang sudo -u antimatter /opt/antimatter/bin/amctl --local system status.

Para sa mga GIF, i-install ang GIF service (tingnan sa ibaba) at i-set ang AM_GIFS_SERVICE_URL at AM_GIFS_API_KEY ayon sa step 5 ng mga package.

Mga package ng GIF service at push proxy

May sariling mga release ang GIF service at push proxy, na may mga parirala na katulad ng server: isang .tar.gz archive, isang .deb at .rpm package para sa amd64 at arm64, at isang SHA256SUMS file. Ang mga bersyon na may hyphen ay mga prerelease. Suriin ang mga download gamit ang sha256sum --check --ignore-missing SHA256SUMS, katulad ng server.

Ang GIF service (gifs-server)

Mga release: github.com/AntimatterChat/gifs-server/releases. Ang archive ay gifs-server-<version>-linux-<arch>.tar.gz; ang mga package ay tinatawag na gifs-server.

sudo apt install ./gifs-server_*_amd64.deb      # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm     # Fedora, RHEL

Ina-install ng package:

  • ang /usr/bin/gifs-server, at ang gifs-server service, na tumatakbo bilang gifs-server user at nag-i-keep ng kanyang catalogue sa /var/lib/gifs-server;
  • ang gifs-server-stickers service, na nag-i-import o nag-a-update ng sticker pack sa /usr/share/gifs-server/stickers kapag inilunsad nito, tapos tumitigil;
  • ang kanyang mga setting, /etc/gifs-server/gifs-server.env (mga AM_GIFS_ variables, na pinapanatili sa mga upgrade), at /etc/gifs-server/api-keys, isang API key bawat linya, na may random key na ginawa sa unang pag-install.

Nakikinig ito sa 127.0.0.1:8080, kaya ang Antimatter sa parehong server lang ang makakapunta dito. Kung nasa ibang lugar ang Antimatter, itakda ang AM_GIFS_LISTEN=:8080 sa gifs-server.env at limitahan ang access sa port gamit ang iyong firewall. Nakalista sa file ang ibang mga setting: AM_GIFS_UPLOAD_KEYS (mga key na pumapayag na magdagdag ng GIF at stickers, at magsagawa ng pagtanggal ng mga naidagdag gamit ang mga ito), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY at AM_GIFS_LOG_LEVEL. Inirerekomenda ng package ang ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools para sa .rpm) at isang DejaVu font: ginagamit ng service ang mga ito upang gumawa ng mga format ng GIF, video, at sticker kapag nag-i-import o tumatanggap ng mga file, at tumatakbo pa rin kahit wala ang mga ito.

Katulad ng server, pinapayagan ngunit hindi pinapalitan ang service sa pag-install. I-start ito ayon sa hakbang 5 ng mga package. Pagkatapos ng upgrade, i-restart ito: sudo systemctl restart gifs-server. Ang pagtanggal ng package ay nagpapaalipin ng catalogue sa /var/lib/gifs-server.

Ang push proxy

Mga release: github.com/AntimatterChat/push-proxy/releases. Ang archive ay antimatter-push-proxy-<version>-linux-<arch>.tar.gz; ang mga package ay tinatawag na antimatter-push-proxy. Ang package ay nag-i-install ng /usr/bin/antimatter-push-proxy at ng antimatter-push-proxy service, na tumatakbo bilang antimatter-push-proxy user at bumabasa ng /etc/antimatter-push-proxy/antimatter-push-proxy.json (napanatili sa mga upgrade). Ang mga Apple at Firebase credentials ay nakalagay sa /etc/antimatter-push-proxy/certs: ang Push notifications ay nagpaliwanag kung saan sila galing.

sudo apt install ./antimatter-push-proxy_*_amd64.deb      # or: sudo dnf install ./antimatter-push-proxy-*.x86_64.rpm
sudo install -o root -g antimatter-push-proxy -m 0640 \
    AuthKey_ABCDE12345.p8 firebase-service-account.json /etc/antimatter-push-proxy/certs/
sudoedit /etc/antimatter-push-proxy/antimatter-push-proxy.json
sudo systemctl start antimatter-push-proxy
journalctl -u antimatter-push-proxy -f

Sa settings file, ang mga path ay relative sa /etc/antimatter-push-proxy: halimbawa, "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" at "ServiceFileLocation": "./certs/firebase-service-account.json". Pagkatapos, itakda ang Push Notification Server sa Antimatter sa http://<proxy host>:8066. Pagkatapos ng upgrade, i-restart ito: sudo systemctl restart antimatter-push-proxy.

Ang push proxy ay nakikinig sa port 8066 sa bawat address at hindi sinusuri kung sino ang tumatawag. Panatilihing nasa private network ang port, o nasa likod ng reverse proxy na naglilimita sa access.

Iba pang mga command ng server

Bukod sa pagpapatupad ng server (antimatter, o antimatter server), may ilang maintenance commands ang binary. Binabasa nila ang parehong configuration ng server.

CommandGinagawa nito
antimatter versionIpinapakita ang bersyon, build number, build date, at build hash.
antimatter db pingSinusuri kung maaabot ang database.
antimatter db initGumagawa ng configuration sa database (kapag naka-set ang AM_CONFIG sa isang postgres:// URL).
antimatter db migrateIna-apply ang mga database migrations nang hindi pinapatakbo ang server.
antimatter db versionIpinapakita ang huling migration na in-apply sa database.
antimatter import bulk, antimatter export bulkIn-import o in-export ang data sa bulk format (tingnan ang Backups and upgrades).