Konfigurasi
Di mana Antimatter menyimpan pengaturannya, tiga cara untuk mengubahnya (Konsol Sistem, variabel lingkungan, amctl), dan ke mana log diarahkan.
Di mana pengaturan disimpan
Setiap pengaturan server memiliki nama yang terdiri dari bagian dan kunci, seperti ServiceSettings.SiteURL atau EmailSettings.SMTPServer. Keduanya membentuk satu konfigurasi, yang disimpan di salah satu dari dua tempat:
- Di database. File compose situs mengatur
AM_CONFIGke URL koneksi PostgreSQL, sehingga konfigurasi menjadi baris di database dan kontainer tidak menyimpan apa pun di disk. Beberapa server yang berbagi satu database juga berbagi konfigurasi mereka. - Dalam file. Tanpa
AM_CONFIG, server membacaconfig/config.jsondi sebelah direktoribin/(/antimatter/config/config.jsondalam image Docker). Arsip rilis dan file compose produksi dari antimatter-docker bekerja dengan cara ini, begitu juga paket .deb dan .rpm, yang file-nya adalah/etc/antimatter/config/config.json. Pastikan file ini hanya dapat dibaca oleh pengguna server: file ini menyimpan kata sandi dan kunci.
AM_CONFIG (atau flag --config dari perintah antimatter) menerima jalur file atau URL postgres://. Pengaturan yang Anda tinggalkan akan mengambil nilai defaultnya.
Untuk memindahkan konfigurasi yang sudah ada dari file ke database, jalankan ini di server, lalu mulai server dengan AM_CONFIG diatur ke URL yang sama:
amctl --local config migrate /opt/antimatter/config/config.json \
"postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"
Variabel lingkungan
Setiap pengaturan juga dapat diberikan sebagai variabel lingkungan. Variabel menang atas konfigurasi yang disimpan, yang membuatnya cocok untuk apa yang milik deployment: database, URL situs, penyimpanan file, port.
Aturan penamaan
Tulis AM_, lalu bagian, lalu kunci, dalam huruf kapital dan dipisahkan oleh garis bawah. Kata-kata di dalam nama bagian atau kunci tidak dipisahkan:
| Pengaturan | Variabel |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- Pengaturan true dan false mengambil
trueataufalse; angka adalah angka polos. - Pengaturan daftar mengambil nilai-nilai yang dipisahkan oleh spasi, misalnya
AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP". - Pengaturan yang berupa objek mengambil JSON. Satu-satunya variabel seperti itu untuk aplikasi adalah
AM_PLUGINSETTINGS_PLUGINS, dan itu menggantikan pengaturan setiap aplikasi sekaligus: atur pengaturan aplikasi di Konsol Sistem atau denganamctlsebagai gantinya (lihat di bawah). - Konfigurasi Mattermost lama menggunakan awalan
MM_, misalnyaMM_SQLSETTINGS_DATASOURCE. Ini masih berfungsi sebagai alias warisan. Jika keduanya disetel, variabelAM_yang berlaku.
Pengaturan yang diberikan melalui variabel dikunci di Konsol Sistem, dengan catatan "Pengaturan ini telah disetel melalui variabel lingkungan. Tidak dapat diubah melalui Konsol Sistem." Pengaturan ini tidak ditulis ke konfigurasi tersimpan: hapus variabelnya dan nilai tersimpan akan berlaku lagi.
Dengan Docker Compose
Tambahkan variabel di bawah environment: dari layanan antimatter, atau di compose.override.yaml di sebelah compose.yaml (Compose membacanya secara otomatis, dan file ini tetap ada setelah pembaruan file yang diunduh):
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_LOGSETTINGS_CONSOLELEVEL: INFO
Terapkan perubahan dengan docker compose up -d, yang akan membuat ulang kontainer.
Variabel yang dibaca oleh aplikasi
Beberapa variabel bukan pengaturan dan tidak memiliki kolom di Konsol Sistem: AM_CONFIG (lokasi konfigurasi), serta AM_AI_ENCRYPTION_KEY dan AM_AI_ENCRYPTION_PREVIOUS_KEYS, yaitu kunci yang mengenkripsi kunci API dari koneksi model (lihat AI).
Beberapa aplikasi membaca variabelnya sendiri, yang disetel pada layanan antimatter: aplikasi Calls membaca AM_CALLS_* (lihat Panggilan dan suara), dan aplikasi GIFs membaca AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY, dan AM_GIFS_UPLOAD_KEY (lihat Aplikasi bawaan).
Konsol Sistem
Konsol Sistem adalah area administrasi dari aplikasi web, untuk administrator sistem. Untuk membukanya, klik foto Anda di bagian atas bilah aplikasi dan pilih Konsol Sistem, atau buka https://chat.example.com/admin_console. Bilah sampingnya memiliki kotak Cari pengaturan yang mencari di semua halaman.

Bagian-bagiannya adalah:
- Pelaporan: statistik dan log server.
- Manajemen Pengguna: pengguna, grup, komunitas (tercantum sebagai Tim), kanal, izin, dan administrasi terdelegasi.
- Atribut Sistem: atribut profil kustom dan akses berbasis atribut.
- Lingkungan: server web, database, penyimpanan file, proxy gambar, SMTP, notifikasi push, pembatasan laju, pencatatan log, durasi sesi, dan pemantauan kinerja.
- Konfigurasi Situs: branding, pengguna dan tim, notifikasi, kiriman, berbagi file, dan perilaku server lainnya.
- Autentikasi: pendaftaran, masuk dengan email dan kata sandi, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect, dan akses tamu.
- AI: koneksi model dan fitur AI bawaan (tulis ulang, ringkasan, penerjemahan otomatis, teks ke suara). Lihat AI.
- Plugin: manajemen aplikasi dan pengaturan masing-masing aplikasi yang terpasang.
- Integrasi: webhook, perintah garis miring, akun bot, GIFs, teks ke suara, CORS.
- Kepatuhan: retensi data, ekspor dan pemantauan kepatuhan, pencatatan audit, serta ketentuan layanan khusus.
- Eksperimental: fitur yang mungkin berubah.
Dalam panduan ini, sebuah pengaturan ditulis sebagai jalurnya di Konsol Sistem, lalu labelnya, lalu kunci konfigurasinya, misalnya Konsol Sistem › Konfigurasi Situs › Pengguna dan Tim › Aktifkan pengabaian, pemblokiran, dan permintaan pesan (PrivacySettings.EnableUserBlocking).
Sebagian besar perubahan berlaku segera setelah Anda mengklik Simpan. Beberapa (alamat dengar, beberapa pengaturan database dan cache) memerlukan restart, dan halaman tersebut akan menyatakannya.
Tempat kerja atau komunitas
Setiap komunitas memiliki jenis, yang mengatur beberapa nilai default-nya:
- Komunitas, untuk komunitas publik atau hobi: panggilan dimatikan di kanalnya (orang-orang berbicara di kanal suara), dan hanya admin-nya, serta peran yang mengelola kanal, yang mengarsipkan kanal.
- Tempat kerja, untuk perusahaan atau organisasi: panggilan diaktifkan di kanalnya, dan admin dari sebuah kanal (siapa pun yang membuatnya, dan mereka yang mereka jadikan admin) juga dapat mengarsipkannya.
Konsol Sistem › Konfigurasi Situs › Pengguna dan Tim › Jenis komunitas baru (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) adalah jenis komunitas yang dibuat mulai saat itu: community (default) atau workplace. Preset tata letak yang dipilih saat membuat komunitas mengatur jenisnya sendiri. Admin dari setiap komunitas dapat mengubah jenisnya nanti, di Pengaturan tim › Kanal › Jenis komunitas.
Perintah baris perintah amctl
amctl mengelola server dari baris perintah: pengguna, komunitas, kanal, aplikasi, konfigurasi, tugas, dan lainnya. Alat ini berkomunikasi dengan server melalui salah satu dari dua cara.
Mode lokal, di server
Mode lokal memungkinkan amctl berbicara dengan server melalui soket Unix, tanpa masuk. Mode ini aktif pada image Docker dan dengan paket .deb dan .rpm. Pada server yang diinstal dari arsip, aktifkan dengan ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Soket secara default adalah /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 di host, memiliki hak administrator sistem penuh.Jarak jauh, dengan akun
Dari mesin mana pun, masuk dengan akun administrator sistem (atau token akses pribadi), lalu jalankan perintah terhadap server tersebut:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
Perintah konfigurasi
| Perintah | Fungsinya |
|---|---|
amctl config get ServiceSettings.SiteURL | Menampilkan satu pengaturan. |
amctl config set TeamSettings.EnableOpenServer false | Mengubah satu pengaturan. Pengaturan daftar menerima beberapa nilai. |
amctl config patch settings.json | Menggabungkan file JSON berisi pengaturan ke dalam konfigurasi. |
amctl config show | Menampilkan seluruh konfigurasi sebagai JSON. |
amctl config edit | Membuka konfigurasi di editor Anda ($EDITOR). |
amctl config reset | Mengatur ulang pengaturan ke nilai bawaannya. |
amctl config reload | Memuat ulang konfigurasi dari tempat penyimpanannya, setelah perubahan yang dilakukan di luar server. |
Pengaturan aplikasi berada di bawah PluginSettings.Plugins.<app id>, dengan kunci dalam huruf kecil. Misalnya, untuk mengatur URL layanan dan kunci aplikasi GIF dari host 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
Perintah berguna lainnya: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket, dan amctl logs. Jalankan amctl help <command> untuk melihat opsi masing-masing.
Log
Server menulis log ke dua tempat, masing-masing dengan level (DEBUG, INFO, WARN, atau ERROR) yang diatur di Konsol Sistem › Lingkungan › Pencatatan:
| Tujuan | Pengaturan | Bawaan |
|---|---|---|
| Konsol (keluaran standar) | Keluar log ke konsol (LogSettings.EnableConsole), Tingkat Log Konsol (LogSettings.ConsoleLevel), Keluar log konsol sebagai JSON (LogSettings.ConsoleJson) | aktif, DEBUG, JSON |
Berkas, antimatter.log | Keluar log ke file (LogSettings.EnableFile), Tingkat Log File (LogSettings.FileLevel), Direktori Log File (LogSettings.FileLocation) | aktif, INFO, direktori logs/ di sebelah bin/ |
Berkas log dirotasi pada 100 MB dan yang lama dikompresi.
Berkas compose situs menonaktifkan pencatatan ke berkas (AM_LOGSETTINGS_ENABLEFILE=false), sehingga log hanya ada di keluaran kontainer:
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
Level konsol secara default adalah DEBUG, yang sangat rinci. Pada server yang sibuk, atur AM_LOGSETTINGS_CONSOLELEVEL=INFO. config.json dari arsip rilis dan paket sudah mengaturnya ke INFO. Dengan arsip rilis di bawah systemd, keluaran konsol masuk ke jurnal (journalctl -u antimatter) dan file ke /opt/antimatter/logs/antimatter.log. Paket mematikan pencatatan file, sehingga log mereka hanya ada di jurnal.
Ketika pencatatan log ke file diaktifkan, administrator sistem juga dapat membaca baris log terbaru di Konsol Sistem › Pelaporan › Log Server, atau dengan amctl logs.