177 lines
4.5 KiB
Markdown
177 lines
4.5 KiB
Markdown
---
|
||
title: Sorun Giderme
|
||
description: Kurulum, deploy, Supabase ve giriş problemlerinde kontrol edilmesi gerekenler.
|
||
order: 15
|
||
status: legacy-v2-archive
|
||
---
|
||
|
||
# Sorun Giderme
|
||
|
||
> Arşiv: Aşağıdaki Supabase/RLS sorun giderme akışı v2'ye aittir. v3 operasyon kontrolleri ve health endpoint'leri Faz 8 runbook'unda tanımlıdır.
|
||
|
||
Neta bir Next.js uygulaması gibi deploy edilse de Supabase, RLS, Auth ve Storage bağlantıları olduğu için sorunları doğru katmanda aramak önemli. Bu sayfada en sık karşılaşılabilecek durumları topladım.
|
||
|
||
## Login Sayfası Açılmıyor
|
||
|
||
Önce `.next` cache'ini temizleyin:
|
||
|
||
```powershell
|
||
Remove-Item .next -Recurse -Force
|
||
```
|
||
|
||
Sonra dev server'ı tekrar başlatın:
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
Eğer sayfa hâlâ açılmıyorsa şunları kontrol edin:
|
||
|
||
- `NEXT_PUBLIC_SUPABASE_URL` dolu mu?
|
||
- `NEXT_PUBLIC_SUPABASE_ANON_KEY` doğru mu?
|
||
- Supabase projesi erişilebilir mi?
|
||
- Dev server loglarında route compile hatası var mı?
|
||
|
||
Login sayfası public route olduğu için session kontrolünün sayfayı bloklamaması gerekir.
|
||
|
||
## Giriş Yapıyorum Ama Dashboard Açılmıyor
|
||
|
||
Kontrol edilecekler:
|
||
|
||
- Kullanıcının `profiles` tablosunda kaydı var mı?
|
||
- `profiles.role` değeri `freelancer` mı?
|
||
- Kullanıcı yanlışlıkla `client` rolünde mi?
|
||
- Middleware kullanıcıyı `/portal` tarafına mı yönlendiriyor?
|
||
|
||
Client rolündeki kullanıcı dashboard'a değil, portal'a yönlendirilir.
|
||
|
||
## İlk Admin Oluşturulamıyor
|
||
|
||
Bu genellikle service role veya Supabase function problemidir.
|
||
|
||
Kontrol edin:
|
||
|
||
- `SUPABASE_SERVICE_ROLE_KEY` var mı?
|
||
- Service role key doğru Supabase projesine mi ait?
|
||
- `request_internal_auth_creation` function'ı var mı?
|
||
- `is_first_admin_setup_available` function'ı var mı?
|
||
- `profiles` tablosu var mı?
|
||
- Auth trigger yeni kullanıcı için profile oluşturuyor mu?
|
||
|
||
## Register Kapalı Görünüyor
|
||
|
||
`profiles` tablosunda herhangi bir kayıt varsa sistem ilk admin kurulmuş kabul eder.
|
||
|
||
Supabase SQL editor'da kontrol edebilirsiniz:
|
||
|
||
```sql
|
||
select id, role from public.profiles;
|
||
```
|
||
|
||
Geliştirme ortamında yanlış kayıt oluştuysa auth user ve profile kayıtlarını temizleyip tekrar deneyebilirsiniz.
|
||
|
||
## Veri Ekleniyor Ama Listede Görünmüyor
|
||
|
||
Bu çoğu zaman RLS kaynaklıdır.
|
||
|
||
Kontrol edin:
|
||
|
||
- Kayıtta `user_id` doğru mu?
|
||
- Policy `auth.uid() = user_id` mantığıyla uyumlu mu?
|
||
- Sorguda `.eq("user_id", user.id)` filtresi var mı?
|
||
- Kullanıcı session'ı gerçekten var mı?
|
||
|
||
Supabase bazen yetkisiz veriyi hata yerine boş sonuç olarak döndürür. Bu yüzden boş listeyi her zaman "veri yok" diye yorumlamamak gerekir.
|
||
|
||
## Storage Upload Hata Veriyor
|
||
|
||
Kontrol listesi:
|
||
|
||
- `avatars` bucket var mı?
|
||
- `project-assets` bucket var mı?
|
||
- `project-assets` private mı?
|
||
- Dosya boyutu 5 MB sınırını aşıyor mu?
|
||
- MIME type izinli mi?
|
||
- Storage policy service role erişimine izin veriyor mu?
|
||
- `SUPABASE_SERVICE_ROLE_KEY` doğru mu?
|
||
|
||
## Proje Görseli Yükleniyor Ama Görünmüyor
|
||
|
||
`project-assets` private bucket olduğu için public URL beklemeyin. Uygulama signed URL üretir.
|
||
|
||
Kontrol edin:
|
||
|
||
- `cover_image_path` tabloya yazılmış mı?
|
||
- Signed URL üretimi hata veriyor mu?
|
||
- Bucket adı doğru mu?
|
||
|
||
## AI Asistan Cevap Vermiyor
|
||
|
||
Kontrol edin:
|
||
|
||
- Ayarlar ekranında provider seçilmiş mi?
|
||
- API key kaydedilmiş mi?
|
||
- `app_settings` tablosunda kullanıcı için kayıt var mı?
|
||
- Provider ile model adı uyumlu mu?
|
||
- API key geçerli mi?
|
||
|
||
Chat endpoint'i için route:
|
||
|
||
```txt
|
||
/api/chat
|
||
```
|
||
|
||
## Finans veya Proje Analizi Hata Veriyor
|
||
|
||
Bu endpoint'ler de AI provider ayarlarını kullanır:
|
||
|
||
```txt
|
||
/api/finance-analysis
|
||
/api/project-risk
|
||
```
|
||
|
||
Eğer API key yoksa analiz endpoint'i hata döndürür.
|
||
|
||
## Build Hatası
|
||
|
||
Önce bağımlılıkları temiz kurmayı deneyin:
|
||
|
||
```bash
|
||
npm install
|
||
npm run build
|
||
```
|
||
|
||
Projede npm lockfile kullanılmalıdır. `pnpm-lock.yaml` veya başka lockfile'lar deployment platformunu karıştırabilir.
|
||
|
||
## Slow Filesystem Uyarısı
|
||
|
||
Next.js dev server bazen Windows veya yavaş disk üzerinde şu tarz uyarı verebilir:
|
||
|
||
```txt
|
||
Slow filesystem detected
|
||
```
|
||
|
||
Bu uyarı tek başına hata değildir. Ama dev server çok yavaşsa:
|
||
|
||
- Projeyi daha hızlı lokal diske taşıyın.
|
||
- `.next` klasörünü temizleyin.
|
||
- Antivirüs taramasının proje klasörünü yavaşlatmadığından emin olun.
|
||
|
||
## Health Check
|
||
|
||
Uygulamanın temel olarak ayağa kalktığını test etmek için:
|
||
|
||
```txt
|
||
/api/health
|
||
```
|
||
|
||
Beklenen cevap:
|
||
|
||
```json
|
||
{
|
||
"status": "ok"
|
||
}
|
||
```
|
||
|
||
Bu endpoint Supabase bağlantısını test etmez; sadece Next.js uygulamasının çalıştığını gösterir.
|