Sanitized mirror from private repository - 2026-04-20 01:32:01 UTC
This commit is contained in:
79
docs/services/individual/whisparr.md
Normal file
79
docs/services/individual/whisparr.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# Whisparr
|
||||
|
||||
Adult content collection manager (Arr-suite).
|
||||
|
||||
## Service Info
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Host** | Atlantis (`192.168.0.200`) |
|
||||
| **URL** | `http://192.168.0.200:6969` |
|
||||
| **Portainer stack** | `atlantis-arr-stack` (stack ID 696, env 2) |
|
||||
| **Compose file** | Portainer-managed — `/volume2/metadata/docker/portainer/compose/696/v1/docker-compose.yml` on Atlantis |
|
||||
| **Config volume** | `/volume2/metadata/docker2/whisparr` |
|
||||
| **Image** | `ghcr.io/hotio/whisparr:nightly` |
|
||||
|
||||
## Download Clients
|
||||
|
||||
| Client | Type | Status | Notes |
|
||||
|--------|------|--------|-------|
|
||||
| **SABnzbd** | Usenet | ✅ Enabled | `192.168.0.200:8080`, remote path: `/data/complete/` → `/sab/complete/` |
|
||||
| **Deluge** | Torrent | ✅ Enabled | `192.168.0.200:8112` (web UI behind gluetun VPN), password: "REDACTED_PASSWORD" <!-- pragma: allowlist secret --> |
|
||||
|
||||
### Deluge notes
|
||||
- Runs behind **gluetun** VPN container (network_mode: container) — ports exposed via gluetun
|
||||
- No Label plugin installed — category field must be left empty
|
||||
- Downloads to `/downloads/complete/` on Atlantis → mapped to `/torrents/complete/` in Whisparr
|
||||
- Compose volume added 2026-03-18: `/volume2/torrents/complete:/torrents/complete`
|
||||
- Remote path mapping: `192.168.0.200: /downloads/complete/` → `/torrents/complete/`
|
||||
|
||||
### SABnzbd API key sync
|
||||
If SABnzbd restarts or is reinstalled, its API key may change. Update in Whisparr:
|
||||
**Settings → Download Clients → SABnzbd → API Key**
|
||||
|
||||
Or via API:
|
||||
```bash
|
||||
# Get current SABnzbd API key
|
||||
ssh atlantis "grep -oP '(?<=^api_key = )[^\s]+' /volume2/metadata/docker2/sabnzbd/sabnzbd.ini"
|
||||
```
|
||||
|
||||
## Root Folder
|
||||
|
||||
`/data/media/misc` (46TB free as of 2026-03-18)
|
||||
|
||||
## Import Path Mappings
|
||||
|
||||
| Host | Remote Path | Local Path (in container) | Purpose |
|
||||
|------|------------|--------------------------|---------|
|
||||
| `192.168.0.200` | `/data/complete/` | `/sab/complete/` | SABnzbd usenet downloads |
|
||||
| `192.168.0.200` | `/downloads/complete/` | `/torrents/complete/` | Deluge torrent downloads |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### `downloadClientUnavailable` in queue
|
||||
Happens when SABnzbd or Deluge restarts. Items stay stuck until cleared manually.
|
||||
|
||||
Clear all stuck items:
|
||||
```bash
|
||||
WHISPARR_KEY=$(ssh atlantis "cat /volume2/metadata/docker2/whisparr/config.xml | grep -oP '(?<=<ApiKey>)[^<]+'")
|
||||
python3 -c "
|
||||
import requests
|
||||
s = requests.Session()
|
||||
s.headers.update({'X-Api-Key': '$WHISPARR_KEY'})
|
||||
q = s.get('http://192.168.0.200:6969/api/v3/queue').json()
|
||||
for item in q.get('records',[]):
|
||||
if item['status'] == 'downloadClientUnavailable':
|
||||
s.delete(f'http://192.168.0.200:6969/api/v3/queue/{item[\"id\"]}?removeFromClient=true&blocklist=false')
|
||||
print('Cleared:', item['title'][:50])
|
||||
"
|
||||
```
|
||||
|
||||
### Import fails after adding Deluge
|
||||
Whisparr must have `/volume2/torrents/complete` mounted and a remote path mapping configured.
|
||||
Check mounts: container must have `/torrents/complete` volume.
|
||||
Check mappings: **Settings → Download Clients → Remote Path Mappings**.
|
||||
|
||||
### Deluge Label plugin error
|
||||
If Whisparr reports "Label plugin not enabled" — leave the **Category** field blank in the Deluge download client config. The Label plugin egg exists but doesn't load in the linuxserver.io image.
|
||||
|
||||
**Last updated:** 2026-03-18
|
||||
Reference in New Issue
Block a user