Skip to content

Storage Layout

Weaver keeps three directories apart: durable state, in-progress work, and finished output. Decide where each lives before the first real job, because the data directory is hard to move later and the other two shape every job’s disk traffic.

DirectoryHoldsDefault
DataDatabase, stored NZBs, API keys, RSS state, scripts, internal state/config in Docker, %LOCALAPPDATA%\weaver on Windows, the --config path elsewhere
IntermediateEach job’s in-progress download and repair work<data>/intermediate
CompleteFinished output, under a category subfolder when set<data>/complete

Set the intermediate and complete directories in Settings → General. In Docker, seed them with WEAVER_INTERMEDIATE_DIR and WEAVER_COMPLETE_DIR before the first start. Those variables are ignored once a value is stored. Set the complete directory explicitly in every container, or finished downloads land inside the config volume.

Keep Intermediate And Complete On One Filesystem

Section titled “Keep Intermediate And Complete On One Filesystem”

The move to the complete directory is a rename when both directories share a filesystem and a full copy when they do not. In Docker every volumes: entry is its own filesystem, so mount one parent and use subdirectories:

environment:
WEAVER_INTERMEDIATE_DIR: /downloads/intermediate
WEAVER_COMPLETE_DIR: /downloads/complete
volumes:
- weaver-config:/config
- /mnt/storage/downloads:/downloads

Direct store changes the calculation for slow storage. With completed downloads on a NAS, direct store assembles the output at its final destination during the download, so the payload crosses the link once and there is no move step. See Direct Store.

Scryer imports from Weaver’s complete directory. Give both containers the same host path at the same container path so Scryer can hard-link instead of copy:

services:
scryer:
volumes:
- scryer-config:/config
- /mnt/storage:/data
weaver:
environment:
WEAVER_INTERMEDIATE_DIR: /data/intermediate
WEAVER_COMPLETE_DIR: /data/downloads
volumes:
- weaver-config:/config
- /mnt/storage:/data

Scryer’s Library Layout explains the one-mount rule from its side.

A category can override its destination. Leave the field blank and its jobs land in <complete>/<name>/. Aliases with * and ? let RSS, the watch folder, and API clients name the category loosely. See Category.

Destination overrides outside the complete directory are legal, but a restore onto a machine without those paths asks you to remap them. See Backup And Restore.

  • Scripts live in <data>/scripts. See Post-Processing Scripts.
  • Watch folder is any local folder Weaver can read and rename files in. See RSS And Watch Folder.
  • Logs on Windows go to %LOCALAPPDATA%\weaver\logs\weaver.log. Elsewhere set WEAVER_LOG_FILE.
  • System Info in the left navigation shows the filesystem, storage class, and free space behind every configured path.