tinyMediaManager offers a official docker image based on Debian Buster (for maximum compatibility). This image includes all needed components (up to date libmediainfo, FFmpeg, …) for the best experience. This image should work on any x86_64 device.
Using this image, you will get a fully working instance of tinyMediaManager which is accessible remotely (via web/VNC).
- Map any local port to
4000for web access (via noVNC)
- Map a local volume/folder to
/datawhere all local data from tinyMediaManager is stores (like
- Map local volumes/folders/mounts to
/media/xxxwhere all media will be accessed. E.g.:
- /mnt/movies -> /media/movies
- /mnt/tvshows -> /media/tvshows
- If you want to add custom scrapers, you need to map the folder containing the custom addons to
- For the HTTP API access (v4.3+), you need to map the HTTP API port too
- If you need special start parameters, you would need to map
/app/launcher-extra.ymltoo (see Start Parameters)
Sample run command:
docker run \ --name=tinymediamanager \ -p 4000:4000 \ -v </path/to/local/data/>:/data \ -v </path/to/movies>:/media/movies \ -v </path/to/tvshows>:/media/tvshows \ -v </path/to/addons/>:/app/addons \ tinymediamanager/tinymediamanager:latest
After starting the container, you can access tinyMediaManager via
You should map the following folders to a volume/folder on the host:
/data: where all local data of tinyMediaManager will be stores. If you do not map this out of the container, all your data/settings will be lost on an upgrade of tinyMediaManager
/media: contains all your data sources
/app/addons: where to put custom scrapers
/app/launcher-extra.yml: custom launch parameters - see Start Parameters
ATTENTION: If you want to use your own
launcher-extra.yml you need to add the following lines to make tmm work as intended:
--- javaHome: "" jvmOpts: - "-Dtmm.contentfolder=/data" - "-Dtmm.noupdate=true" env: [ ]
You need read/write access to all mapped volumes!
This image offers some special configuration parameters which can be passed to docker by using environment variables
|USER_ID||ID of the user tinyMediaManager runs as. See below for an example how to use this.||1000|
|GROUP_ID||ID of the group tinyMediaManager runs as. See below for an example how to use this.||1000|
|PASSWORD||Password for remote access|
When using using data volumes (-v flags for
media), permissions issues can occur between the host and the container (tinyMediaManager). For example, the user within the container may not exist on the host or does not match the right user on the host. This could prevent the container from properly accessing files and folders on the shared volume and vice versa. To avoid any problem, you can specify the user tinyMediaManager should run as.
This is done by passing the user ID and group ID to the container via the
GROUP_ID environment variables.
To find the right IDs to use, issue the following command on the host, with the user owning the data volume on the host:
Which gives an output like this one:
uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),4(adm),24(cdrom),27(sudo),46(plugdev),113(lpadmin)
The value of
uid (user ID) and
gid (group ID) are the ones that you should be given the container.
Because of security restrictions in the browser, your client clipboard cannot be synchronized to the clipboard of tinyMediaManager. To copy data from/to the remote connection of tinyMediaManager, you need to invoke the clipboard feature from noVNC. Just open the control panel of noVNC from the left side of the window and use the clipboard feature from there to copy the data.