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 is an integration tool that bridges Plex watchlists with Sonarr and Radarr, enabling real-time media monitoring and automated content acquisition all from within the Plex App itself.
Enjoy all the benefits of other content discovery systems without requiring users to use additional services. All the magic happens from the primary user's Plex Token.
It provides user-based watchlist synchronization for yourself and for friends, intelligent content routing based on multiple criteria, approval workflows with quota management, and notification capabilities (Discord and Apprise).
Full documentation is available at: https://jamcalli.github.io/Pulsarr/
- Create a
.env
file:
baseUrl=http://your-server-ip # Address where Pulsarr can be reached
port=3003 # Port where Pulsarr is accessible
TZ=America/Los_Angeles # Set to your local timezone
logLevel=info # Default is 'silent', but 'info' is recommended
NODE_ARGS=--log-both # Default logs to file only, '--log-both' shows logs in terminal too
- 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:3003
to 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 for users requiring external database access or high-scale deployments.
See the configuration documentation for PostgreSQL setup details.
- 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)
- 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
We welcome contributions! Please see our Contributing Guidelines for details on:
- Fork and branch naming conventions
- Development workflow
- Pull request guidelines
- Need help? Open an issue on GitHub
- 🐛 Report bugs or request features
- 📖 Contribute to documentation
- 💬 Share with the community
Your support helps keep this project active and growing!
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