\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82
| Path : /var/www/html/mertbinici/BusinessBooster/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : /var/www/html/mertbinici/BusinessBooster/DEPLOYMENT.md |
# BUMERANG Web Sitesi Deployment Yönergeleri
## Production Build
Production build için aşağıdaki adımları izleyin:
```bash
# Bağımlılıkları yükleyin (ilk kez)
npm install
# Production build oluşturun
npm run build
```
Build işlemi tamamlandığında, `dist` klasöründe aşağıdaki dosyalar oluşacaktır:
- `dist/index.js` - Server-side Node.js kodunuz
- `dist/public/` - Client-side statik dosyalarınız (HTML, CSS, JS, resimler)
## Deployment
### 1. Shared Hosting / Statik Hosting
**Önemli Not**: Bu seçenekte sadece statik dosyalar çalışacak ve backend API çalışmayacaktır. Eğer iletişim formu gibi sunucu fonksiyonları gerekiyorsa, bu yöntemi kullanmayın.
Eğer sadece statik bir web sitesi olarak yayınlamak istiyorsanız (API fonksiyonları olmadan):
1. `dist/public/` klasöründeki tüm dosyaları hosting'inizin public klasörüne (genellikle `public_html`, `www` veya `htdocs`) yükleyin.
2. Statik dosya sunucunuzu (Apache, Nginx) yapılandırın.
#### Apache ile .htaccess Yapılandırması
SPA (Single Page Application) route'larının düzgün çalışması için Apache'nin root dizinine aşağıdaki `.htaccess` dosyasını ekleyin:
```apache
# .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>
```
#### Nginx ile Yapılandırma
```nginx
server {
listen 80;
server_name bumerangbilgisayar.com www.bumerangbilgisayar.com;
root /path/to/dist/public;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# Cache statik içerikler
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
```
### 2. VPS veya Dedicated Server
Eğer kendi sunucunuzu yönetiyorsanız:
1. Tüm `dist` klasörünü sunucunuza kopyalayın.
2. Node.js sunucusunu çalıştırın:
```bash
# Normal çalıştırma
NODE_ENV=production node dist/index.js
# Veya PM2 ile sürekli çalıştırma (önerilir)
npm install -g pm2
pm2 start dist/index.js --name "bumerang-website" --env production
# PM2 ile environment variables ayarlama
pm2 start dist/index.js --name "bumerang-website" --env production -- --port 5000
# Otomatik başlatma için PM2'yi kaydetme
pm2 save
pm2 startup
```
PM2 Ekosistemi Dosyası Örneği (`ecosystem.config.js`):
```javascript
module.exports = {
apps : [{
name: "bumerang-website",
script: "dist/index.js",
env_production: {
NODE_ENV: "production",
PORT: 5000
},
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: "1G"
}]
};
```
PM2 ekosistem dosyası ile çalıştırma:
```bash
pm2 start ecosystem.config.js --env production
```
3. Nginx veya Apache'yi reverse proxy olarak yapılandırın.
### Nginx Örnek Konfigürasyonu
```nginx
server {
listen 80;
server_name bumerangbilgisayar.com www.bumerangbilgisayar.com;
location / {
proxy_pass http://localhost:5000;
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;
}
}
```
### HTTPS Yapılandırması
HTTPS için Certbot (Let's Encrypt) kullanabilirsiniz:
```bash
sudo apt-get install certbot python3-certbot-nginx
sudo certbot --nginx -d bumerangbilgisayar.com -d www.bumerangbilgisayar.com
```
## Environment Variables
Production ortamında aşağıdaki çevre değişkenlerini ayarlayın:
- `NODE_ENV=production` - Production modunda çalıştığını belirtir
- `PORT=5000` - (isteğe bağlı) Uygulamanın çalışacağı port numarası. Eğer port 5000 kullanımdaysa, başka bir port numarası belirtebilirsiniz (örneğin 3000, 8080, veya 5001).
### Environment Variables Ayarlama Örneği
Linux/macOS:
```bash
export NODE_ENV=production
export PORT=5000
node dist/index.js
```
Windows (CMD):
```batch
set NODE_ENV=production
set PORT=5000
node dist/index.js
```
Windows (PowerShell):
```powershell
$env:NODE_ENV = "production"
$env:PORT = 5000
node dist/index.js
```
## Bakım ve Güncellemeler
Güncelleme yapmak için:
1. Yeni kodu local ortamınızda build edin.
2. Production build alın.
3. Eski dosyaları yeni build ile değiştirin.
4. Node.js server'ı yeniden başlatın:
```bash
# Normal başlatma
node dist/index.js
# PM2 kullanıyorsanız
pm2 restart bumerang-website
```
## İletişim Formu Ayarları
İletişim formunun çalışması için Google reCAPTCHA ve SMTP ayarlarını yapmanız gerekiyor.
### reCAPTCHA Ayarları
1. https://www.google.com/recaptcha/admin adresinden bir reCAPTCHA v2 kaydı oluşturun.
2. Environment variables olarak aşağıdaki değerleri ekleyin:
```
RECAPTCHA_SITE_KEY=your_site_key
RECAPTCHA_SECRET_KEY=your_secret_key
```
### SMTP Ayarları
İletişim formundan gelen mesajların e-posta olarak iletilmesi için aşağıdaki environment variables ayarları gereklidir:
```
SMTP_HOST=your_smtp_host (örn. smtp.gmail.com)
SMTP_PORT=your_smtp_port (örn. 587 veya 465)
SMTP_SECURE=true_or_false (örn. true SSL için, false TLS için)
SMTP_USER=your_email_address
SMTP_PASS=your_email_password_or_app_password
MAIL_FROM=your_from_address
MAIL_TO=recipient_email (örn. mert.binici@bumerangbilgisayar.com)
```
#### Gmail ile SMTP Ayarları Örneği:
```
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=your-gmail@gmail.com
SMTP_PASS=your-gmail-app-password
MAIL_FROM=your-gmail@gmail.com
MAIL_TO=mert.binici@bumerangbilgisayar.com
```
Not: Gmail kullanıyorsanız, "App Password" oluşturmanız gerekebilir. Bunun için:
1. Google hesabınızda 2FA'yı etkinleştirin
2. https://myaccount.google.com/apppasswords adresinden uygulama şifresi oluşturun
3. Bu şifreyi SMTP_PASS olarak kullanın
## Sorun Giderme
### Genel Hatalar
- **500 Server Error**: Sunucu loglarını kontrol edin. PM2 ile çalıştırıyorsanız `pm2 logs bumerang-website` ile logları görüntüleyebilirsiniz.
- **404 Not Found**: URL'leri ve route'ları kontrol edin.
- **Bağlantı Hatası**: Firewall ayarlarını ve port açık olduğundan emin olun.
### İletişim Formu Sorunları
- **reCAPTCHA Çalışmıyor**: RECAPTCHA_SITE_KEY ve RECAPTCHA_SECRET_KEY değerlerini kontrol edin.
- **E-postalar Gelmiyor**: SMTP ayarlarını ve güvenlik duvarı ayarlarını kontrol edin. Bazı SMTP sağlayıcıları, güvenlik nedeniyle harici uygulamalardan gönderilen e-postaları engelleyebilir.
- **SMTP Bağlantı Hatası**: SMTP_HOST, SMTP_PORT ve SMTP_SECURE ayarlarını doğru yapılandırdığınızdan emin olun. Gerekirse port taraması yapın.
### Statik İçerik Sorunları
- **CSS/JS Dosyaları Yüklenmiyor**: Tarayıcı konsolunu kontrol edin, network sekmesindeki hataları inceleyin. MIME türleri, yollar veya dosya izinlerinde sorun olabilir.
- **Görseller Yüklenmiyor**: Dosya yollarını ve izinleri kontrol edin.
- **Değişiklikler Yansımıyor**: Tarayıcı önbelleğini temizleyin veya sunucu tarafında önbellek kontrolünü etkinleştirin.