If Pulsarr has simplified your media management, please star this repository! It takes just a second, helps others find us, and motivates continued development. Thank you for being part of our community!
Pulsarr bridges Plex watchlists with Sonarr and Radarr for real-time media monitoring and automated content acquisition—all from within the Plex app, no extra logins required.
Features include multi-user watchlist sync, intelligent content routing, approval workflows with quotas, and notifications via Discord and Apprise.
Full documentation is available at: https://jamcalli.github.io/Pulsarr/
Our REST API is fully documented and accessible in two ways:
- Public Documentation: https://jamcalli.github.io/Pulsarr/docs/api-documentation
- Interactive Docs: Every Pulsarr instance includes built-in Scalar API documentation at
http://localhost:3003/api/docs
- Create a
.envfile:
# ⚠️ CRITICAL: Pulsarr's address as seen from Sonarr/Radarr containers (for webhooks)
# This MUST be reachable from your *arr containers or webhooks will fail!
# Examples:
# http://pulsarr - Docker Compose (same network, use service name)
# http://localhost - Host networking
# http://192.168.1.x - Separate machines (use Pulsarr host's IP)
baseUrl=http://your-server-ip
port=3003 # Default: 3003
# Your timezone
TZ=America/Los_Angeles- Create
docker-compose.yml:
services:
pulsarr:
image: lakker/pulsarr:latest
container_name: pulsarr
ports:
- "3003:3003"
volumes:
- ./data:/app/data
- .env:/app/.env
restart: unless-stopped
env_file:
- .env- Pull and start the service:
docker compose pull && docker compose up -d- Access the web UI at
http://your-server:3003to complete setup.
For detailed installation options, including Unraid, manual installation, and PostgreSQL setup, see the documentation.
Pulsarr uses SQLite by default but can also be configured to use PostgreSQL.
See the configuration documentation for PostgreSQL setup details.
ElfHosted offers managed Pulsarr hosting with pre-configured media server bundles.
- Real-time Monitoring: Instant watchlist updates for Plex Pass users (20-minute polling for non-Pass users)
- Smart Content Routing: Route content based on genre, user, language, year, certification, and more
- Approval & Quota System: Administrative approval workflows with configurable user quotas (daily/weekly/monthly limits)
- Plex Label Sync: Automatically sync user watchlists and Radarr/Sonarr tags as Plex labels with real-time webhook updates
- Multi-Instance Support: Distribute content across multiple Sonarr/Radarr instances with intelligent synchronization
- Multi-User Support: Monitor watchlists for friends and family with granular permissions
- Discord Bot Integration: Complete approval management directly from Discord with interactive commands
- Flexible Notifications: Discord bot, Tautulli, webhooks, and 80+ services via Apprise
- Advanced Lifecycle Management: Watchlist-based or tag-based deletion with playlist protection
- Plex Session Monitoring: Auto-search for next seasons when users near season finales
- User Tagging: Track who requested what content in Sonarr/Radarr
- Comprehensive Analytics: Detailed dashboards with usage stats, genre analysis, and content distribution
- Automatic Plex Updates: Configures webhooks for instant library refreshes
- Developer-Friendly API: Full REST API with interactive documentation
- Home Assistant Integration - Community-maintained integration to manage Pulsarr requests from Home Assistant
- Pulsarr Card - Community-maintained companion card for the HA integration
We welcome contributions! Please see our Contributing Guidelines for details on:
- Fork and branch naming conventions
- Development workflow
- Pull request guidelines
- Discord - Help, discussions, and updates
- GitHub Issues - Bug reports and feature requests
A big thank you to these amazing contributors who've helped build and maintain this project:
Pulsarr is licensed under the GPL. See the LICENSE file for details.
- Plex • Sonarr • Radarr • Fastify • Discord.js • Watchlistarr
