첫 배포
앱을 만들고, 배포하고, 결과를 확인하는 전체 과정을 처음부터 따라 합니다.
이 페이지를 끝까지 따라 하면 https://<앱 이름>.ntro.run 주소에 내 사이트가 올라갑니다.
CLI 설치 및 로그인
CLI 설치
curl -fsSL https://nitroship.co/install.sh | bash
ntro login이미 설치했다면 다음 단계로 넘어가세요. 설치 옵션, PATH 설정 및 업데이트는 CLI 설치에서 확인하세요.
앱을 만듭니다
배포할 프로젝트 폴더로 이동한 뒤 앱을 만듭니다.
cd my-project
ntro apps create hello-sitehello-site가 앱의 슬러그(주소에 쓰이는 이름)가 되어, 프로덕션 주소는 https://hello-site.ntro.run이 됩니다. 이름을 비워 두면 현재 폴더 이름을 제안합니다.
앱을 만들면 현재 폴더가 이 앱과 연결됩니다. 연결 정보는 .nitroship/app.json에 저장되며, 이후 이 폴더에서는 --app을 붙이지 않아도 어느 앱인지 압니다. 연결하고 싶지 않으면 --no-link를 붙이세요.
이름이 이미 쓰이고 있다면
같은 팀의 앱이 쓰는 이름이면 그 앱에 연결할지 물어봅니다. 다른 사람이 쓰거나 예약된 이름이면 다른 이름을 골라야 합니다.
배포합니다
연결한 폴더에서 바로 배포합니다. --prod는 프로덕션으로 배포하라는 뜻입니다.
ntro deploy . --prod소스가 원격 빌더로 올라가면 빌더가 의존성 설치와 빌드를 대신 해 줍니다. 프로젝트 종류는 Dockerfile, Next.js, 프레임워크 프리셋, 정적 파일 순으로 자동으로 판단합니다. 원하는 프리셋이 따로 있다면 nitroship.json의 build.framework에 적으세요. 루트에 Dockerfile이 있어도 이 값이 우선하며, build.dockerfile과 함께 쓸 수는 없습니다.
이미 빌드한 정적 파일 폴더만 올리고 싶다면 그 폴더를 지정하세요. 앱 연결 정보는 현재 폴더에만 있고 ./public 같은 하위 폴더에는 없으므로, --app으로 앱을 지정해야 합니다.
ntro deploy ./public --app hello-site --prod서버를 배포한다면 리전을 먼저 정하세요
서버가 실행될 지역(리전)에는 기본값이 없습니다. 콘솔의 App Settings > Compute에서 고르거나, 프로젝트 루트의 nitroship.json에 {"compute":{"regions":["kr-icn"]}}처럼 적어 두세요. 정적 사이트는 필요 없습니다.
결과를 확인합니다
ntro deploy는 빌드가 끝날 때까지(ready 또는 failed) 기다린 뒤 두 가지 주소를 보여 줍니다.
- 프로덕션 주소
hello-site.ntro.run: 항상 현재 프로덕션 배포를 보여 줍니다. - 리비전 주소
hello-site-<짧은 ID>.rev.ntro.run: 방금 만든 이 배포에 고정된 주소입니다.
배포 목록은 이렇게 봅니다.
ntro deployments list다음 배포부터는
코드를 고치고 다시 ntro deploy를 실행하면 이번에는 프리뷰로 배포됩니다. 첫 배포만 자동으로 프로덕션이 되고, 그 뒤로는 실수로 서비스 주소가 바뀌지 않도록 프리뷰가 기본값입니다.
ntro deploy # 프리뷰로 배포해서 확인
ntro deploy --prod # 바로 프로덕션으로 배포프리뷰를 확인한 뒤 프로덕션으로 올리는 방법(승격)과 되돌리는 방법(롤백)은 배포 관리에 있습니다.
CI·스크립트에서 실행할 때
터미널 질문이 뜨지 않는 환경(CI, --yes, --json)에서는 연결되지 않은 폴더를 배포할 때 반드시 --app <앱 이름>을 붙이세요. 대화형 터미널에서는 대신 앱을 고르거나 새로 만들도록 물어봅니다.
프레임워크별 안내
Next.js
관리형 배포
Nuxt
관리형 Node 서버 또는 정적 생성
Astro
정적 빌드 또는 standalone Node 서버
SvelteKit
Node 또는 정적 어댑터
Remix / React Router
관리형 Node 서버·React Router는 SPA 모드도 지원
Vite SPA
React·Vue·Svelte
정적 HTML
HTML 파일 그대로
Node 서버
관리형 NestJS·Express·Fastify·Hono·Koa
사용자 지정 Dockerfile
직접 작성한 HTTP 컨테이너