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

VariabelStandardVad den gör
SITE_URLobligatoriskAntimatters publika adress (ServiceSettings.SiteURL).
POSTGRES_PASSWORDobligatoriskLösenordet för antimatter-databas användaren.
S3_SECRET_KEYobligatoriskHemlig nyckel för filarkivet.
GIFS_API_KEYobligatoriskNyckel som Antimatter använder för att anropa GIF-tjänsten.
AM_AI_ENCRYPTION_KEYtomNyckeln som krypterar API-nycklarna för AI-modellanslutningar (openssl rand -base64 32). Tomt: servern skapar en nyckelfil i data-volymen. Se Krypteringsnyckeln.
GIFS_UPLOAD_KEYtomLåter användare lägga till egna GIF:er och klistermärken från plockaren och ta bort dem. Tomt stänger av uppladdningar.
DOMAINtomDitt domännamn, för https-profilen.
HTTP_PORT8065Värdport för Antimatters webbserver.
CALLS_PORT8443UDP- och TCP-port för ljud och video i samtal.
EDGE_SUBNET172.29.71.0/28Nätverksdel mellan Caddy och Antimatter. Ändra den om den överlappar något av dina nätverk.
TZUTCTidszon för behållarna.
ANTIMATTER_IMAGEghcr.io/antimatterchat/antimatter-next:latestAntimatter-bilden som ska köras (se nedan).

Vad som körs

TjänstImageRoll
antimatterghcr.io/antimatterchat/antimatter-nextServern, webbappen och medföljande appar. Publicerar HTTP_PORT och CALLS_PORT. Dess katalog för data är data-volymen.
postgrespostgres:17-alpineDatabasen, i postgres-volymen.
filesrustfs/rustfsS3-kompatibelt lagringsutrymme för uppladdade filer och installerade appar, i volymen files.
bucketamazon/aws-cliSkapar bucketen antimatter och avslutas sedan.
gifsghcr.io/antimatterchat/gifs-serverTjänsten för GIF:er och klistermärken, i volymen gifs.
gifs-stickersghcr.io/antimatterchat/gifs-serverImporterar startpaketet med klistermärken vid första körningen och avslutas sedan.
httpscaddy:2-alpineEndast 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:

ImageMedföljande apparTaggar
ghcr.io/antimatterchat/antimatterAgenter, Samtal, GitHub, GitLab, Jira, Kanban, Metriker och Playbooks.latest, X.Y.Z för utgåvor, sha-<commit>
ghcr.io/antimatterchat/antimatter-nextSamma, 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ärfilerna antimatter och amctl i /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 --local fungerar inuti containern. Hälsokontrollen kör amctl system status --local.
  • De medföljande apparna finns i /antimatter/prepackaged_plugins och ä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:

  1. 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.
  2. Bestäm vem som kan skapa konton: Inloggning och konton.
  3. Konfigurera e-post, så att inbjudningar och lösenordsåterställningar fungerar: E-post och push-aviseringar.
  4. Öppna porten för samtal i din brandvägg: Samtal och röst.
  5. 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).

Antimatter är i beta: dess versioner ligger i serien 0.9.0. En version med ett suffix efter ett bindestreck, till exempel 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:

FilInnehåll
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.debPaketet för Debian, Ubuntu och distributioner baserade på dem.
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpmPaketet för Fedora, RHEL och distributioner som är kompatibla med RHEL.
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gzVersionsarkivet, för valfri Linux-distribution, att installera manuellt.
SHA256SUMSSHA-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ägInnehåll
/opt/antimatterProgrammet: 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.envTjä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.jsonKonfigurationsfilen, 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/antimatterUppslagna filer (data/) och installerade appar (plugins/, client-plugins/).
/var/log/antimatterLoggfiler, om du aktiverar loggning till fil. Det är inaktiverat: loggarna går till journalen.
/usr/lib/systemd/system/antimatter.serviceTjänsten.
/usr/bin/amctlEn 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: /usr och /etc är skrivskyddade för servern, med undantag för /etc/antimatter/config, och den kan inte se /home, /root eller /run/user. Om du flyttar filarkivet (FileSettings.Directory), välj en katalog utanför dessa, ägd av antimatter.
  • 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

  1. Ta en säkerhetskopia (se Säkerhetskopior och uppgraderingar).
  2. Ladda ner det nya paketet och SHA256SUMS, och verifiera dem.
  3. 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:

AppUtgåvorApp-id
Kanbanantimatter-plugin-boardsfocalboard
Playbooksantimatter-plugin-playbooksplaybooks
E-postantimatter-plugin-mailcom.antimatterchat.mail
Kalenderantimatter-plugin-calendarcom.antimatterchat.calendar
GitHubantimatter-plugin-githubgithub
GitLabantimatter-plugin-gitlabcom.github.manland.mattermost-plugin-gitlab
Jiraantimatter-plugin-jirajira
MetrikerAntimatter-plugin-metricscom.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-server samt tjänsten gifs-server, som körs som användaren gifs-server och förvarar sin katalog i /var/lib/gifs-server;
  • tjänsten gifs-server-stickers, som importerar eller uppdaterar stickerpaketet i /usr/share/gifs-server/stickers när den startas, och sedan stängs av;
  • dess inställningar, /etc/gifs-server/gifs-server.env (variabler med prefixet AM_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.

Push-proxyn lyssnar på port 8066 på alla adresser och kontrollerar inte vem som anropar den. Håll porten på ett privat nätverk eller bakom en reverse proxy som begränsar åtkomsten.

Ö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.

KommandoVad den gör
antimatter versionVisar version, byggnummer, byggdatum och bygghash.
antimatter db pingKontrollerar att databasen är nåbar.
antimatter db initSkapar konfigurationen i databasen (med AM_CONFIG satt till en postgres://-adress).
antimatter db migrateTillämpar databasmigrationer utan att starta servern.
antimatter db versionVisar den senaste migrationen som tillämpats på databasen.
antimatter import bulk, antimatter export bulkImporterar eller exporterar data i bulkformat (se Säkerhetskopior och uppgraderingar).