Compare commits
4 Commits
195188f518
...
f8b32d0797
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8b32d0797 | ||
|
|
ce5c0481df | ||
|
|
b5e127489b | ||
|
|
dd186c9dac |
@ -10,30 +10,30 @@ State of the landing page + CV project. Append-only: keep history readable.
|
||||
- CV `CV_Bastien_Chanot.html` + matching PDF regenerated via weasyprint.
|
||||
- Local serve verified at `http://192.168.1.101:8000/`.
|
||||
|
||||
## 2026-05-17 — Extended-vitrine refactor (in progress)
|
||||
## 2026-05-17 — Extended-vitrine refactor (shipped — commit 1369d27)
|
||||
|
||||
Align landing with CV + add depth (Projets, Méthode, bullet-format Parcours).
|
||||
|
||||
- [ ] Meta description sync (kernel, AOSP, cloud gaming, GPU)
|
||||
- [ ] Nav links: add #projets + #methode
|
||||
- [ ] Hero: titre "Systèmes · Embarqué · Backend", banner "Backend · Cloud"
|
||||
- [ ] About: expand paragraphs (pourquoi bas niveau / cherche / pas envie)
|
||||
- [ ] Stack: Langages (Java AOSP, drop Python order, + Familier avec C++) · Conteneurs (- VMware + cgroups/namespaces) · Systèmes (+ SELinux) · DevOps (- Gitflow/Agile, + GitHub Actions) · NEW Cloud/Infra · NEW IA/Outils
|
||||
- [ ] Parcours: kill "seul"/"responsable unique" — reformuler autonomie+collab
|
||||
- [ ] CareGame: intro contexte + 9 bullets + stack pills
|
||||
- [ ] ZenQuality: intro CDI + 3 bullets + stack pills
|
||||
- [ ] Deewee: dates Fév-Nov 2017 + contract line + 2 bullets + stack pills
|
||||
- [ ] NEW Projets section (entre Parcours et Formation): Git source + Homelab
|
||||
- [ ] NEW Méthode section (entre Formation et Contact): 5 points bundle A
|
||||
- [ ] Contact email → bastien@bchanot.fr
|
||||
- [ ] CSS extensions: timeline-bullets, timeline-stack, timeline-contract, projects-grid, methode-list
|
||||
- [x] Meta description sync (kernel, AOSP, cloud gaming, GPU)
|
||||
- [x] Nav links: add #projets + #methode
|
||||
- [x] Hero: titre "Systèmes · Embarqué · Backend", banner "Backend · Cloud"
|
||||
- [x] About: expand paragraphs (pourquoi bas niveau / cherche / pas envie)
|
||||
- [x] Stack: Langages (Java AOSP, drop Python order, + Familier avec C++) · Conteneurs (- VMware + cgroups/namespaces) · Systèmes (+ SELinux) · DevOps (- Gitflow/Agile, + GitHub Actions) · NEW Cloud/Infra · NEW IA/Outils
|
||||
- [x] Parcours: kill "seul"/"responsable unique" — reformuler autonomie+collab
|
||||
- [x] CareGame: intro contexte + 9 bullets + stack pills
|
||||
- [x] ZenQuality: intro CDI + 3 bullets + stack pills
|
||||
- [x] Deewee: dates Fév-Nov 2017 + contract line + 2 bullets + stack pills
|
||||
- [x] NEW Projets section (entre Parcours et Formation): Git source + Homelab
|
||||
- [x] NEW Méthode section (entre Formation et Contact): 5 points bundle A
|
||||
- [x] Contact email → bastien@bchanot.fr
|
||||
- [x] CSS extensions: timeline-bullets, timeline-stack, timeline-contract, projects-grid, methode-list
|
||||
|
||||
## Known follow-ups
|
||||
|
||||
- Visual QA on real mobile device (375 px) — not just emulator.
|
||||
- Verify WCAG AA contrast on all green-on-parchment text.
|
||||
- Hosting decision: GitHub Pages vs Netlify vs Vercel vs nginx VPS — pending.
|
||||
- DNS / domain config for `bchanot.fr` — pending.
|
||||
- Hosting: nginx VPS + Docker container behind reverse proxy (BDR-004) — decided & live.
|
||||
- DNS / domain for `bchanot.fr` — configured (site live in prod).
|
||||
- Consider OG image — not yet present.
|
||||
- Mirror favicon link block into `CV_Bastien_Chanot.html` when user finalizes CV edits (currently /favicon.ico auto-served as legacy fallback).
|
||||
|
||||
|
||||
24
README.md
24
README.md
@ -13,6 +13,11 @@ Static single-page site (no framework, no build step). Lives at https://bchanot.
|
||||
| `CV_Bastien_Chanot.pdf` | CV — printable, served via "Télécharger PDF" |
|
||||
| `CLAUDE.md` | Project rules for the Claude assistant |
|
||||
| `.claude/` | Memory registries, tasks, audits |
|
||||
| `Dockerfile` | Container image build — copies static assets into nginx |
|
||||
| `docker-compose.yml` | Service def — host port, hardening (read-only, cap_drop), tmpfs |
|
||||
| `nginx.conf` | In-container nginx — security headers, CSP, gzip, cache |
|
||||
| `.env.example` | Sample env — `PORT` for the host bind |
|
||||
| `favicon.*`, `apple-touch-icon.png` | Favicon set — SVG primary + ICO/PNG + 180×180 apple-touch |
|
||||
|
||||
## Local preview
|
||||
|
||||
@ -70,9 +75,22 @@ WCAG AA contrast. Focus visible. Semantic HTML.
|
||||
|
||||
## Deploy
|
||||
|
||||
Static files — drop `index.html`, `CV_Bastien_Chanot.html`, and
|
||||
`CV_Bastien_Chanot.pdf` onto any static host (Netlify, Vercel, GitHub Pages,
|
||||
plain nginx) at the root.
|
||||
Production runs as a Docker container (`bchanot-web`, `nginx:1.27-alpine`)
|
||||
behind the host's nginx reverse proxy, which terminates TLS and `proxy_pass`es
|
||||
to it. The host port is set via `PORT` (default 8080) and bound to `127.0.0.1`,
|
||||
so all traffic goes through the front proxy.
|
||||
|
||||
```bash
|
||||
cp .env.example .env # optional: set PORT
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
`Dockerfile` copies the assets (HTML, PDF, favicons) into the image by an
|
||||
explicit whitelist — when you add a new top-level asset, add it there too or it
|
||||
will 404 in production. `nginx.conf` applies the security headers, gzip and
|
||||
cache rules. The site is also plain static: `index.html`, the CV HTML/PDF and
|
||||
favicon set drop onto any static host (Netlify, Vercel, GitHub Pages, plain
|
||||
nginx) at the root.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user