Full-Stack Kurulum
Full-stack kurulum, Neta'yı harici Supabase hesabına ihtiyaç duymadan kendi sunucunda çalıştırmanın önerilen yoludur. Bu modda uygulama, veritabanı, kimlik doğrulama, REST API, storage ve proxy servisleri birlikte çalışır.
Gereksinimler
Sunucuda şu bileşenler bulunmalıdır:
- Docker
- Docker Compose
- Git
- En az 2 GB RAM
- Kalıcı disk alanı
- Yayın yapılacak bir domain veya test için localhost
Production kullanımı için domain ve HTTPS önerilir.
Repository'yi Al
git clone https://github.com/poyrazavsever/neta.git
cd netaEnvironment Dosyasını Üret
Full-stack kurulum için gerekli secret ve token değerlerini üret:
node scripts/generate-full-stack-env.mjs > .envBu komut şu değerleri üretir:
NEXT_PUBLIC_SITE_URLNETA_PORTNEXT_PUBLIC_SUPABASE_URLSUPABASE_API_PORTNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYJWT_SECRETPOSTGRES_PASSWORDPOSTGRES_PORTJWT_EXPIRYSMTP_ADMIN_EMAIL
Domain ile yayın yapacaksan .env içindeki URL değerlerini deploy öncesi düzenle.
Örnek:
NEXT_PUBLIC_SITE_URL=https://app.example.com
NEXT_PUBLIC_SUPABASE_URL=https://supabase.example.comLocal test için varsayılan değerler yeterlidir.
Stack'i Başlat
docker compose -f docker-compose.full.yml up -d --buildBu komut şu işlemleri yapar:
1. Neta uygulamasını build eder. 2. PostgreSQL servisini başlatır. 3. Supabase Auth migrationlarını çalıştırır. 4. Storage ve PostgREST servislerini başlatır. 5. Neta migration dosyalarını uygular. 6. Web uygulamasını başlatır.
Sağlık Kontrolü
Kurulumdan sonra health check çalıştır:
sh ./scripts/selfhost-doctor.shBu script şunları kontrol eder:
- Docker daemon erişimi
- Container çalışma durumları
- Migration runner başarı durumu
- Veritabanı health durumu
- Web health endpointi
- Supabase proxy endpointi
- Auth settings endpointi
- Neta tablolarının varlığı
İstersen gerçek Auth akışını da test edebilirsin:
NETA_DOCTOR_AUTH_SMOKE=1 sh ./scripts/selfhost-doctor.shBu kontrol temiz kurulumda test kullanıcısı oluşturabilir. İlk admin akışını manuel test etmek istiyorsan bu opsiyonu çalıştırmadan önce dikkatli ol.
İlk Admin Hesabı
Stack hazır olduktan sonra:
https://senin-domainin/registerveya local testte:
http://localhost:3000/registersayfasını aç.
İlk kayıt olan kullanıcı admin kabul edilir. İlk profil oluştuktan sonra public kayıt kapanır ve /register sayfası artık /login sayfasına yönlendirir.
Kullanılan Portlar
Varsayılan portlar:
- Neta web:
3000 - Supabase API proxy:
8000 - PostgreSQL:
54322
Bu portlar .env dosyasından değiştirilebilir:
NETA_PORT=3000
SUPABASE_API_PORT=8000
POSTGRES_PORT=54322Container Listesi
Çalışan servisleri görmek için:
docker psBeklenen containerlar:
neta-webneta-dbneta-authneta-restneta-storageneta-supabase-proxy
neta-migrations tek seferlik çalışır ve başarıyla çıkmış olmalıdır.
Durdurma ve Yeniden Başlatma
Durdurmak için:
docker compose -f docker-compose.full.yml stopYeniden başlatmak için:
docker compose -f docker-compose.full.yml up -dVolume silinmediği sürece veriler korunur.
Verileri Sıfırlama
Test ortamında tüm verileri silmek istersen:
docker compose -f docker-compose.full.yml down -vBu komut veritabanı ve storage volume'larını siler. Production ortamında yedek almadan kullanılmamalıdır.
