---
title: "Deploy Hoppscotch Desktop"
description: "Connect the Hoppscotch desktop app to your instance"
category: "Other"
url: https://railway.com/deploy/deploy-hoppscotch-for-the-desktop-app
---

# Deploy Hoppscotch Desktop

Connect the Hoppscotch desktop app to your instance

**[Deploy Hoppscotch Desktop on Railway](https://railway.com/template/deploy-hoppscotch-for-the-desktop-app)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/deploy-hoppscotch-for-the-desktop-app/manifest.json

- **Creator:** onepush
- **Category:** Other

## Template content

### Hoppscotch

- **Image:** hoppscotch/hoppscotch:2026.9.0@sha256:3160f5b3acf49478552a66a0785ee6c75f64311066f149f7d946fbd540f8388d
- **Start command:** `/bin/sh -c "cd /dist/backend && pnpm exec prisma migrate deploy && exec tini -s -- node /usr/src/app/aio_run.mjs"`
- **Health check:** /ping
- **Public domain:** Yes

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18.6@sha256:fcc6686a3f4f1962fe4ed77a15884553b7bd611ae1cea3204687968c5c09d517

## Documentation

# Deploy and Host self hosted Hoppscotch Desktop (Open-Source API Client) on Railway

This template runs a self-hosted Hoppscotch instance on Railway with Postgres, built to pair with the native Hoppscotch Desktop app.

## About Hosting Hoppscotch Desktop open-source software on Railway (self hosted Hoppscotch desktop template)

Your collections, environments and team workspaces live in your own Postgres database, not on a vendor cloud.

## Why Deploy Hoppscotch Desktop, the Postman alternative on Railway (Railway Free Trial)

Postman is closed SaaS: you rent seats so collections can live in someone else's cloud. Railway's $5 trial covers the first deploy.

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Hoppscotch Desktop on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

### Railway vs Other Hosting Providers and VPS for Hoppscotch Desktop self hosting

The gap is how much setup you still own after the domain resolves.

| Provider | What You Get with Railway | What You Get with the Other Provider |
| --- | --- | --- |
| DigitalOcean | Template deploy, Hoppscotch and Postgres ready, one redeploy after editing WHITELISTED_ORIGINS | A Droplet plus managed Postgres, then Docker, Caddy and TLS by hand |
| AWS | Same two services, private Postgres, HTTPS domain so origins are predictable | ECS or EC2 with RDS, load balancer rules and certificates to design |
| Hetzner | App and database in one project, restart policy ALWAYS already set | Cheap compute, but you install Docker, Postgres, backups and a proxy |

Same MIT image either way, so your desktop origins don't change.

## Common Use Cases for hosted Hoppscotch Desktop

- **Testing localhost APIs against shared team collections:** run requests against a dev server on your own machine while pulling the collection from your Railway instance, something the browser app needs the extension for.
- **Windows and Mac teammates on one workspace:** everyone connects to the same self-hosted URL and sees the same environments, shared requests and roles, no matter which installer they used.
- **Calling private APIs without extensions:** the native client talks to internal hosts, VPN addresses and staging endpoints directly, so nobody installs a browser extension or routes traffic through a public proxy.
- **A native client instead of a browser tab:** keep long-running WebSocket, SSE and MQTT sessions open in their own window without losing them to a closed tab or a page reload.
- **Keeping collections off a vendor cloud:** requests, tokens and environment secrets stay in your Postgres database rather than syncing to someone else's service.

## Dependencies for Hoppscotch Desktop Docker hosted on Railway

This template ships two services. Postgres 18.6 keeps a volume at /var/lib/postgresql/data and stays private. The Hoppscotch container is stateless.

### Deployment Dependencies for Managed Hoppscotch Desktop Service (API Development)

- DATABASE_URL comes from Postgres. DATA_ENCRYPTION_KEY is 32 characters and encrypts secrets, so never change it after first boot.
- WEBAPP_SERVER_SIGNING_SECRET is 48 characters and signs the desktop bundle.
- WHITELISTED_ORIGINS already holds the https Railway domain plus app://localhost_3200 and app://hoppscotch. Append your per-domain desktop origins.
- VITE URLs are injected at container start, so changing one needs a redeploy, not a rebuild.

### Implementation Details for Hoppscotch Desktop (Using Hoppscotch official docker image)

The start command runs prisma migrate deploy, so first deploy and upgrades migrate for you. The public domain targets port 80.

## How does Hoppscotch Desktop compare against other desktop API clients

All four below send requests natively, so localhost and private APIs work without a browser extension. The real split is where your collections live.

### Hoppscotch vs Postman (Postman Alternative)

- **Where collections live:** in the Postgres behind your Railway domain, not in Postman's cloud workspace.
- **Two clients, one account:** the same login works in the browser app and in Hoppscotch Desktop, so nobody has to export between them.
- **Licensing:** Community Edition is MIT and self hosted, while Postman is closed source with commercial tiers.
- **Where Postman wins:** deeper test automation, generated API docs and a much larger integration catalog.

### Hoppscotch vs Insomnia (Insomnia Alternative)

- **Sync target:** Insomnia syncs to Kong's cloud; here the desktop app syncs to your own instance.
- **Origin control:** you own WHITELISTED_ORIGINS, so adding a Mac or Windows machine is a variable edit plus a redeploy.
- **Where Insomnia wins:** a longer track record in enterprise setups and a plugin ecosystem Hoppscotch does not match.

### Hoppscotch vs Bruno (Bruno Alternative)

- **Storage model:** Bruno keeps collections as plain files in your repo and needs no server; Hoppscotch keeps them in Postgres behind a login.
- **Team access:** roles and shared workspaces ship with the server, while Bruno leans on git discipline.
- **Where Bruno wins:** offline-only work, diffable collections in code review and zero infrastructure to run.

### Hoppscotch vs Yaak (Yaak Alternative)

- **Scope:** Yaak is a focused desktop client; Hoppscotch Desktop is a client for an instance that also serves the web app, /admin and the CLI.
- **Migration:** Hoppscotch imports Postman, Insomnia and OpenAPI collections, so switching is a file import plus a sign-in.
- **Where Yaak wins:** a lighter footprint with no Postgres, container or domain to maintain.

## How to use Hoppscotch Desktop (the OSS open-source API client)?

1. Open https://your-domain/admin, pick a login method (OAuth or SMTP magic link, no passwords), save and sign in first to become admin.
2. Compute your desktop origins. For hoppscotch-production-abcd.up.railway.app: app://hoppscotch_production_abcd_up_railway_app and http://app.hoppscotch_production_abcd_up_railway_app.
3. Append both to WHITELISTED_ORIGINS on the Hoppscotch service, then redeploy.

```bash
WHITELISTED_ORIGINS=$WHITELISTED_ORIGINS,app://hoppscotch_production_abcd_up_railway_app,http://app.hoppscotch_production_abcd_up_railway_app
```

4. Install Hoppscotch Desktop for your platform, click the logo, Add an instance, enter https://your-domain, Connect, then sign in.

## How to self host Hoppscotch Desktop on other VPS Services (Hoppscotch self hosting guide)

### Clone the Repository

Clone upstream and enter the directory.

```bash
git clone https://github.com/hoppscotch/hoppscotch
cd hoppscotch
```

### Install Dependencies

Docker plus a reachable Postgres database. Node and pnpm only matter if you build images yourself.

### Configure Environment Variables

Copy the example file and set DATABASE_URL, a 32-character DATA_ENCRYPTION_KEY, WEBAPP_SERVER_SIGNING_SECRET, ENABLE_SUBPATH_BASED_ACCESS=true and the VITE URLs pointed at your https address.

```bash
cp .env.example .env
```

### Start the Hoppscotch Desktop Application

Run the AIO image, then migrate by hand inside the container. Put HTTPS in front, add the desktop origins to WHITELISTED_ORIGINS and restart.

```bash
docker run -d --name hoppscotch --env-file .env -p 80:80 hoppscotch/hoppscotch:2026.9.0
docker exec -it hoppscotch pnpx prisma migrate deploy
```

Railway handles the migration, the TLS domain and the restart-on-exit cycle the backend needs after each settings save.

## Official Pricing of Hoppscotch Desktop (Hoppscotch pricing)

Hoppscotch Community Edition is free under MIT, so self hosting on Railway costs infrastructure only, roughly $5-10/mo at light use.

## Hoppscotch Desktop cloud vs self hosted comparison (Pricing, features, costs, and more)

Cloud gets you someone else's uptime and someone else's data location.

### Monthly cost of self hosting Hoppscotch Desktop on Railway

Expect roughly $5-10 per month at light use, covering both the Hoppscotch container and the Postgres service. Railway's $5 trial covers the first stretch.

### System Requirements for Hosting Hoppscotch Desktop on a VPS

1 vCPU and 1-2 GB RAM handles a small team comfortably. Add a volume for Postgres data, or you'll lose collections on restart.

## Frequently Asked Questions (FAQs)

### Why does the desktop app show an origin error?

The self-hosted server only accepts instance origins listed in WHITELISTED_ORIGINS, and desktop app origins look nothing like a normal https URL, so they are missing by default. Add yours and redeploy.

### Which origin is for Windows?

Windows uses http://app. plus the domain with dots and dashes turned into underscores, so hoppscotch.my-domain.com becomes http://app.hoppscotch_my_domain_com. macOS and Linux use app:// with the same transformed host.

### Do I need the browser extension?

No. The desktop app sends requests natively, so it skips browser CORS rules and reaches localhost and private APIs directly. The extension and the proxy only matter for the web client.

### Which desktop version should I install?

Match the server release (this template runs 2026.9.0); desktop versions drop the leading 20, so 26.6.0 pairs with 2026.6.0. Grab the Apple Silicon or Intel Mac build, the Windows installer, the Debian package or the AppImage from the official downloads page.

### What does the signing secret do?

WEBAPP_SERVER_SIGNING_SECRET signs the desktop bundle the instance serves, which is how the app verifies it is talking to your server. It is generated at 48 characters; leave it alone.

### Can I use a custom domain?

Yes. Add the domain to the Hoppscotch service on port 80, then add its app:// and http://app. origins to WHITELISTED_ORIGINS and update the OAuth callback URLs to match.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/deploy-hoppscotch-for-the-desktop-app
