Nomploy Nomad Packs

← All packs

nzbget v0.1.0

Media

NZBGet — a fast, efficient Usenet (NZB) downloader with a web UI, great as a download client for the *arr stack. Deployed as a single host-networked Nomad service.

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

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

1 task http 6789 2 volumes image lscr.io/linuxserver/nzbget:latest tracks :latest image bumped today
Variables 14
values.hcl

Save as values.hcl, edit, then run:

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

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

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

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

# Host port for the NZBGet web UI.
port = 6789

# Named volume mounted at /config (settings).
data_volume = "nzbget_data"

# Named volume mounted at /downloads — completed and intermediate downloads.
downloads_volume = "nzbget_downloads"

# User ID that owns the files (PUID).
puid = 1000

# Group ID that owns the files (PGID).
pgid = 1000

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

# Web UI username (NZBGET_USER).
username = "nzbget"

# Web UI password (NZBGET_PASS). CHANGE THIS.
password = "tegbzn6789"

# Placement constraints. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources.
resources = {
    cpu    = 300
    memory = 256
  }
NameTypeDefaultDescription
job_name string
"nzbget"
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/nzbget:latest"
The NZBGet container image. Pin a tag in production.
port number
6789
Host port for the NZBGet web UI.
data_volume string
"nzbget_data"
Named volume mounted at /config (settings).
downloads_volume string
"nzbget_downloads"
Named volume mounted at /downloads — completed and intermediate downloads.
puid number
1000
User ID that owns the files (PUID).
pgid number
1000
Group ID that owns the files (PGID).
tz string
"UTC"
Container timezone (TZ), e.g. Europe/Bratislava.
username string
"nzbget"
Web UI username (NZBGET_USER).
password key string
"tegbzn6789"
Web UI password (NZBGET_PASS). CHANGE THIS.
constraints list
[]
Placement constraints. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 300
    memory = 256
  }
The task resources.
Back up this pack

This pack stores data in 2 Docker named volumes: nzbget_datanzbget_downloads

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/nzbget_data/_data \
  /var/lib/docker/volumes/nzbget_downloads/_data

rclone (sync to S3/R2)

rclone sync /var/lib/docker/volumes/nzbget_data/_data backup:<bucket>/nzbget_data
rclone sync /var/lib/docker/volumes/nzbget_downloads/_data backup:<bucket>/nzbget_downloads

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

nzbget

NZBGet — a fast, resource-efficient Usenet (NZB) downloader with a clean web UI. Low CPU and memory use makes it a great download client for the *arr stack or standalone Usenet grabbing.

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 nzbget --registry=nomploy

Configure

Variable Default Description
port 6789 Web UI port.
username nzbget Web UI username (NZBGET_USER).
password tegbzn6789 Change this. Web UI password (NZBGET_PASS).
image lscr.io/linuxserver/nzbget:latest Container image. Pin a tag in production.
data_volume nzbget_data /config — settings.
downloads_volume nzbget_downloads /downloads — your downloads.
puid / pgid 1000 / 1000 User/group that owns the files (PUID/PGID).
tz UTC Container timezone (TZ).
resources { cpu = 300, memory = 256 } Task resources.

Add your Usenet provider and indexers in the UI. Pairs with prowlarr and the *arr apps — share the /downloads path so they can import. Change the default password, and pin the job to the node holding the volumes with constraints.