tinyMediaManager
docker run -v /usr/local/bin:/target --entrypoint instl hurricane/tmm
tmm --gui
tinyMediaManager (http://www.tinymediamanager.org) is a media management tool written in Java/Swing. It is written to provide metadata for the XBOX Media Center (XBMC). Due to the fact that it is written in Java, tinyMediaManager will run on Windows, Linux and Mac OSX (and possible more OS).
This Docker image makes it possible to use "tinyMediaManager" on a headless server via xmlrpc. Additionally, on systems with an X-Server running one can use the GUI.
This subfolder contains all files directly related in building a Docker image for tinyMediaManager.
This image is built from the official tinyMediaManager release. Additionally, it includes an xmlrpc server. The xmlrpc server includes a subset of the commands provided by tinyMediaManagerCMD.
amd64, x86_64, arm32v7, arm64v8
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-featureBefore reporting your issue please try updating Docker to the latest version and check if it resolves the issue. Refer to the Docker installation guide for instructions.
SELinux users should try disabling SELinux using the command setenforce 0 to
see if it resolves the issue.
If the above recommendations do not help then report your issue along with the following information:
docker version and docker info commandsdocker run command or docker-compose.yml used to start the image.
Mask out the sensitive bits.It is recommended you install directly from the Docker Hub.
The installation process and scripts are very versatile and can be adjusted by passing the right combination of variables and arguments to each of the commands.
The following examples should cover most scenarios. In each scenario, a wrapper
script will be installed on the host that should ease creation and management
of the containerized application. When executing the script it will create
a container named tmm. Additionally, the script will ensure that this
container gets setup with the appropriate environment variables and volumes
each time it is executed.
Start the installation by issuing the following command from within a terminal:
docker run -it --rm -v /usr/local/bin:/target \
--entrypoint instl
hurricane/tmm
Optionally, you can also install a systemd service file by executing:
docker run -it --rm -v /etc/systemd/system:/target \
--entrypoint instl
hurricane/tmm service
To enable the systemd service for tmm execute the following:
sudo systemctl enable tmm@${USER}
In the following instructions adjust each command replacing username with the
name of the user you wish to install and run the container as.
To install the application execute and, again, adjust the command replacing
username accordingly.
docker run -it --rm -v /usr/local/bin:/target \
-e "APP_USER=username" \
--entrypoint instl
hurricane/tmm
Note, if the user is a system account, the command will need further
adjustment. This is because by default the script stores settings and
configuration in a hidden folder within the executing user's home directory.
This can be overridden by passing the appropriate environment variable
(APP_CONFIG) to the instl script, such as in the example below:
docker run -it --rm -v /usr/local/bin:/target \
-e "APP_USER=username" \
-e "APP_CONFIG=/var/lib/tmm" \
--entrypoint instl
hurricane/tmm
Installation from GitHub is recommended only for the purposes of troubleshooting and development. To install from GitHub execute the following:
git clone https://github.com/hurricane/docker-containers
cd docker-containers
./build.sh tmm
Then proceed by following any of the docker run commands described in the installation instructions above.
Once the tinyMediaManager wrapper script (tmm) for docker has been installed you just need to execute the wrapper script from within a terminal session:
tmm
On the first run the wrapper script will prompt for system paths that you wish made accessible from within the container. Enter one path per line.
Volumes which should be mounted within the container at runtime are kept in the
volume configuration file found under the APP_CONFIG folder on the host. The
location will vary depending on the type of installation.
If the wrapper script was installed as the executing user the volume
configuration file can be found at:
${HOME}/.config/tmm/.tmm.volumes
Otherwise at:
${APP_CONFIG}/.tmm.volumes
You can upgrade the version of tinyMediaManager (tmm) found within the container by executing one of the following commands:
tmm --update
Or by executing:
docker exec tmm update
You can update the container itself by executing:
docker pull hurricane/tmm
docker stop tmm
tmm --gui
If you wish the docker container to automatically update upon creation, set the
environment variable EDGE to 1. Please read the Technical Details section
for the various ways this can be achieved.
In order to have the container periodically check and upgrade tinyMediaManager
one can add a crontab entry. Like so:
echo "0 2 * * * docker exec tmm update" | sudo tee -a /var/spool/cron/crontabs/root
or
echo "0 2 * * * tmm --update" | sudo tee -a /var/spool/cron/crontabs/root
docker run -it --rm \
--volume /usr/local/bin:/target \
--entrypoint uninstl
hurricane/tmm
For debugging and maintenance purposes you may want access the container's
shell. If you are using Docker version 1.3.0 or higher you can access
a running container's shell by starting bash using docker exec:
tmm --console
or
docker exec -it tmm bash
tmm --logs
tmm --status
By default the containerized application has been set to run with UID and GID
1000. If using the automatic install method from Docker, the container is set
to run with the UID and GID of of the user executing the tmm wrapper
script. Additionally, the wrapper script saves tmm's configuration and
settings in a hidden sub folder in the executing user's home directory. Most
default settings can be adjusted by passing the appropriate environment
variable. Here is a list of any and all applicable environment variables that
can be override by the end user.
You can adjust some of the default settings set for container/application by passing any or all of the following environment variable:
| ENV VAR | Definition |
|---|---|
| APP_USER | Name of user the service will run as.[4] |
| APP_UID | UID assigned to APP_USER upon creation, or will query APP_USER's ID.[3] |
| APP_GID | GID assigned to APP_USER upon creation, or will query APP_USER's GID.[3] |
| APP_CONFIG | Location where application will store settings and database on host.[1] |
| APP_GUEST_CFG | Location where application will store settings and database within guest.[4] |
| APP_PORT | App's Web UI port used to configure and access the xmlrpc service.[2] |
| UMASK | umask assigned to service, default set to 002.[4] |
| EDGE | Update the containerized service, default set to 0(Off).[4] |
[1]: Variable is applicable only during install.
[2]: Variable is applicable during install, when invoking installed wrapper script or systemd service.
[3]: Variable is applicable only when invoking docker run directly.
[4]: Variable is applicable in all scenarios.
In order to pass any of the applicable variables during install or when
invoking docker run directly please read Docker's documentation on
environment
variables
for clarification. Otherwise, the following examples should be pretty clear.
The following examples will use the environment variable EDGE. EDGE has
been chosen since it is applicable during all scenarios.
To pass the EDGE variable while invoking docker run append the following
prior to the image name. Any and all other applicable variables can be done in
the same manner.
--env=EDGE=1
To pass the environment variable during the other scenarios do so like in one of the examples below:
From the commandline when calling the wrapper script:
EDGE=1 tmm
By adjusting the systemd service:
[Service]
Type=simple
Environment=EDGE=1
...
/opt/tmm/data - Folder for configuration and settings./opt/tmm/cache - Folder for tinyMediaManager image cache./opt/tmm/backup - Folder for tinyMediaManager backups./opt/tmm/logs - Folder for tinyMediaManager logs.Of course you can always run the docker image manually. Please be aware that if you wish your data to remain persistent you need to provide a location for the for all the exposed volumes. For example,
docker run -d --net=host
-v /*your_config_location*:/opt/tmm/data \
-v /*your_cache_location*:/opt/tmm/cache \
-v /*your_backup_location*:/opt/tmm/backup \
-v /*your_log_location*:/opt/tmm/logs \
-e TZ=America/Edmonton
--name=tmm hurricane/tmm
All the information mention previously regarding user UID and GID still applies when executing a docker run command.
First of all, the XMLRPC is not harden for internet use. A example script can be found in the examples directory within this project's folder.
Code released under the MIT license.
Content type
Image
Digest
Size
305.1 MB
Last updated
about 7 years ago
docker pull hurricane/tmm