Konfigurasjon

Hvor Antimatter lagrer innstillingene, de tre måtene å endre dem på (Systemkonsoll, miljøvariabler, amctl) og hvor loggene havner.

Hvor innstillingene ligger

Hver serverinnstilling har et navn bestående av en seksjon og en nøkkel, for eksempel ServiceSettings.SiteURL eller EmailSettings.SMTPServer. Sammen danner de én konfigurasjon, som lagres på ett av to steder:

  • I databasen. Stedets compose-fil setter AM_CONFIG til PostgreSQL-forbindelses-URL-en, slik at konfigurasjonen er en rad i databasen og beholderen ikke lagrer noe på disken. Flere servere som deler én database, deler også konfigurasjonen sin.
  • I en fil. Uten AM_CONFIG leser serveren config/config.json ved siden av bin/-mappen (/antimatter/config/config.json i Docker-bildet). Utgavearkivet og produksjonscompose-filene i antimatter-docker fungerer på denne måten, og det samme gjør .deb- og .rpm-pakkene, hvis fil er /etc/antimatter/config/config.json. Hold denne filen kun lesbar for serverens bruker: den inneholder passord og nøkler.

AM_CONFIG (eller --config-flagget til antimatter-kommandoen) godtar enten en filsti eller en postgres://-URL. Innstillinger du utelater, får standardverdien.

For å flytte en eksisterende konfigurasjon fra en fil til databasen, kjør dette på serveren, og start deretter serveren med AM_CONFIG satt til samme URL:

amctl --local config migrate /opt/antimatter/config/config.json \
    "postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"

Miljøvariabler

Enhver innstilling kan også gis som en miljøvariabel. Variablene har forrang over den lagrede konfigurasjonen, noe som gjør dem velegnet for det som hører til utrollingen: databasen, stedets URL, filopplagringen og portene.

Navngivningsregel

Skriv AM_, deretter seksjonen, deretter nøkkelen, i store bokstaver og separert med understreker. Ordene i en seksjons- eller nøkkelnavn er ikke separert:

InnstillingVariabel
ServiceSettings.SiteURLAM_SERVICESETTINGS_SITEURL
SqlSettings.DataSourceAM_SQLSETTINGS_DATASOURCE
EmailSettings.SMTPServerAM_EMAILSETTINGS_SMTPSERVER
PrivacySettings.EnableUserBlockingAM_PRIVACYSETTINGS_ENABLEUSERBLOCKING
  • Innstillinger som er sanne eller falske, tar true eller false; tall er vanlige tall.
  • Listeinnstillinger tar verdiene sine separert med mellomrom, for eksempel AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP".
  • Innstillinger som er objekter, tar JSON. Den eneste slike variabelen for apper er AM_PLUGINSETTINGS_PLUGINS, og den erstatter innstillingene for alle apper samtidig: sett appinnstillingene i Systemkonsollen eller med amctl i stedet (se nedenfor).
  • Tidligere Mattermost-installasjoner bruker prefikset MM_, for eksempel MM_SQLSETTINGS_DATASOURCE. Det fungerer fortsatt som et arvelig alias. Når begge er satt, vinner AM_-variabelen.

En innstilling som er gitt av en variabel er låst i Systemkonsollen, med merknaden «Denne innstillingen er satt gjennom en miljøvariabel. Den kan ikke endres gjennom Systemkonsollen.» Den skrives ikke til den lagrede konfigurasjonen: fjern variabelen, og den lagrede verdien gjelder igjen.

Med Docker Compose

Legg til variabler under environment: for antimatter-tjenesten, eller i en compose.override.yaml ved siden av compose.yaml (Compose leser den automatisk, og den overlever oppdateringer av den nedlastede filen):

services:
  antimatter:
    environment:
      AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
      AM_EMAILSETTINGS_SMTPPORT: "587"
      AM_LOGSETTINGS_CONSOLELEVEL: INFO

Bruk docker compose up -d for å anvende endringer, noe som lager containeren på nytt.

Variabler som leses av appene

Noen variabler er ikke innstillinger og har ingen felt i Systemkonsollen: AM_CONFIG (hvor konfigurasjonen ligger), og AM_AI_ENCRYPTION_KEY og AM_AI_ENCRYPTION_PREVIOUS_KEYS, nøkkelen som krypterer API-nøklene for modelltilkoblinger (se AI).

Noen apper leser sine egne variabler, som er satt på antimatter-tjenesten: Calls-appen leser AM_CALLS_* (se Samtaler og tale), og GIFs-appen leser AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY og AM_GIFS_UPLOAD_KEY (se Inkluderte apper).

Systemkonsollen

Systemkonsollen er administrasjonsområdet i nettappen, for systemadministratorer. For å åpne den, klikk på bildet ditt øverst i appens sidefelt og velg Systemkonsoll, eller gå til https://chat.example.com/admin_console. Sidefeltet har en Finn innstillinger-boks som søker på alle sider.

The System Console, with its sidebar of sections on the left and the SAML 2.0 settings page on the right.
Systemkonsollen. Sidefeltet grupperer sidene i seksjoner som Reporting, User Management og Environment.

Seksjonene er:

  • Rapportering: statistikk og serverlogger.
  • Brukeradministrasjon: brukere, grupper, samfunn (listet som team), kanaler, tillatelser og delegert administrasjon.
  • Systemattributter: egendefinerte profilattributter og attributtbasert tilgang.
  • Miljø: webserver, database, filopplagring, bildeproxy, SMTP, pushvarsler, hastighetsbegrensning, logging, sessjonslengder og ytelsesovervåking.
  • Nettstedsoppsett: merkevare, brukere og team, varsler, innlegg, fildeling og andre serveromfattende oppførsler.
  • Autentisering: registrering, pålogging med e-post og passord, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect og gjestetilgang.
  • AI: modelltilkoblinger og innebygde AI-funksjoner (omskrivning, oppsummeringer, automatisk oversettelse, tekst til tale). Se AI.
  • Plugins: appadministrasjon og innstillingene for hver installert app.
  • Integrasjoner: webhooks, skråstrek-kommandoer, bot-kontoer, GIF-er, tekst til tale, CORS.
  • Samsvar: dataoppbevaring, samsvarseksport og -overvåking, revisjonslogging og egendefinerte vilkår og betingelser.
  • Eksperimentell: funksjoner som kan endres.

I denne veiledningen skrives en innstilling som stien i Systemkonsollen, deretter etiketten, deretter konfigurasionstasten, for eksempel Systemkonsoll › Nettstedsoppsett › Brukere og team › Aktiver ignorering, blokkering og meldingsforespørsler (PrivacySettings.EnableUserBlocking).

De fleste endringene gjelder så snart du klikker på Lagre. Noen (lytteadressen, noen database- og cacheinnstillinger) krever en omstart, og siden sier dette.

Arbeidsplass eller fellesskap

Hvert fellesskap har en type, som setter noen av standardinnstillingene:

  • Fellesskap, for et offentlig eller hobbyfellesskap: samtaler er slått av i kanalene (folk snakker i talekanaler), og bare administratorne, og rollene som administrerer kanaler, arkiverer kanaler.
  • Arbeidsplass, for et selskap eller en organisasjon: samtaler er slått på i kanalene, og kanalens administratorer (den som opprettet den, og de de har gjort til administratorer) arkiverer den også.

Systemkonsoll › Nettstedsoppsett › Brukere og team › Type for nye fellesskap (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) er typen for fellesskapene som opprettes fra nå av: community (standard) eller workplace. Et layoutforvalg valgt når et fellesskap opprettes, setter sin egen type. Hvert fellesskaps administratorer kan endre typen senere, i Teaminnstillinger › Kanaler › Type for fellesskap.

For et selskap, sett dette til Arbeidsplass før du oppretter det første samfunnet, eller før du oppgraderer en eksisterende server til 0.9.0: oppgraderingen gir alle eksisterende samfunn verdien innstillingen har på det tidspunktet (se Oppgradering til 0.9.0).

Kommandolinjeværktøyet amctl

amctl administrerer en server fra kommandolinjen: brukere, samfunn, kanaler, apper, konfigurasjon, jobber og mer. Den kommuniserer med serveren på én av to måter.

Lokal modus, på serveren

Lokal modus lar amctl snakke med serveren gjennom en Unix-socket, uten å logge inn. Den er aktiv i Docker-bildet og i .deb- og .rpm-pakkene. På en server installert fra et arkiv, aktiveres den med ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Socketen er /var/tmp/antimatter_local.socket som standard (ServiceSettings.LocalModeSocketLocation).

# with Docker Compose
docker compose exec antimatter amctl --local system status
# with a release archive
sudo -u antimatter /opt/antimatter/bin/amctl --local system status
# with the .deb or .rpm package
sudo -u antimatter amctl --local system status
Alle som kan bruke socketen, eller kjøre docker compose exec på vertsmaskinen, har full systemadministratorrett.

Fjern, med en konto

Fra en hvilken som helst maskin, logg inn med en systemadministrator-konto (eller et personlig tilgangstoken), og kjør deretter kommandoer mot den serveren:

amctl auth login https://chat.example.com --name prod --username admin
amctl system status

Konfigurasjonskommandoer

KommandoHva det gjør
amctl config get ServiceSettings.SiteURLSkriver ut én innstilling.
amctl config set TeamSettings.EnableOpenServer falseEndrer én innstilling. Listeinnstillinger tar flere verdier.
amctl config patch settings.jsonSlår sammen en JSON-fil med innstillinger i konfigurasjonen.
amctl config showSkriver ut hele konfigurasjonen som JSON.
amctl config editÅpner konfigurasjonen i editor din ($EDITOR).
amctl config resetTilbakestiller innstillingene til standardverdiene.
amctl config reloadLaster inn konfigurasjonen fra der den er lagret, etter en endring gjort utenfor serveren.

Appinnstillinger ligger under PluginSettings.Plugins.<app id>, med nøkler i små bokstaver. For eksempel, for å sette GIFs-appens tjeneste-URL og nøkkel fra Docker-verten:

docker compose exec -T antimatter amctl --local config patch /dev/stdin <<'EOF'
{"PluginSettings": {"Plugins": {"com.antimatterchat.gifs": {
  "serviceurl": "http://gifs:8080/v2",
  "apikey": "the GIFS_API_KEY of your .env"
}}}}
EOF

Andre nyttige kommandoer: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket og amctl logs. Kjør amctl help <command> for hver sin valgmulighet.

Logger

Serveren skriver loggen sin til to steder, der hvert har sitt eget nivå (DEBUG, INFO, WARN eller ERROR), som settes i Systemkonsoll › Miljø › Logging:

MålInnstillingerStandardverdier
Konsollen (standardutdata)Skriv ut logger til konsoll (LogSettings.EnableConsole), Konsollloggnivå (LogSettings.ConsoleLevel), Skriv ut konsolllogger som JSON (LogSettings.ConsoleJson)på, DEBUG, JSON
En fil, antimatter.logSkriv ut logger til fil (LogSettings.EnableFile), Filloggnivå (LogSettings.FileLevel), Filloggmappe (LogSettings.FileLocation)på, INFO, logs/-mappen ved siden av bin/

Loggfiler roteres ved 100 MB, og de gamle komprimeres.

Nettstedets compose-fil slår av fillogging (AM_LOGSETTINGS_ENABLEFILE=false), så loggene finnes bare i containerens utdata:

docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error

Konsollnivået er DEBUG som standard, som er detaljert. På en travl server, sett AM_LOGSETTINGS_CONSOLELEVEL=INFO. config.json i utgavearkivet og i pakkene er allerede satt til INFO. Med et utgavearkiv under systemd, går konsollutskriften til journalen (journalctl -u antimatter) og filen til /opt/antimatter/logs/antimatter.log. Pakkene slår av fillogging, så loggene deres finnes bare i journalen.

Når fillogging er slått på, kan systemadministratorer også lese de siste logglinjene i Systemkonsoll › Rapportering › Serverlogger, eller med amctl logs.