404 Signature not found
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.
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 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 ]
[ Voor 35% gewijzigd door RobbyTown op 14-09-2025 12:06 ]
Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe - Globalping 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.
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: 31-07 12:53
145 enthousiaste paardjes...
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.
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 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: 31-07 12:53
145 enthousiaste paardjes...
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?
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.
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.
Beetje overdreven voor comments.
Wel een rare client : X-Newsreader: Spotnet 2.1.0.0
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.
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
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.
Het ging trouwens over 2 spots.
En ook dat probleem is opgelost in de de develop branch release.
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.
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 ]
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
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!
🚀 Installation
Option 1: Fresh Spotweb Installation (Recommended)
Install Spotweb + themes in one command:
# Download installer
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
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 ]
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.
nu moet je of hoveren, of de post open klikken.
Gadget-freakz.com. Feedback en tips zijn welkom.
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.
https://github.com/ProGoogleNederland/Spotweb-We1rdo-2.0
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.
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 ]
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?
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 ]
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
aan het bezien voor keuze mogelijkheidremcoXP 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?
[ Voor 28% gewijzigd door Venimk1 op 19-12-2025 09:04 ]
Keuze
Bestaande container / nieuwe container
Vlan or not
master of develop versie (spotweb)
https://github.com/VenimK/spotweb/tree/themes-only
https://cloud.nas86.eu/s/KMise7XTRRobF3n
[ Voor 13% gewijzigd door Venimk1 op 20-12-2025 05:33 ]
Spotweb docker erikdevries + Eweka met posten toegestaan en toch krijg ik steeds "posting not allowed"
Shot in the dark; ben je aan het downloaden terwijl je wil posten? Dan kan het zijn dat je connecties vol zijn.Bubble-BE schreef op maandag 22 december 2025 @ 13:50:
Als ik wil reageren op een post lukt me dat niet, maar ik zie niet meteen waarom?
Spotweb docker erikdevries + Eweka met posten toegestaan en toch krijg ik steeds "posting not allowed"
Deze ruimte is bewust leeg gelaten
Ik heb het net nagekeken en heb sowiezo maar 20 connecties van de 50 ingesteld om te downloaden. Ik vermoed dat het bij Eweka zal liggen.alesandro_46 schreef op maandag 22 december 2025 @ 14:00:
[...]
Shot in the dark; ben je aan het downloaden terwijl je wil posten? Dan kan het zijn dat je connecties vol zijn.
Edit: gevonden! Geen idee of het nieuw is, maar je moet nu een andere server ingeven als je wil posten.
Nu kan ik weer bedankjes achterlaten.Gebruik om te posten als server post.eweka.nl via poort 119. U kunt hierop inloggen met uw huidige aanmeldgegevens.
[ Voor 27% gewijzigd door Bubble-BE op 22-12-2025 15:39 ]
Dit is hopelijk wel over https? 119 is naar mijn weten unencrypted. Ik gebruik alleen nog maar TLS, ook al is dat mogelijk langzamer.Bubble-BE schreef op maandag 22 december 2025 @ 15:34:
[...]
Ik heb het net nagekeken en heb sowiezo maar 20 connecties van de 50 ingesteld om te downloaden. Ik vermoed dat het bij Eweka zal liggen.
Edit: gevonden! Geen idee of het nieuw is, maar je moet nu een andere server ingeven als je wil posten.
[...]
Nu kan ik weer bedankjes achterlaten.
Klopt, als je het vakje "Use different server for posting?" aanklikt, neemt die de waardes over van je standaard nieuwsserver, die in mijn geval wel via 443 gaat. Ik had er eerst niet op gelet.HollowGamer schreef op dinsdag 23 december 2025 @ 23:15:
[...]
Dit is hopelijk wel over https? 119 is naar mijn weten unencrypted. Ik gebruik alleen nog maar TLS, ook al is dat mogelijk langzamer.
/f/image/WVXALZHGlFVBESZyt4CKCpsy.png?f=fotoalbum_large)
In je map
/var/www/html/spotweb/custom
1
| git fetch origin themes-only:refs/remotes/origin/themes-only |
1
| ./update-themes.sh |
Bij nieuwe installaties, gebeurd dit automatisch tuurlijk
https://github.com/VenimK/spotweb/tree/themes-only
Moet zeggen dat ik wel blij verrast ben met hoe makkelijk de overgang ging
Ik heb wel een klein irritatiepuntje. Hoe krijg ik de mobile template op dark mode?
edit: ik draai de erikdevries edition
[ Voor 9% gewijzigd door Webjunkie op 06-01-2026 19:45 ]
Daar draait toch ook gewoon docker op? Gewoon de container gebruiken dan.Yar2002 schreef op vrijdag 9 januari 2026 @ 11:09:
Hoe kan ik Spotnet gebruiken op mijn Mac (mini pro)? Waar staat een versie die ik kan installeren (op een simpele manier) of een webversie?
Je schrijft trouwens Spotnet, maar dit topic gaat over SpotWeb. Die bedoel ik dus ook.
De vakantie heeft alweer heimwee naar mij
https://github.com/VenimK/spotweb/tree/themes-onlyYar2002 schreef op vrijdag 9 januari 2026 @ 11:09:
Hoe kan ik Spotnet gebruiken op mijn Mac (mini pro)? Waar staat een versie die ik kan installeren (op een simpele manier) of een webversie?
Option 2: Native macOS (Homebrew)
You can also install Spotweb + the theme system locally on macOS using Homebrew (PHP + MariaDB).
# Download macOS installer
curl -fsSL https://raw.githubusercon...mes-only/install-macos.sh -o install-macos.sh
chmod +x install-macos.sh
# Run installer
./install-macos.sh
https://github.com/Spottarr/Spottarr
https://github.com/spotwe...buntu-24.04-LTS-(english)
Alles gaat goed totdat ik deze opmerking tegen kom:
Please use the root password for mysql in install.php
Ik maak dan de mysql spotweb datbase aan en aan het eind vraagt hij om een wachtwoord.
Waar haal ik dat root wachtwoord vandaan?
Heb al op Google/Ai/dit forum gezocht maar kom er niet uit.
De ubuntu 24.04 server draait perfect dus daar ligt het niet aan.
Hebben jullie een idee?
Maak in MySQL/MariaDB een nieuwe user spotweb oid met een wachtwoord aan en bijbehorende database. Verder GEEN rechten voor die user. Dan spotweb opzetten met die user en database, je wilt m zeker NIET met root (of equivalent) opstarten....internetsmurf schreef op zaterdag 17 januari 2026 @ 14:43:
Ik probeer op proxmox 9.1 Spotweb te installeren volgens de volgende handleiding:
https://github.com/spotwe...buntu-24.04-LTS-(english)
Alles gaat goed totdat ik deze opmerking tegen kom:
Please use the root password for mysql in install.php
Ik maak dan de mysql spotweb datbase aan en aan het eind vraagt hij om een wachtwoord.
Waar haal ik dat root wachtwoord vandaan?
Heb al op Google/Ai/dit forum gezocht maar kom er niet uit.
De ubuntu 24.04 server draait perfect dus daar ligt het niet aan.
Hebben jullie een idee?
Voor dat opzetten gebruik ik een container met phpMyAdmin. De root user is geblokkeerd nadat ik een alternatieve root-userid met Global privileges heb aangemaakt. Ik houd niet zo van "standaard users en wachtwoorden die je van internet kunt plukken.
Je hebt deze stap gedaan? Dan is je db user én wachtwoord 'spotweb'.internetsmurf schreef op zaterdag 17 januari 2026 @ 14:43:
Ik probeer op proxmox 9.1 Spotweb te installeren volgens de volgende handleiding:
https://github.com/spotwe...buntu-24.04-LTS-(english)
Alles gaat goed totdat ik deze opmerking tegen kom:
Please use the root password for mysql in install.php
[...]
De vakantie heeft alweer heimwee naar mij
Ja, dat klopt.Room42 schreef op zaterdag 17 januari 2026 @ 15:10:
[...]
Je hebt deze stap gedaan? Dan is je db user én wachtwoord 'spotweb'.
Als ik dan spotweb invoer bij wachtwoord dan krijg ik de volgende output:
mysql -u root -p
CREATE DATABASE spotweb;
CREATE USER 'spotweb'@'localhost' IDENTIFIED BY 'spotweb';
GRANT ALL PRIVILEGES ON spotweb.* TO 'spotweb'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
CREATE: command not found
CREATE: command not found
GRANT: command not found
FLUSH: command not found
logout
Dan heb je blijkbaar al een wachtwoord op je MySQL ingesteld. Je kunt nog even proberen met 'sudo mysql ...', anders moet je even je installatie checken, of zoeken naar 'mysql reset root password' op internet.internetsmurf schreef op zaterdag 17 januari 2026 @ 15:34:
[...]
Ja, dat klopt.
Als ik dan spotweb invoer bij wachtwoord dan krijg ik de volgende output:
mysql -u root -p
CREATE DATABASE spotweb;
CREATE USER 'spotweb'@'localhost' IDENTIFIED BY 'spotweb';
GRANT ALL PRIVILEGES ON spotweb.* TO 'spotweb'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
CREATE: command not found
CREATE: command not found
GRANT: command not found
FLUSH: command not found
logout
De vakantie heeft alweer heimwee naar mij
Dankjewel, sudo mysql heeft het probleem opgelost. Spotweb draait nu prima bij mij.Room42 schreef op zaterdag 17 januari 2026 @ 16:32:
[...]
Dan heb je blijkbaar al een wachtwoord op je MySQL ingesteld. Je kunt nog even proberen met 'sudo mysql ...', anders moet je even je installatie checken, of zoeken naar 'mysql reset root password' op internet.
Na een update is de 'Erase downloads' knop weer terugGlamdring schreef op zaterdag 15 februari 2025 @ 18:42:
@alesandro_46
Probeer dit eens:code:
1 2 3.greyButton.erasedownloads { display: none; }
De knop heet blijkbaar erasedls. Ik heb de custom.css tekst aangepast, maar dat mocht niet baten. Heb je toevallig een idee hoe ik de knop weer weg krijg?
Deze ruimte is bewust leeg gelaten
Hi @alesandro_46,alesandro_46 schreef op dinsdag 24 maart 2026 @ 22:11:
[...]
Na een update is de 'Erase downloads' knop weer terug![]()
De knop heet blijkbaar erasedls. Ik heb de custom.css tekst aangepast, maar dat mocht niet baten. Heb je toevallig een idee hoe ik de knop weer weg krijg?
Probeer dit eens:
1
2
3
4
5
| .greyButton.erasedownloads {
position: absolute;
visibility: hidden;
display: none;
} |
Glamdring schreef op zondag 12 april 2026 @ 18:55:
[...]
Hi @alesandro_46,
Probeer dit eens:code:
1 2 3 4 5.greyButton.erasedownloads { position: absolute; visibility: hidden; display: none; }
De erase downloads knop is (voor mij) gelukkig weer verdwenen, super bedankt!
Deze ruimte is bewust leeg gelaten
Ik ben nu 3 dagen aan het pielen om een spotweb filter aan de praat te krijgen. Via de gui en zoeken, werkt hij. Zodra ik hem opsla met naam aangeven, dan vind ik alles wat los en vast zit. Nu ik heb op het woord filter gezocht in dit topic en de 10 bladzijdes door gelezen. Daar kwam de tool spotweb filter creator naar voren. Deze werkt top!
Echter wat ik niet wist, zodra ik mijn ene test filter saved en impoteer, dat hij mijn huidige filters volledig overshreef. Ik dacht dat hij mijn nieuwe filter toevoegde.
Kan iemand mij aub de filter file geven, waar alle standaard filters in staan? Deze heb ik eerder gezien, dat iemand deze gegeven heeft, maar die url werkt niet meer.
Met mijn AI vriend online, kan ik niet vinden hoe ik dit makkelijk kan terug zetten. Vandaar mijn vraag hier of iemand de .xml zou willen uploaden, zodat ik hem kan downloaden.
Ik was ook een keer wat filters kwijt, maar heb deze toen op mijn linux bak hersteld met:
1
| php upgrade-db.php --reset-filters |
Heel erg bedankt, ik heb ze weer terug.Glamdring schreef op donderdag 23 april 2026 @ 16:05:
@smv
Ik was ook een keer wat filters kwijt, maar heb deze toen op mijn linux bak hersteld met:code:Waarschijnlijk moet je in dit commando nog het pad naar upgrade-db.php toevoegen.
1 php upgrade-db.php --reset-filters
Sinds enkele dagen krijgt de retrieve een crash:
Last retrieve: 2026-08-13 16:16:06
Retrieving new Spots from server...
Appr. Message count: 4431086
First message number: 2
Last message number: 4431088
Current article number: 4430006
Retrieving 4430006 till 4431089 (parsed: 1064, in DB: 19, signed: 1, invalid: 3, rtntn.skip: 0, mod: 96, full: 964, total: 1083)
SpotWeb v0.69.41.35 on PHP v8.5.4 crashed
Fatal error SqlErrorException occured during retrieve:
22001: 7: ERROR: value too long for type character varying(255)Je hebt ergens een kolom die "te kort is". Ik heb t in MariaDB ook gehad - weet zo alleen niet meer welke.....sciurius schreef op dinsdag 18 augustus 2026 @ 11:58:
Ik draai Spotweb al vele jaren in een docker (jgeusebroek versie) met een PostgreSQL database.
Sinds enkele dagen krijgt de retrieve een crash:Enig idee wat te doen?Last retrieve: 2026-08-13 16:16:06 Retrieving new Spots from server... Appr. Message count: 4431086 First message number: 2 Last message number: 4431088 Current article number: 4430006 Retrieving 4430006 till 4431089 (parsed: 1064, in DB: 19, signed: 1, invalid: 3, rtntn.skip: 0, mod: 96, full: 964, total: 1083) SpotWeb v0.69.41.35 on PHP v8.5.4 crashed Fatal error SqlErrorException occured during retrieve: 22001: 7: ERROR: value too long for type character varying(255)
Als ik mijn creates bekijk:
CREATE TABLE `commentsfull` (
`userkey` varchar(512) DEFAULT NULL,
CREATE TABLE `spotsfull` (
`userkey` varchar(512) CHARACTER SET ascii COLLATE ascii_general_ci DEFAULT NULL,
zijn deze 2 kolommen vermoedelijk de boosdoener. Je kunt ze online oprekken, dat zal ook in Postgress wel kunnen. Het alternatief is dan je de database "even" opnieuw opbouwt. Dat heb ik ook al meermaals gedaan, dan maakt ie de tabellen op basis van "de meest recente" definities aan.
Canon EOS | DJI M2P
Fotoblog · Mijn werk aan jouw muur
Hmm, ik heb daar (nog) geen fouten over opgemerkt (Eweka als leverancier), dat veld staat mij mij nog op 255, zal m meteen maar ophogen om problemen voor te zijnArjan A schreef op dinsdag 18 augustus 2026 @ 14:09:
Ik zag recentelijk dat er langere xmlsignatures verstuurd worden. In mijn geval was het zaak om het veld xmlsignature in de tabel spotsfull naar 512 te vergroten en de foutmeldingen verdwenen weer.
Hoe en waar pas ik dat aan?Arjan A schreef op dinsdag 18 augustus 2026 @ 14:09:
Ik zag recentelijk dat er langere xmlsignatures verstuurd worden. In mijn geval was het zaak om het veld xmlsignature in de tabel spotsfull naar 512 te vergroten en de foutmeldingen verdwenen weer.
Als je MySQL of MariaDB hebt, kan dat met phpMyAdmin of via de cmdline. Als je PostgreSQL als backend hebt, kan het ook via de cmdline. Of je gebruikt een tool als HeidiSQL of DBeaver (die kunnen met zowel Mysql/MariaDB als Postgres verbinden).
Canon EOS | DJI M2P
Fotoblog · Mijn werk aan jouw muur
In de database. Voor MariaDB gebruik ik phpmyadmin, definitie van de tabel, edit de kolom. Voor Postgres is er een soortgelijk tooltje (maar dat ken ik verder niet. Onder Windows kun je het via Navicat ook wel regelen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| % pg_dump -s spotweb | grep xmlsignature xmlsignature character varying(255), % psql spotweb -c 'alter table spotsfull alter column xmlsignature type character varying(512);' ALTER TABLE % pg_dump -s spotweb | grep xmlsignature xmlsignature character varying(512), % ~/wrk/Spotweb/Docker/retrieve.sh Last retrieve: 2026-08-13 16:16:06 Retrieving new Spots from server... Appr. Message count: 4431159 First message number: 2 Last message number: 4431161 Current article number: 4430006 Retrieving 4430006 till 4431162 (parsed: 1137, in DB: 19, signed: 0, invalid: 3, rtntn.skip: 0, mod: 111, full: 1022, total: 1156) SpotWeb v0.69.41.35 on PHP v8.5.4 crashed Fatal error SqlErrorException occured during retrieve: 22001: 7: ERROR: value too long for type character varying(255) ... etc ... % pg_dump -s spotweb | grep xmlsignature xmlsignature character varying(255), |
Moet je misschien nog een COMMIT tussen voegen? Ik ken postgres helaas niet......sciurius schreef op dinsdag 18 augustus 2026 @ 20:19:
Als ik de table column aanpas, dan zet de eerstvolgende retrieve dit weer terug en crasht dus weer.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 % pg_dump -s spotweb | grep xmlsignature xmlsignature character varying(255), % psql spotweb -c 'alter table spotsfull alter column xmlsignature type character varying(512);' ALTER TABLE % pg_dump -s spotweb | grep xmlsignature xmlsignature character varying(512), % ~/wrk/Spotweb/Docker/retrieve.sh Last retrieve: 2026-08-13 16:16:06 Retrieving new Spots from server... Appr. Message count: 4431159 First message number: 2 Last message number: 4431161 Current article number: 4430006 Retrieving 4430006 till 4431162 (parsed: 1137, in DB: 19, signed: 0, invalid: 3, rtntn.skip: 0, mod: 111, full: 1022, total: 1156) SpotWeb v0.69.41.35 on PHP v8.5.4 crashed Fatal error SqlErrorException occured during retrieve: 22001: 7: ERROR: value too long for type character varying(255) ... etc ... % pg_dump -s spotweb | grep xmlsignature xmlsignature character varying(255),
O ja en voer je wijziging door terwijl spotweb NIET actief is.
[ Voor 3% gewijzigd door DjoeC op 18-08-2026 20:49 ]
IK was vandaag mijn container aan het bijwerken (CRON_INTERVAL aanpassen) en kreeg nu inderdaad ook dezelfde crash:sciurius schreef op dinsdag 18 augustus 2026 @ 21:21:
Volgens https://github.com/spotweb/spotweb/issues/937 moet je tegenwoordig geen fullspots en fullcomments meer retrieven. Ik heb dat aangepast en nu loopt het weer. En een stuk sneller.
1
2
3
4
5
| Validating spotsfull(xmlsignature)
Modifying column xmlsignature (type) on spotsfull
SpotWeb crashed
Database schema or settings upgrade failed:
22001: 1406: Data too long for column 'xmlsignature' at row 2478980 |
Mocht ie later alsnog vastlopen doe ik wel een reset-db.
Maar, tenzij ik wat over het hoofd zie, zie je dan ook helemaal geen comments meer, je kan ze afaik ook niet pas ophalen als je een spot bekijkt. Wat heel soms een gemis is.
Blog | PVOutput Zonnig Beuningen
Ik gebruik de comments wel vrij vaak om te zien of de distributie's door anderen "compleet" ervaren zijn, er wil nog wel eens "troep" tussen staan.Nakebod schreef op woensdag 19 augustus 2026 @ 15:17:
Comments ophalen doe ik al vele jaren niet meer, dat vervuilt je database echt enorm. En gok dat je 99.99% nooit bekijkt. Meeste tijd zoek ik gewoon een *kuch* linux iso en gooi de download direct naar SABnzbd, geen comments nodig.
Maar, tenzij ik wat over het hoofd zie, zie je dan ook helemaal geen comments meer, je kan ze afaik ook niet pas ophalen als je een spot bekijkt. Wat heel soms een gemis is.
Nee, later ophalen lukt niet. Misschien een verzoek aanmaken? Wel de (commentaar) artikel ID's opslaan maar pas ophalen als de spot bekeken wordt? Aan de andere kant: Ik heb geen moeite met de omvang van de database (7-8GB) in MariaDB op een SSD.
Instellingen - Ophalen:
- Spots volledig ophalen: uit
- Comments ophalen: aan
- Comments volledig ophalen: uit
Spotweb is bij mij 1 van de "goedkoopste" en makkelijkste oplossingen. Weinig resourcebeslag, loopt op een Raspberry waar nog tig andere zaken (zoals onze Google vervanger Nextcloud en Home Assistant) op draaien. Het ding staat dus sowieso altijd aan. Het enige voordeel van andermans website is dat jij er verder geen omkijken naar hebt.baba420 schreef op donderdag 20 augustus 2026 @ 10:01:
Ik vind nzbserver dot com prima genoeg. Scheelt weer resources voor je eigen systeem.
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.