- Accueil façon profil GitHub (bio, homelab, projets épinglés, parcours) avec fond dégradé et panneaux liquid glass - /cv : consultable en ligne (thème sombre), imprimable en PDF propre (thème clair, 1 page) ; numéro de téléphone non scrapable - Pages d'erreur 404 / 500 / global-error animées (GSAP) - Métadonnées : Open Graph, Twitter, JSON-LD Person, sitemap, robots (allowlist Google + bots d'aperçu, reste bloqué) - Images OG et favicon en PNG statiques - Contenu du CV : Saint-Paul, langues, expériences détaillées - Export statique (output: export) + DEPLOY.md - Retrait de l'indicateur de dev Next.js et des fichiers du starter Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3hzMzvei419MwkKFZkvMX
2.2 KiB
2.2 KiB
Déploiement — francktwl.fr
Le site est un export statique Next.js : que du HTML/CSS/JS/images. Aucun Node, aucun process à faire tourner sur le serveur.
1. Construire
npm ci
npm run build
→ génère le dossier out/ (~1,4 Mo). C'est tout ce qu'il faut transférer.
2. Transférer sur le serveur
rsync -avz --delete out/ user@serveur:/srv/francktwl.fr/
(ou scp -r out/* user@serveur:/srv/francktwl.fr/)
Contenu de out/ :
index.html → page d'accueil
cv/index.html → /cv
404.html → page d'erreur
robots.txt
sitemap.xml
opengraph-image.png → carte de partage réseaux sociaux
twitter-image.png
icon.png → favicon
pp.jpg → photo
_next/ → JS/CSS (fichiers hashés, cache 1 an)
3. Servir le dossier
Caddy
francktwl.fr {
root * /srv/francktwl.fr
encode zstd gzip
try_files {path} {path}/index.html {path}.html
file_server
handle_errors {
rewrite * /404.html
file_server
}
@assets path /_next/static/*
header @assets Cache-Control "public, max-age=31536000, immutable"
}
Nginx
server {
listen 80;
server_name francktwl.fr www.francktwl.fr;
root /srv/francktwl.fr;
location / {
try_files $uri $uri.html $uri/index.html $uri/ =404;
}
error_page 404 /404.html;
location /_next/static/ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
}
TLS : certbot, ou via ton reverse proxy existant (celui qui sert déjà Forgejo /
Nextcloud) — ajoute simplement francktwl.fr comme vhost pointant sur
/srv/francktwl.fr.
4. À chaque mise à jour
npm run build && rsync -avz --delete out/ user@serveur:/srv/francktwl.fr/
Après le premier déploiement
- Google Search Console : ajouter
francktwl.fr, prouver la propriété (coller le token dansmetadata.verification.googledeapp/layout.tsx, rebuild, redéployer), soumettrehttps://francktwl.fr/sitemap.xml. - L'image de partage (
opengraph-image.png/twitter-image.png) est pré-générée. Pour la changer : éditer le PNG ou regénérer.