- 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.
3.7 KiB
title, description, order
| title | description | order |
|---|---|---|
| Full-Stack Kurulum | Neta'yı harici servis gerektirmeden self-host etme rehberi. | 5 |
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 neta
Environment Dosyasını Üret
Full-stack kurulum için gerekli secret ve token değerlerini üret:
node scripts/generate-full-stack-env.mjs > .env
Bu 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.com
Local test için varsayılan değerler yeterlidir.
Stack'i Başlat
docker compose -f docker-compose.full.yml up -d --build
Bu komut şu işlemleri yapar:
- Neta uygulamasını build eder.
- PostgreSQL servisini başlatır.
- Supabase Auth migrationlarını çalıştırır.
- Storage ve PostgREST servislerini başlatır.
- Neta migration dosyalarını uygular.
- Web uygulamasını başlatır.
Sağlık Kontrolü
Kurulumdan sonra health check çalıştır:
sh ./scripts/selfhost-doctor.sh
Bu 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.sh
Bu 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/register
veya local testte:
http://localhost:3000/register
sayfası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=54322
Container Listesi
Çalışan servisleri görmek için:
docker ps
Beklenen 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 stop
Yeniden başlatmak için:
docker compose -f docker-compose.full.yml up -d
Volume 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 -v
Bu komut veritabanı ve storage volume'larını siler. Production ortamında yedek almadan kullanılmamalıdır.