diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e0e7b5..0c01ca2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ Todas as alterações materiais são registadas neste ficheiro. O formato segue - Nome, identidade visual e idioma orientados ao Portal de Reservas. - Configuração padrão alterada para PostgreSQL, Redis, SMTP/Mailpit e Europa/Lisboa. +- Configuração de desenvolvimento Vite passa a publicar módulos e HMR em `localhost:5173` e a aceitar explicitamente a origem do portal em `localhost:8000`, corrigindo a página em branco em Docker. ### Segurança diff --git a/docs/PROJECT_STATUS.md b/docs/PROJECT_STATUS.md index eca9f53..2e1d14b 100644 --- a/docs/PROJECT_STATUS.md +++ b/docs/PROJECT_STATUS.md @@ -54,6 +54,7 @@ Validação concluída em 4 de agosto de 2026: - Vite: build de produção concluído, 2304 módulos transformados; - PostgreSQL 17: `migrate:fresh --seed` concluído, incluindo extensão `btree_gist` e restrição de exclusão temporal; - smoke test HTTP: `/login` respondeu com estado 200 através do Nginx; +- Vite em Docker: URL pública, HMR e CORS verificados em `localhost:5173`; corrigida a página em branco causada pela publicação anterior de `0.0.0.0:5173`; - verificação visual no browser integrado: não executada devido a uma política administrativa temporariamente indisponível no browser desta sessão; não foi detetado erro da aplicação. ## Decisões pendentes do contexto institucional diff --git a/docs/RUNBOOK.md b/docs/RUNBOOK.md index d0a12af..c849720 100644 --- a/docs/RUNBOOK.md +++ b/docs/RUNBOOK.md @@ -21,6 +21,17 @@ docker compose exec postgres pg_isready -U reserva -d reserva docker compose exec redis redis-cli ping ``` +### Página em branco no desenvolvimento + +Se o HTML responder mas a interface React não aparecer, confirmar que `public/hot` contém `http://localhost:5173` e não `http://0.0.0.0:5173`. Depois validar os módulos: + +```bash +curl -I -H 'Origin: http://localhost:8000' http://localhost:5173/@vite/client +curl -I -H 'Origin: http://localhost:8000' http://localhost:5173/resources/js/app.tsx +``` + +Ambos devem responder com estado 200 e `Access-Control-Allow-Origin: http://localhost:8000`. Reiniciar o serviço com `docker compose restart node` se o ficheiro `public/hot` estiver desatualizado. + ## Atualização de código ```bash diff --git a/vite.config.ts b/vite.config.ts index b855732..6fedea8 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -7,6 +7,22 @@ import { bunny } from 'laravel-vite-plugin/fonts'; import { defineConfig } from 'vite'; export default defineConfig({ + server: { + host: '0.0.0.0', + port: 5173, + strictPort: true, + origin: 'http://localhost:5173', + cors: { + origin: [ + 'http://localhost:8000', + 'http://127.0.0.1:8000', + ], + }, + hmr: { + host: 'localhost', + port: 5173, + }, + }, plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.tsx'],