Weaver

Weaver

Docker app from Weaver's Repository

Overview

Weaver is engineered to be the fastest and most secure Usenet downloader. Its native Rust core downloads NZBs, decodes articles, verifies and repairs PAR2 data, and extracts archives in one tightly integrated process. A concurrent pipeline can begin extraction while later archive volumes are still downloading, reducing handoffs, disk churn, and time to completion. Security is built in with TLS-protected provider connections, encrypted-at-rest credentials and API keys, persistent encryption-key management, optional login and scoped API access, least-privilege container support, and keyless-signed release images. Weaver also provides adaptive multi-server dispatch, global and per-server speed limits, schedules, ISP bandwidth caps, provider quotas, queue controls, real-time history and progress updates, detailed logs, Prometheus metrics, and a responsive web UI, all without requiring separate unrar or PAR2 tools.

Weaver

Official Unraid Community Apps template for Weaver.

Weaver for Unraid

Official Unraid Community Apps template for Weaver, engineered to be the fastest and most secure Usenet downloader. Its native Rust core handles downloading, decoding, repair, and extraction in one tightly integrated application.

Why Weaver

  • Built for speed: native compiled code, adaptive multi-server dispatch, and a concurrent pipeline that can begin extraction while later archive volumes are still downloading
  • Secure by design: TLS-protected provider connections, encrypted-at-rest credentials and API keys, persistent encryption-key management, an administrator login with scoped API access, and support for least-privilege containers
  • One efficient process: NZB downloading, article decoding, PAR2 verification and repair, and RAR/7z extraction without separate unrar or PAR2 utilities
  • Fine-grained control: global and per-server speed limits, schedules, ISP bandwidth caps, provider quotas, queue controls, and category routing
  • Deep observability: real-time queue and history updates, detailed logs, timeline views, health reporting, and Prometheus metrics
  • Trusted distribution: first-party multi-architecture container images signed with Sigstore Cosign

Container

  • Image: ghcr.io/scryer-media/weaver:latest
  • Web UI: container port 9090
  • Persistent configuration: /config
  • Optional download storage: /downloads

Weaver creates /config/encryption.key with mode 0600 when no external key is supplied. Preserve /config; it contains Weaver's database, settings, and the key required to decrypt stored credentials.

The optional /downloads mapping is seeded as /downloads/incomplete and /downloads/complete on first startup. Those locations can subsequently be changed in Weaver's settings.

First Start

Every browser signs in to Weaver with an administrator login. A native install creates that login in a setup wizard, but a container never sees a browser on its own machine, so the login comes from the template instead. Before the first start, fill in Login Username and Login Password in the template. They set WEAVER_BOOTSTRAP_LOGIN_USERNAME and WEAVER_BOOTSTRAP_LOGIN_PASSWORD; the password needs at least 8 characters.

Weaver reads them only while no login exists. Once you have signed in, change the password in Settings → Security and remove the variables if you like; the login lives in /config.

Sonarr, Radarr, Scryer, and other apps connect with an API key from Settings → Security → API Keys, never with the login.

Upgrading From 0.11 Or Earlier

Weaver 0.12.0 brings a new interface and a new access model. An install that existed before 0.12.0 keeps its previous access settings after the upgrade, so nothing changes about who can get in. Your login, sessions, API keys, and download client connections carry over. Pull the new image from the Docker tab as usual.

  • The interface is new. A toggle at the bottom of the sidebar switches that browser back to the previous interface.
  • Framing is blocked. Weaver no longer lets another page embed it in an iframe, so a dashboard that framed the Weaver WebUI now shows an empty panel. Open Weaver in its own tab.
  • Moving to the 0.12.0 access model is optional. Set Access Mode to authenticated under the template's advanced settings and restart the container. If your copy of the template predates that field, add the variable WEAVER_ACCESS_MODE with that value by hand. Every browser signs in again, and networks that used to skip the login now only decide where a browser can be remembered. The move is permanent, so the variable can be removed afterwards. An install that never had a login opens setup instead and asks for a one-time code printed in the container log.

See Security And Access and Upgrading for the full picture.

Reverse Proxy

Behind Nginx Proxy Manager, SWAG, or another proxy, put the public hostname in the template's Allowed Hostnames field and make sure the proxy passes the Host and Origin headers through unchanged. A proxy that rewrites Host breaks Weaver's live updates. See Reverse Proxy.

Support

Branding

icon.png and icon.svg are the Weaver mark, and the two lockup SVGs head this page. They are copies of the generated assets in the Weaver repository, which holds the vector sources and the generator. Regenerate there, then copy here.

Licensing

The files in this template repository are licensed under the MIT License. Weaver itself is licensed under GPL-3.0-or-later with the UnRAR source-code restriction described in the Weaver license.

Install Weaver on Unraid in a few clicks.

Find Weaver in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Weaver Review the template variables and paths Click Install

Requirements

Access to a Usenet provider.

Related apps

Details

Repository
ghcr.io/scryer-media/weaver:latest
Last Updated2026-09-25
First Seen2026-08-05

Runtime arguments

Web UI
http://[IP]:[PORT:9090]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUIPorttcp

HTTP port for the Weaver web interface.

Target
9090
Default
9090
AppdataPathrw

Persistent database, settings, logs, and encryption key.

Target
/config
Default
/mnt/user/appdata/weaver
DownloadsPathrw

Download working and completed-file storage. Optional if you configure other paths in Weaver.

Target
/downloads
Default
/mnt/user/downloads
Login UsernameVariable

Administrator username Weaver creates on its first start. Read only while no login exists; afterwards change the login in Settings > Security.

Target
WEAVER_BOOTSTRAP_LOGIN_USERNAME
Login PasswordVariable

Password for that login, at least 8 characters. Read only while no login exists. Set it together with the username; one without the other stops the container.

Target
WEAVER_BOOTSTRAP_LOGIN_PASSWORD
Access ModeVariable

Leave empty on a new install. Set to authenticated to move an install created before Weaver 0.12.0 to the 0.12.0 access model, where every browser signs in. The move is permanent; the value can be cleared afterwards.

Target
WEAVER_ACCESS_MODE
PUIDVariable

User ID used to own /config and run Weaver.

Default
99
PGIDVariable

Group ID used to own /config and run Weaver.

Default
100
TimezoneVariable

Container timezone, for example America/Denver.

Target
TZ
Default
Etc/UTC
UMASKVariable

Optional octal file-creation mask.

Default
022
Incomplete DirectoryVariable

First-run seed for incomplete and intermediate work.

Target
WEAVER_INTERMEDIATE_DIR
Default
/downloads/incomplete
Complete DirectoryVariable

First-run seed for completed downloads.

Target
WEAVER_COMPLETE_DIR
Default
/downloads/complete
Allowed HostnamesVariable

Optional comma-separated DNS or reverse-proxy hostnames allowed by Weaver's Host validation.

Target
WEAVER_HTTP_ALLOWED_HOSTS