diff --git "a/.gitbook/assets/Scherm\302\255afbeelding 2024-06-13 om 19.49.40.png" "b/.gitbook/assets/Scherm\302\255afbeelding 2024-06-13 om 19.49.40.png"
deleted file mode 100644
index 6e91159..0000000
Binary files "a/.gitbook/assets/Scherm\302\255afbeelding 2024-06-13 om 19.49.40.png" and /dev/null differ
diff --git a/.gitbook/assets/apprise_notification.png b/.gitbook/assets/apprise_notification.png
deleted file mode 100644
index 4a87ef9..0000000
Binary files a/.gitbook/assets/apprise_notification.png and /dev/null differ
diff --git a/.gitbook/assets/db_notification.png b/.gitbook/assets/db_notification.png
index 05b928c..68116c5 100644
Binary files a/.gitbook/assets/db_notification.png and b/.gitbook/assets/db_notification.png differ
diff --git a/.gitbook/assets/mail_notification.png b/.gitbook/assets/mail_notification.png
index 2e69842..0281aba 100644
Binary files a/.gitbook/assets/mail_notification.png and b/.gitbook/assets/mail_notification.png differ
diff --git a/.gitbook/assets/prometheus_settings.png b/.gitbook/assets/prometheus_settings.png
new file mode 100644
index 0000000..a4d97fb
Binary files /dev/null and b/.gitbook/assets/prometheus_settings.png differ
diff --git a/.gitbook/assets/webhook_notification.png b/.gitbook/assets/webhook_notification.png
index 8fad263..04c1783 100644
Binary files a/.gitbook/assets/webhook_notification.png and b/.gitbook/assets/webhook_notification.png differ
diff --git a/README.md b/README.md
index c1ebe15..1875132 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ description: >-
# Introduction
{% hint style="info" %}
-Docs are up-to-date through version: `v1.6.0`
+Docs are up-to-date through version: `v1.13.x`
{% endhint %}

| Features | Status |
|---|---|
| Install options | |
| Docker images for x86 | Done |
| Docker images for arm64 | Done |
| unRAID Community App | Done |
| Dashboard | |
| Show the most recent results | Done |
| Pretty graphs | Done |
| Results | |
| History of failed and successful results | Done |
Filter by scheduled and successful | Done |
| Export selected results to CSV | Done |
| Speedtest options | |
| Scheduled tests | Done |
| Adhoc test | Done |
| Manually specify a server | Done |
| Manually specify a list of servers | Done |
| Threshold alerts | Done |
| Ping options | |
| Ping a domain or list of domains | Planned |
| Database support | |
| SQLite (default) | Done |
| MariaDB / MySQL | Done |
| Postgresql | Done |
| InfluxDB v2 | Done |
| Prometheus | Planned |
| Notification Channels | |
| In-app | Done |
| Done | |
| Discord | Done |
| Gotify | Done |
| Slack | Done |
| Telegram | Done |
| Webhooks | Done |
| Ntfy | Done |
| Pushover | Done |
| HealthCheck.io | Done |
| Application Monitoring | |
| https://ohdear.app/ | Planned |
| https://thenping.me/ | Planned |
| https://healthchecks.io/ | Planned |
| Features | Status |
|---|---|
| Install options | |
| Docker images for x86 | Done |
| Docker images for arm64 | Done |
| unRAID Community App | Done |
| Dashboard | |
| Show the most recent results | Done |
| Pretty graphs | Done |
| Results | |
| History of failed and successful results | Done |
Filter by scheduled and successful | Done |
| Export selected results to CSV | Done |
| Speedtest options | |
| Scheduled tests | Done |
| Adhoc test | Done |
| Manually specify a server | Done |
| Manually specify a list of servers | Done |
| Threshold alerts | Done |
| Ping options | |
| Ping a domain or list of domains | Planned |
| Database support | |
| SQLite (default) | Done |
| MariaDB / MySQL | Done |
| Postgresql | Done |
| InfluxDB v2 | Done |
| Prometheus | Done |
| Notification Channels | |
| In-app | Done |
| Done | |
| Webhooks | Done |
| Apprise | Done |
| Application Monitoring | |
| https://ohdear.app/ | Planned |
| https://thenping.me/ | Planned |
| https://healthchecks.io/ | Planned |
| Name | Required | Description | Example |
|---|---|---|---|
PUID | true | Used to set the user the container should run as. | 1000 |
PGID | true | Used to set the group the container should run as. | 1000 |
APP_NAME | false | Used to define the application's name in the dashboard and in notifications. | |
APP_KEY | true | Key used to encrypt and decrypt data. See the install docs to generate a key. | |
ADMIN_NAME | false | Name of the initial admin user. Note: Only effective during initial setup. | Admin |
ADMIN_EMAIL | false | Email of the initial admin user. Note: Only effective during initial setup. | admin@example.com |
ADMIN_PASSWORD | false | Password of the initial admin user. Note: Only effective during initial setup. | password |
ALLOWED_IPS | false | Block requests to the application unless from the allowed addresses. | 127.0.0.1,127.0.0.2 |
APP_URL | false | URL used for links in emails and notifications. | https://speedtest.example.com |
ASSET_URL | false | URL used for assets, needed when using a reverse proxy. | https://speedtest.example.com |
APP_TIMEZONE | false | Application timezone should be set if your database does not use UTC as its default timezone. | Europe/London |
CHART_BEGIN_AT_ZERO | false | Begin the dashboard axis charts at zero. - Default: true | true or false |
CHART_DATETIME_FORMAT | false | Set the formatting of timestamps in charts. Formatting: https://www.php.net/manual/en/datetime.format.php | j/m G:i(18/10 20:06) |
DATETIME_FORMAT | false | Set the formatting of timestamps in tables and notifications. Formatting: https://www.php.net/manual/en/datetime.format.php | j M Y, G:i:s(18 Oct 2024, 20:06:01) |
DISPLAY_TIMEZONE | false | Display timestamps in your local time. | America/New_York |
CONTENT_WIDTH | false | Width of the content section of each page. Can be set to any value found in the Filament docs. - Default: 7xl | |
PUBLIC_DASHBOARD | false | Enables the public dashboard for guest (unauthenticated) users. - Default: false |
| Name | Required | Description | Example |
|---|---|---|---|
PUID | true | Used to set the user the container should run as. | 1000 |
PGID | true | Used to set the group the container should run as. | 1000 |
APP_KEY | true | Key used to encrypt and decrypt data. See the install docs to generate a key. | |
APP_URL | true | URL used for links in emails and notifications. | https://speedtest.example.com |
APP_NAME | false | Used to define the application's name in the dashboard and in notifications. | |
ADMIN_NAME | false | Name of the initial admin user. Note: Only effective during initial setup. | Admin |
ADMIN_EMAIL | false | Email of the initial admin user. Note: Only effective during initial setup. | admin@example.com |
ADMIN_PASSWORD | false | Password of the initial admin user. Note: Only effective during initial setup. | password |
ASSET_URL | false | URL used for assets, needed when using a reverse proxy. | https://speedtest.example.com |
APP_LOCALE | false | Change the default language. | |
APP_TIMEZONE | false | Application timezone should be set if your database does not use UTC as its default timezone. | Europe/London |
ALLOWED_IPS | false | Block requests to the application unless from the allowed addresses. | 127.0.0.1,127.0.0.2 |
| Name | Required | Description | Example |
|---|---|---|---|
SPEEDTEST_SKIP_IPS | false | A comma separated list of public IP addresses where tests will be skipped when present. | 127.0.0.1 or 127.0.0.0/16 |
SPEEDTEST_SCHEDULE | false | Cron expression used to run speedtests on a scheduled basis. https://crontab.guru/ is a helpful tool. | 6 */2 * * *(At minute 6 past every 2nd hour) |
SPEEDTEST_SERVERS | false | Comma separated list of server IDs to randomly use for speedtest. To find servers near you visit: https://c.speedtest.net/speedtest-servers-static.php | 52365 or 36998,52365 |
SPEEDTEST_BLOCKED_SERVERS | false | Comma separated list of server IDs that should not be used when running speedtests. | |
SPEEDTEST_INTERFACE | false | Set the network interface to use for the test. This need to be the network interface available inside the container | eth0 |
SPEEDTEST_CHECKINTERNET_URL | false | Set the URL used for checking of an active internet connection. We check only for an HTTP 200 response ocde. | |
THRESHOLD_ENABLED | false | Enable the thresholds. Note: Only effective during initial setup. | true |
THRESHOLD_DOWNLOAD | false | Set the Download Threshold Note: Only effective during initial setup. | 900 |
THRESHOLD_UPLOAD | false | Set the Upload Threshold Note: Only effective during initial setup. | 900 |
THRESHOLD_PING | false | Set the Ping Threshold Note: Only effective during initial setup. | 25 |
PRUNE_RESULTS_OLDER_THAN | false | Set the value to greater than zero to prune stored results. This value should be represented in days, e.g. 7 will purge all results over 7 days old. | 7 |
| Name | Required | Description | Example |
|---|---|---|---|
CHART_BEGIN_AT_ZERO | false | Begin the dashboard axis charts at zero. - Default: true | true or false |
CHART_DATETIME_FORMAT | false | Set the formatting of timestamps in charts. Formatting: https://www.php.net/manual/en/datetime.format.php | j/m G:i(18/10 20:06) |
DATETIME_FORMAT | false | Set the formatting of timestamps in tables and notifications. Formatting: https://www.php.net/manual/en/datetime.format.php | j M Y, G:i:s(18 Oct 2024, 20:06:01) |
DISPLAY_TIMEZONE | false | Display timestamps in your local time. | America/New_York |
CONTENT_WIDTH | false | Width of the content section of each page. Can be set to any value found in the Filament docs. - Default: 7xl | |
PUBLIC_DASHBOARD | false | Enables the public dashboard for guest (unauthenticated) users. - Default: false | |
DEFAULT_CHART_RANGE | false | Set the default time range for the dashboards - Default: 24h | Options: 24h, week or month |
| Name | Required | Description | Example |
|---|---|---|---|
SPEEDTEST_SKIP_IPS | false | A comma separated list of public IP addresses where tests will be skipped when present. | 127.0.0.1 or 127.0.0.0/16 |
SPEEDTEST_SCHEDULE | false | Cron expression used to run speedtests on a scheduled basis. https://crontab.guru/ is a helpful tool. | 6 */2 * * *(At minute 6 past every 2nd hour) |
SPEEDTEST_SERVERS | false | Comma separated list of server IDs to randomly use for speedtest. To find servers near you visit: https://c.speedtest.net/speedtest-servers-static.php | 52365 or 36998,52365 |
SPEEDTEST_BLOCKED_SERVERS | false | Comma separated list of server IDs that should not be used when running an Ookla Speedtest. | |
SPEEDTEST_INTERFACE | false | Set the network interface to use for the test. This need to be the network interface available inside the container | eth0 |
SPEEDTEST_EXTERNAL_IP_URL | false | URL of a service used to get the external WAN IP address. | |
SPEEDTEST_INTERNET_CHECK_HOSTNAME | false | Hostname used to ping for an active internet connection. | |
THRESHOLD_ENABLED | false | Enable the thresholds. Note: Only effective during initial setup. | true |
THRESHOLD_DOWNLOAD | false | Set the Download Threshold Note: Only effective during initial setup. | 900 |
THRESHOLD_UPLOAD | false | Set the Upload Threshold Note: Only effective during initial setup. | 900 |
THRESHOLD_PING | false | Set the Ping Threshold Note: Only effective during initial setup. | 25 |
PRUNE_RESULTS_OLDER_THAN | false | Set the value to greater than zero to prune stored results. This value should be represented in days, e.g. 7 will purge all results over 7 days old. | 7 |
| Name | Required | Description | Example |
|---|---|---|---|
API_RATE_LIMIT | false | Number of requests per minute to the API. - Default: 60 | 100 |
| Name | Required | Description | Example |
|---|---|---|---|
API_RATE_LIMIT | false | Number of requests per minute to the API. - Default: 60 | 100 |
API_MAX_RESULTS | false | Sets the maximum number of results returned by API. - Default 500 | 500 |
docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8080:80 \
-p 8443:443 \
- -e PUID=1000 \
- -e PGID=1000 \
- -e APP_KEY= \
+ -e PUID= \
+ -e PGID= \
+ -e APP_KEY= \
+ -e APP_URL= \
-e DB_CONNECTION=sqlite \
-v /path/to/data:/config \
-v /path/to-custom-ssl-keys:/config/keys \
lscr.io/linuxserver/speedtest-tracker:latest
-```
+
{% endtab %}
{% tab title="MariaDB" %}
@@ -51,9 +57,10 @@ docker run -d --name speedtest-tracker --restart unless-stopped \
docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8080:80 \
-p 8443:443 \
- -e PUID=1000 \
- -e PGID=1000 \
- -E APP_KEY= \
+ -e PUID= \
+ -e PGID= \
+ -e APP_KEY= \
+ -e APP_URL= \
-e DB_CONNECTION=mariadb \
-e DB_HOST= \
-e DB_PORT=3306 \
@@ -71,9 +78,10 @@ docker run -d --name speedtest-tracker --restart unless-stopped \
docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8080:80 \
-p 8443:443 \
- -e PUID=1000 \
- -e PGID=1000 \
- -e APP_KEY= \
+ -e PUID= \
+ -e PGID= \
+ -e APP_KEY= \
+ -e APP_URL= \
-e DB_CONNECTION=mysql \
-e DB_HOST= \
-e DB_PORT=3306 \
@@ -93,7 +101,8 @@ docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8443:443 \
-e PUID=1000 \
-e PGID=1000 \
- -e APP_KEY=
+ -e APP_KEY= \
+ -e APP_URL= \
-e DB_CONNECTION=pgsql \
-e DB_HOST= \
-e DB_PORT=5432 \
@@ -113,13 +122,13 @@ If you would like to provide your own SSL keys, they must be named `cert.crt` (f
{% endstep %}
{% step %}
-#### **Environment Variables**
+**Environment Variables**
In order for the application to run smoothly, some environment variables need to be set. Check out the [Environment Variables](../environment-variables.md) section. Make sure all **required** variables are configured.
{% endstep %}
{% step %}
-#### **Configuration Variables (Optional)**
+**Configuration Variables (Optional)**
You can set configuration variables to have automatic speedtest on an schedule. Check out the [Environment Variables](../environment-variables.md#speedtest) section on how to set the variables. Also see the [FAQ](../../help/faqs.md#speedtest) for tips effectively scheduling tests.
@@ -129,14 +138,18 @@ Complete overview of the Environment Variables for custom configuration can be f
{% endstep %}
{% step %}
-#### **Start the Container**
+**Start the Container**
You can now start the container accordingly the platform you are on.
{% endstep %}
{% step %}
-#### **First Login**
+**First Login**
During the start the container there is a default username and password created. Use the [default login](../../security/authentication.md#default-user-account) credentials to login to the application. You can [change the default user](../../security/authentication.md#change-account-details) after logging in.
{% endstep %}
{% endstepper %}
+
+[^1]: Generate with: `echo -n 'base64:'; openssl rand -base64 32`
+
+[^2]: The URL where you'll access the app (e.g., `http://localhost:8080`)
diff --git a/getting-started/installation/using-qnap.md b/getting-started/installation/using-qnap.md
index a63287c..4e1f36b 100644
--- a/getting-started/installation/using-qnap.md
+++ b/getting-started/installation/using-qnap.md
@@ -30,8 +30,8 @@ services:
- 8080:80
- 8443:443
environment:
- - PUID=1000
- - PGID=1000
+ - PUID=
+ - PGID=
- DB_CONNECTION=mariadb
- DB_HOST=db
- DB_PORT=3306
diff --git a/getting-started/installation/using-synology.md b/getting-started/installation/using-synology.md
index 84dcbec..c08d71a 100644
--- a/getting-started/installation/using-synology.md
+++ b/getting-started/installation/using-synology.md
@@ -12,30 +12,55 @@ The following directions are for the old "Docker" application, if you're using "
### Install on a Synology NAS
-Open the Docker interface of your Synology Device, search for `ajustesen/speedtest-tracker` in the Registry and download it.
+{% hint style="warning" %}
+This guide assumes you know how to use the old "Docker" application.
+{% endhint %}
+
+{% stepper %}
+{% step %}
+#### Download Image
+
+Open the Docker interface of your Synology Device, search for `linuxserver/speedtest-tracker` in the Registry and download it.
+{% endstep %}
-
+{% step %}
+#### Create Directory
Create a local directory (i.e. `/volume1/docker/speedtest-tracker`) which later can be mapped to the docker container.
+{% endstep %}
+
+{% step %}
+#### Start Image
Launch the image once the download is completed.
+{% endstep %}
-
+{% step %}
+#### Map Ports
Map the ports to available ports.
-
+| Local Port | Container Port |
+| ---------- | -------------- |
+| 8443 | 443 |
+| 8080 | 80 |
{% hint style="info" %}
Make sure the ports you choose are not used by any other application or DSM service on your device and remember to adjust the Synology Firewall settings accordingly.
{% endhint %}
+{% endstep %}
+
+{% step %}
+#### Map Directory
Map the directory you created earlier to the mount path `/config`.
+{% endstep %}
-
+{% step %}
+#### Finish
Review your settings and click "done".
-
-
You can now access Speedtest-Tracker via `http://YOUR_IP_ADDRESS:8080` or `https://YOUR_IP_ADDRESS:8443`.
+{% endstep %}
+{% endstepper %}
diff --git a/help/error-messages.md b/help/error-messages.md
index 09d958e..c16f48d 100644
--- a/help/error-messages.md
+++ b/help/error-messages.md
@@ -1,18 +1,82 @@
# Error Messages
-### Speedtest errors
+### Troubleshooting
+
+For all below errors there will be more information provided in the container logs. You can check the logs for more details by checking the container logs by running `docker logs speedtest-tracker`.
+
+or any other equivalent command for your setup.
+
+500 | SERVER ERROR erroraes-128-cbc, aes-256-cbc, aes-128-gcm, aes-256-gcm.500 | SERVER ERROR error| Command | Description |
|---|---|
app:install | Installs a fresh version of Speedtest Tracker. If you have an existing install this will delete all data. |
app:ookla-list-servers | Get a list of local Ookla speedtest servers. |
app:user-change-role | Change the role for a user. |
app:user-reset-password | Change the password for a user. |
| Command | Description |
|---|---|
app:ookla-list-servers | Get a list of local Ookla speedtest servers. |
app:user-change-role | Change the role for a user. |
app:user-reset-password | Change the password for a user. |
| Command | Description |
|---|---|
app:result-fix-statuses | Reviews the data payload of each result and corrects the status attribute. |
| User | Admin | |
|---|---|---|
| Trigger a manual Speedtest | false | true |
| User | Admin | |
|---|---|---|
| Manage API tokens | false | true |
| Trigger a manual Speedtest | true | true |

| Name | |
|---|---|
app_name | label |
isp | label |
server_id | label |
server_name | label |
server_country | label |
server_location | label |
healthy | label |
status | label |
scheduled | label |
download_bytes | Metric |
upload_bytes | Metric |
ping | Metric |
download_bits | Metric |
upload_bits | Metric |
download_jitter | Metric |
upload_jitter | Metric |
ping_jitter | Metric |
download_latency_avg | Metric |
download_latency_high | Metric |
download_latency_low | Metric |
upload_latency_avg | Metric |
upload_latency_high | Metric |
upload_latency_low | Metric |
packet_loss | Metric |

Apprise Settings
| Name | Description |
|---|---|
| URL | This is the URL of your running Apprise API instance |
| Service URL | This is the URL of the service that will receive the notification. You can find a full list of supported services and how to format their URLs in the Apprise notification services documentation. |
| Name | Description |
|---|---|
| On completed speedtest | On each successful speedtest a notification will be send to the application. |
| On absolute threshold failure | On any absolute threshold failure a notification will be send to the application. |
| Name | Description |
|---|---|
| on every scheduled speedtest run | On each successful scheduled speedtest a notification will be send to the application. |
| on threshold failures for scheduled speedtests | On any absolute threshold failure for scheduled speedtest a notification will be send to the application. |
| Name | Description |
|---|---|
| On completed speedtest | On each successful speedtest a notification will be send to the application. |
| On absolute threshold failure | On any absolute threshold failure a notification will be send to the application. |
| Name | Description |
|---|---|
| on every scheduled speedtest run | On each successful scheduled speedtest a notification will be send to the application. |
| on threshold failures for scheduled speedtests | On any absolute threshold failure for scheduled speedtest a notification will be send to the application. |
| Name | Description |
|---|---|
| On completed speedtest | On each successful speedtest a notification will be send to the application. |
| On absolute threshold failure | On any absolute threshold failure a notification will be send to the application. |
| Name | Description |
|---|---|
| on every scheduled speedtest run | On each successful scheduled speedtest a notification will be send to the application. |
| on threshold failures for scheduled speedtests | On any absolute threshold failure for scheduled speedtest a notification will be send to the application. |
| Name | Description |
|---|---|
| On completed speedtest | On each successful speedtest a notification will be send to the application. |
| On absolute threshold failure | On any absolute threshold failure a notification will be send to the application. |
| Name | Description |
|---|---|
| on every scheduled speedtest run | On each successful scheduled speedtest a notification will be send to the application. |
| on threshold failures for scheduled speedtests | On any absolute threshold failure for scheduled speedtest a notification will be send to the application. |