Yapılandırma
Antimatter'ın ayarlarını nerede sakladığı, bunları değiştirmenin üç yolu (Sistem Konsolu, ortam değişkenleri, amctl) ve günlüklerin (log) nereye yazıldığı.
Ayarların nerede saklandığı
Her sunucu ayarının, ServiceSettings.SiteURL veya EmailSettings.SMTPServer gibi bir bölüm ve bir anahtar adı vardır. Birlikte tek bir yapılandırmayı oluştururlar ve bu yapılandırma iki yerden birinde saklanır:
- Veritabanında. Sitein compose dosyası
AM_CONFIGdeğerini PostgreSQL bağlantı URL'si olarak ayarlar; böylece yapılandırma veritabanındaki bir satır olur ve konteyner diskte hiçbir şey saklamaz. Tek bir veritabanını paylaşan birden fazla sunucu, yapılandırmalarını da paylaşır. - Bir dosyada.
AM_CONFIGtanımlanmadığında, sunucubin/dizininin yanındakiconfig/config.jsondosyasını okur (Docker görüntüsünde/antimatter/config/config.json). antimatter-docker'ın sürüm arşivi ve üretim compose dosyaları bu şekilde çalışır; .deb ve .rpm paketleri de öyle, bu paketlerdeki dosya/etc/antimatter/config/config.jsonkonumundadır. Bu dosyanın yalnızca sunucunun kullanıcı tarafından okunabilir olmasını sağlayın: şifreler ve anahtarlar bu dosyada saklanır.
AM_CONFIG (veya antimatter komutunun --config bayrağı) bir dosya yolu veya postgres:// URL'si kabul eder. Tanımlamadığınız ayarlar varsayılan değerlerini alır.
Mevcut bir yapılandırmayı dosyadan veritabanına taşımak için sunucuda bunu çalıştırın, ardından sunucuyu AM_CONFIG değeri aynı URL olarak ayarlı başlatın:
amctl --local config migrate /opt/antimatter/config/config.json \
"postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"
Ortam değişkenleri
Herhangi bir ayar ayrıca bir ortam değişkeni olarak da verilebilir. Değişkenler, saklanan yapılandırmaya göre önceliklidir; bu da onları dağıtıma ait olanlar için iyi bir seçenek yapar: veritabanı, site URL'si, dosya depolama, portlar.
Adlandırma kuralı
AM_ yazın, ardından bölümü, ardından anahtarı, büyük harflerle ve alt çizgilerle ayırarak yazın. Bir bölüm veya anahtar adı içindeki kelimeler ayrılmaz:
| Ayar | Değişken |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- Doğru ve yanlış ayarlar
trueveyafalsealır; sayılar düz sayılardır. - Liste ayarları, değerlerini boşluklarla ayırarak alır, örneğin
AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP". - Nesne olan ayarlar JSON alır. Uygulamalar için tek böyle değişken
AM_PLUGINSETTINGS_PLUGINS'tir ve tüm uygulamaların ayarlarını birden değiştirir: uygulama ayarlarını bunun yerine Sistem Konsolu'nda veyaamctlile ayarlayın (aşağıya bakın). - Eski Mattermost kurulumları
MM_öneki kullanır, örneğinMM_SQLSETTINGS_DATASOURCE. Bu, eski bir takma ad olarak hâlâ çalışır. Her iki değişken de ayarlıysaAM_değişkeni önceliklidir.
Bir değişkenle sağlanan ayar, Sistem Konsolu'nda kilitlenir ve şu notla birlikte görüntülenir: "Bu ayar bir ortam değişkeni üzerinden yapılmıştır. Sistem Konsolu üzerinden değiştirilemez." Değer, saklanan yapılandırmaya yazılmaz; değişkeni kaldırdığınızda saklanan değer yeniden geçerli olur.
Docker Compose ile
Değişkenleri antimatter servisinin environment: bölümüne ekleyin veya compose.yaml dosyasının yanına compose.override.yaml dosyası yerleştirin (Compose bu dosyayı otomatik olarak okur ve indirilen dosyanın güncellenmesi sırasında korunur):
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_LOGSETTINGS_CONSOLELEVEL: INFO
Değişiklikleri, konteyneri yeniden oluşturan docker compose up -d komutuyla uygulayın.
Uygulamaların okuduğu değişkenler
Bazı değişkenler ayar değildir ve Sistem Konsolu'nda karşılığı yoktur: AM_CONFIG (yapılandırmanın nerede olduğu) ve model bağlantılarının API anahtarlarını şifreleyen anahtar olan AM_AI_ENCRYPTION_KEY ile AM_AI_ENCRYPTION_PREVIOUS_KEYS (bkz. Yapay zeka).
Bazı uygulamalar, antimatter servisinde ayarlanan kendi değişkenlerini okur: Calls uygulaması AM_CALLS_* değişkenlerini (bkz. Calls and voice), GIFs uygulaması ise AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY ve AM_GIFS_UPLOAD_KEY değişkenlerini okur (bkz. Bundled apps).
Sistem Konsolu
Sistem Konsolu, web uygulamasının sistem yöneticileri için yönetim alanıdır. Açmak için, uygulama rayının üst kısmındaki profil resminize tıklayıp Sistem Konsolu seçin veya https://chat.example.com/admin_console adresine gidin. Kenar çubuğundaki Ayar arama kutusu tüm sayfalarda arama yapar.

Bölümleri şunlardır:
- Raporlama: istatistikler ve sunucu günlükleri.
- Kullanıcı yönetimi: kullanıcılar, gruplar, topluluklar (Takımlar olarak listelenir), kanallar, izinler ve devredilmiş yönetim.
- Sistem öznitelikleri: özel profil öznitelikleri ve öznitele tabanlı erişim.
- Ortam: web sunucusu, veritabanı, dosya depolama, görüntü vekili, SMTP, anlık bildirimler, hız sınırlama, günlük kayıtları, oturum süreleri, performans izleme.
- Site yapılandırması: marka, kullanıcılar ve takımlar, bildirimler, gönderiler, dosya paylaşımı ve diğer sunucu genelinde davranışlar.
- Kimlik doğrulama: kayıt, e-posta ve şifreyle giriş, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect ve konuk erişimi.
- Yapay zeka: model bağlantıları ve yerleşik yapay zeka özellikleri (yeniden yazma, özetler, otomatik çeviri, metinden sese). Bkz. Yapay zeka.
- Uygulama ekleri: uygulama yönetimi ve her yüklü uygulamanın ayarları.
- Bütünleştirmeler: webhook'lar, slash komutları, bot hesapları, GIF'ler, metni sese çevirme, CORS.
- Uyumluluk: veri saklama, uyumluluk dışa aktarımı ve izleme, denetim günlükleri, özel hizmet koşulları.
- Deneysel: Değişebilecek özellikler.
Bu kılavuzda, bir ayar, Sistem Konsolu'ndaki yolu, ardından etiketi, ardından yapılandırma anahtarı olarak yazılır. Örneğin Sistem Konsolu › Site yapılandırması › Kullanıcılar ve takımlar › Yok sayma, engelleme ve iletme isteklerini etkinleştir (PrivacySettings.EnableUserBlocking).
Değişikliklerin çoğu Kaydet'e tıkladığınız anda uygulanır. Birkaçı (dinleme adresi, bazı veritabanı ve önbellek ayarları) yeniden başlatma gerektirir ve sayfa bunu belirtir.
Çalışma alanı veya topluluk
Her topluluğun bir türü vardır ve bu tür bazı varsayılan değerlerini belirler:
- Topluluk, herkese açık veya hobi toplulukları için: kanallardaki aramalar kapalıdır (kullanıcılar ses kanallarında konuşur) ve yalnızca yöneticileri ile kanalları yöneten roller kanalları arşivler.
- Çalışma alanı, bir şirket veya kuruluş için: kanallardaki aramalar açıktır ve kanalın yöneticileri (oluşturan kişi ve onun atadığı yöneticiler) kanalı arşivleyebilir.
Sistem Konsolu › Site yapılandırması › Kullanıcılar ve takımlar › Yeni toplulukların türü (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND), bundan sonra oluşturulacak toplulukların türüdür: community (varsayılan) veya workplace. Bir topluluk oluşturulurken seçilen bir yerleşim ön ayarı, kendi türünü belirler. Her topluluğun yöneticileri, türünü daha sonra Takım ayarları › Kanallar › Topluluğun türü bölümünden değiştirebilir.
amctl komut satırı aracı
amctl, kullanıcılar, topluluklar, kanallar, uygulamalar, yapılandırma, işler ve daha fazlası olmak üzere bir sunucuyu komut satırından yönetir. Sunucuyla iki yoldan iletişim kurar.
Yerel mod, sunucuda
Yerel mod, amctl'nin Unix soketi üzerinden sunucuyla, oturum açmadan iletişim kurmasını sağlar. Docker görüntüsünde ve .deb ile .rpm paketlerinde etkinleştirilidir. Arşivden kurulan bir sunucuda, ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true) ile etkinleştirin. Soket varsayılan olarak /var/tmp/antimatter_local.socket konumundadır (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 çalıştırabilen herkes tam sistem yöneticisi yetkisine sahiptir.Uzaktan, bir hesapla
Herhangi bir makineden, bir sistem yöneticisi hesabıyla (veya kişisel erişim belirteciyle) oturum açın, ardından o sunucu için komutları çalıştırın:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
Yapılandırma komutları
| Komut | Ne işe yarar |
|---|---|
amctl config get ServiceSettings.SiteURL | Tek bir ayarı yazdırır. |
amctl config set TeamSettings.EnableOpenServer false | Tek bir ayarı değiştirir. Liste ayarları birden fazla değer alır. |
amctl config patch settings.json | Yapılandırma ayarlarının JSON dosyasını yapılandırmaya birleştirir. |
amctl config show | Tüm yapılandırmayı JSON olarak yazdırır. |
amctl config edit | Yapılandırmayı düzenleyicinizde açar ($EDITOR). |
amctl config reset | Ayarları varsayılanlarına sıfırlar. |
amctl config reload | Sunucu dışında yapılan bir değişiklikten sonra yapılandırmayı saklandığı yerden yeniden yükler. |
Uygulama ayarları PluginSettings.Plugins.<app id> altında, küçük harfli anahtarlarla bulunur. Örneğin, GIFs uygulamasının hizmet URL'sini ve anahtarını Docker ana makinesinden ayarlamak için:
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
Diğer faydalı komutlar: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket ve amctl logs. Her birinin seçenekleri için amctl help <command> çalıştırın.
Kayıtlar
Sunucu, günlüğünü iki yere yazar; her birinin kendi düzeyi (DEBUG, INFO, WARN veya ERROR) Sistem Konsolu › Ortam › Günlük bölümünde ayarlanır:
| Hedef | Ayarlar | Varsayılanlar |
|---|---|---|
| Konsol (standart çıktı) | Günlükler konsola gönderilsin (LogSettings.EnableConsole), Konsol günlük kayıtları düzeyi (LogSettings.ConsoleLevel), Konsol günlüğü kayıtları JSON olarak kaydedilsin (LogSettings.ConsoleJson) | açık, DEBUG, JSON |
Bir dosya, antimatter.log | Günlükler dosyaya yazılsın (LogSettings.EnableFile), Dosyalanacak günlük kayıtları düzeyi (LogSettings.FileLevel), Günlük kayıtları dosyası klasörü (LogSettings.FileLocation) | açık, INFO, bin/ dizininin yanındaki logs/ dizini |
Günlük dosyaları 100 MB'a ulaştığında döndürülür ve eski olanlar sıkıştırılır.
Sitein compose dosyası dosya günlüğünü kapatır (AM_LOGSETTINGS_ENABLEFILE=false), bu nedenle günlükler yalnızca konteynerin çıktısında bulunur:
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
Konsol seviyesi varsayılan olarak DEBUG değerindedir ve ayrıntılıdır. Yoğun bir sunucuda AM_LOGSETTINGS_CONSOLELEVEL=INFO değerini ayarlayın. Sürüm arşivinin ve paketlerin config.json dosyası bunu zaten INFO olarak ayarlar. systemd altında bir sürüm arşivi kullanıldığında, konsol çıktısı günlüğe (journalctl -u antimatter) ve dosya /opt/antimatter/logs/antimatter.log konumuna gider. Paketler dosya günlüğünü devre dışı bırakır, bu nedenle günlükleri yalnızca sistem günlüğünde bulunur.
Dosya günlüğü etkin olduğunda, sistem yöneticileri en son günlük satırlarını Sistem Konsolu › Raporlama › Sunucu günlükleri bölümünde veya amctl logs komutuyla da okuyabilir.