Skip to content

Spotweb in Docker on Synology NAS

Last updated on 27 January 2024

Please note if you are using DSM7.2 or higher you should use the Container Manager version of this guide from the menu.
This guide has reached the end of its updates as most people are now on the latest DSM update - This guide is correct as of 08/12/2023 however no further updates will be added.
UpdateDate
You can now amend the cron schedule to pull on your own schedule rather than the 5-minute default17/09/2023
Historic updates now at the end of the guide.

What is Spotweb?

To quote the GitHub page.

“Spotweb is a decentralized Usenet community based on the Spotnet protocol.”

It is essentially a self-hosted Usenet indexer that integrates with your favourite media managers such as Radarr, and I am going to walk you through setting this up in Docker on your Synology NAS

Let’s Begin

The guide has 2 pages:

  • Page 1 – Folder setup and Container Manager
  • Page 2 – Spotweb Changes and FAQ

Before we start with the main guide head over and follow these two guides to get a docker user and dedicated bridge network set up.




Downloading the Spotweb and MariaDB images

Open up Docker within DSM and navigate to the ‘Registry’ tab, then search for ‘Spotweb’.

In the list of available containers download the one made by erikdevries as shown below.

When the dialogue pops up asking you to choose a version, make sure you choose ‘latest’ from the list.

While the Spotweb image is downloading do another search for MariaDB as this is the database will we be using.

Download the official version as shown below using the ‘Latest’ tag when asked.




Setting up the MariaDB Container

In Docker click on the ‘Image’ tab, in the list of your containers select the ‘MariaDB’ image and click on ‘Launch’

The first screen will ask how you want to set up the Docker network, we will be using the synobridge network we set up earlier.

General Settings

Next you will be greeted with the General Settings screen, this is where you can start specifying some of your preferences.

You can change the name of the container to anything you like, and you will want to enable Auto Restart as this will ensure the database starts automatically if you reboot your NAS.

Next up we are going to click on the ‘Advanced Settings’ button, this will take you to a new window with a number of tabs which we are going to work through.

Environment

Next we are going to specify some variables that will tell MariaDB what to use for our credentials so Spotweb can access it.

Click the Add button, and fill in the following details as per the table/screenshot. Make note of these you will need them later!

VariableValue
MYSQL_ROOT_PASSWORDenter a unique password do not use special characters and keep below 20 alphanumeric e.g. A-Z – 0-9
This is the master password for MariaDB in case you ever need it.
PUID(required) The UID you obtained in the user setup guide
PGID(required) The GID you obtained in the user setup guide
TZYour timezone wikipedia.org/wiki/List_of_tz_database_time_zones
MYSQL_DATABASEspotweb
MYSQL_USERenter a unique username for the spotweb database
MYSQL_PASSWORDenter a unique password do not use special characters and keep below 20 alphanumeric e.g. A-Z – 0-9 as this is known to cause issues if overly complex

You do not need to set up anything on these tabs.

Press ‘Save’ to go back to the initial setup screen, then press ‘Next’

Port Settings

You will see that the Local Port has Auto in it by default, change this to 3306 then click Next.

Volume Settings

We will now be specifying the directories where the database will be stored along with its config files.

Click on ‘Add Folder’ then select the ‘docker’ folder and create a new sub-folder called ‘mariadb’ click on this folder and click ‘Select’

Now in the Mount Path box enter /var/lib/mysql

Click ‘Next’

Summary

You have now completed the setup of the database. Click on Next to move back to the final summary screen, this is a good time to double-check everything is correct.

Finally, click on Done and the container should start to boot.




Setting up the Spotweb Container

We are now doing the initial setup and will be coming back to complete it later.

Head back into the Image tab and this time Launch the Spotweb image

You will be greeted with the Network screen, we will be using the ‘synobridge’ network we created earlier select it from the list and click Next.

General Settings

Next you can rename the container and enable auto-restart to make sure Spotweb starts up with your NAS, then click Next.

Environment Variables

We are now going to specify some additional variables, click on ‘Advanced Settings’

Click the Add button, and fill in the following details as per the table/screenshot.

VariableValue
TZYour timezone wikipedia.org/wiki/List_of_tz_database_time_zones
DB_NAMEspotweb
DB_USEREnter the same username from the MYSQL_USER setting you used for the MariaDB container
DB_PASSEnter the same password from the MYSQL_PASSWORD setting you used for the MariaDB container (Not the Root Password)
DB_PORT3306
DB_HOST172.20.0.1
CRON_INTERVAL‘*/5 * * * *’

#by default this is 5 minutes you can work out a different interval by using https://cron.help to adjust the timing e.g. ‘*/60 * * * *’ is every hour on the hour.

Click ‘Save’ then Click ‘Next’

Port Settings

Spotweb wants to use port 80, we need to move it to an alternative port, We will use 8085.

Click Next, you do not need to enter any information on the ‘Volume Settings’ page, click next again and then click ‘Done’ on the Summary to start the container.

Once the container starts you need to give it about 5 to 10 minutes to create all the required database tables so be patient while it does this! You should then be able to access the Web UI via your NASIP:8085

You can now move on to Page 2.


Pages: 1 2

Published inDockerSearch / Indexers 7.1SynologyUsenet

133 Comments

  1. Frank v. Frank v.

    Hi, I saw that you have rewritten this guide based on a different base image. This base image has a cron job which gets the spots every 5 minutes. The previous base image you could decide for yourself how often the cron job will get the spots.
    Is there an easy way I can change how often the cron job will retrieve the spots? As running the cron job every 5 minutes (to my knowledge) means that the harddisks in my NAS will not go into sleep state and I d not need updates that often.

    • Dr_Frankenstein Dr_Frankenstein

      Hey apologies bit behind on emails and comments, unfortunately not currently. I raised a GitHub issue to amend the Cron waiting on a reply at the moment. It would likely mean your drives don’t sleep however if you have other container running it’s unlikely you will see them sleep very often anyway.

      • Frank v. Frank v.

        I saw that there is a new image available and you already included the CRON_INTERVAL variable in your description. Tried it yesterday evening and works perfectly.
        Thanks for helping out with this.

        One remark: the variable is without quotes. That was not clear to me at first (logging helped me out with this) and therefor the first time it did not work.

  2. Frank Frank

    Hi, when following your guide I get an error when trying to start Mariadb: a conflict between a local port (3306) and other ports used by other services. How can I fix this, do I have to choose another local port?

    • Dr_Frankenstein Dr_Frankenstein

      Hey you may have the MariaDB package install – so yes you can select a different port just change the ‘Local Port’ not the ‘Container Port’ and then make sure you also change that when you get to the Spotweb section.

  3. Remco Remco

    Hi, I have followed all your instructions but the MariaDB container does not want to start and gives this error in the logs:

    /usr/sbin/mariadbd: Can’t change dir to ‘/var/lib/mysql/’ (Errcode: 13 “Permission denied”)

    I created the same user with ids:
    uid=1030(dockerlimited) gid=100(users) groups=100(users)

    and gave this users read/write access on the folder I mount to /var/lib/mysql

    Any idea what I am doing wrong?

  4. Andy Andy

    Hey mister, thanks a lot for the write up, followed it to a T.. I can do install.php and it connects to all (mariadb and usenet) , did the steps after that with spotweb.. but when I start I get the message it’s unable to connect to the database…

    Tried all ip’s , with or without port.. am unable to get the spotweb up and running again..

    do you have an idea where I can look more into ?

    • Dr_Frankenstein Dr_Frankenstein

      This seems to always be a final stumbling block. Hold fire I am doing the re-write for this guide over the weekend and see if I get the same issue.

    • Dr_Frankenstein Dr_Frankenstein

      One question – Do you see the dbsettings.inc.php in the /docker/spotweb folder? and if so does it contain your database settings?

    • Dr_Frankenstein Dr_Frankenstein

      Rewrite is going well – I am doing the Container Manager update first then backporting the changes to this guide. Removed the entire installation step so far and having to double back for additional container settings.

      Should have both up by tonight (GMT)

    • Dr_Frankenstein Dr_Frankenstein

      The guide has now been rewritten – start from scratch as it uses different containers.

      • Andy Andy

        cool will check again , when I created the folder mapping in the beginning I had the file, if I did the same process without the /config in the first time we start spotweb then it gave the issue and no files in the folder.. , I will do the spotweb creating again now and will let you know how it is going

  5. RJ RJ

    I’m getting this now on the spotweb web page

    Unable to connect to database:
    SQLSTATE[HY000] [2006] MySQL server has gone away

    Please make sure your database server is up and running and your connection parameters are set

    any ideas?

    • Dr_Frankenstein Dr_Frankenstein

      Hey RJ – I am about to begin a re-write of this guide for Container Manager – If you hold out for a few days I can see if I am getting any of the recent errors people have seen.

    • Dr_Frankenstein Dr_Frankenstein

      The guide has now been rewritten – start from scratch as it uses different containers.

      • RJ RJ

        I’m following your new guide but when i try to add my news servers i get the error: “Invalid retrieve_newer_than setting” do you know how i can solve this? thank you.

        • Dr_Frankenstein Dr_Frankenstein

          In the settings check the date in the Calendar for the retrieval dates is set – you may need to change it to a specific date.

          • RJ RJ

            Thank you. It allowed me to move forward. Now my next issue, It’s been about 45 mins now and it still says “No results found” on the main page. Does it take typically this long before the first spots to show up? I was just worried I typed in the wrong news server settings. There’s no button to “Test” the connection.

            • Dr_Frankenstein Dr_Frankenstein

              You should have had some results by now. Do the logs show anything at all?

          • RJ RJ

            There are results now. It’s just slower than the old spotweb setup to populate. Thanks again.

          • RJ RJ

            It’s been running for 10 days now but mariadb is just 320MB, with your old guide before by this time it was already like 14GB. Is your new guide structured differently that it has such a small footprint?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

drfrankenstein.co.uk – writing Synology Docker Guides since 2016 – Join My Discord!