fix(deploy): все производные значения считаются до записи .env и рендера
resolve_derived_values() вычисляет CADDY_PROFILE, LIVEKIT_PUBLISH, TURN_EXTERNAL_TLS, PROFILE_LIVEKIT_DISABLE_SIMULCAST и PROFILE_LIVEKIT_USE_EXTERNAL_IP после выбора профиля и до write_env_file: устраняет падение set -u на PROFILE_LIVEKIT_SIMULCAST_DISABLED.
This commit is contained in:
+30
-24
@@ -224,7 +224,32 @@ resolve_derived_values() {
|
|||||||
else
|
else
|
||||||
FILES_DOMAIN_RESOLVED="${DOMAIN}"
|
FILES_DOMAIN_RESOLVED="${DOMAIN}"
|
||||||
fi
|
fi
|
||||||
export FILES_DOMAIN_RESOLVED
|
|
||||||
|
# В режиме внешнего прокси собственный Caddy не нужен вовсе: сервис выносится
|
||||||
|
# в несуществующий профиль, чтобы `docker compose up` его не поднимал.
|
||||||
|
CADDY_PROFILE="embedded-proxy"
|
||||||
|
if [ "$PROXY_MODE" = "external" ] || [ "$SKIP_TLS" = "1" ]; then
|
||||||
|
CADDY_PROFILE="disabled"
|
||||||
|
fi
|
||||||
|
# В тестовом режиме (--skip-tls) порты LiveKit не публикуются.
|
||||||
|
LIVEKIT_PUBLISH="true"
|
||||||
|
[ "$SKIP_TLS" = "1" ] && LIVEKIT_PUBLISH="false"
|
||||||
|
|
||||||
|
turn_external_tls="false"
|
||||||
|
[ "$PROXY_MODE" = "external" ] && turn_external_tls="true"
|
||||||
|
TURN_EXTERNAL_TLS="$turn_external_tls"
|
||||||
|
|
||||||
|
disable_simulcast="true"
|
||||||
|
if [ "${PROFILE_LIVEKIT_SIMULCAST:-0}" -gt 0 ] 2>/dev/null; then
|
||||||
|
disable_simulcast="false"
|
||||||
|
fi
|
||||||
|
PROFILE_LIVEKIT_DISABLE_SIMULCAST="$disable_simulcast"
|
||||||
|
|
||||||
|
use_external_ip="true"
|
||||||
|
PROFILE_LIVEKIT_USE_EXTERNAL_IP="$use_external_ip"
|
||||||
|
|
||||||
|
export FILES_DOMAIN_RESOLVED CADDY_PROFILE LIVEKIT_PUBLISH TURN_EXTERNAL_TLS \
|
||||||
|
PROFILE_LIVEKIT_DISABLE_SIMULCAST PROFILE_LIVEKIT_USE_EXTERNAL_IP
|
||||||
}
|
}
|
||||||
|
|
||||||
validate_inputs() {
|
validate_inputs() {
|
||||||
@@ -576,15 +601,6 @@ render_all_templates() {
|
|||||||
cp "${DEPLOY_DIR}/fail2ban/filter-glchat-auth.conf" "${TARGET_DIR}/fail2ban/"
|
cp "${DEPLOY_DIR}/fail2ban/filter-glchat-auth.conf" "${TARGET_DIR}/fail2ban/"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# В режиме внешнего прокси собственный Caddy не нужен вовсе: сервис
|
|
||||||
# выносится в несуществующий профиль, чтобы `docker compose up` его не поднимал.
|
|
||||||
CADDY_PROFILE="embedded-proxy"
|
|
||||||
if [ "$PROXY_MODE" = "external" ] || [ "$SKIP_TLS" = "1" ]; then
|
|
||||||
CADDY_PROFILE="disabled"
|
|
||||||
fi
|
|
||||||
LIVEKIT_PUBLISH="true"
|
|
||||||
[ "$SKIP_TLS" = "1" ] && LIVEKIT_PUBLISH="false"
|
|
||||||
|
|
||||||
# Вариант compose выбирается по режиму: в тестовом прогоне (--skip-tls)
|
# Вариант compose выбирается по режиму: в тестовом прогоне (--skip-tls)
|
||||||
# порты LiveKit не публикуются, чтобы не занимать порты хост-машины.
|
# порты LiveKit не публикуются, чтобы не занимать порты хост-машины.
|
||||||
compose_template="${DEPLOY_DIR}/compose.yaml.tpl"
|
compose_template="${DEPLOY_DIR}/compose.yaml.tpl"
|
||||||
@@ -621,19 +637,6 @@ render_all_templates() {
|
|||||||
"PROXY_MODE=${PROXY_MODE}"
|
"PROXY_MODE=${PROXY_MODE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
turn_external_tls="false"
|
|
||||||
[ "$PROXY_MODE" = "external" ] && turn_external_tls="true"
|
|
||||||
disable_simulcast="true"
|
|
||||||
[ "${PROFILE_LIVEKIT_SIMULCAST:-0}" -gt 0 ] 2>/dev/null && disable_simulcast="false"
|
|
||||||
PROFILE_LIVEKIT_DISABLE_SIMULCAST="$disable_simulcast"
|
|
||||||
|
|
||||||
use_external_ip="true"
|
|
||||||
if [ "$PROXY_MODE" = "embedded" ]; then
|
|
||||||
use_external_ip="true"
|
|
||||||
fi
|
|
||||||
PROFILE_LIVEKIT_USE_EXTERNAL_IP="$use_external_ip"
|
|
||||||
TURN_EXTERNAL_TLS="$turn_external_tls"
|
|
||||||
|
|
||||||
render_template "${DEPLOY_DIR}/livekit/livekit.yaml.tpl" "${TARGET_DIR}/livekit/livekit.yaml" \
|
render_template "${DEPLOY_DIR}/livekit/livekit.yaml.tpl" "${TARGET_DIR}/livekit/livekit.yaml" \
|
||||||
"LIVEKIT_WS_PORT=${LIVEKIT_WS_PORT}" \
|
"LIVEKIT_WS_PORT=${LIVEKIT_WS_PORT}" \
|
||||||
"LIVEKIT_TCP_PORT=${LIVEKIT_TCP_PORT}" \
|
"LIVEKIT_TCP_PORT=${LIVEKIT_TCP_PORT}" \
|
||||||
@@ -981,7 +984,6 @@ main() {
|
|||||||
check_os
|
check_os
|
||||||
interactive_defaults
|
interactive_defaults
|
||||||
validate_inputs
|
validate_inputs
|
||||||
resolve_derived_values
|
|
||||||
check_resources
|
check_resources
|
||||||
check_dns "$DOMAIN" || true
|
check_dns "$DOMAIN" || true
|
||||||
check_ports_free
|
check_ports_free
|
||||||
@@ -1004,6 +1006,10 @@ main() {
|
|||||||
PROFILE_LIVEKIT_CPUS="1.0"
|
PROFILE_LIVEKIT_CPUS="1.0"
|
||||||
PROFILE_SWAPPINESS=10
|
PROFILE_SWAPPINESS=10
|
||||||
|
|
||||||
|
# Производные значения зависят от профиля (simulcast) и режима прокси,
|
||||||
|
# поэтому считаются после profile_values и до записи .env и шаблонов.
|
||||||
|
resolve_derived_values
|
||||||
|
|
||||||
print_plan "$detected_profile"
|
print_plan "$detected_profile"
|
||||||
if ! confirm "Применить план? (yes/no)" no; then
|
if ! confirm "Применить план? (yes/no)" no; then
|
||||||
warn "установка отменена пользователем"
|
warn "установка отменена пользователем"
|
||||||
|
|||||||
Reference in New Issue
Block a user