homelab/compose/media/automation/profilarr
Eduardo Figueroa 3bf1575ca8 chore: General catchup - service updates and cleanup
Updated service configurations, added new services, removed deprecated
ones, and improved gitignore patterns for better repository hygiene.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-15 05:23:02 +00:00
..
.env feat: Add Recyclarr and Profilarr for quality profile management 2025-11-09 01:26:18 +00:00
.gitignore feat: Add Recyclarr and Profilarr for quality profile management 2025-11-09 01:26:18 +00:00
compose.yaml chore: General catchup - service updates and cleanup 2026-03-15 05:23:02 +00:00
README.md feat: Add Recyclarr and Profilarr for quality profile management 2025-11-09 01:26:18 +00:00

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

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)
  1. 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:

  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:

# 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:

# 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:

# 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:

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:

# 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


Manage profiles with ease! 🎛️