Files
portfolio/README.md
Johan LEROY ce17bf590b
Some checks failed
Deploy production / build-deploy (push) Failing after 56s
refonte: portfolio statique Astro (design moderne développeur)
- Remplace l'ancien Astro hybrid + admin par un site one-page statique (sortie static)
- Thème clair/sombre sans flash, contenu typé (src/data/content.ts), zéro admin
- Icônes simple-icons (SVG monochrome), polices auto-hébergées (RGPD)
- SEO complet : canonical, Open Graph, Twitter Card, JSON-LD Person, robots.txt, sitemap.xml, image OG 1200x630
- CI Gitea de déploiement FTPS vers Plesk (.gitea/workflows/prod.yml)
2026-06-19 16:03:09 +02:00

38 lines
1.5 KiB
Markdown

# Portfolio — johanleroy.fr
Site vitrine **one-page** de Johan Leroy, développeur fullstack.
Stack : **Astro 6** (sortie 100 % statique), TypeScript, CSS (variables de thème), zéro îlot
framework. Thème **clair/sombre** persistant, polices **auto-hébergées** (RGPD-friendly), icônes
de technos via **simple-icons** (SVG inline monochromes).
## Développement
```bash
npm install
npm run dev # serveur de dev (http://localhost:4321)
npm run check # astro check (typage)
npm run build # build statique → dist/
npm run preview # prévisualise le build
```
## Modifier le contenu
Tout le contenu (profil, projets, expériences, formation, stack, centres d'intérêt) vit dans
**un seul fichier typé** : [`src/data/content.ts`](src/data/content.ts).
L'URL du bouton « café » s'y trouve aussi (`coffeeUrl`).
## Assets
- `public/images/` — logo, photos de profil, logos d'entreprises, visuels de projets.
- `public/fonts/` — Inter + JetBrains Mono (`.woff2`, auto-hébergées).
- `public/cv.pdf` — CV téléchargeable depuis le hero.
## Déploiement
**Automatique via Gitea Actions** (`.gitea/workflows/prod.yml`) : tout push sur `main` lance
`astro check` + `npm run build`, puis envoie `dist/` en FTP vers Plesk.
Secrets à définir dans Gitea (Settings → Actions → Secrets) :
`FTP_HOST`, `FTP_USER`, `FTP_PASSWORD`, `FTP_TARGET_DIR` (chemin docroot, ex. `/httpdocs/johanleroy/public`).
Déploiement manuel possible : `npm run build` → uploader le contenu de `dist/` sur l'hébergement statique.