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
index ca3b1ff..a4d97fb 100644
Binary files a/.gitbook/assets/prometheus_settings.png 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 0a469a1..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.7.x`
+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_LOCALE | false | Change the default langugage. | |
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 | |
DEFAULT_CHART_RANGE | false | Set the default time range for the dashboards - Default: 24h- Values: 24h, week, month | week |
| 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 |
API_MAX_RESULTS | false | Sets the maximum number of results returned by API. - Default 500 | 500 |
| 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= \
-e PGID= \
- -e APP_KEY= \
+ -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" %}
@@ -59,7 +59,8 @@ docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8443:443 \
-e PUID= \
-e PGID= \
- -e APP_KEY= \
+ -e APP_KEY= \
+ -e APP_URL= \
-e DB_CONNECTION=mariadb \
-e DB_HOST= \
-e DB_PORT=3306 \
@@ -79,7 +80,8 @@ docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8443:443 \
-e PUID= \
-e PGID= \
- -e APP_KEY= \
+ -e APP_KEY= \
+ -e APP_URL= \
-e DB_CONNECTION=mysql \
-e DB_HOST= \
-e DB_PORT=3306 \
@@ -99,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 \
@@ -146,3 +149,7 @@ You can now start the container accordingly the platform you are on.
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-synology.md b/getting-started/installation/using-synology.md
index d1bae61..c08d71a 100644
--- a/getting-started/installation/using-synology.md
+++ b/getting-started/installation/using-synology.md
@@ -18,25 +18,25 @@ This guide assumes you know how to use the old "Docker" application.
{% stepper %}
{% step %}
-### Download Image
+#### 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 Directory
Create a local directory (i.e. `/volume1/docker/speedtest-tracker`) which later can be mapped to the docker container.
{% endstep %}
{% step %}
-### Start Image
+#### Start Image
Launch the image once the download is completed.
{% endstep %}
{% step %}
-### Map Ports
+#### Map Ports
Map the ports to available ports.
@@ -51,13 +51,13 @@ Make sure the ports you choose are not used by any other application or DSM serv
{% endstep %}
{% step %}
-### Map Directory
+#### Map Directory
Map the directory you created earlier to the mount path `/config`.
{% endstep %}
{% step %}
-### Finish
+#### Finish
Review your settings and click "done".
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| User | Admin | |
|---|---|---|
| Manage API tokens | false | true |
| Trigger a manual Speedtest | false | true |
| User | Admin | |
|---|---|---|
| Manage API tokens | false | true |
| Trigger a manual Speedtest | true | true |
| Name | Default | Description |
|---|---|---|
| Use Basic Authentication | false | Enable / Disable Basic Auth |
| username | blank | username for authentication |
| password | blank | password for authentication |


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. |