Skip to content

baervers23/snatcharr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Hub · Quick start · Releases · Development · Screenshots · Environment Vars · Troubleshoot

GitHub release GitHub stars GitHub forks GitHub issues License

Docker pulls Docker image size Docker stars

Snatcharr

Snatcharr - beta

A self-hosted Usenet search and grab manager for selected users.

Search releases through Prowlarr, send NZBs to SABnzbd or NZBGet, track grabs, and manage users with daily limits. Built with Next.js 15, SQLite, and Auth.js.

Features

  • Setup wizard — admin account, Prowlarr indexer, download client, optional auth apps
  • Search — Prowlarr integration, categories, grab confirmation, optional download-client picker
  • Grabs — status tracking, file browser, time-limited downloads
  • Upload NZB — manual NZB/link upload (grant-based), tips for Usenet indexers
  • Users — roles, per-user limits, grab/download/upload grants, Jellyfin/Seerr sync
  • Auth — local, Jellyfin, Seerr, Organizr (API + SSO), JFA-GO; users imported on first login
  • Settings — general, email/SMTP, search filters, security, indexers, clients, apps
  • Profile — email, password, limits, notification preferences
  • Stats — personal usage; admin rankings
  • System — health checks, tasks, live logs, audit trail, backup & restore (primary admin)
  • Security — API keys never returned to the client, connection test before saving keys, rate limits

You still need: Prowlarr and a Usenet client such as SABnzbd or NZBGet.


Quick start

Docker Compose — image

mkdir snatcharr && cd snatcharr
wget https://raw.githubusercontent.com/baervers23/snatcharr/refs/heads/master/docker-compose.yml
wget https://raw.githubusercontent.com/baervers23/snatcharr/refs/heads/master/.env.example
cp .env.example .env && nano .env

Edit .env:

  1. Set NEXTAUTH_SECRET and AUTH_SECRET to the same random string:
    openssl rand -base64 32
  2. Set NEXTAUTH_URL and AUTH_URL to the URL you open in the browser (e.g. http://192.168.1.10:3000).
  3. Set PUID / PGID to match your data folders (id -u / id -g).
  4. Adjust DATA_DIR_HOST and DOWNLOAD_DIR_HOST if needed (defaults: ./data and ./downloads).
docker compsoe pull && docker compose up -d

Open the URL from NEXTAUTH_URL and complete the setup wizard.

Docker Run

docker run -d \
  --name snatcharr \
  -p 3000:3000 \
  --env-file .env \
  -e DATA_DIR=/app/data \
  -e DOWNLOAD_DIR=/downloads \
  -v "./data:/app/data" \
  -v "./downloads:/downloads" \
  baervers23/snatcharr:0.9.1-beta

Run without Docker

Requirements: Node.js 22+, npm.

git clone https://github.com/baervers23/snatcharr.git
cd snatcharr

npm install
cp .env.local.example .env.local

Edit .env.local — set NEXTAUTH_SECRET and AUTH_SECRET (same value, see above).

npm run build
npm run start

Open http://localhost:3000 and run the setup wizard.

Data is stored under ./data (SQLite, config.json, logs). Create ./downloads if you want a local grab folder.

Development

npm install
cp .env.local.example .env.local
# Set AUTH_SECRET / NEXTAUTH_SECRET in .env.local
npm run dev
Command Description
npm run dev Dev server with hot reload
npm run build Production build
npm run start Run production build
npm run lint ESLint
npm run db:studio Drizzle Studio (SQLite)
npm run clean:zone-ids Remove Windows Zone.Identifier junk files

DB migrations run automatically on startup (instrumentation.ts).

Optional Redis

Not required for normal use:

docker compose --profile redis up -d

Prepare SabNzbd

In SabNzbd web interface create a new categorie for snatcharr

Example: image

⚠️ Important: Make sure that the SABnzbd download folder and the Snatcharr download folder are mapped to the same host path.

Useful commands

docker compose logs -f snatcharr
docker compose pull && docker compose up -d    # pull image from compose.yml and run (detached)
docker build -t snatcharr .    # build docker image from local repo, for a clean build add --no-cache

Environment variables

Docker (.env)

Variable Required Description
NEXTAUTH_URL / AUTH_URL Yes Public app URL
NEXTAUTH_SECRET / AUTH_SECRET Yes Session signing key (same value)
PUID / PGID Yes Container user — match volume ownership
DATA_DIR_HOST Yes Host path → /app/data
DOWNLOAD_DIR_HOST Yes Host path → /downloads
PORT No Published port (default 3000)

SMTP and most options are configured in Settings after setup.

Local dev (.env.local)

Variable Required Description
NEXTAUTH_URL / AUTH_URL Yes Usually http://localhost:3000
NEXTAUTH_SECRET / AUTH_SECRET Yes Session signing key
DATABASE_URL No Default file:./data/snatcharr.db

Troubleshooting

Reset admin password (re-run setup)
Stop the container, then edit your data config.json (e.g. ./data/config.json):

"setupComplete": false

Restart Snatcharr and open /setup. Step 1 lets you set a new admin username and password (user id 1 is updated). Clear the browser cookie snatcharr-setup if you are not redirected automatically.


Snatcharr dont show downloads at all Create a SabNzbd categorie for snatcharr, create a volume mount for snatcharr & sabnbd with the same host path

Example Snatcharr

volumes:
  - /downloadsXYZ:/downloads:noexec

SABnzbd

volumes:
  - /downloadsXYZ:/snatcharr

Snatcharr dont auto delete files Check rights suggestion: chown folder for snatcharr/sabnzbd user dirty: chmod 777 folder so both apps has full access


SQLITE_READONLY or permission errors (Docker)
Set PUID/PGID to the owner of your data folders, then restart. On NFS/NAS:

sudo chown -R "$PUID:$PGID" ./data ./downloads

Logged out after changing AUTH_SECRET
Expected — all sessions are invalidated.


CSS @theme warnings in the editor
Tailwind v4 syntax; safe to ignore. Workspace settings already suppress the linter noise.


Screenshots

Login

Login — local & external auth (Jellyfin, Seerr, Organizr, JFA-GO)

Security settings

Security — grants, search filters, rate limits & auth apps

System overview

System — health checks, disk usage, logs, audit & backup

Users

Users — roles, limits, grants & sync from Jellyfin / Seerr

User permissions

Users — grab/download/upload grants & per-user limits

Statistics

Stats — activity, success rate & user rankings

Grabs

Grabs — completed downloads & time-limited file links

Email settings

Email — SMTP setup & new-user notifications


License

MIT

About

Self-hosted Usenet snatch manager for Jellyfin users, with Prowlarr integration and download client support.

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages