Flask+React app to find unwatched Plex media to create a newsletter via Listmonk.
319
StaleFlix (GitHub) is a self‑hosted web application that helps you locate and act on stale (unwatched or barely watched) items in your Plex library. It interrogates Plex and companion services (Overseerr, Radarr, Sonarr) to build a list, then lets you:
The following external applications and services are required to run StaleFlix:
| Layer | Tech | What it does |
|---|---|---|
| Back‑end | Flask (app.py) | Talks to Plex, Overseerr, Radarr and Sonarr APIs; determines staleness; pushes artwork to Cloudinary; sends campaigns to Listmonk; and caches the last run. (app.py) |
| Front‑end | React + TypeScript | Single‑page interface served by Flask; fetches /get_stale_content; displays the table/wizard; and calls the upload & send endpoints. (App.tsx, generateNewsletter.ts) |
| Styling | Custom CSS | Palette and minor Bootstrap overrides. (custom.css) |
Copy the sample file at the root of your project folder and populate your secrets:
cp .env.example .env
Key variables (see the template for the full list):
PLEX_URL, PLEX_TOKEN – access to your Plex serverOVERSEERR_API_URL, OVERSEERR_API_KEY – requester informationRADARR_API_URL, RADARR_API_KEY & SONARR_API_URL, SONARR_API_KEY – on‑disk sizesCLOUDINARY_* – poster uploadsLISTMONK_* – newsletter deliverySTALE_MONTHS – age threshold (default 6)An official image is available on Docker Hub and can be deployed with the provided Docker Compose file (docker-compose.yml):
docker compose up -d
This command will pull the battermanz/staleflix:latest image (or any version you specify in docker-compose.yml) and launch the service on port 9999. To run a specific tag, adjust the image field in docker-compose.yml or override it:
docker compose pull
daocker compose up -d
Alternatively, you may run the container directly:
docker run -d --name staleflix \
-e TZ=Etc/UTC \
--env-file .env:ro \
-p 9999:9999 \
battermanz/staleflix:latest
This project is distributed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See the LICENSE file for the full text.
Content type
Image
Digest
sha256:4760135d9…
Size
29.9 MB
Last updated
about 1 year ago
docker pull battermanz/staleflix