3.7 KiB
title, description, order, status
| title | description | order | status |
|---|---|---|---|
| Dokploy ile Deploy | Neta'yı Dokploy üzerinde Docker Compose olmadan yayınlama. | 8 | legacy-v2-archive |
Dokploy ile Deploy
Arşiv: Aşağıdaki harici Supabase/ephemeral akış v2'ye aittir. v3 için Dockerfile, tek replica ve
/app/datapersistent volume sözleşmesinidocs/self-hosted-redesign/phase-8-import-release.mdbelgesinden uygulayın.
Dokploy üzerinde Neta'yı yayınlarken artık özel Dockerfile veya Compose dosyasına ihtiyaç yok. Bu projeyi standart bir Next.js repo deploy'u gibi ele almak yeterli.
Benim önerdiğim yapı şu: Dokploy sadece web uygulamasını çalıştırır, Supabase ise dışarıdaki hazır proje olarak kullanılır.
Gerekli Hazırlık
Başlamadan önce şunlar hazır olmalı:
- Dokploy kurulu bir VPS.
- GitHub üzerinde Neta reposu.
- Supabase projesi.
- Supabase schema ve storage yapısı.
- Ortam değişkenleri.
Supabase tarafı hazır değilse önce supabase/setup.sql dosyasını çalıştırın. Terminalden tek komutla kurmak için:
psql "postgresql://postgres:[PASSWORD]@[HOST]:5432/postgres" -v ON_ERROR_STOP=1 -f supabase/setup.sql
SQL Editor kullanıyorsanız supabase/setup.sql içeriğini komple yapıştırıp çalıştırabilirsiniz.
Dokploy'da Uygulama Oluşturma
Dokploy içinde yeni bir uygulama oluştururken GitHub reposunu seçin. Uygulamayı Node.js/Next.js app olarak yapılandırın.
Önerilen komutlar:
npm install
npm run build
npm run start
Docker Compose dosyası seçmeyin. Bu repo artık Supabase'i veya Postgres'i container olarak yanında getirmez.
Environment Variables
Dokploy environment bölümüne şu değerleri girin:
NEXT_PUBLIC_SITE_URL=https://neta.example.com
NEXT_PUBLIC_SUPABASE_URL=https://your-project-ref.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
Burada en dikkat edilmesi gereken değer SUPABASE_SERVICE_ROLE_KEY. Bu key server tarafında kalmalıdır.
Domain ve Port
Next.js production server varsayılan olarak 3000 portunda çalışır.
Dokploy tarafında:
- Internal port:
3000 - Domain: kendi domaininiz
- SSL: Dokploy üzerinden aktif
şeklinde ayarlanabilir.
Supabase Ayarları
Supabase Auth tarafında domain ayarını güncelleyin:
Authentication -> URL Configuration
Örnek:
Site URL: https://neta.example.com
Redirect URLs:
https://neta.example.com/**
İlk Çalıştırma
Deploy tamamlandıktan sonra şu sırayla ilerleyin:
/api/healthendpoint'ini açın.- Ana sayfaya girin.
/registerüzerinden ilk admin hesabını oluşturun.- Login olun.
- Müşteri, proje ve görev ekleyerek Supabase bağlantısını test edin.
Dokploy'da Nelere Dikkat Edilmeli?
Dockerfile Aramayın
Bu repo artık Dockerfile içermez. Dokploy'un Node.js/Next.js build akışını kullanmak daha doğru.
Supabase Container Beklemeyin
Bu deployment Supabase'i ayağa kaldırmaz. Supabase dışarıda hazır olmalıdır.
Env Değerleri Deploy'dan Önce Girilmeli
Build bazı env değerlerini okuyabilir. Bu yüzden env değerlerini deploy'dan sonra değil, deploy öncesinde eklemek daha sağlıklı olur.
RLS Hataları Sessiz Görünebilir
Supabase policy izin vermediğinde uygulama bazen hata göstermek yerine boş liste gösterebilir. Veri görünmüyorsa önce RLS policy'lerini kontrol edin.
Dokploy İçin Kısa Kontrol Listesi
- GitHub repo bağlandı.
- Uygulama Node.js/Next.js olarak oluşturuldu.
- Dockerfile/Compose kullanılmadı.
- Install command
npm install. - Build command
npm run build. - Start command
npm run start. - Port
3000. - Env değerleri girildi.
- Domain ve SSL aktif.
- Supabase Auth URL ayarları yapıldı.