Nomploy Nomad Packs

← All packs

prowlarr v0.1.0

Media

Prowlarr — an indexer manager for the *arr media stack: configure your torrent and Usenet indexers once and Prowlarr syncs them to Sonarr, Radarr, Lidarr, and friends, with search and stats. Deployed as a host-networked Nomad service with a persistent config volume.

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

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

1 task http 9696 1 volume image lscr.io/linuxserver/prowlarr:latest tracks :latest image bumped today
Variables 11
values.hcl

Save as values.hcl, edit, then run:

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

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

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

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

# Host port for the Prowlarr web UI.
port = 9696

# 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 Prowlarr config (/config): the database, settings, and indexer definitions.
config_volume = "prowlarr_config"

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

# Resources for the Prowlarr task.
resources = {
    cpu    = 300
    memory = 256
  }
NameTypeDefaultDescription
job_name string
"prowlarr"
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/prowlarr:latest"
The Prowlarr container image. Pin a tag in production.
port number
9696
Host port for the Prowlarr web UI.
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
"prowlarr_config"
Named volume for Prowlarr config (/config): the database, settings, and indexer definitions.
constraints list
[]
Placement constraints. Pin to the node holding the volume. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 300
    memory = 256
  }
Resources for the Prowlarr task.
Back up this pack

This pack stores data in one Docker named volume: prowlarr_config

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/prowlarr_config/_data

rclone (sync to S3/R2)

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

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

prowlarr

Prowlarr — an indexer manager for the *arr media stack. Configure your torrent and Usenet indexers once, and Prowlarr keeps them in sync across Sonarr, Radarr, Lidarr, Readarr, and more — with unified search, stats, and health checks.

Single host-networked Nomad service with a persistent config volume.

Deploy

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

Configure

Variable Default Description
port 9696 Web UI port.
config_volume prowlarr_config /config — database, settings, indexers.
puid / pgid 1000 / 1000 User/group the app runs as (PUID/PGID).
tz UTC Container timezone (TZ).
image lscr.io/linuxserver/prowlarr:latest Container image. Pin a tag in production.
resources { cpu = 300, memory = 256 } Task resources.

Add indexers, then link the sonarr / radarr packs under Settings > Apps so Prowlarr pushes indexers to them (co-located apps are reachable on 127.0.0.1). Serves plain HTTP — front it with a reverse proxy for TLS. Only use indexers you're entitled to. Pin the job to the node holding the volume with constraints.