Instalarea Antimatter

Instalează Antimatter cu fișierul de compoziție pregătit, din pachetul .deb sau .rpm al unei versiuni sau dintr-un arhivă de versiune. Apoi creează contul de administrator principal.

Instalare cu Docker Compose

Aceasta este metoda recomandată. Un singur fișier de compoziție rulează Antimatter, PostgreSQL, stocarea fișierelor și serviciul GIF. Ai nevoie de un server Linux cu Docker Engine și plugin-ul Compose (docker compose), 2 nuclee CPU și 4 GB de memorie sau mai mult.

1. Descarcă fișierul de compoziție

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

2. Creează fișierul .env

Fișierul de compoziție citește setările dintr-un fișier .env din același director. Creează-l cu secrete aleatorii:

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

Setează SITE_URL la adresa pe care utilizatorii o vor tasta în browser, de exemplu http://192.168.1.20:8065 pe o rețea locală sau https://chat.example.com cu un domeniu. Păstrează fișierul .env: baza de date și stocarea folosesc parolele din acest fișier de la prima pornire, cheile API pentru conexiunile cu modelele de IA sunt criptate cu AM_AI_ENCRYPTION_KEY, iar același fișier este necesar pentru a restaura o copie de rezervă.

3. Pornește-l

docker compose up -d
docker compose ps

Prima pornire durează un minut sau doi: PostgreSQL creează baza de date, un serviciu unic bucket creează coșul de stocare, un serviciu unic gifs-stickers importă pachetul de stickere de start, iar Antimatter creează tabelele sale. Urmărește procesul cu docker compose logs -f antimatter.

Pentru a utiliza un nume de domeniu și HTTPS de la început, vezi Domeniu și HTTPS: cu fișierul de compoziție, este vorba de încă două linii în .env și profilul https.

Variabilele .env

VariabilăImplicitCe face
SITE_URLobligatoriuAdresa publică a Antimatter (ServiceSettings.SiteURL).
POSTGRES_PASSWORDobligatoriuParola utilizatorului de bază de date antimatter.
S3_SECRET_KEYobligatoriuCheia secretă a stocării fișierelor.
GIFS_API_KEYobligatoriuCheia pe care Antimatter o folosește pentru a chema serviciul GIF.
AM_AI_ENCRYPTION_KEYgolCheia care criptează cheile API pentru conexiunile cu modelele de IA (openssl rand -base64 32). Dacă este goală, serverul creează un fișier de chei în volumul data. Vezi Cheia de criptare.
GIFS_UPLOAD_KEYgolPermite utilizatorilor să adauge propriile GIF-uri și stickere din selector și să le ștergă. Dacă este gol, încarcarea este dezactivată.
DOMAINgolNumele de domeniu, pentru profilul https.
HTTP_PORT8065Portul gazdă al serverului web al Antimatter.
CALLS_PORT8443Portul UDP și TCP pentru audio și video în apeluri.
EDGE_SUBNET172.29.71.0/28Subrețeaua rețelei dintre Caddy și Antimatter. Modific-o dacă se suprapune cu una dintre rețelele tale.
TZUTCFusa orar al containerelor.
ANTIMATTER_IMAGEghcr.io/antimatterchat/antimatter-next:latestImaginea Antimatter care va fi rulat (vezi mai jos).

Ce rulează

ServiciuImagineRol
antimatterghcr.io/antimatterchat/antimatter-nextServerul, aplicația web și aplicațiile incluse. Publică HTTP_PORT și CALLS_PORT. Directorul de date este volumul data.
postgrespostgres:17-alpineBaza de date, în volumul postgres.
filesrustfs/rustfsStocare compatibilă S3 pentru fișierele încărcate și aplicațiile instalate, în volumul files.
bucketamazon/aws-cliCreează coșul antimatter, apoi se oprește.
gifsghcr.io/antimatterchat/gifs-serverServiciul de GIF-uri și stickere, în volumul gifs.
gifs-stickersghcr.io/antimatterchat/gifs-serverImportă pachetul de stickere inițial prima dată, apoi se oprește.
httpscaddy:2-alpineDoar cu profilul https: HTTPS pe porturile 80 și 443.

PostgreSQL, stocarea și serviciul de GIF-uri se află pe un rețea internă (private) fără acces la Internet, la care se conectează doar Antimatter. Niciunul dintre ele nu publică un port.

Containerul Antimatter nu păstrează nimic pe disc: setările sunt în baza de date (AM_CONFIG indică spre ea), iar fișierele și aplicațiile sunt în serviciul de stocare. Poți șterge și recrea containerul oricând. Volumul său data conține doar fișierul cu cheia de criptare pentru IA, pe care serverul îl creează când AM_AI_ENCRYPTION_KEY este gol. Tot ce trebuie să copiezi de rezervă se află în volumele postgres, files, gifs și data, plus fișierul tău .env.

Alege o imagine

Sunt publicate două imagini Antimatter, ambele pentru linux/amd64 și linux/arm64, și ambele construite din ramura main a fiecărui depozit:

ImagineAplicații incluseEtichete
ghcr.io/antimatterchat/antimatterAgenți, Apeluri, GitHub, GitLab, Jira, Kanban, Metrici și Manuale de proceduri.latest, X.Y.Z pentru versiuni, sha-<commit>
ghcr.io/antimatterchat/antimatter-nextAceleași, plus Canale vocale, Sondaje, Poștă, Calendar, Note, Tablă albă, GIF-uri, De făcut și Memes. Reconstruită în fiecare noapte.latest, nightly, nightly-<YYYYMMDD>, sha-<commit>

Fișierul de compunere al site-ului folosește antimatter-next, deoarece serviciul de GIF-uri și majoritatea aplicațiilor descrise pe acest site sunt disponibile doar în acea imagine. Pentru a schimba imaginea, setează ANTIMATTER_IMAGE în .env și rulează docker compose up -d.

latest se schimbă sub tine. În producție, fixează o etichetă, cum ar fi nightly-20261015 sau sha-<commit>, și schimb-o intenționat când faci o actualizare. Serverul își actualizează baza de date la pornire, deci nu poți reveni la o imagine mai veche, sau de la antimatter-next la antimatter, fără a restaura o copie de rezervă făcută anterior. Vezi Copii de rezervă și actualizări.

În interiorul imaginii

  • Serverul se află în /antimatter, cu binarele antimatter și amctl în /antimatter/bin (pe PATH).
  • Rulează ca utilizator neprivilegiat antimatter (uid 2000) pe o bază minimală distroless, fără shell.
  • Porturi: 8065 (web și API), 8067 (metrici), 8074 (cluster), 8443 UDP și TCP (apeluri).
  • Modul local (ServiceSettings.EnableLocalMode) este activat, astfel încât amctl --local funcționează în interiorul containerului. Verificarea stării de sănătate rulează amctl system status --local.
  • Aplicațiile incluse se află în /antimatter/prepackaged_plugins și sunt semnate cu cheia de semnare a aplicațiilor Antimatter.
  • Sunt incluse instrumente de extragere a textului (pdftotext, wvText, unrtf, tidy), astfel încât conținutul documentelor încărcate să poată fi căutat.

Alte fișiere compose

Depozitul antimatter-docker conține o configurație de producție în deploy/compose/: nginx cu certificate proprii sau Let's Encrypt (certbot), PostgreSQL, serviciul opțional GIF (profil gifs) și volume numite pentru configurația, datele și jurnalele serverului, documentate în README-ul acestuia. Folosește imaginea stabilă implicit și stochează fișierele pe un volum local în loc de stocare S3. Folosiți-l dacă preferați nginx în locul Caddy sau dacă aveți deja certificate.

Creați primul administrator

Deschideți SITE_URL în browser și creați un cont. Primul cont creat pe un server nou devine administratorul de sistem, iar apoi configurarea vă ghidează prin crearea primei comunități (denumirea Antimatter pentru o echipă sau un spațiu de lucru).

Faceți acest lucru imediat după prima pornire: până atunci, oricine ajunge primul pe server devine administratorul acestuia. Pentru a crea contul din linia de comandă, în loc, înainte ca serverul să fie accesibil din exterior:

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

Apoi autentificați-vă la SITE_URL. Începeți comanda cu un spațiu pentru a păstra parola în afara istoricului shell (cu HISTCONTROL=ignorespace), sau schimbați parola după autentificare.

Pașii următori, odată ce sunteți în interior:

  1. Pentru o companie sau o organizație, setează Tipul comunităților noi la Mediu de lucru și modifică tipul unei comunități deja create în setările acesteia: Mediu de lucru sau comunitate.
  2. Decideți cine poate crea conturi: Autentificare și conturi.
  3. Configurați e-mailul, astfel încât invitațiile și resetarea parolei să funcționeze: E-mail și notificări push.
  4. Deschideți portul apelurilor în firewall: Apeluri și voce.
  5. Verificați ce aplicații sunt activate: Aplicații incluse.

Descarcă o versiune

Fără Docker, instalează Antimatter din fișierele unei versiuni de pe GitHub: github.com/AntimatterChat/antimatter/releases. Fiecare versiune are un număr de versiune, de exemplu 0.9.0, iar eticheta sa este același număr cu un v în față (v0.9.0).

Antimatter este în versiune beta: versiunile sale fac parte din seria 0.9.0. O versiune ale cărei numere de versiune au un sufix după un cratimă, de exemplu 0.9.0-rc.1, este marcată cu Pre-release pe GitHub. Este o versiune de test, publicată înainte de versiunea finală.

Fiecare versiune conține aceste fișiere, pentru servere amd64 și arm64:

FișierCe este
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.debPachetul pentru Debian, Ubuntu și distribuțiile bazate pe acestea.
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpmPachetul pentru Fedora, RHEL și distribuțiile compatibile cu RHEL.
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gzArhiva de versiune, pentru orice distribuție Linux, configurată manual.
SHA256SUMSSuma de control SHA-256 a fiecărui fișier din versiune.

Pachetele și arhiva conțin același program: serverul (antimatter), instrumentul de linie de comandă (amctl), ambele aplicații web (interfața implicită și cea clasică), aplicațiile incluse, șabloanele de e-mail și traducerile. Pachetele adaugă un serviciu systemd și un fișier de setări, astfel încât fiecare este o instalare completă: trebuie doar să adăugați o bază de date PostgreSQL. Nu există descărcări separate de binare: binarele se află în arhivă, în antimatter/bin/. Ele sunt statice, deci rulează pe orice distribuție Linux de arhitectura respectivă.

Înumele pachetelor, cratima dintr-o versiune de pre-lansare devine tilde, astfel încât managerul de pachete să sorteze versiunea de pre-lansare înainte de versiunea finală: versiunea 0.9.0-rc.1 dă antimatter_0.9.0~rc.1-1_amd64.deb și antimatter-0.9.0~rc.1-1.x86_64.rpm. Arhiva păstrează cratima.

antimatter version afișează versiunea de lansare ca Versiunea, cu commit-ul de la care a fost construită ca Construcția Hash. Linia sa Versiune este versiunea liniei Mattermost pe care se bazează Antimatter.

Verifică descărcarea

Descărcați fișierul de care aveți nevoie și SHA256SUMS în același director, de pe pagina de versiune sau cu curl, apoi verificați fișierul:

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

Fiecare fișier descărcat trebuie să fie listat cu OK. Orice alt rezultat înseamnă că fișierul este deteriorat sau incomplet: descărcați-l din nou și nu-l instalați. SHA256SUMS nu este semnat: detectează o descărcare deteriorată, dar nu dovedește nimic mai mult decât descărcarea HTTPS de pe GitHub.

Instalează pachetul .deb sau .rpm

Pachetul instalează Antimatter ca un serviciu systemd, care are nevoie doar de o bază de date pentru a porni. Folosiți-l pe un server 64-bit Debian, Ubuntu, Fedora sau compatibil cu RHEL, cu systemd.

Ce instalează pachetul

CaleCe conține
/opt/antimatterProgramul: bin/antimatter, bin/amctl, aplicațiile web (client/, client-fusion/), aplicațiile incluse (prepackaged_plugins/), șabloanele, traducerile și fonturile. Fiecare actualizare îl înlocuiește.
/etc/antimatter/antimatter.envSetările serviciului, sub formă de variabile AM_: baza de date, URL-ul site-ului, serviciul GIF. Citibil doar de root. Actualizările îl păstrează.
/etc/antimatter/config/config.jsonFișierul de configurare, în care serverul salvează setările modificate în Consola de sistem. Este creat din /opt/antimatter/defaults/config.json la prima instalare și nu este niciodată înlocuit ulterior.
/var/lib/antimatterFișierele încărcate (data/) și aplicațiile instalate (plugins/, client-plugins/).
/var/log/antimatterFișierele de jurnal, dacă activați jurnalizarea în fișiere. Este dezactivată: jurnalele se scriu în journal.
/usr/lib/systemd/system/antimatter.serviceServiciul.
/usr/bin/amctlUn link către /opt/antimatter/bin/amctl.

Directorii în care serverul scrie în /opt/antimatter (config, data, plugins, client/plugins și logs) sunt linkuri către /etc/antimatter, /var/lib/antimatter și /var/log/antimatter. Astfel, o actualizare, care înlocuiește /opt/antimatter, nu atinge niciodată datele dumneavoastră. Pachetul creează și utilizatorul de sistem antimatter, care rulează serverul și deține acești directori.

Pachetul depinde de ca-certificates. Recomandă PostgreSQL (postgresql pe Debian și Ubuntu, postgresql-server pe Fedora și RHEL), media-types (mailcap pentru .rpm) și gifs-server, serviciul GIF, care are propria sa versiune (a se vedea mai jos). apt și dnf instalează pachetele recomandate când le găsesc. Sugerează poppler-utils, wv, unrtf și tidy (fără wv pentru .rpm): ele extrag textul documentelor încărcate, astfel încât căutarea să găsească cuvinte în interiorul lor. Instalați-le dumneavoastră dacă doriți acest lucru.

1. Instalați pachetele

Descărcați pachetul Antimatter și pachetul serviciului GIF pentru arhitectura dumneavoastră, verificați-le așa cum se arată mai sus și instalați-le ambele într-o singură comandă, astfel încât recomandarea pentru gifs-server să fie îndeplinită (nu se află în depozitele distribuțiilor):

# 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

Păstrați ./: acesta indică apt și dnf să instaleze un fișier local. Pentru a instala fără serviciul GIF, lăsați pachetul respectiv exclus. Pachetul activează serviciul antimatter, dar nu îl pornește, și afișează pașii următori.

2. Creați baza de date

Antimatter are nevoie de PostgreSQL 15 sau o versiune mai nouă, fie pe acest server, fie pe altul. Verificați versiunea PostgreSQL a distribuției dumneavoastră cu psql --version. Dacă este mai veche, instalați o versiune mai nouă din depozitele oficiale ale proiectului PostgreSQL sau folosiți o bază de date de pe un alt server. Pe Debian și Ubuntu, pachetul postgresql pornește baza de date. Pe Fedora și RHEL, creați-o și porniți-o mai întâi:

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

Apoi creați un utilizator și o bază de date pentru 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 trebuie să accepte conexiuni cu parolă de la 127.0.0.1: liniile host din fișierul pg_hba.conf, cu metoda scram-sha-256.

3. Configurați baza de date și URL-ul site-ului

Editați /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Eliminați # de la începutul liniilor pe care le utilizați și configurați baza de date și adresa pe care utilizatorii o vor deschide:

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

Orice setare din configurație poate fi plasată în acest fișier, sub forma AM_<SECTION>_<SETTING>: de exemplu, SqlSettings.DataSource devine AM_SQLSETTINGS_DATASOURCE. O setare configurată aici nu poate fi modificată în Consola de sistem. Consultați Configurația. Reporniți serverul după fiecare modificare: sudo systemctl restart antimatter.

Serviciul stabilește și câteva valori implicite, care pot fi suprascrise de o linie din antimatter.env: jurnalizarea în fișiere este dezactivată (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), iar modul local este activat (AM_SERVICESETTINGS_ENABLELOCALMODE=true), astfel încât amctl --local să funcționeze pe server.

4. Porniți-l

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

La prima pornire, serverul creează tabelele, apoi ascultă pe portul 8065. Deschideți http://<server>:8065, sau domeniul dumneavoastră, odată ce un proxy invers este configurat (a se vedea Domeniu și HTTPS), și creați imediat primul cont: acesta devine administratorul de sistem. Pentru a-l crea din linia de comandă, utilizați comenzi amctl din secțiunea Crearea primului administrator, înlocuind docker compose exec antimatter amctl --local cu sudo -u antimatter amctl --local.

5. Activați GIF-urile

Aplicația GIF este inclusă și activată, iar antimatter.env o indică deja către serviciul GIF de pe același server (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Totuși, este necesară cheia API a serviciului. Pachetul gifs-server a generat una la instalare:

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

Introduceți cheia în antimatter.env ca AM_GIFS_API_KEY=<key> și reporniți Antimatter, sau introduceți-o ca Cheie API în Consola de sistem › Plugin-uri › GIF. Dacă serviciul de GIF-uri rulează pe un alt server, configurați AM_GIFS_SERVICE_URL cu adresa acestuia. Pentru a permite utilizatorilor să adauge propriile GIF-uri și stickere, consultați GIF-uri.

Serviciul

  • Rulează ca utilizatorul antimatter, în /opt/antimatter, și citește /etc/antimatter/antimatter.env. systemd repornește serverul de fiecare dată când acesta se oprește și îi acordă până la o oră pentru pornire, deoarece migrările bazei de date ale unei versiuni noi pot dura mult.
  • Jurnalul său se găsește în journal: journalctl -u antimatter.
  • Este întărit: /usr și /etc sunt doar pentru citire pentru server, cu excepția /etc/antimatter/config, și nu poate vedea /home, /root sau /run/user. Dacă mutați stocarea fișierelor (FileSettings.Directory), alegeți un director din afara acestora, deținut de antimatter.
  • Actualizările înlocuiesc fișierul de serviciu. Pentru a-l modifica, utilizați sudo systemctl edit antimatter, care păstrează modificările într-un fișier separat.

Actualizarea unui pachet

  1. Faceți o copie de rezervă (a se vedea Copii de rezervă și actualizări).
  2. Descărcați noul pachet și SHA256SUMS, și verificați-le.
  3. Opiți serverul, instalați noul pachet peste cel vechi și porniți-l din nou:
    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

Pachetul nu repornește singur serverul. După o actualizare, afișează Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: dacă nu ați oprit serverul mai întâi, reporniți-l imediat. Actualizarea înlocuiește /opt/antimatter și fișierul de serviciu, și păstrează antimatter.env, config.json, /var/lib/antimatter și jurnalele. La pornire, serverul actualizează baza de date și instalează versiunile mai noi ale aplicațiilor incluse.

Dacă o versiune nouă modifică antimatter.env implicit, apt întreabă dacă doriți să păstrați versiunea dumneavoastră: păstrați-o. dnf păstrează versiunea dumneavoastră și salvează cea nouă ca /etc/antimatter/antimatter.env.rpmnew. Actualizările se fac doar în avans: nu instalați o versiune mai veche peste una mai nouă.

Eliminarea unui pachet

sudo apt remove antimatter sau sudo dnf remove antimatter oprește și dezactivează serviciul și elimină programul. Păstrează datele (/var/lib/antimatter), configurația (/etc/antimatter), baza de date și utilizatorul antimatter: eliminați-le manual pentru a șterge complet Antimatter.

Aplicațiile din pachete și arhivă

Pachetele și arhiva includ cea mai recentă versiune semnată a acestor aplicații, în prepackaged_plugins/: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels și Whiteboard. O aplicație care nu avea încă o versiune publicată la momentul creării versiunii serverului este omisă: ls /opt/antimatter/prepackaged_plugins arată ce include versiunea dumneavoastră. Memes și Todo sunt incluse, dar nu activate: Aplicațiile incluse explică cum să le instalați și le activați.

Celelalte aplicații din imaginile Docker nu se află în pachete sau în arhivă: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira și Metrics. Instalați fiecare din versiunile sale proprii:

AplicațieVersiuniID aplicație
Kanbanantimatter-plugin-boardsfocalboard
Manuale de proceduriantimatter-plugin-playbooksplaybooks
E-mailantimatter-plugin-mailcom.antimatterchat.mail
Calendarantimatter-plugin-calendarcom.antimatterchat.calendar
GitHubantimatter-plugin-githubgithub
GitLabantimatter-plugin-gitlabcom.github.manland.mattermost-plugin-gitlab
Jiraantimatter-plugin-jirajira
MetriceAntimatter-plugin-metricscom.mattermost.mattermost-plugin-metrics

Fiecare versiune de aplicație include pachetul aplicației (un fișier .tar.gz), semnătura sa (același nume cu .sig adăugat) și un fișier SHA256SUMS. Pentru a instala o aplicație, permiteți încărcările, apoi adăugați pachetul cu 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

Pentru a actualiza o aplicație instalată în acest mod, adăugați noul pachet cu plugin add --force: actualizările de pachet actualizează doar aplicațiile incluse. Puteți elimina din nou linia AM_PLUGINSETTINGS_ENABLEUPLOADS ulterior. Consultați Instalarea altor aplicații pentru celelalte moduri de instalare a aplicațiilor.

Semnăturile aplicațiilor

Pachetele de aplicații sunt semnate cu cheia de semnare a aplicațiilor Antimatter: fiecare fișier .tar.gz.sig este o semnătură GPG separată a pachetului său. Serverul verifică aceste semnături înainte de a instala o aplicație inclusă. Pentru a verifica un pachet singur:

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 trebuie să raporteze o semnătură validă de la Antimatter Plugin Signing, cu amprenta 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. De asemenea, avertizează că cheia nu este certificată cu o semnătură de încredere: acest lucru este normal pentru o cheie pe care nu ați semnat-o singur. O versiune de aplicație fără fișiere .sig este nesemnată, iar notele de versiune menționează acest lucru.

Instalare dintr-o arhivă de versiune

Arhiva, antimatter-<version>-linux-<arch>.tar.gz (de exemplu antimatter-0.9.0-linux-amd64.tar.gz), este potrivită pentru o distribuție fără pachete .deb sau .rpm, sau pentru o structură personalizată. Conține un singur director antimatter/ cu bin/antimatter, bin/amctl, config/config.json, aplicațiile web (client/ și client-fusion/), aplicațiile incluse (prepackaged_plugins/, consultați mai sus), șabloanele de e-mail și traducerile.

1. Pregătiți PostgreSQL

Antimatter acceptă doar PostgreSQL, versiunea 15 sau mai nouă (versiunile mai vechi se pornesc, dar cu o eroare în jurnal). Creați un utilizator și o bază de date:

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

2. Extrageți și configurați

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

Indicați serverului baza de date, fie în /opt/antimatter/config/config.json (SqlSettings.DataSource), fie cu variabile de mediu, și configurați URL-ul site-ului:

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

Fișierul config.json din arhivă este o configurație implicită completă: modificările făcute în Consola de sistem sunt salvate înapoi în acest fișier. Pentru a păstra configurația în baza de date, consultați Configurația.

3. Rulați-l ca serviciu

O unitate systemd, în /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

Puneți variabilele AM_ în /etc/antimatter.env (citibil doar de root), apoi:

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

Serverul ascultă pe portul 8065. Deschideți http://<server>:8065, sau domeniul dumneavoastră, odată ce un proxy invers este configurat (a se vedea Domeniul și HTTPS), și creați primul cont: acesta devine administratorul de sistem.

bin/amctl gestionează serverul în funcțiune din linia de comandă. Pe serverul propriu-zis, funcționează fără autentificare, prin modul local: configurați AM_SERVICESETTINGS_ENABLELOCALMODE=true, apoi rulați sudo -u antimatter /opt/antimatter/bin/amctl --local system status.

Pentru GIF-uri, instalați serviciul GIF (consultați mai jos) și configurați AM_GIFS_SERVICE_URL și AM_GIFS_API_KEY conform pasului 5 al pachetelor.

Pachetele pentru serviciul GIF și proxy-ul de notificări push

Serviciul GIF și proxied push au propriile lor versiuni de lansare, cu aceleași reguli ca și serverul: un arhivă .tar.gz, un pachet .deb și un pachet .rpm pentru amd64 și arm64, și un fișier SHA256SUMS. Versiunile cu cratimă sunt pre-lansări. Verificați descărcările cu sha256sum --check --ignore-missing SHA256SUMS, la fel ca pentru server.

Serviciul GIF (gifs-server)

Lansări: github.com/AntimatterChat/gifs-server/releases. Arhiva este gifs-server-<version>-linux-<arch>.tar.gz; pachetele se numesc gifs-server.

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

Pachetul instalează:

  • /usr/bin/gifs-server, și serviciul gifs-server, care rulează ca utilizatorul gifs-server și își păstrează catalogul în /var/lib/gifs-server;
  • serviciul gifs-server-stickers, care importă sau actualizează pachetul de stickere din /usr/share/gifs-server/stickers la pornire, apoi se oprește;
  • setările sale, /etc/gifs-server/gifs-server.env (variabile AM_GIFS_, păstrate la actualizări) și /etc/gifs-server/api-keys, o cheie API pe linie, cu o cheie aleatorie generată la prima instalare.

Ascultă pe 127.0.0.1:8080, astfel încât doar Antimatter de pe același server poate accesa. Dacă Antimatter rulează în alt loc, configurați AM_GIFS_LISTEN=:8080 în gifs-server.env și restricționați accesul la port cu firewall-ul. Fișierul listează și alte setări: AM_GIFS_UPLOAD_KEYS (cheile permise să adauge GIF-uri și stickere, și să ștergă cele adăugate cu ele), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY și AM_GIFS_LOG_LEVEL. Pachetul recomandă ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools pentru .rpm) și o font DejaVu: serviciul le folosește pentru a crea formatele GIF, video și stickere la import sau primirea fișierelor, și rulează fără ele.

Ca și serverul, serviciul este activat, dar nu pornit la instalare. Porniți-l așa cum este arătat în pasul 5 al pachetelor. După o actualizare, reporniți-l: sudo systemctl restart gifs-server. Ștergerea pachetului păstrează catalogul în /var/lib/gifs-server.

Proxied push

Versiuni: github.com/AntimatterChat/push-proxy/releases. Arhiva este antimatter-push-proxy-<version>-linux-<arch>.tar.gz; pachetele se numesc antimatter-push-proxy. Pachetul instalează /usr/bin/antimatter-push-proxy și serviciul antimatter-push-proxy, care rulează ca utilizatorul antimatter-push-proxy și citește /etc/antimatter-push-proxy/antimatter-push-proxy.json (păstrat la actualizări). Credentialele Apple și Firebase se plasează în /etc/antimatter-push-proxy/certs: Notificări push explică de unde provin.

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

În fișierul de setări, căile sunt relative la /etc/antimatter-push-proxy: de exemplu "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" și "ServiceFileLocation": "./certs/firebase-service-account.json". Apoi setați Server Push de notificare în Antimatter la http://<proxy host>:8066. După o actualizare, reporniți-l: sudo systemctl restart antimatter-push-proxy.

Proxypush ascultă pe portul 8066 pe toate adresele și nu verifică cine îl apelează. Păstrați portul într-o rețea privată, sau în spatele unui proxy invers care restricționează accesul.

Alte comenzi de server

Pe lângă rulare serverul (antimatter, sau antimatter server), binarul are câteva comenzi de întreținere. Acestea citesc aceeași configurație ca serverul.

ComandăCe face
antimatter versionAfișează versiunea, numărul de construcție, data de construcție și hash-ul de construcție.
antimatter db pingVerifică dacă baza de date este accesibilă.
antimatter db initCreează configurația în baza de date (cu AM_CONFIG setat la un URL postgres://).
antimatter db migrateAplică migrările bazei de date fără a porni serverul.
antimatter db versionAfișează ultima migrare aplicată bazei de date.
antimatter import bulk, antimatter export bulkImportă sau exportă date în format de masă (a se vedea Copia de rezervă și actualizările).