forked from syntaxbullet/AuroraBot-discord
feat: Initialize database and restructure application source code.
This commit is contained in:
65
README.md
Normal file
65
README.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Kyoko - Discord Rpg
|
||||
|
||||
A Discord bot built with [Bun](https://bun.sh), [Discord.js](https://discord.js.org/), and [Drizzle ORM](https://orm.drizzle.team/).
|
||||
|
||||
## 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**:
|
||||
```bash
|
||||
bun install
|
||||
```
|
||||
|
||||
2. **Environment Variables**:
|
||||
Copy `.env.example` to `.env` (create one if it doesn't exist) and fill in the required values:
|
||||
```env
|
||||
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**:
|
||||
```bash
|
||||
bun run dev
|
||||
```
|
||||
|
||||
4. **Database Migrations**:
|
||||
```bash
|
||||
bun run db:push # Apply schema changes
|
||||
bun run generate # Generate migrations
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
### Manual Command Registration
|
||||
Since command registration is decoupled from startup, you must run this manually when you add or change commands.
|
||||
|
||||
**Option 1: Using Docker (Recommended)**
|
||||
Uses the credentials configured in `docker-compose.yml`.
|
||||
```bash
|
||||
docker compose run --rm app bun run deploy
|
||||
```
|
||||
|
||||
**Option 2: Running Locally**
|
||||
Requires valid `.env` file with `DISCORD_CLIENT_ID`.
|
||||
```bash
|
||||
bun run deploy
|
||||
```
|
||||
|
||||
## Development Features
|
||||
|
||||
- **Type Safety**: Full TypeScript support.
|
||||
- **Env Validation**: `zod` ensures all required env vars are present.
|
||||
- **Hot Reloading**: `bun --watch` for fast development.
|
||||
Reference in New Issue
Block a user