Genel Bakış
Bu proje, modern web uygulamaları için Nginx, Docker ve CI/CD pipeline'larını kullanarak hızlı ve güvenli dağıtım süreçleri sağlar.
Özellikler
- Yüksek performanslı Nginx web sunucusu
- Docker konteynerizasyonu ve izolasyonu
- Otomatik CI/CD pipeline'ları
- Kapsamlı monitoring ve metrikler
- Güvenlik önlemleri ve best practices
- Detaylı dokümantasyon ve örnekler
Teknoloji Yığını
- Nginx - Web sunucusu ve ters proxy
- Docker - Konteynerizasyon
- Docker Compose - Servis orkestrasyonu
- GitHub Actions - CI/CD pipeline'ları
- Prometheus - Metrik toplama
- Grafana - Metrik görselleştirme
Hızlı Başlangıç
Gereksinimler
Aşağıdaki yazılımların sisteminizde kurulu olması gerekmektedir:
- Docker Engine v20.10+
- Docker Compose v2.0+
- Git
Projeyi Klonlama
git clone https://github.com/CotNeo/ops.git
cd ops
Ortam Değişkenlerini Ayarlama
cp .env.example .env
nano .env
Ortam değişkenlerini projenizin gereksinimlerine göre düzenleyin.
Docker İmajını Oluşturma
docker-compose build
Uygulamayı Başlatma
docker-compose up -d
Doğrulama
Uygulamanın başarıyla çalıştığını doğrulayın:
curl http://localhost:8080/health
curl http://localhost:8080/metrics
NPM Kullanımı
Kurulum
npm install -g devops-starter-kit
Global olarak kurulum yaparak CLI aracını sistem genelinde kullanabilirsiniz.
Komutlar
Proje Oluşturma
devops-starter init [project-name]
Yeni bir proje oluşturur ve temel yapılandırmayı yapar.
- Proje tipi seçimi (Frontend, Backend, Full Stack)
- Özellik seçimi (Docker, GitHub Actions, Nginx, vb.)
- Otomatik konfigürasyon dosyaları oluşturma
Deployment
devops-starter deploy --environment [env]
Projeyi belirtilen ortama deploy eder.
- Ortam seçimi (development, staging, production)
- Otomatik build ve test süreçleri
- Docker imaj oluşturma ve push
Monitoring
devops-starter monitor
Monitoring araçlarını kurar ve yapılandırır.
- Prometheus kurulumu
- Grafana dashboard yapılandırması
- Alert kuralları oluşturma
Özellikler
Proje Şablonları
Hazır proje şablonları ile hızlı başlangıç
- React/Vue frontend şablonları
- Node.js/Python backend şablonları
- Full Stack MERN/PERN şablonları
Otomatik Konfigürasyon
Proje yapılandırmalarını otomatik oluşturma
- Docker ve Docker Compose dosyaları
- Nginx konfigürasyonları
- GitHub Actions workflow'ları
Güvenlik Araçları
Entegre güvenlik özellikleri
- Dependency güvenlik taraması
- OWASP güvenlik kontrolleri
- SSL/TLS yapılandırması
Monitoring ve Logging
Kapsamlı izleme ve loglama
- Prometheus metrik toplama
- Grafana dashboard'ları
- ELK Stack entegrasyonu
Örnek Kullanımlar
Frontend Projesi Oluşturma
devops-starter init my-frontend --type frontend --features docker,nginx,github-actions
Backend Projesi Oluşturma
devops-starter init my-backend --type backend --features docker,monitoring,security
Full Stack Projesi Oluşturma
devops-starter init my-app --type fullstack --features all
Dokümantasyon
Konfigürasyon
Değişken | Açıklama | Varsayılan |
---|---|---|
NGINX_PORT | Nginx sunucusunun dinleyeceği port | 8080 |
NGINX_WORKER_PROCESSES | Nginx worker süreç sayısı | auto |
NGINX_WORKER_CONNECTIONS | Her worker için maksimum bağlantı sayısı | 1024 |
LOG_LEVEL | Log seviyesi (debug, info, warn, error) | info |
DOCKER_IMAGE_NAME | Docker imaj adı | nginx-docker-cicd |
DOCKER_IMAGE_TAG | Docker imaj etiketi | latest |
Monitoring
Uygulama aşağıdaki monitoring araçlarını destekler:
- Prometheus - Metrik toplama
- Grafana - Metrik görselleştirme
- ELK Stack - Log analizi
Güvenlik
Uygulama aşağıdaki güvenlik önlemlerini içerir:
- Rate limiting ve DDoS koruması
- SSL/TLS şifreleme
- Güvenlik başlıkları (CSP, HSTS, XSS koruması)
- IP bazlı erişim kontrolü
- Güvenlik logları ve izleme
API Referansı
Uygulama sağlık durumunu kontrol eder.
{ "status": "healthy", "uptime": "2h 30m", "version": "1.0.0" }
Nginx metriklerini görüntüler.
nginx_connections_active 10 nginx_http_requests_total 1234
Sorun Giderme
Nginx Başlatılamıyor
Nginx başlatılamıyorsa aşağıdaki adımları kontrol edin:
- Port çakışması olup olmadığını kontrol edin
- Nginx konfigürasyon dosyasını doğrulayın
- Log dosyalarını inceleyin
docker-compose logs nginx
Health Check Başarısız
Health check başarısız oluyorsa:
- Uygulamanın çalışır durumda olduğunu kontrol edin
- Network bağlantısını doğrulayın
- Firewall ayarlarını kontrol edin
curl -v http://localhost:8080/health
Metrics Erişilemiyor
Metrics endpoint'ine erişilemiyorsa:
- Nginx stub_status modülünün aktif olduğunu kontrol edin
- Erişim izinlerini doğrulayın
- Prometheus konfigürasyonunu kontrol edin
curl -v http://localhost:8080/metrics