Konfiguracja
Gdzie Antimatter przechowuje ustawienia, trzy sposoby ich zmiany (Konsola systemu, zmienne środowiskowe, amctl) oraz lokalizacja dzienników.
Lokalizacja ustawień
Każde ustawienie serwera ma nazwę składającą się z sekcji i klucza, np. ServiceSettings.SiteURL lub EmailSettings.SMTPServer. Razem tworzą one konfigurację, przechowywaną w jednym z dwóch miejsc:
- W bazie danych. Plik compose witryny ustawia
AM_CONFIGna adres URL połączenia z PostgreSQL, dzięki czemu konfiguracja jest wierszem w bazie danych, a kontener nie przechowuje niczego na dysku. Kilka serwerów współdzielących jedną bazę danych współdzieli również swoją konfigurację. - W pliku. Bez
AM_CONFIGserwer odczytujeconfig/config.jsonznajdujący się obok katalogubin/(w obrazie Docker to/antimatter/config/config.json). Tak działają archiwa wydawnicze oraz produkcyjne pliki compose z antimatter-docker, a także pakiety .deb i .rpm, których plik znajduje się pod/etc/antimatter/config/config.json. Upewnij się, że ten plik jest czytelny wyłącznie dla użytkownika serwera: zawiera hasła i klucze.
AM_CONFIG (lub flaga --config polecenia antimatter) akceptuje ścieżkę do pliku lub adres URL postgres://. Ustawienia, których nie podasz, przyjmą wartość domyślną.
Aby przenieść istniejącą konfigurację z pliku do bazy danych, uruchom na serwerze poniższe polecenie, a następnie uruchom serwer z ustawioną zmienną AM_CONFIG na ten sam adres URL:
amctl --local config migrate /opt/antimatter/config/config.json \
"postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"
Zmienne środowiskowe
Każde ustawienie można również podać jako zmienną środowiskową. Zmienne mają pierwszeństwo przed zapisaną konfiguracją, co czyni je idealnymi do elementów należących do wdrożenia: bazy danych, adresu URL witryny, magazynu plików i portów.
Zasady nazewnictwa
Napisz AM_, następnie sekcję, a następnie klucz, wielkimi literami, oddzielone podkreśleniami. Słowa wewnątrz nazwy sekcji lub klucza nie są oddzielane:
| Ustawienie | Zmienna |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- Ustawienia typu prawda/fałsz przyjmują
truelubfalse; liczby to zwykłe liczby. - Ustawienia listowe przyjmują wartości oddzielone spacjami, np.
AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP". - Ustawienia będące obiektami przyjmują JSON. Jedyną taką zmienną dla aplikacji jest
AM_PLUGINSETTINGS_PLUGINS, która zastępuje ustawienia wszystkich aplikacji naraz: ustawiaj konfigurację aplikacji w Konsoli systemu lub za pomocąamctl(patrz niżej). - Starsze instalacje Mattermosta używają prefiksu
MM_, na przykładMM_SQLSETTINGS_DATASOURCE. Nadal działa jako alias legacy. Jeśli ustawione są obie zmienne, ma pierwszeństwo zmiennaAM_.
Ustawienie zdefiniowane przez zmienną jest zablokowane w Konsoli systemu, z adnotacją „To ustawienie zostało skonfigurowane za pomocą zmiennej środowiskowej. Nie można go zmienić w Konsoli systemu.” Nie jest zapisywane w trwałej konfiguracji: po usunięciu zmiennej znów obowiązuje zapisana wartość.
Z Docker Compose
Dodaj zmienne w sekcji environment: usługi antimatter lub w pliku compose.override.yaml obok compose.yaml (Compose odczytuje go automatycznie, a on przetrwa aktualizacje pobranego pliku):
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_LOGSETTINGS_CONSOLELEVEL: INFO
Zastosuj zmiany poleceniem docker compose up -d, które tworzy kontener od nowa.
Zmienne odczytywane przez aplikacje
Kilka zmiennych nie jest ustawieniami i nie ma odpowiednika w polach Konsoli systemu: AM_CONFIG (miejsce przechowywania konfiguracji) oraz AM_AI_ENCRYPTION_KEY i AM_AI_ENCRYPTION_PREVIOUS_KEYS, czyli klucz szyfrujący klucze API połączeń z modelami (patrz AI).
Niektóre aplikacje odczytują własne zmienne, ustawione w usłudze antimatter: aplikacja Calls odczytuje AM_CALLS_* (patrz Rozmowy i głos), a aplikacja GIFs odczytuje AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY i AM_GIFS_UPLOAD_KEY (patrz Wbudowane aplikacje).
Konsola systemu
Konsola systemu to obszar administracyjny aplikacji internetowej, przeznaczony dla administratorów systemu. Aby ją otworzyć, kliknij swoje zdjęcie na górze paska aplikacji i wybierz Konsola systemu lub przejdź do https://chat.example.com/admin_console. Jej pasek boczny zawiera pole Wyszukaj ustawienia, które przeszukuje wszystkie strony.

Jej sekcje to:
- Raportowanie: statystyki i dzienniki serwera.
- Zarządzanie użytkownikiem: użytkownicy, grupy, społeczności (wyświetlane jako zespoły), kanały, uprawnienia i delegowana administracja.
- Atrybuty systemu: niestandardowe atrybuty profilu i dostęp oparty na atrybutach.
- Środowisko: serwer webowy, baza danych, magazyn plików, proxy obrazów, SMTP, powiadomienia push, limitowanie przepustowości, logowanie, długość sesji, monitorowanie wydajności.
- Konfiguracja strony: identyfikacja wizualna, użytkownicy i zespoły, powiadomienia, posty, udostępnianie plików i inne zachowania na poziomie serwera.
- Autoryzacja: rejestracja, logowanie e-mailem i hasłem, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect i dostęp dla gości.
- AI: połączenia z modelami i wbudowane funkcje AI (przepisywanie, podsumowania, automatyczne tłumaczenie, konwersja tekstu na mowę). Patrz AI.
- Wtyczki: zarządzanie aplikacjami i ustawienia każdej zainstalowanej aplikacji.
- Integracje: webhooki, polecenia z ukośnikiem, konta botów, GIFy, tekst do mowy, CORS.
- Zgodność: przechowywanie danych, eksport zgodności i monitorowanie, dzienniki audytu, niestandardowe warunki świadczenia usług.
- Eksperymentalne: funkcje, które mogą ulec zmianie.
W tym przewodniku ustawienie jest zapisane jako jego ścieżka w Konsoli systemu, a następnie jego etykieta, a następnie klucz konfiguracji, na przykład Konsola systemu › Konfiguracja strony › Użytkownicy i zespoły › Włącz ignorowanie, blokowanie i prośby o wiadomość (PrivacySettings.EnableUserBlocking).
Większość zmian ma zastosowanie od razu po kliknięciu Zapisz. Kilka (adres nasłuchiwania, niektóre ustawienia bazy danych i pamięci podręcznej) wymaga ponownego uruchomienia, a strona o tym informuje.
Miejsce pracy lub Społeczność
Każda Społeczność ma typ, który ustawia niektóre z jej wartości domyślnych:
- Społeczność, dla publicznej lub hobbystycznej społeczności: rozmowy są wyłączone w jej kanałach (użytkownicy rozmawiają w kanałach głosowych), a kanały archiwizują tylko jej administratorzy oraz role zarządzające kanałami.
- Miejsce pracy, dla firmy lub organizacji: rozmowy są włączone w jej kanałach, a kanały archiwizują również ich administratorzy (osoba, która je utworzyła, oraz osoby, którym nadano uprawnienia administratora).
Konsola systemu › Konfiguracja strony › Użytkownicy i zespoły › Typ nowych społeczności (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) to typ społeczności tworzonych od tej pory: community (domyślnie) lub workplace. Preset układu wybrany podczas tworzenia społeczności ustawia jej własny typ. Administratorzy każdej społeczności mogą później zmienić jej typ w Ustawienia zespołu › Kanały › Typ społeczności.
Narzędzie wiersza poleceń amctl
amctl zarządza serwerem z wiersza poleceń: użytkownicy, społeczności, kanały, aplikacje, konfiguracja, zadania i wiele więcej. Komunikuje się z serwerem na jeden z dwóch sposobów.
Tryb lokalny, na serwerze
Tryb lokalny pozwala amctl komunikować się z serwerem przez gniazdo Unix, bez logowania. Jest on włączony w obrazie Docker oraz w pakietach .deb i .rpm. Na serwerze zainstalowanym z archiwum włącz go za pomocą ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Gniazdo domyślnie znajduje się pod /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 na hoście, ma pełne uprawnienia administratora systemu.Zdalnie, z kontem
Z dowolnej maszyny, zaloguj się na konto administratora systemu (lub osobisty token dostępu), a następnie wykonaj polecenia na tym serwerze:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
Polecenia konfiguracji
| Polecenie | Opis |
|---|---|
amctl config get ServiceSettings.SiteURL | Wyświetla jedno ustawienie. |
amctl config set TeamSettings.EnableOpenServer false | Zmienia jedno ustawienie. Ustawienia listy przyjmują kilka wartości. |
amctl config patch settings.json | Scal plik JSON z ustawieniami z konfiguracją. |
amctl config show | Wyświetla całą konfigurację jako JSON. |
amctl config edit | Otwiera konfigurację w edytorze ($EDITOR). |
amctl config reset | Resetuje ustawienia do wartości domyślnych. |
amctl config reload | Przeładowuje konfigurację z miejsca, w którym jest przechowywana, po zmianie wykonanej poza serwerem. |
Ustawienia aplikacji znajdują się pod PluginSettings.Plugins.<app id>, z kluczami w małych literach. Na przykład, aby ustawić adres URL usługi i klucz aplikacji GIFs z hosta 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
Inne przydatne polecenia: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket i amctl logs. Uruchom amctl help <command> dla opcji każdego z nich.
Dzienniki
Serwer zapisuje logi w dwóch miejscach, każde z własnym poziomem (DEBUG, INFO, WARN lub ERROR), konfigurowanym w Konsola systemu › Środowisko › Ustawienia logów:
| Miejsce zapisu | Ustawienia | Domyślne wartości |
|---|---|---|
| Konsola (standardowe wyjście) | Wysyłaj logi do konsoli (LogSettings.EnableConsole), Poziom logowania konsoli (LogSettings.ConsoleLevel), Wyprowadź logi konsoli jako JSON (LogSettings.ConsoleJson) | włączone, DEBUG, JSON |
Plik, antimatter.log | Wypisuje logi do pliku (LogSettings.EnableFile), Poziom Pliku Logów (LogSettings.FileLevel), Katalog z plikami logów (LogSettings.FileLocation) | włączone, INFO, katalog logs/ obok bin/ |
Pliki logów są rotowane przy rozmiarze 100 MB, a starsze są kompresowane.
Plik compose witryny wyłącza logowanie do pliku (AM_LOGSETTINGS_ENABLEFILE=false), więc logi są dostępne wyłącznie w wyjściu kontenera:
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
Poziom konsoli domyślnie wynosi DEBUG, co jest bardzo szczegółowe. Na zajętym serwerze ustaw AM_LOGSETTINGS_CONSOLELEVEL=INFO. Plik config.json w archiwum wydania oraz w pakietach jest już ustawiony na INFO. W przypadku archiwum wydania pod systemd, wyjście konsoli trafia do dziennika (journalctl -u antimatter), a do pliku /opt/antimatter/logs/antimatter.log. Pakiety wyłączają logowanie do pliku, więc ich logi znajdują się wyłącznie w dzienniku.
Gdy logowanie do pliku jest włączone, administratorzy systemu mogą również odczytać najnowsze linie logów w Konsola systemu › Raportowanie › Logi serwera lub za pomocą polecenia amctl logs.