BotOS/
├── core/botos_core/ Discord 本体・プラグイン実行(discord.py)
├── api/botos_api/ Web 向け API(FastAPI)
├── web/ 管理 UI(Next.js・骨組みのみ)
├── plugins/standard/ 同梱プラグイン例
├── docs/ 仕様
└── scripts/ 起動用ショートカット
.env.example を .env にコピーして編集する。
| 変数 | 用途 |
|---|---|
DISCORD_BOT_TOKEN |
Core 起動に必須 |
DATABASE_URL |
API の DB(デフォルト SQLite) |
JWT_SECRET |
API セッション(本番は必ず差し替え) |
NEXT_PUBLIC_API_URL |
Web から API への URL |
source .venv/bin/activate
make apiBot を Discord に接続する。トークン未設定の場合は即終了し、メッセージを表示する。
make core軽量ダッシュボード(web/dashboard/)は API と同じポートで配信される。
make api
# http://localhost:8000/ — Discord OAuth → ギルド一覧 → Ping 導入Next.js コンソール(本格的な管理 UI):
make api # 別ターミナル
cd web && npm run dev
# http://localhost:3000/ — NEXT_PUBLIC_API_URL で API に接続(next.config rewrites)
# .env の BOTOS_FRONTEND_URL=http://localhost:3000 で OAuth コールバックapi/botos_api/routes/guilds.py— ギルド・プラグイン CRUDcore/botos_core/guild_sync.py—bot.tree.sync(guild=...)core/botos_core/sandbox/runner.py— ユーザーコード実行core/botos_core/plugin_manager.py—.botos.jsonの読み込み
仕様の正本は docs/architecture.md と docs/plugin-draft.md(統合作業中の項目は Issue 参照)。