# Clinica Veterinaria Formiginese Repository operativo del sito della Clinica Veterinaria Formiginese, con frontend React/Vite e backend FastAPI per la gestione delle richieste di prenotazione. ## Struttura - `clinica-app/` - frontend React + Vite e build pubblica del sito - `backend/` - backend FastAPI, schema prenotazione e servizio email - `assets/` - materiali grafici di supporto - `deploy_to_local_server.bat` - aggiorna la copia locale di deploy partendo da Gitea - `SETUP_ISTRUZIONI.md` - note di installazione storiche ## Stack - Frontend: React 19, TypeScript, Tailwind CSS, Vite - Backend: FastAPI, Uvicorn - Web server online: Apache - Certificati: Let's Encrypt / Certbot ## Ambiente locale ### Repository di lavoro Percorso: ```txt C:\devel\clinica_veterinaria_formiginese ``` Per sviluppo rapido: ```bash cd C:\devel\clinica_veterinaria_formiginese\clinica-app pnpm install pnpm dev ``` Nota: la porta di sviluppo Vite e stata spostata a `3001`, per evitare conflitti con Gitea in locale. ### Repository di deploy locale Percorso: ```txt C:\deploy\clinica_veterinaria_formiginese ``` Il sito locale servito da Caddy legge questa copia, non quella in `C:\devel\...`. Per aggiornare il deploy locale: ```bat deploy_to_local_server.bat ``` Attenzione: lo script riallinea la copia locale di deploy a cio che e stato pushato su Gitea. ## Build frontend Da eseguire dentro `clinica-app/`: ```bash pnpm build ``` ## Prenotazioni La form di prenotazione usa anche il campo `doctor` (medico richiesto). L'invio email passa da Mailjet API, con `Reply-To` valorizzato con l'indirizzo inserito da chi compila il modulo. Il backend mantiene protezioni anti-abuso: flag di attivazione, CAPTCHA, honeypot, rate limit e audit log JSONL. Quando si pubblicano modifiche che toccano la form, vanno aggiornati insieme: - frontend React - backend FastAPI In particolare: - `backend/app/schemas/booking.py` - `backend/app/services/mailer.py` ## Deploy online Server attuale: ```txt ubuntu@129.152.31.221 ``` Percorso progetto: ```txt /var/www/clinicaveterinariaformiginese.it ``` ### Aggiornamento codice La cartella online non contiene una working copy Git. Le modifiche vanno quindi pubblicate copiando i file via WinSCP/SFTP dopo commit e push su Gitea. ### Build frontend ```bash cd /var/www/clinicaveterinariaformiginese.it/clinica-app pnpm build ``` ### Riavvio servizi ```bash sudo systemctl restart clinicaveterinaria-backend.service sudo systemctl reload apache2 ``` ### Verifiche utili ```bash systemctl status clinicaveterinaria-backend.service --no-pager journalctl -u clinicaveterinaria-backend.service -n 50 --no-pager curl -I https://www.clinicaveterinariaformiginese.it/ ``` ## Nota importante su Vite Nel build di produzione il runtime Manus deve restare disattivato. La configurazione e gia stata corretta in: ```txt clinica-app/vite.config.ts ``` I plugin Manus sono attivi solo in sviluppo, non nel build di produzione. ## Redirect domini veterinarioformigine Sono stati configurati 5 domini accessori per reindirizzare sempre verso: ```txt https://www.centrofaunaselvatica.it/ ``` Domini gestiti: - `veterinarioformigine.it` - `veterinarioformigine.com` - `veterinarioformigine.eu` - `veterinarioformigine.info` - `veterinarioformigine.cloud` Per ciascuno sono attivi anche i rispettivi host `www`. ### Comportamento atteso Tutti questi URL devono restituire: ```txt 301 Moved Permanently Location: https://www.centrofaunaselvatica.it/ ``` ### Configurazione Apache I virtual host HTTP sono stati creati in: ```txt /etc/apache2/sites-available/veterinarioformigine.*.conf ``` I virtual host HTTPS creati da Certbot sono in: ```txt /etc/apache2/sites-available/veterinarioformigine.*-le-ssl.conf ``` ### Certificato Certificato emesso con: ```bash sudo certbot --apache \ -d veterinarioformigine.it -d www.veterinarioformigine.it \ -d veterinarioformigine.com -d www.veterinarioformigine.com \ -d veterinarioformigine.eu -d www.veterinarioformigine.eu \ -d veterinarioformigine.info -d www.veterinarioformigine.info \ -d veterinarioformigine.cloud -d www.veterinarioformigine.cloud ``` Scadenza attuale del certificato: ```txt 2026-08-25 ``` ### Verifica redirect domini accessori ```bash curl -I https://veterinarioformigine.it curl -I https://www.veterinarioformigine.it curl -I https://veterinarioformigine.com curl -I https://www.veterinarioformigine.com curl -I https://veterinarioformigine.eu curl -I https://www.veterinarioformigine.eu curl -I https://veterinarioformigine.info curl -I https://www.veterinarioformigine.info curl -I https://veterinarioformigine.cloud curl -I https://www.veterinarioformigine.cloud ``` ## Git Branch operativo corrente: ```txt backend_init ``` Flusso consigliato: 1. Modifiche in `C:\devel\clinica_veterinaria_formiginese` 2. Test con `pnpm dev` 3. Commit e push su Gitea 4. Deploy locale con `deploy_to_local_server.bat` 5. Deploy online su Linux quando approvato