mirror of
https://github.com/Dokploy/website
synced 2025-06-26 18:16:01 +00:00
refactor: add fallback getIp
This commit is contained in:
parent
74ca743a5e
commit
b2dac5e75f
@ -43,21 +43,50 @@ install_dokploy() {
|
|||||||
docker swarm leave --force 2>/dev/null
|
docker swarm leave --force 2>/dev/null
|
||||||
|
|
||||||
get_ip() {
|
get_ip() {
|
||||||
# Try to get IPv4
|
local ip=""
|
||||||
local ipv4=$(curl -4s https://ifconfig.io 2>/dev/null)
|
|
||||||
|
# Try IPv4 first
|
||||||
|
# First attempt: ifconfig.io
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://ifconfig.io 2>/dev/null)
|
||||||
|
|
||||||
|
# Second attempt: icanhazip.com
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://icanhazip.com 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Third attempt: ipecho.net
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://ipecho.net/plain 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$ipv4" ]; then
|
# If no IPv4, try IPv6
|
||||||
echo "$ipv4"
|
if [ -z "$ip" ]; then
|
||||||
else
|
# Try IPv6 with ifconfig.io
|
||||||
# Try to get IPv6
|
ip=$(curl -6s --connect-timeout 5 https://ifconfig.io 2>/dev/null)
|
||||||
local ipv6=$(curl -6s https://ifconfig.io 2>/dev/null)
|
|
||||||
if [ -n "$ipv6" ]; then
|
# Try IPv6 with icanhazip.com
|
||||||
echo "$ipv6"
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -6s --connect-timeout 5 https://icanhazip.com 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try IPv6 with ipecho.net
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -6s --connect-timeout 5 https://ipecho.net/plain 2>/dev/null)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
echo "Error: Could not determine server IP address automatically (neither IPv4 nor IPv6)." >&2
|
||||||
|
echo "Please set the ADVERTISE_ADDR environment variable manually." >&2
|
||||||
|
echo "Example: export ADVERTISE_ADDR=<your-server-ip>" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$ip"
|
||||||
}
|
}
|
||||||
|
|
||||||
advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}"
|
advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}"
|
||||||
|
echo "Using advertise address: $advertise_addr"
|
||||||
|
|
||||||
docker swarm init --advertise-addr $advertise_addr
|
docker swarm init --advertise-addr $advertise_addr
|
||||||
|
|
||||||
|
@ -43,21 +43,50 @@ install_dokploy() {
|
|||||||
docker swarm leave --force 2>/dev/null
|
docker swarm leave --force 2>/dev/null
|
||||||
|
|
||||||
get_ip() {
|
get_ip() {
|
||||||
# Try to get IPv4
|
local ip=""
|
||||||
local ipv4=$(curl -4s https://ifconfig.io 2>/dev/null)
|
|
||||||
|
# Try IPv4 first
|
||||||
|
# First attempt: ifconfig.io
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://ifconfig.io 2>/dev/null)
|
||||||
|
|
||||||
|
# Second attempt: icanhazip.com
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://icanhazip.com 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Third attempt: ipecho.net
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://ipecho.net/plain 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$ipv4" ]; then
|
# If no IPv4, try IPv6
|
||||||
echo "$ipv4"
|
if [ -z "$ip" ]; then
|
||||||
else
|
# Try IPv6 with ifconfig.io
|
||||||
# Try to get IPv6
|
ip=$(curl -6s --connect-timeout 5 https://ifconfig.io 2>/dev/null)
|
||||||
local ipv6=$(curl -6s https://ifconfig.io 2>/dev/null)
|
|
||||||
if [ -n "$ipv6" ]; then
|
# Try IPv6 with icanhazip.com
|
||||||
echo "$ipv6"
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -6s --connect-timeout 5 https://icanhazip.com 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try IPv6 with ipecho.net
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -6s --connect-timeout 5 https://ipecho.net/plain 2>/dev/null)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
echo "Error: Could not determine server IP address automatically (neither IPv4 nor IPv6)." >&2
|
||||||
|
echo "Please set the ADVERTISE_ADDR environment variable manually." >&2
|
||||||
|
echo "Example: export ADVERTISE_ADDR=<your-server-ip>" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$ip"
|
||||||
}
|
}
|
||||||
|
|
||||||
advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}"
|
advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}"
|
||||||
|
echo "Using advertise address: $advertise_addr"
|
||||||
|
|
||||||
docker swarm init --advertise-addr $advertise_addr
|
docker swarm init --advertise-addr $advertise_addr
|
||||||
|
|
||||||
|
@ -42,21 +42,50 @@ install_dokploy() {
|
|||||||
docker swarm leave --force 2>/dev/null
|
docker swarm leave --force 2>/dev/null
|
||||||
|
|
||||||
get_ip() {
|
get_ip() {
|
||||||
# Try to get IPv4
|
local ip=""
|
||||||
local ipv4=$(curl -4s https://ifconfig.io 2>/dev/null)
|
|
||||||
|
# Try IPv4 first
|
||||||
|
# First attempt: ifconfig.io
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://ifconfig.io 2>/dev/null)
|
||||||
|
|
||||||
|
# Second attempt: icanhazip.com
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://icanhazip.com 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Third attempt: ipecho.net
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -4s --connect-timeout 5 https://ipecho.net/plain 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$ipv4" ]; then
|
# If no IPv4, try IPv6
|
||||||
echo "$ipv4"
|
if [ -z "$ip" ]; then
|
||||||
else
|
# Try IPv6 with ifconfig.io
|
||||||
# Try to get IPv6
|
ip=$(curl -6s --connect-timeout 5 https://ifconfig.io 2>/dev/null)
|
||||||
local ipv6=$(curl -6s https://ifconfig.io 2>/dev/null)
|
|
||||||
if [ -n "$ipv6" ]; then
|
# Try IPv6 with icanhazip.com
|
||||||
echo "$ipv6"
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -6s --connect-timeout 5 https://icanhazip.com 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try IPv6 with ipecho.net
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
ip=$(curl -6s --connect-timeout 5 https://ipecho.net/plain 2>/dev/null)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -z "$ip" ]; then
|
||||||
|
echo "Error: Could not determine server IP address automatically (neither IPv4 nor IPv6)." >&2
|
||||||
|
echo "Please set the ADVERTISE_ADDR environment variable manually." >&2
|
||||||
|
echo "Example: export ADVERTISE_ADDR=<your-server-ip>" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$ip"
|
||||||
}
|
}
|
||||||
|
|
||||||
advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}"
|
advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}"
|
||||||
|
echo "Using advertise address: $advertise_addr"
|
||||||
|
|
||||||
docker swarm init --advertise-addr $advertise_addr
|
docker swarm init --advertise-addr $advertise_addr
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user