Files
neta/docs/05-env-ayarlari.md
T

3.8 KiB
Raw Blame History

title, description, order, status
title description order status
Environment Ayarları Neta'yı çalıştırmak için gereken ortam değişkenleri. 5 legacy-v2-archive

Environment Ayarları

Arşiv: Aşağıdaki Supabase env sözleşmesi v2'ye aittir. Güncel environment sözleşmesi .env.example, repository README.md ve Faz 8 runbook'unda tanımlıdır.

Neta'nın çalışması için az sayıda ama kritik ortam değişkeni gerekiyor. Uygulama artık Supabase'i kendi içinde ayağa kaldırmadığı için bütün Supabase bağlantı bilgileri dışarıdan verilir.

Local geliştirme için .env.example dosyasını .env.local olarak kopyalayabilirsiniz. Production tarafında ise aynı değerleri Vercel, Coolify veya Dokploy panelinden environment variable olarak eklemek gerekir.

Gerekli Değişkenler

NEXT_PUBLIC_SITE_URL=https://your-domain.com
NEXT_PUBLIC_SUPABASE_URL=https://your-project-ref.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key

NEXT_PUBLIC_SITE_URL

Uygulamanın dışarıdan açıldığı URL'dir.

Local geliştirmede:

NEXT_PUBLIC_SITE_URL=http://localhost:3000

Production'da:

NEXT_PUBLIC_SITE_URL=https://neta.example.com

Bu değer özellikle link üretme, callback ve ileride e-posta akışları gibi noktalarda işe yarar.

NEXT_PUBLIC_SUPABASE_URL

Supabase project API URL değeridir.

Supabase panelinde şu bölümden alınır:

Project Settings -> API -> Project URL

Format genellikle şöyledir:

NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co

Bu değer public olabilir. Browser tarafındaki Supabase client da bu URL'yi kullanır.

NEXT_PUBLIC_SUPABASE_ANON_KEY

Supabase anon/public key değeridir.

Supabase panelinde şu bölümden alınır:

Project Settings -> API -> Project API keys -> anon public

Bu değer browser tarafında kullanılabilir. Zaten NEXT_PUBLIC_ prefix'i bu yüzden vardır. Güvenlik bu key'in gizli olmasından değil, Supabase RLS policy'lerinin doğru yazılmış olmasından gelir.

SUPABASE_SERVICE_ROLE_KEY

Bu en hassas değişkendir. Supabase service role key, RLS'i bypass edebilir. Bu yüzden asla NEXT_PUBLIC_ prefix'iyle tanımlanmamalıdır.

Supabase panelinde şu bölümden alınır:

Project Settings -> API -> Project API keys -> service_role

Neta bu key'i sadece server tarafında kullanır.

Kullanıldığı yerler:

  • İlk admin kullanıcısı oluşturma.
  • Müşteri portal kullanıcısı oluşturma.
  • Storage upload işlemleri.
  • Bazı setup fallback kontrolleri.

Local .env.local Örneği

NEXT_PUBLIC_SITE_URL=http://localhost:3000
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=ey...
SUPABASE_SERVICE_ROLE_KEY=ey...

.env.local dosyası repoya commit edilmemelidir.

Production Env Kontrol Listesi

Deploy etmeden önce şunları kontrol ederim:

  • NEXT_PUBLIC_SUPABASE_URL boş değil.
  • NEXT_PUBLIC_SUPABASE_ANON_KEY doğru projeye ait.
  • SUPABASE_SERVICE_ROLE_KEY doğru projeye ait.
  • Production domain NEXT_PUBLIC_SITE_URL içine yazılmış.
  • Supabase Auth tarafında site URL ve redirect URL ayarları production domain ile uyumlu.

Yaygın Hatalar

Login Açılıyor Ama Kayıt Oluşturulamıyor

Genellikle SUPABASE_SERVICE_ROLE_KEY eksiktir veya yanlış projeye aittir.

Veriler Görünmüyor

Bu çoğu zaman env hatası değil, RLS policy hatasıdır. Kullanıcı session'ı doğru olsa bile policy izin vermiyorsa Supabase boş sonuç döndürür.

Storage Upload Çalışmıyor

Bucket adı, bucket policy veya service role key kontrol edilmelidir.

AI Asistan Çalışmıyor

AI provider ve API key ayarları uygulama içindeki Ayarlar ekranından kaydedilir. Ortam değişkeni olarak değil, app_settings tablosu üzerinden yönetilir.