py-cordを使用したDiscordBot開発用テンプレート。
- 🔧 モジュラーアーキテクチャ: 自動Cogローディングシステムによる整理されたコマンド構造
- 🗄️ データベース統合: SQLAlchemy、PostgreSQL、Redis対応、マイグレーション管理
- 🐳 Docker対応: Docker Composeによる完全なコンテナ化
- ⚡ 高速開発: ホットリロード、自動フォーマット、包括的なツール群
- 🔒 セキュリティ重視: BanditとSemgrepによる組み込みセキュリティスキャン
- 📊 監視機能: Sentry統合によるエラートラッキングとシステム監視
- 🧪 コード品質: Ruffによる自動リント、フォーマット、型チェック
- このテンプレートを使用して新しいリポジトリを作成
- リポジトリをクローン:
git clone https://github.com/yourusername/your-bot-name.git cd your-bot-name
# 環境ファイルをセットアップ
make envs:setup
# 依存関係をインストール
make dev:setup
# discord.envでボットトークンを設定
# 必要に応じて他の環境ファイルも編集
ローカル開発:
cd app && python main.py
Docker使用(推奨):
# データベースとRedisと一緒にボットを起動(不要ならfalseにする)
make up INCLUDE_DB=true INCLUDE_REDIS=true
ボットが起動しました! 🎉
- 開発ガイド - 機能構築、コマンド追加、データベース操作の完全ガイド
- クイックリファレンス - 開発に必要なコマンド一覧
app/
├── main.py # エントリーポイント
├── cogs/ # cog(モジュール)群
├── core/config.py # configの管理
├── db/ # データベース層(モデル、スキーマ、CRUD)
└── utils/ # ユーティリティ関数とヘルパー
主要機能:
- 自動Cogローディング:
cogs/
にPythonファイルを配置するだけで自動ロード - データベース層: モデル、スキーマ、CRUD操作のクリーンな分離
- 設定システム: Pydanticバリデーション付き環境ベース設定
- エラーハンドリング: 包括的なエラートラッキングとユーザーフレンドリーな応答
- py-cord - モダンなDiscord APIラッパー
- SQLAlchemy - マイグレーション対応データベースORM
- Pydantic - データバリデーションと設定管理
- uv - Pythonパッケージ管理
- Ruff - 超高速リントとフォーマット
# 開発
make dev:setup # 全依存関係をインストール
make envs:setup # テンプレートから環境ファイルを作成
# コード品質
make format # Ruffでコードをフォーマット
make lint # コード品質をチェック
make security:scan # セキュリティ分析を実行
# Docker操作
make up # ボットコンテナを起動
make up INCLUDE_DB=true # データベース付きで起動
make logs # コンテナログを表示
make down # 全コンテナを停止
# データベース
make db:migrate # データベースマイグレーションを適用
make db:revision:create NAME="説明" # 新しいマイグレーションを作成
- Cogを作成:
app/cogs/template.py
をapp/cogs/your_feature.py
にコピー - コマンド追加: Discordスラッシュコマンドには
@slash_command
デコレータを使用 - データベースモデル:
app/db/models/
で自動リレーションハンドリング付きで定義 - テスト: 開発中は
/reload your_feature
でホットリロード
各側面の詳細なチュートリアルは開発ガイドを参照してください。
- リポジトリをフォーク
- 機能ブランチを作成
- 変更を加える
- テストとリントを実行:
make lint && make security:scan
- プルリクエストを送信
このテンプレートはオープンソースで、MITライセンスの下で利用可能です。