Environment
- OS: Ubuntu 24.04 LTS (Noble)
- Kernel: 6.5.0-41-generic x86_64
- Docker version: 27.3.1, build ce12230
- Archestra version: 1.2.50 (platform:latest)
What happened
After running the quickstart Docker command, the container starts but
immediately shows as (unhealthy) and http://localhost:3000 is
unreachable from the browser with ERR_SOCKET_NOT_CONNECTED.
Root cause
The health check is defined as:
wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1
On Ubuntu 24.04, localhost resolves to ::1 (IPv6) by default.
However, the Next.js frontend binds only to 127.0.0.1 (IPv4).
So wget connects to [::1]:3000 and gets "Connection refused" —
even though the frontend is running perfectly on 127.0.0.1:3000.
Evidence from docker inspect:
"Output": "Connecting to localhost:3000 ([::1]:3000)\nwget: can't connect to remote host: Connection refused\n"
Confirmed the frontend IS running — this returns HTML:
docker exec wget -qO- http://127.0.0.1:3000/
Backend health also confirmed working:
docker exec wget -qO- http://127.0.0.1:9000/health
{"name":"Archestra","status":"ok","version":"1.2.50"}
Workaround
Adding 127.0.0.1 localhost to /etc/hosts forces localhost to
resolve to IPv4 and fixes the issue immediately:
command used : echo "127.0.0.1 localhost" | sudo tee -a /etc/hosts
Suggested fix
Change the health check from:
wget --spider http://localhost:3000/
to:
wget --spider http://127.0.0.1:3000/
This avoids DNS/hosts resolution entirely and works regardless of
whether the host system prefers IPv4 or IPv6 for localhost.
Impact
This affects any user running the Docker quickstart on Ubuntu 20.04+
or any Linux system where IPv6 is enabled by default, which is the
majority of modern Linux desktop and server installations.
Environment
What happened
After running the quickstart Docker command, the container starts but
immediately shows as
(unhealthy)andhttp://localhost:3000isunreachable from the browser with
ERR_SOCKET_NOT_CONNECTED.Root cause
The health check is defined as:
wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1
On Ubuntu 24.04,
localhostresolves to::1(IPv6) by default.However, the Next.js frontend binds only to
127.0.0.1(IPv4).So
wgetconnects to[::1]:3000and gets "Connection refused" —even though the frontend is running perfectly on
127.0.0.1:3000.Evidence from
docker inspect:"Output": "Connecting to localhost:3000 ([::1]:3000)\nwget: can't connect to remote host: Connection refused\n"
Confirmed the frontend IS running — this returns HTML:
docker exec wget -qO- http://127.0.0.1:3000/
Backend health also confirmed working:
docker exec wget -qO- http://127.0.0.1:9000/health
{"name":"Archestra","status":"ok","version":"1.2.50"}
Workaround
Adding
127.0.0.1 localhostto/etc/hostsforces localhost toresolve to IPv4 and fixes the issue immediately:
command used :
echo "127.0.0.1 localhost" | sudo tee -a /etc/hostsSuggested fix
Change the health check from:
wget --spider http://localhost:3000/
to:
wget --spider http://127.0.0.1:3000/
This avoids DNS/hosts resolution entirely and works regardless of
whether the host system prefers IPv4 or IPv6 for localhost.
Impact
This affects any user running the Docker quickstart on Ubuntu 20.04+
or any Linux system where IPv6 is enabled by default, which is the
majority of modern Linux desktop and server installations.