Installerer Antimatter

Installer Antimatter med den ferdige compose-filen, fra .deb- eller .rpm-pakken til en utgave, eller fra et utgavearkiv. Deretter oppretter du den første administratorkontoen.

Installer med Docker Compose

Dette er den anbefalte metoden. Én compose-fil kjører Antimatter, PostgreSQL, filopplagringen og GIF-tjenesten. Du trenger en Linux-server med Docker Engine og Compose-tillegget (docker compose), 2 CPU-kjerner og 4 GB minne eller mer.

1. Last ned compose-filen

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

2. Opprett .env-filen

Compose-filen leser innstillingene sine fra en .env-fil i samme mappe. Opprett den med tilfeldige hemmeligheter:

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

Sett SITE_URL til adressen folk skal skrive i nettleseren, for eksempel http://192.168.1.20:8065 på et lokalt nettverk eller https://chat.example.com med et domenenavn. Behold .env-filen: databasen og lagringen bruker disse passordene fra første start, API-nøklene for AI-modelltilkoblingene krypteres med AM_AI_ENCRYPTION_KEY, og du trenger den samme filen for å gjenopprette en sikkerhetskopi.

3. Start det

docker compose up -d
docker compose ps

Første start tar ett til to minutter: PostgreSQL oppretter databasen, en engangs-bucket-tjeneste oppretter lagringsbeholderen, en engangs-gifs-stickers-tjeneste importerer startpakken med klistermerker, og Antimatter oppretter tabellene sine. Følg med på dette med docker compose logs -f antimatter.

For å bruke et domenenavn og HTTPS fra starten, se Domene og HTTPS: med compose-filen er det to linjer til i .env og https-profilen.

Variabler i .env

VariabelStandardHva det gjør
SITE_URLobligatoriskDen offentlige adressen til Antimatter (ServiceSettings.SiteURL).
POSTGRES_PASSWORDobligatoriskPassordet til antimatter-databasbrukeren.
S3_SECRET_KEYobligatoriskHemmelig nøkkel for filopplagringen.
GIFS_API_KEYobligatoriskNøkkelen Antimatter bruker for å kalle GIF-tjenesten.
AM_AI_ENCRYPTION_KEYtomNøkkelen som krypterer API-nøklene for AI-modelltilkoblingene (openssl rand -base64 32). Tom: serveren lager en nøkkelfil i data-volumet. Se Krypteringsnøkkelen.
GIFS_UPLOAD_KEYtomGir brukere mulighet til å legge til egne GIF-er og klistermerker fra utvalget, og slette dem. Tom slår av opplastinger.
DOMAINtomDit domenenavn, for https-profilen.
HTTP_PORT8065Vertsporten til Antimatters webserver.
CALLS_PORT8443UDP- og TCP-porten for lyd og video i samtaler.
EDGE_SUBNET172.29.71.0/28Subnettverket mellom Caddy og Antimatter. Endre det hvis det overlapper med ett av dine nettverk.
TZUTCTidssonen for beholderne.
ANTIMATTER_IMAGEghcr.io/antimatterchat/antimatter-next:latestAntimatter-bildet som skal kjøres (se nedenfor).

Hva som kjører

TjenesteBildeRolle
antimatterghcr.io/antimatterchat/antimatter-nextServeren, nettappet og medfølgende apper. Publisere HTTP_PORT og CALLS_PORT. Datakatalogen er data-volumet.
postgrespostgres:17-alpineDatabasen, i postgres-volumet.
filesrustfs/rustfsS3-kompatibel lagring for opplastede filer og installerte apper, i files-volumet.
bucketamazon/aws-cliOppretter antimatter-bøtten og avslutter deretter.
gifsghcr.io/antimatterchat/gifs-serverTjenesten for GIF-er og klistermerker, i gifs-volumet.
gifs-stickersghcr.io/antimatterchat/gifs-serverImporterer startsettet med klistermerker første gang, og avslutter deretter.
httpscaddy:2-alpineKun med https-profilen: HTTPS på porter 80 og 443.

PostgreSQL, lagringen og GIF-tjenesten er på et internt nettverk (private) uten tilgang til internett, som bare Antimatter er med i. Ingen av dem publiserer en port.

Antimatter-beholderen lagrer ingenting på disken: innstillingene er i databasen (AM_CONFIG peker på den), og filene og appene er i lagringstjenesten. Du kan fjerne og opprette beholderen når som helst. data-volumet inneholder bare filen med AI-krypteringsnøkkelen, som serveren lager når AM_AI_ENCRYPTION_KEY er tom. Alt som skal sikkerhetskopieres ligger i postgres, files, gifs og data-volumene, i tillegg til .env-filen din.

Velg et bilde

To Antimatter-bilder publiseres, begge for linux/amd64 og linux/arm64, og begge bygget fra main-greinen i alle repositorier:

BildeBundlete apperTags
ghcr.io/antimatterchat/antimatterAgenter, Samtaler, GitHub, GitLab, Jira, Kanban, Metrikker og Playbooks.latest, X.Y.Z for utgaver, sha-<commit>
ghcr.io/antimatterchat/antimatter-nextDet samme, pluss Talekanaler, Avstemninger, E-post, Kalender, Notater, Tavle, GIF-er, Gjøremål og Memes. Bygget på nytt hver natt.latest, nightly, nightly-<YYYYMMDD>, sha-<commit>

Nettsidens compose-fil bruker antimatter-next, fordi GIF-tjenesten og de fleste av appene som er beskrevet på denne nettsiden, kun finnes i det bildet. For å bytte bilde, angi ANTIMATTER_IMAGE i .env og kjør docker compose up -d.

latest endrer seg under deg. I produksjon, fest en tag som nightly-20261015 eller sha-<commit>, og endre den med hensikt når du oppgraderer. Serveren oppgraderer databasen sin når den starter, så du kan ikke gå tilbake til et eldre bilde, eller fra antimatter-next til antimatter, uten å gjenopprette en sikkerhetskopi tatt før. Se Sikkerhetskopier og oppgraderinger.

Inne i bildet

  • Serveren ligger i /antimatter, med binærfilene antimatter og amctl i /antimatter/bin (på PATH).
  • Den kjører som den uprivilegerte brukeren antimatter (uid 2000) på en minimal distroless-basis, uten skal.
  • Porter: 8065 (nett og API), 8067 (metrikker), 8074 (kluster), 8443 UDP og TCP (samtaler).
  • Lokal modus (ServiceSettings.EnableLocalMode) er slått på, så amctl --local fungerer inne i containeren. Helsekontrollen kjører amctl system status --local.
  • De medfølgende appene ligger i /antimatter/prepackaged_plugins og er signert med Antimatters app-signeringsnøkkel.
  • Verktøy for tekstuttrekk (pdftotext, wvText, unrtf, tidy) er inkludert, så innholdet i opplastede dokumenter kan søkes i.

Andre compose-filer

Lageret antimatter-docker har en produksjonsoppsett i deploy/compose/: nginx med dine egne sertifikater eller Let's Encrypt (certbot), PostgreSQL, den valgfrie GIF-tjenesten (profil gifs) og navngitte volumer for serverens konfigurasjon, data og logger, dokumentert i README-en. Den bruker standardbildeet som standard og lagrer filer på et lokalt volum i stedet for S3-lagring. Bruk den hvis du foretrekker nginx fremfor Caddy, eller allerede har sertifikater.

Opprett den første administratoren

Åpne SITE_URL i nettleseren din og opprett en konto. Den første kontoen som opprettes på en ny server blir systemadministratoren, og oppsettet veileder deg deretter gjennom opprettingen av din første fellesskap (Antimatters navn på et team eller arbeidsområde).

Gjør dette rett etter første oppstart: inntil da blir den som når serveren først, dens administrator. For å opprette kontoen fra kommandolinjen i stedet, før serveren er tilgjengelig fra utsiden:

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

Logg deretter inn på SITE_URL. Start kommandoen med et mellomrom for å holde passordet utenfor skallegjengen (med HISTCONTROL=ignorespace), eller endre passordet når du er logget inn.

Neste steg når du er inne:

  1. For et selskap eller en organisasjon, sett Type for nye samfunn til Arbeidsplass, og endre typen til et samfunn du allerede har opprettet i innstillingene: Arbeidsplass eller samfunn.
  2. Bestem hvem som kan opprette kontoer: Innlogging og kontoer.
  3. Konfigurer e-post, slik at invitasjoner og passordresett fungerer: E-post og push-varsler.
  4. Åpne samtaleporten i brannmuren din: Samtaler og tale.
  5. Se hvilke apper som er slått på: Medfølgende apper.

Last ned en utgave

Uten Docker, installer Antimatter fra filene i en utgave på GitHub: github.com/AntimatterChat/antimatter/releases. Hver utgave har et versjonsnummer som 0.9.0, og merket er det samme tallet med et v foran (v0.9.0).

Antimatter er i beta: utgavene er i 0.9.0-serien. En utgave hvis versjon har et suffiks etter en bindestrek, for eksempel 0.9.0-rc.1, er merket Pre-release på GitHub. Det er en testversjon, utgitt før den endelige utgaven.

Hver utgave har disse filene, for amd64- og arm64-servere:

FilHva det er
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.debPakken for Debian, Ubuntu og distribusjonene basert på dem.
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpmPakken for Fedora, RHEL og distribusjonene som er kompatible med RHEL.
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gzUtgavearkivet, for alle Linux-distribusjoner, satt opp manuelt.
SHA256SUMSSHA-256-kontrollsummen for alle filer i utgaven.

Pakkene og arkivet inneholder det samme programmet: serveren (antimatter), kommandolinjeverktøyet (amctl), begge webappene (standardgrensesnittet og det klassiske), de medfølgende appene, e-postmalene og oversettelsene. Pakkene legger til en systemd-tjeneste og en innstillingsfil, så hver er en alt-i-ett-installasjon: du legger bare til en PostgreSQL-database. Det finnes ikke separate binærnedlastinger: binærfilene er i arkivet, i antimatter/bin/. De er statiske, så de kjører på alle Linux-distribusjoner med deres arkitektur.

I pakkenavnene blir bindestreken i en forhåndsutgave-versjon til en tilde, slik at pakkeshåndtereren sorterer en forhåndsutgave før den endelige utgaven: versjon 0.9.0-rc.1 gir antimatter_0.9.0~rc.1-1_amd64.deb og antimatter-0.9.0~rc.1-1.x86_64.rpm. Arkivet beholder bindestreken.

antimatter version skriver ut utgaveversjonen som Byggenummer, med commiten den ble bygget fra som Byggehash. Dens Versjon-linje er versjonen av Mattermost-linjen Antimatter er basert på.

Sjekk nedlastingen

Last ned filen du trenger og SHA256SUMS til samme mappe, fra utgavesiden eller med curl, og sjekk deretter 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

Hver fil du lastet ned må stå med OK. Noen andre resultat betyr at filen er skadet eller ufullstendig: last den ned på nytt, og installer den ikke. SHA256SUMS er ikke signert: den oppdager en skadet nedlasting, og beviser ingenting mer enn HTTPS-nedlastingen fra GitHub gjør.

Installer .deb- eller .rpm-pakken

Pakken installerer Antimatter som en systemd-tjeneste, som bare trenger en database for å starte. Bruk den på en 64-bits Debian, Ubuntu, Fedora eller RHEL-kompatibel server med systemd.

Hva pakken installerer

StiInnhold
/opt/antimatterProgrammet: bin/antimatter, bin/amctl, nettappene (client/, client-fusion/), de medfølgende appene (prepackaged_plugins/), malene, oversettelsene og fontene. Hver oppgradering erstatter dette.
/etc/antimatter/antimatter.envTjenestens innstillinger, som AM_-variabler: databasen, nettstedets URL og GIF-tjenesten. Kun root kan lese den. Oppgraderinger beholder den.
/etc/antimatter/config/config.jsonKonfigurasjonsfilen, der serveren lagrer endringer gjort i Systemkonsollen. Den opprettes fra /opt/antimatter/defaults/config.json ved første installasjon og erstattes aldri etter det.
/var/lib/antimatterOpplastede filer (data/) og installerte apper (plugins/, client-plugins/).
/var/log/antimatterLoggfiler, hvis du slår på fillogging. Den er av: loggene går til journalen.
/usr/lib/systemd/system/antimatter.serviceTjenesten.
/usr/bin/amctlEn lenke til /opt/antimatter/bin/amctl.

Mappene serveren skriver til i /opt/antimatter (config, data, plugins, client/plugins og logs) er lenker til /etc/antimatter, /var/lib/antimatter og /var/log/antimatter. En oppgradering, som erstatter /opt/antimatter, rører derfor aldri dataene dine. Paken oppretter også systembrukeren antimatter, som kjører serveren og eier disse mappene.

Paken er avhengig av ca-certificates. Den anbefaler PostgreSQL (postgresql på Debian og Ubuntu, postgresql-server på Fedora og RHEL), media-types (mailcap for .rpm) og gifs-server, GIF-tjenesten, som har sin egen utgave (se nedenfor). apt og dnf installerer anbefalte pakker når de finner dem. Den foreslår poppler-utils, wv, unrtf og tidy (ingen wv for .rpm): de uttrekker tekst fra opplastede dokumenter, slik at søk finner ord i dem. Installer dem selv hvis du ønsker dette.

1. Installer pakene

Last ned Antimatter-paken og GIF-tjenestens pake for din arkitektur, sjekk dem som vist ovenfor, og installer begge i én kommando, slik at anbefalingen for gifs-server oppfylles (den finnes ikke i distribusjonenes pakerepositorier):

# 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

Behold ./: Den forteller apt og dnf at de skal installere en lokal fil. For å installere uten GIF-tjenesten, utelatt pakkene. Pakken aktiverer antimatter-tjenesten, men starter den ikke, og viser neste steg.

2. Opprett databasen

Antimatter krever PostgreSQL 15 eller nyere, enten på denne serveren eller på en annen. Sjekk versjonen av distribusjonens PostgreSQL med psql --version. Hvis den er eldre, installer en nyere versjon fra PostgreSQL-projektets egne repositorier, eller bruk en database på en annen server. På Debian og Ubuntu starter postgresql-pakken databasen. På Fedora og RHEL må du først opprette og starte den:

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

Deretter oppretter du en bruker og en database for 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å akseptere passordbaserte tilkoblinger fra 127.0.0.1: host-linjene i pg_hba.conf-filen, med metoden scram-sha-256.

3. Still inn databasen og nettstedets URL

Rediger /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Fjern # foran linjene du bruker, og still inn databasen og adressen folk skal åpne:

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

Enhver innstilling i konfigurasjonen kan legges i denne filen som AM_<SECTION>_<SETTING>: for eksempel er SqlSettings.DataSource AM_SQLSETTINGS_DATASOURCE. En innstilling som er satt her kan ikke endres i Systemkonsollen. Se Konfigurasjon. Start om serveren etter hver endring: sudo systemctl restart antimatter.

Tjenesten setter også noen standardverdier, som en linje i antimatter.env kan overstyre: logging til filer er slått av (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), og lokal modus er slått på (AM_SERVICESETTINGS_ENABLELOCALMODE=true), slik at amctl --local fungerer på serveren.

4. Start den

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

Ved første oppstart lager serveren tabellene sine og lytter deretter på port 8065. Åpne http://<server>:8065, eller domenet ditt når en revers proxy er på plass (se Domena og HTTPS), og opprett den første kontoen med det samme: den blir systemadministrator. Hvis du heller vil opprette den fra kommandolinjen, bruk amctl-kommandoene i Opprett den første administratoren, med sudo -u antimatter amctl --local i stedet for docker compose exec antimatter amctl --local.

5. Slå på GIF-er

GIF-appen er med i pakken og slått på, og antimatter.env peker allerede på GIF-tjenesten på samme server (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Den trenger likevel API-nøkkelen til tjenesten. Pakkene gifs-server genererte en ved installasjonen:

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

Legg nøkkelen i antimatter.env som AM_GIFS_API_KEY=<key> og start Antimatter på nytt, eller skriv den inn som API-nøkkel i Systemkonsoll › Plugins › GIF-er. Hvis GIF-tjenesten kjører på en annen server, må du sette AM_GIFS_SERVICE_URL til adressen til serveren. Hvis du vil la brukerne legge til egne GIF-er og klistermerker, se GIF-er.

Tjenesten

  • Den kjører som brukeren antimatter, i /opt/antimatter, og leser /etc/antimatter/antimatter.env. systemd starter serveren på nytt når den avsluttes, og gir den opptil en time på å starte, fordi databasevandringer for en ny versjon kan ta lang tid.
  • Loggene ligger i journalen: journalctl -u antimatter.
  • Den er hærdenet: /usr og /etc er skrivebeskyttet for serveren, unntatt /etc/antimatter/config, og den kan ikke se /home, /root eller /run/user. Hvis du flytter filopplagringen (FileSettings.Directory), velg en mappe utenfor disse, eid av antimatter.
  • Oppgraderinger erstatter tjenestefilen. Hvis du vil endre den, bruk sudo systemctl edit antimatter, som lagrer endringene i en separat fil.

Oppgrader en pakke

  1. Ta en sikkerhetskopi (se Sikkerhetskopier og oppgraderinger).
  2. Last ned den nye pakken og SHA256SUMS, og kontroller dem.
  3. Stopp serveren, installer den nye pakken over den gamle, og start den på nytt:
    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

Pakken starter ikke om serveren automatisk. Etter en oppgradering skrives Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: Hvis du ikke stoppet serveren først, må du starte den om umiddelbart. Oppgraderingen erstatter /opt/antimatter og tjenestefilen, og beholder antimatter.env, config.json, /var/lib/antimatter og loggene. Når serveren starter, oppgraderes databasen, og de nyere versjonene av de medfølgende appene installeres.

Hvis en ny versjon endrer standard antimatter.env, spør apt om du vil beholde din versjon: behold den. dnf beholder din og lagrer den nye som /etc/antimatter/antimatter.env.rpmnew. Oppgraderinger går kun fremover: Installer ikke en eldre versjon over en nyere.

Fjern en pakke

sudo apt remove antimatter eller sudo dnf remove antimatter stopper og deaktiverer tjenesten, og fjerner programmet. Det beholder dataene (/var/lib/antimatter), konfigurasjonen (/etc/antimatter), databasen og antimatter-brukeren: Slett disse selv for å fjerne Antimatter helt.

Apper i pakkene og arkivet

Pakkene og arkivet inneholder den nyeste signerte utgaven av disse appene, i prepackaged_plugins/: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels og Whiteboard. En app som ikke hadde en utgave ennå da serverutgaven ble bygget, utelates: ls /opt/antimatter/prepackaged_plugins viser hva din utgave inneholder. Memes og Todo er med, men ikke aktivert: Bundled apps forklarer hvordan du installerer og aktiverer dem.

De andre appene i Docker-bildene er ikke i pakkene eller arkivet: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira og Metrics. Installer hver av dem fra sine egne utgaver:

AppUtgaverApp-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
MålepunkterAntimatter-plugin-metricscom.mattermost.mattermost-plugin-metrics

Hver app-utgave inneholder appens bunt (en .tar.gz-fil), dens signatur (samme navn med .sig lagt til) og en SHA256SUMS-fil. For å installere en app, tillat opplastinger, og legg deretter til bunten 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

For å oppgradere en app som er installert på denne måten, legg til den nye bunten med plugin add --force: pakkeoppgraderinger oppgraderer bare de innebygde appene. Du kan fjerne linjen AM_PLUGINSETTINGS_ENABLEUPLOADS igjen etterpå. Se Installerer andre apper for andre måter å installere apper på.

App-signaturer

App-buntene er signert med Antimatters app-signeringsnøkkel: hver .tar.gz.sig-fil er en løs GPG-signatur av sin bunt. Serveren sjekker disse signaturene før den installerer en innebygd app. For å sjekke en bunt selv:

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å rapportere en god signatur fra Antimatter Plugin Signing, med fingeravtrykket 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Den advarer også om at nøkkelen ikke er sertifisert med en tillit signatur: det er normalt for en nøkkel du ikke har signert selv. En app-utgave uten .sig-filer er usignert, og utgavemerkene sier dette.

Installer fra et utgavearkiv

Arkivet, antimatter-<version>-linux-<arch>.tar.gz (for eksempel antimatter-0.9.0-linux-amd64.tar.gz), passer for en distribusjon uten .deb- eller .rpm-pakker, eller et eget oppsett. Det inneholder én antimatter/-mappe med bin/antimatter, bin/amctl, config/config.json, webappene (client/ og client-fusion/), de innebygde appene (prepackaged_plugins/, se over), e-postmalene og oversettelsene.

1. Forbered PostgreSQL

Antimatter støtter kun PostgreSQL, versjon 15 eller nyere (eldre versjoner starter, men gir en feil i loggen). Opprett en bruker og en database:

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

2. Pakk ut og konfigurer

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

Pek serveren mot databasen, enten i /opt/antimatter/config/config.json (SqlSettings.DataSource) eller med miljøvariabler, og sett opp nettstedets URL:

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 er en komplett standardkonfigurasjon: innstillinger du endrer i Systemkonsollen lagres tilbake til den. Hvis du i stedet vil lagre konfigurasjonen i databasen, se Konfigurasjon.

3. Kjør som en tjeneste

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

Legg AM_-variablene dine i /etc/antimatter.env (kun lesbar for root), deretter:

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

Serveren lytter på port 8065. Åpne http://<server>:8065, eller domenet ditt når en omvendt proxy er på plass (se Domena og HTTPS), og opprett den første kontoen: den blir systemadministrator.

bin/amctl administrerer den kjørende serveren fra kommandolinjen. På selve serveren fungerer den uten pålogging via lokal modus: sett AM_SERVICESETTINGS_ENABLELOCALMODE=true, deretter kjør sudo -u antimatter /opt/antimatter/bin/amctl --local system status.

For GIF-er, installer GIF-tjenesten (se nedenfor) og sett AM_GIFS_SERVICE_URL og AM_GIFS_API_KEY som i steg 5 i pakkene.

GIF-tjenesten og push-proxy-pakkene

GIF-tjenesten og push-proxyen har hver sine utgaver, med de samme reglene som serveren: et .tar.gz-arkiv, en .deb- og en .rpm-pakke for amd64 og arm64, samt en SHA256SUMS-fil. Versjoner med bindestrek er forhåndsutgaver. Kontroller nedlastningene med sha256sum --check --ignore-missing SHA256SUMS, som for serveren.

GIF-tjenesten (gifs-server)

Utgaver: github.com/AntimatterChat/gifs-server/releases. Arkivet er gifs-server-<version>-linux-<arch>.tar.gz, og pakkene heter gifs-server.

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

Pakken installerer:

  • /usr/bin/gifs-server og gifs-server-tjenesten, som kjører som gifs-server-brukeren og lagrer katalogen i /var/lib/gifs-server;
  • gifs-server-stickers-tjenesten, som importerer eller oppdaterer stikerpakken i /usr/share/gifs-server/stickers når du starter den, og deretter stopper;
  • innstillingene, /etc/gifs-server/gifs-server.env (AM_GIFS_-variabler, som beholdes ved oppgraderinger) og /etc/gifs-server/api-keys, med én API-nøkkel per linje, der en tilfeldig nøkkel genereres ved første installasjon.

Den lytter på 127.0.0.1:8080, slik at bare Antimatter på samme server kan nå den. Hvis Antimatter kjører et annet sted, må du sette AM_GIFS_LISTEN=:8080 i gifs-server.env og begrense tilgangen til porten med brannmuren. Filen inneholder også de andre innstillingene: AM_GIFS_UPLOAD_KEYS (nøklene som kan legge til GIF-er og stikere, og slette de som er lagt til med dem), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY og AM_GIFS_LOG_LEVEL. Pakken anbefaler ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools for .rpm) og en DejaVu-skrifttype: tjenesten bruker dem til å lage GIF-, video- og stikerformater når den importerer eller mottar filer, og kjører uten dem.

Som for serveren er tjenesten aktivert, men ikke startet, ved installasjon. Start den som vist i steg 5 for pakkene. Etter en oppgradering må du starte den på nytt: sudo systemctl restart gifs-server. Hvis du fjerner pakken, beholdes katalogen i /var/lib/gifs-server.

Push-proxyen

Utgaver: github.com/AntimatterChat/push-proxy/releases. Arkivet er antimatter-push-proxy-<version>-linux-<arch>.tar.gz, og pakkene heter antimatter-push-proxy. Pakken installerer /usr/bin/antimatter-push-proxy og tjenesten antimatter-push-proxy, som kjører som brukeren antimatter-push-proxy og leser /etc/antimatter-push-proxy/antimatter-push-proxy.json (beholdes ved oppgraderinger). Apple- og Firebase-kredensialene legges i /etc/antimatter-push-proxy/certs: Push-varsler forklarer hvor de kommer fra.

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 innstillingsfilen er stier relative til /etc/antimatter-push-proxy: for eksempel "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" og "ServiceFileLocation": "./certs/firebase-service-account.json". Deretter setter du Push-varselserver i Antimatter til http://<proxy host>:8066. Etter en oppgradering starter du den på nytt: sudo systemctl restart antimatter-push-proxy.

Push-proxyen lytter på port 8066 på alle adresser og sjekker ikke hvem som ringer. Hold porten på et privat nettverk, eller bak en omvendt proxy som begrenser tilgangen.

Andre serverkommandoer

Utenom å kjøre serveren (antimatter, eller antimatter server), har binærfilen noen vedlikeholdskommandoer. De leser samme konfigurasjon som serveren.

KommandoHva det gjør
antimatter versionSkriver ut versjon, bygger, byggerdato og byggerhash.
antimatter db pingSjekker at databasen er tilgjengelig.
antimatter db initOppretter konfigurasjonen i databasen (med AM_CONFIG satt til en postgres://-URL).
antimatter db migrateGjennomfører databasemigrasjoner uten å starte serveren.
antimatter db versionSkriver ut den siste migrasjonen som er gjennomført i databasen.
antimatter import bulk, antimatter export bulkImporterer eller eksporterer data i bulkformat (se Sikkerhetskopier og oppgraderinger).