510d7ca4ec
Primo passo della separazione sito / piattaforme decisa da Adriano il 03/09: due applicazioni autosufficienti, senza workspace di root, cosi' che ognuna resti un progetto Astro completo ed estraibile. Qui non cambia niente del codice: solo la radice. I pattern del .gitignore che avevano una barra erano ancorati alla radice e dopo lo spostamento non avrebbero piu' coperto niente (data/*.db*, uploads/*): resi validi a qualunque profondita'. Suite: 45 file, 347 test verdi prima e dopo lo spostamento. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EndnceRA5WnA6rvA5iV9WL
36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
import { defineConfig } from 'astro/config';
|
|
import node from '@astrojs/node';
|
|
|
|
import react from '@astrojs/react';
|
|
|
|
export default defineConfig({
|
|
site: 'https://insanitylab.it',
|
|
output: 'server',
|
|
|
|
// Dietro Traefik il TLS termina al proxy: senza allowedDomains Astro ignora
|
|
// X-Forwarded-Proto/Host e il checkOrigin CSRF respinge i POST (403).
|
|
// Dominio ufficiale insanitylab.it (canonico apex); www e il vecchio
|
|
// sottodominio tielogic.xyz redirigono all'apex a livello Traefik.
|
|
security: {
|
|
allowedDomains: [
|
|
{ hostname: 'insanitylab.it', protocol: 'https' },
|
|
{ hostname: 'www.insanitylab.it', protocol: 'https' },
|
|
{ hostname: 'insanitylab.tielogic.xyz', protocol: 'https' },
|
|
],
|
|
},
|
|
|
|
adapter: node({ mode: 'standalone' }),
|
|
|
|
// La sezione "Programmi" è stata rinominata "Servizi": redirect permanenti dai vecchi URL.
|
|
redirects: {
|
|
'/programs': { status: 301, destination: '/services' },
|
|
'/programs/[slug]': { status: 301, destination: '/services/[slug]' },
|
|
// Modifiche 02: "Pilates Flow" → "Profilazione". "Rehab" esce dalla griglia Servizi e
|
|
// diventa un riquadro Training, ma la pagina dettaglio resta su /services/rehab.
|
|
'/services/pilates-flow': { status: 301, destination: '/services/profilazione' },
|
|
// "Personal Training" rinominato "One to One" (nuovo slug); Small Group è una pagina a sé.
|
|
'/services/personal-training': { status: 301, destination: '/services/one-to-one' },
|
|
},
|
|
|
|
integrations: [react()],
|
|
}); |