Merkezi yetkilendirme (AuthApartmentDb) ve dinamik tenant veritabanı yapısı ile PLESK paneli üzerinde kurulum adımları.
Apartman Yönetimi
Merkezi Giriş & Auth DB
A Apartmanı
Dinamik Bağlantı (DB_A)
B Apartmanı
Dinamik Bağlantı (DB_B)
Tüm kullanıcılar ve apartman yetkileri merkezi "AuthApartmentDb" üzerinden yönetilir. Giriş sonrası seçilen apartmana göre ilgili veritabanına anlık geçiş yapılır.
Uygulamanız tek bir domain üzerinde merkezi olarak çalışır. Alt domain (subdomain) zorunluluğu yoktur.
https://apartment-management.engcan.com.trTüm kullanıcılar için tek giriş noktasıPLESK → Databases → Add Database ile merkezi yetki ve en az bir apartman veritabanı oluşturun.
Bağlantı şablonu (Auth ve Tenant DB'ler için):
mysql://KULLANICI:SIFRE@localhost:3306/AuthApartmentDb
Backend ve Frontend derlendikten sonra SSH veya File Manager ile yükleyin.
Uygulama kök dizinindeki .env dosyasını merkezi yapıya göre düzenleyin.
# ───────────────────────────────────────────────────────── # VERİTABANI BAĞLANTILARI # ───────────────────────────────────────────────────────── AUTH_DATABASE_URL="mysql://engin:SIFRE@localhost:3306/AuthApartmentDb" # Dinamik Veritabanları (Slug'a göre isimlendirin) TENANT_DB_a="mysql://engin:SIFRE@localhost:3306/apartman_a" TENANT_DB_b="mysql://engin:SIFRE@localhost:3306/apartman_b" # ───────────────────────────────────────────────────────── # JWT & GÜVENLİK # ───────────────────────────────────────────────────────── JWT_SECRET="guclu-bir-secret-buraya" JWT_EXPIRES_IN="7d" # ───────────────────────────────────────────────────────── # API & UYGULAMA # ───────────────────────────────────────────────────────── NEXT_PUBLIC_API_URL="https://apartment-management.engcan.com.tr/api" SUPER_ADMIN_DOMAIN="apartment-management.engcan.com.tr" PORT=3001
SSH üzerinden Prisma şemalarını oluşturun ve veritabanlarına uygulayın:
# 1. Bağımlılıkları yükle npm install --production # 2. Prisma Client'ları oluştur (Auth ve Standart şemalar için) npx prisma generate --schema=prisma/auth.prisma npx prisma generate --schema=prisma/schema.prisma # 3. Merkezi Auth veritabanını oluşturun npx prisma db push --schema=prisma/auth.prisma # 4. Apartman veritabanlarını (Tenant) oluşturun/güncelleyin # Her apartman DB'si için DATABASE_URL'i ezerek çalıştırın DATABASE_URL="mysql://.../apartment_managementA" npx prisma db push DATABASE_URL="mysql://.../apartment_managementB" npx prisma db push # 5. Mevcut verileri merkezi DB'e taşıyın (Eski subdomain yapısından geçişse) npm run migrate:central
Login olunca "Üzgünüz, henüz herhangi bir apartman için yetkilendirilmemişsiniz" uyarısı.
Kullanıcının AuthApartmentDb üzerindeki "UserTenant" tablosunda ilgili apartman (tenantId) ile eşleştiğinden emin olun. Süper Admin panelinden yetki verebilirsiniz.
Süper Admin girişi nereden yapılıyor?
/super-admin/login adresinden giriş yapabilirsiniz. Bu kullanıcıların Auth DB'de "isSuperAdmin" alanı true olmalıdır.