Skip to content

Latest commit

 

History

History
183 lines (131 loc) · 6.73 KB

deno.mdx

File metadata and controls

183 lines (131 loc) · 6.73 KB
title description type i18nReady
Déployez votre site Astro sur Deno
Comment déployer votre site Astro sur le web en utilisant Deno.
deploy
true

import ReadMore from '~/components/ReadMore.astro'; import { Steps } from '@astrojs/starlight/components';

Vous pouvez déployer un site Astro rendu côté serveur sur Deno Deploy, un système distribué qui exécute JavaScript, TypeScript et WebAssembly à la pointe de la technologie, dans le monde entier.

Ce guide comprend des instructions pour le déploiement vers Deno Deploy via les actions sur GitHub ou la CLI de Deno Deploy.

Prérequis

Ce guide suppose que vous avez déjà installé Deno.

Configuration du projet

Cette page fournit des instructions pour déployer votre projet Astro sur Deno Deploy en tant que site rendu côté serveur (SSR).

Pour déployer un site statique, voir le tutoriel Deno sur le déploiement d'un site statique.

Adaptateur pour le SSR

Pour activer SSR dans votre projet Astro et le déployer sur Deno Deploy :

Ajoutez l'adaptateur Deno pour activer SSR dans votre projet Astro avec la commande astro add suivante. Cela installera l'adaptateur et apportera les changements appropriés à votre fichier astro.config.mjs en une seule étape.

npx astro add deno

Si vous préférez installer l'adaptateur manuellement, suivez les deux étapes suivantes :

1. Installez [l'adaptateur `@astrojs/deno`][Deno adapter] aux dépendances de votre projet en utilisant votre gestionnaire de paquets préféré. Si vous utilisez npm ou si vous n'êtes pas sûr, exécutez ceci dans le terminal :
```bash
npm install @astrojs/deno
```
  1. Mettez à jour votre fichier de configuration du projet astro.config.mjs avec les changements ci-dessous.

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import deno from '@astrojs/deno';
    
    export default defineConfig({
     output: 'server',
     adapter: deno(),
    });

    Ensuite, mettez à jour votre script preview dans package.json avec le changement ci-dessous.

    // package.json
    {
      // ...
      "scripts": {
        "dev": "astro dev",
        "start": "astro dev",
        "build": "astro build",
        "preview": "astro preview"
        "preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs"
      }
    }

    Vous pouvez maintenant utiliser cette commande pour prévisualiser votre site Astro de façon locale avec Deno.

    npm run preview

Comment déployer un site Astro en SSR

Vous pouvez déployer Deno Deploy via les actions GitHub ou en utilisant l'interface de ligne de commande (CLI) de Deno Deploy.

Déploiement des actions GitHub

Si votre projet est stocké sur GitHub, le site Deno Deploy vous guidera dans la mise en place des actions GitHub pour déployer votre site Astro.

1. Poussez votre code vers un dépôt GitHub public ou privé.
  1. Connectez-vous sur Deno Deploy avec votre compte GitHub, et cliquez sur New Project.

  2. Sélectionnez votre dépôt, la branche à partir de laquelle vous voulez déployer, et sélectionnez le mode GitHub Action. (Votre site Astro nécessite une étape de compilation, et ne peut pas utiliser le mode Automatique).

  3. Dans votre projet Astro, créez un nouveau fichier .github/workflows/deploy.yml et collez le YAML ci-dessous. Ceci est similaire au YAML donné par Deno Deploy, avec les étapes supplémentaires nécessaires pour votre site Astro.

    name: Deploy
    on: [push]
    
    jobs:
      deploy:
        name: Deploy
        runs-on: ubuntu-latest
        permissions:
          id-token: write # Nécessaire pour l'authentification avec Deno Deploy
          contents: read # Nécessaire pour cloner le dépôt
    
        steps:
          - name: Clone repository
            uses: actions/checkout@v4
    
          # Vous n'utilisez pas npm ? Remplacez `npm ci` par `yarn install` ou `pnpm i`
          - name: Install dependencies
            run: npm ci
    
          # Vous n'utilisez pas npm ? Remplacez `npm run build` par `yarn build` ou `pnpm run build`.
          - name: Build Astro
            run: npm run build
    
          - name: Upload to Deno Deploy
            uses: denoland/deployctl@v1
            with:
              project: my-deno-project # TODO: remplacez par le nom du projet Deno Deploy
              entrypoint: server/entry.mjs
              root: dist
  4. Après avoir validé ce fichier YAML et l'avoir poussé sur GitHub sur la branche de déploiement configurée, le déploiement devrait commencer automatiquement !

    Vous pouvez suivre la progression en utilisant l'onglet "Actions" sur votre page de dépôt GitHub, ou sur Deno Deploy.

Déploiement CLI

1. Installez le [Deno Deploy CLI](https://docs.deno.com/deploy/manual/deployctl).
```bash
deno install --allow-read --allow-write --allow-env --allow-net --allow-run --no-check -r -f https://deno.land/x/deploy/deployctl.ts
```
  1. Exécutez l'étape de compilation de votre Astro.

    npm run build
  2. Exécutez deployctl pour déployer !

    Dans la commande ci-dessous, remplacez <ACCESS-TOKEN> par votre Personal Access Token et <MY-DENO-PROJECT> par le nom de votre projet Deno Deploy.

    DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> deployctl deploy --project=<MY-DENO-PROJECT> --no-static --include=./dist ./dist/server/entry.mjs

    Vous pouvez suivre tous vos déploiements sur Deno Deploy.

  3. (Optionnel) Pour simplifier la construction et le déploiement en une seule commande, ajoutez un script deploy-deno dans package.json.

    // package.json
    {
      // ...
      "scripts": {
        "dev": "astro dev",
        "start": "astro dev",
        "build": "astro build",
        "preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs",
        "deno-deploy": "npm run build && deployctl deploy --project=<MY-DENO-PROJECT> --no-static --include=./dist ./dist/server/entry.mjs"
      }
    }

    Vous pouvez alors utiliser cette commande pour construire et déployer votre site Astro en une seule étape.

    DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> npm run deno-deploy

En savoir plus sur SSR in Astro.