@hgdc/docs 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/package.json +1 -1
  2. package/src/integration.ts +8 -1
  3. package/src/overrides/ThemeToggle.astro +6 -6
  4. package/src/styles/theme.css +36 -5
  5. package/template/.astro/content-modules.mjs +15 -35
  6. package/template/.build/.well-known/llms.txt +34 -51
  7. package/template/.build/404.html +4 -4
  8. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js +1 -0
  9. package/template/.build/_astro/common.BoKrWC_6.css +3 -0
  10. package/template/.build/_astro/logo-clair.BqNh6JNi.svg +1 -0
  11. package/template/.build/_astro/logo-sombre.BkgsFXxh.svg +1 -0
  12. package/template/.build/_hgdc/corpus.json +1 -1
  13. package/template/.build/demarrer/premiere-doc/index.html +25 -0
  14. package/template/.build/demarrer/premiere-doc.md +65 -0
  15. package/template/.build/explications/donnees/index.html +55 -0
  16. package/template/.build/explications/donnees.md +28 -0
  17. package/template/.build/explications/fonctionnement/index.html +33 -0
  18. package/template/.build/explications/fonctionnement.md +32 -0
  19. package/template/.build/guides/agents/index.html +59 -0
  20. package/template/.build/guides/agents.md +54 -0
  21. package/template/.build/guides/assistant/index.html +60 -0
  22. package/template/.build/guides/assistant.md +46 -0
  23. package/template/.build/guides/composants/index.html +38 -0
  24. package/template/.build/guides/composants.md +103 -0
  25. package/template/.build/guides/ecrire/index.html +56 -0
  26. package/template/.build/guides/ecrire.md +63 -0
  27. package/template/.build/guides/elements/index.html +1 -0
  28. package/template/.build/guides/navigation/index.html +30 -0
  29. package/template/.build/guides/navigation.md +63 -0
  30. package/template/.build/guides/publier/index.html +27 -0
  31. package/template/.build/guides/publier.md +65 -0
  32. package/template/.build/guides/theme/index.html +27 -0
  33. package/template/.build/guides/theme.md +33 -0
  34. package/template/.build/images/favicon.svg +1 -0
  35. package/template/.build/images/logo-clair.svg +1 -0
  36. package/template/.build/images/logo-sombre.svg +1 -0
  37. package/template/.build/index.html +14 -18
  38. package/template/.build/index.md +21 -59
  39. package/template/.build/llms-full.txt +515 -2331
  40. package/template/.build/llms.txt +34 -51
  41. package/template/.build/pagefind/fragment/fr-ch_1aa5706.pf_fragment +0 -0
  42. package/template/.build/pagefind/fragment/fr-ch_21308c9.pf_fragment +0 -0
  43. package/template/.build/pagefind/fragment/fr-ch_256be83.pf_fragment +0 -0
  44. package/template/.build/pagefind/fragment/fr-ch_3786e05.pf_fragment +0 -0
  45. package/template/.build/pagefind/fragment/fr-ch_3e2d7bf.pf_fragment +0 -0
  46. package/template/.build/pagefind/fragment/fr-ch_53e6d95.pf_fragment +0 -0
  47. package/template/.build/pagefind/fragment/fr-ch_7011e1a.pf_fragment +0 -0
  48. package/template/.build/pagefind/fragment/fr-ch_7252d5b.pf_fragment +0 -0
  49. package/template/.build/pagefind/fragment/fr-ch_8a5f581.pf_fragment +0 -0
  50. package/template/.build/pagefind/fragment/fr-ch_9221692.pf_fragment +0 -0
  51. package/template/.build/pagefind/fragment/fr-ch_a4b68e2.pf_fragment +0 -0
  52. package/template/.build/pagefind/fragment/fr-ch_d4ef5e9.pf_fragment +0 -0
  53. package/template/.build/pagefind/fragment/fr-ch_edaf413.pf_fragment +0 -0
  54. package/template/.build/pagefind/fragment/fr-ch_f017e56.pf_fragment +0 -0
  55. package/template/.build/pagefind/fragment/fr-ch_fe71cc1.pf_fragment +0 -0
  56. package/template/.build/pagefind/index/fr-ch_481c81a.pf_index +0 -0
  57. package/template/.build/pagefind/pagefind-entry.json +1 -1
  58. package/template/.build/pagefind/pagefind.fr-ch_46a632d8eba7e.pf_meta +0 -0
  59. package/template/.build/reference/api-assistant/index.html +102 -0
  60. package/template/.build/reference/api-assistant.md +60 -0
  61. package/template/.build/reference/cli/index.html +11 -153
  62. package/template/.build/reference/cli.md +23 -159
  63. package/template/.build/reference/docs-json/index.html +157 -0
  64. package/template/.build/reference/docs-json.md +47 -0
  65. package/template/.build/reference/mcp/index.html +92 -0
  66. package/template/.build/reference/mcp.md +49 -0
  67. package/template/node_modules/.vite/deps/_metadata.json +8 -8
  68. package/template/.astro/data-store.json +0 -1
  69. package/template/.astro/settings.json +0 -5
  70. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.D7EcezBU.js +0 -1
  71. package/template/.build/_astro/common.Dx3aBIS0.css +0 -3
  72. package/template/.build/_astro/logo.BPu921Tp.svg +0 -1
  73. package/template/.build/concepts/confidentialite/index.html +0 -50
  74. package/template/.build/concepts/confidentialite.md +0 -38
  75. package/template/.build/concepts/deploiements/index.html +0 -106
  76. package/template/.build/concepts/deploiements.md +0 -70
  77. package/template/.build/concepts/organisations-et-roles/index.html +0 -83
  78. package/template/.build/concepts/organisations-et-roles.md +0 -39
  79. package/template/.build/concepts/preversion/index.html +0 -49
  80. package/template/.build/concepts/preversion.md +0 -52
  81. package/template/.build/concepts/secrets-et-coffre/index.html +0 -70
  82. package/template/.build/concepts/secrets-et-coffre.md +0 -54
  83. package/template/.build/demarrer/depuis-github/index.html +0 -34
  84. package/template/.build/demarrer/depuis-github.md +0 -68
  85. package/template/.build/demarrer/premier-site/index.html +0 -28
  86. package/template/.build/demarrer/premier-site.md +0 -94
  87. package/template/.build/guides/brancher-un-domaine/index.html +0 -91
  88. package/template/.build/guides/brancher-un-domaine.md +0 -81
  89. package/template/.build/guides/cle-d-api/index.html +0 -62
  90. package/template/.build/guides/cle-d-api.md +0 -78
  91. package/template/.build/guides/depannage/index.html +0 -64
  92. package/template/.build/guides/depannage.md +0 -69
  93. package/template/.build/guides/deployer-depuis-github/index.html +0 -45
  94. package/template/.build/guides/deployer-depuis-github.md +0 -70
  95. package/template/.build/guides/deployer-un-framework/index.html +0 -81
  96. package/template/.build/guides/deployer-un-framework.md +0 -74
  97. package/template/.build/guides/github-actions-sans-application/index.html +0 -53
  98. package/template/.build/guides/github-actions-sans-application.md +0 -95
  99. package/template/.build/guides/inviter-une-personne/index.html +0 -28
  100. package/template/.build/guides/inviter-une-personne.md +0 -38
  101. package/template/.build/guides/lire-les-logs/index.html +0 -37
  102. package/template/.build/guides/lire-les-logs.md +0 -48
  103. package/template/.build/guides/migrer-depuis-vercel/index.html +0 -25
  104. package/template/.build/guides/migrer-depuis-vercel.md +0 -51
  105. package/template/.build/guides/monorepo/index.html +0 -40
  106. package/template/.build/guides/monorepo.md +0 -42
  107. package/template/.build/guides/revenir-en-arriere/index.html +0 -39
  108. package/template/.build/guides/revenir-en-arriere.md +0 -50
  109. package/template/.build/guides/site-statique/index.html +0 -41
  110. package/template/.build/guides/site-statique.md +0 -59
  111. package/template/.build/guides/synchroniser-doppler/index.html +0 -46
  112. package/template/.build/guides/synchroniser-doppler.md +0 -63
  113. package/template/.build/guides/variables-d-environnement/index.html +0 -73
  114. package/template/.build/guides/variables-d-environnement.md +0 -92
  115. package/template/.build/images/famille/account.svg +0 -1
  116. package/template/.build/images/famille/analytics.svg +0 -1
  117. package/template/.build/images/famille/docs.svg +0 -1
  118. package/template/.build/images/famille/host.svg +0 -1
  119. package/template/.build/images/famille/mail.svg +0 -1
  120. package/template/.build/images/famille/portal.svg +0 -1
  121. package/template/.build/images/famille/status.svg +0 -1
  122. package/template/.build/images/logo.svg +0 -1
  123. package/template/.build/pagefind/fragment/fr-ch_16987e2.pf_fragment +0 -0
  124. package/template/.build/pagefind/fragment/fr-ch_2b4c97b.pf_fragment +0 -0
  125. package/template/.build/pagefind/fragment/fr-ch_3294a5c.pf_fragment +0 -0
  126. package/template/.build/pagefind/fragment/fr-ch_34858c9.pf_fragment +0 -0
  127. package/template/.build/pagefind/fragment/fr-ch_39ddba1.pf_fragment +0 -0
  128. package/template/.build/pagefind/fragment/fr-ch_4ab1899.pf_fragment +0 -0
  129. package/template/.build/pagefind/fragment/fr-ch_4d3a52a.pf_fragment +0 -0
  130. package/template/.build/pagefind/fragment/fr-ch_506c187.pf_fragment +0 -0
  131. package/template/.build/pagefind/fragment/fr-ch_5aa255a.pf_fragment +0 -0
  132. package/template/.build/pagefind/fragment/fr-ch_6841c7d.pf_fragment +0 -0
  133. package/template/.build/pagefind/fragment/fr-ch_6dc7a2d.pf_fragment +0 -0
  134. package/template/.build/pagefind/fragment/fr-ch_847edff.pf_fragment +0 -0
  135. package/template/.build/pagefind/fragment/fr-ch_8745af7.pf_fragment +0 -0
  136. package/template/.build/pagefind/fragment/fr-ch_8aac5e6.pf_fragment +0 -0
  137. package/template/.build/pagefind/fragment/fr-ch_916b233.pf_fragment +0 -0
  138. package/template/.build/pagefind/fragment/fr-ch_9fd014a.pf_fragment +0 -0
  139. package/template/.build/pagefind/fragment/fr-ch_a0808f8.pf_fragment +0 -0
  140. package/template/.build/pagefind/fragment/fr-ch_a4e1f69.pf_fragment +0 -0
  141. package/template/.build/pagefind/fragment/fr-ch_a80a53d.pf_fragment +0 -0
  142. package/template/.build/pagefind/fragment/fr-ch_a9e725b.pf_fragment +0 -0
  143. package/template/.build/pagefind/fragment/fr-ch_ac3f64c.pf_fragment +0 -0
  144. package/template/.build/pagefind/fragment/fr-ch_af292f1.pf_fragment +0 -0
  145. package/template/.build/pagefind/fragment/fr-ch_af3e716.pf_fragment +0 -0
  146. package/template/.build/pagefind/fragment/fr-ch_b0689a4.pf_fragment +0 -0
  147. package/template/.build/pagefind/fragment/fr-ch_baed996.pf_fragment +0 -0
  148. package/template/.build/pagefind/fragment/fr-ch_c89e27a.pf_fragment +0 -0
  149. package/template/.build/pagefind/fragment/fr-ch_cd6ca13.pf_fragment +0 -0
  150. package/template/.build/pagefind/fragment/fr-ch_d09af09.pf_fragment +0 -0
  151. package/template/.build/pagefind/fragment/fr-ch_d4bcea8.pf_fragment +0 -0
  152. package/template/.build/pagefind/fragment/fr-ch_dc2a134.pf_fragment +0 -0
  153. package/template/.build/pagefind/fragment/fr-ch_ded7ddc.pf_fragment +0 -0
  154. package/template/.build/pagefind/fragment/fr-ch_e2528cb.pf_fragment +0 -0
  155. package/template/.build/pagefind/fragment/fr-ch_e3cbb4e.pf_fragment +0 -0
  156. package/template/.build/pagefind/fragment/fr-ch_e7902d9.pf_fragment +0 -0
  157. package/template/.build/pagefind/fragment/fr-ch_f48ca47.pf_fragment +0 -0
  158. package/template/.build/pagefind/index/fr-ch_8a5f905.pf_index +0 -0
  159. package/template/.build/pagefind/index/fr-ch_fbd9c96.pf_index +0 -0
  160. package/template/.build/pagefind/pagefind.fr-ch_211aacbfa7f0e.pf_meta +0 -0
  161. package/template/.build/reference/api/deploiements/index.html +0 -326
  162. package/template/.build/reference/api/deploiements.md +0 -170
  163. package/template/.build/reference/api/erreurs/index.html +0 -102
  164. package/template/.build/reference/api/erreurs.md +0 -50
  165. package/template/.build/reference/api/fichiers/index.html +0 -82
  166. package/template/.build/reference/api/fichiers.md +0 -62
  167. package/template/.build/reference/api/introduction/index.html +0 -126
  168. package/template/.build/reference/api/introduction.md +0 -84
  169. package/template/.build/reference/api/projets/index.html +0 -184
  170. package/template/.build/reference/api/projets.md +0 -102
  171. package/template/.build/reference/api/utilisateur/index.html +0 -96
  172. package/template/.build/reference/api/utilisateur.md +0 -89
  173. package/template/.build/reference/api/variables/index.html +0 -75
  174. package/template/.build/reference/api/variables.md +0 -58
  175. package/template/.build/reference/compatibilite/index.html +0 -196
  176. package/template/.build/reference/compatibilite.md +0 -64
  177. package/template/.build/reference/domaines/index.html +0 -171
  178. package/template/.build/reference/domaines.md +0 -76
  179. package/template/.build/reference/limites/index.html +0 -159
  180. package/template/.build/reference/limites.md +0 -56
  181. package/template/.build/reference/variables/index.html +0 -164
  182. package/template/.build/reference/variables.md +0 -63
  183. package/template/.build/reference/vercel-json/index.html +0 -65
  184. package/template/.build/reference/vercel-json.md +0 -51
@@ -1,62 +0,0 @@
1
- <!DOCTYPE html><html lang="fr-CH" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-mxbotnn6"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Créer et révoquer une clé d'API | Host</title><style>:root{--sl-color-accent-low:#172544;--sl-color-accent:#4b8eff;--sl-color-accent-high:#87d3ff;--hgdc-on-accent:#000000;}:root:not([data-hd-theme="dark"]){--sl-color-accent-low:#dcf1ff;--sl-color-accent:#194ff7;--sl-color-accent-high:#0400bf;--hgdc-on-accent:#ffffff;}</style><link rel="shortcut icon" href="/docs/images/logo.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.8"/><meta name="generator" content="Starlight v0.42.6"/><meta property="og:title" content="Créer et révoquer une clé d'API"/><meta property="og:type" content="article"/><meta property="og:locale" content="fr-CH"/><meta property="og:description" content="Crée une clé pour la CLI ou ton intégration, choisis sa portée et révoque-la quand elle ne sert plus."/><meta property="og:site_name" content="Host"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Crée une clé pour la CLI ou ton intégration, choisis sa portée et révoque-la quand elle ne sert plus."/><link rel="alternate" type="text/markdown" href="/docs/guides/cle-d-api.md"><link rel="describedby" type="text/markdown" href="/docs/llms.txt"><script>
2
- ;(() => {
3
- let stored = null
4
- try {
5
- stored = localStorage.getItem("starlight-theme")
6
- } catch {}
7
- const dark =
8
- stored === "dark" || (stored === "auto" && matchMedia("(prefers-color-scheme: dark)").matches)
9
- const theme = dark ? "dark" : "light"
10
- document.documentElement.dataset.theme = theme
11
- document.documentElement.dataset.hdTheme = theme
12
- window.StarlightThemeProvider = { updatePickers() {} }
13
- })()
14
- </script><link rel="stylesheet" href="/docs/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/docs/_astro/common.Dx3aBIS0.css"><style>@layer starlight.components{svg:where(.astro-lgqmsw3b){color:var(--sl-icon-color);font-size:var(--sl-icon-size,1em);width:1em;height:1em;overflow:visible}}
15
- @layer starlight.components{starlight-tabs:where(.astro-a5blunwz){display:block}.tablist-wrapper:where(.astro-a5blunwz){overflow-x:auto}:where(.astro-a5blunwz)[role=tablist]{border-bottom:2px solid var(--sl-color-gray-5);padding:0;list-style:none;display:flex}.tab:where(.astro-a5blunwz){display:flex}.tab:where(.astro-a5blunwz)>:where(.astro-a5blunwz)[role=tab]{--sl-tab-color-border:var(--sl-color-gray-5);line-height:var(--sl-line-height-headings);box-shadow:0 2px 0 var(--sl-tab-color-border);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial;align-items:center;gap:.5rem;padding:.275rem 1.25rem;text-decoration:none;display:flex}.tab:where(.astro-a5blunwz) :where(.astro-a5blunwz)[role=tab][aria-selected=true]{--sl-tab-color-border:var(--sl-color-text-accent);color:var(--sl-color-white);font-weight:600}.tablist-wrapper:where(.astro-a5blunwz)~[role=tabpanel]{margin-top:1rem}}
16
- </style><script type="module" src="/docs/_astro/page.cNngjUgL.js"></script></head><body class="astro-mxbotnn6"><a class="sl-skip-link astro-k4td3kwj" href="#_top">Aller au contenu</a><div class="hd-page"><header class="hd-topbar"><div class="hd-header"><div class="hd-header__start"><button type="button" class="hd-icon-button hd-menu-button" popovertarget="starlight__sidebar" aria-label="Menu de la documentation" aria-controls="starlight__sidebar"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h10"></path></svg></button><a class="hd-brand" href="/docs/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/docs/images/logo.svg" alt="" width="24" height="24"><img class="hd-brand__dark" src="/docs/images/logo.svg" alt="" width="24" height="24"></span><span class="hd-brand__name">Host</span></a></div><div class="hd-header__end"><hd-search data-base="/docs" data-assistant><button type="button" class="hd-search-trigger" data-open aria-haspopup="dialog" aria-label="Rechercher (Ctrl K)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><span class="hd-search-trigger__label">Rechercher</span><kbd class="hd-kbd" data-shortcut>Ctrl K</kbd></button><dialog class="hd-palette" aria-label="Rechercher dans la documentation"><div class="hd-palette__box"><div class="hd-palette__field"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><input type="search" data-input placeholder="Rechercher dans la documentation" autocomplete="off" spellcheck="false" role="combobox" aria-expanded="false" aria-controls="hd-palette-results" aria-autocomplete="list"><button type="button" class="hd-kbd hd-kbd--button" data-close>Échap</button></div><div class="hd-palette__results" id="hd-palette-results" role="listbox" aria-label="Résultats" data-results></div><p class="hd-palette__status" data-status role="status">Tape un mot pour chercher dans les pages.</p><footer class="hd-palette__hints" aria-hidden="true"><span><kbd class="hd-kbd">↑</kbd><kbd class="hd-kbd">↓</kbd> Choisir</span><span><kbd class="hd-kbd">↵</kbd> Ouvrir</span><span><kbd class="hd-kbd">Échap</kbd> Fermer</span></footer></div></dialog></hd-search><script type="module" src="/docs/_astro/Search.astro_astro_type_script_index_0_lang.D7EcezBU.js"></script><button type="button" class="hd-icon-button" data-hgdc-ask aria-label="Demander à l'assistant" title="Demander à l'assistant (Ctrl I)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg></button><button type="button" class="hd-icon-button hd-theme-button" data-hd-theme-toggle aria-label="Passer au thème sombre"><svg class="hd-icon hd-theme-button__moon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg><svg class="hd-icon hd-theme-button__sun" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><script type="module">var e=`starlight-theme`,t=()=>{try{return localStorage.getItem(e)||`light`}catch{return`light`}},n=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`,r=t=>{try{localStorage.setItem(e,t)}catch{}let r=t===`auto`?n():t;document.documentElement.dataset.theme=r,document.documentElement.dataset.hdTheme=r,i()},i=()=>{let e=t(),n=document.documentElement.dataset.theme===`dark`;for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.setAttribute(`aria-label`,n?`Passer au thème clair`:`Passer au thème sombre`);for(let t of document.querySelectorAll(`[data-hd-theme]`)){let n=t.dataset.hdTheme===e;t.setAttribute(`aria-checked`,String(n)),t.tabIndex=n?0:-1}};for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.addEventListener(`click`,()=>r(document.documentElement.dataset.theme===`dark`?`light`:`dark`));for(let e of document.querySelectorAll(`.hd-theme-choice`)){let t=[...e.querySelectorAll(`[data-hd-theme]`)];for(let e of t)e.addEventListener(`click`,()=>r(e.dataset.hdTheme));e.addEventListener(`keydown`,e=>{let n=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!n)return;e.preventDefault();let i=t.findIndex(e=>e.getAttribute(`aria-checked`)===`true`),a=t[(i+n+t.length)%t.length];r(a.dataset.hdTheme),a.focus()})}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{t()===`auto`&&r(`auto`)}),i();</script></div></div></header><nav class="hd-sidebar" aria-label="Navigation de la documentation"><script type="module">for(let e of document.querySelectorAll(`[data-hgdc-version]`))e.addEventListener(`change`,()=>window.location.assign(e.value));var e=document.querySelector(`.sidebar-pane`);if(e){let t=`hd-sidebar-scroll`;try{let n=Number(sessionStorage.getItem(t));n&&(e.scrollTop=n)}catch{}let n=e.querySelector(`[aria-current="page"]`);if(n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();(r.top<t.top||r.bottom>t.bottom)&&n.scrollIntoView({block:`center`})}addEventListener(`pagehide`,()=>{try{sessionStorage.setItem(t,String(e.scrollTop))}catch{}})}</script><hd-sidebar-pane popover="auto" id="starlight__sidebar" class="sidebar-pane"><div class="hd-sidebar__content"><div class="hd-mobile-only hd-sidebar-head"><a class="hd-brand" href="/docs/"><span class="hd-brand__name">Host</span></a><button type="button" class="hd-icon-button" popovertarget="starlight__sidebar" popovertargetaction="hide" aria-label="Fermer le menu"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div><ul class="hd-nav hd-nav--depth-0"><li class="hd-nav__group"><p class="hd-nav__heading">Démarrer</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/" class="hd-nav__link"><span>Accueil</span></a></li><li><a href="/docs/demarrer/premier-site/" class="hd-nav__link"><span>Premier site</span></a></li><li><a href="/docs/demarrer/depuis-github/" class="hd-nav__link"><span>Depuis GitHub</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Guides</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/guides/cle-d-api/" class="hd-nav__link" aria-current="page"><span>Clés d&#39;API</span></a></li><li><a href="/docs/guides/deployer-depuis-github/" class="hd-nav__link"><span>Depuis GitHub</span></a></li><li><a href="/docs/guides/github-actions-sans-application/" class="hd-nav__link"><span>GitHub Actions sans l&#39;app</span></a></li><li><a href="/docs/guides/deployer-un-framework/" class="hd-nav__link"><span>Un framework</span></a></li><li><a href="/docs/guides/site-statique/" class="hd-nav__link"><span>Site statique</span></a></li><li><a href="/docs/guides/monorepo/" class="hd-nav__link"><span>Monorepo</span></a></li><li><a href="/docs/guides/brancher-un-domaine/" class="hd-nav__link"><span>Brancher un domaine</span></a></li><li><a href="/docs/guides/variables-d-environnement/" class="hd-nav__link"><span>Variables</span></a></li><li><a href="/docs/guides/synchroniser-doppler/" class="hd-nav__link"><span>Doppler</span></a></li><li><a href="/docs/guides/revenir-en-arriere/" class="hd-nav__link"><span>Revenir en arrière</span></a></li><li><a href="/docs/guides/inviter-une-personne/" class="hd-nav__link"><span>Inviter une personne</span></a></li><li><a href="/docs/guides/lire-les-logs/" class="hd-nav__link"><span>Lire les logs</span></a></li><li><a href="/docs/guides/migrer-depuis-vercel/" class="hd-nav__link"><span>Migrer depuis Vercel</span></a></li><li><a href="/docs/guides/depannage/" class="hd-nav__link"><span>Dépannage</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Référence</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/reference/cli/" class="hd-nav__link"><span>CLI</span></a></li><li><a href="/docs/reference/variables/" class="hd-nav__link"><span>Variables</span></a></li><li><a href="/docs/reference/domaines/" class="hd-nav__link"><span>Domaines</span></a></li><li><a href="/docs/reference/vercel-json/" class="hd-nav__link"><span>vercel.json</span></a></li><li><a href="/docs/reference/compatibilite/" class="hd-nav__link"><span>Compatibilité</span></a></li><li><a href="/docs/reference/limites/" class="hd-nav__link"><span>Limites</span></a></li><li><details class="hd-nav__fold" open><summary class="hd-nav__link"><span>API</span><svg class="hd-icon hd-nav__chevron" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></summary><ul class="hd-nav hd-nav--depth-2"><li><a href="/docs/reference/api/introduction/" class="hd-nav__link"><span>Introduction</span></a></li><li><a href="/docs/reference/api/erreurs/" class="hd-nav__link"><span>Erreurs</span></a></li><li><a href="/docs/reference/api/utilisateur/" class="hd-nav__link"><span>Utilisateur et organisation</span></a></li><li><a href="/docs/reference/api/projets/" class="hd-nav__link"><span>Projets</span></a></li><li><a href="/docs/reference/api/deploiements/" class="hd-nav__link"><span>Déploiements</span></a></li><li><a href="/docs/reference/api/fichiers/" class="hd-nav__link"><span>Envoyer un fichier</span></a></li><li><a href="/docs/reference/api/variables/" class="hd-nav__link"><span>Variables</span></a></li></ul></details></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Concepts</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/concepts/deploiements/" class="hd-nav__link"><span>Déploiements</span></a></li><li><a href="/docs/concepts/organisations-et-roles/" class="hd-nav__link"><span>Organisations et rôles</span></a></li><li><a href="/docs/concepts/secrets-et-coffre/" class="hd-nav__link"><span>Secrets et coffre</span></a></li><li><a href="/docs/concepts/preversion/" class="hd-nav__link"><span>Préversion</span></a></li><li><a href="/docs/concepts/confidentialite/" class="hd-nav__link"><span>Sécurité et confidentialité</span></a></li></ul></li></ul><div class="hd-mobile-only hd-sidebar-footer"><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></div></hd-sidebar-pane></nav><div class="hd-main-frame main-frame"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="hd-columns hd-columns--toc"><div class="hd-columns__main main-pane"><main data-pagefind-body class="astro-mxbotnn6" lang="fr-CH" dir="ltr"><div class="content-panel astro-64cflj2q"><div class="sl-container astro-64cflj2q"><div class="hd-title not-content"><p class="hd-eyebrow" data-pagefind-meta="section">Guides</p><div class="hd-title__row"><h1 id="_top">Créer et révoquer une clé d&#39;API</h1><div class="hd-page-actions" data-hgdc-skip data-pagefind-ignore><div class="hd-split"><button type="button" class="hd-split__main" data-hgdc-copy="/docs/guides/cle-d-api.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span data-label>Copier la page</span></button><details class="hd-menu"><summary class="hd-split__more" aria-label="Autres formats de la page"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="hd-menu__list"><li><button type="button" data-hgdc-copy-item><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span><strong>Copier la page</strong><small>En Markdown, pour un LLM</small></span></button></li><li><a href="/docs/guides/cle-d-api.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Zm3 9V9l2.5 3L12 9v6m5-6v6m-2-2 2 2 2-2"></path></svg><span><strong>Voir en Markdown</strong><small>La page en texte brut</small></span></a></li><li><a data-hgdc-open="claude" href="https://claude.ai/new" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans Claude</strong><small>Poser une question sur cette page</small></span></a></li><li><a data-hgdc-open="chatgpt" href="https://chatgpt.com/" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans ChatGPT</strong><small>Poser une question sur cette page</small></span></a></li><li><a href="/docs/llms.txt"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8Zm0 0v5h5M9 13h6m-6 4h4"></path></svg><span><strong>llms.txt</strong><small>L'index de la doc pour les agents</small></span></a></li></ul></details></div><span class="sr-only" role="status" aria-live="polite" data-hgdc-copy-status></span></div></div><p class="hd-lead">Crée une clé pour la CLI ou ton intégration, choisis sa portée et révoque-la quand elle ne sert plus.</p></div><script type="module">var e=document.querySelector(`[data-hgdc-copy-status]`),t=document.querySelector(`[data-hgdc-copy]`);async function n(){if(!t)return;let n=t.querySelector(`[data-label]`),r=t=>{n.textContent=t,e&&(e.textContent=t),setTimeout(()=>n.textContent=`Copier la page`,2e3)};try{let e=await fetch(t.dataset.hgdcCopy);if(!e.ok)throw Error(String(e.status));await navigator.clipboard.writeText(await e.text()),r(`Page copiée`)}catch{r(`Copie impossible`)}}if(t?.addEventListener(`click`,()=>void n()),document.querySelector(`[data-hgdc-copy-item]`)?.addEventListener(`click`,()=>{document.querySelector(`.hd-menu`).open=!1,n()}),t){let e=`Lis ${new URL(t.dataset.hgdcCopy,location.href).href} et réponds à mes questions sur cette page.`;for(let t of document.querySelectorAll(`[data-hgdc-open]`))t.href=`${t.dataset.hgdcOpen===`claude`?`https://claude.ai/new`:`https://chatgpt.com/`}?q=${encodeURIComponent(e)}`}for(let e of document.querySelectorAll(`.hd-menu`))document.addEventListener(`click`,t=>{e.open&&!e.contains(t.target)&&(e.open=!1)}),e.addEventListener(`keydown`,t=>{t.key===`Escape`&&e.open&&(t.stopPropagation(),e.open=!1,e.querySelector(`summary`)?.focus())});</script></div></div><div class="content-panel astro-64cflj2q"><div class="sl-container astro-64cflj2q"><div class="sl-markdown-content"><p>Une clé d’API authentifie la CLI et l’API. Ce guide crée une clé, la range au bon endroit, puis la révoque.</p>
17
- <p><strong>Résultat attendu</strong> : une clé qui commence par <code>ah_</code>, visible dans la liste <strong>Clés actives</strong> de ton organisation, et révocable depuis la liste.</p>
18
- <p><strong>Avant de commencer</strong> : être admin ou propriétaire de l’organisation. Les membres ne voient pas l’onglet <strong>Clés d’API</strong>.</p>
19
- <h2 id="créer-une-clé">Créer une clé</h2>
20
- <ol class="hgdc-steps"><li class="hgdc-step"><p class="hgdc-step__title">Ouvre l&#39;onglet Clés d&#39;API</p><div class="hgdc-step__body"><p>Dans ton organisation, ouvre <strong>Clés d’API</strong>, puis clique <strong>Créer une clé</strong>.</p></div></li><li class="hgdc-step"><p class="hgdc-step__title">Donne-lui un nom parlant</p><div class="hgdc-step__body"><p>Choisis un nom qui dit où la clé sert, par exemple <code>Poste de Léa</code> ou <code>CI GitHub</code>. Il t’aidera à savoir quelle clé révoquer.</p></div></li><li class="hgdc-step"><p class="hgdc-step__title">Copie la clé tout de suite</p><div class="hgdc-step__body"><p>La fenêtre <strong>Nouvelle clé d’API</strong> affiche la clé complète une seule fois. Clique <strong>Copier la clé</strong> et range-la dans un gestionnaire de mots de passe.</p><p>Host ne garde qu’une empreinte de la clé. Si tu la perds, aucune copie n’est possible : crée une nouvelle clé et révoque l’ancienne.</p><p><strong>Vérification</strong> : la clé apparaît dans <strong>Clés actives</strong> avec son nom et la date de création.</p></div></li></ol>
21
- <h2 id="choisir-la-bonne-portée">Choisir la bonne portée</h2>
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
- <div class="hd-table"><table><thead><tr><th>Sorte de clé</th><th>Qui la crée</th><th>Ce qu’elle peut faire</th></tr></thead><tbody><tr><td>Clé d’organisation</td><td>Un admin ou un propriétaire, dans la console</td><td>Tous les projets de l’organisation, et créer de nouveaux projets</td></tr><tr><td>Clé de projet</td><td>L’app GitHub, à l’import d’un dépôt</td><td>Un seul projet. Tout autre projet répond <code>404</code></td></tr></tbody></table></div>
43
- <p>Pour ton poste de développement, prends une clé d’organisation. Pour un dépôt, laisse l’app GitHub poser sa clé de projet.</p>
44
- <aside class="hd-callout" data-tone="warning" aria-label="Attention"><svg class="hd-icon hd-callout__icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9.5v4M12 17h.01M10.3 4.2 2.6 17.5A2 2 0 0 0 4.3 20.5h15.4a2 2 0 0 0 1.7-3L13.7 4.2a2 2 0 0 0-3.4 0Z"></path></svg><div class="hd-callout__body"><p>Une clé d’organisation lit les variables non sensibles de tous les projets avec <code>vercel pull</code>. Ne la mets jamais dans un dépôt, ni dans du code envoyé au navigateur.</p></div></aside>
45
- <h2 id="utiliser-la-clé">Utiliser la clé</h2>
46
- <p>La CLI lit la clé dans la variable <code>VERCEL_TOKEN</code>, qui évite de l’écrire dans l’historique du shell :</p>
47
- <div class="expressive-code"><link rel="stylesheet" href="/docs/_astro/ec.t9qpe.css"><script type="module" src="/docs/_astro/ec.0vx5m.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#CA212D;--1:#FF7B72">export</span><span style="--0:#1F2328;--1:#E6EDF3"> VERCEL_TOKEN</span><span style="--0:#CA212D;--1:#FF7B72">=</span><span style="--0:#1F2328;--1:#E6EDF3">ah_…</span></div></div><div class="ec-line"><div class="code"><span style="--0:#953800;--1:#FFA657">vercel</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0550AE;--1:#79C0FF">--api</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">https://api.host.hgdc.ch</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">deploy</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="export VERCEL_TOKEN=ah_…vercel --api https://api.host.hgdc.ch deploy"><div></div></button></div></figure></div>
48
- <p>Pour une requête HTTP, envoie-la dans l’en-tête <code>Authorization</code> :</p>
49
- <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#953800;--1:#FFA657">curl</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">https://api.host.hgdc.ch/v2/user</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#CA212D;--1:#FF7B72">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#0550AE;--1:#79C0FF">-H</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">"Authorization: Bearer </span><span style="--0:#1F2328;--1:#E6EDF3">$VERCEL_TOKEN</span><span style="--0:#0A3069;--1:#A5D6FF">"</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="curl https://api.host.hgdc.ch/v2/user \ -H &#x22;Authorization: Bearer $VERCEL_TOKEN&#x22;"><div></div></button></div></figure></div>
50
- <h2 id="révoquer-une-clé">Révoquer une clé</h2>
51
- <ol class="hgdc-steps"><li class="hgdc-step"><p class="hgdc-step__title">Repère la clé</p><div class="hgdc-step__body"><p>Dans <strong>Clés actives</strong>, regarde la date de <strong>Dernière utilisation</strong>. Une clé inutilisée depuis longtemps peut être révoquée sans risque.</p></div></li><li class="hgdc-step"><p class="hgdc-step__title">Révoque-la</p><div class="hgdc-step__body"><p>Clique <strong>Révoquer la clé</strong>, puis confirme.</p><p><strong>Vérification</strong> : la clé disparaît de <strong>Clés actives</strong>. Une requête avec cette clé répond <code>403</code> avec le code <code>forbidden</code>.</p></div></li></ol>
52
- <p>Une clé cesse aussi de fonctionner quand la personne qui l’a créée quitte l’organisation dans Account. Une clé n’expire pas d’elle-même.</p>
53
- <h2 id="si-ça-ne-marche-pas">Si ça ne marche pas</h2>
54
- <ul>
55
- <li>La CLI répond <code>403</code>, avec le message « Clé d’API absente ou invalide » : la clé est mal copiée, ou elle a été révoquée. Voir <a href="/docs/guides/depannage/#la-cli-renvoie-403">Dépannage</a>.</li>
56
- <li>Le message « Cette clé est limitée à un autre projet » apparaît : tu utilises la clé d’un dépôt pour un autre projet. Crée une clé d’organisation.</li>
57
- </ul>
58
- <h2 id="voir-aussi">Voir aussi</h2>
59
- <ul>
60
- <li><a href="/docs/concepts/secrets-et-coffre/">Clés d’API et sécurité</a> : ce que Host garde et ce qu’il ne garde pas.</li>
61
- <li><a href="/docs/reference/api/introduction/#authentification">Référence de l’API</a> : l’en-tête, la portée et les limites.</li>
62
- </ul></div><hgdc-feedback class="hgdc-feedback not-content" data-endpoint="https://docs.hgdc.ch/api/v1/feedback" data-project="js743wp3001k1jvrdad0fwcjx18gc789" data-pagefind-ignore="true"><div data-step="ask"><p class="hgdc-feedback__question">Cette page t'a aidé ?</p><div class="hgdc-feedback__choices"><button type="button" data-helpful="true"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 10v11M15 5.9 14 10h5.8a2 2 0 0 1 1.9 2.5l-2.3 7A2 2 0 0 1 17.5 21H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2.8a2 2 0 0 0 1.8-1.1L12 2a3.1 3.1 0 0 1 3 3.9Z"></path></svg>Oui</button><button type="button" data-helpful="false"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17 14V3M9 18.1 10 14H4.2a2 2 0 0 1-1.9-2.5l2.3-7A2 2 0 0 1 6.5 3H20a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-2.8a2 2 0 0 0-1.8 1.1L12 22a3.1 3.1 0 0 1-3-3.9Z"></path></svg>Non</button></div></div><form data-step="comment" hidden><label for="hgdc-feedback-comment">Qu'est-ce qui manquait ou pourrait être plus clair ? (facultatif)</label><textarea id="hgdc-feedback-comment" name="comment" rows="3" maxlength="1000"></textarea><div class="hgdc-feedback__choices"><button type="submit">Envoyer</button><button type="button" data-skip>Passer</button></div></form><p data-step="done" class="hgdc-feedback__done" role="status" hidden>Merci, c'est noté.</p></hgdc-feedback><nav class="hd-pagination not-content" aria-label="Pages voisines" data-pagefind-ignore><a class="hd-pagination__link" href="/docs/demarrer/depuis-github/" rel="prev"><span class="hd-pagination__hint"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m15 6-6 6 6 6"></path></svg>Précédent</span><span class="hd-pagination__title">Depuis GitHub</span></a><a class="hd-pagination__link hd-pagination__link--next" href="/docs/guides/deployer-depuis-github/" rel="next"><span class="hd-pagination__hint">Suivant<svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></span><span class="hd-pagination__title">Depuis GitHub</span></a></nav><script type="module" src="/docs/_astro/Footer.astro_astro_type_script_index_0_lang.DzCnn3OT.js"></script></div></div></main><form class="hd-askbar" data-askbar data-pagefind-ignore><label class="sr-only" for="hd-askbar-input">Pose une question à l'assistant</label><input id="hd-askbar-input" data-askbar-input type="text" maxlength="1000" placeholder="Pose une question…" autocomplete="off"><kbd class="hd-kbd" data-shortcut aria-hidden="true">Ctrl I</kbd><button type="submit" class="hd-send" aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form></div><aside class="hd-columns__toc" aria-label="Sur cette page"><div class="hd-toc-scroll"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">Sur cette page</h2><ul class="astro-jxyovztp" style="--depth: 0;"><li style="--depth: 0;" class="astro-jxyovztp"><a href="#_top" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Vue d’ensemble</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#créer-une-clé" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Créer une clé</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#choisir-la-bonne-portée" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Choisir la bonne portée</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#utiliser-la-clé" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Utiliser la clé</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#révoquer-une-clé" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Révoquer une clé</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#si-ça-ne-marche-pas" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Si ça ne marche pas</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#voir-aussi" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Voir aussi</span></a></li></ul></nav></starlight-toc><script type="module">var e=`_top`,t=class extends HTMLElement{_current=this.querySelector(`a[aria-current="true"]`);minH=parseInt(this.dataset.minH||`2`,10);maxH=parseInt(this.dataset.maxH||`3`,10);tocHeadingSelector=`h1#${e},:where(${[...Array.from({length:1+this.maxH-this.minH}).map((e,t)=>`h${this.minH+t}`)].join()})[id]`;set current(e){e!==this._current&&(this._current&&this._current.removeAttribute(`aria-current`),e.setAttribute(`aria-current`,`true`),this._current=e)}onIdle=e=>(window.requestIdleCallback||(e=>setTimeout(e,1)))(e);constructor(){super(),this.onIdle(()=>this.init())}init=()=>{let t=[...this.querySelectorAll(`a`)],n=e=>e.matches(this.tocHeadingSelector),r=t=>{for(;t;){if(t.matches(`.sl-markdown-content, main > *`))return document.getElementById(e);if(n(t))return t;let r=t.querySelector(this.tocHeadingSelector);if(r)return r;let i=t.previousElementSibling;for(;i?.lastElementChild;)i=i.lastElementChild;t=i??t.parentElement}return null},i=e=>{for(let{isIntersecting:n,target:i}of e){if(!n)continue;let e=r(i);if(!e)continue;let a=t.find(t=>t.hash===`#`+encodeURIComponent(e.id));if(a){this.current=a;break}}},a=document.querySelectorAll([`main :where(${this.tocHeadingSelector})`,`main :where(${this.tocHeadingSelector}, .sl-heading-wrapper) ~ *:not(:has(${this.tocHeadingSelector}))`,`main .sl-markdown-content > *:not(:has(${this.tocHeadingSelector}))`,`main > *:not(:has(${this.tocHeadingSelector}))`].join()),o,s=()=>{o||(o=new IntersectionObserver(i,{rootMargin:this.getRootMargin()}),a.forEach(e=>o.observe(e)))};s();let c;window.addEventListener(`resize`,()=>{o&&=(o.disconnect(),void 0),clearTimeout(c),c=setTimeout(()=>this.onIdle(s),200)})};getRootMargin(){let e=(document.querySelector(`header`)?.getBoundingClientRect().height||0)+(this.querySelector(`summary`)?.getBoundingClientRect().height||0)+32;return`-${e}px 0% ${e+53-document.documentElement.clientHeight}px`}};customElements.define(`starlight-toc`,t);</script></div></aside></div><footer class="hd-site-footer" data-pagefind-ignore><div class="hd-site-footer__row"><a class="hd-brand hd-brand--footer" href="/docs/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/docs/images/logo.svg" alt="" width="20" height="20" loading="lazy"><img class="hd-brand__dark" src="/docs/images/logo.svg" alt="" width="20" height="20" loading="lazy"></span><span class="hd-brand__name">Host</span></a></div><div class="hd-site-footer__row hd-site-footer__row--meta"><p>Ton site en ligne, déployé à chaque modification.</p><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></footer></div><hgdc-assistant data-endpoint="https://docs.hgdc.ch/api/v1/ask" data-project="js743wp3001k1jvrdad0fwcjx18gc789" data-name="Host"><section class="hgdc-panel" role="dialog" aria-modal="false" aria-labelledby="hgdc-assistant-title" data-panel inert><div class="hgdc-panel__grip" aria-hidden="true"></div><header class="hgdc-panel__header"><h2 id="hgdc-assistant-title"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg>Assistant</h2><div class="hgdc-panel__tools"><button type="button" class="hd-icon-button" data-reset aria-label="Nouvelle conversation" title="Nouvelle conversation" hidden><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12a8 8 0 1 0 2.3-5.7M4 4v4h4"></path></svg></button><button type="button" class="hd-icon-button" data-close aria-label="Fermer l'assistant" title="Fermer (Échap)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div></header><div class="hgdc-panel__body" data-log aria-live="polite"><div class="hgdc-empty" data-empty><p class="hgdc-empty__title">Pose ta question sur Host.</p><p>Je cherche dans les pages de cette documentation et je cite mes sources. Si la réponse n'y est pas, je te le dis.</p></div></div><form class="hgdc-panel__form" data-form><label class="sr-only" for="hgdc-question">Ta question</label><textarea id="hgdc-question" data-input rows="1" maxlength="1000" placeholder="Pose une question…" required></textarea><button type="submit" class="hd-send" data-send aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form><p class="hgdc-panel__note">Réponses générées par IA (Claude, d'Anthropic), à vérifier. Les questions sont conservées 90 jours pour améliorer cette documentation.</p></section></hgdc-assistant><script type="module" src="/docs/_astro/Assistant.astro_astro_type_script_index_0_lang.C1pz7yK1.js"></script></div><script type="module">var e=class extends HTMLElement{connectedCallback(){let e=matchMedia(`(min-width: 50em)`),t=()=>{e.matches&&this.matches(`:popover-open`)&&this.hidePopover(),this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,t),this.addEventListener(`toggle`,e=>{let t=e.newState===`open`;for(let e of document.querySelectorAll(`.hd-main-frame, .hd-askbar`))e.toggleAttribute(`inert`,t);document.documentElement.toggleAttribute(`data-hd-menu`,t)}),this.addEventListener(`click`,e=>{e.target.closest(`a`)&&this.matches(`:popover-open`)&&this.hidePopover()})}};customElements.define(`hd-sidebar-pane`,e);</script></body></html>
@@ -1,78 +0,0 @@
1
- # Créer et révoquer une clé d'API
2
-
3
- Une clé d’API authentifie la CLI et l’API. Ce guide crée une clé, la range au bon endroit, puis la révoque.
4
-
5
- **Résultat attendu** : une clé qui commence par `ah_`, visible dans la liste **Clés actives** de ton organisation, et révocable depuis la liste.
6
-
7
- **Avant de commencer** : être admin ou propriétaire de l’organisation. Les membres ne voient pas l’onglet **Clés d’API**.
8
-
9
- ## Créer une clé
10
-
11
- 1. **Ouvre l'onglet Clés d'API**
12
-
13
- Dans ton organisation, ouvre **Clés d’API**, puis clique **Créer une clé**.
14
-
15
- 2. **Donne-lui un nom parlant**
16
-
17
- Choisis un nom qui dit où la clé sert, par exemple `Poste de Léa` ou `CI GitHub`. Il t’aidera à savoir quelle clé révoquer.
18
-
19
- 3. **Copie la clé tout de suite**
20
-
21
- La fenêtre **Nouvelle clé d’API** affiche la clé complète une seule fois. Clique **Copier la clé** et range-la dans un gestionnaire de mots de passe.
22
-
23
- Host ne garde qu’une empreinte de la clé. Si tu la perds, aucune copie n’est possible : crée une nouvelle clé et révoque l’ancienne.
24
-
25
- **Vérification** : la clé apparaît dans **Clés actives** avec son nom et la date de création.
26
-
27
- ## Choisir la bonne portée
28
-
29
- | Sorte de clé | Qui la crée | Ce qu’elle peut faire |
30
- | ------------------ | -------------------------------------------- | ---------------------------------------------------------------- |
31
- | Clé d’organisation | Un admin ou un propriétaire, dans la console | Tous les projets de l’organisation, et créer de nouveaux projets |
32
- | Clé de projet | L’app GitHub, à l’import d’un dépôt | Un seul projet. Tout autre projet répond `404` |
33
-
34
- Pour ton poste de développement, prends une clé d’organisation. Pour un dépôt, laisse l’app GitHub poser sa clé de projet.
35
-
36
- > **Attention**
37
- >
38
- > Une clé d’organisation lit les variables non sensibles de tous les projets avec `vercel pull`. Ne la mets jamais dans un dépôt, ni dans du code envoyé au navigateur.
39
-
40
- ## Utiliser la clé
41
-
42
- La CLI lit la clé dans la variable `VERCEL_TOKEN`, qui évite de l’écrire dans l’historique du shell :
43
-
44
- ```bash
45
- export VERCEL_TOKEN=ah_…
46
- vercel --api https://api.host.hgdc.ch deploy
47
- ```
48
-
49
- Pour une requête HTTP, envoie-la dans l’en-tête `Authorization` :
50
-
51
- ```bash
52
- curl https://api.host.hgdc.ch/v2/user \
53
- -H "Authorization: Bearer $VERCEL_TOKEN"
54
- ```
55
-
56
- ## Révoquer une clé
57
-
58
- 1. **Repère la clé**
59
-
60
- Dans **Clés actives**, regarde la date de **Dernière utilisation**. Une clé inutilisée depuis longtemps peut être révoquée sans risque.
61
-
62
- 2. **Révoque-la**
63
-
64
- Clique **Révoquer la clé**, puis confirme.
65
-
66
- **Vérification** : la clé disparaît de **Clés actives**. Une requête avec cette clé répond `403` avec le code `forbidden`.
67
-
68
- Une clé cesse aussi de fonctionner quand la personne qui l’a créée quitte l’organisation dans Account. Une clé n’expire pas d’elle-même.
69
-
70
- ## Si ça ne marche pas
71
-
72
- - La CLI répond `403`, avec le message « Clé d’API absente ou invalide » : la clé est mal copiée, ou elle a été révoquée. Voir [Dépannage](/docs/guides/depannage/#la-cli-renvoie-403).
73
- - Le message « Cette clé est limitée à un autre projet » apparaît : tu utilises la clé d’un dépôt pour un autre projet. Crée une clé d’organisation.
74
-
75
- ## Voir aussi
76
-
77
- - [Clés d’API et sécurité](/docs/concepts/secrets-et-coffre/) : ce que Host garde et ce qu’il ne garde pas.
78
- - [Référence de l’API](/docs/reference/api/introduction/#authentification) : l’en-tête, la portée et les limites.
@@ -1,64 +0,0 @@
1
- <!DOCTYPE html><html lang="fr-CH" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-mxbotnn6"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Dépannage | Host</title><style>:root{--sl-color-accent-low:#172544;--sl-color-accent:#4b8eff;--sl-color-accent-high:#87d3ff;--hgdc-on-accent:#000000;}:root:not([data-hd-theme="dark"]){--sl-color-accent-low:#dcf1ff;--sl-color-accent:#194ff7;--sl-color-accent-high:#0400bf;--hgdc-on-accent:#ffffff;}</style><link rel="shortcut icon" href="/docs/images/logo.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.8"/><meta name="generator" content="Starlight v0.42.6"/><meta property="og:title" content="Dépannage"/><meta property="og:type" content="article"/><meta property="og:locale" content="fr-CH"/><meta property="og:description" content="Les problèmes les plus fréquents avec la CLI, GitHub, les déploiements et les domaines, et comment les résoudre."/><meta property="og:site_name" content="Host"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Les problèmes les plus fréquents avec la CLI, GitHub, les déploiements et les domaines, et comment les résoudre."/><link rel="alternate" type="text/markdown" href="/docs/guides/depannage.md"><link rel="describedby" type="text/markdown" href="/docs/llms.txt"><script>
2
- ;(() => {
3
- let stored = null
4
- try {
5
- stored = localStorage.getItem("starlight-theme")
6
- } catch {}
7
- const dark =
8
- stored === "dark" || (stored === "auto" && matchMedia("(prefers-color-scheme: dark)").matches)
9
- const theme = dark ? "dark" : "light"
10
- document.documentElement.dataset.theme = theme
11
- document.documentElement.dataset.hdTheme = theme
12
- window.StarlightThemeProvider = { updatePickers() {} }
13
- })()
14
- </script><link rel="stylesheet" href="/docs/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/docs/_astro/common.Dx3aBIS0.css"><style>@layer starlight.components{svg:where(.astro-lgqmsw3b){color:var(--sl-icon-color);font-size:var(--sl-icon-size,1em);width:1em;height:1em;overflow:visible}}
15
- @layer starlight.components{starlight-tabs:where(.astro-a5blunwz){display:block}.tablist-wrapper:where(.astro-a5blunwz){overflow-x:auto}:where(.astro-a5blunwz)[role=tablist]{border-bottom:2px solid var(--sl-color-gray-5);padding:0;list-style:none;display:flex}.tab:where(.astro-a5blunwz){display:flex}.tab:where(.astro-a5blunwz)>:where(.astro-a5blunwz)[role=tab]{--sl-tab-color-border:var(--sl-color-gray-5);line-height:var(--sl-line-height-headings);box-shadow:0 2px 0 var(--sl-tab-color-border);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial;align-items:center;gap:.5rem;padding:.275rem 1.25rem;text-decoration:none;display:flex}.tab:where(.astro-a5blunwz) :where(.astro-a5blunwz)[role=tab][aria-selected=true]{--sl-tab-color-border:var(--sl-color-text-accent);color:var(--sl-color-white);font-weight:600}.tablist-wrapper:where(.astro-a5blunwz)~[role=tabpanel]{margin-top:1rem}}
16
- </style><script type="module" src="/docs/_astro/page.cNngjUgL.js"></script></head><body class="astro-mxbotnn6"><a class="sl-skip-link astro-k4td3kwj" href="#_top">Aller au contenu</a><div class="hd-page"><header class="hd-topbar"><div class="hd-header"><div class="hd-header__start"><button type="button" class="hd-icon-button hd-menu-button" popovertarget="starlight__sidebar" aria-label="Menu de la documentation" aria-controls="starlight__sidebar"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h10"></path></svg></button><a class="hd-brand" href="/docs/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/docs/images/logo.svg" alt="" width="24" height="24"><img class="hd-brand__dark" src="/docs/images/logo.svg" alt="" width="24" height="24"></span><span class="hd-brand__name">Host</span></a></div><div class="hd-header__end"><hd-search data-base="/docs" data-assistant><button type="button" class="hd-search-trigger" data-open aria-haspopup="dialog" aria-label="Rechercher (Ctrl K)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><span class="hd-search-trigger__label">Rechercher</span><kbd class="hd-kbd" data-shortcut>Ctrl K</kbd></button><dialog class="hd-palette" aria-label="Rechercher dans la documentation"><div class="hd-palette__box"><div class="hd-palette__field"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><input type="search" data-input placeholder="Rechercher dans la documentation" autocomplete="off" spellcheck="false" role="combobox" aria-expanded="false" aria-controls="hd-palette-results" aria-autocomplete="list"><button type="button" class="hd-kbd hd-kbd--button" data-close>Échap</button></div><div class="hd-palette__results" id="hd-palette-results" role="listbox" aria-label="Résultats" data-results></div><p class="hd-palette__status" data-status role="status">Tape un mot pour chercher dans les pages.</p><footer class="hd-palette__hints" aria-hidden="true"><span><kbd class="hd-kbd">↑</kbd><kbd class="hd-kbd">↓</kbd> Choisir</span><span><kbd class="hd-kbd">↵</kbd> Ouvrir</span><span><kbd class="hd-kbd">Échap</kbd> Fermer</span></footer></div></dialog></hd-search><script type="module" src="/docs/_astro/Search.astro_astro_type_script_index_0_lang.D7EcezBU.js"></script><button type="button" class="hd-icon-button" data-hgdc-ask aria-label="Demander à l'assistant" title="Demander à l'assistant (Ctrl I)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg></button><button type="button" class="hd-icon-button hd-theme-button" data-hd-theme-toggle aria-label="Passer au thème sombre"><svg class="hd-icon hd-theme-button__moon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg><svg class="hd-icon hd-theme-button__sun" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><script type="module">var e=`starlight-theme`,t=()=>{try{return localStorage.getItem(e)||`light`}catch{return`light`}},n=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`,r=t=>{try{localStorage.setItem(e,t)}catch{}let r=t===`auto`?n():t;document.documentElement.dataset.theme=r,document.documentElement.dataset.hdTheme=r,i()},i=()=>{let e=t(),n=document.documentElement.dataset.theme===`dark`;for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.setAttribute(`aria-label`,n?`Passer au thème clair`:`Passer au thème sombre`);for(let t of document.querySelectorAll(`[data-hd-theme]`)){let n=t.dataset.hdTheme===e;t.setAttribute(`aria-checked`,String(n)),t.tabIndex=n?0:-1}};for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.addEventListener(`click`,()=>r(document.documentElement.dataset.theme===`dark`?`light`:`dark`));for(let e of document.querySelectorAll(`.hd-theme-choice`)){let t=[...e.querySelectorAll(`[data-hd-theme]`)];for(let e of t)e.addEventListener(`click`,()=>r(e.dataset.hdTheme));e.addEventListener(`keydown`,e=>{let n=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!n)return;e.preventDefault();let i=t.findIndex(e=>e.getAttribute(`aria-checked`)===`true`),a=t[(i+n+t.length)%t.length];r(a.dataset.hdTheme),a.focus()})}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{t()===`auto`&&r(`auto`)}),i();</script></div></div></header><nav class="hd-sidebar" aria-label="Navigation de la documentation"><script type="module">for(let e of document.querySelectorAll(`[data-hgdc-version]`))e.addEventListener(`change`,()=>window.location.assign(e.value));var e=document.querySelector(`.sidebar-pane`);if(e){let t=`hd-sidebar-scroll`;try{let n=Number(sessionStorage.getItem(t));n&&(e.scrollTop=n)}catch{}let n=e.querySelector(`[aria-current="page"]`);if(n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();(r.top<t.top||r.bottom>t.bottom)&&n.scrollIntoView({block:`center`})}addEventListener(`pagehide`,()=>{try{sessionStorage.setItem(t,String(e.scrollTop))}catch{}})}</script><hd-sidebar-pane popover="auto" id="starlight__sidebar" class="sidebar-pane"><div class="hd-sidebar__content"><div class="hd-mobile-only hd-sidebar-head"><a class="hd-brand" href="/docs/"><span class="hd-brand__name">Host</span></a><button type="button" class="hd-icon-button" popovertarget="starlight__sidebar" popovertargetaction="hide" aria-label="Fermer le menu"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div><ul class="hd-nav hd-nav--depth-0"><li class="hd-nav__group"><p class="hd-nav__heading">Démarrer</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/" class="hd-nav__link"><span>Accueil</span></a></li><li><a href="/docs/demarrer/premier-site/" class="hd-nav__link"><span>Premier site</span></a></li><li><a href="/docs/demarrer/depuis-github/" class="hd-nav__link"><span>Depuis GitHub</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Guides</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/guides/cle-d-api/" class="hd-nav__link"><span>Clés d&#39;API</span></a></li><li><a href="/docs/guides/deployer-depuis-github/" class="hd-nav__link"><span>Depuis GitHub</span></a></li><li><a href="/docs/guides/github-actions-sans-application/" class="hd-nav__link"><span>GitHub Actions sans l&#39;app</span></a></li><li><a href="/docs/guides/deployer-un-framework/" class="hd-nav__link"><span>Un framework</span></a></li><li><a href="/docs/guides/site-statique/" class="hd-nav__link"><span>Site statique</span></a></li><li><a href="/docs/guides/monorepo/" class="hd-nav__link"><span>Monorepo</span></a></li><li><a href="/docs/guides/brancher-un-domaine/" class="hd-nav__link"><span>Brancher un domaine</span></a></li><li><a href="/docs/guides/variables-d-environnement/" class="hd-nav__link"><span>Variables</span></a></li><li><a href="/docs/guides/synchroniser-doppler/" class="hd-nav__link"><span>Doppler</span></a></li><li><a href="/docs/guides/revenir-en-arriere/" class="hd-nav__link"><span>Revenir en arrière</span></a></li><li><a href="/docs/guides/inviter-une-personne/" class="hd-nav__link"><span>Inviter une personne</span></a></li><li><a href="/docs/guides/lire-les-logs/" class="hd-nav__link"><span>Lire les logs</span></a></li><li><a href="/docs/guides/migrer-depuis-vercel/" class="hd-nav__link"><span>Migrer depuis Vercel</span></a></li><li><a href="/docs/guides/depannage/" class="hd-nav__link" aria-current="page"><span>Dépannage</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Référence</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/reference/cli/" class="hd-nav__link"><span>CLI</span></a></li><li><a href="/docs/reference/variables/" class="hd-nav__link"><span>Variables</span></a></li><li><a href="/docs/reference/domaines/" class="hd-nav__link"><span>Domaines</span></a></li><li><a href="/docs/reference/vercel-json/" class="hd-nav__link"><span>vercel.json</span></a></li><li><a href="/docs/reference/compatibilite/" class="hd-nav__link"><span>Compatibilité</span></a></li><li><a href="/docs/reference/limites/" class="hd-nav__link"><span>Limites</span></a></li><li><details class="hd-nav__fold" open><summary class="hd-nav__link"><span>API</span><svg class="hd-icon hd-nav__chevron" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></summary><ul class="hd-nav hd-nav--depth-2"><li><a href="/docs/reference/api/introduction/" class="hd-nav__link"><span>Introduction</span></a></li><li><a href="/docs/reference/api/erreurs/" class="hd-nav__link"><span>Erreurs</span></a></li><li><a href="/docs/reference/api/utilisateur/" class="hd-nav__link"><span>Utilisateur et organisation</span></a></li><li><a href="/docs/reference/api/projets/" class="hd-nav__link"><span>Projets</span></a></li><li><a href="/docs/reference/api/deploiements/" class="hd-nav__link"><span>Déploiements</span></a></li><li><a href="/docs/reference/api/fichiers/" class="hd-nav__link"><span>Envoyer un fichier</span></a></li><li><a href="/docs/reference/api/variables/" class="hd-nav__link"><span>Variables</span></a></li></ul></details></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Concepts</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/concepts/deploiements/" class="hd-nav__link"><span>Déploiements</span></a></li><li><a href="/docs/concepts/organisations-et-roles/" class="hd-nav__link"><span>Organisations et rôles</span></a></li><li><a href="/docs/concepts/secrets-et-coffre/" class="hd-nav__link"><span>Secrets et coffre</span></a></li><li><a href="/docs/concepts/preversion/" class="hd-nav__link"><span>Préversion</span></a></li><li><a href="/docs/concepts/confidentialite/" class="hd-nav__link"><span>Sécurité et confidentialité</span></a></li></ul></li></ul><div class="hd-mobile-only hd-sidebar-footer"><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></div></hd-sidebar-pane></nav><div class="hd-main-frame main-frame"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="hd-columns hd-columns--toc"><div class="hd-columns__main main-pane"><main data-pagefind-body class="astro-mxbotnn6" lang="fr-CH" dir="ltr"><div class="content-panel astro-64cflj2q"><div class="sl-container astro-64cflj2q"><div class="hd-title not-content"><p class="hd-eyebrow" data-pagefind-meta="section">Guides</p><div class="hd-title__row"><h1 id="_top">Dépannage</h1><div class="hd-page-actions" data-hgdc-skip data-pagefind-ignore><div class="hd-split"><button type="button" class="hd-split__main" data-hgdc-copy="/docs/guides/depannage.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span data-label>Copier la page</span></button><details class="hd-menu"><summary class="hd-split__more" aria-label="Autres formats de la page"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="hd-menu__list"><li><button type="button" data-hgdc-copy-item><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span><strong>Copier la page</strong><small>En Markdown, pour un LLM</small></span></button></li><li><a href="/docs/guides/depannage.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Zm3 9V9l2.5 3L12 9v6m5-6v6m-2-2 2 2 2-2"></path></svg><span><strong>Voir en Markdown</strong><small>La page en texte brut</small></span></a></li><li><a data-hgdc-open="claude" href="https://claude.ai/new" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans Claude</strong><small>Poser une question sur cette page</small></span></a></li><li><a data-hgdc-open="chatgpt" href="https://chatgpt.com/" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans ChatGPT</strong><small>Poser une question sur cette page</small></span></a></li><li><a href="/docs/llms.txt"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8Zm0 0v5h5M9 13h6m-6 4h4"></path></svg><span><strong>llms.txt</strong><small>L'index de la doc pour les agents</small></span></a></li></ul></details></div><span class="sr-only" role="status" aria-live="polite" data-hgdc-copy-status></span></div></div><p class="hd-lead">Les problèmes les plus fréquents avec la CLI, GitHub, les déploiements et les domaines, et comment les résoudre.</p></div><script type="module">var e=document.querySelector(`[data-hgdc-copy-status]`),t=document.querySelector(`[data-hgdc-copy]`);async function n(){if(!t)return;let n=t.querySelector(`[data-label]`),r=t=>{n.textContent=t,e&&(e.textContent=t),setTimeout(()=>n.textContent=`Copier la page`,2e3)};try{let e=await fetch(t.dataset.hgdcCopy);if(!e.ok)throw Error(String(e.status));await navigator.clipboard.writeText(await e.text()),r(`Page copiée`)}catch{r(`Copie impossible`)}}if(t?.addEventListener(`click`,()=>void n()),document.querySelector(`[data-hgdc-copy-item]`)?.addEventListener(`click`,()=>{document.querySelector(`.hd-menu`).open=!1,n()}),t){let e=`Lis ${new URL(t.dataset.hgdcCopy,location.href).href} et réponds à mes questions sur cette page.`;for(let t of document.querySelectorAll(`[data-hgdc-open]`))t.href=`${t.dataset.hgdcOpen===`claude`?`https://claude.ai/new`:`https://chatgpt.com/`}?q=${encodeURIComponent(e)}`}for(let e of document.querySelectorAll(`.hd-menu`))document.addEventListener(`click`,t=>{e.open&&!e.contains(t.target)&&(e.open=!1)}),e.addEventListener(`keydown`,t=>{t.key===`Escape`&&e.open&&(t.stopPropagation(),e.open=!1,e.querySelector(`summary`)?.focus())});</script></div></div><div class="content-panel astro-64cflj2q"><div class="sl-container astro-64cflj2q"><div class="sl-markdown-content"><p>Ce guide liste les problèmes fréquents, classés par symptôme. Chaque section donne les causes probables, dans l’ordre où les vérifier.</p>
17
- <p>Si rien ne correspond, écris à <a href="mailto:support@hgdc.ch">support@hgdc.ch</a> avec l’adresse du déploiement concerné.</p>
18
- <h2 id="la-cli-renvoie-403">La CLI renvoie 403</h2>
19
- <p>La clé est absente, mal copiée, révoquée, ou elle appartient à une organisation qui n’existe plus.</p>
20
- <ul>
21
- <li>Vérifie qu’elle commence par <code>ah_</code> et qu’elle est passée par <code>VERCEL_TOKEN</code> ou <code>--token</code>.</li>
22
- <li>Vérifie qu’elle n’a pas été révoquée dans <strong>Clés actives</strong>. Une clé cesse aussi de fonctionner quand la personne qui l’a créée quitte l’organisation.</li>
23
- <li>Vérifie que <code>--api https://api.host.hgdc.ch</code> est présent. Sans lui, la CLI parle à Vercel, pas à Host.</li>
24
- </ul>
25
- <p>Le message « Cette clé est limitée à un autre projet » signifie que tu utilises la clé posée dans un dépôt pour un autre projet. Crée une clé d’organisation, voir <a href="/docs/guides/cle-d-api/">Créer et révoquer une clé d’API</a>.</p>
26
- <h2 id="la-cli-affiche-missing_files">La CLI affiche missing_files</h2>
27
- <p>C’est normal : Host demande les fichiers qu’il n’a pas encore, la CLI les envoie puis rappelle l’API. Si l’erreur persiste, un fichier n’a pas pu partir : il dépasse 20 Mo, ou le réseau a coupé. Relance le déploiement.</p>
28
- <h2 id="vercel-login-ne-fonctionne-pas">vercel login ne fonctionne pas</h2>
29
- <p>C’est voulu : la connexion passe toujours par une clé d’API. Exporte la clé dans <code>VERCEL_TOKEN</code>, puis lance la commande avec <code>--api</code>, voir <a href="/docs/reference/cli/#configurer-la-cli">Configurer la CLI</a>.</p>
30
- <h2 id="le-build-github-est-absent">Le build GitHub est absent</h2>
31
- <p>Un push ne déclenche aucun build dans Host.</p>
32
- <ul>
33
- <li>La pull request d’installation est-elle fusionnée sur la branche poussée ? Le fichier <code>.github/workflows/hgdc-host.yml</code> doit exister sur cette branche.</li>
34
- <li>Ouvre l’onglet <strong>Actions</strong> du dépôt : le run y apparaît, avec son erreur.</li>
35
- <li>Le secret <code>HGDC_HOST_TOKEN</code> manque ou a été supprimé. Débranche le dépôt, puis relie-le pour poser un nouveau secret.</li>
36
- <li>Le projet a été importé avant une évolution du workflow. Utilise <strong>Mettre à jour le workflow</strong> dans l’onglet <strong>Git</strong>.</li>
37
- </ul>
38
- <h2 id="mon-site-affiche-404">Mon site affiche 404</h2>
39
- <ul>
40
- <li>Le dossier envoyé n’a pas d’<code>index.html</code> à sa racine, ou le dossier de sortie configuré est faux. Voir <a href="/docs/guides/site-statique/">Déployer un site statique</a>.</li>
41
- <li>La page est rendue à la demande, et l’exécution des fonctions n’est pas encore ouverte à ton organisation : la page répond alors <code>501</code>. Pré-rends-la, ou consulte <a href="/docs/concepts/preversion/">Préversion</a>.</li>
42
- <li>Sans <code>cleanUrls</code>, <code>/a-propos</code> ne trouve pas <code>a-propos.html</code>. Ajoute <code>"cleanUrls": true</code> à <code>vercel.json</code>.</li>
43
- <li>La page de déploiement liste les fichiers et les fonctions ignorés à la publication, avec un avertissement. Vérifie-la.</li>
44
- </ul>
45
- <h2 id="mon-domaine-reste-en-attente">Mon domaine reste en attente</h2>
46
- <ul>
47
- <li>Vérifie le nom du TXT : <code>_agenthost.</code> suivi de ton domaine, pas <code>_agenthost</code> seul. Certains hébergeurs ajoutent le domaine tout seul : saisis alors seulement <code>_agenthost.www</code> pour <code>www.exemple.ch</code>.</li>
48
- <li>Pour un domaine racine, il faut un enregistrement A, pas un CNAME.</li>
49
- <li>Un ancien enregistrement A ou AAAA vers un autre hébergeur peut masquer le nouveau : supprime-le.</li>
50
- <li>La propagation peut prendre quelques heures. Clique <strong>Vérifier</strong>, ou attends la vérification automatique, toutes les 15 minutes.</li>
51
- </ul>
52
- <p>Tu peux contrôler les enregistrements depuis un terminal :</p>
53
- <div class="expressive-code"><link rel="stylesheet" href="/docs/_astro/ec.t9qpe.css"><script type="module" src="/docs/_astro/ec.0vx5m.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#953800;--1:#FFA657">dig</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">+short</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">TXT</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">_agenthost.www.exemple.ch</span></div></div><div class="ec-line"><div class="code"><span style="--0:#953800;--1:#FFA657">dig</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">+short</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">CNAME</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">www.exemple.ch</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="dig +short TXT _agenthost.www.exemple.chdig +short CNAME www.exemple.ch"><div></div></button></div></figure></div>
54
- <p>Voir <a href="/docs/guides/brancher-un-domaine/">Brancher un domaine</a>.</p>
55
- <h2 id="ma-variable-sensible-napparaît-pas-dans-vercel-pull">Ma variable sensible n’apparaît pas dans vercel pull</h2>
56
- <p>C’est voulu : une variable sensible ne part que vers le build du dépôt, par la clé limitée au projet. Depuis ton poste, utilise une valeur de développement, dans une variable non sensible visant l’environnement Développement. Voir <a href="/docs/guides/variables-d-environnement/">Variables d’environnement</a>.</p>
57
- <h2 id="une-fonction-répond-501">Une fonction répond 501</h2>
58
- <p>Le rendu à la demande, les routes d’API et les Server Actions sont en préversion. L’exécution est ouverte organisation par organisation. Les pages statiques et pré-rendues de ton site restent en ligne. Voir <a href="/docs/concepts/preversion/">Préversion</a>.</p>
59
- <h2 id="le-build-échoue">Le build échoue</h2>
60
- <ul>
61
- <li>Ouvre le déploiement : la sortie du build est affichée, avec la première erreur. Voir <a href="/docs/guides/lire-les-logs/">Lire les logs</a>.</li>
62
- <li>Reproduis le build sur ton poste avec <code>vercel build</code>, puis vérifie que la version de Node.js du projet correspond à celle de ton poste.</li>
63
- <li>Une variable manque au build : ajoute-la à l’environnement visé, voir <a href="/docs/guides/variables-d-environnement/">Variables d’environnement</a>.</li>
64
- </ul></div><hgdc-feedback class="hgdc-feedback not-content" data-endpoint="https://docs.hgdc.ch/api/v1/feedback" data-project="js743wp3001k1jvrdad0fwcjx18gc789" data-pagefind-ignore="true"><div data-step="ask"><p class="hgdc-feedback__question">Cette page t'a aidé ?</p><div class="hgdc-feedback__choices"><button type="button" data-helpful="true"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 10v11M15 5.9 14 10h5.8a2 2 0 0 1 1.9 2.5l-2.3 7A2 2 0 0 1 17.5 21H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2.8a2 2 0 0 0 1.8-1.1L12 2a3.1 3.1 0 0 1 3 3.9Z"></path></svg>Oui</button><button type="button" data-helpful="false"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17 14V3M9 18.1 10 14H4.2a2 2 0 0 1-1.9-2.5l2.3-7A2 2 0 0 1 6.5 3H20a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-2.8a2 2 0 0 0-1.8 1.1L12 22a3.1 3.1 0 0 1-3-3.9Z"></path></svg>Non</button></div></div><form data-step="comment" hidden><label for="hgdc-feedback-comment">Qu'est-ce qui manquait ou pourrait être plus clair ? (facultatif)</label><textarea id="hgdc-feedback-comment" name="comment" rows="3" maxlength="1000"></textarea><div class="hgdc-feedback__choices"><button type="submit">Envoyer</button><button type="button" data-skip>Passer</button></div></form><p data-step="done" class="hgdc-feedback__done" role="status" hidden>Merci, c'est noté.</p></hgdc-feedback><nav class="hd-pagination not-content" aria-label="Pages voisines" data-pagefind-ignore><a class="hd-pagination__link" href="/docs/guides/migrer-depuis-vercel/" rel="prev"><span class="hd-pagination__hint"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m15 6-6 6 6 6"></path></svg>Précédent</span><span class="hd-pagination__title">Migrer depuis Vercel</span></a><a class="hd-pagination__link hd-pagination__link--next" href="/docs/reference/cli/" rel="next"><span class="hd-pagination__hint">Suivant<svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></span><span class="hd-pagination__title">CLI</span></a></nav><script type="module" src="/docs/_astro/Footer.astro_astro_type_script_index_0_lang.DzCnn3OT.js"></script></div></div></main><form class="hd-askbar" data-askbar data-pagefind-ignore><label class="sr-only" for="hd-askbar-input">Pose une question à l'assistant</label><input id="hd-askbar-input" data-askbar-input type="text" maxlength="1000" placeholder="Pose une question…" autocomplete="off"><kbd class="hd-kbd" data-shortcut aria-hidden="true">Ctrl I</kbd><button type="submit" class="hd-send" aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form></div><aside class="hd-columns__toc" aria-label="Sur cette page"><div class="hd-toc-scroll"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">Sur cette page</h2><ul class="astro-jxyovztp" style="--depth: 0;"><li style="--depth: 0;" class="astro-jxyovztp"><a href="#_top" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Vue d’ensemble</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#la-cli-renvoie-403" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">La CLI renvoie 403</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#la-cli-affiche-missing_files" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">La CLI affiche missing_files</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#vercel-login-ne-fonctionne-pas" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">vercel login ne fonctionne pas</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#le-build-github-est-absent" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Le build GitHub est absent</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#mon-site-affiche-404" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Mon site affiche 404</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#mon-domaine-reste-en-attente" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Mon domaine reste en attente</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#ma-variable-sensible-napparaît-pas-dans-vercel-pull" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Ma variable sensible n’apparaît pas dans vercel pull</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#une-fonction-répond-501" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Une fonction répond 501</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#le-build-échoue" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Le build échoue</span></a></li></ul></nav></starlight-toc><script type="module">var e=`_top`,t=class extends HTMLElement{_current=this.querySelector(`a[aria-current="true"]`);minH=parseInt(this.dataset.minH||`2`,10);maxH=parseInt(this.dataset.maxH||`3`,10);tocHeadingSelector=`h1#${e},:where(${[...Array.from({length:1+this.maxH-this.minH}).map((e,t)=>`h${this.minH+t}`)].join()})[id]`;set current(e){e!==this._current&&(this._current&&this._current.removeAttribute(`aria-current`),e.setAttribute(`aria-current`,`true`),this._current=e)}onIdle=e=>(window.requestIdleCallback||(e=>setTimeout(e,1)))(e);constructor(){super(),this.onIdle(()=>this.init())}init=()=>{let t=[...this.querySelectorAll(`a`)],n=e=>e.matches(this.tocHeadingSelector),r=t=>{for(;t;){if(t.matches(`.sl-markdown-content, main > *`))return document.getElementById(e);if(n(t))return t;let r=t.querySelector(this.tocHeadingSelector);if(r)return r;let i=t.previousElementSibling;for(;i?.lastElementChild;)i=i.lastElementChild;t=i??t.parentElement}return null},i=e=>{for(let{isIntersecting:n,target:i}of e){if(!n)continue;let e=r(i);if(!e)continue;let a=t.find(t=>t.hash===`#`+encodeURIComponent(e.id));if(a){this.current=a;break}}},a=document.querySelectorAll([`main :where(${this.tocHeadingSelector})`,`main :where(${this.tocHeadingSelector}, .sl-heading-wrapper) ~ *:not(:has(${this.tocHeadingSelector}))`,`main .sl-markdown-content > *:not(:has(${this.tocHeadingSelector}))`,`main > *:not(:has(${this.tocHeadingSelector}))`].join()),o,s=()=>{o||(o=new IntersectionObserver(i,{rootMargin:this.getRootMargin()}),a.forEach(e=>o.observe(e)))};s();let c;window.addEventListener(`resize`,()=>{o&&=(o.disconnect(),void 0),clearTimeout(c),c=setTimeout(()=>this.onIdle(s),200)})};getRootMargin(){let e=(document.querySelector(`header`)?.getBoundingClientRect().height||0)+(this.querySelector(`summary`)?.getBoundingClientRect().height||0)+32;return`-${e}px 0% ${e+53-document.documentElement.clientHeight}px`}};customElements.define(`starlight-toc`,t);</script></div></aside></div><footer class="hd-site-footer" data-pagefind-ignore><div class="hd-site-footer__row"><a class="hd-brand hd-brand--footer" href="/docs/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/docs/images/logo.svg" alt="" width="20" height="20" loading="lazy"><img class="hd-brand__dark" src="/docs/images/logo.svg" alt="" width="20" height="20" loading="lazy"></span><span class="hd-brand__name">Host</span></a></div><div class="hd-site-footer__row hd-site-footer__row--meta"><p>Ton site en ligne, déployé à chaque modification.</p><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></footer></div><hgdc-assistant data-endpoint="https://docs.hgdc.ch/api/v1/ask" data-project="js743wp3001k1jvrdad0fwcjx18gc789" data-name="Host"><section class="hgdc-panel" role="dialog" aria-modal="false" aria-labelledby="hgdc-assistant-title" data-panel inert><div class="hgdc-panel__grip" aria-hidden="true"></div><header class="hgdc-panel__header"><h2 id="hgdc-assistant-title"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg>Assistant</h2><div class="hgdc-panel__tools"><button type="button" class="hd-icon-button" data-reset aria-label="Nouvelle conversation" title="Nouvelle conversation" hidden><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12a8 8 0 1 0 2.3-5.7M4 4v4h4"></path></svg></button><button type="button" class="hd-icon-button" data-close aria-label="Fermer l'assistant" title="Fermer (Échap)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div></header><div class="hgdc-panel__body" data-log aria-live="polite"><div class="hgdc-empty" data-empty><p class="hgdc-empty__title">Pose ta question sur Host.</p><p>Je cherche dans les pages de cette documentation et je cite mes sources. Si la réponse n'y est pas, je te le dis.</p></div></div><form class="hgdc-panel__form" data-form><label class="sr-only" for="hgdc-question">Ta question</label><textarea id="hgdc-question" data-input rows="1" maxlength="1000" placeholder="Pose une question…" required></textarea><button type="submit" class="hd-send" data-send aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form><p class="hgdc-panel__note">Réponses générées par IA (Claude, d'Anthropic), à vérifier. Les questions sont conservées 90 jours pour améliorer cette documentation.</p></section></hgdc-assistant><script type="module" src="/docs/_astro/Assistant.astro_astro_type_script_index_0_lang.C1pz7yK1.js"></script></div><script type="module">var e=class extends HTMLElement{connectedCallback(){let e=matchMedia(`(min-width: 50em)`),t=()=>{e.matches&&this.matches(`:popover-open`)&&this.hidePopover(),this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,t),this.addEventListener(`toggle`,e=>{let t=e.newState===`open`;for(let e of document.querySelectorAll(`.hd-main-frame, .hd-askbar`))e.toggleAttribute(`inert`,t);document.documentElement.toggleAttribute(`data-hd-menu`,t)}),this.addEventListener(`click`,e=>{e.target.closest(`a`)&&this.matches(`:popover-open`)&&this.hidePopover()})}};customElements.define(`hd-sidebar-pane`,e);</script></body></html>
@@ -1,69 +0,0 @@
1
- # Dépannage
2
-
3
- Ce guide liste les problèmes fréquents, classés par symptôme. Chaque section donne les causes probables, dans l’ordre où les vérifier.
4
-
5
- Si rien ne correspond, écris à <support@hgdc.ch> avec l’adresse du déploiement concerné.
6
-
7
- ## La CLI renvoie 403
8
-
9
- La clé est absente, mal copiée, révoquée, ou elle appartient à une organisation qui n’existe plus.
10
-
11
- - Vérifie qu’elle commence par `ah_` et qu’elle est passée par `VERCEL_TOKEN` ou `--token`.
12
- - Vérifie qu’elle n’a pas été révoquée dans **Clés actives**. Une clé cesse aussi de fonctionner quand la personne qui l’a créée quitte l’organisation.
13
- - Vérifie que `--api https://api.host.hgdc.ch` est présent. Sans lui, la CLI parle à Vercel, pas à Host.
14
-
15
- Le message « Cette clé est limitée à un autre projet » signifie que tu utilises la clé posée dans un dépôt pour un autre projet. Crée une clé d’organisation, voir [Créer et révoquer une clé d’API](/docs/guides/cle-d-api/).
16
-
17
- ## La CLI affiche missing_files
18
-
19
- C’est normal : Host demande les fichiers qu’il n’a pas encore, la CLI les envoie puis rappelle l’API. Si l’erreur persiste, un fichier n’a pas pu partir : il dépasse 20 Mo, ou le réseau a coupé. Relance le déploiement.
20
-
21
- ## vercel login ne fonctionne pas
22
-
23
- C’est voulu : la connexion passe toujours par une clé d’API. Exporte la clé dans `VERCEL_TOKEN`, puis lance la commande avec `--api`, voir [Configurer la CLI](/docs/reference/cli/#configurer-la-cli).
24
-
25
- ## Le build GitHub est absent
26
-
27
- Un push ne déclenche aucun build dans Host.
28
-
29
- - La pull request d’installation est-elle fusionnée sur la branche poussée ? Le fichier `.github/workflows/hgdc-host.yml` doit exister sur cette branche.
30
- - Ouvre l’onglet **Actions** du dépôt : le run y apparaît, avec son erreur.
31
- - Le secret `HGDC_HOST_TOKEN` manque ou a été supprimé. Débranche le dépôt, puis relie-le pour poser un nouveau secret.
32
- - Le projet a été importé avant une évolution du workflow. Utilise **Mettre à jour le workflow** dans l’onglet **Git**.
33
-
34
- ## Mon site affiche 404
35
-
36
- - Le dossier envoyé n’a pas d’`index.html` à sa racine, ou le dossier de sortie configuré est faux. Voir [Déployer un site statique](/docs/guides/site-statique/).
37
- - La page est rendue à la demande, et l’exécution des fonctions n’est pas encore ouverte à ton organisation : la page répond alors `501`. Pré-rends-la, ou consulte [Préversion](/docs/concepts/preversion/).
38
- - Sans `cleanUrls`, `/a-propos` ne trouve pas `a-propos.html`. Ajoute `"cleanUrls": true` à `vercel.json`.
39
- - La page de déploiement liste les fichiers et les fonctions ignorés à la publication, avec un avertissement. Vérifie-la.
40
-
41
- ## Mon domaine reste en attente
42
-
43
- - Vérifie le nom du TXT : `_agenthost.` suivi de ton domaine, pas `_agenthost` seul. Certains hébergeurs ajoutent le domaine tout seul : saisis alors seulement `_agenthost.www` pour `www.exemple.ch`.
44
- - Pour un domaine racine, il faut un enregistrement A, pas un CNAME.
45
- - Un ancien enregistrement A ou AAAA vers un autre hébergeur peut masquer le nouveau : supprime-le.
46
- - La propagation peut prendre quelques heures. Clique **Vérifier**, ou attends la vérification automatique, toutes les 15 minutes.
47
-
48
- Tu peux contrôler les enregistrements depuis un terminal :
49
-
50
- ```bash
51
- dig +short TXT _agenthost.www.exemple.ch
52
- dig +short CNAME www.exemple.ch
53
- ```
54
-
55
- Voir [Brancher un domaine](/docs/guides/brancher-un-domaine/).
56
-
57
- ## Ma variable sensible n’apparaît pas dans vercel pull
58
-
59
- C’est voulu : une variable sensible ne part que vers le build du dépôt, par la clé limitée au projet. Depuis ton poste, utilise une valeur de développement, dans une variable non sensible visant l’environnement Développement. Voir [Variables d’environnement](/docs/guides/variables-d-environnement/).
60
-
61
- ## Une fonction répond 501
62
-
63
- Le rendu à la demande, les routes d’API et les Server Actions sont en préversion. L’exécution est ouverte organisation par organisation. Les pages statiques et pré-rendues de ton site restent en ligne. Voir [Préversion](/docs/concepts/preversion/).
64
-
65
- ## Le build échoue
66
-
67
- - Ouvre le déploiement : la sortie du build est affichée, avec la première erreur. Voir [Lire les logs](/docs/guides/lire-les-logs/).
68
- - Reproduis le build sur ton poste avec `vercel build`, puis vérifie que la version de Node.js du projet correspond à celle de ton poste.
69
- - Une variable manque au build : ajoute-la à l’environnement visé, voir [Variables d’environnement](/docs/guides/variables-d-environnement/).