- [Open OSCAR Server] का उपयोग करके Debian सर्वर पर AIM/ICQ सर्वर बनाया जा सकता है, जिससे Windows 98 सहित पुराने environments के कई clients को फिर से कनेक्ट किया जा सकता है
- छोटे पैमाने पर चलाने के लिए कम-स्पेक VPS भी पर्याप्त है, लेकिन बाहरी दोस्तों के साथ उपयोग करने के लिए डिफ़ॉल्ट पोर्ट 5190, static IP या dynamic DNS, और इंटरनेट पर सार्वजनिक access के अनुरूप firewall settings की आवश्यकता होती है
settings.env में OSCAR_LISTENERS और OSCAR_ADVERTISED_LISTENERS_PLAIN को LAN या WAN मोड के अनुसार सेट करना होता है, और AIM client को बंद हो चुके AOL सर्वर की जगह अपने सर्वर से कनेक्ट होने के लिए बदलना होता है
- डिफ़ॉल्ट स्थिति में किसी भी मनमाने screen name और password से login किया जा सकता है, इसलिए
DISABLE_AUTH=false करके password authentication सक्रिय करनी होती है और API से accounts मैनेज करने होते हैं
- सर्वर की स्थिति SQLite database और configuration files में सेव होती है, इसलिए nightly full backup या सर्वर बंद करके
rsync कॉपी के जरिए restore किया जा सकने वाला AIM environment बनाए रखा जा सकता है
Discord की जगह फिर से AIM चलाने की वजह
- मोबाइल फ़ोन और text messaging के आम होने से पहले, school projects से लेकर रिश्तों तक बहुत-सी गतिविधियाँ AIM window में होती थीं, और यही अनुभव AIM के लिए nostalgia की वजह बना
- हाल में Discord का अनुभव अच्छा नहीं रहा, इसलिए Open OSCAR Server को आज़माया गया, और अपने AIM/ICQ सर्वर से कई पुराने clients को कनेक्ट किया जा सका
- setup process को YouTube वीडियो और PeerTube वीडियो में भी कवर किया गया है, जबकि Macintosh Librarian का अलग वीडियो AIM को और विस्तार से परिचित कराता है
Debian Trixie सर्वर की तैयारी
- इंस्टॉलेशन का लक्ष्य Debian Trixie है, और ऑपरेटिंग सिस्टम की अपनी इंस्टॉलेशन प्रक्रिया यहाँ शामिल नहीं है
- अगर सैकड़ों लोगों से चैट करने की योजना नहीं है, तो कम-स्पेक VPS पर भी इसे चलाया जा सकता है
- शुरुआत में इसे घर से होस्ट किया गया था, लेकिन दोस्तों के साथ साझा करना शुरू करने के बाद सबसे सस्ते VPS प्लान पर शिफ्ट किया गया
- Raspberry Pi पर भी यह चल सकता है, लेकिन इसे सीधे टेस्ट नहीं किया गया
- अगर आप घर पर या firewall के पीछे चला रहे हैं, तो AIM clients के कनेक्ट होने के लिए डिफ़ॉल्ट पोर्ट 5190 खोलना होगा
- कुछ clients में पोर्ट बदलना आसान नहीं होता, इसलिए डिफ़ॉल्ट पोर्ट बनाए रखना बेहतर है
- static IP के बिना घरेलू environment में dynamic DNS की ज़रूरत होगी
- व्यक्तिगत रूप से इस्तेमाल की गई सेवा No-IP है, और उसका परिणाम संतोषजनक रहा
- अगर dynamic DNS परिचित नहीं है, तो 5~10 डॉलर प्रति माह के cloud server पर static IP और आसान configuration का विकल्प लिया जा सकता है
- चाहे जो तरीका चुनें, सर्वर तक static IP या domain के जरिए पहुँचना संभव होना चाहिए और पोर्ट 5190 खुला होना चाहिए
- Open OSCAR Server के डिफ़ॉल्ट settings घर के नेटवर्क में testing के लिए सुविधाजनक हैं, लेकिन इंटरनेट पर सार्वजनिक उपयोग के लिए उपयुक्त नहीं हैं
- settings को सुरक्षित करने तक सिर्फ अपने ट्रैफ़िक को allow करना और firewall में अन्य sources के connections को deny करना बेहतर है
Open OSCAR Server इंस्टॉल करना
wget [RELEASE URL]
[RELEASE URL] को वास्तविक release file address से बदलना होगा
- डाउनलोड की गई archive file को
tar से extract करें
tar -zxvf open_oscar_server.X.XX.X.linux.x86_64.tar.gz
X.XX.X को डाउनलोड किए गए वास्तविक version number से बदलें
listener mode और सर्वर address सेट करना
- अगर केवल local machine पर चलाना है, तो extract की गई subdirectory में जाकर सीधे इसे चलाया जा सकता है
- दूसरी machine के clients को कनेक्ट करना है, तो
settings.env को edit करना होगा
- Open OSCAR Server तीन तरह के client listener modes सपोर्ट करता है
LOCAL: डिफ़ॉल्ट मोड, जब AIM client और सर्वर एक ही machine पर हों
LAN: जब सर्वर और AIM client एक ही internal network में हों और इंटरनेट से न गुजरते हों
WAN: जब इंटरनेट के जरिए बाहरी दोस्तों के AIM clients को कनेक्ट करना हो
settings.env में दो variables को साथ में सेट किया जाता है
OSCAR_LISTENERS: Open OSCAR Server किस तरह connections सुनेगा, यह तय करता है
OSCAR_ADVERTISED_LISTENERS_PLAIN: AIM जैसे clients को बताया जाने वाला सर्वर address तय करता है
- अगर public VPS का domain
example.domain है, तो इसे इस तरह configure किया जा सकता है
OSCAR_LISTENERS=WAN://0.0.0.0:5190
OSCAR_ADVERTISED_LISTENERS_PLAIN=WAN://example.domain:5190
- internal network में
WAN को LAN से बदलें, और domain की जगह सर्वर को दिया गया IP address इस्तेमाल करें
- दोनों variables का mode
LAN और LAN, या WAN और WAN की तरह एक जैसा होना चाहिए
- दोनों variables में दोनों modes साथ देने वाली configuration भी संभव है
- settings पूरी होने के बाद सर्वर को इस कमांड से test run करें
./open_oscar_server
AIM client कनेक्ट करना
- AIM के कई versions में अब बंद हो चुके डिफ़ॉल्ट login server
login.oscar.aol.com को किसी दूसरे address से बदला जा सकता है
- AIM 5.1 में
Setup के बड़े Configuration button के जरिए सर्वर address बदला जाता है
- डिफ़ॉल्ट login server address को
OSCAR_ADVERTISED_LISTENERS_PLAIN में दिए गए address से बदल दें
- authentication मज़बूत करने से पहले किसी भी मनमाने screen name और password से login किया जा सकता है
- दूसरे users की access conditions सर्वर mode पर निर्भर करती हैं
LAN mode में उन्हें सर्वर वाले ही network में होना होगा
WAN mode में बाहरी users को firewall पार करने लायक access देना होगा
systemd के साथ सर्वर हमेशा चालू रखना
- Open OSCAR Server एक systemd service भी देता है, जिससे SSH connection टूटने के बाद भी सर्वर चलता रह सकता है
- service install और configuration के लिए प्रोजेक्ट के SYSTEMD document का पालन करें
password authentication सक्रिय करना
- डिफ़ॉल्ट स्थिति में वास्तविक password verify नहीं किया जाता, इसलिए systemd service file में
DISABLE_AUTH बदलना होगा
- पूरी service file को डिफ़ॉल्ट editor में संपादित करने के लिए यह कमांड चलाएँ
sudo systemctl edit --full ras.service
[Service] के नीचे environment variable को इस तरह सेट करें
Environment="DISABLE_AUTH=false"
- variable name double negative रूप में है, इसलिए authentication आवश्यक करने के लिए इसकी value
false होनी चाहिए
- service file सेव करने के बाद systemd daemon configuration को फिर से लोड करें
sudo systemctl daemon-reload
- पुराने screen name और password से फिर login करके देखें, और अगर विफल हो तो API से नया user बना सकते हैं
API से users और passwords मैनेज करना
- authentication सक्रिय करने के बाद Open OSCAR Server की API और
curl के जरिए users और passwords मैनेज किए जाते हैं
-
user जोड़ना
curl -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user
curl के -d option से POST data भेजा जाता है
- JSON body में
screen_name और password keys शामिल करें
- request का target local server का
http://localhost:8080/user endpoint है
-
मौजूदा user का password बदलना
curl -X PUT -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user/password
- मौजूदा user को update करने के लिए POST की जगह
-X PUT इस्तेमाल करें
screen_name में पहले से मौजूद screen name देना होगा
- password change endpoint
http://localhost:8080/user/password है
- API user deletion, chat room addition आदि भी सपोर्ट करती है; बाकी features project documentation में देखे जा सकते हैं
backup और restore
- Open OSCAR Server की मुख्य state SQLite database और configuration files से बनी होती है, इसलिए backup करना सरल है
- पूरे VPS सिस्टम का हर रात backup लिया जा रहा है, और restore test में भी यह अपेक्षा के अनुसार काम करता है
- बड़े बदलाव से पहले सर्वर रोककर पूरे working directory को
rsync से backup machine पर कॉपी किया जाता है
- Borgmatic का उपयोग backup process को और आसान बना सकता है, और इसे आगे की पोस्ट में विस्तार से कवर करने की योजना है
1 टिप्पणियां
Lobste.rs की रायें
मज़ेदार पढ़ाई थी, लेकिन यह सोचना ग़लतफ़हमी है कि पहले मैसेंजर के बहुत कम प्रकार थे। बहुत से लोगों ने AIM या MSN पर लंबा समय बिताया, लेकिन मैं और मेरे स्कूल के दोस्त दोनों का इस्तेमाल नहीं करते थे और ICQ से IRC की ओर चले गए थे, और services का fragmentation भी आज से कोई ख़ास बेहतर नहीं था
https://nugget.livejournal.com/97081.html
एक महीने बाद Google का जवाब मिलने पर लिखा गया follow-up पोस्ट भी है
https://nugget.livejournal.com/103322.html
इस विषय पर एक वीडियो भी है। इसे पोस्ट करने की सोचते समय मैं यह तय नहीं कर पा रहा था कि मूल कुछ clickbait-सा शीर्षक रखा जाए या DeArrow द्वारा दिया गया शीर्षक इस्तेमाल किया जाए
दिलचस्प है, लेकिन पढ़ते हुए मुझे जिस जवाब की उम्मीद थी वह था, “तो उसके बाद क्या?” अगर दूसरे servers के साथ federate नहीं करता, तो क्या बात करने वाले सभी लोगों को उसी server पर होना पड़ेगा, या फिर यह सिर्फ़ अपने आप से बात करने जैसा उपयोग है?
लेख की शुरुआत में जो क्लासिक screenshot होना ही चाहिए था, उसे छोड़ा नहीं गया। उस समय के software की practicality और usefulness सचमुच बहुत अच्छी तरह तराशी गई थी
मुझे AIM में ख़ास दिलचस्पी नहीं है, लेकिन लोगों को पुरानी तकनीक फिर से छेड़ते-परखते देखना अच्छा लगता है। लेखक की दूसरी पोस्टें भी देखते-देखते लगता है कि मैं फिर कई और खोजबीन के गड्ढों में उतर जाऊँगा, और यह भी बुरा नहीं लगता
ICQ और AIM का दौर मुझे बिल्कुल याद नहीं आता, लेकिन उसके आख़िरी हिस्से में इंडस्ट्री का एक छोटा golden age ज़रूर था। server-to-server federation वाले XMPP और दूसरे protocols तक ले जाने वाले gateways की वजह से आप अपना server चला सकते थे या किसी और के server पर खाता रखकर किसी से भी बात कर सकते थे
gateway से जुड़े नेटवर्कों के accounts भी बनाए रखने पड़ते थे, लेकिन ज़्यादातर मामलों में उन्हें बहुत कम ही संभालना पड़ता था, और एक ही account से Google Talk, Facebook Messenger, ICQ और MSN users सबसे बात की जा सकती थी। बस Skype ने ही ज़िद से compatibility से इनकार किया
अब संस्कृति हैरान कर देने वाली हद तक बदल चुकी है; यहाँ तक कि open source Signal भी external clients को रोकता है, और इससे उचित नाराज़गी पैदा होने के बजाय इसे कुछ हद तक एक तर्कसंगत मांग मान लिया जाता है। लगता है जैसे हमने वह golden age इसलिए खो दिया क्योंकि अब हम उसके हक़दार नहीं रहे