Docker Hub · Quick start · Releases · Development · Screenshots · Environment Vars · Troubleshoot
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.
- 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.
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 .envEdit .env:
- Set
NEXTAUTH_SECRETandAUTH_SECRETto the same random string:openssl rand -base64 32
- Set
NEXTAUTH_URLandAUTH_URLto the URL you open in the browser (e.g.http://192.168.1.10:3000). - Set
PUID/PGIDto match your data folders (id -u/id -g). - Adjust
DATA_DIR_HOSTandDOWNLOAD_DIR_HOSTif needed (defaults:./dataand./downloads).
docker compsoe pull && docker compose up -dOpen the URL from NEXTAUTH_URL and complete the setup wizard.
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-betaRequirements: Node.js 22+, npm.
git clone https://github.com/baervers23/snatcharr.git
cd snatcharr
npm install
cp .env.local.example .env.localEdit .env.local — set NEXTAUTH_SECRET and AUTH_SECRET (same value, see above).
npm run build
npm run startOpen 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.
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).
Not required for normal use:
docker compose --profile redis up -dIn SabNzbd web interface create a new categorie for snatcharr
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| 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.
| 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 |
Reset admin password (re-run setup)
Stop the container, then edit your data config.json (e.g. ./data/config.json):
"setupComplete": falseRestart 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:noexecSABnzbd
volumes:
- /downloadsXYZ:/snatcharrSnatcharr 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 ./downloadsLogged 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.
MIT









