Synology-Forum.nl
Packages => Officiële Packages => Docker / Container Manager => Topic gestart door: The Raptor op 03 december 2024, 23:45:10
-
Ik heb nu bijna 3 jaar Spotweb draaien via mijn Synology NAS. Ik vroeg mij af of er nooit updates voor uitkomen. Ik zie geen update knop via de webapplicatie. Gisteren zag ik dat je via GitHub de nieuwste update kan downloaden. Vervolgens moet je deze zelf handmatig kopiëren naar de juiste locatie op je NAS. Dat heb ik gedaan en is gelukt.
Als ik Spotweb nu open krijg ik de volgende melding: Spotweb contains updated global settings settings. Please run 'bin/upgrade-db.php' from a console window.
Ik heb via een SSH verbinding de commando uitgevoerd. Ik krijg foutmelding MYSQL_ATTR_FOUND_ROWS zoals in https://www.synology-forum.nl/spotweb/fatal-error-undefined-class-constant-'mysql_attr_found_rows'/ beschreven is.
Ik heb de bovenstaande topic gevolgd maar krijg het niet werkend. Ik heb een bestand aangemaakt met de naam "webstation-extensions.ini". Ik heb de volgende tekst toegevoegd:
extension = bcmath.so
extension = bz2.so
extension = curl.so
extension = gd.so
extension = gettext.so
extension = openssl.so
extension = pdo_mysql.so
extension = zip.so
Ik heb het bestand gekopieerd naar /usr/local/etc/php73/conf.d. (Ik gebruik PHP 7.3)
Vervolgens staat er in de topic dat ik de regel [PDO::MYSQL_ATTR_FOUND_ROWS => true moet verwijderen uit het bestand "dbeng_pdo_mysql.php". Dit staat op pagina 1 van dit topic: https://www.synology-forum.nl/spotweb/fatal-error-undefined-class-constant-'mysql_attr_found_rows'/. Ik heb voor de zekerheid mijn NAS een herstart gegeven.
As ik nu het upgrade commando gebruik, krijg ik de volgende melding:
SpotWeb crashed
Database schema or settings upgrade failed:
could not find driver
#0 /volume1/web/spotweb/lib/Bootstrap.php(155): dbeng_pdo_mysql->connect('localhost', '', '3307', '')
#1 /volume1/web/spotweb/bin/upgrade-db.php(44): Bootstrap->getDaoFactory()
Weet iemand hoe ik dit moet oplossen?
-
Je kunt die extensies ook aanzetten via DSM - Webstation - Scripttaalinstellingen - Jouw versie van PHP - Tabblad Extensies.
Dat zou ik eerst proberen, het topic waarna je verwijst is voor als dat onverhoopt niet lukt.
Alternatief is draaien van Spotweb in een Docker container. Daarbij zijn alle afhankelijkheden zoals PHP, MariaDB helemaal op elkaar afgestemd.
-
De extensies zijn aangevinkt bij het tabblad extensies. Dan werkt het nog niet.
Een interessante optie. Mijn NAS ondersteunt Docker. Ik heb er een aantal vragen over:
1.Kan ik zonder problemen Spotweb updaten als er een nieuwe versie beschikbaar is?
2.Kan ik mijn watchlist exporteren en importen?
3.Welke stappen moet ik ondernemen? Eerst MyPHPAdmin en MariaDB verwijderen en daarna Spotweb installeren?
-
1. Als de maker van de container update wel. Een Docker container is een statisch is, waarin alles voor een toepassing zit. Een mini distributie, een webserver, Spotweb zelf ... Die afhankelijkheden kloppen dus altijd. Degene die ik gebruik is 9 maanden geleden voor het laatst geupdate: https://github.com/jgeusebroek/docker-spotweb (https://github.com/jgeusebroek/docker-spotweb)
2. Geen idee. Als dat kan van de ene naar de andere Spotweb installatie, dan kan dat hier ook.
3. Je kunt alles laten staan, totdat je zeker weet dat Spotweb goed loopt
Stap 1: installeer Container manager package van Synology. Stap 2: installeer Portainer. Deze link beschrijft beide:
https://mariushosting.com/synology-30-second-portainer-install-using-task-scheduler-docker/ (https://mariushosting.com/synology-30-second-portainer-install-using-task-scheduler-docker/)
Stap 3: maak een nieuwe Stack aan met deze compose. Even de wachtwoorden aanpassen natuurlijk. Je hebt dan Spotweb en Mariadb draaien. Maak eerst een map docker en met daarin een map spotweb met daarin een map config.
version: "2.1"
services:
spotweb:
image: jgeusebroek/spotweb
container_name: spotweb
restart: unless-stopped
environment:
- PUID=1026
- GUID=100
- TZ=Europe/Amsterdam
- SPOTWEB_DB_TYPE=pdo_mysql
- SPOTWEB_DB_HOST=spotweb_db
- SPOTWEB_DB_PORT=3306
- SPOTWEB_DB_NAME=spotweb
- SPOTWEB_DB_USER=spotweb
- SPOTWEB_DB_PASS=spotweb
#- "SPOTWEB_CRON_RETRIEVE=* */2 * * *"
- "SPOTWEB_CRON_RETRIEVE=*/30 * * * *"
- "SPOTWEB_CRON_CACHE_CHECK=10 */1 * * *"
depends_on:
- spotweb_db
ports:
- 81:80
volumes:
- /volume1/docker/spotweb/config:/config
spotweb_db:
image: linuxserver/mariadb
container_name: spotwebdb
restart: unless-stopped
environment:
- PUID=1026
- PGID=100
- MYSQL_ROOT_PASSWORD=spotweb
- TZ=Europe/Amsterdam
- MYSQL_DATABASE=spotweb
- MYSQL_USER=spotweb
- MYSQL_PASSWORD=spotweb
volumes:
- /volume1/docker/mariadb4spotweb:/config
ports:
- 3306:3306
Docker is zeker een leercurve, maar er is veel over te vinden. De site van Mariushosting heeft veel voorbeelden, ook voor Transmission of Sabnzbd.
-
Moet ik de stack aanmaken in Docker of in Pontainer? Moet ik Spotweb installeren via Docker of Pontainer?
-
Eerst Synology package Container Manager installeren.
Dan Portainer installeren (dat is zelf ook een Docker container). Zie de link op mariushosting. Portainer maakt aanmaken en beheren van container wat makkelijker. Er zijn (zoals altijd) meerdere manieren. Je kunt Container Manager zelf gebruiken, je kunt de command line gebruiken. Ik vind Portainer handiger.
Dan in Portainer een stack aanmaken voor Spotweb en Mariadb.
-
TIP: gooi het over een andere boeg.
Installeer Spotnet op je windows computer en SABNZbd op je NAS. Koppel e.e.a aan elkaar met een token, voed dan dus SABNzbd met de NZB'tjes uit Spotnet. en het werkt als een dolle. Bij mij al paar jaar.
Voordeel: simpel, actueel en geen bewaakte map nodig.
Maar voor de echte nassofielen zal dat wel te simpel zijn. :P
-
Ook n optie hoor. Ik gebruik Docker voor Spotweb, Sabnzbd, Transmission,Airsonic en Jellyfin. Dus als je dat eenmaal kent is dat makkelijk.
Gelukkig zijn er altijd alternatieven.
-
SABNZBD op NAS kan ook zonder docker, zie de community
-
Ik heb vandaag Spotweb via Container Manager geïnstalleerd door deze link te volgen: https://drfrankenstein.co.uk/spotweb-in-container-manager-on-synology-nas/
Hoe werkt het binnenhalen van nieuwe spots? Moet ik hiervoor een taak aanmaken net als de lokale installatie? Ik heb ook Portainer geïnstalleerd. Is spotweb nu ook via Portainer te beheren?
-
Hee, je kunt dus ondertussen weer bij je Spotweb op deze manier?
Ik heb in mijn Docker Compose deze regels, maar ik gebruik een andere image (jgeusebroek/spotweb, jij gebruikt erikdevries/spotweb).
- "SPOTWEB_CRON_RETRIEVE=*/30 * * * *"
- "SPOTWEB_CRON_CACHE_CHECK=10 */1 * * *"
De bovenste regelt de retrieve om het half uur.
Ik zie in jouw link dat CRON_INTERVAL wordt gebruikt (in de screenshot van de YAML):
- 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."
Portainer is een alternatief voor de Container Manager. Jij gebruikt nu de laatste. Ik zou ze niet door elkaar halen. Ik vind het iets handiger werken, maar Container Manager is ondertussen ook aardig bruikbaar.
-
Ik had het de afgelopen weken druk. Het heeft even geduurd voordat ik hier tijd voor had.
Ahh oke, ik begrijp het wat Portainer betreft en je hebt gelijk. Ik heb vanochtend een handleiding gevonden hoe je het via Portainer installeert en het je doet hetzelfde maar dan 3 muisklikken minder dan in Container Manager. Ik heb Portainer verwijderd en ga gebruik maken van Container Manager.
Bij de vorige situatie had ik het zo ingesteld dat er dagelijks van 07:00 uur tot en met 00:00 uur om de 60 minuten geretrieved word. Van 00:00 uur tot en met 07:00 uur wordt er niet geretrieved. Ik kom er niet aan uit hoe ik dat met de waarden en de link die je mij gaf voor elkaar krijg. Kun je mij hiermee op weg helpen?
Moet ik nog iets doen met de setting "Retrieve Increment"? In de oude situatie moest je als je de foutmelding krijgt over dat de geheugenlimiet bereikt was het geheugen in Web Station uitbreiden bij PHP settings. Of je moest een lager getal invullen. Nu staat het op 5000 in de nieuwe situatie.
-
Ik denk dat ik het voor elkaar heb. Ik moet als waarde 0 7-23 * * * opgeven bij SPOTWEB_CRON_RETRIEVE=. Ik weet morgenochtend of het werkt. Dan zal ik het laten weten.
Is het ook mogelijk om MyPHPadmin toe te voegen in Container Manager? Dan kan ik de database uitlezen. Dat wil ik doen zodat ik mijn watchlist kan overzetten. Dat moet mogelijk zijn.
-
Mmm. Phpmyadmin weet ik zo niet.
Ik heb (voor Kodi) een aparte Mariadb+phpmyadmin draaien. In de compose daarvoor staat dit. Mss als je dat toevoegt aan je Container voor Spotweb? Of andersom, je installeert Mariadb+PhpMyAdmin als losse container en laat Spotweb daarnaartoe connecten?
Het lijkt logisch om maar 1 Mariadb te hebben voor alle toepassingen. Maar in de praktijk blijkt dat een Mariadb per container handiger is.
Van: https://mariushosting.com/synology-install-mariadb-with-portainer/ (https://mariushosting.com/synology-install-mariadb-with-portainer/)
phpmyadmin:
image: phpmyadmin:latest
healthcheck:
test: curl -f http://localhost:80/ || exit 1
restart: on-failure:5
environment:
- PMA_PORT=3306 (ip adres dat je in de sectie voor Mariadb gebruikt hebt)
- PMA_HOST=internip-van-je-nas
volumes:
- /volume1/docker/mariadb/phpmyadmin/uploads.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini:rw
ports:
- 2500:80
container_name: phpMyAdmin
-
Het ging uiteindelijk om 13 spots. Ik heb ze handmatig overgezet. Was nog geen 10 minuten werk. Zo heb ik het opgelost. Ik ga phpmyadmin wel installeren. Misschien kom ik ooit in een situatie dat ik de database moet uitlezen.
Nog even over de SPOTWEB_CRON_RETRIEVE. Ik heb als waarde 0 7-23/1 * * * opgegeven. Dit lijkt niet te werken. Vannacht is er om 01:14 uur een spot opgehaald. Als ik nu kijk word er om de 12 minuten nieuwe spots binnen gehaald. Ik heb even in de instellingen van Spotweb gekeken om te controleren of er instellingen zijn die de SPOTWEB_CRON_RETRIEVE waarde overschrijven. Ik zie niks wat het blokkeert. Wat gaat er fout?
-
> Mmm. Phpmyadmin weet ik zo niet.
Geen probleem, ik heb deze ook draaien in een container.
-
Had je deze gebruikt?
https://cron.help/ (https://cron.help/)
Zoiets als:
*/60 7-23 * * *
-
> Mmm. Phpmyadmin weet ik zo niet.
Geen probleem, ik heb deze ook draaien in een container.
Hoe kom je dan met een losse phpmyadmin bij de Mariadb binnen de Spotweb container?
-
Ahhh OK, daar had ik even over gekeken in de postings. :silent: :silent:
Hier aparte MariaDB, ook in aparte container.
Ik vrees dat bij een geintegreerde Maria-db de config-file zo staat ingesteld dat ie enkel op 127.0.0.1:3306 gaat luisteren en dan is het onmogelijk om daar zomaar bij te komen inderdaad...
-
En de volgende stap is dan Sabnzbd en/of Transmission in een Docker :-)
-
Ja ik had de link gebruikt en heb gisteren de code gebruikt die je mij gaf. Het blijft om de 12 minuten updaten.
-
Dus
CRON_INTERVAL=*/60 7-23 * * *
en de Container opnieuw opgestart?
(als je de image van https://drfrankenstein.co.uk/spotweb-in-container-manager-on-synology-nas/ gebruikt)
-
Ja klopt. Ik heb het project opnieuw gestart na de aanpassing. Ik heb net even gekeken en het is voor het laatst om 00:45 uur geüpdatet. De aanpassing werkt niet.
-
Ik heb het inmiddels werkend met de juiste CRON waarde. Het probleem was dat ik aanhalingstekens gebruikte. Dat werd niet geaccepteerd. Wat mij opvalt is dat Spotweb aangeeft dat er 39 nieuwe spots zijn, terwijl ik er 8 tel. Hoe kan dit? Ik heb de filters gereset. Dat maakt geen verschil.