Instal·lació d'Antimatter

Instal·la Antimatter amb el fitxer de compose preparat, des del paquet .deb o .rpm d'una versió, o des d'un arxiu de llançament. Després, crea el primer compte d'administrador.

Instal·lació amb Docker Compose

Aquesta és la manera recomanada. Un sol fitxer compose executa Antimatter, PostgreSQL, l'emmagatzematge de fitxers i el servei de GIF. Necessites un servidor Linux amb Docker Engine i el seu plugin Compose (docker compose), 2 nuclis de CPU i 4 GB de memòria o més.

1. Descarrega el fitxer compose

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

2. Crea el fitxer .env

El fitxer compose llegeix la seva configuració d'un fitxer .env al mateix directori. Crea'l amb secrets aleatoris:

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

Defineix SITE_URL amb l'adreça que les persones escriuran al navegador, per exemple http://192.168.1.20:8065 en una xarxa local o https://chat.example.com amb un domini. Conserva el fitxer .env: la base de dades i l'emmagatzematge utilitzen aquestes contrasenyes des del primer inici, les claus de les connexions amb models d'IA s'encripten amb AM_AI_ENCRYPTION_KEY, i necessites el mateix fitxer per restaurar una còpia de seguretat.

3. Inicia'l

docker compose up -d
docker compose ps

El primer inici triga un o dos minuts: PostgreSQL crea la base de dades, un servei d'execució única bucket crea el contenidor d'emmagatzematge, un servei d'execució única gifs-stickers importa el paquet d'etiquetes inicial i Antimatter crea les seves taules. Segueix-ho amb docker compose logs -f antimatter.

Per utilitzar un nom de domini i HTTPS des del principi, consulta Domini i HTTPS: amb el fitxer compose, són dues línies més al .env i el perfil https.

Les variables del .env

VariableValor per defecteQuè fa
SITE_URLobligatoriL'adreça pública d'Antimatter (ServiceSettings.SiteURL).
POSTGRES_PASSWORDobligatoriLa contrasenya de l'usuari de la base de dades antimatter.
S3_SECRET_KEYobligatoriLa clau secreta de l'emmagatzematge de fitxers.
GIFS_API_KEYobligatoriLa clau que Antimatter utilitza per cridar el servei de GIF.
AM_AI_ENCRYPTION_KEYbuitLa clau que encripta les claus de les connexions amb models d'IA (openssl rand -base64 32). Si està buida: el servidor crea un fitxer de clau al volum data. Consulta La clau d'encriptació.
GIFS_UPLOAD_KEYbuitPermet que les persones afegeixin els seus propis GIF i adhesius des del selector, i que els eliminin. Si està buit, es desactiva la càrrega d'arxius.
DOMAINbuitEl teu nom de domini, per al perfil https.
HTTP_PORT8065El port de l'host del servidor web d'Antimatter.
CALLS_PORT8443El port UDP i TCP de l'àudio i el vídeo de les trucades.
EDGE_SUBNET172.29.71.0/28La subxarxa de la xarxa entre Caddy i Antimatter. Canvia-la si solapa una de les teves xarxes.
TZUTCLa zona horària dels contenidors.
ANTIMATTER_IMAGEghcr.io/antimatterchat/antimatter-next:latestLa imatge d'Antimatter a executar (vegeu a continuació).

Què s'executa

ServeiImatgeRol
antimatterghcr.io/antimatterchat/antimatter-nextEl servidor, l'aplicació web i les aplicacions integrades. Publica els ports HTTP_PORT i CALLS_PORT. El seu directori de dades és el volum data.
postgrespostgres:17-alpineLa base de dades, al volum postgres.
filesrustfs/rustfsEmmagatzematge compatible amb S3 per als fitxers penjats i les aplicacions instal·lades, al volum files.
bucketamazon/aws-cliCrea el cubell antimatter i després surt.
gifsghcr.io/antimatterchat/gifs-serverEl servei de GIF i pegatines, al volum gifs.
gifs-stickersghcr.io/antimatterchat/gifs-serverImporta el paquet de pegatines inicial la primera vegada i després surt.
httpscaddy:2-alpineNomés amb el perfil https: HTTPS als ports 80 i 443.

PostgreSQL, l'emmagatzematge i el servei de GIF estan en una xarxa interna (private) sense accés a Internet, a la qual només s'uneix Antimatter. Cap d'ells publica un port.

El contenidor d'Antimatter no guarda res al disc: la seva configuració és a la base de dades (AM_CONFIG hi apunta) i els seus fitxers i aplicacions són al servei d'emmagatzematge. Pots eliminar i recrear el contenidor en qualsevol moment. El seu volum data només conté el fitxer de la clau d'encriptació de la IA, que el servidor crea quan AM_AI_ENCRYPTION_KEY està buit. Tot el que cal fer còpia de seguretat és als volums postgres, files, gifs i data, a més del teu fitxer .env.

Tria una imatge

Es publiquen dues imatges d'Antimatter, totes dues per a linux/amd64 i linux/arm64, i totes dues construïdes a partir de la branca main de cada repositori:

ImatgeAplicacions integradesEtiquetes
ghcr.io/antimatterchat/antimatterXat amb IA, Trucades, GitHub, GitLab, Jira i Mètriques.latest, X.Y.Z per a les versions, sha-<commit>
ghcr.io/antimatterchat/antimatter-nextEl mateix, més Canals de veu, Enquestes, Correu, Calendari, Notes, Pissarra, GIF, Tasques pendents i Memes. Es reconstrueix cada nit.latest, nightly, nightly-<YYYYMMDD>, sha-<commit>

Cap imatge inclou Kanban ni Guies d'actuació: instal·la-les des de la seva pròpia versió a GitHub (consulta més avall) si les vols. Un servidor que ja en tingui una instal·lada la mantindrà després d'una actualització.

El fitxer compose del lloc utilitza antimatter-next, perquè el servei de GIF i la majoria de les aplicacions descrites en aquest lloc només hi són en aquesta imatge. Per canviar la imatge, defineix ANTIMATTER_IMAGE a .env i executa docker compose up -d.

latest canvia sota els teus peus. En producció, fixa una etiqueta com ara nightly-20261015 o sha-<commit>, i canvia-la deliberadament quan actualitzis. El servidor actualitza la seva base de dades quan s'inicia, de manera que no pots tornar a una imatge anterior, ni passar d'antimatter-next a antimatter, sense restaurar una còpia de seguretat feta abans. Consulta Còpies de seguretat i actualitzacions.

Dins de la imatge

  • El servidor es troba a /antimatter, amb els binaris antimatter i amctl a /antimatter/bin (al PATH).
  • S'executa com a usuari no privilegiat antimatter (uid 2000) sobre una base distroless mínima, sense shell.
  • Ports: 8065 (web i API), 8067 (mètriques), 8074 (clúster), 8443 UDP i TCP (trucades).
  • El mode local (ServiceSettings.EnableLocalMode) està activat, de manera que amctl --local funciona dins del contenidor. La comprovació d'estat executa amctl system status --local.
  • Les aplicacions integrades es troben a /antimatter/prepackaged_plugins i estan signades amb la clau de signatura d'aplicacions d'Antimatter.
  • S'inclouen eines d'extracció de text (pdftotext, wvText, unrtf, tidy), de manera que es pot cercar el contingut dels documents penjats.

Altres fitxers compose

El repositori antimatter-docker conté una configuració de producció a deploy/compose/: nginx amb els vostres propis certificats o Let's Encrypt (certbot), PostgreSQL, el servei opcional de GIF (perfil gifs) i volums amb nom per a la configuració, les dades i els registres del servidor, documentats al seu README. Utilitza la imatge estable per defecte i emmagatzema els fitxers en un volum local en lloc d'emmagatzematge S3. Utilitzeu-lo si preferiu nginx a Caddy o si ja teniu certificats.

Crea el primer administrador

Obriu SITE_URL al navegador i creeu un compte. El primer compte creat en un servidor nou es converteix en administrador del sistema, i la configuració us guiarà a continuació per crear la primera comunitat (el nom que Antimatter dona a un equip o espai de treball).

Feu-ho just després del primer inici: fins que ho feu, qualsevol persona que arribi primer al servidor en serà l'administrador. Per crear el compte des de la línia d'ordres, abans que el servidor sigui accessible des de l'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

A continuació, inicieu la sessió a SITE_URL. Comenceu la comanda amb un espai per mantenir la contrasenya fora de l'historial de la shell (amb HISTCONTROL=ignorespace), o canvieu la contrasenya un cop hagiu iniciat la sessió.

Pròxims passos un cop hi sou:

  1. Per a una empresa o organització, defineix Tipus de les noves comunitats com a Espai de treball, i canvia el tipus d'una comunitat que ja hagis creat des de la seva configuració: Gremi o espai de treball.
  2. Decideu qui pot crear comptes: Inici de sessió i comptes.
  3. Configureu el correu electrònic perquè les invitacions i les restabliment de contrasenya funcionin: Correu electrònic i notificacions push.
  4. Obriu el port de les trucades al vostre tallafoc: Trucades i veu.
  5. Comproveu quines aplicacions estan activades: Aplicacions integrades.

Baixa una versió

Sense Docker, instal·la Antimatter des dels fitxers d'una versió a GitHub: github.com/AntimatterChat/antimatter/releases. Cada versió té un número de versió com ara 0.9.0, i la seva etiqueta és el mateix número amb una v al davant (v0.9.0).

Antimatter és en fase beta: les seves versions pertanyen a la sèrie 0.9.0. Una versió amb un sufix després d'un guió, com ara 0.9.0-rc.1, està marcada com a Pre-release a GitHub. És una versió de prova, publicada abans de la versió final.

Cada versió conté aquests fitxers, per a servidors amd64 i arm64:

FitxerDescripció
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.debEl paquet per a Debian, Ubuntu i les distribucions basades en elles.
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpmEl paquet per a Fedora, RHEL i les distribucions compatibles amb RHEL.
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gzL'arxiu de la versió, per a qualsevol distribució Linux, configurat manualment.
SHA256SUMSLa suma de verificació SHA-256 de tots els fitxers de la versió.

Els paquets i l'arxiu contenen el mateix programa: el servidor (antimatter), l'eina de línia d'ordres (amctl), les dues aplicacions web (la interfície predeterminada i la clàssica), les aplicacions integrades, les plantilles de correu electrònic i les traduccions. Els paquets afegeixen un servei systemd i un fitxer de configuració, de manera que cadascun és una instal·lació tot en un: només cal afegir una base de dades PostgreSQL. No hi ha descàrregues separades de binaris: els binaris són a l'arxiu, a antimatter/bin/. Són estàtics, així que funcionen a qualsevol distribució Linux de la seva arquitectura.

En els noms dels paquets, el guió d'una versió de prellançament es converteix en una tilde, perquè el gestor de paquets ordeni la prellançament abans de la versió final: la versió 0.9.0-rc.1 dona antimatter_0.9.0~rc.1-1_amd64.deb i antimatter-0.9.0~rc.1-1.x86_64.rpm. L'arxiu manté el guió.

antimatter version mostra la versió de la publicació com a Número de compilació, amb el commit des del qual es va compilar com a Hash de compilació. La seva línia Versió és la versió de la línia de Mattermost en què es basa Antimatter.

Comprova la descàrrega

Baixa el fitxer que necessites i SHA256SUMS al mateix directori, des de la pàgina de la versió o amb curl, i després comprova el fitxer:

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

Cada fitxer baixat ha d'estar llistat amb OK. Qualsevol altre resultat indica que el fitxer està danyat o incomplet: baixa'l de nou i no l'instal·lis. SHA256SUMS no està signat: detecta una descàrrega danyada i no demostra res més que la descàrrega HTTPS de GitHub.

Instal·la el paquet .deb o .rpm

El paquet instal·la Antimatter com a servei systemd, que només necessita una base de dades per iniciar. Utilitzeu-lo en un servidor de 64 bits compatible amb Debian, Ubuntu, Fedora o RHEL amb systemd.

Què instal·la el paquet

RutaContingut
/opt/antimatterEl programa: bin/antimatter, bin/amctl, les aplicacions web (client/, client-fusion/), les aplicacions incloses (prepackaged_plugins/), les plantilles, les traduccions i les tipografies. Cada actualització el substitueix.
/etc/antimatter/antimatter.envLa configuració del servei, com a variables AM_: la base de dades, l'URL del lloc, el servei de GIF. Només llegible per root. Les actualitzacions la conserven.
/etc/antimatter/config/config.jsonEl fitxer de configuració, on el servidor desa la configuració canviada a la Consola del sistema. Es crea a partir de /opt/antimatter/defaults/config.json a la primera instal·lació, i mai no es substitueix després.
/var/lib/antimatterFitxers penjats (data/) i aplicacions instal·lades (plugins/, client-plugins/).
/var/log/antimatterFitxers de registre, si activeu el registre a fitxer. Està desactivat: els registres van al journal.
/usr/lib/systemd/system/antimatter.serviceEl servei.
/usr/bin/amctlUn enllaç a /opt/antimatter/bin/amctl.

Els directoris als quals el servidor escriu a /opt/antimatter (config, data, plugins, client/plugins i logs) són enllaços a /etc/antimatter, /var/lib/antimatter i /var/log/antimatter. Així, una actualització, que substitueix /opt/antimatter, mai no toca les vostres dades. El paquet també crea l'usuari del sistema antimatter, que executa el servidor i és el propietari d'aquests directoris.

El paquet depèn de ca-certificates. Recomanen PostgreSQL (postgresql a Debian i Ubuntu, postgresql-server a Fedora i RHEL), media-types (mailcap per al .rpm) i gifs-server, el servei de GIF, que té el seu propi llançament (vegeu més avall). apt i dnf instal·len els paquets recomanats quan els troben. Suggerixen poppler-utils, wv, unrtf i tidy (sense wv per al .rpm): extreuen el text dels documents penjats, perquè la cerca trobi paraules dins seu. Instal·leu-los vosaltres mateixos si ho voleu.

1. Instal·leu els paquets

Baixeu el paquet d'Antimatter i el paquet del servei de GIF de la vostra arquitectura, verifiqueu-los com es mostra a dalt i instal·leu-los tots dos amb una sola comanda, de manera que es compleixi la recomanació de gifs-server (no està als repositoris de les distribucions):

# 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

Mantingueu el ./: indica a apt i dnf que instal·lin un fitxer local. Per instal·lar sense el servei de GIF, ometeu el seu paquet. El paquet habilita el servei antimatter però no l'inicia, i mostra els passos següents.

2. Creeu la base de dades

Antimatter necessita PostgreSQL 15 o superior, en aquest servidor o en un altre. Comproveu la versió del PostgreSQL de la vostra distribució amb psql --version. Si és anterior, instal·leu una versió més nova des dels repositoris propis del projecte PostgreSQL, o utilitzeu una base de dades en un altre servidor. A Debian i Ubuntu, el paquet postgresql inicia la base de dades. A Fedora i RHEL, creeu-la i inicieu-la primer:

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

Després, creeu un usuari i una base de dades per a 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 ha d'acceptar connexions amb contrasenya des de 127.0.0.1: les línies host del seu fitxer pg_hba.conf, amb el mètode scram-sha-256.

3. Configureu la base de dades i l'URL del lloc

Editeu /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Elimineu el # davant de les línies que utilitzeu i configureu la base de dades i l'adreça que obriren les persones:

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

Qualsevol paràmetre de la configuració pot anar en aquest fitxer, com a AM_<SECTION>_<SETTING>: per exemple, SqlSettings.DataSource és AM_SQLSETTINGS_DATASOURCE. Un paràmetre definit aquí no es pot canviar a la Consola del sistema. Vegeu Configuració. Reinicieu el servidor després de cada canvi: sudo systemctl restart antimatter.

El servei també estableix uns quants valors predeterminats, que una línia a antimatter.env sobreescriu: el registre a fitxers està desactivat (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), i el mode local està activat (AM_SERVICESETTINGS_ENABLELOCALMODE=true), de manera que amctl --local funcioni al servidor.

4. Inicieu-lo

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

En el primer inici, el servidor crea les seves taules i, a continuació, escolta al port 8065. Obre http://<server>:8065, o el teu domini un cop tinguis un servidor intermediari invers configurat (consulta Domini i HTTPS), i crea el primer compte de seguida: es convertirà en l'administrador del sistema. Per crear-lo des de la línia d'ordres, utilitza les ordres amctl de Crea el primer administrador, amb sudo -u antimatter amctl --local en lloc de docker compose exec antimatter amctl --local.

5. Activa els GIF

L'aplicació de GIF està inclosa i activada, i antimatter.env ja l'apunta al servei de GIF del mateix servidor (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Tot i això, necessita la clau d'API del servei. El paquet gifs-server n'ha generat una durant la instal·lació:

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

Posa la clau a antimatter.env com a AM_GIFS_API_KEY=<key> i reinicia Antimatter, o bé introdueix-la com a Clau d'API a Consola del sistema › Connectors › GIF. Si el servei de GIF s'executa en un altre servidor, configura AM_GIFS_SERVICE_URL amb la seva adreça. Per permetre que les persones afegeixin els seus propis GIF i adhesius, consulta GIF.

El servei

  • S'executa com a usuari antimatter, a /opt/antimatter, i llegeix /etc/antimatter/antimatter.env. systemd reinicia el servidor cada vegada que finalitza i li dona fins a una hora per iniciar-se, perquè les migracions de la base de dades d'una nova versió poden trigar.
  • Els seus registres es troben al journal: journalctl -u antimatter.
  • Està reforçat: /usr i /etc són de només lectura per al servidor, excepte /etc/antimatter/config, i no pot veure /home, /root ni /run/user. Si mous l'emmagatzematge de fitxers (FileSettings.Directory), tria un directori fora d'aquests, propietat de antimatter.
  • Les actualitzacions reemplacen el fitxer de servei. Per canviar-lo, utilitza sudo systemctl edit antimatter, que manté els teus canvis en un fitxer separat.

Actualitza un paquet

  1. Fes una còpia de seguretat (consulta Còpies de seguretat i actualitzacions).
  2. Descarrega el nou paquet i SHA256SUMS, i verifica'ls.
  3. Atura el servidor, instal·la el nou paquet al damunt de l'antic i torna a iniciar-lo:
    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

El paquet no reinicia el servidor per si mateix. Després d'una actualització, mostra Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: si no has aturat el servidor abans, reinicia'l de seguida. L'actualització substitueix /opt/antimatter i el fitxer de servei, i manté antimatter.env, config.json, /var/lib/antimatter i els registres. Quan s'inicia, el servidor actualitza la base de dades i instal·la les versions més noves de les aplicacions integrades.

Si una nova versió canvia el fitxer antimatter.env per defecte, apt pregunta si vols mantenir la teva versió: fes-ho. dnf manté la teva i guarda la nova com a /etc/antimatter/antimatter.env.rpmnew. Les actualitzacions només van endavant: no instal·lis una versió antiga per sobre d'una de nova.

Elimina un paquet

sudo apt remove antimatter o sudo dnf remove antimatter atura i deshabilita el servei, i elimina el programa. Manté les dades (/var/lib/antimatter), la configuració (/etc/antimatter), la base de dades i l'usuari antimatter: elimina'ls tu mateix per esborrar Antimatter completament.

Aplicacions als paquets i a l'arxiu

Els paquets i l'arxiu inclouen l'última versió signada d'aquestes aplicacions, a prepackaged_plugins/: AI chat, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels i Whiteboard. Una aplicació que no tenia cap versió publicada quan es va crear la versió del servidor queda exclosa: ls /opt/antimatter/prepackaged_plugins mostra què inclou la teva versió. Memes i Todo estan inclosos però no activats: Aplicacions integrades explica com instal·lar-les i activar-les.

Kanban i Playbooks ja no s'inclouen amb el servidor ni amb cap de les imatges Docker: un servidor que ja en tingui un d'instal·lat el manté després d'una actualització, i qualsevol altre l'instal·la des de la seva pròpia versió, com les aplicacions següents. Les altres aplicacions de les imatges Docker tampoc no són als paquets ni a l'arxiu: Mail, Calendar, GitHub, GitLab, Jira i Metrics. Instal·la cadascuna, incloses Kanban i Playbooks, des de les seves pròpies versions:

AplicacióVersionsId de l'aplicació
Kanbanantimatter-plugin-boardsfocalboard
Guies d'actuacióantimatter-plugin-playbooksplaybooks
Correuantimatter-plugin-mailcom.antimatterchat.mail
Calendariantimatter-plugin-calendarcom.antimatterchat.calendar
GitHubantimatter-plugin-githubgithub
GitLabantimatter-plugin-gitlabcom.github.manland.mattermost-plugin-gitlab
Jiraantimatter-plugin-jirajira
MètriquesAntimatter-plugin-metricscom.mattermost.mattermost-plugin-metrics

Cada versió d'una aplicació inclou el seu paquet (un fitxer .tar.gz), la seva signatura (el mateix nom amb .sig afegit) i un fitxer SHA256SUMS. Per instal·lar una aplicació, permeteu les càrregues i, a continuació, afegiu el paquet amb 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

Per actualitzar una aplicació instal·lada d'aquesta manera, afegiu el nou paquet amb plugin add --force: les actualitzacions de paquets només actualitzen les aplicacions incloses. Podeu tornar a eliminar la línia AM_PLUGINSETTINGS_ENABLEUPLOADS després. Consulteu Instal·lació d'altres aplicacions per conèixer les altres maneres d'instal·lar aplicacions.

Signatures d'aplicacions

Els paquets d'aplicacions estan signats amb la clau de signatura d'aplicacions d'Antimatter: cada fitxer .tar.gz.sig és una signatura GPG deslligada del seu paquet. El servidor comprova aquestes signatures abans d'instal·lar una aplicació inclosa. Per comprovar un paquet vosaltres mateixos:

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 ha de reportar una signatura vàlida de Antimatter Plugin Signing, amb l'empremta 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. També avisa que la clau no està certificada amb una signatura de confiança: això és normal per a una clau que no heu signat vosaltres mateixos. Una versió d'aplicació sense fitxers .sig no està signada, i les notes de la versió ho indiquen.

Instal·lació des d'un arxiu de publicació

L'arxiu, antimatter-<version>-linux-<arch>.tar.gz (per exemple, antimatter-0.9.0-linux-amd64.tar.gz), és adequat per a una distribució sense paquets .deb o .rpm, o per a una estructura de fitxers pròpia. Conté un únic directori antimatter/ amb bin/antimatter, bin/amctl, config/config.json, les aplicacions web (client/ i client-fusion/), les aplicacions incloses (prepackaged_plugins/, vegeu més amunt), les plantilles de correu electrònic i les traduccions.

1. Prepara PostgreSQL

Antimatter només admet PostgreSQL, versió 15 o superior (les versions anteriors s'inicien, però amb un error al registre). Crea un usuari i una base de dades:

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

2. Descomprimeix i configura

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 al servidor la base de dades, ja sigui a /opt/antimatter/config/config.json (SqlSettings.DataSource) o mitjançant variables d'entorn, i estableix l'URL del lloc web:

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

El config.json de l'arxiu és una configuració per defecte completa: les configuracions que canvies al Consola del sistema es desen de nou en aquest fitxer. Per mantenir la configuració a la base de dades en lloc d'això, consulta Configuració.

3. Executa-ho com a servei

Una unitat de systemd, a /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

Posa les teves variables AM_ a /etc/antimatter.env (només llegible per l'arrel) i, a continuació:

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

El servidor escolta al port 8065. Obre http://<server>:8065, o el teu domini un cop estigui configurat un proxy invers (vegeu Domini i HTTPS), i crea el primer compte: aquest es convertirà en l'administrador del sistema.

bin/amctl gestiona el servidor en execució des de la línia d'ordres. Al mateix servidor, funciona sense iniciar sessió mitjançant el mode local: establiu AM_SERVICESETTINGS_ENABLELOCALMODE=true i, a continuació, executeu sudo -u antimatter /opt/antimatter/bin/amctl --local system status.

Per als GIF, instal·leu el servei de GIF (vegeu més avall) i configureu AM_GIFS_SERVICE_URL i AM_GIFS_API_KEY tal com es descriu al pas 5 dels paquets.

Els paquets del servei de GIF i del proxy de notificacions

El servei de GIF i el proxy de notificacions tenen les seves pròpies versions, amb les mateixes regles que el servidor: un arxiu .tar.gz, un paquet .deb i un paquet .rpm per a amd64 i arm64, i un fitxer SHA256SUMS. Les versions amb un guió són versions preliminars. Comproveu les descàrregues amb sha256sum --check --ignore-missing SHA256SUMS, igual que amb el servidor.

El servei de GIF (gifs-server)

Versions: github.com/AntimatterChat/gifs-server/releases. L'arxiu és gifs-server-<version>-linux-<arch>.tar.gz; els paquets s'anomenen gifs-server.

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

El paquet instal·la:

  • /usr/bin/gifs-server, i el servei gifs-server, que s'executa com a usuari gifs-server i manté el seu catàleg a /var/lib/gifs-server;
  • el servei gifs-server-stickers, que importa o actualitza el paquet d'adhesius a /usr/share/gifs-server/stickers quan s'inicia, i després s'atura;
  • la seva configuració, /etc/gifs-server/gifs-server.env (variables AM_GIFS_, que es conserven en les actualitzacions), i /etc/gifs-server/api-keys, una clau d'API per línia, amb una clau aleatòria generada a la primera instal·lació.

Escolta a 127.0.0.1:8080, de manera que només Antimatter al mateix servidor hi pot accedir. Si Antimatter s'executa en un altre lloc, definiu AM_GIFS_LISTEN=:8080 a gifs-server.env i restringiu l'accés al port amb el vostre tallafocs. El fitxer enumera la resta de configuracions: AM_GIFS_UPLOAD_KEYS (les claus permeses per afegir GIF i adhesius, i per eliminar els afegits amb elles), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY i AM_GIFS_LOG_LEVEL. El paquet recomana ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools per al .rpm) i una lletra DejaVu: el servei les utilitza per crear els formats de GIF, vídeo i adhesius quan importa o rep fitxers, i funciona sense elles.

Com el servidor, el servei s'habilita però no s'inicia a la instal·lació. Inicieu-lo tal com es mostra al pas 5 dels paquets. Després d'una actualització, reinicieu-lo: sudo systemctl restart gifs-server. Si elimineu el paquet, el catàleg a /var/lib/gifs-server es conserva.

El proxy de notificacions

Versions: github.com/AntimatterChat/push-proxy/releases. L'arxiu comprimit és antimatter-push-proxy-<version>-linux-<arch>.tar.gz; els paquets s'anomenen antimatter-push-proxy. El paquet instal·la /usr/bin/antimatter-push-proxy i el servei antimatter-push-proxy, que s'executa com a usuari antimatter-push-proxy i llegeix /etc/antimatter-push-proxy/antimatter-push-proxy.json (es conserva durant les actualitzacions). Les credencials d'Apple i Firebase van a /etc/antimatter-push-proxy/certs: Notificacions push explica d'on provenen.

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

Al fitxer de configuració, els camins són relatius a /etc/antimatter-push-proxy: per exemple, "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" i "ServiceFileLocation": "./certs/firebase-service-account.json". Després, defineix el Servidor de notificacions push a Antimatter com a http://<proxy host>:8066. Després d'una actualització, reinicia el servei: sudo systemctl restart antimatter-push-proxy.

El servidor de notificacions push escolta al port 8066 en totes les adreces i no verifica qui hi accedeix. Mantén el port en una xarxa privada o darrere d'un servidor intermediari invers que restringeixi l'accés.

Altres ordres del servidor

A part d'executar el servidor (antimatter, o antimatter server), el binari té algunes ordres de manteniment. Llegeixen la mateixa configuració que el servidor.

OrdreQuè fa
antimatter versionImprimeix la versió, el número de compilació, la data de compilació i el hash de compilació.
antimatter db pingComprova que la base de dades és accessible.
antimatter db initCrea la configuració a la base de dades (amb AM_CONFIG establert a una URL postgres://).
antimatter db migrateAplica les migracions de la base de dades sense iniciar el servidor.
antimatter db versionImprimeix l'última migració aplicada a la base de dades.
antimatter import bulk, antimatter export bulkImporta o exporta dades en el format massiu (vegeu Còpies de seguretat i actualitzacions).