শুরু করুন

নিজের সার্ভারে Antimatter চালান

একটি ফাইল, তিনটি কমান্ড, মোটামুটি দশ মিনিট: ডেটাবেস, ফাইল স্টোরেজ আর GIF সার্ভিসসহ Antimatter, Docker আছে এমন যেকোনো Linux সার্ভারে।

দশ মিনিটেই চালু

আপনার দরকার Docker ও তার Compose প্লাগইনসহ একটি Linux সার্ভার, যাতে অন্তত ২টি CPU কোর আর ৪ GB মেমরি আছে।

১. কম্পোজ ফাইলটি ডাউনলোড করুন

$ mkdir antimatter && cd antimatter
$ curl -fsSLO https://antimatter.chat/compose.yaml

২. র‍্যান্ডম পাসওয়ার্ডসহ সেটিংস তৈরি করুন

$ 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)
EOF

SITE_URL-এ সেই ঠিকানাটি দিন, যেটি দিয়ে সবাই Antimatter খুলবেন, যেমন লোকাল নেটওয়ার্কে http://192.168.1.20:8065।

৩. চালু করুন

$ docker compose up -d

প্রথমবার চালু হতে এক-দুই মিনিট লাগে, কারণ তখন ডেটাবেস তৈরি হয়। এরপর ব্রাউজারে SITE_URL খুলে আপনার অ্যাকাউন্ট তৈরি করুন: প্রথম অ্যাকাউন্টটিই হয় সিস্টেম অ্যাডমিনিস্ট্রেটর, আর সেটআপ আপনাকে ধাপে ধাপে প্রথম কমিউনিটি তৈরির পথ দেখাবে।

নিজের ডোমেইন ও HTTPS দিয়ে

আপনার ডোমেইনের একটি DNS রেকর্ড সার্ভারের দিকে পয়েন্ট করুন, 80 ও 443 পোর্ট খুলুন, আর ডোমেইনটি .env-এ যোগ করুন:

$ cat >> .env <<EOF
DOMAIN=chat.example.com
EOF
$ sed -i 's|^SITE_URL=.*|SITE_URL=https://chat.example.com|' .env
$ docker compose --profile https up -d

Let's Encrypt থেকে সার্টিফিকেট নেওয়া আর সেটি রিনিউ করার কাজ Caddy নিজেই করে।

যা যা চলে

  • antimatter: সার্ভার, তার অ্যাপগুলোসহ (নোট, হোয়াইটবোর্ড, ভয়েস চ্যানেল, কল, পোল ও অন্যান্য)। এটি ডিস্কে কিছুই রাখে না: এর সেটিংস থাকে ডেটাবেসে আর ফাইল থাকে স্টোরেজ সার্ভিসে, তাই কন্টেইনারটি যেকোনো সময় বদলে ফেলা যায়।
  • postgres: ডেটাবেস।
  • files: RustFS, আপলোড করা ফাইলের জন্য S3-সামঞ্জস্যপূর্ণ স্টোরেজ।
  • gifs: Antimatter-এর GIF ও স্টিকার সার্ভিস, শুরু করার জন্য একটি স্টিকার প্যাকসহ।
  • https: Caddy, শুধু https প্রোফাইল ব্যবহার করলে।

ডেটাবেস, স্টোরেজ আর GIF সার্ভিস থাকে একটি প্রাইভেট নেটওয়ার্কে, যেখানে কেবল Antimatter পৌঁছাতে পারে।

GIF পিকার যদি ফাঁকা থাকে, তাহলে সিস্টেম কনসোল › প্লাগইন › GIFs খুলুন, সার্ভিস URL হিসেবে http://gifs:8080/v2 আর API কি হিসেবে আপনার .env-এর GIFS_API_KEY দিন।

আপগ্রেড ও ব্যাকআপ

# সর্বশেষ ইমেজে আপগ্রেড করুন
$ docker compose pull && docker compose up -d
# ডেটাবেসের ব্যাকআপ নিন
$ docker compose exec postgres pg_dump -U antimatter antimatter > antimatter.sql

files ভলিউমেরও ব্যাকআপ নিন, অথবা যেকোনো S3 টুল দিয়ে স্টোরেজ রেপ্লিকেট করুন। nginx আর নিজের সার্টিফিকেট দিয়ে সেটআপ করতে চাইলে antimatter-docker-এর প্রোডাকশন ফাইলগুলো দেখুন।

রিলিজ আর্কাইভ দিয়ে

  1. একটি PostgreSQL ডেটাবেস ও ইউজার সেট আপ করুন।
  2. আর্কাইভটি (antimatter-<os>-<arch>.tar.gz) আনপ্যাক করুন, যেমন /opt/antimatter-এ, তারপর config/config.json-এর SqlSettings.DataSource-এ (অথবা AM_SQLSETTINGS_DATASOURCE এনভায়রনমেন্ট ভেরিয়েবলে) ডেটাবেসের ঠিকানা দিন।
  3. একজন আনপ্রিভিলেজড ইউজার হিসেবে bin/antimatter দিয়ে সার্ভার চালু করুন, আর http://localhost:8065 খুলুন। প্রথম তৈরি হওয়া অ্যাকাউন্টটিই হয় সিস্টেম অ্যাডমিনিস্ট্রেটর।

bin/amctl দিয়ে কমান্ড লাইন থেকে চালু সার্ভার পরিচালনা করা যায় (সার্ভারের নিজের ভেতরে bin/amctl --local, ServiceSettings.EnableLocalMode চালু থাকলে)।

পরের ধাপ

  • কল: কলের পোর্ট খুলুন (ডিফল্টভাবে UDP ও TCP 8443), যাতে ভয়েস ও ভিডিও সার্ভারে পৌঁছায়।
  • ইমেইল: আমন্ত্রণ আর নোটিফিকেশনের জন্য SMTP কনফিগার করুন।
  • AI: Agents সেটিংসে একটি মডেল যোগ করুন; যেকোনো OpenAI-সামঞ্জস্যপূর্ণ API চলবে, আপনার নিজের চালানো সার্ভারও।
  • স্পিচ ও অনুবাদ: কল ট্রান্সক্রিপশন, শব্দে পড়া আর স্বয়ংক্রিয় অনুবাদকে আপনার নিজের চালানো স্পিচ-টু-টেক্সট, টেক্সট-টু-স্পিচ ও অনুবাদ মডেলের সঙ্গে যুক্ত করুন।