कॉन्फ़िगरेशन
Antimatter अपनी सेटिंग्स कहाँ रखता है, उन्हें बदलने के तीन तरीके (System Console, एनवायरनमेंट वेरिएबल्स, amctl), और लॉग्स कहाँ जाते हैं।
सेटिंग्स कहाँ रहती हैं
हर सर्वर सेटिंग का नाम एक सेक्शन और एक की से बना होता है, जैसे ServiceSettings.SiteURL या EmailSettings.SMTPServer। मिलकर ये एक कॉन्फ़िगरेशन बनाते हैं, जो दो स्थानों में से एक में संग्रहीत होता है:
- डेटाबेस में। साइट का कॉम्पोज़ फ़ाइल
AM_CONFIGको PostgreSQL कनेक्शन URL पर सेट करती है, इसलिए कॉन्फ़िगरेशन डेटाबेस में एक पंक्ति होता है और कंटेनर डिस्क पर कुछ भी नहीं रखता। एक डेटाबेस साझा करने वाले कई सर्वर अपना कॉन्फ़िगरेशन भी साझा करते हैं। - फ़ाइल में।
AM_CONFIGके बिना, सर्वर अपनेbin/डायरेक्टरी के पासconfig/config.jsonपढ़ता है (Docker इमेज में/antimatter/config/config.json)। antimatter-docker की रिलीज़ आर्काइव और प्रोडक्शन कॉम्पोज़ फ़ाइलें इसी तरह काम करती हैं, और .deb और .rpm पैकेज भी, जिनकी फ़ाइल/etc/antimatter/config/config.jsonहै। इस फ़ाइल को केवल सर्वर के यूज़र के लिए पठनीय रखें: इसमें पासवर्ड और कीज़ होती हैं।
AM_CONFIG (या antimatter कमांड का --config फ़्लैग) एक फ़ाइल पथ या postgres:// URL स्वीकार करता है। जो सेटिंग्स आप छोड़ देते हैं, वे अपने डिफ़ॉल्ट मान लेती हैं।
मौजूदा कॉन्फ़िगरेशन को फ़ाइल से डेटाबेस में ले जाने के लिए, सर्वर पर यह चलाएँ, फिर AM_CONFIG को उसी URL पर सेट करके सर्वर शुरू करें:
amctl --local config migrate /opt/antimatter/config/config.json \
"postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"
एनवायरनमेंट वेरिएबल्स
कोई भी सेटिंग एनवायरनमेंट वेरिएबल के रूप में भी दी जा सकती है। वेरिएबल्स संग्रहीत कॉन्फ़िगरेशन पर प्राथमिकता रखते हैं, जिससे वे डिप्लॉयमेंट से जुड़े चीज़ों के लिए उपयुक्त हैं: डेटाबेस, साइट URL, फ़ाइल स्टोरेज, पोर्ट्स।
नेमिंग नियम
AM_ लिखें, फिर सेक्शन, फिर की, बड़े अक्षरों में और अंडरस्कोर से अलग-अलग। सेक्शन या की नाम के अंदर के शब्द अलग नहीं किए जाते:
| सेटिंग | वेरिएबल |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- सच और झूठे सेटिंग्स
trueयाfalseलेती हैं; संख्याएँ साधारण संख्याएँ होती हैं। - लिस्ट सेटिंग्स अपने मानों को स्पेस से अलग करके लेती हैं, उदाहरण के लिए
AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP"। - ऑब्जेक्ट जो सेटिंग्स हैं, वे JSON लेती हैं। ऐप्स के लिए ऐसा एकमात्र वेरिएबल
AM_PLUGINSETTINGS_PLUGINSहै, और यह हर ऐप की सेटिंग्स एक साथ बदल देता है: ऐप सेटिंग्स System Console याamctlसे सेट करें (नीचे देखें)। - पुराने Mattermost सेटअप
MM_प्रिफ़िक्स का उपयोग करते हैं, उदाहरण के लिएMM_SQLSETTINGS_DATASOURCE। यह अभी भी एक लीगेसी एलियास के रूप में काम करता है। जब दोनों सेट किए जाएं, तोAM_वेरिएबल प्राथमिकता प्राप्त करता है।
वेरिएबल द्वारा दिया गया सेटिंग सिस्टम कंसोल में लॉक होता है, जिसमें यह नोट होता है: "यह सेटिंग एक एनवायरनमेंट वेरिएबल के माध्यम से सेट की गई है। इसे सिस्टम कंसोल के माध्यम से नहीं बदला जा सकता।" इसे स्टोर्ड कन्फ़िगरेशन में नहीं लिखा जाता है: वेरिएबल हटा दें और स्टोर्ड वैल्यू फिर से लागू हो जाएगी।
Docker Compose के साथ
antimatter सर्विस के environment: के नीचे वेरिएबल जोड़ें, या compose.yaml के पास compose.override.yaml में (Compose इसे स्वतः पढ़ता है, और यह डाउनलोड की गई फ़ाइल के अपडेट के बाद भी बना रहता है):
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_LOGSETTINGS_CONSOLELEVEL: INFO
बदलाव लागू करने के लिए docker compose up -d चलाएं, जो कंटेनर को पुनः बनाता है।
ऐप्स द्वारा पढ़े जाने वाले वेरिएबल
कुछ वेरिएबल्स सेटिंग्स नहीं हैं और इनके लिए System Console में कोई फ़ील्ड नहीं है: AM_CONFIG (कॉन्फ़िगरेशन कहाँ है), और AM_AI_ENCRYPTION_KEY तथा AM_AI_ENCRYPTION_PREVIOUS_KEYS, जो मॉडल कनेक्शन के API कीज़ को एन्क्रिप्ट करने वाली की है (देखें AI)।
कुछ ऐप्स antimatter सर्विस पर सेट किए गए अपने वेरिएबल पढ़ते हैं: Calls ऐप AM_CALLS_* पढ़ता है (देखें Calls and voice), और GIFs ऐप AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY और AM_GIFS_UPLOAD_KEY पढ़ता है (देखें Bundled apps)।
सिस्टम कंसोल
System Console वेब ऐप का प्रबंधन क्षेत्र है, जो सिस्टम एडमिन के लिए है। इसे खोलने के लिए, ऐप रेल के शीर्ष पर अपनी तस्वीर पर क्लिक करें और सिस्टम कंसोल चुनें, या https://chat.example.com/admin_console पर जाएं। इसकी साइडबार में सेटिंग्स खोजें बॉक्स है जो हर पेज को खोजता है।

इसके सेक्शन हैं:
- रिपोर्टिंग: सांख्यिकी और सर्वर लॉग।
- यूज़र प्रबंधन: यूज़र, समूह, कम्युनिटी (टीम के रूप में सूचीबद्ध), चैनल, अनुमतियां और प्रत्यायित प्रबंधन।
- सिस्टम गुण: कस्टम प्रोफ़ाइल गुण और गुण-आधारित एक्सेस।
- पर्यार्वण: वेब सर्वर, डेटाबेस, फ़ाइल स्टोरेज, इमेज प्रॉक्सी, SMTP, पुश सूचनाएं, रेट लिमिटिंग, लॉगिंग, सेशन अवधि, प्रदर्शन मॉनिटरिंग।
- साइट कॉन्फ़िगरेशन: ब्रांडिंग, यूज़र और टीमें, सूचनाएं, पोस्ट, फ़ाइल साझाकरण और अन्य सर्वर-व्यापी व्यवहार।
- प्रमाणीकरण: साइन-अप, ईमेल और पासवर्ड साइन-इन, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect और अतिथि एक्सेस।
- AI: मॉडल कनेक्शन और बिल्ट-इन AI फ़ीचर्स (रीराइट, रिकैप्स, ऑटो-ट्रांसलेशन, टेक्स्ट टू स्पीच)। देखें AI।
- प्लगइन: ऐप प्रबंधन और हर इंस्टॉल किए गए ऐप की सेटिंग्स।
- इंटिग्रेशन: वेबहुक, स्लैश कमैंड, बॉट अकाउंट, GIF, टेक्स्ट टू स्पीच, CORS।
- सम्मतता: डेटा रीटेनशन, सम्मतता एक्सपोर्ट और मॉनिटरिंग, ऑडिट लॉगिंग, कस्टम टर्म्स ऑफ़ सर्विस।
- प्रयोगात्मक: फ़ीचर्स जो बदल सकते हैं।
इस गाइड में, किसी सेटिंग को पहले सिस्टम कंसोल में उसका पाथ, फिर उसका लेबल, और फिर उसका कन्फ़िगरेशन की लिखा गया है, जैसे सिस्टम कंसोल › साइट कॉनफ़िगरेशन › उपयोगकर्ता और टीमें › अनदेखा करना, ब्लॉक करना और मैसेज रिक्वेस्ट सक्षम करें (PrivacySettings.EnableUserBlocking).
ज़्यादातर बदलाव तब लागू हो जाते हैं जब आप सहेजें पर क्लिक करते हैं। कुछ (जैसे लिस्टन एड्रेस, कुछ डेटाबेस और कैश सेटिंग्स) के लिए रीस्टार्ट की ज़रूरत होती है, और पेज पर इसकी सूचना दी जाती है।
कार्यस्थल या समुदाय
हर समुदाय का एक प्रकार (kind) होता है, जो उसके कुछ डिफ़ॉल्ट सेट करता है:
- समुदाय, किसी सार्वजनिक या शौक के समुदाय के लिए: इसके चैनल में कॉल बंद रहते हैं (लोग वॉइस चैनल में बात करते हैं), और केवल इसके एडमिन, और वे रोल जो चैनल प्रबंधित करते हैं, चैनल को अर्काइव कर सकते हैं।
- कार्यस्थल, किसी कंपनी या संगठन के लिए: इसके चैनल में कॉल चालू रहते हैं, और चैनल के एडमिन (जोने इसे बनाया, और जिनको उन्होंने एडमिन बनाया) भी इसे अर्काइव कर सकते हैं।
सिस्टम कंसोल › साइट कॉनफ़िगरेशन › उपयोगकर्ता और टीमें › नए समुदायों का प्रकार (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) उन समुदायों का प्रकार है जिसे अब से बनाया जाएगा: community (डिफ़ॉल्ट) या workplace। समुदाय बनाने पर चुना गया लेआउट प्रीसेट उसका अपना प्रकार सेट करता है। हर समुदाय के एडमिन बाद में टीम सेटिंग्स › चैनल › समुदाय का प्रकार में इसका प्रकार बदल सकते हैं।
amctl command-line tool
amctl command line से server को manage करता है: users, communities, channels, apps, configuration, jobs और बहुत कुछ। यह server से बात करने के लिए दो तरीकों में से एक का उपयोग करता है।
Local mode, server पर
लोकल मोड amctl को यूनिक्स सॉकेट के माध्यम से सर्वर से बात करने की अनुमति देता है, साइन इन किए बिना। यह Docker इमेज में और .deb और .rpm पैकेज के साथ चालू होता है। आर्काइव से इंस्टॉल किए गए सर्वर पर, इसे ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true) से चालू करें। सॉकेट डिफ़ॉल्ट रूप से /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 चला सकता है, उसके पास full system administrator rights होते हैं।Remote, एक account के साथ
किसी भी machine से, एक system administrator account (या personal access token) के साथ sign in करें, फिर उस server के लिए commands चलाएं:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
Configuration commands
| Command | यह क्या करता है |
|---|---|
amctl config get ServiceSettings.SiteURL | एक setting print करता है। |
amctl config set TeamSettings.EnableOpenServer false | एक setting बदलता है। List settings कई values लेती हैं। |
amctl config patch settings.json | settings के JSON file को configuration में merge करता है। |
amctl config show | पूरा configuration JSON के रूप में print करता है। |
amctl config edit | आपके editor ($EDITOR) में configuration खोलता है। |
amctl config reset | settings को उनके defaults पर reset करता है। |
amctl config reload | server के बाहर किए गए change के बाद, configuration को जहां से store होता है, वहां से reload करता है। |
App settings PluginSettings.Plugins.<app id> के नीचे रहती हैं, keys lower case में। उदाहरण के लिए, Docker host से GIFs app की service URL और key set करने के लिए:
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
अन्य उपयोगी commands: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket और amctl logs। हर एक की options के लिए amctl help <command> चलाएं।
Logs
सर्वर अपना लॉग दो जगहों पर लिखता है, जिनमें से प्रत्येक का अपना स्तर (DEBUG, INFO, WARN या ERROR) होता है, जो सिस्टम कंसोल › पर्यावरण › लॉगिंग में सेट किया जाता है:
| गंतव्य | सेटिंग्स | डिफ़ॉल्ट |
|---|---|---|
| कंसोल (स्टैंडर्ड आउटपुट) | कंसोल में लॉग आउटपुट करें (LogSettings.EnableConsole), कंसोल लॉग स्तर (LogSettings.ConsoleLevel), कंसोल लॉग को JSON के रूप में आउटपुट करें (LogSettings.ConsoleJson) | चालू, DEBUG, JSON |
एक फ़ाइल, antimatter.log | लॉग फ़ाइल में आउटपुट करें (LogSettings.EnableFile), फ़ाइल लॉग स्तर (LogSettings.FileLevel), फ़ाइल लॉग डायरेक्टरी (LogSettings.FileLocation) | चालू, INFO, bin/ के पास की logs/ डायरेक्टरी |
लॉग फ़ाइलें 100 MB पर रोटेट होती हैं और पुरानी फ़ाइलें संपीड़ित (compressed) कर दी जाती हैं।
साइट की compose फ़ाइल फ़ाइल लॉगिंग बंद कर देती है (AM_LOGSETTINGS_ENABLEFILE=false), इसलिए लॉग केवल कंटेनर के आउटपुट में होते हैं:
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
कंसोल लेवल डिफ़ॉल्ट रूप से DEBUG पर सेट होता है, जो बहुत विस्तृत (verbose) होता है। एक व्यस्त सर्वर पर, AM_LOGSETTINGS_CONSOLELEVEL=INFO सेट करें। रिलीज़ आर्काइव और पैकेजों के config.json में इसे पहले से ही INFO पर सेट किया गया है। systemd के तहत रिलीज़ आर्काइव के साथ, कंसोल आउटपुट जर्नल (journalctl -u antimatter) में जाता है और फ़ाइल /opt/antimatter/logs/antimatter.log में। पैकेज फ़ाइल लॉगिंग बंद कर देते हैं, इसलिए उनके लॉग केवल जर्नल में उपलब्ध होते हैं।
जब फ़ाइल लॉगिंग चालू होती है, तो सिस्टम एडमिन सिस्टम कंसोल › रिपोर्टिंग › सर्वर लॉग में या amctl logs के माध्यम से नवीनतम लॉग लाइनें भी पढ़ सकते हैं।