65 lines
2.3 KiB
Markdown
65 lines
2.3 KiB
Markdown
# Joel Discord Bot
|
|
|
|
A Discord bot with AI-powered responses and message tracking.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Install dependencies
|
|
bun install
|
|
|
|
# Set environment variables
|
|
cp .env.example .env
|
|
# Edit .env with your tokens
|
|
|
|
# Run in development mode
|
|
bun run dev
|
|
|
|
# Run in production
|
|
bun run start
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
See [src/README.md](src/README.md) for detailed architecture documentation.
|
|
|
|
```
|
|
src/
|
|
├── core/ # Bot client, config, logging
|
|
├── commands/ # Slash commands
|
|
├── events/ # Discord event handlers
|
|
├── features/ # Feature modules (Joel AI, message logging)
|
|
├── services/ # External services (AI providers)
|
|
├── database/ # Database schema and repositories
|
|
└── utils/ # Shared utilities
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Description |
|
|
| ----------------------- | --------------------------------------- |
|
|
| `DISCORD_TOKEN` | Discord bot token |
|
|
| `DISCORD_CLIENT_ID` | Discord application client ID |
|
|
| `DISCORD_CLIENT_SECRET` | Discord application client secret |
|
|
| `OPENROUTER_API_KEY` | OpenRouter API key for AI |
|
|
| `AI_CLASSIFICATION_FALLBACK_MODELS` | Comma-separated fallback model IDs for classification requests |
|
|
| `KLIPY_API_KEY` | Klipy API key for GIF search (optional) |
|
|
| `ELEVENLABS_API_KEY` | ElevenLabs API key for voiceover |
|
|
| `ELEVENLABS_VOICE_ID` | Default ElevenLabs voice ID (optional) |
|
|
| `ELEVENLABS_MODEL` | ElevenLabs model ID (default: `eleven_multilingual_v2`) |
|
|
| `WEB_PORT` | Port for web dashboard (default: 3000) |
|
|
| `WEB_BASE_URL` | Base URL for web dashboard |
|
|
| `SESSION_SECRET` | Secret for session encryption |
|
|
|
|
## Scripts
|
|
|
|
| Script | Description |
|
|
| --------------------- | --------------------------- |
|
|
| `bun run dev` | Development with hot reload |
|
|
| `bun run start` | Production start |
|
|
| `bun run build` | Build for production |
|
|
| `bun run db:generate` | Generate DB migrations |
|
|
| `bun run db:migrate` | Run DB migrations |
|
|
| `bun run db:studio` | Open Drizzle Studio |
|
|
| `bun run typecheck` | Type check without emit |
|