Nitroship 소개
나이트로쉽이 앱을 배포하는 방식과 꼭 알아야 할 개념을 한 페이지로 정리했습니다.
나이트로쉽은 웹 앱을 올리면 빌드부터 서빙까지 맡아 주는 배포 플랫폼입니다. 프로젝트 폴더에서 ntro deploy 한 번이면 소스가 나이트로쉽의 원격 빌더(클라우드에서 빌드를 대신 돌려 주는 서버)로 올라가고, 빌드가 끝나면 바로 https://<앱 이름>.ntro.run 주소로 열립니다.
시작하기
CLI 설치
curl -fsSL https://nitroship.co/install.sh | bash
ntro login이미 설치했다면 다음 단계로 넘어가세요. 설치 옵션, PATH 설정 및 업데이트는 CLI 설치에서 확인하세요.
설치했다면 첫 배포를 따라 첫 사이트를 올려 보세요.
먼저 알아 둘 개념 4가지
| 개념 | 한 줄 설명 |
|---|---|
| 앱(App) | 배포할 프로젝트 하나입니다. 앱 이름(슬러그)이 주소가 됩니다. 예: hello-site → hello-site.ntro.run |
| 팀(Team) | 앱을 소유하는 단위입니다. 권한과 요금도 팀 기준으로 관리합니다. 가입하면 시작 팀이 하나 만들어집니다. |
| 배포(Deployment) | 특정 시점의 빌드 결과물입니다. 한 번 만들어지면 바뀌지 않습니다. 코드를 고치면 새 배포를 만듭니다. |
| 프로덕션 / 프리뷰 | 프로덕션은 실제 서비스 주소에 걸린 배포, 프리뷰는 확인용 배포입니다. 첫 배포는 프로덕션이 되고, 이후 배포는 기본적으로 프리뷰가 됩니다. |
배포가 바뀌지 않기 때문에 되돌리기가 쉽습니다. 프리뷰를 확인한 뒤 프로덕션으로 승격하거나, 문제가 생기면 예전 배포로 롤백하면 됩니다. 자세한 흐름은 배포 관리에서 설명합니다.
빌드 방식 선택
원격 빌더는 프로젝트 루트를 아래 순서로 확인합니다. build.framework를 지정하면 프리셋을 직접 선택할 수 있습니다. 이 설정은 Dockerfile 자동 선택보다 우선하며 build.dockerfile과 함께 사용할 수 없습니다.
| 순서 | 방식 | 이렇게 판단합니다 | 배포 결과 |
|---|---|---|---|
| 1 | Dockerfile 컨테이너 | build.dockerfile 설정 또는 Dockerfile.nitroship / Dockerfile 존재 | 컨테이너의 HTTP 서버와 선택적으로 CDN에서 서빙하는 정적 자산 |
| 2 | 관리형 Next.js | package.json에 next 16.2 이상 | 정적 페이지, SSR, ISR, API 라우트, 미들웨어, 이미지 최적화 |
| 3 | 관리형 프레임워크 프리셋 | 의존성이나 소스 파일로 지원 프레임워크 식별 | 사용자 Dockerfile 없이 앱을 빌드하고 패키징 |
| 4 | 일반 정적 파일 | 루트 index.html, 빌드 후 dist·build·out 폴더 또는 build.outputDirectory | HTML·JS·CSS·이미지 서빙과 리디렉트·헤더 설정 |
프레임워크 프리셋의 출력 형태는 네 가지입니다.
- 정적: 빌드 파일만 CDN에서 서빙하며 앱 서버는 실행하지 않습니다.
- Node 서버: 관리형 Node.js 서버 번들을 만들고 공개 자산은 CDN에서 서빙합니다.
- 컨테이너: 프레임워크 언어에 맞는 Dockerfile을 생성해 서버 이미지를 실행하고 추출한 공개 자산은 CDN에서 서빙합니다.
- 컨테이너로 빌드한 정적 사이트: 컨테이너 툴체인으로 정적 파일을 생성한 뒤 파일만 서빙합니다. 요청을 처리하는 컨테이너는 실행하지 않습니다.
서버는 0.0.0.0:$PORT(기본 3000)에서 수신합니다. 생성된 Go/Rust 이미지에는 기본값이 3000인 PORT가 주입되지만, 앱은 직접 이를 읽어 0.0.0.0:$PORT에 바인딩해야 하며 프리셋은 하드코딩된 바인딩 주소를 바꿀 수 없습니다. ntro deploy --local은 정적·Node 서버 프리셋을 지원하며, 컨테이너 빌드가 필요한 프리셋은 기본 원격 빌드를 사용해야 합니다.
어떤 프레임워크를 쓰나요?
Next.js
서버 기능까지 그대로 동작하는 관리형 배포
Nuxt
관리형 Node 서버 또는 정적 생성
Astro
정적 사이트 또는 standalone Node 어댑터
SvelteKit
Node·정적 어댑터
Remix
관리형 Remix v2 서버
React Router
SSR 서버 또는 SPA
SolidStart
관리형 서버와 클라이언트 자산
TanStack Start
React·Solid 서버 앱
Analog
관리형 Angular 메타 프레임워크 서버
Angular
SSR 또는 정적 브라우저 빌드
Qwik
Node 또는 정적 어댑터
Node 서버
NestJS·Express·Fastify·Hono·Koa
정적 생성기
Gatsby·Docusaurus·VitePress·Eleventy·Hugo·Jekyll·MkDocs
Vite / Create React App
관리형 정적 단일 페이지 앱
정적 HTML
빌드 없이 HTML 파일 그대로
Laravel
관리형 PHP 서버와 프런트엔드 자산
Symfony
관리형 FrankenPHP 서버
WordPress
관리형 PHP 이미지와 업로드 외부 저장
PHP
Dockerfile 없는 관리형 FrankenPHP
Django
관리형 WSGI 서버와 정적 자산
Python
FastAPI·Flask 서버
Rails
관리형 Puma 서버와 컴파일한 자산
Phoenix
관리형 Elixir release
Go
관리형 컴파일 HTTP 서버
Rust
관리형 Cargo 바이너리
Spring Boot
관리형 Java 서버
.NET
관리형 ASP.NET Core 서버
Dockerfile
직접 정의한 빌드와 서버 이미지