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:
Full-stack Neta kurulumuBu 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:
docker-compose.full.ymlseçilmelidir.
Environment Değerlerini Üret
Lokal ortamda veya sunucuda şu komutu çalıştır:
node scripts/generate-full-stack-env.mjsKomutun ürettiği değerleri Coolify environment paneline ekle.
En önemli değerler:
NEXT_PUBLIC_SITE_URLNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYJWT_SECRETPOSTGRES_PASSWORDNETA_PORTSUPABASE_API_PORTPOSTGRES_PORT
Domain Ayarları
Neta uygulaması için domain:
neta-web:3000servisine yönlendirilmelidir.
Supabase API için ayrı domain kullanacaksan:
neta-supabase-proxy:8000servisine yönlendirilmelidir.
Örnek yapı:
https://app.example.com -> neta-web:3000
https://api.example.com -> neta-supabase-proxy:8000Bu durumda environment değerleri şöyle olmalıdır:
NEXT_PUBLIC_SITE_URL=https://app.example.com
NEXT_PUBLIC_SUPABASE_URL=https://api.example.comTek 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-migrationsservisi ile çalışır. - Web uygulaması proxy ve migration tamamlanmadan başlamaz.
İlk Kontrol Listesi
Deploy sonrası şunları kontrol et:
neta-dbhealthy durumda mı?neta-supabase-proxyhealthy durumda mı?neta-webhealthy durumda mı?neta-migrationsbaşarıyla tamamlandı mı?/registersayfası ilk admin için açılıyor mu?- İlk admin oluşturulduktan sonra
/registerkapanı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.
