edv / docker-spotweb Goto Github PK
View Code? Open in Web Editor NEWDockerfile to easily set up Spotweb using Docker on the Raspberry Pi (or any compatible arm chipset) and regular x86 chipsets
License: MIT License
Dockerfile to easily set up Spotweb using Docker on the Raspberry Pi (or any compatible arm chipset) and regular x86 chipsets
License: MIT License
should be added, installer did not work for me without
HI,
Let me explain. I mount the docker folder /app/cache to a local folder which contains all the cache gathered in the past.
When the docker starts, I see it hangs for a very long time in chowning the cache folder since it's rather big and file I/O is maybe slower due to mounting to an extra folder.
My question now: is it possible to disable this chown step (maybe foresee a environment variable which disables this in the startup script?) or can I edit it myself? (not being the docker expert here)
thx
When trying to upload a custom spotwebfilters.xml
file I get a 500 error from NGINX stating:
2021/04/29 15:53:28 [crit] 270#270: *7761 open() "/var/lib/nginx/tmp/client_body/0000000001" failed (13: Permission denied),
client: 0.0.0.0, server: _, request: "POST /?page=editfilter HTTP/1.1", host: "spot.example.com", referrer:
"https://spot.example.com/?page=edituserprefs&userid=2"
The issue is that the /var/lib/nginx/tmp/client_body/
directory has the incorrect permissions.
I repaired this by running a bash command inside the docker container under a root user and setting all directory permissions to abc:root
:
chown -R abc:root -- /var/lib/nginx
I'll leave this issue open in case you want to adjust the Dockerfile otherwise feel free to close this. I just figured I could save someone else a bit of time by recording what I figured out as an issue.
Hey sorry back again, we seem to be seeing a bug and I am not sure if it's from here or upstream as I have seen this on other containers as well.
By default Spotweb seems to be using 'today' as the default date to pull spots from so no backlog is pulled. And when amending the date back to November 2009 from the UI the database does not change.
If I manually flush tables (might be overkill) and then manually amend the 'Retrieve_Newer_Than' to 1257030000 in the Settings table everything then pulls correctly.
Happy to do any testing required to get this working as it seems to do it on every fresh install.
Tables I flush with Foreign Key checks disabled are:
cache
commentsfull
commentsposted
commentsxover
moderedringbuffer
reportsposted
reportsxover
spots
spotsfull
spotstatelist
usenetstate
when te install script resets the password I get this error:
Resetting the password of '/var/www/spotweb/bin/upgrade-db.php' to 'spotweb'
SpotWeb crashed
Database schema or settings upgrade failed:
Username cannot be found to reset password for
I tried the docker image with a new stack. I was able to install Spotweb and set it up.
However, when retrieving spots, I notice that there is nothing (spots) stored in the database. The credentials are correct, as other settings are saved in the DB (MariaDB 5 & 10). However, the spots are never stored.
Anyone else experiencing this issue?
Not an issue, just an FYI.
Apparently a bug has been solved which means Spotweb should work with MySQL 8. More info on the link below:
spotweb/spotweb#437
a current docker compose+.env file shows the database username & password
add support for docker secret files allowing variables _FILE to read /run/secrets/supersecretdbpassword
for DB_NAME, DB_USER, DB_PASS should be secret-enabled _FILE alternatives
this makes it not only safer but also easier to use the same password in the database and spotweb-container
Hey
Your update from 3 weeks back with the Cron schedule has been working perfectly โ however it seems like the version pushed 2 days ago has a bug as upon setup nothing is pulled. I tested this myself and had a couple of people on Discord with exactly the same issue.
I can spin up fresh containers to help find the issue to help out. Not sure if you have experienced any problems at all?
i just wanted to test with default settings. But after the command docker run -p 8080:80 --name spotweb -d -v /etc/localtime:/etc/localtime:ro erikdevries/spotweb
spotweb isn't accessible.
When I look at logs from docker-spotweb i see this over and over:
[cont-init.d] 10-adduser: exited 0. [cont-init.d] 30-config: executing... [cont-init.d] 30-config: exited 0. [cont-init.d] 35-waitforsql: executing... nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'... nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'... nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'... nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'... nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'... nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'... nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'... Waiting for database connection at host 'mysql:3306'... nc: bad address 'mysql' nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'... nc: bad address 'mysql' Waiting for database connection at host 'mysql:3306'...
rpi3 with
I followed your instructions and after building everything, the sportweb container crashed with the following error message: TypeError: expected string or buffer
$ docker-compose -f docker-compose-arm.yml up --build
Building spotweb
Step 1/12 : FROM hypriot/rpi-alpine:3.6
---> c5a8d1077f75
Step 2/12 : MAINTAINER Erik de Vries <[email protected]>
---> Using cache
---> 42125760f776
Step 3/12 : RUN apk -U update && apk -U upgrade && apk -U add git nginx php5 php5-fpm php5-curl php5-dom php5-gettext php5-xml php5-zip php5-zlib php5-gd php5-openssl php5-mysqli php5-pdo php5-pdo_mysql php5-json supervisor && git clone --depth 1 https://github.com/spotweb/spotweb.git /var/www/spotweb && chown -R nobody:nobody /var/www/spotweb && sed -i "s/date.timezone = UTC/date.timezone = \"Europe\/Amsterdam\"/g" /etc/php5/php.ini && rm -rf /tmp/src && rm -rf /var/cache/apk/*
---> Using cache
---> ff96fe8df7c7
Step 4/12 : VOLUME /config /nzb
---> Using cache
---> a97d6be78ff7
Step 5/12 : COPY ./conf/cron/spotweb /etc/periodic/hourly/spotweb
---> Using cache
---> b080c7af8872
Step 6/12 : RUN chmod +x /etc/periodic/hourly/spotweb
---> Using cache
---> bae5a3077edf
Step 7/12 : COPY ./conf/supervisord.conf /etc/supervisord.conf
---> Using cache
---> 2343dd9962a2
Step 8/12 : COPY ./conf/nginx /etc/nginx
---> Using cache
---> b5dce800f971
Step 9/12 : COPY ./conf/spotweb /var/www/spotweb
---> Using cache
---> cdf90aa6ebf0
Step 10/12 : COPY ./entrypoint.sh /entrypoint.sh
---> Using cache
---> c94f5dde117b
Step 11/12 : EXPOSE 80
---> Using cache
---> 0f8154b87a56
Step 12/12 : ENTRYPOINT /bin/sh /entrypoint.sh
---> Using cache
---> ea68c8388ccb
Successfully built ea68c8388ccb
Successfully tagged dockerspotweb_spotweb:latest
Starting dockerspotweb_mysql_1 ...
Starting dockerspotweb_mysql_1 ... done
ERROR: for spotweb expected string or buffer
Traceback (most recent call last):
File "/usr/local/bin/docker-compose", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 68, in main
command()
File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 118, in perform_command
handler(command, command_options)
File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 926, in up
scale_override=parse_scale_args(options['--scale']),
File "/usr/local/lib/python2.7/dist-packages/compose/project.py", line 424, in up
get_deps
File "/usr/local/lib/python2.7/dist-packages/compose/parallel.py", line 69, in parallel_execute
raise error_to_reraise
TypeError: expected string or buffer
I hope the logs help. @edv , it would be nice if you could take a look at this.
//Update: added docker-compose version
Hi,
Today I updated Spotweb to the latest version but now it is not working anymore. Did I do something wrong?
SpotWeb v0.68.36.34 on PHP v8.3.6 crashed object(Exception)#7 (7) { ["message":protected]=> string(44) "Unknown database engine () factory specified" ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(28) "/app/lib/dbeng/dbeng_abs.php" ["line":protected]=> int(22) ["trace":"Exception":private]=> array(3) { [0]=> array(5) { ["file"]=> string(22) "/app/lib/Bootstrap.php" ["line"]=> int(148) ["function"]=> string(12) "getDbFactory" ["class"]=> string(9) "dbeng_abs" ["type"]=> string(2) "::" } [1]=> array(5) { ["file"]=> string(22) "/app/lib/Bootstrap.php" ["line"]=> int(42) ["function"]=> string(13) "getDaoFactory" ["class"]=> string(9) "Bootstrap" ["type"]=> string(2) "->" } [2]=> array(5) { ["file"]=> string(14) "/app/index.php" ["line"]=> int(19) ["function"]=> string(4) "boot" ["class"]=> string(9) "Bootstrap" ["type"]=> string(2) "->" } } ["previous":"Exception":private]=> NULL } Unknown database engine () factory specified
Hey I recently swapped one of my Synology guides over to your container image as it make things much easier to set up. However I have had a question relating to the Cron. Is there any way to amend it's frequency?
Appreciate your work.
https://drfrankenstein.co.uk/2023/06/11/spotweb-in-container-manager-on-synology-nas/
Also wanted to mention I do a split of coffee money I get across the year to anyone who I featured in a guide so around October I will ping you part of the split if you have Github Sponsors enabled.
Thanks
Feature request:
Is it possible to add a local blacklist (mapped folder into the docker image?) and to add spotters to it from the web UI?
Is there any information available on the existing external blacklist format?
i.e. what is the value used to block a spotter?
e.g.
3aZW/B4RCV1I5bVNyvs3N10MbGgCYttvILMBUZM3SUelQgOcUxS/aFI8ZrAzHp7z <-- this thing
Hello,
I used the "docker-compose -f docker-compose-x86.yml up" option. The containers are created, but it seems like the "script" just stops running at this point:
Attaching to docker-spotweb-master_mysql_1, docker-spotweb-master_spotweb_1
mysql_1 | WARNING: no logs are available with the 'db' log driver
spotweb_1 | WARNING: no logs are available with the 'db' log driver
Don't know if that's really the issue, after googling, but at least the spotweb-site isn't available at that point. Hope you can help me out here. I'm not that good with docker, that's why I used the compose file. With the database setup this is a bit more complex for me at least than e.g. sabnzbd was. It is docker on a Synology NAS, so I don't use localhost to access it, instead I use the NAS-ip with port 8080.
Hey,
Thanks for the great work of making this Spotweb Docker.
For my Spotweb I used an ownsettings.php, for various options/reasons.
In the readme I didn't find an instruction how-to map it with this container, perhaps adding it for other people is an option?
Right now I've mapped the following in my docker-compose.yaml and this works fine:
volumes:
- /mnt/data/docker/spotweb/ownsettings.php:/app/ownsettings.php
Hoi Erik!
Dit ziet er zeer goed uit!
Mocht je zin en tijd hebben, zou je deze noob kunnen helpen met wat vraagjes?
Beste is via telegram @bafplus
Currently this docker container only supports mysql databases, would adding pdo_postgres (or whatever it's called) to the Dockerfile be enough to get postgres support?
FYI
I was getting the error "net::ERR_INCOMPLETE_CHUNKED_ENCODING" for the URL page=statics&type=js&lang=en_US&mod=1563263890
I solved it with the answer here:
https://stackoverflow.com/questions/29789268/neterr-incomplete-chunked-encoding-nginx
My solution was a blanket chmod -R 7777 * on the /var/lib/nginx folder.
A more elegant solution is likely in the cards.
Login with username
admin
and passwordspotweb
Login keeps failing on this step
For some time I've been trying to install the Spotweb docker on my ARM system (Rockpi 4c). I've tried multiple methods but keep running into issues.
The system is running ARMbian and has Openmediavault, Docker and Portainer installed.
First I tried setting up a database (linuxserver/mariadb) and used the Quick setup using dockerfile approach
docker run -p 8080:80 --name spotweb -d -v /etc/localtime:/etc/localtime:ro erikdevries/spotweb
This results in the follow error:
standard_init_linux.go:211: exec user process caused "exec format error"
Second I tried In Portainer. I added the content of the docker-compose-arm.yml file as a stack. This results in the following error:
Deployment error
Status: no matching manifest for linux/arm64/v8 in the manifest list entries, Code: 1
Third attempt is via ssh. Now I downloaded the [docker-compose-arm.yml] onto my system and ran docker-compose -f docker-compose-arm.yml up
. Again, resulting in an error:
ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
So basically the hair which not yet has fallen out of my head is turning grey. Can someone give me a push in the right direction?
Three side questions, (if desired I can make separate issues):
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.