129 lines
3.7 KiB
Markdown
129 lines
3.7 KiB
Markdown
---
|
||
title: Dokploy ile Deploy
|
||
description: Neta'yı Dokploy üzerinde Docker Compose olmadan yayınlama.
|
||
order: 8
|
||
status: 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/data` persistent volume sözleşmesini `docs/self-hosted-redesign/phase-8-import-release.md` belgesinden 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:
|
||
|
||
```bash
|
||
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:
|
||
|
||
```bash
|
||
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:
|
||
|
||
```env
|
||
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:
|
||
|
||
```txt
|
||
Authentication -> URL Configuration
|
||
```
|
||
|
||
Örnek:
|
||
|
||
```txt
|
||
Site URL: https://neta.example.com
|
||
Redirect URLs:
|
||
https://neta.example.com/**
|
||
```
|
||
|
||
## İlk Çalıştırma
|
||
|
||
Deploy tamamlandıktan sonra şu sırayla ilerleyin:
|
||
|
||
1. `/api/health` endpoint'ini açın.
|
||
2. Ana sayfaya girin.
|
||
3. `/register` üzerinden ilk admin hesabını oluşturun.
|
||
4. Login olun.
|
||
5. 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ı.
|