fix(landing): туннель сам трекает публичный URL — обёртка landing-tunnel-run.sh (systemd) парсит stdout localhost.run и обновляет PUBLIC_URL.txt при каждой смене субдомена; копия обёртки в scripts/ для воспроизводимости; DEPLOY.md: источник правды по URL + ограничение nokey-режима
This commit is contained in:
parent
a964329fdb
commit
0308258d99
3 changed files with 34 additions and 3 deletions
25
scripts/landing-tunnel-run.sh
Executable file
25
scripts/landing-tunnel-run.sh
Executable file
|
|
@ -0,0 +1,25 @@
|
|||
#!/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 поднимет заново
|
||||
|
|
@ -1,4 +1,10 @@
|
|||
Landing served locally: systemd landing-serve (python3 http.server :8095, dir sites/landing)
|
||||
Public tunnel: systemd landing-tunnel (ssh -R 80:127.0.0.1:8095 nokey@localhost.run)
|
||||
Current public URL: https://898998510cf1d8.lhr.life (random subdomain per restart; see PUBLIC_URL.txt)
|
||||
Public tunnel: systemd landing-tunnel (localhost.run; обёртка /usr/local/bin/landing-tunnel-run.sh)
|
||||
Current public URL: см. PUBLIC_URL.txt (обёртка обновляет его сама при каждой смене)
|
||||
|
||||
Важно (2026-10-07): localhost.run в nokey-режиме выдаёт случайный субдомен на
|
||||
каждый рестарт — URL нестабилен by design. Обёртка туннеля парсит stdout ssh
|
||||
и перезаписывает PUBLIC_URL.txt при смене URL (лог: /var/log/landing-tunnel.log).
|
||||
Стабильный URL = только через прод (simbiot.cil.by, scripts/deploy_landing.sh
|
||||
из origin/master) или именованный туннель с аккаунтом.
|
||||
Note: server IP 185.203.154.209 drops inbound from outside (NAT/firewall), hence tunnel.
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
https://898998510cf1d8.lhr.life
|
||||
https://d291eaced5e8c8.lhr.life
|
||||
|
|
|
|||
Loading…
Reference in a new issue