Repository: alexjustesen/speedtest-tracker

Issue #1838: Make IP lookup service configureable
Created: 2024-11-25T20:13:26Z
Is your feature request related to a problem? Please describe.
After upgrading the docker image to an image above 0.21.6, no speedtests are performed anymore, they all results in an error immediately. Changing back to image 0.21.6 makes the speedtest work again. It's just switching the container image, no configuration changes.
So I digged a bit deeper and examined the container itself as well as the error message shown in webinterface.
The error reported within the failed speedtest run is:
Failed to fetch external IP address, server is likely unable to connect to the internet.
Inside the container, connectivity to the internet is fine. I can ping, curl and lookup dns names with v0.22.0 and above (even tested 0.24.1 today)
Also nothing than the image itself has changed on my docker host, so even here, the new image seems to be the problem.
Finally I checked the laravel.log and I think I found the reason:
[2024-11-25 20:04:37] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
I only see this error message with images since 0.20.0 and above, not with the working 0.21.6 and below versions.
This hinted me to an issue with https://icanhazip.com/, which seems to be used to get the external IP address within the newer containers.
But unfortunately, I am using nextdns as my private dns server which blocks unwanted and malicious sites. And for what reason ever, https://icanhazip.com/ is on one of the blacklists too.
Problem was solved (hopefully only for some time) by whitelisting within nextdns service.
Describe the solution you'd like
Can you please consider to implement an option (either via gui or env) to configure the IP detection service? There are some other services, I even host one myself.
I really don't know if https://icanhazip.com/ is really any harmful, but it seems to add an unneccessary dependency for such a great tool your speedtest-tracker is. Making it configureable also indicates to this behavior if set as default value within the documentation.
Please keep up the phenomenal work and thanks for all your effords until this point. I really love your speed-tracker.

Duplicate issue #2001: Speed tests always fail
Created: 2025-01-18T23:13:35Z
Describe the bug
No speed test pass any more fore me. I am getting the following error message in the logs:
speedtest  | [2025-01-18 23:08:52] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
Environment (please complete the following information):

OS: Docker on Ubuntu
Architecture: x86
Version: lscr.io/linuxserver/speedtest-tracker:latest

Screenshots

Logs
speedtest  | [2025-01-18 02:00:01] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 04:00:03] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 06:00:03] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 08:00:02] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 10:00:01] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 12:00:02] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 14:00:01] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 16:00:02] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 18:00:03] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 20:00:02] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 22:00:01] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]
speedtest  | [2025-01-18 23:08:52] production.ERROR: Failed to fetch external IP address. ["cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://icanhazip.com/"]

Additional context
I can shell into the container and ping icanhazip.com just fine but I cannot curl it:
root@e5af011dc2e4:/# ping icanhazip.com
PING icanhazip.com (0.0.0.0): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.070 ms
64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.101 ms
^C
--- icanhazip.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.070/0.085/0.101 ms
root@e5af011dc2e4:/# curl https://icanhazip.com
curl: (60) SSL certificate problem: self-signed certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the webpage mentioned above.
root@e5af011dc2e4:/# curl --version
curl 8.11.1 (x86_64-alpine-linux-musl) libcurl/8.11.1 OpenSSL/3.3.2 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.34.3 libidn2/2.3.7 libpsl/0.21.5 nghttp2/1.64.0
Release-Date: 2024-12-11
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTPS-proxy IDN IPv6 Largefile libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd

Closing comment (2025-01-18T23:24:47Z): Just noticed that this is a dupe of: #1838