Sorun Giderme

Bu bölüm, Neta kurulumu ve kullanımı sırasında sık karşılaşılabilecek sorunları açıklar.

Database error finding user

Bu hata genellikle Supabase Auth servisinin Auth tablolarına doğru schema üzerinden erişemediğini gösterir.

Full-stack modda beklenen çözüm:

  • deploy/supabase/db/init.sh içinde supabase_auth_admin rolünün search_path ayarı doğru olmalıdır.
  • Temiz kurulumda Auth migrationları başarılı tamamlanmalıdır.
  • neta-auth logları kontrol edilmelidir.

Kontrol:

bash
docker logs neta-auth

Temiz kurulum için:

bash
docker compose -f docker-compose.full.yml down -v
docker compose -f docker-compose.full.yml up -d --build

Production ortamında down -v kullanmadan önce yedek alınmalıdır.

Database error querying schema

Bu hata da çoğunlukla Auth schema veya migration state problemiyle ilgilidir.

Kontrol edilmesi gerekenler:

  • neta-auth migrationları başarıyla tamamlandı mı?
  • auth.users tablosu var mı?
  • auth.identities tablosu var mı?
  • Auth rolü doğru schema path ile çalışıyor mu?

Full-stack kurulumda bu yapı otomatik hazırlanmalıdır.

İlk kurulum kontrolü yapılamadı

Bu mesaj, uygulamanın şu RPC fonksiyonunu çağırırken hata aldığını gösterir:

text
public.is_first_admin_setup_available()

Olası sebepler:

  • 0009_lock_registration_after_first_admin.sql çalışmamıştır.
  • Migration yanlış Supabase projesinde çalışmıştır.
  • Uygulama .env.local üzerinden farklı Supabase projesine bağlanıyordur.
  • PostgREST schema cache güncel değildir.
  • Supabase bağlantı bilgileri hatalıdır.

Full-stack modda migration otomatik uygulanır. App-only modda migrationı doğru hosted Supabase projesinde çalıştırman gerekir.

/register Kayıt Kapalı Diyor

Bu her zaman hata değildir.

Eğer ilk admin veya herhangi bir profil kaydı zaten varsa /register kapanır ve /login sayfasına yönlendirir.

Kontrol mantığı:

sql
select public.is_first_admin_setup_available();

false dönüyorsa kayıt kapalıdır.

Migration Yanlış DB'de Çalıştı

Bu sık yapılan bir hatadır.

Örnek senaryo:

  • Docker full-stack DB'de migration çalıştırdın.
  • Ama .env.local hosted Supabase projesine bakıyor.
  • Uygulama hosted Supabase'e bağlandığı için Docker DB'deki migration görünmez.

Çözüm:

  • Uygulamanın hangi Supabase URL'ye bağlandığını kontrol et.
  • Migrationı aynı projenin veritabanında çalıştır.
  • Full-stack test için .env ve docker-compose.full.yml kullan.

Docker Daemon Kapalı

Hata örneği:

text
Cannot connect to the Docker daemon

Çözüm:

  • Docker Desktop'ı başlat.
  • Linux sunucuda Docker servisinin çalıştığını kontrol et:
bash
sudo systemctl status docker

Başlatmak için:

bash
sudo systemctl start docker

Port Çakışması

Eğer 3000, 8000 veya 54322 portları doluysa Compose başlatılamayabilir.

.env içinde portları değiştir:

env
NETA_PORT=3010
SUPABASE_API_PORT=8010
POSTGRES_PORT=54323

Sonra yeniden başlat:

bash
docker compose -f docker-compose.full.yml up -d --build

.env.local Hosted Supabase'e Bakıyor

Lokal geliştirme sırasında pnpm dev çalıştırırsan Next.js .env.local dosyasını okur.

Eğer .env.local içinde şu varsa:

env
NEXT_PUBLIC_SUPABASE_URL=https://project-ref.supabase.co

uygulama hosted Supabase'e bağlanır.

Self-host Docker stack için lokal geliştirme yapmak istiyorsan .env.local değerlerini self-host API URL'lerine göre düzenle.

Coolify veya Dokploy Env Eksikleri

Compose dosyası bazı env değerleri eksikse bilinçli olarak fail-fast davranır.

Örnek:

text
Set NEXT_PUBLIC_SUPABASE_URL in .env

Çözüm:

  • Environment panelinde tüm zorunlu değerleri gir.
  • NEXT_PUBLIC_SITE_URL ve NEXT_PUBLIC_SUPABASE_URL değerlerinin production domainleriyle uyumlu olduğundan emin ol.

Health Check Başarısız

Çalıştır:

bash
sh ./scripts/selfhost-doctor.sh

Hangi kontrolün failed olduğunu incele.

Sık sebepler:

  • Migration runner tamamlanmamıştır.
  • Proxy henüz healthy olmamıştır.
  • Veritabanı başlamamıştır.
  • Yanlış env değerleri kullanılmıştır.

Build Hatası

Build için:

bash
pnpm build

Docker build için:

bash
docker compose -f docker-compose.full.yml up -d --build

Build sırasında environment kaynaklı hata alırsan .env ve Compose env değerlerini kontrol et.