Stefan Stidl
a58dadf202
fix: support SERVER_LIST_URL in classic frontend
2026-09-11 20:54:25 +02:00
Stefan Stidl
056fcadbc6
test(e2e): reject malformed static-server paths
2026-09-11 20:47:25 +02:00
Stefan Stidl
d719d54eeb
test(e2e): serve remote server-list fixture with CORS
2026-09-11 20:40:27 +02:00
copilot-swe-agent[bot]
bd8ec153cd
Fix SERVER_LIST_URL frontend startup
...
Co-authored-by: sstidl <12804296+sstidl@users.noreply.github.com>
2026-09-09 07:30:34 +00:00
copilot-swe-agent[bot]
99248e0d81
Initial plan
2026-09-09 07:25:40 +00:00
sstidl
22b89a76c5
Merge pull request #833 from BKPepe/feat/modern-result-image
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
feat: add a modern design for the result image
2026-09-02 07:45:01 +02:00
Josef Schlehofer
3d1118bc50
feat: add a modern design for the result image
...
The shared result image had one look, and it no longer matched the modern
frontend.
The renderer can now draw either design. The image follows the same
useNewDesign setting as the frontend, so a deployment has one switch rather
than two that can disagree, and classic remains the fallback.
- An explicit style query parameter overrides it, which is how the modern
frontend asks for the design it matches.
- The modern design reuses the frontend palette and shows the client, address
family and timestamp already present in the result data.
2026-08-15 12:29:33 +02:00
sstidl
04cdce6acf
Merge pull request #839 from darkgsl/fix-typo
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
docs: fix container port binding in docker run example (doc_docker.md)
2026-08-15 10:36:57 +02:00
darkgsl
892674a084
docs: fix container port binding in docker run example
...
Fixed the container port in the `Example Frontend mode` section.
The inner container port should be `8080` instead of `80` to correctly map the frontend service.
2026-08-13 14:25:38 +03:00
Stefan Stidl
ca1e033d8d
chore(release): bump version to 6.2.1
2026-08-13 01:37:46 +02:00
sstidl
154b5702ee
Merge pull request #838 from librespeed/dependabot/npm_and_yarn/js-yaml-4.3.1
...
chore(deps-dev): bump js-yaml from 4.3.0 to 4.3.1
2026-08-12 07:59:39 +02:00
dependabot[bot]
810c77891b
chore(deps-dev): bump js-yaml from 4.3.0 to 4.3.1
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.3.0 to 4.3.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.1/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.3.0...4.3.1 )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.3.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-12 01:51:20 +00:00
sstidl
32defb4fb4
Merge pull request #832 from BKPepe/fix/results-image-timestamp
...
fix: format the timestamp drawn on the result image
2026-08-11 19:45:06 +02:00
sstidl
f3df5db6ab
Merge pull request #834 from BKPepe/fix/modern-frontend-asset-paths
...
fix: preserve the modern frontend layout in deployments (#834 )
Serve the modern UI assets from frontend/ in both repository and Docker
deployments, matching the paths used by index-modern.html.
Move settings.json and server-list.json to the web root, where the modern
page resolves its configuration, and keep Docker, installation guidance, and
design-switch documentation consistent with that layout.
Add E2E coverage for:
- serving the repository unchanged with Python's static HTTP server;
- required modern UI assets and a real 404 for missing paths;
- Alpine standalone settings and modern frontend rendering.
Fixes #804
2026-08-11 08:53:10 +02:00
sstidl
bdc1521e14
test(e2e): verify static modern frontend assets
2026-08-11 08:43:31 +02:00
sstidl
35f63c988a
docs: align Docker design layout guidance
2026-08-11 08:27:01 +02:00
sstidl
54179567ac
test(e2e): cover Alpine modern frontend settings
2026-08-11 07:50:16 +02:00
Josef Schlehofer
8b5b4eb1b8
fix: point the modern frontend at the assets where they actually live
...
index-modern.html refers to styling/, javascript/ and images/ as if they sat
next to it, but they live under frontend/. Only docker/entrypoint.sh reconciles
that, by flattening those directories into the web root, so serving the
repository as it stands renders the page without stylesheet, script or logo.
Point the HTML at frontend/, have the entrypoint copy that directory as-is, and
move settings.json and server-list.json to the root that the page fetches them
from, so the repository layout and the deployed layout are the same. Update the
install instructions, which described the flattening.
2026-08-10 03:16:26 +02:00
Josef Schlehofer
c136cd4cfe
fix: format the timestamp drawn on the result image
...
formatSpeedtestDataForImage() assigned the timestamp to itself, so the value
reached the image exactly as the database returned it. Every other field on
that list is passed through format(); this one reads like a placeholder that
was never filled in, and static analysis flags it as a self-assignment.
How much precision the column carries is decided by the backend, and the three
schemas shipped here disagree: MySQL's `timestamp` keeps none, PostgreSQL's
`timestamp without time zone DEFAULT now()` keeps microseconds and MSSQL's
`datetime` keeps milliseconds. A PostgreSQL deployment therefore drew
"2026-08-10 02:04:13.957789" where a MySQL one drew "2026-08-10 02:04:13".
2026-08-10 02:44:04 +02:00
sstidl
3ada090eef
Merge pull request #828 from librespeed/dependabot/github_actions/actions/stale-11
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
chore(deps): bump actions/stale from 10 to 11
2026-08-03 07:27:52 +02:00
dependabot[bot]
4142a915a6
chore(deps): bump actions/stale from 10 to 11
...
Bumps [actions/stale](https://github.com/actions/stale ) from 10 to 11.
- [Release notes](https://github.com/actions/stale/releases )
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/stale/compare/v10...v11 )
---
updated-dependencies:
- dependency-name: actions/stale
dependency-version: '11'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 05:08:08 +00:00
sstidl
1af6517eb9
Merge pull request #820 from EmanuelPeixoto/fix-upload-http-status
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
Fix upload-speed inflation on HTTP errors and document request body limits
2026-07-30 07:06:37 +02:00
EmanuelPeixoto
397308de03
fix upload race: use captured x in onload, remove upload.onload restart
...
- xhr.onload now owns the complete lifecycle: checks x.status on
the captured local variable, restarts only on 2xx.
- xhr.upload.onload no longer calls testStream() to avoid race
with xhr.onload overwriting xhr[i] before status is read.
- xhr.upload.onerror also uses the captured x for consistency.
2026-07-28 16:10:41 -03:00
sstidl
18e254ff49
Merge pull request #826 from librespeed/dependabot/npm_and_yarn/minimatch-3.1.5
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5
2026-07-28 07:31:18 +02:00
sstidl
aefa645520
Merge pull request #827 from librespeed/dependabot/npm_and_yarn/flatted-3.4.3
...
chore(deps-dev): bump flatted from 3.3.3 to 3.4.3
2026-07-28 07:30:57 +02:00
sstidl
5e7bdbfa31
Merge pull request #825 from librespeed/dependabot/npm_and_yarn/js-yaml-4.3.0
...
chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.0
2026-07-28 07:30:27 +02:00
sstidl
9d07f726bb
Merge pull request #824 from librespeed/dependabot/npm_and_yarn/brace-expansion-1.1.16
...
chore(deps-dev): bump brace-expansion from 1.1.12 to 1.1.16
2026-07-28 07:29:39 +02:00
dependabot[bot]
36584defcc
chore(deps-dev): bump flatted from 3.3.3 to 3.4.3
...
Bumps [flatted](https://github.com/WebReflection/flatted ) from 3.3.3 to 3.4.3.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.3 )
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.3
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-28 05:26:43 +00:00
dependabot[bot]
fd0529e793
chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5
...
Bumps [minimatch](https://github.com/isaacs/minimatch ) from 3.1.2 to 3.1.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5 )
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 3.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-28 05:26:42 +00:00
dependabot[bot]
3f59cf07cf
chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.0
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.1.1 to 4.3.0.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.1...4.3.0 )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.3.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-28 05:26:40 +00:00
dependabot[bot]
081c8bfeb5
chore(deps-dev): bump brace-expansion from 1.1.12 to 1.1.16
...
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion ) from 1.1.12 to 1.1.16.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases )
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.12...v1.1.16 )
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 1.1.16
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-28 05:26:40 +00:00
sstidl
f4acb0d82d
Merge pull request #779 from librespeed/chore/playwright-mode-test-plan
...
Chore/playwright mode test plan
2026-07-28 07:25:39 +02:00
Stefan Stidl
dbb4067f5e
ci: run Docker workflow for master pull requests
2026-07-27 22:18:31 +02:00
EmanuelPeixoto
2afc380e19
fix upload: check HTTP status in xhr.onload, expand IIS docs
...
- speedtest_worker.js: moved HTTP status check from xhr.upload.onload
(body sent, response may not be available) to xhr.onload
(full HTTP transaction complete, xhr.status is reliable).
- doc.md: added full IIS web.config example with maxAllowedContentLength.
2026-07-23 17:50:51 -03:00
Stefan Stidl
16e8440dff
chore(release): prepare v6.2.0
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
2026-07-22 20:23:45 +02:00
sstidl
be1c7f87a7
Merge pull request #798 from akirayamamoto/fix/php-post-max-size-upload-chunks
...
fix(docker): raise PHP post_max_size for default 20MB upload chunks
2026-07-22 20:17:51 +02:00
EmanuelPeixoto
1b3c0ac9c4
fix upload: check HTTP status in onload, document server body size limit
...
- speedtest_worker.js: xhr.upload.onload now checks xhr.status
before restarting the upload stream. Non-2xx responses (e.g.
HTTP 413 from undersized client_max_body_size) are treated as
failures instead of inflating upload speed measurements.
- doc.md: added explicit nginx/Apache/IIS configuration examples
for client_max_body_size / LimitRequestBody to prevent HTTP 413
errors on the 20MB upload test blobs.
2026-07-22 14:51:45 -03:00
sstidl
7e10d1eb96
Merge pull request #818 from sstidl/feat/add-pwa-manifest
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
feat: add installable PWA metadata
2026-07-20 22:56:57 +02:00
Stefan Stidl
e7d4fecccf
fix: include PWA assets in npm package
2026-07-20 22:50:30 +02:00
Stefan Stidl
3b25d9e33a
feat: add installable PWA metadata
2026-07-20 22:35:16 +02:00
sstidl
48aaa4da57
Merge pull request #809 from shaked-shlomo/fix/doc-typos
...
Docker / e2e (push) Waiting to run
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Blocked by required conditions
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Blocked by required conditions
Fix typos in documentation and a code comment
2026-07-20 11:44:45 +02:00
sstidl
481b50f79b
Merge pull request #812 from librespeed/dependabot/github_actions/actions/checkout-7
...
chore(deps): bump actions/checkout from 6 to 7
2026-07-20 11:43:23 +02:00
sstidl
602aae8ce0
Merge pull request #817 from librespeed/dependabot/github_actions/actions/setup-node-7
...
chore(deps): bump actions/setup-node from 6 to 7
2026-07-20 11:42:45 +02:00
dependabot[bot]
0ae3211e44
chore(deps): bump actions/setup-node from 6 to 7
...
Bumps [actions/setup-node](https://github.com/actions/setup-node ) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-20 05:08:46 +00:00
dependabot[bot]
b0100ec3c1
chore(deps): bump actions/checkout from 6 to 7
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 05:07:36 +00:00
sstidl
a293ac4cb9
Merge pull request #811 from librespeed/dependabot/docker/alpine-3.24
...
Docker / e2e (push) Has been cancelled
Docker / build (./Dockerfile, , ghcr.io/${{ github.repository }}) (push) Has been cancelled
Docker / build (./Dockerfile.alpine, -alpine, ghcr.io/${{ github.repository }}) (push) Has been cancelled
chore(deps): bump alpine from 3.23 to 3.24
2026-06-15 13:21:39 +02:00
dependabot[bot]
b765d5993a
chore(deps): bump alpine from 3.23 to 3.24
...
Bumps alpine from 3.23 to 3.24.
---
updated-dependencies:
- dependency-name: alpine
dependency-version: '3.24'
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-15 05:08:26 +00:00
Akira Yamamoto
265c42d4bf
docs: trim Docker PHP ini comments
...
Drop the Debian COPY comment (it only restated the code) and the
version-fragility framing in the Alpine comment.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 22:27:23 +10:00
Akira Yamamoto
914a29de7a
docker: simplify Alpine PHP ini install
2026-06-09 18:25:14 +10:00
Akira Yamamoto
a30872a4e8
docs: shorten PHP upload limit comment
2026-06-09 18:19:10 +10:00