Skip to content

Releases: Unmanic/unmanic

[RELEASE] v0.3.0

10 Jul 05:45

Choose a tag to compare

  • [NOTE] When upgrading to 0.3.0+, supporters will need to log in again. Thank you for your continued support.
    With this release comes support for remote logging and the Unmanic Central service. Unmanic Central is a self-hosted management and monitoring platform that lets you collect, store, and visualise logs and metrics from all your Unmanic installations in one place.

    Key components:

    • Unmanic Central Datastore
      A resilient, self-hosted store for Unmanic logs, metrics and data.
    • Unmanic Central Frontend
      A new web interface where you can build custom dashboards, configure real-time views, and drill down into every event and metric across your fleet.

    What you can do with Unmanic Central:

    • Centralise log collection
      Route logs (with automatic retry and buffering) from each Unmanic instance into one unified store.
    • Monitor performance
      Track library scan duration, service CPU/memory usage, plugin progress, file-processing changes (size, duration), and moreβ€”all correlated by installation.
    • Visualise and alert
      Create and share dashboards in the Central frontend to focus on metrics and events that matter, and integrate with Grafana for advanced querying and visualisation.
    • Extend with Grafana
      Optionally connect Grafana directly to your Central Datastore to build custom dashboards, set alerts, and leverage the full power of your data.

    Availability:
    Unmanic Central is a supporter-only feature.

Service

  • [NEW] Add initial log‐forwarding feature with on-disk buffering and remote endpoint support
    • Create remote‐log buffer with retention of 2 weeks to survive endpoint outages
    • Include installation name as a label in all remote logs
  • [NEW] Introduce METRIC logs for library scan duration
  • [NEW] Emit overall service resource-usage metrics (CPU, memory) as METRIC logs
  • [NEW] Emit per-worker progress metrics (CPU%, memory%, elapsed time, progress%) as METRIC logs
  • [NEW] Support a new β€œDATA” log type and send structured data to Unmanic Central
  • [NEW] Add DATA logs for library scan metrics
  • [FIX] Resolve supporter session & login issues introduced by recent API changes
  • [FIX] Ensure logs generated before remote-logging is enabled are still captured and forwarded

Plugin executor

  • [NEW] Add β€œevent runners” to emit lifecycle events at key task execution points
  • [NEW] Introduce a shared, task-scoped data store for plugins via TaskDataStore
  • [NEW] Enable spawning plugin work in isolated subprocesses with the new PluginChildProcess helper (live logs & progress)
  • [IMPR] Enhance child-process cleanup with a global PID registry and guaranteed termination (including paused processes)
  • [FIX] Ensure all plugin-spawned subprocesses are reliably terminated on service shutdown

Docker

  • [FIX] Correct the Docker development-environment run script

Front-end

  • [IMPR] Force immediate registration-status refresh after obtaining a new app token
  • [FIX] Restore supporter-login flow following recent API changes
  • [FIX] Allow sign-out when the remote API is unreachable

[RELEASE] v0.2.9

28 Jun 12:53

Choose a tag to compare

Service

  • [FIX] Fix build failing due to pip changes
  • [IMPR] Updated python dependencies
  • [IMPR] Improvements to Unmanic logging
  • [IMPR] Migrate some required requests to new v2 API
  • [IMPR] Improvements to API's ability to handle concurrent requests

[RELEASE] v0.2.8

29 Aug 00:16

Choose a tag to compare

Service

  • [IMPR] Improve how the command string is generated for the worker to execute.

Plugin executor

  • [NEW] Add ability for a plugin to set file output to 'None'.
  • [FIX] Unmanic was trying to create an output path even when file out path was 'None'.

Docker

  • [FIX] Disable pinning of these runtime packages in Docker image so that they can be auto-updated on a scheduled builds:
    • libexpat1, libglib2.0-0, libgomp1, libharfbuzz0b, libmediainfo0v5, libv4l-0, libx11-6, libxcb1, libxext6, libxml2

Front-end

  • [FIX] Mobile view of the configuration drawers was not saving the settings

[RELEASE] v0.2.7

04 May 03:57

Choose a tag to compare

Service

  • [FIX] Disable supporter restrictions and hide login .
  • [IMPR] Thrown an exception when the remote support API is not available.
  • [IMPR] Display better logging for responses from the support API.

Docker

  • [NEW] Add ability to select a 'test' support API
  • [IMPR] Update package: libexpat1=2.4.7-1ubuntu0.3

v0.2.6

12 Mar 19:45

Choose a tag to compare

  • [NOTE] When upgrading from 0.2.4 to 0.2.5+, supporters will need to log in again. Due to the change in the auth api and changes with integrating with Patreon, all supporters will need to log into their respective platforms again. Sorry for the inconvenience.

Service

  • [FIX] Always force logout to avoid showing the user an error message.
  • [FIX] Only save remote request session cookies if they exist. This prevents overwriting some valid session cookies when a new session is created.

Docker

  • [FIX] Bump required Docker build dependencies.

[RELEASE] v0.2.5

01 Mar 22:01

Choose a tag to compare

  • [NOTE] Supporters will need to log in again. Due to the change in the auth api and changes with integrating with Patreon, all supporters will need to log into their respective platforms again. Sorry for the inconvenience.

Service

  • [NEW] Add support for Python 3.12
  • [NEW] Add a new logout v2 API endpoint
  • [IMPR] Switch to new plugin and supporter auth APIs. This will provide much faster fetching of remote data.
  • [IMPR] Add some better debug logging to any remote API calls
  • [IMPR] Update the Python wheel build process to support the latest setuptools

Plugin executor

  • [IMPR] Improvements to development of plugins locally
    • Prevent a user from installing a plugin update over top of a plugin they are developing on that contains a .git directory

Docker

  • [IMPR] Rebase image to Ubuntu Jammy
  • [IMPR] Remove freeze on VA driver packages
  • [IMPR] Remove freeze on intel media driver packages
  • [IMPR] Update Jellyfin FFmpeg to v6
  • [IMPR] Update NodeJS to v20
  • [NOTE] Remove support for armv7

Front-end

  • [IMPR] Update all dependencies
  • [IMPR] Unify processing and ETC time format
  • [IMPR] Switch to using the new v2 API endpoint
  • [IMPR] Improve how navigation drawers function
  • [IMPR] Add Help & Support links to all navigation drawers
  • [FIX] Remove the I18n warning logs spamming into a browser console log
  • [FIX] Fix bug where clicking on the Discord or GitHub login would sometimes activate the function for logging in for Patreon.

[RELEASE] v0.2.4

23 Apr 04:52

Choose a tag to compare

Service

  • [NEW] Add ability to install plugins from zip file.
  • [NEW] Add a new "notifications" feature to collect important details for users to review when the view the front-end.
  • [IMPR] Drop support for Python v3.6.
  • [IMPR] Add support for Python v3.9, v3.10 and v3.11.
  • [IMPR] Slow down main thread executions to improve CPU usage on lower end hardware.
  • [IMPR] Small improvements to the logs displayed for worker plugin executions. This will be helpful for plugins that do all the work themselves rather than passing a command to execute back to Unmanic.
  • [IMPR] Improve plugin manager command-line tool (see commits for more details).
  • [FIX] Fixed bug where logs were not being returned correctly from linked installations.

Plugin executor

  • [NEW] Add support for "description" fields in plugin settings (see front-end changes below).
  • [NEW] Add support for "tooltip" fields in plugin settings (see front-end changes below).

Docker

  • [IMPR] Update package: intel-igc-cm=1.0.160+i755~u20.04
  • [IMPR] Update package: intel-level-zero-gpu=1.3.23726.1+i419~u20.04
  • [IMPR] Update package: intel-media-va-driver-non-free=22.5.0+i419~u20.04
  • [IMPR] Update package: intel-opencl-icd=22.28.23726.1+i419~u20.04
  • [IMPR] Update package: level-zero=1.8.1+i755~u20.04
  • [IMPR] Update package: libgl1-mesa-dri=22.2.0.20220625.1+3091
  • [IMPR] Update package: libigc1=1.0.11485+i419~u20.04
  • [IMPR] Update package: libigdfcl1=1.0.11485+i419~u20.04
  • [IMPR] Update package: libmfx1=22.5.0+i419~u20.04
  • [IMPR] Update package: libva-drm2=2.15.0.2-36
  • [IMPR] Update package: libva-wayland2=2.15.0.2-36
  • [IMPR] Update package: libva-x11-2=2.15.0.2-36
  • [IMPR] Update package: libva2=2.15.0.2-36
  • [IMPR] Update package: vainfo=2.15.0.2-1

Front-end

  • [NEW] Add a new "notifications" area for receiving push notifications from the backend.
  • [NEW] Add support for displaying a "description" below most plugin config input fields.
  • [NEW] Add support for displaying a "tooltip" when you hover over a plugin config option.
  • [FIX] Fixed an issue that would prevent a library from being saved if you just hid the dialogue.

[RELEASE] v0.2.3

04 Jun 23:29

Choose a tag to compare

  • [NOTE] For the next few months I will be dropping the minimum Patreon sponsorship level for unlocking Unmanic to $1. As the project is growing it is my hope to further spread the costs of maintaining the infrastructure across the users. Remember that Unmanic is a community driven project and you can also unlock supporter features by simply contributing to the Unmanic GitHub (including documentation) or by participating in supporting via Discord. Thank you to everyone who has been contributing to this project. Without you, Unmanic would not be what it is today.

Service

  • [NEW] Added ability to configure a library as a remote-only library for receiving remote tasks.
  • [NEW] Added the ability for a link to push any missing library configs, including installed plugins, plugin flow and plugin settings, to remote installations.
  • [NEW] Updated linking to send only the relative path to a file if the remote library is configured to point to the same directory as the main installation's library. Use this feature to pull new tasks from a SMB or NFS share rather than having Unmanic transfer the file from the main installation to the remote one.
  • [IMPR] Reduced the number of times plugin repos are refreshed to check for updates.
  • [IMPR] Included the library config in API calls for requesting all libraries.
  • [IMPR] Added better logging for any issues found during linking communications.
  • [IMPR] Remove checksum validation from post-processing. Checksum generation was slowing down the processes unnecessarily.
  • [IMPR] Make checksum validation optional on link task file transfers.
  • [IMPR] Sort libraries alphabetically. Libraries are now scanned top-down in alphabetical order. Use the library name to configure the priority order in which a library is scanned.
  • [IMPR] Made the number of pre-loaded tasks user configurable rather than calculating it based on the number of available remote workers.
  • [IMPR] Improvements to building, starting and stopping Unmanic on Windows.
  • [FIX] Removed the --unmanic_path cli option for setting the config directory. Use the HOME_DIR environment variable instead.
  • [FIX] Fixed bug where tags would not be saved on new worker group creation.
  • [FIX] Fixed bug where a link may not be configurable in the first 10 seconds after first creating it.
  • [FIX] Fixed issue where plugin settings were not being set during the import or clone of a library.
  • [FIX] Fixed bug where clicking submit on the link settings screen would always enable task pre-loading on each of the links.
  • [FIX] Fixed a bug where if the remote pending task list is empty, the main installation would not detect that the task has been deleted.

Plugin executor

  • [NEW] Added a the final cache path as a variable handed to post-processor plugins.

Docker

  • [NEW] Included NodeJS in build.
  • [NEW] Included exiftool in build.
  • [NEW] Added libmediainfo0v5.
  • [IMPR] Updated Intel dependencies.
  • [IMPR] Updated Jellyfin FFmpeg to v4.4.1-4.

Front-end

  • [IMPR] Display the library config overview on the library settings screen.
  • [IMPR] Display the link config overview on the link settings screen.

[RELEASE] v0.2.2

01 May 07:52

Choose a tag to compare

Service

  • [NEW] Introduce worker groups to specify unique schedules and tags for groups of workers.
  • [NEW] Introduce new "tagging" feature. Apply tags to libraries and worker to further customise that partnership. Eg. Tag a library with "priority" and keep a matching tagged worker spare for priority tasks.
  • [NEW] Add the ability to link with an installation that is behind a proxy (traefik, swag/nginx, etc.) configured with basic authentication.
  • [NEW] Add ability to set the maximum number of days that the completed tasks should be kept. If enabled, Unmanic will remove successfully completed tasks after the configured number of days.
  • [IMPR] Session reloads with the Unmanic site API are now reduced and persisted between application restarts. Unmanic can operate in a supporter tier without an internet connection for up to seven days.
  • [IMPR] All sub-processes executed by workers will now be executed at a lower priority than the main application. This should help improve application responsiveness during times of high CPU load.
  • [IMPR] When configured to send tasks to remote installations, Unmanic will now send one transfer at a time, but be available to receive up to two transfers back from that remote installation. This should help to saturate network bandwidth for people with faster networks.
  • [IMPR] Remote linking will now poll for updates from a remote installation every 10 seconds (previously 30). This will reduce the delays between a task finishing and the source installation seeing it as available to download.
  • [IMPR] Reduce the number of file copies during a task lifcycle by first attempting an atomic movement for the final file movement of the post-processor from the cache directory. If the cache directory and destination directory are on different mounts, Unmanic will fall back to a file copy.
  • [IMPR] Carry out post-processor file movements with a '.unmanic.part' suffix added to the end of the file as it is moved.
  • [IMPR] Improvements to application logging.
  • [IMPR] Improvements to the how application settings are saved to file.
  • [FIX] Fix a minor issue with the way that the main service exits when a termination request is given.
  • [FIX] Fix for bug in post-processor where, under certain circumstances, if a file movement failed it could cause the post-processor thread to crash.
  • [FIX] Fix a bug where removing a library while a task is about to be processed by a worker could crash the main worker foreman thread.

Plugin executor

  • [FIX] Fix error causing plugin settings to fail during write if no global settings file exists

Front-end

  • [NEW] Display release notes on dashboard the first time the UI is opened after a release update.
  • [NEW] Add form elements presenting worker group settings.
  • [NEW] Add form elements for configuring library and worker tags.
  • [NEW] Add form elements for configuring basic auth credentials in remote installation linking.
  • [NEW] Add form elements for configuring completed tasks management.
  • [NEW] Add ability to filter the completed tasks list by success status.
  • [NEW] Add ability to filter the completed tasks list by the date that the task was completed.
  • [IMPR] Display more information on the list of configured libraries in settings so we can see at a glance how each library is configured.
  • [IMPR] Update all front-end dependencies for improvements, bug-fixes and security patches.

[RELEASE] v0.2.1

17 Apr 04:38

Choose a tag to compare

Service

  • [NEW] Add ability to set a priority score modifier per library. Setting a higher score will cause tasks to be added further up the queue. Use a negative value to drop the task closer to the bottom of the queue.
  • [NEW] Added support for executing subprocesses when installed natively on Windows.
  • [IMPR] The plugin repo will be reloaded before a library config import attempts to installing plugins.
  • [IMPR] Workers now have the ability to execute commands as raw strings if a plugin provides it with a string rather than a list.
  • [IMPR] Added checks to ensure a library ID is provided as a number when fetching a plugin's settings.
  • [IMPR] Switch the primary Unmanic site API domain to api.unmanic.app.
  • [IMPR] Remove '.' (periods) from the generated cache paths.
  • [IMPR] Improvements to repo updater functionality.
  • [IMPR] Tweaks to SQLite DB migrations during upgrades to allow different types of joining tables.

Plugin executor

  • [NEW] Add ability to share common data between file testing plugins. This should speed up library scans as plugins adopt this feature.
  • [FIX] Fix issue where worker plugins that requested multiple passes were being given the same input file rather than the output file from the previous pass.
  • [FIX] Fix issue where if plugins were configured for the first time from the library, a FileNotFoundError exception would be thrown as the global settings.json file was missing.
  • [FIX] Fix issue where during second pass plugin execution, a settings object was being retained for subsequent executions rather than being read fresh every time.

API

  • [NEW] Add ability to set a priority score when creating a task via the API in order to modify its place in the task queue.

Front-end

  • [NEW] Add form elements for configuring a library's priority score modifier.