Docker Üzerinde Ghost CMS Kurulumu ve Nginx Proxy

Docker üzerinde Ghost CMS kurulumunu Nginx proxy ile entegre etmek, modern web yayıncılığı için ölçeklenebilir ve güvenli bir çözüm sunar.

Docker üzerinde Ghost CMS kurulumunu Nginx proxy ile entegre etmek, modern web yayıncılığı için ölçeklenebilir ve güvenli bir çözüm sunar. Ghost, açık kaynaklı bir içerik yönetim sistemi olarak, blog ve yayın platformları için optimize edilmiştir. Docker konteynerleri sayesinde bağımlılık yönetimi kolaylaşır, Nginx ise ters proxy olarak trafik yönlendirmesi, SSL sonlandırma ve performans optimizasyonu sağlar. Bu rehberde, adım adım kurulum sürecini ele alarak, kurumsal ortamlara uygun pratik bir yaklaşım izleyeceğiz. Sunucu hazırlığından başlayarak, üretim hazır bir yapıya ulaşacağız.

Docker Ortamının Hazırlanması

Docker ve Docker Compose’un doğru şekilde kurulması, Ghost CMS’in sorunsuz çalışması için temel adımdır. Ubuntu tabanlı bir Linux sunucusu varsayarak, en güncel sürümleri yükleyin. Öncelikle sistem paketlerini güncelleyin: sudo apt update && sudo apt upgrade -y. Ardından Docker’ı resmi depodan ekleyin. Docker’ın resmi kurulum betiğini kullanmak en güvenilir yöntemdir: curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh. Kurulum sonrası Docker servisini etkinleştirin: sudo systemctl enable docker && sudo systemctl start docker. Kullanıcıyı docker grubuna ekleyerek sudo gereksinimini kaldırın: sudo usermod -aG docker $USER ve oturumu yenileyin.

Docker Compose için, en son sürümü indirin: sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose. İzinleri ayarlayın: sudo chmod +x /usr/local/bin/docker-compose. Doğrulama için docker-compose --version komutunu çalıştırın. Bu hazırlık aşaması, konteyner orkestrasyonunu sağlar ve Ghost ile Nginx’in birlikte çalışmasını kolaylaştırır. Sunucunuzun en az 2 GB RAM ve 2 CPU çekirdeğine sahip olması önerilir, zira Ghost veritabanı işlemleri bellek yoğun olabilir.

  • Sistem gereksinimleri: Ubuntu 20.04+, 2 GB RAM, 20 GB disk alanı.
  • Güvenlik: Firewall kurallarını ayarlayın, UFW ile 80 ve 443 portlarını açın: sudo ufw allow 80/tcp && sudo ufw allow 443/tcp.

Ghost CMS Docker Kurulumu

Ghost’u Docker Compose ile kurmak, tek bir YAML dosyası ile veritabanı ve uygulama katmanlarını yönetmeyi sağlar. Proje dizinini oluşturun: mkdir ghost-docker && cd ghost-docker. docker-compose.yml dosyasını oluşturun. Temel yapı şöyle olmalıdır:

version: '3.8'
services:
  ghost:
    image: ghost:5-alpine
    restart: always
    volumes:
      - ghost_content:/var/lib/ghost/content
    environment:
      database__client: mysql
      database__connection__host: db
      database__connection__user: ghost
      database__connection__password: ghostpassword
      database__connection__database: ghostdb
      url: http://yourdomain.com
    ports:
      - "2368:2368"
    depends_on:
      - db
  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: ghostdb
      MYSQL_USER: ghost
      MYSQL_PASSWORD: ghostpassword
    volumes:
      - mysql_data:/var/lib/mysql
volumes:
  ghost_content:
  mysql_data:

Bu yapılandırma, Alpine tabanlı hafif Ghost imajını kullanır ve MySQL veritabanını ayırır. Ortam değişkenlerini kendi domain’iniz ve şifrelerinizle değiştirin. Kurulumu başlatın: docker-compose up -d. İlk çalıştırmada Ghost admin panelini 2368 portundan erişerek kurun: http://sunucu-ip:2368/ghost. Veritabanı bağlantısını doğrulayın ve site URL’sini ayarlayın. Bu adım tamamlandığında, Ghost içerikleriniz kalıcı hacimlerde saklanır, sunucu yeniden başlatmalarında veri kaybı olmaz.

Nginx Proxy Yapılandırması

Nginx Konteynerinin Eklenmesi

Docker Compose dosyasını genişleterek Nginx’i ekleyin. nginx.conf dosyasını oluşturun ve ters proxy ayarlarını tanımlayın. Nginx konfigürasyonu şöyle olabilir:

events { worker_connections 1024; }
http {
  server {
    listen 80;
    server_name yourdomain.com;
    location / {
      proxy_pass http://ghost:2368;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
  }
}

Docker Compose’a nginx servisini ekleyin:

  nginx:
    image: nginx:alpine
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - ghost

Değişiklikleri uygulayın: docker-compose down && docker-compose up -d. Artık Ghost, Nginx üzerinden 80 portunda erişilebilir hale gelir. Bu entegrasyon, statik dosyaları Nginx’in önbelleğe almasını sağlar ve yük dengeleme için uygundur. Logları izleyin: docker-compose logs -f nginx.

SSL ve Üretim Optimizasyonları

Üretim için Let’s Encrypt ile SSL ekleyin, ancak Certbot’u manuel entegre edin. Nginx konfigürasyonuna 443 bloğu ekleyin ve proxy ayarlarını genişletin. Performans için gzip sıkıştırmasını etkinleştirin: gzip on; gzip_types text/plain application/xml;. Rate limiting ile DDoS koruması sağlayın: limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;. Bu ayarlar, trafiği Ghost’a yönlendirirken sunucu kaynaklarını korur. Düzenli yedekleme için cron job kurun: hacimleri docker volume ls ile listeleyin ve rsync ile dışa aktarın. Optimizasyonlar tamamlandığında, sistem yüksek trafikli kurumsal siteler için hazır olur, yanıt süreleri %30-50 azalır.

Bu kurulum ile Docker üzerinde Ghost CMS ve Nginx proxy yapısını başarıyla hayata geçirmiş olursunuz. Süreç, bakım kolaylığı ve ölçeklenebilirlik sağlar; düzenli güncellemelerle docker-compose pull && docker-compose up -d komutu yeterlidir. Kurumsal projelerde bu yaklaşım, geliştirme ve üretim ortamlarını standartlaştırır, ekip işbirliğini artırır.

Yazar: Lorem
çerik: 796 kelime
Okuma Süresi: 6 dakika
Zaman: 1 ay önce
Yayım: 24-02-2026
Güncelleme: 24-02-2026