Ik begrijp nog steeds niet wat de invloed van de newshost is op het al dan niet schonen van de database als de schoning zegt: alles vanaf 1 november 2009 bewaren......
Met newsdemon op mijn secundaire spotweb server zo te zien geen problemen.
De DB was bij mij in ieder geval niet leeg, alle rijtjes stonden nog netjes in MariaDB.Bastien schreef op zaterdag 28 juni 2025 @ 12:22:
Hier (nog) niet gelukkig. Maar jullie DB is ook echt leeg? Normaal gesproken staat alles lokaal wat eenmaal is opgehaald en zou ongeacht de newsserver niet moeten verdwijnen lijkt mij. Ben onlangs gewisseld van server waar de headers vandaan komen en dat is ook gewoon goed gegaan, keurig verder vanaf de juiste timestamp.
Heb een week of twee geleden de laatste versie van github gehaald.
Maar Spotweb wilde ze met geen mogelijkheid tonen in ieder geval, heel vreemd.
Ik heb de spots table leeggemaakt en die loopt nu weer te vullen, en dat gaat gewoon goed. Ben benieuwd hoe 't eruit ziet morgenochtend....
Tadaaa
Vooralsnog geen klachten van Spotnet gebruikers i.c.m. Eweka. Lijkt dus een specifieke bug te zijn van Spotweb i.c.m. Eweka. Niet toevallig heeft Eweka de hoogste retentie van alle usp's. Misschien dat Spotweb tegen een grens aanloopt?
Is er iemand die dit gedrag kan reproduceren en een bug wil inschieten voor Spotweb op Github?
Is er iemand die dit gedrag kan reproduceren en een bug wil inschieten voor Spotweb op Github?
Iemand - niet ik - heeft dat al gedaan:Glamdring schreef op zondag 29 juni 2025 @ 10:15:
Is er iemand die dit gedrag kan reproduceren en een bug wil inschieten voor Spotweb op Github?
https://github.com/spotweb/spotweb/issues/897
...al gaat het in de discussie vooral om het oplossen van het probleem door de database opnieuw op te bouwen, niet om de oorzaak te vinden.
Hier gisteravond een snapshot van de database van twee dagen geleden teruggezet en wat mysql repair gedaan - sindsdien lijkt alles nog goed te werken.
Als je goed leest dan zie je dat ze in het onderstaande comment Eweka getest hebben en bij hun geen problemen zagen?vanaalten schreef op zondag 29 juni 2025 @ 10:29:
[...]
Iemand - niet ik - heeft dat al gedaan:
https://github.com/spotweb/spotweb/issues/897
...al gaat het in de discussie vooral om het oplossen van het probleem door de database opnieuw op te bouwen, niet om de oorzaak te vinden.
Hier gisteravond een snapshot van de database van twee dagen geleden teruggezet en wat mysql repair gedaan - sindsdien lijkt alles nog goed te werken.
Zie: https://github.com/spotwe...7#issuecomment-3015966899
In dit geval lijkt het me ook vrijwel ondoenlijk de exacte oorzaak te achterhalen, ook gelet op het feit dat gebruikers van andere usenet providers geen problemen lijken te ondervinden en dit zich specifiek lijkt te richten tot een klein hoekje van Usenet. (wellicht een omgevallen server o.i.d)
En daarbij, als je de via SSH dit commando uitvoert en de database opnieuw laat vullen met retrieve is er niks meer aan de hand.
code:
1
| php upgrade-db.php --reset-db |
Ik vraag me af welke sortering door gebruikers met het 'gat' probleem werd gebruikt.
De spots zitten namelijk wél in de database.
De spots zitten namelijk wél in de database.
Mijn MariaDB database was ook echt leeg gemaakt. Had een melding van de SSD smart dat midden in de nacht de temperatuur 55 graden had bereikt, dat gebeurt echt alleen als Mariadb super druk is met maintenance zoals gister ook bij de restore. Ik heb Spotweb nog niet geherstart, eerst eens eea verder uitzoeken.
Ik heb (tot gisteren) vanuit Eweka 2.390.677 spots in de tabel staan, Eweka geeft 2.700.000 artikelheaders in een andere nieuwslezer - verschil zal vooral commentaar of troep zijn. Er staan trouwens ook 21M commentaren in de commentsxover.
Net een nieuwe versie van de container opgehaald en opgestart. Voorlopig LIJKT het dat er niets verwijderd wordt en de nieuwe spots weer binnenkomen. Fingers crossed....
Ik heb (tot gisteren) vanuit Eweka 2.390.677 spots in de tabel staan, Eweka geeft 2.700.000 artikelheaders in een andere nieuwslezer - verschil zal vooral commentaar of troep zijn. Er staan trouwens ook 21M commentaren in de commentsxover.
Net een nieuwe versie van de container opgehaald en opgestart. Voorlopig LIJKT het dat er niets verwijderd wordt en de nieuwe spots weer binnenkomen. Fingers crossed....
Nee, hier waren ze fysiek weg: Backup Spotweb 27 mei was 2.3GB, backup 28 mei 993MB.mesa57 schreef op zondag 29 juni 2025 @ 11:52:
Ik vraag me af welke sortering door gebruikers met het 'gat' probleem werd gebruikt.
De spots zitten namelijk wél in de database.
Hier nog geen problemen met eweka en spotweb, wel voor de zekerheid maar even een snapshot gemaakt.
Ik heb hetzelfde probleem. Ik heb een DB reset gedaan en ben nu weer een retreive aan het doen.
Update: Na reset/retreive heb ik alle data weer.
Update: Na reset/retreive heb ik alle data weer.
[ Voor 21% gewijzigd door DarkAllMan op 30-06-2025 12:31 ]
Ik draai Spotweb in docker (jgeusebroek/spotweb). Enig idee hoe ik daar de db reset?Levaro schreef op zondag 29 juni 2025 @ 10:42:
[...]
Als je goed leest dan zie je dat ze in het onderstaande comment Eweka getest hebben en bij hun geen problemen zagen?
Zie: https://github.com/spotwe...7#issuecomment-3015966899
In dit geval lijkt het me ook vrijwel ondoenlijk de exacte oorzaak te achterhalen, ook gelet op het feit dat gebruikers van andere usenet providers geen problemen lijken te ondervinden en dit zich specifiek lijkt te richten tot een klein hoekje van Usenet. (wellicht een omgevallen server o.i.d)
En daarbij, als je de via SSH dit commando uitvoert en de database opnieuw laat vullen met retrieve is er niks meer aan de hand.
code:
1 php upgrade-db.php --reset-db
Commando's uiteraard geprobeerd via Exec maar:
spotweb: root@89f6013cdb69:/# php upgrade-db.php --reset-db
Could not open input file: upgrade-db.php
database: root@2241f04daca2:/# php upgrade-db.php --reset-db
bash: php: command not found
EDIT: Ik heb de db maar verwijderd en ben opnieuw begonnen.
@PerlinNoise
Waarschijnlijk /usr/bin/php en een volledig pad naar je spotweb install.
Ik heb retrieve een paar dagen stil gezet en kon het vandaag probleemloos hervatten.
Waarschijnlijk /usr/bin/php en een volledig pad naar je spotweb install.
Ik heb retrieve een paar dagen stil gezet en kon het vandaag probleemloos hervatten.
docker exec spotweb /usr/bin/php /var/www/spotweb/retrieve.php
Last retrieve at Fri 27 Jun 2025 11:15:02 PM CEST
Retrieving new Spots from server news.eweka.nl...
Appr. Message count: 4310497
First message number: 2
Last message number: 4310499
Current article number: 4309488
Retrieving 4309488 till 4310500 (parsed: 1011, in DB: 1, signed: 964, invalid: 1, rtntn.skip: 0, mod: 46, full: 0, total: 1012) in 2.55 seconds
Processed a total of 1012 spots
Finished retrieving spots.
Calculating how many spots are new, done.
Last retrieve at Mon 30 Jun 2025 10:07:58 PM CEST
Retrieving new comments from server news.eweka.nl...
Appr. Message count: 21284444
First message number: 2
Last message number: 21284446
Current article number: 21279381
Retrieving 21279381 till 21284382, found 5001 comments in 1.8 seconds
Retrieving 21284382 till 21284447, found 65 comments in 0.28 seconds
Processed a total of 5066 comments
Finished retrieving comments.
Last retrieve at Mon 30 Jun 2025 10:08:13 PM CEST
Retrieving new reports from server news.eweka.nl...
Appr. Message count: 347589
First message number: 2
Last message number: 347591
Current article number: 347554
Retrieving 347554 till 347592, found 38 reports in 0.96 seconds
Processed a total of 38 reports
Finished retrieving reports.
Blacklist not modified, no need to update
Whitelist not modified, no need to update
Starting to create statistics
Finished creating statistics
In Exec:PerlinNoise schreef op maandag 30 juni 2025 @ 16:18:
[...]
Ik draai Spotweb in docker (jgeusebroek/spotweb). Enig idee hoe ik daar de db reset?
Commando's uiteraard geprobeerd via Exec maar:
spotweb: root@89f6013cdb69:/# php upgrade-db.php --reset-db
Could not open input file: upgrade-db.php
database: root@2241f04daca2:/# php upgrade-db.php --reset-db
bash: php: command not found
code:
1
| /var/www/spotweb/bin/upgrade-db.php --reset-db |
Voor degene die de docker image van Erik de Vries draaien in Container Manager op een Synology NAS, met de volgende commands kun je een database reset uitvoeren:
Log via SSH in en ga naar de container. In mijn geval heet deze 'spotweb':
Voer het volgende commando uit voor het resetten van de database:
Vervolgens kun je via de admin user zelf weer instellen tot hoever terug je spots wilt ophalen.
Log via SSH in en ga naar de container. In mijn geval heet deze 'spotweb':
code:
1
| sudo docker exec -it spotweb bash |
Voer het volgende commando uit voor het resetten van de database:
code:
1
| /usr/bin/php84 /app/bin/upgrade-db.php --reset-db |
Vervolgens kun je via de admin user zelf weer instellen tot hoever terug je spots wilt ophalen.
Gisteren heb ik mijn QNAP NAS opnieuw moeten installeren vanwege omstandigheden. Het installeren van Spotweb ging gelukkig vrij eenvoudig. Alleen het ophalen van de spots duurt ontzettend lang.
Op dit moment moet ik telkens handmatig op de "Retrieve"-knop klikken om data binnen te halen. Is het niet mogelijk om alles in één keer op te halen, of het proces te automatiseren zodat ik niet steeds handmatig hoef te klikken?
Alvast bedankt voor jullie hulp!
Op dit moment moet ik telkens handmatig op de "Retrieve"-knop klikken om data binnen te halen. Is het niet mogelijk om alles in één keer op te halen, of het proces te automatiseren zodat ik niet steeds handmatig hoef te klikken?
Alvast bedankt voor jullie hulp!
Hoe had je dit voorheen dan geregeld?Deepvault schreef op donderdag 31 juli 2025 @ 11:08:
Gisteren heb ik mijn QNAP NAS opnieuw moeten installeren vanwege omstandigheden. Het installeren van Spotweb ging gelukkig vrij eenvoudig. Alleen het ophalen van de spots duurt ontzettend lang.
Op dit moment moet ik telkens handmatig op de "Retrieve"-knop klikken om data binnen te halen. Is het niet mogelijk om alles in één keer op te halen, of het proces te automatiseren zodat ik niet steeds handmatig hoef te klikken?
Alvast bedankt voor jullie hulp!
Zelf geen NAS, maar op m’n linux server net Spotweb heb ik een cron job ingesteld die elk uur een retrieve doet. Zo iets zal wellicht ook op je NAS kunnen.
Klopt, op een syno heb je een taskscheduler, volgens mij zit die ook op een QNAP.vanaalten schreef op donderdag 31 juli 2025 @ 11:35:
[...]
Hoe had je dit voorheen dan geregeld?
Zelf geen NAS, maar op m’n linux server net Spotweb heb ik een cron job ingesteld die elk uur een retrieve doet. Zo iets zal wellicht ook op je NAS kunnen.
Laat een user defined script lopen om de 6 uur ofzoiets...
code:
1
| /usr/local/bin/php56 /volume1/web/spotweb/retrieve.php --force |
De locatie van je spotweb en php zal ongetwijfeld anders zijn, maar dat moet niet zo moeilijk zijn om te achterhalen.
I don't need to "Get a Life." I'm a Gamer. I 've lots of Lives !
De --force zou ik weglaten, omdat als de retrieve nog loopt, deze daarmee afgebroken wordt. Door geen --force te gebruiken loopt het vorige proces gewoon door en wordt ie niet opnieuw gestart.Caveman schreef op donderdag 31 juli 2025 @ 13:14:
[...]
Klopt, op een syno heb je een taskscheduler, volgens mij zit die ook op een QNAP.
Laat een user defined script lopen om de 6 uur ofzoiets...code:
1/usr/local/bin/php56 /volume1/web/spotweb/retrieve.php --force
De locatie van je spotweb en php zal ongetwijfeld anders zijn, maar dat moet niet zo moeilijk zijn om te achterhalen.
"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron
In mijn geval a 2 uur draait deze taak op de Synology:Caveman schreef op donderdag 31 juli 2025 @ 13:14:
[...]
Klopt, op een syno heb je een taskscheduler, volgens mij zit die ook op een QNAP.
Laat een user defined script lopen om de 6 uur ofzoiets...code:
1/usr/local/bin/php56 /volume1/web/spotweb/retrieve.php --force
De locatie van je spotweb en php zal ongetwijfeld anders zijn, maar dat moet niet zo moeilijk zijn om te achterhalen.
/usr/bin/php /volume1/web/spotweb/retrieve.php
Voor Qnap zal er wel iets vergelijkbaars zijn, en anders:
https://www.qnap.com/es-e...crontab-to-schedule-a-job
Het probleem is gefixt door alleen "Retrieve reports" aan te vinken. Nu haalt hij alles netjes binnen.vanaalten schreef op donderdag 31 juli 2025 @ 11:35:
[...]
Hoe had je dit voorheen dan geregeld?
Zelf geen NAS, maar op m’n linux server net Spotweb heb ik een cron job ingesteld die elk uur een retrieve doet. Zo iets zal wellicht ook op je NAS kunnen.
Iemand die Spotweb als newznab gebruikt in Sonarr/Radarr?
Ik heb dit ingesteld en volgens Sonarr/Radarr is het in orde (groen vinkje bij testen).
Maar ze vinden helemaal niks. Enig idee?
Ik heb dit ingesteld en volgens Sonarr/Radarr is het in orde (groen vinkje bij testen).
Maar ze vinden helemaal niks. Enig idee?
Ja, locale spotweb werkt bij mij. Heb je de juiste categorieën aangevinkt?
Bij wordt wel spotweb amper gebruikt al soure voor nzb's.Eigenlijk alleen maar voor NL content. Al het andere komt van andere indexers.
Bij wordt wel spotweb amper gebruikt al soure voor nzb's.Eigenlijk alleen maar voor NL content. Al het andere komt van andere indexers.
ik kreeg ze ook niet voor de dag meer... nu db aan het hervullen..mesa57 schreef op zondag 29 juni 2025 @ 11:52:
Ik vraag me af welke sortering door gebruikers met het 'gat' probleem werd gebruikt.
De spots zitten namelijk wél in de database.
404 Signature not found
Ik gebruik spotweb al enige jaren maar laatst is het uiterlijk veranderd. Mijn alsnog noob vraagje is: wat is de betekenis van de verschillende kleuren op verschillende topic rijen?
De kleuren weerspiegelen de hoofdcategorieën
Ja ik heb het ook juist nodig voor NL. Ik zal eens kijken maar ik heb gewoon de main categorie TV aangevinkt.pdukers schreef op woensdag 20 augustus 2025 @ 13:38:
Ja, locale spotweb werkt bij mij. Heb je de juiste categorieën aangevinkt?
Bij wordt wel spotweb amper gebruikt al soure voor nzb's.Eigenlijk alleen maar voor NL content. Al het andere komt van andere indexers.
beste mensen ik heb sindskort spotweb draaien op mijn debian based servertje en hij draait prima.
php 8.4 en op nginx gebaseerd geinstalleerd via cli.
enige wat mij niet lukt is de api call laten werken voor prowlarr.
ik heb een nieuwe username aangemaakt genaamd api zodat hij de admin niet gebruikt en ik gebruik die user.
echter wat ik zie bij user management dat de api request binnenkomt op mijn admin username (zie ik aan het ip van prowlarr). Dus ergens gaat er iets niet helemaal goed.
heb een hele tijd lopen hannissen met chatgpt en eventuele instellingen maar kom er niet uit.
weet iemand hoe ik dit kan oplossen en wat ik moet checken?
lijkt erop als ik een api call via cli doe dat hij html uitspuugt ipv xml....
php 8.4 en op nginx gebaseerd geinstalleerd via cli.
enige wat mij niet lukt is de api call laten werken voor prowlarr.
ik heb een nieuwe username aangemaakt genaamd api zodat hij de admin niet gebruikt en ik gebruik die user.
echter wat ik zie bij user management dat de api request binnenkomt op mijn admin username (zie ik aan het ip van prowlarr). Dus ergens gaat er iets niet helemaal goed.
heb een hele tijd lopen hannissen met chatgpt en eventuele instellingen maar kom er niet uit.
weet iemand hoe ik dit kan oplossen en wat ik moet checken?
lijkt erop als ik een api call via cli doe dat hij html uitspuugt ipv xml....
[ Voor 5% gewijzigd door jozy op 12-09-2025 12:48 . Reden: toevoeging html vs xml output ]
ik kan geen reactie meer geven op een spotnet poster dus ik bedoel een bedankje of zo
Ik heb je posts en reacties verhuisd van [Nieuwsgroepen] Wat werkt tegenwoordig goed? naar dit topic, hier past het beter.
Ik heb je posts en reacties verhuisd van [Nieuwsgroepen] Wat werkt tegenwoordig goed? naar dit topic, hier past het beter.
[ Voor 48% gewijzigd door rens-br op 16-09-2025 08:25 ]
@m.caarels niet toevallig je upload uitstaan van je usenet provider? Als die uit staat is reageren niet mogelijk.
[ Voor 35% gewijzigd door RobbyTown op 14-09-2025 12:06 ]
Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe
Het volgende kwam een tijdje geleden langs:m.caarels schreef op zondag 14 september 2025 @ 11:35:
ik kan geen reactie meer geven op een spotnet poster dus ik bedoel een bedankje of zo
Helaas geeft spotnet laatste tijd veel problemen..
zoals met posten en reacties schrijven..
dit komt door 2 updates in windows
Hopelijk word dit snel gefixt..
heb je problemen met spotnet?
doe dan het volgende om het te verhelpen
Ga naar windows update en dan naar geschiedenis van updates.
Verwijder Update KB5064081 en KB5064401
ga naar windows update geavanceerde opties
en zet het ontvangen van nieuwe updates uit.
reboot je pc
en spotnet zal weer werken
Deze problemen worden veroorzaakt door recente Windows 11-updates (KB5064081 en KB5065426).m.caarels schreef op zondag 14 september 2025 @ 11:35:
ik kan geen reactie meer geven op een spotnet poster dus ik bedoel een bedankje of zo
Er is inmiddels een update beschikbaar. Deze wordt automatisch geïnstalleerd, maar je kunt hem ook handmatig downloaden via het spotnet forum.
Meer mensen die problemen hebben met spotweb met de reacties?
Comments ophalen bleef vorige week hangen
Resetdb gedaan
Nu al 3 dagen bezig met comments ophalen
Zie ook geen reacties meer nieuwe posts op op nzbserver dot com
Comments ophalen bleef vorige week hangen
Resetdb gedaan
Nu al 3 dagen bezig met comments ophalen
Zie ook geen reacties meer nieuwe posts op op nzbserver dot com
Hier op de lokale spotweb is er geen probleem (Eweka).Guff_ schreef op donderdag 18 september 2025 @ 18:07:
Meer mensen die problemen hebben met spotweb met de reacties?
Comments ophalen bleef vorige week hangen
Resetdb gedaan
Nu al 3 dagen bezig met comments ophalen
Zie ook geen reacties meer nieuwe posts op op nzbserver dot com
- FJR1300
- Registratie: Juli 2001
- Laatst online: 03-11 11:29
145 enthousiaste paardjes...
Matched: spotweb
Ja, daar had ik dus ook last van... nieuwe posts kwamen wel binnen maar de comments bleven weg.Guff_ schreef op donderdag 18 september 2025 @ 18:07:
Meer mensen die problemen hebben met spotweb met de reacties?
Comments ophalen bleef vorige week hangen
Resetdb gedaan
Nu al 3 dagen bezig met comments ophalen
In de logfile van het 'retriever.php' script kwam ik regelmatig de volgende melding tegen:
Met diverse varianten van de getallen voor de 'Data too long for column' error melding en op verschillende 'rows'.Fatal error occured during retrieve:
22001: 1406: Data too long for column 'usersignature' at row 75
De errormelding geeft aan dat het 'retriever.php' script meer data in het veld wil stoppen dan dat het betreffende veld groot is.
De oplossing is simpel, het veld groter maken
'usersignatur' is een veld in de 'commentsfull' tabel en is bij mij een varchar(255). Ik heb het veld opgerekt naar een varchar(512) op onderstaande manier:Disclaimer:
Dit is hoe IK het heb opgelost op mijn systeem. Jou systeem ZAL anders zijn en mijn oplossing KAN bij jou niet werken! Maak een backup (of een snapshot) voordat je begint. Ik ben niet verantwoordelijk als jou system kapot gaat. Garantie tot het einde van deze zin
Ik voer de commando's uit als root op mijn linux server.
code:
1
2
3
4
| mysql
use spotweb;
alter table commentsfull modify usersignature varchar(512);
exit |
Mijn database is bijna 6GB op schijf dus dat duurde even... het resultaat was:
Kortom, een halfuurtje schrapen op de harddisk om het veld op te rekken.Query OK, 1139881 rows affected (30 min 11.70 sec)
Records: 1139881 Duplicates: 0 Warnings: 0
Vanaf dat moment heeft het 'retriever.php' script alle ontbrekende records opgehaald en daarmee is mijn locale spotweb weer in orde.
De grootste userkey die bij alle clients in gebruik is, is 172 chars (base64) en dat zijn spotweb userkeys.
De post die de error veroorzaakt is dus een 'spoof' die in principe niet geldig is.
Het is beter om de code aan te passen zodat comments met een userkey > 255 chars worden overgeslagen.
Ik zou graag willen weten wat de message-id van die comment is.
Dus als iemand een sql dump van comments-full ter beschikking zou kunnen stellen, kan dat nader onderzocht worden.
De post die de error veroorzaakt is dus een 'spoof' die in principe niet geldig is.
Het is beter om de code aan te passen zodat comments met een userkey > 255 chars worden overgeslagen.
Ik zou graag willen weten wat de message-id van die comment is.
Dus als iemand een sql dump van comments-full ter beschikking zou kunnen stellen, kan dat nader onderzocht worden.
[ Voor 23% gewijzigd door mesa57 op 28-09-2025 14:04 ]
- FJR1300
- Registratie: Juli 2001
- Laatst online: 03-11 11:29
145 enthousiaste paardjes...
Matched: spotweb
Bedoel je een "mysqldump spotweb commentsfull > table_commentsfull.sql" ? Die heb ik voor je maar dat is (in gezipte vorm) al bijna 300MB...mesa57 schreef op zondag 28 september 2025 @ 14:01:
Dus als iemand een sql dump van comments-full ter beschikking zou kunnen stellen, kan dat nader onderzocht worden.
Hoe gaan we die uitwisselen?
Jij hebt toch al die comments nu binnengehaald?FJR1300 schreef op zondag 28 september 2025 @ 16:08:
[...]
Bedoel je een "mysqldump spotweb commentsfull > table_commentsfull.sql" ? Die heb ik voor je maar dat is (in gezipte vorm) al bijna 300MB...
Hoe gaan we die uitwisselen?
Ik denk dat je met een select usersignature from table_commentsfull where len(usersignature) > 255 (of zoiets, ik ben niet zo thuis in SQL) enz enz.. je zo dat record te pakken hebt, maar wie past de code aan?
Hiero? https://github.com/jgeusebroek/docker-spotweb/issues Neh, dat is niet de juiste repository...
Deze wel, denk ik: https://github.com/spotweb/spotweb/blob/develop/retrieve.php
[ Voor 13% gewijzigd door NaN op 28-09-2025 17:15 ]
Oke, ik heb het volgende gedaan:NaN schreef op zondag 28 september 2025 @ 17:03:
[...]
Jij hebt toch al die comments nu binnengehaald?
Ik denk dat je met een select usersignature from table_commentsfull where len(usersignature) > 255 (of zoiets, ik ben niet zo thuis in SQL) enz enz.. je zo dat record te pakken hebt, maar wie past de code aan?
code:
1
| mysql> select usersignature from commentsfull where char_length(usersignature) > 175; |
En dat levert 3 regels op. Als ik 174 als lengte neem krijg ik 2231 signatures.
Nu weet ik niet in hoeverre deze signatures direct herleidbaar zijn naar een persoon dus ik zal ze hier niet inplakken.... maar op verzoek kan ik ze wel leveren.
Heb nog even verder gekeken dan mijn neus lang is... mesa57 vroeg om de message id's. Ik denk dat ik ze gevonden heb:
Ik heb de usersignatures ook nog even door een base64 decoder gehaald maar dat levert alleen maar onleesbare rommel op. Trouwens ook met korte usersignatures.
code:
1
2
3
4
5
6
7
8
9
10
| mysql> select messageid from commentsfull where char_length(usersignature) > 175; +---------------------------------------------------------+ | messageid | +---------------------------------------------------------+ | dGvebe7gESsvYq9aAbsSu.0.vtypJ1Qd2vYCyWsaA.oqLb@spot.net | | znWsZKqSpMUUymsaAZ0Eh.0.cnd637NmUrQGCqsaA.8Acq@spot.net | | znWsZKqSpMUUymsaAZ0Eh.0.tvoeqHmic0sEjasaA.EujC@spot.net | +---------------------------------------------------------+ 3 rows in set (0.71 sec) |
Ik heb de usersignatures ook nog even door een base64 decoder gehaald maar dat levert alleen maar onleesbare rommel op. Trouwens ook met korte usersignatures.
Ok, het gaat hier om een modulus van 2048 bits.
Beetje overdreven voor comments.
Wel een rare client : X-Newsreader: Spotnet 2.1.0.0
Beetje overdreven voor comments.
Wel een rare client : X-Newsreader: Spotnet 2.1.0.0
Voor diegene die het willen weten: op de develop branch is een update geplaatst om bovengenoemd probleem op te lossen.
Was bezig om een bug te melden exact hiervoor. Gebruikte de laatste release versie en kreeg deze fout bij het ophalen van de comments. In github bij de issues was niets hierover terug te vindenmesa57 schreef op woensdag 8 oktober 2025 @ 21:01:
Voor diegene die het willen weten: op de develop branch is een update geplaatst om bovengenoemd probleem op te lossen.
code:
1
2
3
4
5
6
7
| Retrieving 21410002 till 21411002, found 1000 comments in 29.17 seconds
SpotWeb v0.68.38.34 on PHP v8.4.13 crashed
Fatal error occured during retrieve:
22001: 1406: Data too long for column 'usersignature' at row 64 |
Welgeteld 1 hit in google
Zag dit commentaar en heb de develop versie zojuist gedownload en over de release versie gekopieerd.
Heb eerst de upgrade-db moeten draaien en daarna loopt het weer door als een zonnetje. Dank!
Absolute n00body
Overigens loopt retrieve hier alleen op stuk als fullcomments retrieve aanstaat.
Voor de meesten is dat totaal zinloos.
De database wordt propvol zo met data die nooit gebruikt wordt.
Als je een spot opent, worden de fullcomments van die spot vanzelf gevuld. Werkt als een soort cache zeg maar. En wie gaat nou de cache van te voren vullen ?
Deze optie zou er eigenlijk uit gesloopt moeten worden.
Voor de meesten is dat totaal zinloos.
De database wordt propvol zo met data die nooit gebruikt wordt.
Als je een spot opent, worden de fullcomments van die spot vanzelf gevuld. Werkt als een soort cache zeg maar. En wie gaat nou de cache van te voren vullen ?
Deze optie zou er eigenlijk uit gesloopt moeten worden.
Ah, duidelijk. Ik heb zelf lokaal wijzigingen aangebracht aan de code en was al bang om naar de verschillen te moeten zoeken. Maar het probleem kan nog steeds optreden als je een spot opent met een problematische comment...mesa57 schreef op zondag 12 oktober 2025 @ 12:14:
Overigens loopt retrieve hier alleen op stuk als fullcomments retrieve aanstaat.
Voor de meesten is dat totaal zinloos.
Dat laatste: het effect was dat spotweb gewoon doorging, alleen geen comments bij die post toonde.
Het ging trouwens over 2 spots.
En ook dat probleem is opgelost in de de develop branch release.
Het ging trouwens over 2 spots.
En ook dat probleem is opgelost in de de develop branch release.
Spotweb (develop branch) is voorzien van een Modern Black/White theme.
Ik zou liever zien dat het zoeken wat slimmer wordt (gewoon en en en ipv plusjes) dan nieuwe "looks".mesa57 schreef op zondag 23 november 2025 @ 11:31:
Spotweb (develop branch) is voorzien van een Modern Black/White theme.
Is er een (configuratie) optie om "standaard" de table-weergave te gebruiken ipv de cards weergave? Ik draai lokaal zonder login en misschien belangrijker: zonder cookies en vind de cards weergave ehmm, niet praktisch.
Waar kan ik dit instellen?
Waar kan ik dit instellen?
Bedoel je de template?DjoeC schreef op dinsdag 2 december 2025 @ 12:49:
Is er een (configuratie) optie om "standaard" de table-weergave te gebruiken ipv de cards weergave? Ik draai lokaal zonder login en misschien belangrijker: zonder cookies en vind de cards weergave ehmm, niet praktisch.
Waar kan ik dit instellen?
Die kan je instellen bij Config --> change preferences --> General.
Daar zijn vervolgens drie opties:
Template for non-mobile devices, mobiles, tablets
Weirdo was volgens mij de standaard, recent is de optie modern erbij gekomen.
Deze ruimte is bewust leeg gelaten
Dat lijkt te werken..... Tnx.alesandro_46 schreef op dinsdag 2 december 2025 @ 13:05:
[...]
Bedoel je de template?
Die kan je instellen bij Config --> change preferences --> General.
Daar zijn vervolgens drie opties:
Template for non-mobile devices, mobiles, tablets
Weirdo was volgens mij de standaard, recent is de optie modern erbij gekomen.
Ook voor de tablet op we1rdo gezet - super oplossing! Al die plaatjes nemen veel te veel ruimte in beslag.
[ Voor 10% gewijzigd door DjoeC op 02-12-2025 14:27 ]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
| #!/usr/bin/env bash # Spotweb Proxmox LXC Installer - All-in-One Version # Copyright (c) 2025 VenimK # License: MIT # Creates LXC container and installs Spotweb automatically source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' # No Color function header_info { clear cat <<"EOF" _____ __ __ / ___/____ ____ / /__ _____ / /_ \__ \/ __ \/ __ \/ __/ | /| / / _ \/ __ \ ___/ / /_/ / /_/ / /_ | |/ |/ / __/ /_/ / /____/ .___/\____/\__/ |__/|__/\___/_.___/ /_/ Automated Debian LXC + Spotweb Installer EOF echo "" } header_info # Start timer START_TIME=$(date +%s) # Configuration CTID="" HOSTNAME="spotweb" DISK_SIZE="20" CORES="2" MEMORY="2048" BRIDGE="vmbr0" OSTYPE="debian" OSVERSION="12" WEBSERVER="apache" # or nginx # Get next available CTID NEXTID=$(pvesh get /cluster/nextid) # Detect available storage for containers echo -e "${BLUE}Detecting available storage...${NC}" # Prefer storages that explicitly support rootdir (containers) mapfile -t STORAGE_OPTIONS < <(pvesm status -content rootdir 2>/dev/null | awk 'NR>1 {print $1}') # Fallback: any storage entry if none reported with rootdir if [ ${#STORAGE_OPTIONS[@]} -eq 0 ]; then mapfile -t STORAGE_OPTIONS < <(pvesm status 2>/dev/null | awk 'NR>1 {print $1}') fi if [ ${#STORAGE_OPTIONS[@]} -eq 0 ]; then echo -e "${RED}Error: No storage found on this Proxmox host${NC}" echo -e "${YELLOW}pvesm status output:${NC}" pvesm status || true exit 1 fi echo -e "${CYAN}Available storage options:${NC}" idx=1 for store in "${STORAGE_OPTIONS[@]}"; do echo -e " ${idx}) ${store}" idx=$((idx+1)) done echo "" read -p "Select storage [1-${#STORAGE_OPTIONS[@]}] (default 1): " STORAGE_CHOICE if [ -z "${STORAGE_CHOICE}" ]; then STORAGE_CHOICE=1 fi if ! [[ "${STORAGE_CHOICE}" =~ ^[0-9]+$ ]] || [ "${STORAGE_CHOICE}" -lt 1 ] || [ "${STORAGE_CHOICE}" -gt ${#STORAGE_OPTIONS[@]} ]; then echo -e "${RED}Invalid selection. Aborting.${NC}" exit 1 fi STORAGE=${STORAGE_OPTIONS[$((STORAGE_CHOICE-1))]} echo -e "${GREEN}✓ Using storage: ${STORAGE}${NC}" echo -e "${CYAN}Spotweb LXC Container Setup${NC}" echo "" echo -e "${YELLOW}This will create a Debian 12 LXC container and install Spotweb${NC}" echo "" echo -e "${GREEN}Default settings:${NC}" echo -e " Container ID: ${NEXTID}" echo -e " Hostname: ${HOSTNAME}" echo -e " CPU Cores: ${CORES}" echo -e " RAM: ${MEMORY}MB" echo -e " Disk: ${DISK_SIZE}GB" echo -e " Storage: ${STORAGE}" echo -e " OS: Debian ${OSVERSION}" echo -e " Web Server: ${WEBSERVER}" echo "" read -p "Container hostname [${HOSTNAME}]: " INPUT_HOST if [[ -n "${INPUT_HOST}" ]]; then HOSTNAME="${INPUT_HOST}" fi read -p "Disk size in GB [${DISK_SIZE}]: " INPUT_DISK if [[ -n "${INPUT_DISK}" && "${INPUT_DISK}" =~ ^[0-9]+$ && "${INPUT_DISK}" -gt 0 ]]; then DISK_SIZE="${INPUT_DISK}" fi read -p "CPU cores [${CORES}]: " INPUT_CORES if [[ -n "${INPUT_CORES}" && "${INPUT_CORES}" =~ ^[0-9]+$ && "${INPUT_CORES}" -gt 0 ]]; then CORES="${INPUT_CORES}" fi read -p "RAM in MB [${MEMORY}]: " INPUT_MEM if [[ -n "${INPUT_MEM}" && "${INPUT_MEM}" =~ ^[0-9]+$ && "${INPUT_MEM}" -gt 0 ]]; then MEMORY="${INPUT_MEM}" fi read -p "Web server (apache/nginx) [${WEBSERVER}]: " INPUT_WEB if [[ -n "${INPUT_WEB}" && ("${INPUT_WEB}" == "apache" || "${INPUT_WEB}" == "nginx") ]]; then WEBSERVER="${INPUT_WEB}" fi echo "" echo -e "${CYAN}Final settings:${NC}" echo -e " Container ID: ${NEXTID}" echo -e " Hostname: ${HOSTNAME}" echo -e " CPU Cores: ${CORES}" echo -e " RAM: ${MEMORY}MB" echo -e " Disk: ${DISK_SIZE}GB" echo -e " Storage: ${STORAGE}" echo -e " OS: Debian ${OSVERSION}" echo -e " Web Server: ${WEBSERVER}" echo "" read -p "Press Enter to create the container and install Spotweb, or Ctrl+C to cancel: " CTID=$NEXTID echo "" echo -e "${BLUE}Creating LXC container...${NC}" # Find the latest Debian 12 template echo -e "${YELLOW}Finding Debian ${OSVERSION} template...${NC}" pveam update # Get the latest Debian 12 template name TEMPLATE=$(pveam available | grep "debian-${OSVERSION}" | grep "standard" | tail -n1 | awk '{print $2}') if [ -z "$TEMPLATE" ]; then echo -e "${RED}Error: Could not find Debian ${OSVERSION} template${NC}" echo -e "${YELLOW}Available templates:${NC}" pveam available | grep debian exit 1 fi echo -e "${GREEN}✓ Found template: ${TEMPLATE}${NC}" TEMPLATE_PATH="/var/lib/vz/template/cache/${TEMPLATE}" if [ ! -f "$TEMPLATE_PATH" ]; then echo -e "${YELLOW}Downloading template...${NC}" pveam download local "$TEMPLATE" fi # Create container (unprivileged for better security) pct create $CTID $TEMPLATE_PATH \ --hostname $HOSTNAME \ --cores $CORES \ --memory $MEMORY \ --rootfs ${STORAGE}:${DISK_SIZE} \ --net0 name=eth0,bridge=${BRIDGE},ip=dhcp \ --unprivileged 1 \ --features nesting=1 \ --onboot 1 \ --start 1 echo -e "${GREEN}✓ Container created (ID: $CTID)${NC}" # Wait for container to start echo -e "${BLUE}Waiting for container to start...${NC}" sleep 5 # Wait for network echo -e "${BLUE}Waiting for network...${NC}" for i in {1..30}; do if pct exec $CTID -- ping -c 1 8.8.8.8 >/dev/null 2>&1; then echo -e "${GREEN}✓ Network is ready${NC}" break fi sleep 2 done # Get container IP IP=$(pct exec $CTID -- hostname -I | awk '{print $1}') echo -e "${GREEN}✓ Container IP: $IP${NC}" echo "" # Run installation inside container echo -e "${BLUE}╔════════════════════════════════════════════════════════════╗${NC}" echo -e "${BLUE}║ Starting Spotweb installation inside container... ║${NC}" echo -e "${BLUE}║ This will take 5-15 minutes ║${NC}" echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}" echo "" # Create installation script inside container pct exec $CTID -- bash <<'INSTALLER_SCRIPT' #!/bin/bash set -e # Error trap to show what failed trap 'echo -e "\n\033[0;31m✗ Installation failed at line $LINENO\033[0m\n"; exit 1' ERR # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' print_success() { echo -e "${GREEN}✓ $1${NC}"; } print_info() { echo -e "${BLUE}ℹ $1${NC}"; } print_warning() { echo -e "${YELLOW}⚠ $1${NC}"; } SPOTWEB_DIR="/var/www/html/spotweb" DB_NAME="spotweb" DB_USER="spotweb" generate_password() { tr -dc 'A-Za-z0-9!@#$%^&*()_+=' < /dev/urandom 2>/dev/null | head -c 20 } DB_PASS=$(generate_password) # Update system print_info "Updating system packages..." apt-get update -qq apt-get upgrade -y -qq print_success "System updated" # Fix locale warnings print_info "Configuring locales..." apt-get install -y locales sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen locale-gen en_US.UTF-8 > /dev/null 2>&1 update-locale LANG=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 print_success "Locales configured" # Install basic tools print_info "Installing basic tools (curl, wget, git, unzip)..." apt-get install -y curl wget git unzip ca-certificates gnupg2 print_success "Basic tools installed" # Detect Debian version and set PHP version DEBIAN_VERSION=$(cat /etc/debian_version | cut -d. -f1) if [ "$DEBIAN_VERSION" -ge 12 ]; then PHP_VERSION="8.2" else PHP_VERSION="7.4" fi print_info "Using PHP $PHP_VERSION" # Install PHP print_info "Installing PHP ${PHP_VERSION} and extensions..." echo " → Installing: php, curl, gd, mbstring, xml, zip, mysql, dom, intl, opcache" apt-get install -y \ php${PHP_VERSION} \ php${PHP_VERSION}-cli \ php${PHP_VERSION}-common \ php${PHP_VERSION}-curl \ php${PHP_VERSION}-gd \ php${PHP_VERSION}-mbstring \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ php${PHP_VERSION}-mysql \ php${PHP_VERSION}-dom \ php${PHP_VERSION}-intl \ php${PHP_VERSION}-opcache WEBSERVER="WEBSERVER_PLACEHOLDER" if [ "$WEBSERVER" == "nginx" ]; then echo " → Installing PHP-FPM for Nginx" apt-get install -y php${PHP_VERSION}-fpm else echo " → Installing Apache PHP module" apt-get install -y libapache2-mod-php${PHP_VERSION} fi print_success "PHP installed" # Install MariaDB print_info "Installing MariaDB server..." echo " → Installing mariadb-server and mariadb-client" apt-get install -y mariadb-server mariadb-client echo " → Enabling and starting MariaDB service" systemctl enable mariadb systemctl start mariadb print_success "MariaDB installed" # Configure database print_info "Creating database and user..." echo " → Creating database: ${DB_NAME}" mysql -e "CREATE DATABASE IF NOT EXISTS ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" echo " → Creating user: ${DB_USER}" # Drop and recreate user to ensure password matches mysql -e "DROP USER IF EXISTS '${DB_USER}'@'localhost';" 2>/dev/null || true mysql -e "CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';" mysql -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';" mysql -e "FLUSH PRIVILEGES;" print_success "Database configured" # Install web server if [ "$WEBSERVER" == "nginx" ]; then print_info "Installing Nginx web server..." apt-get install -y nginx # Configure Nginx cat > /etc/nginx/sites-available/spotweb <<EOF server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html/spotweb; index index.php index.html; server_name _; location / { try_files \$uri \$uri/ /index.php?\$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php${PHP_VERSION}-fpm.sock; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } EOF ln -sf /etc/nginx/sites-available/spotweb /etc/nginx/sites-enabled/spotweb rm -f /etc/nginx/sites-enabled/default systemctl enable nginx > /dev/null 2>&1 systemctl enable php${PHP_VERSION}-fpm > /dev/null 2>&1 systemctl restart php${PHP_VERSION}-fpm systemctl restart nginx print_success "Nginx configured" else print_info "Installing Apache web server..." apt-get install -y apache2 # Configure Apache echo " → Enabling Apache modules: rewrite, php" a2enmod rewrite a2enmod php${PHP_VERSION} cat > /etc/apache2/sites-available/spotweb.conf <<'EOF' <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/spotweb <Directory /var/www/html/spotweb> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/spotweb_error.log CustomLog ${APACHE_LOG_DIR}/spotweb_access.log combined </VirtualHost> EOF a2dissite 000-default.conf > /dev/null 2>&1 a2ensite spotweb.conf > /dev/null 2>&1 systemctl enable apache2 > /dev/null 2>&1 systemctl restart apache2 print_success "Apache configured" fi # Download Spotweb print_info "Downloading Spotweb from GitHub..." echo " → Cloning repository (master branch)" rm -rf "$SPOTWEB_DIR" if git clone -b master --depth 1 https://github.com/spotweb/spotweb.git "$SPOTWEB_DIR"; then print_success "Spotweb downloaded" else echo -e "${RED}✗ Failed to download Spotweb${NC}" echo "Please check your internet connection and try again" exit 1 fi # Set permissions print_info "Setting file permissions..." echo " → Setting owner to www-data" chown -R www-data:www-data "$SPOTWEB_DIR" echo " → Setting directory permissions (755)" find "$SPOTWEB_DIR" -type d -exec chmod 755 {} \; echo " → Setting file permissions (644)" find "$SPOTWEB_DIR" -type f -exec chmod 644 {} \; echo " → Creating cache directory" mkdir -p "${SPOTWEB_DIR}/cache" chmod 777 "${SPOTWEB_DIR}/cache" print_success "Permissions set" # Create database config print_info "Creating configuration files..." echo " → Creating dbsettings.inc.php" cat > "${SPOTWEB_DIR}/dbsettings.inc.php" <<EOF <?php \$dbsettings['engine'] = 'mysql'; \$dbsettings['host'] = 'localhost'; \$dbsettings['dbname'] = '${DB_NAME}'; \$dbsettings['user'] = '${DB_USER}'; \$dbsettings['pass'] = '${DB_PASS}'; ?> EOF chown www-data:www-data "${SPOTWEB_DIR}/dbsettings.inc.php" chmod 640 "${SPOTWEB_DIR}/dbsettings.inc.php" # Create basic ownsettings.php echo " → Creating ownsettings.php" cat > "${SPOTWEB_DIR}/ownsettings.php" <<'EOF' <?php error_reporting(E_ALL); $settings['custom_stylesheet'] = ''; ?> EOF chown www-data:www-data "${SPOTWEB_DIR}/ownsettings.php" chmod 644 "${SPOTWEB_DIR}/ownsettings.php" print_success "Configuration files created" # Note: vendor/ directory is included in Spotweb git repo, so no Composer needed cd "$SPOTWEB_DIR" # Initialize Spotweb database print_info "Initializing Spotweb database schema..." echo " → Creating tables and structure" php ${SPOTWEB_DIR}/bin/upgrade-db.php print_success "Database initialized" # Reset admin password to default print_info "Setting admin password..." echo " → Resetting admin user password to default" php ${SPOTWEB_DIR}/bin/upgrade-db.php --reset-password admin print_success "Admin password set to: spotweb" # Setup systemd timer print_info "Configuring automatic spot retrieval..." echo " → Creating systemd service" cat > /etc/systemd/system/spotweb-retrieve.service <<EOF [Unit] Description=Spotweb Spot Retrieval After=network.target mysql.service [Service] Type=oneshot User=www-data WorkingDirectory=${SPOTWEB_DIR} ExecStart=/usr/bin/php ${SPOTWEB_DIR}/retrieve.php StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF echo " → Creating systemd timer (hourly execution)" cat > /etc/systemd/system/spotweb-retrieve.timer <<'EOF' [Unit] Description=Run Spotweb Retrieval Hourly [Timer] OnBootSec=5min OnUnitActiveSec=1h Persistent=true [Install] WantedBy=timers.target EOF echo " → Enabling and starting timer" systemctl daemon-reload systemctl enable spotweb-retrieve.timer systemctl start spotweb-retrieve.timer print_success "Automatic retrieval configured (runs every hour)" # Save credentials to file for easy access print_info "Saving credentials..." cat > /root/spotweb-credentials.txt <<EOF Spotweb Installation Credentials ================================ Database Name: ${DB_NAME} Database User: ${DB_USER} Database Password: ${DB_PASS} Web Interface: http://$(hostname -I | awk '{print $1}')/ Admin Login: Username: admin Password: spotweb Installation Date: $(date) EOF chmod 600 /root/spotweb-credentials.txt echo "" echo -e "${GREEN}╔════════════════════════════════════════════════════════════╗${NC}" echo -e "${GREEN}║ Installation Complete! ║${NC}" echo -e "${GREEN}╚════════════════════════════════════════════════════════════╝${NC}" echo "" echo -e "${YELLOW}Database Credentials (SAVE THESE):${NC}" echo "" echo " Database: ${DB_NAME}" echo " Username: ${DB_USER}" echo " Password: ${DB_PASS}" echo "" echo -e "${BLUE}Credentials saved to: /root/spotweb-credentials.txt${NC}" echo "" INSTALLER_SCRIPT # Replace webserver placeholder in the script pct exec $CTID -- sed -i "s/WEBSERVER_PLACEHOLDER/${WEBSERVER}/g" /tmp/installer.sh 2>/dev/null || true # Get the credentials echo "" echo -e "${GREEN}╔════════════════════════════════════════════════════════════╗${NC}" echo -e "${GREEN}║ Spotweb Installation Complete! ║${NC}" echo -e "${GREEN}╚════════════════════════════════════════════════════════════╝${NC}" echo "" echo -e "${CYAN}Container Information:${NC}" echo -e " Container ID: ${CTID}" echo -e " Hostname: ${HOSTNAME}" echo -e " IP Address: ${IP}" echo -e " Web Server: ${WEBSERVER}" echo "" # Get credentials from container CREDS=$(pct exec $CTID -- cat /root/spotweb-credentials.txt 2>/dev/null) echo -e "${YELLOW}Database Credentials:${NC}" echo "" pct exec $CTID -- grep -E "Database Name|Database User|Database Password" /root/spotweb-credentials.txt 2>/dev/null echo "" echo -e "${YELLOW}Admin Login Credentials:${NC}" echo "" echo -e " Username: ${GREEN}admin${NC}" echo -e " Password: ${GREEN}spotweb${NC}" echo "" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN}Access Spotweb:${NC}" echo "" echo -e " ${BLUE}→ http://${IP}/${NC}" echo "" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo "" echo -e "${CYAN}Next Steps:${NC}" echo " 1. Open the URL above in your browser" echo " 2. Login with default admin credentials (admin/spotweb)" echo " 3. Configure your Usenet server in Settings" echo " 4. Start retrieving spots!" echo "" echo -e "${CYAN}Container Management:${NC}" echo " Enter container: pct enter ${CTID}" echo " View credentials: pct exec ${CTID} -- cat /root/spotweb-credentials.txt" echo " Stop container: pct stop ${CTID}" echo " Start container: pct start ${CTID}" echo " Check retrieval: pct exec ${CTID} -- systemctl status spotweb-retrieve.timer" echo "" # Calculate elapsed time END_TIME=$(date +%s) ELAPSED=$((END_TIME - START_TIME)) MINUTES=$((ELAPSED / 60)) SECONDS=$((ELAPSED % 60)) echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN}✓ Installation completed in ${MINUTES}m ${SECONDS}s${NC}" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo "" |
dit maakt de CT aan, installeerd spotweb en al het nodige... bij mij duurt het 1 minuut
Een vraag: hoe voer ik dit script uit in Proxmox?Venimk1 schreef op maandag 8 december 2025 @ 05:43:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 #!/usr/bin/env bash # Spotweb Proxmox LXC Installer - All-in-One Version # Copyright (c) 2025 VenimK # License: MIT # Creates LXC container and installs Spotweb automatically source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' # No Color function header_info { clear cat <<"EOF" _____ __ __ / ___/____ ____ / /__ _____ / /_ \__ \/ __ \/ __ \/ __/ | /| / / _ \/ __ \ ___/ / /_/ / /_/ / /_ | |/ |/ / __/ /_/ / /____/ .___/\____/\__/ |__/|__/\___/_.___/ /_/ Automated Debian LXC + Spotweb Installer EOF echo "" } header_info # Start timer START_TIME=$(date +%s) # Configuration CTID="" HOSTNAME="spotweb" DISK_SIZE="20" CORES="2" MEMORY="2048" BRIDGE="vmbr0" OSTYPE="debian" OSVERSION="12" WEBSERVER="apache" # or nginx # Get next available CTID NEXTID=$(pvesh get /cluster/nextid) # Detect available storage for containers echo -e "${BLUE}Detecting available storage...${NC}" # Prefer storages that explicitly support rootdir (containers) mapfile -t STORAGE_OPTIONS < <(pvesm status -content rootdir 2>/dev/null | awk 'NR>1 {print $1}') # Fallback: any storage entry if none reported with rootdir if [ ${#STORAGE_OPTIONS[@]} -eq 0 ]; then mapfile -t STORAGE_OPTIONS < <(pvesm status 2>/dev/null | awk 'NR>1 {print $1}') fi if [ ${#STORAGE_OPTIONS[@]} -eq 0 ]; then echo -e "${RED}Error: No storage found on this Proxmox host${NC}" echo -e "${YELLOW}pvesm status output:${NC}" pvesm status || true exit 1 fi echo -e "${CYAN}Available storage options:${NC}" idx=1 for store in "${STORAGE_OPTIONS[@]}"; do echo -e " ${idx}) ${store}" idx=$((idx+1)) done echo "" read -p "Select storage [1-${#STORAGE_OPTIONS[@]}] (default 1): " STORAGE_CHOICE if [ -z "${STORAGE_CHOICE}" ]; then STORAGE_CHOICE=1 fi if ! [[ "${STORAGE_CHOICE}" =~ ^[0-9]+$ ]] || [ "${STORAGE_CHOICE}" -lt 1 ] || [ "${STORAGE_CHOICE}" -gt ${#STORAGE_OPTIONS[@]} ]; then echo -e "${RED}Invalid selection. Aborting.${NC}" exit 1 fi STORAGE=${STORAGE_OPTIONS[$((STORAGE_CHOICE-1))]} echo -e "${GREEN}✓ Using storage: ${STORAGE}${NC}" echo -e "${CYAN}Spotweb LXC Container Setup${NC}" echo "" echo -e "${YELLOW}This will create a Debian 12 LXC container and install Spotweb${NC}" echo "" echo -e "${GREEN}Default settings:${NC}" echo -e " Container ID: ${NEXTID}" echo -e " Hostname: ${HOSTNAME}" echo -e " CPU Cores: ${CORES}" echo -e " RAM: ${MEMORY}MB" echo -e " Disk: ${DISK_SIZE}GB" echo -e " Storage: ${STORAGE}" echo -e " OS: Debian ${OSVERSION}" echo -e " Web Server: ${WEBSERVER}" echo "" read -p "Container hostname [${HOSTNAME}]: " INPUT_HOST if [[ -n "${INPUT_HOST}" ]]; then HOSTNAME="${INPUT_HOST}" fi read -p "Disk size in GB [${DISK_SIZE}]: " INPUT_DISK if [[ -n "${INPUT_DISK}" && "${INPUT_DISK}" =~ ^[0-9]+$ && "${INPUT_DISK}" -gt 0 ]]; then DISK_SIZE="${INPUT_DISK}" fi read -p "CPU cores [${CORES}]: " INPUT_CORES if [[ -n "${INPUT_CORES}" && "${INPUT_CORES}" =~ ^[0-9]+$ && "${INPUT_CORES}" -gt 0 ]]; then CORES="${INPUT_CORES}" fi read -p "RAM in MB [${MEMORY}]: " INPUT_MEM if [[ -n "${INPUT_MEM}" && "${INPUT_MEM}" =~ ^[0-9]+$ && "${INPUT_MEM}" -gt 0 ]]; then MEMORY="${INPUT_MEM}" fi read -p "Web server (apache/nginx) [${WEBSERVER}]: " INPUT_WEB if [[ -n "${INPUT_WEB}" && ("${INPUT_WEB}" == "apache" || "${INPUT_WEB}" == "nginx") ]]; then WEBSERVER="${INPUT_WEB}" fi echo "" echo -e "${CYAN}Final settings:${NC}" echo -e " Container ID: ${NEXTID}" echo -e " Hostname: ${HOSTNAME}" echo -e " CPU Cores: ${CORES}" echo -e " RAM: ${MEMORY}MB" echo -e " Disk: ${DISK_SIZE}GB" echo -e " Storage: ${STORAGE}" echo -e " OS: Debian ${OSVERSION}" echo -e " Web Server: ${WEBSERVER}" echo "" read -p "Press Enter to create the container and install Spotweb, or Ctrl+C to cancel: " CTID=$NEXTID echo "" echo -e "${BLUE}Creating LXC container...${NC}" # Find the latest Debian 12 template echo -e "${YELLOW}Finding Debian ${OSVERSION} template...${NC}" pveam update # Get the latest Debian 12 template name TEMPLATE=$(pveam available | grep "debian-${OSVERSION}" | grep "standard" | tail -n1 | awk '{print $2}') if [ -z "$TEMPLATE" ]; then echo -e "${RED}Error: Could not find Debian ${OSVERSION} template${NC}" echo -e "${YELLOW}Available templates:${NC}" pveam available | grep debian exit 1 fi echo -e "${GREEN}✓ Found template: ${TEMPLATE}${NC}" TEMPLATE_PATH="/var/lib/vz/template/cache/${TEMPLATE}" if [ ! -f "$TEMPLATE_PATH" ]; then echo -e "${YELLOW}Downloading template...${NC}" pveam download local "$TEMPLATE" fi # Create container (unprivileged for better security) pct create $CTID $TEMPLATE_PATH \ --hostname $HOSTNAME \ --cores $CORES \ --memory $MEMORY \ --rootfs ${STORAGE}:${DISK_SIZE} \ --net0 name=eth0,bridge=${BRIDGE},ip=dhcp \ --unprivileged 1 \ --features nesting=1 \ --onboot 1 \ --start 1 echo -e "${GREEN}✓ Container created (ID: $CTID)${NC}" # Wait for container to start echo -e "${BLUE}Waiting for container to start...${NC}" sleep 5 # Wait for network echo -e "${BLUE}Waiting for network...${NC}" for i in {1..30}; do if pct exec $CTID -- ping -c 1 8.8.8.8 >/dev/null 2>&1; then echo -e "${GREEN}✓ Network is ready${NC}" break fi sleep 2 done # Get container IP IP=$(pct exec $CTID -- hostname -I | awk '{print $1}') echo -e "${GREEN}✓ Container IP: $IP${NC}" echo "" # Run installation inside container echo -e "${BLUE}╔════════════════════════════════════════════════════════════╗${NC}" echo -e "${BLUE}║ Starting Spotweb installation inside container... ║${NC}" echo -e "${BLUE}║ This will take 5-15 minutes ║${NC}" echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}" echo "" # Create installation script inside container pct exec $CTID -- bash <<'INSTALLER_SCRIPT' #!/bin/bash set -e # Error trap to show what failed trap 'echo -e "\n\033[0;31m✗ Installation failed at line $LINENO\033[0m\n"; exit 1' ERR # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' print_success() { echo -e "${GREEN}✓ $1${NC}"; } print_info() { echo -e "${BLUE}ℹ $1${NC}"; } print_warning() { echo -e "${YELLOW}⚠ $1${NC}"; } SPOTWEB_DIR="/var/www/html/spotweb" DB_NAME="spotweb" DB_USER="spotweb" generate_password() { tr -dc 'A-Za-z0-9!@#$%^&*()_+=' < /dev/urandom 2>/dev/null | head -c 20 } DB_PASS=$(generate_password) # Update system print_info "Updating system packages..." apt-get update -qq apt-get upgrade -y -qq print_success "System updated" # Fix locale warnings print_info "Configuring locales..." apt-get install -y locales sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen locale-gen en_US.UTF-8 > /dev/null 2>&1 update-locale LANG=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 print_success "Locales configured" # Install basic tools print_info "Installing basic tools (curl, wget, git, unzip)..." apt-get install -y curl wget git unzip ca-certificates gnupg2 print_success "Basic tools installed" # Detect Debian version and set PHP version DEBIAN_VERSION=$(cat /etc/debian_version | cut -d. -f1) if [ "$DEBIAN_VERSION" -ge 12 ]; then PHP_VERSION="8.2" else PHP_VERSION="7.4" fi print_info "Using PHP $PHP_VERSION" # Install PHP print_info "Installing PHP ${PHP_VERSION} and extensions..." echo " → Installing: php, curl, gd, mbstring, xml, zip, mysql, dom, intl, opcache" apt-get install -y \ php${PHP_VERSION} \ php${PHP_VERSION}-cli \ php${PHP_VERSION}-common \ php${PHP_VERSION}-curl \ php${PHP_VERSION}-gd \ php${PHP_VERSION}-mbstring \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ php${PHP_VERSION}-mysql \ php${PHP_VERSION}-dom \ php${PHP_VERSION}-intl \ php${PHP_VERSION}-opcache WEBSERVER="WEBSERVER_PLACEHOLDER" if [ "$WEBSERVER" == "nginx" ]; then echo " → Installing PHP-FPM for Nginx" apt-get install -y php${PHP_VERSION}-fpm else echo " → Installing Apache PHP module" apt-get install -y libapache2-mod-php${PHP_VERSION} fi print_success "PHP installed" # Install MariaDB print_info "Installing MariaDB server..." echo " → Installing mariadb-server and mariadb-client" apt-get install -y mariadb-server mariadb-client echo " → Enabling and starting MariaDB service" systemctl enable mariadb systemctl start mariadb print_success "MariaDB installed" # Configure database print_info "Creating database and user..." echo " → Creating database: ${DB_NAME}" mysql -e "CREATE DATABASE IF NOT EXISTS ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" echo " → Creating user: ${DB_USER}" # Drop and recreate user to ensure password matches mysql -e "DROP USER IF EXISTS '${DB_USER}'@'localhost';" 2>/dev/null || true mysql -e "CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';" mysql -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';" mysql -e "FLUSH PRIVILEGES;" print_success "Database configured" # Install web server if [ "$WEBSERVER" == "nginx" ]; then print_info "Installing Nginx web server..." apt-get install -y nginx # Configure Nginx cat > /etc/nginx/sites-available/spotweb <<EOF server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html/spotweb; index index.php index.html; server_name _; location / { try_files \$uri \$uri/ /index.php?\$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php${PHP_VERSION}-fpm.sock; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } EOF ln -sf /etc/nginx/sites-available/spotweb /etc/nginx/sites-enabled/spotweb rm -f /etc/nginx/sites-enabled/default systemctl enable nginx > /dev/null 2>&1 systemctl enable php${PHP_VERSION}-fpm > /dev/null 2>&1 systemctl restart php${PHP_VERSION}-fpm systemctl restart nginx print_success "Nginx configured" else print_info "Installing Apache web server..." apt-get install -y apache2 # Configure Apache echo " → Enabling Apache modules: rewrite, php" a2enmod rewrite a2enmod php${PHP_VERSION} cat > /etc/apache2/sites-available/spotweb.conf <<'EOF' <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/spotweb <Directory /var/www/html/spotweb> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/spotweb_error.log CustomLog ${APACHE_LOG_DIR}/spotweb_access.log combined </VirtualHost> EOF a2dissite 000-default.conf > /dev/null 2>&1 a2ensite spotweb.conf > /dev/null 2>&1 systemctl enable apache2 > /dev/null 2>&1 systemctl restart apache2 print_success "Apache configured" fi # Download Spotweb print_info "Downloading Spotweb from GitHub..." echo " → Cloning repository (master branch)" rm -rf "$SPOTWEB_DIR" if git clone -b master --depth 1 https://github.com/spotweb/spotweb.git "$SPOTWEB_DIR"; then print_success "Spotweb downloaded" else echo -e "${RED}✗ Failed to download Spotweb${NC}" echo "Please check your internet connection and try again" exit 1 fi # Set permissions print_info "Setting file permissions..." echo " → Setting owner to www-data" chown -R www-data:www-data "$SPOTWEB_DIR" echo " → Setting directory permissions (755)" find "$SPOTWEB_DIR" -type d -exec chmod 755 {} \; echo " → Setting file permissions (644)" find "$SPOTWEB_DIR" -type f -exec chmod 644 {} \; echo " → Creating cache directory" mkdir -p "${SPOTWEB_DIR}/cache" chmod 777 "${SPOTWEB_DIR}/cache" print_success "Permissions set" # Create database config print_info "Creating configuration files..." echo " → Creating dbsettings.inc.php" cat > "${SPOTWEB_DIR}/dbsettings.inc.php" <<EOF <?php \$dbsettings['engine'] = 'mysql'; \$dbsettings['host'] = 'localhost'; \$dbsettings['dbname'] = '${DB_NAME}'; \$dbsettings['user'] = '${DB_USER}'; \$dbsettings['pass'] = '${DB_PASS}'; ?> EOF chown www-data:www-data "${SPOTWEB_DIR}/dbsettings.inc.php" chmod 640 "${SPOTWEB_DIR}/dbsettings.inc.php" # Create basic ownsettings.php echo " → Creating ownsettings.php" cat > "${SPOTWEB_DIR}/ownsettings.php" <<'EOF' <?php error_reporting(E_ALL); $settings['custom_stylesheet'] = ''; ?> EOF chown www-data:www-data "${SPOTWEB_DIR}/ownsettings.php" chmod 644 "${SPOTWEB_DIR}/ownsettings.php" print_success "Configuration files created" # Note: vendor/ directory is included in Spotweb git repo, so no Composer needed cd "$SPOTWEB_DIR" # Initialize Spotweb database print_info "Initializing Spotweb database schema..." echo " → Creating tables and structure" php ${SPOTWEB_DIR}/bin/upgrade-db.php print_success "Database initialized" # Reset admin password to default print_info "Setting admin password..." echo " → Resetting admin user password to default" php ${SPOTWEB_DIR}/bin/upgrade-db.php --reset-password admin print_success "Admin password set to: spotweb" # Setup systemd timer print_info "Configuring automatic spot retrieval..." echo " → Creating systemd service" cat > /etc/systemd/system/spotweb-retrieve.service <<EOF [Unit] Description=Spotweb Spot Retrieval After=network.target mysql.service [Service] Type=oneshot User=www-data WorkingDirectory=${SPOTWEB_DIR} ExecStart=/usr/bin/php ${SPOTWEB_DIR}/retrieve.php StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF echo " → Creating systemd timer (hourly execution)" cat > /etc/systemd/system/spotweb-retrieve.timer <<'EOF' [Unit] Description=Run Spotweb Retrieval Hourly [Timer] OnBootSec=5min OnUnitActiveSec=1h Persistent=true [Install] WantedBy=timers.target EOF echo " → Enabling and starting timer" systemctl daemon-reload systemctl enable spotweb-retrieve.timer systemctl start spotweb-retrieve.timer print_success "Automatic retrieval configured (runs every hour)" # Save credentials to file for easy access print_info "Saving credentials..." cat > /root/spotweb-credentials.txt <<EOF Spotweb Installation Credentials ================================ Database Name: ${DB_NAME} Database User: ${DB_USER} Database Password: ${DB_PASS} Web Interface: http://$(hostname -I | awk '{print $1}')/ Admin Login: Username: admin Password: spotweb Installation Date: $(date) EOF chmod 600 /root/spotweb-credentials.txt echo "" echo -e "${GREEN}╔════════════════════════════════════════════════════════════╗${NC}" echo -e "${GREEN}║ Installation Complete! ║${NC}" echo -e "${GREEN}╚════════════════════════════════════════════════════════════╝${NC}" echo "" echo -e "${YELLOW}Database Credentials (SAVE THESE):${NC}" echo "" echo " Database: ${DB_NAME}" echo " Username: ${DB_USER}" echo " Password: ${DB_PASS}" echo "" echo -e "${BLUE}Credentials saved to: /root/spotweb-credentials.txt${NC}" echo "" INSTALLER_SCRIPT # Replace webserver placeholder in the script pct exec $CTID -- sed -i "s/WEBSERVER_PLACEHOLDER/${WEBSERVER}/g" /tmp/installer.sh 2>/dev/null || true # Get the credentials echo "" echo -e "${GREEN}╔════════════════════════════════════════════════════════════╗${NC}" echo -e "${GREEN}║ Spotweb Installation Complete! ║${NC}" echo -e "${GREEN}╚════════════════════════════════════════════════════════════╝${NC}" echo "" echo -e "${CYAN}Container Information:${NC}" echo -e " Container ID: ${CTID}" echo -e " Hostname: ${HOSTNAME}" echo -e " IP Address: ${IP}" echo -e " Web Server: ${WEBSERVER}" echo "" # Get credentials from container CREDS=$(pct exec $CTID -- cat /root/spotweb-credentials.txt 2>/dev/null) echo -e "${YELLOW}Database Credentials:${NC}" echo "" pct exec $CTID -- grep -E "Database Name|Database User|Database Password" /root/spotweb-credentials.txt 2>/dev/null echo "" echo -e "${YELLOW}Admin Login Credentials:${NC}" echo "" echo -e " Username: ${GREEN}admin${NC}" echo -e " Password: ${GREEN}spotweb${NC}" echo "" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN}Access Spotweb:${NC}" echo "" echo -e " ${BLUE}→ http://${IP}/${NC}" echo "" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo "" echo -e "${CYAN}Next Steps:${NC}" echo " 1. Open the URL above in your browser" echo " 2. Login with default admin credentials (admin/spotweb)" echo " 3. Configure your Usenet server in Settings" echo " 4. Start retrieving spots!" echo "" echo -e "${CYAN}Container Management:${NC}" echo " Enter container: pct enter ${CTID}" echo " View credentials: pct exec ${CTID} -- cat /root/spotweb-credentials.txt" echo " Stop container: pct stop ${CTID}" echo " Start container: pct start ${CTID}" echo " Check retrieval: pct exec ${CTID} -- systemctl status spotweb-retrieve.timer" echo "" # Calculate elapsed time END_TIME=$(date +%s) ELAPSED=$((END_TIME - START_TIME)) MINUTES=$((ELAPSED / 60)) SECONDS=$((ELAPSED % 60)) echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN}✓ Installation completed in ${MINUTES}m ${SECONDS}s${NC}" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo ""
dit maakt de CT aan, installeerd spotweb en al het nodige... bij mij duurt het 1 minuut
kan je deze in de repo van helper scripts plaatsen? dan hebben duizenden mensen er wat aan 
Super! ik heb hem nu als home assistant addon maar een lxc lijkt mij beter!
Super! ik heb hem nu als home assistant addon maar een lxc lijkt mij beter!
Gadget-freakz.com. Feedback en tips zijn welkom.
voorlopig kan het al zointernetsmurf schreef op maandag 8 december 2025 @ 17:30:
[...]
Een vraag: hoe voer ik dit script uit in Proxmox?
in je proxmox host
downloading the file
wget https://raw.githubusercon...te-and-install-spotweb.sh
installeren van spotweb , met aanmaken van LXc container etc ....
bash proxmox-create-and-install-spotweb.sh
dan voor de themes
downloading file
wget https://raw.githubusercon...oy-themes-to-container.sh
installeren van themes in je spotweb LXC
bash deploy-themes-to-container.sh
Dankjewel, ga ik proberen 😉Venimk1 schreef op maandag 8 december 2025 @ 19:28:
[...]
voorlopig kan het al zo
in je proxmox host
downloading the file
wget https://raw.githubusercon...te-and-install-spotweb.sh
installeren van spotweb , met aanmaken van LXc container etc ....
bash proxmox-create-and-install-spotweb.sh
dan voor de themes
downloading file
wget https://raw.githubusercon...oy-themes-to-container.sh
installeren van themes in je spotweb LXC
bash deploy-themes-to-container.sh
Thx, aanpassing aan de themes is nog mogelijk; en zal nog van doen zijn ...[Video: https://private-user-images.githubusercontent.com/666520/524114977-125be297-9d80-4632-b2cf-73059957dfae.mp4?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjUyNjEzNzUsIm5iZiI6MTc2NTI2MTA3NSwicGF0aCI6Ii82NjY1MjAvNTI0MTE0OTc3LTEyNWJlMjk3LTlkODAtNDYzMi1iMmNmLTczMDU5OTU3ZGZhZS5tcDQ_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIwOVQwNjE3NTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMjUyYjE5MGFmYmNhZmM3NmM5YTY3ZDk3Y2UwOGMwMmViY2NkMDU3ZWU4YWNmNzY2OWY5ODVhNmY4NDZjNzRhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.8GbFYmWt64paz5JEcrshX9TA_D9SWjEp31Tfiekvc7U]
/f/image/dVDQiTc0gZGu2D5ssc2wZ30G.png?f=fotoalbum_large)
/f/image/BivzxxbrASMBzIQ0hxjp65AK.png?f=fotoalbum_large)
[ Voor 94% gewijzigd door Venimk1 op 09-12-2025 07:23 ]
dat zal ik later ff bezien....remcoXP schreef op maandag 8 december 2025 @ 17:52:
kan je deze in de repo van helper scripts plaatsen? dan hebben duizenden mensen er wat aan
Super! ik heb hem nu als home assistant addon maar een lxc lijkt mij beter!
the LXC setup installer + spotweb
🚀 Installation
Option 1: Fresh Spotweb Installation (Recommended)
Install Spotweb + themes in one command:
# Download installer
# Run installer
During installation, choose:
Option 2: Dark mode only (simple dark theme)
Option 3: Complete theme pack (8 themes + switcher + tools) ⭐ Recommended
🚀 Installation
Option 1: Fresh Spotweb Installation (Recommended)
Install Spotweb + themes in one command:
# Download installer
code:
1
2
| curl -fsSL https://raw.githubusercontent.com/VenimK/spotweb/themes-only/proxmox-create-and-install-spotweb.sh -o install-spotweb.sh chmod +x install-spotweb.sh |
# Run installer
code:
1
| ./install-spotweb.sh |
During installation, choose:
Option 2: Dark mode only (simple dark theme)
Option 3: Complete theme pack (8 themes + switcher + tools) ⭐ Recommended
[ Voor 63% gewijzigd door Venimk1 op 10-12-2025 13:28 ]
even tussen code blocks zetten als wordt je url ongeldig 
hartelijk dank!!
hartelijk dank!!
Venimk1 schreef op dinsdag 9 december 2025 @ 08:08:
the LXC setup installer + spotweb
wget https://raw.githubusercon...te-and-install-spotweb.sh
chmod +x proxmox-create-and-install-spotweb.sh
./proxmox-create-and-install-spotweb.sh
Option 3 Theme Pack
= spotweb install met 8 preinstalled themes
Theme Editor
wget https://raw.githubusercon...nly/deploy-theme-tools.sh
chmod +x deploy-theme-tools.sh
./deploy-theme-tools.sh
Access your theme tools:
🎨 Theme Customizer:
http://YOUR_IP/tools/theme-customizer.html
📤 Theme Upload:
http://YOUR_IP/tools/theme-upload.php
(Default password: spotweb123)
💡 Workflow:
1. Create theme in Customizer
2. Download CSS file
3. Upload via Upload Tool
4. Theme appears in Spotweb instantly!
🔒 Security Note:
Change upload password in: theme-upload.php (line
Gadget-freakz.com. Feedback en tips zijn welkom.
weet iemand toevallig of het mogelijk is thumbnails te zien in het overzicht zoals bijvoorbeeld de android app?
nu moet je of hoveren, of de post open klikken.
nu moet je of hoveren, of de post open klikken.
Gadget-freakz.com. Feedback en tips zijn welkom.
Bedoel je bij Configuratie --> Voorkeuren wijzigen --> Template voor niet mobiele apparaten --> Modern ?
dat zie ik niet > modernKroonkurk schreef op donderdag 11 december 2025 @ 21:56:
Bedoel je bij Configuratie --> Voorkeuren wijzigen --> Template voor niet mobiele apparaten --> Modern ?
op de android app is dat ook handig.
op die manier hoef je niet te hoveren of een post open te klikken. weet iemand of dit mogelijk is?
Gadget-freakz.com. Feedback en tips zijn welkom.
Dan heb je schijnbaar niet de laatste versie ?
https://github.com/ProGoogleNederland/Spotweb-We1rdo-2.0
https://github.com/ProGoogleNederland/Spotweb-We1rdo-2.0
Aan de develop branch van spotweb is het 'modern' theme toegevoegd.
Als je die geselecteerd hebt kun je kiezen uit cards of list en light of dark mode.
Het oude we1rdo theme blijft behouden en is ook nog selecteerbaar.
Als je die geselecteerd hebt kun je kiezen uit cards of list en light of dark mode.
Het oude we1rdo theme blijft behouden en is ook nog selecteerbaar.
Als anonieme grebruiker krijg ik nooit het we1rdo thema te zijn (in Docker) ook al is dat onder Admin als standaard gezet. Trouwens, ook als domme gebruiker (niet admin, wel ingelogd) pakt ie dat thema niet op.... Kan ik het "ergens" default maken want ik wil eigenlijk altijd de tabel ipv de plaatjeslijst..... 60 regels op mijn scherm heb ik liever dan 8 plaatjes.....
Moet je de docker versie van jgeusebroek gebruiken. Kan je uit de 3 thema kiezen.
Ik ben wel als admin ingelogd, dan kan je het thema wijzigen.
Ik ben wel als admin ingelogd, dan kan je het thema wijzigen.
Tnx, ik gebruik nu erikdevries, zal die andere eens bekijken. Wat ik NIET wil is standaard inloggen als admin, sterker, als ik 's avonds op de bank zit en ff wil kijken wil ik helemaal niet inloggen en dus anoniempje zijn.Kroonkurk schreef op zaterdag 13 december 2025 @ 14:10:
Moet je de docker versie van jgeusebroek gebruiken. Kan je uit de 3 thema kiezen.
Ik ben wel als admin ingelogd, dan kan je het thema wijzigen.
Ik kan nu trouwens ook uit 3 thema's kiezen: mobile, modern en we1rdo - maar voor anoniem (niet ingelgd) heeft de keuze geen effect.
[ Voor 12% gewijzigd door DjoeC op 13-12-2025 14:16 ]
Venimk1 top voor je werk. heb de container draaien maar omdat ik naar development branche wil schakelen zou ik graag willen inloggen op de container.
maar ik kom met geen mogelijkheid op de container zelf ingelogd? wel via pve enter.
is dit bewust?
maar ik kom met geen mogelijkheid op de container zelf ingelogd? wel via pve enter.
is dit bewust?
Gadget-freakz.com. Feedback en tips zijn welkom.
Met view table krijg je gewoon weer een lijst.DjoeC schreef op zaterdag 13 december 2025 @ 13:54:
Als anonieme grebruiker krijg ik nooit het we1rdo thema te zijn (in Docker) ook al is dat onder Admin als standaard gezet. Trouwens, ook als domme gebruiker (niet admin, wel ingelogd) pakt ie dat thema niet op.... Kan ik het "ergens" default maken want ik wil eigenlijk altijd de tabel ipv de plaatjeslijst..... 60 regels op mijn scherm heb ik liever dan 8 plaatjes.....
Tja, ik krijg geen keuzemenu in mijn erikdevries docker versie, dan kan ik niet kiezen en moet ik inloggen zodat de gebruikers configuratie wordt opgepakt. Configuratie is dus gekoppeld aan user. De generieke configuratie voor anonymous lijkt niet (eenvoudig) aanpasbaarmesa57 schreef op zondag 14 december 2025 @ 11:46:
[...]
Met view table krijg je gewoon weer een lijst.
[Afbeelding]
Trouwens heb ik gister jgeusebroek uitgerold, daar krijg ik wel de menuregel voor keuzen. Maar helass, ook hier weer de niet aanpasbare systeem default voor anonymous. Dat geldt ook voor het aantal regels per scherm dat ik standaard op 250 heb staan ipv 25.
Ofwel: De laatste (interface) versie van Spotweb onder docker is voor mij "minder geslaagd".
NB: Ik werk - ook op het interne netwerk - altijd in Firefox anoniem en alle cookies worden (met cookie-autodelete) 15 seconden na het sluiten van een website gepoetst.
Ik vraag me trouwens af of er alternatieven voor Spotweb zijn?
Hmm, da's gek: Ik kom er nu achter dat ik de de default wel naar we1rdo kan aanpassen als anoniem, maar dat ik de configuration menu keus alleen krijg vanaf de tablet. Zal wel iets met mijn Firefox te maken hebben dan. Probleem opgelost dus.
Dit werkt perfect, dankjewel!Venimk1 schreef op dinsdag 9 december 2025 @ 08:08:
the LXC setup installer + spotweb
🚀 Installation
Option 1: Fresh Spotweb Installation (Recommended)
Install Spotweb + themes in one command:
# Download installer
code:
1 2 curl -fsSL https://raw.githubusercontent.com/VenimK/spotweb/themes-only/proxmox-create-and-install-spotweb.sh -o install-spotweb.sh chmod +x install-spotweb.sh
# Run installer
code:
1./install-spotweb.sh
During installation, choose:
Option 2: Dark mode only (simple dark theme)
Option 3: Complete theme pack (8 themes + switcher + tools) ⭐ Recommended
p.s.
Voor de mensen die dit lezen, direct uitvoeren en denken wat moet ik hierna nog doen:
1. De spotweb url openen
2. Rechtsboven inloggen als admin
3. Rechtsboven op Config klikken en dan Settings
4. Onder tabblad Newsservers je newsserver invoeren (Change == Save)
5. Onder tabblad retrieve kun je bepalen hoever je terug wilt gaan met de spots. Zet hier iets neer naar jouw eigen voorkeur. Ikzelf download alleen muziek en heb hem op 31 gezet en de datum aangepast naar 1-12-2025. -> Change
6. Nu kun je wachten totdat de Retrieve actie is uigevoerd. Maar je kunt in Proxmox dit ook forceren door naar de shell te gaan van je proxmox instance -> type: "pct enter [3 cijferig container uid]" -> vervolgens naar de map "cd /var/www/html/spotweb" -> en vervolgens het commando: /usr/bin/php retrieve.php uit te voeren. (dit kan vast korter)
Hierna worden spots geladen.
[ Voor 36% gewijzigd door Bakkertje_01 op 15-12-2025 12:27 ]
Heb hier wat aanpassing gedaan van het bestaande voor dit te laten werken onder Mac OS.
https://github.com/VenimK...mes-only/install-macos.sh
Had hier graag paar testers, of reviews van gehad ook, wat beter zou kunnen eventueel..
@Bakkertje_01 Alvast bedankt
https://github.com/VenimK...mes-only/install-macos.sh
Had hier graag paar testers, of reviews van gehad ook, wat beter zou kunnen eventueel..
@Bakkertje_01 Alvast bedankt
je kanremcoXP schreef op zondag 14 december 2025 @ 10:53:
Venimk1 top voor je werk. heb de container draaien maar omdat ik naar development branche wil schakelen zou ik graag willen inloggen op de container.
maar ik kom met geen mogelijkheid op de container zelf ingelogd? wel via pve enter.
is dit bewust?
pct enter jeconainerID
doen
dan
passwd
zal gevraagd worden voor wachtwoord
Daarna kan je effictief in the spotweb container
Let op:
Houd er rekening mee dat je geen link zet naar content, dat levert je direct een waarschuwing op.
LET OP: Linken naar spotweb sites is dus ook niet de bedoeling..
Lees de topicstart voor je een vraag stelt! Hierin staan meerdere antwoorden voorgekauwd.
Houd er rekening mee dat je geen link zet naar content, dat levert je direct een waarschuwing op.
LET OP: Linken naar spotweb sites is dus ook niet de bedoeling..
Lees de topicstart voor je een vraag stelt! Hierin staan meerdere antwoorden voorgekauwd.