DynamiX

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.

dynamiX – 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 port 1166, 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 (see settings → 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 image

  • Settings image image image image image

  • Exclusions image

  • Exemptions image

  • Logs image

📦 Installation

Prerequisites

  • Python 3.8+
  • Plex server URL & Token ([How to find your token][plex-token])

Setting Up Pre-Rolls

  1. Make sure all of your Pre-Rolls are in one folder with no other media image
  2. Point Plex to that path ending with /PlexMainPreRoll.mp4 For Example:
P:\Movie Roll\PlexMainPreRoll.mp4

image 3. Point dynamix to the folder (DO NOT Include /PlexMainPreRoll.mp4 here) image

  1. Set your default pre-roll and configure some season blocks image

From the Releases Page

  1. Get the Latest Release
  2. Unzip the package
  3. Open a command prompt and navigate to the dynamiX folder
  4. Run the main script to start
    pip install -r requirements.txt 
    
  5. Run the main script to start
    py dynamixmain.py
    
  6. 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 / 9

Install DynamiX on Unraid in a few clicks.

Find DynamiX 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.

Open the Apps tab on your Unraid server Search Community Apps for DynamiX Review the template variables and paths Click Install

Requirements


        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

9,490
Total Downloads

Details

Repository
clharrel/dynamix:latest
Last 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