# Mostry (Symfony) — guida al deploy su hosting FTP

Questa è la base di Mostry riscritta in **Symfony 7 + Twig**, in **CSS puro** (nessun
build step). Gira su un normale hosting condiviso PHP: non serve una VPS.

## Requisiti dell'hosting
- **PHP 8.2 o superiore** (verifica nel pannello dell'hosting; consigliato 8.3).
- Estensioni PHP: `ctype`, `iconv`, `mbstring`, `openssl` (di serie ovunque).
- **Apache con mod_rewrite** (Aruba, SiteGround, Netsons, ecc. ce l'hanno).

## Preparare i file (una volta sola, sul PC)
Su un hosting solo-FTP non puoi lanciare Composer sul server: prepara tutto in locale.

1. Apri il **Prompt dei comandi** nella cartella `mostry-symfony` e genera i file
   ottimizzati per la produzione:
   ```
   set APP_ENV=prod
   php composer.phar install --no-dev --optimize-autoloader
   php bin/console cache:clear --env=prod
   php bin/console cache:warmup --env=prod
   ```
   (Se `composer` non è nel PATH usa il percorso completo del `php.exe` installato.)

2. Nel file `.env` imposta:
   ```
   APP_ENV=prod
   APP_DEBUG=0
   ```

## Caricare via FTP
Carica **tutta** la cartella `mostry-symfony` sul server, **inclusa `vendor/`**
(sì, sono tanti file: è normale con Symfony). Non caricare `var/cache` e `var/log`
(si rigenerano da soli); assicurati che la cartella `var/` sia **scrivibile**.

### Due scenari di document root
- **Puoi impostare il document root** (molti hosting lo permettono): puntalo alla
  cartella `public/`. È la configurazione corretta e più sicura. Fine.

- **Non puoi cambiare il document root** (il sito parte da `public_html/` o `htdocs/`):
  metti il contenuto del progetto **fuori** dalla webroot e nella webroot lascia solo
  ciò che sta in `public/`, correggendo in `public/index.php` il percorso di
  `dirname(__DIR__)` verso la cartella dove hai messo il resto. In alternativa, per
  semplicità, carica tutto il progetto in una sottocartella e fai puntare il dominio lì.

Il file `public/.htaccess` (già incluso) gestisce il rewrite verso `index.php`.

## Test dopo il caricamento
Apri il dominio: deve comparire la landing di Mostry. Se vedi errore 500, controlla i
permessi di `var/` e che PHP sia ≥ 8.2 nel pannello.

## Struttura del progetto
```
mostry-symfony/
├─ public/            <- QUI punta il web (index.php, .htaccess, css/, js/)
│  ├─ index.php
│  ├─ .htaccess
│  ├─ css/mostry.css  <- design system neo-brutalista in CSS puro
│  └─ js/reveal.js    <- animazioni scroll
├─ src/Controller/HomeController.php  <- contenuti della landing
├─ templates/
│  ├─ base.html.twig
│  ├─ _icons.html.twig   <- icone SVG (macro Twig)
│  └─ home/index.html.twig
├─ vendor/            <- dipendenze (da caricare via FTP)
└─ .env
```

## Sviluppo in locale
Doppio clic su `Desktop\Avvia Mostry Symfony.bat` → apre http://127.0.0.1:8000.
