免費的機器人託管在容器休眠或服務在事件中途關閉之前都能用。一個帶 systemd 的 3 美元 VPS 才是真正讓機器人保持線上。這是操作指南;關於更完整的走查和音樂機器人說明,請看 在 VPS 上託管 Discord 機器人 和 面向 Discord 機器人的 VPS 用例。不需要專用 IP——Discord 機器人只發出對外連線,所以 NAT 方案(每月 3 美元起) 是理想選擇。
1. 安裝執行時和您的機器人(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
2. 把權杖放進 env 檔案
cat >/opt/bot/.env <<'EOF'
DISCORD_TOKEN=your_token_here
EOF
chmod 600 /opt/bot/.env
3. 帶 Restart=always 的 systemd 服務
# /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 正是讓它 24/7 的關鍵——凌晨三點一個未處理的 reject 會重新啟動,而不是讓機器人死著。(更多見 建立 systemd 服務。)
改用 Python?
同樣的模式——一個 venv 和 discord.py,讓 unit 指向 venv 的 Python:
ExecStart=/opt/bot/.venv/bin/python bot.py
備註
- 多個機器人? 為每個機器人複製一份 unit(
discordbot-a.service……),或用 Docker 的--restart unless-stopped把每個跑在容器裡。 - 音樂機器人? 加上
ffmpeg並升級到 Micro/Small——音訊編碼是這裡唯一想要 CPU 的東西。所有方案流量不計量,所以流媒體不會推高帳單。
Nano 每月 $3,大約一分鐘拿到 root,無 KYC,用加密貨幣付款——便宜到一個機器人專案結束時可以隨手丟棄。Telegram 機器人 也是同樣的模式。
評論
目前還沒有評論。歡迎成為第一位。