Skip to content

FAQ

How is HubProxy different from free CDN proxies?

HubProxy is fully self-hosted — you control data and bandwidth without relying on unstable third-party CDNs. Customize rate limits, registry allowlists, and upstream SOCKS5 proxies.

Is a reverse proxy required for public deployment?

Strongly recommended. It provides TLS, correct client IP passing, and avoids exposing port 5000. See Recommended Architecture.

What’s the difference between rate-limit and registry whitelists?

[security].whiteList exempts IPs from rate limiting. [access].whiteList controls which Docker images, GitHub repos, and Hugging Face resources can be proxied. They are independent.

How do I format GitHub acceleration URLs?

Prefix the full original URL with your HubProxy host, e.g. https://example.com/https://github.com/owner/repo/releases/download/.... Path-prefix rewrites like /github/owner/... are not supported. See GitHub Acceleration.

GitHub acceleration shows ‘invalid input’?

Common causes: wrong URL format (using /github/ prefix instead of full URL), or incorrect Nginx Host header. See GitHub Acceleration and issue #62.

How does the offline image API work?

Two steps: GET /api/image/download?image=...&mode=prepare for a token, then download with that token. There is no /v2/offline/... path. See Offline Images.

All users share one IP behind Cloudflare?

If HubProxy connects directly to Cloudflare edges, rate limits apply per Cloudflare IP, not per user. Add a private reverse proxy that writes CF-Connecting-IP to forwarding headers.

How do I verify the service is running?

Visit https://example.com/ready — a healthy response includes ready, service, version, and uptime_sec. This path counts toward the IP rate limit; avoid high-frequency polling.

Docker logs consuming too much disk?

docker run defaults to ~20MB logs. Docker Compose preconfigures 200m × 3 rotation; adjust logging.options in compose as needed.

Does HubProxy support resume or multi-part downloads?

GitHub / Hugging Face file downloads: yes. The proxy forwards Range headers and passes through upstream 206 responses — wget -c and multi-threaded Range downloads work (except .sh / .ps1 script rewriting).

Docker pulls: no in-layer Range. Blobs are streamed whole; clients retry failed layers or pull layers in parallel.

Offline tar API: no resume. See Transfer Capabilities.

How do I add a new acceleration domain?

Add a regex to githubExps in src/handlers/github.go. See Development & Build.

Why can’t I pull private images with authType github?

authType labels auth endpoints only — credential injection is not yet implemented. All registry pulls use anonymous auth and client Authorization headers are not forwarded. Private authenticated images cannot be pulled through HubProxy.