Docker安裝hoppscotch

Docker安裝hoppscotch

1 簡介

1.1 Hoppscotch?系統

?Hoppscotch?是一個輕量、高效的[API開發生態系統,開源于2020年,原名Postwoman,后更名為Hoppscotch。它基于Node.js構建,支持多種HTTP請求方法,包括GET、POST、PUT、DELETE等,并且支持WebSocket、Socket.IO、MQTT和GraphQL等多種通信協議?。

本文借助Hoppscotch和mailcatcher實現局域網登錄。本文使用最簡單的mailcatcher的郵件服務,也可以使用poste.io替換mailcatcher,只需要更改配置文件中的MAILER_SMTP_PORT端口。

Hoppscotch參考網址

# 官網地址
https://hoppscotch.com/# 開發文檔地址
https://docs.hoppscotch.io/# 在線地址
https://hoppscotch.io/# Github地址
https://github.com/hoppscotch/hoppscotch# Docker安裝方法
https://docs.hoppscotch.io/documentation/self-host/community-edition/install-and-build# 拓展插件,也可以在“插件小屋Chrome”上搜索“Hoppscotch”,下載“Hoppscotch Browser Extension”
https://github.com/hoppscotch/hoppscotch-extension

1.2 MailCatcher郵件

借助MailCatcher完成登錄的郵箱驗證。MailCatcher是一個Email服務系統,MailCatcher也是一個超級簡單的SMTP服務器,它捕獲發送到它的任何消息,并在web界面中顯示。

mailcatcher參考網址

# 官網
https://mailcatcher.me/# Github地址
https://github.com/sj26/mailcatcher

1.3 PostgreSQL數據庫

Hoppscotch?是使用PostgreSQL作為數據庫存儲工具,PostgreSQL是開源的關系型數據庫,可使用Docker安裝。

# 官網地址
https://www.postgresql.org/

1.4 創建基礎環境

我的虛擬機地址是

192.168.108.146

創建網橋

docker network create --driver bridge hoppnet

創建數據目錄

mkdir -p /home/hoppscotch

2 安裝PostgreSQL

數據庫的數據,會在”/home/hoppscotch/postgresql“創建數據。可使用DBeaver查看數據。

用戶名:postgres,密碼:testpass,數據庫:hoppscotch

docker run -itd \
--name hoppscotch-db \
--network hoppnet \
--restart always \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=testpass \
-e POSTGRES_DB=hoppscotch \
-p 5432:5432 \
-v /home/hoppscotch/postgresql/data:/var/lib/postgresql/data \
postgres:15.12

Hoppscotch系統啟動成功后,會看到的數據結構如下,其中InfraConfig表中會有配置信息。

3 安裝MailCatcher

使用docker安裝即可,1080是可視化頁面端口,1025是SMTP協議端口。

docker run -itd \
--name milcatcher \
--restart always \
-p 1080:1080 \
-p 1025:1025 \
sj26/mailcatcher:v0.10.0

訪問地址

http://192.168.108.146:1080

4 安裝Hoppscotch?

docker安裝hopposcotch有兩種方法,一種是將Hoppscotch frontend、Hoppscotch backend和Hoppscotch admin dashboard分開的方法,另外一種合并到一起。本文用將多模塊集成到一起的容器hoppscotch/hoppscotch。

4.1 創建配置文件

在github上找到名字叫做“.env.example”,修改為"hoppscotch.env",創建文件配置文件,我的配置文件放在了Home目錄下。

# 在/home/hoppscotch下創建配置文件
cd /home/hoppscotch# 創建文件
touch hoppscotch.env

hoppscotch.env

#-----------------------Backend Config------------------------------#
# Prisma Config
DATABASE_URL=postgresql://postgres:testpass@hoppscotch-db:5432/hoppscotch# Auth Tokens Config
JWT_SECRET=gzEGPNCpkD
TOKEN_SALT_COMPLEXITY=10
MAGIC_LINK_TOKEN_VALIDITY=3
# Default validity is 7 days (604800000 ms) in ms
REFRESH_TOKEN_VALIDITY=604800000
# Default validity is 1 day (86400000 ms) in ms
ACCESS_TOKEN_VALIDITY=86400000
SESSION_SECRET=7crC4nNRTk
# Reccomended to be true, set to false if you are using http
# Note: Some auth providers may not support http requests
ALLOW_SECURE_COOKIES=false# Sensitive Data Encryption Key while storing in Database (32 character)
DATA_ENCRYPTION_KEY=623088d70f314102a266c6cc6fb1c0e7# Hoppscotch App Domain Config
REDIRECT_URL=http://192.168.108.146:3000
# Whitelisted origins for the Hoppscotch App.
# This list controls which origins can interact with the app through cross-origin comms.
# - localhost ports (3170, 3000, 3100): app, backend, development servers and services
# - app://localhost_3200: Bundle server origin identifier
#   NOTE: `3200` here refers to the bundle server (port 3200) that provides the bundles,
#   NOT where the app runs. The app itself uses the `app://` protocol with dynamic
#   bundle names like `app://{bundle-name}/`
WHITELISTED_ORIGINS=http://192.168.108.146:3170,http://192.168.108.146:3000,http://192.168.108.146:3100,app://localhost_3200,app://hoppscotch
VITE_ALLOWED_AUTH_PROVIDERS=EMAIL# Mailer config
MAILER_SMTP_ENABLE=true
MAILER_USE_CUSTOM_CONFIGS=true
MAILER_ADDRESS_FROM=192.168.108.146MAILER_SMTP_URL="smtps://user@domain.com:pass@smtp.domain.com" # used if custom mailer configs is false# The following are used if custom mailer configs is true
MAILER_SMTP_HOST=192.168.108.146
MAILER_SMTP_PORT=1025
MAILER_SMTP_SECURE=false
MAILER_SMTP_USER=admin@example.com
MAILER_SMTP_PASSWORD=123456
MAILER_TLS_REJECT_UNAUTHORIZED=true# Rate Limit Config
RATE_LIMIT_TTL=60 # In seconds
RATE_LIMIT_MAX=100 # Max requests per IP#-----------------------Frontend Config------------------------------## Base URLs
VITE_BASE_URL=http://192.168.108.146:3000
VITE_SHORTCODE_BASE_URL=http://192.168.108.146:3000
VITE_ADMIN_URL=http://192.168.108.146:3100# Backend URLs
VITE_BACKEND_GQL_URL=http://192.168.108.146:3170/graphql
VITE_BACKEND_WS_URL=ws://192.168.108.146:3170/graphql
VITE_BACKEND_API_URL=http://192.168.108.146:3170/v1# Terms Of Service And Privacy Policy Links (Optional)
VITE_APP_TOS_LINK=https://docs.hoppscotch.io/support/terms
VITE_APP_PRIVACY_POLICY_LINK=https://docs.hoppscotch.io/support/privacy# Set to `true` for subpath based access
ENABLE_SUBPATH_BASED_ACCESS=false

hoppscotch.env配置文件說明

#-----------------------Backend Config------------------------------#
# 配置數據庫
DATABASE_URL=postgresql://postgres:testpass@hoppscotch-db:5432/hoppscotch# Token配置JWT密鑰,自己修改修改即可
JWT_SECRET=gzEGPNCpkD
TOKEN_SALT_COMPLEXITY=10
MAGIC_LINK_TOKEN_VALIDITY=3
# 刷新token的默認有效時間7天 (604800000 ms) in ms
REFRESH_TOKEN_VALIDITY=604800000
# token的默認有效時間1天 (86400000 ms) in ms
ACCESS_TOKEN_VALIDITY=86400000
# Session密鑰,自己修改修改即可
SESSION_SECRET=7crC4nNRTk
# 默認true即可
ALLOW_SECURE_COOKIES=true# 加密數據庫的32位字符串
# 在linux中使用下面命令即可生成
# uuidgen | tr -d '-'
DATA_ENCRYPTION_KEY=623088d70f314102a266c6cc6fb1c0e7# 配置Hoppscotch請求接口的地址
REDIRECT_URL=http://192.168.108.146:3000
# 設置請求白名單
WHITELISTED_ORIGINS=http://192.168.108.146:3170,http://192.168.108.146:3000,http://192.168.108.146:3100,app://localhost_3200,app://hoppscotch# 設置登錄使用的第三方登錄,如果沒有可以刪除
VITE_ALLOWED_AUTH_PROVIDERS=GOOGLE,GITHUB,MICROSOFT,EMAIL# Google Auth Config
GOOGLE_CLIENT_ID="************************************************"
GOOGLE_CLIENT_SECRET="************************************************"
GOOGLE_CALLBACK_URL="http://192.168.108.146:3170/v1/auth/google/callback"
GOOGLE_SCOPE="email,profile"# Github Auth Config
GITHUB_CLIENT_ID="************************************************"
GITHUB_CLIENT_SECRET="************************************************"
GITHUB_CALLBACK_URL="http://192.168.108.146:3170/v1/auth/github/callback"
GITHUB_SCOPE="user:email"# Microsoft Auth Config
MICROSOFT_CLIENT_ID="************************************************"
MICROSOFT_CLIENT_SECRET="************************************************"
MICROSOFT_CALLBACK_URL="http://localhost:3170/v1/auth/microsoft/callback"
MICROSOFT_SCOPE="user.read"
MICROSOFT_TENANT="common"# 自定義郵箱配置
MAILER_SMTP_ENABLE="true"
# 如果配置自定義郵箱,此處必須是true
MAILER_USE_CUSTOM_CONFIGS=false
# 郵箱的IP地址
MAILER_ADDRESS_FROM='"From Name Here" <from@example.com>'MAILER_SMTP_URL="smtps://user@domain.com:pass@smtp.domain.com"# 如果 MAILER_USE_CUSTOM_CONFIGS是true,可根據情況配置郵箱信息
MAILER_SMTP_HOST="smtp.domain.com"
# SMTP協議的端口,本文對應MailCatcher系統的端口
MAILER_SMTP_PORT=1025
# 是否啟用安全協議,可以不啟動,設置false
MAILER_SMTP_SECURE=true
# SMTP用戶
MAILER_SMTP_USER=user@domain.com
# SMTP用戶密碼
MAILER_SMTP_PASSWORD=pass
# 授權
MAILER_TLS_REJECT_UNAUTHORIZED=true# 默認即可,端口速率限制(秒)
RATE_LIMIT_TTL=60
# 默認即可,每個IP最低請求次數
RATE_LIMIT_MAX=100#-----------------------Frontend Config------------------------------## Base URLs
VITE_BASE_URL=http://192.168.108.146:3000
VITE_SHORTCODE_BASE_URL=http://192.168.108.146:3000
VITE_ADMIN_URL=http://192.168.108.146:3100# Backend URLs
VITE_BACKEND_GQL_URL=http://192.168.108.146:3170/graphql
VITE_BACKEND_WS_URL=ws://192.168.108.146:3170/graphql
VITE_BACKEND_API_URL=http://192.168.108.146:3170/v1# Terms Of Service And Privacy Policy Links (Optional)
VITE_APP_TOS_LINK=https://docs.hoppscotch.io/support/terms
VITE_APP_PRIVACY_POLICY_LINK=https://docs.hoppscotch.io/support/privacy# 設置按照路由方式還是端口方式訪問頁面,本文使用的是端口方式,因此設置false
ENABLE_SUBPATH_BASED_ACCESS=false

4.2 安裝Hoppscotch

使用docker創建Hoppscotch,其中env-file對應配置文件。

3000對應用戶可視化頁面;

3100對應管理員的可視化頁面;

3170對應后端接口。

docker run -itd \
--name hoppscotch-aio \
--network hoppnet \
--restart always \
-p 3000:3000 \
-p 3100:3100 \
-p 3170:3170 \
--env-file /home/hoppscotch/hoppscotch.env \
hoppscotch/hoppscotch:2025.3.2 /bin/sh -c "pnpm exec prisma migrate deploy && node /usr/src/app/aio_run.mjs"

備注:

在Dockerfile中的ENTRYPOINT和CMD兩個參數被用來設置容器啟動時執行的命令。CMD為ENTRYPOINT提供默認的參數,ENTRYPOINT 設置的命令不可被覆蓋。Docker創建容器時可使用–entrypoint參數指定ENTRYPOINT后的命令。-c選項是允許通過命令行傳遞一個命令字符串給sh(或bash),然后sh會解釋并執行這個字符串中的命令。

4.3 使用郵箱登錄

用戶端

http://192.168.108.146:3000/

郵箱登錄

配置文件中只保留了郵件,所以此處只能看到郵件。

向MailCatcher中發送郵件,注意:由于MailCatcher沒有賬號權限的控制,所以輸入任何符合郵箱格式的地址,MailCatcher都可以接收到。

發送成功

在MailCatcher中訪問地址,查看郵件。點擊上面的郵箱,可以在下面看到詳細的郵件信息。

點擊郵箱中綠色的“Sign in to Hoppscotch”按鈕或者復制下面的地址,會訪問“http://192.168.108.146:3000/enter?token=XXXX”進行驗證,驗證完成后重定向到“http://192.168.108.146:3000”。

用戶的信息

4.4 解決跨域問題

使用Hoppscotch Browser Extension插件解決跨域問題,可以在“插件小屋Chrome”上搜索“Hoppscotch”,下載“Hoppscotch Browser Extension”,拖拽到Chrome的插件中。

打開拓展插件

配置跨域

查看是否配置成功

4.5 簡單使用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77289.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1.Axum 與 Tokio:異步編程的完美結合

摘要 深入解析 Axum 核心架構與 Tokio 異步運行時的集成&#xff0c;掌握關鍵原理與實踐技巧。 一、引言 在當今的軟件開發領域&#xff0c;高并發和高性能是衡量一個系統優劣的重要指標。對于 Web 服務器而言&#xff0c;能夠高效地處理大量并發請求是至關重要的。Rust 語言…

CSS偽元素

偽元素 偽元素 用于在元素的內容前后或特定部分插入虛擬元素&#xff0c;并為其添加樣式&#xff0c;無需修改 HTML 結構。 語法&#xff1a;使用雙冒號 ::&#xff08;現代規范&#xff09; 以下是一些常見的CSS偽元素的示例&#xff1a; 1.::before &#xff1a; 在元素內…

easyexcel使用模板填充excel坑點總結

1.單層map設置值是{屬性}&#xff0c;那使用兩層map進行設置值&#xff0c;是不是可以使用{屬性.屬性}&#xff0c;以為取出map里字段只用{屬性}就可以設置值&#xff0c;那再加個.就可以從里邊map取出對應屬性&#xff0c;沒有兩層map寫法 填充得到的文件打開報錯 was empty (…

在Ubuntu服務器上部署xinference

一、拉取鏡像 docker pull xprobe/xinference:latest二、啟動容器&#xff08;GPU&#xff09; docker run -d --name xinference -e XINFERENCE_MODEL_SRCmodelscope -p 9997:9997 --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0 # 啟動一個新的Docker容…

三周年創作紀念日

文章目錄 回顧與收獲三年收獲的五個維度未來的展望致謝與呼喚 親愛的社區朋友們&#xff0c;大家好&#xff01; 今天是 2025 年 4 月 14 日&#xff0c;距離我在 2022 年 4 月 14 日發布第一篇技術博客《SonarQube 部署》整整 1,095 天。在這條創作之路上&#xff0c;我既感慨…

Redis——五種數據類型

目錄 前言 1.String 1.1RAW編碼 1.2EMBSTR編碼 1.3 INT編碼 2.List 3.Set 3.1 InSet編碼轉化成Dict編碼 4.ZSet 4.1結合SkipList和HT實現 4.2使用ZipList實現 4.3編碼轉換 4.4 ZipList排序功能 5.Hash 5.1Hash底層存儲結構 6.Redis數據結構和數據類型關系圖 前言…

zookeeper啟動報錯have small server identifier

解決方案&#xff1a; 1、查看myid是否有重復 2、查看server.X 與myid的X是否一致 3、啟動順序為myid從小到大的服務器順序

#Linux動態大小裁剪以及包大小變大排查思路

1 動態庫裁剪 庫分為動態庫和靜態庫&#xff0c;動態庫是在程序運行時才加載&#xff0c;靜態庫是在編譯時就加載到程序中。動態庫的大小通常比靜態庫小&#xff0c;因為動態庫只包含了程序需要的函數和數據&#xff0c;而靜態庫則包含了所有的函數和數據。靜態庫可以理解為引入…

消息隊列生產者投遞的高可靠性與一致性保障方案

在構建高可靠分布式系統時&#xff0c;確保業務數據庫與消息隊列&#xff08;MQ&#xff09;之間的一致性是一項核心挑戰。尤其當使用 Kafka 作為消息隊列中間件時&#xff0c;如何避免“數據庫寫入成功&#xff0c;但消息發送失敗”或“消息重復發送”等問題&#xff0c;成為系…

Formality:Bug記錄

相關閱讀 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 本文記錄博主在使用Synopsys的形式驗證工具Formality中遇到的一個Bug。 Bug復現 情況一 // 例1 module dff (input clk, input d_in, output d_out …

通信算法之267 : DJI無人機 云哨 DroneID 640ms

DJI 無人機 與DroneID 轉 *** 載 0x01 摘要 消費級無人機可以用于高級航拍、物流和人道主義救援等等。但是其廣泛使用給安全、安保和隱私帶來了許多風險。例如&#xff0c;攻擊方可能會使用無人機進行監視、運輸非法物品&#xff0c;或通過侵入機場上方的封閉空域造成經濟損…

論壇測試報告

作者前言 &#x1f382; ??????&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ?&#x1f382; 作者介紹&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

npx 的作用以及延伸知識(.bin目錄,npm run xx 執行)

文章目錄 前言原理解析1. npx 的作用2. 為什么會有 node_modules/.bin/lerna3. npx 的查找順序4. 執行流程總結1&#xff1a; 1. .bin 機制什么是 node_modules/.bin&#xff1f;例子 2. npx 的底層實現npx 是如何工作的&#xff1f;為什么推薦用 npx&#xff1f;npx 的特殊能力…

【c語言】深入理解指針3——回調函數

一、回調函數 回調函數&#xff1a;通過函數指針調用的函數. 當把一個函數的地址傳遞給另一個函數&#xff0c;通過該地址去調用其指向的函數&#xff0c;那么這個被調用的函數就是回調函數. 示例&#xff1a; 在【深入理解指針2】中結尾寫了用函數指針實現計算器的功能&#…

HTTP 核心概念

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;…

VidBot:從野外 2D 人體視頻中學習可泛化的 3D 動作,實現零樣本機器人操控

25年3月來自慕尼黑工大、瑞士 ETH 和微軟的論文“VidBot: Learning Generalizable 3D Actions from In-the-Wild 2D Human Videos for Zero-Shot Robotic Manipulation”。 未來的機器人被設想為能夠執行各種家務的多功能系統。最大的問題仍然是&#xff0c;如何在盡量減少機器…

Linux 日常運維命令大全

Linux 作為一種開源操作系統&#xff0c;在服務器運維中扮演著重要角色。掌握常用的 Linux 命令對于運維人員而言至關重要。本文將整理一份 Linux 服務器運維常用命令大全&#xff0c;幫助你在日常工作中提高效率和準確性。 1. 基礎命令 基礎命令是Linux操作的起點&#xff0…

編程規范之枚舉

編程規范之枚舉 1.1 初始化枚舉項 枚舉平時用的也沒有很頻繁&#xff0c;今天看代碼規范提到枚舉類型初始化枚舉項。并對初始化枚舉項進行了歸納。包括下面三個 不進行顯示初始化&#xff0c;交由編譯器完成。 對第一個枚舉項的顯式初始化&#xff0c;這樣可以強制整數值的…

《軟件設計師》復習筆記(12.1)——范圍管理、進度管理

目錄 一、范圍管理 1. 核心概念 2. 范圍管理過程 WBS&#xff08;工作分解結構&#xff09;示例 真題示例&#xff1a; 二、進度管理 1. 核心過程 2. 關鍵工具與技術 真題示例&#xff1a; 一、范圍管理 1. 核心概念 項目范圍&#xff1a;為交付產品必須完成的工作…

過去十年前端框架演變與技術驅動因素剖析

一、技術演進脈絡&#xff08;2013-2023&#xff09; 2013-2015&#xff1a;結構化需求催生框架雛形 早期的jQuery雖然解決了跨瀏覽器兼容性問題&#xff08;如IE8兼容性處理&#xff09;&#xff0c;但其松散的代碼組織方式難以支撐復雜應用開發。Backbone.js的出現首次引入M…