Ana içeriğe geç

Ubuntu 22.04 Üzerinde Strapi Kurulumu ve Production Ortamı Yapılandırması

Bu Rehberde Ne Öğreneceksiniz?

Bu rehberde, Strapi CMS uygulamasını Ubuntu 22.04 üzerinde production ortamına uygun şekilde kurmayı öğreneceksiniz.
PostgreSQL veritabanı kullanacak, Nginx reverse proxy arkasında çalıştıracak, PM2 ile sürekli çalışmasını sağlayacak ve HTTPS ile güvenli hale getireceksiniz.


🧠 Teknik Özet

  • Konu: Strapi production kurulumu
  • Problem: Development modunun üretim ortamı için yetersiz kalması
  • Çözüm: PostgreSQL + Nginx + PM2 + Let’s Encrypt
  • Sonuç: Güvenli, ölçeklenebilir ve kararlı bir Strapi CMS

Ön Hazırlıklar

Aşağıdakilerin hazır olması gerekir:

  • Ubuntu 22.04 yüklü bir sunucu
  • En az 2 CPU / 4 GB RAM
  • Node.js 16.x kurulu olmalı
  • PostgreSQL yüklü olmalı
  • Nginx reverse proxy olarak yapılandırılmış olmalı
  • Sunucuya yönlendirilmiş bir alan adı (örnek: cms.rabisu.cloud)

1️⃣ PostgreSQL Veritabanını Hazırlama

Strapi temiz bir veritabanı ister. Mevcut bir veritabanı kullanılmamalıdır.

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


sudo -i -u postgres createuser --interactive
  • Bu adımda yeni bir PostgreSQL kullanıcısı oluşturulur.

PostgreSQL kabuğuna girin:


sudo -u postgres psql

  • Kullanıcıya güçlü bir parola atayın:

ALTER USER strapi_user PASSWORD 'guclu_bir_sifre';

Çıkış yapın:


\q

2️⃣ Strapi Kurulumu

  1. Strapi’yi npx ile kuracağız.

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

Önerilen seçimler:

1. Kurulum türü: Custom

2. Dil: JavaScript

3. Veritabanı: PostgreSQL

4. Host: 127.0.0.1

5. Port: 5432

6. SSL: Hayır


Kurulum tamamlandıktan sonra proje dizinine girin:


cd strapi-project
  • Production build alın:

NODE_ENV=production npm run build
  • Bu işlem Strapi yönetim panelini production için derler.

Strapi’yi test amaçlı başlatın:


node node_modules/.bin/strapi start
  • Tarayıcıdan yönetim paneline erişebilirsiniz:

http://alan_adiniz/admin

3️⃣ PM2 ile Strapi’yi Arka Planda Çalıştırma

  1. PM2, Node.js uygulamalarını sürekli çalışır halde tutar.

sudo npm install pm2 -g

PM2 yapılandırma dosyası oluşturun:


nano ecosystem.config.js


module.exports = {
apps: [{
name: "strapi",
cwd: "/home/ubuntu/strapi-project",
script: "npm",
args: "start",
env: {
NODE_ENV: "production",
DATABASE_HOST: "localhost",
DATABASE_PORT: "5432",
DATABASE_NAME: "strapi_db",
DATABASE_USERNAME: "strapi_user",
DATABASE_PASSWORD: "guclu_bir_sifre"
}
}]
}
  • Bu dosya Strapi’nin production ortamında çalışmasını sağlar.

Başlatın:


pm2 start ecosystem.config.js

  • Sunucu açılışında otomatik başlatma:

pm2 startup
pm2 save

4️⃣ HTTPS ve Let’s Encrypt Yapılandırması

  1. HTTPS olmadan production ortamı eksik kalır.

  2. Certbot’u kurun:


sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

  • Firewall ayarlarını güncelleyin:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

SSL sertifikasını alın:


sudo certbot --nginx -d cms.rabisu.cloud -d www.cms.rabisu.cloud
  • Bu işlem HTTPS’i otomatik kurar ve yenileme görevini ekler.

✅ Kurulum Sonrası Kontroller

1. https://alan_adiniz → Strapi açılıyor mu

2. https://alan_adiniz/admin → Yönetim paneli erişilebilir mi

3. pm2 list → Strapi online görünüyor mu


❓ Sıkça Sorulan Sorular (SSS)

1. Strapi neden Node.js 16 istiyor? Strapi bazı sürümlerde Node 18+ ile uyumsuz çalışabilir.

2. SQLite yerine neden PostgreSQL kullandık? Production ortamında performans ve veri bütünlüğü için.

3. PM2 şart mı? Evet. Terminale bağlı çalışan uygulamalar production için uygun değildir.

4. SSL yenileme otomatik mi? Evet. Certbot otomatik yenileme zamanlayıcısı ekler.


🎯 Sonuç

Bu rehberle Strapi’yi:

Production uyumlu

Güvenli

Ölçeklenebilir

Sürekli çalışan

bir yapıya dönüştürdünüz.

Strapi tabanlı projelerinizi Rabisu Bulut altyapısında hemen yayınlayabilir, yüksek performanslı sunucularla sorunsuz şekilde kullanabilirsiniz.