Files
neta/content/05-full-stack-kurulum.md
T
Poyraz Avsever 03b03d253d Add comprehensive installation and operational documentation for Neta
- 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.
2026-06-14 11:12:52 +03:00

3.7 KiB
Raw Blame History

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_URL
  • NETA_PORT
  • NEXT_PUBLIC_SUPABASE_URL
  • SUPABASE_API_PORT
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY
  • JWT_SECRET
  • POSTGRES_PASSWORD
  • POSTGRES_PORT
  • JWT_EXPIRY
  • SMTP_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:

  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.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-web
  • neta-db
  • neta-auth
  • neta-rest
  • neta-storage
  • neta-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.