commit d5a0eef39900340cdc570abe2c148b8c66929bd3 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun Feb 8 18:27:35 2026 +0000 Deployed cfa303e to master with MkDocs 1.6.1 and mike 2.1.3 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/master/404.html b/master/404.html new file mode 100644 index 0000000..1647ccf --- /dev/null +++ b/master/404.html @@ -0,0 +1,1346 @@ + + + +
+ + + + + + + + + + + + + + + + + +PORT\
+ Port that MediaManager listens on. Default is 8000. This only works if you are using the Docker image. Configured as environment variable.MEDIAMANAGER_NO_STARTUP_ART: Set this environment variable (to any value) \
+ to disable the colorized startup splash screen. Unset to reenable.MediaManager can be configured to follow symlinks when serving frontend files. This is useful if you have a setup where your frontend files are stored in a different location, and you want to symlink them into the MediaManager frontend directory.
+FRONTEND_FOLLOW_SYMLINKS\
+ Set this environment variable to true to follow symlinks when serving frontend files. Default is false.FRONTEND_FOLLOW_SYMLINKS=true
+Metadata provider settings are configured in the [metadata] section of your config.toml file. These settings control how MediaManager retrieves information about movies and TV shows.
[metadata.tmdb])TMDB (The Movie Database) is the primary metadata provider for MediaManager. It provides detailed information about movies and TV shows.
+Info
+Other software like Jellyfin use TMDB as well, so there won't be any metadata discrepancies.
+tmdb_relay_url\
+ URL of the TMDB relay (MetadataRelay). Default is https://metadata-relay.dorninger.co/tmdb. Example: https://your-own-relay.example.com/tmdb.primary_languages\
+ If the original language of a show/movie is in this list, metadata is fetched in that language. Otherwise, default_language is used. Default is []. Example: ["no", "de", "es"]. Format: ISO 639-1 (2 letters). Full list: https://en.wikipedia.org/wiki/List_of_ISO_639_language_codesdefault_language\
+ TMDB language parameter used when searching and adding. Default is en. Format: ISO 639-1 (2 letters).Warning
+default_language sets the TMDB language parameter when searching and adding TV shows and movies. If TMDB does not find a matching translation, metadata in the original language will be fetched with no option for a fallback language. It is therefore highly advised to only use "broad" languages. For most use cases, the default setting is safest.
[metadata.tvdb])Warning
+The TVDB might provide false metadata and doesn't support some features of MediaManager like showing overviews. Therefore, TMDB is the preferred metadata provider.
+tvdb_relay_url\
+ URL of the TVDB relay (MetadataRelay). Default is https://metadata-relay.dorninger.co/tvdb. Example: https://your-own-relay.example.com/tvdb.Info
+To use MediaManager you don't need to set up your own MetadataRelay, as the default relay hosted by the developer should be sufficient for most purposes.
+The MetadataRelay is a service that provides metadata for MediaManager. It acts as a proxy for TMDB and TVDB, allowing you to use your own API keys if needed, but the default relay means you don't need to create accounts for API keys yourself.
+You might want to use your own relay if you want to avoid rate limits, protect your privacy, or for other reasons. If you know Sonarr's Skyhook, this is similar to that.
+Info
+If you want to use your own MetadataRelay, you can set the tmdb_relay_url and/or tvdb_relay_url to your own relay service.
Here's a complete example of the metadata section in your config.toml:
[metadata]
+ # TMDB configuration
+ [metadata.tmdb]
+ tmdb_relay_url = "https://metadata-relay.dorninger.co/tmdb"
+
+ # TVDB configuration
+ [metadata.tvdb]
+ tvdb_relay_url = "https://metadata-relay.dorninger.co/tvdb"
+Info
+In most cases, you can simply use the default values and don't need to specify these settings in your config file at all.
+qBittorrent supports saving Torrents to subdirectories based on the category of the Torrent. The default category name that MediaManager uses is MediaManager.
Use the following variables to customize behavior:
+torrents.qbittorrent.category_name\
+ Category name MediaManager uses when adding torrents to qBittorrent. Default is MediaManager.torrents.qbittorrent.category_save_path\
+ Save path for the category in qBittorrent. By default, no subdirectory is used. Example: /data/torrents/MediaManager.Info
+qBittorrent saves torrents to the path specified by torrents.qbittorrent.category_save_path, so it must be a valid path that qBittorrent can write to.
Warning
+For MediaManager to successfully import torrents, you must add the subdirectory to the misc.torrent_directory variable.
MediaManager, by default, expects to run at the base of a domain, e.g. maxdorninger.github.io.
In order to run it on a prefixed path, like maxdorninger.github.io/media, the docker image must be built with a special build argument. That's because SvelteKit needs to know the base URL at build time.
In short, clone the repository, then run:
+docker build \
+ --build-arg BASE_PATH=/media \
+ --build-arg VERSION=my-custom-version \
+ -t MediaManager:my-custom-version \
+ -f Dockerfile .
+You also need to set the BASE_PATH environment variable at runtime in docker-compose.yaml:
BASE_PATH\
+ Base path prefix MediaManager is served under. Example: /media. This must match the BASE_PATH build arg.services:
+ mediamanager:
+ image: MediaManager:my-custom-version
+ ports:
+ - "8000:8000"
+ environment:
+ BASE_PATH: /media
+ ...
+Info
+Make sure to include the base path in the frontend_url field in the config file. See Backend.
Finally, ensure that whatever reverse proxy you're using leaves the incoming path unchanged; that is, you should not strip the /media from /media/web/.
Info
+Media Manager's backend is built with FastAPI, which automatically generates interactive API documentation.
+http://localhost:8000/docs)http://localhost:8000/redoc)0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o