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.
Update | Date |
---|---|
You can now amend the cron schedule to pull on your own schedule rather than the 5-minute default | 17/09/2023 |
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!
Variable | Value |
---|---|
MYSQL_ROOT_PASSWORD | enter 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 |
TZ | Your timezone wikipedia.org/wiki/List_of_tz_database_time_zones |
MYSQL_DATABASE | spotweb |
MYSQL_USER | enter a unique username for the spotweb database |
MYSQL_PASSWORD | enter 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 |
Links / Execution Command
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.
Variable | Value |
---|---|
TZ | Your timezone wikipedia.org/wiki/List_of_tz_database_time_zones |
DB_NAME | spotweb |
DB_USER | Enter the same username from the MYSQL_USER setting you used for the MariaDB container |
DB_PASS | Enter the same password from the MYSQL_PASSWORD setting you used for the MariaDB container (Not the Root Password) |
DB_PORT | 3306 |
DB_HOST | 172.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
Hi, I followed this manual but unfortunately I get the following error:
Table ‘spotweb.settings’ doesn’t exist
Any idea how to solve this?
On the first ever start up you need to give the containers time to create all the tables, so monitor the Spotweb log and you will see it creating them.. If you already stopped or restarted them you need to stop both containers delete all the contents of the MariaDB folder and start them again.. then watch the log it can take a while and sometimes spout the odd error but be patient and it should kick off.
Thanks for your reply.
Unfortunately stopping both containers and deleting all files and folder mariadb and the start both containers didn’t solve it. Same error.
Then I deleted both containers and images and then downloaded the images again and followed the above steps again. But unfortunately, again the same error.
When checking the logs I notice the following three issues:
SpotWeb v0.68.36.34 on PHP v8.1.26 crashed
PHP Warning: Undefined variable $retriever in /app/retrieve.php on line 296
PHP Fatal error: Uncaught Error: Call to a member function quit() on null in /app/retrieve.php:296
Any ideas?
I will ping you an email later, In thr interim are you able to take a look the the newer guide were I am using the LinuxServer version of the MariaDB image, you need to just add the appropriate environment variables a bit like my other guides.
It’s in the menu take a look at the compose and explanation to add the right bits.
Ok thanks. Looking forward to your email.
Why not a Docker compose? I prefer that, thanks to you,. as it’s easier to troubleshoot and start over.
Make sure you are following the correct guide this is for the Docker package as per the top of the guide.
Hi, just wondering why you switched from jgeusebroek to erikdevries. I can’t find a note in the text or Updates. Also looking at the source pages, I can’t find specific advantages of one above the other.
I’m running jgeusebroek now from the tutorial of last year, not updated. I wonder if an update breaks and/or I should switch to the erikdevries container.
Hey so many people were struggling to get the old image set up I hunted down this alternative that was less fiddly. I changed over on the 7.2 rewrites I will tweak the June update note to make that clearer.
If you are working no need to change.
Thanks for the answer.
I was looking at the instructions to ‘copy’ the install way to other containers like grafana and smokeping. For Grafana I noticed the settings are inside the container so I wanted to make some setup external, just like the jgeusebroek container. This to keep the config when resetting the container.
Luckily I found saved filed of the old pages so I can fiddle with the settings.
Having said that, I never updated the jgeusebroek and mariadb containers … Afraid the working setup gets broken.
Ahh OK – Yeah this new version doesn’t require any mounts as its all stored in the database the Web elements are disposable.
With the latest DSM (7.2-64570) i’ve been updating all my containers last night. With that my working mariadb went fubar, which is only used by spotweb.
A reinstallation with this site (thanks btw!) work although a new installation with spotweb results in:
Unable to connect to database:
SQLSTATE[HY000] [1130] Host ‘172.17.0.5’ is not allowed to connect to this MariaDB server
Please make sure your database server is up and running and your connection parameters are set
I’m using the ‘default’ bridge with ;
172.17.0.0/16
172.17.0.1
All containers reside in this, as does the new spotweb.
Remark, i used to use jgeusebroek/spotweb in which i used;
“key” : “SPOTWEB_DB_HOST”,
“value” : “{ASSIGNED IP IN MY NETWORK-NOT 172”
So,i’m kinda lost here…
Hey I see you reached out on Discord let’s continue there.
Maybe I have the same issue, I did not follow “don’t fix it if it ain’t broken” principle and updated the spotweb and maria DB.
Now stuff is broken
Unable to connect to database:
SQLSTATE[HY000] [2002] Connection refused
Please make sure your database server is up and running and your connection parameters are set
Hopefully there is a quick fix for this..
If you leave it running for a bit see if it connects again.