LibreSpeed – self-hosted speedtest

LibreSpeed ist ein freier und konfigurierbarer Open Source self-hosted speedtest. (No Flash, No Java, No Websocket, No Bullshit.)
Auf einem lokalen Server installiert, läßt sich damit die Geschwindigkeit im LAN und WLAN testen.

26.07.2023 - Anleitung aktualisiert (Debian 12)
24.09.2021 - Anleitung aktualisiert (Debian 11)

Features:

  • Download
  • Upload
  • Ping
  • Jitter
  • IP Address, ISP, distance from server (optional)
  • Telemetry (optional)
  • Results sharing (optional)
  • Multiple Points of Test (optional)

LibreSpeed im Docker Container

Docker – https://github.com/librespeed/speedtest/blob/master/doc_docker.md

Als Docker Container ist die Anwendung schnell installiert.

$ docker pull adolfintel/speedtest
$ docker run -e MODE=standalone -p 80:80 -it adolfintel/speedtest

# für den dauerhaften Einsatz
$ docker run -e MODE=standalone --restart=unless-stopped -p 80:80 -d adolfintel/speedtest

Webinterface

LibreSpeed unter Debian 12

Linux – Installation (doc.md)

Auch unter Linux ist die Anwendung ohne großen Aufwand installiert.

$ cd /opt
$ apt install -y git apache2 php
$ git clone https://github.com/adolfintel/speedtest.git
$ cd speedtest
$ cp -Rv backend favicon.ico speedtest* /var/www/html/
$ chown -R www-data:www-data /var/www/html

# guter Ausgangspunkt ist die single-Server-gauges.html (ohne Datenbank, ohne der Speicherung von Telemetriedaten)
$ cp -v example-singleServer-gauges.html /var/www/html/index.html

Standard Webinterface der singleServer-gauges.

Angepasstes Webinterface der singleServer-gauges. (librespeed-dark.zip)

Sollen die Ergebnisse in einer Datenbank gespeichert werden, sind noch ein paar Vorbereitungen nötig. (für eine SQLite Datenbank)

$ apt install -y sqlite3 php-sqlite3 php-gd
$ cp -Rv /opt/speedtest/results /var/www/html/
$ cp -Rv /opt/speedtest/example-singleServer-full.html /var/www/html/index_full.html
$ chown -R www-data:www-data /var/www/html

Anpassung in der results/telemetry_settings.php.

<?php
// Type of db: "mysql", "sqlite" or "postgresql"
$db_type = 'sqlite';
// Password to login to stats.php. Change this!!!
$stats_password = 'CHANGEME';
// If set to true, test IDs will be obfuscated to prevent users from guessing URLs of other tests
$enable_id_obfuscation = false;
// If set to true, IP addresses will be redacted from IP and ISP info fields, as well as the log
$redact_ip_addresses = false;
// Sqlite3 settings (Datenbank wird automatisch erstellt)
$Sqlite_db_file = '../speedtest_telemetry.sql';

Apache neu starten um die PHP Module zu aktualisieren.

$ systemctl restart apache2

Die index_full.html ausführen. Über die URL /results/stats.php lassen sich die gespeicherten Ergebnisse abrufen.

LibreSpeed CLI

Command Line Interface – https://github.com/librespeed/speedtest-cli

Speedtest für die WAN Verbindung. Um nicht selbst kompilieren zu müssen, nehme ich einfach ein fertiges binary.

$ wget https://github.com/librespeed/speedtest-cli/releases/download/v1.0.10/librespeed-cli_1.0.10_linux_amd64.tar.gz
$ tar xvfz librespeed-cli_1.0.10_linux_amd64.tar.gz
$ cp librespeed-cli /usr/local/bin/

Liste der verfügbaren Backend-Server ausgeben.

$ librespeed-cli --list
Retrieving server list from https://librespeed.org/backend-servers/servers.php
---SNIP---
28: Nuremberg, Germany (1) (Hetzner) (http://de1.backend.librespeed.org)  [Sponsor: Snopyta @ https://snopyta.org]
30: Nuremberg, Germany (3) (Hetzner) (http://de3.backend.librespeed.org)  [Sponsor: LibreSpeed @ https://librespeed.org]
31: Nuremberg, Germany (4) (Hetzner) (http://de5.backend.librespeed.org)  [Sponsor: LibreSpeed @ https://librespeed.org]
32: Nuremberg, Germany (5) (Hetzner) (https://speedtest.ciapa.tech/) 
46: Nuremberg, Germany (6) (Hetzner) (http://librespeed.lukas-heinrich.com/)  [Sponsor: luki9100 @ https://lukas-heinrich.com/]
59: Oslo, Norway (HostHatch) (https://no1.backend.librespeed.org)  [Sponsor: LibreSpeed @ https://librespeed.org]
57: Paris, France (2) (online.net) (https://muchspeed.network)  [Sponsor: Linuxxx]
35: Roma, Italy (GARR) (https://st-be-rm2.infra.garr.it)  [Sponsor: Consortium GARR @ https://garr.it]
39: Roost, Luxembourg (BuyVM) (https://lux1.backend.librespeed.nixnet.services/)  [Sponsor: NixNet @ https://nixnet.services]
44: Strasbourg, France (Host Europe) (https://sxb.bandspeed.de/)  [Sponsor: adminForge @ https://adminforge.de/]
58: Warsaw, Poland (HostHatch) (https://pl1.backend.librespeed.org)  [Sponsor: LibreSpeed @ https://librespeed.org]

Ich nehme den Server mit der ID 28.

$ librespeed-cli --telemetry-level disabled --server 28
Retrieving server list from https://librespeed.org/backend-servers/servers.php
Selected server: Nuremberg, Germany (1) (Hetzner) [de1.backend.librespeed.org]
Sponsored by: Snopyta @ https://snopyta.org
You're testing from: 5.xx.xxx.xxx - PROVIDER Info GmhH, DE (130 km)
Ping: 35 ms     Jitter: 6 ms
Download rate:  99.57 Mbps
Upload rate:    16.47 Mbps

2 Gedanken zu „LibreSpeed – self-hosted speedtest“

Schreibe einen Kommentar zu Steffen Antworten abbrechen