Antimatter installeren
Installeer Antimatter met de kant-en-klare compose-bestand, vanaf het .deb- of .rpm-pakket van een release, of vanaf een releasearchief. Maak daarna het eerste beheerdersaccount aan.
Installeren met Docker Compose
Dit is de aanbevolen methode. Eén compose-bestand voert Antimatter, PostgreSQL, de opslag en de GIF-service uit. Je hebt een Linux-server nodig met Docker Engine en de Compose-plugin (docker compose), 2 CPU-kernen en 4 GB geheugen of meer.
1. Het compose-bestand downloaden
mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml
2. Het .env-bestand aanmaken
Het compose-bestand leest zijn instellingen uit een .env-bestand in dezelfde map. Maak dit aan met willekeurige geheimen:
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
Stel SITE_URL in op het adres dat mensen in hun browser invoeren, bijvoorbeeld http://192.168.1.20:8065 op een lokaal netwerk of https://chat.example.com met een domein. Houd het .env-bestand aan: de database en de opslag gebruiken deze wachtwoorden vanaf de eerste start, de API-sleutels van AI-modelverbindingen worden versleuteld met AM_AI_ENCRYPTION_KEY, en je hebt hetzelfde bestand nodig om een back-up te herstellen.
3. Starten
docker compose up -d
docker compose ps
De eerste start duurt een of twee minuten: PostgreSQL maakt de database aan, een eenmalige bucket-service maakt de opslagbucket aan, een eenmalige gifs-stickers-service importeert het beginstickerpakket en Antimatter maakt zijn tabellen aan. Volg dit met docker compose logs -f antimatter.
Zie Domein en HTTPS als je vanaf het begin een domeinnaam en HTTPS wilt gebruiken: met het compose-bestand zijn dat twee extra regels in .env en het https-profiel.
De .env-variabelen
| Variabele | Standaardwaarde | Wat het doet |
|---|---|---|
SITE_URL | verplicht | Het publieke adres van Antimatter (ServiceSettings.SiteURL). |
POSTGRES_PASSWORD | verplicht | Wachtwoord van de antimatter-databasegebruiker. |
S3_SECRET_KEY | verplicht | Geheime sleutel van de opslag. |
GIFS_API_KEY | verplicht | Sleutel die Antimatter gebruikt om de GIF-service aan te roepen. |
AM_AI_ENCRYPTION_KEY | leeg | De sleutel die de API-sleutels van AI-modelverbindingen versleutelt (openssl rand -base64 32). Leeg: de server maakt een sleutelbestand in de data-volume. Zie De versleutelingssleutel. |
GIFS_UPLOAD_KEY | leeg | Laat mensen hun eigen GIF’s en stickers toevoegen via de picker en ze verwijderen. Leeg schakelt uploads uit. |
DOMAIN | leeg | Je domeinnaam, voor het https-profiel. |
HTTP_PORT | 8065 | Hostpoort van de webserver van Antimatter. |
CALLS_PORT | 8443 | UDP- en TCP-poort voor audiogesprekken en video. |
EDGE_SUBNET | 172.29.71.0/28 | Subnet van het netwerk tussen Caddy en Antimatter. Wijzig dit als het overlapt met een van je netwerken. |
TZ | UTC | Tijdzone van de containers. |
ANTIMATTER_IMAGE | ghcr.io/antimatterchat/antimatter-next:latest | Het Antimatter-image dat wordt uitgevoerd (zie hieronder). |
Wat wordt uitgevoerd
| Service | Image | Rol |
|---|---|---|
antimatter | ghcr.io/antimatterchat/antimatter-next | De server, de webapp en de meegeleverde apps. Publiceert HTTP_PORT en CALLS_PORT. De datamap is de data-volume. |
postgres | postgres:17-alpine | De database, in het postgres-volume. |
files | rustfs/rustfs | S3-compatibele opslag voor geüploade bestanden en geïnstalleerde apps, in het files-volume. |
bucket | amazon/aws-cli | Maakt de antimatter-bucket aan en sluit zich daarna. |
gifs | ghcr.io/antimatterchat/gifs-server | De GIF- en stickerdienst, in het gifs-volume. |
gifs-stickers | ghcr.io/antimatterchat/gifs-server | Importeert de beginstickerpack de eerste keer en sluit zich daarna. |
https | caddy:2-alpine | Alleen met het https-profiel: HTTPS op poorten 80 en 443. |
PostgreSQL, de opslag en de GIF-dienst zitten op een intern netwerk (private) zonder internettoegang, waaraan alleen Antimatter deelneemt. Geen van hen publiceert een poort.
De Antimatter-container bewaart niets op schijf: de instellingen staan in de database (AM_CONFIG wijst ernaar) en de bestanden en apps staan in de opslagservice. Je kunt de container op elk moment verwijderen en opnieuw aanmaken. De data-volume bevat alleen het AI-versleutelingssleutelbestand, dat de server maakt wanneer AM_AI_ENCRYPTION_KEY leeg is. Alles wat je moet back-uppen staat in de postgres, files, gifs en data-volumes, plus je .env.
Kies een image
Er zijn twee Antimatter-images gepubliceerd, beide voor linux/amd64 en linux/arm64, en beide gebouwd vanuit de main-tak van elke repository:
| Image | Inbegrepen apps | Tags |
|---|---|---|
ghcr.io/antimatterchat/antimatter | Agents, Calls, GitHub, GitLab, Jira, Kanban, Metrics en Playbooks. | latest, X.Y.Z voor releases, sha-<commit> |
ghcr.io/antimatterchat/antimatter-next | Hetzelfde, plus Voice channels, Polls, Mail, Calendar, Notes, Whiteboard, GIFs, Todo en Memes. Elke nacht opnieuw gebouwd. | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
Het compose-bestand van de site gebruikt antimatter-next, omdat de GIF-dienst en de meeste apps die op deze site worden beschreven alleen in dat image zitten. Om het image te wijzigen, stel je ANTIMATTER_IMAGE in .env in en voer je docker compose up -d uit.
latest verandert onder je voeten. In productie koppel je een tag vast, zoals nightly-20261015 of sha-<commit>, en wijzig je die bewust bij een upgrade. De server upgradet zijn database bij het opstarten, dus je kunt niet terug naar een ouder image, of van antimatter-next naar antimatter, zonder eerst een back-up te herstellen die vóór de upgrade is gemaakt. Zie Backups en upgrades.In het image
- De server staat in
/antimatter, met de binaire bestandenantimatterenamctlin/antimatter/bin(op dePATH). - Het draait als de niet-geprivilegieerde gebruiker
antimatter(uid 2000) op een minimale distroless-basis, zonder shell. - Poorten: 8065 (web en API), 8067 (metrics), 8074 (cluster), 8443 UDP en TCP (calls).
- De lokale modus (
ServiceSettings.EnableLocalMode) is ingeschakeld, zodatamctl --localbinnen de container werkt. De gezondheidscontrole voertamctl system status --localuit. - De meegeleverde apps bevinden zich in
/antimatter/prepackaged_pluginsen zijn ondertekend met de Antimatter-app-ondertekeningsleutel. - Er zijn hulpmiddelen voor tekstextractie (
pdftotext,wvText,unrtf,tidy) opgenomen, zodat de inhoud van geüploade documenten doorzocht kan worden.
Andere compose-bestanden
De antimatter-docker-repository bevat een productiesetup in deploy/compose/: nginx met eigen certificaten of Let's Encrypt (certbot), PostgreSQL, de optionele GIF-service (profiel gifs) en genoteerde volumes voor de configuratie, gegevens en logboeken van de server, zoals beschreven in de bijbehorende README. Standaard wordt het stabiele image gebruikt en worden bestanden op een lokaal volume opgeslagen in plaats van in S3-opslag. Gebruik dit als je de voorkeur geeft aan nginx boven Caddy, of als je al certificaten hebt.
De eerste beheerder aanmaken
Open SITE_URL in je browser en maak een account aan. Het eerste account dat op een nieuwe server wordt aangemaakt, wordt de systeembeheerder. Vervolgens leidt de installatie je door het aanmaken van je eerste community (de benaming van Antimatter voor een team of werkruimte).
Doe dit direct na de eerste start: tot die tijd wordt de eerste persoon die de server bereikt, de beheerder. Om het account in plaats daarvan via de opdrachtregel te maken, voordat de server van buitenaf bereikbaar is:
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
Log daarna in via SITE_URL. Begin de opdracht met een spatie om het wachtwoord uit je shellgeschiedenis te houden (met HISTCONTROL=ignorespace), of wijzig het wachtwoord zodra je bent ingelogd.
Volgende stappen zodra je bent ingelogd:
- Voor een bedrijf of organisatie, stel Type nieuwe gemeenschappen in op Werkplek, en wijzig het type van een gemeenschap die je al hebt aangemaakt in de instellingen ervan: Werkplek of gemeenschap.
- Bepaal wie accounts kan aanmaken: Inloggen en accounts.
- Configureer e-mail, zodat uitnodigingen en wachtwoordreset werken: E-mail- en pushmeldingen.
- Open de poort voor gesprekken in je firewall: Gesprekken en spraak.
- Controleer welke apps zijn ingeschakeld: Meegeleverde apps.
Een release downloaden
Zonder Docker, installeer Antimatter vanaf de bestanden van een release op GitHub: github.com/AntimatterChat/antimatter/releases. Elke release heeft een versienummer zoals 0.9.0, en de tag is hetzelfde nummer met een v ervoor (v0.9.0).
0.9.0-rc.1, is op GitHub gemarkeerd als Pre-release. Het is een testversie, gepubliceerd vóór de definitieve release.Elke release bevat de volgende bestanden, voor amd64- en arm64-servers:
| Bestand | Wat het is |
|---|---|
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.deb | Het pakket voor Debian, Ubuntu en de distributies die daarop zijn gebaseerd. |
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpm | Het pakket voor Fedora, RHEL en de distributies die compatibel zijn met RHEL. |
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gz | Het releasearchief, voor elke Linuxdistributie, handmatig geïnstalleerd. |
SHA256SUMS | De SHA-256-controlesom van elk bestand van de release. |
De pakketten en het archief bevatten hetzelfde programma: de server (antimatter), het command-line-tool (amctl), beide webapps (de standaardinterface en de klassieke), de ingebouwde apps, de e-maltemplates en de vertalingen. De pakketten voegen een systemd-service en een instellingenbestand toe, zodat elk een alles-in-één-installatie is: u voegt alleen een PostgreSQL-database toe. Er zijn geen aparte binair downloads: de binaires bevinden zich in het archief, in antimatter/bin/. Ze zijn statisch, dus ze werken op elke Linuxdistributie van hun architectuur.
In de pakketnamen wordt het koppelteken van een pre-release-versie een tilde, zodat de pakketbeheerder een pre-release sorteer vóór de definitieve release: versie 0.9.0-rc.1 geeft antimatter_0.9.0~rc.1-1_amd64.deb en antimatter-0.9.0~rc.1-1.x86_64.rpm. Het archief behoudt het koppelteken.
antimatter version toont de releaseversie als Compilatienummer, met de commit waaruit het is gebouwd als Compilatiehash. De Versie-regel is de versie van de Mattermost-lijn waar Antimatter op is gebaseerd.
De download controleren
Download het bestand dat u nodig heeft en SHA256SUMS in dezelfde map, van de releasepagina of met curl, en controleer het bestand:
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
Elk bestand dat u hebt gedownload, moet met OK worden vermeld. Een ander resultaat betekent dat het bestand beschadigd of onvolledig is: download het opnieuw en installeer het niet. SHA256SUMS is niet ondertekend: het detecteert een beschadigde download en bewijst niets anders dan de HTTPS-download van GitHub.
Het .deb- of .rpm-pakket installeren
Het pakket installeert Antimatter als een systemd-service, die alleen een database nodig heeft om te starten. Gebruik het op een 64-bits Debian-, Ubuntu-, Fedora- of RHEL-compatibele server met systemd.
Wat het pakket installeert
| Pad | Inhoud |
|---|---|
/opt/antimatter | Het programma: bin/antimatter, bin/amctl, de webapps (client/, client-fusion/), de ingebouwde apps (prepackaged_plugins/), de sjablonen, vertalingen en lettertypen. Elke upgrade vervangt dit. |
/etc/antimatter/antimatter.env | De instellingen van de service, als AM_-variabelen: de database, de site-URL en de GIF-service. Alleen leesbaar door root. Upgrades behouden dit. |
/etc/antimatter/config/config.json | Het configuratiebestand, waarin de server de instellingen opslaat die zijn gewijzigd in de Systeemconsole. Het wordt bij de eerste installatie aangemaakt vanuit /opt/antimatter/defaults/config.json en wordt daarna nooit meer vervangen. |
/var/lib/antimatter | Geüploade bestanden (data/) en geïnstalleerde apps (plugins/, client-plugins/). |
/var/log/antimatter | Logbestanden, als u het loggen naar bestanden inschakelt. Dit is uit: de logs gaan naar het journal. |
/usr/lib/systemd/system/antimatter.service | De service. |
/usr/bin/amctl | Een koppeling naar /opt/antimatter/bin/amctl. |
De mappen waarnaar de server schrijft in /opt/antimatter (config, data, plugins, client/plugins en logs) zijn koppelingen naar /etc/antimatter, /var/lib/antimatter en /var/log/antimatter. Een upgrade, die /opt/antimatter vervangt, raakt uw gegevens dus nooit aan. Het pakket maakt ook de systeemgebruiker antimatter aan, die de server uitvoert en eigenaar is van deze mappen.
Het pakket is afhankelijk van ca-certificates. Het beveelt PostgreSQL aan (postgresql op Debian en Ubuntu, postgresql-server op Fedora en RHEL), media-types (mailcap voor de .rpm) en gifs-server, de GIF-service, die een eigen release heeft (zie hieronder). apt en dnf installeren aanbevolen pakketten als ze ze vinden. Het suggereert poppler-utils, wv, unrtf en tidy (geen wv voor de .rpm): ze extraheren de tekst van geüploade documenten, zodat zoeken woorden daarin vindt. Installeer ze zelf als u dit wilt.
1. Installeer de pakketten
Download het Antimatter-pakket en het pakket van de GIF-service voor uw architectuur, controleer ze zoals hierboven getoond en installeer beide in één opdracht, zodat de aanbeveling voor gifs-server wordt voldaan (het zit niet in de pakketbronnen van de distributies):
# 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
Houd de ./ aan: dit vertelt apt en dnf om een lokaal bestand te installeren. Om te installeren zonder de GIF-service, laat het bijbehorende pakket weg. Het pakket activeert de antimatter-service, maar start deze niet, en toont de volgende stappen.
2. Maak de database aan
Antimatter heeft PostgreSQL 15 of nieuwer nodig, op deze server of op een andere. Controleer de versie van PostgreSQL van uw distributie met psql --version. Als deze ouder is, installeer een nieuwere versie uit de eigen repositories van het PostgreSQL-project, of gebruik een database op een andere server. Op Debian en Ubuntu start het postgresql-pakket de database. Op Fedora en RHEL moet u deze eerst aanmaken en starten:
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Maak vervolgens een gebruiker en een database voor Antimatter aan:
sudo -u postgres psql -c "CREATE USER antimatter WITH PASSWORD 'a-long-password'"
sudo -u postgres psql -c "CREATE DATABASE antimatter OWNER antimatter"
PostgreSQL moet wachtwoordverbindingen van 127.0.0.1 accepteren: de host-regels in het pg_hba.conf-bestand, met de scram-sha-256-methode.
3. Stel de database en de site-URL in
Bewerk /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Verwijder het # voor de regels die u gebruikt, en stel de database en het adres in dat mensen zullen openen:
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
Elke instelling van de configuratie kan in dit bestand worden opgenomen als AM_<SECTION>_<SETTING>: bijvoorbeeld is SqlSettings.DataSource AM_SQLSETTINGS_DATASOURCE. Een instelling die hier is gezet, kan niet worden gewijzigd in de Systeemconsole. Zie Configuratie. Herstart de server na elke wijziging: sudo systemctl restart antimatter.
De service stelt ook enkele standaardwaarden in, die een regel in antimatter.env overschrijft: loggen naar bestanden is uit (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), en lokale modus is aan (AM_SERVICESETTINGS_ENABLELOCALMODE=true), zodat amctl --local op de server werkt.
4. Start het
sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status
Bij de eerste start maakt de server zijn tabellen en luistert daarna op poort 8065. Open http://<server>:8065, of uw domein zodra een reverse proxy is geconfigureerd (zie Domein en HTTPS), en maak direct het eerste account aan: dit wordt de systeembeheerder. Als u het account liever via de opdrachtregel maakt, gebruikt u de amctl-opdrachten van De eerste beheerder aanmaken, waarbij sudo -u antimatter amctl --local in de plaats komt van docker compose exec antimatter amctl --local.
5. GIF's inschakelen
De GIF's-app is ingebouwd en staat aan, en antimatter.env verwijst al naar de GIF-service op dezelfde server (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Er is nog wel een API-sleutel van de service nodig. Het gifs-server-pakket heeft er een gegenereerd bij de installatie:
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
Voeg de sleutel toe aan antimatter.env als AM_GIFS_API_KEY=<key> en herstart Antimatter, of voer deze in als API-sleutel in Systeemconsole › Plugins › GIF's. Als de GIF-service op een andere server draait, stel dan AM_GIFS_SERVICE_URL in op het adres van die server. Zie GIF's als u wilt dat mensen hun eigen GIF's en stickers kunnen toevoegen.
De service
- De service draait als de
antimatter-gebruiker, in/opt/antimatter, en leest/etc/antimatter/antimatter.env. systemd herstart de server telkens wanneer deze stopt en geeft hem tot een uur de tijd om te starten, omdat de databasemigraties van een nieuwe versie lang kunnen duren. - De logboeken staan in het journal:
journalctl -u antimatter. - De service is versterkt:
/usren/etczijn voor de server alleen-lezen, behalve/etc/antimatter/config, en hij kan/home,/rootof/run/userniet inzien. Als u de opslag voor bestanden verplaatst (FileSettings.Directory), kiest u een map buiten deze mappen, eigendom vanantimatter. - Bij upgrades wordt het servicebestand vervangen. Als u het wilt aanpassen, gebruikt u
sudo systemctl edit antimatter, waardoor uw wijzigingen in een apart bestand worden bewaard.
Een pakket upgraden
- Maak een back-up (zie Back-ups en upgrades).
- Download het nieuwe pakket en
SHA256SUMS, en controleer ze. - Stop de server, installeer het nieuwe pakket bovenop het oude en start de server opnieuw:
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
Het pakket herstart de server niet zelf. Na een upgrade toont het Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: als je de server eerst niet hebt gestopt, herstart je deze onmiddellijk. De upgrade vervangt /opt/antimatter en het servicestandpunt, en behoudt antimatter.env, config.json, /var/lib/antimatter en de logbestanden. Bij het opstarten upgrade de server de database en installeert de nieuwere versies van de ingebouwde apps.
Als een nieuwe versie de standaard antimatter.env wijzigt, vraagt apt of je je versie wilt behouden: behoud deze. dnf behoudt de jouwe en bewaart de nieuwe als /etc/antimatter/antimatter.env.rpmnew. Upgrades gaan alleen vooruit: installeer geen oudere versie bovenop een nieuwere.
Een pakket verwijderen
sudo apt remove antimatter of sudo dnf remove antimatter stopt en schakelt het service uit en verwijdert het programma. Het behoudt de gegevens (/var/lib/antimatter), de configuratie (/etc/antimatter), de database en de antimatter-gebruiker: verwijder deze zelf om Antimatter volledig te verwijderen.
Apps in de pakketten en het archief
De pakketten en het archief bevatten de laatste ondertekende release van deze apps, in prepackaged_plugins/: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels en Whiteboard. Een app die nog geen release had toen de server-release werd gebouwd, wordt niet meegenomen: ls /opt/antimatter/prepackaged_plugins toont wat je release bevat. Memes en Todo zijn opgenomen maar niet ingeschakeld: Bundled apps legt uit hoe je ze installeert en inschakelt.
De andere apps van de Docker-images zitten niet in de pakketten of het archief: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira en Metrics. Installeer elk van hen vanuit hun eigen releases:
| App | Releases | App-id |
|---|---|---|
| Kanban | antimatter-plugin-boards | focalboard |
| Playbooks | antimatter-plugin-playbooks | playbooks |
| antimatter-plugin-mail | com.antimatterchat.mail | |
| Agenda | antimatter-plugin-calendar | com.antimatterchat.calendar |
| GitHub | antimatter-plugin-github | github |
| GitLab | antimatter-plugin-gitlab | com.github.manland.mattermost-plugin-gitlab |
| Jira | antimatter-plugin-jira | jira |
| Metrieken | Antimatter-plugin-metrics | com.mattermost.mattermost-plugin-metrics |
Elke apprelease bevat het bundle van de app (een .tar.gz-bestand), de handtekening (dezelfde naam met .sig erachter) en een SHA256SUMS-bestand. Om een app te installeren, staat uploads toe en voeg je het bundle toe met 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
Om een op deze manier geïnstalleerde app te upgraden, voeg je het nieuwe bundle toe met plugin add --force: pakket-upgrades upgraden alleen de gebundelde apps. Je kunt de regel AM_PLUGINSETTINGS_ENABLEUPLOADS daarna weer verwijderen. Zie Andere apps installeren voor de andere manieren om apps te installeren.
App-handtekeningen
De appbundles zijn ondertekend met de Antimatter-appondertekeningsleutel: elk .tar.gz.sig-bestand is een losse GPG-handtekening van het bijbehorende bundle. De server controleert deze handtekeningen voordat het een gebundelde app installeert. Om een bundle zelf te controleren:
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 moet een goede handtekening rapporteren van Antimatter Plugin Signing, met de vingerafdruk 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Het waarschuwt ook dat de sleutel niet is gecertificeerd met een vertrouwde handtekening: dat is normaal voor een sleutel die je zelf niet hebt ondertekend. Een apprelease zonder .sig-bestanden is niet ondertekend, en dat staat in de release notes.
Installeren uit een releasearchief
Het archief, antimatter-<version>-linux-<arch>.tar.gz (bijvoorbeeld antimatter-0.9.0-linux-amd64.tar.gz), is geschikt voor een distributie zonder .deb- of .rpm-pakketten, of voor een eigen opzet. Het bevat een enkele antimatter/-map met bin/antimatter, bin/amctl, config/config.json, de webapps (client/ en client-fusion/), de gebundelde apps (prepackaged_plugins/, zie hierboven), de e-mailtemplates en de vertalingen.
1. PostgreSQL voorbereiden
Antimatter ondersteunt alleen PostgreSQL, versie 15 of nieuwer (oudere versies starten wel, maar met een foutmelding in het logboek). Maak een gebruiker en een database aan:
sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF
2. Uitpakken en configureren
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
Wijs de server naar de database, ofwel in /opt/antimatter/config/config.json (SqlSettings.DataSource) of met omgevingsvariabelen, en stel de site-URL in:
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
De config.json in het archief is een complete standaardconfiguratie: instellingen die u in de Systeemconsole wijzigt, worden daar weer in opgeslagen. Als u de configuratie liever in de database wilt bewaren, zie Configuratie.
3. Als service uitvoeren
Een systemd-unit, in /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
Plaats uw AM_-variabelen in /etc/antimatter.env (alleen leesbaar door root), en voer daarna het volgende uit:
sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f
De server luistert op poort 8065. Open http://<server>:8065, of uw domein zodra een reverse proxy is geïmplementeerd (zie Domein en HTTPS), en maak het eerste account aan: dit wordt de systeembeheerder.
bin/amctl beheert de draaiende server vanuit de opdrachtregel. Op de server zelf werkt het zonder inloggen via de lokale modus: stel AM_SERVICESETTINGS_ENABLELOCALMODE=true in en voer sudo -u antimatter /opt/antimatter/bin/amctl --local system status uit.
Voor GIFs, installeer de GIF-service (zie hieronder) en stel AM_GIFS_SERVICE_URL en AM_GIFS_API_KEY in zoals in stap 5 van de pakketten.
De GIF-service- en push-proxy-pakketten
De GIF-service en de push-proxy hebben hun eigen releases, met dezelfde regels als die van de server: een .tar.gz-archief, een .deb- en een .rpm-pakket voor amd64 en arm64, en een SHA256SUMS-bestand. Versies met een koppelteken zijn pre-releases. Controleer de downloads met sha256sum --check --ignore-missing SHA256SUMS, net als voor de server.
De GIF-service (gifs-server)
Releases: github.com/AntimatterChat/gifs-server/releases. Het archief heet gifs-server-<version>-linux-<arch>.tar.gz; de pakketten heten gifs-server.
sudo apt install ./gifs-server_*_amd64.deb # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm # Fedora, RHEL
Het pakket installeert:
/usr/bin/gifs-serveren degifs-server-service, die draait als degifs-server-gebruiker en zijn catalogus bewaart in/var/lib/gifs-server;- de
gifs-server-stickers-service, die bij het starten het stickerpakket in/usr/share/gifs-server/stickersimporteert of bijwerkt en daarna stopt; - de instellingen,
/etc/gifs-server/gifs-server.env(AM_GIFS_-variabelen, die behouden blijven bij upgrades) en/etc/gifs-server/api-keys, met één API-sleutel per regel, waarbij bij de eerste installatie een willekeurige sleutel wordt gegenereerd.
De service luistert op 127.0.0.1:8080, zodat alleen Antimatter op dezelfde server er toegang toe heeft. Als Antimatter ergens anders draait, stel dan AM_GIFS_LISTEN=:8080 in in gifs-server.env en beperk de toegang tot de poort met je firewall. Het bestand bevat de overige instellingen: AM_GIFS_UPLOAD_KEYS (de sleutels die GIF's en stickers mogen toevoegen en de daarmee toegevoegde items verwijderen), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY en AM_GIFS_LOG_LEVEL. Het pakket beveelt ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools voor het .rpm-pakket) en een DejaVu-lettertype aan: de service gebruikt deze om GIF-, video- en stickerbestanden te maken bij het importeren of ontvangen van bestanden, maar kan er ook zonder draaien.
Net als de server is de service bij installatie ingeschakeld maar niet gestart. Start deze zoals beschreven in stap 5 van de pakketten. Herstart de service na een upgrade: sudo systemctl restart gifs-server. Bij het verwijderen van het pakket blijft de catalogus in /var/lib/gifs-server behouden.
De push-proxy
Releases: github.com/AntimatterChat/push-proxy/releases. Het archief is antimatter-push-proxy-<version>-linux-<arch>.tar.gz; de pakketten heten antimatter-push-proxy. Het pakket installeert /usr/bin/antimatter-push-proxy en de antimatter-push-proxy-service, die draait als de antimatter-push-proxy-gebruiker en /etc/antimatter-push-proxy/antimatter-push-proxy.json leest (bewaard bij upgrades). De Apple- en Firebase-gegevens komen in /etc/antimatter-push-proxy/certs: Pushmeldingen legt uit waar deze vandaan komen.
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
In het instellingenbestand zijn paden relatief ten opzichte van /etc/antimatter-push-proxy: bijvoorbeeld "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" en "ServiceFileLocation": "./certs/firebase-service-account.json". Stel daarna Push Notificatie Server in Antimatter in op http://<proxy host>:8066. Herstart de service na een upgrade: sudo systemctl restart antimatter-push-proxy.
Andere serveropdrachten
Naast het uitvoeren van de server (antimatter, of antimatter server) heeft het binair bestand een aantal onderhoudsopdrachten. Deze lezen dezelfde configuratie als de server.
| Opdracht | Wat het doet |
|---|---|
antimatter version | Toont de versie, het bouwnummer, de bouwdatum en de bouwhash. |
antimatter db ping | Controleert of de database bereikbaar is. |
antimatter db init | Maakt de configuratie in de database aan (met AM_CONFIG ingesteld op een postgres://-URL). |
antimatter db migrate | Past de databasemigraties toe zonder de server te starten. |
antimatter db version | Toont de laatste migratie die is toegepast op de database. |
antimatter import bulk, antimatter export bulk | Importeert of exporteert gegevens in het bulkformaat (zie Backups en upgrades). |