diff --git a/README.md b/README.md deleted file mode 100644 index 7c466ad..0000000 --- a/README.md +++ /dev/null @@ -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_*`