Antimatter کی تنصیب
Antimatter کو تیار شدہ compose فائل، ریلیز کے .deb یا .rpm پیکیج، یا ریلیز آرکائیو کے ذریعے انسٹال کریں۔ پھر پہلا ایڈمنسٹریٹر اکاؤنٹ بنائیں۔
Docker Compose کے ساتھ انسٹال کریں
یہ سفارش کردہ طریقہ ہے۔ ایک compose فائل Antimatter، PostgreSQL، فائل اسٹوریج اور GIF سروس کو چلاتی ہے۔ آپ کو Docker Engine اور اس کے Compose پلگ ان (docker compose) کے ساتھ ایک لائنکس سرور، 2 CPU کورز اور 4 GB یا اس سے زیادہ میموری درکار ہے۔
1. compose فائل ڈاؤن لوڈ کریں
mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml
2. .env فائل بنائیں
compose فائل اپنی ترتیبات اسی ڈائریکٹری میں موجود .env فائل سے پڑھتی ہے۔ اسے رینڈم سیکرٹس کے ساتھ بنائیں:
cat > .env <<EOF
SITE_URL=http://localhost:8065
POSTGRES_PASSWORD=$(openssl rand -hex 24)
S3_SECRET_KEY=$(openssl rand -hex 24)
GIFS_API_KEY=$(openssl rand -hex 24)
AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)
EOF
chmod 600 .env
SITE_URL کو اس ایڈریس پر سیٹ کریں جو لوگ اپنے براؤزر میں ٹائپ کریں گے، مثلاً مقامی نیٹ ورک پر http://192.168.1.20:8065 یا ڈومین کے ساتھ https://chat.example.com۔ .env فائل کو محفوظ رکھیں: ڈیٹا بیس اور اسٹوریج ان پاس ورڈز کو پہلی شروع ہونے پر استعمال کرتے ہیں، AI ماڈل کنکشنز کے API کیز AM_AI_ENCRYPTION_KEY کے ساتھ انکرپٹ ہوتے ہیں، اور بیک اپ بحال کرنے کے لیے آپ کو یہی فائل درکار ہے۔
3. اسے شروع کریں
docker compose up -d
docker compose ps
پہلی بار شروع ہونے میں ایک یا دو منٹ لگتے ہیں: PostgreSQL ڈیٹا بیس بناتا ہے، ایک one-shot bucket سروس اسٹوریج باکٹ بناتی ہے، ایک one-shot gifs-stickers سروس اسٹارٹر اسٹیکر پیک امپورٹ کرتی ہے، اور Antimatter اپنے ٹیبلز بناتا ہے۔ اسے docker compose logs -f antimatter کے ساتھ دیکھیں۔
اگر آپ شروع سے ڈومین نام اور HTTPS استعمال کرنا چاہتے ہیں، تو ڈومین اور HTTPS دیکھیں: compose فائل کے ساتھ یہ .env میں دو مزید لائنز اور https پروفائل ہیں۔
.env متغیرات
| متغیر | ڈیفالٹ | یہ کیا کرتا ہے |
|---|---|---|
SITE_URL | ضروری | Antimatter کا عوامی ایڈریس (ServiceSettings.SiteURL)۔ |
POSTGRES_PASSWORD | ضروری | antimatter ڈیٹا بیس صارف کا پاس ورڈ۔ |
S3_SECRET_KEY | ضروری | فائل اسٹوریج کا سیکرٹ کی۔ |
GIFS_API_KEY | ضروری | کی جو Antimatter GIF سروس کو کال کرنے کے لیے استعمال کرتا ہے۔ |
AM_AI_ENCRYPTION_KEY | خالی | AI ماڈل کنکشنز کے API کیز کو انکرپٹ کرنے والا کی (openssl rand -base64 32)۔ خالی: سرور data ویولوم میں ایک کی فائل بناتا ہے۔ دیکھیں انکرپشن کی۔ |
GIFS_UPLOAD_KEY | خالی | لوگوں کو پکر کے ذریعے اپنے GIFs اور اسٹیکرز شامل کرنے اور انہیں حذف کرنے کی اجازت دیتا ہے۔ خالی ہونے پر اپ لوڈز بند ہو جاتے ہیں۔ |
DOMAIN | خالی | آپ کا ڈومین نام، https پروفائل کے لیے۔ |
HTTP_PORT | 8065 | Antimatter کے ویب سرور کا ہوسٹ پورٹ۔ |
CALLS_PORT | 8443 | کال آڈیو اور ویڈیو کے UDP اور TCP پورٹ۔ |
EDGE_SUBNET | 172.29.71.0/28 | Caddy اور Antimatter کے درمیان نیٹ ورک کا سبسٹنٹ۔ اگر یہ آپ کے کسی نیٹ ورک سے ملتا ہے تو اسے تبدیل کریں۔ |
TZ | UTC | کانٹینرز کا ٹائم زون۔ |
ANTIMATTER_IMAGE | ghcr.io/antimatterchat/antimatter-next:latest | Antimatter کی امیج جو چلائی جائے (نیچے دیکھیں)۔ |
کیا چلتا ہے
| سروس | امیج | کردار |
|---|---|---|
antimatter | ghcr.io/antimatterchat/antimatter-next | سرور، ویب ایپ اور شامل ایپس۔ HTTP_PORT اور CALLS_PORT پبلش کرتا ہے۔ اس کا ڈیٹا ڈائریکٹری data ویولوم ہے۔ |
postgres | postgres:17-alpine | ڈیٹا بیس، postgres وولوم میں۔ |
files | rustfs/rustfs | اپ لوڈ شدہ فائلوں اور انسٹال شدہ ایپس کے لیے S3-مطابق اسٹوریج، files وولوم میں۔ |
bucket | amazon/aws-cli | antimatter بکٹ بناتا ہے، پھر بند ہو جاتا ہے۔ |
gifs | ghcr.io/antimatterchat/gifs-server | GIF اور اسٹیکر سروس، gifs وولوم میں۔ |
gifs-stickers | ghcr.io/antimatterchat/gifs-server | پہلی بار اسٹارٹر اسٹیکر پیک امپورٹ کرتا ہے، پھر بند ہو جاتا ہے۔ |
https | caddy:2-alpine | صرف https پروفائل کے ساتھ: پورٹس 80 اور 443 پر HTTPS۔ |
PostgreSQL، اسٹوریج اور GIF سروس ایک اندرونی نیٹ ورک (private) پر ہیں جس کا انٹرنیٹ تک رسائی نہیں ہے، اور اس میں صرف Antimatter شامل ہوتا ہے۔ ان میں سے کوئی بھی پورٹ پبلش نہیں کرتا۔
Antimatter کنٹینر ڈسک پر کچھ بھی محفوظ نہیں رکھتا: اس کی ترتیبات ڈیٹا بیس میں ہیں (AM_CONFIG اس کی طرف اشارہ کرتا ہے) اور اس کی فائلیں اور ایپس اسٹوریج سروس میں ہیں۔ آپ کنٹینر کو کسی بھی وقت حذف کر کے دوبارہ بنا سکتے ہیں۔ اس کا data ویولوم صرف AI انکرپشن کی فائل رکھتا ہے، جو سرور تب بناتا ہے جب AM_AI_ENCRYPTION_KEY خالی ہو۔ بیک اپ کے لیے درکار ہر چیز postgres، files، gifs اور data ویولمز میں ہے، ساتھ ہی آپ کی .env فائل بھی۔
ایک امیج منتخب کریں
Antimatter کی دو امیجز پبلش کی گئی ہیں، دونوں linux/amd64 اور linux/arm64 کے لیے، اور دونوں ہر ریپوزٹری کے main برانچ سے بنائی گئی ہیں:
| امیج | باندل شدہ ایپس | ٹگز |
|---|---|---|
ghcr.io/antimatterchat/antimatter | Agents, Calls, GitHub, GitLab, Jira, Kanban, Metrics اور Playbooks۔ | latest، ریلیز کے لیے X.Y.Z، اور sha-<commit> |
ghcr.io/antimatterchat/antimatter-next | اسی کے علاوہ Voice channels, Polls, Mail, Calendar, Notes, Whiteboard, GIFs, Todo اور Memes۔ ہر رات دوبارہ بنائی جاتی ہے۔ | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
سائٹ کا compose فائل antimatter-next استعمال کرتی ہے، کیونکہ GIF سروس اور اس سائٹ پر بیان کردہ زیادہ تر ایپس صرف اس امیج میں موجود ہیں۔ امیج بدلنے کے لیے .env میں ANTIMATTER_IMAGE سیٹ کریں اور docker compose up -d چلائیں۔
latest آپ کے نیچے بدل جاتا ہے۔ پروڈکشن میں، کسی ٹگ کو پن کریں جیسے nightly-20261015 یا sha-<commit>، اور اپ گریڈ کے وقت اسے جان بوجھ کر تبدیل کریں۔ سرور شروع ہونے پر اپنی ڈیٹا بیس کو اپ گریڈ کرتا ہے، اس لیے آپ بیک اپ واپس کرنے کے بغیر پرانی امیج پر واپس نہیں جا سکتے، نہ ہی antimatter-next سے antimatter پر۔ دیکھیں بیک اپس اور اپ گریڈز۔امیج کے اندر
- سرور
/antimatterمیں موجود ہے، جس میں/antimatter/binمیںantimatterاورamctlباینریز ہیں (PATHپر)۔ - یہ غیر پرائیویلیجڈ یوزر
antimatter(uid 2000) کے طور پر ایک منیمل ڈسٹریلس بیس پر چلتا ہے، جس میں کوئی شیل نہیں ہے۔ - پورٹس: 8065 (ویب اور API)، 8067 (میٹرکس)، 8074 (کلسٹر)، 8443 UDP اور TCP (کالز)۔
- لوکل موڈ (
ServiceSettings.EnableLocalMode) فعال ہے، اس لیےamctl --localکنٹینر کے اندر کام کرتا ہے۔ ہیلتھ چیکamctl system status --localچلاتا ہے۔ - باندل شدہ ایپس
/antimatter/prepackaged_pluginsمیں موجود ہیں، جو Antimatter ایپ سائننگ کی کے ذریعے سائن شدہ ہیں۔ - ٹیکسٹ ایکسٹریکشن ٹولز (
pdftotext،wvText،unrtf،tidy) شامل ہیں، تاکہ اپ لوڈ شدہ دستاویزات کے مواد کی تلاش کی جا سکے۔
دیگر کمپوز فائلز
antimatter-docker ریپوزٹری میں deploy/compose/ میں پروڈکشن سیٹ اپ موجود ہے: nginx آپ کے اپنے سرٹیفکیٹس یا Let's Encrypt (certbot) کے ساتھ، PostgreSQL، اختیاری GIF سروس (پروفائل gifs) اور سرور کی ترتیبات، ڈیٹا اور لاگز کے لیے نامیاتی وولومز، جو اس کے README میں دستاویز شدہ ہیں۔ یہ ڈیفالٹ طور پر اسٹبل امیج استعمال کرتا ہے اور فائلوں کو S3 اسٹوریج کے بجائے لوکل وولوم پر محفوظ کرتا ہے۔ اگر آپ nginx کو Caddy پر ترجیح دیتے ہیں یا پہلے سے سرٹیفکیٹس رکھتے ہیں، تو اسے استعمال کریں۔
پہلا ایڈمن بنائیں
اپنے براؤزر میں SITE_URL کھولیں اور اکاؤنٹ بنائیں۔ نئے سرور پر بنایا گیا پہلا اکاؤنٹ سسٹم ایڈمن بن جاتا ہے، اور سیٹ اپ پھر آپ کو اپنی پہلی کمیونٹی (Antimatter کی ٹیم یا ورک اسپیس کے لیے اصطلاح) بنانے میں رہنمائی فراہم کرتا ہے۔
پہلی شروع ہونے کے فوراً بعد یہ کریں: اس سے پہلے، جو بھی سرور تک پہلے پہنچتا ہے، وہ اس کا ایڈمن بن جاتا ہے۔ اگر آپ چاہتے ہیں کہ اکاؤنٹ کمانڈ لائن سے بنایا جائے، تو اس سے پہلے کہ سرور باہر سے قابل رسائی ہو:
docker compose exec antimatter amctl --local user create --system-admin --email-verified \
--email admin@example.com --username admin --password 'a-long-password'
docker compose exec antimatter amctl --local team create --name main --display-name "Main"
docker compose exec antimatter amctl --local team users add main admin
پھر SITE_URL پر سائن ان کریں۔ پاس ورڈ کو اپنے شل ہسٹری سے باہر رکھنے کے لیے کمانڈ کے شروع میں ایک سپیس لگائیں (جیسے HISTCONTROL=ignorespace)، یا سائن ان کرنے کے بعد پاس ورڈ تبدیل کریں۔
اندر آ جانے کے بعد اگلی مراحل:
- کسی کمپنی یا تنظیم کے لیے، نئی کمیونٹیز کی قسم کو ورک پلیس پر سیٹ کریں، اور کسی پہلے سے بنائی گئی کمیونٹی کی قسم اس کی ترتیبات میں تبدیل کریں: ورک پلیس یا کمیونٹی۔
- فیصلہ کریں کہ کون اکاؤنٹس بنا سکتا ہے: سائن ان اور اکاؤنٹس۔
- ای میل کی ترتیب کریں، تاکہ مدعوں اور پاس ورڈ ری سیٹ کام کریں: ای میل اور پش اطلاعات۔
- اپنے فائر وال میں کالز پورٹ کھولیں: کالز اور وائس۔
- چیک کریں کہ کون سی ایپس فعال ہیں: باندل شدہ ایپس۔
ریلیز ڈاؤن لوڈ کریں
Docker کے بغیر، Antimatter کو GitHub پر ریلیز کی فائلوں سے انسٹال کریں: github.com/AntimatterChat/antimatter/releases۔ ہر ریلیز کی ایک ورژن نمبر ہوتا ہے جیسے 0.9.0، اور اس کا ٹیگ اسی نمبر کے ساتھ آگے v ہوتا ہے (v0.9.0)۔
0.9.0-rc.1، GitHub پر Pre-release کے طور پر نشان زد کیا جاتا ہے۔ یہ ایک ٹیسٹ ورژن ہے، جو حتمی ریلیز سے پہلے شائع کیا جاتا ہے۔ہر ریلیز میں amd64 اور arm64 سرورز کے لیے یہ فائلیں موجود ہیں:
| فائل | یہ کیا ہے |
|---|---|
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.deb | Debian، Ubuntu اور ان پر مبنی ڈسٹری بیوشنز کے لیے پیکج۔ |
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpm | Fedora، RHEL اور RHEL سے ہم آہنگ ڈسٹری بیوشنز کے لیے پیکج۔ |
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gz | کسی بھی Linux ڈسٹری بیوشن کے لیے ریلیز آرکائیو، جسے دستی طور پر ترتیب دیا جاتا ہے۔ |
SHA256SUMS | ریلیز کی ہر فائل کا SHA-256 چیک سم۔ |
پیکجز اور آرکائیو ایک ہی پروگرام رکھتے ہیں: سرور (antimatter)، کمانڈ لائن ٹول (amctl)، دونوں ویب ایپس (ڈیفالٹ انٹرفیس اور کلاسیکی ایک)، بندل شدہ ایپس، ای میل ٹیمپلیٹس اور تراجم۔ پیکجز میں systemd سروس اور ترتیبات فائل شامل ہے، اس لیے ہر ایک ایک all-in-one انسٹالیشن ہے: آپ کو صرف PostgreSQL ڈیٹا بیس شامل کرنا ہے۔ الگ سے باینری ڈاؤن لوڈز نہیں ہیں: باینری آرکائیو میں، antimatter/bin/ میں موجود ہیں۔ یہ اسٹیٹک ہیں، اس لیے وہ اپنے آرکی ٹیکچر کی کسی بھی Linux ڈسٹری بیوشن پر چلتے ہیں۔
پیکج کے ناموں میں، پری ریلیز ورژن کا ہائفن ٹائلڈ میں تبدیل ہو جاتا ہے، تاکہ پیکج مینیجر پری ریلیز کو حتمی ریلیز سے پہلے ترتیب دے: ورژن 0.9.0-rc.1 سے antimatter_0.9.0~rc.1-1_amd64.deb اور antimatter-0.9.0~rc.1-1.x86_64.rpm بنتا ہے۔ آرکائیو میں ہائفن برقرار رہتا ہے۔
antimatter version ریلیز ورژن کو بلڈ نمبر کے طور پر دکھاتا ہے، اور اس کے بننے والے کومٹ کو بلڈ ہیش کے طور پر۔ اس کی ورژن لائن Mattermost لائن کا ورژن ہے جس پر Antimatter مبنی ہے۔
ڈاؤن لوڈ کی تصدیق کریں
جو فائل آپ کو چاہیے اور SHA256SUMS کو ایک ہی ڈائریکٹری میں ڈاؤن لوڈ کریں، ریلیز پیج سے یا curl کے ذریعے، پھر فائل کی تصدیق کریں:
curl -fLO https://github.com/AntimatterChat/antimatter/releases/download/v<version>/antimatter_<version>-1_amd64.deb
curl -fLO https://github.com/AntimatterChat/antimatter/releases/download/v<version>/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
ہر فائل جو آپ نے ڈاؤن لوڈ کی ہے، OK کے ساتھ درج ہونی چاہیے۔ کوئی اور نتیجہ اس بات کی نشاندہی کرتا ہے کہ فائل خراب یا نامکمل ہے: اسے دوبارہ ڈاؤن لوڈ کریں، اور اسے انسٹال نہ کریں۔ SHA256SUMS پر دستخط نہیں ہیں: یہ خراب ڈاؤن لوڈ کی نشاندہی کرتا ہے، اور GitHub سے HTTPS ڈاؤن لوڈ کے علاوہ کچھ ثابت نہیں کرتا۔
.deb یا .rpm پیکج انسٹال کریں
پیکج Antimatter کو systemd سروس کے طور پر انسٹال کرتا ہے، جسے شروع کرنے کے لیے صرف ایک ڈیٹا بیس کی ضرورت ہوتی ہے۔ اسے 64-بٹ Debian، Ubuntu، Fedora یا RHEL سے ہم آہنگ سرور پر systemd کے ساتھ استعمال کریں۔
پیکج کیا انسٹال کرتا ہے
| پاتھ | اس میں کیا ہے |
|---|---|
/opt/antimatter | پروگرام: bin/antimatter، bin/amctl، ویب ایپس (client/، client-fusion/)، شامل شدہ ایپس (prepackaged_plugins/)، ٹیمپلیٹس، تراجم اور فونٹس۔ ہر اپ گریڈ اسے تبدیل کر دیتا ہے۔ |
/etc/antimatter/antimatter.env | سروس کی ترتیبات، AM_ متغیرات کی صورت میں: ڈیٹا بیس، سائٹ کا URL، GIF سروس۔ صرف root پڑھ سکتا ہے۔ اپ گریڈز اسے برقرار رکھتے ہیں۔ |
/etc/antimatter/config/config.json | کنفیگریشن فائل، جہاں سرور سسٹم کنسول میں تبدیل کی گئی ترتیبات محفوظ کرتا ہے۔ یہ پہلی تنصیب پر /opt/antimatter/defaults/config.json سے بنائی جاتی ہے، اور اس کے بعد کبھی تبدیل نہیں کی جاتی۔ |
/var/lib/antimatter | اپ لوڈ شدہ فائلیں (data/) اور نصب شدہ ایپس (plugins/، client-plugins/)۔ |
/var/log/antimatter | لاگ فائلیں، اگر آپ فائل لاگنگ چالو کریں۔ یہ غیر فعال ہے: لاگز جرنل میں جاتے ہیں۔ |
/usr/lib/systemd/system/antimatter.service | سروس۔ |
/usr/bin/amctl | /opt/antimatter/bin/amctl کی لنک۔ |
سرور کے لکھنے والے ڈائریکٹریز /opt/antimatter میں (config، data، plugins، client/plugins اور logs) /etc/antimatter، /var/lib/antimatter اور /var/log/antimatter کی لنکس ہیں۔ لہذا اپ گریڈ، جو /opt/antimatter کو تبدیل کرتا ہے، کبھی آپ کے ڈیٹا کو متاثر نہیں کرتا۔ پیکج سسٹم یوزر antimatter بھی بناتا ہے، جو سرور کو چلاتا ہے اور ان ڈائریکٹریز کا مالک ہے۔
پیکج ca-certificates پر منحصر ہے۔ یہ PostgreSQL (postgresql on Debian and Ubuntu, postgresql-server on Fedora and RHEL)، media-types (mailcap for the .rpm) اور gifs-server، GIF سروس، کو سفارش کرتا ہے، جس کی اپنی الگ ریلیز ہے (دیکھیں نیچے)۔ apt اور dnf سفارش شدہ پیکجز کو نصب کرتے ہیں جب وہ انہیں پاتے ہیں۔ یہ poppler-utils، wv، unrtf اور tidy (no wv for the .rpm) کو تجویز کرتا ہے: یہ اپ لوڈ شدہ دستاویزات کا متن خارج کرتے ہیں، تاکہ تلاش ان کے اندر موجود الفاظ کو پڑ سکے۔ اگر آپ کو یہ چاہیے تو خود نصب کریں۔
1. پیکجز نصب کریں
اپنے آرکیٹیکچر کے مطابق Antimatter پیکج اور GIF سروس پیکج ڈاؤن لوڈ کریں، انہیں اوپر دکھائے گئے طریقے سے چیک کریں، اور دونوں کو ایک ہی کمانڈ میں نصب کریں، تاکہ gifs-server کی سفارش پوری ہو (یہ ڈسٹری بیوشنز کے ریپوزٹریز میں موجود نہیں ہے):
# Debian, Ubuntu
sudo apt install ./antimatter_<version>-1_amd64.deb ./gifs-server_*_amd64.deb
# Fedora, RHEL
sudo dnf install ./antimatter-<version>-1.x86_64.rpm ./gifs-server-*.x86_64.rpm
./ کو برقرار رکھیں: یہ apt اور dnf کو بتاتا ہے کہ مقامی فائل انسٹال کریں۔ GIF سروس کے بغیر انسٹال کرنے کے لیے، اس کی پیکج کو باہر چھوڑ دیں۔ یہ پیکج antimatter سروس کو فعال کرتی ہے لیکن اسے شروع نہیں کرتی، اور اگلے اقدامات کو پرنٹ کرتی ہے۔
2. ڈیٹا بیس بنائیں
Antimatter کو PostgreSQL 15 یا اس سے نئے ورژن کی ضرورت ہے، چاہے یہ اس سرور پر ہو یا کسی اور پر۔ اپنے ڈسٹری بیوشن کے PostgreSQL کا ورژن psql --version کے ذریعے چیک کریں۔ اگر یہ پرانا ہے، تو PostgreSQL پروجیکٹ کے اپنے ریپوزٹریز سے نیا ورژن انسٹال کریں، یا کسی اور سرور پر موجود ڈیٹا بیس استعمال کریں۔ Debian اور Ubuntu پر، postgresql پیکج ڈیٹا بیس کو شروع کرتی ہے۔ Fedora اور RHEL پر، پہلے اسے بنائیں اور شروع کریں:
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
پھر Antimatter کے لیے ایک یوزر اور ڈیٹا بیس بنائیں:
sudo -u postgres psql -c "CREATE USER antimatter WITH PASSWORD 'a-long-password'"
sudo -u postgres psql -c "CREATE DATABASE antimatter OWNER antimatter"
PostgreSQL کو 127.0.0.1 سے پاس ورڈ کنکشنز قبول کرنے ہوں گے: اس کے pg_hba.conf فائل کے host لائنز، scram-sha-256 میتھڈ کے ساتھ۔
3. ڈیٹا بیس اور سائٹ URL سیٹ کریں
/etc/antimatter/antimatter.env کو ایڈٹ کریں (sudoedit /etc/antimatter/antimatter.env)۔ ان لائنز کے سامنے موجود # کو ہٹا دیں جنہیں آپ استعمال کر رہے ہیں، اور ڈیٹا بیس اور وہ پتہ سیٹ کریں جو لوگ کھولیں گے:
AM_SQLSETTINGS_DRIVERNAME=postgres
AM_SQLSETTINGS_DATASOURCE=postgres://antimatter:a-long-password@localhost:5432/antimatter?sslmode=disable&connect_timeout=10
AM_SERVICESETTINGS_SITEURL=https://chat.example.com
کانفیگریشن کی کوئی بھی ترتیب اس فائل میں AM_<SECTION>_<SETTING> کے طور پر رکھی جا سکتی ہے: مثال کے طور پر، SqlSettings.DataSource ہے AM_SQLSETTINGS_DATASOURCE۔ یہاں سیٹ کی گئی ترتیب کو سسٹم کنسول میں تبدیل نہیں کیا جا سکتا۔ دیکھیں Configuration۔ ہر تبدیلی کے بعد سرور کو دوبارہ شروع کریں: sudo systemctl restart antimatter۔
سروس کچھ ڈیفالٹس بھی سیٹ کرتی ہے، جنہیں antimatter.env میں ایک لائن اوور رائڈ کرتی ہے: فائلز میں لاگنگ بند ہے (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false)، اور لوکل موڈ آن ہے (AM_SERVICESETTINGS_ENABLELOCALMODE=true)، تاکہ سرور پر amctl --local کام کرے۔
4. اسے شروع کریں
sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status
پہلی بار شروع ہونے پر، سرور اپنی ٹیبلز بناتا ہے، پھر پورٹ 8065 پر سننے لگتا ہے۔ http://<server>:8065 کھولیں، یا اگر ریورس پراکسی موجود ہو تو اپنا ڈومین کھولیں (تفصیل کے لیے ڈومین اور HTTPS دیکھیں)، اور فوراً پہلا اکاؤنٹ بنائیں: یہ سسٹم ایڈمن بن جائے گا۔ اگر آپ اسے کمانڈ لائن سے بنانا چاہتے ہیں، تو پہلا ایڈمن بنائیں میں دیے گئے amctl کمانڈز استعمال کریں، جہاں docker compose exec antimatter amctl --local کی جگہ sudo -u antimatter amctl --local لکھیں۔
5. GIFs کو فعال کریں
GIFs ایپ شامل ہے اور فعال ہے، اور antimatter.env پہلے ہی اسے اسی سرور پر موجود GIF سروس کی طرف اشارہ کر رہا ہے (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2)۔ اسے ابھی بھی سروس کی API کلید درکار ہے۔ gifs-server پیکیج نے اس کی تنصیل کے وقت ایک کلید بنائی تھی:
sudo systemctl start gifs-server-stickers # imports the sticker pack, about a minute and a half
sudo systemctl start gifs-server
sudo grep -v '^#' /etc/gifs-server/api-keys
کلید کو antimatter.env میں AM_GIFS_API_KEY=<key> کے طور پر درج کریں اور Antimatter کو دوبارہ شروع کریں، یا اسے سسٹم کنسول › پلگ انز › GIFs میں API کلید کے طور پر درج کریں۔ اگر GIF سروس کسی دوسرے سرور پر چل رہی ہے، تو AM_GIFS_SERVICE_URL کو اس کے پتے پر سیٹ کریں۔ اگر آپ چاہتے ہیں کہ لوگ اپنی مرضی کے GIFs اور اسٹیکرز شامل کر سکیں، تو GIFs دیکھیں۔
سروس
- یہ
antimatterصارف کے طور پر،/opt/antimatterمیں چلتی ہے، اور/etc/antimatter/antimatter.envپڑھتی ہے۔ systemd سرور کو ہر بار اس کے بند ہونے پر دوبارہ شروع کرتا ہے، اور اسے شروع ہونے کے لیے ایک گھنٹے تک وقت دیتا ہے، کیونکہ نئے ورژن کی ڈیٹا بیس مائیگریشنز میں کافی وقت لگ سکتا ہے۔ - اس کے لاگز جرنل میں موجود ہیں:
journalctl -u antimatter۔ - یہ محفوظ (hardened) ہے: سرور کے لیے
/usrاور/etcصرف پڑھنے کے لیے ہیں، سوائے/etc/antimatter/configکے، اور اسے/home،/rootیا/run/userنظر نہیں آتے۔ اگر آپ فائل اسٹوریج کو منتقل کرتے ہیں (FileSettings.Directory)، تو ان کے باہر ایک ڈائریکٹری منتخب کریں جوantimatterکے زیرِ ملکیت ہو۔ - اپ گریڈز سروس فائل کو تبدیل کر دیتے ہیں۔ اسے تبدیل کرنے کے لیے
sudo systemctl edit antimatterاستعمال کریں، جو آپ کی تبدیلیوں کو ایک الگ فائل میں محفوظ رکھتا ہے۔
پیکیج کو اپ گریڈ کریں
- بیک اپ لیں (تفصیل کے لیے بیک اپس اور اپ گریڈز دیکھیں)۔
- نیا پیکیج اور
SHA256SUMSڈاؤن لوڈ کریں، اور ان کی تصدیق کریں۔ - سرور کو روکیں، پرانے پیکیج پر نیا پیکیج انسٹال کریں، اور دوبارہ شروع کریں:
sudo systemctl stop antimatter sudo apt install ./antimatter_<new version>-1_amd64.deb # or: sudo dnf install ./antimatter-<new version>-1.x86_64.rpm sudo systemctl start antimatter journalctl -u antimatter -f
پیکج خود بخود سرور کو دوبارہ شروع نہیں کرتا۔ اپ گریڈ کے بعد یہ Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter دکھاتا ہے: اگر آپ نے پہلے سے سرور کو بند نہیں کیا تھا، تو فوراً اسے دوبارہ شروع کریں۔ اپ گریڈ /opt/antimatter اور سروس فائل کو تبدیل کرتا ہے، جبکہ antimatter.env، config.json، /var/lib/antimatter اور لاگز کو برقرار رکھتا ہے۔ جب سرور شروع ہوتا ہے، تو یہ ڈیٹا بیس کو اپ گریڈ کرتا ہے اور شامل ایپس کے نئے ورژنز انسٹال کرتا ہے۔
اگر نئے ورژن میں ڈیفالٹ antimatter.env میں تبدیلی آتی ہے، تو apt پوچھتا ہے کہ کیا آپ اپنا ورژن برقرار رکھنا چاہتے ہیں: اسے برقرار رکھیں۔ dnf آپ کا ورژن برقرار رکھتا ہے اور نیا ورژن /etc/antimatter/antimatter.env.rpmnew کے طور پر محفوظ کرتا ہے۔ اپ گریڈ صرف آگے بڑھتا ہے: کسی نئے ورژن پر پرانا ورژن انسٹال نہ کریں۔
پیکج کو ہٹائیں
sudo apt remove antimatter یا sudo dnf remove antimatter سروس کو بند اور غیر فعال کرتا ہے، اور پروگرام کو ہٹا دیتا ہے۔ یہ ڈیٹا (/var/lib/antimatter)، کنفیگریشن (/etc/antimatter)، ڈیٹا بیس اور antimatter صارف کو برقرار رکھتا ہے: Antimatter کو مکمل طور پر ہٹانے کے لیے انہیں خود ہٹائیں۔
پیکجز اور آرکائیو میں موجود ایپس
پیکجز اور آرکائیو میں ان ایپس کی تازہ ترین سائن شدہ ریلیز شامل ہیں، جو prepackaged_plugins/ میں موجود ہیں: ایجنٹس، کالز، GIFs، Memes، نوٹس، پولز، Todo، وائس چینلز اور وائٹ بورڈ۔ اگر کسی ایپ کی ریلیز اس وقت موجود نہیں تھی جب سرور کی ریلیز بنائی گئی تھی، تو اسے چھوڑ دیا جاتا ہے: ls /opt/antimatter/prepackaged_plugins سے دیکھ سکتے ہیں کہ آپ کی ریلیز میں کیا شامل ہے۔ Memes اور Todo شامل ہیں لیکن فعال نہیں کیے گئے ہیں: Bundled apps میں انہیں انسٹال اور فعال کرنے کا طریقہ بیان کیا گیا ہے۔
Docker امیجز کی دیگر ایپس پیکجز یا آرکائیو میں شامل نہیں ہیں: Kanban، Playbooks، Mail، Calendar، GitHub، GitLab، Jira اور Metrics۔ ہر ایک کو اس کی اپنی ریلیز سے انسٹال کریں:
| ایپ | ریلیز | ایپ id |
|---|---|---|
| کانبان | antimatter-plugin-boards | focalboard |
| پلے بکس | antimatter-plugin-playbooks | playbooks |
| میل | antimatter-plugin-mail | com.antimatterchat.mail |
| کیلنڈر | antimatter-plugin-calendar | com.antimatterchat.calendar |
| GitHub | antimatter-plugin-github | github |
| GitLab | antimatter-plugin-gitlab | com.github.manland.mattermost-plugin-gitlab |
| Jira | antimatter-plugin-jira | jira |
| میٹرکس | Antimatter-plugin-metrics | com.mattermost.mattermost-plugin-metrics |
ہر ایپ ریلیس میں ایپ کا باندل (ایک .tar.gz فائل)، اس کی دستخط (اسی نام کے ساتھ .sig شامل کر کے) اور ایک SHA256SUMS فائل ہوتی ہے۔ کسی ایپ کو نصب کرنے کے لیے، اپ لوڈز کی اجازت دیں، پھر amctl کے ذریعے باندل شامل کریں:
# 1. In /etc/antimatter/antimatter.env, add this line, then restart Antimatter
AM_PLUGINSETTINGS_ENABLEUPLOADS=true
sudo systemctl restart antimatter
# 2. Download the bundle where the antimatter user can read it, and install it
cd /tmp
curl -fLO https://github.com/AntimatterChat/antimatter-plugin-boards/releases/download/v<version>/<bundle>.tar.gz
sudo -u antimatter amctl --local plugin add <bundle>.tar.gz
sudo -u antimatter amctl --local plugin enable focalboard
اس طریقے سے نصب شدہ ایپ کو اپ گریڈ کرنے کے لیے، plugin add --force کے ساتھ نیا باندل شامل کریں: پیکج اپ گریڈز صرف باندل شدہ ایپس کو اپ گریڈ کرتے ہیں۔ بعد میں آپ AM_PLUGINSETTINGS_ENABLEUPLOADS لائن کو دوبارہ ہٹا سکتے ہیں۔ ایپس نصب کرنے کے دیگر طریقوں کے لیے دیگر ایپس کی تنصیب دیکھیں۔
ایپ دستخط
ایپ باندلز Antimatter ایپ سائننگ کی کے ساتھ دستخط شدہ ہیں: ہر .tar.gz.sig فائل اپنے باندل کی الگ GPG دستخط ہے۔ سرور کسی باندل شدہ ایپ کو نصب کرنے سے پہلے ان دستخطوں کی تصدیق کرتا ہے۔ اگر آپ خود باندل کی تصدیق کرنا چاہیں:
curl -fsSLO https://raw.githubusercontent.com/AntimatterChat/antimatter-docker/main/keys/antimatter-plugin-signing.asc
gpg --import antimatter-plugin-signing.asc
gpg --verify <bundle>.tar.gz.sig <bundle>.tar.gz
gpg کو Antimatter Plugin Signing سے اچھی دستخط کی رپورٹ کرنی چاہیے، فنگر پرنٹ 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45 کے ساتھ۔ یہ اس بات کی بھی خبردار کرتا ہے کہ کی کوئی قابلِ اعتماد دستخط سے تصدیق شدہ نہیں ہے: یہ اس کی کے لیے عام ہے جسے آپ نے خود دستخط نہیں کیا ہے۔ .sig فائلوں کے بغیر ایپ ریلیس دستخط شدہ نہیں ہوتی، اور اس کی ریلیس نوٹس میں اس کا ذکر ہوتا ہے۔
ریلیس آرکائیو سے انسٹال کریں
آرکائیو، antimatter-<version>-linux-<arch>.tar.gz (مثلاً antimatter-0.9.0-linux-amd64.tar.gz)، اس ڈسٹری بیوشن کے لیے موزوں ہے جس میں .deb یا .rpm پیکجز نہ ہوں، یا آپ کی اپنی ترتیب ہو۔ اس میں ایک واحد antimatter/ ڈائریکٹری ہوتی ہے جس میں bin/antimatter، bin/amctl، config/config.json، ویب ایپس (client/ اور client-fusion/)، باندل شدہ ایپس (prepackaged_plugins/، اوپر دیکھیں)، ای میل ٹیمپلیٹس اور تراجم شامل ہیں۔
1. PostgreSQL کی تیاری
Antimatter صرف PostgreSQL کو سپورٹ کرتا ہے، ورژن 15 یا اس سے نیا (پرانی ورژنز لوگ میں ایک ایرر کے ساتھ شروع ہوتی ہیں)۔ ایک یوزر اور ڈیٹابیس بنائیں:
sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF
2. انپیک اور کنفیگریشن
sudo tar -xzf antimatter-<version>-linux-amd64.tar.gz -C /opt
sudo useradd --system --user-group antimatter
sudo mkdir -p /opt/antimatter/data
sudo chown -R antimatter:antimatter /opt/antimatter
سرور کو ڈیٹابیس سے جوڑیں، چاہے /opt/antimatter/config/config.json (SqlSettings.DataSource) میں یا ماحولیاتی متغیروں کے ذریعے، اور سائٹ URL سیٹ کریں:
AM_SQLSETTINGS_DRIVERNAME=postgres
AM_SQLSETTINGS_DATASOURCE=postgres://antimatter:a-long-password@localhost:5432/antimatter?sslmode=disable&connect_timeout=10
AM_SERVICESETTINGS_SITEURL=https://chat.example.com
آرکائیو کا config.json ایک مکمل ڈیفالٹ کنفیگریشن ہے: سسٹم کنسول میں تبدیلی کی گئی ترتیبات اس میں واپس محفوظ کی جاتی ہیں۔ اگر آپ ڈیٹابیس میں کنفیگریشن رکھنا چاہتے ہیں، تو کنفیگریشن دیکھیں۔
3. اسے سروس کے طور پر چلائیں
ایک systemd یونٹ، /etc/systemd/system/antimatter.service میں:
[Unit]
Description=Antimatter
After=network.target postgresql.service
[Service]
Type=notify
User=antimatter
Group=antimatter
WorkingDirectory=/opt/antimatter
ExecStart=/opt/antimatter/bin/antimatter
EnvironmentFile=-/etc/antimatter.env
TimeoutStartSec=3600
Restart=always
RestartSec=10
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
اپنے AM_ متغیروں کو /etc/antimatter.env میں رکھیں (صرف root کے لیے قابلِ مطالعہ)، پھر:
sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f
سرور پورٹ 8065 پر سنتا ہے۔ http://<server>:8065 کھولیں، یا ایک ریورس پراکسی کے بعد اپنا ڈومین (دیکھیں ڈومین اور HTTPS)، اور پہلا اکاؤنٹ بنائیں: یہ سسٹم ایڈمن بن جائے گا۔
bin/amctl کمانڈ لائن سے چل رہے سرور کو منظم کرتا ہے۔ سرور پر خود، یہ لوکل موڈ کے ذریعے سائن ان کے بغیر کام کرتا ہے: AM_SERVICESETTINGS_ENABLELOCALMODE=true سیٹ کریں، پھر sudo -u antimatter /opt/antimatter/bin/amctl --local system status چلائیں۔
GIFs کے لیے، GIF سروس (نیچے دیکھیں) نصب کریں اور AM_GIFS_SERVICE_URL اور AM_GIFS_API_KEY کو پیکجز کے مرحلہ 5 کی طرح سیٹ کریں۔
GIF سروس اور پش پروکسی پیکجز
GIF سروس اور پش پروکسی کے اپنے الگ الگ ریلیز ہیں، جن کے قواعد و ضوابط سرور کے جیسے ہی ہیں: ایک .tar.gz آرکائیو، amd64 اور arm64 کے لیے .deb اور .rpm پیکج، اور ایک SHA256SUMS فائل۔ ہائفن (-) والی ورژنز پری ریلیز ہیں۔ سرور کی طرح، sha256sum --check --ignore-missing SHA256SUMS کے ذریعے ڈاؤن لوڈز کی تصدیق کریں۔
GIF سروس (gifs-server)
ریلیز: github.com/AntimatterChat/gifs-server/releases۔ آرکائیو کا نام gifs-server-<version>-linux-<arch>.tar.gz ہے؛ پیکجز کا نام gifs-server ہے۔
sudo apt install ./gifs-server_*_amd64.deb # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm # Fedora, RHEL
پیکج درج ذیل چیزیں انسٹال کرتا ہے:
/usr/bin/gifs-server، اورgifs-serverسروس، جوgifs-serverیوزر کے طور پر چلتی ہے اور اپنا کیٹلاگ/var/lib/gifs-serverمیں رکھتی ہے؛gifs-server-stickersسروس، جو شروع ہونے پر/usr/share/gifs-server/stickersمیں موجود اسٹیکر پیک کو امپورٹ یا اپڈیٹ کرتی ہے، پھر رُک جاتی ہے؛- اس کی ترتیبات،
/etc/gifs-server/gifs-server.env(AM_GIFS_متغیرات، جو اپ گریڈز پر محفوظ رہتے ہیں)، اور/etc/gifs-server/api-keys، جس میں ہر لائن پر ایک API کلید ہوتی ہے، اور پہلی انسٹالیشن پر ایک رینڈم کلید جنریٹ کی جاتی ہے۔
یہ 127.0.0.1:8080 پر سن کرتی ہے، اس لیے صرف اسی سرور پر موجود Antimatter اس تک رسائی حاصل کر سکتا ہے۔ اگر Antimatter کہیں اور چل رہا ہو، تو gifs-server.env میں AM_GIFS_LISTEN=:8080 سیٹ کریں اور اپنے فائر وال کے ذریعے پورٹ تک رسائی کو محدود کریں۔ فائل میں دیگر ترتیبات بھی درج ہیں: AM_GIFS_UPLOAD_KEYS (وہ کلیدیں جو GIFs اور اسٹیکرز شامل کرنے اور انہیں حذف کرنے کی اجازت دیتی ہیں)، AM_GIFS_PUBLIC_URL، AM_GIFS_TRUST_PROXY اور AM_GIFS_LOG_LEVEL۔ پیکج ffmpeg، gifsicle، librsvg2-bin (.rpm کے لیے librsvg2-tools) اور ایک DejaVu فونٹ کی سفارش کرتا ہے: سروس انہیں فائلوں کو امپورٹ یا وصول کرنے پر GIF، ویڈیو اور اسٹیکر فارمیٹس بنانے کے لیے استعمال کرتی ہے، اور ان کے بغیر بھی چل سکتی ہے۔
سرور کی طرح، انسٹالیشن پر سروس فعال (enabled) ہوتی ہے لیکن شروع (started) نہیں ہوتی۔ اسے پیکجز کے مرحلہ 5 میں دکھائے گئے طریقے سے شروع کریں۔ اپ گریڈ کے بعد اسے دوبارہ شروع کریں: sudo systemctl restart gifs-server۔ پیکج کو ہٹانے سے /var/lib/gifs-server میں موجود کیٹلاگ محفوظ رہتا ہے۔
پش پروکسی
ریلیز: github.com/AntimatterChat/push-proxy/releases۔ آرکائیو antimatter-push-proxy-<version>-linux-<arch>.tar.gz ہے؛ پیکجز کا نام antimatter-push-proxy ہے۔ پیکج /usr/bin/antimatter-push-proxy اور antimatter-push-proxy سروس انسٹال کرتا ہے، جو antimatter-push-proxy یوزر کے طور پر چلتا ہے اور /etc/antimatter-push-proxy/antimatter-push-proxy.json پڑھتا ہے (اپ گریڈز پر محفوظ رہتا ہے)۔ ایپل اور فائربیس کے کریڈنشلز /etc/antimatter-push-proxy/certs میں رکھے جاتے ہیں: پش نوٹیفیکیشنز میں ان کے ذرائع کی وضاحت کی گئی ہے۔
sudo apt install ./antimatter-push-proxy_*_amd64.deb # or: sudo dnf install ./antimatter-push-proxy-*.x86_64.rpm
sudo install -o root -g antimatter-push-proxy -m 0640 \
AuthKey_ABCDE12345.p8 firebase-service-account.json /etc/antimatter-push-proxy/certs/
sudoedit /etc/antimatter-push-proxy/antimatter-push-proxy.json
sudo systemctl start antimatter-push-proxy
journalctl -u antimatter-push-proxy -f
سیٹنگز فائل میں، پاتھز /etc/antimatter-push-proxy کے حوالے سے ہیں: مثال کے طور پر "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" اور "ServiceFileLocation": "./certs/firebase-service-account.json"۔ پھر Antimatter میں پش نوٹیفیکیشن سرور کو http://<proxy host>:8066 پر سیٹ کریں۔ اپ گریڈ کے بعد اسے دوبارہ شروع کریں: sudo systemctl restart antimatter-push-proxy۔
دیگر سرور کمانڈز
سرور چلانے کے علاوہ (antimatter، یا antimatter server)، بائنری میں کچھ دیکھ بھال کی کمانڈز ہیں۔ یہ سرور کی اسی کنفیگریشن کو پڑھتی ہیں۔
| کمانڈ | یہ کیا کرتا ہے |
|---|---|
antimatter version | ورژن، بلڈ نمبر، بلڈ تاریخ اور بلڈ ہیش پرنٹ کرتا ہے۔ |
antimatter db ping | چیک کرتا ہے کہ ڈیٹابیس تک رسائی ممکن ہے۔ |
antimatter db init | ڈیٹابیس میں کنفیگریشن بناتا ہے (AM_CONFIG کو postgres:// URL پر سیٹ کر کے)۔ |
antimatter db migrate | سرور شروع کیے بغیر ڈیٹابیس مائیگریشنز لاگو کرتا ہے۔ |
antimatter db version | ڈیٹابیس پر لاگو ہونے والی آخری مائیگریشن پرنٹ کرتا ہے۔ |
antimatter import bulk, antimatter export bulk | بُلک فارمیٹ میں ڈیٹا امپورٹ یا ایکسپورٹ کرتا ہے (دیکھیں بیک اپس اور اپ گریڈز)۔ |