Takip et

Ghost’u Komut Satırından Yapılandırma ve Bakımı

Ghost’u Komut Satırından Yapılandırma ve Bakımı Giriş Ghost, modern web siteleri ve bloglar için tasarlanmış, açık kaynaklı, hızlı ve

Ghost’u Komut Satırından Yapılandırma ve Bakımı

Giriş

Ghost, modern web siteleri ve bloglar için tasarlanmış, açık kaynaklı, hızlı ve esnek bir yayıncılık platformudur. Geleneksel içerik yönetim sistemlerinden (CMS) farklı olarak, Ghost minimalist bir yaklaşımla geliştirilmiştir ve esas olarak yazmaya odaklanmıştır. Markdown desteği, temiz bir arayüz ve performans odaklı yapısıyla dikkat çeker. Ghost’un gücünün önemli bir kısmı, komut satırı arayüzü (CLI) üzerinden kolayca yönetilebilmesinden gelir. Bu makale, Ghost’u bir sunucuda komut satırı aracılığıyla nasıl yapılandıracağınızı, kuracağınızı, güncelleyeceğinizi, sorun gidereceğinizi ve genel olarak nasıl bakımını yapacağınızı ayrıntılı olarak ele alacaktır. Komut satırı becerileri, Ghost kurulumunuz üzerinde tam kontrol sağlamanın ve sorunları hızlıca çözmenin anahtarıdır.

Ön Gereksinimler

Ghost kurulumuna başlamadan önce, sunucunuzda belirli yazılımların kurulu ve yapılandırılmış olması gerekmektedir. Bu ön gereksinimler, Ghost’un sorunsuz çalışması için temel teşkil eder. Genellikle Ubuntu veya Debian tabanlı bir Linux sunucusu tercih edilir, ancak Ghost diğer Linux dağıtımlarında da çalışabilir.

Node.js ve npm

Ghost, Node.js üzerinde çalışan bir uygulamadır. Bu nedenle, sunucunuzda belirli bir Node.js sürümünün kurulu olması şarttır. Ghost’un resmi dokümantasyonu genellikle en son LTS (Uzun Süreli Destek) sürümünü önerir. Node.js ile birlikte gelen npm (Node Package Manager) de paket bağımlılıklarını yönetmek için gereklidir.
Kurulum örneği (Ubuntu için):

curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash
sudo apt-get install -y nodejs

MySQL/MariaDB

Ghost, içerik verilerini depolamak için bir veritabanına ihtiyaç duyar. MySQL veya MariaDB, Ghost ile uyumlu popüler veritabanı sistemleridir. Kurulum öncesinde bir veritabanı sunucusu kurmalı ve Ghost için özel bir veritabanı kullanıcısı ile boş bir veritabanı oluşturmalısınız.
Kurulum örneği (Ubuntu için):

sudo apt-get install -y mysql-server
sudo mysql_secure_installation

MySQL içine girip kullanıcı ve veritabanı oluşturma

sudo mysql -u root -p CREATE DATABASE ghost_db; CREATE USER 'ghost_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON ghost_db.* TO 'ghost_user'@'localhost'; FLUSH PRIVILEGES; EXIT;

Nginx/Apache (Ters Proxy)

Ghost, varsayılan olarak Node.js’in dahili web sunucusunu kullanır. Ancak, üretim ortamlarında performansı ve güvenliği artırmak için Nginx veya Apache gibi bir ters proxy sunucusu kullanılması şiddetle tavsiye edilir. Bu, SSL sonlandırma, önbellekleme ve birden fazla site barındırma gibi özellikleri yönetmenize olanak tanır.
Kurulum örneği (Nginx için, Ubuntu):

sudo apt-get install -y nginx
sudo ufw allow 'Nginx Full'

Sistem Kullanıcısı ve İzinler

Ghost’u root kullanıcısı olarak çalıştırmak güvenlik riski taşır. Bu nedenle, Ghost için özel bir sistem kullanıcısı oluşturulması ve bu kullanıcının gerekli dosya izinlerine sahip olması önerilir.

sudo adduser ghost_user
sudo usermod -aG sudo ghost_user # (isteğe bağlı, kurulum için kolaylık sağlar)

Ghost CLI Kurulumu

Ghost CLI (Command Line Interface), Ghost kurulumlarını yönetmek için geliştirilmiş güçlü bir araçtır. Global olarak kurulması, herhangi bir dizinden Ghost komutlarını çalıştırmanıza olanak tanır.

Ghost CLI’yı Yükleme

npm kullanarak Ghost CLI’yı global olarak yükleyebilirsiniz:

sudo npm install -g ghost-cli@latest

sudo kullanmak, CLI’nın sistem genelinde erişilebilir olmasını sağlar.

Kurulumu Kontrol Etme

Kurulumun başarılı olup olmadığını kontrol etmek için Ghost CLI sürümünü sorgulayabilirsiniz:

ghost -v

Bu komut, kurulu Ghost CLI sürümünü göstermelidir.

Yeni Bir Ghost Kurulumu

Ghost CLI ile yeni bir Ghost kurulumu yapmak oldukça basittir. İster yerel geliştirme ortamı için olsun ister bir üretim sunucusu için, CLI size adım adım rehberlik eder.

Dizin Oluşturma ve Yetkilendirme

Ghost’u kurmak istediğiniz dizini oluşturun ve doğru izinleri ayarlayın. Bu adım, Ghost’un dosya sistemi üzerinde doğru şekilde çalışabilmesi için kritik öneme sahiptir.

sudo mkdir -p /var/www/ghost
sudo chown ghost_user:ghost_user /var/www/ghost
sudo chmod 775 /var/www/ghost
cd /var/www/ghost

ghost_user yerine kendi özel Ghost kullanıcınızın adını yazmalısınız.

Ghost Kurulum Komutu

ghost install komutu, Ghost’u kurmanın anahtarıdır. İki ana modda çalıştırılabilir:

Geliştirme Ortamı İçin Kurulum (Local)

Yerel bilgisayarınızda veya bir sanal makinede geliştirme yapmak için idealdir. Veritabanı olarak SQLite kullanır ve Nginx/SSL yapılandırması yapmaz.

ghost install local

Bu komut, Ghost’u 2368 portunda çalıştırır ve genellikle http://localhost:2368 adresinden erişilebilir olur.

Üretim Ortamı İçin Kurulum

Bir canlı sunucuya Ghost kurarken bu modu kullanırsınız. CLI, size veritabanı, Nginx, SSL ve sistemd başlatma gibi konularda sorular sorarak rehberlik eder.

ghost install

Bu komutu çalıştırdığınızda, CLI size aşağıdaki gibi sorular soracaktır:
* Enter your blog URL: Blogunuzun herkese açık URL’si (örn: https://blog.example.com). SSL kullanmayı planlıyorsanız https ile başlaması önemlidir.
* MySQL hostname: Veritabanı sunucunuzun adresi (genellikle localhost).
* MySQL username: Daha önce oluşturduğunuz Ghost veritabanı kullanıcısının adı (örn: ghost_user).
* MySQL password: Ghost veritabanı kullanıcısının şifresi.
* MySQL database name: Daha önce oluşturduğunuz Ghost veritabanının adı (örn: ghost_db).
* Do you wish to set up Nginx? (Evet/Hayır) Ters proxy olarak Nginx’i yapılandırmak isteyip istemediğiniz. Kesinlikle Evet seçmelisiniz.
* Do you wish to set up SSL with Let’s Encrypt? (Evet/Hayır) Ücretsiz SSL sertifikası kurmak isteyip istemediğiniz. Canlı siteler için Evet seçilmesi tavsiye edilir.
* Enter your email address (for Let’s Encrypt): Let’s Encrypt için e-posta adresiniz.
* Do you wish to set up Systemd? (Evet/Hayır) Ghost’u bir sistem servisi olarak yapılandırmak isteyip istemediğiniz. Evet seçmek, Ghost’un sunucu yeniden başladığında otomatik olarak başlamasını sağlar.
* Do you wish to start Ghost? (Evet/Hayır) Kurulum tamamlandıktan sonra Ghost’u hemen başlatmak isteyip istemediğiniz. Evet seçerek kurulumu tamamlayın.

Bu adımları tamamladıktan sonra Ghost kurulacak, Nginx yapılandırılacak, SSL sertifikası alınacak ve Ghost bir sistem servisi olarak başlatılacaktır. Kurulumun sonunda, yönetici paneline erişmek için bir URL verilecektir (örn: https://blog.example.com/ghost/).

Mevcut Bir Ghost Kurulumunu Yönetme

Ghost CLI, mevcut bir Ghost kurulumunu yönetmek için bir dizi kullanışlı komut sunar. Bu komutlar, günlük bakım işlemlerinden acil durum müdahalelerine kadar geniş bir yelpazede kullanılır.

Ghost Durumunu Kontrol Etme

Bir Ghost kurulumunun mevcut durumunu öğrenmek için ghost status komutunu kullanabilirsiniz. Bu komut, Ghost’un çalışıp çalışmadığını, hangi Node.js sürümünü kullandığını, URL’sini ve diğer önemli bilgileri gösterir.

ghost status

Eğer birden fazla Ghost kurulumunuz varsa, belirli bir dizinde bu komutu çalıştırmak o dizindeki Ghost kurulumunun durumunu gösterecektir.

Ghost’u Başlatma, Durdurma ve Yeniden Başlatma

Ghost servisini yönetmek için temel komutlardır. Özellikle yapılandırma değişikliklerinden sonra veya sorun giderme sırasında sıkça kullanılırlar.
* Başlatma: Ghost’u başlatır.

ghost start

* Durdurma: Ghost’u durdurur.

ghost stop

* Yeniden Başlatma: Ghost’u durdurur ve tekrar başlatır. Çoğu yapılandırma değişikliğinden sonra bu komutu kullanmanız gerekir.

ghost restart

Ghost Sürümünü Güncelleme

Ghost’u güncel tutmak, güvenlik yamaları, yeni özellikler ve performans iyileştirmeleri için kritik öneme sahiptir. Güncelleme işlemine başlamadan önce daima bir yedekleme yapmanız şiddetle tavsiye edilir.

ghost update

Bu komut, Ghost CLI’nın kurulu olduğu Ghost sürümünü kontrol eder ve en son kararlı sürüme günceller. Güncelleme işlemi sırasında, CLI size Ghost’un mevcut sürümünü yedeklemek isteyip istemediğinizi sorabilir. Genellikle Evet seçeneğini tercih etmek güvenliğiniz için önemlidir.
Eğer güncelleme sırasında bir hata oluşursa veya belirli bir sürümü zorlamak isterseniz --force bayrağını kullanabilirsiniz, ancak bu dikkatli kullanılmalıdır:

ghost update --force

Ghost Yapılandırma Dosyalarını Yönetme

Ghost’un yapılandırma ayarları, genellikle config.[env].json formatındaki dosyalarda saklanır (örn: config.production.json veya config.development.json). Bu dosyaları doğrudan düzenleyebilir veya ghost config komutunu kullanabilirsiniz.

ghost config Komutu ile Ayarları Değiştirme

ghost config komutu, yapılandırma dosyasındaki belirli değerleri programatik olarak değiştirmenize olanak tanır.
* URL Değiştirme: Blogunuzun URL’sini değiştirmek için:

ghost config url https://yeni-alanadi.com
    ghost restart

* Mail Ayarları: E-posta gönderme ayarlarını yapılandırmak için (örneğin SMTP kullanarak):

ghost config mail.transport SMTP
    ghost config mail.options.service 'Mailgun' # veya 'Gmail', 'SES' vb.
    ghost config mail.options.auth.user 'postmaster@mg.alanadi.com'
    ghost config mail.options.auth.pass 'YOUR_MAILGUN_API_KEY'
    ghost restart

* Diğer Ayarlar: Herhangi bir yapılandırma değerini değiştirmek için kullanılabilir. Örneğin, bir SSL sertifikasını manuel olarak yeniledikten sonra Nginx yapılandırmasını yeniden oluşturmak için:

ghost config server.port 2368 # Varsayılan port
    ghost setup nginx ssl # Nginx ve SSL'i yeniden yapılandırır
    ghost restart

Manuel Düzenleme

Bazı durumlarda, config.production.json gibi yapılandırma dosyalarını doğrudan bir metin düzenleyici ile düzenlemek isteyebilirsiniz. Bu durumda, dosyayı düzenledikten sonra Ghost’u yeniden başlatmayı unutmayın.

sudo nano config.production.json
ghost restart

Veritabanı İşlemleri

Veritabanı, Ghost içeriğinizin kalbidir. Yedekleme ve geri yükleme işlemleri, veri kaybını önlemek için hayati öneme sahiptir.

Yedekleme

Ghost CLI, veritabanınızı kolayca yedeklemenizi sağlar:

ghost backup

Bu komut, Ghost’un çalıştığı dizinde ghost-backup-[timestamp].json formatında bir dosya oluşturur. Bu dosya, tüm içeriğinizi (yazılar, sayfalar, ayarlar vb.) içerir. Ancak, bu sadece Ghost’un dahili verilerini yedekler. Temalar, resimler ve diğer dosyalar için /content dizinini manuel olarak yedeklemeniz gerekir.
Manuel yedekleme örneği:

sudo mysqldump -u ghost_user -p ghost_db > ghost_db_backup.sql
sudo tar -czvf ghost_content_backup.tar.gz /var/www/ghost/content

Geri Yükleme

Ghost CLI’nın doğrudan bir ghost restore komutu bulunmamaktadır. Geri yükleme işlemi genellikle manuel olarak yapılır:
1. Yeni bir Ghost kurulumu yapın veya mevcut kurulumunuzu durdurun.
2. ghost-backup-[timestamp].json dosyasını Ghost admin paneli üzerinden “Labs” bölümünden içe aktarın.
3. /content dizininizi yedekten geri yükleyin (resimler, temalar vb.).
4. Veritabanını SQL dökümünden geri yüklemek için:

mysql -u ghost_user -p ghost_db < ghost_db_backup.sql
    ghost restart

Geri yükleme işlemleri dikkatli yapılmalı ve her zaman bir test ortamında denenmelidir.

Temaları Yönetme

Ghost temaları, sitenizin görünümünü belirler. Temaları komut satırı üzerinden yükleyebilir ve yönetebilirsiniz.

Tema Yükleme

Yeni bir tema yüklemek için, tema dosyalarını ZIP formatında indirdikten sonra sunucunuzdaki /var/www/ghost/content/themes dizinine kopyalamanız gerekir.

cd /var/www/ghost/content/themes
sudo wget https://example.com/your-theme.zip
sudo unzip your-theme.zip
sudo rm your-theme.zip
sudo chown -R ghost_user:ghost_user your-theme-folder

Temayı etkinleştirmek için Ghost Admin paneline giderek "Settings" -> "Design" bölümünden yeni temayı seçmeniz gerekecektir. Ghost CLI doğrudan tema etkinleştirmeyi desteklemez, ancak yapılandırma dosyasını manuel olarak düzenleyerek varsayılan temayı değiştirebilirsiniz (bu önerilmez ve admin panel daha güvenlidir).

Hata Ayıklama ve Loglar

Bir sorunla karşılaştığınızda, log dosyaları ve hata ayıklama araçları sorunun kaynağını bulmak için hayati öneme sahiptir.

Ghost Logları

Ghost'un kendi loglarını görüntülemek için ghost log komutunu kullanabilirsiniz:

ghost log

Bu komut, Ghost'un hata ve erişim loglarını gösterir. --tail bayrağı ile gerçek zamanlı olarak logları takip edebilirsiniz:

ghost log --tail

Sistem Servisi Logları

Eğer Ghost'u Systemd ile bir servis olarak yapılandırdıysanız, Systemd'nin kendi loglarını da kontrol edebilirsiniz:

sudo systemctl status ghost_[your_blog_url] # Örn: ghost_blog-example-com
sudo journalctl -u ghost_[your_blog_url] -f

Nginx/Apache Logları

Ters proxy olarak Nginx veya Apache kullanıyorsanız, bu sunucuların logları da bağlantı veya SSL sorunlarını tespit etmek için önemlidir.
* Nginx logları: /var/log/nginx/access.log ve /var/log/nginx/error.log
* Apache logları: /var/log/apache2/access.log ve /var/log/apache2/error.log

Gelişmiş Komut Satırı Kullanımı

Ghost CLI'nın sunduğu bazı gelişmiş özellikler, daha karmaşık senaryolarda size yardımcı olabilir.

Çoklu Ghost Kurulumları

Bir sunucuda birden fazla Ghost sitesi barındırmak mümkündür. Her Ghost kurulumu kendi dizininde ayrı ayrı yönetilir.
Örneğin, /var/www/blog1 ve /var/www/blog2 dizinlerinde iki farklı Ghost kurulumunuz varsa:

cd /var/www/blog1
ghost status # Sadece blog1'in durumunu gösterir

cd /var/www/blog2
ghost start # Sadece blog2'yi başlatır

Her kurulum için Nginx ve SSL yapılandırmalarının doğru şekilde ayarlandığından emin olmanız gerekir. ghost install komutu, her kurulum için ayrı ayrı Nginx sanal host dosyaları oluşturacaktır.

SSL Yönetimi

Ghost CLI, ghost install sırasında Let's Encrypt ile SSL sertifikalarını otomatik olarak yapılandırır. Bu sertifikalar genellikle 90 günde bir yenilenir ve Ghost CLI bunu otomatik olarak halleder. Ancak, bazen manuel müdahale gerekebilir.
* SSL'i Yeniden Yapılandırma: Eğer SSL sertifikası sorunları yaşıyorsanız veya Nginx yapılandırmasını manuel olarak değiştirdiyseniz, SSL'i yeniden yapılandırmak için ghost setup nginx ssl komutunu kullanabilirsiniz. Bu komut, Let's Encrypt sertifikasını yenilemeye çalışır ve Nginx yapılandırmasını günceller.

ghost setup nginx ssl
    ghost restart

Dosya İzinleri ve Sahiplikleri

Yanlış dosya izinleri ve sahiplikleri, Ghost'un çalışmasını engelleyebilir veya güvenlik açıkları oluşturabilir. Ghost CLI, kurulum sırasında doğru izinleri ayarlamaya çalışsa da, manuel olarak düzeltmeniz gerekebilir.
* Dizin Sahipliği: Ghost kurulum dizininin ve alt dizinlerinin Ghost kullanıcısına ait olduğundan emin olun:

sudo chown -R ghost_user:ghost_user /var/www/ghost

* Dosya İzinleri: Genellikle dizinler için 775 veya 755, dosyalar için 664 veya 644 izinleri yeterlidir. 777 gibi geniş izinlerden kaçının.

sudo find /var/www/ghost -type d -exec chmod 775 {} \;
    sudo find /var/www/ghost -type f -exec chmod 664 {} \;

Bu komutları uyguladıktan sonra Ghost'u yeniden başlatmanız gerekebilir.

Performans ve Güvenlik İpuçları

Ghost kurulumunuzu komut satırından yönetirken, performans ve güvenliği artıracak bazı önemli noktalara dikkat etmek önemlidir.

Güncel Tutma

Hem Ghost hem de Node.js, npm, MySQL gibi temel bağımlılıklarınızı düzenli olarak güncellemek, güvenlik açıklarını kapatır ve performansı artırır. ghost update ve sudo apt update && sudo apt upgrade komutlarını düzenli olarak çalıştırın.

Güçlü Şifreler

MySQL kullanıcısı, sunucu SSH şifresi ve Ghost yönetici paneli şifresi gibi tüm şifrelerinizin güçlü ve benzersiz olduğundan emin olun.

Firewall (UFW)

Sunucunuzda bir güvenlik duvarı (örn: UFW - Uncomplicated Firewall) etkinleştirin ve yalnızca gerekli portlara (SSH için 22, HTTP için 80, HTTPS için 443) izin verin.

sudo ufw enable
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Ters Proxy Yapılandırması

Nginx veya Apache gibi bir ters proxy kullanmak, doğrudan Node.js sunucusuna erişimi engelleyerek ek bir güvenlik katmanı sağlar. Ayrıca önbellekleme ve sıkıştırma gibi özelliklerle performansı artırır.

CDN Kullanımı (Cloudflare)

Bir İçerik Dağıtım Ağı (CDN) kullanmak, sitenizin hızını artırır ve DDoS saldırılarına karşı koruma sağlar. Cloudflare gibi hizmetler, ücretsiz planlarında bile önemli faydalar sunar.

Sık Karşılaşılan Sorunlar ve Çözümleri

Komut satırından Ghost yönetirken karşılaşabileceğiniz bazı yaygın sorunlar ve bunların çözümleri.

ghost install Hataları

* İzin Sorunları: En yaygın hatalardan biridir. sudo chown -R ghost_user:ghost_user /var/www/ghost ve sudo chmod 775 /var/www/ghost komutlarıyla izinleri kontrol edin.
* Veritabanı Bağlantı Sorunları: MySQL/MariaDB servisinin çalışır durumda olduğundan, kullanıcı adının, şifrenin ve veritabanı adının doğru olduğundan emin olun. mysql -u ghost_user -p ile manuel olarak bağlanmayı deneyin.
* Node.js Sürümü: Ghost'un gerektirdiği Node.js sürümünün kurulu olduğundan emin olun.
* Port Çakışmaları: Ghost'un kullanmaya çalıştığı portun (varsayılan 2368) başka bir uygulama tarafından kullanılmadığından emin olun.

Ghost'un Başlamaması

* ghost status komutuyla durumu kontrol edin.
* ghost log komutuyla logları inceleyin.
* sudo systemctl status ghost_[instance_name] ile Systemd loglarını kontrol edin.
* Yapılandırma dosyasında (config.production.json) bir hata olup olmadığını kontrol edin.
* ghost doctor komutu, yaygın sorunları tespit etmenize yardımcı olabilir.

SSL Sorunları

* Let's Encrypt sertifikasının süresi dolmuş olabilir. ghost setup nginx ssl komutuyla yenilemeyi deneyin.
* Nginx yapılandırmasının doğru olduğundan emin olun. /etc/nginx/sites-available/your-domain.conf dosyasını kontrol edin.
* Firewall'un 443 portuna izin verdiğinden emin olun (sudo ufw status).

Yüksek CPU/RAM Kullanımı

* top veya htop komutlarıyla hangi işlemlerin kaynak tükettiğini belirleyin.
* Ghost loglarında olağandışı aktivite olup olmadığını kontrol edin.
* Node.js sürümünüzü güncelleyin.
* Temanızda veya kullanılan entegrasyonlarda performans sorunları olabilir.

Sonuç

Ghost'u komut satırından yapılandırmak ve bakımını yapmak, platformun gücünden tam olarak yararlanmanın en etkili yoludur. Ghost CLI, kurulumdan güncellemeler, yedeklemeler ve sorun gidermeye kadar tüm süreçleri kolaylaştıran kapsamlı bir araç seti sunar. Komut satırı becerileri, Ghost kurulumunuz üzerinde derinlemesine kontrol sağlamanıza, performansı optimize etmenize ve olası sorunları hızlı bir şekilde çözmenize olanak tanır. Bu makalede ele alınan adımlar ve ipuçları, Ghost deneyiminizi daha verimli ve güvenli hale getirmenize yardımcı olacaktır. Unutmayın, düzenli yedekleme ve güncellemeler, herhangi bir web sitesi yönetiminin temel taşlarıdır. Ghost CLI ile bu süreçler artık daha erişilebilir ve yönetilebilir hale gelmiştir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorumları Göster (2)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık