Konfiguration

Var Antimatter lagrar sina inställningar, de tre sätten att ändra dem (Systemkonsolen, miljövariabler, amctl) och var loggarna hamnar.

Var inställningarna finns

Varje serverinställning har ett namn som består av en sektion och en nyckel, till exempel ServiceSettings.SiteURL eller EmailSettings.SMTPServer. Tillsammans bildar de en konfiguration som lagras på ett av två ställen:

  • I databasen. Webbplatsens compose-fil anger AM_CONFIG till PostgreSQL:ans anslutnings-URL, så konfigurationen är en rad i databasen och behållaren lagrar inget på disken. Flera servrar som delar en databas delar också sin konfiguration.
  • I en fil. Utan AM_CONFIG läser servern config/config.json bredvid sin bin/-mapp (/antimatter/config/config.json i Docker-bilden). Releasearkivet och produktionscompose-filerna i antimatter-docker fungerar så, liksom .deb- och .rpm-pakkarna, vars fil är /etc/antimatter/config/config.json. Se till att denna fil endast är läsbar för serverns användare: den innehåller lösenord och nycklar.

AM_CONFIG (eller flaggan --config för kommandot antimatter) accepterar antingen en filväg eller en postgres://-URL. Inställningar som du inte anger får sitt standardvärde.

För att flytta en befintlig konfiguration från en fil till databasen, kör detta på servern och starta sedan servern med AM_CONFIG satt till samma URL:

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

Miljövariabler

Varje inställning kan också anges som en miljövariabel. Variabler har företräde framför den lagrade konfigurationen, vilket gör dem väl lämpade för det som hör till utrollningen: databasen, webbplatsens URL, filarkivet och portarna.

Namngivningsregel

Skriv AM_, sedan sektionen, sedan nyckeln, i versaler och med understreck som avgränsare. Orden inom ett sektion- eller nyckelnamn avgränsas inte:

InställningVariabel
ServiceSettings.SiteURLAM_SERVICESETTINGS_SITEURL
SqlSettings.DataSourceAM_SQLSETTINGS_DATASOURCE
EmailSettings.SMTPServerAM_EMAILSETTINGS_SMTPSERVER
PrivacySettings.EnableUserBlockingAM_PRIVACYSETTINGS_ENABLEUSERBLOCKING
  • Inställningar för sant och falskt tar true eller false; tal är enkla tal.
  • Listinställningar tar sina värden åtskilda med mellanslag, till exempel AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP".
  • Inställningar som är objekt tar JSON. Den enda sådana variabeln för appar är AM_PLUGINSETTINGS_PLUGINS, och den ersätter inställningarna för alla appar på en gång: ange appinställningar i Systemkonsolen eller med amctl istället (se nedan).
  • Äldre Mattermost-installationer använder prefixet MM_, till exempel MM_SQLSETTINGS_DATASOURCE. Det fungerar fortfarande som ett legacy-alias. Om båda är inställda har variabeln AM_ företräde.

En inställning som anges via en variabel är låst i Systemkonsolen, med anteckningen "Denna inställning har satts via en miljövariabel. Den kan inte ändras i Systemkonsolen." Den skrivs inte till den lagrade konfigurationen: ta bort variabeln så att det lagrade värdet gäller igen.

Med Docker Compose

Lägg till variabler under environment: för tjänsten antimatter, eller i en compose.override.yaml bredvid compose.yaml (Compose läser den automatiskt, och den kvarstår vid uppdateringar av den nedladdade filen):

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

Tillämpa ändringar med docker compose up -d, vilket återskapar containern.

Variabler som läses av apparna

Några variabler är inte inställningar och har inget fält i Systemkonsolen: AM_CONFIG (var konfigurationen finns), samt AM_AI_ENCRYPTION_KEY och AM_AI_ENCRYPTION_PREVIOUS_KEYS, nyckeln som krypterar API-nycklarna för modellanslutningar (se AI).

Några appar läser egna variabler, inställda på tjänsten antimatter: appen Samtal läser AM_CALLS_* (se Samtal och röst), och appen GIF läser AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY och AM_GIFS_UPLOAD_KEY (se Inbyggda appar).

Systemkonsolen

Systemkonsolen är administrationsområdet i webbappen, för systemadministratörer. För att öppna den, klicka på din bild i toppen av appens sidofält och välj Systemkonsol, eller gå till https://chat.example.com/admin_console. I dess sidofält finns en Sökinställningar-ruta som söker i alla sidor.

The System Console, with its sidebar of sections on the left and the SAML 2.0 settings page on the right.
Systemkonsolen. Sidofältet grupperar sidorna i sektioner som Reporting, User Management och Environment.

Dess sektioner är:

  • Rapporter: statistik och serverloggarna.
  • Hantera användare: användare, grupper, communityer (listade som team), kanaler, behörigheter och delegerad administration.
  • Systemattribut: anpassade profilattribut och attributbaserad åtkomst.
  • Miljö: webbserver, databas, filarkiv, bildproxy, SMTP, pushaviseringar, hastighetsbegränsning, loggning, sessionstider och prestandaövervakning.
  • Site-konfiguration: varumärkesanpassning, användare och team, aviseringar, inlägg, fildelning och andra serveromfattande inställningar.
  • Autentisering: registrering, inloggning med e-post och lösenord, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect och gäståtkomst.
  • AI: modellanslutningar och inbyggda AI-funktioner (omskrivning, sammanfattningar, automatisk översättning, text till tal). Se AI.
  • Plugins: apphantering och inställningar för varje installerad app.
  • Integrationer: webhooks, snedstreckskommandon, botkonton, GIF, text till tal, CORS.
  • Efterlevnad: databevarande, export och övervakning för efterlevnad, revisionsloggning och anpassade användarvillkor.
  • Experimentell: funktioner som kan ändras.

I denna guide anges en inställning som dess sökväg i Systemkonsolen, sedan dess etikett, sedan dess konfigurationsnyckel, till exempel Systemkonsol › Site-konfiguration › Användare och team › Aktivera ignorera, blockera och meddelandeförfrågningar (PrivacySettings.EnableUserBlocking).

De flesta ändringar gäller så snart du klickar på Spara. Vissa (lyssnande adress, vissa databas- och cacheinställningar) kräver en omstart, och det anges på sidan.

Arbetsplats eller community

Varje community har en typ, som anger vissa av dess standardinställningar:

  • Community, för en offentlig eller hobby-community: samtal är avstängda i dess kanaler (personer pratar i röstkanaler), och endast dess administratörer, och de roller som hanterar kanaler, arkiverar kanaler.
  • Arbetsplats, för ett företag eller en organisation: samtal är aktiverade i dess kanaler, och kanalens administratörer (den som skapade den, och de de gjort till administratörer) arkiverar den också.

Systemkonsol › Site-konfiguration › Användare och team › Typ av nya communities (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) är typen för de communities som skapas från och med nu: community (standard) eller workplace. En layoutmall som väljs när en community skapas anger dess egen typ. Varje communitys administratörer kan ändra dess typ senare, i Teaminställningar › Kanaler › Typ av community.

För ett företag, sätt det till Arbetsplats innan du skapar den första gemenskapen, eller innan du uppgraderar en befintlig server till 0.9.0: uppgraderingen ger varje befintlig gemenskap värdet som inställningen har vid det tillfället (se Uppgradering till 0.9.0).

Kommandoradsverktyget amctl

amctl hanterar en server från kommandoraden: användare, community, kanaler, appar, konfiguration, jobb och mer. Det kommunicerar med servern på ett av två sätt.

Lokalt läge, på servern

Lokalt läte låter amctl kommunicera med servern via en Unix-socket, utan inloggning. Det är aktiverat i Docker-bilden och i .deb- och .rpm-pakkagen. På en server installerad från ett arkiv, aktivera det med ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Socketen är /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
Den som kan använda socketen, eller köra docker compose exec på värdmaskinen, har fullständiga systemadministratörsrättigheter.

Fjärr, med ett konto

Från valfri maskin, logga in med ett systemadministratörskonto (eller ett personligt åtkomsttoken) och kör sedan kommandon mot den servern:

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

Konfigurationskommandon

KommandoVad den gör
amctl config get ServiceSettings.SiteURLVisar en inställning.
amctl config set TeamSettings.EnableOpenServer falseÄndrar en inställning. Listinställningar tar flera värden.
amctl config patch settings.jsonSlår ihop en JSON-fil med inställningar i konfigurationen.
amctl config showVisar hela konfigurationen som JSON.
amctl config editÖppnar konfigurationen i din editor ($EDITOR).
amctl config resetÅterställer inställningar till sina standardvärden.
amctl config reloadLäser in konfigurationen från där den lagras, efter en ändring som gjorts utanför servern.

Appinställningar finns under PluginSettings.Plugins.<app id>, med nycklar i gemina bokstäver. Till exempel, för att ställa in GIF-appens tjänst-URL och nyckel från Docker-värden:

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

Andra användbara kommandon: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket och amctl logs. Kör amctl help <command> för respektive kommandos alternativ.

Loggar

Servern skriver loggen till två platser, var och en med sin egen nivå (DEBUG, INFO, WARN eller ERROR), som anges i Systemkonsol › Miljö › Loggning:

MålInställningarStandardvärden
Konsolen (standardutmatning)Skicka loggar till konsolen (LogSettings.EnableConsole), Loggnivå för konsol (LogSettings.ConsoleLevel), Output console logs som JSON (LogSettings.ConsoleJson)på, DEBUG, JSON
En fil, antimatter.logFilnamn på loggfil (LogSettings.EnableFile), Lognivå (LogSettings.FileLevel), Filkatalogen för loggar (LogSettings.FileLocation)på, INFO, mappen logs/ intill bin/

Loggfiler roteras vid 100 MB och de gamla komprimeras.

Webbplatsens compose-fil stänger av filloggning (AM_LOGSETTINGS_ENABLEFILE=false), så loggarna finns endast i behållarens utmatning:

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

Konsollnivån är som standard DEBUG, vilket är detaljerat. På en travig server, sätt AM_LOGSETTINGS_CONSOLELEVEL=INFO. config.json i releasearkivet och i pakkagen är redan inställd på INFO. Med ett releasearkiv under systemd, går konsollutmatningen till journalen (journalctl -u antimatter) och filen till /opt/antimatter/logs/antimatter.log. Pakkagen stänger av filloggning, så deras loggar finns bara i journalen.

När filloggning är påslaget kan systemadministratörer också läsa de senaste loggraderna i Systemkonsol › Rapportering › Serverloggar, eller med amctl logs.