Full-stack mosaic generator:
backend/: FastAPI + SQLAlchemy + universal DB provider abstraction.frontend/: React + TypeScript UI for studio and admin workflows.docker-compose.yml: production-like deployment with PostgreSQL, backend, and nginx-served frontend.
docker compose up --buildOpen:
- App:
http://localhost:8080 - Backend health (proxied):
http://localhost:8080/health
- Start backend:
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -e .[dev,postgres]
uvicorn app.main:app --reload- Start frontend:
cd frontend
npm install
npm run devFrontend runs at http://localhost:5173 and proxies API requests to backend.
Start:
.\start-local.ps1Stop:
.\stop-local.ps1Backend variables (see backend/.env.example):
MOZAIKA_DATABASE_URLMOZAIKA_DATABASE_ECHOMOZAIKA_MAX_UPLOAD_MB
Frontend optional variable:
VITE_API_BASE_URL(empty by default; use same-origin/proxy)