Try describing what you need:

Hoppscotch Community Edition logo

Hoppscotch Community Edition

★ 80.7k

A 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 yet

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.

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 logo

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
Details
Firecamp logo

Firecamp

2.6k
Firecamp is an open-source API development platform for designing, testing, documenting, and collaborating on APIs.
API ManagementCopyleft LicenseTesting Tools+2
Details
Yaak logo

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
Details
Opik logo

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
Details
Request Inbox logo

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
Details
Yaade logo

Yaade

2.0k
Yaade is an open-source, self-hosted, collaborative API development environment.
API ManagementTesting ToolsSelf Hosting Solutions+1
Details
Bruno logo

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
Details
NGINX logo

NGINX

31.9k
NGINX is a high-performance web server, reverse proxy, load balancer, API gateway, and content cache.
Web ServersPermissive LicenseProxy Servers+2
Details
Posting logo

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
Details
Lura logo

Lura

6.8k
An open framework for building ultra-performance API gateways and proxy generators with middlewares.
API ManagementProxy ServersNetwork Utilities+1
Details
OpenReplay logo

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
Details
ZenTao logo

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
Details