跳至主要內容

Hoppscotch-Postman的完美替代

程序员李某某大约 3 分钟

Hoppscotch-Postman的完美替代

邮件服务

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

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:liyuanhao .
## 构建完成后,检查本地镜像
docker image ls

启动服务

vim docker-compose.yml
docker compose up -d

docker-compose.yml

services:
  hoppscotch:
    image: local/hoppscotch:liyuanhao
    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

通过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"登录至后台
  5. 登录管理后台只是为了方面查看管理工作区与用户,实际使用的过程中,hoppscotch会将第一个登录使用的用户设置为管理员,在http://192.168.0.66界面进行注册登录也是相同的操作
上次编辑于:
贡献者: 李元昊