fix(speedtest): follow LibreSpeed to its maintained image

adolfintel/speedtest was last rebuilt 1624 days ago — 4.4 years, the
worst in the catalogue. LibreSpeed itself is fine: the project moved to
the librespeed org, and LinuxServer.io's build was rebuilt 2 days ago.

Chose lscr.io/linuxserver/librespeed over the org's own ghcr.io image
specifically because it is on Docker Hub: our tag enumeration and the
new staleness signal can query Hub but not ghcr, so this keeps the app
visible to the tooling that would catch it going stale again.

Not a tag swap. The LSIO image uses their house conventions, so the env
block is ported rather than copied: PUID/PGID/TZ (matching bookstack,
the catalogue's other LSIO app) and everything under /config instead of
/database. MODE, WEBPORT and ENABLE_ID_OBFUSCATION have no equivalent —
this image is standalone by design and always serves on 80 internally,
which is what our port mapping already assumed.

PASSWORD and DB_TYPE keep their names and meaning, so the existing
config keys still drive the results page and telemetry. DB_NAME is
deliberately left unset: the image picks a path inside /config, and
guessing one risks a database sitting outside the volume.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
librelad 2026-08-18 04:02:01 +01:00
parent b7f3d30170
commit 298ccf4868
2 changed files with 15 additions and 8 deletions

View File

@ -5,17 +5,24 @@ networks:
services:
speedtest-service: #LIBREPORTAL|SERVICE_TAG_1|speedtest-service
container_name: speedtest-service
image: adolfintel/speedtest:latest #LIBREPORTAL|SPEEDTEST_VERSION_TAG|latest
image: lscr.io/linuxserver/librespeed:latest #LIBREPORTAL|SPEEDTEST_VERSION_TAG|latest
restart: unless-stopped
hostname: speedtest
# LinuxServer.io build of LibreSpeed — same software, maintained. Their
# images take PUID/PGID (matching the other LSIO app in the catalogue,
# bookstack) and keep everything under /config. MODE, WEBPORT and
# ENABLE_ID_OBFUSCATION have no equivalent here: this image is standalone
# by design and always serves on 80 internally.
environment:
- MODE=standalone
- TELEMETRY=true
- ENABLE_ID_OBFUSCATION=true
- PUID=1000
- PGID=1000
- TZ=TIMEZONE_DATA #LIBREPORTAL|TIMEZONE_TAG|TIMEZONE_DATA
# Guards the results page at /results/stats.php, same as before.
- PASSWORD=SPEEDTEST_PASSWORD_DATA #LIBREPORTAL|SPEEDTEST_PASSWORD_TAG|SPEEDTEST_PASSWORD_DATA
- WEBPORT=PORT_INTERNAL_DATA_1 #LIBREPORTAL|PORT_INTERNAL_TAG_1|PORT_INTERNAL_DATA_1
# Setting a DB type is what turns telemetry on. DB_NAME is deliberately
# left unset so the image picks its own path inside /config — guessing one
# risks a database that silently is not persisted by the volume below.
- DB_TYPE=sqlite
- DB_NAME=/database/db.sql
# GLUETUN_OFF_BEGIN
ports:
- "PORTS_DATA_1" #LIBREPORTAL|PORTS_TAG_1|PORTS_DATA_1
@ -36,7 +43,7 @@ services:
disable: HEALTHCHECK_DATA #LIBREPORTAL|HEALTHCHECK_TAG|HEALTHCHECK_DATA
volumes:
- SOCKET_DATA #LIBREPORTAL|SOCKET_TAG|SOCKET_DATA
- ./database:/database
- ./config:/config
# GLUETUN_OFF_BEGIN
networks:
DOCKER_NETWORK_DATA: #LIBREPORTAL|DOCKER_NETWORK_TAG|DOCKER_NETWORK_DATA

View File

@ -38,7 +38,7 @@ CFG_SPEEDTEST_PASSWORD=RANDOMIZEDPASSWORD1
# ACTIONS = available actions for this application
#
CFG_SPEEDTEST_CATEGORY="networking"
CFG_SPEEDTEST_TITLE="Speedtest"
CFG_SPEEDTEST_TITLE="LibreSpeed"
CFG_SPEEDTEST_DESCRIPTION="Network Performance Monitoring"
CFG_SPEEDTEST_LONG_DESCRIPTION="Lightweight speedtest implemented in Javascript that provides accurate network speed measurements"
CFG_SPEEDTEST_URL="https://github.com/librespeed/speedtest"