Self-hosted service
wu529778790/panhub.shenzjd.com avatar
wu529778790/panhub.shenzjd.com

PanHub Review: A Static Netdisk Search Aggregator for Vue Deployments

PanHub 网盘聚合搜索 · Netdisk Search Aggregator。一个搜索框聚合夸克/阿里云盘/百度/115/迅雷等网盘资源,多源聚合去重、智能排序、插件熔断隔离。零数据库轻量部署,支持 Docker / Vercel / Cloudflare。Aggregate netdisk links into one search.

1,766 stars702 forksVueNOASSERTION

At a glance

What is it?
PanHub combines searches from Telegram channels and third-party plugins into one Vue interface for Aliyun Drive, Quark, Baidu Netdisk, 115, Thunder and other services. Its static-first deployment is straightforward, but the noncommercial licence and limited documentation for plugin and authentication configuration narrow its practical audience.
Who is it for?
PanHub suits personal, research and other clearly noncommercial projects that need one search interface across multiple netdisk providers. It is a poor fit for a commercial service, an internal business deployment or anyone who needs documented plugin configuration and a complete backend setup guide.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 29 days ago.
What is it written in?
Mainly Vue, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What PanHub Searches and Who It Is For

PanHub addresses the fragmentation of netdisk search. Instead of opening separate searches for Aliyun Drive, Quark, Baidu Netdisk, 115, Thunder, UC, Tianyi Cloud Drive, 123 Netdisk, Mobile Cloud Drive and magnet links, the project presents one search box and combines results from Telegram channels and third-party plugins. The supported platform list is broad, but the README does not claim that every provider is backed by a first-party API. It describes these as aggregated netdisk resources and public web links.

The interface is intended for users who want to find a link through one page and then use the provider's own sharing or transfer flow. The README says that results can be deduplicated across sources and sorted, while links that appear invalid receive a weak warning rather than an automatic block. It also documents recommended search terms, selected resources, QR codes for desktop use, and automatic assembly of provider-specific commands for supported links.

This is not a general web search engine or a personal cloud drive manager. It does not promise permanent hosting of files, account management, or guaranteed availability of a third-party resource. The operator still has to deal with source quality, link expiry, provider terms and applicable law. PanHub is most relevant to people who understand those boundaries and want a lightweight front end for public netdisk discovery.

PanHub's Vue and Static Deployment Architecture

The repository is a Vue 3 application built with Vite and TypeScript. The package manifest defines `dev`, `build`, `preview` and `typecheck` scripts. The documented production path is a static build whose output is placed in `dist`. The README says the build uses a relative `base`, which allows the generated application to be served from a repository subpath as well as from a domain root.

The source side is organized as a frontend project with pages and assets under `src/`, public files under `public/`, and deployment configuration in `vite.config.ts` and `wrangler.jsonc`. The documented runtime path is intentionally thin. A static host serves the compiled assets, while requests involving search, anonymous tickets, authentication and transfer are associated with independent services and upstream sources. The README does not document the API base URL, plugin manifest format, Telegram connection configuration or the complete request contract, so those parts cannot be reproduced from the repository documentation alone.

That boundary matters for adoption. A static host can serve the Vue application, but the README does not present a database as part of this project. Its description of “zero database” and zero operations means that the repository is not documented as requiring a local database deployment. It does not mean that a third-party search source, authentication service or provider can be operated without its own terms and availability.

Docker Installation and a First Static Build

The repository includes a two-stage `Dockerfile`. The first stage uses Node 20 to install dependencies and run `npm run build`; the second stage copies `dist` into `nginx:1.27-alpine`. The resulting container exposes port 80 and includes a health check for the home page. The README provides a direct image command, which is the shortest documented first deployment.

For a local container run, use the command exactly as documented:

bash
docker run -d --name panhub.shenzjd.com -p 8080:80 ghcr.io/wu529778790/panhub.shenzjd.com:latest

After the container starts, open `http://localhost:8080` as shown in the README. The image is intended to be pulled automatically when it is not available locally. The container serves nginx on port 80, so the host port is mapped to 8080 in this example. The Dockerfile documents no required environment variables.

A source-based local build is also documented through the package scripts. Install the locked dependencies and compile the frontend with:

bash
npm ci
npm run build

The README says to upload the complete `dist/` directory to an arbitrary static host. The package manifest also provides a preview command for inspecting a built application:

bash
npm run preview

The script is defined in `package.json` as `vite preview --port 4173`. This gives a concrete way to inspect the production build locally, but it does not configure the external authentication or search services.

Search, Deduplication, Ranking and Link Warnings

PanHub's main value is not the presence of a search input by itself, but the aggregation layer described by the README. Telegram channels and third-party plugins are combined, duplicates are removed, and results are sorted. The exact ranking algorithm, tie-breaking rules and source weighting are not included in the documentation, so operators should not assume that result order is reproducible or neutral.

The project also distinguishes a suspicious link from a transfer result. The README describes an amber indicator for links that appear invalid and says that the actual transfer operation supplies the conclusion. This is a useful design choice for a search interface because a search result can disappear between indexing and use. It also means that the warning is not a guarantee of future availability. Search providers and upstream channels can remove links after PanHub has displayed them.

For supported netdisk links, the project can construct the official command format associated with the provider. It also documents a desktop QR code workflow for moving a resource to a phone, while mobile users can open the address directly. These features depend on the link type and the provider's current sharing behavior. The README does not specify which provider formats are implemented in every plugin or how failures are surfaced when a plugin returns malformed data.

Authentication, Plugin Limits and Operational Boundaries

Search is documented as open to visitors. The README says that an anonymous ticket issued by wx-auth is reported with requests, while obtaining a transfer requires login. Authentication is handled by a separate wx-auth service, with the documented methods involving following a public account and verification code, or scanning with a mini program. PanHub therefore does not present itself as a self-contained identity system.

The plugin system is also the least specified part of the project in the available documentation. The README says that third-party plugins participate in aggregation, but it does not provide a plugin installation command, configuration schema, timeout setting, retry policy or per-plugin secret format. It does mention plugin circuit breaking and isolation as a feature, yet the repository layout and README do not provide enough detail to explain how an operator adds or verifies those settings.

There is a clear resource and compliance boundary. The README asks users to access the service through a browser, not through scripts or server-side proxy forwarding, and asks operators not to commit keys or private configuration. It also states that the project does not store or propagate copyrighted content and directs users to comply with local law and platform terms. Those statements reduce ambiguity about intent, but they do not turn third-party links into content that an operator can safely redistribute without separate review.

PanHub Compared With Provider-Native Search

The clearest alternative is searching inside one netdisk provider's own application or website. That approach keeps discovery within a single provider's index and account context. It does not need PanHub's Telegram and plugin aggregation layer, and it avoids the additional dependency on an independent anonymous-ticket and login service. For a person who already uses only Baidu Netdisk or only Aliyun Drive, provider-native search may be simpler.

PanHub changes the trade-off. Its search box is designed to compare results from multiple public sources in one interface, remove duplicates across those sources and present links for several provider types together. It also adds cross-source ranking, recommended terms and selected-resource navigation. The benefit is breadth and convenience, not control over the underlying provider index.

The comparison also exposes the operational boundary. A provider-native search has one upstream relationship, while PanHub has several source relationships, including Telegram channels and plugins. PanHub can isolate a source with circuit breaking, according to the README, but it cannot guarantee that every upstream source is current or compliant. A deployment that values source diversity may accept that trade-off; a deployment that requires one accountable index may prefer the native service.

Licensing, Maintenance and Upgrade Work

The repository identifies its licence as PolyForm Noncommercial License 1.0.0, with a custom classification in GitHub. The README permits personal learning, research and other noncommercial use, modification and distribution. It states that commercial use, including paid services, commercial website deployment and advertising monetization, requires prior written authorization from the author. This is a significant adoption constraint for agencies, hosted services and any deployment connected to revenue, even if the application itself is not sold.

The licence file should be reviewed directly before redistribution or commercial planning. This article does not provide legal advice, and the README's summary is not a substitute for the licence text. The same caution applies to third-party plugins, Telegram content and the linked netdisk resources, whose permissions may differ from PanHub's own licence.

PanHub is not archived, and the last push was on 2026-09-24. That indicates recent repository activity for this review, but it does not establish a release cadence. The repository has no GitHub releases, so there is no documented tagged upgrade path in the repository information. Upgrading a deployment therefore means checking repository changes and rebuilding, rather than selecting a documented release. The package manifest also limits the direct dependency surface to Vue, a QR code generator and TagCloud, while deployment behavior depends on external services.

Editorial conclusion

PanHub suits personal, research and other clearly noncommercial projects that need one search interface across multiple netdisk providers. It is a poor fit for a commercial service, an internal business deployment or anyone who needs documented plugin configuration and a complete backend setup guide. Verify first that your intended use complies with PolyForm Noncommercial License 1.0.0, then confirm whether the required Telegram and plugin sources are configured for your deployment. The repository is not archived, and its last push was on 2026-09-24, but it has no GitHub releases, so upgrade planning must use repository commits and deployment output rather than release tags.

Frequently asked questions

How do I install PanHub with Docker?

The README documents running the published GHCR image and mapping host port 8080 to container port 80 with `docker run -d --name panhub.shenzjd.com -p 8080:80 ghcr.io/wu529778790/panhub.shenzjd.com:latest`. It says to open `http://localhost:8080` after the container starts.

Does PanHub allow visitors to search without logging in?

Yes. The README says search is open to visitors and uses an anonymous ticket issued by wx-auth. Logging in is required for the transfer action associated with “获取”.

Where can PanHub be deployed?

The documented options include Vercel, Cloudflare Pages, GitHub Pages, Docker and any static host that serves the generated `dist/` directory. The README says the build uses a relative `base` for subpath deployments.

Can PanHub be used for commercial services?

The README says commercial use requires prior written authorization under PolyForm Noncommercial License 1.0.0. It specifically includes paid services, commercial website deployment and advertising monetization among the examples requiring authorization.

What information does the README give about configuring Telegram and third-party plugins?

It identifies Telegram channels and third-party plugins as aggregation sources and mentions deduplication, sorting and circuit-breaker isolation. It does not document a plugin installation command, configuration schema or Telegram connection settings, so those details require verification in the repository or from the source services.

Official sources

  1. Issues
  2. Project website
  3. README
  4. wu529778790/panhub.shenzjd.com on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/wu529778790-panhub-shenzjd-com.svg)](https://hysenlabs.com/projects/wu529778790-panhub-shenzjd-com)

Was this useful?