Initial import: LifeTrack v1 (santé, vape, finances)
Tracker de vie auto-hébergé : suivi poids/calories/sport avec planning de pesées, sevrage tabac (vape) avec modèle de coût DIY et économies, et finances personnelles avec import de relevés bancaires. Architecture : FastAPI + SQLAlchemy 2.0 + PostgreSQL 16, React 18 + TS + Vite + Tailwind + ECharts, déploiement Docker Compose. Modules auto-découverts des deux côtés (pkgutil / import.meta.glob) et framework de connecteurs à deux voies (importeurs de fichiers + ingestion JSON) pour brancher de nouvelles sources sans toucher au noyau. Validé : 292 tests pytest, tsc + vite build, contrat API/web vérifié contre le schéma OpenAPI, et déploiement Docker réel sur PostgreSQL 16 (28 tables, SPA servie par nginx, wizard de premier démarrage). Documentation : README.md, docs/GUIDE.md, CONVENTIONS.md, et les documents de conception et de recherche dans docs/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# Development overlay (hot reload). Usage:
|
||||
# docker compose -f docker-compose.yml -f docker-compose.dev.yml up
|
||||
# Or run only postgres in Docker and uvicorn/vite on the host:
|
||||
# docker compose -f docker-compose.yml -f docker-compose.dev.yml up postgres
|
||||
services:
|
||||
postgres:
|
||||
ports:
|
||||
- "5432:5432" # reachable from a host-run uvicorn
|
||||
|
||||
api:
|
||||
command:
|
||||
[
|
||||
"uvicorn",
|
||||
"app.main:app",
|
||||
"--reload",
|
||||
"--host",
|
||||
"0.0.0.0",
|
||||
"--port",
|
||||
"8000",
|
||||
]
|
||||
volumes:
|
||||
- ./apps/api/app:/srv/app
|
||||
environment:
|
||||
LIFETRACK_CORS_ORIGINS: '["http://localhost:5173"]'
|
||||
# The published port comes from the base file (API_PORT, default 8000):
|
||||
# re-declaring it here would publish the API twice.
|
||||
|
||||
web:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/web.Dockerfile
|
||||
target: build # stop at the node stage (deps installed, no nginx)
|
||||
image: lifetrack-web-dev
|
||||
working_dir: /build
|
||||
command: ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5173"]
|
||||
# No nginx in this stage: the vite dev server proxies /api itself
|
||||
# (apps/web/vite.config.ts), so the image healthcheck does not apply.
|
||||
healthcheck:
|
||||
disable: true
|
||||
volumes:
|
||||
- ./apps/web/src:/build/src
|
||||
- ./apps/web/index.html:/build/index.html
|
||||
- ./apps/web/vite.config.ts:/build/vite.config.ts
|
||||
- ./apps/web/tailwind.config.ts:/build/tailwind.config.ts
|
||||
- ./apps/web/postcss.config.js:/build/postcss.config.js
|
||||
- ./apps/web/tsconfig.json:/build/tsconfig.json
|
||||
ports:
|
||||
- "5173:5173"
|
||||
Reference in New Issue
Block a user