Antimatter पर निर्माण

यह गाइड डेवलपर्स के लिए है। इसमें API का उपयोग करने वाले स्क्रिप्ट और बॉट, वेबहुक और स्लैश कमांड पर आधारित एकीकरण, सर्वर और वेब ऐप में फीचर्स जोड़ने वाले ऐप्स (प्लगइन), और Antimatter में योगदान देने के लिए स्रोत से बिल्ड करने के बारे में बताया गया है।

Antimatter को विस्तारित करने के तरीके

वह हल्का उपकरण चुनें जो काम कर दे। पहले चारों के लिए सर्वर तक पहुंच की आवश्यकता नहीं है; ऐप्स इसके अंदर चलते हैं।

उपकरणयह क्या करता हैकिस काम के लिए उपयुक्त
REST APIऐप्स जो कुछ भी करते हैं: संदेश, चैनल, लोग, फाइलें, सेटिंग्स। एक WebSocket घटनाओं के समय उन्हें भेजता है।स्क्रिप्ट, अन्य सिस्टम के साथ सिंक, कस्टम क्लाइंट।
इनकमिंग वेबहुकएक गुप्त URL जो तब चैनल में संदेश पोस्ट करता है जब कोई JSON भेजता है।अलर्ट, CI परिणाम, मॉनिटरिंग, अन्य टूल्स से सूचनाएं।
आउटगोइंग वेबहुकजब किसी सार्वजनिक चैनल में कोई सन्देश किसी ट्रिगर शब्द से शुरू होता है, या कोई व्यक्ति किसी सन्देश के मेन्यू में आपके एक्शन को चुनता है, तब Antimatter आपके URL को कॉल करता है और आपका उत्तर पोस्ट करता है।सरल चैट-चालित ऑटोमेशन, जो किसी अन्य टूल को संदेश भेजते हैं।
स्लैश कमांडलोग /something टाइप करते हैं; Antimatter आपके URL को कॉल करता है और उनका उत्तर उन्हें या चैनल में दिखाता है।लुकअप्स, चैट से शुरू किए गए कार्यों।
बॉटप्रोग्राम्स के लिए बनाए गए खाते, जिनके पास अपने टोकन, बॉट टैग, और इंटरैक्टिव संदेश और डायलॉग होते हैं।सहायक, सूचक, या कुछ भी जो लोगों के साथ बात करता है।
ऐप्स (प्लगइन)सर्वर (Go) और वेब ऐप (React) के अंदर चलने वाला कोड: हर संदेश पर हुक्स, नए मेनू, पैनल, संदेश प्रकार, पेज।फीचर्स: पोल, नोट, कैलेंडर, यूजर इंटरफेस की आवश्यकता वाले एकीकरण।

इंटरफेस में, लोग प्लगइन को "ऐप्स" कहते हैं। यह गाइड जहां दोनों शब्द मददगार हैं, वहां "ऐप्स (प्लगइन)" कहती है, क्योंकि कोड, API और कॉन्फ़िगरेशन अभी भी "प्लगइन" कहते हैं।

Mattermost के साथ संगतता

Antimatter, Mattermost का एक फोर्क है। Mattermost सर्वर के साथ जो कुछ भी काम करता है, Antimatter के साथ भी काम करता है।

क्या समान है

  • REST API /api/v4 के तहत, इसकी प्रमाणीकरण, इसका WebSocket और इसका त्रुटि प्रारूप। सर्वर संस्करण 12.0.0 रिपोर्ट करता है, इसलिए क्लाइंट और ऐप्स जो सर्वर संस्करण की जांच करते हैं, उन्हें एक हालिया Mattermost दिखाई देता है।
  • वेबहुक और स्लैश कमांड, जिनमें उनके Slack-संगत payloads शामिल हैं।
  • सर्वर प्लगइन API और हुक्स: Antimatter इन्हें वैसे ही रखता है। सर्वर कोड उसी Go मॉड्यूल, github.com/mattermost/mattermost/server/public, के विरुद्ध बनाया जाता है। Antimatter केवल अपने AI सर्विस (देखें AI सर्विस) के लिए विधियां जोड़ता है।
  • वेब ऐप प्लगइन registry: Mattermost की registry के सभी register… विधियाँ Antimatter के दोनों वेब इंटरफेस में मौजूद हैं।
  • क्लाइंट लाइब्रेरी: Go क्लाइंट model.Client4 और TypeScript क्लाइंट @mattermost/client (देखें क्लाइंट लाइब्रेरी)।
  • प्लगइन बंडल: plugin.json manifest के साथ एक .tar.gz। Mattermost की कुंजी से हस्ताक्षरित प्लगइन इंस्टॉल होते हैं, और Antimatter की कुंजी से हस्ताक्षरित प्लगइन भी।

क्या अलग है

  • दो वेब इंटरफेस। नया इंटरफेस, Fusion, डिफ़ॉल्ट है; क्लासिक Mattermost इंटरफेस अभी भी उपलब्ध है। Fusion अधिकांश प्लगइन घटकों को रेंडर करता है, लेकिन कुछ को अलग स्थान पर रखता है और कुछ को छोड़ देता है। ऐप यह बता सकता है कि कौन सा इंटरफेस चल रहा है। देखें Fusion इंटरफेस का समर्थन।
  • अतिरिक्त API। Antimatter अपने स्वयं के फीचर्स के लिए एंडपॉइंट जोड़ता है: कम्युनिटी एट्रिब्यूट्स, टाइमआउट, ऊपर के संदेश, संदेश अनुरोध, चैनल और श्रेणी ओवरराइड, चैनल निर्यात, थ्रेड स्थानांतरण, मॉडल कनेक्शन, संदेश एक्शन, और कम्युनिटी पर नए फील्ड। देखें Antimatter API में क्या जोड़ता है।
  • अतिरिक्त message फीचर्स। Message attachments pipeline stages और एक छोटा चार्ट दिखा सकते हैं; posts inline replies या spoilers हो सकते हैं।
  • ऐप्स के लिए अतिरिक्त वेब ऐप हुक्स: कम्पोज़र "+" मेनू आइटम, इमोजी पिकर टैब्स, चैनल व्यू में पैनल, साइडबार चैनलों के नीचे फुटर, इंटीग्रेशन पेज पर प्रविष्टि, इमोजी पिकर के जोड़ने और प्रबंधन व्यू, और एक साइड पैनल जो एक नई विंडो में वहाँ से फिर से खुलता है जहाँ वह था। देखें केवल Antimatter के पास होने वाले हुक्स।
  • कोई लाइसेंस नहीं। कोई भी फीचर लाइसेंस कुंजी के बिना उपलब्ध है। लाइसेंस, trial और enterprise upgrade endpoints हटा दिए गए हैं; GET /api/v4/license/client उन क्लाइंट्स के लिए बरकरार है जो पूछते हैं। Mattermost के भुगतान वाले संस्करणों के लिए बनाए गए कुछ ऐप्स स्वयं लाइसेंस की जांच करते हैं और चलने से इनकार कर देते हैं।
  • नाम। इंटरफेस में Teams को communities कहा जाता है, लेकिन API और कोड अभी भी team कहते हैं। Environment variables AM_ prefix का उपयोग करते हैं, command-line tool amctl है और server binary antimatter है।

कोड कहाँ स्थित है

सब कुछ ओपन सोर्स है, GitHub पर AntimatterChat संगठन में। हर रिपॉज़िटरी अपने main ब्रांच पर काम करती है।

रिपॉज़िटरीइसमें क्या है
antimatterसर्वर (Go, server/ में), दोनों वेब इंटरफ़ेस (webapp/fusion और webapp/channels), TypeScript क्लाइंट और amctl।
antimatter-dockerDocker इमेज, बंडल्ड ऐप्स के साथ, और compose फ़ाइलें।
antimatter-plugin-*हर बंडल्ड ऐप के लिए एक रिपॉज़िटरी: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents और metrics।
gifs-serverGIFs ऐप द्वारा उपयोग की जाने वाली self-hosted GIF और स्टिकर सेवा।
desktop-app, mobile-app, push-proxyडेस्कटॉप और मोबाइल ऐप्स, और फ़ोन तक push notifications भेजने वाली सेवा।
antimatter.chatयह वेबसाइट और इसकी दस्तावेज़ीकरण।
communityAntimatter के हर हिस्से के लिए issues और चर्चाएँ।

शुरू करने से पहले

  • टेस्ट सर्वर पाएं। सबसे तेज़ तरीका Docker इमेज है: Antimatter इंस्टॉल करना देखें। Antimatter पर काम करने के लिए, सोर्स से बिल्ड करना देखें।
  • देखें कि सर्वर क्या अनुमति देता है। कई इंटीग्रेशन फीचर्स डिफ़ॉल्ट रूप से बंद होते हैं और इनके लिए सिस्टम एडमिन की ज़रूरत होती है: पर्सनल एक्सेस टोकन, बॉट अकाउंट, यूज़रनेम और आइकन ओवरराइड, और ऐप्स अपलोड करना। हर पेज बताता है कि उसे कौन सी सेटिंग चाहिए।
  • अपनी साइट URL जानें। उदाहरणों में https://chat.example.com का उपयोग किया गया है। इसे अपने सर्वर के पते से बदलें।

इस गाइड में

  • REST API: प्रमाणीकरण, मुख्य संसाधन, पेजिनेशन, त्रुटियां, रेट लिमिट्स, WebSocket, क्लाइंट लाइब्रेरी, और Antimatter के अतिरिक्त।
  • वेबहुक: इनकमिंग और आउटगोइंग वेबहुक, पेयलोड, अटैचमेंट और कार्ड।
  • स्लैश कमांड: कस्टम कमांड, उनका रिक्वेस्ट और रिस्पॉन्स, ऑटोकम्प्लीट।
  • बॉट और इंटरैक्टिव मैसेज: बॉट अकाउंट, बटन, मेन्यू और डायलॉग।
  • ऐप्स लिखना: प्लगइन लेआउट, सर्वर हुक्स, वेब ऐप रजिस्ट्री, Fusion, सेटिंग्स, स्टोरेज, अनुवाद और पैकेजिंग।
  • सोर्स से बिल्ड करना: सर्वर, वेब इंटरफेस, Docker इमेज और ऐप्स।
  • योगदान: इश्यू, पुल रिक्वेस्ट, स्टाइल, अनुवाद, सुरक्षा और लाइसेंस।
प्रश्न कम्युनिटी डिस्कशन में स्वागत हैं। बग्स कम्युनिटी इश्यू में रिपोर्ट करें।