Astro 사이트를 Deno에 배포
전 세계 엣지에서 JavaScript, TypeScript 및 WebAssembly를 실행하는 분산 시스템인 Deno Deploy에 서버 측 렌더링된 Astro 사이트를 배포할 수 있습니다.
이 안내서에는 GitHub Actions 또는 Deno Deploy의 CLI를 통해 Deno Deploy에 배포하기 위한 지침이 포함되어 있습니다.
요구 사항
섹션 제목: 요구 사항이 가이드에서는 Deno가 이미 설치되어 있다고 가정합니다.
프로젝트 구성
섹션 제목: 프로젝트 구성Astro 프로젝트는 서버 측 렌더링 사이트 (SSR)로 Deno Deploy에 배포될 수 있습니다. Deno Deploy는 정적 사이트를 지원하지 않습니다.
SSR용 어댑터
섹션 제목: SSR용 어댑터Astro 프로젝트에서 SSR을 활성화하고 Deno Deploy에 배포하려면:
astro add
명령을 사용하여 Astro 프로젝트에서 SSR을 활성화하려면 Deno 어댑터를 추가하세요. 그러면 어댑터가 설치되고 astro.config.mjs
파일이 한 번에 적절하게 변경됩니다.
npx astro add deno
대신 어댑터를 수동으로 설치하려면 다음 두 단계를 완료하세요.
-
선호하는 패키지 관리자를 사용하여 프로젝트의 종속성에
@astrojs/deno
어댑터를 설치합니다. npm을 사용 중이거나 확실하지 않은 경우 터미널에서 다음을 실행하세요.Terminal window npm install @astrojs/deno -
astro.config.mjs
프로젝트 구성 파일을 아래 변경 사항으로 업데이트하세요.astro.config.mjs import { defineConfig } from 'astro/config';import deno from '@astrojs/deno';export default defineConfig({output: 'server',adapter: deno(),});다음으로
package.json
파일의preview
스크립트를 아래 변경 사항으로 업데이트하세요.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"}}이제 이 명령을 사용하여 Deno를 통해 로컬에서 프로덕션 Astro 사이트를 미리 볼 수 있습니다.
Terminal window npm run preview
배포 방법
섹션 제목: 배포 방법GitHub Actions 또는 Deno Deploy의 CLI (명령줄 인터페이스)를 사용하여 Deno Deploy에 배포할 수 있습니다.
GitHub Actions 배포
섹션 제목: GitHub Actions 배포프로젝트가 GitHub에 저장되어 있는 경우 Deno Deploy 웹사이트에서 Astro 사이트를 배포하기 위한 GitHub Actions 설정 과정을 안내합니다.
-
공개 또는 비공개 GitHub 저장소에 코드를 푸시합니다.
-
GitHub 계정으로 Deno Deploy에 로그인한 후 New Project를 클릭합니다.
-
저장소와 배포할 브랜치를 선택하고 GitHub Action 모드를 선택합니다. (Astro 사이트에는 빌드 단계가 필요하며 자동 모드를 사용할 수 없습니다.)
-
Astro 프로젝트에서
.github/workflows/deploy.yml
에 새 파일을 생성하고 아래 YAML에 붙여넣습니다. 이는 Astro 사이트에 필요한 추가 단계가 포함된 Deno Deploy에서 제공하는 YAML과 유사합니다.name: Deployon: [push]jobs:deploy:name: Deployruns-on: ubuntu-latestpermissions:id-token: write # Deno Deploy를 통한 인증에 필요contents: read # 저장소를 복제하는 데 필요steps:- name: Clone repositoryuses: actions/checkout@v3# npm을 사용하지 않나요? `npm ci`를 `yarn install` 또는 `pnpm i`로 변경하세요.- name: Install dependenciesrun: npm ci# npm을 사용하지 않나요? `npm run build`를 `yarn build` 또는 `pnpm run build`로 변경하세요.- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: Deno Deploy 프로젝트 이름으로 교체entrypoint: server/entry.mjsroot: dist -
이 YAML 파일을 커밋하고 구성된 배포 브랜치에서 GitHub로 푸시하면 배포가 자동으로 시작됩니다!
GitHub 저장소 페이지 또는 Deno Deploy의 “Actions” 탭을 사용하여 진행 상황을 추적할 수 있습니다.
CLI 배포
섹션 제목: CLI 배포-
Deno Deploy CLI를 설치합니다.
Terminal window deno install --allow-read --allow-write --allow-env --allow-net --allow-run --no-check -r -f https://deno.land/x/deploy/deployctl.ts -
Astro 빌드 단계를 실행합니다.
Terminal window npm run build -
배포하려면
deployctl
을 실행합니다!아래 명령에서
<ACCESS-TOKEN>
을 Personal Access Token으로 바꾸고<MY-DENO-PROJECT>
를 Deno Deploy 프로젝트 이름으로 바꿉니다.Terminal window DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> deployctl deploy --project=<MY-DENO-PROJECT> --no-static --include=./dist ./dist/server/entry.mjsDeno Deploy에서 모든 배포를 추적할 수 있습니다.
-
(선택 사항) 빌드를 단순화하고 하나의 명령으로 배포하려면
package.json
파일에deploy-deno
스크립트를 추가하세요.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"}}그런 다음 이 명령을 사용하여 Astro 사이트를 한 단계로 빌드하고 배포할 수 있습니다.
Terminal window DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> npm run deno-deploy
📚 Astro의 SSR에 대해 자세히 알아보세요.