Discord.js ボットをデプロイ
Daki Hosting で Discord.js (Node.js) ボットをデプロイするためのステップバイステップガイド。
このガイドでは、Daki Hosting で Discord.js ボットをデプロイする手順を説明します — サーバーの作成から、ボットのオンライン化、トークンを安全に読み込むまで。
このページで学べること
- ボット用の Node.js サーバーを作成する方法
- コードをアップロードする方法
- インストールコマンド、起動コマンド、Docker イメージ を設定する方法
.envファイルでボットトークンを安全に設定する方法- ボットを起動して、動作を確認する方法
前提条件
- Daki アカウント(Free Tier または有料)— アカウントの作成 を参照
- ボットトークン を持つ Discord ボット。Discord Developer Portal で作成します
discord.jsとdotenvを依存関係に含むpackage.jsonを含む、ボットのソースコード
Discord ボットは Discord のサーバーへ外向きに接続し、受信ポートを必要としません。そのため Discord ボットは Free Tier と有料プランの両方で動作します。ボットが HTTP リクエストも処理する場合(スラッシュコマンドのインタラクションや Webhook など)は、公開ポートは有料プランでのみ利用できるため、有料プランが必要です。ネットワークと割り当て を参照してください。
デプロイ手順
Node.js サーバーを作成
- free.daki.cc の Free Tier Dashboard、または billing.daki.cc の Billing Panel にログインします。
- 新しいサーバーを作成し、Node.js の egg を選択します。
- サーバーに名前を付けます(例:
MyDiscordBot)。
全手順は 最初のサーバーを作成 を参照してください。
Portal にアクセス
Portal に SSO でログインします(ダッシュボードの Account ページの Open Portal、または Billing Panel のサービスページから)。または portal.daki.cc に直接アクセスします。Portal の概要 を参照。
ボットのコードをアップロード
方法 A — ZIP でアップロード(最も簡単):
- プロジェクトフォルダーをローカルで
.zipファイルに圧縮します。 - Portal で Files タブを開き、Upload をクリックします。
.zipを右クリックし、Extract をクリックします。
方法 B — SFTP を使う(サイズ制限なし): Settings タブに表示される SFTP の認証情報で接続し、フォルダーを直接アップロードします。ファイルマネージャー を参照。
node_modulesフォルダーは、アップロードに含めないでください — インストールコマンドによって自動的にインストールされます。package.jsonとpackage-lock.jsonは必ず含めてください。- プロジェクトフォルダーをローカルで
Startup タブを設定
Startup タブを開き、3 つの項目すべてを設定します:
1. Docker Image — ボットに必要な Node.js のバージョンを選びます(例: Node.js 22 または Node.js 24)。迷ったら Node.js 24 LTS が安全なデフォルトです。EOL と表示されたバージョンは避けてください。セキュリティアップデートが提供されなくなっています。
2. Install Command — 依存関係を自動でインストールするために、次のように設定します:
Shellnpm install3. Startup Command — ボットを起動するコマンドに設定します:
node index.js— エントリーファイルがindex.jsの場合node bot.js— エントリーファイルがbot.jsの場合npm start—package.jsonにstartスクリプトがある場合
これらのコマンドは、プロジェクトの構成に合わせて自由に変更してください。
詳細は 起動設定 を参照してください。
.env ファイルでボットトークンを追加
ボットが接続するには Discord トークンが必要です。ソースコードに残らないよう、トークンはサーバー上の
.envファイルに保存してください。- Files タブで New File をクリックし、
.envと名前を付けます。 - トークンを追加します:
.env
BOT_TOKEN=your_discord_bot_token_here - Save をクリックします。
ボットのコードでは、
dotenvで読み込みます:JavaScriptrequire('dotenv').config(); const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [GatewayIntentBits.Guilds] }); client.once('ready', () => { console.log(`Logged in as ${client.user.tag}`); }); client.login(process.env.BOT_TOKEN);dotenvがpackage.jsonの依存関係に記載されていることを確認してください。そうすればインストールコマンドでインストールされます。.envファイルの使い方の詳細は 環境変数 を参照してください。- Files タブで New File をクリックし、
ボットを起動
Console タブで Start をクリックします。正常に起動すると、ボットのログイン確認が表示されます:
TextLogged in as MyBot#1234!エラーが表示された場合は、トラブルシューティング ガイドを確認してください。
よくある問題
Error: Cannot find module 'discord.js'
依存関係がインストールされていません。package.json に discord.js が依存関係として記載されているか、Startup タブのインストールコマンドが npm install に設定されているかを確認してください。サーバーを再起動するとインストールが実行されます。
Error: Cannot find module 'dotenv'
package.json の依存関係に dotenv を追加し、サーバーを再起動して再インストールしてください。
Error: An invalid token was provided
.env ファイルのボットトークンが間違っているか、存在しません。Files タブで .env を開き、値を確認してください。余分なスペース、引用符、改行がないことを確かめてください。
ボットは起動するが、すぐに切断される
通常は Gateway Intents が不足していることが原因です。Discord Developer Portal で、ボットアプリケーションに必要な特権インテント(例: Message Content Intent)を有効にし、コードでそれらをリクエストしていることを確認してください。
起動直後にサーバーがクラッシュする
Console タブを開き、エラーを読んでください。よくある原因: 起動コマンドの誤り(ファイル名のタイプミス)、Node.js のバージョンの誤り、または node_modules がないこと。トラブルシューティング を参照してください。
次のステップ
- 環境変数 —
.envファイルとコード内での変数の読み込みについての完全ガイド。 - 無料サーバーを有効に保つ — 広告を見て Free Tier サーバーを稼働させ続けます。
- ファイルマネージャー — 変更後にコードファイルを更新します。