Corregge cloud-init montato, PublisherOnline multi-nodo e E2E locale-aware.

Senza volume stream-node i nodi Hetzner nascevano senza MediaMTX; sync live usa ora Client.for_session e rtmpconns (MediaMTX 1.20).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-11 08:48:28 +02:00
co-authored by Cursor
parent 714602f3da
commit 5a0ca8ef1c
9 changed files with 137 additions and 39 deletions
@@ -40,7 +40,7 @@ module Streams
network_id = ENV["HCLOUD_NETWORK_ID"].presence
body[:networks] = [network_id.to_i] if network_id
user_data = cloud_init_user_data
body[:user_data] = user_data if user_data.present?
body[:user_data] = user_data
data = post("servers", body)
server = data["server"] || {}
@@ -114,9 +114,16 @@ module Streams
def cloud_init_user_data
path = ENV["HCLOUD_USER_DATA_FILE"].presence
return File.read(path) if path && File.file?(path)
if path.present?
raise Error, "HCLOUD_USER_DATA_FILE non leggibile nel container: #{path}" unless File.file?(path)
ENV["HCLOUD_USER_DATA"].presence
return File.read(path)
end
inline = ENV["HCLOUD_USER_DATA"].presence
raise Error, "Manca cloud-init: imposta HCLOUD_USER_DATA_FILE (montato) o HCLOUD_USER_DATA" if inline.blank?
inline
end
def conn