Installera Antimatter
Installera Antimatter med den färdiga compose-filen, från .deb- eller .rpm-paketet för en release, eller från ett releasearkiv. Skapa sedan det första administratörskontot.
Installera med Docker Compose
Detta är det rekommenderade sättet. En compose-fil kör Antimatter, PostgreSQL, filarkivet och GIF-tjänsten. Du behöver en Linux-server med Docker Engine och dess Compose-plugin (docker compose), 2 CPU-kärnor och 4 GB minne eller mer.
1. Ladda ner compose-filen
mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml
2. Skapa .env-filen
Compose-filen läser sina inställningar från en .env-fil i samma katalog. Skapa den med slumpmässiga hemligheter:
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
Sätt SITE_URL till adressen som användare ska skriva i webbläsaren, till exempel http://192.168.1.20:8065 på ett lokalt nätverk eller https://chat.example.com med en domän. Behåll .env-filen: databasen och lagringen använder dessa lösenord från första start, API-nycklarna för AI-modellanslutningar krypteras med AM_AI_ENCRYPTION_KEY, och du behöver samma fil för att återställa en säkerhetskopia.
3. Starta
docker compose up -d
docker compose ps
Första starten tar en eller två minuter: PostgreSQL skapar databasen, en engångstjänst bucket skapar lagringsbehållaren, en engångstjänst gifs-stickers importerar startstickersamlingen och Antimatter skapar sina tabeller. Följ med docker compose logs -f antimatter.
För att använda ett domännamn och HTTPS från början, se Domän och HTTPS: med compose-filen är det två rader till i .env och https-profilen.
Variabler i .env
| Variabel | Standard | Vad den gör |
|---|---|---|
SITE_URL | obligatorisk | Antimatters publika adress (ServiceSettings.SiteURL). |
POSTGRES_PASSWORD | obligatorisk | Lösenordet för antimatter-databas användaren. |
S3_SECRET_KEY | obligatorisk | Hemlig nyckel för filarkivet. |
GIFS_API_KEY | obligatorisk | Nyckel som Antimatter använder för att anropa GIF-tjänsten. |
AM_AI_ENCRYPTION_KEY | tom | Nyckeln som krypterar API-nycklarna för AI-modellanslutningar (openssl rand -base64 32). Tomt: servern skapar en nyckelfil i data-volymen. Se Krypteringsnyckeln. |
GIFS_UPLOAD_KEY | tom | Låter användare lägga till egna GIF:er och klistermärken från plockaren och ta bort dem. Tomt stänger av uppladdningar. |
DOMAIN | tom | Ditt domännamn, för https-profilen. |
HTTP_PORT | 8065 | Värdport för Antimatters webbserver. |
CALLS_PORT | 8443 | UDP- och TCP-port för ljud och video i samtal. |
EDGE_SUBNET | 172.29.71.0/28 | Nätverksdel mellan Caddy och Antimatter. Ändra den om den överlappar något av dina nätverk. |
TZ | UTC | Tidszon för behållarna. |
ANTIMATTER_IMAGE | ghcr.io/antimatterchat/antimatter-next:latest | Antimatter-bilden som ska köras (se nedan). |
Vad som körs
| Tjänst | Image | Roll |
|---|---|---|
antimatter | ghcr.io/antimatterchat/antimatter-next | Servern, webbappen och medföljande appar. Publicerar HTTP_PORT och CALLS_PORT. Dess katalog för data är data-volymen. |
postgres | postgres:17-alpine | Databasen, i postgres-volymen. |
files | rustfs/rustfs | S3-kompatibelt lagringsutrymme för uppladdade filer och installerade appar, i volymen files. |
bucket | amazon/aws-cli | Skapar bucketen antimatter och avslutas sedan. |
gifs | ghcr.io/antimatterchat/gifs-server | Tjänsten för GIF:er och klistermärken, i volymen gifs. |
gifs-stickers | ghcr.io/antimatterchat/gifs-server | Importerar startpaketet med klistermärken vid första körningen och avslutas sedan. |
https | caddy:2-alpine | Endast med profilen https: HTTPS på portarna 80 och 443. |
PostgreSQL, lagringsutrymmet och GIF-tjänsten är på ett internt nätverk (private) utan internetåtkomst, som endast Antimatter går med i. Ingen av dem publicerar en port.
Antimatter-containern lagrar inget på disk: dess inställningar finns i databasen (AM_CONFIG pekar på den) och dess filer och appar finns i lagringstjänsten. Du kan ta bort och återskapa containern när som helst. Dess data-volym innehåller endast filen med AI-krypteringsnyckeln, som servern skapar när AM_AI_ENCRYPTION_KEY är tomt. Allt som behöver säkerhetskopieras finns i volymerna postgres, files, gifs och data, samt din .env-fil.
Välj en bild
Två Antimatter-bilder publiceras, båda för linux/amd64 och linux/arm64, och båda byggda från main-grenen i varje repository:
| Image | Medföljande appar | Taggar |
|---|---|---|
ghcr.io/antimatterchat/antimatter | Agenter, Samtal, GitHub, GitLab, Jira, Kanban, Metriker och Playbooks. | latest, X.Y.Z för utgåvor, sha-<commit> |
ghcr.io/antimatterchat/antimatter-next | Samma, plus Röstkanaler, Omröstningar, E-post, Kalender, Anteckningar, Whiteboard, GIF:er, Att göra och Memes. Byggs om varje natt. | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
Webbplatsens compose-fil använder antimatter-next, eftersom GIF-tjänsten och de flesta appar som beskrivs på den här webbplatsen endast finns i den bilden. För att byta bild, sätt ANTIMATTER_IMAGE i .env och kör docker compose up -d.
latest ändras under dig. I produktion, fäst en tagg som nightly-20261015 eller sha-<commit>, och ändra den medvetet när du uppgraderar. Servern uppgraderar sin databas när den startar, så du kan inte gå tillbaka till en äldre bild, eller från antimatter-next till antimatter, utan att återställa en säkerhetskopia som togs tidigare. Se Säkerhetskopior och uppgraderingar.Inuti bilden
- Servern finns i
/antimatter, med binärfilernaantimatterochamctli/antimatter/bin(påPATH). - Den körs som den oprivilegierade användaren
antimatter(uid 2000) på en minimal distroless-bas, utan shell. - Portar: 8065 (webb och API), 8067 (metriker), 8074 (kluster), 8443 UDP och TCP (samtal).
- Lokalt läge (
ServiceSettings.EnableLocalMode) är aktiverat, såamctl --localfungerar inuti containern. Hälsokontrollen köramctl system status --local. - De medföljande apparna finns i
/antimatter/prepackaged_pluginsoch är signerade med Antimatters app-signeringsnyckel. - Verktyg för textextraktion (
pdftotext,wvText,unrtf,tidy) är medtagna, så innehållet i uppladdade dokument kan sökas.
Andra compose-filer
Repositoriet antimatter-docker innehåller en produktionsuppsättning i deploy/compose/: nginx med egna certifikat eller Let's Encrypt (certbot), PostgreSQL, den valfria GIF-tjänsten (profilen gifs) och namngivna volymer för serverns konfiguration, data och loggar, allt dokumenterat i dess README. Den använder standardbilden och lagrar filer på en lokal volym i stället för S3-lagring. Använd den om du föredrar nginx framför Caddy, eller om du redan har certifikat.
Skapa den första administratören
Öppna SITE_URL i webbläsaren och skapa ett konto. Det första kontot som skapas på en ny server blir systemadministratör, och uppsättningen leder dig sedan genom skapandet av din första gemenskap (Antimatters benämning på ett team eller en arbetsyta).
Gör detta direkt efter första start: annars blir den som når servern först dess administratör. För att skapa kontot från kommandoraden i stället, innan servern är nåbar utifrån:
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
Logga sedan in på SITE_URL. Börja kommandot med ett mellanslag för att hålla lösenordet borta från skalhistoriken (med HISTCONTROL=ignorespace), eller ändra lösenordet när du är inloggad.
Nästa steg när du är inloggad:
- För ett företag eller en organisation, sätt Typ av nya samhällen till Arbetsplats, och ändra typen för ett samhälle du redan har skapat i dess inställningar: Arbetsplats eller samhälle.
- Bestäm vem som kan skapa konton: Inloggning och konton.
- Konfigurera e-post, så att inbjudningar och lösenordsåterställningar fungerar: E-post och push-aviseringar.
- Öppna porten för samtal i din brandvägg: Samtal och röst.
- Kontrollera vilka appar som är aktiverade: Medföljande appar.
Ladda ner en release
Utan Docker, installera Antimatter från filerna i en release på GitHub: github.com/AntimatterChat/antimatter/releases. Varje release har ett versionsnummer, till exempel 0.9.0, och dess tag är samma nummer med ett v framför (v0.9.0).
0.9.0-rc.1, märks som Pre-release på GitHub. Det är en testversion som publiceras innan den slutliga versionen.Varje version har dessa filer, för amd64- och arm64-servrar:
| Fil | Innehåll |
|---|---|
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.deb | Paketet för Debian, Ubuntu och distributioner baserade på dem. |
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpm | Paketet för Fedora, RHEL och distributioner som är kompatibla med RHEL. |
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gz | Versionsarkivet, för valfri Linux-distribution, att installera manuellt. |
SHA256SUMS | SHA-256-kontrollsumman för alla filer i versionen. |
Paketen och arkivet innehåller samma program: servern (antimatter), kommandotolksverktyget (amctl), båda webbapplikationerna (standardgränssnittet och det klassiska), medföljande appar, e-postmallar och översättningar. Paketen lägger till en systemd-tjänst och en inställningsfil, så varje paket är en komplett installation: du behöver bara lägga till en PostgreSQL-databas. Det finns inga separata binärladdningar: binärerna finns i arkivet, i antimatter/bin/. De är statiska, så de fungerar på valfri Linux-distribution med motsvarande arkitektur.
I paketnamnen byts bindestrecket i en förhandsversionsversion ut mot ett tilde, så att pakethanteraren sorterar förhandsversioner före slutversioner: version 0.9.0-rc.1 ger antimatter_0.9.0~rc.1-1_amd64.deb och antimatter-0.9.0~rc.1-1.x86_64.rpm. Arkivet behåller bindestrecket.
antimatter version visar versionsnumret som Byggnationsnummer, med det commit det byggdes från som Bygg-hash. Dess Version-rad är versionen av Mattermost-linjen som Antimatter bygger på.
Kontrollera laddningen
Ladda ner den fil du behöver och SHA256SUMS till samma katalog, antingen från versionsidan eller med curl, och kontrollera sedan filen:
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
Varje fil du laddat ner måste listas med OK. Ett annat resultat betyder att filen är skadad eller ofullständig: ladda ner den igen och installera den inte. SHA256SUMS är inte signerad: den upptäcker skadade laddningar, men bevisar inget mer än en HTTPS-laddning från GitHub gör.
Installera .deb- eller .rpm-paketet
Paketet installerar Antimatter som en systemd-tjänst, som bara behöver en databas för att starta. Använd det på en 64-bitars Debian-, Ubuntu-, Fedora- eller RHEL-kompatibel server med systemd.
Vad paketet installerar
| Sökväg | Innehåll |
|---|---|
/opt/antimatter | Programmet: bin/antimatter, bin/amctl, webbapplikationerna (client/, client-fusion/), medföljande appar (prepackaged_plugins/), mallar, översättningar och typsnitt. Varje uppgradering byter ut det. |
/etc/antimatter/antimatter.env | Tjänstens inställningar, som AM_-variabler: databasen, webbadressen och GIF-tjänsten. Endast root kan läsa den. Uppgraderingar bevarar den. |
/etc/antimatter/config/config.json | Konfigurationsfilen, där servern sparar de inställningar som ändrats i Systemkonsolen. Den skapas från /opt/antimatter/defaults/config.json vid första installationen och byts aldrig ut därefter. |
/var/lib/antimatter | Uppslagna filer (data/) och installerade appar (plugins/, client-plugins/). |
/var/log/antimatter | Loggfiler, om du aktiverar loggning till fil. Det är inaktiverat: loggarna går till journalen. |
/usr/lib/systemd/system/antimatter.service | Tjänsten. |
/usr/bin/amctl | En länk till /opt/antimatter/bin/amctl. |
Mapparna som servern skriver till i /opt/antimatter (config, data, plugins, client/plugins och logs) är länkar till /etc/antimatter, /var/lib/antimatter och /var/log/antimatter. En uppgradering, som byter ut /opt/antimatter, rör därför aldrig dina data. Paketet skapar även systemanvändaren antimatter, som kör servern och äger dessa mappar.
Paketet är beroende av ca-certificates. Det rekommenderar PostgreSQL (postgresql på Debian och Ubuntu, postgresql-server på Fedora och RHEL), media-types (mailcap för .rpm) och gifs-server, GIF-tjänsten, som har sin egen utgivning (se nedan). apt och dnf installerar rekommenderade paket när de finns tillgängliga. Det föreslår poppler-utils, wv, unrtf och tidy (ingen wv för .rpm): de extraherar text från uppladdade dokument, så att sök hittar ord i dem. Installera dem själv om du vill ha det.
1. Installera paketen
Ladda ner Antimatter-paketet och GIF-tjänstens paket för din arkitektur, verifiera dem enligt ovan och installera båda i ett kommando, så att rekommendationen för gifs-server uppfylls (den finns inte i distributionernas paketarkiv):
# 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
Behåll ./: det säger till apt och dnf att de ska installera en lokal fil. För att installera utan GIF-tjänsten, uteslut dess paket. Paketet aktiverar antimatter-tjänsten men startar den inte, och visar nästa steg.
2. Skapa databasen
Antimatter kräver PostgreSQL 15 eller nyare, på den här servern eller på en annan. Kontrollera versionen av din distributions PostgreSQL med psql --version. Om den är äldre, installera en nyare version från PostgreSQL-projektets egna repositories, eller använd en databas på en annan server. På Debian och Ubuntu startar paketet postgresql databasen. På Fedora och RHEL, skapa och starta den först:
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Skapa sedan en användare och en databas för 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 måste acceptera lösenordsanslutningar från 127.0.0.1: host-raderna i dess pg_hba.conf-fil, med metoden scram-sha-256.
3. Ställ in databasen och webbadressen
Redigera /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Ta bort # framför de rader du använder, och ställ in databasen och adressen som användarna ska öppna:
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
Alla inställningar i konfigurationen kan anges i den här filen, som AM_<SECTION>_<SETTING>: till exempel är SqlSettings.DataSource AM_SQLSETTINGS_DATASOURCE. En inställning som anges här kan inte ändras i Systemkonsolen. Se Konfiguration. Starta om servern efter varje ändring: sudo systemctl restart antimatter.
Tjänsten anger också några standardvärden, som en rad i antimatter.env åsidosätter: loggning till filer är avstängd (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), och lokalt läge är påslaget (AM_SERVICESETTINGS_ENABLELOCALMODE=true), så att amctl --local fungerar på servern.
4. Starta den
sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status
Vid första start skapar servern sina tabeller och lyssnar sedan på port 8065. Öppna http://<server>:8065, eller din domän när en reverse proxy är på plats (se Domän och HTTPS), och skapa direkt det första kontot: det blir systemadministratören. För att skapa det från kommandoraden i stället, använd amctl-kommandona i Skapa den första administratören, med sudo -u antimatter amctl --local i stället för docker compose exec antimatter amctl --local.
5. Slå på GIF-bilder
Appen GIF-bilder är med i paketet och är påslagen, och antimatter.env pekar redan på GIF-tjänsten på samma server (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Den behöver dock fortfarande tjänstens API-nyckel. Paketet gifs-server genererade en vid installationen:
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
Sätt in nyckeln i antimatter.env som AM_GIFS_API_KEY=<key> och starta om Antimatter, eller ange den som API-nyckel i Systemkonsol › Plugin › GIF-bilder. Om GIF-tjänsten körs på en annan server, sätt AM_GIFS_SERVICE_URL till dess adress. För att låta användare lägga till egna GIF-bilder och klistermärken, se GIF-bilder.
Tjänsten
- Den körs som användaren
antimatter, i/opt/antimatter, och läser/etc/antimatter/antimatter.env. systemd startar om servern när den avslutas, och ger den upp till en timme på sig att starta, eftersom databasmigrationer för en ny version kan ta lång tid. - Loggarna finns i journalen:
journalctl -u antimatter. - Den är förstärkt:
/usroch/etcär skrivskyddade för servern, med undantag för/etc/antimatter/config, och den kan inte se/home,/rooteller/run/user. Om du flyttar filarkivet (FileSettings.Directory), välj en katalog utanför dessa, ägd avantimatter. - Uppgraderingar byter ut tjänstefilen. För att ändra den, använd
sudo systemctl edit antimatter, vilket sparar dina ändringar i en separat fil.
Uppgradera ett paket
- Ta en säkerhetskopia (se Säkerhetskopior och uppgraderingar).
- Ladda ner det nya paketet och
SHA256SUMS, och verifiera dem. - Stoppa servern, installera det nya paketet ovanpå det gamla, och starta den igen:
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
Paketet startar om inte servern själv. Efter en uppgradering visas Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: om du inte stängde av servern först, starta om den omedelbart. Uppgraderingen ersätter /opt/antimatter och tjänstefilen, och behåller antimatter.env, config.json, /var/lib/antimatter samt loggarna. När servern startar uppgraderas databasen och de nyare versionerna av de medföljande apparna installeras.
Om en ny version ändrar standardinställningarna i antimatter.env frågar apt om du vill behålla din version: behåll den. dnf behåller din version och sparar den nya som /etc/antimatter/antimatter.env.rpmnew. Uppgraderingar går bara framåt: installera inte en äldre version ovanpå en nyare.
Ta bort ett paket
sudo apt remove antimatter eller sudo dnf remove antimatter stoppar och inaktiverar tjänsten, och tar bort programmet. Det behåller datan (/var/lib/antimatter), konfigurationen (/etc/antimatter), databasen och användaren antimatter: ta bort dem själv för att helt avinstallera Antimatter.
Appar i paketen och arkivet
Paketen och arkivet innehåller den senaste signerade utgåvan av dessa appar, i prepackaged_plugins/: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels och Whiteboard. En app som inte hade någon utgivning ännu när serverns utgivning skapades utesluts: ls /opt/antimatter/prepackaged_plugins visar vad din utgivning innehåller. Memes och Todo är med men inte aktiverade: Bundled apps förklarar hur du installerar och aktiverar dem.
De andra apparna i Docker-bilderna finns inte i paketen eller arkivet: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira och Metrics. Installera respektive app från dess egna utgåvor:
| App | Utgåvor | App-id |
|---|---|---|
| Kanban | antimatter-plugin-boards | focalboard |
| Playbooks | antimatter-plugin-playbooks | playbooks |
| E-post | antimatter-plugin-mail | com.antimatterchat.mail |
| Kalender | 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 |
| Metriker | Antimatter-plugin-metrics | com.mattermost.mattermost-plugin-metrics |
Varje appversion innehåller appens bundle (en .tar.gz-fil), dess signatur (samma namn med .sig tillagt) och en SHA256SUMS-fil. För att installera en app, tillåt uppladdningar och lägg sedan till bundle:n med 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
För att uppgradera en app som installerats på detta sätt, lägg till den nya bundle:n med plugin add --force: paketuppgraderingar uppgraderar endast de inbyggda apparna. Du kan ta bort raden AM_PLUGINSETTINGS_ENABLEUPLOADS igen efteråt. Se Installera andra appar för andra sätt att installera appar.
Appsignaturer
Appbundle:na är signerade med Antimatters appsigneringsnyckel: varje .tar.gz.sig-fil är en löst GPG-signatur för sin bundle. Servern kontrollerar dessa signaturer innan den installerar en inbyggd app. För att själv kontrollera en bundle:
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 måste rapportera en god signatur från Antimatter Plugin Signing, med fingraset 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Den varnar också för att nyckeln inte är certifierad med en betrodd signatur: det är normalt för en nyckel som du inte har signerat själv. En appversion utan .sig-filer är osignerad, och dess versionsanteckningar anger detta.
Installera från ett release-arkiv
Arkivet, antimatter-<version>-linux-<arch>.tar.gz (till exempel antimatter-0.9.0-linux-amd64.tar.gz), passar för en distribution utan .deb- eller .rpm-paket, eller för en egen layout. Det innehåller en enda antimatter/-katalog med bin/antimatter, bin/amctl, config/config.json, webbapparna (client/ och client-fusion/), de inbyggda apparna (prepackaged_plugins/, se ovan), e-postmallarna och översättningarna.
1. Förbered PostgreSQL
Antimatter stöder endast PostgreSQL, version 15 eller nyare (äldre versioner startar, men ger ett fel i loggen). Skapa en användare och en databas:
sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF
2. Packa upp och konfigurera
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
Peaka servern mot databasen, antingen i /opt/antimatter/config/config.json (SqlSettings.DataSource) eller med miljövariabler, och ange webbadressen:
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
Arkivets config.json är en komplett standardkonfiguration: inställningar du ändrar i Systemkonsolen sparas tillbaka till den. För att i stället behålla konfigurationen i databasen, se Konfiguration.
3. Kör den som en tjänst
En systemd-enhet, i /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
Placera dina AM_-variabler i /etc/antimatter.env (läsbar endast för root), och kör sedan:
sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f
Servern lyssnar på port 8065. Öppna http://<server>:8065, eller din domän när en omvänd proxy är på plats (se Domän och HTTPS), och skapa det första kontot: det blir systemadministratören.
bin/amctl hanterar den körande servern från kommandoraden. På själva servern fungerar den utan inloggning via lokal läge: sätt AM_SERVICESETTINGS_ENABLELOCALMODE=true och kör sedan sudo -u antimatter /opt/antimatter/bin/amctl --local system status.
För GIF:er, installera GIF-tjänsten (se nedan) och ställ in AM_GIFS_SERVICE_URL och AM_GIFS_API_KEY enligt steg 5 i paketen.
Paketen för GIF-tjänsten och push-proxy
GIF-tjänsten och push-proxyn har egna utgåvor, med samma regler som serverns: ett .tar.gz-arkiv, ett .deb- och ett .rpm-paket för amd64 och arm64, samt en SHA256SUMS-fil. Versioner med bindestreck är förhandsutgåvor. Kontrollera nedladdningarna med sha256sum --check --ignore-missing SHA256SUMS, precis som för servern.
GIF-tjänsten (gifs-server)
Utgåvor: github.com/AntimatterChat/gifs-server/releases. Arkivet heter gifs-server-<version>-linux-<arch>.tar.gz och paketen heter gifs-server.
sudo apt install ./gifs-server_*_amd64.deb # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm # Fedora, RHEL
Paketet installerar:
/usr/bin/gifs-serversamt tjänstengifs-server, som körs som användarengifs-serveroch förvarar sin katalog i/var/lib/gifs-server;- tjänsten
gifs-server-stickers, som importerar eller uppdaterar stickerpaketet i/usr/share/gifs-server/stickersnär den startas, och sedan stängs av; - dess inställningar,
/etc/gifs-server/gifs-server.env(variabler med prefixetAM_GIFS_, som bevaras vid uppgraderingar) samt/etc/gifs-server/api-keys, med en API-nyckel per rad, där en slumpmässig nyckel genereras vid första installationen.
Tjänsten lyssnar på 127.0.0.1:8080, så endast Antimatter på samma server kan nå den. Om Antimatter körs någon annanstans, ange AM_GIFS_LISTEN=:8080 i gifs-server.env och begränsa åtkomsten till porten med din brandvägg. Filen listar de övriga inställningarna: AM_GIFS_UPLOAD_KEYS (nycklarna som får lägga till GIF:er och stickers, samt ta bort de som lagts till med dem), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY och AM_GIFS_LOG_LEVEL. Paketet rekommenderar ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools för .rpm) och ett DejaVu-teckensnitt: tjänsten använder dem för att skapa GIF-, video- och stickerformat när den importerar eller tar emot filer, och kan köra utan dem.
Som för servern är tjänsten aktiverad men inte startad vid installationen. Starta den enligt steg 5 i avsnittet om paket. Efter en uppgradering, starta om den: sudo systemctl restart gifs-server. Om du tar bort paketet bevaras katalogen i /var/lib/gifs-server.
Push-proxyn
Släppar: github.com/AntimatterChat/push-proxy/releases. Arkivet är antimatter-push-proxy-<version>-linux-<arch>.tar.gz och paketen heter antimatter-push-proxy. Paketet installerar /usr/bin/antimatter-push-proxy och tjänsten antimatter-push-proxy, som körs som användaren antimatter-push-proxy och läser /etc/antimatter-push-proxy/antimatter-push-proxy.json (filen bevaras vid uppgraderingar). Apple- och Firebase-autentiseringsuppgifterna placeras i /etc/antimatter-push-proxy/certs: Push notifications förklarar var de kommer ifrån.
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
I inställningsfilen är sökvägar relativa till /etc/antimatter-push-proxy: till exempel "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" och "ServiceFileLocation": "./certs/firebase-service-account.json". Ange sedan Push Notification Server i Antimatter till http://<proxy host>:8066. Starta om tjänsten efter en uppgradering: sudo systemctl restart antimatter-push-proxy.
Övriga serverkommandon
Utöver att köra servern (antimatter, eller antimatter server) har binärfilen ett par underhållskommandon. De läser samma konfiguration som servern.
| Kommando | Vad den gör |
|---|---|
antimatter version | Visar version, byggnummer, byggdatum och bygghash. |
antimatter db ping | Kontrollerar att databasen är nåbar. |
antimatter db init | Skapar konfigurationen i databasen (med AM_CONFIG satt till en postgres://-adress). |
antimatter db migrate | Tillämpar databasmigrationer utan att starta servern. |
antimatter db version | Visar den senaste migrationen som tillämpats på databasen. |
antimatter import bulk, antimatter export bulk | Importerar eller exporterar data i bulkformat (se Säkerhetskopior och uppgraderingar). |