# baybarsbilim.com.tr Dağıtım ve Yayınlama Kılavuzu

Bu paket, **otomatik Web Kurulum Sihirbazı (Web Installer)** ile donatılmıştır. Dosyaları sunucuya yükleyip siteyi açtığınız anda kurulum ekranı sizi karşılar.

---

## ⚡ Hızlı Başlangıç (Web Installer)

Site ilk defa açıldığında otomatik olarak **`/install`** Kurulum Sihirbazı'na yönlendirilirsiniz:
1. Alan adı ve sistem kontrolü yapılır.
2. Baybars Bilim profil ve iletişim bilgileri onaylanır.
3. Yönetim paneli (`/admin`) için şifre belirlenir.
4. **"Kurulumu Tamamla"** dendiğinde site anında yayına geçer ve güvenlik kilidi (`installed.lock`) aktifleşir.

---

## 🛠️ Seçenek 1: cPanel / Plesk (Setup Node.js App) ile Kurulum

Eğer paylaşımlı hosting veya cPanel/Plesk kullanıyorsanız:

1. **Dosyaları Yükleyin:**
   - `baybarsbilim.com.tr.zip` dosyasını cPanel **Dosya Yöneticisi (File Manager)** üzerinden sitenizin kök dizinine (örneğin `public_html` veya özel bir alt klasöre) yükleyin ve zip'ten çıkarın.
2. **Node.js Uygulaması Oluşturun:**
   - cPanel'de **"Setup Node.js App"** menüsüne girin.
   - **Node.js Version:** `v18.x`, `v20.x` veya üzeri seçin.
   - **Application Mode:** `Production`
   - **Application Root:** Dosyaları çıkardığınız dizin (örn: `baybarsbilim` veya `public_html`)
   - **Application URL:** `baybarsbilim.com.tr`
   - **Application Startup File:** `app.js` veya `server.js` yazın.
   - **Create** butonuna tıklayın.
3. **Paketleri Yükleyin:**
   - Sayfadaki **"Run NPM Install"** butonuna tıklayın.
4. **Yeniden Başlatın:**
   - **"Restart"** butonuna basarak sitenizi yayına alın.

---

## 🐧 Seçenek 2: Linux VPS / VDS (Ubuntu / Debian + Nginx + PM2)

En yüksek performans ve tam kontrol için önerilen yöntem:

### 1. Dosyaları Sunucuya Aktarın
```bash
# Sunucuda dizin oluşturun
mkdir -p /var/www/baybarsbilim.com.tr
cd /var/www/baybarsbilim.com.tr

# Zip dosyasını buraya açın
unzip baybarsbilim.com.tr.zip
```

### 2. Bağımlılıkları Yükleyin
```bash
npm install --omit=dev
```

### 3. PM2 ile Arka Planda Başlatın
```bash
npm install -g pm2
pm2 start ecosystem.config.js --env production
pm2 save
pm2 startup
```

### 4. Nginx Reverse Proxy ve SSL (Let's Encrypt)
`/etc/nginx/sites-available/baybarsbilim.com.tr` dosyası oluşturun:

```nginx
server {
    server_name baybarsbilim.com.tr www.baybarsbilim.com.tr;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
```

Nginx'i etkinleştirin ve SSL sertifikasını kurun:
```bash
ln -s /etc/nginx/sites-available/baybarsbilim.com.tr /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

# Ücretsiz SSL Sertifikası
certbot --nginx -d baybarsbilim.com.tr -d www.baybarsbilim.com.tr
```

---

## 🐳 Seçenek 3: Docker ile Kurulum

Docker yüklü herhangi bir sunucuda tek komutla başlatmak için:

```bash
docker compose up -d --build
```

---

## 🔒 Önemli Notlar
- `data/siteData.json`: Profil bilgilerinizi, sosyal medya hesaplarınızı veya projelerinizi değiştirmek istediğinizde doğrudan bu dosyayı güncelleyebilirsiniz.
- `data/messages.json`: Sitedeki iletişim formundan gelen mesajlar bu dosyaya depolanır.
