judu/ex-egopublic Fork
⑂ eacbeb6
Commits
⬇ Clone ▾
git clone https://git.rickub.com/judu/ex-ego.git
git clone ssh://git@rickub.com/judu/ex-ego.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

docs: procédure de déploiement de la doc, vérifiée sur l'app statiqueUnverified

L'app ex-ego-doc est créée et déployée sur son URL cleverapps (build zola
distant, 3 s, types de contenu corrects y compris image/jxl). Reste à
brancher ex-ego.durillon.family/documentation et à retirer le --base-url
de prévisualisation.
Julien Durillon committed 2026-08-11T14:09:53+02:00 Browse files
eacbeb6 parent: 64f28fc
modified docs/site-documentation/DEPLOIEMENT.md +41 -47
@@ -1,78 +1,73 @@
11 # Déployer la documentation sur Clever Cloud
22
3-La doc est servie par une **seconde application**, de type `static`, branchée
4-sur le domaine de production avec un préfixe de chemin :
3+La doc est servie par une **seconde application**, de type `static`, destinée
4+au domaine de production avec un préfixe de chemin :
55 `https://ex-ego.durillon.family/documentation`. L'application Rust
66 (`app_f7c88187-…`) garde la racine du domaine, elle n'est pas touchée.
77
8+| | |
9+|---|---|
10+| Application | `ex-ego-doc`, alias `doc`, `app_ee0c92a2-3c2f-436a-bd15-fe58881edce3` |
11+| Zone, taille | `par`, flavor `pico` |
12+| URL actuelle | https://app-ee0c92a2-3c2f-436a-bd15-fe58881edce3.cleverapps.io/documentation |
13+| Domaine cible | `ex-ego.durillon.family/documentation` (pas encore branché) |
14+
815 ## Le point qui commande tout le reste
916
1017 Sur Clever Cloud, le routage par chemin **transmet le préfixe** à
1118 l'application : une requête sur `ex-ego.durillon.family/documentation/ecrans/`
1219 arrive côté statique en tant que `/documentation/ecrans/`. La sortie du build
13-doit donc vivre dans un dossier `documentation/`, et pas à la racine du
14-webroot. D'où la construction :
15-
16-```bash
17-cd docs/site-documentation
18-zola build --output-dir ../../_site/documentation
19-```
20-
21-soit un webroot `_site/` contenant un unique dossier `documentation/`. Le
22-`base_url` du `config.toml` porte déjà ce même sous-chemin, les deux doivent
20+vit donc dans un dossier `documentation/`, et pas à la racine du webroot,
21+d'où `CC_WEBROOT=/_site` et une construction vers `_site/documentation`.
22+Le `base_url` du `config.toml` porte le même sous-chemin ; les deux doivent
2323 rester d'accord.
2424
25-Vérification locale du montage complet :
25+## Configuration en place
2626
2727 ```bash
28-cd _site && python3 -m http.server 8099
29-curl -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8099/documentation/
28+clever env --alias doc
29+# CC_WEBROOT="/_site"
30+# CC_BUILD_COMMAND="curl -sSL …/zola-v0.23.2-x86_64-unknown-linux-gnu.tar.gz \
31+# | tar -xz -C /tmp && cd docs/site-documentation \
32+# && /tmp/zola build --base-url <url de l'app> --output-dir ../../_site/documentation"
3033 ```
3134
32-## Création de l'application (une seule fois)
35+Zola est téléchargé et épinglé au build. Le runtime statique sait pourtant
36+détecter Zola tout seul, mais uniquement si `config.toml` est à la racine du
37+dépôt, ce qui n'est pas le cas ici : d'où la commande explicite. Le build dure
38+trois secondes et n'a besoin ni de Chrome, ni de la base, ni de `cjxl`,
39+puisque les captures sont versionnées.
3340
34-```bash
35-# Application statique, plus petite taille possible, dans l'org perso
36-clever create --type static ex-ego-doc --region par --alias doc
41+Le `--base-url` de la commande n'existe que le temps de la prévisualisation
42+sur l'URL `cleverapps.io`. **Le retirer en même temps qu'on branche le vrai
43+domaine**, pour que Zola reprenne le `base_url` du `config.toml`.
3744
38-# Construction : zola épinglé, téléchargé au build (le runtime statique sait
39-# détecter Zola tout seul, mais seulement si config.toml est à la racine du
40-# dépôt, ce qui n'est pas le cas ici — d'où la commande explicite)
41-clever env set --alias doc CC_BUILD_COMMAND \
42- 'curl -sSL https://github.com/getzola/zola/releases/download/v0.23.2/zola-v0.23.2-x86_64-unknown-linux-gnu.tar.gz | tar -xz -C /tmp && cd docs/site-documentation && /tmp/zola build --output-dir ../../_site/documentation'
43-clever env set --alias doc CC_WEBROOT /_site
45+## Brancher le domaine de production (étape restante)
4446
45-# Le domaine de production, avec le chemin
47+```bash
4648 clever domain add --alias doc ex-ego.durillon.family/documentation
47-
48-clever deploy --alias doc
49+# puis retirer --base-url de CC_BUILD_COMMAND et redéployer
50+clever restart --alias doc --without-cache
4951 ```
5052
51-`clever create` ajoute un bloc dans `.clever.json`, qui est **ignoré par
52-git** : chaque poste refait son `clever link` si besoin.
53+Ensuite vérifier que `https://ex-ego.durillon.family/` sert toujours
54+l'application Rust, et que `/documentation/`, `/documentation/en/` et
55+`/documentation/de/` répondent.
5356
5457 ## Déploiements suivants
5558
5659 ```bash
57-clever deploy --alias doc # pousse le HEAD git, donc le parent du working copy jj
58-clever logs --alias doc # si le build échoue, la sortie de zola est là
60+clever deploy --alias doc # pousse le HEAD git (= parent du working copy jj)
61+clever restart --alias doc --without-cache # si seule une variable a changé
62+clever logs --alias doc --since 10m # la sortie de zola s'y trouve
5963 ```
6064
61-Les captures d'écran sont versionnées, le build ne fait que du HTML : il n'a
62-besoin ni de Chrome, ni de la base, ni de `cjxl`.
63-
64-## À vérifier après le premier déploiement
65+## Vérifié sur le déploiement du 11 août 2026
6566
66-1. `curl -sI https://ex-ego.durillon.family/documentation/img/fr/stats.jxl`
67- doit renvoyer `content-type: image/jxl`. Si le serveur statique ne connaît
68- pas l'extension et répond `application/octet-stream`, ajouter un
69- `Caddyfile` (variables `CC_STATIC_SERVER=caddy` et `CC_STATIC_CADDYFILE`)
70- qui pose le type sur `*.jxl`. Les navigateurs sans JPEG XL, eux, ne sont
71- pas concernés : ils prennent le PNG de repli du `<picture>`.
72-2. La racine `https://ex-ego.durillon.family/` doit continuer à servir
73- l'application Rust.
74-3. `https://ex-ego.durillon.family/documentation/en/` et `/de/` répondent, et
75- le sélecteur de langue conserve la page courante.
67+Le serveur est `static-web-server`, et il envoie les bons types de contenu
68+sans configuration : `image/jxl` pour les captures JPEG XL, `image/png` pour
69+les replis, `font/woff2` pour les polices. Aucun `Caddyfile` n'est nécessaire.
70+Les navigateurs sans JPEG XL prennent le PNG du `<picture>`.
7671
7772 ## Repli si le build distant pose problème
7873
@@ -81,7 +76,6 @@ pousser que le résultat, sur une branche dédiée :
8176
8277 ```bash
8378 zola build --output-dir /chemin/vers/worktree/documentation
84-# commit dans la branche de publication, puis
8579 clever deploy --alias doc --branch <branche>
8680 ```
8781
@@ -1,78 +1,73 @@
1 # Déployer la documentation sur Clever Cloud1 # Déployer la documentation sur Clever Cloud
2 2
3-La doc est servie par une **seconde application**, de type `static`, branchée3+La doc est servie par une **seconde application**, de type `static`, destinée
4-sur le domaine de production avec un préfixe de chemin :4+au domaine de production avec un préfixe de chemin :
5 `https://ex-ego.durillon.family/documentation`. L'application Rust5 `https://ex-ego.durillon.family/documentation`. L'application Rust
6 (`app_f7c88187-…`) garde la racine du domaine, elle n'est pas touchée.6 (`app_f7c88187-…`) garde la racine du domaine, elle n'est pas touchée.
7 7
8+| | |
9+|---|---|
10+| Application | `ex-ego-doc`, alias `doc`, `app_ee0c92a2-3c2f-436a-bd15-fe58881edce3` |
11+| Zone, taille | `par`, flavor `pico` |
12+| URL actuelle | https://app-ee0c92a2-3c2f-436a-bd15-fe58881edce3.cleverapps.io/documentation |
13+| Domaine cible | `ex-ego.durillon.family/documentation` (pas encore branché) |
14+
8 ## Le point qui commande tout le reste15 ## Le point qui commande tout le reste
9 16
10 Sur Clever Cloud, le routage par chemin **transmet le préfixe** à17 Sur Clever Cloud, le routage par chemin **transmet le préfixe** à
11 l'application : une requête sur `ex-ego.durillon.family/documentation/ecrans/`18 l'application : une requête sur `ex-ego.durillon.family/documentation/ecrans/`
12 arrive côté statique en tant que `/documentation/ecrans/`. La sortie du build19 arrive côté statique en tant que `/documentation/ecrans/`. La sortie du build
13-doit donc vivre dans un dossier `documentation/`, et pas à la racine du20+vit donc dans un dossier `documentation/`, et pas à la racine du webroot,
14-webroot. D'où la construction :21+d'où `CC_WEBROOT=/_site` et une construction vers `_site/documentation`.
15-22+Le `base_url` du `config.toml` porte le même sous-chemin ; les deux doivent
16-```bash
17-cd docs/site-documentation
18-zola build --output-dir ../../_site/documentation
19-```
20-
21-soit un webroot `_site/` contenant un unique dossier `documentation/`. Le
22-`base_url` du `config.toml` porte déjà ce même sous-chemin, les deux doivent
23 rester d'accord.23 rester d'accord.
24 24
25-Vérification locale du montage complet :25+## Configuration en place
26 26
27 ```bash27 ```bash
28-cd _site && python3 -m http.server 809928+clever env --alias doc
29-curl -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8099/documentation/29+# CC_WEBROOT="/_site"
30+# CC_BUILD_COMMAND="curl -sSL …/zola-v0.23.2-x86_64-unknown-linux-gnu.tar.gz \
31+# | tar -xz -C /tmp && cd docs/site-documentation \
32+# && /tmp/zola build --base-url <url de l'app> --output-dir ../../_site/documentation"
30 ```33 ```
31 34
32-## Création de l'application (une seule fois)35+Zola est téléchargé et épinglé au build. Le runtime statique sait pourtant
36+détecter Zola tout seul, mais uniquement si `config.toml` est à la racine du
37+dépôt, ce qui n'est pas le cas ici : d'où la commande explicite. Le build dure
38+trois secondes et n'a besoin ni de Chrome, ni de la base, ni de `cjxl`,
39+puisque les captures sont versionnées.
33 40
34-```bash41+Le `--base-url` de la commande n'existe que le temps de la prévisualisation
35-# Application statique, plus petite taille possible, dans l'org perso42+sur l'URL `cleverapps.io`. **Le retirer en même temps qu'on branche le vrai
36-clever create --type static ex-ego-doc --region par --alias doc43+domaine**, pour que Zola reprenne le `base_url` du `config.toml`.
37 44
38-# Construction : zola épinglé, téléchargé au build (le runtime statique sait45+## Brancher le domaine de production (étape restante)
39-# détecter Zola tout seul, mais seulement si config.toml est à la racine du
40-# dépôt, ce qui n'est pas le cas ici — d'où la commande explicite)
41-clever env set --alias doc CC_BUILD_COMMAND \
42- 'curl -sSL https://github.com/getzola/zola/releases/download/v0.23.2/zola-v0.23.2-x86_64-unknown-linux-gnu.tar.gz | tar -xz -C /tmp && cd docs/site-documentation && /tmp/zola build --output-dir ../../_site/documentation'
43-clever env set --alias doc CC_WEBROOT /_site
44 46
45-# Le domaine de production, avec le chemin47+```bash
46 clever domain add --alias doc ex-ego.durillon.family/documentation48 clever domain add --alias doc ex-ego.durillon.family/documentation
47-49+# puis retirer --base-url de CC_BUILD_COMMAND et redéployer
48-clever deploy --alias doc50+clever restart --alias doc --without-cache
49 ```51 ```
50 52
51-`clever create` ajoute un bloc dans `.clever.json`, qui est **ignoré par53+Ensuite vérifier que `https://ex-ego.durillon.family/` sert toujours
52-git** : chaque poste refait son `clever link` si besoin.54+l'application Rust, et que `/documentation/`, `/documentation/en/` et
55+`/documentation/de/` répondent.
53 56
54 ## Déploiements suivants57 ## Déploiements suivants
55 58
56 ```bash59 ```bash
57-clever deploy --alias doc # pousse le HEAD git, donc le parent du working copy jj60+clever deploy --alias doc # pousse le HEAD git (= parent du working copy jj)
58-clever logs --alias doc # si le build échoue, la sortie de zola est là61+clever restart --alias doc --without-cache # si seule une variable a changé
62+clever logs --alias doc --since 10m # la sortie de zola s'y trouve
59 ```63 ```
60 64
61-Les captures d'écran sont versionnées, le build ne fait que du HTML : il n'a65+## Vérifié sur le déploiement du 11 août 2026
62-besoin ni de Chrome, ni de la base, ni de `cjxl`.
63-
64-## À vérifier après le premier déploiement
65 66
66-1. `curl -sI https://ex-ego.durillon.family/documentation/img/fr/stats.jxl`67+Le serveur est `static-web-server`, et il envoie les bons types de contenu
67- doit renvoyer `content-type: image/jxl`. Si le serveur statique ne connaît68+sans configuration : `image/jxl` pour les captures JPEG XL, `image/png` pour
68- pas l'extension et répond `application/octet-stream`, ajouter un69+les replis, `font/woff2` pour les polices. Aucun `Caddyfile` n'est nécessaire.
69- `Caddyfile` (variables `CC_STATIC_SERVER=caddy` et `CC_STATIC_CADDYFILE`)70+Les navigateurs sans JPEG XL prennent le PNG du `<picture>`.
70- qui pose le type sur `*.jxl`. Les navigateurs sans JPEG XL, eux, ne sont
71- pas concernés : ils prennent le PNG de repli du `<picture>`.
72-2. La racine `https://ex-ego.durillon.family/` doit continuer à servir
73- l'application Rust.
74-3. `https://ex-ego.durillon.family/documentation/en/` et `/de/` répondent, et
75- le sélecteur de langue conserve la page courante.
76 71
77 ## Repli si le build distant pose problème72 ## Repli si le build distant pose problème
78 73
@@ -81,7 +76,6 @@ pousser que le résultat, sur une branche dédiée :
81 76
82 ```bash77 ```bash
83 zola build --output-dir /chemin/vers/worktree/documentation78 zola build --output-dir /chemin/vers/worktree/documentation
84-# commit dans la branche de publication, puis
85 clever deploy --alias doc --branch <branche>79 clever deploy --alias doc --branch <branche>
86 ```80 ```
87 81