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 lukeeconfig/config.json-tiedoston omanbin/-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ä:
| Asetus | Muuttuja |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- True- ja false-asetukset ottavat arvot
truetaifalse; 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 taiamctl:llä (katso alla). - Vanhemmat Mattermost-asennukset käyttävät
MM_-eteenliitettä, esimerkiksiMM_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.

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).
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:
| Asetus | Avain ja muuttuja | Oletusarvo |
|---|---|---|
| Ota palavaa lukemalla -viestit käyttöön | ServiceSettings.EnableBurnOnRead, AM_SERVICESETTINGS_ENABLEBURNONREAD | on |
| Paloa lukemalla -kesto: kuinka kauan viesti säilyy avaamisen jälkeen, jos lähettäjä ei ole valinnut kestoa | ServiceSettings.BurnOnReadDurationSeconds, AM_SERVICESETTINGS_BURNONREADDURATIONSECONDS | 600 (10 minuuttia) |
| Pisin lähettäjän valittavissa oleva kesto: 1 tunnista 7 päivään; tätä pidempi valinta lyhennetään tähän | ServiceSettings.BurnOnReadMaximumDurationSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMDURATIONSECONDS | 86400 (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_BURNONREADMAXIMUMTIMETOLIVESECONDS | 604800 (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
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
| Komento | Toiminto |
|---|---|
amctl config get ServiceSettings.SiteURL | Tulostaa yhden asetuksen. |
amctl config set TeamSettings.EnableOpenServer false | Muuttaa yhtä asetusta. Listatyypin asetukset ottavat vastaan yhden tai useamman arvon. |
amctl config patch settings.json | Yhdistää JSON-tiedoston asetukset nykyisiin asetuksiin. |
amctl config show | Tulostaa koko asetukset JSON-muodossa. |
amctl config edit | Avaa asetukset muokkajassasi ($EDITOR). |
amctl config reset | Palauttaa asetukset oletusarvoihin. |
amctl config reload | Lataa 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:
| Kohde | Asetukset | Oletusarvot |
|---|---|---|
| Konsoli (standardituloste) | Tulosta lokit konsoliin (LogSettings.EnableConsole), Konsolilokin taso (LogSettings.ConsoleLevel), Tulosta konsolilokit JSON-muodossa (LogSettings.ConsoleJson) | päällä, DEBUG, JSON |
Tiedosto, antimatter.log | Loki 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.