# Instalare — hub + doi sateliți

```
                    adminkartisistem.com          ← hub: admin + bază + API
                              │
                    ┌─────────┴─────────┐          HTTPS
                    ▼                   ▼
          satelit-rv.online     satelit-auto.online
          index.php (temă RV)   index.php (temă Cars)
          fără bază, fără SMTP  fără bază, fără SMTP
```

Sateliții nu au nevoie să stea pe același hosting cu hub-ul. Acum stau, pentru
demo; când îi muți pe alt server, singurul lucru care contează e ca hub-ul să
fie accesibil public pe HTTPS, iar serverul satelitului să poată face cereri
HTTPS spre exterior (cURL sau `allow_url_fopen`). Nu trebuie schimbat nimic
în cod — nici măcar `index.php`-ul satelitului.

---

## Pasul 1 — baza de date

cPanel → **MySQL Databases**:

1. Creează o bază nouă (ex. `platforma`) — cPanel îi pune prefixul contului,
   deci va ieși ceva de forma `kartisis_platforma`.
2. Creează un user nou și dă-i **All Privileges** pe baza aia.
3. Notează cele trei valori: numele bazei, userul, parola.

phpMyAdmin → selectezi baza nouă → tab **SQL** → lipești tot din
`hub/install.sql` → **Go**.

Fișierul creează 11 tabele, adaugă cele 65 de coloane ale platformei,
încarcă categoriile de inventar pentru Cars / RV / Heavy și creează contul de
administrator. Nu conține date vechi.

> **Contul de admin** e scris în capul secțiunii 3 din `install.sql`:
> `admin@adminkartisistem.com`, cu o parolă generată. Schimb-o la prima
> autentificare (Settings → Change password).

---

## Pasul 2 — fișierele hub-ului

Conținutul folderului `hub/` se urcă în `public_html` al domeniului
**adminkartisistem.com** (e domeniul principal, deci direct în `public_html`).

```
public_html/
├── .htaccess          ← protecții (nu se indexează adminul, HTTPS forțat)
├── config.php         ← SINGURUL fișier pe care îl editezi
├── install.sql        ← ȘTERGE-L după ce l-ai rulat
├── admin/
├── api/
├── assets/
├── core/
└── uploads/           ← trebuie să fie scriibil (755 sau 775)
```

### Editează `config.php`

Trei lucruri obligatorii:

```php
define('DB_NAME', 'kartisis_platforma');   // numele real, cu prefix
define('DB_USER', 'kartisis_admin');
define('DB_PASS', 'parola_bazei');
```

`SUPERADMIN_DOMAIN` e deja `adminkartisistem.com` — de aici își iau sateliții
adresa hub-ului când îi descarci. Dacă e greșit, sateliții vor căuta hub-ul
la adresa greșită.

Secțiunea SMTP o poți lăsa pe mai târziu: dacă `SMTP_PASS` e gol, platforma
nu încearcă să trimită email deloc (notează în log și merge mai departe), în
loc să blocheze formularele. Când ești gata, creează căsuța în cPanel →
**Email Accounts** și completează.

### După ce ai urcat

- Pornește **AutoSSL** pentru adminkartisistem.com (cPanel → SSL/TLS Status).
- Șterge `install.sql` de pe server.
- Intră pe `https://adminkartisistem.com/admin/login.php`.

---

## Pasul 3 — adaugă cele două site-uri

Admin → **Sites** → *Add site*. Pentru fiecare:

| Câmp | satelit-rv.online | satelit-auto.online |
|---|---|---|
| Domain | `satelit-rv.online` | `satelit-auto.online` |
| Site type | RV | Cars |
| Design | Dynamic (sunset orange…) | Retro-Premium (cream…) |

Tipul decide vocabularul și ce câmpuri de specificații primesc anunțurile
(un RV are „Sleeps / Length / Slide-outs", o mașină are „Odometer / Body
style"). Designul decide ce șablon se descarcă.

Restul — nume firmă, slogan, text „despre", siglă, cele trei culori, imagini,
telefon, adresă, program, termeni comerciali — le completezi acum sau le
ajustezi oricând. Orice schimbare apare pe satelit în maximum 90 de secunde,
fără să reurci nimic.

---

## Pasul 4 — pune sateliții pe domenii

În cPanel adaugă `satelit-rv.online` și `satelit-auto.online` ca **addon
domains**, fiecare cu folderul lui.

Apoi, în admin → **Sites** → butonul **Satellite** de pe site → **Download ZIP**.
Arhiva conține `index.php` (cu adresa hub-ului, cheia API și cheia de
diagnostic deja completate) și `.htaccess`.

1. Urci ambele fișiere în folderul domeniului.
2. Folderul trebuie să fie scriibil — satelitul își face un `.cache/` acolo.
3. AutoSSL pentru domeniu.
4. Deschizi linkul de verificare din aceeași pagină din admin. Îți răspunde
   în text simplu: ce domeniu vede, dacă ajunge la hub, câte anunțuri vede.
   Dacă ceva nu merge, îți spune exact ce anume.

---

## Când muți sateliții pe alt hosting

Nu se schimbă nimic în cod. Copiezi `index.php` și `.htaccess` pe noul server,
te asiguri că folderul e scriibil și că serverul are cURL sau
`allow_url_fopen`. Hub-ul rămâne unde e.

Singurul caz în care trebuie să re-descarci `index.php` de pe hub este dacă
schimbi designul site-ului sau cheia API.

---

## Ce se întâmplă când ceva cade

| Situație | Ce vede vizitatorul |
|---|---|
| Hub-ul e oprit, satelitul are cache | Site normal, din ultima copie |
| Hub-ul e oprit, cache gol | Pagină scurtă „revenim imediat" (503) |
| Cheia API nu se potrivește | Site normal din cache; diagnosticul spune 401 |
| SMTP nu merge | Formularele funcționează, mesajul se salvează în admin; doar emailul lipsește |

Formularele confirmă vizitatorului **înainte** de a trimite emailurile, ca un
server de mail lent să nu-l lase să aștepte.

---

## Verificat înainte de livrare

Am rulat instalarea asta local, pornind chiar de la `install.sql`, cu hub-ul
și cei doi sateliți pe domeniile de mai sus:

- 16 pagini × 2 sateliți → toate 200; pagină inexistentă → 404
- pagina de anunț pe ambii sateliți; un anunț de pe celălalt site → 404 corect
- datele din admin (nume, slogan, telefon, oraș, cele trei culori) apar pe satelit
- cele 5 formulare (contact, consignație, finanțare, recenzie, comandă) →
  redirect corect și rând salvat în baza hub-ului, cu câmpurile suplimentare
- captcha greșită respinsă pe server; honeypot înghițit în tăcere
- urmărire comandă: referință validă → stare completă; referință de pe alt
  site → „negăsit"
- API fără cheie → 401; cu cheie → 200
- datele bancare: 0 apariții în răspunsul către satelit
- hub oprit → satelitul servește din cache; cache șters → 503
- cele 12 pagini de admin, fără warning PHP și fără erori JS

---

## Rămas de făcut împreună

Designul și textele. Acum sateliții merg pe designurile construite anterior,
cu texte generice. Urmează:

1. textele reale pe fiecare site (acasă, despre, întrebări frecvente)
2. siglele, imaginile de antet și culorile fiecărei firme
3. al treilea site, **Heavy** — baza e deja pregătită (tip, categorii,
   coloane de specificații), lipsește doar șablonul de design
