Files
neta/docs/05-env-ayarlari.md
T
Poyraz 72a0b38f3e Remove obsolete scripts and configuration files for self-hosting and database migrations
- Deleted `pnpm-workspace.yaml` as it is no longer needed.
- Removed `apply-migrations.sh` script that handled database migrations.
- Eliminated `generate-full-stack-env.mjs` script for environment variable generation.
- Deleted `selfhost-backup.sh` script for creating backups of the self-hosted environment.
- Removed `selfhost-doctor.sh` script for health checks of the self-hosted services.
- Deleted `selfhost-restore.sh` script for restoring backups in the self-hosted environment.
2026-06-16 09:57:32 +03:00

127 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Environment Ayarları
description: Neta'yı çalıştırmak için gereken ortam değişkenleri.
order: 5
---
# Environment Ayarları
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
```env
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:
```env
NEXT_PUBLIC_SITE_URL=http://localhost:3000
```
Production'da:
```env
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:
```txt
Project Settings -> API -> Project URL
```
Format genellikle şöyledir:
```env
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:
```txt
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:
```txt
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
```env
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.