No description
Le CV reel debordait d'un poste et des centres d'interet, ce qui donnait une deuxieme page presque vide : un document plus maigre que dense, l'inverse de l'effet recherche. L'interligne, les fontes et surtout les respirations verticales se resserrent partout. Les marges de page passent de 20mm a 16mm en tete et de 14mm a 12mm en pied. Le vrai profil tient desormais sur une page avec environ 21mm de marge basse dans les deux colonnes. Quatre graisses etaient invalides en CSS (650, 640, 620, 560) et WeasyPrint les ignorait purement et simplement : les intitules de poste, les cles du bandeau et le nom d'entreprise s'affichaient en graisse normale au lieu du demi-gras voulu. Elles passent a 600. Un garde-fou rend une carriere de dix ans, calquee sur la densite reelle du profil mais volontairement 14mm plus dense, et exige une seule page. Il se declenchera donc avant que le vrai CV ne deborde. |
||
|---|---|---|
| .forgejo/workflows | ||
| apps/site | ||
| backend | ||
| docs | ||
| packages/ui | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc.json | ||
| Caddyfile.dev | ||
| compose.prod.yml | ||
| DEPLOY.md | ||
| docker-compose.dev.yml | ||
| Dockerfile | ||
| eslint.config.js | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| sws.toml | ||
rackhamator.cloud
Site personnel : front React (DA maison) + API FastAPI, auto-hébergé derrière Traefik.
Structure (monorepo npm workspaces)
apps/site/ front React 19 / Vite / TS (la DA, les composants, l'API client)
packages/ui/ @rackham/ui — contenu + composants partagés (réutilisés par l'admin)
backend/ API FastAPI async (SQLAlchemy 2.0 + Alembic + pytest)
docs/ notes (ex. automatisation statut iPhone)
L'admin est un dépôt privé séparé (../website-admin) qui réutilise @rackham/ui.
Lancer toute la stack en local (Docker)
docker compose -f docker-compose.dev.yml up --build
- Site : http://localhost:8090
- API : http://localhost:8090/api/health · docs : http://localhost:8090/docs
Un reverse proxy Caddy sert le front et route /api vers le backend (même origine, comme
en prod). Postgres et les migrations Alembic sont lancés automatiquement. DEV_AUTH_USER
court-circuite Authelia en local (l'admin fonctionne sans SSO).
Pour l'admin (dépôt séparé), la stack ci-dessus tournant :
cd ../website-admin && VITE_API_BASE=http://localhost:8090 npm run dev
Développement front (hot-reload)
npm install
npm run dev # apps/site sur :5173 (définir VITE_API_BASE vers le backend)
Backend seul
Voir backend/README.md.
Qualité
npm run format && npm run lint && npm run build # front
Déploiement
Le front est compilé en statique (apps/site/dist) et servi par Traefik ; le backend
tourne en conteneur (backend/Dockerfile, migrations au démarrage). Tout passe par
Traefik — plus de nginx.