All apps · 0 apps
DynamiX
Docker app from grtgbln's Repository
Overview
An automation tool for dynamically managing Plex collections. It pins and unpins library collections based on configurable time blocks, ensuring fresh and relevant content is featured.
Readme
View on GitHubdynamiX – Plex Recommendations Manager
Version: 2.0.0
A web-based automation tool for dynamically managing Plex collections pinning and seasonal pre-rolls.
Pins and unpins library collections based on configurable time blocks, seasonal schedules, manual overrides, and even handles pre-roll video management.
🚀 Features
- Web UI & PWA
Accessible at port1166, with offline support via service worker (manifest.json). - Multi-threaded Pinning
Speed up pinning loops by handling libraries in parallel. - Dynamic Pinning
Schedule by time blocks, seasonal/holiday blocks, and “always-pinned” collections. - Pin by Library
Pin on any combination of home/shared home/recommended and optionally generate seperate sets of pins for home and library recommended. - Pre-Roll Management
Automatically rename pre-roll videos based on date blocks (seesettings → Pre-Roll). - Exclusions & Exemptions
Avoid re-pinning recently pinned items and manually exempt specific collections. - Quick-Add & Manual Blocks
Fast holiday presets or fully custom date ranges for pinning and pre-rolls (managed seperate). - HTTP Basic Auth
Optional for secure local or public deployments. - Update Notifications
Checks GitHub for new releases (auto-update is stubbed out for now).
Preview
All-New Dashboard
Settings
Exclusions
Exemptions
Logs
📦 Installation
Prerequisites
- Python 3.8+
- Plex server URL & Token ([How to find your token][plex-token])
Setting Up Pre-Rolls
- Make sure all of your Pre-Rolls are in one folder with no other media
- Point Plex to that path ending with /PlexMainPreRoll.mp4 For Example:
P:\Movie Roll\PlexMainPreRoll.mp4
3. Point dynamix to the folder (DO NOT Include /PlexMainPreRoll.mp4 here)
- Set your default pre-roll and configure some season blocks
From the Releases Page
- Get the Latest Release
- Unzip the package
- Open a command prompt and navigate to the dynamiX folder
- Run the main script to start
pip install -r requirements.txt - Run the main script to start
py dynamixmain.py - Visit http://127.0.0.1:1166/
Through Docker
Get the Latest Release
docker pull clharrel/dynamix:latest
docker run -d --name dynamix -p 1166:1166 `
-v "${PWD}\config.json:/app/config.json" `
-v "${PWD}\user_exemptions.json:/app/user_exemptions.json" `
-v "${PWD}\used_collections.json:/app/used_collections.json" `
-v "${PWD}\run_state.json:/app/run_state.json" `
-v "${PWD}\logs:/app/logs" `
clharrel/dynamix:latest
Media gallery
1 / 9Requirements
Requires a `config.json` file to be mounted at `/app/config.json` before starting the container. See configuration details: https://github.com/TheImaginear/dynamiX/blob/main/config.json
Requires a number of JSON files to be created on the host system BEFORE the container is started. These files can be created with the `touch` command.
Download Statistics
13,017
Total Downloads
733
This Month
733
Avg / Month
Total Downloads Over Time
Loading chart...
Related apps
Explore more like this
Explore allDetails
Repository
clharrel/dynamix:latestLast Updated2025-04-27
First Seen2024-12-20
Runtime arguments
- Web UI
http://[IP]:[PORT:1166]/- Network
bridge- Privileged
- false
Template configuration
Web UI PortPorttcp
Container Port: 1166
- Target
- 1166
- Default
- 1166
- Value
- 1166
Config FilePath
Path to the config file
- Target
- /app/config.json
- Default
- /mnt/user/appdata/dynamix/config.json
- Value
- /mnt/user/appdata/dynamix/config.json
User Exemptions FilePath
Path to the user exemptions file
- Target
- /app/used_collections.json
- Default
- /mnt/user/appdata/dynamix/used_collections.json
- Value
- /mnt/user/appdata/dynamix/used_collections.json
Used Collections FilePath
Path to the used collections file
- Target
- /app/used_collections.json
- Default
- /mnt/user/appdata/dynamix/used_collections.json
- Value
- /mnt/user/appdata/dynamix/used_collections.json
Run State FilePath
Path to the run state file
- Target
- /app/run_state.json
- Default
- /mnt/user/appdata/dynamix/run_state.json
- Value
- /mnt/user/appdata/dynamix/run_state.json
Log FolderPath
Path to the log folder
- Target
- /app/logs
- Default
- /mnt/user/appdata/dynamix/logs
- Value
- /mnt/user/appdata/dynamix/logs