# cPanel par CMS staging install — Roman Urdu guide

## A. Pehle staging banayein
1. cPanel login karein.
2. **Domains → Create A New Domain** (ya Subdomains, cPanel version par depend karta hai) mein `admin.onlinefamily.co` banayein. Is ka document root alag rakhein, misal: `public_html/admin` ya cPanel ka generated subdomain root. Production website ka document root use na karein.
3. SSL/TLS Status mein subdomain ka valid SSL issue karein. HTTPS kaam karne tak login page use na karein.
4. **MySQL Database Wizard** mein naya database aur dedicated database user banayein. Strong unique password use karein, user ko sirf isi CMS database par required privileges dein. Database name, username, password apne password manager mein rakhein; ChatGPT ya kisi ko chat mein na bhejein.
5. **MultiPHP Manager** mein PHP 8.1+ (prefer current supported stable version) select karein. cPanel → Select PHP Version/Extensions mein `PDO`, `pdo_mysql`, `fileinfo`, `openssl`, `json`, `session` enabled verify karein. Upload-to-WebP feature tabhi available hogi jab GD/Imagick WebP support enabled ho.

## B. Files upload karein
6. ZIP download karke apne computer par extract karein.
7. cPanel → File Manager → apne `admin.onlinefamily.co` ke document root par jayein.
8. Sirf `admin-app/public/` ke andar ki files document root mein upload karein. Public folder ke bahar wali `app/`, `config/`, `database/`, `storage/`, `tools/`, `tests/`, `docs/` ko document root se **ek level upar** rakhein. Agar hosting ki directory layout se yeh mumkin nahi, ruk kar hosting support se protected directory path confirm karein; in folders ko publicly accessible na chhorein.
9. `config/config.example.php` ko `config/config.php` naam se copy karein, aur app root ke `config/config.php` mein base URL, DB host/name/user/password set karein. Example mein placeholders ko real values se replace karein. `session_secure` true rakhein because HTTPS is required.
10. `storage/` writable honi chahiye sirf PHP process ke liye; cPanel File Manager se world-writable `777` permission na lagayein. Hosting-specific permission unclear ho to support se poochhein.

## C. Database aur owner account
11. cPanel → phpMyAdmin → apna **naya staging CMS database** select karein → Import → `admin-app/database/schema.sql` upload karein → Go. Existing production database ko select na karein.
12. Owner account banane ka script `admin-app/create-owner.php` hai. Pehle us ka code read karein aur instructions follow karein. Agar script command-line use ke liye hai aur cPanel Terminal available nahi, hosting support ya trusted developer se securely run karwayein. Public web par setup script expose na karein; owner banne ke baad is script ko web-accessible location se hata dein.
13. `https://admin.onlinefamily.co/login.php` kholein. Login fail ho to passwords chat mein share na karein; error text ka screenshot bhejne se pehle secrets/DB names hide karein.

## D. Safe verification (production se alag)
14. Login, logout, role permissions, CSRF errors, content save/draft, revision restore, media upload/preview, redirects, audit log aur backup/restore ko staging mein test karein.
15. Existing article/media migration scripts pehle **dry-run** mode mein chalayein. Counts, slugs, featured images aur file checksums match hone tak import ko production data par na chalayein.
16. Browser tests ke liye `admin-app/browser-tests/.env.example` copy karke `.env` banayein aur sirf staging URL use karein. `npm install`, `npx playwright install chromium`, phir `npx playwright test` run karein (local machine/CI par). Tests read-only hain; un se content publishing integration prove nahi hoti.

## E. Important: abhi production par na le jayein
CMS ke dashboard/content records aur existing static public HTML ke darmiyan automatic publishing integration abhi verified/complete nahi hai. CMS mein article publish karna existing `pages/article-*.html` ko automatically update nahi karta. Is liye live website ko is package se replace na karein. Pehle staging par publish adapter/renderer implement karna, 77 articles ka round-trip test, visual regression screenshots, contact form test, security review aur restore drill pass karna hoga.

## Agar cPanel mein koi step different ho
Hosting panels mukhtalif hote hain. Screenshot bhejte waqt passwords, database names, usernames, account IDs, tokens aur private paths blur kar dein. Credentials kabhi chat mein na bhejein.
