Timezone mismatch: scheduler/UI uses UTC despite TZ=Europe/Madrid

Open
#80 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
docker, laravel, php
Domain
backend, devops

Research direction

Reproduce the mismatch with the documented Docker environment, then inspect the Laravel artisan about timezone output, scheduled tests, dashboard timestamps, and next scheduled run. Compare the application behavior with the container's TZ=Europe/Madrid setting. Done means scheduled tests, displayed execution times, and the next run consistently use the configured timezone.

Written by the indexing model from the issue text.

Description

no-issue-activity
Is there an existing issue for this?
  • I have searched the existing issues
Current Behavior

I'm running the latest LinuxServer Speedtest Tracker container.
The container is configured with:
environment:

  • TZ=Europe/Madrid
  • SPEEDTEST_SCHEDULE=33 10 * * *

The container itself uses the correct timezone:
$ docker exec speedtest date
Tue Jul 21 10:47:48 CEST 2026
$ docker exec speedtest printenv TZ
Europe/Madrid

However, Laravel reports:
$ docker exec speedtest php /app/www/artisan about
Timezone ................................ UTC

Also noticed that:

  • A manual speedtest executed at 09:00 is shown in the dashboard as having run at 07:00.
  • Scheduled tests appear to follow UTC rather than the configured local timezone.

It looks like the application is using UTC internally despite the container being configured with TZ=Europe/Madrid

artisan about reports: Timezone UTC
while: TZ=Europe/Madrid

and the container system time is correct (date shows CEST).
Is this expected behaviour, or is there a missing configuration to make Laravel use the container timezone?

Expected Behavior

The application should use the configured container timezone (Europe/Madrid) consistently for:

  • scheduled tests
  • displayed execution times
  • next scheduled run
Steps To Reproduce
  1. Deploy the latest lscr.io/linuxserver/speedtest-tracker:latest image.

  2. Configure the container with:

    • TZ=Europe/Madrid
    • SPEEDTEST_SCHEDULE=33 10 * * *
  3. Start the container.

  4. Run:

bash
docker exec speedtest php /app/www/artisan about
The output reports:
Timezone: UTC

  1. Execute a manual speedtest from the web UI.

  2. The dashboard shows the manual test two hours earlier than the actual execution time (e.g. a test started at 09:00 is displayed as 07:00).

  3. The next scheduled run is also inconsistent with the configured timezone.

Environment
* Image: lscr.io/linuxserver/speedtest-tracker:latest
* LinuxServer version: v1.14.5-ls162
* Speedtest Tracker: v1.14.5
* Laravel: 13.16.1
* PHP: 8.5.8
CPU architecture

x86-64

Docker creation
version: '3.4'
services:
    speedtest-tracker:
        container_name: speedtest
        ports:
            - 8081:80
            - 8448:443
        environment:
            - PUID=1000
            - PGID=1000
            - DB_CONNECTION=sqlite
            - TZ=Europe/Madrid
            - APP_KEY=base64:dsSFgrWEG$
            - APP_NAME=Speedtest Tracker
            - PUBLIC_DASHBOARD=false
            - AUTH=True
            - SPEEDTEST_SCHEDULE=33 10 * * */1
        volumes:
            - /home/docker/speedtest:/config
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped
Container logs
Container logs do not show any useful information related to the issue.

The only output is the LinuxServer startup log plus occasional debug entries such as:
[2026-07-21 00:09:03] production.DEBUG: Pinged hostname {“host”:“icanhazip.com”, …}

There are no warnings or errors related to timezone handling or scheduling.
Dominant language
Dockerfile
Stars
186
Forks
8
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from linuxserver/docker-speedtest-tracker

All issues in linuxserver/docker-speedtest-tracker

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.