Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

NZBGet can turn a Raspberry Pi into an always-on Usenet downloader, but it does not include a Usenet account or an NZB indexer. You’ll need those, plus persistent storage for downloads. For a Pi 4, Pi 5, or another supported 64-bit ARM system, Docker Compose is a manageable way to keep NZBGet’s configuration and files in separate, persistent directories. This guide sets it up, keeps the web interface on your local network, and covers a native installation for users who prefer fewer software layers.

What NZBGet does—and what you need

NZBGet is a C++ Usenet downloader designed to run efficiently on lower-powered devices. The maintained project is the nzbgetcom/nzbget continuation of the original project. NZBGet reads .nzb files, connects to a news server, downloads articles, repairs and extracts files when needed, and writes the results to configured folders.

NZBGet is not a Usenet provider, indexer, or source of content. To download, you need a Usenet access account and its server details, and an NZB source. Use Usenet and NZB sources lawfully.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

As of August 18, 2026, the project’s release page lists version 26.2 Linux ARM assets, dated June 18, 2026. That page is the better version reference: the repository landing page may show v26.1 as “Latest.”

#1 Best Overall
Freenove Ultimate Starter Kit for Raspberry Pi 5 4 Zero 2 W (NOT Included)
  • 5 sets of code: Python (compatible with 2&3), C, Java, Scratch and Processing (Scratch and Processing code provide graphical interfaces)
  • Detailed tutorial: Can be downloaded (in English, 962-page in total) or viewed online (original in English, can be translated into other languages by browsers) (The tutorial link can be found on the product box, no paper tutorial)
  • 128 projects from simple to complex: Provides step-by-step guide with electronics and components knowledge, each project has schematics, wiring diagrams, complete code and detailed explanations
  • 223 items in total: This ultimate kit includes the most commonly used electronic components, modules, sensors, wires and other compatible items
  • Compatible models: Raspberry Pi 5 / 500 / 400 / 4B / 3B+ / 3B / 3A+ / 2B / 1B+ / 1A+ / Zero 2 W / Zero W / Zero (NOT included in this kit)

Check your Pi, operating system, and storage

Confirm the operating system architecture

The operating system and container runtime architecture matter—not just the Pi’s model. In a terminal, run:

uname -m
cat /etc/os-release

Typical uname -m results are aarch64 for 64-bit ARM, armv7l for 32-bit ARMv7, and armv6l for 32-bit ARMv6. The official NZBGet Docker image supports amd64, arm64, and armhf. Docker’s official Raspberry Pi OS packages do not support ARMv6 devices such as the original Pi 1 and Pi Zero family; see Docker’s Raspberry Pi OS installation guidance. A native installer may be a separate option for older ARM hardware, but verify compatibility for that system.

Choose hardware and storage for the workload

A Pi 4 or Pi 5 is a sensible choice for sustained downloading. A Pi 3 may work, but heavy PAR2 repair and archive extraction can take longer. Prefer 64-bit Raspberry Pi OS and ARM64 where available; ARMHF/armv7 is the relevant path for 32-bit ARMv7 systems.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use a USB 3 SSD or hard drive, or a reliably mounted NAS share, for active and completed downloads rather than putting all write-heavy activity on the microSD card. Keep at least three distinct logical paths: configuration, in-progress data, and completed data. When practical, put intermediate and completed folders on the same filesystem: moving finished files between filesystems can require a full copy and extra free space rather than a quick rename.

Before installing, update and check available resources and space:

sudo apt update
sudo apt full-upgrade -y
df -h
free -h
uname -m

Also arrange SSH or local terminal access, a stable network connection, and the correct timezone if you plan to schedule downloads. Have your provider’s server hostname, TLS port, username, password, and connection limit ready. An indexer account is optional but useful if you use an indexer to find NZB files.

Recommended: install NZBGet with Docker Compose

Install Docker using its current instructions

Follow the architecture-specific steps in Docker’s official Raspberry Pi OS guide rather than relying on an old install script or command. The guide identifies Raspberry Pi OS 32-bit Bookworm 12 and Bullseye 11, and warns that Docker Engine v28 is the last major release with official 32-bit Raspberry Pi OS support; new v29 major releases will not provide those packages.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If you have conflicting packages installed, Docker documents removing them before installation:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
  sudo apt-get remove "$pkg"
done

Removing packages does not automatically delete Docker data under /var/lib/docker/. Once Docker is installed, verify the engine and a test container:

Rank #2
Vilros Raspberry Pi 5 Starter Kit MAX – Official 8GB RAM Pi 5 Board, 128GB Preloaded Micro SD, Case, Power Supply & Cooling – Complete Plug-and-Play Kit for Beginners & Advanced Users
  • 𝗦𝗲𝗮𝗺𝗹𝗲𝘀𝘀 𝗦𝗲𝘁𝘂𝗽 𝘄𝗶𝘁𝗵 𝗣𝗿𝗲-𝗜𝗻𝘀𝘁𝗮𝗹𝗹𝗲𝗱 𝗢𝗦: Start creating right out of the box—our kit arrives with Raspberry Pi OS already on the microSD card, saving you time and effort from day one.
  • 𝗘𝘃𝗲𝗿𝘆𝘁𝗵𝗶𝗻𝗴 𝗬𝗼𝘂 𝗡𝗲𝗲𝗱, 𝗔𝗹𝗹 𝗶𝗻 𝗢𝗻𝗲 𝗕𝗼𝘅: From the case to the power supply and a generous microSD card, we’ve bundled every essential so you can skip the extra shopping and focus on building your dream project.
  • 𝗔𝗱𝘃𝗮𝗻𝗰𝗲𝗱 𝗖𝗼𝗼𝗹𝗶𝗻𝗴 𝗳𝗼𝗿 𝗣𝗲𝗮𝗸 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲: Enjoy smooth, reliable operation as our whisper-quiet fan and heat sinks work together to keep your Pi running cool—even during intensive tasks.
  • 𝗩𝗲𝗿𝘀𝗮𝘁𝗶𝗹𝗶𝘁𝘆 𝗳𝗼𝗿 𝗔𝗻𝘆 𝗣𝗿𝗼𝗷𝗲𝗰𝘁: Whether it’s coding lessons, retro gaming, smart home setups, or robotics experiments, our kit powers unlimited possibilities, letting you tailor your Pi adventure to your passion.
  • 𝗚𝗹𝗼𝗯𝗮𝗹𝗹𝘆 𝗧𝗿𝘂𝘀𝘁𝗲𝗱 𝗯𝘆 𝗘𝗻𝘁𝗵𝘂𝘀𝗶𝗮𝘀𝘁𝘀 & 𝗘𝗱𝘂𝗰𝗮𝘁𝗼𝗿𝘀: Join a worldwide community of hobbyists, teachers, and first-time makers who rely on Vilros for top-tier quality, comprehensive support, and ongoing inspiration.
docker version
docker run --rm hello-world

You can optionally add your account to the Docker group with sudo usermod -aG docker "$USER". Log out and back in, or start a new session, before relying on non-root Docker commands. Membership in this group grants substantial control over the host, so use it only for trusted accounts.

Create persistent folders

These paths are examples; choose locations on the disk or mounted share you intend to use. For a quick setup in your home directory:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
mkdir -p ~/docker/nzbget/config
mkdir -p ~/docker/nzbget/intermediate
mkdir -p ~/docker/nzbget/completed
cd ~/docker/nzbget

For a dedicated disk mounted at /srv/usenet, for example:

sudo mkdir -p /srv/usenet/nzbget/config
sudo mkdir -p /srv/usenet/intermediate
sudo mkdir -p /srv/usenet/completed

Use a stable mount point for external storage, and make sure the disk is mounted before Docker starts. Otherwise the container can write into an empty mount-point directory on the boot device instead of the intended disk.

Write the Compose file

Create compose.yaml in ~/docker/nzbget (or your chosen project directory). This example uses the project’s official image and a pinned version so an image pull does not silently change versions:

services:
  nzbget:
    image: nzbgetcom/nzbget:v26.2
    container_name: nzbget
    environment:
      PUID: "1000"
      PGID: "1000"
      TZ: "America/New_York"
      NZBGET_USER: "nzbget"
      NZBGET_PASS: "replace-with-a-strong-password"
    volumes:
      - ./config:/config
      - ./intermediate:/intermediate
      - ./completed:/completed
    ports:
      - "6789:6789"
    restart: unless-stopped

Change the timezone to yours, the password to a strong unique value, and PUID/PGID to the numeric user and group IDs that should own the files. Find those IDs with id -u and id -g. If you use the dedicated-disk example, replace the relative volume paths with the corresponding host paths, such as /srv/usenet/nzbget/config:/config.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The mapping 6789:6789 publishes the web port on all host interfaces. To bind it to a particular LAN address instead, use a mapping such as 192.168.1.20:6789:6789 and replace that address with the Pi’s actual LAN IP. Docker warns that published container ports can bypass UFW or firewalld rules; understand your firewall setup before exposing ports. Do not port-forward 6789 to the public internet.

The official image uses latest for stable releases, testing and debug for development builds, and version-specific tags such as v26.2. A pinned tag is predictable but requires deliberate upgrades. latest is more convenient but may change when you pull the image; testing and debug tags are not the ordinary stable choice. The image’s architecture and configuration details are in the official Docker README.

Start the container and open the interface

From the directory containing compose.yaml, run:

docker compose up -d
docker compose ps
docker compose logs -f nzbget

Confirm that the container is listed as running, then open http://PI-LAN-IP:6789, replacing PI-LAN-IP with the address of your Pi. The current Linux installation guide lists the default credentials as username nzbget and password tegbzn6789; change them immediately if they apply to your installation. Do not reuse the example Compose password in a real deployment.

Rank #3
CanaKit Raspberry Pi 5 Essentials Starter Kit (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 32GB EVO+ Micro SD Card pre-loaded with 64-bit Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit 45W PD Power Supply for the Raspberry Pi 5
  • Display Cable - 6 foot (Supports up to 4K 60p)

Configure the news server and download paths

Enter provider details

In NZBGet’s settings, configure a news server using the exact values supplied by your provider:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Server hostname and provider-specified TLS port.
  • TLS/SSL enabled when using that TLS port.
  • Provider username and password.
  • Connection count within the provider’s stated limit.
  • An optional server priority or backup server, if you have one.

Do not guess the port or publish credentials in screenshots. Start with the provider’s recommended connection count. NZBGet’s Docker README suggests testing 8, 16, or 32 connections, but these are tuning points, not a universal prescription; more connections can increase load or trigger throttling.

Use container paths inside NZBGet

Configure paths as seen inside the container, not as host paths. With the Compose example, use /intermediate for in-progress downloads and /completed for finished data. The container’s configuration is persisted under /config. For example, do not enter /home/yourname/docker/nzbget/completed in NZBGet when that host folder is mounted as /completed.

After configuring the server and paths, use an authorized test NZB. Add it through the web interface, check that it enters the queue and that the log shows activity, then verify that intermediate files appear and the finished result lands in the expected completed folder. If the test requires repair or extraction, observe whether those stages finish as well.

Keep the interface and account secure

Keep NZBGet available only on your LAN by default, use a strong web password, and do not expose port 6789 through router port forwarding. If you need remote administration, use a VPN or private overlay network rather than making the interface public. TLS between NZBGet and your provider protects that connection; it does not make Usenet use anonymous. Docker’s port-publishing behavior can interact with host firewall rules, so a container is not a substitute for access control or host updates.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start automatically and update safely

The Compose setting restart: unless-stopped restarts the container after a host reboot, provided Docker itself starts and the download storage is available. Back up the persistent configuration before changing versions. For example, from the project directory:

docker compose down
cp -a config "config-backup-$(date +%F)"

For a pinned image, edit compose.yaml to the version you intend to use, then pull and recreate:

docker compose pull
docker compose up -d
docker compose logs -f nzbget

To roll back, restore the previous image tag in compose.yaml and run docker compose up -d. Keep the configuration directory; deleting it discards the settings and state stored there.

Native installation: a lighter alternative to Docker

The official Linux installer offers precompiled binaries for multiple CPU types and documents Linux kernel 2.6 or later as a requirement. It may suit someone who wants fewer software layers or is working with hardware outside the official Docker path. See the official Linux installation instructions for supported options.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Quluxe RPi GPIO Breakout Expansion Board + Ribbon Cable + Assembled T Type
  • Cables Wire Size: Length: 8.26"/21cm, Width: 2.16"/5.5cm;T Type GPIO Adapter: 28.74"x23.22"/73 x 59cm
  • Strong Compatibility: Suitable for 4B, consistent interface, and compatible with Rpi3B+/Rpi3B/2B/Zero/Zero W/Zero WH
  • Advantage: GPIO connection is convenient for you to connect with GIPO, which can be applied to breadboard experiments. Note that the T-type expansion board interface corresponds to the GPIO interface
  • Application: It can be used for pin expansion of the experiment board, adding experiment items, etc., and can be connected to the pin very reliably without soldering
  • Colorful design, 40P color, 40 in a row

Download and unpack the installer into your home directory:

mkdir -p ~/apps
cd ~/apps
wget https://nzbget.com/download/nzbget-latest-bin-linux.run
sh nzbget-latest-bin-linux.run --destdir "$HOME/apps/nzbget"

The installer attempts to detect the CPU architecture. If detection fails, specify an architecture supported by the installer, for example:

sh nzbget-latest-bin-linux.run --arch armhf

Other documented installer options include --destdir, --arch, and --unpack. Test server mode in the terminal with:

"$HOME/apps/nzbget/nzbget" -s -o outputmode=log

Open http://PI-LAN-IP:6789 and configure the same provider and storage settings. The standard server-mode command is nzbget -s; the documented daemon-mode command is nzbget -D. If terminal detection causes a “Can not open terminal” error, the log-mode command above or setting TERM=linux may help.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Run the native installation at boot with systemd

NZBGet’s Linux instructions describe daemon and shutdown commands but do not provide one universal systemd unit. This example assumes the account is named pi and the install is at /home/pi/apps/nzbget; replace both with your actual account and path, and ensure the service user can write to the download folders.

Create /etc/systemd/system/nzbget.service with:

[Unit]
Description=NZBGet Usenet downloader
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=pi
Group=pi
WorkingDirectory=/home/pi/apps/nzbget
ExecStart=/home/pi/apps/nzbget/nzbget -D
ExecStop=/home/pi/apps/nzbget/nzbget -Q
Restart=on-failure

[Install]
WantedBy=multi-user.target

Then load the unit, enable it at boot, and start it:

sudo systemctl daemon-reload
sudo systemctl enable --now nzbget
sudo systemctl status nzbget

If the particular build does not detach as expected, do not keep Type=forking blindly; use a unit definition appropriate to that build and its process behavior.

Docker or native: choose by maintenance needs

Criterion Docker Native installer
Setup repeatability Strong; Compose records the image and mounts. Moderate; installation and service setup are manual.
Upgrades and rollbacks Convenient with deliberate image tags. Manual.
Resource overhead Small but nonzero. Lowest of the two options.
Storage mapping Explicit and predictable, but requires matching container paths. Direct filesystem access is simpler.
Permissions Numeric IDs and bind mounts can cause setup errors. Usually easier to align with the running user.
Isolation More isolation, not a replacement for access controls. Less isolation.
Older hardware Constrained by Docker and OS architecture support. May be more flexible; check installer compatibility.
Good fit Pi 4/5, 64-bit ARM, and users already managing containers. Minimalists and systems where native binaries are suitable.

Docker simplifies repeatability and management; it is not inherently faster than running NZBGet natively. The official guide also names the LinuxServer.io image as an alternative, but its variables and volume conventions differ. Use one image’s documentation consistently rather than combining its settings with the official image’s Compose example.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Improve performance without guessing

Tune downloading gradually

Start at the provider’s recommended connection count and increase gradually while watching CPU, memory, and storage activity. The NZBGet Docker README also mentions raising ArticleReadChunkSize from 4 to 64 as a possible setting to test on slower machines; treat this as an experiment, not a guaranteed improvement. TLS is normally desirable, although encryption can use more CPU on an older Pi. Throughput depends on provider capacity and limits, article availability, network, storage, and processing load; no single connection count or advertised provider speed guarantees a result.

Best Value
SunFounder Raspberry Pi Pico W Ultimate Starter Kit with Online Tutorials, RoHS Compliant, 450+ Items, 117 Projects, MicroPython, C/C++ (Compatible with Arduino IDE)
  • IoT Starter Kit for Beginners: The SunFounder Raspberry Pi Pico W Ultimate Starter Kit offers a rich IoT learning experience for beginners aged 8+. With 450+ components, 117 projects, and expert-led video lessons, this kit makes learning microcontroller programming and IoT engaging and accessible, RoHS Compliant
  • Expert-Guided Video Lessons: This kit includes 27 video tutorials by the renowned educator, Paul McWhorter. His engaging style simplifies complex concepts, ensuring an effective learning experience in microcontroller programming
  • Wide Range of Hardware: The kit includes a diverse array of components like sensors, actuators, LEDs, LCDs, and more, enabling you to experiment and create a variety of projects with the Raspberry Pi Pico W
  • Supports Multiple Languages: The kit offers versatility with support for three programming languages - MicroPython, C/C++, and Piper Make, providing a diverse programming learning experience
  • Dedicated Support: Benefit from our ongoing assistance, including a community forum and timely technical help for a seamless learning experience

Plan for repair, extraction, and temporary space

Downloading may not be the demanding stage. PAR2 repair and archive extraction can take more CPU, and active work needs room for downloaded data, repair data, extracted output, and temporary copies during cross-filesystem moves. An SSD is a suitable target for active queues and processing; an HDD or NAS may make sense for capacity-focused completed storage, provided it stays mounted. Do not infer a fixed RAM or CPU requirement without a defined workload.

The official Docker image includes an optimized unrar7 binary and documents ARM64 and ARMHF builds. Its README describes selecting it through the UNPACK setting’s UnrarCmd field. Treat this as an optional image-specific optimization, not a setting to assume applies to a native installation or every workload.

Troubleshoot common problems

The web interface does not load

Check the container, logs, port listener, and Pi address:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
docker compose ps
docker compose logs nzbget
ss -ltnp | grep 6789
hostname -I

Look for a stopped container, wrong LAN address, port conflict, firewall or client-isolation rule, or incorrect port mapping. Confirm that the Compose ports entry is publishing the port you are opening.

The container restarts repeatedly

Inspect the recent log output:

docker compose logs --tail=200 nzbget

Unsupported architecture, invalid environment settings, permission failures, corrupt configuration, or an incompatible image tag can prevent startup. Confirm the architecture and tag, and preserve /config while troubleshooting; a version-specific tag can help determine whether an image change triggered the failure.

NZBGet reports permission denied

Check ownership and the IDs used by the container:

ls -ld ~/docker/nzbget/*
id
id -u
id -g

Align the host directories with the intended user’s numeric IDs. For example, sudo chown -R 1000:1000 ~/docker/nzbget is appropriate only if 1000:1000 are the IDs configured for that user; do not copy those numbers blindly.

Downloads finish but files are missing

Confirm that NZBGet’s destination is the container path /completed, that its host bind mount points to the expected disk, and that the completed directory is writable. Check whether the download was assigned a different category or destination. If the target is external storage, verify that it was mounted before Docker started.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Downloads are slower than expected

Check the provider’s connection cap and throttling, CPU load during TLS, disk write speed and free space, and whether repair or extraction is running. Also check whether the Pi is thermally throttling. Adjust one setting at a time so you can see whether it helps.

More questions about NZBGet on a Raspberry Pi

Can NZBGet download directly to a NAS?

Yes, if the NAS share is mounted on the Pi and available at the path you bind into Docker, or at a writable local path for a native installation. Use a stable mount point and make sure the share is mounted before NZBGet starts.

How much storage do I need?

There is no fixed amount: it depends on what you queue and how much temporary space repair, extraction, and file moves require. Leave room beyond the final completed files for intermediate downloads, repair data, and extracted output.

Should I use the official NZBGet image or LinuxServer.io?

The official nzbgetcom/nzbget image is the straightforward first-party choice in this guide. LinuxServer.io is an option if you already standardize on its containers, but follow that image’s own documentation and do not mix its configuration conventions with the Compose example here.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can I migrate an existing configuration?

Back up the existing configuration before changing installation methods. For Docker, place the configuration in the host directory mounted at /config; for a native install, retain the existing configuration in the location used by that installation. Avoid overwriting a working configuration until you have verified the new instance.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.