Frontend Angular 21 preparado para produccion en Docker, compatible con reverse proxy y backend RAG publicado en /api.
- Flujo completo Front + Back en Docker: GUIA_BACK_FRONT_DOCKER.md
- Angular 21
- TypeScript
- Tailwind CSS
- Nginx (runtime de produccion)
- Frontend servido en
/ - Backend RAG servido en
/api - Mismo origen en produccion (sin cross-domain)
El frontend toma la base URL de API desde env-config.js en runtime:
- Archivo fuente:
public/env-config.js - Cargado en:
src/index.html - Consumo en cliente HTTP:
src/app/services/api.ts
Regla de fallback:
- Si no hay valor configurado: usa
/api
En produccion Docker, env-config.js se genera al arrancar el contenedor con la variable API_BASE_URL.
Instalacion:
npm installEjecucion:
npm startnpm start usa proxy.conf.json, por lo que llamadas a /api/* se proxyean a http://localhost:8000.
App local:
http://localhost:4200
Build local de imagen:
docker build -t chatbot-frontend:local .Run local (modo compatible con reverse proxy, API relativa):
docker run --rm -p 8080:80 --name chatbot-frontend chatbot-frontend:localRun local con API explicita (por ejemplo pruebas fuera de proxy unico):
docker run --rm -p 8080:80 -e API_BASE_URL=http://host.docker.internal:8000/api --name chatbot-frontend chatbot-frontend:localHealthcheck expuesto en:
GET /healthz
En tu entorno del backend (donde ya existe FRONTEND_IMAGE), usa:
FRONTEND_IMAGE=chatbot-frontend:localLuego levanta el compose del backend con su flujo habitual. El servicio frontend consumira esa imagen y seguira llamando al backend via /api.
Con API_BASE_URL=/api, el cliente usa:
POST /api/askGET /api/sourcesGET /api/documentsPOST /api/documents/uploadPOST /api/documents/ingest-sources
npm start
npm run build
npm run watch
npm test