Files
ihaleist/docs/quality/deployment-runbook.md
T

2.7 KiB
Raw Blame History

İhaleist yayın ve geri dönüş çalışma notu

Bu çalışma notu üretim dağıtımında kullanılacak kontrol sırasını tanımlar. Gerçek üretim erişimi ve sağlayıcı hesapları bu depoda tutulmaz.

Zorunlu üretim değişkenleri

  • NODE_ENV=production
  • AUTH_SECRET: en az 32 rastgele baytın hex/base64 karşılığı; Google istemci kimliği yerine kullanılamaz.
  • CORS_ORIGINS: frontend originlerinin virgülle ayrılmış tam HTTPS adresleri.
  • Sağlayıcı kullanılacaksa ilgili GOOGLE_CLIENT_ID, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, RESEND_API_KEY ve TELEGRAM_BOT_TOKEN değerleri.
  • IHALEIST_USER_DATA_DIR ve IHALEIST_SHARED_DATA_DIR: kalıcı volume altında, uygulama dışından erişilemeyen dizinler.

Compose ile staging smoke testi

Kökteki docker-compose.production.yml production benzeri container, kalıcı ihaleist-data volume’u ve /api/ready healthcheck’i tanımlar. AUTH_SECRET zorunludur; sağlayıcı değişkenleri yalnız ilgili entegrasyon açılacaksa verilir.

AUTH_SECRET="<uzun-rastgele-değer>" IHALEIST_IMAGE=ihaleist:ci IHALEIST_PORT=18080 \
  docker compose -f docker-compose.production.yml up -d
docker compose -f docker-compose.production.yml ps
AUTH_SECRET=dummy docker compose -f docker-compose.production.yml down

Yerel compose smoke testi 6 Eylül 2026’da healthy duruma ulaştı; bu sonuç production deployment kanıtı değildir.

Yayın öncesi

  1. npm ci, npm test ve npm run build çalıştırılır; build chunk uyarıları yayın engeli değil, performans backlog’u olarak kaydedilir.
  2. Veritabanı ve server/data volume’ünün tarihli, geri yüklenebilir yedeği alınır; yedek içeriği loglanmaz.
  3. Yeni imaj staging’de başlatılır; /api/health, giriş, dosya yükleme/indirme ve beş sabit regresyon ihalesi doğrulanır.
  4. CORS allowlistesi, auth secret ve sağlayıcı test anahtarları staging yanıtlarında kontrol edilir.

Kademeli yayın

Önce tek test firmasıyla trafik açılır. Kayıt, belge, analiz ve bildirim metrikleri izlenir. Hata oranı veya veri tutarsızlığı artarsa yeni trafik durdurulur; dış sağlayıcılara gerçek ödeme, e-posta veya resmi teklif gönderimi yapılmaz.

Geri dönüş

Sorun halinde önce uygulama imajı son doğrulanmış sürüme alınır. Migration verisi silinmez veya körlemesine tersine çevrilmez; yedek ayrı bir staging kopyasına geri yüklenerek kayıtlar karşılaştırılır. Veri kaybı şüphesi varsa yalnızca doğrulanmış yedekten ileri düzeltme yapılır ve olay commit, sürüm, iz sürme kimliği ve etkilenen kayıt türüyle kaydedilir.

Bu not, staging/production erişimi ve gerçek yedek geri yükleme kanıtı olmadan “yayın kabul edildi” anlamına gelmez.