ترتیبات
Antimatter اپنی سیٹنگز کہاں رکھتا ہے، انہیں تبدیل کرنے کے تین طریقے (سسٹم کنسول، ماحولیاتی متغیرات، 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 قبول کرنے والی ترتیبات کے لیے JSON درکار ہے۔ ایپس کے لیے ایسی واحد متغیر
AM_PLUGINSETTINGS_PLUGINSہے، جو ایک ہی وقت میں ہر ایپ کی ترتیبات کو تبدیل کر دیتا ہے: ایپ کی ترتیبات کو سسٹم کنسول یا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 کے ذریعے لاگو کریں، جو کنٹینر کو دوبارہ تخلیق کرتا ہے۔
ایپس کے ذریعے پڑھے جانے والے متغیر
کچھ متغیر ترتیبات نہیں ہیں اور ان کا کوئی سسٹم کنسول فیلڈ نہیں ہے: AM_CONFIG (جہاں کنفیگریشن ہے)، اور AM_AI_ENCRYPTION_KEY اور AM_AI_ENCRYPTION_PREVIOUS_KEYS، جو ماڈل کنکشنز کے API keys کو انکرپٹ کرنے والا کلید ہے (دیکھیں AI)۔
کچھ ایپس اپنے اپنے متغیر پڑھتی ہیں، جو antimatter سروس پر مقرر ہوتے ہیں: Calls ایپ AM_CALLS_* پڑھتی ہے (دیکھیں Calls and voice)، اور GIFs ایپ AM_GIFS_SERVICE_URL، AM_GIFS_API_KEY اور AM_GIFS_UPLOAD_KEY پڑھتی ہے (دیکھیں Bundled apps)۔
سسٹم کنسول
سسٹم کنسول ویب ایپ کا انتظامی حصہ ہے، جو سسٹم ایڈمنسٹریٹرز کے لیے ہے۔ اسے کھولنے کے لیے، ایپ ریل کے اوپر اپنی تصویر پر کلک کریں اور سسٹم کنسول منتخب کریں، یا https://chat.example.com/admin_console پر جائیں۔ اس کے سائیڈ بار میں ترتیبات تلاش کریں باکس ہے جو ہر صفحے کو تلاش کرتا ہے۔

اس کے حصے یہ ہیں:
- رپورٹنگ: اعداد و شمار اور سرور کے لاگز۔
- صارفین کا انتظام: صارفین، گروپس، کمیونٹیز (جو ٹیمز کے طور پر درج ہیں)، چینلز، اجازتیں اور تفویض شدہ انتظام۔
- سسٹم اٹری بیوٹس: کسٹم پروفائل اٹری بیوٹس اور اٹری بیوٹ پر مبنی رسائی۔
- ماحول: ویب سرور، ڈیٹا بیس، فائل اسٹوریج، امیج پروکسی، SMTP، پش اطلاعات، ریٹ لیمٹنگ، لاگنگ، سیشن کی لمبائیاں، اور کارکردگی کی نگرانی۔
- سائٹ کی ترتیبات: برانڈنگ، صارفین اور ٹیمز، اطلاعات، پوسٹس، فائل شیئرنگ اور دیگر سرور-وائیڈ رویے۔
- تصدیق: سائن اپ، ای میل اور پاس ورڈ سے سائن ان، MFA، AD/LDAP، SAML 2.0، OAuth 2.0، OpenID Connect اور مہمان رسائی۔
- AI: ماڈل کنکشنز اور درجہ بندی شدہ AI خصوصیات (دوبارہ لکھنا، خلاصے، خودکار ترجمہ، متن کو بول کر سننا)۔ دیکھیں AI۔
- پلگ انز: ایپس کا انتظام اور ہر نصب شدہ ایپ کی ترتیبات۔
- انضمامات: ویب ہکس، سلاش کمانڈز، بوٹ اکاؤنٹس، GIFs، متن کو بول کر سننا، CORS۔
- مطابقت: ڈیٹا کی برقرار رکھت، مطابقت کی برآمد اور نگرانی، آڈٹ لاگنگ، اور کسٹم شرائطِ کار۔
- تجرباتی: خصوصیات جو تبدیل ہو سکتی ہیں۔
اس رہنما میں، کوئی بھی ترتیب اس کے سسٹم کنسول میں موجود راستے کے طور پر لکھی گئی ہے، پھر اس کا لیبل، اور پھر اس کی کنفیگریشن کی، مثال کے طور پر سسٹم کنسول › سائٹ کی ترتیبات › صارفین اور ٹیمز › نظراندازی، بلاکنگ اور پیغام کی درخواستیں فعال کریں (PrivacySettings.EnableUserBlocking)۔
زیادہ تر تبدیلیاں اسی وقت لاگو ہو جاتی ہیں جب آپ محفوظ کریں پر کلک کرتے ہیں۔ کچھ (جیسے لیسن ایڈریس، کچھ ڈیٹا بیس اور کیچ کی ترتیبات) کو ری اسٹارت کی ضرورت ہوتی ہے، اور صفحہ اس بات کا ذکر کرتا ہے۔
ورک پلیس یا کمیونٹی
ہر کمیونٹی کی ایک قسم ہوتی ہے، جو اس کی کچھ ڈیفالٹس مقرر کرتی ہے:
- کمیونٹی، عوامی یا شوقیہ کمیونٹی کے لیے: اس کے چینلز میں کالز بند ہوتی ہیں (لوگ وائس چینلز میں بات کرتے ہیں)، اور صرف اس کے ایڈمنز، اور چینلز کو منظم کرنے والے کردار، چینلز کو آرکائیو کرتے ہیں۔
- ورک پلیس، کسی کمپنی یا تنظیم کے لیے: اس کے چینلز میں کالز فعال ہوتی ہیں، اور چینل کے ایڈمنز (جس نے اسے بنایا، اور جنہیں اس نے ایڈمن بنایا) اسے آرکائیو بھی کرتے ہیں۔
سسٹم کنسول › سائٹ کی ترتیبات › صارفین اور ٹیمز › نئی کمیونٹیوں کی قسم (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) اسی وقت سے بنائی گئی کمیونٹیوں کی قسم ہے: community (ڈیفالٹ) یا workplace۔ کمیونٹی بناتے وقت منتخب کردہ لے آؤٹ پری سیٹ اپنی قسم مقرر کرتا ہے۔ ہر کمیونٹی کے ایڈمنز بعد میں اس کی قسم بدل سکتے ہیں، ٹیم کی ترتیبات › چینلز › کمیونٹی کی قسم میں۔
amctl کمانڈ لائن ٹول
amctl کمانڈ لائن سے سرور کو منظم کرتا ہے: صارفین، کمیونٹیز، چینلز، ایپس، کنفیگریشن، جابز اور بہت کچھ۔ یہ سرور سے بات چیت کے دو طریقوں میں سے ایک کے ذریعے کرتا ہے۔
لوکل موڈ، سرور پر
لوکل موڈ amctl کو یونیکس سوکٹ کے ذریعے سرور سے بات کرنے کی اجازت دیتا ہے، بغیر سائن ان کے۔ یہ ڈاکر امیج اور .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 چلا سکے، اس کے پاس مکمل سسٹم ایڈمنسٹریٹر کے اختیارات ہوتے ہیں۔ریموٹ، اکاؤنٹ کے ساتھ
کسی بھی مشین سے، سسٹم ایڈمنسٹریٹر اکاؤنٹ (یا پرسنل ایکسیس ٹوکن) کے ساتھ سائن ان کریں، پھر اس سرور کے خلاف کمانڈز چلائیں:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
کنفیگریشن کمانڈز
| کمانڈ | یہ کیا کرتا ہے |
|---|---|
amctl config get ServiceSettings.SiteURL | ایک سیٹنگ پرنٹ کرتا ہے۔ |
amctl config set TeamSettings.EnableOpenServer false | ایک سیٹنگ تبدیل کرتا ہے۔ لسٹ سیٹنگز کئی قدریں لیتے ہیں۔ |
amctl config patch settings.json | سیٹنگز کا JSON فائل کنفیگریشن میں ملا دیتا ہے۔ |
amctl config show | پوری کنفیگریشن JSON کے طور پر پرنٹ کرتا ہے۔ |
amctl config edit | کنفیگریشن کو آپ کے ایڈیٹر ($EDITOR) میں کھولتا ہے۔ |
amctl config reset | سیٹنگز کو ان کی ڈیفالٹ قدروں پر ری سیٹ کرتا ہے۔ |
amctl config reload | سرور کے باہر کی تبدیلی کے بعد کنفیگریشن کو اس کی اسٹوریج جگہ سے دوبارہ لوڈ کرتا ہے۔ |
ایپ سیٹنگز PluginSettings.Plugins.<app id> کے تحت رہتی ہیں، اور کیز چھوٹے حروف میں ہوتے ہیں۔ مثال کے طور پر، ڈاکر ہوسٹ سے GIFs ایپ کی سروس URL اور کی سیٹ کرنے کے لیے:
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
دیگر مفید کمانڈز: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket اور amctl logs۔ ہر ایک کے اختیارات کے لیے amctl help <command> چلائیں۔
لاگز
سرور اپنا لاگ دو جگہوں پر لکھتا ہے، ہر ایک کا اپنا لیول (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 میگابائٹ پر روتےڈ ہوتی ہیں اور پرانی فائلز کمپریسڈ کر دی جاتی ہیں۔
سائٹ کا کمپوز فائل فائل لاگنگ بند کر دیتا ہے (AM_LOGSETTINGS_ENABLEFILE=false)، اس لیے لاگز صرف کنٹینر کے آؤٹ پٹ میں موجود ہیں:
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
کنسول لیول کا ڈیفالٹ DEBUG ہے، جو کہ کافی تفصیلی ہے۔ مصروف سرور پر AM_LOGSETTINGS_CONSOLELEVEL=INFO سیٹ کریں۔ ریلیس آرکائیو اور پیکیجز کی config.json میں پہلے سے یہ INFO سیٹ ہے۔ systemd کے تحت ریلیس آرکائیو کے ساتھ، کنسول آؤٹ پٹ جرنل (journalctl -u antimatter) میں جاتا ہے اور فائل /opt/antimatter/logs/antimatter.log میں۔ پیکیجز فائل لاگنگ بند کر دیتے ہیں، اس لیے ان کے لاگز صرف جرنل میں موجود ہیں۔
جب فائل لاگنگ آن ہو، تو سسٹم ایڈمنسٹریٹرز سسٹم کنسول › رپورٹنگ › سرور لاگز میں بھی تازہ ترین لاگ لائنز پڑھ سکتے ہیں، یا amctl logs کے ذریعے۔