Python ボットをデプロイ
Daki Hosting で Python 版 Discord ボット(discord.py または py-cord)をデプロイするためのステップバイステップガイド。
このガイドでは、Daki Hosting で Python 版の Discord ボットをデプロイする手順を説明します — サーバーの作成から、ボットトークンを安全に読み込み、オンラインにするまで。
このページで学べること
- ボット用の Python サーバーを作成する方法
- コードをアップロードする方法
- インストールコマンド、起動コマンド、Python のバージョンを設定する方法
.envファイルでボットトークンを安全に設定する方法- ボットを起動して、動作を確認する方法
前提条件
- Daki アカウント(Free Tier または有料)— アカウントの作成 を参照
- ボットトークン を持つ Discord ボット。Discord Developer Portal で作成します
- すべての依存関係を一覧にした
requirements.txtを含む、ボットのソースコード(例:discord.pyまたはpy-cord、およびpython-dotenv)
Discord ボットは Discord のサーバーへ外向きに接続し、受信ポートを必要としません。そのため Discord ボットは Free Tier と有料プランの両方で動作します。ボットが HTTP サーバーも動かす場合(Webhook や Web ダッシュボードなど)は、公開ポートは有料プランでのみ利用できるため、有料プランが必要です。ネットワークと割り当て を参照してください。
デプロイ手順
Python サーバーを作成
- free.daki.cc の Free Tier Dashboard、または billing.daki.cc の Billing Panel にログインします。
- 新しいサーバーを作成し、Python の egg を選択します。
- サーバーに名前を付けます(例:
MyPythonBot)。
全手順は 最初のサーバーを作成 を参照してください。
Portal にアクセス
SSO で Portal にログインするか、portal.daki.cc に直接アクセスします。Portal の概要 を参照。
ボットのコードをアップロード
方法 A — ZIP でアップロード(最も簡単):
- プロジェクトフォルダーを
.zipファイルに圧縮します。 - Portal で Files タブを開き、Upload をクリックします。
.zipを右クリックし、Extract をクリックします。
方法 B — SFTP を使う(サイズ制限なし): Settings タブの SFTP 認証情報を使って、フォルダーを直接アップロードします。ファイルマネージャー を参照。
プロジェクトのルートに
requirements.txtを含めてください。インストールコマンドがこれを使って依存関係をインストールします。- プロジェクトフォルダーを
Startup タブを設定
Startup タブを開き、3 つの項目すべてを設定します:
1. Docker Image — ボットに必要な Python のバージョンを選びます(例: Python 3.13)。迷ったら Python 3.13 が安全なデフォルトです。すべてのライブラリが対応していれば、新しいバージョンも動作します。EOL と表示されたバージョンは避けてください。セキュリティアップデートが提供されなくなっています。
2. Install Command — 依存関係を自動でインストールするために、次のように設定します:
Shellpip install -r requirements.txt3. Startup Command — ボットを実行するコマンドに設定します:
python main.py— エントリーファイルがmain.pyの場合python bot.py— エントリーファイルがbot.pyの場合python -m mypackage— プロジェクトがパッケージとして構成されている場合
これらのコマンドは、プロジェクトの構成や要件に合わせて自由に変更してください。
詳細は 起動設定 を参照してください。
.env ファイルでボットトークンを追加
Discord ボットのトークンは、ソースコードに一切残らないよう、サーバー上の
.envファイルに保存してください。- Files タブで New File をクリックし、
.envと名前を付けます。 - トークンを追加します:
.env
BOT_TOKEN=your_discord_bot_token_here - Save をクリックします。
python-dotenvがrequirements.txtに含まれていることを確認してから、コードでファイルを読み込みます:Pythonfrom dotenv import load_dotenv import os import discord load_dotenv() TOKEN = os.environ.get("BOT_TOKEN") intents = discord.Intents.default() client = discord.Client(intents=intents) @client.event async def on_ready(): print(f"Logged in as {client.user}") client.run(TOKEN).envファイルの使い方の詳細は 環境変数 を参照してください。- Files タブで New File をクリックし、
ボットを起動
Console タブで Start をクリックします。正常に起動すると、次のように表示されます:
TextLogged in as MyBot#1234エラーが表示された場合は、トラブルシューティング ガイドを確認してください。
よくある問題
ModuleNotFoundError: No module named 'discord'
依存関係がインストールされていません。discord.py または py-cord が requirements.txt に記載されているか、Startup タブのインストールコマンドが pip install -r requirements.txt に設定されているかを確認してください。サーバーを再起動するとインストールが実行されます。
ModuleNotFoundError: No module named 'dotenv'
requirements.txt に python-dotenv を追加し、サーバーを再起動してください。
discord.errors.LoginFailure: Improper token has been passed
.env ファイルのトークンが間違っているか、存在しません。Files タブで .env ファイルを開き、値を注意深く確認してください。余分なスペースや引用符は削除してください。
PrivilegedIntentsRequired error
ボットが、Discord Developer Portal で有効になっていないインテントを要求しています。ボットアプリケーションの設定で、必要な特権インテント(例: Message Content Intent)を有効にし、コードも同じインテントを要求していることを確認してください。
起動直後にサーバーがクラッシュする
Console の出力でエラーを確認してください。よくある原因: 起動コマンドの誤り(ファイル名のタイプミスやパスの誤り)、requirements.txt がないこと、またはパッケージが不足していること。トラブルシューティング を参照してください。
次のステップ
- 環境変数 —
.envファイルとコード内での変数の読み込みについての完全ガイド。 - 無料サーバーを有効に保つ — 定期的に広告を見て、Free Tier サーバーを稼働させ続けます。
- ファイルマネージャー — 変更後にコードを更新します。