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.
This commit is contained in:
Poyraz
2026-06-16 09:57:32 +03:00
parent da8c55d1ad
commit 72a0b38f3e
48 changed files with 2463 additions and 13020 deletions
+126
View File
@@ -0,0 +1,126 @@
---
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.