- Deleted `pnpm-workspace.yaml` as it is no longer needed. - Removed `apply-migrations.sh` script that handled database migrations. - Eliminated `generate-full-stack-env.mjs` script for environment variable generation. - Deleted `selfhost-backup.sh` script for creating backups of the self-hosted environment. - Removed `selfhost-doctor.sh` script for health checks of the self-hosted services. - Deleted `selfhost-restore.sh` script for restoring backups in the self-hosted environment.
3.1 KiB
title, description, order
| title | description | order |
|---|---|---|
| Dokploy ile Deploy | Neta'yı Dokploy üzerinde Docker Compose olmadan yayınlama. | 8 |
Dokploy ile Deploy
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.
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ı.