# 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!** 🎛️