All apps Β· 0 apps
Plex-Notifier
Docker app from jermcee's Repository
Overview
Readme
View on GitHub
πΊ 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 admin login screen for admin access
- π Per-user logs stored locally for review (Beta)
- β»οΈ Skips duplicate notifications by tracking each user's last 200 alerts
- π³ 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
- Go to the Apps tab (Community Applications).
- Add this template repo:
https://github.com/jjermany/unraid-templates - Install the Plex Notifier (Beta) template.
- Configure your settings in the WebUI (
http://[Unraid IP]:5000).
π Authentication
The admin login screen is optional but recommended. Set the following environment variables to enable the login form:
WEBUI_USER=yourusername
WEBUI_PASS=yourpassword
When set, the Web UI redirects to a login page at /login, and a session cookie is used after successful sign-in.
The WEBUI_USER and WEBUI_PASS values are the exact credentials users must enter on the login form.
π¬ 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
| Field | Example | Description |
|---|---|---|
| Plex URL | http://localhost:32400 |
URL to your Plex server. Use http://[LAN IP]:32400 if running separately. |
| Plex Token | xxxxx |
Get your token from: Plex Token Guide |
| Tautulli URL | http://localhost:8181 |
URL to your Tautulli instance (must be reachable by this container). |
| Tautulli API Key | xxxxxxxx |
Found under Tautulli Settings β Web Interface β API. |
π§ Email Settings
| Field | Example | Description |
|---|---|---|
| SMTP Host | smtp.gmail.com |
Your email providerβs SMTP server. |
| SMTP Port | 587 |
Common ports: 587 (TLS), 465 (SSL). |
| SMTP Username | your.email@gmail.com |
The email address youβll send from. |
| SMTP Password | xxxxxxxx |
App-specific password (for Gmail/Mailgun/etc). |
| From Address | notifier@example.com |
The email address shown to recipients. |
| Base URL | http://notifier.example.com |
Publicly 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
| Field | Example | Description |
|---|---|---|
| Notify Interval | 30 |
How 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.
β Support
If you find Plex Notifier helpful, consider supporting the project:
Install Plex-Notifier on Unraid in a few clicks.
Find Plex-Notifier in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Related apps
Explore more like this
Explore allDetails
jjermany/plex-notifier:latestRuntime arguments
- Web UI
http://[IP]:[PORT:5000]/- Network
host- Shell
sh- Privileged
- false
Template configuration
Container listens on port 5000
- Target
- 5000
- Default
- 5000
- Value
- 5000
Stores user config and internal database
- Target
- /app/instance
- Default
- /mnt/user/appdata/plex-notifier
- Value
- /mnt/user/appdata/plex-notifier
Container timezone
- Target
- TZ
- Default
- America/Chicago
- Value
- America/Chicago
Required. Generate with: openssl rand -hex 32
Optional username for HTTP Basic Auth protecting the WebUI
Optional password for HTTP Basic Auth protecting the WebUI