Is this a new feature request?
Wanted change
Improve the README's documentation around timezone configuration. Speedtest-tracker reads three separate timezone environment variables, and the interaction between them isn't obvious from the current README:
TZ — container OS timezone (cron, system logs)
APP_TIMEZONE — Laravel's internal timezone (config/app.php → env('APP_TIMEZONE', 'UTC'))
DISPLAY_TIMEZONE — timezone shown in the web UI (config/app.php → env('DISPLAY_TIMEZONE', 'UTC'))
Currently:
APP_TIMEZONE isn't listed in readme-vars.yml at all.
DISPLAY_TIMEZONE is listed as optional with the description "Timezone for the UI." and no guidance.
Users following the standard LSIO pattern of only setting TZ end up with a UI that displays UTC times regardless of their TZ value, which is a common source of confusion.
Reason for change
This trips up users (myself included) who reasonably expect TZ alone to control displayed times, as it does in most other LSIO images. A short note in Application Setup that all three should generally be set to the same value would save a lot of head-scratching and forum/Discord traffic.
Proposed code change
A small, documentation-only change to readme-vars.yml:
- Add
APP_TIMEZONE to opt_param_env_vars.
- Expand the
DISPLAY_TIMEZONE description to recommend matching TZ.
- Add a "Timezone configuration" subsection to
app_setup_block explaining the three variables and recommending they all be set to the same value.
--- a/readme-vars.yml
+++ b/readme-vars.yml
@@ -33,13 +33,24 @@ opt_param_env_vars:
- {env_var: "DB_DATABASE", env_value: "", desc: "Database name (postgres/mysql)."}
- {env_var: "DB_USERNAME", env_value: "", desc: "Database username (postgres/mysql)."}
- {env_var: "DB_PASSWORD", env_value: "", desc: "Database password (postgres/mysql)."}
- - {env_var: "DISPLAY_TIMEZONE", env_value: "Etc/UTC", desc: "Timezone for the UI."}
+ - {env_var: "APP_TIMEZONE", env_value: "Etc/UTC", desc: "Timezone Laravel uses internally for scheduling and stored timestamps. Recommended to match `TZ`."}
+ - {env_var: "DISPLAY_TIMEZONE", env_value: "Etc/UTC", desc: "Timezone shown in the web UI. Recommended to match `TZ` so displayed times line up with the container clock."}
- {env_var: "PRUNE_RESULTS_OLDER_THAN", env_value: "0", desc: "Days to keep test results."}
# application setup block
app_setup_block_enabled: true
app_setup_block: |
Access the web UI at `<your-ip>:80`, the default credentials are admin@example.com / password
+ ### Timezone configuration
+
+ Speedtest-tracker reads three separate timezone variables and they each control a different layer:
+
+ * `TZ` sets the container OS timezone, used by cron and system logs.
+ * `APP_TIMEZONE` sets the timezone Laravel uses internally for scheduling and stored timestamps.
+ * `DISPLAY_TIMEZONE` sets the timezone shown in the web UI.
+
+ Setting only `TZ` (the common pattern with other LinuxServer.io images) will leave the application and UI on UTC. For consistent behaviour set all three to the same value, e.g. `Europe/London`.
+
For more information check out the [project documentation](https://docs.speedtest-tracker.dev/).
I have this change prepared locally on a branch. Happy to open a PR if you'd like — just wanted to check first since CONTRIBUTING.md asks for an issue rather than a PR for small doc fixes. Let me know which you'd prefer.
Is this a new feature request?
Wanted change
Improve the README's documentation around timezone configuration. Speedtest-tracker reads three separate timezone environment variables, and the interaction between them isn't obvious from the current README:
TZ— container OS timezone (cron, system logs)APP_TIMEZONE— Laravel's internal timezone (config/app.php→env('APP_TIMEZONE', 'UTC'))DISPLAY_TIMEZONE— timezone shown in the web UI (config/app.php→env('DISPLAY_TIMEZONE', 'UTC'))Currently:
APP_TIMEZONEisn't listed inreadme-vars.ymlat all.DISPLAY_TIMEZONEis listed as optional with the description "Timezone for the UI." and no guidance.Users following the standard LSIO pattern of only setting
TZend up with a UI that displays UTC times regardless of theirTZvalue, which is a common source of confusion.Reason for change
This trips up users (myself included) who reasonably expect
TZalone to control displayed times, as it does in most other LSIO images. A short note in Application Setup that all three should generally be set to the same value would save a lot of head-scratching and forum/Discord traffic.Proposed code change
A small, documentation-only change to
readme-vars.yml:APP_TIMEZONEtoopt_param_env_vars.DISPLAY_TIMEZONEdescription to recommend matchingTZ.app_setup_blockexplaining the three variables and recommending they all be set to the same value.I have this change prepared locally on a branch. Happy to open a PR if you'd like — just wanted to check first since CONTRIBUTING.md asks for an issue rather than a PR for small doc fixes. Let me know which you'd prefer.