# NeonBet-Node — Kurulum & Yayina Alma Kilavuzu

Sifir npm bagimliligi olan, saf Node.js (ESM) + gomulu SQLite calisan cok-dilli / cok-siteli (white-label) casino platformu.

## Gereksinimler
- **Node.js 20.12+ / 22 / 24** (gomulu `node:sqlite` ve `process.loadEnvFile` icin sart; 24 onerilir)
- Kalici disk (SQLite veritabani `data/` altinda tutulur)
- (Opsiyonel) nginx / Apache / cPanel-Passenger ters proxy + SSL

> Ekstra `npm install` gerekmez — proje bagimsizdir.

---

## 1) Hizli baslangic (VPS / kendi sunucu)
```bash
# 1. Dosyalari sunucuya kopyalayin ve klasore girin
cd neonbet

# 2. Ortam dosyasini olusturun
cp .env.example .env

# 3. Guclu bir SECRETS_KEY uretip .env icine yazin
node -e "console.log('SECRETS_KEY='+require('crypto').randomBytes(32).toString('hex'))"
#   -> ciktiyi .env dosyasindaki SECRETS_KEY satiriyla degistirin
#   -> NODE_ENV=production ve PUBLIC_URL=https://siteniz.com yapin

# 4. Baslatin
node src/server.js
#   veya: npm start
```
Acilista konsolda ve `data/INITIAL_ADMIN_PASSWORD.txt` icinde **ilk admin parolasi** gosterilir.

### Surekli calistirma (onerilir)
```bash
# systemd, pm2 ya da nohup ile:
nohup node src/server.js > app.log 2>&1 &
```

---

## 2) cPanel / Phusion Passenger
1. **Setup Node.js App** > Application root: proje klasoru, **Application startup file:** `app.cjs`
2. "Environment variables" bolumune en azindan `SECRETS_KEY` ve `NODE_ENV=production` ekleyin (veya `.env` dosyasini yukleyin — otomatik okunur).
3. **Run / Restart** deyin. Passenger portu kendisi yonetir (PORT bos birakin).

---

## 3) Ilk giris ve panel
- Admin panel: `https://siteniz.com/xcv` (yolu `.env` icindeki `ADMIN_PATH` ile degistirebilirsiniz)
- Kullanici: `admin` — Parola: `data/INITIAL_ADMIN_PASSWORD.txt`
- **Giris yaptiktan sonra parolayi degistirin ve o .txt dosyasini silin.**

---

## 4) Cok-site / white-label kurulumu (install sayfasi)
Tek panelden sinirsiz white-label site yonetilir. Ziyaretciler siteler arasi bagi goremez (ayri kullanici/bakiye, ayri marka, ayri diller).

1. `https://siteniz.com/install` adresine gidin (yalniz super admin).
2. **Yeni Site Kur**: site adi, alan adi (domain), marka, diller, varsayilan dil, para birimi girin.
3. Kaydedince site aninda yayina girer; o alan adiyla gelen ziyaretci otomatik ilgili siteyi gorur.
4. Panelin ust kismindaki **site secici** ile siteler arasi gecis yapip her birinin verisini ayri yonetirsiniz.

Birincil site `neonbet.cc` olarak tanimlidir; digerleri tamamen bagimsiz (white-label) sunulur.

---

## 5) Onemli ortam degiskenleri
| Degisken | Zorunlu | Aciklama |
|---|---|---|
| `SECRETS_KEY` | ✅ (prod) | 32+ karakter gizli anahtar; olmadan production acilmaz |
| `NODE_ENV` | ✅ | `production` |
| `PUBLIC_URL` | ✅ | Sitenin tam adresi (SEO/e-posta/sitemap) |
| `PORT` | — | Dinleme portu (cPanel'de bos) |
| `ADMIN_USER` / `ADMIN_PASS` | — | Vermezseniz parola otomatik uretilir |
| `ADMIN_PATH` | — | Panel yolu (varsayilan `xcv`) |
| `AUTH_REQUIRED` | — | `1` canli, `0` demo |
| `TRUST_PROXY` | — | Ters proxy arkasinda `1` |
| `SEED_DEMO` | — | Canlida `0` |

Tam liste icin `.env.example` dosyasina bakin.

---

## 6) Yedekleme
Tum veri `data/` klasorundeki SQLite dosyalarindadir (`*.db`). Duzenli olarak `data/` klasorunu yedekleyin.
