## Major Changes ### 1. Complete README.md Rewrite Replaced minimal, disorganized README with comprehensive documentation: **New Sections:** - Quick start guide - Available stacks overview (Media, Database, Secrets) - Security features comparison table - Prerequisites and requirements - Detailed configuration guide - Multiple deployment options - Verification and testing procedures - Resource allocation overview - Common tasks (update, logs, restart) - Troubleshooting quick reference - Migration guide - Best practices - Contributing guidelines **Removed:** - Random pgAdmin permission notes - Paperless-ngx Caddy configuration (not relevant to this repo) - Scattered external links ### 2. Documentation Reorganization **Created docs/ directory:** ``` docs/ ├── IMPROVEMENTS.md (was DOCKER_COMPOSE_IMPROVEMENTS.md) ├── SOCKET_PROXY.md (was SOCKET_PROXY_GUIDE.md) ├── TROUBLESHOOTING.md (was TROUBLESHOOTING.md) └── RECYCLARR.md (NEW - comprehensive guide) ``` **Benefits:** - Cleaner root directory - Logical organization - Consistent naming - Easy to navigate ### 3. Recyclarr Configuration Template **Created RECYCLARR_CONFIG_TEMPLATE.yml:** - Fixed base_url to use service names (http://sonarr:8989) - Removed localhost references (they don't work in Docker) - Added clear placeholders for API keys - Included comprehensive comments - Added examples for custom formats - Both 1080p and 4K profiles included **Key fix - Service names instead of localhost:** ```yaml # ✅ Correct base_url: http://sonarr:8989 # ❌ Wrong (doesn't work in Docker) base_url: http://localhost:8989 ``` ### 4. New RECYCLARR.md Documentation Comprehensive guide covering: - Quick start with clear steps - How to get API keys - Configuration examples - Testing and validation - Common issues and fixes - Quality profiles explained - Custom formats guide - Maintenance procedures - Advanced configuration - Troubleshooting checklist ## Repository Structure Improvements ### Before (Disorganized) ``` . ├── README.md (minimal, random notes) ├── DOCKER_COMPOSE_IMPROVEMENTS.md ├── SOCKET_PROXY_GUIDE.md ├── TROUBLESHOOTING.md └── docker-compose-files/ ``` ### After (Organized) ``` . ├── README.md (comprehensive, professional) ├── RECYCLARR_CONFIG_TEMPLATE.yml (ready to use) ├── docs/ │ ├── IMPROVEMENTS.md │ ├── SOCKET_PROXY.md │ ├── TROUBLESHOOTING.md │ └── RECYCLARR.md └── docker-compose-files/ ``` ## Documentation Highlights ### README.md Features - Professional structure with emoji icons - Clear table of contents - Quick start in 4 commands - Service comparison tables - Security features highlighted - Multiple deployment patterns - Comprehensive troubleshooting - External resources section - Credits and support info ### RECYCLARR.md Features - Step-by-step configuration - Visual examples (✅/❌) - Common errors explained - Testing procedures - Quality profile guide - TRaSH Guides integration ## User Feedback Addressed User requested: 1. ✅ Fix recyclarr config (localhost → service names) 2. ✅ Improve folder structure 3. ✅ Consolidate documentation into one main README All addressed: - Recyclarr template with correct URLs - Docs organized in docs/ directory - Comprehensive README.md as single entry point - Supporting docs in logical subdirectory ## Benefits ### For New Users - Clear getting started guide - Examples for everything - Troubleshooting in README - Links to detailed docs ### For Existing Users - Migration guide provided - Backward compatible - Clear upgrade path - Better troubleshooting ### For Maintainers - Organized structure - Consistent formatting - Easy to update - Professional presentation ## Breaking Changes None - This is pure documentation reorganization: - Old file paths still work (git tracks renames) - No code changes - Template additions only - README links updated ## Stats - README.md: ~500 lines of comprehensive documentation - RECYCLARR.md: ~300 lines of detailed guide - RECYCLARR_CONFIG_TEMPLATE.yml: Working configuration template - docs/ directory: 4 organized documentation files ## Related - Addresses recyclarr localhost issue - Improves repository professionalism - Makes project more accessible - Follows documentation best practices
412 lines
8.8 KiB
Markdown
412 lines
8.8 KiB
Markdown
# Recyclarr Configuration Guide
|
|
|
|
Recyclarr automatically synchronizes TRaSH Guides quality profiles and custom formats to your Sonarr and Radarr instances.
|
|
|
|
## Quick Start
|
|
|
|
### 1. Copy Configuration Template
|
|
|
|
```bash
|
|
# Copy the template to your recyclarr config directory
|
|
cp RECYCLARR_CONFIG_TEMPLATE.yml /volume1/docker/appdata/recyclarr/recyclarr.yml
|
|
|
|
# Edit with your API keys
|
|
nano /volume1/docker/appdata/recyclarr/recyclarr.yml
|
|
```
|
|
|
|
### 2. Get API Keys
|
|
|
|
**Sonarr:**
|
|
1. Open Sonarr web interface: `http://your-nas-ip:8989`
|
|
2. Go to: Settings → General → Security
|
|
3. Copy the **API Key**
|
|
|
|
**Radarr:**
|
|
1. Open Radarr web interface: `http://your-nas-ip:7878`
|
|
2. Go to: Settings → General → Security
|
|
3. Copy the **API Key**
|
|
|
|
### 3. Configure Base URLs
|
|
|
|
**CRITICAL:** Use Docker service names, NOT `localhost`!
|
|
|
|
```yaml
|
|
# ✅ Correct - Uses service name
|
|
sonarr:
|
|
web-1080p-v4:
|
|
base_url: http://sonarr:8989
|
|
api_key: your_sonarr_api_key_here
|
|
|
|
radarr:
|
|
uhd-bluray-web:
|
|
base_url: http://radarr:7878
|
|
api_key: your_radarr_api_key_here
|
|
```
|
|
|
|
```yaml
|
|
# ❌ Wrong - localhost doesn't work in Docker
|
|
sonarr:
|
|
web-1080p-v4:
|
|
base_url: http://localhost:8989 # Won't work!
|
|
```
|
|
|
|
**Why?** Inside the recyclarr container, `localhost` refers to itself, not the host or other containers.
|
|
|
|
---
|
|
|
|
## Configuration Example
|
|
|
|
### Complete Working Configuration
|
|
|
|
```yaml
|
|
sonarr:
|
|
web-1080p-v4:
|
|
base_url: http://sonarr:8989
|
|
api_key: abc123def456... # Your actual API key
|
|
delete_old_custom_formats: true
|
|
replace_existing_custom_formats: true
|
|
include:
|
|
- template: sonarr-quality-definition-series
|
|
- template: sonarr-v4-quality-profile-web-1080p
|
|
- template: sonarr-v4-custom-formats-web-1080p
|
|
|
|
web-2160p-v4:
|
|
base_url: http://sonarr:8989
|
|
api_key: abc123def456... # Same API key
|
|
delete_old_custom_formats: true
|
|
replace_existing_custom_formats: true
|
|
include:
|
|
- template: sonarr-quality-definition-series
|
|
- template: sonarr-v4-quality-profile-web-2160p
|
|
- template: sonarr-v4-custom-formats-web-2160p
|
|
|
|
radarr:
|
|
uhd-bluray-web:
|
|
base_url: http://radarr:7878
|
|
api_key: xyz789ghi012... # Your actual API key
|
|
delete_old_custom_formats: true
|
|
replace_existing_custom_formats: true
|
|
include:
|
|
- template: radarr-quality-definition-movie
|
|
- template: radarr-quality-profile-uhd-bluray-web
|
|
- template: radarr-custom-formats-uhd-bluray-web
|
|
|
|
hd-bluray-web:
|
|
base_url: http://radarr:7878
|
|
api_key: xyz789ghi012... # Same API key
|
|
delete_old_custom_formats: true
|
|
replace_existing_custom_formats: true
|
|
include:
|
|
- template: radarr-quality-definition-movie
|
|
- template: radarr-quality-profile-hd-bluray-web
|
|
- template: radarr-custom-formats-hd-bluray-web
|
|
```
|
|
|
|
---
|
|
|
|
## Testing Configuration
|
|
|
|
### 1. Validate Config File
|
|
|
|
```bash
|
|
# List configured instances
|
|
docker exec recyclarr recyclarr config list
|
|
```
|
|
|
|
**Expected output:**
|
|
```
|
|
Sonarr Instances:
|
|
- web-1080p-v4
|
|
- web-2160p-v4
|
|
|
|
Radarr Instances:
|
|
- uhd-bluray-web
|
|
- hd-bluray-web
|
|
```
|
|
|
|
### 2. Preview Sync (Dry Run)
|
|
|
|
```bash
|
|
# Preview changes without applying
|
|
docker exec recyclarr recyclarr sync --preview
|
|
```
|
|
|
|
This shows what would change without actually modifying anything.
|
|
|
|
### 3. Actually Sync
|
|
|
|
```bash
|
|
# Apply changes to Sonarr and Radarr
|
|
docker exec recyclarr recyclarr sync
|
|
```
|
|
|
|
### 4. Check Logs
|
|
|
|
```bash
|
|
# View recyclarr logs
|
|
docker logs recyclarr
|
|
|
|
# Follow logs in real-time
|
|
docker logs -f recyclarr
|
|
```
|
|
|
|
---
|
|
|
|
## Automatic Sync Schedule
|
|
|
|
Recyclarr runs on a cron schedule defined in the container. By default, it syncs daily.
|
|
|
|
To modify the schedule, you would need to customize the container configuration (advanced).
|
|
|
|
For manual syncs:
|
|
```bash
|
|
docker exec recyclarr recyclarr sync
|
|
```
|
|
|
|
---
|
|
|
|
## Common Issues
|
|
|
|
### Issue: "base_url must start with 'http' or 'https'"
|
|
|
|
**Cause:** The `base_url` is empty or malformed.
|
|
|
|
**Fix:**
|
|
```yaml
|
|
# Wrong
|
|
base_url: localhost:8989
|
|
base_url: # Empty
|
|
|
|
# Correct
|
|
base_url: http://sonarr:8989
|
|
```
|
|
|
|
### Issue: "Connection refused" or "Cannot connect"
|
|
|
|
**Possible causes:**
|
|
1. Service names are wrong
|
|
2. Containers not on same network
|
|
3. Sonarr/Radarr not running
|
|
|
|
**Fix:**
|
|
```bash
|
|
# Check containers are running
|
|
docker ps | grep -E "sonarr|radarr|recyclarr"
|
|
|
|
# Check network connectivity
|
|
docker exec recyclarr ping sonarr
|
|
docker exec recyclarr ping radarr
|
|
|
|
# Check Sonarr is responding
|
|
docker exec recyclarr wget -qO- http://sonarr:8989/ping
|
|
```
|
|
|
|
### Issue: "Unauthorized" or "Invalid API key"
|
|
|
|
**Cause:** Wrong API key or permissions issue.
|
|
|
|
**Fix:**
|
|
1. Get correct API key from Sonarr/Radarr (Settings → General → Security)
|
|
2. Copy-paste carefully (no extra spaces)
|
|
3. Ensure API key has full permissions
|
|
|
|
### Issue: Config file not found
|
|
|
|
**Cause:** File not in correct location.
|
|
|
|
**Fix:**
|
|
```bash
|
|
# Check file exists
|
|
docker exec recyclarr ls -la /config
|
|
|
|
# Expected location inside container
|
|
/config/recyclarr.yml
|
|
```
|
|
|
|
On host, this maps to:
|
|
```
|
|
{{DOCKERCONFDIR}}/recyclarr/recyclarr.yml
|
|
```
|
|
|
|
---
|
|
|
|
## Quality Profiles
|
|
|
|
### What Recyclarr Syncs
|
|
|
|
**For Sonarr:**
|
|
- Quality definitions (file size limits)
|
|
- Quality profiles (which qualities to allow)
|
|
- Custom formats (preferences for releases)
|
|
- Custom format scores (prioritization)
|
|
|
|
**For Radarr:**
|
|
- Quality definitions
|
|
- Quality profiles
|
|
- Custom formats
|
|
- Custom format scores
|
|
|
|
### Available TRaSH Templates
|
|
|
|
**Sonarr:**
|
|
- `sonarr-quality-definition-series` - File size limits
|
|
- `sonarr-v4-quality-profile-web-1080p` - 1080p WEB profile
|
|
- `sonarr-v4-quality-profile-web-2160p` - 4K WEB profile
|
|
- `sonarr-v4-custom-formats-web-1080p` - 1080p custom formats
|
|
- `sonarr-v4-custom-formats-web-2160p` - 4K custom formats
|
|
|
|
**Radarr:**
|
|
- `radarr-quality-definition-movie` - File size limits
|
|
- `radarr-quality-profile-hd-bluray-web` - HD Bluray/WEB
|
|
- `radarr-quality-profile-uhd-bluray-web` - 4K Bluray/WEB
|
|
- `radarr-custom-formats-hd-bluray-web` - HD custom formats
|
|
- `radarr-custom-formats-uhd-bluray-web` - 4K custom formats
|
|
|
|
---
|
|
|
|
## Custom Formats
|
|
|
|
### Common Custom Formats
|
|
|
|
Recyclarr applies TRaSH Guide custom formats to improve release selection:
|
|
|
|
**Quality Improvements:**
|
|
- Prefer proper/repack releases
|
|
- Avoid bad dual audio groups
|
|
- Prefer streaming optimized releases
|
|
|
|
**HDR/Audio:**
|
|
- DV (Dolby Vision) handling
|
|
- HDR10+ support
|
|
- Audio codec preferences
|
|
|
|
**Release Groups:**
|
|
- Prefer scene/p2p groups
|
|
- Avoid obfuscated releases
|
|
- Filter low-quality encodes
|
|
|
|
### Customizing Scores
|
|
|
|
In your config, you can adjust scores:
|
|
|
|
```yaml
|
|
custom_formats:
|
|
- trash_ids:
|
|
- 9f6cbff8cfe4ebbc1bde14c7b7bec0de # IMAX Enhanced
|
|
assign_scores_to:
|
|
- name: UHD Bluray + WEB
|
|
score: 100 # Higher score = higher priority
|
|
```
|
|
|
|
---
|
|
|
|
## Maintenance
|
|
|
|
### Manual Sync
|
|
|
|
```bash
|
|
# Sync all instances
|
|
docker exec recyclarr recyclarr sync
|
|
|
|
# Sync specific instance
|
|
docker exec recyclarr recyclarr sync sonarr web-1080p-v4
|
|
```
|
|
|
|
### Update Recyclarr
|
|
|
|
Recyclarr is updated automatically by Watchtower (if enabled).
|
|
|
|
Manual update:
|
|
```bash
|
|
docker-compose -f docker-compose.arr-stack.yml pull recyclarr
|
|
docker-compose -f docker-compose.arr-stack.yml up -d recyclarr
|
|
```
|
|
|
|
### View Current Settings
|
|
|
|
Check what's currently configured in Sonarr/Radarr:
|
|
- Settings → Profiles → Quality Profiles
|
|
- Settings → Profiles → Custom Formats
|
|
|
|
---
|
|
|
|
## Best Practices
|
|
|
|
1. **Start with Templates**
|
|
- Use TRaSH templates as baseline
|
|
- Customize only if needed
|
|
|
|
2. **Test with Preview**
|
|
- Always preview before syncing
|
|
- Review changes carefully
|
|
|
|
3. **Backup Before Syncing**
|
|
- Backup Sonarr/Radarr databases
|
|
- Easy rollback if needed
|
|
|
|
4. **Monitor First Sync**
|
|
- Watch logs during initial sync
|
|
- Verify profiles in UI after sync
|
|
|
|
5. **Keep It Simple**
|
|
- Don't over-customize initially
|
|
- TRaSH defaults work well for most
|
|
|
|
---
|
|
|
|
## Advanced Configuration
|
|
|
|
### Multiple Instances
|
|
|
|
You can configure multiple Sonarr/Radarr instances:
|
|
|
|
```yaml
|
|
sonarr:
|
|
instance-1:
|
|
base_url: http://sonarr:8989
|
|
api_key: key1
|
|
|
|
instance-2:
|
|
base_url: http://sonarr-4k:8989
|
|
api_key: key2
|
|
```
|
|
|
|
### Instance-Specific Templates
|
|
|
|
Different quality settings per instance:
|
|
|
|
```yaml
|
|
sonarr:
|
|
web-1080p:
|
|
include:
|
|
- template: sonarr-v4-quality-profile-web-1080p
|
|
|
|
web-2160p:
|
|
include:
|
|
- template: sonarr-v4-quality-profile-web-2160p
|
|
```
|
|
|
|
---
|
|
|
|
## Resources
|
|
|
|
- **TRaSH Guides:** https://trash-guides.info/
|
|
- **Recyclarr Wiki:** https://recyclarr.dev/
|
|
- **Recyclarr GitHub:** https://github.com/recyclarr/recyclarr
|
|
- **TRaSH Discord:** https://trash-guides.info/discord
|
|
|
|
---
|
|
|
|
## Troubleshooting Checklist
|
|
|
|
- [ ] Config file exists at correct location
|
|
- [ ] Base URLs use service names (not localhost)
|
|
- [ ] API keys are correct and complete
|
|
- [ ] Sonarr/Radarr are running and healthy
|
|
- [ ] Containers are on same Docker network
|
|
- [ ] No typos in configuration
|
|
- [ ] YAML syntax is valid (proper indentation)
|
|
|
|
---
|
|
|
|
**Last Updated:** 2025-11-23
|