Support Webshare guest downloads without login.

Credentials optional: empty WEBSHARE_* uses file_link without wst (free CDN). Verified against live API; docs and tests updated. Includes cancel→dequeue fix for queued downloads.
This commit is contained in:
2026-08-07 11:31:19 +02:00
parent 97b9215917
commit 798d7d7251
9 changed files with 259 additions and 88 deletions

View File

@@ -61,8 +61,8 @@ Environment variables (required unless noted):
| Variable | Default | Description |
|----------|---------|-------------|
| `WEBSHARE_USERNAME` | | Webshare username or email |
| `WEBSHARE_PASSWORD` | | Webshare password (plain; hashed client-side) |
| `WEBSHARE_USERNAME` | _(empty)_ | Webshare username or email. **Optional** — if empty (with password), runs in **guest** mode |
| `WEBSHARE_PASSWORD` | _(empty)_ | Webshare password (plain; hashed client-side). Optional with username for VIP/session downloads |
| `PORT` | `3001` | HTTP listen port |
| `BASE_URL` | `http://localhost:$PORT` | Public base URL Sonarr must reach (use the Compose service hostname when linking containers) |
| `DOWNLOAD_PATH` | `/downloads/webshare` | Where the fake qBittorrent writes files |
@@ -75,7 +75,9 @@ Environment variables (required unless noted):
| `MCP_ENABLED` | `true` | Set to `0`/`false` to disable the MCP HTTP endpoint |
| `MCP_PATH` | `/mcp` | HTTP path for the Streamable HTTP MCP endpoint |
Copy `.env.example` and fill in credentials. Do not commit a filled `.env`.
Copy `.env.example`. Credentials are **optional**: without them the app uses Webshare **guest**
`file_link` (no `wst`) — search and downloads work, free-tier CDN (`free.*.dl.wsfiles.cz`) is
typically much slower than an authenticated account. Do not commit a filled `.env`.
## Run with Compose