프레임워크별 배포

Qwik City

Qwik City를 Express Node 어댑터 또는 정적 어댑터로 배포합니다.

나이트로쉽은 Qwik City의 Express Node 어댑터와 정적 어댑터를 관리합니다. 어댑터를 명시적으로 설정하세요. Qwik 클라이언트 빌드만으로 서버를 배포할 수는 없습니다.

감지와 빌드 결과

  • 감지 조건: package.json의 @builder.io/qwik-city. build.server를 포함한 기본 빌드 스크립트를 둡니다.
  • Express Node 어댑터: build.server가 nodeServerAdapter를 사용하는 adapters/express/vite.config.ts를 가리킵니다. 서버는 node server/entry.express.js로 실행하고 dist는 CDN에 게시합니다.
  • 정적 어댑터: adapters/static에 staticAdapter를 설정하고 build.server가 그 어댑터 설정을 가리키도록 합니다. 생성된 dist를 컴퓨트 없이 게시합니다.
  • 어댑터가 없거나 다른 서버·플랫폼 어댑터를 쓰면 필요한 조치를 안내하는 오류가 납니다. 서버 소스를 정적 파일로 올리지 말고 Express 또는 정적 어댑터를 설치하고 설정하세요.

배포하기

CLI 설치

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

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

nitroship.json
{
  "build": {"framework": "qwik"},
  "compute": {"regions": ["kr-icn"]}
}

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

ntro apps create my-qwik-app
ntro deploy . --prod

의존성을 먼저 설치하면 ntro deploy . --prod --local로 내 컴퓨터에서 빌드할 수도 있습니다. 배포 후 CLI가 보여 준 주소에서 정적 파일과 서버 라우트를 열어 보세요.

의존성 묶기

Express 프리셋은 server, dist, 설치된 의존성 폴더를 보존합니다. 다른 일부 관리형 Node 프리셋과 달리, Qwik은 공식 어댑터가 빌드 의존성을 런타임에도 참조할 수 있어 빌드 의존성도 포함합니다. 생성된 서버가 가져오는 패키지를 임의로 제거하지 마세요.

배포 후 렌더링된 페이지와 클라이언트 자산을 확인하세요. 기본 어댑터 출력 경로를 사용하고, 다른 서버 구조는 직접 만든 Dockerfile로 배포합니다.

알아둘 점

서버를 배포하려면 컴퓨트 리전을 정해야 합니다. 서버는 0.0.0.0:$PORT(기본 3000)에서 요청을 받아야 합니다. 클라이언트 자산은 CDN에서 내려가고, SSR과 API 요청은 Node 서버 하나가 모두 처리합니다. Next.js처럼 라우트마다 함수를 따로 나누지는 않습니다.

마이그레이션·큐 워커·스케줄러는 자동으로 실행하지 않습니다. 마이그레이션은 CI나 로컬에서 실행하고, 정기 작업은 예약 작업을 참고하세요. 업로드 파일은 S3 같은 오브젝트 스토리지에 저장하고, 비밀 값은 환경 변수로 설정하세요.

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

이 페이지에서