Configuració

On Antimatter guarda la seva configuració, les tres maneres de canviar-la (Consola del sistema, variables d'entorn, amctl) i on van els registres.

On viuen els paràmetres

Cada paràmetre del servidor té un nom format per una secció i una clau, com ara ServiceSettings.SiteURL o EmailSettings.SMTPServer. Junts formen una configuració, emmagatzemada en un dels dos llocs següents:

  • A la base de dades. El fitxer de composició del lloc estableix AM_CONFIG a l'URL de connexió de PostgreSQL, de manera que la configuració és una fila a la base de dades i el contenidor no guarda res al disc. Diversos servidors que comparteixen una mateixa base de dades també comparteixen la seva configuració.
  • Dins d’un fitxer. Sense AM_CONFIG, el servidor llegeix config/config.json al costat del seu directori bin/ (/antimatter/config/config.json a la imatge Docker). L’arxiu de la versió i els fitxers compose de producció d’antimatter-docker funcionen així, i també els paquets .deb i .rpm, el fitxer dels quals és /etc/antimatter/config/config.json. Mantén aquest fitxer llegible només per l’usuari del servidor: conté contrasenyes i claus.

AM_CONFIG (o el paràmetre --config de la comanda antimatter) accepta una ruta de fitxer o una URL postgres://. Els paràmetres que ometeu prenen el seu valor per defecte.

Per moure una configuració existent d'un fitxer a la base de dades, executeu això al servidor i, a continuació, inicieu el servidor amb AM_CONFIG establert a la mateixa URL:

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

Variables d'entorn

Qualsevol paràmetre també es pot donar com a variable d'entorn. Les variables tenen prioritat sobre la configuració emmagatzemada, cosa que les fa adequades per al que pertany a la implementació: la base de dades, l'URL del lloc, l'emmagatzematge de fitxers, els ports.

Regla de nomenament

Escriviu AM_, després la secció, després la clau, en majúscules i separades per guions baixos. Les paraules dins d'un nom de secció o clau no es separen:

ParàmetreVariable
ServiceSettings.SiteURLAM_SERVICESETTINGS_SITEURL
SqlSettings.DataSourceAM_SQLSETTINGS_DATASOURCE
EmailSettings.SMTPServerAM_EMAILSETTINGS_SMTPSERVER
PrivacySettings.EnableUserBlockingAM_PRIVACYSETTINGS_ENABLEUSERBLOCKING
  • Els paràmetres de veritat i fals prenen true o false; els números són números senzills.
  • Els paràmetres de llista prenen els seus valors separats per espais, per exemple AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP".
  • Els paràmetres que són objectes prenen JSON. L'única variable d'aquest tipus per a les aplicacions és AM_PLUGINSETTINGS_PLUGINS, i substitueix els paràmetres de totes les aplicacions alhora: establiu els paràmetres de l'aplicació a la Consola del sistema o amb amctl en lloc d'això (vegeu més avall).
  • Les instal·lacions antigues de Mattermost utilitzen el prefix MM_, per exemple MM_SQLSETTINGS_DATASOURCE. Encara funciona com a alias de llegat. Quan es defineixen ambdós, la variable AM_ té prioritat.

Una configuració definida per una variable queda bloquejada al Consola del sistema, amb la nota «Aquesta configuració s'ha establert mitjançant una variable d'entorn. No es pot canviar des de la Consola del sistema». No s'escriu a la configuració emmagatzemada: si elimineu la variable, s'aplica de nou el valor emmagatzemat.

Amb Docker Compose

Afegiu les variables sota environment: del servei antimatter, o bé en un compose.override.yaml al costat de compose.yaml (Compose el llegeix automàticament i sobreviu a les actualitzacions del fitxer descarregat):

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

Apliqueu els canvis amb docker compose up -d, que recrea el contenidor.

Variables lligues per les aplicacions

Algunes variables no són configuracions i no tenen cap camp a la Consola del sistema: AM_CONFIG (on es troba la configuració), i AM_AI_ENCRYPTION_KEY i AM_AI_ENCRYPTION_PREVIOUS_KEYS, la clau que xifra les claus d’API de les connexions de models (vegeu IA).

Algunes aplicacions llegeixen les seves pròpies variables, establertes al servei antimatter: l'aplicació de trucades llegeix AM_CALLS_* (vegeu Trucades i veu), i l'aplicació de GIFs llegeix AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY i AM_GIFS_UPLOAD_KEY (vegeu Aplicacions integrades).

La Consola del sistema

La Consola del sistema és l’àrea d’administració de l’aplicació web, destinada als administradors del sistema. Per obrir-la, feu clic a la vostra imatge a la part superior de la barra lateral de l’aplicació i trieu Consola del sistema, o aneu a https://chat.example.com/admin_console. La seva barra lateral té una caixa Troba configuracions que busca a totes les pàgines.

The System Console, with its sidebar of sections on the left and the SAML 2.0 settings page on the right.
La Consola del sistema. La barra lateral agrupa les pàgines en seccions com Informes, Gestió d'usuaris i Entorn.

Les seves seccions són:

  • Informes: estadístiques i els registres del servidor.
  • Gestió d'usuaris: usuaris, grups, comunitats (llistades com a Equips), canals, permisos i administració delegada.
  • Attributs del sistema: atributs de perfil personalitzats i accés basat en atributs.
  • Entorn: servidor web, base de dades, emmagatzematge de fitxers, proxy d'imatges, SMTP, notificacions push, limitació de freqüència, registres, durada de les sessions i monitoratge de rendiment.
  • Configuració del lloc: marca, usuaris i equips, notificacions, publicacions, compartició de fitxers i altres comportaments de tot el servidor.
  • Autenticació: registre, inici de sessió amb correu i contrasenya, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect i accés d'invitats.
  • IA: connexions de models i les funcions d’IA integrades (reescriptura, resums, traducció automàtica, text a veu). Vegeu IA.
  • Connectors: gestió d’aplicacions i configuració de cada aplicació instal·lada.
  • Integracions: webhooks, comandes amb barra, comptes de bot, GIFs, text a veu, CORS.
  • Conformitat: retenció de dades, exportació i supervisió de la conformitat, registres d'auditoria i condicions d'ús personalitzades.
  • Experimental: funcions que poden canviar.

En aquesta guia, una configuració s’escriu com el seu camí a la Consola del sistema, després la seva etiqueta i, finalment, la seva clau de configuració, per exemple Consola del sistema › Configuració del lloc › Usuaris i equips › Activa ignorar, bloquejar i sol·licituds de missatge (PrivacySettings.EnableUserBlocking).

La majoria de canvis s'apliquen en clicar Desa. Pocs (l'adreça d'escolta, algunes configuracions de base de dades i memòria cau) requereixen un reinici, i la pàgina ho indica.

Gremi o espai de treball

Cada comunitat té un tipus, que estableix alguns dels seus valors per defecte:

  • Gremi, per a una comunitat pública o d’aficionats: les trucades estan desactivades als seus canals (la gent parla als canals de veu) i només els seus administradors i els rols que gestionen canals poden arxivar-los.
  • Espai de treball, per a una empresa o una organització: les trucades estan activades als seus canals i els administradors d’un canal (qui l’ha creat i qui han nomenat administradors) també l’arxiven.

Consola del sistema › Configuració del lloc › Usuaris i equips › Tipus de les noves comunitats (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) defineix el tipus de les comunitats creades a partir d’aleshores: Gremi (l’opció predeterminada) o Espai de treball; la configuració continua emmagatzemant i llegint els valors antics community i workplace. Un predefinit de disseny triat en crear una comunitat en defineix el tipus propi. Els administradors de cada comunitat poden canviar-ne el tipus més tard, a Configuració de l’equip › General. Els gremis nous afegeixen tothom a tots els canals (TeamSettings.AllChannelsMembershipForNewTeams) és el valor predeterminat només per als gremis nous: els espais de treball mai comencen així (vegeu Tothom a tots els canals).

Per a una empresa, configureu-ho com a Espai de treball abans de crear la primera comunitat, o abans d’actualitzar un servidor existent a la versió 0.9.0: l’actualització assigna a cada comunitat existent el valor que tingui la configuració en aquell moment (vegeu Actualitzar a la 0.9.0).

Missatges que s'eliminen en llegir-los

Les persones poden enviar missatges que s'eliminen un temps després que cada lector els obri (vegeu Missatges que s’esborren en llegir-los). La configuració es troba a Consola del sistema › Configuració del lloc › Publicacions, dins de Missatges que s’esborren en llegir-los:

ParàmetreClau i variableValor per defecte
Activa els missatges que s’eliminen en llegir-losServiceSettings.EnableBurnOnRead, AM_SERVICESETTINGS_ENABLEBURNONREADactivat
Durada dels missatges que s’eliminen en llegir-los: el temps que dura un missatge un cop obert, quan el remitent no n'ha triat cap duradaServiceSettings.BurnOnReadDurationSeconds, AM_SERVICESETTINGS_BURNONREADDURATIONSECONDS600 (10 minuts)
Durada més llarga que poden triar els remitenets: d'1 hora a 7 dies; si se'n tria una de més llarga, es redueix a aquest valorServiceSettings.BurnOnReadMaximumDurationSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMDURATIONSECONDS86400 (1 dia)
Durada màxima d’existència dels missatges que s’eliminen en llegir-los: el missatge s'elimina aquest temps després d'haver estat enviat, encara que no l'hagin llegit totes les personesServiceSettings.BurnOnReadMaximumTimeToLiveSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMTIMETOLIVESECONDS604800 (7 dies)

La durada més llarga es torna a comprovar quan es llegeix un missatge, per tant, si es redueix, també es redueix la durada dels missatges ja enviats.

L'eina de línia d'ordres amctl

amctl gestiona un servidor des de la línia d'ordres: usuaris, comunitats, canals, aplicacions, configuració, tasques i més. Es comunica amb el servidor de dues maneres.

Mode local, al servidor

El mode local permet que amctl es comuniqui amb el servidor a través d'un socket Unix, sense haver d'iniciar sessió. Està activat a la imatge de Docker i amb els paquets .deb i .rpm. En un servidor instal·lat des d'un arxiu, activeu-lo amb ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). El socket és /var/tmp/antimatter_local.socket per defecte (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
Qualsevol persona que pugui utilitzar el socket, o executar docker compose exec a l'amfitrió, té drets complets d'administrador del sistema.

Remot, amb un compte

Des de qualsevol màquina, inicia sessió amb un compte d'administrador del sistema (o un token d'accés personal) i, a continuació, executa ordres contra aquest servidor:

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

Ordres de configuració

OrdreQuè fa
amctl config get ServiceSettings.SiteURLImprimeix una configuració.
amctl config set TeamSettings.EnableOpenServer falseCanvia una configuració. Les llistes de configuració accepten un valor o diversos.
amctl config patch settings.jsonFusiona un fitxer JSON de configuracions a la configuració.
amctl config showImprimeix tota la configuració com a JSON.
amctl config editObre la configuració al teu editor ($EDITOR).
amctl config resetRestableix les configuracions als valors per defecte.
amctl config reloadRecarrega la configuració des del lloc on està emmagatzemada, després d'un canvi fet fora del servidor.

Les configuracions de les aplicacions es troben sota PluginSettings.Plugins.<app id>, amb claus en minúscules. Per exemple, per establir l'URL del servei i la clau de l'aplicació GIFs des de l'amfitrió Docker:

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

Altres ordres útils: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket i amctl logs. Executa amctl help <command> per veure les opcions de cadascuna.

Registres

El servidor escriu el seu registre en dos llocs, cadascun amb el seu propi nivell (DEBUG, INFO, WARN o ERROR), configurat a Consola del sistema › Entorn › Registre:

DestinacióConfiguracióValors per defecte
La consola (sortida estàndard)Emissió dels registres a la consola (LogSettings.EnableConsole), Nivell de registre de consola (LogSettings.ConsoleLevel), Emissió dels registres de la consola en format JSON (LogSettings.ConsoleJson)activat, DEBUG, JSON
Un fitxer, antimatter.logSortida dels registres a fitxer (LogSettings.EnableFile), Nivell de registre de fitxer (LogSettings.FileLevel), Directori de registres de fitxer (LogSettings.FileLocation)activat, INFO, el directori logs/ al costat de bin/

Els fitxers de registre es roden a 100 MB i els antics es comprimeixen.

El fitxer compose del lloc desactiva el registre en fitxer (AM_LOGSETTINGS_ENABLEFILE=false), de manera que els registres només es troben a la sortida del contenidor:

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

El nivell de la consola és DEBUG per defecte, que és molt detallat. En un servidor amb molta activitat, establiu AM_LOGSETTINGS_CONSOLELEVEL=INFO. El config.json de l'arxiu de la versió i dels paquets ja l'estableix a INFO. Amb un arxiu de la versió sota systemd, la sortida de la consola va al diari (journalctl -u antimatter) i el fitxer a /opt/antimatter/logs/antimatter.log. Els paquets desactiven l'enregistrament en fitxer, de manera que els seus registres només es troben al diari.

Els fitxers de registre i d’auditoria han de romandre dins de l’arrel de registre: AM_LOG_PATH (l’antic MM_LOG_PATH continua funcionant) si està definit, o bé la carpeta logs. Això s’aplica per defecte: un Directori de registres de fitxer, una destinació de registre avançada o una ruta de registre d’auditoria fora de l’arrel aturen el servidor en iniciar-lo, i es rebutja en desar la configuració. Desactiveu l’aplicació amb AM_FEATUREFLAGS_ENFORCELOGPATHROOT=false. Amb AM_LOG_PATH definit i Directori de registres de fitxer en blanc, els registres van a AM_LOG_PATH.

Quan el registre de fitxers està activat, els administradors del sistema també poden llegir el registre a Consola del sistema › Informes › Registres del servidor: insígnies de nivell amb codis de colors, filtres ràpids per nivell, un seguiment en directe i predefinits de rang de temps de 5 minuts a 24 hores, o bé amb amctl logs.