프레임워크별 배포

정적 사이트 생성기

Node 기반 생성기·Hugo·Jekyll·MkDocs를 관리형 프리셋으로 배포합니다.

나이트로쉽은 생성된 HTML과 자산을 CDN에 게시합니다. Node 기반 생성기는 Node 빌드 도구를, Hugo·Jekyll·MkDocs는 자동으로 만든 컨테이너 빌드를 사용합니다. 정적 프리셋이므로 모두 컴퓨트 리전이 필요 없습니다.

Node 기반 생성기

프리셋 슬러그프로젝트 감지 조건기본 출력
gatsbypackage.json의 gatsbypublic
docusauruspackage.json의 @docusaurus/corebuild
vitepresspackage.json의 vitepress<buildRoot>/.vitepress/dist
eleventypackage.json의 @11ty/eleventy_site

package.json에 생성기의 build 스크립트를 두세요. 예를 들어 gatsby build, docusaurus build, vitepress build docs, eleventy를 사용합니다. VitePress의 buildRoot는 빌드 명령에 넘긴 폴더입니다(이 예시에서는 docs). 폴더 인자가 없으면 기본 경로는 .vitepress/dist입니다. VitePress 설정의 srcDir은 콘텐츠를 읽는 위치만 바꾸며 이 출력 위치를 바꾸지는 않습니다.

Node 기반 생성기의 출력 경로를 바꿨다면 결과 폴더를 build.outputDirectory에 적으세요. 아래 예시에서는 사용할 생성기의 슬러그를 지정합니다. static-generators는 문서 그룹 이름이지 프리셋 슬러그가 아닙니다.

Hugo·Jekyll·MkDocs

프리셋 슬러그프로젝트 감지 조건관리형 빌드
hugohugo.toml, hugo.yaml, hugo.yml, hugo.json 중 하나. 또는 config.toml과 content/, 그리고 layouts/나 themes/hugo --destination /site
jekyll_config.yml과 jekyll을 선언한 Gemfilebundle install 후 bundle exec jekyll build --destination /site
mkdocsmkdocs.ymlMkDocs와 requirements.txt(있을 경우)를 설치한 뒤 mkdocs build --site-dir /site

이 프리셋은 보통 public, _site, site에 생성되는 결과를 자동으로 만든 최종 scratch 이미지의 /site로 보냅니다. 해당 폴더의 내용만 CDN 파일로 게시하며 서버나 소스 코드는 배포하지 않습니다. SPA 대체 규칙도 자동으로 추가하지 않습니다.

빌더는 선언된 버전에서 가장 가까운 지원 버전 또는 안정적인 기본값을 골라 도구와 베이스 이미지를 고정합니다.

  • Hugo: .tool-versions를 읽습니다. 지원하는 Hugo 버전 계열은 0.145, 0.147, 0.167이며 현재 기본값은 0.167.0입니다.
  • Jekyll: .ruby-version → Gemfile의 ruby 선언 → .tool-versions 순으로 읽습니다. 지원하는 Ruby 버전 계열은 3.2, 3.3, 3.4, 4.0이며 현재 기본값은 4.0.7입니다.
  • MkDocs: .python-version → .tool-versions 순으로 읽습니다. 지원하는 Python 버전 계열은 3.12, 3.13, 3.14이며 현재 기본값은 3.14.8입니다. 추가 플러그인은 프로젝트의 requirements로 설치합니다.

정적 전용 프리셋이므로 런타임 파일시스템이나 업로드를 저장할 디렉터리는 없습니다.

배포하기

CLI 설치

curl -fsSL https://nitroship.co/install.sh | bash
ntro login

이미 설치했다면 다음 단계로 넘어가세요. 설치 옵션, PATH 설정 및 업데이트는 CLI 설치에서 확인하세요.

nitroship.json
{
  "build": {"framework": "gatsby"}
}

build.framework를 적으면 자동 감지를 건너뛰고 이 프리셋을 씁니다. 루트에 Dockerfile이 있어도 마찬가지이고, build.dockerfile과는 함께 쓸 수 없습니다. 적지 않았을 때 어떤 순서로 감지하는지는 빌드 방식 선택에 정리해 두었습니다.

ntro apps create my-static-generators-app
ntro deploy . --prod

Node 기반 생성기는 의존성을 설치한 뒤 ntro deploy . --prod --local로 빌드할 수 있습니다. Hugo·Jekyll·MkDocs는 원격 빌더가 필요하므로 --local을 빼세요. 직접 선택하려면 build.framework 값을 hugo, jekyll, mkdocs 중 하나로 바꿉니다. 배포 후 정적 자산과 여러 페이지 URL을 직접 열어 보세요.

정적 출력만 지원합니다

이 프리셋은 생성된 파일을 게시하며 Gatsby의 SSR·DSG 서버나 다른 요청 시 렌더링은 실행하지 않습니다. 필요한 경로를 빌드 시 생성하고 여러 페이지의 URL을 직접 열어 확인하세요. 실행 중 서버가 필요한 구성은 관리형 서버 프레임워크나 직접 만든 Dockerfile을 사용하세요.

알아둘 점

정적 배포는 컴퓨트 리전이 필요 없고, SSR이나 서버 API, 서버 미들웨어도 실행되지 않습니다. 브라우저로 내려가는 설정에는 비밀 값을 넣지 마세요. 빌드 시 설정은 환경 변수, 라우팅은 정적 사이트를 참고하세요.

지원하는 어댑터나 출력 구조와 다른 구성이 필요하면 직접 만든 Dockerfile을 사용하세요. 이때 build.framework 설정을 빼고 Dockerfile에서 설치·빌드·실행을 정의합니다.

이 페이지에서