Sign inSign up

jermcee/plex-notifier

By jermcee

β€’Updated 8 months ago

Plex Notifier: polls Plex & emails users on new episodes

Image
0

2.7K

jermcee/plex-notifier repository overview

Plex Notifier Logo

β πŸ“Ί Plex Notifier

Plex Notifier is a lightweight Flask-based web service that monitors your Plex library and emails users when new episodes are available β€” but only for shows they’ve already shown interest in (i.e. fully watched at least one episode).

Built with Docker, designed for Unraid, and powered by Tautulli.


⁠✨ Features

  • βœ… Sends personalized email notifications for new episodes
  • βœ… Automatically detects user interest via Tautulli watch history
  • βœ… Fully responsive Web UI for configuring:
    • Plex and Tautulli credentials
    • Email (SMTP) settings
    • Notification interval
  • βœ… Users can unsubscribe globally or per-show (Beta)
  • πŸ” Optional HTTP Basic Auth for admin access
  • πŸ“„ Per-user logs stored locally for review (Beta)
  • 🐳 Runs cleanly in Docker with Unraid support

⁠🧰 Requirements

  • A running Plex Media Server
  • A Tautulli instance connected to your Plex
  • SMTP credentials (Gmail, Mailgun, etc.)
  • Docker (or Unraid)

β πŸš€ Getting Started

⁠Docker CLI
docker run -d \
  --name plex-notifier \
  --net=host \
  -v /mnt/cache/appdata/plex-notifier:/app/instance \
  -e TZ=America/Chicago \
  -e SECRET_KEY=$(openssl rand -hex 32) \
  -e WEBUI_USER=admin \
  -e WEBUI_PASS=changeme \
  jjermany/plex-notifier:beta

Replace the env values as needed. The container runs on port 5000.


⁠Unraid Setup
  1. Go to the Apps tab (Community Applications).
  2. Add this template repo:
    https://github.com/jjermany/unraid-templates
    
  3. Install the Plex Notifier (Beta) template.
  4. Configure your settings in the WebUI (http://[Unraid IP]:5000).

β πŸ”’ Authentication

HTTP Basic Auth is optional but recommended. Set the following environment variables:

WEBUI_USER=yourusername
WEBUI_PASS=yourpassword

β πŸ“¬ Email Configuration

The following SMTP fields are required and configured via the Web UI:

  • SMTP Host
  • SMTP Port
  • SMTP Username
  • SMTP Password
  • From Address (email)
  • Base URL (used in unsubscribe links)

β πŸ“ Subscription Management

Each email includes a secure unsubscribe link:

  • Global opt-out: stop all future notifications
  • Per-show opt-out: stop notifications for specific shows only

You can review and manage preferences directly in the Web UI after clicking the unsubscribe link.


β πŸ“¦ Data & Logs

  • All settings and user preferences are saved in:
    /app/instance/config.sqlite3
    
  • Each user also gets a personal log file:
    /app/instance/logs/[user]-notification.log
    

⁠πŸ§ͺ Development

Want to help or test features?

git clone https://github.com/jjermany/plex-notifier.git
cd plex-notifier
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
flask run

You can also use Docker Compose for local dev (optional).


β πŸ™Œ Contributing

Pull requests welcome! Please:

  • Follow existing coding patterns
  • Keep logging clean and minimal
  • Add clear commit messages

β πŸ› οΈ Roadmap

  • βœ… Per-show opt-out
  • βœ… Web UI settings panel
  • ⏳ Discord/Pushbullet support (future)
  • ⏳ Plex token auto-refresh (if needed)

β πŸ“˜ License

MIT License. See LICENSE⁠ for details.


β πŸ›  Web UI Configuration Guide

After starting the container, navigate to the Web UI (e.g. http://localhost:5000) and fill in the following fields:

β πŸ“Ί Plex & Tautulli
FieldExampleDescription
Plex URLhttp://localhost:32400URL to your Plex server. Use http://[LAN IP]:32400 if running separately.
Plex TokenxxxxxGet your token from: Plex Token Guide⁠
Tautulli URLhttp://localhost:8181URL to your Tautulli instance (must be reachable by this container).
Tautulli API KeyxxxxxxxxFound under Tautulli Settings β†’ Web Interface β†’ API.
β πŸ“§ Email Settings
FieldExampleDescription
SMTP Hostsmtp.gmail.comYour email provider’s SMTP server.
SMTP Port587Common ports: 587 (TLS), 465 (SSL).
SMTP Username[email protected]The email address you’ll send from.
SMTP PasswordxxxxxxxxApp-specific password (for Gmail/Mailgun/etc).
From Address[email protected]The email address shown to recipients.
Base URLhttp://notifier.example.comPublicly accessible URL to your notifier app. Usually this is a domain or tunnel (e.g. Cloudflare Tunnel, NGINX Proxy Manager) pointing to your app’s port. This is used for unsubscribe links.
⁠⏱️ Polling Interval
FieldExampleDescription
Notify Interval30How often (in minutes) to check for new Plex episodes. Default is 30.
⁠πŸ§ͺ Testing
  • Use the "Send Test Email" form to verify SMTP settings.
  • Use "Run Now (last 24h)" to manually trigger a check for new episodes.

Tag summary

Content type

Image

Digest

sha256:88e68541c…

Size

109.3 MB

Last updated

8 months ago

docker pull jermcee/plex-notifier