Membuat speedtest server di jaringan lokal

Yang kita butuhkan untuk membuat speedtest server adalah apache2 (web server) php, mariadb/mysql untuk mengelola database, dan source code speedtest

Install semuanya

apt install apache2 php (beserta modul php) mariadb-server

Install git untuk menambil/cloning source code

sudo apt install git

Cloning source code speedtest

git clone https://github.com/librespeed/speedtest.git

Setelah cloning selesai akan muncul folder baru bernama speedtest

Testing libre speedtest example

Bukan folder speedtest hasil cloning

cd speedtest

Salin beberapa file dan folder ke dalam direktori html (document root web server)

sudo cp -R backend/ example-singleServer-pretty.html *.js /var/www/html/

Masuk kedalam direktori html

cd /var/www/html

Ubah nama file example-singleServer-pretty.html menjadi index.html

sudo mv example-singleServer-pretty.html index.html

Ubah kepemilikan seluruh file yang ada di dalam direktori html menjadi milik www-data

sudo chown -R www-data *

Install database libre speedtest

Setelah kita menginstall database maka hasil speedtest bisa kita lihat dan kita bagikan

Kembali ke dalam direktori speedtest

cd /home/namauser/speedtest

Salin direktori results ke direktori html (web server)

sudo cp -R results/ /var/www/html/

Masuk kedalam direktori html

cd /var/www/html

Ubah kepemilikan seluruh file yang ada di direktori html (ini berfungsi agar direktori results yang sebelumnya kita salin ke direktori html berubah kepemilikannya menjadi www-data juga)

sudo chown -R www-data *

Masuk ke dalam direktori results

cd results

Setup mariadb hingga selesai

mysql_secure_installation

Masuk kedalam mysql

sudo mysql

Atau,

mysql -u root -p

Lalu masukkan password

Membuat database untuk libre speedtest

create database namadatabase;

Membuat user untuk mengelola database libre speedtest

CREATE USER 'namauser'@'localhost' IDENTIFIED BY 'katasandi';

Menambahkan izin user untuk mengelola database

GRANT ALL PRIVILEGES ON namadatabase.* TO 'namauser'@'localhost';

Flush !

FLUSH PRIVILEGES;

Keluar

quit;
Catatan:
Sesuaikan 'namadatabase' dengan nama database yang kamu mau
Sesuaikan 'namauser' dengan nama user yang kamu mau

Edit dan lakukan konfigurasi isi file telemetry_settings.php

sudo nano telemetry_settings.php

Sesuaikan sebagai berikut

<?php

// Type of db: "mysql", "sqlite" or "postgresql"
$db_type = 'mysql';
// Password to login to stats.php. Change this!!!
$stats_password = 'pass123';
// If set to true, test IDs will be obfuscated to prevent users from guessing URLs of other tests
$enable_id_obfuscation = true;
// 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
$Sqlite_db_file = '../../speedtest_telemetry.sql';

// Mysql settings
$MySql_username = 'fariz';
$MySql_password = 'farizanwar25';
$MySql_hostname = 'localhost';
$MySql_databasename = 'speedtest';
$MySql_port = '3306';

// Postgresql settings
$PostgreSql_username = 'USERNAME';
$PostgreSql_password = 'PASSWORD';
$PostgreSql_hostname = 'DB_HOSTNAME';
$PostgreSql_databasename = 'DB_NAME';
Ubah parameter: 
$db_type menjadi 'mysql'
$stats_password menjadi 'pass123'
$enable_id_obfuscation menjadi true
$MySql_username menjadi 'namauser yang telah dibuat'
$MySql_password menjadi 'password user yang telah dibuat'
$MySql_hostname menjadi 'localhost'
$MySql_databasename menjadi 'database yang telah dibuat'

Masuk ke direktori results

cd /home/namauser/speedtest/results

Import database libre speedtest kedalam database speedtest yang telah dibuat

mysql -u namauser -p speedtest < telemetry_mysql.sql 

Lalu masukan password user yang telah kita buat pada saat membuat database

Pastikan import database sudah berhasil, cara melihatnya sebagai berikut:

mysql -u namauser -p

Masukkan password user

Setelah masuk kedalam mysql, lakukan hal berikut:

Pilih database speedtest yang telah dibuat

use namadatabase;

Lihat tabel yang ada

show tables;

Pastikan terdapat tabel dengan nama speedtest_users seperti berikut

MariaDB [namadatabase]> show tables;
+---------------------+
| Tables_in_speedtest |
+---------------------+
| speedtest_users     |
+---------------------+
1 row in set (0.000 sec)

Masuk ke dalam direktori speedtest

cd /home/namauser/speedtest

Salin file example-singleServer-full.html ke direktori /var/www/html/

sudo cp example-singleServer-full.html /var/www/html/

Masuk ke dalam direktorii /var/ww/html

cd /var/www/html/

Ubah nama example-singleServer-full.html menjadi index.html

sudo mv example-singleServer-full.html index.html

Buka web browser dan jalankan test

Melihat daftar hasil speedtest

Buka halaman

domainURL_ip/results/stats.php

Lalu login menggunakan passowrd yang telah disesuaikan pada saat mengedit telemetry_settings.php dengan parameter $stats_password = 'password';

Sumber/referensi: 
https://i12bretro.github.io/tutorials/0276.html (Recomended)
https://www.youtube.com/watch?v=FyQaO34qz5k (Video Recomded)