یک میزبان باتِ رایگان کار میکند تا وقتی کانتینر بخوابد یا سرویس وسط یک رویداد خاموش شود. یک 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
نکات
- چند بات؟ یونیت را برای هر بات کپی کن (
discordbot-a.service، …)، یا هرکدام را در یک کانتینر با--restart unless-stoppedدر Docker اجرا کن. - بات موسیقی؟
ffmpegرا اضافه کن و به Micro/Small ارتقا بده — کدگذاری صدا تنها چیزی اینجاست که CPU میخواهد. ترافیک در هر طرح بیشمارش است، پس استریم صورتحساب را بالا نمیبرد.
Nano با ۳ دلار در ماه، root در حدود یک دقیقه، بدون KYC، پرداخت با ارز دیجیتال — آنقدر ارزان که وقتی یک پروژهٔ بات تمام شد دورانداختنی باشد. همان الگو برای باتهای تلگرام.
نظرات
هنوز نظری نیست. اولین نفر باشید.