EQVPS

چطور یک بات دیسکورد را ۲۴/۷ روی VPS میزبانی کنیم (systemd)

یک بات دیسکورد را ۲۴/۷ روی VPS آنلاین نگه دار: رانتایم را نصب کن، توکن بات را در یک فایل env بگذار، و آن را در یک سرویس systemd با Restart=always بپیچ تا از کرش‌ها و ری‌استارت‌ها جان سالم به‌در ببرد. کپی-پیست برای Node و Python.

یک میزبان باتِ رایگان کار می‌کند تا وقتی کانتینر بخوابد یا سرویس وسط یک رویداد خاموش شود. یک VPS ۳ دلاری با systemd بات را واقعاً آنلاین نگه می‌دارد. این راهنماست؛ برای توضیح کامل‌تر و نکات بات موسیقی میزبانی یک بات دیسکورد روی VPS و کاربردِ VPS برای بات‌های دیسکورد را ببین. نیازی به IP اختصاصی نیست — یک بات دیسکورد فقط اتصال خروجی برقرار می‌کند، پس یک طرح NAT (از ۳ دلار در ماه) ایده‌آل است.

۱. رانتایم و باتت را نصب کن (مثال Node)

apt update && apt install -y curl git
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs
git clone https://github.com/you/your-bot.git /opt/bot
cd /opt/bot && npm ci --omit=dev

۲. توکن را در یک فایل env نگه دار

cat >/opt/bot/.env <<'EOF'
DISCORD_TOKEN=your_token_here
EOF
chmod 600 /opt/bot/.env

۳. سرویس systemd با Restart=always

# /etc/systemd/system/discordbot.service
[Unit]
Description=Discord Bot
After=network.target

[Service]
WorkingDirectory=/opt/bot
ExecStart=/usr/bin/node index.js
EnvironmentFile=/opt/bot/.env
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
journalctl -u discordbot -f

Restart=always همان چیزی است که آن را ۲۴/۷ می‌کند — یک reject مدیریت‌نشده در ساعت ۳ بامداد به‌جای رهاکردن بات مرده، دوباره اجرا می‌کند. (بیشتر در ساخت یک سرویس systemd.)

به‌جایش Python؟

همان الگو — یک venv و discord.py، با یونیتی که به Python venv اشاره می‌کند:

ExecStart=/opt/bot/.venv/bin/python bot.py

نکات

Nano با ۳ دلار در ماه، root در حدود یک دقیقه، بدون KYC، پرداخت با ارز دیجیتال — آن‌قدر ارزان که وقتی یک پروژهٔ بات تمام شد دورانداختنی باشد. همان الگو برای بات‌های تلگرام.

پرسش‌های متداول

چطور یک بات دیسکورد را ۲۴/۷ آنلاین نگه دارم؟

آن را روی یک VPS بگذار و در یک سرویس systemd با Restart=always بپیچ، تا هنگام کرش دوباره اجرا شود و هنگام بوت شروع شود. اجرا در ترمینال یا با nohup هنگام قطع اتصال یا ری‌استارت می‌میرد؛ systemd آن را زنده نگه می‌دارد و در journalctl لاگ می‌کند. یونیت‌های کپی-پیست برای Node و Python در پایین است.

آیا برای یک بات دیسکورد به IP اختصاصی نیاز دارم؟

نه. یک بات دیسکورد از طریق websocket به‌بیرون به گیت‌وی دیسکورد وصل می‌شود — هیچ چیزی ورودی به سرورت وصل نمی‌شود. یک طرح NAT (از ۳ دلار در ماه) کاملاً مناسب و ارزان است. IP اختصاصی را فقط برای باتی می‌خواهی که درخواست‌های وب ورودی هم سرو کند.

ارزان‌ترین طرحی که کار می‌کند کدام است؟

Nano (۳ دلار در ماه — ۲ vCPU، ۱ گیگابایت) یک بات معمولی discord.js یا discord.py را اجرا می‌کند، و چندتا را هم‌زمان. بات‌ها در ده‌ها مگابایت RAM می‌نشینند. استثنا یک بات موسیقی است — استریم صدا کمی CPU و پهنای‌باند بیشتر می‌خواهد، پس به Micro/Small ارتقا بده.

چطور توکن بات را ایمن ذخیره کنم؟

در یک فایل محیطی که فقط root بتواند بخواند (chmod 600)، بارگذاری‌شده از طریق Environment یا EnvironmentFile یونیتِ systemd. هرگز توکن را در سورس سفت نکن یا در git کامیت نکن — یک توکن لو رفته به هر کسی اجازه می‌دهد باتت را کنترل کند.

آیا مدرک شناسایی یا کارت می‌خواهید؟

نه. یک ایمیل برای ثبت‌نام، پرداخت با USDC یا USDT — بدون مدرک، بدون کارت. root در حدود یک دقیقه.

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.