chore: remove outdated README.md file
This commit is contained in:
@@ -1,118 +0,0 @@
|
||||
# Bete — Discord Moderation Dashboard
|
||||
|
||||
Bot monitoring Discord yang merekam voice channel, menangkap pesan teks, menyimpan attachment, menjalankan analisis AI opsional, dan menyediakan dashboard web real-time.
|
||||
|
||||
**Stack utama:** Node.js (Express 5), pnpm, TypeScript, React 19 (Next.js 16), Tailwind v4, shadcn/ui, Drizzle ORM, PostgreSQL, WebSocket, Redis pub/sub.
|
||||
|
||||
## Prasyarat
|
||||
|
||||
- Node.js 22+
|
||||
- pnpm 11.x
|
||||
- FFmpeg di `PATH` (untuk audio muxing dan playback media)
|
||||
- `yt-dlp` di `PATH` (untuk resolve audio YouTube/Spotify)
|
||||
- Bun (untuk frontend dev — opsional, bisa pake pnpm)
|
||||
- PostgreSQL 15+
|
||||
|
||||
## Setup
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
cp .env.example .env
|
||||
# Edit .env sesuai konfigurasi server
|
||||
```
|
||||
|
||||
## Menjalankan
|
||||
|
||||
```bash
|
||||
# Backend (port 3001)
|
||||
pnpm run dev:backend
|
||||
|
||||
# Discord Gateway (capture messages, voice, dll)
|
||||
pnpm run dev:discord-gateway
|
||||
|
||||
# Frontend (port 3000)
|
||||
pnpm run dev:web
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
pnpm run build:backend
|
||||
pnpm run build:discord-gateway
|
||||
pnpm run build:web # next build — static export ke out/
|
||||
pnpm run build # build semua service
|
||||
```
|
||||
|
||||
## Deploy
|
||||
|
||||
```bash
|
||||
./deploy.sh # Build + deploy semua service ke VPS
|
||||
./deploy.sh --frontend # Frontend only
|
||||
./deploy.sh --backend # Backend only
|
||||
./deploy.sh --no-build # Skip build, copy files aja
|
||||
```
|
||||
|
||||
## Service Architecture
|
||||
|
||||
```
|
||||
Discord
|
||||
|
|
||||
v
|
||||
discord-gateway ←→ Redis ←→ backend (Express 5) ←→ frontend (Next.js)
|
||||
| pub/sub | |
|
||||
| +— REST API (/api/*) |
|
||||
| +— WebSocket (/ws) |
|
||||
+— message capture +— AI moderation |
|
||||
+— voice recording +— dashboard data +— dashboard UI
|
||||
+— attachment upload +— real-time updates
|
||||
```
|
||||
|
||||
## Fitur
|
||||
|
||||
- **Message capture**: Capture pesan baru, edit, dan delete dari Discord
|
||||
- **Voice recording**: Rekam voice channel ke segmen OGG per user, streaming PCM real-time ke WebSocket
|
||||
- **Attachment upload**: Download + upload attachment ke external storage
|
||||
- **AI moderation**: Analisis pesan opsional via LLM, auto-delete, queue management
|
||||
- **Dashboard**: Messages feed, AI analysis review, voice connection, music player, recordings, user/channel stats
|
||||
- **Media playback**: Playback dari URL, file lokal, YouTube, Spotify
|
||||
- **WebSocket**: Real-time event streaming untuk semua aktivitas
|
||||
- **Public API**: Semua endpoint REST dan WebSocket dapat diakses tanpa autentikasi
|
||||
|
||||
## Struktur Proyek
|
||||
|
||||
```
|
||||
services/
|
||||
├── backend/ # Express 5 REST API + WebSocket server
|
||||
│ ├── src/modules/ # Feature modules (messages, voice, media, dll)
|
||||
│ └── src/http/ # Express app setup, middleware
|
||||
├── discord-gateway/ # Discord client, voice recording, AI analysis
|
||||
│ ├── src/modules/ # message-capture, voice-recording, ai-moderation
|
||||
│ └── src/shared/ # Config, database, Discord client
|
||||
└── frontend/ # Next.js 16 dashboard (static export)
|
||||
├── src/app/ # Pages (login, dashboard tabs)
|
||||
├── src/features/ # Feature components (dashboard, live, messages)
|
||||
└── src/lib/ # API client, WebSocket, types
|
||||
packages/
|
||||
└── shared/ # Shared types, errors, logger, utilities
|
||||
```
|
||||
|
||||
## Database
|
||||
|
||||
PostgreSQL via Drizzle ORM. Migrasi:
|
||||
|
||||
```bash
|
||||
pnpm run db:generate # Generate migration
|
||||
pnpm run db:migrate # Apply migration
|
||||
pnpm run db:studio # Drizzle Studio
|
||||
```
|
||||
|
||||
## WebSocket Events
|
||||
|
||||
Backend broadcast event berikut ke frontend via WebSocket:
|
||||
|
||||
- `message_created`, `message_updated`, `message_deleted`, `message_analyzed`
|
||||
- `attachment_created`, `attachment_uploaded`
|
||||
- `voice_recording_started`, `voice_recording_stopped`, `voice_recording_uploaded`
|
||||
- `voice_active_user`, `voice_pcm_data`
|
||||
- `media_state`
|
||||
- `reaction_*`, `thread_*`, `presence_updated`, `guild_member_*`
|
||||
Reference in New Issue
Block a user