अपने सोशल अकाउंट का मालिक होना अच्छा विचार लगता है, जब तक आपको यह एहसास न हो कि वह अकाउंट किसी और के सर्वर पर, उसके नियमों और अपटाइम के तहत रहता है। अपना Mastodon सर्वर यह समस्या हल करता है: आपका हैंडल @you@your-domain है और आपके सिवा कोई उसे बंद नहीं कर सकता। पेच यह है कि Mastodon छोटा ऐप नहीं है। बेहतर है पता हो कि आप किस चीज़ में हाथ डाल रहे हैं।
यह किसके लिए है
- एक यूज़र वाला सर्वर, आपके लिए या आपकी कंपनी के आधिकारिक अकाउंट के लिए।
- दोस्तों या प्रोजेक्ट टीम का छोटा समुदाय — दर्जनों लोग, हज़ारों नहीं।
इससे बड़ी किसी चीज़ के लिए आप ऐसी सर्विस चला रहे हैं जिसमें मॉडरेशन की ज़िम्मेदारियाँ, दुरुपयोग की रिपोर्ट और असली इंफ़्रास्ट्रक्चर शामिल है। वह अलग बात है।
इसे सच में क्या चाहिए
Mastodon एक साथ कई प्रोसेस चलाता है: Rails वेब ऐप, बैकग्राउंड में Sidekiq वर्कर, एक स्ट्रीमिंग सर्वर, PostgreSQL और Redis। फ़ेडरेशन की वजह से आपका सर्वर आपके सोते समय भी दूसरे सर्वरों से पोस्ट और मीडिया लाता रहता है।
| सर्वर | प्लान |
|---|---|
| एक यूज़र, कम फ़ॉलो | Small-IP — 2 vCPU, 4 GB, $16 प्रति माह |
| छोटा समुदाय, सक्रिय फ़ेडरेशन | Medium-IP — 4 vCPU, 6 GB, $20 प्रति माह |
4 GB चलता है पर तंग है; जब आपकी फ़ॉलो की हुई कोई लोकप्रिय पोस्ट हज़ारों जवाब पाती है तो Sidekiq की कतारें भर जाती हैं। 6 GB साँस लेने की जगह देता है। दूसरी सीमा डिस्क है — नीचे मीडिया वाला हिस्सा देखें।
आपको एक डोमेन और डेडिकेटेड IP भी चाहिए: दूसरे सर्वर पोर्ट 443 पर आपके सर्वर को डिलीवर करते हैं।
Docker से इंस्टॉल
आधिकारिक रिपॉज़िटरी में docker-compose.yml है। Docker इंस्टॉल किए नए Ubuntu 24.04 सर्वर पर:
git clone https://github.com/mastodon/mastodon.git
cd mastodon
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
touch .env.production
docker compose run --rm -v $(pwd)/.env.production:/opt/mastodon/.env.production \
web bundle exec rake mastodon:setup
docker compose up -d
सेटअप टास्क आपका डोमेन, डेटाबेस और Redis की सेटिंग्स (डिफ़ॉल्ट compose फ़ाइल से मेल खाते हैं), ईमेल सेटिंग्स और पहला एडमिन अकाउंट पूछता है। यह सब कुछ .env.production में लिख देता है। जो टैग आपने लिया है उसके रिलीज़ नोट्स पढ़ें — बड़े वर्शन के बीच चरण कभी-कभी बदल जाते हैं।
Mastodon में dist/nginx.conf पर nginx टेम्पलेट शामिल है। इसे /etc/nginx/sites-available/ में कॉपी करें, डोमेन बदलें और certbot से सर्टिफ़िकेट लें। हमारी reverse proxy और डोमेन गाइड दोनों बताती हैं।
ईमेल: रिले इस्तेमाल करें
Mastodon पुष्टि और पासवर्ड रीसेट ईमेल भेजता है। हमारे सर्वर पर पोर्ट 25 और 465 बंद हैं, इसलिए Mastodon को पोर्ट 587 के ज़रिए किसी बाहरी ट्रांज़ैक्शनल ईमेल प्रदाता की ओर मोड़ें:
SMTP_SERVER=smtp.your-provider.example
SMTP_PORT=587
SMTP_LOGIN=apikey
SMTP_PASSWORD=your-smtp-password
SMTP_FROM_ADDRESS=notifications@your-domain.example
सच कहें तो आपको रिले वैसे भी चाहिए होता। बिल्कुल नए सर्वर IP से भेजी ईमेल अक्सर स्पैम में जाती है; रिले के पास वह साख है जो अभी आपके पास नहीं है।
मीडिया: डिस्क खाने वाला
आपके सर्वर को दिखने वाले अकाउंट की हर तस्वीर और वीडियो लोकल रूप से कैश होता है। व्यस्त सर्वर पर यह हर हफ़्ते गीगाबाइट होता है। पुराना रिमोट मीडिया नियमित रूप से साफ़ करें:
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
इन्हें रोज़ाना के cron जॉब में डालें। अगर आपका सर्वर बढ़े, तो .env.production की S3_* सेटिंग्स से मीडिया को S3-संगत ऑब्जेक्ट स्टोरेज में ले जाएँ — फिर VPS डिस्क पर सिर्फ़ डेटाबेस रहता है।
रखरखाव
- अपडेट: नया टैग लाएँ,
docker compose pull, रिलीज़ नोट्स के मुताबिक़ माइग्रेशन चलाएँ, रीस्टार्ट करें। बड़े वर्शन न छोड़ें। - बैकअप: PostgreSQL का डंप लें और
.env.productionको सुरक्षित रखें — उसके सीक्रेट के बिना रिस्टोर काम नहीं करेगा। हमारी restic गाइड सर्वर से बाहर कॉपी बताती है, और Managed Backups पूरे सर्वर के रोज़ाना रिस्टोर पॉइंट जोड़ते हैं। - डोमेन स्थायी है। यह पूरे फ़ेडिवर्स में हर अकाउंट के पते में दर्ज है। पहला अकाउंट बनाने से पहले इसे चुनें।
टीम चैट के लिए कुछ हल्का चाहिए? शायद Matrix सर्वर बेहतर बैठे।
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। पहले बनें।