Ana içeriğe geç

Strapi Kurulumu: Ubuntu 22.04 Üzerinde Production Ortamı

Bu Rehberde Ne Öğreneceksiniz?

Bu rehberde Strapi CMS’i Ubuntu 22.04 üzerinde production ortamına almayı öğreneceksiniz.
PostgreSQL, PM2, Nginx reverse proxy ve Let’s Encrypt SSL yapılandırması ele alınır.


Strapi Nedir?

Strapi, JavaScript tabanlı, açık kaynaklı bir headless CMS çözümüdür.
Frontend içermez, içerikleri API üzerinden sunar.

REST ve GraphQL desteği sağlar.
React ve Next.js gibi framework’lerle uyumludur.


Ön Gereksinimler

Devam etmeden önce aşağıdakiler hazır olmalıdır:

  • Ubuntu 22.04 sunucu
  • Node.js v16.x
  • PostgreSQL kurulu ve çalışır durumda
  • Nginx reverse proxy yapılandırılmış
  • Alan adı sunucu IP’sine yönlendirilmiş

Önerilen donanım: 2 CPU + 4 GB RAM


1. PostgreSQL Veritabanı Oluşturma

Strapi için boş bir veritabanı gerekir.

sudo -i -u postgres createdb strapi_db
  • Bu komut yeni bir PostgreSQL veritabanı oluşturur.

Kullanıcı oluşturun:


sudo -i -u postgres createuser sammy
  • Bu komut veritabanı kullanıcısı ekler.

Şifre tanımlayın:


sudo -u postgres psql
ALTER USER sammy PASSWORD 'guclu_sifre';
\q
  • Bu işlem Strapi’nin veritabanına bağlanmasını sağlar.

2. Strapi Kurulumu

  1. Strapi’yi npx ile kurun:

npx create-strapi-app@latest my-project
  • Bu komut Strapi kurulum sihirbazını başlatır.

  1. Kurulum sırasında şu seçimleri yapın:
  • Custom installation

1. JavaScript

2. PostgreSQL

3. Veritabanı bilgilerinizi girin

4. SSL: Hayır


  1. Kurulumdan sonra projeye girin:

cd my-project
  1. Production build alın:

NODE_ENV=production npm run build
  • Bu komut Strapi admin panelini production için derler.

3. PM2 ile Strapi’yi Servis Olarak Çalıştırma

  1. PM2, Strapi’nin arka planda çalışmasını sağlar.

PM2’yi kurun:


sudo npm install pm2@latest -g
  • Bu komut PM2 süreç yöneticisini yükler.

Konfigürasyon dosyası oluşturun:


nano ecosystem.config.js

module.exports = {
apps: [
{
name: "strapi",
cwd: "/home/sammy/my-project",
script: "npm",
args: "start",
env: {
NODE_ENV: "production",
DATABASE_HOST: "localhost",
DATABASE_PORT: "5432",
DATABASE_NAME: "strapi_db",
DATABASE_USERNAME: "sammy",
DATABASE_PASSWORD: "guclu_sifre",
},
},
],
};
  • Bu yapı PM2’nin Strapi’yi production modda çalıştırmasını sağlar.

Başlatın:


pm2 start ecosystem.config.js

  • Sunucu açılışında otomatik başlatmak için:

pm2 startup
pm2 save
  • Bu adımlar servis kalıcılığını sağlar.

4. Nginx ve Let’s Encrypt ile HTTPS

  1. Strapi varsayılan olarak HTTP çalışır.
  2. HTTPS için Let’s Encrypt kullanılır.

Certbot kurun:


sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
  • Bu komut SSL yönetim aracını kurar.

Firewall ayarları:


sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
  • Bu işlem sadece HTTPS trafiğine izin verir.

SSL sertifikası alın:


sudo certbot --nginx -d ornek-domain.com -d www.ornek-domain.com
  • Bu komut sertifikayı alır ve Nginx’e uygular.

Strapi Admin Paneline Erişim

  1. Admin paneline şu adresten ulaşılır:

https://ornek-domain.com/admin
  • İlk girişte yönetici hesabı oluşturulur.

  • Panel üzerinden içerik yönetimi başlatılır.


Sıkça Sorulan Sorular (SSS)

1. Strapi neden Node.js 16 istiyor? Daha yeni sürümler bazı eklentilerle uyumsuzdur.

2. SQLite yerine neden PostgreSQL? Production ortamı için daha güvenilir ve ölçeklenebilirdir.

3. PM2 olmadan çalışır mı? Çalışır, ancak servis kapanınca Strapi durur.

4. HTTPS zorunlu mu? Production ortamı için kesinlikle önerilir.


Sonuç

Bu rehberle Strapi’yi production ortamına hazır hale getirdiniz. PostgreSQL, PM2, Nginx ve SSL ile güvenli bir CMS altyapısı kuruldu.

Daha stabil ve ölçeklenebilir Strapi projeleri için Rabisu Bulut altyapısını hemen deneyebilirsiniz.