本文へスキップ

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 ダッシュボードなど)は、公開ポートは有料プランでのみ利用できるため、有料プランが必要です。ネットワークと割り当て を参照してください。


デプロイ手順

  1. Python サーバーを作成

    1. free.daki.cc の Free Tier Dashboard、または billing.daki.cc の Billing Panel にログインします。
    2. 新しいサーバーを作成し、Python の egg を選択します。
    3. サーバーに名前を付けます(例: MyPythonBot)。

    全手順は 最初のサーバーを作成 を参照してください。

  2. Portal にアクセス

    SSO で Portal にログインするか、portal.daki.cc に直接アクセスします。Portal の概要 を参照。

  3. ボットのコードをアップロード

    方法 A — ZIP でアップロード(最も簡単):

    1. プロジェクトフォルダーを .zip ファイルに圧縮します。
    2. Portal で Files タブを開き、Upload をクリックします。
    3. .zip を右クリックし、Extract をクリックします。

    方法 B — SFTP を使う(サイズ制限なし): Settings タブの SFTP 認証情報を使って、フォルダーを直接アップロードします。ファイルマネージャー を参照。

    プロジェクトのルートに requirements.txt を含めてください。インストールコマンドがこれを使って依存関係をインストールします。

  4. Startup タブを設定

    Startup タブを開き、3 つの項目すべてを設定します:

    1. Docker Image — ボットに必要な Python のバージョンを選びます(例: Python 3.13)。迷ったら Python 3.13 が安全なデフォルトです。すべてのライブラリが対応していれば、新しいバージョンも動作します。EOL と表示されたバージョンは避けてください。セキュリティアップデートが提供されなくなっています。

    2. Install Command — 依存関係を自動でインストールするために、次のように設定します:

    Shell
    pip install -r requirements.txt

    3. Startup Command — ボットを実行するコマンドに設定します:

    • python main.py — エントリーファイルが main.py の場合
    • python bot.py — エントリーファイルが bot.py の場合
    • python -m mypackage — プロジェクトがパッケージとして構成されている場合

    これらのコマンドは、プロジェクトの構成や要件に合わせて自由に変更してください。

    詳細は 起動設定 を参照してください。

  5. .env ファイルでボットトークンを追加

    Discord ボットのトークンは、ソースコードに一切残らないよう、サーバー上の .env ファイルに保存してください。

    1. Files タブで New File をクリックし、.env と名前を付けます。
    2. トークンを追加します:
      .env
      BOT_TOKEN=your_discord_bot_token_here
    3. Save をクリックします。

    python-dotenv が requirements.txt に含まれていることを確認してから、コードでファイルを読み込みます:

    Python
    from 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 ファイルの使い方の詳細は 環境変数 を参照してください。

  6. ボットを起動

    Console タブで Start をクリックします。正常に起動すると、次のように表示されます:

    Text
    Logged 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 がないこと、またはパッケージが不足していること。トラブルシューティング を参照してください。


次のステップ