Skip to content

HEGS-HABER/HEGS-SETUP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

HEGS-SETUP - Docker Compose Kurulum Reposu

Bu repo, HEGS Haber Sistemi'nin tüm mikroservislerini Docker Compose ile tek seferde başlatmak için oluşturulmuştur.

📋 İçerik

  • docker-compose.yml - Tüm servislerin Docker Compose konfigürasyonu
  • env.example - Ortam değişkenleri şablonu
  • README.md - Bu dosya

🎯 HEGS Mikroservisleri

HEGS sistemi aşağıdaki mikroservislerden oluşur:

Servis Repo Port Teknoloji
HEGS-DB HEGS-DB 5432 PostgreSQL
HEGS-HABER-backend HEGS-HABER-backend 8080 Spring Boot
HEGS-HABER-frontend HEGS-HABER-frontend 5173 React + Vite
HEGS-AI HEGS-AI 8000 FastAPI + OpenAI
HEGS-CROSSWORD HEGS-CROSSWORD 8001 FastAPI + OpenAI
HEGS-SCRAPPER HEGS-SCRAPPER 9932 FastAPI
HEGS-QUIZGAME HEGS-QUIZGAME 4478 FastAPI + WebSocket

🚀 Kurulum

Gereksinimler

  • Docker Desktop 20.10+ (Windows/macOS) veya Docker Engine 20.10+ (Linux)
  • Docker Compose 2.0+
  • Git
  • OpenAI API Key (AI servisleri için)

Adım 1: HEGS-SETUP Reposunu Clone Edin

Önce bu repo'yu klonlayın:

Windows (PowerShell):

git clone https://github.com/HEGS-HABER/HEGS-SETUP.git
cd HEGS-SETUP

macOS/Linux:

git clone https://github.com/HEGS-HABER/HEGS-SETUP.git
cd HEGS-SETUP

Adım 2: Diğer Mikroservisleri Clone Edin

HEGS-SETUP klasörü içinde, tüm mikroservisleri aynı seviyeye klonlayın:

Windows (PowerShell):

# HEGS-SETUP klasörü içindeyken
git clone https://github.com/HEGS-HABER/HEGS-DB.git
git clone https://github.com/HEGS-HABER/HEGS-HABER-backend.git
git clone https://github.com/HEGS-HABER/HEGS-HABER-frontend.git
git clone https://github.com/HEGS-HABER/HEGS-AI.git
git clone https://github.com/HEGS-HABER/HEGS-CROSSWORD.git
git clone https://github.com/HEGS-HABER/HEGS-SCRAPPER.git
git clone https://github.com/HEGS-HABER/HEGS-QUIZGAME.git

macOS/Linux:

# HEGS-SETUP klasörü içindeyken
git clone https://github.com/HEGS-HABER/HEGS-DB.git
git clone https://github.com/HEGS-HABER/HEGS-HABER-backend.git
git clone https://github.com/HEGS-HABER/HEGS-HABER-frontend.git
git clone https://github.com/HEGS-HABER/HEGS-AI.git
git clone https://github.com/HEGS-HABER/HEGS-CROSSWORD.git
git clone https://github.com/HEGS-HABER/HEGS-SCRAPPER.git
git clone https://github.com/HEGS-HABER/HEGS-QUIZGAME.git

Klasör Yapısı

Clone işleminden sonra klasör yapınız şöyle olmalı:

HEGS-SETUP/
├── docker-compose.yml
├── env.example
├── README.md
├── HEGS-DB/
├── HEGS-HABER-backend/
├── HEGS-HABER-frontend/
├── HEGS-AI/
├── HEGS-CROSSWORD/
├── HEGS-SCRAPPER/
└── HEGS-QUIZGAME/

Adım 3: Ortam Değişkenlerini Ayarlayın

Windows (PowerShell):

# HEGS-SETUP klasöründeyken
Copy-Item env.example .env
notepad .env

macOS/Linux:

# HEGS-SETUP klasöründeyken
cp env.example .env
nano .env
# veya
open -e .env

.env dosyasını düzenleyin ve gerekli API key'leri ekleyin:

# OpenAI API Key (Gerekli - AI ve Crossword servisleri için)
OPENAI_API_KEY=your-openai-api-key-here

# Firebase Configuration (Gerekli - Authentication için)
VITE_FIREBASE_API_KEY=your-firebase-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-id

# News API Key (Opsiyonel)
VITE_NEWS_API_KEY=your-news-api-key-optional

Firebase Konfigürasyonu Nasıl Alınır:

  1. Firebase Console → Projeniz → Project Settings
  2. "Your apps" bölümünden Web App'inizi seçin
  3. "Config" kısmındaki değerleri kopyalayın

Adım 4: Docker Compose ile Başlatın

Windows (PowerShell):

docker-compose up -d

macOS/Linux:

docker-compose up -d

Adım 5: Logları İzleyin

# Tüm servislerin logları
docker-compose logs -f

# Belirli bir servisin logları
docker-compose logs -f hegs-ai

✅ Sistem Kontrolü

Tüm servisler başladıktan sonra (2-3 dakika bekleyin), aşağıdaki URL'leri kontrol edin:

Web Arayüzü

API Health Checks

curl http://localhost:8080/actuator/health  # Backend
curl http://localhost:8000/health           # AI
curl http://localhost:8001/health           # Crossword
curl http://localhost:9932/                 # Scrapper
curl http://localhost:4478/health           # Quiz Game

Veritabanı

# Docker container içinden bağlan
docker-compose exec hegs-db psql -U hegs_user -d hegs_db

🎮 İlk Kurulum - Test Verisi Ekleme

Sistem ilk başladığında veritabanı boş olacaktır. Test için örnek veri eklemek isterseniz:

Oyun Verisi Ekleme

# PostgreSQL'e bağlan
sudo docker-compose exec hegs-db psql -U hegs_user -d hegs_db

# Örnek oyunlar ekle
INSERT INTO games (name, description, reward_points, reward_xp, is_active, image_url) VALUES
('Çengel Bulmaca', 'Kelime bulma oyunu', 100, 50, true, '/default_game.png'),
('Quiz Yarışması', 'Çok oyunculu quiz', 200, 100, true, '/default_game.png'),
('Kelime Oyunu', 'Haber bazlı kelime oyunu', 150, 75, true, '/default_game.png');

# Kontrol et
SELECT * FROM games;

# Çıkış
\q

Haber Kategorileri Ekleme

sudo docker-compose exec hegs-db psql -U hegs_user -d hegs_db

INSERT INTO news_categories (name, description) VALUES
('Güncel', 'Güncel haberler'),
('Dünya', 'Dünya haberleri'),
('Spor', 'Spor haberleri'),
('Ekonomi', 'Ekonomi haberleri'),
('Teknoloji', 'Teknoloji haberleri');

\q

🔧 Docker Yönetimi

Servisleri Durdurma

Windows (PowerShell):

docker-compose stop

macOS/Linux:

docker-compose stop

Servisleri Tamamen Kaldırma

⚠️ Dikkat: Bu komut veritabanı verilerini de siler!

Windows (PowerShell):

docker-compose down -v

macOS/Linux:

docker-compose down -v

Servisleri Yeniden Başlatma

docker-compose restart

Belirli Bir Servisi Yeniden Başlatma

docker-compose restart hegs-ai

Servisleri Yeniden Build Etme

# Tüm servisleri yeniden build et
docker-compose build

# Belirli bir servisi build et
docker-compose build hegs-ai

# Cache kullanmadan build et
docker-compose build --no-cache

🐛 Troubleshooting

Container Başlamıyor

# Container durumunu kontrol et
docker-compose ps

# Detaylı log
docker-compose logs <service-name>

# Container'ı yeniden başlat
docker-compose restart <service-name>

Veritabanı Bağlantı Hatası

# Database container'ının çalıştığını kontrol et
docker-compose ps hegs-db

# Database loglarını kontrol et
docker-compose logs hegs-db

# Database'e manuel bağlan
docker-compose exec hegs-db psql -U hegs_user -d hegs_db

Port Çakışması

Eğer portlar kullanımdaysa, docker-compose.yml dosyasında portları değiştirebilirsiniz:

ports:
  - "8001:8000"  # Host port : Container port

OpenAI API Key Hatası

# .env dosyasını kontrol et
cat .env | grep OPENAI_API_KEY

# Servisler .env dosyasını okuyorsa, yeniden başlat
docker-compose restart hegs-ai hegs-crossword

📊 Servisler Arası İletişim

Frontend (Browser) → localhost:5173
    ↓
    ├── Backend API → localhost:8080
    ├── AI API → localhost:8000
    ├── Crossword API → localhost:8001
    ├── Scrapper API → localhost:9932
    └── Quiz WebSocket → localhost:4478

Docker Network (hegs-network):
    AI Container → hegs-backend:8080
    Crossword Container → hegs-backend:8080
    Backend Container → hegs-db:5432

🔄 Güncelleme

Bir mikroservisi güncellemek için:

# İlgili repo'ya git
cd HEGS-AI

# Son değişiklikleri çek
git pull

# HEGS-SETUP klasörüne dön
cd ..

# Servisi yeniden build et ve başlat
docker-compose up -d --build hegs-ai

📦 Production Deployment

Production ortamı için:

  1. Güvenlik: .env dosyasındaki şifreleri değiştirin
  2. CORS: Her serviste production domain'leri ekleyin
  3. SSL/TLS: Nginx reverse proxy ile SSL ekleyin
  4. Monitoring: Prometheus + Grafana ekleyin
  5. Backup: Veritabanı otomatik backup stratejisi oluşturun

📚 Ek Kaynaklar

Her mikroservisin detaylı dokümantasyonu için ilgili repo'nun README'sine bakın:

🎓 Development Workflow

Bir mikroservis üzerinde geliştirme yaparken:

# Sadece database'i docker'da çalıştır
docker-compose up -d hegs-db

# İlgili servisi local'de geliştir
cd HEGS-AI
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
python main.py

📝 Notlar

  • Bu kurulum localhost için optimize edilmiştir
  • Production deployment için ek konfigürasyonlar gereklidir
  • OpenAI API Key kullanımı ücretli olabilir
  • Tüm mikroservisler aynı Docker network'ünde çalışır
  • Veritabanı ve SQLite verileri Docker volume'larında saklanır

HEGS Haber Sistemi - Mikroservis mimarisi ile geliştirilmiş, AI destekli haber platformu

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published