$npx -y skills add komunite/tezgah --skill saas-deploymentSaaS uygulamasını production'a taşı. Vercel, Railway veya Fly.io ile deployment, domain yapılandırması, SSL, ortam değişkenleri, CI/CD, izleme ve operasyonel hazırlık. Bu skill'i kullanıcı deploy, yayınlama, production, hosting, domain, SSL, CI/CD, monitoring veya "siteyi canlıya
| 1 | # SaaS Deployment — Production'a Taşıma ve Operasyon |
| 2 | |
| 3 | Bu skill, bir SaaS uygulamasını development ortamından production'a taşır ve operasyonel hazırlığını sağlar. Deployment "kodu sunucuya yüklemek" değildir — tüm dış servisleri production moduna geçirmek, güvenliği doğrulamak ve izleme kurmaktır. |
| 4 | |
| 5 | **Bağımlılık:** Bu skill **saas-launcher** orkestratör skill'inin Faz 8'idir. Bağımsız olarak da kullanılabilir. İdeal olarak tüm diğer fazlar tamamlandıktan sonra uygulanır. |
| 6 | |
| 7 | **Bağlı skill'ler:** Tüm diğer skill'lerin production geçiş adımları bu skill'de toplanır. |
| 8 | - **saas-auth** — Production OAuth callback URL'leri, production secret |
| 9 | - **saas-payments** — Live Stripe/LS anahtarları, production webhook URL |
| 10 | - **saas-email** — DNS doğrulaması tamamlanmış olmalı |
| 11 | - **saas-landing-seo** — SEO kontrol listesi geçirilmiş olmalı |
| 12 | - **saas-api-security** — Güvenlik kontrol listesi geçirilmiş olmalı |
| 13 | |
| 14 | --- |
| 15 | |
| 16 | ## Hosting Platformu Seçimi |
| 17 | |
| 18 | ### Vercel — Varsayılan Önerimiz |
| 19 | |
| 20 | **Ne zaman seç:** Next.js kullanan hemen hemen her proje için. |
| 21 | |
| 22 | Neden: Next.js'in yapımcısı olan şirketin hosting platformu. Sıfır konfigürasyon — repo'yu bağla, deploy et, bitti. Otomatik preview deployment'lar (her PR için ayrı URL), edge network ile global düşük latency, dahili analytics ve Web Vitals ölçümü, ücretsiz SSL. |
| 23 | |
| 24 | Ücretsiz katman sınırları: Aylık 100 GB bandwidth, 100 saat build süresi, serverless function'lar 10 saniye timeout. Çoğu erken SaaS için fazlasıyla yeterli. |
| 25 | |
| 26 | Ne zaman yetmez: Uzun süren background job'lar (10 saniyeyi aşan işlemler), WebSocket gerektiren uygulamalar (Vercel WebSocket desteği sınırlı), kendi veritabanını aynı platformda isteyenler. |
| 27 | |
| 28 | ### Railway |
| 29 | |
| 30 | **Ne zaman seç:** Veritabanı + uygulama tek platformda olsun isteyenler için. |
| 31 | |
| 32 | Neden: PostgreSQL, Redis, MySQL gibi servisleri aynı platformda barındırır. Cron job ve background worker desteği. Docker container çalıştırma imkânı. |
| 33 | |
| 34 | Ücretsiz katman: Aylık $5 kredi. Küçük projeler için yeterli ama traffic artınca hızla ücretli plana geçiş gerekir. |
| 35 | |
| 36 | ### Fly.io |
| 37 | |
| 38 | **Ne zaman seç:** Global dağıtım, container bazlı deployment, WebSocket veya uzun süreli bağlantılar gerektiren projeler için. |
| 39 | |
| 40 | Neden: Container'ları birden fazla bölgede çalıştırır. Persistent volume (kalıcı disk) desteği. WebSocket ve long-polling doğal desteklenir. |
| 41 | |
| 42 | Ek yük: Dockerfile yazmak ve yönetmek gerekir. Vercel veya Railway kadar "sıfır konfigürasyon" değil. |
| 43 | |
| 44 | --- |
| 45 | |
| 46 | ## Production'a Geçiş Sırası |
| 47 | |
| 48 | Deployment sadece "kodu yükle" değildir. Şu sırayı takip et: |
| 49 | |
| 50 | ### Adım 1: Production Ortam Değişkenleri |
| 51 | |
| 52 | Development'ta kullandığın her değişkenin production karşılığını oluştur. Bunlar farklı olmalıdır: |
| 53 | |
| 54 | **Auth:** |
| 55 | - `NEXTAUTH_SECRET` — Production için yeni değer üret (openssl rand -base64 32). Development ile aynı olmamalı. |
| 56 | - `NEXTAUTH_URL` — Production domain'i: `https://uygulamam.com` |
| 57 | - Google OAuth Client: Aynı client kullanılabilir ama callback URL'lerine production domain eklenmiş olmalı. |
| 58 | |
| 59 | **Ödeme (bkz. saas-payments):** |
| 60 | - Stripe/LS anahtarları: Test anahtarlarından live anahtarlara geç. `sk_test_` → `sk_live_`, `pk_test_` → `pk_live_`. |
| 61 | - Price ID'ler: Live modda oluşturulan ürünlerin ID'leri test modundakilerden farklıdır. Güncelle. |
| 62 | - Webhook secret: Production webhook endpoint'i için yeni secret oluşturulur. |
| 63 | |
| 64 | **Veritabanı:** |
| 65 | - Production veritabanı instance'ı kullan. Development DB'sini production'da kullanma. |
| 66 | - Bağlantı string'inde connection pooling parametrelerini ekle (serverless ortam için). |
| 67 | |
| 68 | **E-posta:** |
| 69 | - API anahtarı aynı kalabilir ama domain doğrulamasının tamamlanmış olduğunu kontrol et. |
| 70 | |
| 71 | **Genel:** |
| 72 | - `NEXT_PUBLIC_SITE_URL` — Production domain'i: `https://uygulamam.com` |
| 73 | |
| 74 | ### Adım 2: Platform Kurulumu |
| 75 | |
| 76 | Seçilen hosting platformunda: |
| 77 | 1. Yeni proje oluştur ve GitHub repo'sunu bağla |
| 78 | 2. Ortam değişkenlerini ekle (Adım 1'deki production değerleri) |
| 79 | 3. İlk deploy'u tetikle |
| 80 | 4. Build'in başarılı olduğunu doğrula |
| 81 | |
| 82 | ### Adım 3: Domain Yapılandırması |
| 83 | |
| 84 | **DNS kayıtları:** |
| 85 | - Hosting platformunun verdiği IP veya CNAME kaydını domain sağlayıcında ekle |
| 86 | - www → non-www yönlendirmesi ayarla (veya tersi — birini seç, tutarlı ol) |
| 87 | - SSL sertifikası otomatik oluşturulmasını bekle (genellikle birkaç dakika) |
| 88 | |
| 89 | **DNS yayılımı:** 15 dakika ile 48 saat arasında sürebilir. `dig uygulamam.com A` komutu ile yayılımı kontrol et. Sabırlı ol. |
| 90 | |
| 91 | ### Adım 4: Ödeme Sistemi Production Geçişi |
| 92 | |
| 93 | Bu adım kritiktir ve dikkatli yapılmalı (detaylar **saas-payments** skill'inde): |
| 94 | |
| 95 | 1. Ödeme sağlayıcı dashboard'unda live mode'a geç |
| 96 | 2. Live modda ürünler ve fiyatlar oluştur |
| 97 | 3. Production webhook |