Preparar el host
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.
Ejecuta cada paso en cada host antes del instalador. Ambos productos comparten la mayoría de prerrequisitos; las diferencias se marcan cuando aplican.
1. Plataforma
| Control | Encoder | |
|---|---|---|
| Sistema operativo | Ubuntu 22.04 LTS o 24.04 LTS | Ubuntu 24.04 LTS |
| Kernel | cualquiera | ≥ 6.8 |
| Arquitectura | x86_64 | x86_64 |
| CPU | 2 cores mínimo, 4+ recomendados | 4 cores mínimo, 8+ recomendados |
| RAM | 4 GiB mínimo, 8+ GiB recomendados | 8 GiB mínimo, 16+ GiB recomendados |
Disco libre en / | 20 GiB | 50 GiB (más si las grabaciones permanecen en local) |
| Swap | recomendado ≥ 4 GiB en hosts con < 8 GiB de RAM | recomendado ≥ 4 GiB en hosts con < 16 GiB de RAM |
Ambos productos funcionan sobre Ubuntu Pro sin cambios si tu política de seguridad lo requiere.
2. Red saliente
El instalador descarga desde CloudFront y Docker Hub. El host necesita salida HTTPS a:
https://get.cires21.com/*https://hub.docker.com/*,https://registry-1.docker.io/*,https://auth.docker.io/*,https://production.cloudflare.docker.com/*
Si operas detrás de un proxy corporativo, añade los anteriores al allow-list y configura https_proxy / http_proxy para tu shell interactivo y para sudo -E.
3. DNS — resolver público
Añade un resolver público para que el host pueda llegar al Docker registry y al CDN de bootstrap.
sudo mkdir -p /etc/systemd/resolved.conf.d
sudo tee /etc/systemd/resolved.conf.d/google.conf >/dev/null <<EOF
[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=
DNSStubListener=yes
EOF
sudo systemctl restart systemd-resolved
getent hosts get.cires21.com
getent hosts hub.docker.com
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.
4. NTP — hora precisa
Los handshakes TLS contra el Docker registry fallan con desviación de reloj. Configura NTP antes del instalador.
Las imágenes Ubuntu Server cloud traen chrony activo por defecto. Añade el pool NTP de Cires21 a la configuración existente:
sudo timedatectl set-timezone Europe/Madrid
sudo tee /etc/chrony/sources.d/cires21.sources >/dev/null <<EOF
pool hora.cires21.com iburst maxsources 4
EOF
sudo systemctl restart chrony
chronyc sources -v
En hosts que traen systemd-timesyncd en vez de chrony, el drop-in equivalente es /etc/systemd/timesyncd.conf.d/cires21.conf con NTP=hora.cires21.com. El host debe estar dentro de unos pocos segundos del tiempo real antes de ejecutar el instalador.
5. Firewall — ufw
Aplica las reglas en este orden para no quedarte sin acceso SSH:
sudo apt-get update -qq
sudo apt-get install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
# Host de Control — UI operador + API + relay WebSocket + servidor MCP
sudo ufw allow 9080/tcp comment 'Control HTTP (redirige a HTTPS)'
sudo ufw allow 9443/tcp comment 'Control HTTPS UI'
sudo ufw allow 3000/tcp comment 'Control NOC WebSocket relay'
sudo ufw allow 3100/tcp comment 'Control MCP server'
# Host de Encoder — restringe al host de Control o a su subnet del VPC
sudo ufw allow from <ip-o-subnet-de-control> to any port 80 proto tcp comment 'Encoder HTTP desde Control'
sudo ufw allow from <ip-o-subnet-de-control> to any port 443 proto tcp comment 'Encoder HTTPS desde Control'
sudo ufw allow from <ip-o-subnet-de-control> to any port 8484 proto tcp comment 'Encoder c21publisher desde Control'
sudo ufw --force enable
sudo ufw status verbose
Para deploys donde quieras un reverse-proxy público delante de Control, termina TLS en el proxy y reenvía a 127.0.0.1:9443. Las reglas ufw anteriores cubren la ruta de fallback a nivel host.
6. Swap
Si el host tiene menos RAM de la recomendada, añade swap:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h
El instalador descarga varios GB de imágenes Docker. Sin swap en hosts pequeños, apt install y los docker pull simultáneos pueden agotar la memoria.
7. Siguiente paso
Con el host preparado, sigue la página de instalación del producto correspondiente:
Contribuir una señal en directo a MediaCopilot Live
Empuja la salida HLS de un Live stream a MediaCopilot en tiempo real para que aparezca como live asset en el lado de MediaCopilot.
Instalar C21 Live Control
Instalador one-liner del producto C21 Live Control, CLI livecontrol para operación diaria, licencia, backups, SSL y desinstalación.