Files
neta/content/05-full-stack-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

185 lines
3.7 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: Full-Stack Kurulum
description: Neta'yı harici servis gerektirmeden self-host etme rehberi.
order: 5
---
# Full-Stack Kurulum
Full-stack kurulum, Neta'yı harici Supabase hesabına ihtiyaç duymadan kendi sunucunda çalıştırmanın önerilen yoludur. Bu modda uygulama, veritabanı, kimlik doğrulama, REST API, storage ve proxy servisleri birlikte çalışır.
## Gereksinimler
Sunucuda şu bileşenler bulunmalıdır:
- Docker
- Docker Compose
- Git
- En az 2 GB RAM
- Kalıcı disk alanı
- Yayın yapılacak bir domain veya test için localhost
Production kullanımı için domain ve HTTPS önerilir.
## Repository'yi Al
```bash
git clone https://github.com/poyrazavsever/neta.git
cd neta
```
## Environment Dosyasını Üret
Full-stack kurulum için gerekli secret ve token değerlerini üret:
```bash
node scripts/generate-full-stack-env.mjs > .env
```
Bu komut şu değerleri üretir:
- `NEXT_PUBLIC_SITE_URL`
- `NETA_PORT`
- `NEXT_PUBLIC_SUPABASE_URL`
- `SUPABASE_API_PORT`
- `NEXT_PUBLIC_SUPABASE_ANON_KEY`
- `SUPABASE_SERVICE_ROLE_KEY`
- `JWT_SECRET`
- `POSTGRES_PASSWORD`
- `POSTGRES_PORT`
- `JWT_EXPIRY`
- `SMTP_ADMIN_EMAIL`
Domain ile yayın yapacaksan `.env` içindeki URL değerlerini deploy öncesi düzenle.
Örnek:
```env
NEXT_PUBLIC_SITE_URL=https://app.example.com
NEXT_PUBLIC_SUPABASE_URL=https://supabase.example.com
```
Local test için varsayılan değerler yeterlidir.
## Stack'i Başlat
```bash
docker compose -f docker-compose.full.yml up -d --build
```
Bu komut şu işlemleri yapar:
1. Neta uygulamasını build eder.
2. PostgreSQL servisini başlatır.
3. Supabase Auth migrationlarını çalıştırır.
4. Storage ve PostgREST servislerini başlatır.
5. Neta migration dosyalarını uygular.
6. Web uygulamasını başlatır.
## Sağlık Kontrolü
Kurulumdan sonra health check çalıştır:
```bash
sh ./scripts/selfhost-doctor.sh
```
Bu script şunları kontrol eder:
- Docker daemon erişimi
- Container çalışma durumları
- Migration runner başarı durumu
- Veritabanı health durumu
- Web health endpointi
- Supabase proxy endpointi
- Auth settings endpointi
- Neta tablolarının varlığı
İstersen gerçek Auth akışını da test edebilirsin:
```bash
NETA_DOCTOR_AUTH_SMOKE=1 sh ./scripts/selfhost-doctor.sh
```
Bu kontrol temiz kurulumda test kullanıcısı oluşturabilir. İlk admin akışını manuel test etmek istiyorsan bu opsiyonu çalıştırmadan önce dikkatli ol.
## İlk Admin Hesabı
Stack hazır olduktan sonra:
```text
https://senin-domainin/register
```
veya local testte:
```text
http://localhost:3000/register
```
sayfasını aç.
İlk kayıt olan kullanıcı admin kabul edilir. İlk profil oluştuktan sonra public kayıt kapanır ve `/register` sayfası artık `/login` sayfasına yönlendirir.
## Kullanılan Portlar
Varsayılan portlar:
- Neta web: `3000`
- Supabase API proxy: `8000`
- PostgreSQL: `54322`
Bu portlar `.env` dosyasından değiştirilebilir:
```env
NETA_PORT=3000
SUPABASE_API_PORT=8000
POSTGRES_PORT=54322
```
## Container Listesi
Çalışan servisleri görmek için:
```bash
docker ps
```
Beklenen containerlar:
- `neta-web`
- `neta-db`
- `neta-auth`
- `neta-rest`
- `neta-storage`
- `neta-supabase-proxy`
`neta-migrations` tek seferlik çalışır ve başarıyla çıkmış olmalıdır.
## Durdurma ve Yeniden Başlatma
Durdurmak için:
```bash
docker compose -f docker-compose.full.yml stop
```
Yeniden başlatmak için:
```bash
docker compose -f docker-compose.full.yml up -d
```
Volume silinmediği sürece veriler korunur.
## Verileri Sıfırlama
Test ortamında tüm verileri silmek istersen:
```bash
docker compose -f docker-compose.full.yml down -v
```
Bu komut veritabanı ve storage volume'larını siler. Production ortamında yedek almadan kullanılmamalıdır.