Một Discord bot trên laptop của bạn chết khoảnh khắc bạn đóng nắp. Ổn cho kiểm thử — vô dụng cho một bot mà server của bạn thực sự phụ thuộc. Chuyển nó tới một VPS và nó ở lại online: nó sống sót qua wifi của bạn rớt, không dừng khi bạn ngủ, và tự kết nối lại tới Discord.
Đây là toàn bộ — một bot tối thiểu, một dịch vụ giữ nó sống, và cách thanh toán mà không giao một giấy tờ.
Vì sao một VPS, không phải laptop của bạn
Một Discord bot cần một kết nối ổn định, luôn-bật tới gateway của Discord. Một laptop ngủ, khởi động lại để cập nhật, và đổi mạng — mỗi lần, bot rớt offline và các thành viên để ý. Một VPS giữ một kết nối ổn định suốt ngày đêm. Đó là toàn bộ lý do người ta chuyển các bot khỏi máy cá nhân.
Kích cỡ nào — và bạn thanh toán thế nào
Một Discord bot nhẹ. Nó giữ một websocket và phản ứng với các sự kiện, nên cỗ máy chủ yếu chờ:
- 1 GB RAM, 1–2 lõi bao hầu hết các bot — kể cả những cái khá bận.
- Nâng lên chỉ nếu bot tự làm việc nặng: tạo ảnh, một mô hình cục bộ, âm thanh cho nhiều server, một cơ sở dữ liệu lớn.
Hai lựa chọn thực tế:
- NAT là đủ. Bot chỉ tạo các kết nối đi ra tới Discord, nên một gói NAT với SSH chuyển tiếp cổng hoạt động — không IP riêng, không cổng đến mở. Thêm một IP công khai chỉ nếu bạn cũng chạy một dashboard web hoặc nhận các webhook.
- Không-KYC, thanh toán bằng crypto. Đăng ký với một email và thanh toán bằng USDC hoặc USDT trên Base hoặc Ethereum — không thẻ, không giấy tờ. Một thẻ cũng hoạt động, nhưng on-ramp có mức tối thiểu ~$27, nên nạp một số dư nhỏ một lần mượt hơn cho một gói rẻ.
Nó chỉ-CPU và chạy từ một datacenter duy nhất ở Đức — hoàn toàn ổn cho một bot, đáng biết nếu bạn cần một GPU hoặc một khu vực cụ thể.
Một bot tối thiểu
SSH vào, cài Python, và đặt một bot discord.py nhỏ:
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"])
Lấy token từ Discord Developer Portal (ứng dụng của bạn → Bot → Reset Token), và bật intent Message Content ở đó nếu bot của bạn đọc tin nhắn.
Giữ nó sống với systemd
Chạy python bot.py trong phiên SSH của bạn nghĩa là bot chết khi bạn ngắt kết nối. Một dịch vụ systemd sửa điều đó — nó khởi động lại khi sập và sống sót qua các lần khởi động lại:
# /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 # xem các log
Đó là khác biệt giữa "một script tôi chạy" và "một bot tự chạy."
Các lưu ý trung thực
- Bảo vệ token. Giữ nó trong tập tin dịch vụ (chỉ-root) hoặc một biến env, chạy như một
botuserkhông-root, đừng bao giờ commit nó. Nếu nó rò rỉ, đặt lại nó trong Developer Portal ngay lập tức. - Thoại nặng hơn. Một bot nhạc/thoại phát tới nhiều server cần nhiều CPU và băng thông hơn một bot văn bản — nâng kích cỡ và kiểm thử trước khi bạn mở rộng.
- Canh cái bot làm, không chỉ host. Hosting rẻ; nếu bot của bạn gọi các API trả phí trong một vòng lặp, đó là nơi chi phí hiện ra.
Trong đó, một Discord bot trên máy chủ của riêng nó cứ ở lại lên — vốn là toàn bộ mục đích. Chọn một gói, thanh toán bằng crypto, và có nó online trong vài phút. Nếu bạn cũng chạy các bot khác, cùng mẫu systemd giữ bất kỳ tiến trình nào sống.
Thiết lập sẵn: xem VPS cho Discord bot — gói khuyến nghị và một triển khai crypto một phút.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.