- 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.
118 lines
3.1 KiB
Markdown
118 lines
3.1 KiB
Markdown
---
|
||
title: Dokploy ile Deploy
|
||
description: Neta'yı Dokploy üzerinde Docker Compose olmadan yayınlama.
|
||
order: 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:
|
||
|
||
```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ı.
|