免费的机器人托管在容器休眠或服务在事件中途关闭之前都能用。一个带 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 机器人 也是同样的模式。
评论
暂无评论。来做第一个吧。