EQVPS

VPS で Discord ボットを24時間365日ホストする方法(systemd)

VPS で Discord ボットを24時間365日オンラインに保つ:ランタイムをインストールし、ボットトークンを env ファイルに入れ、Restart=always の systemd サービスで包んでクラッシュや再起動を生き延びさせる。Node と Python のコピペ。

無料のボットホストは、コンテナが眠るかイベント途中でサービスが落ちるまでは使えます。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 にする鍵です——午前3時の未処理の reject は、ボットを死んだままにするのではなく再起動します。(詳しくは systemd サービスを作る。)

代わりに Python?

同じパターン——venv と discord.py、ユニットは venv の Python を指します:

ExecStart=/opt/bot/.venv/bin/python bot.py

メモ

Nano は月 $3、約1分で root、KYC なし、暗号資産で支払い——ボットのプロジェクトが終わったら使い捨てにできるほど安価です。Telegram ボット も同じパターン。

よくある質問

Discord ボットを24時間365日オンラインに保つには?

VPS に置き、Restart=always の systemd サービスで包みます。そうすればクラッシュ時に再起動し、起動時に立ち上がります。ターミナルや nohup で走らせると切断や再起動で死にます。systemd はそれを生かし続け、journalctl にログします。Node と Python 用のコピペ用ユニットは下にあります。

Discord ボットに専用 IP は必要ですか?

いいえ。Discord ボットは websocket で Discord のゲートウェイへ外向きに接続します——サーバーに受信で何も接続しません。NAT プラン(月 $3〜)が完璧で安上がりです。専用 IP が欲しいのは、受信 Web リクエストも捌くボットの場合だけです。

動く最安のプランは?

Nano(月 $3——2 vCPU、1 GB)は典型的な discord.js や discord.py のボットを、しかも同時に複数動かします。ボットは数十メガバイトの RAM に収まります。例外は音楽ボット——オーディオのストリーミングは少し多めの CPU と帯域を欲しがるので Micro/Small へ上げてください。

ボットトークンを安全に保管するには?

root だけが読める環境ファイルに(chmod 600)、systemd ユニットの Environment か EnvironmentFile で読み込みます。トークンをソースに直書きしたり git にコミットしたりしないこと——漏れたトークンは誰にでもあなたのボットを操らせます。

身分証やカードは要りますか?

いいえ。登録にメール、支払いは USDC または USDT——書類なし、カードなし。約1分で root。

コメント

まだコメントはありません。最初になりましょう。

コメントを残す

コメントは表示される前にモデレートされます。