اوپن سورس مارکیٹنگ آٹومیشن کا مطلب یہ نہیں ہے کہ آپ اپنا ڈیٹا کسی SaaS فراہم کنندہ کے حوالے کر دیں۔ Mautic ای میل مہمات (campaigns)، کانٹیکٹ ٹریکنگ، اور لیڈ نیچرنگ (lead nurturing) کو آپ کے اپنے کنٹرول میں رکھتا ہے۔ اسے Ubuntu 24.04 پر چلانے میں HubSpot میں سائن ان کرنے کے مقابلے میں زیادہ محنت درکار ہوتی ہے، لیکن اس کا صلہ آپ کے اسٹیک، آپ کے اخراجات، اور آپ کے کسٹمر ڈیٹا پر مکمل کنٹرول کی صورت میں ملتا ہے۔ آپ خود فیصلہ کرتے ہیں کہ کب اپ ڈیٹ کرنا ہے، اسے کیسے اسکیل کرنا ہے، اور آپ کی معلومات کہاں محفوظ ہوں گی۔
شروع کرنے سے پہلے، اپنے سرور پر ایک ڈومین پوائنٹ کریں اور اس بات کو یقینی بنائیں کہ آپ کے Ubuntu 24.04 انسٹنس میں کم از کم 2 GB RAM ہو۔ Mautic کوئی ہلکا پھلکا سافٹ ویئر نہیں ہے؛ جب یہ بڑے سیگمنٹس کو دوبارہ بناتا ہے یا مہم کی لاجک (campaign logic) پر کارروائی کرتا ہے تو PHP میموری کا استعمال کرتا ہے۔ اگر آپ ہزاروں کانٹیکٹس کو ای میل بھیجنے کا ارادہ رکھتے ہیں، تو 4 GB میموری تجربے کو کہیں زیادہ ہموار بنا دے گی۔
LEMP بنیاد تیار کریں
Mautic کو ایک LEMP اسٹیک کی ضرورت ہوتی ہے: Nginx، MySQL، اور PHP۔ Ubuntu 24.04 پر، ڈیفالٹ PHP ورژن 8.3 ہے، جو Mautic کے موجودہ ورژن کے ساتھ بہترین کام کرتا ہے۔ سب سے پہلے اپنی پیکیج لسٹ کو اپ ڈیٹ کریں، پھر Nginx اور MySQL Server انسٹال کریں۔ اس کے بعد، PHP-FPM اور وہ مخصوص ایکسٹینشنز انسٹال کریں جن کی Mautic کو ضرورت ہے:
- php-fpm
- php-mysql
- php-imap
- php-curl
- php-gd
- php-xml
- php-mbstring
- php-zip
- php-intl
- php-bcmath
ہر ایکسٹینشن کا ایک حقیقی مقصد ہے۔ IMAP ایکسٹینشن باؤنس پیغامات اور ان سبسکرائب (unsubscribe) کے جوابات پڑھتی ہے۔ GD تھمب نیلز کے لیے امیج پروسیسنگ سنبھالتی ہے۔ Mbstring اور Intl مختلف زبانوں میں کریکٹر سیٹس اور ترجمہ کا انتظام کرتے ہیں۔ BCMath آپ کو لیڈ اسکورنگ اور کرنسی کے حساب کتاب کے لیے درست ریاضیاتی نتائج فراہم کرتا ہے۔ ان میں سے کسی کو بھی چھوڑیں نہیں، ورنہ انسٹالر دوران میں ہی ایرر دے دے گا۔
اگر Apache پہلے سے انسٹال ہے، تو اسے ہٹا دیں۔ دونوں ویب سرور پورٹ 80 اور 443 استعمال کرنا چاہتے ہیں۔ انہیں ایک ساتھ چلانے سے خاموش ناکامیاں (silent failures) پیدا ہوتی ہیں جنہیں ڈیبگ کرنا بہت مشکل ہوتا ہے۔ ایک صاف ستھرا apt remove apache2 اور اس کے بعد apt autoremove اس سردرد سے مکمل بچاؤ فراہم کرتا ہے۔
PHP اور ڈیٹا بیس کو ٹیون کریں
Mautic کا انسٹالر اور بیک گراؤنڈ جابز میموری کا زیادہ استعمال کرتے ہیں۔ اپنی PHP-FPM کنفیگریشن فائل کھولیں، جو /etc/php/8.3/fpm/php.ini پر واقع ہے، اور میموری لیمٹ کو بڑھا کر 512 MB کر دیں۔ اپ لوڈ سائز کو 50 MB پر سیٹ کریں تاکہ آپ کانٹیکٹ لسٹوں اور اثاثوں (asset bundles) کو بغیر کسی رکاوٹ کے امپورٹ کر سکیں۔ سیو کرنے کے بعد، تبدیلیوں کو لاگو کرنے کے لیے PHP-FPM کو ری اسٹارٹ کریں۔ اس کے ساتھ ہی، post_max_size کو اپنے اپ لوڈ لیمٹ کے مطابق بڑھا دیں؛ ورنہ PHP بڑے ملٹی پارٹ فارم سبمیشنز کو مسترد کر دے گا، چاہے upload_max_filesize درست ہی کیوں نہ نظر آ رہا ہو۔
اس کے بعد، ایک مخصوص MySQL ڈیٹا بیس اور صارف (user) بنائیں۔ ڈیٹا بیس کا نام کچھ بھی رکھیں، لیکن صارف کا نام اور پاس ورڈ کسی پاس ورڈ مینیجر میں محفوظ رکھیں۔ Mautic ہر کانٹیکٹ ایکشن، مہم کے فیصلے، اور ای میل اوپن ہونے کے واقعات کو ان ٹیبلز میں محفوظ کرتا ہے، اس لیے ایک مخصوص مقصد کے لیے بنائے گئے اکاؤنٹ کو وسیع اختیارات دینے سے خطرہ کم ہو جاتا ہے اگر سرور پر کوئی اور چیز غیر محفوظ ہو جائے۔
Mautic اور اس کے ٹولز انسٹال کریں
Mautic کا تازہ ترین مستحکم ورژن ڈاؤن لوڈ کریں اور اسے /var/www/html/mautic میں ایکسٹریکٹ کریں۔ ڈائریکٹری کا مالک www-data سیٹ کریں تاکہ ویب سرور کیش فائلز، لاگز، اور مقامی کنفیگریشن اپ ڈیٹس لکھ سکے۔ Ubuntu پر، اس کا مطلب ہے کہ chown -R www-data:www-data /var/www/html/mautic چلانا۔
آپ کو سرور پر Composer اور npm کی بھی ضرورت ہوگی۔ Composer PHP ڈیپینڈنسیز کو حل کرتا ہے، اور اگر آپ پہلے سے بنے ہوئے ریلیز آرکائیو سے بھی تعینات کرتے ہیں، تو مارکیٹ پلیس پلگ انز شامل کرنے یا دستی اپ ڈیٹس چلانے کے لیے آپ کو بعد میں Composer کی ضرورت پڑے گی۔ Npm اس وقت اہم ہو جاتا ہے اگر آپ کبھی تھیمز کو اپنی مرضی کے مطابق بنانا چاہیں یا فرنٹ اینڈ اثاثے (frontend assets) تیار کرنا چاہیں۔ دونوں ٹولز کو ابھی تیار رکھنے سے آپ پروجیکٹ کے ارتقاء کے دوران پریشانی سے بچ جائیں گے۔
Nginx کو کنفیگر کریں اور اسے محفوظ بنائیں
آپ کے Nginx ورچوئل ہوسٹ کی روٹ ڈائریکٹری /var/www/html/mautic کی طرف اشارہ کرنی چاہیے اور index.php کو ڈیفالٹ انڈیکس کے طور پر استعمال کرنا چاہیے۔ PHP درخواستوں کو اس Unix socket کی طرف بھیجیں جو PHP-FPM کھولتا ہے، جو عام طور پر /run/php/php8.3-fpm.sock پر ہوتا ہے۔ ایک مضبوط سرور بلاک میں try_files کی ہدایت شامل ہونی چاہیے جو فرنٹ کنٹرولر پر واپس جائے، نیز ایک لوکیشن بلاک بھی ہونا چاہیے جو ڈاٹ (.) سے شروع ہونے والی چھپی ہوئی فائلوں تک رسائی کو روک دے۔ Mautic کے ساتھ .htaccess فائلیں آتی ہیں جو Apache کے لیے ہوتی ہیں، لیکن Nginx انہیں نظر انداز کر دیتا ہے، اس لیے آپ کے ورچوئل ہوسٹ میں واضح انکار کے اصول (explicit deny rules) آپ کے لاگز اور عارضی ڈائریکٹریوں کو نجی رکھتے ہیں۔
ویب پر مبنی انسٹالر چلانے سے پہلے، ایک TLS سرٹیفکیٹ حاصل کریں۔ مفت Let’s Encrypt سرٹیفکیٹ حاصل کرنے اور اپنے HTTP ٹریفک کو خودکار طور پر HTTPS میں تبدیل کرنے کے لیے Nginx پلگ ان کے ساتھ Certbot کا استعمال کریں۔ Mautic لاگ ان کی معلومات اور کانٹیکٹ ڈیٹا کو سنبھالتا ہے؛ اسے پلین ٹیکسٹ (plain text) پر فراہم کرنے کا کوئی عذر نہیں چل سکتا۔
Cron Jobs انجن ہیں
یہ مرحلہ لازمی ہے۔ شیڈول شدہ ٹاسکس کے بغیر، Mautic محض ایک ایسا ڈیش بورڈ ہے جو کچھ نہیں کرتا۔ ایپلی کیشن مہم (campaign) کے اقدامات، ای میل بھیجنے اور سیگمنٹ (segment) کے دوبارہ حساب کتاب کو ڈیٹا بیس میں قطار (queue) میں رکھتی ہے، اور پھر انہیں پروسیس کرنے کے لیے کمانڈ لائن پر انحصار کرتی ہے۔
Mautic صارف کے لیے ان پس منظر کے کاموں (background duties) کو سنبھالنے کے لیے cron jobs سیٹ اپ کریں:
- سیگمنٹس کو اپ ڈیٹ کرنا
- مہمات (campaigns) چلانا
- ای میلز بھیجنا
- باؤنسز (bounces) حاصل کرنا
عملی طور پر، اس کا مطلب ہے کہ مختلف وقفوں پر Mautic کے کنسول کمانڈز کو چلانا۔ سیگمنٹ ری بلڈز (segment rebuilds) ہر گھنٹے چل سکتے ہیں۔ مہم کے ٹرگرز (campaign triggers) اور ای میل کیو پروسیسنگ (email queue processing) کو عام طور پر زیادہ مختصر وقفے کی ضرورت ہوتی ہے، جو حجم (volume) کے لحاظ سے ہر پانچ سے پندرہ منٹ بعد ہو سکتی ہے۔ IMAP کے ذریعے باؤنسز حاصل کرنے کا عمل اتنا باقاعدہ ہونا چاہیے کہ آپ کی سینڈر ریپوٹیشن (sender reputation) غیر چیک شدہ اسپیم شکایات کی وجہ سے متاثر نہ ہو۔ یہ یقینی بنانے کے لیے کہ وہ میموری کی غلطیوں (memory errors) کے بغیر مکمل ہو جائیں، اپنے syslog یا cron آؤٹ پٹ پر نظر رکھیں۔
پلیٹ فارم کا استعمال
جب انسٹالر مکمل ہو جائے اور cron صحیح طرح کام کرنے لگے، تو ڈیش بورڈ میں لاگ ان کریں۔ اس کا انٹرفیس تین بنیادی اجزاء پر مشتمل ہے: کانٹیکٹس (contacts)، سیگمنٹس (segments)، اور مہمات (campaigns)۔
ای میل ورک فلو (email workflows) ڈیزائن کرنے کے لیے ڈریگ اینڈ ڈراپ کیمپین بلڈر کا استعمال کریں۔ ایک نیا سبسکرائبر فلو میں داخل ہوتا ہے، ایک دن انتظار کرتا ہے، خوش آمدید کا پیغام وصول کرتا ہے، اور اس بنیاد پر تقسیم ہو جاتا ہے کہ آیا انہوں نے کسی لنک پر کلک کیا یا نہیں۔ اس دوران، پوائنٹس سسٹم خاموشی سے لیڈز (leads) کو اسکور کرتا ہے جب وہ پرائسنگ پیجز دیکھتے ہیں یا پروڈکٹ کے اعلانات کھولتے ہیں۔ آپ وہ حد (thresholds) طے کرتے ہیں جو ایک 'ہاٹ لیڈ' (hot lead) کی نشاندہی کرتی ہے جو سیلز کال کے قابل ہو۔
سیگمنٹس آپ کے طے کردہ قواعد کے مطابق خودکار طور پر کانٹیکٹس کو گروپس میں تقسیم کرتے ہیں۔ آپ ان تمام لوگوں کا سیگمنٹ بنا سکتے ہیں جنہوں نے گزشتہ تیس دنوں میں کوئی مہم کھولی ہو، یا کسی مخصوص ملک کے کانٹیکٹس کو الگ کر سکتے ہیں۔ آپ کے لینڈنگ پیجز پر موجود فارمز براہ راست ان سیگمنٹس میں ڈیٹا بھیجتے ہیں۔ ان حصوں کو آپس میں جوڑ دیں اور آپ کے پاس ایک خودکار نیچر سیکوئنس (nurture sequence) تیار ہو جائے گا جو پوری لسٹ کو ایک ہی پیغام بھیجنے کے بجائے صارف کے رویے کے مطابق ردعمل دیتا ہے۔
ڈیپلائمنٹ کے بعد کا اصل کام
Ubuntu 24.04 پر Mautic کو قائم کرنا تو صرف شروعات ہے۔ ہر اپ ڈیٹ سے پہلے اپنے ڈیٹا بیس اور /var/www/html/mautic ڈائریکٹری کا بیک اپ لیں۔ جب آپ نئے پلگ انز (plugins) انسٹال کریں تو PHP ایرر لاگز (error logs) پر نظر رکھیں۔ اپنی کانٹیکٹ لسٹ بڑھانے کے بعد cron آؤٹ پٹ کا ٹیسٹ ضرور کریں، کیونکہ ایک ایسا کام جو ایک ہزار کانٹیکٹس پر سیکنڈوں میں مکمل ہو جاتا ہے، وہ پچاس ہزار پر ٹائم آؤٹ (time out) ہو سکتا ہے۔
سیلف ہوسٹنگ (Self-hosting) میں آپ ایک مینیجڈ SaaS کی سہولت کے بدلے اپنے مارکیٹنگ ڈیٹا پر مکمل اختیار حاصل کرتے ہیں۔ اس میں کوئی وینڈر لاک ان (vendor lock-in) نہیں ہے، فی کانٹیکٹ قیمتوں میں کوئی اچانک اضافہ نہیں ہے، اور کوئی تیسرا فریق آپ کے اینالیٹکس (analytics) کو یرغمال نہیں بنا سکتا۔ سرور، ڈیٹا بیس، اور اپنے سامعین کے ساتھ تعلقات کے مالک آپ خود ہوتے ہیں۔ ان ٹیموں کے لیے جو ایک Linux باکس اور چند cron expressions کو برقرار رکھنے کے لیے تیار ہیں، یہ سودا عام طور پر فائدہ مند ثابت ہوتا ہے۔
