Add comprehensive installation and operational documentation for Neta
- Introduced "Kurulum Modları" to explain full-stack and app-only installation options. - Created detailed guides for "Full-Stack Kurulum", "Coolify Kurulumu", "Dokploy Kurulumu", and "App-Only Kurulum". - Documented the process for creating the first admin account and the registration lock mechanism. - Added operational guidelines covering health checks, backups, restores, and logging. - Explained environment variables used in Neta installations and their significance. - Provided troubleshooting tips for common issues encountered during setup and operation. - Outlined security measures and limitations of the MVP self-host model.
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
---
|
||||
title: Coolify Kurulumu
|
||||
description: Neta'yı Coolify üzerinde full-stack olarak yayınlama.
|
||||
order: 6
|
||||
---
|
||||
|
||||
# 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:
|
||||
|
||||
```text
|
||||
Full-stack Neta kurulumu
|
||||
```
|
||||
|
||||
Bu 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:
|
||||
|
||||
```text
|
||||
docker-compose.full.yml
|
||||
```
|
||||
|
||||
seçilmelidir.
|
||||
|
||||
## Environment Değerlerini Üret
|
||||
|
||||
Lokal ortamda veya sunucuda şu komutu çalıştır:
|
||||
|
||||
```bash
|
||||
node scripts/generate-full-stack-env.mjs
|
||||
```
|
||||
|
||||
Komutun ürettiği değerleri Coolify environment paneline ekle.
|
||||
|
||||
En önemli değerler:
|
||||
|
||||
- `NEXT_PUBLIC_SITE_URL`
|
||||
- `NEXT_PUBLIC_SUPABASE_URL`
|
||||
- `NEXT_PUBLIC_SUPABASE_ANON_KEY`
|
||||
- `SUPABASE_SERVICE_ROLE_KEY`
|
||||
- `JWT_SECRET`
|
||||
- `POSTGRES_PASSWORD`
|
||||
- `NETA_PORT`
|
||||
- `SUPABASE_API_PORT`
|
||||
- `POSTGRES_PORT`
|
||||
|
||||
## Domain Ayarları
|
||||
|
||||
Neta uygulaması için domain:
|
||||
|
||||
```text
|
||||
neta-web:3000
|
||||
```
|
||||
|
||||
servisine yönlendirilmelidir.
|
||||
|
||||
Supabase API için ayrı domain kullanacaksan:
|
||||
|
||||
```text
|
||||
neta-supabase-proxy:8000
|
||||
```
|
||||
|
||||
servisine yönlendirilmelidir.
|
||||
|
||||
Örnek yapı:
|
||||
|
||||
```text
|
||||
https://app.example.com -> neta-web:3000
|
||||
https://api.example.com -> neta-supabase-proxy:8000
|
||||
```
|
||||
|
||||
Bu durumda environment değerleri şöyle olmalıdır:
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_SITE_URL=https://app.example.com
|
||||
NEXT_PUBLIC_SUPABASE_URL=https://api.example.com
|
||||
```
|
||||
|
||||
## Tek 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-migrations` servisi ile çalışır.
|
||||
- Web uygulaması proxy ve migration tamamlanmadan başlamaz.
|
||||
|
||||
## İlk Kontrol Listesi
|
||||
|
||||
Deploy sonrası şunları kontrol et:
|
||||
|
||||
- `neta-db` healthy durumda mı?
|
||||
- `neta-supabase-proxy` healthy durumda mı?
|
||||
- `neta-web` healthy durumda mı?
|
||||
- `neta-migrations` başarıyla tamamlandı mı?
|
||||
- `/register` sayfası ilk admin için açılıyor mu?
|
||||
- İlk admin oluşturulduktan sonra `/register` kapanı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.
|
||||
|
||||
Reference in New Issue
Block a user