Asetukset

Missä Antimatterin asetukset sijaitsevat, kolme tapaa muuttaa niitä (järjestelmäkonsoli, ympäristömuuttujat, amctl) ja minne lokitiedostot tallennetaan.

Asetusten sijainti

Jokaisella palvelimen asetuksella on nimi, joka koostuu osiosta ja avaimesta, kuten ServiceSettings.SiteURL tai EmailSettings.SMTPServer. Yhdessä ne muodostavat yhden asetuskokonaisuuden, joka tallennetaan jompaan kumpaan näistä kahdesta sijainnista:

  • Tietokannassa. Sivuston komposittitiedosto asettaa AM_CONFIG-muuttujan PostgreSQL-yhteyden osoitteeksi, jolloin asetukset ovat tietokannan rivi ja konttineri ei säilytä mitään levylle. Useat palvelimet, jotka jakavat saman tietokannan, jakavat myös asetukset.
  • Tiedostossa. Jos AM_CONFIG-muuttujaa ei ole asetettu, palvelin lukee config/config.json-tiedoston oman bin/-hakemistonsa vierestä (Docker-kuvassa /antimatter/config/config.json). Näin toimivat julkaisuarkistot ja antimatter-dockerin tuotantokomposiititiedostot sekä .deb- ja .rpm-paketit, joiden tiedosto on /etc/antimatter/config/config.json. Pidä tämä tiedosto luettavana vain palvelimen käyttäjälle: se sisältää salasanoja ja avaimia.

AM_CONFIG-muuttuja (tai antimatter-komennon --config-valitsin) hyväksyy joko tiedostopolun tai postgres://-osoitteen. Asetukset, jotka jätät määrittämättä, saavat oletusarvonsa.

Siirtääksesi olemassa olevan asetuskokonaisuuden tiedostosta tietokantaan, aja tämä komento palvelimella ja käynnistä sitten palvelin asettamalla AM_CONFIG-muuttujaksi sama osoite:

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

Ympäristömuuttujat

Mikäänkin asetus voidaan myös antaa ympäristömuuttujana. Ympäristömuuttujat ohittavat tallennetut asetukset, mikä tekee niistä sopivia sille, mikä liittyy deploytointiin: tietokanta, sivuston osoite, tiedostovarasto ja portit.

Nimennössääntö

Kirjoita AM_, sitten osion nimi, sitten avain, isoilla kirjaimilla ja allinvetoilla erotteluna. Osion tai avaimen sisäiset sanat eivät eriytetä:

AsetusMuuttuja
ServiceSettings.SiteURLAM_SERVICESETTINGS_SITEURL
SqlSettings.DataSourceAM_SQLSETTINGS_DATASOURCE
EmailSettings.SMTPServerAM_EMAILSETTINGS_SMTPSERVER
PrivacySettings.EnableUserBlockingAM_PRIVACYSETTINGS_ENABLEUSERBLOCKING
  • True- ja false-asetukset ottavat arvot true tai false; luvut ovat pelkkiä numeroita.
  • Listamaiset asetukset ottavat arvonsa välilyönnein erotteluna, esimerkiksi AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP".
  • Objektimaiset asetukset ottavat JSON:n. Ainoa tällainen muuttuja sovelluksille on AM_PLUGINSETTINGS_PLUGINS, ja se korvaa kaikkien sovellusten asetukset kerralla: aseta sovellusasetukset sen sijaan järjestelmäkonsolissa tai amctl:llä (katso alla).
  • Vanhemmat Mattermost-asennukset käyttävät MM_-eteenliitettä, esimerkiksi MM_SQLSETTINGS_DATASOURCE. Se toimii yhä legacy-nimikkeellä. Jos molemmat on asetettu, AM_-muuttuja voittaa.

Muuttujalla annettu asetus lukitaan Järjestelmäkonsolissa huomautuksella "Tämä asetus on määritetty ympäristömuuttujalla. Sitä ei voi muuttaa Järjestelmäkonsolissa." Sitä ei kirjoiteta tallennettuun asetuskokonaisuuteen: poista muuttuja, niin tallennettu arvo alkaa jälleen voimaantua.

Docker Compose:n kanssa

Lisää muuttujat antimatter-palvelun environment:-osioon tai compose.override.yaml-tiedostoon, joka sijaitsee compose.yaml:n vieressä (Compose lukee sen automaattisesti, ja se säilyy ladatun tiedoston päivitysten jälkeen):

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

Käytä komentoa docker compose up -d muutosten soveltamiseen. Tämä luo kontin uudestaan.

Muuttujat, joita sovellukset lukevat

Muutamat muuttujat eivät ole asetuksia, eikä niille ole kenttää Järjestelmäkonsolissa: AM_CONFIG (määritysten sijainti) sekä AM_AI_ENCRYPTION_KEY ja AM_AI_ENCRYPTION_PREVIOUS_KEYS, jotka ovat malliyhteyksien API-avainten salaukseen käytettävät avaimet (katso Tekoäly).

Muutamat sovellukset lukevat omat muuttujansa, jotka asetetaan antimatter-palvelulle: Calls-sovellus lukee AM_CALLS_* (ks. Puhelut ja ääni), ja GIFs-sovellus lukee AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY ja AM_GIFS_UPLOAD_KEY (ks. Sisällytetyt sovellukset).

Järjestelmäkonsoli

Järjestelmäkonsoli on web-sovelluksen hallinta-alue järjestelmän ylläpitäjille. Avaa se napsauttamalla kuvakettia sovelluksen yläreunassa ja valitsemalla Järjestelmäkonsoli, tai siirtymällä osoitteeseen https://chat.example.com/admin_console. Sen sivupalkissa on Etsi asetuksia -kenttä, joka hakee kaikilta sivuilta.

The System Console, with its sidebar of sections on the left and the SAML 2.0 settings page on the right.
Järjestelmäkonsoli. Sivupalkki ryhmittelee sivut osioihin, kuten Raportointi, Käyttäjien hallinta ja Ympäristö.

Osiot ovat:

  • Raportointi: tilastot ja palvelimen lokit.
  • Käyttäjien hallinta: käyttäjät, ryhmät, yhteisöt (luettelossa nimellä Teams), kanavat, oikeudet ja delegoitu hallinta.
  • Järjestelmän ominaisuudet: mukautetut profiiliominaisuudet ja ominaisuuteen perustuva pääsy.
  • Ympäristö: web-palvelin, tietokanta, tiedostovarasto, kuvaprokse, SMTP, push-ilmoitukset, nopeusrajoitus, lokitus, istuntojen kesto ja suorituskyvden seuranta.
  • Sivuston asetukset: brändäys, käyttäjät ja tiimit, ilmoitukset, viestit, tiedostojen jakaminen ja muut palvelinlaajuiset toiminnallisuudet.
  • Tunnistautuminen: rekisteröityminen, sähköposti- ja salasana-tunnistautuminen, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect ja vieras käyttö.
  • Tekoäly: malliyhteydet ja sisäänrakennetut tekoälyominaisuudet (uudelleenkirjoitus, yhteenvedot, automaattinen käännös, teksti puheeksi). Katso Tekoäly.
  • Liiteohjelmat: liiteohjelmien hallinta ja kunkin asennetun liiteohjelman asetukset.
  • Integraatiot: webhooks, kauttaviivakomennot, bottitilit, GIFit, teksti puheeksi, CORS.
  • Noudattaminen: tietojen säilytys, noudattamistiedoston vienti ja seuranta, tilintarkastuslokit, mukautetut käyttöehdot.
  • Kokeelliset: ominaisuudet, jotka voivat muuttua.

Tässä oppaessa asetukset kirjoitetaan järjestelmäkonsolin polkuna, sitten nimikkeellä ja lopuksi asetustavuna, esimerkiksi Järjestelmäkonsoli › Sivuston asetukset › Käyttäjät ja tiimit › Ota ignorointi, esto ja viestipyynnöt käyttöön (PrivacySettings.EnableUserBlocking).

Useimmat muutokset tulevat voimaan heti, kun napsautat Tallenna. Joillakin (kuunteluaadressi, tietokanta- ja välimuokka-asetukset) tarvitaan uudelleenkäynnistys, ja sivu kertoo tästä.

Yhteisö tai työtila

Jokaista yhteisöä kuvaa tyyppi, joka määrittää osan sen oletusarvoista:

  • Yhteisö julkiselle tai harrastusyhteisölle: puheluja ei voi käyttää sen kanavilla (ihmiset keskustelevat äänikanavilla), ja vain sen ylläpitäjät sekä roolit, jotka hallinnoivat kanavia, voivat arkistoida kanavia.
  • Työtila yritykselle tai organisaatiolle: puhelut ovat käytössä sen kanavilla, ja kanavan ylläpitäjät (kanavan luonut henkilö ja ne, jotka hän on tehnyt ylläpitäjiksi) voivat arkistoida sen.

Järjestelmäkonsoli › Sivuston asetukset › Käyttäjät ja tiimit › Uusien yhteisöjen tyyppi (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) määrittää, minkä tyyppisiä yhteisöjä luodaan jatkossa: Guild (oletus) tai Workspace. Asetus tallentaa ja lukee edelleen vanhat arvot community ja workplace. Yhteisöä luotaessa valittu asettelupreset asettaa yhteisön tyypin. Yhteisön ylläpitäjät voivat muuttaa tyyppiä myöhemmin kohdassa Tiimin asetukset › Yleiset. Uudet guild-yhteisöt lisäävät kaikki jäsenet kaikkiin kanaviin (TeamSettings.AllChannelsMembershipForNewTeams) on oletusarvo vain uusille guild-yhteisöille: workspace-yhteisöt eivät koskaan aloita tällä tavalla (katso Kaikki kaikissa kanavissa).

Yrityksissä aseta arvoksi Workspace ennen ensimmäisen yhteisön luomista tai ennen kuin päivität olemassa olevan palvelimen versioon 0.9.0: päivitys antaa kaikille olemassa oleville yhteisöille asetuksen tuonhetkisen arvon (katso Päivitys versioon 0.9.0).

Lukemisen jälkeen tuhoutuvat viestit

Käyttäjät voivat lähettää viestejä, jotka poistetaan hetken kuluttua siitä, kun kukin lukija on avannut ne (katso Lukemisen jälkeen poistuvat viestit). Asetukset ovat kohdassa Järjestelmäkonsoli › Sivuston asetukset › Viestit, otsikon Lukemisen jälkeen poistuvat viestit alla:

AsetusAvain ja muuttujaOletusarvo
Ota palavaa lukemalla -viestit käyttöönServiceSettings.EnableBurnOnRead, AM_SERVICESETTINGS_ENABLEBURNONREADon
Paloa lukemalla -kesto: kuinka kauan viesti säilyy avaamisen jälkeen, jos lähettäjä ei ole valinnut kestoaServiceSettings.BurnOnReadDurationSeconds, AM_SERVICESETTINGS_BURNONREADDURATIONSECONDS600 (10 minuuttia)
Pisin lähettäjän valittavissa oleva kesto: 1 tunnista 7 päivään; tätä pidempi valinta lyhennetään tähänServiceSettings.BurnOnReadMaximumDurationSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMDURATIONSECONDS86400 (1 päivä)
Palavaa lukemista -viestien enimmäiskesto: viesti poistetaan tämän ajan kuluttua lähetyksestä, vaikka kaikki eivät olisi lukeneet sitäServiceSettings.BurnOnReadMaximumTimeToLiveSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMTIMETOLIVESECONDS604800 (7 päivää)

Pisin kesto tarkistetaan uudelleen, kun viesti luetaan, joten keston pienentäminen lyhentää myös jo lähetettyjen viestien säilymisaikaa.

amctl-komentorakennustyökalu

amctl hallinnoi palvelinta komentoriviltä: käyttäjiä, yhteisöjä, kanavia, sovelluksia, asetuksia, työtehtäviä ja paljon muuta. Se kommunikoi palvelimen kanssa kahdella tavalla.

Paikallinen tila, palvelimella

Paikallinen tila mahdollistaa amctl-työkalun yhteydenoton palvelimeen Unix-pistokkeen kautta kirjautumatta sisään. Se on käytössä Docker-kuvassa sekä .deb- ja .rpm-paketeissa. Arkistosta asennetussa palvelimessa se otetaan käyttöön asetuksella ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Pistoke on oletuksena /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
Kaikilla, jotka voivat käyttää pistorasiaa tai ajaa docker compose exec -komentia isäntä koneella, on täydet järjestelmänvalvojan oikeudet.

Etätila, tilillä

Miltä tahansa koneelta, kirjaudu järjestelmänvalvojan tilillä (tai henkilökohtaisella pääsytunnisteella) ja aja komennot kyseistä palvelinta kohtaan:

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

Asetuskomennot

KomentoToiminto
amctl config get ServiceSettings.SiteURLTulostaa yhden asetuksen.
amctl config set TeamSettings.EnableOpenServer falseMuuttaa yhtä asetusta. Listatyypin asetukset ottavat vastaan yhden tai useamman arvon.
amctl config patch settings.jsonYhdistää JSON-tiedoston asetukset nykyisiin asetuksiin.
amctl config showTulostaa koko asetukset JSON-muodossa.
amctl config editAvaa asetukset muokkajassasi ($EDITOR).
amctl config resetPalauttaa asetukset oletusarvoihin.
amctl config reloadLataa asetukset uudelleen tallennuspaikasta, kun muutokset on tehty palvelimen ulkopuolelta.

Sovellusasetukset sijaitsevat polulla PluginSettings.Plugins.<app id>, ja avaimet ovat pien kirjaimilla. Esimerkiksi, asettaaksesi GIFs-sovelluksen palvelin URL:n ja avaimen Docker-isännältä:

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

Muut hyödylliset komennot: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket ja amctl logs. Aja amctl help <command> nähdäksesi kunkin komennon vaihtoehdot.

Lokit

Palvelin kirjoittaa lokinsa kahteen kohtaan, joilla kummallakin on oma tasonsa (DEBUG, INFO, WARN tai ERROR), jotka määritetään kohdassa Järjestelmäkonsoli › Ympäristö › Lokitus:

KohdeAsetuksetOletusarvot
Konsoli (standardituloste)Tulosta lokit konsoliin (LogSettings.EnableConsole), Konsolilokin taso (LogSettings.ConsoleLevel), Tulosta konsolilokit JSON-muodossa (LogSettings.ConsoleJson)päällä, DEBUG, JSON
Tiedosto, antimatter.logLoki tiedostoon (LogSettings.EnableFile), Tiedostolokin taso (LogSettings.FileLevel), Tiedostolokin hakemisto (LogSettings.FileLocation)päällä, INFO, logs/-hakemisto bin/-hakemiston vieressä

Lokitiedostot pyörivät 100 Mt:n kohdalla ja vanhat pakataan.

Sivuston compose-tiedosto poistaa tiedostolokit käytöstä (AM_LOGSETTINGS_ENABLEFILE=false), joten lokit näkyvät vain kontin tulosteessa:

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

Konsolitason oletusarvo on DEBUG, joka on hyvin yksityiskohtainen. Ruuhkaisella palvelimella kannattaa asettaa AM_LOGSETTINGS_CONSOLELEVEL=INFO. Julkaisupaketin ja asennuspakettien config.json-tiedostoissa arvo on jo asetettu INFO:ksi. Kun julkaisupakettia käytetään systemd-järjestelmässä, konsolituloste siirtyy järjestelmälokiin (journalctl -u antimatter) ja tiedostoloki sijaitsee polussa /opt/antimatter/logs/antimatter.log. Asennuspaketit poistavat tiedostolokituksen käytöstä, joten niiden lokit ovat vain järjestelmälokeissa.

Loki- ja auditointitiedostojen on sijaittava lokien juurihakemiston sisällä: AM_LOG_PATH (vanhempi MM_LOG_PATH toimii myös), jos se on asetettu, muuten logs-kansiossa. Tämä on oletuksena pakotettu: Tiedostolokin hakemisto, edistetty lokituskohde tai auditointilokin polku juurihakemiston ulkopuolella pysäyttää palvelimen käynnistyksessä, ja asetusten tallennus estetään. Voit poistaa pakotuksen käytöstä asettamalla AM_FEATUREFLAGS_ENFORCELOGPATHROOT=false. Kun AM_LOG_PATH on asetettu ja Tiedostolokin hakemisto on tyhjä, lokit siirtyvät polkuun AM_LOG_PATH.

Kun tiedostolokitus on käytössä, järjestelmänvalvojat voivat lukea lokin myös Järjestelmäkonsoli › Raportointi › Palvelinlokit: värikoodatut tasomerkinnät, pikasuodattimet tason mukaan, reaaliaikainen seuranta ja aikavälien esiasetukset 5 minuutista 24 tuntiin, tai komennolla amctl logs.