资讯动态

Hoppscotch 自托管 Docker Compose 的 default、default-no-db 与 just-backend profile 怎么选

发布时间:2026/9/9 19:21:19 来源:尧图企业网站定制
Hoppscotch 自托管 Docker Compose 的 default、default-no-db 与 just-backend profile 怎么选【免费下载链接】hoppscotchOpen-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem Cloud • Web, Desktop CLI • Open-Source Alternative to Postman, Insomnia项目地址: https://gitcode.com/GitHub_Trending/ho/hoppscotch当你把 Hoppscotch 的仓库克隆下来准备自托管时docker-compose.yml 根部的注释里列出了一组 Docker Compose profiledefault、default-no-db、backend、app、admin、database、just-backend、deprecated。三者里最容易混淆的是标题中的三个它们决定了一次docker compose up到底会拉起哪些容器、暴露哪些端口、以及是否需要你自己准备数据库。这篇文章只回答一个问题你的部署目标属于哪一种就选哪个 profile并给出对应的启动命令和验证方式。三个 profile 各自启动什么以下事实全部来自 docker-compose.yml 中的服务定义与注释default—— AIO 一体化容器 postgres:15数据库 hoppscotch-migrate自动迁移服务。文件注释明确写着 recommended for most users也就是多数自托管用户的首选。default-no-db—— 只启动 AIO 一体化容器注释标注 purely developmental面向使用外部数据库的用户。它没有depends_on数据库也不会跑迁移服务。just-backend—— 注释为 All services except webapp for local development实际拉起的组合是hoppscotch-backend独立后端服务、hoppscotch-db、hoppscotch-migrate、hoppscotch-sh-admin管理面板。不包含hoppscotch-app主应用和 webapp server。对应的启动命令与文件注释中的 USAGE 一致# 推荐默认部署AIO 数据库 自动迁移 docker compose --profile default up # 不启动数据库容器外部数据库场景 docker compose --profile default-no-db up # 本地开发除 webapp 外的全部服务 docker compose --profile just-backend up按部署目标选择 profile三个 profile 的适用条件可以直接按下面判断你的情况选择依据全新部署没有现成 Postgresdefault自带postgres:15容器且hoppscotch-migrate会执行pnpm exec prisma migrate deploy完成建库迁移已有外部 Postgres 实例default-no-db不启动 db 容器需要把DATABASE_URL指向你自己的库只开发后端/迁移相关功能不需要 Web 界面just-backend启动 backend db migrate sh-admin跳过hoppscotch-app文件里有两条必须遵守的限制default与default-no-db不应与单个服务 profilebackend、app、admin等混用因为端口会冲突原注释should not be mixed with individual service profiles as they would conflict on ports。deprecatedprofile 保留旧版服务仅为向后兼容注释明确 not recommended for new deployments新部署不要选它。准备 .env 文件三个 profile 的服务都通过env_file读取仓库根目录的./.env启动前需要准备这个文件。仓库提供了 .env.example 作为模板其中与本次部署直接相关的项DATABASE_URL—— 示例值指向 compose 内置的 db 容器postgresql://postgres:testpasshoppscotch-db:5432/hoppscotch。使用default时保持指向hoppscotch-db即可使用default-no-db时必须改成你的外部数据库地址。DATA_ENCRYPTION_KEY—— 存储到数据库的敏感数据加密密钥要求 32 个字符。VITE_BASE_URL/VITE_ADMIN_URL/VITE_BACKEND_GQL_URL等前端基础地址 —— 示例值均为localhost端口按你的实际访问地址调整。ENABLE_SUBPATH_BASED_ACCESS—— 是否启用子路径访问默认false。另外注意docker-compose.yml中hoppscotch-db的POSTGRES_PASSWORD默认为testpass文件注释直接写着 NOTE: Please UPDATE THIS PASSWORD!。如果你按注释去掉了内置 db、改用外部库compose 注释同时提醒 make sure to update the .env file as well即DATABASE_URL与.env要保持一致。启动与端口验证default以及default-no-db的hoppscotch-aio容器对宿主机暴露的端口3000 主应用 3100 自托管管理面板sh-admin 3170 后端 API 3200 webapp bundle server 3080 Caddy 80 端口映射just-backend下没有hoppscotch-app所以 3000/3200 不存在hoppscotch-backend独立服务另暴露3180:80与3170:3170hoppscotch-sh-admin暴露3280:80与3100:3100db 容器占用5432。验证方式仓库里有一份现成的 healthcheck.sh它展示了各端点的健康检查逻辑非子路径模式ENABLE_SUBPATH_BASED_ACCESS非true时依次检查http://localhost:3000、http://localhost:3100、http://localhost:3170/ping判断响应行为HTTP/1.[01] [23]..即 2xx/3xx子路径模式ENABLE_SUBPATH_BASED_ACCESStrue时检查http://localhost:${HOPP_AIO_ALTERNATE_PORT:-80}/backend/ping。你可以按同样的端点手动验证# default / default-no-dbAIO 模式下的三个入口 curl -I http://localhost:3000 curl -I http://localhost:3100 curl http://localhost:3170/pingjust-backend场景没有 3000 端点只验证后端与管理面板curl http://localhost:3170/ping curl -I http://localhost:3100数据库侧hoppscotch-db配置了 healthcheckpg_isready -U $POSTGRES_USER -d $POSTGRES_DB间隔 5s、重试 10 次default与just-backend中 backend/migrate 容器都声明了condition: service_healthy即数据库通过健康检查之前后端不会启动。启动初期如果看到容器还在等待可用docker compose ps查看 db 是否已变为 healthy。另外default里hoppscotch-migrate是一次性容器启动命令为sh -c pnpm exec prisma migrate deploy它跑完迁移即退出属于正常现象不是故障。边界与注意事项default-no-db的注释标注为 purely developmental仓库文档未承诺它是生产级的外部数据库方案如果按这个路径部署遇到问题优先核对DATABASE_URL见 docker-compose.yml 第 43 行注释与.env是否一致。想换 TLS 或修改应用托管方式注释指引去看 packages/hoppscotch-selfhost-web/Caddyfile 与 packages/hoppscotch-sh-admin/Caddyfile 中的 Caddyfile。仓库根目录还有 docker-compose.deploy.yml但它首行注释写明 THIS IS NOT TO BE USED FOR PERSONAL DEPLOYMENTS!仅供内部测试部署使用个人自托管不要拿它替代docker-compose.yml。小结选择逻辑只有一条要不要内置数据库、要不要 Web 界面。要两者都要、且没有现成 Postgres选default已有外部 Postgres选default-no-db并改DATABASE_URL只关心后端链路、不启动 webapp选just-backend。三者共用同一份.env参照 .env.example启动后按上文端点逐一请求2xx/3xx 即视为对应组件就绪。【免费下载链接】hoppscotchOpen-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem Cloud • Web, Desktop CLI • Open-Source Alternative to Postman, Insomnia项目地址: https://gitcode.com/GitHub_Trending/ho/hoppscotch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价