25 lines
1.4 KiB
Bash
Executable file
25 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
# Обёртка туннеля лендинга (localhost.run) — t-день 2026-10-07.
|
|
# Проблема: localhost.run без аккаунта выдаёт СЛУЧАЙНЫЙ субдомен на каждый
|
|
# рестарт туннеля → PUBLIC_URL.txt протухает и Alex получает битую ссылку.
|
|
# Фикс: парсим stdout ssh на лету и обновляем PUBLIC_URL.txt при каждой
|
|
# смене URL. URL всё ещё нестабилен (это свойство nokey-режима) — файл
|
|
# теперь всегда актуален; стабильный субдомен = именованный туннель/прод.
|
|
set -uo pipefail
|
|
|
|
URL_FILE="${URL_FILE:-/root/simbiot-harness/sites/landing/PUBLIC_URL.txt}"
|
|
LOG="${LOG:-/var/log/landing-tunnel.log}"
|
|
mkdir -p "$(dirname "$LOG")"
|
|
|
|
/usr/bin/ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 \
|
|
-o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes \
|
|
-R 80:127.0.0.1:8095 nokey@localhost.run 2>&1 |
|
|
while IFS= read -r line; do
|
|
printf '%s\n' "$line" >>"$LOG"
|
|
url="$(printf '%s' "$line" | grep -oE 'https://[a-z0-9-]+\.lhr\.life' | head -1)"
|
|
if [ -n "$url" ] && [ "$(cat "$URL_FILE" 2>/dev/null)" != "$url" ]; then
|
|
printf '%s\n' "$url" >"$URL_FILE"
|
|
printf '[landing-tunnel] PUBLIC_URL.txt → %s\n' "$url" >>"$LOG"
|
|
fi
|
|
done
|
|
exit 1 # ssh умер — systemd Restart=always поднимет заново
|