Usenet for Self-Hosting: Setup Guide
What Is Usenet?
Usenet is a decentralized discussion and file-sharing system that predates the web. For self-hosters, it serves as an alternative download method to BitTorrent — with a key advantage: downloads come directly from a Usenet provider’s servers over an encrypted connection. No peer-to-peer, no seeding, no IP exposure to other users.
| Feature | Usenet | BitTorrent |
|---|---|---|
| Download source | Central servers | Peer-to-peer |
| Speed | Maxes out your connection | Varies by seeder count |
| Privacy | Encrypted, provider-only | IP visible to all peers |
| VPN needed | No (encrypted by default) | Yes (strongly recommended) |
| Retention | Limited (years, varies) | Unlimited if seeded |
| Cost | $3-15/month for a provider | Free (plus VPN cost) |
| Setup complexity | Higher | Lower |
How the Usenet Pipeline Works
Indexer (NZBgeek, etc.)
↓ NZB file (download instructions)
SABnzbd (download client)
↓ Downloads from Usenet provider
↓ Assembles, verifies, extracts
Sonarr / Radarr (*arr stack)
↓ Renames, organizes
Media Library
↓
Jellyfin / Plex (media server)
Three things you need:
- A Usenet provider — the service that hosts files. You pay monthly for access and download speed. Popular options: Newshosting, Eweka, Frugal Usenet.
- An indexer — searches Usenet for content and creates NZB files (similar to .torrent files). Popular: NZBgeek, DrunkenSlug, NZBFinder.
- A download client — downloads and processes NZB files. SABnzbd is the standard.
Prerequisites
- A Linux server with Docker and Docker Compose (guide)
- A Usenet provider subscription ($3-15/month)
- At least one Usenet indexer account
- The *arr stack (optional but recommended)
- 2 GB RAM minimum
- Enough disk space for downloads plus media storage
Setting Up SABnzbd
SABnzbd handles Usenet downloads — connecting to your provider, downloading, verifying parity data (par2), and extracting archives.
Create the directory structure:
mkdir -p /opt/usenet/sabnzbd/config
mkdir -p /data/downloads/{complete,incomplete,nzb}
Create docker-compose.yml:
services:
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:4.5.5
container_name: sabnzbd
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York # CHANGE to your timezone
volumes:
- ./sabnzbd/config:/config
- /data/downloads:/data/downloads
ports:
- "8080:8080" # Web UI
networks:
- usenet-net
networks:
usenet-net:
driver: bridge
Start SABnzbd:
docker compose up -d
Configure SABnzbd
-
Open
http://your-server:8080 -
The setup wizard walks through initial configuration:
- Language: English
- Server: Enter your Usenet provider details:
- Host:
news.provider.com(from your provider) - Port:
563(SSL) or119(unencrypted — use SSL) - SSL: Enabled
- Username/password from your provider
- Connections: Start with 20, increase up to your plan’s limit
- Host:
- Folders:
- Temporary:
/data/downloads/incomplete - Completed:
/data/downloads/complete - Watched:
/data/downloads/nzb(optional — drops NZB files here to auto-download)
- Temporary:
-
Under Config → Categories, create categories that match your *arr apps:
tv— complete folder:/data/downloads/complete/tvmovies— complete folder:/data/downloads/complete/moviesmusic— complete folder:/data/downloads/complete/musicbooks— complete folder:/data/downloads/complete/books
SABnzbd Performance Settings
Under Config → General:
| Setting | Recommended | Why |
|---|---|---|
| Connections | 20-50 | Match your provider’s plan limit |
| Article cache | 500M | Faster assembly, uses more RAM |
| Direct unpack | Enabled | Extracts while still downloading |
Under Config → Switches:
| Setting | Recommended |
|---|---|
| Check before download | Enabled |
| Abort on par2 failure | Disabled (let it try repair) |
| Auto-sort | Disabled (let *arr apps handle sorting) |
Connecting to the *arr Stack
If you’re using the *arr stack, add SABnzbd as a download client in each app.
In Sonarr/Radarr:
- Go to Settings → Download Clients → Add → SABnzbd
- Configure:
- Name:
SABnzbd - Host:
sabnzbd(container name, if on same Docker network) - Port:
8080 - API Key: found in SABnzbd → Config → General → Security
- Category:
tv(for Sonarr) ormovies(for Radarr)
- Name:
- Click Test then Save
Volume Mount Alignment
SABnzbd and the *arr apps must share the same filesystem view for hard links to work:
# SABnzbd
volumes:
- /data/downloads:/data/downloads
# Sonarr (needs both downloads and media)
volumes:
- /data:/data
Both containers see /data/downloads/complete at the same path. When Sonarr imports a completed download, it creates a hard link from /data/downloads/complete/tv/show.mkv to /data/media/tv/Show Name/Season 01/show.mkv — instant, no copy needed.
See *arr stack setup for the full volume mount explanation.
Usenet Provider Tips
Block Accounts
Most providers offer two pricing models:
- Unlimited: Fixed monthly fee ($7-15), unlimited downloads at full speed
- Block: One-time purchase of a download quota (e.g., 500 GB for $10). Never expires. Good as a backup.
Best practice: One unlimited provider as primary + one block account on a different backbone as backup. Different backbones have different content retention — a block account fills gaps where the primary provider has takedowns.
Retention
Usenet providers advertise retention in years (e.g., “5,000+ days”). This means files posted within that retention window are available. Older files are gone. Most content you’ll want is within the last 2-3 years. Don’t overpay for maximum retention unless you need older content.
SSL/TLS
Always connect with SSL enabled. Usenet traffic over SSL is encrypted between you and the provider. Port 563 is the standard SSL port. This eliminates the need for a VPN for privacy — unlike BitTorrent, there’s no peer-to-peer connection exposing your IP.
Usenet Indexers
Indexers search Usenet and create NZB files — structured instructions for what to download. Without indexers, Usenet content is unsearchable.
| Indexer | Type | Cost |
|---|---|---|
| NZBgeek | Private | $12/year |
| DrunkenSlug | Private | Free (limited) / $10/year |
| NZBFinder | Private | Free (limited) / $15/year |
| NZBPlanet | Private | $10/year |
Private indexers require registration (some have open registration periods). They provide better results and API access for the *arr apps.
Adding Indexers to *arr Apps
If using Prowlarr (recommended): add indexers once in Prowlarr, then sync to all *arr apps automatically.
If configuring directly: go to Settings → Indexers → Add in each *arr app and enter your indexer’s API URL and key.
Resource Requirements
| Component | RAM | CPU | Disk |
|---|---|---|---|
| SABnzbd (idle) | ~100 MB | Low | 500 MB config |
| SABnzbd (downloading) | 500 MB-1 GB | Medium | Variable |
| Article cache | +500 MB | — | — |
| Total | ~1-1.5 GB active | Medium | Variable |
SABnzbd is CPU-intensive during par2 repair and archive extraction. A modern 4-core CPU handles this well. On a Raspberry Pi, extraction of large files can be slow.
Common Issues
Download speed is slow
- Increase connections (Config → Servers). Most providers allow 20-50 connections.
- Enable SSL but try different ports (563, 443)
- Try a different server endpoint from your provider
- Check if your ISP throttles Usenet traffic (switch to port 443 to avoid DPI)
Par2 repair failing
- Your provider has incomplete retention for that file. Add a block account on a different backbone.
- Increase “Extra Par2 Safety Margin” in SABnzbd settings
- The upload itself was corrupted — try a different indexer result
Files not extracting
- Archive is password-protected (some uploads require passwords from the indexer page)
- Insufficient disk space for extraction
- RAR format requires
unrar— included in the LinuxServer.io image
Next Steps
- Set up the complete *arr stack for automated media management
- Add Sonarr for TV show automation
- Add Radarr for movie automation
- Connect to Jellyfin or Plex for streaming
- Implement backups for your configuration
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments