Skip to content

Updating from the Synology SPK to Container

Rik Dunphy edited this page Aug 28, 2022 · 7 revisions

Welcome to the Guide for those wishing to move from the now end of life SPKs I used to create for the HDHomeRun DVR engine to the docker container on a Synology System. I do believe Silicondust has something in the works - so I refer ONLY to my SPKs that I created before August 1st 2022. The guide was developed with lots of help from @AnalogueBill on the Silicondust forums and @timodreynolds from the HDHRqpkg Discord.

Please Note - this has been confirmed working on DSM7 on x86 based Synology NASes. a DS718+ and a DS1520+ It is possible to install docker on an ARM based Synology NAS, but not officially from Synology. However, should you install it, then the instructions below should still apply.


Preparing the Synology NAS

  1. Stop any existing Record Engine To begin with we assume you have the SPK installed. You can now go in to the App Center and disable/stop the HDHomeRunDVR package. If you want to delay actual removing of the SPK until you have the container working - that is ok. It will not cause issues if you have to delete later. Just make sure not to allow both to be running at the same time. If you have previously used the Silicondust Installer you can simply reboot the NAS or use the command line by SSH to the NAS. The default folder that is used is /volume1/HDHomeRun but you may need to adjust. Also if you have done the autostart provided by Siliondust here here please remove it.

  2. Install Docker With the Record Engine stopped you now need to install Docker from the App Center. It is possible to install docker on an ARM based Synology NAS, but not officially from Synology. However, should you install it, then the same instructions apply here on setting up this container.

  3. Create a shared folder for your docker data With docker installed I believe you will need to create a shared folder for storing any docker data. You can set this up as shared across all containers, or one specifically for this DVR container - it is your choice. Please follow the Synology instructions here For the rest of this guide I will assume a shared Folder called ContainerData that is shared and a subfolder in this share DVRData for storage of data specific to this container, i.e. /ContainerData/DVRData

  4. Create a shared folder for your recordings (optional) If you have installed the SPK or used the Silicondust Installer before, then likely you have a shared folder already created and can skip this step. If this is your first time installing the DVR engine, or a reset, etc.. then create another Shared Folder following the Synology instructions here For the rest of this guide I will assume a shared Folder called HDHomeRunDVR which is the same default as the SPK, but different from the Silicondust Installer default which is HDHomeRun

  5. Create a DVR user (recommended) You could simply use the DVR container as root, and it will work. However with permissions getting as complicated as they are on Synology I would recommend you create a new user specifically for this. Rather than repeat Synology's own guide I'm going to simply refer you to go look that up and create a new user that you want.. For rest of this guide I'm going to assume a username of dvruser With the user created - make sure they have permissions to both the ContainerData and HDHomeRunDVR shared folders (or whatever you have called them)

  6. Get the User UID and GID To correct the permissions for the container we will need the user ID (UID) and group ID (GID) of the DVR user you wish to use (and/or created in previous step) Please follow this guide from MariusHosting on how to get this information. FWIW Marius has a ton of really good tips on how to get more out of your Synology NAS. Keep note of the UID and GID you get from the output - we'll need this later.


Installing the Container

  1. Open up the Docker app in your Synology DSM Desktop and select Create

  2. It will then ask you which image you want - so search for this container demonrik/hdhrdvr-docker:latest with :latest indicating you want releases with the latest tag applied to them

  3. Select the network mode to be Host.

  4. Configure the General Settings

    Imgur

    4.1 Set a name for this container.. I recommend you use something simple like DVR or HDHomeRunDVR

    4.2 This container doesn't need elevated privileges, so you can leave 'Execute container using high privileges' blank (unlike the screenshot)

    4.3 Recommend to click on 'Enable auto-restart' so that the container

  5. Click on 'Advanced Settings' so we can add the correct environment parameters needed

    Imgur

    5.1 Add a variable DVRUI_PORT which is needed for the web UI to the DVR Manager and set the value to 59080 or any other known free port in your NAS

    5.2 Add a variable PUID to indicate which user we will run under and set to the UID discovered in the setup phase.

    5.3 Add a variable PGID to indicate which group we will run under and set to the GID discovered in the setup phase.

    5.4 Click save to keep these variables/parameters.

  6. Back on the Settings, click on the Volume Settings Tab

    Imgur

    6.1 Add a new volume and set the File/Folder to your HDHomeRunDVR shared volume and Mount path should be /dvrrec indicating to the container where to store the recordings.

    6.2 Add a second new volume and set the File/Folder to your /ContainerData/DVRData shared volume and Mount path should be /dvrdata indicating to the container where to store the temporary data for its internals.

  7. Click Save when done and the container should start


Verifying the Installation

You can verify the installation is working in 3 ways

  1. Open the container logs via the Docker UI on your Synology and verify you don't see any errors.
  2. Open the DVR Manager UI at the DVRUI_PORT of your NAS, e.g. 192.168.5.42:59080 You should be able to open the logs, and confirm the DVR engine is running on the status bar at the bottom
  3. Open the Record Engine interface at the 59090 port, e.g. 192.168.5.42:59090