# Deployment Instructions for rowboatlabs/rowboat: Complete Guide to Web, Desktop, and CLI

> Easily deploy rowboatlabs/rowboat using Vercel for web, Electron Forge for desktop, and Docker Compose for CLI. Get complete deployment instructions now.

- Repository: [RowBoat Labs/rowboat](https://github.com/rowboatlabs/rowboat)
- Tags: how-to-guide
- Published: 2026-02-16

---

**Deploy rowboatlabs/rowboat by using Vercel for the Next.js web apps, Electron Forge for the desktop application, or Docker Compose for the backend CLI services.**

The rowboatlabs/rowboat repository is a **mono-repo** containing multiple runtime targets that require different deployment strategies. This guide provides the exact deployment instructions for each component, referencing specific file paths and commands found in the source code.

## Deploy the Next.js Web Apps to Vercel

The repository contains two Next.js applications that deploy identically to Vercel: `apps/rowboat` (the main dashboard) and `apps/rowboatx` (the front-end UI).

### Vercel Dashboard Deployment

According to [`apps/rowboat/README.md`](https://github.com/rowboatlabs/rowboat/blob/main/apps/rowboat/README.md) and [`apps/rowboatx/README.md`](https://github.com/rowboatlabs/rowboat/blob/main/apps/rowboatx/README.md), the standard Vercel deployment flow applies:

1. Push the repository to GitHub
2. In the Vercel dashboard, click **"New Project"**
3. Select the repository and choose the specific folder (e.g., `apps/rowboatx`)
4. Accept the default build settings (Vercel auto-detects Next.js)
5. Click **"Deploy"**

The Vercel documentation referenced in the README is available at `https://vercel.com/docs/app/building-your-application/deploying`.

### Vercel CLI Deployment

For programmatic deployment, use the Vercel CLI:

```bash

# Install the Vercel CLI globally

npm i -g vercel

# From the repository root

vercel link
vercel --prod --cwd apps/rowboatx

```

## Build and Package the Electron Desktop App

The Electron application resides in `apps/x` and uses **Electron Forge** for packaging.

### Local Development

To run the desktop app in development mode:

```bash
cd apps/x
npm install
npm run deps    # Builds shared → core → preload workspaces

npm run dev     # Starts Electron with auto-reload

```

The `deps` script is defined in [`apps/x/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/package.json) and ensures workspace dependencies are compiled before the main process starts.

### Production Build and Packaging

The repository provides [`build-electron.sh`](https://github.com/rowboatlabs/rowboat/blob/main/build-electron.sh) at the root to streamline production builds:

```bash

# From the repository root

./build-electron.sh    # Builds rowboatx UI and CLI dependencies

```

After running the build script, package the application:

```bash
cd apps/x
npm run package    # Creates unsigned .app/.exe in ./out

npm run make       # Creates distributable DMG (macOS) or installer (Windows)

```

The packaging configuration is defined in `apps/x/apps/main/forge.config.cjs`, which controls code signing, platform targets, and output formats.

## Run the CLI and Backend Services

The CLI and backend services are located in `apps/cli`.

### Node.js Execution

```bash
cd apps/cli
npm install
npm run build    # Compiles TypeScript to JavaScript

npm start        # Launches the server (respects PORT env variable)

```

### Docker Compose Deployment

For containerized deployment, use the root-level [`docker-compose.yml`](https://github.com/rowboatlabs/rowboat/blob/main/docker-compose.yml):

```bash
docker compose up --build

```

This command launches the documentation site and any helper containers defined in the compose configuration. The CLI service becomes available at `http://localhost:3000` (or the port specified by the `PORT` environment variable).

## Deploy Custom LLM Backends (Experimental)

For deploying custom LLM backends using Ollama or OpenAI-compatible servers, refer to `apps/docs/docs/using-rowboat/custom-llms.mdx`. This documentation provides Docker Compose configurations for running local models alongside the Rowboat services.

## Summary

- **Web Deployment**: Deploy `apps/rowboat` and `apps/rowboatx` to Vercel using either the dashboard or CLI (`vercel --prod --cwd apps/rowboatx`)
- **Desktop Deployment**: Build the Electron app in `apps/x` using [`./build-electron.sh`](https://github.com/rowboatlabs/rowboat/blob/main/./build-electron.sh), then run `npm run package` or `npm run make` in the `apps/x` directory
- **Backend Deployment**: Run `apps/cli` directly with `npm start` or containerize with `docker compose up --build` from the repository root
- **Key Files**: [`build-electron.sh`](https://github.com/rowboatlabs/rowboat/blob/main/build-electron.sh), [`apps/x/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/package.json), `apps/x/apps/main/forge.config.cjs`, [`docker-compose.yml`](https://github.com/rowboatlabs/rowboat/blob/main/docker-compose.yml)

## Frequently Asked Questions

### How do I deploy the rowboat web dashboard to Vercel?

Push the repository to GitHub, create a new project in the Vercel dashboard, select the `apps/rowboat` folder, and click Deploy. Vercel automatically detects the Next.js configuration. Alternatively, use the Vercel CLI with `vercel --prod --cwd apps/rowboat`.

### What is the build process for the rowboat Electron desktop app?

First run [`./build-electron.sh`](https://github.com/rowboatlabs/rowboat/blob/main/./build-electron.sh) from the repository root to compile the UI and CLI dependencies. Then navigate to `apps/x` and run `npm run package` to create the application binary or `npm run make` to generate a distributable installer. The build configuration is defined in `apps/x/apps/main/forge.config.cjs`.

### Can I run rowboat backend services in Docker?

Yes. The repository includes a [`docker-compose.yml`](https://github.com/rowboatlabs/rowboat/blob/main/docker-compose.yml) file in the root directory. Run `docker compose up --build` to containerize the CLI service and documentation site. The CLI service listens on the port specified by the `PORT` environment variable, defaulting to `3000`.

### Where are the deployment scripts located in the repository?

Key deployment files include [`build-electron.sh`](https://github.com/rowboatlabs/rowboat/blob/main/build-electron.sh) (Electron build automation), [`docker-compose.yml`](https://github.com/rowboatlabs/rowboat/blob/main/docker-compose.yml) (container orchestration), [`apps/x/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/package.json) (Electron npm scripts), and [`apps/rowboat/README.md`](https://github.com/rowboatlabs/rowboat/blob/main/apps/rowboat/README.md) / [`apps/rowboatx/README.md`](https://github.com/rowboatlabs/rowboat/blob/main/apps/rowboatx/README.md) (Vercel deployment instructions). The Electron Forge configuration resides at `apps/x/apps/main/forge.config.cjs`.