Este monorepo contiene:
- backend/: API FastAPI con DuckDB
- frontend/: React + Vite (TypeScript)
- docker-compose.yml: orquestación de ambos servicios
- Docker y Docker Compose
docker compose build
docker compose up -d- Backend: http://localhost:8000/health
- Frontend: http://localhost:5173
El frontend llama al backend vía /api (proxy de Vite en dev) o VITE_API_URL cuando se construye en Docker.
Backend:
python -m venv .venv && source .venv/bin/activate
pip install -r backend/requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 --app-dir backendFrontend:
cd frontend
npm install
npm run devPara evitar rebuilds de contenedores en cada cambio, usa el overlay dev que monta el código y corre servidores en modo watch:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build- Backend: Uvicorn con
--reloadrecargará al editarbackend/app/main.pyy demás archivos. - Frontend: Vite
npm run devsoporta hot module replacement; al editarfrontend/src/**/*se recarga automáticamente.
Detener:
docker compose -f docker-compose.yml -f docker-compose.dev.yml down- La base de datos DuckDB persiste en el volumen
duckdb_data. - Cambia
VITE_API_URLendocker-compose.ymlsi el backend corre en otra URL.