# Smart Roots — Sito Web Stack: **Astro 4** (static output) · CSS custom · Deploy su **IIS 10 / Windows Server 2016** --- ## Struttura del progetto ``` / ├── public/ │ ├── assets/ ← immagini, loghi (copiati as-is nel build) │ └── web.config ← configurazione IIS (copiata as-is nel build) ├── src/ │ ├── components/ │ │ ├── Layout.astro ← head HTML, meta SEO, font │ │ ├── Nav.astro ← navbar (variante full o back) │ │ └── Footer.astro ← footer con dati societari │ ├── pages/ │ │ ├── index.astro ← Home / Landing page │ │ ├── contatti.astro ← Form contatti → WebAPI │ │ ├── privacy.astro ← Privacy Policy (da completare) │ │ └── termini.astro ← Termini (da completare) │ └── styles/ │ └── global.css ← CSS variables, nav, footer, form, responsive ├── astro.config.mjs └── package.json ``` --- ## Setup locale ### Prerequisiti - Node.js 18+ (solo per sviluppo/build, non necessario in produzione) ```bash npm install npm run dev # avvia dev server su http://localhost:4321 npm run build # genera cartella /dist pronta per il deploy ``` --- ## Deploy su IIS 10 1. Eseguire il build: `npm run build` 2. La cartella `/dist` contiene il sito statico completo 3. Copiare il contenuto di `/dist` nella cartella del sito su IIS - Il `web.config` è già incluso nel build (sta in `/public`) 4. In IIS Manager: - Application Pool: **.NET CLR version = No Managed Code** - Assicurarsi che il modulo **URL Rewrite** sia installato (necessario per il routing) ### Modulo URL Rewrite Se non installato: scaricarlo da https://www.iis.net/downloads/microsoft/url-rewrite --- ## Form contatti — WebAPI Il form invia a `https://api.smart-roots.net/api/contatti` via `fetch` POST JSON. Payload inviato: ```json { "nome": "Mario Rossi", "azienda": "Acme S.r.l.", "email": "mario@azienda.it", "ambito": "smartdb", "messaggio": "..." } ``` ### Endpoint WebAPI da creare (.NET Framework 4.8) Vedere documentazione separata per `ContattiController`. Ricordarsi di abilitare CORS per `https://www.smart-roots.net` nella WebAPI. --- ## Aggiungere nuove pagine 1. Creare `src/pages/nuova-pagina.astro` 2. Usare il componente `Layout` con titolo e descrizione 3. `npm run build` e rideploy della cartella `/dist` --- ## TODO - [ ] Aggiungere immagine `hero-dashboard.png` in `/public/assets/` - [ ] Aggiungere immagine `og-image.jpg` in `/public/assets/` (1200×630px) - [ ] Completare testo Privacy Policy in `src/pages/privacy.astro` - [ ] Completare testo Termini in `src/pages/termini.astro` - [ ] Creare endpoint `POST /api/contatti` nella WebAPI - [ ] Abilitare CORS per `https://www.smart-roots.net` nella WebAPI