Files
neta/content/06-coolify-kurulum.md
T
Poyraz Avsever 03b03d253d 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.
2026-06-14 11:12:52 +03:00

137 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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.