Nomploy Nomad Packs

← All packs

sabnzbd v0.1.0

Media

SABnzbd — a powerful, fully-automated Usenet (NZB) download client with a web UI: queue management, post-processing, categories, and an API the *arr apps use. Deployed as a host-networked Nomad service with config and downloads volumes.

nomad-pack run sabnzbd --registry nomploy
…or one line (add registry + run)
curl -fsSL https://packs.nomploy.com/install.sh | sh -s -- sabnzbd

Needs nomad-pack on PATH. The script only adds the nomploy registry and runs this pack.

1 task http 8080 2 volumes image lscr.io/linuxserver/sabnzbd:latest tracks :latest image bumped today
Variables 12
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run sabnzbd -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "sabnzbd"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The SABnzbd container image. Pin a tag in production.
image = "lscr.io/linuxserver/sabnzbd:latest"

# Host port for the SABnzbd web UI. The container listens on 8080.
port = 8080

# User ID the app runs as (PUID).
puid = 1000

# Group ID the app runs as (PGID).
pgid = 1000

# Container timezone (TZ), e.g. Europe/Bratislava.
tz = "UTC"

# Named volume for SABnzbd config (/config): settings and history.
config_volume = "sabnzbd_config"

# Named volume for downloads (/data). Share this with the *arr packs for hardlinks/atomic moves.
data_volume = "media_data"

# Placement constraints. Pin to the node holding the volumes. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# Resources for the SABnzbd task. Par2 repair and unpacking are CPU-bound.
resources = {
    cpu    = 1000
    memory = 512
  }
NameTypeDefaultDescription
job_name string
"sabnzbd"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"lscr.io/linuxserver/sabnzbd:latest"
The SABnzbd container image. Pin a tag in production.
port number
8080
Host port for the SABnzbd web UI. The container listens on 8080.
puid number
1000
User ID the app runs as (PUID).
pgid number
1000
Group ID the app runs as (PGID).
tz string
"UTC"
Container timezone (TZ), e.g. Europe/Bratislava.
config_volume string
"sabnzbd_config"
Named volume for SABnzbd config (/config): settings and history.
data_volume string
"media_data"
Named volume for downloads (/data). Share this with the *arr packs for hardlinks/atomic moves.
constraints list
[]
Placement constraints. Pin to the node holding the volumes. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 1000
    memory = 512
  }
Resources for the SABnzbd task. Par2 repair and unpacking are CPU-bound.
Back up this pack

This pack stores data in 2 Docker named volumes: sabnzbd_configmedia_data

restic

# Run on the node hosting this pack. Point restic at your repo first:
#   export RESTIC_REPOSITORY="s3:https://<account>.r2.cloudflarestorage.com/<bucket>"
#   export RESTIC_PASSWORD="<repo-password>"
#   export AWS_ACCESS_KEY_ID=<key>  AWS_SECRET_ACCESS_KEY=<secret>
restic backup \
  /var/lib/docker/volumes/sabnzbd_config/_data \
  /var/lib/docker/volumes/media_data/_data

rclone (sync to S3/R2)

rclone sync /var/lib/docker/volumes/sabnzbd_config/_data backup:<bucket>/sabnzbd_config
rclone sync /var/lib/docker/volumes/media_data/_data backup:<bucket>/media_data

Paths assume the default Docker volume location (/var/lib/docker/volumes). Restore by stopping the job, restoring files into the same volume, and re-running the pack.

Readme

sabnzbd

SABnzbd — a powerful, fully-automated Usenet (NZB) download client with a web UI: queue management, automatic par2 repair and unpacking, categories, scheduling, and an API the *arr apps use. The Usenet counterpart to the qbittorrent (torrent) pack.

Single host-networked Nomad service with config and downloads volumes.

Deploy

nomad-pack registry add nomploy https://github.com/Nomploy/nomad-packs
nomad-pack run sabnzbd --registry=nomploy

Configure

Variable Default Description
port 8080 Web UI port. The container listens on 8080.
config_volume sabnzbd_config /config — settings and history.
data_volume media_data /data — downloads. *Share with the arr packs.
puid / pgid 1000 / 1000 User/group (PUID/PGID).
tz UTC Container timezone (TZ).
image lscr.io/linuxserver/sabnzbd:latest Container image. Pin a tag in production.
resources { cpu = 1000, memory = 512 } Task resources. Repair/unpack are CPU-bound.

Run the setup wizard, add your Usenet provider, and set download folders under /data. Connect it as the download client in sonarr / radarr / lidarr, sharing the same /data volume for hardlinks.

If you access SABnzbd by a hostname and get an "Access denied / refused" page, add that hostname to host_whitelist in /config/sabnzbd.ini. Serves plain HTTP — front it with a reverse proxy for TLS.