Ortam Değişkenleri
Neta kurulumunda environment değişkenleri uygulamanın hangi URL'leri kullanacağını, Supabase bağlantılarını, JWT secret değerlerini ve portları belirler.
Dosya Ayrımı
Docker Compose:
.envdosyasını kullanır.
Lokal Next.js geliştirme:
.env.localdosyasını kullanır.
Bu ayrım önemlidir. .env.local hosted Supabase'e bakarken Docker full-stack farklı bir .env ile çalışıyor olabilir.
Full-Stack Değerleri
Full-stack mod için env üretmek:
node scripts/generate-full-stack-env.mjs > .envTemel değişkenler:
NETA_INSTALL_MODE=full-stack
NEXT_PUBLIC_SITE_URL=http://localhost:3000
NETA_PORT=3000
NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000
SUPABASE_API_PORT=8000
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
SUPABASE_SERVICE_ROLE_KEY=...
JWT_SECRET=...
POSTGRES_PASSWORD=...
POSTGRES_PORT=54322
JWT_EXPIRY=3600
SMTP_ADMIN_EMAIL=admin@neta.localNEXT_PUBLIC_SITE_URL
Neta uygulamasının public URL değeridir.
Local örnek:
NEXT_PUBLIC_SITE_URL=http://localhost:3000Production örnek:
NEXT_PUBLIC_SITE_URL=https://app.example.comAuth redirect ve site URL kontrollerinde kullanılır.
NEXT_PUBLIC_SUPABASE_URL
Tarayıcıdan erişilebilen Supabase API URL değeridir.
Full-stack local örnek:
NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000Production örnek:
NEXT_PUBLIC_SUPABASE_URL=https://api.example.comBu URL dışarıdan erişilebilir olmalıdır. Tarayıcı Auth, REST ve Storage çağrıları için bu değeri kullanır.
SUPABASE_INTERNAL_URL
Uygulama container içinden Supabase proxy'ye bağlanırken kullanılabilir.
Full-stack Compose içinde varsayılan:
SUPABASE_INTERNAL_URL=http://neta-supabase-proxy:8000Bu değer genellikle manuel ayarlanmaz, Compose içinde verilir.
NEXT_PUBLIC_SUPABASE_ANON_KEY
Supabase anon JWT değeridir. Client tarafında kullanılabilir, ama yine de doğru JWT secret ile üretilmiş olmalıdır.
Full-stack modda script tarafından otomatik üretilir.
SUPABASE_SERVICE_ROLE_KEY
Service role key yüksek yetkili bir anahtardır.
Güvenlik kuralları:
- Client tarafında paylaşılmamalıdır.
- Public repository'ye yazılmamalıdır.
- Sadece server-side işlemlerde kullanılmalıdır.
- Coolify/Dokploy gibi panellerde secret olarak saklanmalıdır.
JWT_SECRET
Supabase Auth ve JWT doğrulama için kullanılan gizli değerdir.
NEXT_PUBLIC_SUPABASE_ANON_KEY ve SUPABASE_SERVICE_ROLE_KEY bu secret ile uyumlu olmalıdır. Secret değişirse tokenlar da yeniden üretilmelidir.
POSTGRES_PASSWORD
Bundled PostgreSQL için ana parola değeridir.
Full-stack modda:
neta-dbneta-authneta-restneta-storageneta-migrations
servislerinin veritabanı bağlantılarında kullanılır.
Port Değerleri
NETA_PORT=3000
SUPABASE_API_PORT=8000
POSTGRES_PORT=54322Bu değerler host makinede hangi portların dışarı açılacağını belirler.
Container içi portlar genellikle sabittir.
SMTP Değerleri
MVP kurulumda e-posta doğrulama varsayılan olarak otomatik onaylıdır. Yine de ileride e-posta akışları için SMTP ayarları kullanılabilir.
Örnek:
SMTP_ADMIN_EMAIL=admin@example.com
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=...
SMTP_PASS=...
SMTP_SENDER_NAME=NetaApp-Only Değerleri
App-only modda minimum değerler:
NEXT_PUBLIC_SITE_URL=https://app.example.com
NEXT_PUBLIC_SUPABASE_URL=https://project-ref.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
SUPABASE_SERVICE_ROLE_KEY=...Migration için ayrıca:
DATABASE_URL=postgresql://postgres:password@host:5432/postgresGüvenlik Notları
.envve.env.localdosyalarını commit etme.- Service role key'i sadece sunucu tarafında kullan.
- Production ortamında güçlü secret değerleri kullan.
- Domain ve Supabase URL değerlerinin birbiriyle uyumlu olduğundan emin ol.
- Coolify/Dokploy panellerinde secret değerlerini public build loglarında göstermemeye dikkat et.
