223 lines
4.9 KiB
Markdown
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
|