Aller au contenu principal
Version : 3.3.2

DĂ©ploiement

Pour construire les fichiers statiques de votre site web pour la production, exécutez :

npm run build

Une fois terminé, les fichiers statiques seront générés dans le répertoire build.

remarque

La seule responsabilité de Docusaurus est de construire votre site et d'émettre des fichiers statiques dans build.

C'est maintenant à vous de choisir comment héberger ces fichiers statiques.

Vous pouvez déployer votre site sur des services d'hébergement statiques tels que Vercel, GitHub Pages, Netlify, Render et Surge.

Un site Docusaurus est rendu de maniĂšre statique, et il peut gĂ©nĂ©ralement fonctionner sans JavaScript !

Configuration​

Les paramĂštres suivants sont obligatoires dans docusaurus.config.js pour que Docusaurus optimise le routage et serve les fichiers Ă  partir du bon emplacement :

NomDescription
urlURL de votre site. Pour un site déployé sur https://my-org.com/my-project/`, urlesthttps://my-org.com/\.
baseUrlURL de base pour votre projet, avec un slash à la fin. Pour un site déployé sur https://my-org.com/my-project/, baseUrl est /my-project/.

Tester votre construction en local​

Il est important de tester votre construction avant de le dĂ©ployer pour la production. Docusaurus possĂšde une commande docusaurus serve pour cela :

npm run serve

Par défaut, cela va charger votre site sur http://localhost:3000/.

Configuration du slash de fin​

Docusaurus possĂšde une config trailingSlash pour permettre de personnaliser les URL/liens et les modĂšles de noms de fichiers Ă©mis.

La valeur par dĂ©faut fonctionne gĂ©nĂ©ralement bien. Malheureusement, chaque hĂ©bergeur statique a un comportement diffĂ©rent, et dĂ©ployer exactement le mĂȘme site sur diffĂ©rents hĂŽtes peut conduire Ă  des rĂ©sultats diffĂ©rents. En fonction de votre hĂŽte, il peut ĂȘtre utile de modifier cette configuration.

astuce

Utilisez slorber/trailing-slash-guide pour mieux comprendre le comportement de votre hĂŽte et configurer trailingSlash correctement.

Utilisation des variables d'environnement​

Placer des informations potentiellement sensibles dans l'environnement est une pratique courante. Cependant, dans un site web typique de Docusaurus, le fichier docusaurus.config.js est la seule interface avec l'environnement Node.js (voir notre aperçu de l'architecture), alors que tout le reste (pages MDX, composants React, etc.) sont cÎté client et n'ont pas d'accÚs direct à la variable global process. Dans ce cas, vous pouvez envisager d'utiliser customFields pour passer des variables d'environnement cÎté client.

docusaurus.config.js
// Si vous utilisez dotenv (https://www.npmjs.com/package/dotenv)
import 'dotenv/config';

export default {
title: '...',
url: process.env.URL, // Vous pouvez également utiliser des variables d'environnement pour contrÎler les spécificités du site
customFields: {
// Mettez votre environnement personnalisé ici
teamEmail: process.env.EMAIL,
},
};
home.jsx
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';

export default function Home() {
const {
siteConfig: {customFields},
} = useDocusaurusContext();
return <div>Contactez-nous via {customFields.teamEmail} !</div>;
}

Choix d'un hĂ©bergeur​

Il existe quelques options d'hĂ©bergement courantes :

  • L'auto-hĂ©bergement avec un serveur HTTP comme Apache2 ou Nginx.
  • Fournisseurs de Jamstack (par exemple Netlify et Vercel). Nous les utiliserons comme rĂ©fĂ©rences, mais le mĂȘme raisonnement peut s'appliquer Ă  d'autres fournisseurs.
  • GitHub Pages (par dĂ©finition, il s'agit Ă©galement de Jamstack, mais nous le considĂ©rons sĂ©parĂ©ment).

Si vous n'ĂȘtes pas certain de savoir lequel choisir, posez-vous les questions suivantes :

Combien de ressources (argent, heures de travail, etc.) suis-je prĂȘt Ă  investir dans ce projet ?

  • 🔮 L'auto-hĂ©bergement nĂ©cessite une expĂ©rience en matiĂšre de rĂ©seaux ainsi que d'administration de Linux et de serveurs web. C'est l'option la plus difficile Ă  mettre en Ɠuvre, et c'est celle qui demande le plus de temps pour ĂȘtre gĂ©rĂ©e avec succĂšs. En termes de dĂ©penses, les services du cloud ne sont presque jamais gratuits, et l'achat/dĂ©ploiement d'un serveur sur site peut s'avĂ©rer encore plus coĂ»teux.
  • 🟱 Les fournisseurs de Jamstack peuvent vous aider Ă  configurer un site web fonctionnel en un rien de temps et offrent des fonctionnalitĂ©s comme les redirections cĂŽtĂ© serveur qui sont facilement configurables. De nombreux fournisseurs offrent de gĂ©nĂ©reux quotas de temps de construction, mĂȘme pour les plans gratuits, que vous ne dĂ©passerez presque jamais. Cependant, les plans gratuits ont des limites, et vous devrez payer une fois que vous aurez atteint ces limites. Consultez la page tarifaire de votre fournisseur pour plus de dĂ©tails.
  • 🟡 Le workflow de dĂ©ploiement des pages GitHub peut ĂȘtre fastidieux Ă  configurer. (La preuve : regardez la longueur du DĂ©ploiement vers Github Pages !) Cependant, ce service (y compris la construction et le dĂ©ploiement) est toujours gratuit pour les dĂ©pĂŽts publics, et nous avons des instructions dĂ©taillĂ©es pour vous aider Ă  le faire fonctionner.
De quel degrĂ© de personnalisation cĂŽtĂ© serveur ai-je besoin ?
  • 🟱 Avec l'auto-hĂ©bergement, vous avez accĂšs Ă  toute la configuration du serveur. Vous pouvez configurer l'hĂŽte virtuel pour qu'il serve un contenu diffĂ©rent en fonction de l'URL de la requĂȘte, vous pouvez effectuer des redirections complexes cĂŽtĂ© serveur, vous pouvez mettre en Ɠuvre l'authentification, etc. Si vous avez besoin de nombreuses fonctionnalitĂ©s cĂŽtĂ© serveur, hĂ©bergez votre site web.
  • 🟡 Jamstack propose gĂ©nĂ©ralement une configuration cĂŽtĂ© serveur (par exemple, formatage des URL (slash de fin de chaĂźne), redirections cĂŽtĂ© serveur, etc.).
  • 🔮 Les Pages GitHub n'exposent pas la configuration cĂŽtĂ© serveur, Ă  part l'application du HTTPS et la dĂ©finition du CNAME.
Ai-je besoin de flux de déploiement facilitant la collaboration ?
  • 🟡 Les services auto-hĂ©bergĂ©s peuvent tirer parti d'une fonctionnalitĂ© de dĂ©ploiement continu telle que Netlify, mais il faut alors procĂ©der Ă  des opĂ©rations plus lourdes. En gĂ©nĂ©ral, vous dĂ©signez une personne spĂ©cifique pour gĂ©rer le dĂ©ploiement, et le flux de travail n'est pas vraiment basĂ© sur git, contrairement aux deux autres options.
  • 🟱 Netlify et Vercel ont des aperçus de dĂ©ploiement pour chaque pull request, ce qui est utile pour une Ă©quipe pour revoir le travail avant de le mettre en production. Vous pouvez Ă©galement gĂ©rer une Ă©quipe avec un accĂšs diffĂ©rent au dĂ©ploiement.
  • 🟡 Les pages GitHub ne peuvent pas faire des aperçus de dĂ©ploiement d'une maniĂšre simple. Un dĂ©pĂŽt ne peut ĂȘtre associĂ© qu'Ă  un seul dĂ©ploiement du site. D'un autre cĂŽtĂ©, vous pouvez contrĂŽler qui a accĂšs en Ă©criture au dĂ©ploiement du site.

Il n'y a pas de solution miracle. Vous devez Ă©valuer vos besoins et vos ressources avant de faire votre choix.

Auto-hĂ©bergement​

Docusaurus peut ĂȘtre auto-hĂ©bergĂ© en utilisant docusaurus serve. Changez de port en utilisant --port et --host pour changer d'hĂŽte.

npm run serve -- --build --port 80 --host 0.0.0.0
attention

Ce n'est pas la meilleure option, par rapport à un fournisseur d'hébergement statique / CDN.

attention

Dans les sections suivantes, nous allons prĂ©senter quelques fournisseurs d'hĂ©bergement les plus courants et la maniĂšre dont ils doivent ĂȘtre configurĂ©s pour dĂ©ployer les sites Docusaurus le plus efficacement possible. Docusaurus n'est affiliĂ© Ă  aucun de ces services, et ces informations ne sont fournies qu'Ă  titre de renseignement. Certaines de ces informations sont fournies par des tiers, et les modifications rĂ©centes de l'API peuvent ne pas ĂȘtre reprises de notre cĂŽtĂ©. Si vous voyez du contenu obsolĂšte, les PR sont les bienvenues.

Étant donnĂ© que nous ne pouvons fournir ce contenu que sur la bonne foi, nous avons cessĂ© d'accepter les PR qui ajoutent de nouvelles options d'hĂ©bergement. Vous pouvez toutefois publier votre article sur un autre site (par exemple, votre blog ou le site officiel du fournisseur) et nous demander d'inclure un lien vers votre texte.

DĂ©ploiement sur Netlify​

Pour déployer vos sites Docusaurus sur Netlify, assurez-vous d'abord que les options suivantes sont correctement configurées :

docusaurus.config.js
export default {
url: 'https://docusaurus-2.netlify.app', // Url de votre site sans slash Ă  la fin
baseUrl: '/', // RĂ©pertoire de base de votre site relatif Ă  votre depĂŽt
// ...
};

Ensuite, créez votre site avec Netlify.

Pendant que vous configurez le site, spécifiez les commandes de compilation et les répertoires comme suit :

  • build command: npm run build
  • publish directory: build

Si vous n'avez pas configuré ces options de compilation, vous pouvez toujours aller dans "Site settings" -> "Build deploy" aprÚs la création de votre site.

Une fois correctement configurĂ© avec les options ci-dessus, votre site devrait ĂȘtre dĂ©ployĂ© et redĂ©ployĂ© automatiquement lors de la fusion de votre branche de dĂ©ploiement, qui est par dĂ©faut main.

attention

Certains sites Docusaurus placent le dossier docs Ă  l'extĂ©rieur de website (probablement les anciens sites Docusaurus v1) :

repo           # racine git
├── docs # fichiers MD
└── website # racine Docusaurus

Si vous dĂ©cidez d'utiliser le dossier website comme rĂ©pertoire de base pour Netlify, Netlify ne dĂ©clenchera pas les builds lorsque vous mettrez Ă  jour le dossier docs, et vous devrez configurer une commande personnalisĂ©e ignore :

website/netlify.toml
[build]
ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF . ../docs/"
attention

Par défaut, Netlify ajoute un slash final aux URL Docusaurus.

Il est recommandé de désactiver le paramÚtre Netlify Post Processing > Asset Optimization > Pretty Urls pour éviter les URL en minuscule, les redirections inutiles et les erreurs 404.

Faites trĂšs attention : la case Ă  cocher globale Disable asset optimization est dĂ©fectueuse et ne dĂ©sactive pas vraiment le paramĂštre Pretty URLs en pratique. Veillez Ă  *la dĂ©cocher indĂ©pendamment**.

Si vous voulez garder le paramÚtre Pretty Urls de Netlify activé, ajustez la configuration trailingSlash de Docusaurus de maniÚre appropriée.

Pour plus d'informations, consultez slorber/trailing-slash-guide.

DĂ©ploiement sur Vercel​

Déployer votre projet Docusaurus sur Vercel vous fournira différents avantages dans les domaines de la performance et de la facilité d'utilisation.

Pour déployer votre projet Docusaurus avec un Vercel pour l'intégration Git, assurez-vous qu'il a été poussé dans un dépÎt Git.

Importez le projet dans Vercel en utilisant Import Flow. Lors de l'importation, toutes les options pertinentes sont préconfigurées pour vous; toutefois, vous pouvez choisir de modifier n'importe laquelle de ces options.

AprĂšs l'importation de votre projet, tous les pushs ultĂ©rieurs vers les branches gĂ©nĂ©reront des DĂ©ploiements d'aperçu, et toutes les modifications apportĂ©es Ă  la Branche de production (communĂ©ment « main Â» ou « master Â») donneront lieu Ă  un DĂ©ploiement de production.

DĂ©ploiement sur GitHub Pages​

Docusaurus fournit un moyen facile de publier sur GitHub Pages, qui est fourni gratuitement avec chaque dépÎt GitHub.

Vue d'ensemble​

Habituellement, il y a deux dépÎts (au moins deux branches) impliqués dans un processus de publication : la branche contenant les fichiers source, et la branche contenant la sortie de construction à servir avec GitHub Pages. Dans le tutoriel suivant, ils seront appelés respectivement "source" et "deployment".

Chaque dĂ©pĂŽt GitHub est associĂ© Ă  un service GitHub pages. Si le dĂ©pĂŽt de dĂ©ploiement est appelĂ© my-org/my-project (oĂč my-org est le nom de l'organisation ou le nom d'utilisateur), le site dĂ©ployĂ© apparaĂźtra Ă  l'adresse https://my-org.github.io/my-projet/. Si le dĂ©pĂŽt de dĂ©ploiement s'appelle my-org/my-org.github.io (le dĂ©pĂŽt des pages GitHub de l'organisation), le site apparaĂźtra sous https://my-org.github.io/.

info

Dans le cas oĂč vous souhaitez utiliser votre domaine personnalisĂ© pour GitHub Pages, crĂ©ez un fichier CNAME dans le rĂ©pertoire static. Tout ce qui se trouve dans le rĂ©pertoire static sera copiĂ© Ă  la racine du rĂ©pertoire build pour le dĂ©ploiement. Lorsque vous utilisez un domaine personnalisĂ©, vous devriez pouvoir revenir de baseUrl: '/projectName/' Ă  baseUrl: '/' et Ă©galement dĂ©finir votre url vers votre domaine personnalisĂ©.

Vous pouvez vous référer à la documentation de GitHub Pages User, Organization, and Project Pages pour plus de détails.

Les pages GitHub rĂ©cupĂšrent les fichiers prĂȘts Ă  ĂȘtre dĂ©ployĂ©s (la sortie de docusaurus build) Ă  partir de la branche par dĂ©faut (master / main, gĂ©nĂ©ralement) ou la branche gh-pages, et soit Ă  partir de la racine, soit Ă  partir du dossier /docs. Vous pouvez le configurer via Settings > Pages dans votre dĂ©pĂŽt. Cette branche sera appelĂ©e "branche de dĂ©ploiement".

Nous fournissons une commande docusaurus deploy qui vous aide Ă  dĂ©ployer votre site depuis la branche source vers la branche de dĂ©ploiement en une seule commande : cloner, compiler et committer.

Paramùtres de docusaurus.config.js​

Tout d'abord, modifiez votre docusaurus.config.js et ajoutez les paramĂštres suivants :

NomDescription
organizationNameL'utilisateur ou l'organisation GitHub qui possÚde le dépÎt de déploiement.
projectNameLe nom du dépÎt de déploiement.
deploymentBranchLe nom de la branche de dĂ©ploiement. La valeur par dĂ©faut est 'gh-pages' pour les pages GitHub des dĂ©pĂŽts non organisationnels (projectName ne se terminant pas par .github.io). Sinon, il doit ĂȘtre explicite comme un champ de configuration ou une variable d'environnement.

Ces champs ont Ă©galement leurs Ă©quivalents sous forme de variables d'environnement qui ont une prioritĂ© plus Ă©levĂ©e : ORGANIZATION_NAME, PROJECT_NAME et DEPLOYMENT_BRANCH.

attention

GitHub Pages ajoute par défaut un slash final aux URL Docusaurus. Il est recommandé de définir une config trailingSlash (true ou false, pas undefined).

Exemple :

docusaurus.config.js
export default {
// ...
url: 'https://endiliey.github.io', // Your website URL
baseUrl: '/',
projectName: 'endiliey.github.io',
organizationName: 'endiliey',
trailingSlash: false,
// ...
};
attention

Par défaut, les pages GitHub exécutent les fichiers publiés via Jekyll. Puisque Jekyll va se débarrasser de tous les fichiers qui commencent par _, il est recommandé de désactiver Jekyll en ajoutant un fichier vide nommé .nojekyll dans votre répertoire static.

Paramùtres de l'environnement​

NomDescription
USE_SSHDéfini à true pour utiliser SSH au lieu du HTTPS par défaut pour la connexion au dépÎt GitHub. Si l'URL du dépÎt source est une URL SSH (par exemple git@github.com:facebook/docusaurus.git), USE_SSH est déduite comme étant à true.
GIT_USERLe nom d'utilisateur pour un compte GitHub qui a un accÚs push au dépÎt de déploiement. Pour vos propres dépÎts, ce sera généralement votre nom d'utilisateur GitHub. Requis si vous n'utilisez pas SSH, et ignoré autrement.
GIT_PASSJeton d'accÚs personnel de l'utilisateur git (spécifié par GIT_USER), pour faciliter le déploiement non interactif (par exemple le déploiement continu)
CURRENT_BRANCHLa branche source. Habituellement, la branche sera main ou master, mais elle pourrait ĂȘtre n'importe quelle branche Ă  l'exception de gh-pages. Si rien n'est dĂ©fini pour cette variable, alors la branche courante Ă  partir de laquelle docusaurus deploy est invoquĂ©e sera utilisĂ©e.
GIT_USER_NAMELa valeur de git config user.name à utiliser lors de la publication dans le dépÎt de déploiement
GIT_USER_EMAILLa valeur de git config user.email à utiliser lors de la publication dans le dépÎt de déploiement

Les installations de GitHub Enterprise devraient fonctionner de la mĂȘme maniĂšre que github.com ; il suffit de dĂ©finir l'hĂŽte GitHub Enterprise de l'organisation comme variable d'environnement :

NomDescription
GITHUB_HOSTLe nom de domaine de votre site d'entreprise GitHub.
GITHUB_PORTLe port de votre site d'entreprise GitHub.

DĂ©ployez​

Enfin, pour déployer votre site sur GitHub Pages, exécutez :

GIT_USER=<GITHUB_USERNAME> yarn deploy
attention

À partir d'aoĂ»t 2021, GitHub requiert que chaque connexion en ligne de commande utilise le jeton d'accĂšs personnel au lieu du mot de passe. Lorsque GitHub vous demande votre mot de passe, entrez le PAT Ă  la place. Voir la documentation de GitHub pour plus d'informations.

Alternativement, vous pouvez utiliser SSH (USE_SSH=true) pour vous connecter.

DĂ©clenchement du dĂ©ploiement avec GitHub Actions​

Les GitHub Actions vous permettent d'automatiser, de personnaliser et d'exécuter vos flux de développement logiciel directement dans votre dépÎt.

Les exemples de workflow ci-dessous supposent que la source de votre site web réside dans la branche main de votre dépÎt (la branche source est main), et que votre source de publication est configurée pour publier avec un workflow d'actions GitHub personnalisé.

Notre objectif est que :

  1. Quand une nouvelle pull request est faite sur main, il y a une action qui assure que le site se construit avec succÚs, sans déploiement réel. Cette tùche sera appelée test-deploy.
  2. Lorsqu'une pull request est fusionnée à la branche main ou quelqu'un pousse directement sur la branche main, cela construira et déploiera dans Github Pages. Cette tùche sera appelée deploy.

Voici deux approches pour déployer votre documentation avec GitHub Actions. Based on the location of your deployment repository, choose the relevant tab below:

  • Le dĂ©pĂŽt source et le dĂ©pĂŽt de dĂ©ploiement sont le mĂȘme dĂ©pĂŽt.
  • Le dĂ©pĂŽt de dĂ©ploiement est un dĂ©pĂŽt distant, diffĂ©rent de la source. Les instructions pour ce scĂ©nario supposent la source de publication est la branche gh-pages.

Bien que vous puissiez avoir les deux tĂąches dĂ©finies dans le mĂȘme fichier de workflow, le workflow original deploy sera toujours listĂ© comme ignorĂ© dans le statut de la suite de vĂ©rification du PR, ce qui n'est pas indicatif du statut rĂ©el et n'apporte aucune valeur au processus de rĂ©vision. Nous proposons donc de les gĂ©rer en tant que workflow sĂ©parĂ©s.

Fichiers GitHub action

Ajoutez ces deux fichiers de workflow :

Ajustez les paramĂštres de votre configuration

Ces fichiers supposent que vous utilisez Yarn. Si vous utilisez npm, changez en conséquence cache: yarn, yarn install --frozen-lockfile, yarn build en cache: npm, npm ci, npm run build.

Si votre projet Docusaurus n'est pas Ă  la racine de votre dĂ©pĂŽt, vous devrez peut-ĂȘtre configurer un rĂ©pertoire de travail par dĂ©faut, et ajuster les chemins en consĂ©quence.

.github/workflows/deploy.yml
name: Deploy to GitHub Pages

on:
push:
branches:
- main
# Review gh actions docs if you want to further define triggers, paths, etc
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on

jobs:
build:
name: Build Docusaurus
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn

- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build website
run: yarn build

- name: Upload Build Artifact
uses: actions/upload-pages-artifact@v3
with:
path: build

deploy:
name: Deploy to GitHub Pages
needs: build

# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source

# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
.github/workflows/test-deploy.yml
name: Test deployment

on:
pull_request:
branches:
- main
# Review gh actions docs if you want to further define triggers, paths, etc
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on

jobs:
test-deploy:
name: Test deployment
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn

- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Test build website
run: yarn build
Le site n'est pas correctement dĂ©ployĂ© ?

AprĂšs avoir poussĂ© vers main, si vous ne voyez pas votre site publiĂ© Ă  l'emplacement souhaitĂ© (par exemple, il indique « There isn't a GitHub Pages site here Â», ou il affiche le fichier README.md de votre dĂ©pĂŽt), essayez ce qui suit :

  • Attendez environ trois minutes et rafraĂźchissez. Les pages GitHub peuvent prendre quelques minutes pour rĂ©cupĂ©rer les nouveaux fichiers.
  • VĂ©rifiez sur la page d'accueil de votre dĂ©pĂŽt qu'une petite coche verte apparaĂźt Ă  cĂŽtĂ© du titre du dernier commit, indiquant que le CI est rĂ©ussi. Si vous voyez une croix, cela signifie que la construction ou le dĂ©ploiement a Ă©chouĂ©, et vous devez vĂ©rifier le journal pour plus d'informations de dĂ©bogage.
  • Cliquez sur la coche et assurez-vous que vous voyez un flux de travail « Deploy to GitHub Pages Â». Des noms comme « pages build and deployment / deploy Â» sont des flux de travail par dĂ©faut de GitHub, ce qui indique que votre flux de travail de dĂ©ploiement personnalisĂ© qui a Ă©chouĂ©, n'a pas du tout Ă©tĂ© dĂ©clenchĂ©. Assurez-vous que les fichiers YAML sont placĂ©s dans le dossier .github/workflows et que la condition de dĂ©clenchement est correctement dĂ©finie (par exemple, si votre branche par dĂ©faut est "master" au lieu de "main", vous devez modifier la propriĂ©tĂ© on.push).
  • Dans « Settings > Pages Â» de votre dĂ©pĂŽt, assurez-vous que "Source" (qui est la source pour les fichiers de dĂ©ploiement, et non "source" comme dans notre terminologie) est dĂ©finie Ă  "gh-pages" + "/ (root)", puisque nous utilisons gh-pages comme branche de dĂ©ploiement.

Si vous utilisez un domaine personnalisĂ© :

DĂ©clenchement du dĂ©ploiement avec Travis CI​

Les services d'intĂ©gration continue (CI) sont gĂ©nĂ©ralement utilisĂ©s pour effectuer des tĂąches routiniĂšres lorsque de nouveaux commits sont enregistrĂ©s dans le contrĂŽle de source. Ces tĂąches peuvent ĂȘtre une combinaison de tests unitaires et de tests d'intĂ©gration, d'automatisation de la construction, de publication de paquets sur npm et de dĂ©ploiement de modifications sur votre site Web. Tout ce que vous avez Ă  faire pour automatiser le dĂ©ploiement de votre site Web est d'invoquer le script yarn deploy chaque fois que votre site est mis Ă  jour. La section suivante couvre comment faire exactement cela en utilisant Travis CI, un fournisseur de services d'intĂ©gration continue populaire.

  1. Allez sur https://github.com/settings/tokens et générez un nouveau jeton d'accÚs personnel. Lors de la création du jeton, octroyez-lui la portée du repo afin qu'il dispose des autorisations dont il a besoin.
  2. En utilisant votre compte GitHub, ajoutez l'application Travis CI au dépÎt que vous souhaitez activer.
  3. Ouvrez votre tableau de bord Travis CI. L'URL ressemble à https://travis-ci.com/USERNAME/REPO et naviguez vers la section More options > Setting > Environment Variables de votre dépÎt.
  4. Créez une nouvelle variable d'environnement nommée GH_TOKEN avec votre jeton nouvellement généré comme valeur, puis GH_EMAIL (votre adresse e-mail) et GH_NAME (votre nom d'utilisateur GitHub).
  5. Créez un .travis.yml à la racine de votre dépÎt avec les éléments suivants :
.travis.yml
language: node_js
node_js:
- 18
branches:
only:
- main
cache:
yarn: true
script:
- git config --global user.name "${GH_NAME}"
- git config --global user.email "${GH_EMAIL}"
- echo "machine github.com login ${GH_NAME} password ${GH_TOKEN}" > ~/.netrc
- yarn install
- GIT_USER="${GH_NAME}" yarn deploy

Maintenant, chaque fois qu'un nouveau commit arrive dans main, Travis CI exécutera votre suite de tests et si tout se passe, votre site web sera déployé via le script yarn deploy.

DĂ©clenchement du dĂ©ploiement avec Buddy​

Buddy est un outil CI/CD facile à utiliser qui vous permet d'automatiser le déploiement de votre portail dans différents environnements, notamment les pages GitHub.

Suivez ces Ă©tapes pour crĂ©er un pipeline qui dĂ©ploie automatiquement une nouvelle version de votre site Web chaque fois que vous apportez des modifications Ă  la branche sĂ©lectionnĂ©e de votre projet :

  1. Allez sur https://github.com/settings/tokens et générez un nouveau jeton d'accÚs personnel. Lors de la création du jeton, octroyez-lui la portée du repo afin qu'il dispose des autorisations dont il a besoin.
  2. Connectez-vous à votre compte Buddy et créez un nouveau projet.
  3. Choisissez GitHub comme hébergeur git et sélectionnez le dépÎt avec le code de votre site web.
  4. À l'aide du panneau de navigation de gauche, basculez vers la vue Pipelines.
  5. Créez un nouveau pipeline. Définissez son nom, définissez le mode de déclenchement à On push, et sélectionnez la branche qui déclenche l'exécution du pipeline.
  6. Ajoutez une action Node.js.
  7. Ajoutez ces commandes dans le terminal de l'action :
GIT_USER=<GH_PERSONAL_ACCESS_TOKEN>
git config --global user.email "<YOUR_GH_EMAIL>"
git config --global user.name "<YOUR_GH_USERNAME>"
yarn deploy

AprÚs avoir créé ce pipeline simple, chaque nouveau commit poussé vers la branche que vous avez sélectionnée déploie votre site web sur GitHub Pages à l'aide de yarn deploy. Lisez ce guide pour en savoir plus sur la mise en place d'un pipeline CI/CD pour Docusaurus.

Utilisation de Azure Pipelines​

  1. Inscrivez-vous sur Azure Pipelines si vous ne l'avez pas déjà fait.
  2. Créer une organisation. Au sein de l'organisation, créez un projet et connectez votre dépÎt à partir de GitHub.
  3. Allez sur https://github.com/settings/tokens et générez un nouveau jeton d'accÚs personnel avec la portée de repo.
  4. Dans la page du projet (qui ressemble à https://dev.azure.com/ORG_NAME/REPO_NAME/_build), créez un nouveau pipeline avec le texte suivant. Aussi, cliquez sur modifier et ajoutez une nouvelle variable d'environnement nommée GH_TOKEN avec votre jeton nouvellement généré comme valeur, puis GH_EMAIL (votre adresse e-mail) et GH_NAME (votre nom d'utilisateur GitHub). Assurez-vous de les marquer comme secrets. Vous pouvez également ajouter un fichier nommé azure-pipelines.yml à la racine de votre dépÎt.
azure-pipelines.yml
trigger:
- main

pool:
vmImage: ubuntu-latest

steps:
- checkout: self
persistCredentials: true

- task: NodeTool@0
inputs:
versionSpec: '18'
displayName: Install Node.js

- script: |
git config --global user.name "${GH_NAME}"
git config --global user.email "${GH_EMAIL}"
git checkout -b main
echo "machine github.com login ${GH_NAME} password ${GH_TOKEN}" > ~/.netrc
yarn install
GIT_USER="${GH_NAME}" yarn deploy
env:
GH_NAME: $(GH_NAME)
GH_EMAIL: $(GH_EMAIL)
GH_TOKEN: $(GH_TOKEN)
displayName: Install and build

Utilisation de Drone​

  1. Créez une nouvelle clé SSH qui sera la clé de déploiement pour votre projet.
  2. Nommez vos clés privées et publiques pour qu'elles soient spécifiques et pour ne pas écraser vos autres clés SSH.
  3. Allez sur https://github.com/USERNAME/REPO/settings/keys et ajoutez une nouvelle clé de déploiement en collant la clé publique que vous venez de générer.
  4. Ouvrez votre tableau de bord Drone.io et connectez-vous. L'URL ressemble Ă  https://cloud.drone.io/USERNAME/REPO.
  5. Cliquez sur le dépÎt, cliquez sur activer le dépÎt, et ajoutez un secret appelé git_deploy_private_key avec la valeur de votre clé privée que vous venez de générer.
  6. Créez un .drone.yml à la racine de votre dépÎt avec le texte ci-dessous.
.drone.yml
kind: pipeline
type: docker
trigger:
event:
- tag
- name: Website
image: node
commands:
- mkdir -p $HOME/.ssh
- ssh-keyscan -t rsa github.com >> $HOME/.ssh/known_hosts
- echo "$GITHUB_PRIVATE_KEY" > "$HOME/.ssh/id_rsa"
- chmod 0600 $HOME/.ssh/id_rsa
- cd website
- yarn install
- yarn deploy
environment:
USE_SSH: true
GITHUB_PRIVATE_KEY:
from_secret: git_deploy_private_key

Maintenant, chaque fois que vous poussez un nouveau tag sur Github, ce déclencheur démarrera la tùche de drone CI pour publier votre site web.

DĂ©ploiement sur Flightcontrol​

Flightcontrol est un service qui construit et déploie automatiquement vos applications web sur AWS Fargate directement depuis votre dépÎt Git. Il vous donne un accÚs complet à des inspections et à des modifications d'infrastructure sans les limites d'une PaaS traditionnelle.

Commencez par suivre le guide Docusaurus Ă©tape par Ă©tape de Flightcontrole.

DĂ©ploiement sur Koyeb​

Koyeb est une plateforme serverless conviviale pour les développeurs afin de déployer des applications à l'échelle mondiale. La plateforme vous permet d'exécuter de maniÚre transparente des conteneurs Docker, des applications Web et des API avec un déploiement basé sur git, une mise à l'échelle automatique native, un réseau périphérique mondial et un maillage et une découverte de services intégrés. Consultez le guide de déploiement Docusaurus de Koyeb pour commencer.

DĂ©ploiement sur Render​

Render propose un hébergement de site statique gratuit avec SSL entiÚrement géré, des domaines personnalisés, un CDN global et un déploiement automatique continu depuis votre dépÎt Git. Commencez en quelques minutes seulement en suivant le guide de Render pour le déploiement de Docusaurus.

DĂ©ploiement sur Qovery​

Qovery est une plateforme cloud entiĂšrement gĂ©rĂ©e qui fonctionne sur votre compte AWS, Digital Ocean et Scaleway oĂč vous pouvez hĂ©berger des sites statiques, des API backend, des bases de donnĂ©es, des cron jobs et toutes vos autres apps en un seul endroit.

  1. Créez un compte Qovery. Visitez le tableau de bord de Qovery pour créer un compte si vous n'en avez pas déjà un.
  2. Créez un projet.
    • Cliquez sur Create project et donnez un nom Ă  votre projet.
    • Cliquez sur Next.
  3. Créez un nouvel environnement.
    • Cliquez sur Create environment et donner un nom (par exemple, staging, production).
  4. Ajoutez une application.
    • Cliquez sur Create an application, donnez un nom et sĂ©lectionnez votre dĂ©pĂŽt GitHub ou GitLab oĂč se trouve votre application Docusaurus.
    • DĂ©finissez le nom de la branche principale et le chemin de l'application racine.
    • Cliquez sur *Create**. AprĂšs la crĂ©ation de l'application :
    • AccĂ©dez Ă  Settings de votre application
    • SĂ©lectionnez Port
    • Ajoutez le port utilisĂ© par votre application Docusaurus
  5. DĂ©ployez
    • Il ne vous reste plus qu'Ă  naviguer dans votre application et Ă  cliquer sur Deploy.

DĂ©ployer l'application

Voilà. Regardez le statut et attendez que l'application soit déployée. Pour ouvrir l'application dans votre navigateur, cliquez sur Action et Open dans l'aperçu de votre application.

DĂ©ploiement sur Hostman​

Hostman vous permet d'hĂ©berger gratuitement des sites web statiques. Hostman automatise tout, il vous suffit de connecter votre dĂ©pĂŽt et de suivre ces Ă©tapes simples :

  1. Créez un service.

    • Pour dĂ©ployer un site web statique Docusaurus, cliquez sur Create dans le coin supĂ©rieur gauche de votre Dashboard et choisissez Front-end app or static website.
  2. Sélectionnez le projet à déployer.

    • Si vous ĂȘtes connectĂ© Ă  Hostman avec votre compte GitHub, GitLab ou Bitbucket, vous verrez le dĂ©pĂŽt avec vos projets, y compris les projets privĂ©s.

    • Choisissez le projet que vous souhaitez dĂ©ployer. Il doit contenir le rĂ©pertoire avec les fichiers du projet (par exemple website).

    • Pour accĂ©der Ă  un autre dĂ©pĂŽt, cliquez sur Connect another repository.

    • Si vous n'avez pas utilisĂ© les informations d'identification de votre compte Git pour vous connecter, vous pourrez accĂ©der au compte nĂ©cessaire maintenant, puis sĂ©lectionner le projet.

  3. Configurez les paramĂštres de construction.

    • Ensuite, la fenĂȘtre Website customization apparaĂźtra. Choisissez l'option Static website dans la liste des frameworks.

    • Le Directory with app pointe vers le rĂ©pertoire qui contiendra les fichiers du projet aprĂšs la construction. Si vous avez sĂ©lectionnĂ© le dĂ©pĂŽt avec le contenu du rĂ©pertoire website (ou my_website) lors de l'Ă©tape 2, vous pouvez le laisser vide.

    • La commande standard de build pour Docusaurus est :

      npm run build
    • Vous pouvez modifier la commande de compilation si nĂ©cessaire. Vous pouvez entrer plusieurs commandes sĂ©parĂ©es par &&.

  4. DĂ©ployez.

    • Cliquez sur Deploy pour dĂ©marrer le processus de construction.

    • Une fois qu'il aura dĂ©marrĂ©, vous entrerez dans le journal de dĂ©ploiement. En cas de problĂšme avec le code, vous obtiendrez des messages d'avertissement ou d'erreur dans le journal prĂ©cisant la cause du problĂšme. Habituellement, le journal contient toutes les donnĂ©es de dĂ©bogage dont vous aurez besoin.

    • Une fois le dĂ©ploiement terminĂ©, vous recevrez une notification par mail et vous verrez Ă©galement une note du journal. TerminĂ© ! Votre projet est prĂȘt.

DĂ©ploiement sur Surge​

Surge est une plate-forme statique d'hébergement web, que vous pouvez utiliser pour déployer votre projet Docusaurus à partir de la ligne de commande en quelques secondes. Déployer votre projet sur Surge est facile et gratuit (y compris les domaines personnalisés et certs SSL).

DĂ©ployez votre application en quelques secondes en utilisant Surge avec les Ă©tapes suivantes :

  1. Tout d'abord, installez Surge en utilisant npm en exécutant la commande suivante :
    npm install -g surge
  2. Pour construire pour la production les fichiers statiques de votre site à la racine de votre projet, exécutez :
    npm run build
  3. Ensuite, exécutez cette commande à l'intérieur du répertoire racine de votre projet :
    surge build/

La premiÚre fois, les utilisateurs de Surge seront invités à créer un compte à partir de la ligne de commande (cela ne se produit qu'une fois).

Confirmez que le site que vous souhaitez publier se trouve dans le rĂ©pertoire build. Un sous-domaine gĂ©nĂ©rĂ© alĂ©atoirement *.surge.sh subdomain est toujours donnĂ© (il peut ĂȘtre modifiĂ©).

Utiliser votre nom de domaine​

Si vous avez un nom de domaine, vous pouvez déployer votre site en utilisant la commande :

surge build/ your-domain.com

Votre site est maintenant déployé gratuitement sur subdomain.surge.sh ou your-domain.com selon la méthode que vous avez choisie.

Mise en place du fichier CNAME​

Stockez votre domaine dans un fichier CNAME pour de futurs déploiements avec la commande suivante :

echo subdomain.surge.sh > CNAME

Vous pouvez déployer tout autre changement dans le futur avec la commande surge.

Deploying to Stormkit​

You can deploy your Docusaurus project to Stormkit, a deployment platform for static websites, single-page applications (SPAs), and serverless functions. For detailed instructions, refer to this guide.

DĂ©ploiement sur QuantCDN​

  1. Installez Quant CLI
  2. Créez un compte QuantCDN en vous inscrivant
  3. Initialisez votre projet avec quant init et remplissez vos informations d'identification :
    quant init
  4. DĂ©ployez votre site.
    quant deploy

Consultez docs et blog pour plus d'exemples et de cas d'utilisation pour le déploiement sur QuantCDN.

DĂ©ploiement sur Layer0​

Layer0 est une plate-forme tout-en-un pour développer, déployer, prévisualiser, expérimenter, surveiller et exécuter votre headless frontend. Il est axé sur les sites Web dynamiques de grande taille et sur des performances de premier ordre grùce à EdgeJS (un réseau de diffusion de contenu basé sur JavaScript), à la récupération anticipée prédictive et au contrÎle des performances. Layer0 offre un niveau gratuit. Commencez en quelques minutes seulement en suivant le guide de Layer0 pour le déploiement de Docusaurus.

DĂ©ploiement sur Cloudflare Pages​

Cloudflare Pages est une plateforme Jamstack pour les développeurs du frontend pour collaborer et déployer des sites Web. Commencez en quelques minutes en suivant cet article.

DĂ©ploiement sur Azure Static Web Apps​

Azure Static Web Apps est un service qui construit et déploie automatiquement des applications web complÚtes sur Azure directement à partir du dépÎt de code, simplifiant ainsi l'expérience du développeur pour le CI/CD. Static Web Apps sépare les ressources statiques de l'application Web de ses points de terminaison dynamiques (API). Les ressources statiques sont servies par des serveurs de contenu répartis dans le monde entier, ce qui permet aux clients de récupérer plus rapidement les fichiers en utilisant des serveurs à proximité. Les API dynamiques sont mises à l'échelle avec des architectures sans serveur, en utilisant une approche basée sur des fonctions événementielles qui est plus rentable et évolue à la demande. Démarrez en quelques minutes en suivant ce guide étape par étape.

DĂ©ploiement sur Kinsta​

Kinsta Static Site Hosting vous permet de déployer jusqu'à 100 sites statiques gratuitement, domaines personnalisés avec SSL, 100 GB de bande passante mensuelle et 260+ emplacements CDN Cloudflare.

Commencez en quelques clics en suivant notre article Docusaurus sur Kinsta.