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

Teknoloji Yığını

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

code

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ı
settings

Otomatik Konfigürasyon

Proje yapılandırmalarını otomatik oluşturma

  • Docker ve Docker Compose dosyaları
  • Nginx konfigürasyonları
  • GitHub Actions workflow'ları
security

Güvenlik Araçları

Entegre güvenlik özellikleri

  • Dependency güvenlik taraması
  • OWASP güvenlik kontrolleri
  • SSL/TLS yapılandırması
monitoring

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:

Güvenlik

Uygulama aşağıdaki güvenlik önlemlerini içerir:

API Referansı

GET /health

Uygulama sağlık durumunu kontrol eder.

{
    "status": "healthy",
    "uptime": "2h 30m",
    "version": "1.0.0"
}
GET /metrics

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