ByteVancer
Guide

How to Set Up Openship on a VPS or Dedicated Server (2026 Guide)

Install Openship on a VPS step by step: CLI or Docker Compose, server requirements, guided setup, your first deploy from dashboard or CLI, and hardening.

By · Software Engineer · Published · 8 min read

Openship is an open-source (Apache 2.0) deployment platform that auto-detects your stack, builds an immutable image and ships it to your server over SSH, where an OpenResty edge serves it with automatic HTTPS. This guide installs it on a VPS or dedicated server and deploys a first project, following Openship's installation and quickstart docs. For how it stacks up against the more established option, read our Coolify vs Openship comparison.

Install options

MethodCommand / sourceBest for
Install script (Linux/macOS shell)curl -fsSL https://get.openship.io | shServers — the usual path
Install script (Windows PowerShell)irm https://get.openship.io/windows | iexWindows machines
npmnpm i -g openship (Node 22+)Machines that already run Node
Desktop appMac, Windows, LinuxManaging and deploying from your own computer
Docker Compose from sourcegit clone https://github.com/oblien/openship.gitRunning the stack straight from the repository

Note: Openship's installation docs show the Windows command with a git.openship.io host; that host does not resolve, and the working one is get.openship.io, as in the table above.

Server requirements

MinimumRecommended
CPU2 cores4+ cores
RAM2 GB (Bitdoze) · 4 GB (CloudLinux.ro)4+ GB
Disk20 GB50+ GB SSD
OSUbuntu 22.04+Ubuntu 24.04

The guidance differs between sources. Bitdoze lists a 2 GB minimum with 4 GB recommended; CloudLinux.ro puts the minimum at 4 GB because Openship builds on first boot. If you plan to build on the server, start at 4 GB. If you build on your own machine or in the cloud and ship images over SSH, a smaller VPS is workable — that off-box build is Openship's main answer to out-of-memory failures on small servers.

Openship: minimum vs recommended server (Bitdoze)

Recommended values are lower bounds (4+ cores, 4+ GB). CloudLinux.ro sets the RAM minimum at 4 GB instead of 2 GB. Source: Bitdoze, CloudLinux.ro.

View data table
Openship: minimum vs recommended server (Bitdoze)
CategoryMinimumRecommended
CPU cores24
RAM (GB)24
Openship disk: minimum vs recommended (Bitdoze)

The recommended figure is a lower bound: 50+ GB on SSD. Source: Bitdoze.

View data table
Openship disk: minimum vs recommended (Bitdoze)
CategoryDisk
Minimum20 GB
Recommended (SSD)50 GB

How an Openship deploy works

The Openship deployment pipeline
  1. 01

    Connect

    A GitHub repository or local folder; the stack is auto-detected.

  2. 02

    Build

    An immutable image, built locally, in the cloud or on the server.

  3. 03

    Ship

    The image travels to your server over SSH.

  4. 04

    Route

    OpenResty + Let's Encrypt, with zero-downtime swaps.

  5. 05

    Operate

    Logs, metrics, rollbacks, scheduled jobs, backups.

Setup at a glance

Openship setup, start to finish
  1. 01

    Install the CLI

    Install script, npm, or the desktop app.

  2. 02

    Run openship

    The guided wizard asks for admin name, email and password.

  3. 03

    Choose private or public

    Public mode needs a domain.

  4. 04

    Service starts

    Docker Compose stack on Linux with Docker; bare mode otherwise.

  5. 05

    openship open

    The dashboard on port 3001.

  6. 06

    Deploy a repo

    From the dashboard, or openship init && openship deploy.

Step 1: Install the CLI

bash
curl -fsSL https://get.openship.io | sh

Given how young the project is, pin a specific release rather than taking whatever is latest. Pick a tag from the GitHub releases page and substitute it for <version>:

bash
curl -fsSL https://get.openship.io | OPENSHIP_VERSION=<version> sh

If your shell can't find the openship command afterwards, add its directory to your PATH:

bash
export PATH="$HOME/.openship/bin:$PATH"

Alternatively, install from npm with npm i -g openship — this needs Node 22 or newer.

Step 2: Run the guided setup

bash
openship

Running openship with no arguments starts the wizard. It asks for the admin's name, email and password, and whether the instance is private or public (public needs a domain). It then deploys the platform, creates the admin account and prints the URL. If you'd rather skip the wizard, openship up starts the platform without creating an admin — register the first account in the dashboard straight away.

Compose mode vs bare mode

On Linux with Docker installed, Openship runs as a Docker Compose stack: Postgres, Redis, the API, the dashboard and the OpenResty edge on ports 80 and 443. Anywhere else it falls back to bare mode — a single process with an embedded database. You can force either:

bash
openship up --compose
openship up --bare

On Linux, Openship runs as a systemd service: it restarts if it crashes and starts again on boot.

Step 3: Open the dashboard

bash
openship open
PortServiceExposure
3001DashboardKeep private or behind a trusted proxy
4000APIKeep private or behind a trusted proxy
80 / 443OpenResty edgePublic — serves your apps
5432Postgres (Compose mode)Internal only
6379Redis (Compose mode)Internal only

Step 4: Deploy your first project

In the dashboard, create a new project and point it at a GitHub repository or a folder. Openship shows a summary of what it auto-detected — Node, Python, Go, Rust, PHP, Ruby, Java, .NET, Docker or a monorepo — then you click Deploy, watch the live build logs, and get a link to the running app.

The same flow works from a terminal inside your project:

bash
cd your-project
openship init
openship deploy --watch

openship init writes .openship/project.json; --watch follows the logs. For a preview environment, deploy with openship deploy --env preview.

Headless install for automation

For provisioning scripts, the Compose install can run without prompts:

bash
OPENSHIP_ADMIN_PASSWORD='a-strong-password' openship up --non-interactive \
  --admin-email you@example.com --admin-name "You" \
  --domain-kind custom --hostname ops.example.com \
  --acme-email you@example.com --edge migrate
  • --domain-kind accepts byo, custom, free (a <slug>.opsh.io address, which needs a connection to Openship Cloud) or none.
  • --edge handles an existing proxy on ports 80/443: migrate imports the existing proxy's sites into Openship's edge; takeover stops the existing proxy, so the sites it served stop serving; cancel is the third option.

Running from source with Docker Compose

bash
git clone https://github.com/oblien/openship.git
cd openship
cp .env.example .env
docker compose up -d --build

Review the copied .env before starting the stack, and keep a strong INTERNAL_TOKEN and auth secrets.

Managing the service

CommandWhat it does
openship statusCheck API health
openship stopStop the platform; it won't restart on reboot
openship up --foregroundRun attached to the terminal; Ctrl-C to stop
openship up --no-uiRun the API only, without the dashboard
openship openOpen the dashboard
openship doctorRe-check the host control channel
openship uninstallRemove Openship (flags: --keep-data, --keep-images, --yes)

Hardening checklist

  • Use --no-host-control on a box that only manages remote servers, so it doesn't control its own host.
  • Keep a strong INTERNAL_TOKEN and auth secrets.
  • Pin the Openship version (OPENSHIP_VERSION) and upgrade deliberately.
  • Back up the Postgres volumes.
  • Pilot on non-critical workloads first — the docs are thinner and the project is young.

Troubleshooting

Prefer the established route? Our Coolify setup guide walks through the same journey, and the Coolify vs Openship comparison helps you choose.

FAQ

Questions, answered

Run curl -fsSL https://get.openship.io | sh on Linux or macOS, irm https://get.openship.io/windows | iex in Windows PowerShell, or npm i -g openship with Node 22+. Then run openship with no arguments to start the guided setup. A desktop app and a Docker Compose install from source are also available.

Want Openship piloted safely before you commit?

We evaluate, install and harden self-hosted platforms, then wire up CI/CD, backups and monitoring around them. See our self-hosted PaaS DevOps services.