आपके लैपटॉप पर एक Discord बॉट उस पल मर जाता है जब आप ढक्कन बंद करते हैं। परीक्षण के लिए ठीक — एक ऐसे बॉट के लिए बेकार जिस पर आपका सर्वर सच में निर्भर करता है। इसे एक VPS पर ले जाएँ और यह ऑनलाइन रहता है: यह आपका wifi गिरने को झेलता है, जब आप सोते हैं तब नहीं रुकता, और अपने दम पर Discord से फिर जुड़ता है।
यहाँ पूरी चीज़ है — एक न्यूनतम बॉट, एक सेवा जो इसे ज़िंदा रखती है, और बिना ID सौंपे भुगतान कैसे करें।
एक VPS क्यों, आपका लैपटॉप नहीं
एक Discord बॉट को Discord के गेटवे से एक स्थिर, हरदम-चालू कनेक्शन चाहिए। एक लैपटॉप सोता है, अपडेट के लिए रीबूट होता है, और नेटवर्क बदलता है — हर बार बॉट ऑफ़लाइन गिरता है और सदस्य नोटिस करते हैं। एक VPS चौबीसों घंटे एक स्थिर कनेक्शन थामता है। यही पूरी वजह है कि लोग बॉट को निजी मशीनों से हटाते हैं।
कौन सा आकार — और आप कैसे भुगतान करते हैं
एक Discord बॉट हल्का है। यह एक websocket थामता और घटनाओं पर प्रतिक्रिया करता है, तो बॉक्स ज़्यादातर इंतज़ार करता है:
- 1 GB RAM, 1–2 कोर ज़्यादातर बॉट को कवर करते हैं — काफ़ी व्यस्त वाले भी।
- ऊपर सिर्फ़ तब बढ़ाएँ जब बॉट ख़ुद भारी काम करे: इमेज जनरेशन, एक स्थानीय मॉडल, कई सर्वरों के लिए ऑडियो, एक बड़ा डेटाबेस।
दो व्यावहारिक फ़ैसले:
- NAT काफ़ी है। बॉट सिर्फ़ Discord से आउटबाउंड कनेक्शन बनाता है, तो पोर्ट-फ़ॉरवर्ड किए SSH वाला एक NAT प्लान काम करता है — कोई डेडिकेटेड IP नहीं, कोई खुले इनबाउंड पोर्ट नहीं। एक सार्वजनिक IP सिर्फ़ तब जोड़ें जब आप एक वेब डैशबोर्ड भी चलाएँ या webhooks पाएँ।
- बिना-KYC, क्रिप्टो में भुगतान। एक ईमेल से साइन अप करें और Base या Ethereum पर USDC या USDT में भुगतान करें — कोई कार्ड नहीं, कोई दस्तावेज़ नहीं। कार्ड भी काम करता है, पर ऑन-रैंप की ~$27 न्यूनतम है, तो एक छोटा बैलेंस एक बार भरना एक सस्ते प्लान के लिए आसान है।
यह सिर्फ़-CPU है और जर्मनी के एक अकेले डेटासेंटर से चलता है — एक बॉट के लिए बिलकुल ठीक, जानने लायक अगर आपको एक GPU या एक ख़ास क्षेत्र चाहिए।
एक न्यूनतम बॉट
SSH करें, Python इंस्टॉल करें, और एक छोटा discord.py बॉट डालें:
sudo apt update && sudo apt install -y python3-venv
mkdir ~/bot && cd ~/bot
python3 -m venv venv && source venv/bin/activate
pip install -U discord.py
# bot.py
import os, discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"online as {client.user}")
@client.event
async def on_message(m):
if m.author == client.user:
return
if m.content == "!ping":
await m.channel.send("pong")
client.run(os.environ["DISCORD_TOKEN"])
टोकन Discord Developer Portal से लें (आपका application → Bot → Reset Token), और अगर आपका बॉट संदेश पढ़ता है तो वहाँ Message Content intent सक्षम करें।
systemd से इसे ज़िंदा रखें
अपने SSH सत्र में python bot.py चलाना मतलब बॉट तब मर जाता है जब आप डिस्कनेक्ट होते हैं। एक systemd सेवा इसे ठीक करती है — यह क्रैश पर पुनः शुरू होती है और रीबूट झेलती है:
# /etc/systemd/system/discordbot.service
[Unit]
Description=Discord bot
After=network-online.target
[Service]
User=botuser
WorkingDirectory=/home/botuser/bot
Environment=DISCORD_TOKEN=your-token-here
ExecStart=/home/botuser/bot/venv/bin/python bot.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
sudo journalctl -u discordbot -f # लॉग देखें
यही फ़र्क़ है "एक स्क्रिप्ट जो मैं चलाता हूँ" और "एक बॉट जो ख़ुद को चलाता है" के बीच।
ईमानदार चेतावनियाँ
- टोकन की रक्षा करें। इसे सेवा फ़ाइल (root-only) या एक env var में रखें, एक ग़ैर-root
botuserके रूप में चलाएँ, इसे कभी कमिट न करें। अगर यह लीक हो, इसे Developer Portal में तुरंत रीसेट करें। - वॉइस भारी है। कई सर्वरों को स्ट्रीम करता एक संगीत/वॉइस बॉट एक टेक्स्ट बॉट से ज़्यादा CPU और बैंडविड्थ चाहता है — स्केल करने से पहले आकार बढ़ाएँ और परखें।
- देखें कि बॉट क्या करता है, सिर्फ़ होस्ट नहीं। होस्टिंग सस्ती है; अगर आपका बॉट लूप में पेड API कॉल करता है, वहीं लागत दिखती है।
उसके भीतर, अपने ख़ुद के सर्वर पर एक Discord बॉट बस चालू रहता है — जो पूरा मक़सद है। एक प्लान चुनें, क्रिप्टो में भुगतान करें, और इसे मिनटों में ऑनलाइन करें। अगर आप दूसरे बॉट भी चलाते हैं, वही systemd पैटर्न किसी भी प्रोसेस को ज़िंदा रखता है।
तैयार सेटअप: Discord बॉट के लिए VPS देखें — अनुशंसित प्लान और एक-मिनट क्रिप्टो डिप्लॉय।
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। पहले बनें।