Files
clinica-veterinaria-formigi…/README.md

223 lines
4.9 KiB
Markdown

# 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