Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
29a0672
chore: update ci workflows (#2445)
svenvg93 Nov 27, 2025
a5c77ec
New Crowdin updates (#2435)
alexjustesen Nov 27, 2025
4ced281
Release v1.10.0 (#2446)
alexjustesen Nov 27, 2025
ef483fb
Unifi API connector (#2450)
alexjustesen Nov 27, 2025
8bb7738
Add composer bump command to post-update hooks (#2451)
alexjustesen Nov 27, 2025
6e90fb7
Update parameter name from 'per_page' to 'per.page' in OpenAPI spec (…
alexjustesen Nov 27, 2025
ed62109
Release v1.10.1 (#2453)
alexjustesen Nov 27, 2025
28418c3
Add LibreSpeed cli to dev image (#2455)
alexjustesen Nov 28, 2025
addd40b
bug: fix mails on completed speedtest (#2457)
svenvg93 Nov 28, 2025
d2f5d76
feat: clarity notification usage (#2458)
svenvg93 Nov 28, 2025
68517d0
Moved webhooks docs alert (#2460)
alexjustesen Nov 28, 2025
b9170ce
Release v1.10.2 (#2461)
alexjustesen Nov 28, 2025
a216955
bug: fix notifications when not using thresholds (#2464)
svenvg93 Nov 29, 2025
9554a18
Release v1.10.3 (#2468)
alexjustesen Nov 30, 2025
a2c23d7
chore: remove duplicate translation strings (#2470)
svenvg93 Nov 30, 2025
50fd681
gh actions: bump actions/checkout from 5 to 6 (#2471)
dependabot[bot] Dec 2, 2025
727ee6d
Add GitHub Actions workflow to trigger Docker image build (#2474)
alexjustesen Dec 2, 2025
d27000f
feat: Add Prometheus (#2440)
svenvg93 Dec 2, 2025
ff34938
bug: fix database notifications being sent double (#2477)
svenvg93 Dec 3, 2025
327d684
New Crowdin updates (#2448)
alexjustesen Dec 4, 2025
f6508fd
Release v1.11.0 (#2479)
alexjustesen Dec 4, 2025
30f04df
bug: fix text string prometheus (#2482)
svenvg93 Dec 4, 2025
218331c
Chore/refactored results table (#2484)
alexjustesen Dec 4, 2025
5ba9ce8
Release v1.11.1 (#2485)
alexjustesen Dec 4, 2025
c9935b2
chore: adjust pagination amounts in results table (#2487)
svenvg93 Dec 4, 2025
9211aa4
Release v1.11.2 (#2490)
alexjustesen Dec 5, 2025
a47e322
Release v1.12.0 (#2493)
alexjustesen Dec 5, 2025
395b206
Add packet loss to latest result stats (#2495)
alexjustesen Dec 5, 2025
4ac1891
Fix typo: helpertext -> helperText in DataIntegration settings (#2497)
iamgurjitsingh Dec 5, 2025
aac527a
Fix grammar error in English translation (#2499)
iamgurjitsingh Dec 5, 2025
e2bc2be
Add latest result date to latest result stats section (#2501)
alexjustesen Dec 5, 2025
bc0064a
Refactor: Use strict comparison in chart widget filters (#2498)
iamgurjitsingh Dec 6, 2025
bd108a9
Show view result when authenticated (#2502)
alexjustesen Dec 6, 2025
5b4ba87
Show platform stats only when authenticated (#2505)
alexjustesen Dec 6, 2025
9a10136
Update benchmark status indicators to use check and alert icons (#2506)
alexjustesen Dec 6, 2025
a06b231
Show banner for next scheduled test (#2507)
alexjustesen Dec 6, 2025
b70e3f5
Release v1.12.1 (#2508)
alexjustesen Dec 6, 2025
2c4f7f5
Remove high and low latency columns from results table (#2510)
alexjustesen Dec 6, 2025
a280795
Remove deferred loading from results table (#2511)
alexjustesen Dec 6, 2025
0cd47d4
Remove truncate results action and related job from results table (#2…
alexjustesen Dec 6, 2025
9995400
Round packet loss value to two decimal places in latest result stats …
alexjustesen Dec 7, 2025
618d482
Release v1.12.2 (#2516)
alexjustesen Dec 7, 2025
89323e8
chore: round ping value to two decimal places in latest result stats …
svenvg93 Dec 8, 2025
5fa65d0
bug; fix last result not using the display_timezone env var (#2522)
svenvg93 Dec 8, 2025
61df96b
Combine result server columns (#2526)
alexjustesen Dec 8, 2025
633d3b3
chore: Switch Apprise to markdown (#2531)
svenvg93 Dec 9, 2025
8e869a0
Release v1.12.3 (#2532)
alexjustesen Dec 9, 2025
49fdce4
Added version to dashboard footer (#2537)
alexjustesen Dec 9, 2025
73f44ab
feat: add speedtest button to metric dashboard (#2521)
svenvg93 Dec 11, 2025
b7e573f
Release v1.12.4 (#2548)
alexjustesen Dec 15, 2025
c4e2e7f
fix: adjust speedtest button size based on request context (#2550)
alexjustesen Dec 15, 2025
74062c9
Update form method to use Schema instead of Form in ListOoklaServers …
alexjustesen Dec 16, 2025
3381265
fix: datetime format for next speedtest banner (#2554)
alexjustesen Dec 16, 2025
963fc05
update external IP fetching logic to handle failures (#2555)
alexjustesen Dec 16, 2025
03e02b6
check for internet using ping (#2556)
alexjustesen Dec 16, 2025
c7c467f
move skip IPs configuration to preflight settings (#2557)
alexjustesen Dec 16, 2025
cd0915f
Release v1.13.0 (#2558)
alexjustesen Dec 16, 2025
b21f0f1
Hotfix v1.13.1 (fix for ping failing) (#2561)
alexjustesen Dec 17, 2025
43a88f5
add selection details option to speedtest command (#2572)
alexjustesen Dec 18, 2025
376b206
remove platform stats from metrics dashboard (#2574)
alexjustesen Dec 18, 2025
dc4dd2f
Release v1.13.2 (#2575)
alexjustesen Dec 18, 2025
eb9a3e6
Chore: Improve Apprise Logic & UI Text (#2579)
svenvg93 Dec 19, 2025
045a519
chore: deprecate notification channel alarm on dashboard and notifica…
svenvg93 Dec 19, 2025
15258b7
Release v1.13.3 (#2580)
alexjustesen Dec 19, 2025
b068b3a
New Crowdin updates (#2496)
alexjustesen Dec 21, 2025
62f13fb
Mark speedtest as scheduled when triggered using the API (#2597)
alexjustesen Dec 26, 2025
ae3eb32
New Crowdin updates (#2598)
alexjustesen Dec 26, 2025
9415911
Release v1.13.4 (#2605)
alexjustesen Dec 26, 2025
fd7a034
Rename benchmark healthy/unhealthy event classes and update reference…
alexjustesen Dec 27, 2025
190b7ef
gh actions: bump actions/create-github-app-token from 1 to 2 (#2621)
dependabot[bot] Jan 2, 2026
1ea93d2
gh actions: bump actions/cache from 4 to 5 (#2622)
dependabot[bot] Jan 2, 2026
f9be7c6
gh actions: bump peter-evans/repository-dispatch from 3 to 4 (#2623)
dependabot[bot] Jan 2, 2026
0e405e3
chore: update bug report template with support guidelines (#2591)
svenvg93 Jan 2, 2026
07aaf84
Fix: Apprise test button shown without saving (#2627)
svenvg93 Jan 3, 2026
d0377e1
Fix: Skip SkipSpeedtestJob when env var is empty (#2626)
svenvg93 Jan 3, 2026
5bb28c2
Fix: Increase timeout for Apprise notifications (#2628)
svenvg93 Jan 4, 2026
82fdd6f
Chore: clean up ping logs (#2629)
svenvg93 Jan 4, 2026
f1480e4
chore: add missing translation strings (#2639)
svenvg93 Jan 8, 2026
0e104db
Chore: Add helpertext for notification triggers (#2640)
svenvg93 Jan 8, 2026
cc0f0d3
Release v1.13.5 (#2641)
alexjustesen Jan 8, 2026
7d74172
chore: improve dev container (#2648)
svenvg93 Jan 12, 2026
b7846b0
chore: update webhook payload (#2636)
svenvg93 Jan 21, 2026
40eca53
Chore: Add missing translations (#2669)
svenvg93 Feb 3, 2026
3fa025d
Chore: add webhook logging (#2647)
svenvg93 Feb 3, 2026
c3bf5e5
Chore: Add debug logs for apprise (#2654)
svenvg93 Feb 3, 2026
d5ebe7c
gh actions: bump klaasnicolaas/action-inactivity-lock from 1.1.3 to 2…
dependabot[bot] Feb 3, 2026
edff468
Bug: fix packet loss rounding in notifications (#2670)
svenvg93 Feb 3, 2026
1ada95c
bug: add server name and id to test wehbook (#2676)
svenvg93 Feb 3, 2026
405c1a5
Bug: Don't retry Apprise in case of a timeout (#2680)
svenvg93 Feb 3, 2026
d2153da
bug: fix prometheus metrics on failed test (#2674)
svenvg93 Feb 3, 2026
bc55256
New Crowdin updates (#2614)
alexjustesen Feb 3, 2026
49b77d3
Release v1.13.6 (#2682)
alexjustesen Feb 3, 2026
bdad072
Fallback to http request when checking for internet connection (#2685)
alexjustesen Feb 4, 2026
d2c74c0
Release v1.13.7 (#2686)
alexjustesen Feb 4, 2026
1da5399
bug: fix completed mail (#2692)
svenvg93 Feb 4, 2026
1e9ea18
Release v1.13.8 (#2693)
alexjustesen Feb 4, 2026
cb659fc
chore: refactor prometheus to handle missing data (#2696)
svenvg93 Feb 5, 2026
5d391b6
Release v1.13.9 (#2698)
alexjustesen Feb 8, 2026
9b0b53b
bug: fix threshold notification (#2702)
svenvg93 Feb 10, 2026
9419fe8
New Crowdin updates (#2689)
alexjustesen Feb 20, 2026
21554b1
translations (#2710)
alexjustesen Feb 20, 2026
a48d103
Release v1.13.10 (#2711)
alexjustesen Feb 20, 2026
75b3a08
Bump rollup from 4.57.1 to 4.59.0 in the npm_and_yarn group across 1 …
dependabot[bot] Mar 2, 2026
138ae9f
Bump league/commonmark from 2.8.0 to 2.8.1 in the composer group acro…
dependabot[bot] Mar 8, 2026
316b253
New Crowdin updates (#2724)
alexjustesen Mar 8, 2026
144be5c
Merge branch '1.x' into main
alexjustesen Mar 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://aka.ms/devcontainer.json
{
"name": "Existing Docker Compose (Extend)",
"name": "Speedtest Tracker Dev Environment",
"dockerComposeFile": [
"../docker-compose.yml"
"../compose.yaml"
],
"service": "laravel.test",
"workspaceFolder": "/var/www/html",
Expand All @@ -20,7 +20,7 @@
}
},
"remoteUser": "sail",
"postCreateCommand": "chown -R 1000:1000 /var/www/html 2>/dev/null || true"
"postCreateCommand": "composer install && npm install && npm run build && touch database/database.sqlite && php artisan migrate:fresh --force"
// "forwardPorts": [],
// "runServices": [],
// "shutdownAction": "none",
Expand Down
9 changes: 9 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=sqlite
#DB_HOST=
#DB_PORT=
#DB_DATABASE=
#DB_USERNAME=
#DB_PASSWORD=

SESSION_DRIVER=cookie
SESSION_LIFETIME=10080
Expand All @@ -42,3 +47,7 @@ MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="Speedtest Tracker"

VITE_APP_NAME="${APP_NAME}"

# For the Dev Container
# WWWUSER=1000
# WWWGROUP=1000
79 changes: 58 additions & 21 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,67 +2,100 @@ name: Bug Report
description: Use this template to report a bug or issue.
title: "[Question] "
labels: ["question", "needs review"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report this issue! We appreciate your help in improving the project. If this report is confirmed as a bug, we’ll update its type accordingly.

Please note:
- For **feature requests or changes**, use the [feature request form](https://github.com/alexjustesen/speedtest-tracker/issues/new?template=feature_request.yml).
- For **general questions**, **setup or configuration help**, or if you’re not sure this is a bug, please use **[GitHub Discussions](https://github.com/alexjustesen/speedtest-tracker/discussions)** instead.
- Any isseus with translations should be reported/solved within the [crowdin project](https://crowdin.com/project/speedtest-tracker).
body:
- type: checkboxes
id: terms
attributes:
label: Pre-work
label: Welcome!
description: |
Before opening an issue make sure you've checked the resources below first, any issues that could have been solved by reading the docs or existing issues will be closed.
The issue tracker is for reporting bugs and feature requests only. For end-user related support questions, please use the **[GitHub Discussions](https://github.com/alexjustesen/speedtest-tracker/discussions)** instead

Please note:
- For translation-related issues or requests, please use the [Crowdin project](https://crowdin.com/project/speedtest-tracker).
- Any issues that can be resolved by consulting the documentation or by reviewing existing open or closed issues will be closed.
- We only support installations that follow the methods described in the documentation. Installations using third-party or undocumented methods are not supported by the project.

options:
- label: I have read the [docs](https://docs.speedtest-tracker.dev).
- label: I have read the [documentation](https://docs.speedtest-tracker.dev) and my problem was not listed in the help section.
required: true
- label: I have searched open and closed issues and my problem was not mentioned before.
required: true
- label: I have searched open and closed issues.
- label: I have verified I am using the latest version available. You can check the latest release [here](https://github.com/alexjustesen/speedtest-tracker/releases).
required: true
- label: I agree to follow this project's [Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md).
required: true

- type: textarea
id: description
attributes:
label: Description
description: Explain the issue you experienced, please be clear and concise.
placeholder: I went to the coffee pot and it was empty.
label: What did you do?
description: |
How to write a good bug report?

- Respect the issue template as much as possible.
- The title should be short and descriptive.
- Explain the conditions which led you to report this issue: the context.
- The context should lead to something, a problem that you’re facing.
- Remain clear and concise.
- Format your messages to help the reader focus on what matters and understand the structure of your message, use [Markdown syntax](https://help.github.com/articles/github-flavored-markdown)
validations:
required: true

- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior
description: In a perfect world, what should have happened?
description: |
In a perfect world, what should have happened?
**Important:** Be specific. Vague descriptions like "it should work" are not helpful.
placeholder: When I got to the coffee pot, it should have been full.
validations:
required: true

- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
description: Describe how to reproduce the issue in repeatable steps.
description: |
Provide detailed, numbered steps that someone else can follow to reproduce the issue.
**Important:** Vague descriptions like "it doesn't work" or "it's broken" will result in the issue being closed.
Include specific actions, URLs, button clicks, and any relevant data or configuration.
placeholder: |
1. Go to the coffee pot.
2. Make more coffee.
3. Pour it into a cup.
4. Observe that the cup is empty instead of full.
validations:
required: true

- type: dropdown
id: deployment-environment
attributes:
label: Deployment Environment
description: How did you deploy the application?
description: How did you deploy the application? Only supported deployment methods are listed.
options:
- Docker Compose
- Docker Run
- Other
default: 0
validations:
required: true

- type: textarea
id: environment-configuration
attributes:
label: What is your environment & configuration?
description: Please add your docker compose file or docker run command used to deploy the application.
placeholder: Add information here.
value: |
```yaml
# (paste your configuration here)
```

Add more configuration information here.
validations:
required: true

- type: textarea
id: application-information
attributes:
Expand All @@ -71,16 +104,20 @@ body:
render: json
validations:
required: true

- type: input
id: browsers
attributes:
label: What browser(s) are you seeing the problem on?
placeholder: Chrome, Firefox, Safari, etc.
validations:
required: true

- type: textarea
id: logs
attributes:
label: Logs
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. If you are unsure which logs to include, include all logs. You can get the logs by running `docker logs <container_id/name>`.
render: shell
validations:
required: true
37 changes: 26 additions & 11 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,28 @@ name: Feature Request
description: Use this template for requesting a new feature or change.
title: "[Feature] "
labels: ["feature", "needs review"]

body:
- type: markdown
attributes:
value: |
You should only use this form to request a change or new feature, to report a bug or issue use the [bug report form](https://github.com/alexjustesen/speedtest-tracker).
Any reqeusts for new translations should be reqeusted within the [crowdin project](https://crowdin.com/project/speedtest-tracker).
- type: checkboxes
attributes:
label: Pre-work
label: Welcome!
description: |
The issue tracker is for reporting bugs and feature requests only. For end-user related support questions, please use the **[GitHub Discussions](https://github.com/alexjustesen/speedtest-tracker/discussions)** instead

Please note:
- For **Bug reports**, use the [Bug Form](https://github.com/alexjustesen/speedtest-tracker/issues/new?template=bug_report.yml).
- Any requests for new translations should be requested within the [crowdin project](https://crowdin.com/project/speedtest-tracker).

options:
- label: I have searched open and closed feature request to make sure this or similar feature request does not already exist.
- label: I have searched open and closed feature requests to make sure this or similar feature request does not already exist.
required: true
- label: I have reviewed the [Milestones](https://github.com/alexjustesen/speedtest-tracker/milestones) to ensure that this feature request, or a similar one, has not already been proposed.
required: true
- label: I have reviewed the [milestones](https://github.com/alexjustesen/speedtest-tracker/milestones) to ensure that this feature request, or a similar one, has not already been proposed.
- label: This is a feature request, not a bug report or support question.
required: true
- label: I agree to follow this project's [Code of Conduct]().
- label: I agree to follow this project's [Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md).
required: true

- type: dropdown
id: idea-section
attributes:
Expand All @@ -28,14 +34,23 @@ body:
- Notifications
- Speedtest
- Web UI/UX
- Other
default: 0
validations:
required: true

- type: textarea
id: description
attributes:
label: Description
description: Describe the solution or feature you'd like, you should also mention if this solves a problem.
placeholder: Be sure to keep it clear and concise.
description: |
Describe the solution or feature you'd like. Explain what problem this solves or what value it adds.
**Important:** Be specific and detailed. Vague requests like "make it better" will be closed.
placeholder: |
Example:
- What is the feature?
- What problem does it solve?
- How should it work?
- Why would this be valuable?
validations:
required: true
27 changes: 27 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Trigger Docker Image Build

on:
release:
types: [published]

jobs:
trigger-docker-build:
runs-on: ubuntu-24.04

steps:
- name: Generate GitHub App token
id: generate_token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
owner: alexjustesen
repositories: docker-speedtest-tracker

- name: Trigger docker-speedtest-tracker build
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ steps.generate_token.outputs.token }}
repository: alexjustesen/docker-speedtest-tracker
event-type: speedtest-tracker-release
client-payload: '{"tag_name": "${{ github.event.release.tag_name }}"}'
Loading