Coolify Kurulumu

Coolify, Neta'yı self-host etmek için uygun bir platformdur. Önerilen yöntem, docker-compose.full.yml dosyasını kullanarak full-stack kurulum yapmaktır.

Kurulum Modeli

Coolify üzerinde önerilen model:

text
Full-stack Neta kurulumu

Bu modelde Neta ile birlikte PostgreSQL, Auth, PostgREST, Storage ve proxy servisleri de aynı Compose uygulamasında çalışır.

Repository Bağlama

Coolify içinde yeni bir proje oluştur ve Neta repository'sini bağla.

Compose dosyası olarak:

text
docker-compose.full.yml

seçilmelidir.

Environment Değerlerini Üret

Lokal ortamda veya sunucuda şu komutu çalıştır:

bash
node scripts/generate-full-stack-env.mjs

Komutun ürettiği değerleri Coolify environment paneline ekle.

En önemli değerler:

  • NEXT_PUBLIC_SITE_URL
  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY
  • JWT_SECRET
  • POSTGRES_PASSWORD
  • NETA_PORT
  • SUPABASE_API_PORT
  • POSTGRES_PORT

Domain Ayarları

Neta uygulaması için domain:

text
neta-web:3000

servisine yönlendirilmelidir.

Supabase API için ayrı domain kullanacaksan:

text
neta-supabase-proxy:8000

servisine yönlendirilmelidir.

Örnek yapı:

text
https://app.example.com        -> neta-web:3000
https://api.example.com        -> neta-supabase-proxy:8000

Bu durumda environment değerleri şöyle olmalıdır:

env
NEXT_PUBLIC_SITE_URL=https://app.example.com
NEXT_PUBLIC_SUPABASE_URL=https://api.example.com

Tek Domain Kullanımı

Coolify üzerinde en temiz yapı ayrı API domain kullanmaktır. Tek domain altında path-based routing yapılacaksa proxy kuralları dikkatli ayarlanmalıdır.

MVP için önerilen pratik yaklaşım:

  • Bir domain Neta uygulaması için
  • Bir subdomain Supabase API için

Deploy

Environment değerleri eklendikten sonra deploy başlatılır.

Deploy sırasında:

  • Web uygulaması build edilir.
  • Veritabanı başlatılır.
  • Supabase Auth kendi migrationlarını uygular.
  • Neta migrationları neta-migrations servisi ile çalışır.
  • Web uygulaması proxy ve migration tamamlanmadan başlamaz.

İlk Kontrol Listesi

Deploy sonrası şunları kontrol et:

  • neta-db healthy durumda mı?
  • neta-supabase-proxy healthy durumda mı?
  • neta-web healthy durumda mı?
  • neta-migrations başarıyla tamamlandı mı?
  • /register sayfası ilk admin için açılıyor mu?
  • İlk admin oluşturulduktan sonra /register kapanıyor mu?

Sık Yapılan Hatalar

Yanlış Compose Dosyası

Full-stack self-host için docker-compose.full.yml kullanılmalıdır. Sadece docker-compose.yml kullanılırsa uygulama harici Supabase bekler.

Eksik Environment

Coolify panelinde zorunlu env değerleri eksikse Compose build veya runtime sırasında hata verir.

Yanlış Public URL

NEXT_PUBLIC_SITE_URL ve NEXT_PUBLIC_SUPABASE_URL gerçek public domainlerle uyumlu olmalıdır. Localhost değerleri production domaininde kullanılmamalıdır.

Supabase API Domaini Yayınlanmadı

Tarayıcı Auth ve REST çağrıları için NEXT_PUBLIC_SUPABASE_URL değerine erişebilmelidir. Bu URL dışarıdan erişilemiyorsa login ve kayıt işlemleri çalışmaz.