Bu servis, Kick yayıncılarının kanallarındaki bot saldırılarını ve spamleri takip eden, Supabase Auth tabanlı çalışan NestJS backend uygulamasıdır.
- Node.js v18 veya üzeri
- NestJS — Modüler backend framework
- PostgreSQL / Supabase — Veritabanı ve kimlik do��rulama
- Prisma — ORM
Aşağıdaki adımları sırayla takip ederek projeyi kendi bilgisayarınızda çalıştırabilirsiniz.
git clone https://github.com/Impevos/KickAntiBot.git
cd KickAntiBotnpm install.env.example dosyasını .env olarak kopyalayın ve Supabase bilgilerinizle doldurun:
cp .env.example .envGerekli değişkenler:
| Değişken | Nereden Alınır |
|---|---|
DATABASE_URL |
Supabase → Project Settings → Database → Connection string → Transaction pooler (port 6543) |
DIRECT_URL |
Supabase → Project Settings → Database → Connection string → Session pooler (port 5432) |
SUPABASE_URL |
Supabase → Project Settings → API → Project URL |
SUPABASE_ANON_KEY |
Supabase → Project Settings → API → anon public key |
JWT_SECRET |
Rastgele güvenli bir string (örn. openssl rand -hex 32) |
PORT |
Sunucu portu (varsayılan: 3000) |
Önemli: Prisma şema işlemleri (
db push,migrate) için hemDATABASE_URLhemDIRECT_URLgereklidir.
# Prisma istemcisini oluşturur
npx prisma generate
# Tabloları veritabanına yansıtır
npx prisma db pushÖnce uygulamayı çalıştırıp /api/auth/register ile kayıt olun, ardından:
# Windows PowerShell
$env:SEED_OWNER_EMAIL="kayit-olunan-email@adres.com"; npx prisma db seed
# macOS / Linux
SEED_OWNER_EMAIL=kayit-olunan-email@adres.com npx prisma db seed# Geliştirme modu (hot reload)
npm run start:dev
# Üretim build
npm run build
npm run start:prodUygulama http://localhost:3000 adresinde çalışır.
Frontend entegrasyonu için detaylı endpoint dokümantasyonu:
src/
├── auth/ # Giriş, kayıt, profil
├── channels/ # Kick kanal yönetimi
├── suspicious-users/ # Şüpheli kullanıcı listesi (bot aktivite)
├── risk-scores/ # Risk skoru geçmişi
├── alerts/ # Güvenlik bildirimleri
├── reports/ # Periyodik raporlar + dashboard özeti
├── protection-settings/ # Kanal bazlı koruma ayarları
├── activity-logs/ # Birleşik geçmiş kayıtları
└── common/ # Prisma, filtreler, decorator'lar
# E2E API testleri (24 test, Supabase bağlantısı gerektirir)
npm run test:e2e
# Build kontrolü
npm run build# Veritabanı şemasını görsel olarak incele
npx prisma studio
# Lint kontrolü
npm run lint| Sorun | Çözüm |
|---|---|
PrismaClientInitializationError |
.env dosyasındaki DATABASE_URL ve DIRECT_URL değerlerini kontrol edin |
Supabase URL or Anon Key is missing |
SUPABASE_URL ve SUPABASE_ANON_KEY değerlerini kontrol edin |
Authorization başlığı eksik (401) |
İstek header'ına Authorization: Bearer <token> ekleyin |
email rate limit exceeded |
Supabase ücretsiz planda kayıt limiti vardır; birkaç dakika bekleyin |
| Port 3000 kullanımda | .env dosyasında PORT=3001 gibi farklı bir port deneyin |
Bu proje özel kullanım içindir.