# স্থাপনা চেকলিস্ট (Deployment Checklist)

উৎপাদন পরিবেশে প্ল্যাটফর্ম চালু করার আগে এই চেকলিস্টটি অনুসরণ করুন।

## প্রাক-স্থাপনা পরীক্ষা

### কার্যকারিতা পরীক্ষা
- [ ] ব্যবহারকারী নিবন্ধন কাজ করে
- [ ] ব্যবহারকারী লগইন কাজ করে
- [ ] ডিপোজিট সিস্টেম কাজ করে
- [ ] ম্যাচ যোগদান কাজ করে
- [ ] ওয়ালেট লেজার রেকর্ড হয়
- [ ] প্রশাসক ফাংশন কাজ করে

### নিরাপত্তা পরীক্ষা
- [ ] SQL ইনজেকশন পরীক্ষা করুন
- [ ] XSS আক্রমণ পরীক্ষা করুন
- [ ] CSRF প্রতিরোধ চেক করুন
- [ ] পাসওয়ার্ড হ্যাশিং ভেরিফাই করুন
- [ ] লেনদেন ID বাহ্যিকীকরণ চেক করুন
- [ ] অনুমতি সিস্টেম পরীক্ষা করুন

### পারফরম্যান্স পরীক্ষা
- [ ] পাতা লোডিং সময় পরীক্ষা করুন
- [ ] ডাটাবেস প্রশ্নের সময় অপ্টিমাইজ করুন
- [ ] ক্যাশিং কৌশল যোগ করুন
- [ ] ইমেজ অপ্টিমাইজেশন চেক করুন

### রেসপন্সিভনেস পরীক্ষা
- [ ] মোবাইল ডিভাইসে পরীক্ষা করুন
- [ ] ট্যাবলেট ডিভাইসে পরীক্ষা করুন
- [ ] ডেস্কটপে পরীক্ষা করুন
- [ ] বিভিন্ন ব্রাউজার পরীক্ষা করুন

## পরিবেশ সেটআপ

### সার্ভার প্রস্তুতি
- [ ] Linux সার্ভার (Ubuntu 20.04+ সুপারিশ করা)
- [ ] Node.js 18+ ইনস্টল করুন
- [ ] PostgreSQL 12+ ইনস্টল করুন
- [ ] Nginx/Apache ওয়েব সার্ভার

### SSL সার্টিফিকেট
- [ ] Let's Encrypt থেকে SSL সার্টিফিকেট পান
- [ ] সার্ভারে সার্টিফিকেট কনফিগার করুন
- [ ] স্বয়ংক্রিয় নবায়ন সেটআপ করুন

### ফায়ারওয়াল সেটআপ
- [ ] পোর্ট ৮০ খুলুন (HTTP)
- [ ] পোর্ট ৪৪৩ খুলুন (HTTPS)
- [ ] পোর্ট ২২ খুলুন (SSH)
- [ ] ডাটাবেস পোর্ট সুরক্ষিত করুন
- [ ] অপ্রয়োজনীয় পোর্ট বন্ধ করুন

## ডাটাবেস সেটআপ

### ডাটাবেস নিরাপত্তা
- [ ] শক্তিশালী ডাটাবেস পাসওয়ার্ড সেট করুন
- [ ] ডাটাবেস ব্যবহারকারীর অনুমতি সীমিত করুন
- [ ] রুট পাসওয়ার্ড সুরক্ষিত করুন
- [ ] ডাটাবেস ব্যাকআপ সেটআপ করুন

### ব্যাকআপ কৌশল
- [ ] দৈনিক ব্যাকআপ স্বয়ংক্রিয় করুন
- [ ] সাপ্তাহিক সম্পূর্ণ ব্যাকআপ
- [ ] ব্যাকআপ পরীক্ষা করুন
- [ ] অফসাইট স্টোরেজ সেটআপ করুন

## পরিবেশ ভেরিয়েবল

### উৎপাদন .env সেটআপ
```bash
# অ্যাপ্লিকেশন
APP_ENV=production
APP_URL=https://yourdomain.com
NODE_ENV=production

# ডাটাবেস
DATABASE_URL="postgresql://user:password@localhost:5432/gaming_tournament"

# সিকিউরিটি
NEXTAUTH_SECRET="use-a-strong-random-key"
NEXTAUTH_URL="https://yourdomain.com"

# পেমেন্ট সেটিংস
WITHDRAWAL_CHARGE="0"
MIN_WITHDRAWAL_AMOUNT="100"
MAX_WITHDRAWAL_AMOUNT="50000"

# SMS (ঐচ্ছিক)
SMS_PROVIDER="nexmo"
SMS_API_KEY="your-key"
SMS_API_SECRET="your-secret"
```

### ভ্যালিডেশন চেকলিস্ট
- [ ] সব প্রয়োজনীয় ভেরিয়েবল সেট করা
- [ ] কোনো সংবেদনশীল তথ্য কোডে হার্ডকোড নেই
- [ ] বিভিন্ন পরিবেশের জন্য আলাদা .env ফাইল

## অ্যাপ্লিকেশন স্থাপনা

### বিল্ড এবং পরীক্ষা
- [ ] `pnpm build` চালান
- [ ] বিল্ড ত্রুটি চেক করুন
- [ ] স্থির ফাইল সঠিকভাবে তৈরি হয়েছে
- [ ] `pnpm start` দিয়ে চালান

### রিভার্স প্রক্সি সেটআপ
```nginx
# Nginx কনফিগ উদাহরণ
server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name yourdomain.com;
    
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
```

## মনিটরিং এবং লগিং

### লগিং সেটআপ
- [ ] অ্যাপ্লিকেশন লগ ফাইল সেটআপ করুন
- [ ] ত্রুটি লগ সক্ষম করুন
- [ ] অ্যাক্সেস লগ সক্ষম করুন
- [ ] লগ রোটেশন সেটআপ করুন

### মনিটরিং টুলস
- [ ] PM2 বা অন্য প্রক্রিয়া ম্যানেজার ইনস্টল করুন
- [ ] সার্ভার সম্পদ মনিটরিং সেটআপ করুন
- [ ] আপটাইম মনিটরিং সক্ষম করুন
- [ ] সতর্কতা সিস্টেম কনফিগার করুন

### লগ সংগ্রহ
- [ ] Syslog সেটআপ করুন
- [ ] ELK স্ট্যাক বা বিকল্প (ঐচ্ছিক)
- [ ] দীর্ঘমেয়াদী লগ সংরক্ষণ

## ব্যবহারকারী এবং বিষয়বস্তু

### প্রাথমিক ডেটা
- [ ] অ্যাপ সেটিংস কনফিগার করুন
- [ ] পেমেন্ট পদ্ধতি যোগ করুন (bKash, Nagad, Rocket)
- [ ] প্রথম ক্যাটাগরি তৈরি করুন
- [ ] প্রথম ব্যানার যোগ করুন
- [ ] প্রশাসক অ্যাকাউন্ট তৈরি করুন

### বিষয়বস্তু নির্দেশিকা
- [ ] শর্তাবলী আপডেট করুন
- [ ] গোপনীয়তা নীতি আপডেট করুন
- [ ] FAQs যোগ করুন
- [ ] যোগাযোগ তথ্য আপডেট করুন

## পারফরম্যান্স অপ্টিমাইজেশন

### ক্যাশিং কৌশল
- [ ] HTTP ক্যাশিং হেডার সেট করুন
- [ ] ডাটাবেস কোয়েরি অপ্টিমাইজ করুন
- [ ] ক্যাশ সিস্টেম সেটআপ করুন (রেডিস ঐচ্ছিক)

### ইমেজ অপ্টিমাইজেশন
- [ ] ইমেজ কম্প্রেশন সেটআপ করুন
- [ ] WebP ফর্ম্যাট সাপোর্ট যোগ করুন
- [ ] CDN কনফিগার করুন (ঐচ্ছিক)

### কোড অপ্টিমাইজেশন
- [ ] বান্ডেল সাইজ কমান
- [ ] অপ্রয়োজনীয় নির্ভরতা অপসারণ করুন
- [ ] ট্রি-শেকিং সক্ষম করুন

## নিরাপত্তা হার্ডেনিং

### সার্ভার সিকিউরিটি
- [ ] সর্বশেষ সিকিউরিটি প্যাচ ইনস্টল করুন
- [ ] ফায়ারওয়াল কনফিগার করুন
- [ ] SSH কী-ভিত্তিক প্রমাণীকরণ সেটআপ করুন
- [ ] নিয়মিত নিরাপত্তা পরীক্ষা চালান

### অ্যাপ্লিকেশন সিকিউরিটি
- [ ] HTTPS সর্বত্র সক্ষম করুন
- [ ] নিরাপত্তা হেডার যোগ করুন
- [ ] CORS সঠিকভাবে কনফিগার করুন
- [ ] ইনপুট ভ্যালিডেশন যাচাই করুন

### ডেটা সুরক্ষা
- [ ] সংবেদনশীল ডেটা এনক্রিপ্ট করুন
- [ ] সুরক্ষিত টিএলএস ভার্সন ব্যবহার করুন
- [ ] শক্তিশালী সাইফার স্যুট ব্যবহার করুন

## পোস্ট-স্থাপনা

### যাচাইকরণ
- [ ] সাইট অ্যাক্সেসযোগ্য?
- [ ] HTTPS সঠিকভাবে কাজ করছে?
- [ ] লগইন কাজ করছে?
- [ ] ডাটাবেস সংযোগ সঠিক?

### পর্যবেক্ষণ
- [ ] লগ ফাইল পর্যবেক্ষণ করুন
- [ ] সার্ভার সম্পদ ব্যবহার চেক করুন
- [ ] ত্রুটির হার ট্র্যাক করুন

### যোগাযোগ
- [ ] ব্যবহারকারীদের জানান সাইট লঞ্চ হয়েছে
- [ ] প্রাথমিক বাগ রিপোর্ট চ্যানেল সেটআপ করুন
- [ ] সাপোর্ট টিম প্রশিক্ষণ দিন

## দীর্ঘমেয়াদী রক্ষণাবেক্ষণ

### দৈনিক কাজ
- [ ] লগ পর্যবেক্ষণ করুন
- [ ] ব্যবহারকারী রিপোর্ট করা সমস্যা চেক করুন
- [ ] সিস্টেম পারফরম্যান্স যাচাই করুন

### সাপ্তাহিক কাজ
- [ ] ডাটাবেস ব্যাকআপ যাচাই করুন
- [ ] নিরাপত্তা সতর্কতা চেক করুন
- [ ] সার্ভার স্পেস পর্যবেক্ষণ করুন

### মাসিক কাজ
- [ ] পারফরম্যান্স রিপোর্ট তৈরি করুন
- [ ] নিরাপত্তা আপডেট প্রয়োগ করুন
- [ ] ব্যবহারকারীর প্রতিক্রিয়া বিশ্লেষণ করুন

### বার্ষিক কাজ
- [ ] নিরাপত্তা অডিট পরিচালনা করুন
- [ ] দুর্যোগ পুনরুদ্ধার পরিকল্পনা পরীক্ষা করুন
- [ ] স্কেলিং পরিকল্পনা পর্যালোচনা করুন

## জরুরি যোগাযোগ

**যদি সমস্যা হয়:**
- প্রযুক্তিগত দল: tech@gamingtournament.bd
- জরুরি সাপোর্ট: +8801XXXXXXXXX

---

**স্থাপনার আগে এই চেকলিস্টটি সম্পূর্ণ করুন।**

**সাফল্যের জন্য পরীক্ষা করুন, সাফল্যের জন্য নিরীক্ষণ করুন!**
