Hoppscotch Community Edition
★ 80.7kA self-hosted alternative to Postman
MIT LicenseOpen Source — No Paywall10 Containers — 10 containers — heavy hosting footprintDocker · Compose · K8s +2Needs Postgres5 documented maintainers
About
Hoppscotch is an open source API development tool aimed at developers who need a lightweight way to test and work with APIs. It provides a web app and desktop apps for sending requests, viewing...
Community Ratings
No ratings yetNew this week
Read recap →Weekly Recap — Oct 9, 2026 – Oct 16, 2026Oct 16, 2026
Features
- HTTP requests
- WebSocket support
- Server-Sent Events
- Socket.IO
- MQTT
- GraphQL client
- request history
- collections and folders
- pre-request scripts
- post-request tests
Details
- Last Updated
- Oct 22, 2026
- Created
- Aug 21, 2019
- Install Methods
- dockerdocker-composekuberneteshelmsource
- Requirements
- GitHub Actions for CI is mentioned, but no runtime dependencies are explicitly listed in this README
- Authentication
- oidc-ssooauthlocal
- API
- RESTGRAPHQLWEBSOCKET
- Backup & Export
- native-exportapi-exportfile-backup
- Runtime / Stack
- NodejsDocker
- Privacy & Independence
- Cloud: OptionalOffline Capable
- User Model
- Multi-User
- Deployment
Deployment: Docker Compose ✓10 Containers — heavy hosting footprintRuns as 10 containers
Run Hoppscotch Community Edition with Docker Compose
Compose file from the Hoppscotch Community Edition project repository.
10 services · database: postgres · infra: postgres
no resource limits declared
needs persistent storage (2 volumes)
docker-compose.yml · @ e067ee0 · scanned Jun 4, 2026
# To make it easier to self-host, we have a preset docker compose config that also
# has a container with a Postgres instance running.
# You can tweak around this file to match your instances
# PROFILES EXPLANATION:
#
# We use Docker Compose profiles to manage different deployment scenarios and avoid port conflicts.
#
# These are all the available profiles:
# - default: All-in-one service + database + auto-migration (recommended for most users)
# - default-no-db: All-in-one service without database (for users with external DB)
# - backend: The backend service only
# - app: The main Hoppscotch application and the webapp server
# - admin: The self-host admin dashboard only
# - database: Just the PostgreSQL database
# - just-backend: All services except webapp for local development
# - deprecated: All deprecated services (not recommended)
# USAGE:
#
# To run the default setup: docker compose --profile default up
# To run without database: docker compose --profile default-no-db up
# To run specific components: docker compose --profile backend up
# To run all except webapp: docker compose --profile just-backend up
# To run deprecated services: docker compose --profile deprecated up
# NOTE: The default and default-no-db profiles should not be mixed with individual service
# profiles as they would conflict on ports.
services:
# This service runs the backend app in the port 3170
hoppscotch-backend:
profiles: ["backend", "just-backend", "app", "admin"]
container_name: hoppscotch-backend
build:
dockerfile: prod.Dockerfile
context: .
target: backend
env_file:
- ./.env
restart: always
environment:
# Edit the below line to match your PostgresDB URL if you have an outside DB (make sure to update the .env file as well)
- DATABASE_URL=postgresql://postgres:testpass@hoppscotch-db:5432/hoppscotch?connect_timeout=300
- PORT=8080
volumes:
# Uncomment the line below when modifying code. Only applicable when using the "dev" target.
# - ./packages/hoppscotch-backend/:/usr/src/app
- /usr/src/app/node_modules/
depends_on:
hoppscotch-db:
condition: service_healthy
ports:
- "3180:80"
- "3170:3170"
# The main hoppscotch app with integrated webapp server. This will be hosted at port 3000
# The webapp server will be accessible at port 3200
# NOTE: To do TLS or play around with how the app is hosted, you can look into the Caddyfile for
# the SH admin dashboard server at packages/hoppscotch-selfhost-web/Caddyfile
hoppscotch-app:
profiles: ["app"]
container_name: hoppscotch-app
build:
dockerfile: prod.Dockerfile
context: .
target: app
env_file:
- ./.env
depends_on:
- hoppscotch-backend
ports:
- "3080:80"
- "3000:3000"
- "3200:3200"
# The Self Host dashboard for managing the app. This will be hosted at port 3100
# NOTE: To do TLS or play around with how the app is hosted, you can look into the Caddyfile for
# the SH admin dashboard server at packages/hoppscotch-sh-admin/Caddyfile
hoppscotch-sh-admin:
profiles: ["admin"]
container_name: hoppscotch-sh-admin
build:
dockerfile: prod.Dockerfile
context: .
target: sh_admin
env_file:
- ./.env
depends_on:
- hoppscotch-backend
ports:
- "3280:80"
- "3100:3100"
# The service that spins up all services at once in one container
hoppscotch-aio:
profiles: ["default"]
container_name: hoppscotch-aio
restart: unless-stopped
build:
dockerfile: prod.Dockerfile
context: .
target: aio
env_file:
- ./.env
depends_on:
hoppscotch-db:
condition: service_healthy
ports:
- "3000:3000"
- "3100:3100"
- "3170:3170"
- "3200:3200"
- "3080:80"
# Profile with no database dependency (purely developmental)
hoppscotch-aio-no-db:
profiles: ["default-no-db"]
container_name: hoppscotch-aio
restart: unless-stopped
build:
dockerfile: prod.Dockerfile
context: .
target: aio
env_file:
- ./.env
ports:
- "3000:3000"
- "3100:3100"
- "3170:3170"
- "3200:3200"
- "3080:80"
# The preset DB service, you can delete/comment the below lines if
# you are using an external postgres instance
# This will be exposed at port 5432
hoppscotch-db:
profiles:
[
"default",
"database",
"just-backend",
"backend",
"app",
"admin",
"deprecated",
]
image: postgres:15
ports:
- "5432:5432"
user: postgres
environment:
# The default user defined by the docker image
POSTGRES_USER: postgres
# NOTE: Please UPDATE THIS PASSWORD!
POSTGRES_PASSWORD: testpass
POSTGRES_DB: hoppscotch
healthcheck:
test:
[
"CMD-SHELL",
"sh -c 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'",
]
interval: 5s
timeout: 5s
retries: 10
# Auto-migration service - handles database migrations automatically
hoppscotch-migrate:
profiles: ["default", "just-backend", "backend", "app", "admin"]
build:
dockerfile: prod.Dockerfile
context: .
target: backend
env_file:
- ./.env
depends_on:
hoppscotch-db:
condition: service_healthy
command: sh -c "pnpm exec prisma migrate deploy"
# All the services listed below are deprecated
# These services are kept for backward compatibility but should not be used for new deployments
hoppscotch-old-backend:
profiles: ["deprecated"]
container_name: hoppscotch-old-backend
build:
dockerfile: packages/hoppscotch-backend/Dockerfile
context: .
target: prod
env_file:
- ./.env
restart: always
environment:
# Edit the below line to match your PostgresDB URL if you have an outside DB (make sure to update the .env file as well)
- DATABASE_URL=postgresql://postgres:testpass@hoppscotch-db:5432/hoppscotch?connect_timeout=300
- PORT=3000
volumes:
# Uncomment the line below when modifying code. Only applicable when using the "dev" target.
# - ./packages/hoppscotch-backend/:/usr/src/app
- /usr/src/app/node_modules/
depends_on:
hoppscotch-db:
condition: service_healthy
ports:
- "3170:3000"
hoppscotch-old-app:
profiles: ["deprecated"]
container_name: hoppscotch-old-app
build:
dockerfile: packages/hoppscotch-selfhost-web/Dockerfile
context: .
env_file:
- ./.env
depends_on:
- hoppscotch-old-backend
ports:
- "3000:8080"
hoppscotch-old-sh-admin:
profiles: ["deprecated"]
container_name: hoppscotch-old-sh-admin
build:
dockerfile: packages/hoppscotch-sh-admin/Dockerfile
context: .
env_file:
- ./.env
depends_on:
- hoppscotch-old-backend
ports:
- "3100:8080"
# DEPLOYMENT SCENARIOS:
# 1. Default deployment (recommended):
# docker compose --profile default up
# This will start: AIO + database + auto-migration
#
# 2. Default deployment without database:
# docker compose --profile default-no-db up
# This will start: AIO only (use when you have an external database)
#
# 3. Individual service deployment:
# docker compose --profile backend up # Just the backend
# docker compose --profile app up # Just the app and webapp server
# docker compose --profile admin up # Just the admin dashboard
# docker compose --profile database up # Just the database
#
# 4. Development deployment:
# docker compose --profile just-backend up # All services except webapp
#
# 5. Deprecated services:
# docker compose --profile deprecated up
# This will start all deprecated services (not recommended for new deployments)
#
# Remember: The default and default-no-db profiles should not be mixed with individual service
# profiles as they would conflict on ports.
This file may be out of date. Check the Hoppscotch Community Edition documentation for current setup steps.
Tags
Track your self-hosted stack
Bookmark software to try, rate tools you've used, and keep your collection in one place.
Metadata extracted from README on Mar 25, 2026
Related Software
WebHook Tester
547
A self-hosted webhook and HTTP request tester that generates unique URLs and lets users customize responses for debugging.
Testing ToolsAPI ManagementNetwork Utilities+2
6 Containers
Firecamp
2.6k
Firecamp is an open-source API development platform for designing, testing, documenting, and collaborating on APIs.
API ManagementCopyleft LicenseTesting Tools+2
Yaak
19.3k
Yaak is a desktop API client for testing and working with REST, GraphQL, SSE, WebSocket, and gRPC APIs.
API ManagementTesting ToolsNetwork Utilities+2
Open Core
Opik
22.8k
Opik is an open-source platform for observability, evaluation, monitoring, and optimization of LLM applications and agentic systems.
API ManagementArtificial IntelligenceAI Tooling+6
Request Inbox
6
A web application for collecting, inspecting, and replaying HTTP requests for testing and debugging.
Testing ToolsAPI ManagementSelf Hosting Solutions
Single ContainerTelemetry: Opt-Out
Yaade
2.0k
Yaade is an open-source, self-hosted, collaborative API development environment.
API ManagementTesting ToolsSelf Hosting Solutions+1
Bruno
47.8k
Bruno is an open-source API client and IDE for exploring and testing APIs.
API ManagementPermissive LicenseTesting Tools+2
Single ContainerOpen Core
NGINX
31.9k
NGINX is a high-performance web server, reverse proxy, load balancer, API gateway, and content cache.
Web ServersPermissive LicenseProxy Servers+2
Posting
12.5k
Posting is a terminal-based HTTP client for creating, organizing, and sending requests with a keyboard-centric TUI.
API ManagementPermissive LicenseNetwork Utilities+1
Lura
6.8k
An open framework for building ultra-performance API gateways and proxy generators with middlewares.
API ManagementProxy ServersNetwork Utilities+1
OpenReplay
13.0k
OpenReplay is a self-hosted experience platform for session replay, cobrowsing, product analytics, and debugging.
FOSS with IssuesAnalytics ToolsTesting Tools+2
2 ContainersFOSS with Issues
ZenTao
1.7k
ZenTao is an open source project management platform covering product, project, QA, documentation, organization, and office management.
Dev Project ManagementSelf Hosting SolutionsTask Management+4
Open Core