[{"data":1,"prerenderedAt":222},["ShallowReactive",2],{"seo-verification":3,"blog-postman-alternatives-bruno-hoppscotch-on-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-postman-alternatives-bruno-hoppscotch-on-vps-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":153,"ctaBody":154,"ctaButton":155,"ctaUrl":156,"relatedPosts":157},487,"postman-alternatives-bruno-hoppscotch-on-vps",{"fr":12,"en":10,"ar":13,"es":14},"postman-alternatives-self-hosted-api-testing","بدائل-postman-bruno-hoppscotch-على-vps","alternativas-a-postman-bruno-y-hoppscotch-en-vps","Postman Alternatives: Bruno and Hoppscotch on VPS","Postman removed free team workspaces in March 2026. Migrate to Bruno or self-hosted Hoppscotch in under an hour without losing your collections.",8,0,false,"2026-10-21T00:00:00+00:00","2026-10-21T15:21:33+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},4,"Development","developpement","bg-warning\u002F10 text-warning","dev",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fpostman-alternatives-self-hosted-api-testing-poster.svg","In March 2026, Postman removed collaborative workspaces from its free plan, requiring a minimum of $19\u002Fuser\u002Fmonth for small teams. Bruno and Hoppscotch offer a complete alternative: locally stored collections, no subscription, and a migration from Postman that preserves environment variables, OAuth2 authentication, and automated tests. This guide explains how to choose, migrate, and deploy either tool in under an hour.",[35,39,49,52,74,95,98,146,150],{"type":36,"title":37,"body":38},"h2","Why migrate from Postman now","Until February 2026, Postman allowed sharing collections as a team on its free plan. Since the March 2026 update, collaborative workspaces are reserved for paying subscribers, with a minimum price of $19\u002Fuser\u002Fmonth (Basic plan). For a team of five developers, that is $95\u002Fmonth, or $1,140\u002Fyear, for a tool whose main value is collection sharing. For a team of ten, the bill exceeds $2,000 per year.\n\nTwo open source alternatives cover this need without a subscription. **Bruno** stores collections directly in your Git repository — each request is a versionable text file readable by any code review tool. **Hoppscotch** provides a collaborative web interface deployable on your own VPS with Docker Compose in under twenty minutes. Both projects natively import Postman collections and preserve environment variables, pre-request scripts, and automated tests.\n\nThe choice between the two depends on your workflow: Bruno suits teams already working in Git who do not need real-time synchronization — each push makes changes available to everyone. Hoppscotch suits teams that share active test environments, prefer a web interface accessible from any workstation, and want immediate visibility into requests modified by a colleague.",{"type":40,"title":41,"items":42},"ul","What you gain by migrating",[43,44,45,46,47,48],"**Zero subscription** — Bruno is an open source desktop client (MIT), Hoppscotch deploys on any VPS with Docker","**Versioned collections** — Bruno stores each request in a `.bru` file: `git diff`, `git blame`, and code reviews apply naturally","**Direct import from Postman** — both tools read Postman v2.1 JSON exports and preserve variables, OAuth2 authentication, and automated tests","**No data sent to third parties** — self-hosted Hoppscotch contacts no external servers; Bruno never syncs your requests to the cloud","**Lightweight resources** — Bruno has no backend; Hoppscotch runs on 1 vCPU \u002F 1 GB RAM for typical team usage","**No per-seat billing** — a single Hoppscotch deployment serves the entire team, regardless of size",{"type":36,"title":50,"body":51},"Prerequisites before you start","For Bruno, only each developer's workstation is involved: the desktop client installs on macOS, Linux, and Windows, with no server. Collections live in a folder in your existing Git repository. No account is required, and no external service is contacted at startup.\n\nFor self-hosted Hoppscotch, you need a VPS with at least 1 vCPU and 1 GB RAM (2 GB recommended for the instance with database and cache), Docker and Docker Compose installed, a domain name pointing to the server, and a TLS certificate (Let's Encrypt via Certbot or Traefik). SSH access to the server is also needed for initial configuration and updates.\n\nIn both cases, an export of your Postman collections in JSON v2.1 format is required. In Postman, go to `File → Export → Collection v2.1` for each collection. Environments are downloaded separately from the `Environments` tab. Keep these files: they serve both for the initial migration and as a backup.",{"type":53,"title":54,"steps":55},"steps","Migrate to Bruno in six steps",[56,59,62,65,68,71],{"title":57,"body":58},"Export your collections from Postman","In Postman, click the `…` next to each collection, then `Export`. Choose `Collection v2.1 (recommended)` and save the JSON file. For environment variables, go to `Environments`, click `…` then `Export` for each environment.",{"title":60,"body":61},"Install Bruno","Download the package from `usebruno.com\u002Fdownloads` for your OS. On Debian\u002FUbuntu: `sudo dpkg -i bruno_\u003Cversion>_amd64_linux.deb`. On macOS via Homebrew: `brew install --cask bruno`. Bruno is signed and requires no account.",{"title":63,"body":64},"Create a Bruno collection in your repository","Open Bruno, click `Create Collection`, choose a folder in your Git repository (for example `api-tests\u002F`). Bruno creates a `bruno.json` file there and stores each request as a `.bru` file — a readable, diffable text format.",{"title":66,"body":67},"Import the Postman collection","In Bruno, click `Import Collection` → `Postman Collection v2 \u002F v2.1`, then select your exported JSON file. Requests, folders, pre-request scripts, and `pm.test()` tests are converted. The `{{variable}}` variables are preserved under Bruno's `{{variable}}` syntax.",{"title":69,"body":70},"Import environment variables","Click the environment selector in the top right → `Configure` → `Import`. Select the environment JSON file exported from Postman. Verify that secrets are marked `Secret` in Bruno so they are not committed in plain text to Git.",{"title":72,"body":73},"Version and share the collection","Commit the `api-tests\u002F` folder to your repository: `git add api-tests\u002F && git commit -m 'feat: migrate Postman collections to Bruno'`. Each developer clones the repository and opens the folder in Bruno — no account configuration, no cloud workspace.",{"type":53,"title":75,"steps":76},"Deploy self-hosted Hoppscotch with Docker Compose",[77,80,83,86,89,92],{"title":78,"body":79},"Retrieve the official Docker Compose file","Clone the repository: `git clone https:\u002F\u002Fgithub.com\u002Fhoppscotch\u002Fhoppscotch.git && cd hoppscotch`. The `compose.yml` file contains three services: `hoppscotch` (frontend + API), `db` (PostgreSQL 15), and `hoppscotch-migrate` (migrations at startup).",{"title":81,"body":82},"Configure environment variables","Copy the example file: `cp .env.example .env`. Fill in at minimum: `DATABASE_URL=postgresql:\u002F\u002Fpostgres:yourpassword@db:5432\u002Fhoppscotch`, `JWT_SECRET` (a random string of at least 32 characters), `VITE_BASE_URL=https:\u002F\u002Fapi.your-domain.com`, `VITE_SHORTCODE_BASE_URL=https:\u002F\u002Fyour-domain.com`. For OAuth2 (login via GitHub, Google, or GitLab), fill in the corresponding keys in the `Auth` block.",{"title":84,"body":85},"Start the services","Run `docker compose up -d`. On first startup, the `hoppscotch-migrate` service applies PostgreSQL migrations, then stops — this is normal. Check with `docker compose ps` that `hoppscotch` and `db` are in `running` state.",{"title":87,"body":88},"Configure the reverse proxy and TLS","Add an nginx virtual host that proxies port 3000 to `localhost:3000` and port 8080 (backend API) to `localhost:8080`. Obtain a Let's Encrypt certificate: `certbot --nginx -d your-domain.com -d api.your-domain.com`. Reload nginx: `systemctl reload nginx`.",{"title":90,"body":91},"Create the first admin account","Open `https:\u002F\u002Fyour-domain.com` in your browser. The first account created automatically receives admin rights. Go to `https:\u002F\u002Fyour-domain.com\u002Fadmin` to manage users, enable or disable authentication methods, and define team policies.",{"title":93,"body":94},"Import Postman collections into Hoppscotch","In Hoppscotch, go to `Collections` → `Import \u002F Export` → `Import from Postman`. Select your v2.1 JSON file. Collections, folders, requests, variables, and test scripts are imported. Share the collection with your team via the `Share Collection` menu — each connected member has access in real time.",{"type":96,"body":97},"p","Insomnia, a third commonly cited API client, went through a turbulent period in 2023: the Kong team removed local synchronization in favor of a mandatory cloud account, before reversing course under community pressure. The project is now split into two branches — `insomnium` (community fork, offline-first) and official Insomnia (open-core with optional cloud). The comparison below covers Insomnia in its current state (open-core, Apache 2.0 license), which remains a valid alternative for solo developers but loses its advantage when team collaboration is central.",{"type":99,"title":100,"headers":101,"rows":106},"comparison","Bruno vs Hoppscotch vs Insomnia — which to choose",[102,103,104,105],"Criterion","Bruno","Hoppscotch self-hosted","Insomnia open-core",[107,112,117,122,127,130,134,137,142],[108,109,110,111],"Model","Desktop client (MIT)","Self-hosted web app (MIT)","Desktop client (open-core, Apache 2.0)",[113,114,115,116],"Collection storage","`.bru` files in Git","PostgreSQL database on your VPS","Local files or paid cloud",[118,119,120,121],"Real-time collaboration","Via Git (pull\u002Fpush)","Yes, native in web UI","No on free plan (cloud required)",[123,124,125,126],"RAM required","\u003C 200 MB (client only)","1 GB minimum (server)","\u003C 300 MB (client only)",[128,129,129,129],"Postman v2.1 import","Yes, native",[131,132,133,132],"OAuth2 \u002F advanced auth","Yes","Yes, with configurable providers",[135,136,136,136],"Automated tests (scripts)","Yes (JS)",[138,139,140,141],"Team deployment","No server — share via Git","Docker Compose, 1 VPS","Cloud subscription or Enterprise self-hosting",[143,144,145,144],"Offline access","Full","Partial (offline interface, sync impossible)",{"type":147,"title":148,"body":149},"tip","Migrating Postman automated tests","Postman `pm.test()` scripts use the global `pm` library. Bruno and Hoppscotch both expose a compatible API: `test('test name', () => { ... })` with `expect()` for assertions. Conversion is straightforward for status code assertions (`pm.response.to.have.status(200)` → `expect(response.status).toBe(200)`) and JSON body assertions (`pm.response.json()` remains identical). Pre-request scripts that modify environment variables (`pm.environment.set(...)`) are natively supported by both tools.",{"type":36,"title":151,"body":152},"Host Hoppscotch on a ServOrbit VPS","A VPS with pre-configured Docker is perfectly suited to hosting Hoppscotch: the `hoppscotch` + `db` (PostgreSQL 15) + `nginx` stack fits in 1 GB RAM for typical team usage, and scales to 2 GB if you enable mock generation or CI integration. A dedicated IPv4 simplifies DNS configuration and ensures your test instance traffic is never shared.\n\nA VPS dedicated to your developer tools also centralizes other stack tools: Gitea for source code, Woodpecker CI for continuous integration, and Hoppscotch for API testing form a coherent set on the same server. ServOrbit offers developer-oriented VPS with pre-configured Docker to host Hoppscotch or any API from 99 DH\u002Fmonth.","Host your API testing tool on a developer VPS","ServOrbit offers VPS with root access, dedicated IPv4, and pre-configured Docker. Deploy self-hosted Hoppscotch in under an hour, with no additional network configuration.","See developer VPS plans","\u002Fsolutions\u002Fdeveloppeurs",[158,178,201],{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":167,"views":168,"isPinned":19,"publishedAt":169,"updatedAt":170,"category":171,"categories":172,"featuredImage":30,"bgImage":31,"posterImage":174,"relatedSolution":175},45,"deploy-a-fastapi-application-on-a-vps",{"fr":162,"en":160,"ar":163,"es":164},"deployer-fastapi-vps","نشر-تطبيق-fastapi-على-vps","desplegar-una-aplicacion-fastapi-en-un-vps","Deploy FastAPI on a VPS: the complete production guide","Deploy FastAPI on a VPS with multi-stage Docker, Gunicorn, PostgreSQL, GitHub Actions CI\u002FCD and monitoring. Complete Python production guide 2025.",10,3,"2026-05-06T00:00:00+00:00","2026-10-07T23:07:24+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[173],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeployer-fastapi-vps-poster.svg",{"categorySlug":176,"appSlug":177},"development","fastapi",{"id":179,"slug":180,"slugs":181,"title":185,"excerpt":186,"readTime":187,"views":18,"isPinned":19,"publishedAt":188,"updatedAt":189,"category":190,"categories":196,"featuredImage":30,"bgImage":31,"posterImage":198,"relatedSolution":199},74,"host-gitea-on-your-own-vps",{"fr":182,"en":180,"ar":183,"es":184},"heberger-gitea","استضافة-gitea-على-خادم-vps-الخاص-بك","alojar-gitea-en-un-vps","Host Gitea on your own VPS in 2026","Deploy Gitea 1.25 on a VPS with Docker and SSL. Full guide: Gitea Actions CI\u002FCD, Gitea vs Forgejo v16 comparison, daily administration, SSH and HTTPS troubleshooting.",13,"2026-04-07T00:00:00+00:00","2026-10-21T15:21:37+00:00",{"id":191,"name":192,"slug":193,"color":194,"icon":195},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[197],{"id":191,"name":192,"slug":193,"color":194,"icon":195},"\u002Fblog\u002Fcovers\u002Fheberger-gitea-poster.svg",{"categorySlug":176,"appSlug":200},"gitea",{"id":202,"slug":203,"slugs":204,"title":208,"excerpt":209,"readTime":210,"views":211,"isPinned":19,"publishedAt":212,"updatedAt":213,"category":214,"categories":219,"featuredImage":30,"bgImage":31,"posterImage":221,"relatedSolution":30},212,"woodpecker-ci-and-forgejo-cicd-pipeline-on-a-vps",{"fr":205,"en":203,"ar":206,"es":207},"woodpecker-ci-pipeline-vps-forgejo","woodpecker-ci-وforgejo-خط-أنابيب-cicd-على-خادم-vps","woodpecker-ci-forgejo-pipeline-cicd-vps","Woodpecker CI and Forgejo: CI\u002FCD pipeline on a VPS","Deploy Woodpecker CI v3 with Forgejo on your VPS: Docker Compose setup, YAML pipelines, secrets, multi-arch runners and OAuth troubleshooting.",11,1,"2026-08-02T00:00:00+00:00","2026-10-20T23:18:05+00:00",{"id":215,"name":216,"slug":217,"color":218,"icon":217},2,"Automation","automatisation","bg-brand-action\u002F10 text-brand-action",[220],{"id":215,"name":216,"slug":217,"color":218,"icon":217},"\u002Fblog\u002Fcovers\u002Fwoodpecker-ci-pipeline-vps-forgejo-poster.svg",1792596558468]