3.8 KiB
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, repositoryREADME.mdve 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_URLboş değil.NEXT_PUBLIC_SUPABASE_ANON_KEYdoğru projeye ait.SUPABASE_SERVICE_ROLE_KEYdoğru projeye ait.- Production domain
NEXT_PUBLIC_SITE_URLiç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.