Domain Strategy: - fig.systems: Homelab services only (removed edfig.dev fallback from all services) - edfig.dev: Professional/public sites (personal site, blog) - figgy.foo: Experimental/private content (SSO protected) Removed edfig.dev Fallbacks: - Updated 22 compose files to remove || Host(...edfig.dev) pattern - All homelab services now use fig.systems only - Traefik email remains admin@edfig.dev Added Caddy Static Sites Service: - compose/services/static-sites/ with Caddy 2 - Serves three domains with different configurations: * edfig.dev (personal/professional) - Public, no SSO * blog.edfig.dev (blog) - Public, Markdown rendering, templates * figgy.foo (experimental) - SSO protected, directory browsing - Example sites with modern, responsive designs - Comprehensive README with usage examples - Auto-reload on config changes (no restarts needed) Features: - Markdown rendering (write .md, serves as HTML) - Go templates for dynamic content - Directory browsing (figgy.foo) - Automatic gzip compression - Static asset caching - Zero-downtime config reloads Updated Documentation: - README.md: Added domain strategy section, static sites in directory structure - README.md: Added static sites to service URLs table - README.md: Updated deployment instructions |
||
|---|---|---|
| .. | ||
| .env | ||
| .gitignore | ||
| compose.yaml | ||
| README.md | ||
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:
- Click Add Instance
- Type: Radarr
- Name: Radarr Main
- URL:
http://radarr:7878 - API Key: (from Radarr → Settings → General → API Key)
- Click Save
Add Sonarr Instance:
- Click Add Instance
- Type: Sonarr
- Name: Sonarr Main
- URL:
http://sonarr:8989 - API Key: (from Sonarr → Settings → General → API Key)
- Click Save
4. Import Custom Formats
From Community Database:
- Click Custom Formats
- Click Import from Database
- Select formats you want (e.g., "Web Tier 01", "Bluray Tier 01")
- Click Import Selected
- Click Sync to Radarr/Sonarr
From TRaSH Guides:
- Click Custom Formats
- Click Import from TRaSH
- Browse available formats
- Select and import
- 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:
- Custom Formats → Create New
- Name:
My Custom Format - Add Conditions:
- Release Group:
FraMeSToR|EPSiLON - Source:
Bluray
- Release Group:
- Score: 10000
- Save and sync
Quality Profile Management
Create Quality Profile:
- Quality Profiles → Create New
- Name:
HD Bluray + WEB - Add Qualities:
- Bluray-1080p (priority 1)
- WEB 1080p (priority 2)
- Bluray-720p (priority 3)
- Cutoff: Bluray-1080p
- Custom Format Scoring:
- Enable custom format scores
- Set minimum score: 0
- Set upgrade until score: 10000
- Save and sync
Version Control
Every change is tracked:
- Automatic Git commits
- View change history
- Rollback to previous versions
- Compare configurations
View History:
- Click History tab
- See all changes with timestamps
- Click any commit to view details
- Click Rollback to restore
Manual Commit:
- Make changes
- Click Commit Changes
- Add commit message
- Save
Sync to Instances
Push to Radarr/Sonarr:
- Make changes in Profilarr
- Click Sync button
- Select instances to sync
- Review changes preview
- Click Apply
Auto-sync:
- Enable in Settings → Sync
- Choose sync interval
- Changes automatically push to instances
Import/Export
Export Configuration:
- Settings → Export
- Download JSON
- Store backup safely
Import Configuration:
- Settings → Import
- Upload JSON file
- Review changes
- Apply
Common Workflows
1. Set Up HD Quality Profiles
Radarr - HD Bluray + WEB:
- Quality Profiles → Create New
- Name:
HD Bluray + WEB - Add qualities:
- Bluray-1080p
- WEB 1080p (WEBDL-1080p, WEBRip-1080p)
- Bluray-720p
- WEB 720p
- Cutoff: Bluray-1080p
- 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)
- 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:
-
Add both instances:
- Radarr 1080p (http://radarr:7878)
- Radarr 4K (http://radarr-4k:7878)
-
Create separate profiles:
- Profile 1:
HD Bluray + WEB→ Sync to Radarr 1080p - Profile 2:
UHD Bluray + WEB→ Sync to Radarr 4K
- Profile 1:
-
Import different custom formats for each
3. Import Community Configurations
Popular community configs:
-
Custom Formats → Community
-
Browse available configs:
- TRaSH Recommended: Full TRaSH Guides setup
- Anime Optimized: For anime content
- Remux Preferred: Maximum quality
- Size Optimized: Smaller file sizes
-
Click Import
-
Review settings
-
Sync to your instances
4. Create Anime Profile
Sonarr Anime:
-
Add custom formats:
- "Anime Tier 01" (+10000)
- "Anime Tier 02" (+9000)
- "Uncensored" (+5000)
- "Dual Audio" (+3000)
-
Create quality profile:
- Name:
Anime - Qualities: Bluray-1080p, WEB 1080p
- Enable custom format scoring
- Name:
-
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
- Recyclarr: Base configuration from TRaSH Guides
- Profilarr: Fine-tune and customize
- 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:
- Conflicts tab shows all conflicts
- Choose resolution:
- Use Profilarr: Override Radarr/Sonarr
- Use Instance: Keep Radarr/Sonarr config
- Merge: Combine both
- Click Resolve
Scheduling
Automatic sync schedule:
- Settings → Sync
- Enable Auto-sync
- Set interval:
- Every hour
- Every 6 hours
- Daily
- Save
One-way vs Two-way:
- One-way: Profilarr → Instance (recommended)
- Two-way: Sync both directions (can cause conflicts)
Webhooks
Notify on changes:
- Settings → Webhooks
- Add webhook URL (Discord, Slack, etc.)
- Choose events:
- Configuration changed
- Sync completed
- Conflict detected
- Save
API Access
Profilarr has an API for automation:
Get API key:
- Settings → API
- Generate API Key
- 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
homelabnetwork - API keys are correct
- URLs use container names (not localhost)
Changes not syncing
Force sync:
- Click instance name
- Click Force Full Sync
- Check sync logs
Check:
- Instance is reachable
- API key has write permissions
- No conflicts blocking sync
"Profile already exists"
Conflict resolution:
- Go to Conflicts tab
- Find the profile conflict
- 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 - 1080pRadarr - 4KSonarr - TV ShowsSonarr - Anime
Getting API Keys
Radarr API Key
- Go to https://radarr.fig.systems
- Settings → General
- Security section
- Copy API Key
Sonarr API Key
- Go to https://sonarr.fig.systems
- Settings → General
- Security section
- Copy API Key
Resource Usage
Typical usage:
- RAM: 100-200MB
- CPU: Low (spikes during sync)
- Disk: <500MB
- Network: Minimal
Next Steps
- ✅ Deploy Profilarr
- ✅ Add Radarr/Sonarr instances
- ✅ Import custom formats
- ✅ Create quality profiles
- ✅ Sync to instances
- ✅ Test download quality
- ⬜ Set up auto-sync
- ⬜ Configure version control
- ⬜ Export backup configuration
Resources
Manage profiles with ease! 🎛️