Summary
There seems to be a version mismatch between the Docker image actually being run, the version shown in the UI, and the "new version available" notice.
In addition, the container does not currently print the 9Router application version on startup, which makes it harder to confirm what version is actually running in Kubernetes / Docker environments.
What I am seeing
My deployment is pulling:
Normal Pulling 22m kubelet spec.containers{ninerouter}: Pulling image "ghcr.io/decolua/9router:0.3.98"
However, the web UI shows:
v0.3.97 as the current version
New version available: v0.3.99
So from the user side, it looks like:
- the container image is
0.3.98
- the UI thinks it is running
0.3.97
- the update checker thinks
0.3.99 is available
That suggests the version metadata is out of sync somewhere.
Current startup logs
At the moment the container only shows:
❯ k logs pod/ninerouter-5df87fb696-6qwl4
Defaulted container "ninerouter" out of: ninerouter, ninerouter-init (init)
▲ Next.js 16.2.4
- Local: http://localhost:20128
- Network: http://0.0.0.0:20128
✓ Ready in 0ms
There is no explicit 9Router version line printed at startup.
Expected behaviour
-
The UI should report the same version as the container image that is actually running.
-
The update checker should only show a newer version if one is genuinely newer than the running build.
-
The container should print a clear version line during startup, ideally including:
- app version
- image tag
- git commit / build SHA (if available)
Something like:
9Router proxy v0.3.98
Build: <commit-sha>
Image: ghcr.io/decolua/9router:0.3.98
Actual behaviour
- Container image pulled:
0.3.98
- UI displays current version as:
0.3.97
- UI displays update available as:
0.3.99
- Startup logs do not show the app version at all
Why this matters
In containerized environments, especially Kubernetes, the startup log is usually the quickest way to confirm what version is actually deployed.
Without that, troubleshooting version drift becomes harder, particularly when:
- the UI version is different from the image tag
- the update notifier appears inconsistent
- multiple pods / replicas may be running during rollouts
Possible causes
This may be one of the following:
- UI version string is hardcoded or baked from an older build
- update check is querying a source that does not match the published container tags
- build metadata is not being injected consistently into the frontend and runtime
- image tag and app version are not being derived from the same source
Suggested improvements
- Ensure the UI version is derived from the same build metadata as the published image.
- Ensure the update checker compares against the correct release/tag source.
- Print the app version on startup in container logs.
- Optionally expose a small
/version or /healthz payload with version/build info for easier automation and support.
Reproduction
- Deploy
ghcr.io/decolua/9router:0.3.98
- Open the UI
- Observe that the UI shows
v0.3.97
- Observe that it also says
New version available: v0.3.99
- Check container logs and note there is no 9Router version line at startup
Environment
- Deployment type: Kubernetes
- Image:
ghcr.io/decolua/9router:0.3.98
❯ skopeo list-tags docker://ghcr.io/decolua/9router
{
"Repository": "ghcr.io/decolua/9router",
"Tags": [
"master",
"latest",
"3df0a4d",
"1d8251c",
"39d04d0",
"091ad3f",
"147fc16",
"07717ba",
"3cf900a",
"0.3.75",
"0.3",
"d076c7d",
"buildcache",
"0.3.83",
"1f3d3a8",
"0.3.86",
"b7d85ae",
"0.3.87",
"a1317ed",
"0.3.89",
"7959fd3",
"0.3.90",
"224981d",
"0.3.91",
"ecd6e93",
"0.3.96",
"7046122",
"0.3.97",
"81cef7d",
"0.3.98",
"8de9aae"
]
}
Summary
There seems to be a version mismatch between the Docker image actually being run, the version shown in the UI, and the "new version available" notice.
In addition, the container does not currently print the 9Router application version on startup, which makes it harder to confirm what version is actually running in Kubernetes / Docker environments.
What I am seeing
My deployment is pulling:
However, the web UI shows:
v0.3.97as the current versionNew version available: v0.3.99So from the user side, it looks like:
0.3.980.3.970.3.99is availableThat suggests the version metadata is out of sync somewhere.
Current startup logs
At the moment the container only shows:
There is no explicit 9Router version line printed at startup.
Expected behaviour
The UI should report the same version as the container image that is actually running.
The update checker should only show a newer version if one is genuinely newer than the running build.
The container should print a clear version line during startup, ideally including:
Something like:
Actual behaviour
0.3.980.3.970.3.99Why this matters
In containerized environments, especially Kubernetes, the startup log is usually the quickest way to confirm what version is actually deployed.
Without that, troubleshooting version drift becomes harder, particularly when:
Possible causes
This may be one of the following:
Suggested improvements
/versionor/healthzpayload with version/build info for easier automation and support.Reproduction
ghcr.io/decolua/9router:0.3.98v0.3.97New version available: v0.3.99Environment
ghcr.io/decolua/9router:0.3.98