Installation af Antimatter

Installer Antimatter med den færdige compose-fil, fra .deb- eller .rpm-pakken i et release eller fra et releasearkiv. Opret derefter den første administratorkonto.

Installer med Docker Compose

Dette er den anbefalede metode. Én compose-fil kører Antimatter, PostgreSQL, filopbevaringen og GIF-tjenesten. Du skal bruge en Linux-server med Docker Engine og dens Compose-plugin (docker compose), 2 CPU-kerner og 4 GB hukommelse eller mere.

1. Download compose-filen

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

2. Opret .env-filen

Compose-filen læser sine indstillinger fra en .env-fil i samme mappe. Opret den med tilfældige hemmelige nøgler:

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æt SITE_URL til den adresse, folk skriver i deres browser, for eksempel http://192.168.1.20:8065 på et lokalt netværk eller https://chat.example.com med et domæne. Bevar .env-filen: databasen og lageret bruger disse adgangskoder fra den første start, API-nøglerne til AI-modelforbindelserne krypteres med AM_AI_ENCRYPTION_KEY, og du har brug for den samme fil for at gendanne et backup.

3. Start det

docker compose up -d
docker compose ps

Første start tager et par minutter: PostgreSQL opretter databasen, en engangs-bucket-tjeneste opretter opbevarings-bucketen, en engangs-gifs-stickers-tjeneste importerer start-stickerpakken, og Antimatter opretter sine tabeller. Følg med ved hjælp af docker compose logs -f antimatter.

Hvis du vil bruge et domænenavn og HTTPS fra starten, se Domæne og HTTPS: med compose-filen er det to ekstra linjer i .env og https-profilen.

Variablerne i .env

VariabelStandardHvad den gør
SITE_URLobligatoriskAntimatters offentlige adresse (ServiceSettings.SiteURL).
POSTGRES_PASSWORDobligatoriskAdgangskode for antimatter-databasbrugeren.
S3_SECRET_KEYobligatoriskHemmelig nøgle for filopbevaringen.
GIFS_API_KEYobligatoriskNøgle, som Antimatter bruger til at kalde GIF-tjenesten.
AM_AI_ENCRYPTION_KEYtomNøglen, der krypterer API-nøglerne til AI-modelforbindelserne (openssl rand -base64 32). Tom: serveren opretter en nøgelfil i data-volumen. Se Krypteringsnøglen.
GIFS_UPLOAD_KEYtomGør det muligt for folk at tilføje deres egne GIF'er og stickers fra vælgeren og slette dem. Tom slår uploads fra.
DOMAINtomDit domænenavn, til https-profilen.
HTTP_PORT8065Værtsport for Antimatters webserver.
CALLS_PORT8443UDP- og TCP-port for lyd og video i opkald.
EDGE_SUBNET172.29.71.0/28Subnet for netværket mellem Caddy og Antimatter. Ændr det, hvis det overlapper med ét af dine netværk.
TZUTCTidszone for containere.
ANTIMATTER_IMAGEghcr.io/antimatterchat/antimatter-next:latestAntimatter-image, der skal køres (se nedenfor).

Hvad der kører

TjenesteBilledeRolle
antimatterghcr.io/antimatterchat/antimatter-nextServeren, webappen og de medfølgende apps. Udgiver HTTP_PORT og CALLS_PORT. Dens datamappe er data-volumen.
postgrespostgres:17-alpineDatabasen, i postgres-volumen.
filesrustfs/rustfsS3-kompatibel lagring for uploadede filer og installerede apps, i files-volumen.
bucketamazon/aws-cliOpretter antimatter-bunken og afslutter derefter.
gifsghcr.io/antimatterchat/gifs-serverTjenesten til GIF'er og klistermærker, i gifs-volumen.
gifs-stickersghcr.io/antimatterchat/gifs-serverImporterer startpakken med klistermærker første gang, og afslutter derefter.
httpscaddy:2-alpineKun med https-profilen: HTTPS på porte 80 og 443.

PostgreSQL, lagringen og GIF-tjenesten er på et internt netværk (private) uden internetadgang, som kun Antimatter deltager i. Ingen af dem publicerer en port.

Antimatter-beholderen gemmer intet på disken: dens indstillinger er i databasen (AM_CONFIG peger på den), og dens filer og apps er i lagertjenesten. Du kan fjerne og genoprette beholderen når som helst. Dens data-volumen indeholder kun AI-krypteringsnøglefilen, som serveren opretter, når AM_AI_ENCRYPTION_KEY er tom. Alt, der skal backes op, er i postgres, files, gifs og data-volumenerne samt din .env.

Vælg et billede

To Antimatter-billeder er udgivet, begge til linux/amd64 og linux/arm64, og begge bygget fra main-grenen i alle repositories:

BilledeMedfølgende appsTags
ghcr.io/antimatterchat/antimatterAI-chat, opkald, GitHub, GitLab, Jira og Metrics.latest, X.Y.Z for releases, sha-<commit>
ghcr.io/antimatterchat/antimatter-nextDet samme, plus Lydkanaler, Afstemninger, Mail, Kalender, Notater, Whiteboard, GIF'er, To-do og Memes. Genbygges hver nat.latest, nightly, nightly-<YYYYMMDD>, sha-<commit>

Image-bundlerne indeholder ikke længere Kanban eller Playbooks: installer dem fra deres egen GitHub-udgivelse (se nedenfor), hvis du ønsker dem. En server, der allerede har en af dem installeret, beholder den ved opgradering.

Webstedets compose-fil bruger antimatter-next, fordi GIF-tjenesten og de fleste af de apps, der er beskrevet på dette websted, kun findes i det billede. For at skifte billede, sæt ANTIMATTER_IMAGE i .env og kør docker compose up -d.

latest ændrer sig under dig. I produktion, fastgør en tag som nightly-20261015 eller sha-<commit>, og ændr den bevidst, når du opgraderer. Serveren opgraderer sin database, når den starter, så du kan ikke gå tilbage til et ældre billede, eller fra antimatter-next til antimatter, uden at gendanne en sikkerhedskopi, der er taget før. Se Sikkerhedskopier og opgraderinger.

Inde i billedet

  • Serveren befinder sig i /antimatter, med binærerne antimatter og amctl i /antimatter/bin (på PATH).
  • Den kører som den uprivilegerede bruger antimatter (uid 2000) på en minimal distroless-basis, uden shell.
  • Porte: 8065 (web og API), 8067 (metrics), 8074 (cluster), 8443 UDP og TCP (opkald).
  • Lokal tilstand (ServiceSettings.EnableLocalMode) er slået til, så amctl --local fungerer inde i containeren. Sundhedstjekket kører amctl system status --local.
  • De medfølgende apps ligger i /antimatter/prepackaged_plugins og er signerede med Antimatters app-signeringsnøgle.
  • Værktøjer til tekstudtrækning (pdftotext, wvText, unrtf, tidy) er inkluderet, så indholdet i uploadede dokumenter kan søges i.

Andre compose-filer

Repositoryet antimatter-docker indeholder en produktionsopsætning i deploy/compose/: nginx med egne certifikater eller Let's Encrypt (certbot), PostgreSQL, den valgfri GIF-tjeneste (profil gifs) og navngivne volumes til serverens konfiguration, data og logs, som er dokumenteret i README-filen. Den bruger som standard den stabile image og gemmer filer på en lokal volume i stedet for S3-lager. Brug den, hvis du foretrækker nginx frem for Caddy, eller hvis du allerede har certifikater.

Opret den første administrator

Åbn SITE_URL i din browser og opret en konto. Den første konto, der oprettes på en ny server, bliver systemadministrator, og opsætningen guider dig derefter gennem oprettelsen af din første fællesskab (Antimatters betegnelse for et team eller et arbejdsområde).

Gør det umiddelbart efter den første start: indtil da bliver den, der når til serveren først, dens administrator. Hvis du i stedet vil oprette kontoen fra kommandolinjen, før serveren er tilgængelig udefra:

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 derefter ind på SITE_URL. Start kommandoen med et mellemrum for at holde adgangskoden ude af din shell-historik (med HISTCONTROL=ignorespace), eller ændr adgangskoden, når du er logget ind.

Næste skridt, når du er kommet ind:

  1. For en virksomhed eller organisation skal du angive Type af nye fællesskaber til Arbejdsområde og ændre typen af et fællesskab, du allerede har oprettet, i dets indstillinger: Guild eller arbejdsområde.
  2. Afgør, hvem der kan oprette konti: Login og konti.
  3. Konfigurer e-mail, så invitationer og nulstilling af adgangskode fungerer: E-mail og push-notifikationer.
  4. Åbn opkaldsporten i din firewall: Opkald og lyd.
  5. Tjek, hvilke apps der er slået til: Medfølgende apps.

Download et release

Uden Docker, installer Antimatter fra filerne i et release på GitHub: github.com/AntimatterChat/antimatter/releases. Hvert release har et versionsnummer som 0.9.0, og dets tag er det samme nummer med et v foran (v0.9.0).

Antimatter er i beta: udgaverne er i 0.9.0-serien. En udgave, hvis version har et suffiks efter en bindestreg, f.eks. 0.9.0-rc.1, er markeret med Pre-release på GitHub. Det er en testversion, der udgives, før den endelige udgave.

Hver udgave har disse filer til amd64- og arm64-servere:

FilHvad det er
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.debPakken til Debian, Ubuntu og distributioner baseret på dem.
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpmPakken til Fedora, RHEL og distributioner, der er kompatible med RHEL.
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gzUdgavearkivet til enhver Linux-distribution, opsat manuelt.
SHA256SUMSSHA-256-tjeksummen for hver fil i udgaven.

Pakkerne og arkivet indeholder det samme program: serveren (antimatter), kommandolinjeværktøjet (amctl), begge webapps (den standardgrænseflade og den klassiske), de medfølgende apps, e-mail-skabelonerne og oversættelserne. Pakkerne tilføjer en systemd-tjeneste og en indstillingsfil, så hver er en alt-i-ét-installation: du skal kun tilføje en PostgreSQL-database. Der er ingen separate binærdownload: binærerne er i arkivet i antimatter/bin/. De er statiske, så de kan køres på enhver Linux-distribution af deres arkitektur.

I pakkenavnene bliver bindestreget i en pre-release-version til en tilde, så pakkeforvalteren sorterer en pre-release før den endelige udgave: version 0.9.0-rc.1 giver antimatter_0.9.0~rc.1-1_amd64.deb og antimatter-0.9.0~rc.1-1.x86_64.rpm. Arkivet beholder bindestreget.

antimatter version udskriver udgaveversionen som Bygnummer, med commit, den blev bygget fra, som Byg-hash. Dens Version-linje er versionen af Mattermost-linjen, Antimatter er baseret på.

Tjek downloadet

Download den fil, du har brug for, og SHA256SUMS til samme mappe, fra udgavesiden eller med curl, og tjek derefter 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 har downloadet, skal være opført med OK. ethvert andet resultat betyder, at filen er beskadiget eller ufuldstændig: download den igen, og installer den ikke. SHA256SUMS er ikke signeret: det opdager et beskadiget download og beviser ikke mere, end HTTPS-downloadet fra GitHub gør.

Installer .deb- eller .rpm-pakken

Pakken installerer Antimatter som en systemd-tjeneste, som kun har brug for en database for at starte. Brug den på en 64-bit Debian-, Ubuntu-, Fedora- eller RHEL-kompatibel server med systemd.

Hvad pakken installerer

StiIndhold
/opt/antimatterProgrammet: bin/antimatter, bin/amctl, webapps (client/, client-fusion/), de medfølgende apps (prepackaged_plugins/), skabeloner, oversættelser og skrifttyper. Hver opgradering erstatter dem.
/etc/antimatter/antimatter.envTjenestens indstillinger som AM_-variabler: databasen, webadressen og GIF-tjenesten. Kun root kan læse dem. Opgraderinger bevarer dem.
/etc/antimatter/config/config.jsonKonfigurationsfilen, hvor serveren gemmer de indstillinger, der er ændret i Systemkonsolen. Den oprettes fra /opt/antimatter/defaults/config.json ved den første installation og erstattes aldrig bagefter.
/var/lib/antimatterUploadede filer (data/) og installerede apps (plugins/, client-plugins/).
/var/log/antimatterLogfiler, hvis du slår logning til fil til. Den er slået fra: loggen går til journalen.
/usr/lib/systemd/system/antimatter.serviceTjenesten.
/usr/bin/amctlEt link til /opt/antimatter/bin/amctl.

Mappene, som serveren skriver til i /opt/antimatter (config, data, plugins, client/plugins og logs), er links til /etc/antimatter, /var/lib/antimatter og /var/log/antimatter. En opgradering, som erstatter /opt/antimatter, rører derfor aldrig dine data. Pakken opretter også systembrugeren antimatter, som kører serveren og ejer disse mapper.

Pakken er afhængig af 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 udgivelse (se nedenfor). apt og dnf installerer anbefalede pakker, når de finder dem. Den foreslår poppler-utils, wv, unrtf og tidy (ingen wv for .rpm): de udtrækker tekst fra uploadede dokumenter, så søgning finder ord i dem. Installer dem selv, hvis du vil have det.

1. Installer pakkerne

Hent Antimatter-pakken og GIF-tjenestens pakke for din arkitektur, tjek dem som vist ovenfor, og installer begge i én kommando, så anbefalingen af gifs-server opfyldes (den findes ikke i distributionernes pakkehåndterere):

# 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 ./: det fortæller apt og dnf, at de skal installere en lokal fil. For at installere uden GIF-tjenesten, udelader du dens pakke. Pakken aktiverer antimatter-tjenesten, men starter den ikke, og viser de næste trin.

2. Opret databasen

Antimatter kræver PostgreSQL 15 eller nyere, enten på denne server eller på en anden. Tjek din distributions version af PostgreSQL med psql --version. Hvis den er ældre, installerer du en nyere version fra PostgreSQL-projektets egne repositories, eller du bruger en database på en anden server. På Debian og Ubuntu starter postgresql-pakken databasen. På Fedora og RHEL skal du først oprette og starte den:

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

Opret derefter en bruger og en database til 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 skal acceptere forbindelser med adgangskode fra 127.0.0.1: host-linjerne i pg_hba.conf-filen, med scram-sha-256-metoden.

3. Indstil databasen og webstedets URL

Rediger /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Fjern # foran de linjer, du bruger, og indstil databasen og adressen, som folk vil åbne:

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 indstilling i konfigurationen kan placeres i denne fil som AM_<SECTION>_<SETTING>: for eksempel er SqlSettings.DataSource AM_SQLSETTINGS_DATASOURCE. En indstilling, der er sat her, kan ikke ændres i Systemkonsolen. Se Konfiguration. Genstart serveren efter hver ændring: sudo systemctl restart antimatter.

Tjenesten sætter også nogle standardværdier, som en linje i antimatter.env kan overskrive: logning til filer er slået fra (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), og lokal tilstand er slået til (AM_SERVICESETTINGS_ENABLELOCALMODE=true), så amctl --local virker på serveren.

4. Start den

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

Ved første start opretter serveren sine tabeller og lytter derefter på port 8065. Åbn http://<server>:8065, eller dit domæne, når en reverse proxy er sat op (se Domæne og HTTPS), og opret straks den første konto: Den bliver systemadministrator. Hvis du i stedet vil oprette den fra kommandolinjen, skal du bruge amctl-kommandoerne fra Opret den første administrator, hvor sudo -u antimatter amctl --local erstatter docker compose exec antimatter amctl --local.

5. Slå GIFs til

GIFs-appen er inkluderet og slået til, og antimatter.env peger allerede på GIF-tjenesten på samme server (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Den mangler dog stadig tjenestens API-nøgle. gifs-server-pakken genererede en nøgle under 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

Indtast nøglen i antimatter.env som AM_GIFS_API_KEY=<key> og genstart Antimatter, eller indtast den som API-nøgle i Systemkonsol › Plugins › GIFs. Hvis GIF-tjenesten kører på en anden server, skal du angive adressen til den i AM_GIFS_SERVICE_URL. Hvis du vil lade brugere tilføje deres egne GIFs og stickers, kan du se GIFs.

Tjenesten

  • Den kører som antimatter-bruger i /opt/antimatter og læser /etc/antimatter/antimatter.env. systemd genstarter serveren, når den stopper, og giver den op til en time til at starte, da database-migrationer for en ny version kan tage lang tid.
  • Logfilerne findes i journalen: journalctl -u antimatter.
  • Den er forstærket: /usr og /etc er kun-læs for serveren, undtagen /etc/antimatter/config, og den kan ikke se /home, /root eller /run/user. Hvis du flytter filopbevaringen (FileSettings.Directory), skal du vælge en mappe uden for disse, som ejes af antimatter.
  • Opgraderinger erstatter tjenestefilen. Hvis du vil ændre den, skal du bruge sudo systemctl edit antimatter, som bevarer dine ændringer i en separat fil.

Opgrader en pakke

  1. Tag en sikkerhedskopi (se Sikkerhedskopier og opgraderinger).
  2. Hent den nye pakke og SHA256SUMS, og verificer dem.
  3. Stop serveren, installer den nye pakke oven på den gamle, og start 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

Pakken genstarter ikke serveren automatisk. Efter en opgradering vises Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: Hvis du ikke stoppede serveren først, skal du genstarte den straks. Opgraderingen erstatter /opt/antimatter og servicefilen, men bevarer antimatter.env, config.json, /var/lib/antimatter og logfilerne. Når serveren starter, opgraderes databasen, og de nyere versioner af de medfølgende apps installeres.

Hvis en ny version ændrer standarden for antimatter.env, spørger apt, om du vil beholde din version: Bevar den. dnf bevarer din version og gemmer den nye som /etc/antimatter/antimatter.env.rpmnew. Opgraderinger sker kun fremad: Installer ikke en ældre version over en nyere.

Fjern en pakke

sudo apt remove antimatter eller sudo dnf remove antimatter stopper og deaktiverer tjenesten og fjerner programmet. Det bevarer dataene (/var/lib/antimatter), konfigurationen (/etc/antimatter), databasen og antimatter-bruger: Slet dem selv for at fjerne Antimatter helt.

Apps i pakkerne og arkivet

Pakkerne og arkivet indeholder den seneste signerede udgivelse af disse apps i prepackaged_plugins/: AI-chat, opkald, GIFs, memes, noter, afstemninger, to-do, lydkanaler og whiteboard. Apps, der ikke havde en udgivelse, da serverudgivelsen blev bygget, er udeladt: ls /opt/antimatter/prepackaged_plugins viser, hvad din udgivelse indeholder. Memes og to-do er inkluderet, men ikke aktiveret: Indbyggede apps forklarer, hvordan du installerer og aktiverer dem.

Kanban og Playbooks er ikke længere bundtet med serveren eller med nogen af Docker-image-bundlerne: En server, der allerede har en af dem installeret, beholder den ved opgradering, og alle andre installerer den fra dens egen udgivelse, ligesom appsene nedenfor. De andre apps i Docker-image-bundlerne er heller ikke indeholdt i pakkerne eller arkivet: Mail, Kalender, GitHub, GitLab, Jira og Metrics. Installer hver af dem, herunder Kanban og Playbooks, fra deres egne udgivelser:

AppUdgaverApp-id
Kanbanantimatter-plugin-boardsfocalboard
Playbooksantimatter-plugin-playbooksplaybooks
E-mailantimatter-plugin-mailcom.antimatterchat.mail
Kalenderantimatter-plugin-calendarcom.antimatterchat.calendar
GitHubantimatter-plugin-githubgithub
GitLabantimatter-plugin-gitlabcom.github.manland.mattermost-plugin-gitlab
Jiraantimatter-plugin-jirajira
MålingerAntimatter-plugin-metricscom.mattermost.mattermost-plugin-metrics

Hver app-udgivelse indeholder appens bundle (en .tar.gz-fil), dens signatur (samme navn med .sig tilføjet) og en SHA256SUMS-fil. For at installere en app, tillad uploads, og tilføj derefter bundlen 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 at opgradere en app, der er installeret på denne måde, tilføjer du den nye bundle med plugin add --force: pakkeopgraderinger opgraderer kun de bundled apps. Du kan derefter fjerne linjen AM_PLUGINSETTINGS_ENABLEUPLOADS igen. Se Installation af andre apps for de andre måder at installere apps på.

App-signaturer

App-bundlerne er signeret med Antimatters app-signeringsnøgle: hver .tar.gz.sig-fil er en adskilt GPG-signatur af dens bundle. Serveren tjekker disse signaturer, før den installerer en bundlet app. For at tjekke en bundle 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 skal rapportere en god signatur fra Antimatter Plugin Signing med fingeraftrykket 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Den advarer også om, at nøglen ikke er certificeret med en betroet signatur: det er normalt for en nøgle, du ikke selv har signeret. En app-udgivelse uden .sig-filer er usigneret, og dens udgivelsesnoter nævner det.

Installer fra et release-arkiv

Arkivet, antimatter-<version>-linux-<arch>.tar.gz (for eksempel antimatter-0.9.0-linux-amd64.tar.gz), passer til en distribution uden .deb- eller .rpm-pakker, eller et layout, du selv har valgt. Det indeholder en enkelt antimatter/-mappe med bin/antimatter, bin/amctl, config/config.json, web-apps (client/ og client-fusion/), de bundled apps (prepackaged_plugins/, se ovenfor), e-mail-skabelonerne og oversættelserne.

1. Forbered PostgreSQL

Antimatter understøtter kun PostgreSQL, version 15 eller nyere (ældre versioner starter, men giver en fejl i loggen). Opret en bruger og en database:

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

2. Udpak 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

Peg serveren mod databasen, enten i /opt/antimatter/config/config.json (SqlSettings.DataSource) eller med miljøvariabler, og sæt webstedets 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 komplet standardkonfiguration: indstillinger, du ændrer i Systemkonsolen, gemmes tilbage til den. Hvis du i stedet vil opbevare konfigurationen i databasen, se Konfiguration.

3. Kør den som en service

En systemd-enhed 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

Sæt dine AM_-variabler i /etc/antimatter.env (kun læsbar af root), og derefter:

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

Serveren lytter på port 8065. Åbn http://<server>:8065, eller dit domæne, når en reverse proxy er sat op (se Domæne og HTTPS), og opret den første konto: den bliver systemadministrator.

bin/amctl administrerer den kørende server fra kommandolinjen. På selve serveren virker den uden logind via lokal tilstand: sæt AM_SERVICESETTINGS_ENABLELOCALMODE=true, og kør derefter sudo -u antimatter /opt/antimatter/bin/amctl --local system status.

For GIFs, installer GIF-tjenesten (se nedenfor) og sæt AM_GIFS_SERVICE_URL og AM_GIFS_API_KEY som i trin 5 i pakkerne.

GIF-tjenesten og push-proxy-pakkerne

GIF-tjenesten og push-proxyen har hver deres udgaver med de samme regler som serveren: et .tar.gz-arkiv, en .deb- og en .rpm-pakke til amd64 og arm64 samt en SHA256SUMS-fil. Versioner med bindestreg er forududgaver. Tjek downloadene med sha256sum --check --ignore-missing SHA256SUMS, som for serveren.

GIF-tjenesten (gifs-server)

Udgaver: github.com/AntimatterChat/gifs-server/releases. Arkivet er gifs-server-<version>-linux-<arch>.tar.gz, og pakkerne er navngivet 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, der kører som gifs-server-bruger og opbevarer sit katalog i /var/lib/gifs-server;
  • gifs-server-stickers-tjenesten, der importerer eller opdaterer stickerpakken i /usr/share/gifs-server/stickers, når du starter den, og derefter stopper;
  • dens indstillinger, /etc/gifs-server/gifs-server.env (AM_GIFS_-variabler, der bevares ved opgraderinger) og /etc/gifs-server/api-keys, med én API-nøgle pr. linje, hvor en tilfældig nøgle genereres ved den første installation.

Den lytter på 127.0.0.1:8080, så kun Antimatter på samme server kan nå den. Hvis Antimatter kører et andet sted, skal du sætte AM_GIFS_LISTEN=:8080 i gifs-server.env og begrænse adgang til porten med din firewall. Filen indeholder de øvrige indstillinger: AM_GIFS_UPLOAD_KEYS (nøglerne, der må tilføje GIF'er og stickers og slette de, der er tilføjet 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 bruger dem til at lave GIF-, video- og stickerformaterne, når den importerer eller modtager filer, og kører uden dem.

Som for serveren er tjenesten aktiveret, men ikke startet, ved installation. Start den som vist i trin 5 i pakkerne. Efter en opgradering skal du genstarte den: sudo systemctl restart gifs-server. Hvis du fjerner pakken, bevares kataloget i /var/lib/gifs-server.

Push-proxyen

Udgaver: github.com/AntimatterChat/push-proxy/releases. Arkivet er antimatter-push-proxy-<version>-linux-<arch>.tar.gz, og pakkerne har navnet antimatter-push-proxy. Pakken installerer /usr/bin/antimatter-push-proxy og tjenesten antimatter-push-proxy, som kører som brugeren antimatter-push-proxy og læser /etc/antimatter-push-proxy/antimatter-push-proxy.json (bevarer indstillinger ved opgradering). Apple- og Firebase-kredensialerne placeres i /etc/antimatter-push-proxy/certs: Push-notifikationer 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 indstillingsfilen er stierne relative til /etc/antimatter-push-proxy: for eksempel "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" og "ServiceFileLocation": "./certs/firebase-service-account.json". Sæt derefter Push-notifikationsserver i Antimatter til http://<proxy host>:8066. Efter en opgradering skal du genstarte den: sudo systemctl restart antimatter-push-proxy.

Push-proxyen lytter på port 8066 på alle adresser og tjekker ikke, hvem der ringer. Hold porten på et privat netværk, eller bag en reverse proxy, der begrænser adgang.

Andre serverkommandoer

Ud over at køre serveren (antimatter eller antimatter server) har binærfilen et par vedligeholdelseskommandoer. De læser samme konfiguration som serveren.

CommandHvad den gør
antimatter versionViser version, bygenummer, bygedato og byg-hash.
antimatter db pingTjekker, at databasen kan nås.
antimatter db initOpretter konfigurationen i databasen (med AM_CONFIG sat til en postgres://-URL).
antimatter db migrateAnvender databasemigrationer uden at starte serveren.
antimatter db versionViser den sidste migration, der er anvendt på databasen.
antimatter import bulk, antimatter export bulkImporterer eller eksporterer data i bulkformat (se Sikkerhedskopier og opgraderinger).