231 lines
6.4 KiB
Markdown
231 lines
6.4 KiB
Markdown
# 🚀 Hosting Platform - Automated DNS & SSL Management
|
||
|
||
Modern, otomatik DNS ve SSL yönetim platformu. Cloudflare entegrasyonu ile domain'leri saniyeler içinde yapılandırın.
|
||
|
||
## 📋 Özellikler
|
||
|
||
### 🎯 Core Features
|
||
- ✅ **Cloudflare Entegrasyonu**: API token ile otomatik DNS yönetimi
|
||
- ✅ **DNS Önizleme**: Değişiklikleri uygulamadan önce görüntüleyin
|
||
- ✅ **Otomatik SSL**: Cloudflare SSL/TLS yapılandırması
|
||
- ✅ **Load Balancer**: Hash-based IP dağıtımı
|
||
- ✅ **Modern UI**: React + Vite ile hızlı ve responsive arayüz
|
||
- ✅ **Auto-Deploy**: Git push ile otomatik deployment
|
||
- ✅ **PostgreSQL**: Güvenilir veri saklama
|
||
- ✅ **Redis**: Hızlı cache ve session yönetimi
|
||
|
||
### 🆕 Yeni Özellikler (v2.0)
|
||
- ✨ **CF Account Management**: Admin panelden Cloudflare hesaplarını yönetin
|
||
- ✨ **Encrypted Token Storage**: API token'ları şifreli olarak saklama
|
||
- ✨ **DNS Nameserver Checker**: Gerçek zamanlı nameserver kontrolü
|
||
- ✨ **Advanced Domain Setup**: Gelişmiş domain kurulum sihirbazı
|
||
- ✨ **CF Token Guide**: Adım adım Cloudflare token oluşturma rehberi
|
||
- ✨ **Nameserver Instructions**: Kullanıcı dostu NS değiştirme talimatları
|
||
|
||
## 🏗️ Mimari
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ Cloudflare CDN │
|
||
│ (SSL/TLS + DDoS Protection) │
|
||
└─────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ Nginx Reverse Proxy │
|
||
│ (176.96.129.77 - Load Balancer) │
|
||
└─────────────────────────────────────────────────────────┘
|
||
│
|
||
┌──────────────┴──────────────┐
|
||
▼ ▼
|
||
┌───────────────┐ ┌───────────────┐
|
||
│ Frontend │ │ Backend │
|
||
│ React + Vite │ │ Flask API │
|
||
│ Port 3001 │ │ Port 5000 │
|
||
└───────────────┘ └───────────────┘
|
||
│
|
||
┌────────────────┴────────────────┐
|
||
▼ ▼
|
||
┌──────────────┐ ┌──────────────┐
|
||
│ PostgreSQL │ │ Redis │
|
||
│ Port 5432 │ │ Port 6379 │
|
||
└──────────────┘ └──────────────┘
|
||
```
|
||
|
||
## 🛠️ Teknolojiler
|
||
|
||
### Backend
|
||
- **Flask 3.0** - Modern Python web framework
|
||
- **SQLAlchemy 2.0** - ORM
|
||
- **PostgreSQL 16** - Database
|
||
- **Redis 7.0** - Cache & Sessions
|
||
- **Cloudflare API** - DNS & SSL management
|
||
|
||
### Frontend
|
||
- **React 18** - UI library
|
||
- **Vite** - Build tool
|
||
- **TailwindCSS** - Styling
|
||
- **Axios** - HTTP client
|
||
|
||
### DevOps
|
||
- **Gitea** - Git repository
|
||
- **Nginx** - Reverse proxy
|
||
- **Supervisor** - Process management
|
||
- **Systemd** - Service management
|
||
|
||
## 📦 Kurulum
|
||
|
||
### Gereksinimler
|
||
- Ubuntu 22.04+
|
||
- Python 3.12+
|
||
- Node.js 18+
|
||
- PostgreSQL 16
|
||
- Redis 7.0
|
||
|
||
### Backend Kurulumu
|
||
|
||
```bash
|
||
cd backend
|
||
python3 -m venv venv
|
||
source venv/bin/activate
|
||
pip install -r requirements.txt
|
||
|
||
# Environment variables
|
||
cp .env.example .env
|
||
# .env dosyasını düzenleyin
|
||
|
||
# Database migration
|
||
flask db upgrade
|
||
|
||
# Başlatma
|
||
python app/main.py
|
||
```
|
||
|
||
### Frontend Kurulumu
|
||
|
||
```bash
|
||
cd frontend
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
## 🔧 Yapılandırma
|
||
|
||
### Environment Variables
|
||
|
||
```bash
|
||
# Database
|
||
DATABASE_URL=postgresql://user:pass@localhost:5432/hosting_db
|
||
|
||
# Redis
|
||
REDIS_URL=redis://localhost:6379/0
|
||
|
||
# API
|
||
API_HOST=0.0.0.0
|
||
API_PORT=5000
|
||
|
||
# Load Balancer IPs
|
||
LB_IPS=176.96.129.77,176.96.129.78,176.96.129.79
|
||
|
||
# Secret
|
||
SECRET_KEY=your-secret-key-here
|
||
```
|
||
|
||
## 🚀 API Endpoints
|
||
|
||
### Health Check
|
||
```bash
|
||
GET /health
|
||
```
|
||
|
||
### DNS Management
|
||
```bash
|
||
POST /api/dns/validate-token
|
||
POST /api/dns/preview-changes
|
||
POST /api/dns/apply-changes
|
||
POST /api/dns/check-nameservers # 🆕 Nameserver kontrolü
|
||
```
|
||
|
||
### Domain Management
|
||
```bash
|
||
GET /api/domains
|
||
GET /api/domains/<id>
|
||
POST /api/domains
|
||
PUT /api/domains/<id>
|
||
DELETE /api/domains/<id>
|
||
```
|
||
|
||
### Admin Endpoints (🆕)
|
||
```bash
|
||
GET /api/admin/cf-accounts # CF hesaplarını listele
|
||
POST /api/admin/cf-accounts # Yeni CF hesabı ekle
|
||
PUT /api/admin/cf-accounts/<id> # CF hesabını güncelle
|
||
DELETE /api/admin/cf-accounts/<id> # CF hesabını sil
|
||
```
|
||
|
||
## 📝 Lisans
|
||
|
||
MIT License - Detaylar için LICENSE dosyasına bakın.
|
||
|
||
## 👨💻 Geliştirici
|
||
|
||
Hosting Platform Team
|
||
|
||
---
|
||
|
||
## 🚀 Deployment
|
||
|
||
### Otomatik Deployment
|
||
```bash
|
||
./deploy.sh
|
||
```
|
||
|
||
Bu script:
|
||
1. ✅ Gitea'dan son kodu çeker
|
||
2. ✅ Backend dependencies yükler
|
||
3. ✅ Database migration yapar
|
||
4. ✅ Frontend build eder
|
||
5. ✅ Servisleri restart eder
|
||
6. ✅ Health check yapar
|
||
|
||
### Manuel Deployment
|
||
|
||
```bash
|
||
# SSH ile sunucuya bağlan
|
||
ssh root@176.96.129.77
|
||
|
||
# Proje dizinine git
|
||
cd /opt/hosting-platform
|
||
|
||
# Git pull
|
||
git pull origin main
|
||
|
||
# Backend güncelle
|
||
cd backend
|
||
source venv/bin/activate
|
||
pip install -r requirements.txt
|
||
python -c "from app.main import app, db; app.app_context().push(); db.create_all()"
|
||
|
||
# Frontend build
|
||
cd ../frontend
|
||
npm install
|
||
npm run build
|
||
|
||
# Servisleri restart et
|
||
supervisorctl restart hosting-backend hosting-frontend
|
||
```
|
||
|
||
### Servis Yönetimi
|
||
|
||
```bash
|
||
# Servis durumu
|
||
supervisorctl status
|
||
|
||
# Logları izle
|
||
tail -f /var/log/hosting-backend.log
|
||
|
||
# Servisleri restart et
|
||
supervisorctl restart hosting-backend hosting-frontend
|
||
```
|
||
|