diff --git a/deploy/install.sh b/deploy/install.sh index b29d610..cbd3d93 100755 --- a/deploy/install.sh +++ b/deploy/install.sh @@ -224,7 +224,32 @@ resolve_derived_values() { else FILES_DOMAIN_RESOLVED="${DOMAIN}" 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() { @@ -576,15 +601,6 @@ render_all_templates() { cp "${DEPLOY_DIR}/fail2ban/filter-glchat-auth.conf" "${TARGET_DIR}/fail2ban/" 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) # порты LiveKit не публикуются, чтобы не занимать порты хост-машины. compose_template="${DEPLOY_DIR}/compose.yaml.tpl" @@ -621,19 +637,6 @@ render_all_templates() { "PROXY_MODE=${PROXY_MODE}" 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" \ "LIVEKIT_WS_PORT=${LIVEKIT_WS_PORT}" \ "LIVEKIT_TCP_PORT=${LIVEKIT_TCP_PORT}" \ @@ -981,7 +984,6 @@ main() { check_os interactive_defaults validate_inputs - resolve_derived_values check_resources check_dns "$DOMAIN" || true check_ports_free @@ -1004,6 +1006,10 @@ main() { PROFILE_LIVEKIT_CPUS="1.0" PROFILE_SWAPPINESS=10 + # Производные значения зависят от профиля (simulcast) и режима прокси, + # поэтому считаются после profile_values и до записи .env и шаблонов. + resolve_derived_values + print_plan "$detected_profile" if ! confirm "Применить план? (yes/no)" no; then warn "установка отменена пользователем"