Kyoko - Discord Rpg

A Discord bot built with Bun, Discord.js, and Drizzle ORM.

Architecture

This project uses a modular architecture:

  • src/index.ts: Entry point. initializes the client.
  • src/lib/KyokoClient.ts: Custom Discord Client wrapper handling command loading and events.
  • src/lib/env.ts: Centralized Environment Configuration. Validates environment variables using zod at startup.
  • src/lib/DrizzleClient.ts: Database client instance.
  • src/commands/: Command files.
  • src/db/: Database schema and migrations.

Setup

  1. Install Dependencies:

    bun install
    
  2. Environment Variables: Copy .env.example to .env (create one if it doesn't exist) and fill in the required values:

    DISCORD_BOT_TOKEN=your_token_here
    DISCORD_CLIENT_ID=your_client_id
    DISCORD_GUILD_ID=your_guild_id_optional
    DATABASE_URL=postgres://user:pass@localhost:5432/db_name
    

    Note: The app will fail to start if DISCORD_BOT_TOKEN or DATABASE_URL are missing or invalid.

  3. Run Development:

    bun run dev
    
  4. Database Migrations:

    bun run db:push # Apply schema changes
    bun run generate # Generate migrations
    
Description
No description provided
Readme 4.9 MiB
Languages
TypeScript 98.5%
CSS 0.9%
Shell 0.5%