84 lines
2.7 KiB
Bash
Executable File
84 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
echo "==== Содержимое /cloudflared.env ===="
|
||
cat /cloudflared.env || echo "Файл не найден"
|
||
echo "===="
|
||
|
||
# Получаем токен из переменной окружения или из файла
|
||
if [ -z "$TUNNEL_TOKEN" ] && [ -f /cloudflared.env ]; then
|
||
. /cloudflared.env
|
||
fi
|
||
|
||
echo "TUNNEL_TOKEN=[$TUNNEL_TOKEN]"
|
||
|
||
# Функция для проверки сети
|
||
check_network() {
|
||
echo "Проверка сетевого соединения..."
|
||
for addr in 1.1.1.1 8.8.8.8; do
|
||
if ping -c 1 -W 5 "$addr" > /dev/null 2>&1; then
|
||
echo "✓ Сеть доступна ($addr)"
|
||
return 0
|
||
fi
|
||
done
|
||
echo "✗ Сетевые проблемы"
|
||
return 1
|
||
}
|
||
|
||
# Функция для проверки доступности backend
|
||
check_backend() {
|
||
echo "Проверка доступности backend..."
|
||
if curl -s --connect-timeout 5 http://backend:8000 >/dev/null 2>&1; then
|
||
echo "✓ Backend доступен"
|
||
return 0
|
||
else
|
||
echo "✗ Backend недоступен"
|
||
return 1
|
||
fi
|
||
}
|
||
|
||
# Проверяем сеть перед запуском
|
||
echo "=== Проверка подключений ==="
|
||
check_network
|
||
check_backend
|
||
|
||
# Проверяем наличие конфигурационного файла
|
||
echo "=== Проверка конфигурации ==="
|
||
if [ -f "/etc/cloudflared/config.yml" ]; then
|
||
echo "✓ Конфигурационный файл найден"
|
||
cat /etc/cloudflared/config.yml
|
||
else
|
||
echo "✗ Конфигурационный файл не найден"
|
||
fi
|
||
|
||
if [ -f "/etc/cloudflared/a765a217-5312-48f8-9bb7-5a7ef56602b8.json" ]; then
|
||
echo "✓ Credentials файл найден"
|
||
else
|
||
echo "✗ Credentials файл не найден"
|
||
fi
|
||
|
||
# Проверим доступность frontend
|
||
echo "=== Проверка frontend ==="
|
||
if curl -s --connect-timeout 5 http://dapp-frontend:5173 >/dev/null 2>&1; then
|
||
echo "✓ Frontend доступен"
|
||
else
|
||
echo "✗ Frontend недоступен, fallback на backend"
|
||
fi
|
||
|
||
# Запускаем cloudflared с токеном вместо конфигурационного файла
|
||
echo "=== Запуск cloudflared с токеном ==="
|
||
echo "Используем токен туннеля: ${TUNNEL_TOKEN:0:20}..."
|
||
exec cloudflared tunnel \
|
||
--no-autoupdate \
|
||
--edge-ip-version 4 \
|
||
--protocol http2 \
|
||
--retries 20 \
|
||
--grace-period 60s \
|
||
--loglevel info \
|
||
--metrics 0.0.0.0:39693 \
|
||
--proxy-connect-timeout 90s \
|
||
--proxy-tls-timeout 90s \
|
||
--proxy-tcp-keepalive 15s \
|
||
--proxy-keepalive-timeout 120s \
|
||
--proxy-keepalive-connections 10 \
|
||
--proxy-no-happy-eyeballs \
|
||
run --token "$TUNNEL_TOKEN" |