ノートPC上のDiscordボットは、蓋を閉じた瞬間に死にます。テストには問題ない — でもサーバーが実際に頼るボットには無用です。VPSに移せばオンラインのまま:wifiが落ちても生き延び、あなたが眠っても止まらず、自分でDiscordに再接続します。
ここに全部あります — 最小限のボット、それを生かし続けるサービス、そしてIDを渡さずに支払う方法。
なぜノートPCではなくVPSか
Discordボットには、Discordのゲートウェイへの安定した常時接続が要ります。ノートPCはスリープし、更新のため再起動し、ネットワークを変えます — そのたびにボットはオフラインに落ち、メンバーが気づきます。VPSは四六時中、安定した一つの接続を保ちます。それが、人々がボットを個人マシンから移す理由のすべてです。
どのサイズか — そしてどう払うか
Discordボットは軽い。websocketを保ちイベントに反応するので、箱は大半待っています:
- 1 GB RAM、1〜2コアでほとんどのボットをカバー — かなり忙しいものでも。
- 上げるのはボット自身が重労働をするときだけ:画像生成、ローカルモデル、多数のサーバー向け音声、大きなデータベース。
実際的な判断が二つ:
- NATで十分。 ボットはDiscordへのアウトバウンド接続だけをするので、ポート転送されたSSHを持つNATプランで動きます — 専用IPも、開いたインバウンドポートも不要。パブリックIPを足すのは、Webダッシュボードも動かすかwebhookを受け取る場合だけ。
- KYC不要、暗号通貨で支払い。 メールでサインアップし、BaseまたはEthereum上のUSDCやUSDTで支払います — カードも書類もなし。カードも使えますが、オンランプに〜$27の最低額があるので、小さな残高を一度チャージするほうが安いプランには滑らかです。
CPUのみで、ドイツの単一のデータセンターから動きます — ボットにはまったく問題なし、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から取得し(あなたのapplication → Bot → Reset Token)、ボットがメッセージを読むならそこで Message Content インテントを有効にします。
systemdで生かし続ける
SSHセッションで python bot.py を動かすと、切断時にボットが死にます。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 # ログを見る
それが「私が動かすスクリプト」と「自分で動くボット」の違いです。
正直な注意点
- トークンを守る。 サービスファイル(root専用)かenv varに保管し、非rootの
botuserで動かし、決してコミットしない。漏れたら、Developer Portalで即座にリセットを。 - 音声は重い。 多数のサーバーへストリーミングする音楽/音声ボットは、テキストボットより多くのCPUと帯域が要ります — スケールする前にサイズを上げてテストを。
- ホストだけでなく、ボットが何をするか見る。 ホスティングは安い;ボットが有料APIをループで呼ぶなら、そこにコストが現れます。
その範囲で、自分のサーバー上のDiscordボットはただ動き続けます — それが全体の要点です。プランを選び、暗号通貨で支払い、数分でオンラインに。ほかのボットも動かすなら、同じ systemdパターンがどのプロセスも生かし続けます。
既製の構成: Discordボット向けVPS を参照 — 推奨プランと1分の暗号デプロイ。
コメント
まだコメントはありません。最初になりましょう。