Konfiguráció

Hol tárolja az Antimatter a beállításait, a három mód, amellyel módosíthatók (Rendszerkonzol, környezeti változók, amctl), és hol találhatók a naplók.

A beállítások tárolási helye

Minden szerverbeállításnak van egy neve, amely egy szakaszból és egy kulcsból áll, például ServiceSettings.SiteURL vagy EmailSettings.SMTPServer. Együtt egyetlen konfigurációt alkotnak, amely két helyen tárolható:

  • Az adatbázisban. A webhely compose fájlja az AM_CONFIG értékét a PostgreSQL-kapcsolat URL-jére állítja, így a konfiguráció egy sor az adatbázisban, és a konténer nem tárol semmit a lemezen. Több szerver, amelyik egy adatbázist oszt meg, a konfigurációját is megosztja.
  • Egy fájlban. Ha nincs megadva a AM_CONFIG, a szerver a bin/ könyvtár melletti config/config.json fájlt olvassa be (a Docker-képen ez: /antimatter/config/config.json). Így működik a kiadási archívum és az antimatter-docker termelési compose-fájljai is, valamint a .deb és .rpm csomagok is, amelyek fájlja: /etc/antimatter/config/config.json. Ez a fájl csak a szerver felhasználója számára legyen olvasható, mert jelszavakat és kulcsokat tartalmaz.

Az AM_CONFIG (vagy az antimatter parancs --config kapcsolója) fájlpályát vagy postgres:// URL-t is elfogad. A kihagyott beállítások alapértéküket veszik fel.

Ha egy meglévő fájlból származó konfigurációt szeretne áthelyezni az adatbázisba, futtassa ezt a szerveren, majd indítsa el a szerveret úgy, hogy az AM_CONFIG ugyanerre az URL-re van beállítva:

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

Környezeti változók

Bármely beállítás megadható környezeti változóként is. A változók felülbírálnak a tárolt konfigurációt, ezért jól illenek ahhoz, ami a telepítéshez tartozik: az adatbázis, a webhely URL-je, a fájl-tároló, a portok.

Elnevezési szabály

Írja be az AM_ előtagot, majd a szakaszt, végül a kulcsot, nagybetűkkel és alulvonásokkal elválasztva. A szakasz- vagy kulcsnév belső szavai nem különülnek el:

BeállításVáltozó
ServiceSettings.SiteURLAM_SERVICESETTINGS_SITEURL
SqlSettings.DataSourceAM_SQLSETTINGS_DATASOURCE
EmailSettings.SMTPServerAM_EMAILSETTINGS_SMTPSERVER
PrivacySettings.EnableUserBlockingAM_PRIVACYSETTINGS_ENABLEUSERBLOCKING
  • Az igaz és hamis beállítások true vagy false értéket kapnak; a számok sima számok.
  • A listaként kezelt beállítások értékei szóközzel vannak elválasztva, például AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP".
  • Az objektumként kezelt beállítások JSON-t kapnak. Az egyetlen ilyen változó az alkalmazásokhoz az AM_PLUGINSETTINGS_PLUGINS, amely egyszerre felülírja minden alkalmazás beállításait: az alkalmazásbeállításokat a Rendszerkonzolban vagy az amctl segítségével állítsa be (lásd alább).
  • Régebbi Mattermost telepítések a MM_ előtagot használják, például MM_SQLSETTINGS_DATASOURCE. Ez továbbra is működik mint örökölt alias. Ha mindkettő be van állítva, a AM_ változóérvényes.

A változó által megadott beállítás a Rendszerkonzolban zárolva van, a következő megjegyzéssel: „Ezt a beállítást egy környezeti változó állította be. Nem módosítható a Rendszerkonzolon keresztül.” Nem írja fel a mentett konfigurációba: ha eltávolítja a változót, a mentett érték ismét érvényes lesz.

Docker Compose használatával

Adja hozzá a változókat a antimatter szolgáltatás environment: része alatt, vagy a compose.yaml mellé helyezett compose.override.yaml fájlban (a Compose automatikusan beolvassa, és a letöltött fájl frissítései során is megmarad):

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

A változások alkalmazásához futtassa a docker compose up -d parancsot, amely újragenerálja a konténert.

Az alkalmazások által olvasott változók

Néhány változó nem beállítás, és nincs hozzá mező a Rendszerkonzolban: a AM_CONFIG (ahol a konfiguráció található), valamint az AM_AI_ENCRYPTION_KEY és az AM_AI_ENCRYPTION_PREVIOUS_KEYS, amelyek a modellkapcsolatok API-kulcsait titkosító kulcsok (lásd: AI).

Néhány alkalmazás saját változókat olvas be, amelyeket a antimatter szolgáltatáson kell beállítani: a Calls alkalmazás a AM_CALLS_* változókat (lásd Hívások és hang), a GIFs alkalmazás pedig az AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY és AM_GIFS_UPLOAD_KEY változókat (lásd Beépített alkalmazások).

A Rendszerkonzol

A Rendszerkonzol a webalkalmazás rendszergazdai felülete. A megnyitáshoz kattints a profilképedre az alkalmazás felső sávjában, és válaszd a Rendszerkonzol lehetőséget, vagy lépj be a https://chat.example.com/admin_console címen. Az oldalsávon található Beállítások keresése mezővel minden oldalon keresni lehet.

The System Console, with its sidebar of sections on the left and the SAML 2.0 settings page on the right.
A Rendszerkonzol. Az oldalsáv a lapokat csoportosítja olyan szakaszokba, mint a Jelentések, a Felhasználókezelés és a Környezet.

A szakaszai:

  • Jelentések: statisztikák és a szerver naplófájljai.
  • Felhasználókezelés: felhasználók, csoportok, közösségek (Csapatok néven szerepelnek), csatornák, jogosultságok és delegált rendszergazdai feladatok.
  • Rendszerattribútumok: egyedi profilattribútumok és attribútum-alapú hozzáférés.
  • Környezet: webkiszolgáló, adatbázis, fájltárhely, képproxy, SMTP, push-értesítések, sebességkorlátozás, naplózás, munkamenet-hossz, teljesítménymérés.
  • Oldal beállítások: márkázás, felhasználók és csapatok, értesítések, bejegyzések, fájlmegosztás és egyéb szerver-szintű viselkedések.
  • Hitelesítés: regisztráció, e-mail- és jelszó-alapú bejelentkezés, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect és vendéghozzáférés.
  • AI: modellkapcsolatok és a beépített AI-funkciók (újraírás, összefoglalók, automatikus fordítás, szövegből beszéd). Lásd: AI.
  • Bővítmények: alkalmazáskezelés és minden telepített alkalmazás beállításai.
  • Integrációk: webhookok, perjeles parancsok, bot-fiókok, GIF-ek, szövegből beszéd, CORS.
  • Megfelelőség: adatmegőrzés, megfelelőségi exportálás és figyelés, ellenőrzési naplózás, egyedi szolgáltatási feltételek.
  • Kísérleti: funkciók, amelyek változhatnak.

Ez az útmutató a beállításokat a Rendszerkonzolban lévő útvonalukkal, majd a feliratukkal, végül a konfigurációs kulcsukkal jelöli. Például: Rendszerkonzol › Oldal beállítások › Felhasználók és csapatok › Ignorálás, blokkolás és üzenekérés engedélyezése (PrivacySettings.EnableUserBlocking).

A legtöbb változtatás azonnal érvényesül, ha a Mentés gombot megnyomja. Néhány (a figyelő cím, egyes adatbázis- és gyorsítótár-beállítások) újraindítást igényel, erre a oldal figyelmeztet.

Munkahely vagy közösség

Minden közösségnek van egy típusa, amely meghatároja néhány alapértelmezett beállítást:

  • Közösség, nyilvános vagy hobbi közösségekhez: a csatornákban a hívások kikapcsolva vannak (a beszélgetés a hangcsatornákban történik), és csak az adminisztrátorok, valamint a csatornákat kezelő szerepkörök archíválhatnak csatornákat.
  • Munkahely, vállalatok vagy szervezetekhez: a csatornákban a hívások bekapcsolva vannak, és a csatorna adminisztrátorai (aki létrehozta, és akiket ők neveztek ki adminisztrátornak) ők is archíválhatják.

Rendszerkonzol › Oldal beállítások › Felhasználók és csapatok › Új közösségek típusa (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) meghatározza, milyen típusú közösségek jönnek létre: community (alapérték) vagy workplace. A közösség létrehozásakor választott elrendezési sablon saját típusát állítja be. A közösségek adminisztrátorai később is módosíthatják a típust a Csapatbeállítások › Csatornák › Közösség típusa menüben.

Cégek esetén állítsa be Munkahely értékre a beállítást, mielőtt létrehozná az első közösséget, vagy mielőtt frissítené a meglévő szervert a 0.9.0 verzióra: a frissítés minden meglévő közösségnek azt az értéket adja, amely ekkor érvényes (lásd: Frissítés a 0.9.0 verzióra).

Az amctl parancssori eszköz

Az amctl parancssorból kezeli a szervert: felhasználók, közösségek, csatornák, alkalmazások, konfiguráció, feladatok és még sok más. Kétféleképpen kommunikál a szerverrel.

Helyi mód, a szerveren

A helyi mód lehetővé teszi, hogy az amctl Unix-szoketeken keresztül kommunikáljon a szerverrel bejelentkezés nélkül. Ez a Docker-képen, valamint a .deb és .rpm csomagokon alapuló telepítéseken alapértelmezettként engedélyezett. Archívumból telepített szerveren a ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true) beállítással kapcsolható be. A szoket alapértelmezett helye: /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
Bármelyik, aki használhatja a socketet, vagy futtathatja a docker compose exec parancsot a gazdagépen, teljes rendszeradminisztrátori jogosultsággal rendelkezik.

Távoli, fiókkal

Bármely gépről jelentkezzen be egy rendszeradminisztrátori fiókkal (vagy személyes hozzáférési tokenel), majd futtassa a parancsokat a szerverrel szemben:

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

Konfigurációs parancsok

ParancsMire szolgál
amctl config get ServiceSettings.SiteURLEgy beállítás kiírása.
amctl config set TeamSettings.EnableOpenServer falseEgy beállítás módosítása. A listabeállítások több értéket is vehetnek fel.
amctl config patch settings.jsonEgy JSON fájlban tárolt beállítások összevonása a konfigurációba.
amctl config showA teljes konfiguráció kiírása JSON formátumban.
amctl config editA konfiguráció megnyitása a szerkesztőben ($EDITOR).
amctl config resetA beállítások visszaállítása alapértelmezett értékeikre.
amctl config reloadA konfiguráció újratöltése a tárolási helyéről, a szerveren kívül történt változtatás után.

Az alkalmazásbeállítások a PluginSettings.Plugins.<app id> alatt találhatók, kisbetűs kulcsokkal. Például, hogy a GIFs alkalmazás szerver URL-jét és kulcsát a Docker gazdagépen állítsa be:

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

Egyéb hasznos parancsok: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket és amctl logs. Futtassa az amctl help <command> parancsot az egyes parancsok opcióiért.

Naplók

A szerver naplóját két helyre írja, mindegyik saját szinttel (DEBUG, INFO, WARN vagy ERROR), amelyeket a Rendszerkonzol › Környezet › Naplózás menüben állíthatunk be:

CélBeállításokAlapértékek
A konzol (szabványos kimenet)Kimenet naplózása konzolra (LogSettings.EnableConsole), Konzol naplózási szint (LogSettings.ConsoleLevel), Konzol kimenet naplózása JSON formátumban (LogSettings.ConsoleJson)bekapcsolva, DEBUG, JSON
Fájl, antimatter.logNapló mentése fájlba (LogSettings.EnableFile), Fájl naplózási szint (LogSettings.FileLevel), Fájl alapú naplózás könyvtára (LogSettings.FileLocation)bekapcsolva, INFO, a logs/ könyvtár a bin/ mellett

A naplófájlokat 100 MB-os méretnél forgatjuk, a régieket pedig tömörítjük.

A webhely compose fájlja kikapcsolja a fájlnaplózást (AM_LOGSETTINGS_ENABLEFILE=false), így a naplók csak a konténer kimenetében jelennek meg:

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

A konzol naplózási szint alapértelmezett értéke DEBUG, ami részletes. Foglalt szerveren állítsa be AM_LOGSETTINGS_CONSOLELEVEL=INFO értékre. A kiadási archívum és a csomagok config.json fájlja már INFO értékre állítja. systemd alatt futó kiadási archívum esetén a konzol kimenet a naplóba kerül (journalctl -u antimatter), a fájlnapló pedig a /opt/antimatter/logs/antimatter.log útvonalra. A csomagok kikapcsolják a fájlnaplózást, így naplóik csak a journalban érhetők el.

Ha a fájlnaplózás be van kapcsolva, a rendszergazdák a legfrissebb naplósort a Rendszerkonzol › Jelentések › Szervernaplók menüben, vagy az amctl logs paranccsal is elolvashatják.