feat: Add Recyclarr and Profilarr for quality profile management

This commit is contained in:
Claude 2025-11-09 01:26:18 +00:00
parent 07ce29affe
commit 9807ce1627
No known key found for this signature in database
10 changed files with 1219 additions and 1 deletions

View file

@ -30,7 +30,9 @@ compose/
│ ├── sonarr/ # TV show management │ ├── sonarr/ # TV show management
│ ├── radarr/ # Movie management │ ├── radarr/ # Movie management
│ ├── sabnzbd/ # Usenet downloader │ ├── sabnzbd/ # Usenet downloader
│ └── qbittorrent/# Torrent client │ ├── qbittorrent/# Torrent client
│ ├── recyclarr/ # TRaSH Guides sync
│ └── profilarr/ # Profile manager (profilarr.fig.systems)
├── monitoring/ # Monitoring & logging ├── monitoring/ # Monitoring & logging
│ ├── logging/ # Centralized logging stack │ ├── logging/ # Centralized logging stack
│ │ ├── loki/ # Log aggregation (loki.fig.systems) │ │ ├── loki/ # Log aggregation (loki.fig.systems)
@ -79,6 +81,7 @@ All services are accessible via:
| Radarr | radarr.fig.systems | ✅ | | Radarr | radarr.fig.systems | ✅ |
| SABnzbd | sabnzbd.fig.systems | ✅ | | SABnzbd | sabnzbd.fig.systems | ✅ |
| qBittorrent | qbt.fig.systems | ✅ | | qBittorrent | qbt.fig.systems | ✅ |
| Profilarr | profilarr.fig.systems | ✅ |
| Linkwarden | links.fig.systems | ✅ | | Linkwarden | links.fig.systems | ✅ |
| Vikunja | tasks.fig.systems | ✅ | | Vikunja | tasks.fig.systems | ✅ |
| LubeLogger | garage.fig.systems | ✅ | | LubeLogger | garage.fig.systems | ✅ |
@ -156,6 +159,10 @@ cd compose/media/automation/radarr && docker compose up -d
cd compose/media/automation/sabnzbd && docker compose up -d cd compose/media/automation/sabnzbd && docker compose up -d
cd compose/media/automation/qbittorrent && docker compose up -d cd compose/media/automation/qbittorrent && docker compose up -d
# Quality management (optional but recommended)
cd compose/media/automation/recyclarr && docker compose up -d
cd compose/media/automation/profilarr && docker compose up -d
# Utility services # Utility services
cd compose/services/linkwarden && docker compose up -d cd compose/services/linkwarden && docker compose up -d
cd compose/services/vikunja && docker compose up -d cd compose/services/vikunja && docker compose up -d

View file

@ -0,0 +1,7 @@
# Profilarr Configuration
# Timezone
TZ=America/Los_Angeles
# Port (exposed internally to Traefik)
PORT=6868

View file

@ -0,0 +1,5 @@
# Profilarr data
data/
# Keep .env.example if created
!.env.example

View file

@ -0,0 +1,489 @@
# Profilarr - Profile & Format Manager
Web-based management for Radarr/Sonarr custom formats and quality profiles with Git version control.
## Overview
**Profilarr** provides a user-friendly interface to manage your Radarr and Sonarr configurations:
- ✅ **Web UI**: Easy-to-use interface (no YAML editing)
- ✅ **Custom Formats**: Import and manage custom formats
- ✅ **Quality Profiles**: Create and sync quality profiles
- ✅ **Version Control**: Git-based configuration tracking
- ✅ **Community Configs**: Import from community databases
- ✅ **Conflict Resolution**: Handles configuration clashes
- ✅ **Multi-Instance**: Manage multiple Radarr/Sonarr instances
- ✅ **Local Preservation**: Keeps your custom changes during updates
## Quick Start
### 1. Deploy
```bash
cd ~/homelab/compose/media/automation/profilarr
docker compose up -d
```
### 2. Access Web UI
Go to: **https://profilarr.fig.systems**
### 3. Initial Setup
On first visit, you'll configure Profilarr:
**Add Radarr Instance:**
1. Click **Add Instance**
2. **Type**: Radarr
3. **Name**: Radarr Main
4. **URL**: `http://radarr:7878`
5. **API Key**: (from Radarr → Settings → General → API Key)
6. Click **Save**
**Add Sonarr Instance:**
1. Click **Add Instance**
2. **Type**: Sonarr
3. **Name**: Sonarr Main
4. **URL**: `http://sonarr:8989`
5. **API Key**: (from Sonarr → Settings → General → API Key)
6. Click **Save**
### 4. Import Custom Formats
**From Community Database:**
1. Click **Custom Formats**
2. Click **Import from Database**
3. Select formats you want (e.g., "Web Tier 01", "Bluray Tier 01")
4. Click **Import Selected**
5. Click **Sync to Radarr/Sonarr**
**From TRaSH Guides:**
1. Click **Custom Formats**
2. Click **Import from TRaSH**
3. Browse available formats
4. Select and import
5. Sync to your instances
## Features
### Custom Format Management
**What are Custom Formats?**
Custom formats score releases based on:
- Release group quality
- Source (Bluray, WEB, HDTV, etc.)
- Resolution
- Codecs
- Special editions
**Example scores:**
- **+10000**: Top-tier release groups (e.g., "FraMeSToR", "EPSiLON")
- **+5000**: High-quality groups
- **-10000**: Unwanted (BR-DISK, CAMs, low quality)
**Create Custom Format:**
1. Custom Formats → Create New
2. **Name**: `My Custom Format`
3. **Add Conditions**:
- Release Group: `FraMeSToR|EPSiLON`
- Source: `Bluray`
4. **Score**: 10000
5. Save and sync
### Quality Profile Management
**Create Quality Profile:**
1. Quality Profiles → Create New
2. **Name**: `HD Bluray + WEB`
3. **Add Qualities**:
- Bluray-1080p (priority 1)
- WEB 1080p (priority 2)
- Bluray-720p (priority 3)
4. **Cutoff**: Bluray-1080p
5. **Custom Format Scoring**:
- Enable custom format scores
- Set minimum score: 0
- Set upgrade until score: 10000
6. Save and sync
### Version Control
**Every change is tracked:**
- Automatic Git commits
- View change history
- Rollback to previous versions
- Compare configurations
**View History:**
1. Click **History** tab
2. See all changes with timestamps
3. Click any commit to view details
4. Click **Rollback** to restore
**Manual Commit:**
1. Make changes
2. Click **Commit Changes**
3. Add commit message
4. Save
### Sync to Instances
**Push to Radarr/Sonarr:**
1. Make changes in Profilarr
2. Click **Sync** button
3. Select instances to sync
4. Review changes preview
5. Click **Apply**
**Auto-sync:**
- Enable in Settings → Sync
- Choose sync interval
- Changes automatically push to instances
### Import/Export
**Export Configuration:**
1. Settings → Export
2. Download JSON
3. Store backup safely
**Import Configuration:**
1. Settings → Import
2. Upload JSON file
3. Review changes
4. Apply
## Common Workflows
### 1. Set Up HD Quality Profiles
**Radarr - HD Bluray + WEB:**
1. Quality Profiles → Create New
2. Name: `HD Bluray + WEB`
3. Add qualities:
- Bluray-1080p
- WEB 1080p (WEBDL-1080p, WEBRip-1080p)
- Bluray-720p
- WEB 720p
4. Cutoff: Bluray-1080p
5. Upgrade until score: 10000
**Add custom formats:**
- Import: "Remux Tier 01" (+10000)
- Import: "Remux Tier 02" (+9000)
- Import: "WEB Tier 01" (+8000)
- Import: "BR-DISK" (-10000)
- Import: "LQ" (-10000)
6. Sync to Radarr
**Sonarr - WEB-1080p:**
Same process:
- WEB 1080p preferred
- HDTV-1080p fallback
- Import WEB tier custom formats
- Sync to Sonarr
### 2. Manage Multiple Instances
**Scenario:** Separate 1080p and 4K Radarr instances
**Setup:**
1. Add both instances:
- Radarr 1080p (http://radarr:7878)
- Radarr 4K (http://radarr-4k:7878)
2. Create separate profiles:
- Profile 1: `HD Bluray + WEB` → Sync to Radarr 1080p
- Profile 2: `UHD Bluray + WEB` → Sync to Radarr 4K
3. Import different custom formats for each
### 3. Import Community Configurations
**Popular community configs:**
1. Custom Formats → Community
2. Browse available configs:
- **TRaSH Recommended**: Full TRaSH Guides setup
- **Anime Optimized**: For anime content
- **Remux Preferred**: Maximum quality
- **Size Optimized**: Smaller file sizes
3. Click **Import**
4. Review settings
5. Sync to your instances
### 4. Create Anime Profile
**Sonarr Anime:**
1. Add custom formats:
- "Anime Tier 01" (+10000)
- "Anime Tier 02" (+9000)
- "Uncensored" (+5000)
- "Dual Audio" (+3000)
2. Create quality profile:
- Name: `Anime`
- Qualities: Bluray-1080p, WEB 1080p
- Enable custom format scoring
3. Sync to Sonarr
## Integration with Recyclarr
**Use both together for best results:**
### Recyclarr
- **Automated** TRaSH Guides sync
- **Scheduled** updates (every 6 hours)
- **YAML** configuration
- **Set and forget**
### Profilarr
- **Manual** custom configurations
- **Web UI** for easy changes
- **Version control** for tracking
- **Quick tweaks** without editing files
### Workflow
1. **Recyclarr**: Base configuration from TRaSH Guides
2. **Profilarr**: Fine-tune and customize
3. **Sync**: Both can coexist (Profilarr takes precedence on conflicts)
**Example:**
- Recyclarr syncs TRaSH quality profiles every 6 hours
- You use Profilarr to add custom formats for your favorite release groups
- Both stay in sync; Profilarr preserves your customizations
## Advanced Features
### Conflict Resolution
**What are conflicts?**
When Profilarr and Radarr/Sonarr have different configurations.
**Resolve conflicts:**
1. Conflicts tab shows all conflicts
2. Choose resolution:
- **Use Profilarr**: Override Radarr/Sonarr
- **Use Instance**: Keep Radarr/Sonarr config
- **Merge**: Combine both
3. Click **Resolve**
### Scheduling
**Automatic sync schedule:**
1. Settings → Sync
2. Enable **Auto-sync**
3. Set interval:
- Every hour
- Every 6 hours
- Daily
4. Save
**One-way vs Two-way:**
- **One-way**: Profilarr → Instance (recommended)
- **Two-way**: Sync both directions (can cause conflicts)
### Webhooks
**Notify on changes:**
1. Settings → Webhooks
2. Add webhook URL (Discord, Slack, etc.)
3. Choose events:
- Configuration changed
- Sync completed
- Conflict detected
4. Save
### API Access
Profilarr has an API for automation:
**Get API key:**
1. Settings → API
2. Generate API Key
3. Use in scripts/automation
**Example API calls:**
```bash
# List instances
curl http://profilarr.fig.systems/api/instances
# Trigger sync
curl -X POST http://profilarr.fig.systems/api/sync \
-H "X-API-Key: your-api-key"
# Get custom formats
curl http://profilarr.fig.systems/api/custom-formats
```
## Troubleshooting
### Can't connect to Radarr/Sonarr
**Check network:**
```bash
# Test from Profilarr container
docker exec profilarr curl http://radarr:7878
docker exec profilarr curl http://sonarr:8989
```
**Verify:**
- Containers on same `homelab` network
- API keys are correct
- URLs use container names (not localhost)
### Changes not syncing
**Force sync:**
1. Click instance name
2. Click **Force Full Sync**
3. Check sync logs
**Check:**
- Instance is reachable
- API key has write permissions
- No conflicts blocking sync
### "Profile already exists"
**Conflict resolution:**
1. Go to Conflicts tab
2. Find the profile conflict
3. Choose resolution:
- Merge with existing
- Replace existing
- Rename new profile
### Database locked
If you see "database is locked" errors:
**On Windows:**
- Don't use Windows filesystem for data volume
- Use Docker volume or WSL2 filesystem
**Fix:**
```bash
# Stop container
docker compose down
# Move data to Docker volume
docker volume create profilarr-data
# Update compose.yaml to use volume instead of bind mount
```
### UI not loading
**Check logs:**
```bash
docker logs profilarr
```
**Verify:**
- Container is running: `docker ps | grep profilarr`
- Traefik routing: `docker logs traefik | grep profilarr`
- Port 6868 accessible
## Best Practices
### Configuration Management
**Organize by purpose:**
- Create separate profiles for different quality tiers
- Use descriptive names (e.g., "HD Bluray Preferred", "4K Remux Only")
- Document custom formats with notes
### Version Control
**Commit regularly:**
- After major changes
- Before experimenting
- Use descriptive commit messages
- Tag stable configurations
### Backup
**Export regularly:**
```bash
# Export via UI
Settings → Export → Download
# Or backup data directory
cd ~/homelab/compose/media/automation/profilarr
tar czf profilarr-backup-$(date +%Y%m%d).tar.gz ./data
```
### Sync Strategy
**Recommended:**
- **Manual sync** for testing changes
- **Auto-sync** once you're confident
- **Preview** before applying large changes
### Instance Organization
**Name instances clearly:**
- `Radarr - 1080p`
- `Radarr - 4K`
- `Sonarr - TV Shows`
- `Sonarr - Anime`
## Getting API Keys
### Radarr API Key
1. Go to https://radarr.fig.systems
2. Settings → General
3. Security section
4. Copy **API Key**
### Sonarr API Key
1. Go to https://sonarr.fig.systems
2. Settings → General
3. Security section
4. Copy **API Key**
## Resource Usage
**Typical usage:**
- **RAM**: 100-200MB
- **CPU**: Low (spikes during sync)
- **Disk**: <500MB
- **Network**: Minimal
## Next Steps
1. ✅ Deploy Profilarr
2. ✅ Add Radarr/Sonarr instances
3. ✅ Import custom formats
4. ✅ Create quality profiles
5. ✅ Sync to instances
6. ✅ Test download quality
7. ⬜ Set up auto-sync
8. ⬜ Configure version control
9. ⬜ Export backup configuration
## Resources
- [Profilarr Website](https://dictionarry.dev)
- [Profilarr GitHub](https://github.com/Dictionarry-Hub/profilarr)
- [TRaSH Guides](https://trash-guides.info)
- [Radarr Wiki](https://wiki.servarr.com/radarr)
- [Sonarr Wiki](https://wiki.servarr.com/sonarr)
---
**Manage profiles with ease!** 🎛️

View file

@ -0,0 +1,40 @@
# Profilarr - Custom Format & Quality Profile Manager
# Docs: https://dictionarry.dev
services:
profilarr:
container_name: profilarr
image: santiagosayshey/profilarr:latest
restart: unless-stopped
env_file:
- .env
volumes:
- ./data:/app/data
networks:
- homelab
labels:
# Traefik
traefik.enable: true
traefik.docker.network: homelab
# Web UI
traefik.http.routers.profilarr.rule: Host(`profilarr.fig.systems`) || Host(`profilarr.edfig.dev`)
traefik.http.routers.profilarr.entrypoints: websecure
traefik.http.routers.profilarr.tls.certresolver: letsencrypt
traefik.http.services.profilarr.loadbalancer.server.port: 6868
# SSO Protection
traefik.http.routers.profilarr.middlewares: tinyauth
# Homarr Discovery
homarr.name: Profilarr (Profiles)
homarr.group: Automation
homarr.icon: mdi:cog-sync
networks:
homelab:
external: true

View file

@ -0,0 +1,12 @@
# Recyclarr Configuration
# Timezone
TZ=America/Los_Angeles
# Sync schedule (cron format)
# Default: Every 6 hours
# Example: "0 2 * * *" = Daily at 2 AM
CRON_SCHEDULE=0 */6 * * *
# Log level (Debug, Information, Warning, Error)
LOG_LEVEL=Information

View file

@ -0,0 +1,5 @@
# Recyclarr config and data
config/
# Keep .env.example if created
!.env.example

View file

@ -0,0 +1,490 @@
# Recyclarr - TRaSH Guides Sync
Automatically sync TRaSH Guides recommendations to your Radarr and Sonarr instances.
## Overview
**Recyclarr** keeps your Radarr and Sonarr configurations in sync with [TRaSH Guides](https://trash-guides.info) best practices:
- ✅ **Quality Profiles**: Optimal quality settings
- ✅ **Custom Formats**: Release group scoring
- ✅ **Quality Definitions**: File size recommendations
- ✅ **Naming Formats**: Consistent file naming
- ✅ **Automated Sync**: Runs on schedule (every 6 hours by default)
- ✅ **Multi-Instance**: Support multiple Radarr/Sonarr instances
## Quick Start
### 1. Get API Keys
**Radarr API Key:**
```bash
# Visit https://radarr.fig.systems
# Settings → General → Security → API Key
```
**Sonarr API Key:**
```bash
# Visit https://sonarr.fig.systems
# Settings → General → Security → API Key
```
### 2. Create Configuration
```bash
cd ~/homelab/compose/media/automation/recyclarr
# Create config directory
mkdir -p config
# Copy example config
cp recyclarr.yml.example config/recyclarr.yml
# Edit with your API keys
nano config/recyclarr.yml
```
**Update these values:**
```yaml
radarr:
radarr-main:
api_key: YOUR_RADARR_API_KEY_HERE # <- Replace this
sonarr:
sonarr-main:
api_key: YOUR_SONARR_API_KEY_HERE # <- Replace this
```
### 3. Deploy
```bash
docker compose up -d
```
### 4. Verify
Check the logs to see sync results:
```bash
docker logs recyclarr
```
You should see:
```
Processing configuration...
Syncing Radarr: radarr-main
Syncing Sonarr: sonarr-main
Sync completed successfully
```
## Configuration
### Basic Configuration
The `config/recyclarr.yml` file controls what gets synced.
**Minimal example:**
```yaml
radarr:
radarr-main:
base_url: http://radarr:7878
api_key: abc123...
sonarr:
sonarr-main:
base_url: http://sonarr:8989
api_key: xyz789...
```
### Quality Profiles
**Radarr - HD Bluray + WEB:**
```yaml
radarr:
radarr-main:
quality_profiles:
- name: HD Bluray + WEB
upgrade:
allowed: true
until_quality: Bluray-1080p
qualities:
- name: Bluray-1080p
- name: WEB 1080p
- name: Bluray-720p
- name: WEB 720p
```
**Sonarr - WEB-1080p:**
```yaml
sonarr:
sonarr-main:
quality_profiles:
- name: WEB-1080p
upgrade:
allowed: true
until_quality: WEB 1080p
qualities:
- name: WEB 1080p
- name: HDTV-1080p
- name: WEB 720p
```
### Custom Formats
Custom formats score releases based on quality, source, and release group.
**High-quality release groups (+10000 points):**
```yaml
custom_formats:
- trash_ids:
- 3a3ff47579026e76d6504ebea39390de # Remux Tier 01
- 9f98181fe5a3fbeb0cc29340da2a468a # Remux Tier 02
quality_profiles:
- name: HD Bluray + WEB
score: 10000
```
**Unwanted formats (-10000 points):**
```yaml
custom_formats:
- trash_ids:
- ed38b889b31be83ffc192888e2286d83 # BR-DISK
- 90a6f9a284dff5103f6346090e6280c8 # LQ
- b8cd450cbfa689c0259a01d9e29ba3d6 # 3D
quality_profiles:
- name: HD Bluray + WEB
score: -10000
```
**Find trash_ids:**
- [TRaSH Radarr Custom Formats](https://trash-guides.info/Radarr/Radarr-collection-of-custom-formats/)
- [TRaSH Sonarr Custom Formats](https://trash-guides.info/Sonarr/sonarr-collection-of-custom-formats/)
### Sync Schedule
**Change sync frequency:**
Edit `.env`:
```env
# Every 6 hours (default)
CRON_SCHEDULE=0 */6 * * *
# Daily at 3 AM
CRON_SCHEDULE=0 3 * * *
# Every 12 hours
CRON_SCHEDULE=0 */12 * * *
# Every hour
CRON_SCHEDULE=0 * * * *
```
**Manual sync:**
```bash
docker exec recyclarr recyclarr sync
```
## Common Configurations
### 1. HD Quality (1080p)
Good balance of quality and file size.
**Radarr:**
- Bluray-1080p preferred
- WEB-1080p as fallback
- Scores high-quality release groups
**Sonarr:**
- WEB-1080p preferred
- HDTV-1080p as fallback
### 2. Maximum Quality (Remux)
Best possible quality, large file sizes.
```yaml
radarr:
radarr-main:
quality_profiles:
- name: Remux-1080p
upgrade:
allowed: true
until_quality: Remux-1080p
qualities:
- name: Remux-1080p
- name: Bluray-1080p
```
### 3. 4K / UHD
For 4K content:
```yaml
radarr:
radarr-4k:
base_url: http://radarr:7878
api_key: abc123...
quality_profiles:
- name: UHD Bluray + WEB
upgrade:
until_quality: Remux-2160p
qualities:
- name: Remux-2160p
- name: Bluray-2160p
- name: WEB 2160p
```
### 4. Anime
Special settings for anime:
```yaml
sonarr:
sonarr-anime:
base_url: http://sonarr:8989
api_key: xyz789...
quality_profiles:
- name: Anime
qualities:
- name: Bluray-1080p
- name: WEB 1080p
custom_formats:
- trash_ids:
- 064af5f084a0a24458cc8ecd3220f93f # Uncensored
quality_profiles:
- name: Anime
score: 10000
```
## Integration with Radarr/Sonarr
### How It Works
1. **Recyclarr reads** your `recyclarr.yml` configuration
2. **Connects to** Radarr/Sonarr via API
3. **Syncs settings:**
- Creates/updates quality profiles
- Adds custom formats with scores
- Sets quality definitions
- Configures naming formats
4. **Your instances** now use TRaSH Guides best practices
### What Gets Changed
**Recyclarr modifies:**
- Quality profile settings
- Custom format definitions
- Quality definitions (file sizes)
- Naming formats (if configured)
**Recyclarr does NOT touch:**
- Your media files
- Download client settings
- Indexer configurations
- Root folder locations
- Existing downloads/monitoring
### Multiple Instances
Run separate Radarr/Sonarr instances for different purposes:
```yaml
radarr:
radarr-1080p:
base_url: http://radarr:7878
api_key: abc123...
radarr-4k:
base_url: http://radarr-4k:7878
api_key: def456...
sonarr:
sonarr-shows:
base_url: http://sonarr:8989
api_key: ghi789...
sonarr-anime:
base_url: http://sonarr-anime:8989
api_key: jkl012...
```
## Troubleshooting
### Recyclarr won't start
**Check logs:**
```bash
docker logs recyclarr
```
**Common issues:**
- Missing API keys in `config/recyclarr.yml`
- Radarr/Sonarr not accessible at `base_url`
- Invalid YAML syntax
### "Unable to connect to Radarr/Sonarr"
**Verify connectivity:**
```bash
# From recyclarr container
docker exec recyclarr curl http://radarr:7878
docker exec recyclarr curl http://sonarr:8989
```
**Check:**
- Radarr/Sonarr containers are running
- Both on `homelab` network
- API keys are correct
### "Profile not found"
The quality profile name in `recyclarr.yml` must match exactly.
**Check existing profiles:**
1. Go to Radarr → Settings → Profiles
2. Note the exact profile name
3. Use that name in `recyclarr.yml`
Or let Recyclarr create the profile (it will if it doesn't exist).
### Changes not appearing
**Force a sync:**
```bash
docker exec recyclarr recyclarr sync --preview
docker exec recyclarr recyclarr sync
```
**Check:**
- Look for errors in logs
- Verify API key has write permissions
- Check Radarr/Sonarr system logs
### Invalid trash_id
If you see "invalid trash_id" errors:
1. Visit [TRaSH Guides](https://trash-guides.info)
2. Find the custom format you want
3. Copy the exact trash_id from the guide
4. Update `recyclarr.yml`
## Advanced Usage
### Preview Mode
See what would change without applying:
```bash
docker exec recyclarr recyclarr sync --preview
```
### Sync Specific Instance
```bash
# Sync only Radarr
docker exec recyclarr recyclarr sync radarr
# Sync only Sonarr
docker exec recyclarr recyclarr sync sonarr
# Sync specific instance
docker exec recyclarr recyclarr sync radarr-main
```
### Validate Configuration
```bash
docker exec recyclarr recyclarr config list
docker exec recyclarr recyclarr config check
```
### Debug Mode
Enable debug logging in `.env`:
```env
LOG_LEVEL=Debug
```
Then restart:
```bash
docker compose restart
```
## Best Practices
### Start Simple
1. **First sync:** Use default quality profiles
2. **Test:** Download a movie/show
3. **Verify:** Check quality and file size
4. **Adjust:** Modify scores and profiles as needed
### Quality Profile Strategy
**For most users:**
- Radarr: HD Bluray + WEB (1080p)
- Sonarr: WEB-1080p
**For quality enthusiasts:**
- Radarr: Remux-1080p or UHD Bluray + WEB
- Sonarr: Bluray-1080p
**For storage-conscious:**
- Lower minimum quality
- Add file size limits
- Score smaller releases higher
### Custom Format Scores
**Scoring guide:**
- **+10000**: Highest priority (preferred release groups)
- **+5000**: High priority (good quality)
- **+1000**: Moderate preference
- **-10000**: Never download (BR-DISK, CAM, etc.)
- **-5000**: Avoid unless no alternative
### Sync Frequency
**Recommended schedules:**
- **Every 6 hours**: Default, good balance
- **Daily**: If you rarely update settings
- **Every hour**: If actively tuning configurations
## TRaSH Guides Resources
- [TRaSH Guides Home](https://trash-guides.info)
- [Radarr Custom Formats](https://trash-guides.info/Radarr/)
- [Sonarr Custom Formats](https://trash-guides.info/Sonarr/)
- [Recyclarr Documentation](https://recyclarr.dev)
## Comparison: Recyclarr vs Profilarr
| Feature | Recyclarr | Profilarr |
|---------|-----------|-----------|
| **Interface** | CLI / Automated | Web UI |
| **Configuration** | YAML file | Web interface |
| **Source** | TRaSH Guides | Custom + Community |
| **Automation** | Scheduled sync | Manual/scheduled |
| **Version Control** | Via Git (manual) | Built-in |
| **Learning Curve** | Moderate | Easy |
| **Best For** | Set-and-forget | Active management |
**Use both together:**
- Recyclarr for automated TRaSH sync
- Profilarr for custom tweaks and management
## Next Steps
1. ✅ Deploy Recyclarr
2. ✅ Configure API keys
3. ✅ Run first sync
4. ✅ Check Radarr/Sonarr profiles
5. ✅ Test download quality
6. ⬜ Fine-tune custom format scores
7. ⬜ Set up Profilarr for additional management
8. ⬜ Monitor sync logs periodically
---
**Automate quality, maintain consistency!** 🎬

View file

@ -0,0 +1,32 @@
# Recyclarr - Sync TRaSH Guides to Radarr/Sonarr
# Docs: https://recyclarr.dev
services:
recyclarr:
container_name: recyclarr
image: ghcr.io/recyclarr/recyclarr:latest
restart: unless-stopped
env_file:
- .env
volumes:
- ./config:/config
networks:
- homelab
# Run sync on startup and every 6 hours
# Use cron schedule: "0 */6 * * *" for every 6 hours
environment:
- CRON_SCHEDULE=0 */6 * * *
labels:
# Homarr Discovery
homarr.name: Recyclarr (Quality Sync)
homarr.group: Automation
homarr.icon: mdi:recycle
networks:
homelab:
external: true

View file

@ -0,0 +1,131 @@
# Recyclarr Configuration
# Copy this file to ./config/recyclarr.yml and update with your API keys
# Docs: https://recyclarr.dev/wiki/yaml/config-reference/
# Radarr Configuration
radarr:
radarr-main:
base_url: http://radarr:7878
api_key: YOUR_RADARR_API_KEY_HERE
# Quality Definitions
quality_definition:
type: movie
preferred_ratio: 0.5
# Quality Profiles
quality_profiles:
# HD Bluray + WEB profile
- name: HD Bluray + WEB
reset_unmatched_scores:
enabled: true
upgrade:
allowed: true
until_quality: Bluray-1080p
until_score: 10000
min_format_score: 0
quality_sort: top
qualities:
- name: Bluray-1080p
- name: WEB 1080p
qualities:
- WEBDL-1080p
- WEBRip-1080p
- name: Bluray-720p
- name: WEB 720p
qualities:
- WEBDL-720p
- WEBRip-720p
# Custom Formats from TRaSH Guides
custom_formats:
# Movie Versions
- trash_ids:
- 0f12c086e289cf966fa5948eac571f44 # Hybrid
- 570bc9ebecd92723d2d21500f4be314c # Remaster
- eca37840c13c6ef2dd0262b141a5482f # 4K Remaster
- e0c07d59beb37348e975a930d5e50319 # Criterion Collection
- 9d27d9d2181838f76dee150882bdc58c # Masters of Cinema
- db9b4c4b53d312a3ca5f1378f6440fc9 # Vinegar Syndrome
quality_profiles:
- name: HD Bluray + WEB
# HQ Release Groups
- trash_ids:
- 3a3ff47579026e76d6504ebea39390de # Remux Tier 01
- 9f98181fe5a3fbeb0cc29340da2a468a # Remux Tier 02
- 8baaf0b3142bf4d94c42a724f034e27a # Remux Tier 03
quality_profiles:
- name: HD Bluray + WEB
score: 10000
# Unwanted formats
- trash_ids:
- ed38b889b31be83ffc192888e2286d83 # BR-DISK
- 90a6f9a284dff5103f6346090e6280c8 # LQ
- b8cd450cbfa689c0259a01d9e29ba3d6 # 3D
- 7357cf5161efbf8c4d5d0c30b4815ee2 # Obfuscated
- ae9b7c9ebde1f3bd336a8cbd1ec4c5e5 # No-RlsGroup
- dc98083864ea246d05a42df0d05f81cc # x265 (HD)
quality_profiles:
- name: HD Bluray + WEB
score: -10000
# Sonarr Configuration
sonarr:
sonarr-main:
base_url: http://sonarr:8989
api_key: YOUR_SONARR_API_KEY_HERE
# Quality Definitions
quality_definition:
type: series
preferred_ratio: 0.5
# Release Profiles (v3)
# For Sonarr v4, use custom_formats instead
# Quality Profiles
quality_profiles:
# WEB-1080p profile
- name: WEB-1080p
reset_unmatched_scores:
enabled: true
upgrade:
allowed: true
until_quality: WEB 1080p
until_score: 10000
min_format_score: 0
quality_sort: top
qualities:
- name: WEB 1080p
qualities:
- WEBDL-1080p
- WEBRip-1080p
- name: HDTV-1080p
- name: WEB 720p
qualities:
- WEBDL-720p
- WEBRip-720p
- name: HDTV-720p
# Custom Formats from TRaSH Guides
custom_formats:
# HQ Release Groups
- trash_ids:
- d6819cba26b1a6508138d25fb5e32293 # WEB Tier 01
- 2016d1676f5ee13a5b7257ff86ac9a93 # WEB Tier 02
- 7221e47c5ae4e0b3eb0c01c5b6e5c31e # WEB Tier 03
quality_profiles:
- name: WEB-1080p
score: 10000
# Unwanted formats
- trash_ids:
- 85c61753df5da1fb2aab6f2a47426b09 # BR-DISK
- 9c11cd3f07101cdba90a2d81cf0e56b4 # LQ
- 47435ece6b99a0b477caf360e79ba0bb # x265 (HD)
- fbcb31d8dabd2a319072b84fc0b7249c # Extras
quality_profiles:
- name: WEB-1080p
score: -10000