Instalace Antimatter

Nainstalujte Antimatter pomocí hotového souboru compose, z balíčku .deb nebo .rpm vydání, nebo z archivu vydání. Poté vytvořte první administrátorský účet.

Instalace pomocí Docker Compose

Toto je doporučený způsob. Jeden soubor compose spustí Antimatter, PostgreSQL, úložiště souborů a službu GIF. Potřebujete Linuxový server s Docker Engine a jeho pluginem Compose (docker compose), 2 jádra CPU a 4 GB paměti nebo více.

1. Stáhněte soubor compose

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

2. Vytvořte soubor .env

Soubor compose čte svá nastavení ze souboru .env ve stejném adresáři. Vytvořte jej s náhodnými hesly:

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

Nastavte SITE_URL na adresu, kterou lidé zadají do prohlížeče, například http://192.168.1.20:8065 v lokální síti nebo https://chat.example.com s doménou. Soubor .env si ponechte: databáze i úložiště používají hesla z tohoto souboru od prvního spuštění, klíče API pro připojení modelů AI jsou šifrovány pomocí AM_AI_ENCRYPTION_KEY a stejný soubor budete potřebovat k obnovení zálohy.

3. Spusťte

docker compose up -d
docker compose ps

První spuštění trvá minutu nebo dvě: PostgreSQL vytvoří databázi, jednorázová služba bucket vytvoří úložiště, jednorázová služba gifs-stickers importuje základní balíček samolepek a Antimatter vytvoří své tabulky. Sledujte to pomocí docker compose logs -f antimatter.

Pokud chcete od začátku používat doménové jméno a HTTPS, viz Doména a HTTPS: u souboru compose to jsou o dvě řádky více v .env a profil https.

Proměnné v souboru .env

ProměnnáVýchozíCo dělá
SITE_URLpovinnéVeřejná adresa Antimatter (ServiceSettings.SiteURL).
POSTGRES_PASSWORDpovinnéHeslo uživatele databáze antimatter.
S3_SECRET_KEYpovinnéTajný klíč úložiště souborů.
GIFS_API_KEYpovinnéKlíč, který Antimatter používá k volání služby GIF.
AM_AI_ENCRYPTION_KEYprázdnéKlíč, který šifruje klíče API pro připojení modelů AI (openssl rand -base64 32). Pokud je prázdný, server vytvoří soubor s klíčem ve svazku data. Viz Šifrovací klíč.
GIFS_UPLOAD_KEYprázdnéUmožňuje uživatelům přidávat vlastní GIFy a samolepky z výběrového okna a mazat je. Prázdná hodnota vypne nahrávání.
DOMAINprázdnéVaše doménové jméno, pro profil https.
HTTP_PORT8065Port hostitele webového serveru Antimatter.
CALLS_PORT8443UDP a TCP port zvuku a videa hovorů.
EDGE_SUBNET172.29.71.0/28Podmřížka sítě mezi Caddy a Antimatter. Změňte ji, pokud se překrývá s jednou z vašich sítí.
TZUTCČasové zóna kontejnerů.
ANTIMATTER_IMAGEghcr.io/antimatterchat/antimatter-next:latestObraz Antimatter ke spuštění (viz níže).

Co se spouští

SlužbaObrázekRole
antimatterghcr.io/antimatterchat/antimatter-nextServer, webová aplikace a přiložené aplikace. Publikuje porty HTTP_PORT a CALLS_PORT. Jeho datový adresář je svazek data.
postgrespostgres:17-alpineDatabáze, ve svazku postgres.
filesrustfs/rustfsS3-kompatibilní úložiště pro nahrávané soubory a nainstalované aplikace, ve svazku files.
bucketamazon/aws-cliVytvoří bucket antimatter a poté skončí.
gifsghcr.io/antimatterchat/gifs-serverSlužba pro GIF a samolepky, ve svazku gifs.
gifs-stickersghcr.io/antimatterchat/gifs-serverPři prvním spuštění importuje základní balíček samolepek a poté skončí.
httpscaddy:2-alpinePouze s profilem https: HTTPS na portech 80 a 443.

PostgreSQL, úložiště a služba pro GIF jsou na interní síti (private) bez přístupu na internet, ke které se připojí pouze Antimatter. Žádný z nich nepublikuje port.

Kontejner Antimatter nic neuchovává na disku: jeho nastavení je v databázi (na ni ukazuje AM_CONFIG) a jeho soubory a aplikace jsou ve službě úložiště. Kontejner můžete kdykoli odstranit a znovu vytvořit. Jeho svazek data obsahuje pouze soubor se šifrovacím klíčem AI, který server vytvoří, když je AM_AI_ENCRYPTION_KEY prázdné. Všechno, co je třeba zálohovat, se nachází ve svazcích postgres, files, gifs a data, a ve vašem souboru .env.

Vyberte obraz

Jsou publikovány dva obrazy Antimatter, oba pro linux/amd64 a linux/arm64 a oba sestavené z větve main všech repozitářů:

ObrázekIntegrované aplikaceŠtítky
ghcr.io/antimatterchat/antimatterAI chat, hovory, GitHub, GitLab, Jira a Metriky.latest, X.Y.Z pro vydání, sha-<commit>
ghcr.io/antimatterchat/antimatter-nextTo samé, plus hlasové kanály, hlasování, e-mail, kalendář, poznámky, tabule, GIF, úkoly a memy. Přesestavováno každou noc.latest, nightly, nightly-<YYYYMMDD>, sha-<commit>

Obrazy image už neobsahují Kanban ani Playbooks: nainstalujte je z vlastního vydání na GitHubu (viz níže), pokud je chcete používat. Server, který má některou z nich již nainstalovanou, si ji zachová i po aktualizaci.

Soubor compose na tomto webu používá antimatter-next, protože služba pro GIF a většina aplikací popsaných na tomto webu jsou pouze v tomto obrazu. Chcete-li obraz změnit, nastavte ANTIMATTER_IMAGE v .env a spusťte docker compose up -d.

latest se pod vámi mění. V produkci připevněte štítek, např. nightly-20261015 nebo sha-<commit>, a měňte ho záměrně při aktualizaci. Server při spuštění aktualizuje svou databázi, takže se nemůžete vrátit ke staršímu obrazu, ani z antimatter-next na antimatter, aniž byste obnovili zálohu vytvořenou předtím. Viz Zálohy a aktualizace.

Uvnitř obrazu

  • Server se nachází v /antimatter, binární soubory antimatter a amctl jsou v /antimatter/bin (na PATH).
  • Běží jako neprivilegovaný uživatel antimatter (uid 2000) na minimální základě distroless, bez shellu.
  • Porty: 8065 (web a API), 8067 (metriky), 8074 (cluster), 8443 UDP a TCP (hovory).
  • Lokální režim (ServiceSettings.EnableLocalMode) je zapnutý, takže amctl --local funguje uvnitř kontejneru. Kontrola stavu spouští amctl system status --local.
  • Přibalené aplikace se nacházejí v /antimatter/prepackaged_plugins a jsou podepsány klíčem pro podepisování aplikací Antimatter.
  • Jednotky pro extrakci textu (pdftotext, wvText, unrtf, tidy) jsou součástí balíčku, takže je možné vyhledávat v obsahu nahranychých dokumentů.

Další soubory compose

Repozitář antimatter-docker obsahuje produkční nastavení v deploy/compose/: nginx s vašimi vlastními certifikáty nebo Let's Encrypt (certbot), PostgreSQL, volitelnou službu pro GIF (profil gifs) a pojmenovaná data pro konfiguraci, data a protokoly serveru, popsaná v README. Výchozí je stabilní obraz a soubory se ukládají na lokální data místo úložiště S3. Použijte ho, pokud preferujete nginx před Caddy, nebo pokud už máte certifikáty.

Vytvoření prvního administrátora

Otevřete SITE_URL v prohlížeči a vytvořte účet. První účet vytvořený na novém serveru se stane administrátorem systému, poté vás nastavení provede vytvořením první komunity (Antimatterovo označení pro tým nebo pracovní prostor).

Udělejte to hned po prvním spuštění: do té doby se administrátorem stane kdokoli, kdo se k serveru dostane jako první. Pokud chcete účet vytvořit příkazem, udělejte to předtím, než bude server dostupný zvenčí:

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

Pak se přihlaste na SITE_URL. Příkaz začněte mezerou, aby heslo nekončilo v historii shellu (s HISTCONTROL=ignorespace), nebo heslo změňte po přihlášení.

Další kroky, když jste uvnitř:

  1. Pro firmu nebo organizaci nastavte Typ nových komunit na Pracovní prostor a změňte typ již vytvořené komunity v jejím nastavení: Guild nebo pracovní prostor.
  2. Rozhodněte, kdo může vytvářet účty: Přihlášení a účty.
  3. Nastavte e-mail, aby fungovaly pozvánky a obnovení hesla: E-mail a push oznámení.
  4. Otevřete port pro hovory ve firewallu: Hovory a hlas.
  5. Zkontrolujte, které aplikace jsou zapnuté: Přibalené aplikace.

Stáhnout vydání

Bez Dockeru nainstalujte Antimatter ze souborů vydání na GitHubu: github.com/AntimatterChat/antimatter/releases. Každé vydání má číslo verze, například 0.9.0, a jeho štítek je stejné číslo s předponou v (v0.9.0).

Antimatter je v betavé fázi: její vydání patří do řady 0.9.0. Vydání, jehož verze má po pomlčce příponu, například 0.9.0-rc.1, je na GitHubu označeno jako Pre-release. Jedná se o testovací verzi, která vyšla před finálním vydáním.

Každé vydání obsahuje tyto soubory pro servery s architekturou amd64 a arm64:

SouborPopis
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.debBalíček pro Debian, Ubuntu a distribuce na nich založené.
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpmBalíček pro Fedora, RHEL a distribuce kompatibilní s RHEL.
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gzArchiv s vydáním pro libovolnou linuxovou distribuci, nastavený ručně.
SHA256SUMSSHA-256 kontrolní součty všech souborů vydání.

Balíčky i archiv obsahují stejný program: server (antimatter), nástroj příkazového řádku (amctl), obě webové aplikace (výchozí rozhraní a klasické), vestavěné aplikace, šablony e-mailů a překlady. Balíčky přidávají systemd službu a soubor s nastavením, takže každý z nich představuje kompletní instalaci: stačí jen přidat databázi PostgreSQL. Neexistují samostatné stažení binárek: binárky se nacházejí v archivu, v antimatter/bin/. Jsou statické, takže běží na libovolné linuxové distribuci dané architektury.

V názvech balíčků se pomlčka v verzi předverze mění na vlničku, aby správce balíčků řadil předverzi před finální vydání: verze 0.9.0-rc.1 vede k antimatter_0.9.0~rc.1-1_amd64.deb a antimatter-0.9.0~rc.1-1.x86_64.rpm. Archiv si pomlčku zachovává.

Příkaz antimatter version vypisuje verzi vydání jako Verze sestavení, s commit, ze kterého bylo sestaveno, jako Hash sestavení. Řádek Verze udává verzi řady Mattermost, na které Antimatter stojí.

Ověření stažení

Stáhněte si potřebný soubor a SHA256SUMS do stejného adresáře, buď ze stránky vydání, nebo pomocí curl, a poté soubor ověřte:

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

Každý stažený soubor musí být uveden s označením OK. Jakýkoli jiný výsledek znamená, že je soubor poškozený nebo neúplný: stáhněte ho znovu a nenechte ho nainstalovaný. SHA256SUMS není podepsaný: odhalí poškozené stažení, ale nedokazuje nic víc, než co dokáže HTTPS stažení z GitHubu.

Instalace balíčku .deb nebo .rpm

Balíček nainstaluje Antimatter jako systemd službu, která ke spuštění potřebuje pouze databázi. Použijte ho na 64bitovém serveru s Debianem, Ubuntu, Fedorou nebo kompatibilním RHEL systémem se systemd.

Co balíček nainstaluje

CestaCo obsahuje
/opt/antimatterProgram: bin/antimatter, bin/amctl, webové aplikace (client/, client-fusion/), zabudované aplikace (prepackaged_plugins/), šablony, překlady a písma. Při každém aktualizování se nahradí.
/etc/antimatter/antimatter.envNastavení služby jako proměnné AM_: databáze, URL webu, služba GIF. Čitelné pouze rootem. Aktualizace je zachovává.
/etc/antimatter/config/config.jsonKonfigurační soubor, do kterého server ukládá nastavení změněná v Systémové konzoli. Při prvním instalování se vytvoří z /opt/antimatter/defaults/config.json a poté se nikdy nenahrazuje.
/var/lib/antimatterNahrané soubory (data/) a nainstalované aplikace (plugins/, client-plugins/).
/var/log/antimatterSoubory s protokolem, pokud zapnete protokolování do souboru. Výchozí stav je vypnuto: protokoly se zapisují do deníku.
/usr/lib/systemd/system/antimatter.serviceSlužba.
/usr/bin/amctlOdkaz na /opt/antimatter/bin/amctl.

Adresáře, do kterých server zapisuje v /opt/antimatter (config, data, plugins, client/plugins a logs), jsou odkazy na /etc/antimatter, /var/lib/antimatter a /var/log/antimatter. Aktualizace, která nahrazuje /opt/antimatter, se proto nikdy nedotkne vašich dat. Balíček také vytvoří systémového uživatele antimatter, který spouští server a vlastní tyto adresáře.

Balíček závisí na ca-certificates. Doporučuje PostgreSQL (postgresql na Debianu a Ubuntu, postgresql-server na Fedoře a RHEL), media-types (mailcap pro .rpm) a gifs-server, službu GIF, která má vlastní vydání (viz níže). apt a dnf nainstalují doporučené balíčky, pokud je najdou. Navrhuje poppler-utils, wv, unrtf a tidy (bez wv pro .rpm): extrahují text nahraných dokumentů, aby hledání našlo slova uvnitř nich. Pokud to chcete, nainstalujte je sami.

1. Nainstalujte balíčky

Stáhněte balíček Antimatter a balíček služby GIF pro vaši architekturu, ověřte je, jak je ukázáno výše, a nainstalujte oba v jednom příkazu, aby se splnilo doporučení pro gifs-server (nenajdete ho v repozitářích distribucí):

# 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

Ponechte ./: říká apt a dnf, aby nainstalovali lokální soubor. Pokud chcete nainstalovat bez služby GIF, vynechte její balíček. Balíček povolí službu antimatter, ale nespustí ji, a vypíše další kroky.

2. Vytvoření databáze

Antimatter vyžaduje PostgreSQL 15 nebo novější, na tomto nebo na jiném serveru. Verzi PostgreSQL ve vašem distribuci zkontrolujte pomocí psql --version. Pokud je starší, nainstalujte novější verzi z oficiálních repozitářů projektu PostgreSQL, nebo použijte databázi na jiném serveru. Na Debianu a Ubuntu spouští databázi balíček postgresql. Na Fedoře a RHEL ji nejdřív vytvořte a spusťte:

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

Poté vytvořte uživatele a databázi pro Antimatter:

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

PostgreSQL musí přijímat připojení s heslem z 127.0.0.1: řádky host v souboru pg_hba.conf s metodou scram-sha-256.

3. Nastavení databáze a adresy webu

Upravte /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Odstraňte # před řádky, které používáte, a nastavte databázi a adresu, kterou lidé otevřou:

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

Do tohoto souboru lze vložit libovolné nastavení konfigurace ve tvaru AM_<SECTION>_<SETTING>: například SqlSettings.DataSource je AM_SQLSETTINGS_DATASOURCE. Nastavení zadané zde nelze změnit v Systémové konzoli. Viz Konfigurace. Po každé změně server restartujte: sudo systemctl restart antimatter.

Služba také nastavuje několik výchozích hodnot, které lze přepsat řádkem v antimatter.env: zapisování do soubolů je vypnuté (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false) a lokální režim je zapnutý (AM_SERVICESETTINGS_ENABLELOCALMODE=true), takže na serveru funguje amctl --local.

4. Spuštění

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

Při prvním spuštění server vytvoří své tabulky a poté naslouchá na portu 8065. Otevřete http://<server>:8065 nebo svůj doménu, jakmile je nastaven reverzní proxy (viz Doména a HTTPS), a hned vytvořte první účet: ten se stane administrátorem systému. Pokud ho chcete vytvořit pomocí příkazového řádku, použijte příkazy amctl z oddílu Vytvoření prvního administrátora, přičemž místo docker compose exec antimatter amctl --local použijte sudo -u antimatter amctl --local.

5. Zapnutí GIF

Aplikace GIF je součástí balíčku a je zapnutá, a soubor antimatter.env ji již směřuje na službu GIF na stejném serveru (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Stále je však potřeba API klíč této služby. Balíček gifs-server ho vygeneroval při instalaci:

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

Klíč vložte do souboru antimatter.env jako AM_GIFS_API_KEY=<key> a Antimatter restartujte, nebo ho zadejte jako API klíč v Systémová konzole › Pluginy › GIF. Pokud služba GIF běží na jiném serveru, nastavte AM_GIFS_SERVICE_URL na jeho adresu. Pokud chcete, aby si lidé mohli přidávat vlastní GIF a samolepky, viz GIF.

Služba

  • Běží jako uživatel antimatter v adresáři /opt/antimatter a čte soubor /etc/antimatter/antimatter.env. systemd server restartuje vždy, když skončí, a má na start až jednu hodinu, protože migrace databáze nové verze může trvat dlouho.
  • Její protokoly jsou v journalu: journalctl -u antimatter.
  • Služba je posílená: adresáře /usr a /etc jsou pro server pouze pro čtení, s výjimkou /etc/antimatter/config, a nemůže vidět /home, /root ani /run/user. Pokud přesunete úložiště souborů (FileSettings.Directory), zvolte adresář mimo tyto, vlastněný uživatelem antimatter.
  • Aktualizace nahradí soubor služby. Pokud ho chcete upravit, použijte sudo systemctl edit antimatter, což vaše změny uchová v samostatném souboru.

Aktualizace balíčku

  1. Vytvořte zálohu (viz Zálohy a aktualizace).
  2. Stáhněte nový balíček a soubor SHA256SUMS a ověřte je.
  3. Zastavte server, nainstalujte nový balíček přes starý a znovu ho spusťte:
    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

Balíček sám server neobnoví. Po aktualizaci vypíše Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: pokud jste server předem nezastavili, restartujte ho okamžitě. Aktualizace nahradí /opt/antimatter a soubor služby, ale zachová antimatter.env, config.json, /var/lib/antimatter a protokoly. Při spuštění server aktualizuje databázi a nainstaluje novější verze přibalovaných aplikací.

Pokud nová verze změní výchozí antimatter.env, apt se zeptá, zda si chcete nechat svou verzi: nechte si ji. dnf si vaši verzi ponechá a novou uloží jako /etc/antimatter/antimatter.env.rpmnew. Aktualizace probíhají pouze dopředu: nainstalujte starší verzi nad novější.

Odstranění balíčku

sudo apt remove antimatter nebo sudo dnf remove antimatter zastaví a vypne službu a odstraní program. Data (/var/lib/antimatter), konfiguraci (/etc/antimatter), databázi a uživatele antimatter ponechá: pokud chcete Antimatter odstranit úplně, smažte je sami.

Aplikace v balíčcích a archivu

Balíčky a archiv obsahují nejnovější podepsanou verzi těchto aplikací v prepackaged_plugins/: AI chat, hovory, GIFy, memy, poznámky, hlasování, úkoly, hlasové kanály a tabule. Aplikace, která neměla v době sestavení verze serveru žádnou verzi, je vynechána: ls /opt/antimatter/prepackaged_plugins zobrazí, co vaše verze obsahuje. Memy a úkoly jsou součástí, ale nejsou zapnuty: Předinstalované aplikace vysvětlují, jak je nainstalovat a zapnout.

Kanban a Playbooks se již nedodávají se serverem ani s žádným obrazem Dockeru: server, který má některou z nich již nainstalovanou, si ji zachová i po aktualizaci, ostatní uživatelé ji nainstalují z vlastního vydání, stejně jako aplikace uvedené níže. Ani ostatní aplikace obrazů Dockeru nejsou součástí balíčků ani archivu: Mail, Kalendář, GitHub, GitLab, Jira a Metriky. Nainstalujte každou z nich, včetně Kanbanu a Playbooks, z jejich vlastních vydání:

AplikaceVydáníID aplikace
Kanbanantimatter-plugin-boardsfocalboard
Playbookyantimatter-plugin-playbooksplaybooks
E-mailantimatter-plugin-mailcom.antimatterchat.mail
Kalendářantimatter-plugin-calendarcom.antimatterchat.calendar
GitHubantimatter-plugin-githubgithub
GitLabantimatter-plugin-gitlabcom.github.manland.mattermost-plugin-gitlab
Jiraantimatter-plugin-jirajira
MetrikyAntimatter-plugin-metricscom.mattermost.mattermost-plugin-metrics

Každé vydání aplikace obsahuje její balíček (soubor .tar.gz), jeho podpis (stejné jméno s přidaným .sig) a soubor SHA256SUMS. K instalaci aplikace povolte nahrávání a poté pomocí amctl přidejte balíček:

# 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

K aktualizaci aplikace nainstalované tímto způsobem přidejte nový balíček pomocí plugin add --force: aktualizace balíčků aktualizují pouze aplikace v nich obsažené. Řádek AM_PLUGINSETTINGS_ENABLEUPLOADS můžete poté znovu odstranit. Další způsoby instalace aplikací najdete v Instalaci jiných aplikací.

Podpisy aplikací

Balíčky aplikací jsou podepsány klíčem pro podepisování aplikací Antimatter: každý soubor .tar.gz.sig je oddělený GPG podpis příslušného balíčku. Server tyto podpisy ověří, než nainstaluje aplikaci z balíčku. Pokud chcete balíček ověřit sami:

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

gpg musí nahlásit platný podpis od Antimatter Plugin Signing s otiskem 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Současně upozorní, že klíč není ověřen důvěryhodným podpisem: u klíče, který jste sami nepodepsali, je to normální. Vydání aplikace bez souborů .sig je nepodepsané a v poznámkách k vydání je to uvedeno.

Instalace z archivu vydání

Archiv antimatter-<version>-linux-<arch>.tar.gz (například antimatter-0.9.0-linux-amd64.tar.gz) je určen pro distribuce bez balíčků .deb nebo .rpm, nebo pro vlastní rozložení. Obsahuje jediný adresář antimatter/ se soubory bin/antimatter, bin/amctl, config/config.json, webovými aplikacemi (client/ a client-fusion/), zabudovanými aplikacemi (prepackaged_plugins/, viz výše), šablonami e-mailů a překlady.

1. Připravte PostgreSQL

Antimatter podporuje pouze PostgreSQL verze 15 nebo novější (starší verze se sice spustí, ale v logu se objeví chyba). Vytvořte uživatele a databázi:

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

2. Rozbalte a nakonfigurujte

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

Ukažte serveru na databázi, a to buď v souboru /opt/antimatter/config/config.json (SqlSettings.DataSource), nebo pomocí proměnných prostředí. Nastavte také adresu webu:

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

Soubor config.json v archivu obsahuje kompletní výchozí konfiguraci: změny provedené v Systémové konzoli se do něj zpětně ukládají. Pokud chcete mít konfiguraci v databázi, viz Konfigurace.

3. Spusťte jako službu

Jednotka systemd, umístěná v /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

Proměnné AM_ uložte do souboru /etc/antimatter.env (čtení pouze pro root), poté:

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

Server naslouchá na portu 8065. Otevřete http://<server>:8065, nebo svou doménu, jakmile je nastaven reverzní proxy (viz Doména a HTTPS), a vytvořte první účet: ten se stane administrátorem systému.

Nástroj bin/amctl spravuje běžící server z příkazového řádku. Na samotném serveru funguje bez přihlášení v lokálním režimu: nastavte AM_SERVICESETTINGS_ENABLELOCALMODE=true a poté spusťte sudo -u antimatter /opt/antimatter/bin/amctl --local system status.

Pro GIFy nainstalujte službu GIF (viz níže) a nastavte AM_GIFS_SERVICE_URL a AM_GIFS_API_KEY podle kroku 5 u balíčků.

Balíčky služby GIF a push proxy

Služba GIF a push proxy mají vlastní vydání, se stejnými pravidly jako server: archív .tar.gz, balíčky .deb a .rpm pro amd64 a arm64 a soubor SHA256SUMS. Verze s pomlčkou jsou předverze. Stáhnutí ověřte pomocí sha256sum --check --ignore-missing SHA256SUMS, stejně jako u serveru.

Služba GIF (gifs-server)

Vydání: github.com/AntimatterChat/gifs-server/releases. Archív se jmenuje gifs-server-<version>-linux-<arch>.tar.gz; balíčky nesou název gifs-server.

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

Balíček nainstaluje:

  • /usr/bin/gifs-server a službu gifs-server, která běží jako uživatel gifs-server a uchovává svůj katalog v /var/lib/gifs-server;
  • službu gifs-server-stickers, která při spuštění importuje nebo aktualizuje sadu samolepek v /usr/share/gifs-server/stickers a poté se zastaví;
  • její nastavení, /etc/gifs-server/gifs-server.env (proměnné AM_GIFS_, zachovávané při aktualizacích) a /etc/gifs-server/api-keys, jeden API klíč na řádek, s náhodně vygenerovaným klíčem při prvním instalaci.

Poslouchá na 127.0.0.1:8080, takže k ní má přístup pouze Antimatter na stejném serveru. Pokud Antimatter běží jinde, nastavte v gifs-server.env proměnnou AM_GIFS_LISTEN=:8080 a přístup k portu omezte pomocí firewallu. Soubor obsahuje i další nastavení: AM_GIFS_UPLOAD_KEYS (klíče oprávněné přidávat GIFy a samolepky a mazat ty, které byly přidány s jejich pomocí), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY a AM_GIFS_LOG_LEVEL. Balíček doporučuje ffmpeg, gifsicle, librsvg2-bin (pro .rpm librsvg2-tools) a font DejaVu: služba je používá k vytvoření formátů GIF, videa a samolepek při importu nebo přijetí souborů a funguje i bez nich.

Stejně jako u serveru je služba při instalaci povolena, ale nespouštěna. Spusťte ji podle kroku 5 u balíčků. Po aktualizaci ji restartujte: sudo systemctl restart gifs-server. Odstranění balíčku ponechá katalog v /var/lib/gifs-server.

Push proxy

Vydání: github.com/AntimatterChat/push-proxy/releases. Archív má název antimatter-push-proxy-<version>-linux-<arch>.tar.gz; balíčky se jmenují antimatter-push-proxy. Balíček nainstaluje /usr/bin/antimatter-push-proxy a službu antimatter-push-proxy, která běží jako uživatel antimatter-push-proxy a čte /etc/antimatter-push-proxy/antimatter-push-proxy.json (soubor se při aktualizacích zachovává). Apple a Firebase přihlašovací údaje se umísťují do /etc/antimatter-push-proxy/certs: Push notifications vysvětluje, odkud je získat.

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

V souboru s nastavením jsou cesty relativní vůči /etc/antimatter-push-proxy: například "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" a "ServiceFileLocation": "./certs/firebase-service-account.json". Poté nastavte Server push oznámení v Antimatter na http://<proxy host>:8066. Po aktualizaci službu restartujte: sudo systemctl restart antimatter-push-proxy.

Push proxy naslouchá na portu 8066 na všech adresách a nekontroluje, kdo se k ní připojuje. Nechte port v privátní síti, nebo ho umístěte za reverzní proxy, která přístup omezuje.

Další příkazy serveru

Kromě spuštění serveru (antimatter, nebo antimatter server) binární soubor obsahuje několik údržbářských příkazů. Čtou stejnou konfiguraci jako server.

PříkazCo dělá
antimatter versionVypíše verzi, číslo sestavení, datum sestavení a hash sestavení.
antimatter db pingZkontroluje, zda je databáze dostupná.
antimatter db initVytvoří konfiguraci v databázi (s proměnnou AM_CONFIG nastavenou na URL postgres://).
antimatter db migrateAplikuje migrace databáze bez spuštění serveru.
antimatter db versionVypíše poslední aplikovanou migraci databáze.
antimatter import bulk, antimatter export bulkImportuje nebo exportuje data ve hromadném formátu (viz Zálohy a aktualizace).