Introducing Nitroship

How Nitroship deploys your app, and the few concepts you need before you start.

Nitroship is a deployment platform that takes your web app from source to a live URL. Run ntro deploy in your project folder: the CLI uploads your source to Nitroship's remote builder (a cloud server that runs the build for you), and when the build finishes your app is live at https://<app-name>.ntro.run.

Get started

Install the CLI

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

Already installed? Skip ahead. Full options, PATH setup, and updates: Install the CLI.

Once installed, follow Your first deployment to put your first site online.

Four concepts to know first

ConceptIn one line
AppOne project you deploy. Its name (slug) becomes its address, e.g. hello-site → hello-site.ntro.run.
TeamOwns apps. Permissions and billing are managed per team. You get a starter team when you sign up.
DeploymentThe build output at one point in time. Once created it never changes; new code means a new deployment.
Production / PreviewProduction is the deployment served at your real address; previews are for checking changes. Your first deployment becomes production; later ones are previews by default.

Because deployments never change, going back is easy: check a preview, then promote it to production, or roll back to an earlier deployment when something breaks. Managing deployments walks through the flow.

How Nitroship chooses a build

The remote builder checks your project root in this order. Set build.framework to choose a preset explicitly instead; it wins over automatic Dockerfile selection and cannot be combined with build.dockerfile.

OrderRoutePicked whenWhat gets deployed
1Dockerfile containerbuild.dockerfile is configured, or Dockerfile.nitroship / Dockerfile existsYour container's HTTP server, with optional static assets served from the CDN
2Managed Next.jspackage.json depends on next 16.2+Static pages, SSR, ISR, API routes, middleware, image optimization
3Managed framework presetDependencies or source files identify a supported frameworkThe preset builds and packages the app without a user Dockerfile
4Generic static filesA root index.html, or a dist, build, or out folder after the build (or build.outputDirectory)HTML, JS, CSS, and images, plus redirects and headers

Framework presets produce one of four output shapes:

  • Static: build files and serve them from the CDN; no app server runs.
  • Node server: package a managed Node.js server bundle and serve its public assets from the CDN.
  • Container: generate a Dockerfile for the framework's language, run the server image, and serve extracted public assets from the CDN.
  • Container-built static: use a container toolchain to generate static files, then serve only those files; no container runs for requests.

Servers listen on 0.0.0.0:$PORT (default 3000). Generated Go/Rust images set PORT (default 3000), but Go/Rust apps must read it and bind to 0.0.0.0:$PORT themselves; the preset cannot change a hard-coded bind address. ntro deploy --local supports static and Node server presets; presets that build containers require the default hosted build.

Which framework are you using?

How would you like to deploy?

On this page