[{"data":1,"prerenderedAt":1343},["ShallowReactive",2],{"navigation_docs_es":3,"-es-installation-prepare-host":408,"-es-installation-prepare-host-surround":1338},[4,25,74,124,238,253,313,342,388],{"title":5,"path":6,"stem":7,"children":8,"page":24},"Getting Started","\u002Fes\u002Fgetting-started","es\u002F1.getting-started",[9,14,19],{"title":10,"path":11,"stem":12,"icon":13},"Introducción","\u002Fes\u002Fgetting-started\u002Fintroduction","es\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Quickstart","\u002Fes\u002Fgetting-started\u002Fquickstart","es\u002F1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Conceptos","\u002Fes\u002Fgetting-started\u002Fconcepts","es\u002F1.getting-started\u002F3.concepts","i-lucide-book-open",false,{"title":26,"path":27,"stem":28,"children":29,"page":24},"Live Production","\u002Fes\u002Flive-production","es\u002F2.live-production",[30,35,55,60],{"title":31,"path":32,"stem":33,"icon":34},"On air","\u002Fes\u002Flive-production\u002Fon-air","es\u002F2.live-production\u002F1.on-air","i-lucide-radio",{"title":36,"path":37,"stem":38,"children":39,"page":24},"Live Streams","\u002Fes\u002Flive-production\u002Flive-streams","es\u002F2.live-production\u002F2.live-streams",[40,45,50],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Fes\u002Flive-production\u002Flive-streams\u002Foverview","es\u002F2.live-production\u002F2.live-streams\u002F1.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Options","\u002Fes\u002Flive-production\u002Flive-streams\u002Flive-stream-options","es\u002F2.live-production\u002F2.live-streams\u002F2.live-stream-options","i-lucide-file-text",{"title":51,"path":52,"stem":53,"icon":54},"Inicio y parada","\u002Fes\u002Flive-production\u002Flive-streams\u002Fstart-stop","es\u002F2.live-production\u002F2.live-streams\u002F3.start-stop","i-lucide-play-circle",{"title":56,"path":57,"stem":58,"icon":59},"Scheduler","\u002Fes\u002Flive-production\u002Fscheduler","es\u002F2.live-production\u002F3.scheduler","i-lucide-calendar-clock",{"title":61,"path":62,"stem":63,"children":64,"page":24},"Recordings","\u002Fes\u002Flive-production\u002Frecordings","es\u002F2.live-production\u002F4.recordings",[65,69],{"title":41,"path":66,"stem":67,"icon":68},"\u002Fes\u002Flive-production\u002Frecordings\u002Foverview","es\u002F2.live-production\u002F4.recordings\u002F1.overview","i-lucide-circle-dot",{"title":70,"path":71,"stem":72,"icon":73},"Editor","\u002Fes\u002Flive-production\u002Frecordings\u002Feditor","es\u002F2.live-production\u002F4.recordings\u002F2.editor","i-lucide-scissors",{"title":75,"path":76,"stem":77,"children":78,"page":24},"Configuration","\u002Fes\u002Fconfiguration","es\u002F3.configuration",[79,93,98,111],{"title":80,"path":81,"stem":82,"children":83,"page":24},"Devices","\u002Fes\u002Fconfiguration\u002Fdevices","es\u002F3.configuration\u002F1.devices",[84,88],{"title":80,"path":85,"stem":86,"icon":87},"\u002Fes\u002Fconfiguration\u002Fdevices\u002Fdevices","es\u002F3.configuration\u002F1.devices\u002F1.devices","i-lucide-server",{"title":89,"path":90,"stem":91,"icon":92},"Groups","\u002Fes\u002Fconfiguration\u002Fdevices\u002Fgroups","es\u002F3.configuration\u002F1.devices\u002F2.groups","i-lucide-network",{"title":94,"path":95,"stem":96,"icon":97},"Sources","\u002Fes\u002Fconfiguration\u002Fsources","es\u002F3.configuration\u002F2.sources","i-lucide-cable",{"title":99,"path":100,"stem":101,"children":102,"page":24},"Encodings","\u002Fes\u002Fconfiguration\u002Fencodings","es\u002F3.configuration\u002F3.encodings",[103,107],{"title":99,"path":104,"stem":105,"icon":106},"\u002Fes\u002Fconfiguration\u002Fencodings\u002Fprofiles","es\u002F3.configuration\u002F3.encodings\u002F1.profiles","i-lucide-sliders-horizontal",{"title":89,"path":108,"stem":109,"icon":110},"\u002Fes\u002Fconfiguration\u002Fencodings\u002Fgroups","es\u002F3.configuration\u002F3.encodings\u002F2.groups","i-lucide-layers",{"title":112,"path":113,"stem":114,"children":115,"page":24},"Destinations","\u002Fes\u002Fconfiguration\u002Fdestinations","es\u002F3.configuration\u002F4.destinations",[116,120],{"title":112,"path":117,"stem":118,"icon":119},"\u002Fes\u002Fconfiguration\u002Fdestinations\u002Fdestinations","es\u002F3.configuration\u002F4.destinations\u002F1.destinations","i-lucide-send",{"title":89,"path":121,"stem":122,"icon":123},"\u002Fes\u002Fconfiguration\u002Fdestinations\u002Fpublishing-groups","es\u002F3.configuration\u002F4.destinations\u002F2.publishing-groups","i-lucide-share-2",{"title":125,"path":126,"stem":127,"children":128,"page":24},"Settings","\u002Fes\u002Fsettings","es\u002F4.settings",[129,142,147,163,179],{"title":130,"path":131,"stem":132,"children":133,"page":24},"Users","\u002Fes\u002Fsettings\u002Fusers","es\u002F4.settings\u002F1.users",[134,138],{"title":130,"path":135,"stem":136,"icon":137},"\u002Fes\u002Fsettings\u002Fusers\u002Fusers","es\u002F4.settings\u002F1.users\u002F1.users","i-lucide-user",{"title":89,"path":139,"stem":140,"icon":141},"\u002Fes\u002Fsettings\u002Fusers\u002Fuser-groups","es\u002F4.settings\u002F1.users\u002F2.user-groups","i-lucide-users",{"title":143,"path":144,"stem":145,"icon":146},"Security","\u002Fes\u002Fsettings\u002Fsecurity","es\u002F4.settings\u002F2.security","i-lucide-shield",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":24},"Assets","i-lucide-image","\u002Fes\u002Fsettings\u002Fassets","es\u002F4.settings\u002F3.assets",[153,158],{"title":154,"path":155,"stem":156,"icon":157},"Logos","\u002Fes\u002Fsettings\u002Fassets\u002Flogos","es\u002F4.settings\u002F3.assets\u002F1.logos","i-lucide-images",{"title":159,"path":160,"stem":161,"icon":162},"Files","\u002Fes\u002Fsettings\u002Fassets\u002Ffiles","es\u002F4.settings\u002F3.assets\u002F2.files","i-lucide-clapperboard",{"title":164,"icon":165,"path":166,"stem":167,"children":168,"page":24},"External Storage","i-lucide-folder-cog","\u002Fes\u002Fsettings\u002Fexternal-storage","es\u002F4.settings\u002F4.external-storage",[169,174],{"title":170,"path":171,"stem":172,"icon":173},"Remote Folders","\u002Fes\u002Fsettings\u002Fexternal-storage\u002Fremote-folders","es\u002F4.settings\u002F4.external-storage\u002F1.remote-folders","i-lucide-folder-archive",{"title":175,"path":176,"stem":177,"icon":178},"Target Folders","\u002Fes\u002Fsettings\u002Fexternal-storage\u002Ftarget-folders","es\u002F4.settings\u002F4.external-storage\u002F2.target-folders","i-lucide-folder-up",{"title":180,"path":181,"stem":182,"children":183,"page":24},"Integrations","\u002Fes\u002Fsettings\u002Fintegrations","es\u002F4.settings\u002F5.integrations",[184,188,193,207],{"title":41,"path":185,"stem":186,"icon":187},"\u002Fes\u002Fsettings\u002Fintegrations\u002Foverview","es\u002F4.settings\u002F5.integrations\u002F1.overview","i-lucide-plug",{"title":189,"path":190,"stem":191,"icon":192},"MediaCopilot","\u002Fes\u002Fsettings\u002Fintegrations\u002Fmediacopilot","es\u002F4.settings\u002F5.integrations\u002F2.mediacopilot","i-lucide-sparkles",{"title":194,"icon":195,"path":196,"stem":197,"children":198,"page":24},"C21 Live Cloud","i-lucide-cloud","\u002Fes\u002Fsettings\u002Fintegrations\u002Fc21livecloud","es\u002F4.settings\u002F5.integrations\u002F3.c21livecloud",[199,202],{"title":41,"path":200,"stem":201,"icon":195},"\u002Fes\u002Fsettings\u002Fintegrations\u002Fc21livecloud\u002Foverview","es\u002F4.settings\u002F5.integrations\u002F3.c21livecloud\u002F1.overview",{"title":203,"path":204,"stem":205,"icon":206},"Accounts","\u002Fes\u002Fsettings\u002Fintegrations\u002Fc21livecloud\u002Faccounts","es\u002F4.settings\u002F5.integrations\u002F3.c21livecloud\u002F2.accounts","i-lucide-key-round",{"title":208,"icon":146,"path":209,"stem":210,"children":211,"page":24},"DRM Providers","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm","es\u002F4.settings\u002F5.integrations\u002F4.drm",[212,216,220,224,228,233],{"title":41,"path":213,"stem":214,"icon":215},"\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Foverview","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F1.overview","i-lucide-shield-check",{"title":217,"path":218,"stem":219,"icon":146},"Widevine","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fwidevine","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F2.widevine",{"title":221,"path":222,"stem":223,"icon":146},"PlayReady","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fplayready","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F3.playready",{"title":225,"path":226,"stem":227,"icon":146},"FairPlay","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Ffairplay","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F4.fairplay",{"title":229,"path":230,"stem":231,"icon":232},"Providers","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fproviders","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F5.providers","i-lucide-shield-half",{"title":234,"path":235,"stem":236,"icon":237},"Workflow","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fworkflow","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F6.workflow","i-lucide-workflow",{"title":239,"path":240,"stem":241,"children":242,"page":24},"System Status","\u002Fes\u002Fsystem-status","es\u002F5.system-status",[243,248],{"title":244,"path":245,"stem":246,"icon":247},"Commands","\u002Fes\u002Fsystem-status\u002Fcommands","es\u002F5.system-status\u002F1.commands","i-lucide-square-terminal",{"title":249,"path":250,"stem":251,"icon":252},"Logs","\u002Fes\u002Fsystem-status\u002Flogs","es\u002F5.system-status\u002F2.logs","i-lucide-scroll-text",{"title":254,"path":255,"stem":256,"children":257,"page":24},"How Tos","\u002Fes\u002Fhow-tos","es\u002F6.how-tos",[258,263,268,273,277,281,285,290,294,299,304,309],{"title":259,"path":260,"stem":261,"icon":262},"Arrancar y detener un Live stream","\u002Fes\u002Fhow-tos\u002Fstart-stream-via-api","es\u002F6.how-tos\u002F1.start-stream-via-api","i-lucide-terminal",{"title":264,"path":265,"stem":266,"icon":267},"Ingestar una emisión de YouTube Live","\u002Fes\u002Fhow-tos\u002Fingest-youtube-live","es\u002F6.how-tos\u002F10.ingest-youtube-live","i-lucide-youtube",{"title":269,"path":270,"stem":271,"icon":272},"Source Synchronized Encoding (SSE) — redundancia bit-idéntica","\u002Fes\u002Fhow-tos\u002Fsource-synchronized-encoding","es\u002F6.how-tos\u002F11.source-synchronized-encoding","i-lucide-copy-check",{"title":274,"path":275,"stem":276,"icon":34},"Emitir radio como vídeo","\u002Fes\u002Fhow-tos\u002Fbroadcast-radio-as-video","es\u002F6.how-tos\u002F12.broadcast-radio-as-video",{"title":278,"path":279,"stem":280,"icon":215},"Proteger un Live stream con multi-DRM","\u002Fes\u002Fhow-tos\u002Fmulti-drm-destination","es\u002F6.how-tos\u002F2.multi-drm-destination",{"title":282,"path":283,"stem":284,"icon":59},"Programar una emisión semanal recurrente","\u002Fes\u002Fhow-tos\u002Fweekly-recurring-broadcast","es\u002F6.how-tos\u002F3.weekly-recurring-broadcast",{"title":286,"path":287,"stem":288,"icon":289},"Cortar un clip en el Editor y enviarlo a MediaCopilot","\u002Fes\u002Fhow-tos\u002Fexport-recording-to-mediacopilot","es\u002F6.how-tos\u002F4.export-recording-to-mediacopilot","i-lucide-upload-cloud",{"title":291,"path":292,"stem":293,"icon":149},"Aplicar un logo a un Live stream en emisión","\u002Fes\u002Fhow-tos\u002Fapply-logo-overlay","es\u002F6.how-tos\u002F5.apply-logo-overlay",{"title":295,"path":296,"stem":297,"icon":298},"Hacer blackout o sustituir el programa de un Live stream","\u002Fes\u002Fhow-tos\u002Fbroadcast-blackout","es\u002F6.how-tos\u002F6.broadcast-blackout","i-lucide-square",{"title":300,"path":301,"stem":302,"icon":303},"Cambiar la fuente de un Live stream en emisión","\u002Fes\u002Fhow-tos\u002Fruntime-source-switch","es\u002F6.how-tos\u002F7.runtime-source-switch","i-lucide-repeat-2",{"title":305,"path":306,"stem":307,"icon":308},"Activar \u002F desactivar un Publishing en mitad de la emisión","\u002Fes\u002Fhow-tos\u002Ftoggle-publishing-mid-broadcast","es\u002F6.how-tos\u002F8.toggle-publishing-mid-broadcast","i-lucide-toggle-right",{"title":310,"path":311,"stem":312,"icon":34},"Contribuir una señal en directo a MediaCopilot Live","\u002Fes\u002Fhow-tos\u002Fcontribute-to-mediacopilot-live","es\u002F6.how-tos\u002F9.contribute-to-mediacopilot-live",{"title":314,"path":315,"stem":316,"children":317,"page":24},"Installation","\u002Fes\u002Finstallation","es\u002F7.installation",[318,323,328,333,338],{"title":319,"path":320,"stem":321,"icon":322},"Preparar el host","\u002Fes\u002Finstallation\u002Fprepare-host","es\u002F7.installation\u002F1.prepare-host","i-lucide-server-cog",{"title":324,"path":325,"stem":326,"icon":327},"Instalar C21 Live Control","\u002Fes\u002Finstallation\u002Fcontrol","es\u002F7.installation\u002F2.control","i-lucide-cloud-download",{"title":329,"path":330,"stem":331,"icon":332},"Instalar C21 Live Encoder","\u002Fes\u002Finstallation\u002Fencoder","es\u002F7.installation\u002F3.encoder","i-lucide-cpu",{"title":334,"path":335,"stem":336,"icon":337},"Actualizaciones","\u002Fes\u002Finstallation\u002Fupdates","es\u002F7.installation\u002F4.updates","i-lucide-refresh-cw",{"title":339,"path":340,"stem":341,"icon":206},"Licencias","\u002Fes\u002Finstallation\u002Flicenses","es\u002F7.installation\u002F5.licenses",{"title":343,"path":344,"stem":345,"children":346,"page":24},"Developers","\u002Fes\u002Fdevelopers","es\u002F8.developers",[347,351,369],{"title":41,"path":348,"stem":349,"icon":350},"\u002Fes\u002Fdevelopers\u002Foverview","es\u002F8.developers\u002F1.overview","i-lucide-code",{"title":352,"icon":350,"path":353,"stem":354,"children":355,"page":24},"API","\u002Fes\u002Fdevelopers\u002Fapi","es\u002F8.developers\u002F2.api",[356,359,364],{"title":41,"path":357,"stem":358,"icon":350},"\u002Fes\u002Fdevelopers\u002Fapi\u002Foverview","es\u002F8.developers\u002F2.api\u002F1.overview",{"title":360,"path":361,"stem":362,"icon":363},"Autenticación","\u002Fes\u002Fdevelopers\u002Fapi\u002Fauthentication","es\u002F8.developers\u002F2.api\u002F2.authentication","i-lucide-key",{"title":365,"path":366,"stem":367,"icon":368},"Paginación y errores","\u002Fes\u002Fdevelopers\u002Fapi\u002Fpagination-errors","es\u002F8.developers\u002F2.api\u002F3.pagination-errors","i-lucide-list-ordered",{"title":370,"icon":371,"path":372,"stem":373,"children":374,"page":24},"MCP Server","i-lucide-bot","\u002Fes\u002Fdevelopers\u002Fmcp-server","es\u002F8.developers\u002F3.mcp-server",[375,378,383],{"title":41,"path":376,"stem":377,"icon":371},"\u002Fes\u002Fdevelopers\u002Fmcp-server\u002Foverview","es\u002F8.developers\u002F3.mcp-server\u002F1.overview",{"title":379,"path":380,"stem":381,"icon":382},"Tools","\u002Fes\u002Fdevelopers\u002Fmcp-server\u002Ftools","es\u002F8.developers\u002F3.mcp-server\u002F2.tools","i-lucide-wrench",{"title":384,"path":385,"stem":386,"icon":387},"Examples","\u002Fes\u002Fdevelopers\u002Fmcp-server\u002Fexamples","es\u002F8.developers\u002F3.mcp-server\u002F3.examples","i-lucide-play",{"title":389,"path":390,"stem":391,"children":392,"page":24},"Resources","\u002Fes\u002Fresources","es\u002F9.resources",[393,398,403],{"title":394,"path":395,"stem":396,"icon":397},"Enlaces","\u002Fes\u002Fresources\u002Flinks","es\u002F9.resources\u002F1.links","i-lucide-link",{"title":399,"path":400,"stem":401,"icon":402},"Release Notes","\u002Fes\u002Fresources\u002Frelease-notes","es\u002F9.resources\u002F2.release-notes","i-lucide-clipboard-list",{"title":404,"path":405,"stem":406,"icon":407},"Glosario","\u002Fes\u002Fresources\u002Fglossary","es\u002F9.resources\u002F3.glossary","i-lucide-book-a",{"id":409,"title":319,"body":410,"description":1331,"extension":1332,"links":1333,"meta":1334,"navigation":1335,"path":320,"seo":1336,"stem":321,"__hash__":1337},"docs_es\u002Fes\u002F7.installation\u002F1.prepare-host.md",{"type":411,"value":412,"toc":1321},"minimark",[413,417,425,430,532,535,539,542,566,581,585,588,705,708,712,718,725,791,806,813,816,1177,1187,1191,1194,1281,1292,1296,1299,1317],[414,415,416],"p",{},"Los instaladores esperan que el host esté en un estado de partida conocido. Esta página describe los prerrequisitos y entrega comandos copy-paste para satisfacerlos en un Ubuntu 24.04 LTS estándar.",[414,418,419,420,424],{},"Ejecuta cada paso en cada host ",[421,422,423],"strong",{},"antes"," del instalador. Ambos productos comparten la mayoría de prerrequisitos; las diferencias se marcan cuando aplican.",[426,427,429],"h2",{"id":428},"_1-plataforma","1. Plataforma",[431,432,433,448],"table",{},[434,435,436],"thead",{},[437,438,439,442,445],"tr",{},[440,441],"th",{},[440,443,444],{},"Control",[440,446,447],{},"Encoder",[449,450,451,463,474,484,495,506,521],"tbody",{},[437,452,453,457,460],{},[454,455,456],"td",{},"Sistema operativo",[454,458,459],{},"Ubuntu 22.04 LTS o 24.04 LTS",[454,461,462],{},"Ubuntu 24.04 LTS",[437,464,465,468,471],{},[454,466,467],{},"Kernel",[454,469,470],{},"cualquiera",[454,472,473],{},"≥ 6.8",[437,475,476,479,482],{},[454,477,478],{},"Arquitectura",[454,480,481],{},"x86_64",[454,483,481],{},[437,485,486,489,492],{},[454,487,488],{},"CPU",[454,490,491],{},"2 cores mínimo, 4+ recomendados",[454,493,494],{},"4 cores mínimo, 8+ recomendados",[437,496,497,500,503],{},[454,498,499],{},"RAM",[454,501,502],{},"4 GiB mínimo, 8+ GiB recomendados",[454,504,505],{},"8 GiB mínimo, 16+ GiB recomendados",[437,507,508,515,518],{},[454,509,510,511],{},"Disco libre en ",[512,513,514],"code",{},"\u002F",[454,516,517],{},"20 GiB",[454,519,520],{},"50 GiB (más si las grabaciones permanecen en local)",[437,522,523,526,529],{},[454,524,525],{},"Swap",[454,527,528],{},"recomendado ≥ 4 GiB en hosts con \u003C 8 GiB de RAM",[454,530,531],{},"recomendado ≥ 4 GiB en hosts con \u003C 16 GiB de RAM",[414,533,534],{},"Ambos productos funcionan sobre Ubuntu Pro sin cambios si tu política de seguridad lo requiere.",[426,536,538],{"id":537},"_2-red-saliente","2. Red saliente",[414,540,541],{},"El instalador descarga desde CloudFront y Docker Hub. El host necesita salida HTTPS a:",[543,544,545,551],"ul",{},[546,547,548],"li",{},[512,549,550],{},"https:\u002F\u002Fget.cires21.com\u002F*",[546,552,553,556,557,556,560,556,563],{},[512,554,555],{},"https:\u002F\u002Fhub.docker.com\u002F*",", ",[512,558,559],{},"https:\u002F\u002Fregistry-1.docker.io\u002F*",[512,561,562],{},"https:\u002F\u002Fauth.docker.io\u002F*",[512,564,565],{},"https:\u002F\u002Fproduction.cloudflare.docker.com\u002F*",[414,567,568,569,572,573,576,577,580],{},"Si operas detrás de un proxy corporativo, añade los anteriores al allow-list y configura ",[512,570,571],{},"https_proxy"," \u002F ",[512,574,575],{},"http_proxy"," para tu shell interactivo y para ",[512,578,579],{},"sudo -E",".",[426,582,584],{"id":583},"_3-dns-resolver-público","3. DNS — resolver público",[414,586,587],{},"Añade un resolver público para que el host pueda llegar al Docker registry y al CDN de bootstrap.",[589,590,595],"pre",{"className":591,"code":592,"language":593,"meta":594,"style":594},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo mkdir -p \u002Fetc\u002Fsystemd\u002Fresolved.conf.d\nsudo tee \u002Fetc\u002Fsystemd\u002Fresolved.conf.d\u002Fgoogle.conf >\u002Fdev\u002Fnull \u003C\u003CEOF\n[Resolve]\nDNS=8.8.8.8 8.8.4.4\nFallbackDNS=\nDNSStubListener=yes\nEOF\nsudo systemctl restart systemd-resolved\ngetent hosts get.cires21.com\ngetent hosts hub.docker.com\n","bash","",[512,596,597,616,640,646,652,658,664,669,683,695],{"__ignoreMap":594},[598,599,602,606,610,613],"span",{"class":600,"line":601},"line",1,[598,603,605],{"class":604},"sBMFI","sudo",[598,607,609],{"class":608},"sfazB"," mkdir",[598,611,612],{"class":608}," -p",[598,614,615],{"class":608}," \u002Fetc\u002Fsystemd\u002Fresolved.conf.d\n",[598,617,619,621,624,627,631,634,637],{"class":600,"line":618},2,[598,620,605],{"class":604},[598,622,623],{"class":608}," tee",[598,625,626],{"class":608}," \u002Fetc\u002Fsystemd\u002Fresolved.conf.d\u002Fgoogle.conf",[598,628,630],{"class":629},"sMK4o"," >",[598,632,633],{"class":608},"\u002Fdev\u002Fnull",[598,635,636],{"class":629}," \u003C\u003C",[598,638,639],{"class":629},"EOF\n",[598,641,643],{"class":600,"line":642},3,[598,644,645],{"class":608},"[Resolve]\n",[598,647,649],{"class":600,"line":648},4,[598,650,651],{"class":608},"DNS=8.8.8.8 8.8.4.4\n",[598,653,655],{"class":600,"line":654},5,[598,656,657],{"class":608},"FallbackDNS=\n",[598,659,661],{"class":600,"line":660},6,[598,662,663],{"class":608},"DNSStubListener=yes\n",[598,665,667],{"class":600,"line":666},7,[598,668,639],{"class":629},[598,670,672,674,677,680],{"class":600,"line":671},8,[598,673,605],{"class":604},[598,675,676],{"class":608}," systemctl",[598,678,679],{"class":608}," restart",[598,681,682],{"class":608}," systemd-resolved\n",[598,684,686,689,692],{"class":600,"line":685},9,[598,687,688],{"class":604},"getent",[598,690,691],{"class":608}," hosts",[598,693,694],{"class":608}," get.cires21.com\n",[598,696,698,700,702],{"class":600,"line":697},10,[598,699,688],{"class":604},[598,701,691],{"class":608},[598,703,704],{"class":608}," hub.docker.com\n",[414,706,707],{},"Sustituye por tus propios resolvers si tu red tiene una política más estricta. Las VMs cloud suelen requerir este drop-in porque vienen configuradas solo contra el resolver del VPC.",[426,709,711],{"id":710},"_4-ntp-hora-precisa","4. NTP — hora precisa",[414,713,714,715,717],{},"Los handshakes TLS contra el Docker registry fallan con desviación de reloj. Configura NTP ",[421,716,423],{}," del instalador.",[414,719,720,721,724],{},"Las imágenes Ubuntu Server cloud traen ",[512,722,723],{},"chrony"," activo por defecto. Añade el pool NTP de Cires21 a la configuración existente:",[589,726,728],{"className":591,"code":727,"language":593,"meta":594,"style":594},"sudo timedatectl set-timezone Europe\u002FMadrid\nsudo tee \u002Fetc\u002Fchrony\u002Fsources.d\u002Fcires21.sources >\u002Fdev\u002Fnull \u003C\u003CEOF\npool hora.cires21.com iburst maxsources 4\nEOF\nsudo systemctl restart chrony\nchronyc sources -v\n",[512,729,730,743,760,765,769,780],{"__ignoreMap":594},[598,731,732,734,737,740],{"class":600,"line":601},[598,733,605],{"class":604},[598,735,736],{"class":608}," timedatectl",[598,738,739],{"class":608}," set-timezone",[598,741,742],{"class":608}," Europe\u002FMadrid\n",[598,744,745,747,749,752,754,756,758],{"class":600,"line":618},[598,746,605],{"class":604},[598,748,623],{"class":608},[598,750,751],{"class":608}," \u002Fetc\u002Fchrony\u002Fsources.d\u002Fcires21.sources",[598,753,630],{"class":629},[598,755,633],{"class":608},[598,757,636],{"class":629},[598,759,639],{"class":629},[598,761,762],{"class":600,"line":642},[598,763,764],{"class":608},"pool hora.cires21.com iburst maxsources 4\n",[598,766,767],{"class":600,"line":648},[598,768,639],{"class":629},[598,770,771,773,775,777],{"class":600,"line":654},[598,772,605],{"class":604},[598,774,676],{"class":608},[598,776,679],{"class":608},[598,778,779],{"class":608}," chrony\n",[598,781,782,785,788],{"class":600,"line":660},[598,783,784],{"class":604},"chronyc",[598,786,787],{"class":608}," sources",[598,789,790],{"class":608}," -v\n",[414,792,793,794,797,798,801,802,805],{},"En hosts que traen ",[512,795,796],{},"systemd-timesyncd"," en vez de chrony, el drop-in equivalente es ",[512,799,800],{},"\u002Fetc\u002Fsystemd\u002Ftimesyncd.conf.d\u002Fcires21.conf"," con ",[512,803,804],{},"NTP=hora.cires21.com",". El host debe estar dentro de unos pocos segundos del tiempo real antes de ejecutar el instalador.",[426,807,809,810],{"id":808},"_5-firewall-ufw","5. Firewall — ",[512,811,812],{},"ufw",[414,814,815],{},"Aplica las reglas en este orden para no quedarte sin acceso SSH:",[589,817,819],{"className":591,"code":818,"language":593,"meta":594,"style":594},"sudo apt-get update -qq\nsudo apt-get install -y ufw\n\nsudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw allow 22\u002Ftcp comment 'SSH'\n\n# Host de Control — UI operador + API + relay WebSocket + servidor MCP\nsudo ufw allow 9080\u002Ftcp comment 'Control HTTP (redirige a HTTPS)'\nsudo ufw allow 9443\u002Ftcp comment 'Control HTTPS UI'\nsudo ufw allow 3000\u002Ftcp comment 'Control NOC WebSocket relay'\nsudo ufw allow 3100\u002Ftcp comment 'Control MCP server'\n\n# Host de Encoder — restringe al host de Control o a su subnet del VPC\nsudo ufw allow from \u003Cip-o-subnet-de-control> to any port 80 proto tcp comment 'Encoder HTTP desde Control'\nsudo ufw allow from \u003Cip-o-subnet-de-control> to any port 443 proto tcp comment 'Encoder HTTPS desde Control'\nsudo ufw allow from \u003Cip-o-subnet-de-control> to any port 8484 proto tcp comment 'Encoder c21publisher desde Control'\n\nsudo ufw --force enable\nsudo ufw status verbose\n",[512,820,821,834,849,855,871,885,908,912,918,938,958,979,1000,1005,1011,1064,1105,1146,1151,1164],{"__ignoreMap":594},[598,822,823,825,828,831],{"class":600,"line":601},[598,824,605],{"class":604},[598,826,827],{"class":608}," apt-get",[598,829,830],{"class":608}," update",[598,832,833],{"class":608}," -qq\n",[598,835,836,838,840,843,846],{"class":600,"line":618},[598,837,605],{"class":604},[598,839,827],{"class":608},[598,841,842],{"class":608}," install",[598,844,845],{"class":608}," -y",[598,847,848],{"class":608}," ufw\n",[598,850,851],{"class":600,"line":642},[598,852,854],{"emptyLinePlaceholder":853},true,"\n",[598,856,857,859,862,865,868],{"class":600,"line":648},[598,858,605],{"class":604},[598,860,861],{"class":608}," ufw",[598,863,864],{"class":608}," default",[598,866,867],{"class":608}," deny",[598,869,870],{"class":608}," incoming\n",[598,872,873,875,877,879,882],{"class":600,"line":654},[598,874,605],{"class":604},[598,876,861],{"class":608},[598,878,864],{"class":608},[598,880,881],{"class":608}," allow",[598,883,884],{"class":608}," outgoing\n",[598,886,887,889,891,893,896,899,902,905],{"class":600,"line":660},[598,888,605],{"class":604},[598,890,861],{"class":608},[598,892,881],{"class":608},[598,894,895],{"class":608}," 22\u002Ftcp",[598,897,898],{"class":608}," comment",[598,900,901],{"class":629}," '",[598,903,904],{"class":608},"SSH",[598,906,907],{"class":629},"'\n",[598,909,910],{"class":600,"line":666},[598,911,854],{"emptyLinePlaceholder":853},[598,913,914],{"class":600,"line":671},[598,915,917],{"class":916},"sHwdD","# Host de Control — UI operador + API + relay WebSocket + servidor MCP\n",[598,919,920,922,924,926,929,931,933,936],{"class":600,"line":685},[598,921,605],{"class":604},[598,923,861],{"class":608},[598,925,881],{"class":608},[598,927,928],{"class":608}," 9080\u002Ftcp",[598,930,898],{"class":608},[598,932,901],{"class":629},[598,934,935],{"class":608},"Control HTTP (redirige a HTTPS)",[598,937,907],{"class":629},[598,939,940,942,944,946,949,951,953,956],{"class":600,"line":697},[598,941,605],{"class":604},[598,943,861],{"class":608},[598,945,881],{"class":608},[598,947,948],{"class":608}," 9443\u002Ftcp",[598,950,898],{"class":608},[598,952,901],{"class":629},[598,954,955],{"class":608},"Control HTTPS UI",[598,957,907],{"class":629},[598,959,961,963,965,967,970,972,974,977],{"class":600,"line":960},11,[598,962,605],{"class":604},[598,964,861],{"class":608},[598,966,881],{"class":608},[598,968,969],{"class":608}," 3000\u002Ftcp",[598,971,898],{"class":608},[598,973,901],{"class":629},[598,975,976],{"class":608},"Control NOC WebSocket relay",[598,978,907],{"class":629},[598,980,982,984,986,988,991,993,995,998],{"class":600,"line":981},12,[598,983,605],{"class":604},[598,985,861],{"class":608},[598,987,881],{"class":608},[598,989,990],{"class":608}," 3100\u002Ftcp",[598,992,898],{"class":608},[598,994,901],{"class":629},[598,996,997],{"class":608},"Control MCP server",[598,999,907],{"class":629},[598,1001,1003],{"class":600,"line":1002},13,[598,1004,854],{"emptyLinePlaceholder":853},[598,1006,1008],{"class":600,"line":1007},14,[598,1009,1010],{"class":916},"# Host de Encoder — restringe al host de Control o a su subnet del VPC\n",[598,1012,1014,1016,1018,1020,1023,1026,1029,1033,1036,1039,1042,1045,1049,1052,1055,1057,1059,1062],{"class":600,"line":1013},15,[598,1015,605],{"class":604},[598,1017,861],{"class":608},[598,1019,881],{"class":608},[598,1021,1022],{"class":608}," from",[598,1024,1025],{"class":629}," \u003C",[598,1027,1028],{"class":608},"ip-o-subnet-de-contro",[598,1030,1032],{"class":1031},"sTEyZ","l",[598,1034,1035],{"class":629},">",[598,1037,1038],{"class":608}," to",[598,1040,1041],{"class":608}," any",[598,1043,1044],{"class":608}," port",[598,1046,1048],{"class":1047},"sbssI"," 80",[598,1050,1051],{"class":608}," proto",[598,1053,1054],{"class":608}," tcp",[598,1056,898],{"class":608},[598,1058,901],{"class":629},[598,1060,1061],{"class":608},"Encoder HTTP desde Control",[598,1063,907],{"class":629},[598,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085,1087,1089,1092,1094,1096,1098,1100,1103],{"class":600,"line":1066},16,[598,1068,605],{"class":604},[598,1070,861],{"class":608},[598,1072,881],{"class":608},[598,1074,1022],{"class":608},[598,1076,1025],{"class":629},[598,1078,1028],{"class":608},[598,1080,1032],{"class":1031},[598,1082,1035],{"class":629},[598,1084,1038],{"class":608},[598,1086,1041],{"class":608},[598,1088,1044],{"class":608},[598,1090,1091],{"class":1047}," 443",[598,1093,1051],{"class":608},[598,1095,1054],{"class":608},[598,1097,898],{"class":608},[598,1099,901],{"class":629},[598,1101,1102],{"class":608},"Encoder HTTPS desde Control",[598,1104,907],{"class":629},[598,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1133,1135,1137,1139,1141,1144],{"class":600,"line":1107},17,[598,1109,605],{"class":604},[598,1111,861],{"class":608},[598,1113,881],{"class":608},[598,1115,1022],{"class":608},[598,1117,1025],{"class":629},[598,1119,1028],{"class":608},[598,1121,1032],{"class":1031},[598,1123,1035],{"class":629},[598,1125,1038],{"class":608},[598,1127,1041],{"class":608},[598,1129,1044],{"class":608},[598,1131,1132],{"class":1047}," 8484",[598,1134,1051],{"class":608},[598,1136,1054],{"class":608},[598,1138,898],{"class":608},[598,1140,901],{"class":629},[598,1142,1143],{"class":608},"Encoder c21publisher desde Control",[598,1145,907],{"class":629},[598,1147,1149],{"class":600,"line":1148},18,[598,1150,854],{"emptyLinePlaceholder":853},[598,1152,1154,1156,1158,1161],{"class":600,"line":1153},19,[598,1155,605],{"class":604},[598,1157,861],{"class":608},[598,1159,1160],{"class":608}," --force",[598,1162,1163],{"class":608}," enable\n",[598,1165,1167,1169,1171,1174],{"class":600,"line":1166},20,[598,1168,605],{"class":604},[598,1170,861],{"class":608},[598,1172,1173],{"class":608}," status",[598,1175,1176],{"class":608}," verbose\n",[414,1178,1179,1180,1183,1184,1186],{},"Para deploys donde quieras un reverse-proxy público delante de Control, termina TLS en el proxy y reenvía a ",[512,1181,1182],{},"127.0.0.1:9443",". Las reglas ",[512,1185,812],{}," anteriores cubren la ruta de fallback a nivel host.",[426,1188,1190],{"id":1189},"_6-swap","6. Swap",[414,1192,1193],{},"Si el host tiene menos RAM de la recomendada, añade swap:",[589,1195,1197],{"className":591,"code":1196,"language":593,"meta":594,"style":594},"sudo fallocate -l 4G \u002Fswapfile\nsudo chmod 600 \u002Fswapfile\nsudo mkswap \u002Fswapfile\nsudo swapon \u002Fswapfile\necho '\u002Fswapfile none swap sw 0 0' | sudo tee -a \u002Fetc\u002Ffstab\nfree -h\n",[512,1198,1199,1215,1227,1236,1245,1273],{"__ignoreMap":594},[598,1200,1201,1203,1206,1209,1212],{"class":600,"line":601},[598,1202,605],{"class":604},[598,1204,1205],{"class":608}," fallocate",[598,1207,1208],{"class":608}," -l",[598,1210,1211],{"class":608}," 4G",[598,1213,1214],{"class":608}," \u002Fswapfile\n",[598,1216,1217,1219,1222,1225],{"class":600,"line":618},[598,1218,605],{"class":604},[598,1220,1221],{"class":608}," chmod",[598,1223,1224],{"class":1047}," 600",[598,1226,1214],{"class":608},[598,1228,1229,1231,1234],{"class":600,"line":642},[598,1230,605],{"class":604},[598,1232,1233],{"class":608}," mkswap",[598,1235,1214],{"class":608},[598,1237,1238,1240,1243],{"class":600,"line":648},[598,1239,605],{"class":604},[598,1241,1242],{"class":608}," swapon",[598,1244,1214],{"class":608},[598,1246,1247,1251,1253,1256,1259,1262,1265,1267,1270],{"class":600,"line":654},[598,1248,1250],{"class":1249},"s2Zo4","echo",[598,1252,901],{"class":629},[598,1254,1255],{"class":608},"\u002Fswapfile none swap sw 0 0",[598,1257,1258],{"class":629},"'",[598,1260,1261],{"class":629}," |",[598,1263,1264],{"class":604}," sudo",[598,1266,623],{"class":608},[598,1268,1269],{"class":608}," -a",[598,1271,1272],{"class":608}," \u002Fetc\u002Ffstab\n",[598,1274,1275,1278],{"class":600,"line":660},[598,1276,1277],{"class":604},"free",[598,1279,1280],{"class":608}," -h\n",[414,1282,1283,1284,1287,1288,1291],{},"El instalador descarga varios GB de imágenes Docker. Sin swap en hosts pequeños, ",[512,1285,1286],{},"apt install"," y los ",[512,1289,1290],{},"docker pull"," simultáneos pueden agotar la memoria.",[426,1293,1295],{"id":1294},"_7-siguiente-paso","7. Siguiente paso",[414,1297,1298],{},"Con el host preparado, sigue la página de instalación del producto correspondiente:",[543,1300,1301,1310],{},[546,1302,1303],{},[1304,1305,1306,1307],"a",{"href":325},"Instalar ",[421,1308,1309],{},"C21 Live Control",[546,1311,1312],{},[1304,1313,1306,1314],{"href":330},[421,1315,1316],{},"C21 Live Encoder",[1318,1319,1320],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":594,"searchDepth":618,"depth":618,"links":1322},[1323,1324,1325,1326,1327,1329,1330],{"id":428,"depth":618,"text":429},{"id":537,"depth":618,"text":538},{"id":583,"depth":618,"text":584},{"id":710,"depth":618,"text":711},{"id":808,"depth":618,"text":1328},"5. Firewall — ufw",{"id":1189,"depth":618,"text":1190},{"id":1294,"depth":618,"text":1295},"Lleva un host Linux al estado conocido que esperan los instaladores de C21 Live Control y C21 Live Encoder.","md",null,{},{"icon":322},{"title":319,"description":1331},"CI-vIA-uI8OtMFZ5EwX5jCffdH-KBxe3iRcXFaRat-o",[1339,1341],{"title":310,"path":311,"stem":312,"description":1340,"icon":34,"children":-1},"Empuja la salida HLS de un Live stream a MediaCopilot en tiempo real para que aparezca como live asset en el lado de MediaCopilot.",{"title":324,"path":325,"stem":326,"description":1342,"icon":327,"children":-1},"Instalador one-liner del producto C21 Live Control, CLI livecontrol para operación diaria, licencia, backups, SSL y desinstalación.",1782916468817]