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,128 @@
|
||||
---
|
||||
title: Dokploy Kurulumu
|
||||
description: Neta'yı Dokploy üzerinde self-host etme adımları.
|
||||
order: 7
|
||||
---
|
||||
|
||||
# Dokploy Kurulumu
|
||||
|
||||
Dokploy üzerinde Neta'yı yayınlamak için önerilen yol full-stack Docker Compose kurulumudur. Bu kurulumda Neta, kendi PostgreSQL ve Supabase uyumlu servisleriyle birlikte çalışır.
|
||||
|
||||
## Yeni Compose App Oluştur
|
||||
|
||||
Dokploy panelinde yeni bir Compose app oluştur.
|
||||
|
||||
Repository olarak Neta repository'sini seç ve Compose dosyası olarak şunu kullan:
|
||||
|
||||
```text
|
||||
docker-compose.full.yml
|
||||
```
|
||||
|
||||
## Environment Hazırlığı
|
||||
|
||||
Neta için gerekli env değerlerini üret:
|
||||
|
||||
```bash
|
||||
node scripts/generate-full-stack-env.mjs
|
||||
```
|
||||
|
||||
Çıkan değerleri Dokploy environment bölümüne ekle.
|
||||
|
||||
Production için özellikle şu değerleri düzenle:
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_SITE_URL=https://app.example.com
|
||||
NEXT_PUBLIC_SUPABASE_URL=https://api.example.com
|
||||
```
|
||||
|
||||
`JWT_SECRET`, `POSTGRES_PASSWORD`, `NEXT_PUBLIC_SUPABASE_ANON_KEY` ve `SUPABASE_SERVICE_ROLE_KEY` değerlerini gizli bilgi olarak sakla.
|
||||
|
||||
## Servis Yönlendirmeleri
|
||||
|
||||
Neta web uygulaması:
|
||||
|
||||
```text
|
||||
neta-web:3000
|
||||
```
|
||||
|
||||
Bundled Supabase API:
|
||||
|
||||
```text
|
||||
neta-supabase-proxy:8000
|
||||
```
|
||||
|
||||
olarak yönlendirilmelidir.
|
||||
|
||||
Önerilen domain yapısı:
|
||||
|
||||
```text
|
||||
app.example.com -> neta-web:3000
|
||||
api.example.com -> neta-supabase-proxy:8000
|
||||
```
|
||||
|
||||
Bu yapı, tarayıcı tarafındaki Auth, REST ve Storage çağrılarının doğru proxy'ye gitmesini sağlar.
|
||||
|
||||
## Deploy Süreci
|
||||
|
||||
Dokploy deploy başlattığında:
|
||||
|
||||
1. `neta-db` başlar.
|
||||
2. Supabase Auth kendi tablolarını hazırlar.
|
||||
3. Storage ve PostgREST servisleri başlar.
|
||||
4. `neta-migrations` Neta SQL dosyalarını uygular.
|
||||
5. Proxy healthy olduktan sonra web uygulaması başlar.
|
||||
|
||||
Bu sıra Compose içindeki dependency kurallarıyla yönetilir.
|
||||
|
||||
## İlk Admin Hesabı
|
||||
|
||||
Deploy tamamlandıktan sonra:
|
||||
|
||||
```text
|
||||
https://app.example.com/register
|
||||
```
|
||||
|
||||
sayfasını aç.
|
||||
|
||||
İlk kullanıcı oluşturulduktan sonra kayıt ekranı kapanır. Daha sonra giriş için:
|
||||
|
||||
```text
|
||||
https://app.example.com/login
|
||||
```
|
||||
|
||||
sayfası kullanılır.
|
||||
|
||||
## Dokploy Sonrası Kontrol
|
||||
|
||||
Şunları kontrol et:
|
||||
|
||||
- Web domaini açılıyor mu?
|
||||
- API domaininde `/health` endpointi cevap veriyor mu?
|
||||
- İlk admin oluşturulabiliyor mu?
|
||||
- Giriş yapılabiliyor mu?
|
||||
- Dokploy servis loglarında migration hatası yok mu?
|
||||
|
||||
API health kontrolü örneği:
|
||||
|
||||
```text
|
||||
https://api.example.com/health
|
||||
```
|
||||
|
||||
## Güncelleme
|
||||
|
||||
Yeni sürüme geçmeden önce yedek al:
|
||||
|
||||
```bash
|
||||
sh ./scripts/selfhost-backup.sh
|
||||
```
|
||||
|
||||
Ardından Dokploy üzerinden yeni deploy başlat.
|
||||
|
||||
## Dikkat Edilmesi Gerekenler
|
||||
|
||||
- `docker-compose.yml` değil, full-stack kurulum için `docker-compose.full.yml` kullanılmalıdır.
|
||||
- `NEXT_PUBLIC_SUPABASE_URL` dışarıdan erişilebilir olmalıdır.
|
||||
- Service role key hiçbir zaman client tarafında paylaşılmamalıdır.
|
||||
- PostgreSQL volume kalıcı olmalıdır.
|
||||
- Storage volume kalıcı olmalıdır.
|
||||
|
||||
Reference in New Issue
Block a user