Konfiguration
Hvor Antimatter opbevarer sine indstillinger, de tre måder at ændre dem på (Systemkonsol, miljøvariabler, amctl) og hvor logfilerne befinder sig.
Hvor indstillingerne befinder sig
Hver serverindstilling har et navn bestående af en sektion og en nøgle, f.eks. ServiceSettings.SiteURL eller EmailSettings.SMTPServer. Tilsammen udgør de én konfiguration, der opbevares ét af to steder:
- I databasen. Saitets compose-fil sætter
AM_CONFIGtil PostgreSQL-forbindelses-URL'en, så konfigurationen er en række i databasen, og containeren opbevarer intet på disken. Flere servere, der deler én database, deler også deres konfiguration. - I en fil. Uden
AM_CONFIGlæser serverenconfig/config.jsonved siden af sinbin/-mappe (/antimatter/config/config.jsoni Docker-billedet). Releasearkivet og produktionscompose-filerne i antimatter-docker fungerer på denne måde, ligesom .deb- og .rpm-pakkerne, hvis fil er/etc/antimatter/config/config.json. Sørg for, at denne fil kun kan læses af serverens bruger: Den indeholder adgangskoder og nøgler.
AM_CONFIG (eller --config-flagget for antimatter-kommandoen) accepterer enten en filsti eller en postgres://-URL. Indstillinger, du udelader, får deres standardværdi.
For at flytte en eksisterende konfiguration fra en fil til databasen, kør dette på serveren, og start derefter serveren med AM_CONFIG sat 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 indstilling kan også angives som en miljøvariabel. Variablerne har forrang over den opbevarede konfiguration, hvilket gør dem velegnede til det, der hører til udrulningen: databasen, saitet URL, filopbevaringen og portene.
Navngivningsregel
Skriv AM_, derefter sektionen, derefter nøglen, med store bogstaver og adskilt med understreger. Ordene inden for en sektion eller nøglenavn adskilles ikke:
| Indstilling | Variabel |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- Indstillinger for sandt og falsk tager
trueellerfalse; tal er almindelige tal. - Listeindstillinger tager deres værdier adskilt med mellemrum, f.eks.
AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP". - Indstillinger, der er objekter, tager JSON. Den eneste sådan variabel for apps er
AM_PLUGINSETTINGS_PLUGINS, og den erstatter indstillingerne for alle apps på én gang: Sæt app-indstillinger i Systemkonsolen eller medamctli stedet (se nedenfor). - Ældre Mattermost-installationer bruger
MM_-præfikset, for eksempelMM_SQLSETTINGS_DATASOURCE. Det fungerer stadig som et legacy alias. Hvis begge er sat, vinderAM_-variablen.
En indstilling, der er angivet via en variabel, er låst i Systemkonsolen med bemærkningen "Denne indstilling er blevet sat via en miljøvariabel. Den kan ikke ændres via Systemkonsolen." Den skrives ikke til den gemte konfiguration: fjern variabelen, og den gemte værdi gælder igen.
Med Docker Compose
Tilføj variabler under environment: for antimatter-tjenesten, eller i en compose.override.yaml ved siden af compose.yaml (Compose læser den automatisk, og den overlever opdateringer af den downloadede fil):
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_LOGSETTINGS_CONSOLELEVEL: INFO
Anvend ændringerne med docker compose up -d, som genopretter containeren.
Variabler læst af apps
Nogle få variabler er ikke indstillinger og har ingen felt i Systemkonsolen: AM_CONFIG (hvor konfigurationen befinder sig) samt AM_AI_ENCRYPTION_KEY og AM_AI_ENCRYPTION_PREVIOUS_KEYS, som er nøglen, der krypterer API-nøglerne for modelforbindelser (se AI).
Nogle apps læser deres egne variabler, som er sat på antimatter-tjenesten: Calls-appen læser AM_CALLS_* (se Opkald og lyd), og GIFs-appen læser AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY og AM_GIFS_UPLOAD_KEY (se Indbyggede apps).
Systemkonsolen
Systemkonsolen er administrationsområdet i webappen, beregnet til systemadministratorer. For at åbne den, klikker du på dit billede øverst i appens sidebjælke og vælger Systemkonsol, eller du går til https://chat.example.com/admin_console. Dens sidebjælke har et Find indstillinger-felt, der søger på alle sider.

Dens sektioner er:
- Rapportering: statistik og serverlogs.
- Brugerstyring: brugere, grupper, fællesskaber (vist som Teams), kanaler, rettigheder og delegeret administration.
- Systemattributter: brugerdefinerede profilattributter og attributbaseret adgang.
- Miljø: webserver, database, filopbevaring, billedproxy, SMTP, pushnotifikationer, rate limiting, logning, sessionlængder og ydelsesovervågning.
- Sitekonfiguration: branding, brugere og teams, notifikationer, indlæg, fildeling og andre serverbrede opførsler.
- Autentificering: tilmelding, login med e-mail og adgangskode, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect og gæstetilgang.
- AI: modelforbindelser og de indbyggede AI-funktioner (omskrivning, opsummeringer, automatisk oversættelse, tekst til tale). Se AI.
- Plugins: appadministration og indstillingerne for hver installeret app.
- Integrationer: webhooks, skråstregskommandoer, bot-konti, GIF'er, tekst til tale, CORS.
- Overholdelse: dataopbevaring, compliance-eksport og -overvågning, auditlogning og brugerdefinerede servicevilkår.
- Eksperimentel: funktioner, der kan ændres.
I denne guide skrives en indstilling som dens sti i Systemkonsollen, derefter dens etiket, og derefter dens konfigurationsnøgle, for eksempel Systemkonsol › Sitekonfiguration › Brugere og teams › Aktivér ignorering, blokering og beskedanmodninger (PrivacySettings.EnableUserBlocking).
De fleste ændringer træder i kraft, så snart du klikker på Gem. Nogle få (lytteadresse, visse database- og cacheindstillinger) kræver en genstart, og siden oplyser om dette.
Fællesskab eller arbejdsområde
Hvert fællesskab har en type, der sætter nogle af dets standardindstillinger:
- Fællesskab, for et offentligt fællesskab eller hobbygruppe: Opkald er slået fra i kanalerne (man taler i lydkanaler), og kun administratorer og de roller, der administrerer kanaler, kan arkivere kanaler.
- Arbejdsområde, for en virksomhed eller organisation: Opkald er slået til i kanalerne, og kanaladministratorer (dem, der oprettede kanalen, og dem, de har gjort til administratorer) kan også arkivere den.
Systemkonsol › Sitekonfiguration › Brugere og teams › Type af nye fællesskaber (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) er typen af de fællesskaber, der oprettes herefter: Fællesskab (standard) eller Arbejdsområde; indstillingen gemmer og læser stadig de ældre værdier community og workplace. En layoutforudindstilling, der vælges ved oprettelse af et fællesskab, sætter dets egen type. Administratorer for hvert fællesskab kan ændre dets type senere under Teamindstillinger › Generelt. Nye fællesskaber sætter alle i alle kanaler (TeamSettings.AllChannelsMembershipForNewTeams) er standard kun for nye fællesskaber: arbejdsområder starter aldrig på denne måde (se Alle i alle kanaler).
Beskeder, der brændes ved læsning
Brugere kan sende beskeder, der slettes et stykke tid efter, at hver læser har åbnet dem (se Beskeder, der slettes ved læsning). Indstillingerne findes i Systemkonsol › Sitekonfiguration › Indlæg under Beskeder, der slettes ved læsning:
| Indstilling | Nøgle og variabel | Standard |
|---|---|---|
| Aktivér brænd-ved-læsning-beskeder | ServiceSettings.EnableBurnOnRead, AM_SERVICESETTINGS_ENABLEBURNONREAD | til |
| Brænd-ved-læsning-varighed: hvor længe en besked er tilgængelig, efter at den er åbnet, hvis afsenderen ikke har valgt en varighed | ServiceSettings.BurnOnReadDurationSeconds, AM_SERVICESETTINGS_BURNONREADDURATIONSECONDS | 600 (10 minutter) |
| Længste varighed, afsendere kan vælge: fra 1 time til 7 dage; længere valg forkortes til denne værdi | ServiceSettings.BurnOnReadMaximumDurationSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMDURATIONSECONDS | 86400 (1 dag) |
| Maksimal levetid for beskeder med funktionen 'Slet efter læsning': en besked slettes efter denne tid, siden den blev sendt, selvom ikke alle har læst den | ServiceSettings.BurnOnReadMaximumTimeToLiveSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMTIMETOLIVESECONDS | 604800 (7 dage) |
Den længste varighed kontrolleres igen, når en besked læses, så en sænkning af denne værdi forkorter også levetiden for allerede sendte beskeder.
The amctl command-line tool
amctl manages a server from the command line: users, communities, channels, apps, configuration, jobs and more. It talks to the server in one of two ways.
Local mode, on the server
Lokal tilstand gør det muligt for amctl at kommunikere med serveren via en Unix-socket uden at logge ind. Den er slået til i Docker-billedet og i .deb- og .rpm-pakkerne. På en server installeret fra et arkiv slår du den til med ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Socketen er som standard /var/tmp/antimatter_local.socket (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
docker compose exec on the host, has full system administrator rights.Remote, with an account
From any machine, sign in with a system administrator account (or a personal access token), then run commands against that server:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
Configuration commands
| Command | Hvad den gør |
|---|---|
amctl config get ServiceSettings.SiteURL | Prints one setting. |
amctl config set TeamSettings.EnableOpenServer false | Ændrer én indstilling. Listeindstillinger tager én værdi eller flere. |
amctl config patch settings.json | Merges a JSON file of settings into the configuration. |
amctl config show | Prints the whole configuration as JSON. |
amctl config edit | Opens the configuration in your editor ($EDITOR). |
amctl config reset | Resets settings to their defaults. |
amctl config reload | Reloads the configuration from where it is stored, after a change made outside the server. |
App settings live under PluginSettings.Plugins.<app id>, with keys in lower case. For example, to set the GIFs app's service URL and key from the Docker host:
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
Other useful commands: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket and amctl logs. Run amctl help <command> for each one's options.
Logs
Serveren skriver sin log til to steder, hver med sit eget niveau (DEBUG, INFO, WARN eller ERROR), som indstilles i Systemkonsol › Miljø › Logning:
| Mål | Indstillinger | Standardværdier |
|---|---|---|
| Konsollen (standard output) | Udskriv logs til konsollen (LogSettings.EnableConsole), Konsollogniveau (LogSettings.ConsoleLevel), Udskriv konsollogs som JSON (LogSettings.ConsoleJson) | til, DEBUG, JSON |
En fil, antimatter.log | Udskriv log til fil (LogSettings.EnableFile), Fillogniveau (LogSettings.FileLevel), Fillogmappe (LogSettings.FileLocation) | til, INFO, logs/-mappen ved siden af bin/ |
Logfiler roteres ved 100 MB, og de gamle komprimeres.
Webstedets compose-fil slår filloggen fra (AM_LOGSETTINGS_ENABLEFILE=false), så logfilerne kun findes i containerens output:
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
Konsolniveauet er som standard DEBUG, hvilket er detaljeret. På en travl server skal du sætte AM_LOGSETTINGS_CONSOLELEVEL=INFO. config.json i releasearkivet og i pakkerne er allerede sat til INFO. Med et releasearkiv under systemd sendes konsoloutput til journalen (journalctl -u antimatter), og filen til /opt/antimatter/logs/antimatter.log. Pakkerne slår fillogning fra, så deres logfiler kun findes i journalen.
Log- og revisionsfiler skal blive inde i logroden: AM_LOG_PATH (den ældre MM_LOG_PATH virker stadig), hvis den er angivet, ellers mappen logs. Dette håndhæves som standard: En Fillogmappe, avanceret logningsmål eller revisionslogsti uden for roden stopper serveren ved opstart, og afvises, når du gemmer konfigurationen. Slå håndhævelse fra med AM_FEATUREFLAGS_ENFORCELOGPATHROOT=false. Hvis AM_LOG_PATH er angivet, og Fillogmappe er tom, sendes logfiler til AM_LOG_PATH.
Når fillogning er slået til, kan systemadministratorer også læse loggen i Systemkonsol › Rapportering › Serverlogs: farvekodede niveauemblem, hurtige filtre efter niveau, en live-hale og tidsrækkeforudindstillinger fra 5 minutter til 24 timer, eller med amctl logs.