GitHub热门项目!Hoppscotch Docker私有部署实战指南

朋友们!API测试工具选对了吗?
作为开发者,你是不是每天都要和各种 API 打交道?测试接口、调试接口、文档化接口…市面上的 API 测试工具不少,但要么收费太贵,要么数据不安全,要么功能不够用。
作为一个资深开发者,我试过很多工具:Postman 功能强大但收费高,Insomnia 不错但团队协作不方便,curl 太麻烦…直到遇到了 Hoppscotch!这是一个完全开源的 API 开发生态系统,功能媲美 Postman,而且可以私有部署,数据完全可控!
这两天我研究了一下它的 Docker 部署方案,发现部署起来其实很简单。今天我就来手把手教大家如何在自己的服务器上部署 Hoppscotch,打造一个专属的 API 测试平台!
✨ 什么是 Hoppscotch?
Hoppscotch 是一个开源的 API 开发生态系统,被誉为”开源版 Postman”。它支持 REST、GraphQL、WebSocket、MQTT 等多种协议,提供团队协作、环境变量、前置脚本等强大功能。

🎯 核心功能
- 🚀 全协议支持: REST、GraphQL、WebSocket、Server-Sent Events、Socket.IO、MQTT
- 👥 团队协作: 创建团队、共享集合、角色权限控制
- 📁 工作空间: 组织个人和团队项目到不同工作空间
- 🌱 环境变量: 支持多环境配置,方便切换开发/测试/生产环境
- 📜 前置/后置脚本: 支持 JavaScript 编写测试脚本
- 🔐 多种认证: Basic Auth、Bearer Token、OAuth 2.0、OIDC
- 📱 跨平台: Web、桌面应用、CLI 工具
📋 前置准备
环境要求
| 依赖 | 版本要求 | 说明 |
|---|---|---|
| Docker | 20+ | 容器运行环境 |
| Docker Compose | 2+ | 容器编排工具 |
| Node.js | 18+ | 可选,用于开发模式 |
| pnpm | 6+ | 可选,用于开发模式 |
| Git | 任意 | 克隆代码仓库 |
服务器配置建议
| 配置项 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 2核 | 4核+ |
| 内存 | 4GB | 8GB+ |
| 存储 | 20GB | 50GB+ |
| 系统 | Linux (Ubuntu/Debian/CentOS) | Linux |
🚀 部署实战
方式一:使用官方 AIO 容器(推荐)
优点: 单容器部署,简单快捷,适合快速体验
1. 创建目录结构
mkdir -p /opt/hoppscotch/datamkdir -p /opt/hoppscotch/configcd /opt/hoppscotch2. 创建 .env 配置文件
cat > /opt/hoppscotch/config/.env << 'EOF'#-----------------------Backend Config------------------------------## Prisma Config - 使用内置SQLite数据库DATABASE_URL=file:./data/db.sqlite
# 数据加密密钥(32位字符)DATA_ENCRYPTION_KEY=your-32-character-encryption-key-here
# 允许的来源(根据需要添加你的域名)WHITELISTED_ORIGINS=http://localhost:3000,http://localhost:3100,http://localhost:3170,app://localhost_3200,app://hoppscotch
#-----------------------Frontend Config------------------------------## 应用基础URLAPP_URL=http://localhost:3000
# API基础URLAPI_URL=http://localhost:3170
#-----------------------Auth Config------------------------------## JWT密钥(32位字符)JWT_SECRET=your-32-character-jwt-secret-here
# 密码重置密钥(32位字符)PASSWORD_RESET_SECRET=your-32-character-reset-secret-here
#-----------------------SMTP Config(可选)------------------------------## SMTP_HOST=smtp.example.com# SMTP_PORT=587# SMTP_PASSWORD=your-email-password# SMTP_FROM_NAME=HoppscotchEOF3. 运行 AIO 容器
docker run -d \ --name hoppscotch-aio \ -p 3000:3000 \ -p 3170:3170 \ -v /opt/hoppscotch/data:/app/data \ -v /opt/hoppscotch/config/.env:/app/.env \ --restart unless-stopped \ hoppscotch/hoppscotch:latest4. 访问应用
打开浏览器访问 http://your-server-ip:3000
方式二:使用 Docker Compose 多容器部署(生产推荐)
优点: 服务分离,便于扩展和维护,适合生产环境
1. 克隆项目代码
git clone https://github.com/hoppscotch/hoppscotch.gitcd hoppscotch2. 创建 .env 配置文件
cat > .env << 'EOF'#-----------------------Backend Config------------------------------## PostgreSQL数据库配置DATABASE_URL=postgresql://hoppscotch:hoppscotch@hoppscotch-db:5432/hoppscotch
# 数据加密密钥(32位字符,必须修改!)DATA_ENCRYPTION_KEY=your-32-character-encryption-key-here
# 允许的来源WHITELISTED_ORIGINS=http://localhost:3000,http://localhost:3100,http://localhost:3170,app://localhost_3200,app://hoppscotch
#-----------------------Frontend Config------------------------------#APP_URL=http://localhost:3000API_URL=http://localhost:3170
#-----------------------Auth Config------------------------------## JWT密钥(32位字符,必须修改!)JWT_SECRET=your-32-character-jwt-secret-here
# 密码重置密钥(32位字符,必须修改!)PASSWORD_RESET_SECRET=your-32-character-reset-secret-here
#-----------------------SMTP Config------------------------------#SMTP_HOST=smtp.example.comSMTP_PORT=587SMTP_PASSWORD=your-email-passwordSMTP_FROM_NAME=Hoppscotch
#-----------------------OAuth Config(可选)------------------------------## GitHub OAuth# GITHUB_CLIENT_ID=your-github-client-id# GITHUB_CLIENT_SECRET=your-github-client-secret
# Google OAuth# GOOGLE_CLIENT_ID=your-google-client-id# GOOGLE_CLIENT_SECRET=your-google-client-secret
# Microsoft OAuth# MICROSOFT_CLIENT_ID=your-microsoft-client-id# MICROSOFT_CLIENT_SECRET=your-microsoft-client-secretEOF3. 创建 docker-compose.yml
version: '3.8'
services: hoppscotch-db: image: postgres:15-alpine container_name: hoppscotch-db environment: POSTGRES_USER: hoppscotch POSTGRES_PASSWORD: hoppscotch POSTGRES_DB: hoppscotch volumes: - hoppscotch-db-data:/var/lib/postgresql/data networks: - hoppscotch-network restart: unless-stopped
hoppscotch-backend: image: hoppscotch/hoppscotch-backend:latest container_name: hoppscotch-backend depends_on: - hoppscotch-db environment: DATABASE_URL: postgresql://hoppscotch:hoppscotch@hoppscotch-db:5432/hoppscotch DATA_ENCRYPTION_KEY: ${DATA_ENCRYPTION_KEY} WHITELISTED_ORIGINS: ${WHITELISTED_ORIGINS} JWT_SECRET: ${JWT_SECRET} PASSWORD_RESET_SECRET: ${PASSWORD_RESET_SECRET} SMTP_HOST: ${SMTP_HOST} SMTP_PORT: ${SMTP_PORT} SMTP_USERNAME: ${SMTP_USERNAME} SMTP_PASSWORD: ${SMTP_PASSWORD} SMTP_FROM_NAME: ${SMTP_FROM_NAME} SMTP_FROM_EMAIL: ${SMTP_FROM_EMAIL} volumes: - ./config:/app/config networks: - hoppscotch-network restart: unless-stopped ports: - "3170:3170"
hoppscotch-frontend: image: hoppscotch/hoppscotch-frontend:latest container_name: hoppscotch-frontend depends_on: - hoppscotch-backend environment: APP_URL: ${APP_URL} API_URL: ${API_URL} networks: - hoppscotch-network restart: unless-stopped ports: - "3000:3000"
hoppscotch-admin: image: hoppscotch/hoppscotch-admin:latest container_name: hoppscotch-admin depends_on: - hoppscotch-backend environment: VITE_API_URL: ${API_URL} networks: - hoppscotch-network restart: unless-stopped ports: - "3100:3100"
volumes: hoppscotch-db-data: ./hoppscotch-db-data
networks: hoppscotch-network: driver: bridge4. 启动服务
# 启动所有服务docker-compose up -d
# 查看服务状态docker-compose ps
# 查看日志docker-compose logs -f5. 初始化数据库
# 进入后端容器docker exec -it hoppscotch-backend sh
# 运行数据库迁移pnpm prisma migrate deploy
# 退出容器exit6. 访问应用
| 服务 | 地址 | 说明 |
|---|---|---|
| 主应用 | http://localhost:3000 | API测试主界面 |
| 管理后台 | http://localhost:3100 | 管理员仪表盘 |
| API服务 | http://localhost:3170 | 后端API |
⚙️ 高级配置
1. 配置 OAuth 登录
GitHub OAuth
# 在 GitHub 创建 OAuth App: https://github.com/settings/developers# 回调地址: http://your-domain.com/api/auth/github/callback
# 修改 .env 文件GITHUB_CLIENT_ID=your-github-client-idGITHUB_CLIENT_SECRET=your-github-client-secret2. 配置 HTTPS(使用 Nginx 反向代理)
server { listen 80; server_name api.example.com; return 301 https://$server_name$request_uri;}
server { listen 443 ssl; server_name api.example.com;
ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem;
location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
location /api/ { proxy_pass http://localhost:3170/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
location /admin/ { proxy_pass http://localhost:3100/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}3. 配置 Redis 缓存(可选)
# 添加 Redis 服务到 docker-compose.ymlredis: image: redis:7-alpine container_name: hoppscotch-redis volumes: - hoppscotch-redis-data:/data networks: - hoppscotch-network restart: unless-stopped
# 修改 .env 文件添加 Redis 配置REDIS_URL=redis://hoppscotch-redis:6379📝 使用教程
1. 创建账户
访问 http://localhost:3000,点击”Sign Up”创建账户:

2. 创建第一个请求
- 点击左侧 ”+” 按钮创建新请求
- 选择 HTTP 方法(GET/POST/PUT/DELETE 等)
- 输入 API 地址
- 添加请求头和参数
- 点击”Send”发送请求
3. 创建集合
- 点击左侧”Collections”
- 点击”New Collection”
- 命名集合并添加描述
- 将请求拖入集合中
4. 配置环境变量
- 点击右上角环境图标
- 点击”Manage Environments”
- 创建新环境并添加变量
- 在请求中使用
{{变量名}}引用
5. 团队协作
- 点击左侧”Teams”
- 点击”Create Team”创建团队
- 邀请成员加入
- 共享集合和工作空间
🔥 常见问题
Q1: 容器启动失败怎么办?
# 查看日志docker-compose logs hoppscotch-backend
# 常见问题:数据库连接失败# 确保数据库服务先启动,检查 DATABASE_URL 是否正确
# 常见问题:端口被占用# 修改 docker-compose.yml 中的端口映射Q2: 如何备份数据?
# 备份 PostgreSQL 数据库docker exec -it hoppscotch-db pg_dump -U hoppscotch hoppscotch > backup.sql
# 恢复数据库docker exec -i hoppscotch-db psql -U hoppscotch hoppscotch < backup.sqlQ3: 如何更新版本?
# 停止服务docker-compose down
# 拉取最新镜像docker-compose pull
# 启动服务(会自动运行数据库迁移)docker-compose up -dQ4: 如何配置邮件通知?
确保 .env 中的 SMTP 配置正确:
SMTP_HOST=smtp.example.comSMTP_PORT=587SMTP_PASSWORD=your-email-passwordSMTP_FROM_NAME=Hoppscotch📝 总结
Hoppscotch 是一款开源免费的 API 测试工具,功能媲美 Postman。通过 Docker 容器化部署,我们可以轻松搭建企业级私有 API 测试平台。本文介绍了两种部署方式:AIO 单容器适合快速体验,Docker Compose 多容器适合生产环境。配置上支持 OAuth 认证、SMTP 邮件、环境变量等完整功能,无论是 REST、GraphQL 还是 WebSocket 调试,都能高效完成。相比商业工具,Hoppscotch 不仅免费,还支持私有部署,数据安全可控,是团队协作的理想选择。感兴趣的小伙伴可以按照文中步骤实践,根据需求调整配置。今天的分享就到这里,我们下一篇文章见。
🌟 项目资源
GitHub 地址: https://github.com/hoppscotch/hoppscotch
官方文档: https://docs.hoppscotch.io
官方网站: https://hoppscotch.io
觉得项目不错的话,记得给作者点个 star 支持一下!
项目特色: 开源免费、功能强大、支持多协议、团队协作、私有部署,是企业级 API 测试的首选工具!
🎉 互动时间
你平时用什么工具测试 API?对 Hoppscotch 有什么期待?欢迎在评论区和我交流分享!
我会定期分享更多好用的开发工具和部署教程,记得关注我哦!
推荐阅读:
- GitHub 热门项目!DBX,15MB 搞定 40+ 数据库管理!
- 从Hexo到Astro Firefly:我的博客迁移之旅
- 自建图床又一选择?这个工具让你打造个人图片分享平台!
- 离线OCR神器!这个工具让图片文字轻松提取
- 保姆级教程!用PicList+GitHub搭建免费图床,超详细配置指南!
- 文件分发利器!这个工具让文件分享更安全
- Docker打包工具!这个Electron工具让镜像管理更高效!
- Redis管理神器!这个工具让你的数据操作更高效
- 又一个 Rust 神级编辑器!Fresh 让我放弃了 VS Code
如果您觉得这篇文章有帮助,请为小王点点推荐,谢谢!🌹
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
小王的博客














