Konfigurasi

Di mana Antimatter menyimpan tetapan, tiga cara untuk mengubahnya (Konsol Sistem, pemboleh ubah persekitaran, amctl), dan di mana log disimpan.

Di mana tetapan disimpan

Setiap tetapan server mempunyai nama yang terdiri daripada bahagian dan kunci, seperti ServiceSettings.SiteURL atau EmailSettings.SMTPServer. Bersama-sama, ia membentuk satu konfigurasi yang disimpan dalam salah satu daripada dua tempat:

  • Dalam pangkalan data. Fail komposisi laman web menetapkan AM_CONFIG kepada URL sambungan PostgreSQL, jadi konfigurasi adalah satu baris dalam pangkalan data dan kontena tidak menyimpan apa-apa pada cakera. Beberapa server yang berkongsi satu pangkalan data juga berkongsi konfigurasi mereka.
  • Dalam fail. Tanpa AM_CONFIG, pelayan membaca config/config.json di sebelah direktori bin/ (/antimatter/config/config.json dalam imej Docker). Arkib pelepasan dan fail compose pengeluaran antimatter-docker berfungsi dengan cara ini, dan juga pakej .deb dan .rpm, yang failnya ialah /etc/antimatter/config/config.json. Pastikan fail ini boleh dibaca oleh pengguna pelayan sahaja: ia menyimpan kata laluan dan kunci.

AM_CONFIG (atau bendera --config bagi arahan antimatter) menerima sama ada laluan fail atau URL postgres://. Tetapan yang anda tinggalkan akan mengambil nilai lalai.

Untuk memindahkan konfigurasi sedia ada daripada fail ke pangkalan data, jalankan ini pada server, kemudian mula server dengan AM_CONFIG ditetapkan kepada URL yang sama:

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

Pemboleh ubah persekitaran

Mana-mana tetapan juga boleh diberikan sebagai pemboleh ubah persekitaran. Pemboleh ubah menang ke atas konfigurasi yang disimpan, yang menjadikannya sesuai untuk apa yang berkaitan dengan pelayan: pangkalan data, URL laman web, storan fail, port.

Aturan penamaan

Tulis AM_, kemudian bahagian, kemudian kunci, dalam huruf besar dan dipisahkan oleh garisan bawah. Perkataan dalam nama bahagian atau kunci tidak dipisahkan:

TetapanPemboleh ubah
ServiceSettings.SiteURLAM_SERVICESETTINGS_SITEURL
SqlSettings.DataSourceAM_SQLSETTINGS_DATASOURCE
EmailSettings.SMTPServerAM_EMAILSETTINGS_SMTPSERVER
PrivacySettings.EnableUserBlockingAM_PRIVACYSETTINGS_ENABLEUSERBLOCKING
  • Tetapan benar dan palsu mengambil true atau false; nombor adalah nombor biasa.
  • Tetapan senarai mengambil nilai-nilai yang dipisahkan oleh ruang, sebagai contoh AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP".
  • Tetapan yang adalah objek mengambil JSON. Satu-satunya pemboleh ubah sedemikian untuk aplikasi ialah AM_PLUGINSETTINGS_PLUGINS, dan ia menggantikan tetapan setiap aplikasi sekaligus: tetapkan tetapan aplikasi dalam Konsol Sistem atau dengan amctl sebaliknya (lihat di bawah).
  • Setelan Mattermost yang lebih lama menggunakan awalan MM_, contohnya MM_SQLSETTINGS_DATASOURCE. Ia masih berfungsi sebagai nama ganti warisan. Apabila kedua-duanya ditetapkan, pemboleh ubah AM_ akan menang.

Setelan yang diberikan melalui pemboleh ubah dikunci dalam Konsol Sistem, dengan nota "Setelan ini telah ditetapkan melalui pemboleh ubah persekitaran. Ia tidak boleh diubah melalui Konsol Sistem." Ia tidak ditulis ke dalam konfigurasi tersimpan: buang pemboleh ubah dan nilai tersimpan akan terpakai semula.

Dengan Docker Compose

Tambah pemboleh ubah di bawah environment: bagi perkhidmatan antimatter, atau dalam compose.override.yaml di sebelah compose.yaml (Compose membacanya secara automatik, dan ia kekal selepas kemas kini fail yang dimuat turun):

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

Guna perubahan dengan docker compose up -d, yang akan mencipta semula kontena.

Pemboleh ubah yang dibaca oleh aplikasi

Beberapa pemboleh ubah bukan tetapan dan tiada medan Konsol Sistem: AM_CONFIG (di mana konfigurasi berada), dan AM_AI_ENCRYPTION_KEY serta AM_AI_ENCRYPTION_PREVIOUS_KEYS, iaitu kunci yang mengenkripsi kunci API sambungan model (lihat AI).

Beberapa aplikasi membaca pemboleh ubah mereka sendiri, ditetapkan pada perkhidmatan antimatter: aplikasi Panggilan membaca AM_CALLS_* (lihat Panggilan dan suara), dan aplikasi GIF membaca AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY dan AM_GIFS_UPLOAD_KEY (lihat Aplikasi terbina dalam).

Konsol Sistem

Konsol Sistem ialah kawasan pentadbiran aplikasi web, untuk pentadbir sistem. Untuk membukanya, klik gambar anda di bahagian atas rel aplikasi dan pilih Konsol Sistem, atau pergi ke https://chat.example.com/admin_console. Bar sisinya mempunyai kotak Cari tetapan yang mencari setiap halaman.

The System Console, with its sidebar of sections on the left and the SAML 2.0 settings page on the right.
Konsol Sistem. Bar sisi mengumpul halaman ke dalam bahagian seperti Pelaporan, Pengurusan Pengguna dan Persekitaran.

Bahagiannya ialah:

  • Pelaporan: statistik dan log pelayan.
  • Pengurusan Pengguna: pengguna, kumpulan, komuniti (disenaraikan sebagai Pasukan), saluran, kebenaran dan pentadbiran terwakil.
  • Atribut Sistem: atribut profil khusus dan akses berasaskan atribut.
  • Persekitaran: pelayan web, pangkalan data, stor fail, proksi imej, SMTP, pemberitahuan tolak, had kadar, log, panjang sesi, pemantauan prestasi.
  • Konfigurasi Laman: penjenamaan, pengguna dan pasukan, pemberitahuan, hantaran, perkongsian fail dan tingkah laku seluruh pelayan yang lain.
  • Pengesahan: daftar, log masuk e-mel dan kata laluan, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect dan akses tetamu.
  • AI: sambungan model dan ciri AI terbina dalam (tulis semula, ringkasan, penterjemahan automatik, teks ke suara). Lihat AI.
  • Plugin: pengurusan aplikasi dan tetapan setiap aplikasi yang dipasang.
  • Integrasi: webhook, arahan garis miring, akaun bot, GIF, teks ke suara, CORS.
  • Pematuhan: pemeliharaan data, eksport pematuhan dan pemantauan, log audit, terma perkhidmatan tersuai.
  • Eksperimental: ciri-ciri yang mungkin berubah.

Dalam panduan ini, tetapan ditulis sebagai lalunya dalam Konsol Sistem, kemudian labelnya, kemudian kekunci konfigurasinya, sebagai contoh Konsol Sistem › Konfigurasi Laman › Pengguna dan Pasukan › Aktifkan pengabaian, penyekatan dan permintaan mesej (PrivacySettings.EnableUserBlocking).

Kebanyakan perubahan berkuat kuasa sebaik sahaja anda klik Simpan. Beberapa (alamat dengar, beberapa tetapan pangkalan data dan cache) memerlukan mulakan semula, dan halaman tersebut akan memaklumkan.

Tempat kerja atau komuniti

Setiap komuniti mempunyai jenis, yang menetapkan beberapa lalaiannya:

  • Komuniti, untuk komuniti awam atau hobi: panggilan dimatikan dalam salurannya (orang bercakap dalam saluran suara), dan hanya pentadbirnya, serta peranan yang mengurus saluran, yang mengarkib saluran.
  • Tempat kerja, untuk syarikat atau organisasi: panggilan dihidupkan dalam salurannya, dan pentadbir saluran (siapa pun yang menciptanya, dan mereka yang dilantik sebagai pentadbir) juga mengarkibnya.

Konsol Sistem › Konfigurasi Laman › Pengguna dan Pasukan › Jenis komuniti baharu (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) ialah jenis komuniti yang dicipta dari masa ke masa: community (lalai) atau workplace. Prasetup susun atur yang dipilih semasa mencipta komuniti menetapkan jenisnya sendiri. Pentadbir setiap komuniti boleh mengubah jenisnya kemudian, dalam Tetapan pasukan › Saluran › Jenis komuniti.

Untuk syarikat, tetapkan kepada Tempat kerja sebelum anda mewujudkan komuniti pertama, atau sebelum anda menaik taraf pelayan sedia ada ke 0.9.0: proses naik taraf ini akan memberikan setiap komuniti sedia ada nilai tetapan yang ada pada masa tersebut (lihat Naik taraf ke 0.9.0).

Alat baris arahan amctl

amctl mengurus pelayan dari baris arahan: pengguna, komuniti, saluran, aplikasi, konfigurasi, kerja dan banyak lagi. Ia berinteraksi dengan pelayan melalui salah satu daripada dua cara.

Mod lokal, pada pelayan

Mod tempatan membolehkan amctl berinteraksi dengan pelayan melalui soket Unix, tanpa perlu log masuk. Mod ini diaktifkan dalam imej Docker serta dengan pakej .deb dan .rpm. Pada pelayan yang dipasang daripada arkib, aktifkannya dengan ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Soket secara lalai ialah /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
Sesiapa yang boleh menggunakan soket, atau menjalankan docker compose exec pada hos, mempunyai hak pentadbir sistem penuh.

Jauh, dengan akaun

Dari mana-mana mesin, log masuk dengan akaun pentadbir sistem (atau token akses peribadi), kemudian jalankan arahan terhadap pelayan tersebut:

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

Arahan konfigurasi

ArahanFungsinya
amctl config get ServiceSettings.SiteURLMencetak satu tetapan.
amctl config set TeamSettings.EnableOpenServer falseMenukar satu tetapan. Senarai tetapan mengambil beberapa nilai.
amctl config patch settings.jsonMenggabungkan fail JSON tetapan ke dalam konfigurasi.
amctl config showMencetak keseluruhan konfigurasi sebagai JSON.
amctl config editMembuka konfigurasi dalam penyunting anda ($EDITOR).
amctl config resetMenetapkan semula tetapan ke lalai.
amctl config reloadMemuat semula konfigurasi dari tempat ia disimpan, selepas perubahan yang dibuat di luar pelayan.

Tetapan aplikasi berada di bawah PluginSettings.Plugins.<app id>, dengan kunci dalam huruf kecil. Sebagai contoh, untuk menetapkan URL perkhidmatan dan kunci aplikasi GIF dari hos 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

Arahan berguna lain: 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 pilihan setiap satu.

Log

Pelayan menulis lognya ke dua tempat, masing-masing dengan tahapnya sendiri (DEBUG, INFO, WARN atau ERROR), ditetapkan dalam Konsol Sistem › Persekitaran › Pencatatan:

DestinasiTetapanLalai
Konsol (output piawai)Keluar log ke konsol (LogSettings.EnableConsole), Tahap Log Konsol (LogSettings.ConsoleLevel), Keluar log konsol sebagai JSON (LogSettings.ConsoleJson)hidup, DEBUG, JSON
Fail, antimatter.logKeluarkan log ke fail (LogSettings.EnableFile), Tahap Log Fail (LogSettings.FileLevel), Direktori Log Fail (LogSettings.FileLocation)hidup, INFO, direktori logs/ di sebelah bin/

Fail log dipusing pada 100 MB dan yang lama dimampatkan.

Fail compose tapak ini mematikan pengeklog fail (AM_LOGSETTINGS_ENABLEFILE=false), jadi log hanya dalam output kontena:

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

Tahap konsol secara lalai ialah DEBUG, yang agak terperinci. Pada pelayan yang sibuk, tetapkan AM_LOGSETTINGS_CONSOLELEVEL=INFO. Fail config.json arkib keluaran dan pakej sudah menyetaknya kepada INFO. Dengan arkib keluaran di bawah systemd, keluaran konsol akan pergi ke jurnal (journalctl -u antimatter) dan fail ke /opt/antimatter/logs/antimatter.log. Pakej mematikan log fail, jadi log mereka hanya ada dalam jurnal.

Apabila pengeklog fail hidup, pentadbir sistem juga boleh membaca baris log terkini dalam Konsol Sistem › Pelaporan › Log Pelayan, atau dengan amctl logs.