# Instalare pe hosting cPanel — pas cu pas

## 1. Cerințe pe hosting
- PHP 8.2 sau mai nou (setezi din cPanel → **MultiPHP Manager**)
- Extensii PHP necesare (de regulă activate implicit, verifică în **MultiPHP INI Editor**): `mbstring`, `openssl`, `pdo_mysql`, `tokenizer`, `xml`, `ctype`, `json`, `bcmath`, `fileinfo`, `zip`, `gd`
- Acces **SSH/Terminal** (din cPanel → Terminal) sau minim Composer prin cPanel (unele hostinguri au "Setup Node.js/PHP App" cu Composer inclus)
- O bază de date MySQL creată din **MySQL® Databases**

## 2. Upload cod
- Prin Git: `git clone <repo> pod-platform` din Terminal cPanel, în afara lui `public_html` (ex: `/home/user/pod-platform`)
- Sau prin File Manager: arhivă .zip urcată și dezarhivată

**Important:** codul Laravel NU se pune direct în `public_html`. Doar folderul `public/` din interiorul proiectului trebuie expus public.

## 3. Configurare document root
În cPanel → **Domains** → editezi domeniul → schimbi **Document Root** spre:
```
/home/user/pod-platform/public
```
Dacă hostingul nu permite schimbarea document root-ului (unele shared hosting-uri ieftine nu permit), alternativa este să pui tot proiectul în `public_html`, iar `index.php` din `public/` să fie mutat în rădăcină cu path-uri ajustate — dar varianta corectă e mereu schimbarea document root-ului.

## 4. Instalare dependențe
```bash
cd /home/user/pod-platform
composer install --optimize-autoloader --no-dev
```

## 5. Configurare .env
```bash
cp .env.example .env
php artisan key:generate
```
Completezi datele bazei de date (le iei din cPanel → MySQL Databases), datele SMTP (din cPanel → Email Accounts, cont creat special pentru trimitere, ex: `comenzi@domeniultau.ro`), și cheile API pentru reCAPTCHA + procesatori de plată.

## 6. Migrare bază de date + seed roluri
```bash
php artisan migrate --seed
```

## 7. Legătură storage (pentru imagini produse, fișiere design, facturi PDF)
```bash
php artisan storage:link
```

## 8. Cron job (OBLIGATORIU pentru emailuri automate, statusuri, cozi)
cPanel → **Cron Jobs** → adaugi:
```
* * * * * cd /home/user/pod-platform && php artisan schedule:run >> /dev/null 2>&1
```

## 9. Cache producție
```bash
php artisan config:cache
php artisan route:cache
php artisan view:cache
```
⚠️ De fiecare dată când modifici `.env` sau rutele, rulezi din nou `php artisan config:clear` + `config:cache`.

## 10. Creezi primul cont Super Admin
```bash
php artisan tinker
>>> $u = \App\Models\User::create(['name'=>'Admin','email'=>'admin@domeniultau.ro','password'=>bcrypt('parola-ta-sigura')]);
>>> $u->assignRole('Super Admin');
```

## 11. Panoul de admin
Accesibil la `https://domeniultau.ro/admin` — construit cu Filament PHP, cu acces controlat automat pe baza rolurilor setate (Setări → Roluri & Permisiuni).

## Observații pentru shared hosting cPanel ieftin
- **Queue workers permanenți** nu sunt posibili pe shared hosting — folosim `QUEUE_CONNECTION=database` + cron-ul de mai sus, care procesează joburile la fiecare minut (suficient pentru emailuri, nu instant dar sub 60 secunde).
- **WebSockets** pentru actualizări live în POS nu sunt suportate pe shared — dacă vrei live-update real (nu doar refresh), ai nevoie fie de un VPS cu cPanel, fie de un serviciu extern gen Pusher/Ably (se poate integra ulterior fără să schimbăm arhitectura).
- **Limite de memorie/execuție** — verifică în MultiPHP INI Editor că `memory_limit` e minim 256M și `max_execution_time` minim 120 (necesar mai ales la generare facturi bulk sau import produse).
