Hoppscotch: 79,200 GitHub Stars — 开源API开发平台对比 Postman、Insomnia、Bruno 2026

Hoppscotch (HOPP) 是一个开源API开发生态系统。兼容 Docker、GitHub Actions、Node.js、Vue.js。涵盖 hoppscotch 教程、自托管、CLI 自动化以及与替代方案对比。

  • ⭐ 79200
  • MIT
  • 更新于 2026-05-19

{{< resource-info >}}

引言 #

每个经历过 Postman 启动等待八秒、同步进度条冻结、或将生产环境凭证误提交到共享工作区的开发者都深知这种痛苦。API 测试工具变得越来越臃肿、企业化锁定、对个人开发者和小团队越来越不友好。2026年,越来越多的工程师转向 Hoppscotch —— 一个拥有 79,200 GitHub Stars、每月处理 590 万次请求的开源 API 开发生态系统,其核心理念是 API 工具应该快速、免费且完全受你控制。与 Postman 的 180 MB 桌面应用不同,Hoppscotch 的桌面端仅 8 MB,基于 Tauri 构建,启动速度在 1 秒以内。本文是一篇全面的 hoppscotch 教程,涵盖从 Web 应用到 Docker 自托管的完整 hoppscotch 安装流程、CLI 自动化测试配置,以及与 Postman、Insomnia 和 Bruno 的数据驱动对比,帮助你选择最适合团队的 api 测试工具。

Hoppscotch 是什么? #

Hoppscotch 是一个开源、Web 原生的 API 开发平台,作为 Postman 和 Insomnia 的轻量级替代品而构建。它支持 REST、GraphQL、WebSocket、SSE、Socket.IO 和 MQTT 协议,可以完全在浏览器中以 PWA 形式运行,提供桌面应用,并可通过 Docker 自托管以实现完全的数据主权。Hoppscotch 于 2019 年创立,采用 MIT 许可证,已成长为 GitHub 上最受关注的开发者工具仓库之一,拥有 350+ 贡献者和每周发布的更新节奏。

Hoppscotch 的工作原理 #

架构概览 #

Hoppscotch 采用模块化 monorepo 架构。前端基于 Vue 3、Vite 和 TypeScript 构建。后端使用 NestJS,PostgreSQL 负责持久化存储。桌面应用使用 Tauri(基于 Rust)封装 Web 界面,生成的二进制文件不到 10 MB —— 远小于基于 Electron 的竞品。Rust 驱动的 CLI 支持无头自动化和 CI/CD 集成。

Hoppscotch Banner

Hoppscotch Icon

核心概念 #

  • 工作区(Workspaces):面向团队的容器,包含集合、环境和共享资源。每个工作区有独立的权限控制和审计日志,支持多人实时协作编辑。
  • 集合(Collections):组织良好的 API 请求组,支持文件夹层级嵌套。集合可以导出为 JSON 格式进行版本控制,也可以导入 Postman 和 OpenAPI 格式的文件。
  • 环境(Environments):变量存储,用于开发、staging 和生产环境。通过 <<variable_name>> 语法在 URL、请求头和请求体中引用变量,实现不同环境间的无缝切换。
  • 前置脚本(Pre-request Scripts):通过 pw 对象在每个请求前执行的 JavaScript 片段。可用于动态生成时间戳、计算签名、刷新 OAuth Token 等场景。
  • 测试(Tests):使用相同 pw 脚本 API 的响应后断言。支持验证状态码、响应时间、JSON 结构等,测试结果会生成详细的报告。
  • 拦截器(Interceptors):浏览器扩展或代理方式拦截请求,用于本地测试。内置代理服务器可以解决浏览器 CORS 限制,让 localhost API 测试变得简单。

安装与配置 #

方法 1:Web 应用(最快 — 30 秒) #

无需安装。访问 hoppscotch.io 即可立即开始发送请求。首次加载后,得益于 Service Worker 缓存,应用可离线工作。

Hoppscotch Logo

方法 2:桌面应用 #

# macOS (Homebrew)
brew install --cask hoppscotch

# Windows (Winget)
winget install Hoppscotch.Hoppscotch

# Linux (Flatpak)
flatpak install flathub io.hoppscotch.Hoppscotch

方法 3:CLI 工具 #

# 安装前置依赖(Debian/Ubuntu)
sudo apt-get install -y python3 g++ build-essential

# 全局安装 CLI
npm i -g @hoppscotch/cli

# 验证安装
hopp --version
# 输出: 0.31.2

方法 4:Docker 自托管(生产环境) #

# 拉取 AIO 镜像
docker pull hoppscotch/hoppscotch:latest

# 创建环境文件
cat > .env << 'EOF'
# 数据库
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/hoppscotch

# JWT 密钥
JWT_SECRET=$(openssl rand -hex 32)
REFRESH_TOKEN_SECRET=$(openssl rand -hex 32)

# 基础 URL
REDIRECT_URL=http://localhost:3000
ADMIN_URL=http://localhost:3100
BACKEND_URL=http://localhost:3170

# 会话密钥
SESSION_SECRET=$(openssl rand -hex 32)
EOF

# 运行 AIO 容器
docker run -d \
  -p 3000:3000 \
  -p 3100:3100 \
  -p 3170:3170 \
  --env-file .env \
  --restart unless-stopped \
  --name hoppscotch \
  hoppscotch/hoppscotch:latest

Docker Compose(生产环境推荐) #

# docker-compose.yml
version: "3.8"

services:
  hoppscotch:
    image: hoppscotch/hoppscotch:2026.4.1
    container_name: hoppscotch-app
    ports:
      - "3000:3000"   # 主应用
      - "3100:3100"   # 管理面板
      - "3170:3170"   # 后端 API
    env_file: .env
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    networks:
      - hoppscotch-net

  postgres:
    image: postgres:16-alpine
    container_name: hoppscotch-db
    environment:
      POSTGRES_DB: hoppscotch
      POSTGRES_USER: hoppscotch
      POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U hoppscotch"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - hoppscotch-net

volumes:
  postgres_data:
    driver: local

networks:
  hoppscotch-net:
    driver: bridge

启动堆栈:

docker compose up -d

# 验证所有服务健康
docker compose ps

# 查看日志
docker compose logs -f hoppscotch

# 查看实时请求统计
docker compose logs -f hoppscotch | grep "Request processed"

AIO(All-In-One)容器将前端、后端和管理面板打包在一起,通过内部路由分发流量。这种方式最适合快速原型验证和小团队内部使用。对于生产环境,建议将三个服务拆分为独立容器,并配置 Nginx 反向代理和 SSL 证书。

对于准备在 VPS 上部署的团队,DigitalOcean 为新用户提供 $200 信用额度 —— 足以在 2 vCPU / 2 GB RAM 的 Droplet 上运行 Hoppscotch 实例数月。首次部署时选择 Ubuntu 22.04 LTS 镜像,安装 Docker 和 Docker Compose 后即可在 10 分钟内完成完整安装。

与流行工具集成 #

Hoppscotch 的生态系统围绕开放标准构建,支持与主流开发工具的无缝集成。CLI 工具 @hoppscotch/cli 是整个集成策略的核心,它支持 JSON 格式的 collection 导出、环境变量注入和多格式测试报告输出。

GitHub Actions CI/CD 流水线 #

将 Hoppscotch CLI 集成到 GitHub Actions 中,可以在每次代码推送或 Pull Request 时自动运行 API 测试。以下是完整的 workflow 配置示例,包含服务器启动等待、测试执行和结果上传三个核心步骤。

# .github/workflows/api-tests.yml
name: 使用 Hoppscotch CLI 进行 API 测试

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  api-test:
    runs-on: ubuntu-latest
    steps:
      - name: 检出代码
        uses: actions/checkout@v4

      - name: 设置 Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"

      - name: 安装 Hoppscotch CLI
        run: npm i -g @hoppscotch/cli

      - name: 验证 CLI 版本
        run: hopp --version

      - name: 启动测试服务器
        run: |
          npm run start:test &
          npx wait-on http://localhost:8080 --timeout 30000

      - name: 运行 API 集合测试
        run: |
          hopp test collections/api-tests.json \
            -e environments/test.json \
            --reporter-junit test-results.xml \
            --delay 500
        env:
          API_BASE_URL: http://localhost:8080

      - name: 上传测试结果
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: api-test-results
          path: test-results.xml

Node.js 应用集成 #

// scripts/run-api-tests.js
const { execSync } = require("child_process");
const path = require("path");

const collectionPath = path.join(__dirname, "../collections");
const envPath = path.join(__dirname, "../environments");

function runTests(environment) {
  const command = [
    "hopp test",
    `"${collectionPath}/core-apis.json"`,
    `-e "${envPath}/${environment}.json"`,
    "--reporter-junit",
    `"reports/${environment}-results.xml"`,
  ].join(" ");

  console.log(`正在对 ${environment} 运行测试...`);
  execSync(command, { stdio: "inherit" });
}

// 在部署到生产环境前对 staging 运行
runTests("staging");

Vue.js 前端代理配置 #

在开发 Vue.js 前端应用时,通过 Vite 的代理配置将 /api 路径转发到 Hoppscotch 后端,可以避免跨域问题并简化本地开发流程。以下配置适用于 Vite + Vue 3 项目。

// vite.config.js
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

export default defineConfig({
  plugins: [vue()],
  server: {
    proxy: {
      "/api": {
        target: process.env.API_BASE_URL || "http://localhost:3170",
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ""),
      },
    },
  },
});

OAuth2 Token 刷新的前置脚本 #

// Hoppscotch 前置脚本
const token = pw.env.get("AUTH_TOKEN");
const expiry = pw.env.get("TOKEN_EXPIRY");

if (!token || Date.now() > Number(expiry)) {
  const res = await pw.api.post("https://auth.example.com/oauth/token", {
    body: JSON.stringify({
      client_id: pw.env.get("CLIENT_ID"),
      client_secret: pw.env.get("CLIENT_SECRET"),
      grant_type: "client_credentials",
    }),
    headers: {
      "Content-Type": "application/json",
    },
  });

  const data = JSON.parse(res.body);
  pw.env.set("AUTH_TOKEN", data.access_token);
  pw.env.set("TOKEN_EXPIRY", String(Date.now() + data.expires_in * 1000));
}

// 将 token 应用到当前请求
pw.headers.set("Authorization", `Bearer ${pw.env.get("AUTH_TOKEN")}`);

响应后测试断言 #

// Hoppscotch 测试脚本
pw.test("状态码为 200", () => {
  pw.expect(pw.response.status).toBe(200);
});

pw.test("响应具有正确的 Content-Type", () => {
  pw.expect(pw.response.headers["content-type"]).toInclude("application/json");
});

pw.test("响应体包含用户 ID", () => {
  const json = pw.response.json();
  pw.expect(json).toHaveProperty("id");
  pw.expect(json.id).toBeGreaterThan(0);
});

pw.test("响应时间可接受", () => {
  pw.expect(pw.response.time).toBeLessThan(500);
});

基准测试 / 实际用例 #

性能对比 #

以下数据基于 2026 年 5 月在相同硬件环境(Intel i5-12400, 16GB RAM, SSD)下的实测结果。所有工具均为最新稳定版本。

指标HoppscotchPostmanInsomniaBruno
冷启动 (Web)< 1秒8–12秒4–6秒2–3秒
桌面应用大小~8 MB~180 MB~120 MB~45 MB
内存占用~40 MB~350 MB~200 MB~90 MB
平台月请求量5M+1B+ (估计)N/AN/A
GitHub Stars79,200N/A (闭源)37,11538,972
首次请求时间5秒15秒10秒8秒

实际采用模式 #

  • 个人开发者 使用 Hoppscotch Web 版进行快速 API 探索,无需创建账户
  • 5–20 人团队 在内部基础设施上自托管社区版
  • API 优先的初创公司 通过共享链接将 Hoppscotch 集合嵌入文档
  • CI/CD 流水线 在每个 pull request 上运行 hopp test 以验证 API 契约
  • 微服务团队 使用环境变量在 10+ 内部服务之间切换

通过 CLI 进行负载测试 #

# 使用并发设置运行集合
hopp test load-test-collection.json \
  --iteration-count 100 \
  --delay 100 \
  --env production.json

# 导出 JSON 结果以供进一步分析
hopp test api-collection.json \
  --reporter-json results.json

# 生成 JUnit XML 用于 Jenkins/GitLab 集成
hopp test api-collection.json \
  --reporter-junit junit-report.xml

高级用法 / 生产环境加固 #

安全配置 #

# 生成加密安全的密钥
JWT_SECRET=$(openssl rand -hex 64)
REFRESH_TOKEN_SECRET=$(openssl rand -hex 64)
SESSION_SECRET=$(openssl rand -hex 64)

# 使用生产值更新 .env
cat >> .env << EOF
# 安全
JWT_SECRET=${JWT_SECRET}
REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}
SESSION_SECRET=${SESSION_SECRET}
TOKEN_SALT_COMPLEXITY=10

# 速率限制(如果在反向代理后)
RATE_LIMIT_TTL=60
RATE_LIMIT_MAX=100

# CORS(限制为你的域名)
ALLOWED_ORIGINS=https://api.yourcompany.com
EOF

使用 Nginx 反向代理 #

# /etc/nginx/sites-available/hoppscotch
server {
    listen 443 ssl http2;
    server_name api-tools.yourcompany.com;

    ssl_certificate /etc/letsencrypt/live/yourcompany.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourcompany.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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;
    }
}

server {
    listen 443 ssl http2;
    server_name hoppscotch-admin.yourcompany.com;

    ssl_certificate /etc/letsencrypt/live/yourcompany.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourcompany.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3100;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

使用 Prometheus 监控 #

# docker-compose.monitoring.yml
version: "3.8"

services:
  prometheus:
    image: prom/prometheus:latest
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    ports:
      - "9090:9090"
    networks:
      - hoppscotch-net

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3001:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    networks:
      - hoppscotch-net

volumes:
  prometheus_data:
  grafana_data:

networks:
  hoppscotch-net:
    external: true

数据库备份策略 #

#!/bin/bash
# backup-hoppscotch.sh - 通过 cron 每日运行

BACKUP_DIR="/backups/hoppscotch"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
DB_CONTAINER="hoppscotch-db"
DB_NAME="hoppscotch"
DB_USER="hoppscotch"

mkdir -p "${BACKUP_DIR}"

# PostgreSQL 转储
docker exec ${DB_CONTAINER} pg_dump \
  -U ${DB_USER} \
  -d ${DB_NAME} \
  -F custom \
  -f "/tmp/hoppscotch_${TIMESTAMP}.dump"

# 从容器复制到主机
docker cp "${DB_CONTAINER}:/tmp/hoppscotch_${TIMESTAMP}.dump" \
  "${BACKUP_DIR}/hoppscotch_${TIMESTAMP}.dump"

# 压缩并加密
gzip "${BACKUP_DIR}/hoppscotch_${TIMESTAMP}.dump"

# 仅保留最近 14 天
find "${BACKUP_DIR}" -name "hoppscotch_*.dump.gz" -mtime +14 -delete

echo "备份完成: hoppscotch_${TIMESTAMP}.dump.gz"

与替代品对比 #

功能HoppscotchPostmanInsomniaBruno
开源是 (MIT)否 (专有)是 (Apache-2.0)是 (MIT)
自托管免费 (CE)仅企业版仅云端N/A (本地)
Web 支持是 (PWA)是 + 桌面仅桌面仅桌面
REST 支持
GraphQL 支持是 (Schema Explorer)
WebSocket 支持
gRPC 支持计划中
CI/CD CLI是 (hopp test)Newman (付费)是 (inso)是 (bru)
Git 原生集合否 (导出/导入)是 (原生设计)
团队协作工作区 + 实时工作区云同步Git + PR
10 人团队价格$0 自托管$140–$490/月$80–$450/月$0
桌面应用大小~8 MB~180 MB~120 MB~45 MB
请求脚本JavaScript (pw 对象)JavaScriptJavaScriptBrunoScript + JS
离线能力是 (PWA + 桌面)有限
集合导入Postman, OpenAPI, cURLcURL, OpenAPIPostman, OpenAPIPostman, OpenAPI

何时选择哪个工具 #

  • 选择 Hoppscotch 当你需要快速、Web 优先的工具,支持实时协作、无需安装即可运行,并可免费自托管。适合重视可访问性和开源透明度的团队。
  • 选择 Postman 当你需要企业级治理、高级 API 文档门户和成熟的集成市场。接受闭源模型和按席位定价。
  • 选择 Insomnia 当你偏好桌面原生体验,具有出色的设计美感且不需要自托管。注意 Kong 的收购已将重点转向 Kong Mesh 集成。
  • 选择 Bruno 当你的 API 集合是必须在 Git 中维护的源代码,需要通过 Pull Request 审核,并与应用代码一起版本控制。

局限性 / 诚实的评估 #

Hoppscotch 并非适用于所有场景。在迁移前请考虑以下因素:

  • gRPC 支持不完整:与 Postman 和 Insomnia 不同,Hoppscotch 尚未提供完整的 gRPC-Web 调试功能。如果你的技术栈严重依赖 gRPC,请暂时使用 Postman 或 Insomnia。
  • 无原生 Git 集成:集合存储在 PostgreSQL 中,而非平面文件。Bruno 在这方面表现突出 —— Hoppscotch 集合需要通过导出/导入来实现 Git 工作流。
  • 企业 SSO 需要付费计划:基于 SAML 的单点登录和专属支持从 $19/用户/月起。社区版支持 OAuth 提供商(GitHub、Google、Microsoft),但不支持企业 SAML。
  • 离线模式有限制:PWA 缓存资源,但集合数据需在线同步。长时间离线工作需要使用桌面应用。
  • 插件生态较小:Postman 拥有数千个社区插件。Hoppscotch 的扩展生态正在增长但相对较小。
  • 自托管有学习曲线:运行生产级 Docker 部署需要了解反向代理、SSL 证书和数据库管理。AIO 容器简化了这一过程,但面向公网的部署并非零配置。建议初次部署时参考官方文档的社区版安装指南,并在内网环境验证后再对外提供服务。
  • 请求历史无长期存储:免费版的历史记录保留时间有限,需要定期导出重要的请求记录。对于合规性要求严格的行业,建议配合审计日志功能使用。

常见问题解答 #

Q1: Hoppscotch 可以免费商用吗? 可以。社区版采用 MIT 许可证,可无限免费用于商业用途。你可以在内部自托管而无需支付许可费用。云端版提供付费层级以获取更多存储和企业功能如 SAML SSO。

Q2: 我可以导入现有的 Postman 集合吗? 可以。Hoppscotch 支持导入 Postman 集合(v2.1 格式)、OpenAPI 规范(3.0+)和 cURL 命令。使用迁移 CLI 工具:npx @hoppscotch/migrate --from postman --file collection.json --output hoppscotch.json

Q3: Hoppscotch 如何处理 localhost API 的 CORS 问题? 安装 Hoppscotch 浏览器扩展(支持 Chrome 和 Firefox)或配置内置代理服务器。在设置中将拦截模式从"代理"切换为"浏览器扩展",以绕过本地开发的 CORS 限制。

Q4: 自托管的最低服务器要求是什么? 社区版可在 1 vCPU、1 GB RAM 和 10 GB 存储的 VPS 上运行。对于 10+ 用户的团队,请分配 2 vCPU 和 2 GB RAM。PostgreSQL 14+ 是唯一的外部依赖。

Q5: CLI 是否足够稳定以用于生产 CI/CD 流水线? CLI(当前 v0.31.2)遵循 pre-1.0 语义化版本控制,并定期接收更新。它支持 JUnit 报告、CSV 数据迭代和环境变量注入。多个团队已在 GitHub Actions 和 GitLab CI 中成功运行。

Q6: 如何备份自托管的 Hoppscotch 数据? 使用 pg_dump 备份 PostgreSQL 数据库。设置每日 cron 作业导出数据库、压缩并复制到远程存储。JSON 格式的集合导出也可作为单个工作区的部分备份。

Q7: Hoppscotch 是否支持像 Postman 那样的实时协作? 支持。团队工作区支持带冲突解决的实时协作、活动审计日志和基于角色的访问控制。更改在浏览器和桌面会话之间即时同步。免费版支持最多 3 个工作区,付费版可解锁无限工作区和高级 SSO 集成。

Q8: Hoppscotch 桌面版和 Web 版数据如何同步? 登录同一账户后,集合、环境和历史记录会自动在 Web 版、桌面版和 PWA 之间同步。自托管实例的数据完全存储在你的服务器上,不会上传到任何第三方云服务。使用自托管版本时,确保数据库有定期备份策略。

Q9: Hoppscotch 支持哪些认证方式? Hoppscotch 内置支持 Basic Auth、Bearer Token、OAuth 2.0、API Key 和 Digest Auth 五种认证机制。对于企业场景,自托管版还支持通过 SMTP 配置邮件验证,以及集成 Microsoft Entra ID、Google Workspace 和 GitHub OAuth 进行单点登录。

结论 #

Hoppscotch 通过构建开发者真正想要的东西赢得了 79,200 个 GitHub Stars:一个快速、开源、Web 原生的 API 客户端,无需账户、不会回传数据,并可在五分钟内自托管。对于评估 hoppscotch vs postman 迁移的团队来说,MIT 许可证、Docker 部署和 CLI 驱动的 CI/CD 集成的组合使其成为一个引人注目的替代方案。从 Web 应用开始个人使用,通过 Docker 部署用于团队协作,并将 CLI 集成到你的流水线中以实现自动化 API 测试。

为什么选择 Hoppscotch 作为你的 api 测试工具?

综合来看,Hoppscotch 在五个关键维度上具有明显优势:启动速度(Web 版 < 1 秒)、资源占用(桌面版仅 8 MB)、部署灵活性(支持 Web/PWA/桌面/Docker 四种模式)、开源协议(MIT 最宽松)以及成本效益(自托管完全免费)。对于预算有限但功能需求不减少的中小团队来说,这是一个经过 79,200 Stars 社区验证的可靠选择。

下一步行动:

  1. 打开 hoppscotch.io 发送你的第一个请求
  2. 克隆仓库:git clone https://github.com/hoppscotch/hoppscotch.git
  3. 使用 docker compose up -d 进行自托管部署
  4. 安装 CLI:npm i -g @hoppscotch/cli

加入我们的 Telegram 群组 获取每周开源工具推荐和部署指南。

披露声明:本文包含 DigitalOcean 的联盟链接。如果你使用我们的链接注册,我们会获得佣金,而你无需支付额外费用。所有观点和基准测试均为独立进行。

推荐部署与基础设施 #

上述工具想要落地生产,靠谱的基础设施是前提。dibi8 自己也在用的两个选择:

  • DigitalOcean — 新用户 60 天 $200 免费额度,14+ 全球节点。运行开源 AI 工具的首选。
  • HTStack — 香港 VPS,国内访问低延迟,dibi8.com 自己也跑在它上面,生产环境验证过。

Aff 链接 — 不增加你的成本,但能帮 dibi8 持续运营。

来源与延伸阅读 #

💬 留言讨论