实现目标

由于https://hoppscotch.io依赖于互联网
hoppscotch自己的部署教程又更侧重于使用 github / google / microsoft / email等鉴权登录(这种强制靠邮件注册新增用户真的是对内网及其不友好)
于是希望在内网部署一个公共可用的hoppscotch的服务,用于开发人员调试环境用,同时具有管理后台等相关功能

经过一番查找,官方的docker部署坑还是比较多,所以沿用了https://github.com/webysther/hoppscotch-docker.git仓库中的东西自己搭建了一套

简单来说就是通过本地的一个假smtp服务器用于创建用户与登录,同时拥有线上服务的所有功能

之后用户可使用自己的邮箱进行登录(由于是虚假的smtp服务,原则上连邮箱都可以省略,以邮箱的形式创建账户即可)

环境

OS: Debian 12 (其实这个不重要,毕竟都是用docker了,只要能装docker你用Windows也成)
IP: 192.168.0.66
CPU : 4core
内存: 4GB
硬盘: 40GB

搭建步骤

docker服务安装

# 安装docker
curl -fsSL https://get.docker.com -o /tmp/get-docker.sh
## 大陆机器可指定中科大源进行下载
DOWNLOAD_URL=https://mirrors.ustc.edu.cn/docker-ce sh /tmp/get-docker.sh
## 大陆地区外的机器可直接运行部署
sh /tmp/get-docker.sh

请自行解决镜像拉取问题

由于hoppscotch强依赖于邮件服务,所有账号注册都需要用到,若公司有自建服务则可以提供连接信息,若没有现成的邮件服务则可以考虑自己动手撸一个假的服务出来,这里我使用官方推荐的mailcatcher

# 部署smtp服务
docker run -d --name smtp -p 1025:1025 -p 1080:1080 dockage/mailcatcher:latest

部署后可通过访问服务器上的1080端口(http://192.168.0.66:1080)获取hoppscotch发送的邮件

构建镜像

# 部署hoppscotch
## 本地构建hoppscotch镜像
### 基于github仓库 https://github.com/webysther/hoppscotch-docker.git 进行构建
git clone https://github.com/webysther/hoppscotch-docker.git
cd hoppscotch-docker
## 由于仓库最新更新时间为2023年,距离当前的latest(24.09.01)有较大差异,所以要做些修改
## 编辑dockerfile,修改nodejs版本
-ENV NODE_VERSION=18.16.0
+ENV NODE_VERSION=20.9.0
## 保存退出,执行构建
docker build -t local/hoppscotch:24.09.01 .
## 构建完成后,检查本地镜像
docker image ls

准备配置文件

创建文件docker-compose.yml(touch /root/docker-compose.yml),编写以下内容

---
version: "2.1"
services:
  hoppscotch:
    image: local/hoppscotch:24.09.01
    container_name: hoppscotch
    networks:
      hoppscotch:
      hoppscotch-db:
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - ENABLE_ADMIN=true  # 启用dashboard控制面板
      - SMTP_PROTOCOL=smtp  # 使用smtp协议发送邮件
      - SMTP_DOMAIN=192.168.0.66  # smtp服务地址
      - SMTP_PORT=1025  # smtp服务端口
      - DOMAIN=192.168.0.66  # 内网访问域名,可填写ip地址
      - POSTGRES_PASSWORD=password  # 连接postgres数据库,需与下方postgres的密码保持一致
      - REFRESH_TOKEN_VALIDITY=2592000000  # toke有效期,单位为ms
      - ACCESS_TOKEN_VALIDITY=2592000000  # toke有效期,单位为ms
      - VITE_BACKEND_WS_URL=ws://192.168.0.66/api/graphql  # 默认使用wss,这里改写为ws,否则在http访问下会有问题
      - VITE_ALLOWED_AUTH_PROVIDERS=EMAIL # 验证方式仅启用email,如果你有考虑接入其他的登录服务可参考官方配置
      - DATA_ENCRYPTION_KEY=******************************** # 加密密钥,可输入随机字符串替换,如不替换这么写也可以

    volumes:
      - /home/hoppscotch-aio/hoppscotch/config:/config # 从本地创建一个目录挂载到容器中以保留原有配置
    ports:
      - 80:80
    depends_on:
      hoppscotch-db:
        condition: service_healthy
    restart: unless-stopped

  hoppscotch-db:
    image: postgres:alpine
    container_name: hoppscotch-db
    networks:
      hoppscotch-db:
    environment:
      - POSTGRES_DB=hoppscotch
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password  # 需与上方的连接密码保持一致
    volumes:
      - /home/hoppscotch-aio/postgres/data:/var/lib/postgresql/data # 从本地创建一个目录挂载到容器中用于持久化postgres数据
    expose:
      - 5432
    healthcheck:
      test: [
        "CMD-SHELL", 
        "sh -c 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'"
      ]
      interval: 10s
      timeout: 5s
      retries: 5
    restart: unless-stopped

networks:
  hoppscotch:
    name: hoppscotch
  hoppscotch-db:
    name: hoppscotch-db

启动服务

创建一个本地文件夹hoppscotch-aio,并把刚刚创建的docker-compose.yml丢进这个目录中即可

mkdir /home/hoppscotch-aio
cp /root/docker-compose.yml
docker compose up -d

开始使用

通过http://192.168.0.66/admin/ 验证管理后台是否能通过邮箱登录,方法如下

1. 使用邮箱登录,可以随意填写一个邮箱
2. 点击"Send magic link"发送邮箱验证码
3. 由于我们配置了mailcatcher,邮件会被mailcatcher挟持,登录http://192.168.0.66:1080即可查看到hoppscotch发送的邮件
4. 在后台界面中,找到属于你的那封邮件,点击邮件中的"Sign to Hoppscotch"登录至后台

登录管理后台只是为了方面查看管理工作区与用户,实际使用的过程中,hoppscotch会将第一个登录使用的用户设置为管理员,在http://192.168.0.66界面进行注册登录也是相同的操作

剩下的就是愉快的使用hoppscotch了~

标签: none

已有 4 条评论

  1. 111 111

    hoppscotch的文档里边自建的部分就是恶心人的,故意不想让别人自建

    1. 是这样的,设计初衷感觉就不是为了给团队或个人用户私用的,所有的鉴权基本上要靠邮箱,而且哪怕自建后拥有admin后台了,依旧没办法在里面创建用户之类的

  2. 新车即将上线 真正的项目,期待你的参与

  3. 2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

添加新评论