# OnlyCoin v1.1.0 — Canlı Kurulum Rehberi

## 1. Sunucu hazırlığı

- Node.js 22.16+
- Kalıcı ve yedeklenen disk
- Reverse proxy (Nginx, Caddy veya eşdeğeri)
- TLS sertifikası
- Güvenlik duvarı
- SMTP hesabı
- Sistem servis yöneticisi (systemd, PM2 veya container orchestration)

Uygulamayı public web root içinden doğrudan Apache/PHP uygulaması gibi çalıştırmayın. Node.js sürecini yalnızca localhost/internal portta dinletip reverse proxy arkasında yayınlayın.

## 2. Installer

```bash
npm start
```

Tarayıcıda verilen `/install/?token=...` adresini açın ve dört aşamayı tamamlayın. Kurulum anahtarını paylaşmayın.

Localhost dışındaki site adresi HTTPS olmalıdır. SMTP test e-postası owner adresine ulaşmadan installer tamamlanmaz.

## 3. Reverse proxy

Örnek hedef:

```text
https://coin.example  ->  http://127.0.0.1:8787
```

Ayarlar:

```text
APP_ORIGIN=https://coin.example
HOST=127.0.0.1
PORT=8787
TRUST_PROXY=true
```

WebSocket kullanılacaksa proxy upgrade başlıklarını da iletin.

## 4. Dosya izinleri

- `.env`: yalnızca uygulama servis hesabı okuyabilmeli
- `data/`: uygulama servis hesabı yazabilmeli
- `data/backups/`: ayrı yedek politikası
- `data/recovery/`: yalnızca yetkili operasyon ekibi
- Kaynak dizini public static root olarak açılmamalı

## 5. İlk admin işlemleri

1. Owner hesabıyla giriş yapın.
2. Site, şirket ve yasal sayfaları güncelleyin.
3. Telegram/OAuth sağlayıcılarını gerçek callback adresleriyle yapılandırın.
4. Merchant veya banka hesaplarını ekleyin.
5. Contract, network, treasury ve RPC bilgilerini doğrulayın.
6. KYC/AML ve ülke sınırlamalarını tanımlayın.
7. Önce staging/testnet akışlarını tamamlayın.
8. İlgili modülü en son etkinleştirin.

## 6. Yedekleme

Günlük doğrulanmış yedek:

```bash
npm run db:backup
```

Yedekleri uygulama sunucusundan farklı bir şifreli konumda saklayın. Düzenli geri dönüş tatbikatı yapın.

## 7. Sağlık ve loglar

```text
GET /api/health
```

İzlenecek başlıca metrikler:

- HTTP hata oranı ve gecikme
- E-posta kuyruğu hataları
- Ledger mutabakatı
- Ödeme webhook doğrulama hataları
- Deposit/withdrawal bekleyen süreleri
- Dağıtım kampanyası hataları
- Disk alanı ve SQLite lock süresi

## 8. Ölçek sınırı

SQLite tek sunucu ve kontrollü trafik için kullanılabilir. Yüksek eşzamanlı finans trafiği, çoklu API instance veya bölgesel dağıtım hedefleniyorsa PostgreSQL tabanlı üretim migrasyonu planlanmalıdır.

## 9. Mainnet yayın kapısı

Aşağıdakiler tamamlanmadan mainnet fonlarını açmayın:

- Akıllı sözleşme denetimi
- Bağımsız penetrasyon testi
- MPC/HSM/multisig veya custody signer
- KYC/AML ve yaptırım taraması
- Treasury/gas/confirmation politikası
- Chargeback, refund ve incident runbook
- Hukuki değerlendirme
