Running MinimServer 2 in a Docker or LXC container
Table of contents
Updating an existing MinimServer container
Running MinimServer 2 in a Docker container on a QNAP NAS
Docker instructions for QNAP Container Station version 3
Docker instructions for QNAP Container Station version 2
Running MinimServer 2 in a Docker container on a Synology NAS
Running MinimServer 2 in a Docker container on Linux
Running MinimServer 2 in an LXC container on a QNAP NAS
Running MinimServer 2 in an LXC container on Linux
This page explains how you can run MinimServer in a Docker or LXC container on a QNAP or Synology NAS or on some other Linux host. Running MinimServer in a container enables you to run multiple instances of MinimServer with different configuration settings on the same NAS or Linux host. QNAP Container Station supports both Docker and LXC containers. The Synology Docker package supports Docker containers only.
Updating an existing MinimServer container
[NEW] If you are running MinimServer 2.1 or 2.1.2 in a container, the simplest way to update the container to MinimServer 2.2 is to use the new "update install." For details, see the Update install section.
Alternatively, you can install MinimServer 2.2 in a new container by following the instructions below.
Running MinimServer 2 in a Docker container on a QNAP NAS
- Install the QNAP Container Station package on your QNAP NAS if it isn't already installed
- Install the MinimServer QNAP package on your QNAP NAS if it isn't already installed. For details of how to do this, see the Installing MinimServer 2 on a QNAP NAS page.
- After installing the MinimServer QNAP package, start the MinimServer package with an internet connection available. This creates a file named minimserver-starter.license in the MinimServer/data directory. After this file has been created, you can stop the MinimServer package if you don't want to run MinimServer as a native QNAP package.
- Check the list of QNAP models and processor types in this section to identify the processor type for your NAS.
- Start and open Container Station
- If you are running Container Station 3.0 or later, follow the instructions in this section. For earlier versions of Container Station, follow the instructions in this section.
- The newly created container should be visible in MinimWatch if you have this running. When MinimServer has finished its initial scan of your music library (this might take some time), it should be visible to UPnP control points. The default display name is suffixed with ".2" to distinguish it from the native MinimServer instance running on the NAS.
- A MinimServer instance running in a Docker container on a QNAP NAS shares the full or trial license of the container host. For more information, see the MinimServer 2 licensing for Linux containers section.
Docker instructions for QNAP Container Station version 3
- In Container Station, click Images and select Pull
- In the Image field of the "Pull image" dialog, enter minimworld/minimserver: if your NAS has an Intel or AMD processor; or enter minimworld/minimserver:-arm64 if your NAS has an ARMv8 processor; or enter minimworld/minimserver:-arm if your NAS has an ARMv7 processor.
- Click Pull. After a short time, you should see the image "minimworld/minimserver " appear in the list of images.
- You will also see a pop-up saying that no background tasks are running. Click elsewhere in the window to make this pop-up disappear.
- Click the triangle symbol in the Actions column for this image. In the Create Container dialog, click Next to show the Configure Container page.
- Click Advanced Settings. On the Advanced Settings page, select Networks and change Network mode from Default (NAT) to Custom > Host (ignoring the warning message)
- Click the Apply button. If you don't do this, the setting you have entered will be lost.
- Click Advanced Settings again. On the Advanced Settings page, select Storage. Click the downward-pointing triangle next to the Add Volume button. and select Bind Mount Host Path. Two empty fields Host and Container will appear.
-
In the Host field, use the folder icon to select the MinimServer folder.
In the Container field below the Host field, enter
/MinimServer
and change the RW setting to RO.Note: This step is essential. If you don't do this, MinimServer will show an error message "MinimServer shared folder on host is not shared with this container".
-
Select Bind Mount Host Path again. Two more empty fields Host and Container will appear.
In the Host field, use the folder icon to select your QNAP music library folder.
In the Container field below the Host field, enter
/Music
and change the RW setting to RO. - Click the Apply button. If you don't do this, the settings you have entered will be lost.
- The default timezone for the container is GMT. If you want to change this, select Environments on the Advanced Settings page and add a new environment variable with name TZ and a timezone name such as Europe/London, Australia/Brisbane, etc. For a list of valid timezone names, see the TZ column on this page.
- Click the Next button, then click Finish on the Summary page. After a short time, you will see a pop-up telling that no background tasks are running. Click elsewhere in the window to make this pop-up disappear. The MinimServer container should start and appear in the Containers section.
- You can start additional MinimServer containers by repeating the above steps, starting with step 5
- To stop a MinimServer container, select the Containers section and click the gear-wheel icon for the container, then select Stop
- To restart a stopped MinimServer container, select the Containers section and click the gear-wheel icon for the container, then select Start
- To remove a MinimServer container, select the Containers section and click the gear-wheel icon for the container, then select Remove
Docker instructions for QNAP Container Station version 2
- In Container Station, click Images and select Pull
- In the "Pull image from registry" dialog, enter minimworld/minimserver in the Image Name field
- If your NAS has an Intel processor, enter in the Image Version field. If your NAS has an ARMv8 processor, enter -arm64 in the Image Version field. If your NAS has an ARMv7 processor, enter -arm in the Image Version field.
- Click Pull. After a short time, you should see the image "minimworld/minimserver " appear in the list of images.
- Click the + symbol in the Actions column for this image
- On the Advanced Settings page, select Network and change the network mode to Host (ignoring the warning message)
- On the Advanced Settings page, select Shared Folders
-
On the Shared Folders page, create a "Volume from host" mapping from the
/MinimServer
folder to the Mount Point/MinimServer
Note: This step is essential. If you don't do this, MinimServer will show an error message "MinimServer shared folder on host is not shared with this container".
-
On the Shared Folders page, create a "Volume from host" mapping from your QNAP music library folder to the Mount Point
/Music
- Uncheck the 'write' boxes for both these shared folders
- The default timezone for the container is GMT. If you want to change this, select Environment on the Advanced Settings page and add a new environment variable with name TZ and a timezone name such as Europe/London, Australia/Brisbane, etc. For a list of valid timezone names, see the TZ column on this page.
- Click the Create button, then click OK on the Summary page. The MinimServer container should start and appear in the Overview section.
- You can start additional MinimServer containers by repeating the above steps, starting with step 5
- To stop a MinimServer container, click the stop icon (black square) in the Actions column for the container
- To restart a stopped MinimServer container, click the start icon (black triangle) in the Actions column for the container
- To remove a MinimServer container, click the x symbol in the Actions column for the container
Running MinimServer 2 in a Docker container on a Synology NAS
- Install the Synology Docker package on your Synology NAS if it isn't already installed
- Install the MinimServer package on your Synology NAS if it isn't already installed. For details of how to do this, see the Installing MinimServer 2 on a Synology NAS page.
- After installing the MinimServer Synology package, start the MinimServer package with an internet connection available. This creates a file named minimserver-starter.license in the MinimServer/appData directory. After this file has been created, you can stop the MinimServer package if you don't want to run MinimServer as a native Synology package.
- Start and open the Docker package
- Select Registry
- In the search box, type minimworld and click the Search button
- An item minimworld/minimserver should appear. Double-click this item.
- If you are prompted to choose a tag, select and click the Select button
- You should see the image "minimworld/minimserver:" appear in the Image section and start to download
- When the image has finished downloading, select this image and click the Launch button
- On the Network page, check the box 'Use the same network as Docker Host'
- On the General Settings page, enter a suitable name in the 'Container Name' field. This name will be part of the default display name for MinimServer.
- The default timezone for the container is GMT. If you want to change this, click Advanced Settings and add a new environment variable with name TZ and a timezone name such as Europe/London, Australia/Brisbane, etc. After adding this enviroment variable, click the Save button. For a list of valid timezone names, see the TZ column on this page.
- On the Volume Settings page, click Add Folder, select the shared folder for your music library and click the Select button
-
Type
/Music
in the 'Mount path' field and check the Read-Only box - Click Add Folder again, select the MinimServer shared folder and click the Select button
-
Type
/MinimServer
in the 'Mount path' field and check the Read-Only box - Click the Next button. On the Summary page, make sure the 'Run this container' box is checked and click the Done button.
- The MinimServer container should start and appear in the Container section. It should also appear in MinimWatch if you have this running. When MinimServer has finished its initial scan of your music library (this might take some time), it should be visible to UPnP control points. The default display name is suffixed with ".2" to distinguish it from the native MinimServer instance running on the NAS.
- You can start additional MinimServer containers by repeating the above steps, starting with step 9
- To stop a MinimServer container, click the stop icon (black square) in the Actions column for the container
- To restart a stopped MinimServer container, click the start icon (black triangle) in the Actions column for the container
- To remove a MinimServer container, click the x symbol in the Actions column for the container
- A MinimServer instance running in a Docker container on a Synology NAS shares the full or trial license of the container host. For more information, see the MinimServer 2 licensing for Linux containers section.
Running MinimServer 2 in a Docker container on Linux
- Install Docker on your Linux system if it isn't already installed
-
To download the official MinimServer image for Intel or AMD, run this command:
docker
pull
minimworld/minimserver:
For the ARM 64-bit version of the image, use this command instead:docker
pull
minimworld/minimserver:-arm64
For the ARM 32-bit version of the image, use this command instead:docker
pull
minimworld/minimserver:-arm
-
To create a MinimServer container, run this command:
docker
create
-v
host-content-dir:/Music:ro
--network
host
--name
container-name
minimserver:
where host-content-dir is the path to your music library on the host Linux system and container-name is the name you want to use for the MinimServer container. Mounting your host music library as /Music enables MinimServer to find it automatically. Alternatively, you can use a different mount pount or mount additional library folders. If you do this, you will need to set the contentDir property using MinimWatch after you have started MinimServer. -
The default timezone for the container is GMT. If you want to change this, add the
-e
option to thedocker
create
command to set the environment variable TZ to a timezone name such as Europe/London, Australia/Brisbane, etc. For example, to set the timezone to Australia/Brisbane, you would specify-e
TZ=Australia/Brisbane
. For a list of valid timezone names, see the TZ column on this page. -
To start the container, run this command:
docker
run
-d
container-name
where container-name is the container name that you used in step 3. -
The MinimServer container should start and should appear in MinimWatch if you have this running.
To verify that the container is running, use this command:
docker
container
ls
-a
- When MinimServer has finished its initial scan of your music library (this might take some time), it should be visible to UPnP control points. The default display name is suffixed with ".2" to distinguish it from a MinimServer instance you might be running on the host system. You can change this by setting the displayName property using MinimWatch.
- You can start additional MinimServer containers by repeating step 5
-
To stop a MinimServer container, run this command:
docker
stop
container-name
where container-name is the container name that you used in step 3. - To restart a stopped MinimServer container, repeat step 5
-
To remove a MinimServer container, run this command:
docker
rm
container-name
where container-name is the container name that you used in step 3. It's best to stop the container first before removing it so that the container can notify other UPnP devices that it is stopping.
Running MinimServer 2 in an LXC container on a QNAP NAS
Unlike a Docker container that runs a single application such as MinimServer, LXC provides a Linux environment that can be used to install one or more applications. To create an LXC container and install MinimServer 2 in this container, do the following:
-
Install the QNAP Container Station package on your QNAP NAS if it isn't already installed
Note: The instructions in this section are for LXC on Container Station version 2, not LXD on Container Station version 3. Some changes to the following steps will be needed if you are using LXD.
- Install the MinimServer package on your QNAP NAS if it isn't already installed. For details of how to do this, see the Installing MinimServer 2 on a QNAP NAS page.
- After installing the MinimServer QNAP package, start the MinimServer package with an internet connection available. This creates a file named minimserver-starter.license in the MinimServer/data directory. After this file has been created, you can stop the MinimServer package if you don't want to run MinimServer as a native QNAP package.
- Using another computer, open the MinimServer 2 Downloads page, find the Linux row in the table of MinimServer downloads and click the Intel download link.
- Accept the license and download the archive file. The downloaded file is . Copy this file to the Public shared folder of your QNAP NAS.
- Start and open Container Station
- Click Create, then scroll down to the end of the list of available images
- Select the Debian LXC image and click Install. Alternatively, you can install an Ubuntu or Fedora LXC image.
- In the Create Container dialog, select Advanced Settings
- On the Advanced Settings page, enter a name in the Container Hostname field. This name will be part of the default display name for MinimServer.
- On the Advanced Settings page, click Network Mode and select Bridge, leaving other settings as the defaults that appear when you do this
- On the Advanced Settings page, select Shared Folders
-
On the Shared Folders page, create a mapping for your QNAP music library folder to the mount point
/Music
-
On the Shared Folders page, create a mapping for the
/MinimServer
folder to the mount point/MinimServer
-
On the Shared Folders page, create a mapping for the
/Public
folder to the mount point/Public
- Uncheck the 'write' boxes for all these shared folders
- The default timezone for the container is GMT. If you want to change this, select Environment on the Advanced Settings page and add a new environment variable with name TZ and a timezone name such as Europe/London, Australia/Brisbane, etc. For a list of valid timezone names, see the TZ column on this page.
- Click the Create button, then click OK on the Summary page
- After some time (be patient), the Debian container should start and appear in the Overview section
- Click the container name. A window will open that includes a Console section. Wait for a command prompt with a # symbol to appear in the Console section.
- Click the arrows next to the word Console to open a separate window for the Console.
-
To run MinimServer, you need to have Java installed. To install Java, run the command
followed by the commandapt update
. When prompted, enter Y.apt install default-jre-headless -
Unpack the MinimServer archive by entering the command
tar xf /Public/ -C /opt -
Start MinimServer by entering the command
/opt/minimserver/bin/startd - MinimServer should start and should appear in MinimWatch if you have this running. When MinimServer has finished its initial scan of your music library (this might take some time), it should be visible to UPnP control points.
-
To configure MinimServer to start automatically when the container is started, enter the command
/opt/minimserver/bin/setup enable_autostart - For more information about installing and running MinimServer on Linux (without a graphical desktop), see this page.
- To stop the container, click the stop icon (black square) in the Actions column for the container
- To restart the stopped container, click the start icon (black triangle) in the Actions column for the container. If you have configured MinimServer to start automatically (see above), MinimServer will start.
- To remove the container, click the x symbol in the Actions column for the container
- A MinimServer instance running in an LXC container on a QNAP NAS shares the full or trial license of the container host. For more information, see the MinimServer 2 licensing for Linux containers section.
Running MinimServer 2 in an LXC container on Linux
Unlike a Docker container that runs a single application such as MinimServer, LXC provides a Linux environment that can be used to install one or more applications. To create an LXC container on a Linux Intel system and install MinimServer 2 in this container, do the following:
-
Install LXC on your Linux system if it isn't already installed
Note: The instructions in this section are for LXC, not LXD. Some changes to the following steps will be needed if you are using LXD.
- Open the MinimServer 2 Downloads page, find the Linux row in the table of MinimServer downloads and click the Intel download link.
- Accept the license and download the MinimServer archive file. The downloaded file is .
-
Create an LXC container running Linux. For example, you can create a container for Debian Buster
using the following command:
lxc-create -t download -n container-name -- -d debian -r buster -a amd64
where container-name is any name of your choosing. -
Mount your music library inside the container so that MinimServer can access it.
For example, you can mount your music library as /Music inside the container by editing
your container's
config
file to add the following line:lxc.mount.entry = host-content-dir Music none bind,ro,create=dir 0 0
where host-content-dir is the path to your music library on the host Linux system. Mounting your host music library as /Music enables MinimServer to find it automatically. Alternatively, you can use a different mount pount or mount additional library folders. If you do this, you will need to set the contentDir property using MinimWatch after you have started MinimServer. -
The default timezone for the container is GMT. You can change this by editing
your container's
config
file to add the following line:lxc.environment = TZ=timezone-name
where timezone-name is a timezone name such as Europe/London, Australia/Brisbane, etc. For a list of valid timezone names, see the TZ column on this page. -
By default, LXC will run the container in its own network segment using the
lxcbr0
bridge. This doesn't work for MinimServer because the UPnP protocol doesn't allow a different network segment (subnet) to communicate with a UPnP control point and renderer on your main subnet, so you won't be able to select and play music. Instead, you need to run the container using a host-shared bridge. There are instructions for setting this up on this section and on this page. After you have done this and checked that your machine can still access the network, edit your container'sconfig
file to change the line startinglxc.network.link
to this:lxc.network.link = br0
assuming you have used the namebr0
for your host-shared bridge. -
Start the container as a daemon by running this command:
lxc-start -n container-name -d
where container-name is the container name that you used in step 4. -
Attach a shell to the running container by running this command:
lxc-attach -n container-name -- "/bin/sh"
where container-name is the container name that you used in step 4. -
To run MinimServer, you need to have Java installed. To install Java, run these commands:
apt update apt install default-jre-headless
in your attached shell. When prompted, enter Y. -
Copy the MinimServer archive file that you downloaded in step 3 into the container and unpack it
to the
/opt
directory by entering the commandtar xf -C /opt
in your attached shell. -
Start MinimServer by entering the command:
/opt/minimserver/bin/startd
in your attached shell. - MinimServer should start and should appear in MinimWatch if you have this running. When MinimServer has finished its initial scan of your music library (this might take some time), it should be visible to UPnP control points.
-
To configure MinimServer to start automatically when the container is started, enter the command:
/opt/minimserver/bin/setup enable_autostart
in your attached shell. - For more information about installing and running MinimServer on Linux (without a graphical desktop), see this page.
-
To stop the container, run this command (in a host terminal window, not in the attached shell):
lxc-stop -n container-name
where container-name is the container name that you used in step 4. - To restart a stopped container, repeat step 8
-
To destroy the container, run this command:
lxc-destroy -n container-name
where container-name is the container name that you used in step 4.
Running MinimServer 2 in an LXD container on a QNAP NAS
Unlike a Docker container that runs a single application such as MinimServer, LXD provides a Linux environment that can be used to install one or more applications. To create an LXD container and install MinimServer 2.2 in this container, do the following:
-
Install the QNAP Container Station package on your QNAP NAS if it isn't already installed
Note: The instructions in this section are for LXD on Container Station version 3.
- Install the MinimServer package on your QNAP NAS if it isn't already installed. For details of how to do this, see the Installing MinimServer 2 on a QNAP NAS page.
- After installing the MinimServer QNAP package, start the MinimServer package with an internet connection available. This creates a file named minimserver-starter.license in the MinimServer/data directory. After this file has been created, you can stop the MinimServer package if you don't want to run MinimServer as a native QNAP package.
- Using another computer, open the MinimServer 2 Downloads page, find the Linux row in the table of MinimServer downloads and click the Intel/AMD download link.
- Accept the license and download the archive file. The downloaded file is . Copy this file to the Public shared folder of your QNAP NAS.
- Start and open Container Station
- **v3 start here
- ** Click the Explore button
- ** Type Debian into the search field and press the Enter key
- ** Select LXD Image Server
- ** Scroll down to debian bookworm and click Deploy, then click OK to confirm
- In the Create Container dialog, select Advanced Settings
- On the Advanced Settings page, click Network Mode and select Bridge, leaving other settings as the defaults that appear when you do this
- On the Advanced Settings page, enter a name in the Hostname field. This name will be part of the default display name for MinimServer.
- Click the Apply button. If you don't do this, the setting you have entered will be lost.
- Click Advanced Settings again. On the Advanced Settings page, select Storage and click the Add button. Two empty fields Host and Container will appear.
-
In the Host field, use the folder icon to select the MinimServer folder.
In the Container field below the Host field, enter
/MinimServer
and change the RW setting to RO.Note: This step is essential. If you don't do this, MinimServer will show an error message "MinimServer shared folder on host is not shared with this container".
-
Click the Add button again. Two more empty fields Host and Container will appear.
In the Host field, use the folder icon to select your QNAP music library folder.
In the Container field below the Host field, enter
/Music
and change the RW setting to RO. - Click the Apply button. If you don't do this, the settings you have entered will be lost.
- Click the Next button, then click Finish on the Summary page. After some time (be patient), you will see a pop-up telling that no background tasks are running. Click elsewhere in the window to make this pop-up disappear. The Debian container should now appear as Running in the Containers section.
- For v3 LXD, do the following:
- On the Advanced Settings page, select Shared Folders
-
On the Shared Folders page, create a mapping for your QNAP music library folder to the mount point
/Music
-
On the Shared Folders page, create a mapping for the
/MinimServer
folder to the mount point/MinimServer
-
On the Shared Folders page, create a mapping for the
/Public
folder to the mount point/Public
- Uncheck the 'write' boxes for all these shared folders
- **v2 start here
- **v2 Click Create, then scroll down to the end of the list of available images
- **v2 Select the Debian LXC image and click Install. Alternatively, you can install an Ubuntu or Fedora LXC image.
- In the Create Container dialog, select Advanced Settings
- On the Advanced Settings page, enter a name in the Container Hostname field. This name will be part of the default display name for MinimServer.
- On the Advanced Settings page, click Network Mode and select Bridge, leaving other settings as the defaults that appear when you do this
- On the Advanced Settings page, select Shared Folders
-
On the Shared Folders page, create a mapping for your QNAP music library folder to the mount point
/Music
-
On the Shared Folders page, create a mapping for the
/MinimServer
folder to the mount point/MinimServer
-
On the Shared Folders page, create a mapping for the
/Public
folder to the mount point/Public
- Uncheck the 'write' boxes for all these shared folders
- The default timezone for the container is GMT. If you want to change this, select Environment on the Advanced Settings page and add a new environment variable with name TZ and a timezone name such as Europe/London, Australia/Brisbane, etc. For a list of valid timezone names, see the TZ column on this page.
- Click the Create button, then click OK on the Summary page
- After some time (be patient), the Debian container should start and appear in the Overview section
- In the Containers section, click the container name. A window will open that includes an Execute button. Click this button.
- An Execute Console window will open. In this window, click Execute.
- A small command prompt window will open. , then clikc Wait for a command prompt with a # symbol to appear in the Console section.
- Click the arrows next to the word Console to open a separate window for the Console.
-
To run MinimServer, you need to have Java installed. To install Java, run the command
followed by the commandapt update
. When prompted, enter Y.apt install default-jre-headless -
Unpack the MinimServer archive by entering the command
tar xf /Public/ -C /opt -
Start MinimServer by entering the command
/opt/minimserver/bin/startd - MinimServer should start and should appear in MinimWatch if you have this running. When MinimServer has finished its initial scan of your music library (this might take some time), it should be visible to UPnP control points.
-
To configure MinimServer to start automatically when the container is started, enter the command
/opt/minimserver/bin/setup enable_autostart - For more information about installing and running MinimServer on Linux (without a graphical desktop), see this page.
- To stop the container, click the stop icon (black square) in the Actions column for the container
- To restart the stopped container, click the start icon (black triangle) in the Actions column for the container. If you have configured MinimServer to start automatically (see above), MinimServer will start.
- To remove the container, click the x symbol in the Actions column for the container
- A MinimServer instance running in an LXC container on a QNAP NAS shares the full or trial license of the container host. For more information, see the MinimServer 2 licensing for Linux containers section.