İçeriğe geç

EğitimlerCMS ve web siteleri

Strapi 5 PostgreSQL, PM2 ve HTTPS ile nasıl kurulur

Strapi 5'i Ubuntu veya Debian'da PostgreSQL, Node.js LTS ve root olmayan bir kullanıcıyla PM2 altında, Caddy HTTPS arkasında yedek ve güncellemeyle çalıştırın.

  • Orta
  • 45 dk okuma
  • Güncellendi

Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13

Bu sayfada
  1. Ön koşullar
  2. Adım 1 — PostgreSQL'i kurun ve veritabanını oluşturun
  3. Adım 2 — Node.js LTS'i ve PM2'yi kurun
  4. Adım 3 — strapi kullanıcısını ve projeyi oluşturun
  5. Adım 4 — Üretim ayarlarını yapılandırın
  6. Adım 5 — Derleyin, PM2 ile başlatın ve ilk yöneticiyi oluşturun
  7. Adım 6 — Strapi'yi Caddy ile HTTPS üzerinden yayınlayın
  8. Adım 7 — İçerik türlerini geliştirmede değiştirin, sonra dağıtın
  9. Yedekleme ve geri yükleme
  10. Strapi'yi güncelleme
  11. Sorun giderme
  12. Yeni kurulumda yönetim paneli 500 hatası döndürüyor
  13. Derleme JavaScript heap out of memory hatasıyla duruyor veya süreç sonlandırılıyor
  14. Sunucuda Content-Type Builder kapalı
  15. Yönetim paneli istekleri localhost'a veya düz HTTP'ye gidiyor
  16. Strapi yeniden başlatmadan sonra geri gelmiyor
  17. Sonraki adımlar

Strapi, Node.js üzerine kurulu açık kaynaklı bir headless CMS'tir. Editörler içeriği bir yönetim panelinde düzenler; web siteleriniz ve uygulamalarınız bu içeriği REST veya GraphQL API'leriyle okur. Bu rehber Strapi 5'i tek bir sunucuda üretim için çalıştırır: veritabanı olarak PostgreSQL, NodeSource deposundan Node.js LTS, ayrı ve root olmayan bir kullanıcı altında süreç yöneticisi olarak PM2 ve otomatik HTTPS için önde Caddy. Ayrıca Strapi'nin beklediği geliştirmeden üretime iş akışını, yedeklemeyi, güncellemeyi ve sorun gidermeyi de kurarsınız.

Ön koşullar

  • Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12 veya Debian 13 çalıştıran bir sunucu. Strapi gereksinimleri önerilen Ubuntu sürümü olarak 24.04'ü (en düşük 20.04), en düşük Debian sürümü olarak da Debian 10'u belirtir.
  • sudo yetkisi ve SSH anahtarıyla girişi olan, root olmayan bir kullanıcı. Henüz yapmadıysanız önce Yeni bir Linux sunucusunu güvenli hale getirin ve SSH anahtarlarını ayarlayın rehberlerini izleyin.
  • Sunucuyu gösteren bir A kaydına (isteğe bağlı olarak AAAA kaydına) sahip cms.example.com gibi bir alan adı.
  • Caddy reverse proxy rehberindeki gibi kurulmuş Caddy. Adım 6'da gerekir.

Strapi kendi donanım gereksinimlerini yayınlar:

KaynakEn düşük (resmi)Önerilen başlangıç
CPU1 çekirdek2 çekirdek (Strapi'nin önerisi)
RAM2 GB4 GB (Strapi'nin önerisi)
Disk8 GB32 GB (Strapi'nin önerisi) ve yüklemeler için ek alan

Strapi PostgreSQL 14 ve üzerini destekler, 17'yi önerir. Yukarıdaki her sürümle gelen PostgreSQL paketi bu alt sınırı karşılar. Yönetim panelini derlemek küçük bir sunucudaki en ağır iştir; derleme sonlandırılırsa Sorun giderme bölümüne bakın.

Adım 1 — PostgreSQL'i kurun ve veritabanını oluşturun

PostgreSQL'i dağıtımınızın arşivinden kurun ve servisin çalıştığını kontrol edin:

Bash
sudo apt update
sudo apt install postgresql
sudo systemctl status postgresql --no-pager

Ubuntu ve Debian'da PostgreSQL varsayılan olarak yalnızca localhost üzerinde dinler; bu nedenle güvenlik duvarı kuralı gerekmez. Veritabanı kullanıcısı için güçlü bir parola üretin ve Adım 3 için saklayın:

Bash
openssl rand -hex 24

Bir strapi rolü (istendiğinde parolayı yapıştırın), bu role ait bir veritabanı oluşturun ve Strapi belgelerinin istediği şema iznini verin. GRANT olmadan yeni bir veritabanı kullanıcısı public şemasında tablo oluşturamaz ve yönetim paneli 500 hatası döndürür:

Bash
sudo -u postgres createuser --pwprompt strapi
sudo -u postgres createdb --owner=strapi strapi
sudo -u postgres psql -d strapi -c "GRANT ALL ON SCHEMA public TO strapi;"

Girişi, Strapi'nin bağlanacağı gibi TCP üzerinden test edin. Parolayı girdikten sonra sorgu strapi yazar:

Bash
psql -h 127.0.0.1 -U strapi -d strapi -c "SELECT current_user;"

Adım 2 — Node.js LTS'i ve PM2'yi kurun

Bu sürümlerin çoğunda dağıtımın kendi nodejs paketi, Strapi'nin desteklediği en eski hat olan Node.js 22'den eskidir. İki yaygın seçenek vardır: Node.js'i kullanıcı başına bir ev dizinine kuran ve sürümleri sık değiştirdiğiniz geliştirme makinesinde pratik olan nvm ile tek ve sistem genelinde bir Node.js'i /usr/bin altına kuran ve diğer güvenlik güncellemelerinizle birlikte apt ile güncelleyen NodeSource apt deposu. Uzun süre çalışan bir servisi barındıran sunucuda apt deposu güncel tutması daha kolaydır ve bir kabuk profiline bağlı değildir; bu nedenle bu rehber NodeSource kullanır.

NodeSource'un elle kurulumu, dağıtımdan bağımsız nodistro adlı bir suite kullanır. İmza anahtarını ve Node.js 24 LTS deposunu ekleyin:

Bash
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
Bash
NODE_MAJOR=24
sudo tee /etc/apt/sources.list.d/nodesource.sources <<EOF
Types: deb
URIs: https://deb.nodesource.com/node_${NODE_MAJOR}.x/
Suites: nodistro
Components: main
Signed-By: /etc/apt/keyrings/nodesource.gpg
EOF
sudo apt update
sudo apt install nodejs
node -v
npm -v

node -v bir v24 sürümü yazmalıdır. Şimdi PM2'yi global olarak kurun; böylece pm2 komutu her kullanıcının yolunda olur ve açılış betiği onu bulabilir:

Bash
sudo npm install -g pm2
pm2 --version

Adım 3 — strapi kullanıcısını ve projeyi oluşturun

Strapi'yi hiçbir zaman root olarak değil, kendi sistem kullanıcısıyla çalıştırın. Kullanıcının ev dizini /srv/strapi, projeyi ve PM2'nin durum dosyalarını tutar:

Bash
sudo adduser --system --group --home /srv/strapi --shell /bin/bash strapi
sudo -iu strapi

Artık strapi olarak bir kabuktasınız. Projeyi resmi create-strapi aracıyla oluşturun. Parametreler etkileşimli soruları önceden yanıtlar: Strapi Cloud girişini atlar, npm ve JavaScript kullanır, bağımlılıkları kurar, bir Git deposu başlatır, örnek veriyi ve anonim A/B testlerini atlar ve Adım 1'deki PostgreSQL veritabanına bağlanır. change-me yerine ürettiğiniz parolayı yazın:

Bash
cd /srv/strapi
npx create-strapi@latest app --skip-cloud --no-run --javascript --use-npm --install --no-example --git-init --no-enable-ab-tests --dbclient=postgres --dbhost=127.0.0.1 --dbport=5432 --dbname=strapi --dbusername=strapi --dbpassword=change-me

npx bir kez create-strapi paketini indirip indiremeyeceğini sorar; y yanıtını verin. Parametrelerin kapsamadığı soruları da yanıtlayın. Ekibiniz TypeScript tercih ediyorsa --javascript yerine --typescript kullanın; bu durumda Adım 4'teki yapılandırma dosyası config/server.ts olur ve module.exports yerine export default kullanır. Komut bitince projeyi listeleyin:

Bash
cd /srv/strapi/app
ls -a

config, src, public, package.json ve bir .env dosyası görmelisiniz.

Adım 4 — Üretim ayarlarını yapılandırın

create-strapi, APP_KEYS, API_TOKEN_SALT, ADMIN_JWT_SECRET, TRANSFER_TOKEN_SALT, JWT_SECRET ve ENCRYPTION_KEY için yeni üretilmiş değerlerle ve veritabanı ayarlarıyla bir .env dosyası yazar. Gizli değerleri ekrana basmadan yalnızca ortam değişkeni adlarını listeleyin:

Bash
cut -d= -f1 .env

Dosyayı nano .env ile açın ve şu satırları içerdiğinden emin olun. Strapi'yi yalnızca Caddy erişebilsin diye 127.0.0.1 adresine bağlayın, genel adresinizi girin ve isterseniz telemetriyi kapatın:

.env
HOST=127.0.0.1
PORT=1337
PUBLIC_URL=https://cms.example.com
APP_KEYS=generated-value-1,generated-value-2,generated-value-3,generated-value-4
API_TOKEN_SALT=generated-value
ADMIN_JWT_SECRET=generated-value
TRANSFER_TOKEN_SALT=generated-value
JWT_SECRET=generated-value
ENCRYPTION_KEY=generated-value
DATABASE_CLIENT=postgres
DATABASE_HOST=127.0.0.1
DATABASE_PORT=5432
DATABASE_NAME=strapi
DATABASE_USERNAME=strapi
DATABASE_PASSWORD=change-me
DATABASE_SSL=false
STRAPI_TELEMETRY_DISABLED=true

Bir gizli değer eksikse (örneğin .env dosyası Git'te olmayan mevcut bir projeyi klonladıysanız) her değeri openssl rand -base64 32 ile üretin; APP_KEYS virgülle ayrılmış birkaç değer alır. Ardından dosyayı yalnızca sahibinin okuyabileceği hale getirin:

Bash
chmod 600 .env

Sonra Strapi'ye genel adresini ve tek bir reverse proxy arkasında çalıştığını bildirin. config/server.js dosyasını nano config/server.js ile açın ve içeriğini şununla değiştirin:

Text
module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  url: env('PUBLIC_URL', 'https://cms.example.com'),
  proxy: {
    koa: true,
    maxIpsCount: 1,
  },
  app: {
    keys: env.array('APP_KEYS'),
  },
});

proxy.koa: true, Strapi'nin Caddy'nin gönderdiği X-Forwarded-* başlıklarına güvenmesini sağlar; maxIpsCount: 1 bu güveni tam olarak tek bir proxy ile sınırlar. Strapi'nin Caddy rehberi, maxIpsCount ayarlanmazsa sayının sınırsız kabul edildiğini belirtir. Bu dosyadaki değişiklikler yönetim panelinin yeniden derlenmesini gerektirir; bunu bir sonraki adımda yaparsınız.

Adım 5 — Derleyin, PM2 ile başlatın ve ilk yöneticiyi oluşturun

Yönetim panelini derleyin. NODE_ENV değişkenini yalnızca derleme komutunun kendisinde verin: Strapi'nin PM2 rehberi, bunu tüm oturum için dışa aktarmanın npm'in derlemenin ihtiyaç duyduğu geliştirme bağımlılıklarını atlamasına yol açtığını belirtir.

Bash
NODE_ENV=production npm run build

PM2 yapılandırmasını /srv/strapi/app içinde nano ecosystem.config.js ile oluşturun:

Text
module.exports = {
  apps: [
    {
      name: 'strapi',
      cwd: '/srv/strapi/app',
      script: 'npm',
      args: 'start',
      env: {
        NODE_ENV: 'production',
      },
    },
  ],
};

npm start, otomatik yeniden yükleme olmadan çalışan üretim modu strapi start komutunu çalıştırır. Uygulamayı başlatın ve Strapi hazır olduğunda HTTP/1.1 204 No Content döndüren sağlık uç noktasını kontrol edin:

Bash
pm2 start ecosystem.config.js
pm2 list
curl -I http://127.0.0.1:1337/_health

Bir yönetici oluşana kadar /admin sayfası, onu açan herkese bir kayıt formu gösterir. Site herkese açılmadan önce ilk yöneticiyi komut satırından oluşturun. Komutu parametresiz çalıştırın ve ad, e-posta ve parola sorularını yanıtlayın:

Bash
npx strapi admin:create-user

Şimdi PM2'nin açılışta başlamasını sağlayın. strapi kabuğundan çıkın, strapi kullanıcısı için systemd birimini üretin ve mevcut süreç listesini kaydedin:

Bash
exit
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u strapi --hp /srv/strapi
sudo -iu strapi pm2 save
systemctl status pm2-strapi --no-pager

Birimin adı pm2-strapi'dir ve active görünmelidir. Bir uygulama eklediğinizde veya adını değiştirdiğinizde pm2 save komutunu yeniden çalıştırın. Son olarak, Strapi'nin PM2 rehberinin önerdiği gibi PM2'nin kendi loglarının diski doldurmasını önleyin:

Bash
sudo -iu strapi pm2 install pm2-logrotate
sudo -iu strapi pm2 set pm2-logrotate:max_size 10M
sudo -iu strapi pm2 set pm2-logrotate:retain 7

Adım 6 — Strapi'yi Caddy ile HTTPS üzerinden yayınlayın

/etc/caddy/Caddyfile dosyasına bir site bloğu ekleyin. Caddy sertifikayı kendisi alır ve yeniler:

Caddyfile
cms.example.com {
    reverse_proxy 127.0.0.1:1337
}
Bash
sudo systemctl reload caddy

Güvenlik duvarında yalnızca SSH ve web trafiğine izin verin. Strapi yalnızca 127.0.0.1 üzerinde dinlediği için 1337 portu kapalı kalır:

Bash
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ss -tlnp | grep 1337

Son komut 0.0.0.0:1337 değil, 127.0.0.1:1337 göstermelidir. Genel uç noktayı curl -I https://cms.example.com/_health ile kontrol edin, ardından https://cms.example.com/admin adresini açıp Adım 5'teki hesapla giriş yapın. Nginx mi tercih ediyorsunuz? Aynı hedefle Nginx ve Certbot rehberini kullanın; Traefik de çalışır.

Adım 7 — İçerik türlerini geliştirmede değiştirin, sonra dağıtın

Sunucuda Strapi, Content-Type Builder'ın kapalı olduğu üretim modunda çalışır. Strapi'nin SSS sayfası nedenini açıklar: şemalar src/api/article/content-types/article/schema.json gibi dosyalardır ve değiştirilmeleri yeniden başlatma gerektirir. Sunucuyu bir dağıtım hedefi olarak kullanın:

  1. Projeyi özel bir Git deposuna gönderin. Strapi'nin ürettiği .gitignore dosyası .env ve node_modules dosyalarını dışarıda bırakmalıdır; git check-ignore .env ile doğrulayın.
  2. Projeyi iş istasyonunuza klonlayın, npm install ve npm run develop çalıştırın ve içerik türlerini orada tasarlayın veya değiştirin.
  3. Commit edin, gönderin ve sunucuda dağıtın.

Sunucudaki kopyayı deponuza bağlamak için /srv/strapi/app içinde strapi olarak şunları çalıştırın (strapi kullanıcısının depoyu okuyabilmesi gerekir, örneğin salt okunur bir deploy anahtarıyla):

Bash
git status
git remote add origin [email protected]:team/cms.git
git push -u origin HEAD

Her dağıtım bundan sonra şöyle görünür:

Bash
sudo -iu strapi
cd /srv/strapi/app
git pull
npm ci
NODE_ENV=production npm run build
pm2 restart strapi --update-env

Strapi başlarken veritabanı şemasını senkronize eder; kaldırılan bir alan, kaldırılan veri demektir. Şema değişikliklerini dağıtmadan önce yedek alın.

Yedekleme ve geri yükleme

Durumu üç şey tutar: PostgreSQL veritabanı, public/uploads içindeki yüklenen dosyalar (varsayılan yerel yükleme sağlayıcısı) ve .env içindeki gizli değerler. Kodun kendisi Git'te durur. Özel bir yedek klasörü oluşturun ve her şeyi tarihli adlarla dökün:

Bash
sudo mkdir -p /opt/backups
sudo chown $USER:$USER /opt/backups
chmod 700 /opt/backups
sudo -u postgres pg_dump -Fc strapi > /opt/backups/strapi-db-$(date +%F).dump
sudo tar czf /opt/backups/strapi-files-$(date +%F).tar.gz -C /srv/strapi/app public/uploads .env

pg_dump, Strapi çalışmaya devam ederken tutarlı bir anlık görüntü üretir. Strapi'nin kendi strapi export komutu içeriği ortamlar arasında taşımak için kullanışlıdır; ancak yönetici kullanıcıları ve API token'larını içermez, bu yüzden yedeğin yerini tutmaz, ona eklenir. İsterseniz strapi olarak çalıştırın (arşiv şifrelenmemiştir; onu veritabanı dökümü kadar dikkatli saklayın):

Bash
sudo -iu strapi
cd /srv/strapi/app
npm run strapi export -- --no-encrypt -f /srv/strapi/export-$(date +%F)
exit

Geri yüklemek için Strapi'yi durdurun, veritabanını yeniden oluşturun, dökümü yükleyin, dosyaları açın ve yeniden başlatın. Tarihleri kendi yedeğinizinkilerle değiştirin:

Bash
sudo -iu strapi pm2 stop strapi
sudo -u postgres dropdb strapi
sudo -u postgres createdb --owner=strapi strapi
sudo -u postgres pg_restore -d strapi < /opt/backups/strapi-db-2026-10-09.dump
sudo tar xzf /opt/backups/strapi-files-2026-10-09.tar.gz -C /srv/strapi/app
sudo chown -R strapi:strapi /srv/strapi/app/public/uploads /srv/strapi/app/.env
sudo -iu strapi pm2 start strapi

Yeni bir sunucuda önce Adım 1–3'ü çalıştırın (proje oluşturmak yerine deponuzu klonlayarak), sonra geri yükleyin. Yedekleri sunucunun dışına da kopyalayın, örneğin rsync ile başka bir makineye; ara sıra bir geri yükleme denemesi yapın.

Strapi'yi güncelleme

Strapi'yi sunucuda değil geliştirme ortamında yükseltin; çünkü resmi yükseltme aracı kodunuzu düzenler. Önce sürüm notlarını okuyun ve yedek alın. Geliştirme kopyanızda değişiklikleri önce deneme çalıştırmasıyla görün, sonra uygulayın:

Bash
npx @strapi/upgrade minor --dry
npx @strapi/upgrade minor

patch ve minor mevcut ana sürümünüz içinde kalır. major bir sonraki ana sürüme geçer, ancak mevcut ana sürümün en son minor ve patch sürümünde olmanızı ister; latest bir onaydan sonra ana sürümleri de aşabilir. Araç bağımlılıkları günceller ve codemod'ları çalıştırır; veri taşımaz. Değişiklikleri inceleyin, npm run develop ile test edin, commit edin ve Adım 7'deki rutinle dağıtın.

Node.js yama sürümleri sudo apt update && sudo apt upgrade ile gelir. Yeni bir Node.js ana hattına geçmek için depo dosyasındaki NODE_MAJOR değerini Strapi'nin desteklediği başka bir sürüme çevirin, yükseltin, yeniden derleyin ve PM2 belgelerinin önerdiği gibi PM2'nin açılış betiğini yeniden üretin: pm2 unstartup çalıştırın, ardından Adım 5'teki pm2 startup komutunu tekrarlayın. PM2'nin kendisini sudo npm install -g pm2 ile güncelleyin, sonra strapi olarak pm2 update çalıştırın.

Sorun giderme

Yeni kurulumda yönetim paneli 500 hatası döndürüyor

Veritabanı kullanıcısı public şemasında tablo oluşturamıyor. Adım 1'deki GRANT ALL ON SCHEMA public TO strapi; komutunu çalıştırın, ardından strapi kullanıcısıyla pm2 restart strapi komutunu verin.

Derleme JavaScript heap out of memory hatasıyla duruyor veya süreç sonlandırılıyor

Yönetim paneli derlemesi boştaki bellekten fazlasına ihtiyaç duyuyor. Diğer ağır süreçleri durdurun, geçici bir swap dosyası ekleyin veya Strapi'nin önerdiği en az 4 GB belleğe sahip bir sunucuya geçin. Bellek yetersizliğinden sonlandırılan süreçler için free -h ve dmesg | tail çıktısına bakın.

Sunucuda Content-Type Builder kapalı

Üretim modunda bu beklenen davranıştır. İçerik türlerini bir geliştirme kopyasında oluşturup değiştirin ve Adım 7'de anlatıldığı gibi dağıtın.

Yönetim paneli istekleri localhost'a veya düz HTTP'ye gidiyor

PUBLIC_URL eksik veya yanlış ya da yönetim paneli config/server.js değiştirilmeden önce derlenmiş. .env dosyasını ve url ayarını düzeltin, NODE_ENV=production npm run build ile yeniden derleyin ve pm2 restart strapi --update-env çalıştırın.

Strapi yeniden başlatmadan sonra geri gelmiyor

Açılış birimi eksik veya süreç listesi kaydedilmemiş. systemctl status pm2-strapi ile kontrol edin, Adım 5'teki pm2 startup ve pm2 save komutlarını tekrarlayın ve logları strapi olarak pm2 logs strapi --lines 100 ile okuyun.

Sonraki adımlar

Sık sorulan sorular

Üretim sunucusunda içerik türü oluşturabilir veya düzenleyebilir miyim?

Hayır. Strapi içerik türü şemalarını projede dosya olarak saklar ve üretim modunda Content-Type Builder'ı kapatır. Şema değişikliklerini npm run develop ile bir geliştirme kopyasında yapın, Git'e commit edin, ardından sunucuda çekip derleyin ve yeniden başlatın.

Strapi 5 hangi Node.js sürümünü destekler?

Strapi yalnızca Node.js'in Active LTS ve Maintenance LTS sürümlerini destekler; dağıtım sayfası 22, 24 ve 26 sürümlerini listeler. 23 veya 25 gibi tek sayılı sürümler desteklenmez. Bu rehber Node.js 24'ü NodeSource deposundan kurar.

PM2 mi kullanmalıyım, yoksa düz bir systemd servisi mi?

Strapi'nin dağıtım belgeleri PM2 gibi bir süreç yöneticisini kuvvetle önerir. PM2'nin startup komutu bir systemd birimi üretir; böylece ikisinden de yararlanırsınız: PM2 Strapi'yi ayakta tutar, systemd de PM2'yi açılışta root olmayan strapi kullanıcısıyla başlatır.

strapi export tam bir yedek midir?

Hayır. Dışa aktarma arşivi içeriği, yüklenen dosyaları, yapılandırmayı ve şemaları içerir; ancak Strapi belgelerine göre yönetici kullanıcılar ve API token'ları dışa aktarılmaz. Asıl yedek olarak pg_dump ile public/uploads ve .env arşivini kullanın; dışa aktarmayı ortamlar arasında içerik taşımak için saklayın.

PostgreSQL yerine SQLite kullanabilir miyim?

SQLite desteklenir ve yeni projelerde varsayılandır; ancak bu rehber PostgreSQL kullanır, böylece veritabanı ayrı bir servis olarak çalışır ve Strapi çalışırken pg_dump ile dökülebilir. MongoDB ve diğer NoSQL veritabanları desteklenmez.

Strapi hangi HyperDC sunucularında çalışır?

Root erişiminiz ve desteklenen bir Ubuntu veya Debian sürümünüz olan her HyperDC Linux VPS, VDS veya dedicated sunucuda. Strapi en az 2 GB RAM ister ve 4 GB veya üzerini önerir; sunucuyu trafiğin yanında yönetim paneli derlemesine göre de boyutlandırın.

Kaynaklar

Şifre Oluştur

Lütfen onaylayın