6.1 KiB
📊 Hosting Platform - İş Akışı Diyagramları
Bu dokümanda projenin tüm görsel iş akışı diyagramları bulunmaktadır.
📑 İçindekiler
- Genel İş Akışları
- Domain Setup Detaylı Akış
- API Endpoint Yapısı
- Veritabanı Şemaları
- Sistem Mimarisi
- Kimlik Doğrulama
🔄 Genel İş Akışları
Müşteri Panel - Ana İş Akışı
Bu diyagram müşteri panelinin tüm ana işlevlerini gösterir:
- Kullanıcı kaydı ve girişi
- Dashboard yönetimi
- Domain ekleme ve yönetimi (8 adımlı süreç)
- Container deployment
- Abonelik yönetimi
Akış Adımları:
- Kimlik Doğrulama: Register/Login → JWT Token
- Dashboard: Profil, Domain Listesi, İstatistikler
- Domain Yönetimi:
- Domain ekle
- CF hesap seç (Company/Own)
- Zone doğrula
- NS kontrolü
- DNS önizleme
- DNS uygula
- SSL yapılandır
- Veritabanına kaydet
- Container: Deploy → Yapılandır → Yönet
- Abonelik: Planları görüntüle → Yükselt → Ödeme
Admin Panel - Ana İş Akışı
Bu diyagram admin panelinin tüm yönetim işlevlerini gösterir:
- Admin girişi ve audit logging
- Dashboard ve istatistikler
- Müşteri yönetimi
- Plan yönetimi (CRUD)
- Cloudflare hesap yönetimi
- Audit log sistemi
Akış Adımları:
- Kimlik Doğrulama: Admin Login → JWT + Role → Audit Log
- Dashboard: Sistem istatistikleri ve genel bakış
- Müşteri Yönetimi: Liste → Detay → Plan Güncelle → Durum Yönet
- Plan Yönetimi: Liste → Oluştur/Düzenle/Sil → Limit Belirle
- CF Yönetimi: Liste → Ekle/Düzenle → Token Şifrele → Kota Kontrol
- Audit: Tüm işlemler loglanır → Görüntüle → Filtrele
🌐 Domain Setup Detaylı Akış
Sequence Diagram - Adım Adım
Bu sequence diagram, domain ekleme sürecinin tüm adımlarını detaylı gösterir:
Katılımcılar:
- Kullanıcı
- Frontend (React)
- Backend API (Flask)
- PostgreSQL Database
- Cloudflare API
- Load Balancer
Süreç:
-
Domain Girişi
- Kullanıcı domain adını girer
- POST /api/dns/validate-domain
- Database'de kontrol edilir
-
CF Hesap Seçimi
- Company Account: Listeden seçim
- Own Account: Token girişi
-
Zone Doğrulama
- Cloudflare API ile zone bilgisi alınır
- Zone ID, nameservers kaydedilir
-
Nameserver Kontrolü
- NS kayıtları kontrol edilir
- Yapılandırılmamışsa talimatlar gösterilir
- Polling ile kontrol devam eder
-
DNS Önizleme
- Load Balancer IP seçilir (hash-based)
- Mevcut DNS kayıtları alınır
- Değişiklikler hesaplanır ve gösterilir
-
DNS Uygulama
- A records güncellenir (root + www)
- SSL yapılandırması (Full, HTTPS, Auto Rewrites)
- Database'e kaydedilir
-
Tamamlama
- Domain aktif duruma geçer
- Başarı mesajı gösterilir
📡 API Endpoint Yapısı
Müşteri Panel API Endpoints
Kategoriler:
-
🔐 Authentication (
/api/auth)- POST /register
- POST /login
- GET /me
- POST /logout
-
👤 Customer (
/api/customer)- GET /domains
- POST /domains
- GET /domains/:id
- DELETE /domains/:id
- GET /stats
-
🌐 DNS (
/api/dns)- POST /validate-domain
- POST /validate-zone
- POST /select-company-account
- GET /check-nameservers
- POST /preview-changes
- POST /apply-changes
-
⚙️ Admin (
/api/admin)- CF Accounts CRUD
- Customers Management
- Stats
-
🐳 Containers (
/api/containers)- GET /
- POST /deploy
- GET /:id
- DELETE /:id
Admin Panel API Endpoints
Kategoriler:
- 🔐 Authentication (
/api/auth) - 📋 Plans (
/api/plans) - CRUD - ☁️ CF Accounts (
/api/cf-accounts) - CRUD - 👥 Customers (
/api/customers) - Management - 📝 Audit (
/api/audit) - Logs & Stats
🗄️ Veritabanı Şemaları
Müşteri Panel Database (hosting_db)
Entity Relationships:
- USERS (1) → (N) CUSTOMERS
- CUSTOMERS (1) → (N) DOMAINS
- DOMAINS (1) → (N) DNS_RECORDS
- CLOUDFLARE_ACCOUNTS (1) → (N) DOMAINS
Ana Tablolar:
- users: Kullanıcı hesapları
- customers: Müşteri profilleri ve abonelikler
- domains: Domain kayıtları
- dns_records: DNS kayıt detayları
- cloudflare_accounts: Şirket CF hesapları
Önemli Alanlar:
cf_api_token_encrypted: Şifrelenmiş API token (Fernet)subscription_plan: Plan slug (free, basic, premium)cf_account_type: 'company' veya 'own'status: pending, active, suspended, deleted
Admin Panel Database (admin_hosting_db)
Entity Relationships:
- ADMIN_USERS (1) → (N) AUDIT_LOGS
- SUBSCRIPTION_PLANS ← → CLOUDFLARE_ACCOUNTS
Ana Tablolar:
- admin_users: Admin hesapları
- subscription_plans: Abonelik planları
- cloudflare_accounts: CF hesap yönetimi
- audit_logs: Tüm admin işlemleri
Önemli Alanlar:
role: admin, super_adminfeatures: JSON array (plan özellikleri)action: login, create_plan, update_customer, vb.details: JSON (işlem detayları)
🏗️ Sistem Mimarisi
Genel Mimari
Katmanlar:
-
Internet Layer
- Kullanıcılar (Müşteriler + Adminler)
- HTTPS üzerinden erişim
-
CDN/DNS Layer
- Cloudflare (DNS, SSL, Proxy)
- DDoS koruması
- SSL/TLS termination
-
Frontend Layer
- Customer React App (argeict.net, Port 3000)
- Admin React App (admin.argeict.net, Port 3001)
-
Backend Layer
- Customer Flask API (api.argeict.net, Port 5000)
- Admin Flask API (admin-api.argeict.net, Port 5001)
-
Data Layer
- PostgreSQL: hosting_db
- PostgreSQL: admin_hosting_db
- Redis Cache
-
Infrastructure Layer
- Load Balancers (3 adet)
- Docker Containers
- Nginx Reverse Proxy
Veri Akışı:
- Frontend → Backend: REST API (JSON)
- Backend → Database: SQLAlchemy ORM
- Backend → Cache: Redis
- Backend → Cloudflare: REST API
- Admin Panel → Customer Panel: API Call (cross-panel)