Skip to main content
GPUStack · LLM 推論 · Cloudflare Tunnel · Docker · NVIDIA

專案概述

把一台 GPU 主機架成 LLM、VLM、Embedding、Rerank 的推論服務。GPUStack v2.1.2 的 server 與 worker 以 Docker Compose 啟動,對外透過 Cloudflare Tunnel 曝露,主機不需開放任何入站埠號。對外介面走 OpenAI 相容格式,原本用 openai SDK 的程式幾乎不用改就能接上。

核心功能

  • server 與 worker 兩個容器,docker compose up 一次帶起
  • Cloudflare Tunnel 對外,主機防火牆不開入站埠
  • 兩組 hostname 分流:API 用 CF Access Service Token,Web UI 用 Email 白名單
  • OpenAI 相容端點(/v1/chat/completions),可直接套 openai SDK
  • 模型從 Web UI 部署,來源支援 HuggingFace、Ollama 或本地路徑

專案架構

server 與 worker 走內部 bridge 網路溝通,推論容器以 host network 掛在 worker 上,外部只接觸得到 Cloudflare 那一層。

快速開始

1

前置依賴(全新主機才需要)

確認 GPU、安裝 Docker Engine 與 NVIDIA Container Toolkit、建立資料目錄。
2

設定環境變數

填入 admin 密碼、server/worker 共用 Token、HuggingFace Token、Cloudflare Tunnel Token。
3

設定 Cloudflare Tunnel

Zero Trust → Tunnels 建立 Tunnel,Public Hostname 的 service URL 指向容器名稱 http://gpustack:80,不是 localhost。
4

啟動並確認

注意事項

走 Service Token 的 API hostname,其 Public Hostname 的 Access 欄位不要綁任何 Application。綁了的話 cloudflared 會在 origin 端再驗一次,把 Service Token 的 JWT 丟掉,CF edge 回 502。.env 含密碼與各種 Token,不要提交版本控制。

實際應用面

適合在實驗室或沒有公網 IP 的主機上自架 LLM/VLM 推論,對外提供程式化 API 給其他服務呼叫,同時不想開防火牆入站埠、也不想另租雲端 GPU 的情境。

相關連結