The bug was in field mapping when saving AI-generated templates: - Changed 'type' to 'template_type' (correct column name) - Changed 'body_template' to 'body_html' (correct column name) This fixes the 400 Bad Request validation error: 'notNull Violation: MailTemplate.template_type cannot be null' Now AI template generation works correctly.
Oltalama Test Yönetim Paneli
Güvenlik farkındalık eğitimleri için basit ve etkili phishing test yönetim sistemi.
✨ Özellikler
- 🏢 Şirket Bazlı Yönetim - Her şirket için ayrı tracking
- 📧 Gmail Entegrasyonu - App Password ile kolay mail gönderimi
- 💬 Telegram Bildirimleri - Gerçek zamanlı tıklama bildirimleri
- 🤖 Ollama AI Entegrasyonu - AI ile otomatik mail şablonu oluşturma
- 📊 Detaylı İstatistikler - IP, konum, cihaz bilgileri
- 💾 SQLite - Tek dosya, kolay yedekleme
- 🎨 Modern UI - React ile responsive admin paneli
- ✉️ Mail Şablonları - HTML editör, önizleme ve test gönderimi
🚀 Hızlı Başlangıç
Backend ✅ TAMAMLANDI
cd backend
npm install # ✅ Yapıldı
npm run db:migrate # ✅ Yapıldı
npm run db:seed # ✅ Yapıldı
npm run dev # ✅ Çalışıyor (background)
API: http://localhost:3000
Default Admin: Kurulum sırasında oluşturulur
Frontend ✅ TAMAMLANDI
cd frontend
npm install # ✅ Yapıldı
npm run dev # ✅ Çalışıyor (background)
UI: http://localhost:5173
Default Admin: Kurulum sırasında oluşturulur
📂 Proje Yapısı
oltalama/
├── backend/ ✅ TAMAMLANDI (100%)
│ ├── src/
│ │ ├── controllers/ ✅ 7 dosya (auth, company, token, vb.)
│ │ ├── models/ ✅ 6 model + ilişkiler
│ │ ├── routes/ ✅ 7 route dosyası
│ │ ├── services/ ✅ Mail, Telegram, Token, Ollama AI
│ │ ├── utils/ ✅ GeoIP, User-Agent, Token Generator
│ │ └── app.js ✅
│ └── database/ ✅ oltalama.db (3 şirket, 2 şablon)
├── frontend/ ✅ TAMAMLANDI (100%)
│ ├── src/
│ │ ├── services/ ✅ 5 servis (auth, company, token, stats, template)
│ │ ├── context/ ✅ Auth context
│ │ ├── pages/ ✅ 6 sayfa (Login, Dashboard, Companies, Tokens, Templates, Settings)
│ │ └── components/ ✅ Layout + Navigation
└── devpan.md ✅ Detaylı plan
✅ Backend Tamamlandı (Faz 1-7)
1️⃣ Authentication ✅
- Session-based auth
- Login/Logout endpoints
- bcrypt password hashing
- Auth middleware
2️⃣ Company Management ✅
- CRUD operations
- Company stats (auto-update)
- Company tokens listing
- Validators & routes
3️⃣ Token Management ✅
- Unique token generation (crypto)
- Create with/without mail
- Company stats auto-update
- Click history
4️⃣ Tracking Endpoint ✅
/t/:tokenpublic endpoint- IP address capture
- GeoIP location (geoip-lite)
- User-Agent parsing
- Landing page redirect
5️⃣ Telegram & Mail ✅
- Telegram real-time notifications
- Gmail + Nodemailer integration
- Handlebars template rendering
- Test buttons in settings
6️⃣ Templates & Settings ✅
- Mail templates (2 seeded)
- Template preview
- Settings CRUD
- Gmail/Telegram config
7️⃣ Stats & Analytics ✅
- Dashboard stats
- Recent clicks
- Company-based stats
- Click logs with full details
📡 API Endpoints (35+)
Backend API çalışıyor: http://localhost:3000
✅ /api/auth/* - 4 endpoints
✅ /api/companies/* - 7 endpoints
✅ /api/tokens/* - 8 endpoints
✅ /api/templates/* - 3 endpoints
✅ /api/settings/* - 5 endpoints
✅ /api/stats/* - 3 endpoints
✅ /t/:token - Public tracking
✅ /health - Health check
🗄️ Database (SQLite)
Lokasyon: backend/database/oltalama.db
6 Tablo - Tamamen İlişkili:
- ✅ companies (3 örnek: Türk Telekom, İş Bankası, PTT)
- ✅ tracking_tokens (company_id FK)
- ✅ click_logs (IP, GeoIP, User-Agent)
- ✅ mail_templates (2 şablon: Banka, E-Devlet)
- ✅ settings (Gmail, Telegram)
- ✅ admin_user (admin/admin123)
🧪 Backend Test
# Health check
curl http://localhost:3000/health
# Login
curl -X POST http://localhost:3000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}'
# Get companies
curl http://localhost:3000/api/companies
# Get dashboard stats
curl http://localhost:3000/api/stats/dashboard
📊 Durum
Backend: ✅ 100% Tamamlandı (37 dosya)
Frontend: ✅ 100% Tamamlandı (15 dosya)
Dokümantasyon: ✅ 4 dosya (README.md, devpan.md, KULLANIM.md, QUICKSTART.md)
Toplam Kaynak Kod: 58 dosya
Toplam Satır: 6677+ satır
Toplam İlerleme: ✅ 100% Production Ready
✅ Tamamlanan Frontend Sayfaları
Core Pages:
- ✅ Login (Session-based auth)
- ✅ Dashboard (Stats, recent clicks)
- ✅ Companies (CRUD, grid view + detail)
- ✅ Tokens (Create & send, detail & history)
- ✅ Mail Şablonları (HTML editör + önizleme)
- ✅ Settings (Gmail, Telegram config)
Components:
- ✅ Layout (Sidebar, header, mobile responsive)
- ✅ Auth Context (Global auth state)
- ✅ API Services (5 services)
🚀 Proje Hazır!
Sistem kullanıma hazır. Gmail ve Telegram ayarlarını yaparak phishing testlerinizi başlatabilirsiniz.
🚀 Sunucu Kurulumu (Production)
Otomatik Kurulum
cd /opt/oltalama
sudo ./deploy.sh
Manuel Kurulum
Detaylı sunucu kurulum talimatları için:
cat DEPLOYMENT.md
Önemli dosyalar:
DEPLOYMENT.md- Detaylı sunucu kurulum kılavuzudeploy.sh- Otomatik kurulum scriptisystemd/- Systemd servis dosyalarınginx/- Nginx konfigürasyon örneği
Portlar:
- Backend:
3000(değiştirilebilir) - Frontend:
4173(değiştirilebilir)
Domain Seçenekleri:
- ✅ Tek Domain (önerilen):
yourdomain.com- Path-based routing - ✅ İki Domain:
api.yourdomain.com+panel.yourdomain.com- CORS aktif
Process Manager:
- ✅ PM2 (önerilen - otomatik restart, monitoring)
- ✅ Systemd (native Linux service)
Reverse Proxy:
- ✅ Nginx Proxy Manager (önerilen - GUI)
- ✅ Nginx (manuel konfig:
nginx/oltalama.conf)
🛠️ Yardımcı Scriptler
Admin Kullanıcı Yönetimi
# Yeni admin kullanıcısı oluştur
node scripts/create-admin.js
# Admin şifresini değiştir
node scripts/change-password.js
Özellikler:
- ✅ İnteraktif kullanıcı oluşturma
- ✅ Şifre güvenlik validasyonu (min 8 karakter, harf+rakam)
- ✅ Benzersiz kullanıcı adı kontrolü
- ✅ Güvenli bcrypt hash'leme
📚 Dokümantasyon
- Ana Doküman:
README.md(bu dosya) - Sunucu Kurulumu:
DEPLOYMENT.md🚀 (Production kurulum) - Ollama AI Entegrasyonu:
OLLAMA_SETUP.md🤖 (AI mail şablon oluşturma) - Domain Yapılandırma:
docs/DOMAIN_SETUP.md🌐 (Tek/İki domain) - Nginx Proxy Manager:
docs/NGINX_PROXY_MANAGER.md🔄 (Reverse proxy) - Güvenlik Rehberi:
SECURITY.md🔒 (Güvenlik en iyi uygulamaları) - Hızlı Başlangıç:
QUICKSTART.md⚡ (5 dakika) - Kullanım Kılavuzu:
KULLANIM.md📖 (Detaylı) - Development Plan:
devpan.md🏗️ (Teknik detay) - Backend API:
backend/README.md - Frontend Guide:
frontend/README.md - Gmail Setup:
devpan.mdiçinde - Telegram Setup:
devpan.mdiçinde
⚠️ Güvenlik Uyarısı
Bu sistem yalnızca yasal ve etik phishing testleri için tasarlanmıştır. Kötü niyetli kullanım yasaktır.
Versiyon: 1.0.0
Durum: ✅ Production Ready
Son Güncelleme: Backend ve Frontend tamamlandı - Sistem kullanıma hazır!