# frozen_string_literal: true namespace :streams do namespace :nodes do desc "Assicura il nodo home dagli ENV MediaMTX" task ensure_home: :environment do node = Streams::NodeRegistry.ensure_home_from_env! puts "home ready slug=#{node.slug} rtmp=#{node.rtmp_base_url} max=#{node.max_publishers}" end desc "Provisiona un nodo lab (STREAM_CLOUD_PROVIDER=local_lab|proxmox_lab)" task provision_lab: :environment do node = Streams::NodeProvisioner.new.provision_lab! puts "lab node ready slug=#{node.slug} host=#{node.hostname} id=#{node.provider_instance_id}" if ENV.fetch("STREAM_DNS_PROVIDER", "lab") == "lab" puts "DNS lab snippet:" puts Streams::DnsProviders::Lab.new.hosts_file_snippet end end desc "Provisiona un nodo Hetzner Cloud + DNS mltv-stream.net (richiede HCLOUD_TOKEN)" task provision_cloud: :environment do node = Streams::NodeProvisioner.new.provision_cloud! puts "cloud node ready slug=#{node.slug} host=#{node.hostname} id=#{node.provider_instance_id} ip=#{node.metadata['public_ip']}" end desc "Dump record DNS lab (Redis)" task dns_lab_dump: :environment do puts Streams::DnsProviders::Lab.new.hosts_file_snippet end end end