# Quickstart
URL: https://openship.io/docs/getting-started/quickstart.md

The fastest path from a fresh install to a live app — start Openship, open the dashboard, and deploy one thing.

import { Step, Steps } from 'fumadocs-ui/components/steps';

Just installed Openship? This page gets you to a live app in four short steps. Think of Openship as a
little kitchen that runs on your own computer: you turn it on, open the door, hand it your code, and it
cooks and serves the meal. No servers to rent, no config files to write.

<Callout title="What you need">
- A computer running macOS, Linux, or Windows.
- Some code you want to put online — a GitHub repo, or a folder on your disk.
- That's it. You do **not** need Docker or your own server for this.
</Callout>

<Steps>

<Step>

### Install the Openship CLI

The CLI is one small command-line tool. Copy the line for your system and paste it into a terminal:

<InstallTabs />

Already have a package manager? `npm i -g openship` works too (or `pnpm`, `yarn`, `bun`).
Full options — desktop app, cloud, Docker Compose — are on the [Installation](/docs/getting-started/installation) page.

</Step>

<Step>

### Start Openship

```bash
openship up
```

This starts Openship on your machine and keeps it running in the background — it comes back on reboot and
restarts itself if it ever crashes. The **API** listens on `:4000` and the **dashboard** on `:3001` (the
dashboard downloads itself the first time). Everything is backed by a small built-in database, so there's
nothing else to set up.

<Callout title="Just want to try it once?" type="info">
Run `openship up --foreground` to run it attached to your terminal instead — stop it any time with
`Ctrl-C`. Stop the background service with `openship stop`.
</Callout>

</Step>

<Step>

### Open the dashboard

```bash
openship open
```

This opens the dashboard in your browser at `http://localhost:3001`. Because it's running on your own
computer, you're let straight in — **no login needed**.

</Step>

<Step>

### Deploy one thing

In the dashboard, start a new project and point it at your code — a GitHub repository or a folder on your
disk. Openship looks at your code, figures out what kind of app it is, and shows you a summary. For most
apps you don't change anything: just press **Deploy**.

You land on the build screen, which streams the logs live — like watching the oven through the glass door.
When it finishes, you get a link. Click it, and your app is online. 🎉

<Callout title="Screenshot">The dashboard's new-project screen with a repo/folder selected and a **Deploy** button, then the live build screen ending in a URL. *(screenshot pending)*</Callout>

</Step>

</Steps>

## Prefer the terminal?

You can deploy without leaving the shell. First create a project in the dashboard, then from your code
folder:

```bash
cd your-project
openship init         # pick which project this folder belongs to
openship deploy       # build it and put it online
```

`openship init` writes a small `.openship/project.json` file so later commands know which project to act
on. Add `--watch` to `openship deploy` to follow the build logs until it's done.

## If something goes wrong

<Callout title="`openship open` says the API isn't responding" type="warn">
The platform isn't up yet. Run `openship up` first (give it a few seconds to become healthy), then try
`openship open` again. Check its state any time with `openship status`.
</Callout>

<Callout title="The build failed" type="error">
Open the build screen and read the last few red lines — that's the real reason. First-time failures are
usually a missing build command, a missing environment variable, or the app listening on the wrong port.
</Callout>

## What next?

<Cards>
  <Card title="Installation" href="/docs/getting-started/installation" description="Desktop app, Docker Compose, cloud, and system requirements — the full set of ways to install." />
  <Card title="First deployment" href="/docs/getting-started/first-deployment" description="A deeper walkthrough: deploy from Git, custom domains, env vars, previews, and rollbacks." />
  <Card title="Deploy from GitHub" href="/docs/guides/deploy-from-github" description="Connect a repo and turn on auto-deploy so every push ships automatically." />
</Cards>
