บอท Discord บนแล็ปท็อปของคุณตายทันทีที่คุณปิดฝา โอเคสำหรับการทดสอบ — ไร้ประโยชน์สำหรับบอทที่เซิร์ฟเวอร์ของคุณพึ่งจริง ย้ายมันไป VPS แล้วมันอยู่ออนไลน์: มันรอด wifi ของคุณหลุด ไม่หยุดเมื่อคุณหลับ และเชื่อมต่อ Discord ใหม่เอง
นี่คือทั้งหมด — บอทขั้นต่ำ บริการที่เก็บมันให้มีชีวิต และวิธีจ่ายโดยไม่มอบ ID
ทำไม VPS ไม่ใช่แล็ปท็อป
บอท Discord ต้องการการเชื่อมต่อที่เสถียร ออนไลน์เสมอไปยัง gateway ของ Discord แล็ปท็อปหลับ รีบูตเพื่ออัปเดต และเปลี่ยนเครือข่าย — ทุกครั้ง บอทหลุดออฟไลน์และสมาชิกสังเกต VPS ถือการเชื่อมต่อที่เสถียรหนึ่งตลอดเวลา นั่นคือเหตุผลทั้งหมดที่คนย้ายบอทจากเครื่องส่วนตัว
ขนาดใด — และคุณจ่ายอย่างไร
บอท Discord เบา มันถือ websocket และตอบสนองเหตุการณ์ ดังนั้นเครื่องส่วนใหญ่รอ:
- 1 GB RAM, 1–2 คอร์ ครอบคลุมบอทส่วนใหญ่ — แม้ที่ค่อนข้างยุ่ง
- ขยายขึ้นเฉพาะหากบอททำงานหนักเอง: สร้างภาพ โมเดลในเครื่อง เสียงสำหรับหลายเซิร์ฟเวอร์ ฐานข้อมูลใหญ่
สองการตัดสินเชิงปฏิบัติ:
- NAT เพียงพอ บอททำเฉพาะการเชื่อมต่อขาออกไปยัง Discord ดังนั้นแพ็กเกจ NAT ที่ forward พอร์ต SSH ทำงาน — ไม่มี dedicated IP ไม่มีพอร์ตขาเข้าเปิด เพิ่ม IP สาธารณะเฉพาะหากคุณรันแดชบอร์ดเว็บหรือรับ webhook ด้วย
- ไม่ KYC จ่ายด้วยคริปโต สมัครด้วยอีเมลและจ่ายด้วย USDC หรือ USDT บน Base หรือ Ethereum — ไม่มีบัตร ไม่มีเอกสาร บัตรทำงานด้วย แต่ on-ramp มีขั้นต่ำ ~$27 ดังนั้นการเติมยอดคงเหลือเล็กครั้งเดียวราบรื่นกว่าสำหรับแพ็กเกจถูก
มันเป็น CPU-only และรันจากดาต้าเซ็นเตอร์เดียวในเยอรมนี — โอเคสมบูรณ์สำหรับบอท ควรรู้หากคุณต้องการ 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 (แอปพลิเคชันของคุณ → Bot → Reset Token) และเปิด intent Message Content ที่นั่นหากบอทของคุณอ่านข้อความ
เก็บมันให้มีชีวิตด้วย systemd
การรัน python bot.py ในเซสชัน SSH ของคุณหมายถึงบอทตายเมื่อคุณตัดการเชื่อมต่อ บริการ 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 # ดู log
นั่นคือความต่างระหว่าง "สคริปต์ที่ฉันรัน" และ "บอทที่รันตัวเอง"
ข้อควรระวังที่ตรงไปตรงมา
- ป้องกันโทเคน เก็บมันในไฟล์บริการ (root-only) หรือ env var รันในฐานะ
botuserที่ไม่ใช่ root ไม่เคย commit มัน หากมันรั่ว รีเซ็ตใน Developer Portal ทันที - เสียงหนักกว่า บอทเพลง/เสียงที่สตรีมไปหลายเซิร์ฟเวอร์ต้องการ CPU และแบนด์วิดท์มากกว่าบอทข้อความ — ขยายขึ้นและทดสอบก่อนขยาย
- เฝ้าดูสิ่งที่บอททำ ไม่ใช่แค่โฮสต์ โฮสติงถูก หากบอทของคุณเรียก API แบบเสียเงินในลูป นั่นคือที่ที่ต้นทุนปรากฏ
ภายในนั้น บอท Discord บนเซิร์ฟเวอร์ของตัวเองแค่อยู่ — ซึ่งเป็นจุดประสงค์ทั้งหมด เลือกแพ็กเกจ จ่ายด้วยคริปโต และมีมันออนไลน์ในไม่กี่นาที หากคุณรันบอทอื่นด้วย รูปแบบ systemd เดียวกันเก็บโปรเซสใดให้มีชีวิต
การตั้งค่าสำเร็จรูป: ดู VPS สำหรับบอท Discord — แพ็กเกจที่แนะนำและการติดตั้งคริปโตหนึ่งนาที
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ