docker ps shows that node is running, docker logs show that node is uploading pieces normally without errors, but the web dashboard cannot be opened in my browser.
Show docker run command.
Are you using correct IP? Is port forwarded? Is configuration correct?
docker run -d --restart unless-stopped --stop-timeout 300 \
-p 28967:28967/tcp \\
-p 28967:28967/udp \\
-p 14002:14002 \\
-e WALLET="0x6991364d8cC222934d027208Bc9184518CF122e6" \\
-e EMAIL="redacted" \\
-e ADDRESS="redacted:28967" \\
-e STORAGE="11.92TB" \\
--user $(id -u):$(id -g) \\
--mount type=bind,source="redacted",destination=/app/identity \\
--mount type=bind,source="redacted",destination=/app/config \\
--name storagenode storjlabs/storagenode:latest \\
--operator.wallet-features=zksync-era
I am using the correct IP. Port is forwarded, but I am accessing it using the internal IP.
On the dockr host, try:
curl -v http://127.0.0.1:14002/
docker ps --format 'table {{.Names}}\t{{.Ports}}'
Does curl work? If not, so you see from the second command 0.0.0.0:14002->14002/tcp
Post the output.
* Trying 127.0.0.1:14002…
* Connected to 127.0.0.1 (127.0.0.1) port 14002
> GET / HTTP/1.1
> Host: 127.0.0.1:14002
> User-Agent: curl/8.5.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=UTF-8
< Referrer-Policy: same-origin
< X-Content-Type-Options: nosniff
< Date: Wed, 15 Jul 2026 01:23:52 GMT
< Transfer-Encoding: chunked
<
<head>
<meta charset="utf-8">
<link rel="apple-touch-icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAC40lEQVRIDe1US0iUURQ+V8fJmcnykTJmNA0tMszETUVlCrkoR+2lWdFDk7AHlNQiCGaREhlUli3ETSRFqx4UlAi5ySgqS8hQiXLMTKca35k6j3O6d5zE//rnuNCF4Mdd3HvO+c53/3P/cxgRwUwiYCaTi9xzAn4rPPtLpPH7jaMBSDA4DE43AIFWAwYdBLApUf0L/OyFJ2/oWT28/wKd3Tw/RIdB4nLYnAjpa5gxzI8Mm6TRRlxQ8ZSuPQSbjYEGjEaICBHpegagww7gBpOJTm6HY+lMp/2/DBdQRfcA7bmIkEIaC+Vexqq3ZLPTkJOGndT6g6rfUf5V1FqIB+wqRkefag5hBFXP7yHKvoCQRHEFPBeOxgz8oZeNYvHNKGrqMeE48bAdRdj/zyglVBFApLM3EZJpXSHyy3K4PXTjMZpzMTCN+DIfwrJH6HILV7uDks4gbKLTFejxCIsEFYG6T6jPoKjd9MHmu3vpA4RUCrLQViumWb2VSeVv4/M2tuHivaSz0KtGn2W8hopAQZm4vrVSRDd9o1PlqM8Ukvdqffz7L3B+JkXm4OtmX6riu4KSd2UKAl39ZDpIoVnU4cBWO8XmixIv2EZHrivIWd4X0mfguVs44qLObozIwZj9ZO8Zf3uxl0dFUxt0dMHaFRQdwSprqPkjZG+h56VQkqfoqxPpULiPQgys5A6rriNjGNuwEjq7gNMlyAL2XnANQpxJhCXHs3IrXDrMEswQ7u2AMXLKalZ6lJ0/QIhQVSfMnIKDYO8ZC/Ft5E52ugA8EKIX7uR4sSbBrz4xOYK9XWaYJ4iCroQsYAgGpoPbNVD/WRk44TTsotoGFqyDneuFz9EPEAScLkEWWBoF4aHQ8p21tEuRE47ElkVTUS5sXMU8KCaVIRQ4XYI8i1xuaG4nMTX9IZBBzCIWuVDE8d5s+Ar8N4hdwrRBCqYsoHBOx0H+i6YjpyLHnICiHGqHuRKpVUVhm/0l+gsfrGM3Nzju5wAAAABJRU5ErkJggg==" type="image/x-icon">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="description" content="Node Dashboard page">
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAC40lEQVRIDe1US0iUURQ+V8fJmcnykTJmNA0tMszETUVlCrkoR+2lWdFDk7AHlNQiCGaREhlUli3ETSRFqx4UlAi5ySgqS8hQiXLMTKca35k6j3O6d5zE//rnuNCF4Mdd3HvO+c53/3P/cxgRwUwiYCaTi9xzAn4rPPtLpPH7jaMBSDA4DE43AIFWAwYdBLApUf0L/OyFJ2/oWT28/wKd3Tw/RIdB4nLYnAjpa5gxzI8Mm6TRRlxQ8ZSuPQSbjYEGjEaICBHpegagww7gBpOJTm6HY+lMp/2/DBdQRfcA7bmIkEIaC+Vexqq3ZLPTkJOGndT6g6rfUf5V1FqIB+wqRkefag5hBFXP7yHKvoCQRHEFPBeOxgz8oZeNYvHNKGrqMeE48bAdRdj/zyglVBFApLM3EZJpXSHyy3K4PXTjMZpzMTCN+DIfwrJH6HILV7uDks4gbKLTFejxCIsEFYG6T6jPoKjd9MHmu3vpA4RUCrLQViumWb2VSeVv4/M2tuHivaSz0KtGn2W8hopAQZm4vrVSRDd9o1PlqM8Ukvdqffz7L3B+JkXm4OtmX6riu4KSd2UKAl39ZDpIoVnU4cBWO8XmixIv2EZHrivIWd4X0mfguVs44qLObozIwZj9ZO8Zf3uxl0dFUxt0dMHaFRQdwSprqPkjZG+h56VQkqfoqxPpULiPQgys5A6rriNjGNuwEjq7gNMlyAL2XnANQpxJhCXHs3IrXDrMEswQ7u2AMXLKalZ6lJ0/QIhQVSfMnIKDYO8ZC/Ft5E52ugA8EKIX7uR4sSbBrz4xOYK9XWaYJ4iCroQsYAgGpoPbNVD/WRk44TTsotoGFqyDneuFz9EPEAScLkEWWBoF4aHQ8p21tEuRE47ElkVTUS5sXMU8KCaVIRQ4XYI8i1xuaG4nMTX9IZBBzCIWuVDE8d5s+Ar8N4hdwrRBCqYsoHBOx0H+i6YjpyLHnICiHGqHuRKpVUVhm/0l+gsfrGM3Nzju5wAAAABJRU5ErkJggg==" type="image/x-icon">
<title>Node Dashboard</title>
<script type="module" crossorigin src="/static/assets/index-D_h9bGbc.js"></script>
<link rel="modulepreload" crossorigin href="/static/vendors/vendor-vue-DlKajlua.js">
<link rel="modulepreload" crossorigin href="/static/vendors/vendor-misc-C_POY-EF.js">
<link rel="modulepreload" crossorigin href="/static/vendors/vendor-charts-B33Bxq1d.js">
<link rel="stylesheet" crossorigin href="/static/assets/index-0z-jhawW.css">
</head>
<body>
<div id="app"></div>
</body>
* Connection #0 to host 127.0.0.1 left intact
NAMES PORTS
storagenode 0.0.0.0:14002->14002/tcp, [::]:14002->14002/tcp, 0.0.0.0:28967->28967/tcp, [::]:28967->28967/tcp, 0.0.0.0:28967->28967/udp, [::]:28967->28967/udp
Ok. So it is working then.
What does not work?
The dashboard cannot be opened from my browser.
ERR_ADDRESS_UNREACHABLE
What address? What browser? Where is the host? Where is the client? Is there a firewall? Any filtering? Any VPN in between? Either way this is outside of the scope because container clearly responds to curl and returns the page.
Internal IP address. Google Chrome. Host and Client are in the same network. UFW disabled, iptables has no rules. No filtering or VPN.
Hosts addres? Same subnet as the client?
Show full browser url you are trying.
full browser URL is http://10.0.0.160/
Both my client and the host are in the 10.0.0.0/24 subnet. The host can be pinged.
This is wrong. This is port 80. You need 14002
Click here. http://10.0.0.160:14002/
If still nothing — try curl -v 'http://10.0.0.160:14002/' from the client, where ping works.
http://10.0.0.160:14002/ does not work.
curl -v ‘http://10.0.0.160:14002/’ from the client returns the same content I posted before.
Defenestrate your browser. It’s broken. Use a different one. Or maybe you have proxy configured there.
Does http://10.0.0.160:28967 works? Because if not, then the IP could be wrong or there is no route from your device to the host with the node.
You can also try this method to access the dashboard:
Turn off your pop-up blocker or ad blocker, or exclude address.
2 cents,
Julio
curl is running on the same machine that you open your browser or it is different machine?
curl on the node’s host, browser on another.
Well, isn’t that a smoking gun.. @muiyuu could you try curl on the same machine as your browser?
He/she already did