94 lines
2.2 KiB
Markdown
94 lines
2.2 KiB
Markdown
|
|
# 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
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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
|
||
|
|
|
||
|
|
```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
|
||
|
|
|
||
|
|
```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
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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 dans `metadata.verification.google` de `app/layout.tsx`,
|
||
|
|
rebuild, redéployer), soumettre `https://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.
|