- Introduced "Kurulum Modları" to explain full-stack and app-only installation options. - Created detailed guides for "Full-Stack Kurulum", "Coolify Kurulumu", "Dokploy Kurulumu", and "App-Only Kurulum". - Documented the process for creating the first admin account and the registration lock mechanism. - Added operational guidelines covering health checks, backups, restores, and logging. - Explained environment variables used in Neta installations and their significance. - Provided troubleshooting tips for common issues encountered during setup and operation. - Outlined security measures and limitations of the MVP self-host model.
4.1 KiB
title, description, order
| title | description | order |
|---|---|---|
| Ortam Değişkenleri | Neta kurulumunda kullanılan environment değişkenleri. | 11 |
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:
.env
dosyasını kullanır.
Lokal Next.js geliştirme:
.env.local
dosyası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 > .env
Temel 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.local
NEXT_PUBLIC_SITE_URL
Neta uygulamasının public URL değeridir.
Local örnek:
NEXT_PUBLIC_SITE_URL=http://localhost:3000
Production örnek:
NEXT_PUBLIC_SITE_URL=https://app.example.com
Auth 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:8000
Production örnek:
NEXT_PUBLIC_SUPABASE_URL=https://api.example.com
Bu 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:8000
Bu 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=54322
Bu 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=Neta
App-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/postgres
Gü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.