Konfigurace
Kde Antimatter ukládá svá nastavení, tři způsoby, jak je změnit (systémová konzole, proměnné prostředí, amctl) a kam se zapisují protokoly.
Kde se nacházejí nastavení
Každé nastavení serveru má název složený z sekce a klíče, např. ServiceSettings.SiteURL nebo EmailSettings.SMTPServer. Společně tvoří jednu konfiguraci, která je uložena na jednom z dvou míst:
- V databázi. Soubor compose webu nastaví
AM_CONFIGna URL připojení k PostgreSQL, takže je konfigurace řádkem v databázi a kontejner nic neukládá na disk. Více serverů sdílejících jednu databázi sdílí i svou konfiguraci. - V souboru. Bez
AM_CONFIGčte serverconfig/config.jsonvedle svého adresářebin/(v Docker obrazu/antimatter/config/config.json). Takto fungují instalační archivy a produkční compose soubory antimatter-docker, stejně jako balíčky .deb a .rpm, jejichž soubor je/etc/antimatter/config/config.json. Tento soubor nechte čitelný pouze uživatelem serveru: obsahuje hesla a klíče.
AM_CONFIG (nebo parametr --config příkazu antimatter) přijímá buď cestu k souboru, nebo URL postgres://. Nastavení, která neudáte, nabudou výchozí hodnoty.
Pokud chcete přenést existující konfiguraci ze souboru do databáze, spusťte na serveru tento příkaz a poté spustte server s AM_CONFIG nastaveným na stejnou URL:
amctl --local config migrate /opt/antimatter/config/config.json \
"postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"
Proměnné prostředí
Jakékoliv nastavení lze zadat i jako proměnnou prostředí. Proměnné mají přednost před uloženou konfigurací, což je vhodné pro to, co patří ke nasazení: databáze, URL webu, úložiště souborů, porty.
Pravidlo pro pojmenování
Napište AM_, pak sekci, pak klíč, velkými písmeny a oddělené podtržítky. Slova uvnitř názvu sekce nebo klíče se nenechávají oddělená:
| Nastavení | Proměnná |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- Nastavení typu pravda/nepravda přijímají
truenebofalse; čísla jsou obyčejná čísla. - Nastavení typu seznam přijímá hodnoty oddělené mezerami, např.
AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP". - Nastavení, která jsou objekty, přijímají JSON. Jedinou takovou proměnnou pro aplikace je
AM_PLUGINSETTINGS_PLUGINSa nahrazuje nastavení všech aplikací najednou: nastavení aplikací nastavte raději v systémové konzoli nebo pomocíamctl(viz níže). - Starší instalace Mattermost používají předponu
MM_, napříkladMM_SQLSETTINGS_DATASOURCE. Stále funguje jako starší alias. Pokud jsou nastaveny obě, má přednost proměnnáAM_.
Nastavení zadané proměnnou je v Systémové konzoli uzamčené, s poznámkou „Toto nastavení bylo provedeno pomocí proměnného prostředí. Nelze ho změnit přes Systémovou konzoli.“ Není zapisováno do uloženého nastavení: odeberte proměnnou a znovu se použije uložená hodnota.
S Docker Compose
Přidejte proměnné pod environment: služby antimatter, nebo do souboru compose.override.yaml vedle compose.yaml (Compose ho načte automaticky a přežije aktualizace staženého souboru):
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_LOGSETTINGS_CONSOLELEVEL: INFO
Změny použijte příkazem docker compose up -d, který kontejner znovu vytvoří.
Proměnné čtené aplikacemi
Některé proměnné nejsou nastavení a nemají pole v Systémové konzoli: AM_CONFIG (kde se konfigurace nachází) a AM_AI_ENCRYPTION_KEY a AM_AI_ENCRYPTION_PREVIOUS_KEYS, klíč, který šifruje API klíče připojení k modelům (viz AI).
Některé aplikace čtou vlastní proměnné, nastavené na službě antimatter: aplikace Hovory čte AM_CALLS_* (viz Hovory a hlas), a aplikace GIF čte AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY a AM_GIFS_UPLOAD_KEY (viz Integrované aplikace).
Systémová konzole
Systémová konzole je administrativní oblast webové aplikace pro systémové administrátory. Otevřete ji kliknutím na svůj obrázek nahoře na liště aplikace a výběrem Systémová konzole, nebo přejděte na https://chat.example.com/admin_console. Její boční panel obsahuje pole Najít nastavení, které vyhledává na všech stránkách.

Její sekce jsou:
- Reporty: statistiky a serverové logy.
- Správa uživatelů: uživatelé, skupiny, komunity (zobrazované jako Tým), kanály, oprávnění a delegovaná správa.
- Systémové atributy: vlastní profilové atributy a přístup na základě atributů.
- Prostředí: webový server, databáze, úložiště souborů, proxy pro obrázky, SMTP, push oznámení, omezování rychlosti, protokolování, délka relací, monitorování výkonu.
- Konfigurace webu: branding, uživatelé a týmy, oznámení, příspěvky, sdílení souborů a další chování na úrovni celého serveru.
- Autentizace: registrace, přihlášení e-mailem a heslem, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect a přístup hostů.
- AI: připojení k modelům a vestavěné AI funkce (přepis, shrnutí, automatický překlad, převod textu na řeč). Viz AI.
- Pluginy: správa aplikací a nastavení každé nainstalované aplikace.
- Integrace: webhooks, příkazy s lomítkem, botové účty, GIF, převod textu na řeč, CORS.
- Shoda s předpisy: uchovávání dat, export a monitorování pro shodu s předpisy, auditní logování, vlastní podmínky služby.
- Experimentální: funkce, které se mohou měnit.
V tomto průvodci je nastavení uvedeno jako jeho cesta v Systémové konzoli, poté jeho popisek a nakonfigurační klíč, například Systémová konzole › Konfigurace webu › Uživatelé a týmy › Povolit ignorování, blokování a žádosti o zprávy (PrivacySettings.EnableUserBlocking).
Většina změn se projeví ihned po kliknutí na Uložit. Některé (adresa naslouchání, některá nastavení databáze a mezipaměti) vyžadují restart a stránka to uvádí.
Cech nebo pracovní prostor
Každá komunita má typ, který určuje některá její výchozí nastavení:
- Cech pro veřejnou nebo zájmovou komunitu: hovory v jejích kanálech jsou vypnuty (lidé komunikují v hlasových kanálech) a kanály mohou archivovat pouze administrátoři a role, které spravují kanály.
- Pracovní prostor pro firmu nebo organizaci: hovory v jejích kanálech jsou zapnuty a kanály archivují administrátoři kanálu (ten, kdo ho vytvořil, a ti, které určil za administrátory).
Systémová konzole › Konfigurace webu › Uživatelé a týmy › Typ nových komunit (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) určuje typ komunit vytvářených od tohoto okamžiku dále: Cech (výchozí hodnota) nebo Pracovní prostor; nastavení stále ukládá a čte starší hodnoty community a workplace. Předvolba rozvržení zvolená při vytváření komunity nastaví její vlastní typ. Administrátoři každé komunity mohou její typ později změnit v Nastavení týmu › Obecné. Nové cechy zařadí všechny členy do všech kanálů (TeamSettings.AllChannelsMembershipForNewTeams) je výchozí pouze pro nové cechy: pracovní prostory nikdy nezačínají tímto způsobem (viz Všichni ve všech kanálech).
Zprávy spálené po přečtení
Lidé mohou posílat zprávy, které jsou smazány určitou dobu poté, co je každý čtenář otevře (viz Zprávy se spálením po čtení). Nastavení najdete v Systémová konzole › Konfigurace webu › Příspěvky v sekci Zprávy se spálením po čtení:
| Nastavení | Klíč a proměnná | Výchozí |
|---|---|---|
| Povolit zprávy typu „spálit po přečtení“ | ServiceSettings.EnableBurnOnRead, AM_SERVICESETTINGS_ENABLEBURNONREAD | zapnuto |
| Doba trvání zprávy „spálit po přečtení“: jak dlouho zpráva existuje po jejím otevření, pokud odesílatel nezvolil žádnou dobu | ServiceSettings.BurnOnReadDurationSeconds, AM_SERVICESETTINGS_BURNONREADDURATIONSECONDS | 600 (10 minut) |
| Nejdelší doba, kterou mohou odesílatelé zvolit: od 1 hodiny do 7 dnů; delší volba je zkrácena na tuto hodnotu | ServiceSettings.BurnOnReadMaximumDurationSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMDURATIONSECONDS | 86400 (1 den) |
| Maximální doba existence zpráv typu Burn-on-Read: zpráva je smazána tuto dobu po odeslání, i když ji ještě ne všichni přečetli | ServiceSettings.BurnOnReadMaximumTimeToLiveSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMTIMETOLIVESECONDS | 604800 (7 dní) |
Nejdelší doba je znovu kontrolována při přečtení zprávy, takže její snížení zkrátí i již odeslané zprávy.
Příkazový řádek amctl
amctl spravuje server z příkazového řádku: uživatele, komunity, kanály, aplikace, konfiguraci, úkoly a další. Komunikuje se serverem jedním ze dvou způsobů.
Lokální režim, na serveru
Lokální režim umožňuje nástroji amctl komunikovat se serverem přes Unix socket bez nutnosti přihlášení. Je aktivní v Docker obrazu a v balíčcích .deb a .rpm. Na serveru nainstalovaném z archivu ho zapnete pomocí nastavení ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Socket má výchozí umístění /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, má plná práva systémového administrátora.Vzdáleně, s účtem
Z libovolného počítače se přihlaste účtem systémového administrátora (nebo osobním přístupovým tokem) a poté spouštějte příkazy pro daný server:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
Příkazy pro konfiguraci
| Příkaz | Co dělá |
|---|---|
amctl config get ServiceSettings.SiteURL | Vypíše jedno nastavení. |
amctl config set TeamSettings.EnableOpenServer false | Změní jedno nastavení. Seznamy nastavení přijímají jednu nebo více hodnot. |
amctl config patch settings.json | Sloučí soubor JSON s nastaveními do konfigurace. |
amctl config show | Vypíše celou konfiguraci jako JSON. |
amctl config edit | Otevře konfiguraci ve vašem editoru ($EDITOR). |
amctl config reset | Obnoví nastavení na výchozí hodnoty. |
amctl config reload | Znovu načte konfiguraci z místa, kde je uložena, po změně provedené mimo server. |
Nastavení aplikací se nacházejí pod PluginSettings.Plugins.<app id>, s klíči ve spodním písmu. Například pro nastavení adresy služby a klíče aplikace GIFs z Docker hostitele:
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
Další užitečné příkazy: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket a amctl logs. Pro možnosti jednotlivých příkazů spusťte amctl help <command>.
Protokoly
Server zapisuje své logy do dvou míst, každé s vlastní úrovní (DEBUG, INFO, WARN nebo ERROR), která se nastavuje v Systémová konzole › Prostředí › Logování:
| Cíl | Nastavení | Výchozí hodnoty |
|---|---|---|
| Konzole (standardní výstup) | Vypisovat logy do konzole (LogSettings.EnableConsole), Úroveň konzolového deníku (LogSettings.ConsoleLevel), Vypisovat logy konzole jako JSON (LogSettings.ConsoleJson) | zapnuto, DEBUG, JSON |
Soubor, antimatter.log | Výstup deníků do souboru (LogSettings.EnableFile), Úroveň souborového deníku (LogSettings.FileLevel), Adresář souborového deníku (LogSettings.FileLocation) | zapnuto, INFO, adresář logs/ vedle bin/ |
Protokolové soubory se roztáčejí při 100 MB a starší se komprimují.
Soubor compose pro web vypíná protokolování do souboru (AM_LOGSETTINGS_ENABLEFILE=false), takže protokoly se nacházejí pouze ve výstupu kontejneru:
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
Úroveň konzole má výchozí hodnotu DEBUG, což je velmi podrobné. Na vytíženém serveru nastavte AM_LOGSETTINGS_CONSOLELEVEL=INFO. Soubor config.json v release archivu i v balíčcích tuto hodnotu již nastavuje na INFO. Při použití release archivu pod systemd se výstup konzole zapisuje do journalu (journalctl -u antimatter) a do souboru /opt/antimatter/logs/antimatter.log. Balíčky vypínají zapisování do souboru, takže jejich logy se nacházejí pouze v journalu.
Soubory logů a auditní soubory musí zůstat uvnitř kořenového adresáře pro logování: AM_LOG_PATH (starší MM_LOG_PATH stále funguje), pokud je nastaven, jinak složka logs. Toto je ve výchozím nastavení vynucováno: Adresář souborového deníku, cíl pokročilého logování nebo cesta k auditnímu logu mimo kořenový adresář zastaví server při spuštění a je odmítnuto při ukládání konfigurace. Vynucování vypnete pomocí AM_FEATUREFLAGS_ENFORCELOGPATHROOT=false. Pokud je nastaven AM_LOG_PATH a Adresář souborového deníku je ponechán prázdný, logy se ukládají do AM_LOG_PATH.
Když je logování do souborů zapnuto, mohou systémoví administrátoři číst logy také v Systémová konzole › Reporty › Serverové logy: barevně odlišené odznaky úrovní, rychlé filtry podle úrovně, živý náhled a předvolby časového rozsahu od 5 minut do 24 hodin, nebo pomocí amctl logs.