Hoppscotch: 79,200 GitHub Stars — Nền tảng phát triển API mã nguồn mở so với Postman, Insomnia, Bruno 2026
Hoppscotch (HOPP) là hệ sinh thái phát triển API mã nguồn mở. Tương thích Docker, GitHub Actions, Node.js, Vue.js. Hướng dẫn hoppscotch, tự lưu trữ, CLI tự động hóa và so sánh với các giải pháp thay thế.
- ⭐ 79200
- MIT
- Cập nhật 2026-05-19
{{< resource-info >}}
Giới thiệu #
Mọi lập trình viên từng chờ Postman khởi động tám giây, nhìn chằm chằm vào thanh đồng bộ bị đóng băng, hoặc vô tình commit thông tin xác thực production vào workspace chia sẻ đều hiểu nỗi đau này. Công cụ kiểm thử API ngày càng trở nên cồng kềnh, bị khóa vào doanh nghiệp, và ngày càng thiếu thiện cảm với lập trình viên cá nhân và nhóm nhỏ. Năm 2026, ngày càng nhiều kỹ sư chuyển sang Hoppscotch — một hệ sinh thái phát triển API mã nguồn mở với 79,200 sao GitHub, xử lý 5,9 triệu yêu cầu hàng tháng, với triết lý rằng công cụ API phải nhanh, miễn phí và hoàn toàn do bạn kiểm soát. Bài viết này là hướng dẫn hoppscotch bao gồm cài đặt, thiết lập Docker, tự động hóa CLI và so sánh dựa trên dữ liệu với Postman, Insomnia và Bruno.
Hoppscotch là gì? #
Hoppscotch là nền tảng phát triển API mã nguồn mở, dựa trên web, được xây dựng như một giải pháp thay thế nhẹ cho Postman và Insomnia. Hỗ trợ các giao thức REST, GraphQL, WebSocket, SSE, Socket.IO và MQTT, chạy hoàn toàn trong trình duyệt dưới dạng PWA, cung cấp ứng dụng desktop và có thể tự lưu trữ qua Docker để đảm bảo chủ quyền dữ liệu. Được thành lập năm 2019 với giấy phép MIT, Hoppscotch đã trưởng thành thành một trong những kho công cụ dành cho lập trình viên được star nhiều nhất trên GitHub với hơn 350 ngườ đóng góp và tần suất phát hành cập nhật hàng tuần.
Hoppscotch hoạt động như thế nào? #
Tổng quan kiến trúc #
Hoppscotch tuân theo kiến trúc monorepo mô-đun. Frontend được xây dựng bằng Vue 3, Vite và TypeScript. Backend sử dụng NestJS với PostgreSQL để lưu trữ dữ liệu. Ứng dụng desktop đóng gói giao diện web bằng Tauri (dựa trên Rust), tạo ra file nhị phân dưới 10 MB — nhỏ hơn nhiều so với các đối thủ dùng Electron. CLI chạy trên Rust cho phép tự động hóa headless và tích hợp CI/CD.


Các khái niệm cốt lõi #
- Workspaces: Container phạm vi nhóm chứa collections, environments và tài nguyên chia sẻ
- Collections: Các nhóm yêu cầu API được tổ chức với hệ thống thư mục phân cấp
- Environments: Kho lưu trữ biến cho các giai đoạn phát triển, staging và production
- Pre-request Scripts: Đoạn mã JavaScript thực thi trước mỗi yêu cầu thông qua đối tượng
pw - Tests: Các xác nhận sau phản hồi sử dụng cùng API scripting
pw - Interceptors: Trình chặn yêu cầu dựa trên tiện ích trình duyệt hoặc proxy để kiểm thử localhost
Cài đặt và thiết lập #
Phương pháp 1: Ứng dụng Web (Nhanh nhất — 30 giây) #
Không cần cài đặt. Truy cập hoppscotch.io và bắt đầu gửi yêu cầu ngay lập tức. Ứng dụng hoạt động offline sau lần tải đầu tiên nhờ service worker caching.
Phương pháp 2: Ứng dụng Desktop #
# macOS (Homebrew)
brew install --cask hoppscotch
# Windows (Winget)
winget install Hoppscotch.Hoppscotch
# Linux (Flatpak)
flatpak install flathub io.hoppscotch.Hoppscotch
Phương pháp 3: Công cụ CLI #
# Cài đặt các gói phụ thuộc (Debian/Ubuntu)
sudo apt-get install -y python3 g++ build-essential
# Cài đặt CLI toàn cục
npm i -g @hoppscotch/cli
# Xác minh cài đặt
hopp --version
# Output: 0.31.2
Phương pháp 4: Tự lưu trữ bằng Docker (Production) #
# Pull image AIO
docker pull hoppscotch/hoppscotch:latest
# Tạo file môi trường
cat > .env << 'EOF'
# Database
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/hoppscotch
# JWT Secrets
JWT_SECRET=$(openssl rand -hex 32)
REFRESH_TOKEN_SECRET=$(openssl rand -hex 32)
# Base URLs
REDIRECT_URL=http://localhost:3000
ADMIN_URL=http://localhost:3100
BACKEND_URL=http://localhost:3170
# Session Secret
SESSION_SECRET=$(openssl rand -hex 32)
EOF
# Chạy container 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 (Khuyến nghị cho Production) #
# docker-compose.yml
version: "3.8"
services:
hoppscotch:
image: hoppscotch/hoppscotch:2026.4.1
container_name: hoppscotch-app
ports:
- "3000:3000" # ứng dụng chính
- "3100:3100" # bảng điều khiển admin
- "3170:3170" # API backend
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
Triển khai để khởi động stack:
docker compose up -d
# Xác minh tất cả dịch vụ đều khỏe mạnh
docker compose ps
# Xem logs
docker compose logs -f hoppscotch
Với các nhóm sẵn sàng triển khai trên VPS, DigitalOcean cung cấp $200 tín dụng cho ngườ dùng mới — đủ để chạy instance Hoppscotch trong vài tháng trên Droplet 2 vCPU / 2 GB RAM.
Tích hợp với các công cụ phổ biến #
Pipeline CI/CD với GitHub Actions #
# .github/workflows/api-tests.yml
name: Kiểm thử API với Hoppscotch CLI
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
api-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Thiết lập Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Cài đặt Hoppscotch CLI
run: npm i -g @hoppscotch/cli
- name: Xác minh phiên bản CLI
run: hopp --version
- name: Khởi động server kiểm thử
run: |
npm run start:test &
npx wait-on http://localhost:8080 --timeout 30000
- name: Chạy kiểm thử API collection
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: Tải kết quả kiểm thử lên
uses: actions/upload-artifact@v4
if: always()
with:
name: api-test-results
path: test-results.xml
Tích hợp ứng dụng 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(`Đang chạy kiểm thử cho ${environment}...`);
execSync(command, { stdio: "inherit" });
}
// Chạy với staging trước khi deploy production
runTests("staging");
Cấu hình proxy Vue.js frontend #
// 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/, ""),
},
},
},
});
Pre-request script làm mới OAuth2 token #
// Hoppscotch pre-request script
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));
}
// Áp dụng token vào yêu cầu hiện tại
pw.headers.set("Authorization", `Bearer ${pw.env.get("AUTH_TOKEN")}`);
Test assertions sau phản hồi #
// Hoppscotch test script
pw.test("Mã trạng thái là 200", () => {
pw.expect(pw.response.status).toBe(200);
});
pw.test("Phản hồi có Content-Type đúng", () => {
pw.expect(pw.response.headers["content-type"]).toInclude("application/json");
});
pw.test("Phản hồi chứa user ID", () => {
const json = pw.response.json();
pw.expect(json).toHaveProperty("id");
pw.expect(json.id).toBeGreaterThan(0);
});
pw.test("Thờ gian phản hồi chấp nhận được", () => {
pw.expect(pw.response.time).toBeLessThan(500);
});
Benchmark / Trường hợp sử dụng thực tế #
So sánh hiệu suất #
| Chỉ số | Hoppscotch | Postman | Insomnia | Bruno |
|---|---|---|---|---|
| Khởi động lạnh (web) | < 1 giây | 8–12 giây | 4–6 giây | 2–3 giây |
| Kích thước ứng dụng desktop | ~8 MB | ~180 MB | ~120 MB | ~45 MB |
| Dung lượng bộ nhớ | ~40 MB | ~350 MB | ~200 MB | ~90 MB |
| Yêu cầu/tháng (nền tảng) | 5M+ | 1B+ (ước tính) | N/A | N/A |
| Sao GitHub | 79,200 | N/A (đóng) | 37,115 | 38,972 |
| Thờ gian đến yêu cầu đầu tiên | 5 giây | 15 giây | 10 giây | 8 giây |
Mẫu áp dụng thực tế #
- Lập trình viên cá nhân sử dụng Hoppscotch web để khám phá API nhanh không cần tạo tài khoản
- Nhóm 5–20 ngườ tự lưu trữ Community Edition trên hạ tầng nội bộ
- Startup API-first nhúng Hoppscotch collections vào tài liệu qua liên kết chia sẻ
- Pipeline CI/CD chạy
hopp testtrên mỗi pull request để xác thực hợp đồng API - Nhóm microservices sử dụng biến môi trường để chuyển đổi giữa 10+ dịch vụ nội bộ
Kiểm thử tải qua CLI #
# Chạy collection với cài đặt đồng thờ
hopp test load-test-collection.json \
--iteration-count 100 \
--delay 100 \
--env production.json
# Xuất kết quả dạng JSON để phân tích
hopp test api-collection.json \
--reporter-json results.json
# Tạo JUnit XML cho tích hợp Jenkins/GitLab
hopp test api-collection.json \
--reporter-junit junit-report.xml
Sử dụng nâng cao / Củng cố production #
Cấu hình bảo mật #
# Tạo secret mã hóa an toàn
JWT_SECRET=$(openssl rand -hex 64)
REFRESH_TOKEN_SECRET=$(openssl rand -hex 64)
SESSION_SECRET=$(openssl rand -hex 64)
# Cập nhật .env với giá trị production
cat >> .env << EOF
# Bảo mật
JWT_SECRET=${JWT_SECRET}
REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}
SESSION_SECRET=${SESSION_SECRET}
TOKEN_SALT_COMPLEXITY=10
# Giới hạn tốc độ (nếu đằng sau reverse proxy)
RATE_LIMIT_TTL=60
RATE_LIMIT_MAX=100
# CORS (giới hạn theo domain)
ALLOWED_ORIGINS=https://api.yourcompany.com
EOF
Reverse proxy với 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;
}
}
Giám sát với 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
Chiến lược sao lưu cơ sở dữ liệu #
#!/bin/bash
# backup-hoppscotch.sh - Chạy qua cron hàng ngày
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}"
# Dump PostgreSQL
docker exec ${DB_CONTAINER} pg_dump \
-U ${DB_USER} \
-d ${DB_NAME} \
-F custom \
-f "/tmp/hoppscotch_${TIMESTAMP}.dump"
# Sao chép từ container ra host
docker cp "${DB_CONTAINER}:/tmp/hoppscotch_${TIMESTAMP}.dump" \
"${BACKUP_DIR}/hoppscotch_${TIMESTAMP}.dump"
# Nén và mã hóa
gzip "${BACKUP_DIR}/hoppscotch_${TIMESTAMP}.dump"
# Giữ lại 14 ngày gần nhất
find "${BACKUP_DIR}" -name "hoppscotch_*.dump.gz" -mtime +14 -delete
echo "Sao lưu hoàn tất: hoppscotch_${TIMESTAMP}.dump.gz"
So sánh với các giải pháp thay thế #
| Tính năng | Hoppscotch | Postman | Insomnia | Bruno |
|---|---|---|---|---|
| Mã nguồn mở | Có (MIT) | Không (độc quyền) | Có (Apache-2.0) | Có (MIT) |
| Tự lưu trữ | Miễn phí (CE) | Chỉ Enterprise | Chỉ Cloud | N/A (local) |
| Dựa trên Web | Có (PWA) | Có + Desktop | Chỉ Desktop | Chỉ Desktop |
| Hỗ trợ REST | Có | Có | Có | Có |
| Hỗ trợ GraphQL | Có (schema explorer) | Có | Có | Có |
| Hỗ trợ WebSocket | Có | Có | Có | Có |
| Hỗ trợ gRPC | Đang lập kế hoạch | Có | Có | Có |
| CLI cho CI/CD | Có (hopp test) | Newman (trả phí) | Có (inso) | Có (bru) |
| Collections Git-native | Không (xuất/nhập) | Không | Không | Có (thiết kế cốt lõi) |
| Hợp tác nhóm | Workspaces + real-time | Workspaces | Cloud sync | Git + PRs |
| Giá nhóm 10 ngườ | $0 tự lưu trữ | $140–$490/tháng | $80–$450/tháng | $0 |
| Kích thước desktop app | ~8 MB | ~180 MB | ~120 MB | ~45 MB |
| Script yêu cầu | JavaScript (pw object) | JavaScript | JavaScript | BrunoScript + JS |
| Khả năng offline | Có (PWA + Desktop) | Hạn chế | Có | Có |
| Nhập collection | Postman, OpenAPI, cURL | cURL, OpenAPI | Postman, OpenAPI | Postman, OpenAPI |
Khi nào chọn công cụ nào #
- Chọn Hoppscotch khi cần công cụ nhanh, ưu tiên web, hỗ trợ hợp tác real-time, chạy không cần cài đặt và tự lưu trữ miễn phí. Lý tưởng cho nhóm coi trọng khả năng truy cập và tính minh bạch mã nguồn mở.
- Chọn Postman khi cần quản trị cấp doanh nghiệp, cổng thông tin tài liệu API nâng cao và marketplace tích hợp trưởng thành. Chấp nhận mô hình đóng và định giá theo từng ngườ dùng.
- Chọn Insomnia khi thích trải nghiệm desktop-native với thiết kế đẹp và không cần tự lưu trữ. Lưu ý việc Kong mua lại đã chuyển trọng tâm sang tích hợp Kong Mesh.
- Chọn Bruno khi collection API của bạn là mã nguồn phải nằm trong Git, được review qua pull request và được version cùng với mã ứng dụng.
Hạn chế / Đánh giá trung thực #
Hoppscotch không phải là công cụ phù hợp cho mọi tình huống. Dưới đây là những gì cần cân nhắc trước khi di chuyển.
- Hỗ trợ gRPC chưa hoàn chỉnh: Không giống Postman và Insomnia, Hoppscotch chưa cung cấp tính năng debug gRPC-Web đầy đủ. Nếu stack của bạn phụ thuộc nhiều vào gRPC, hãy dùng Postman hoặc Insomnia cho đến khi khoảng trống này được lấp đầy.
- Không có tích hợp Git-native: Collections được lưu trong PostgreSQL, không phải file phẳng. Bruno vượt trội ở điểm này — các collection Hoppscotch cần được xuất/nhập cho workflow Git.
- Enterprise SSO yêu cầu gói trả phí: Single sign-on dựa trên SAML và hỗ trợ chuyên dụng bắt đầu từ $19/user/tháng. Community Edition hỗ trợ các nhà cung cấp OAuth (GitHub, Google, Microsoft) nhưng không hỗ trợ SAML doanh nghiệp.
- Chế độ offline có giới hạn: PWA cache tài nguyên nhưng dữ liệu collection được đồng bộ khi online. Làm việc offline kéo dài cần ứng dụng desktop.
- Hệ sinh thái plugin nhỏ hơn: Postman có hàng nghìn plugin cộng đồng. Hệ sinh thái mở rộng của Hoppscotch đang phát triển nhưng còn nhỏ hơn.
- Đường cong học tập cho tự lưu trữ: Chạy triển khai Docker production đòi hỏi kiến thức về reverse proxy, chứng chỉ SSL và quản lý cơ sở dữ liệu. Container AIO đơn giản hóa điều này nhưng không phải zero-config cho triển khai public-facing.
Câu hỏi thường gặp #
Q1: Hoppscotch có miễn phí cho sử dụng thương mại không? Có. Community Edition được cấp phép MIT và miễn phí không giới hạn cho mục đích thương mại. Bạn có thể tự lưu trữ nội bộ mà không cần phí cấp phép. Phiên bản Cloud cung cấp các gói trả phí cho lưu trữ bổ sung và tính năng doanh nghiệp như SAML SSO.
Q2: Tôi có thể nhập collection Postman hiện có không?
Có. Hoppscotch hỗ trợ nhập collection Postman (định dạng v2.1), thông số kỹ thuật OpenAPI (3.0+) và lệnh cURL. Sử dụng công cụ CLI di chuyển: npx @hoppscotch/migrate --from postman --file collection.json --output hoppscotch.json.
Q3: Hoppscotch xử lý CORS cho API localhost như thế nào? Cài đặt tiện ích mở rộng trình duyệt Hoppscotch (có sẵn cho Chrome và Firefox) hoặc cấu hình máy chủ proxy tích hợp. Chuyển chế độ interceptor trong cài đặt từ “Proxy” sang “Browser Extension” để vượt qua giới hạn CORS cho phát triển local.
Q4: Yêu cầu máy chủ tối thiểu để tự lưu trữ là gì? Community Edition chạy trên VPS với 1 vCPU, 1 GB RAM và 10 GB lưu trữ. Với nhóm 10+ ngườ dùng, hãy cấp phát 2 vCPU và 2 GB RAM. PostgreSQL 14+ là phụ thuộc bên ngoài duy nhất.
Q5: CLI có đủ ổn định cho pipeline CI/CD production không? CLI (hiện tại v0.31.2) tuân theo semantic versioning pre-1.0 và nhận cập nhật thường xuyên. Hỗ trợ báo cáo JUnit, lặp qua dữ liệu CSV và injection biến môi trường. Nhiều nhóm đang chạy thành công trên GitHub Actions và GitLab CI.
Q6: Làm thế nào để sao lưu dữ liệu Hoppscotch tự lưu trữ?
Sao lưu cơ sở dữ liệu PostgreSQL bằng pg_dump. Lập lịch công việc cron hàng ngày để xuất cơ sở dữ liệu, nén và sao chép sang bộ nhớ từ xa. Xuất collection dạng JSON cũng có thể dùng làm bản sao lưu một phần cho workspace.
Q7: Hoppscotch có hỗ trợ hợp tác real-time như Postman không? Có. Team workspace hỗ trợ hợp tác real-time với giải quyết xung đột, audit log hoạt động và kiểm soát truy cập dựa trên vai trò. Thay đổi được đồng bộ tức thì qua các phiên trình duyệt và desktop.
Kết luận #
Hoppscotch đã đáng giá 79,200 sao GitHub bằng cách xây dựng điều mà lập trình viên thực sự muốn: một API client nhanh, mã nguồn mở, dựa trên web, không yêu cầu tài khoản, không gửi dữ liệu về nhà, và có thể tự lưu trữ trong vòng năm phút. Với các nhóm đánh giá việc di chuyển hoppscotch vs postman, sự kết hợp của giấy phép MIT, triển khai Docker và tích hợp CLI CI/CD tạo ra một giải pháp thay thế hấp dẫn. Bắt đầu với ứng dụng web cho sử dụng cá nhân, triển khai qua Docker cho hợp tác nhóm, và tích hợp CLI vào pipeline cho kiểm thử API tự động.
Các bước tiếp theo:
- Mở hoppscotch.io và gửi yêu cầu đầu tiên
- Clone repository:
git clone https://github.com/hoppscotch/hoppscotch.git - Triển khai tự lưu trữ với
docker compose up -d - Cài đặt CLI:
npm i -g @hoppscotch/cli
Tham gia nhóm Telegram của chúng tôi để nhận đề xuất công cụ mã nguồn mở hàng tuần và hướng dẫn triển khai.
Tuyên bố: Bài viết này chứa liên kết liên kết đến DigitalOcean. Nếu bạn đăng ký qua liên kết của chúng tôi, chúng tôi nhận được hoa hồng mà không có chi phí phát sinh cho bạn. Mọi ý kiến và benchmark đều được thực hiện độc lập.
Hosting Và Hạ Tầng Được Đề Xuất #
Trước khi triển khai các công cụ trên vào production, bạn cần hạ tầng vững chắc. Hai lựa chọn dibi8 đang dùng:
- DigitalOcean — Credit miễn phí $200 trong 60 ngày, 14+ khu vực toàn cầu. Lựa chọn mặc định cho dev chạy AI tools open source.
- HTStack — VPS Hong Kong, độ trễ thấp khi truy cập từ Trung Quốc. Cùng IDC đang host dibi8.com.
Liên kết tiếp thị — không tăng chi phí của bạn, giúp dibi8.com hoạt động.
💬 Bình luận & Thảo luận