Instalación¶
Mcaster se instala en una máquina y en ella misma funciona: motor, panel de control y API en un único proceso. Esta página trata de lo que deja el paquete, de dónde viven los secretos y de qué se abre hacia fuera. El camino de una máquina limpia a una señal en la red está en el Inicio rápido.
El paquete¶
Mcaster se distribuye como paquete deb mcaster desde el repositorio de Flussonic:
curl -L http://apt.flussonic.com/repo/master/dev.key > /etc/apt/trusted.gpg.d/dev.gpg
echo "deb http://apt.flussonic.com/branch/sapsan/master repo/" > /etc/apt/sources.list.d/flussonic.list
apt update
apt install --install-recommends mcaster
El paquete se hace cargo de toda la superficie de la instalación:
| Qué | Dónde |
|---|---|
| Unidad | mcaster.service |
| Ajustes del proceso | /etc/mcaster/ — lo que el propio proceso necesita al arrancar: el puerto del panel, la dirección de la base de datos, la licencia |
| Secretos | /etc/mcaster/secrets.env (propietario root, permisos 0600) |
| Licencia | /etc/mcaster/license.txt |
| Estado | /var/lib/mcaster — identidad de la máquina, caché de activación, claves |
| Interfaz | /usr/share/mcaster/ui |
El paquete instala automáticamente el motor de streaming exactamente en su propia versión, junto con PostgreSQL. La unidad base sapsan.service se retira de una máquina así: debe funcionar exactamente un proceso. Los productos son mutuamente excluyentes — Mcaster y Catena no comparten máquina.
Note
La actualización del paquete no reinicia una unidad en marcha. La máquina pasa al nuevo par «binario + interfaz» con un systemctl restart mcaster manual — así el reinicio sigue siendo una decisión del operador y no un efecto secundario de apt upgrade.
Licencia¶
Sin una clave válida el proceso no arranca. La clave se solicita durante la instalación y se escribe en /etc/mcaster/license.txt; para despliegues desatendidos se introduce mediante debconf-set-selections o la variable LICENSE_KEY.
La clave se emite para un producto: la máquina se declara como mcaster, y una clave emitida para otro producto no le servirá — no se concede activación, y eso se ve en el log de inmediato, y no a través de una función que no funciona.
Dejar la pregunta en blanco está permitido: el paquete se instala, pero el servicio queda en failed. Ponga la clave en el mismo archivo y ejecute systemctl start mcaster.
PostgreSQL¶
Mcaster es una instalación de control y guarda su estado (streams, máquinas, estadísticas, registro) en PostgreSQL. El script de postinstalación crea el rol y la base de datos mcaster, genera las contraseñas de la base de datos y del administrador y las escribe en /etc/mcaster/secrets.env:
DATABASE_URL=postgres://mcaster:...@127.0.0.1:5432/mcaster
EDIT_AUTH_PASSWORD=...
La actualización del paquete no rota los secretos. Para pasar la base de datos a un clúster gestionado con copias de seguridad, cambie DATABASE_URL y reinicie el servicio — Mcaster aplica su esquema por sí mismo al arrancar, no hay un paso de migración aparte.
Puertos¶
Recién instalado, se levanta el puerto HTTP 80 — un valor inicial que solo se mantiene hasta que los listeners se fijan en el panel. A partir de ahí los puertos pertenecen a los ajustes de la máquina y ahí mismo se editan.
| Puerto | Quién lo fija | Para qué |
|---|---|---|
| HTTP (inicialmente 80) | INITIAL_HTTP_PORT, luego los ajustes de la máquina |
Panel, API, salida por HTTP |
| Entradas UDP | El puerto de cada fuente multicast | Captura de MPEG-TS |
| SRT (UDP) | El puerto de servicio SRT del stream o el listener compartido | Captura y salida por SRT |
| RTMP (TCP) | Un listener en los ajustes de la máquina | Captura y salida por RTMP |
Los destinos de salida no ocupan puertos: un push abre su propio socket.
El multicast exige atención a las rutas. La captura es una suscripción al grupo (IGMP/MLD) en la interfaz por donde llega el grupo; la salida es la elección de la interfaz de salida y del TTL en el propio destino. En una máquina con varias tarjetas de red ambas elecciones se hacen de forma explícita; de lo contrario, los paquetes se van a la red equivocada.
Ejecución en Docker¶
La imagen de producto es flussonic/mcaster: el runtime compartido más la interfaz de Mcaster y el tag de producto. Necesita PostgreSQL, una clave de licencia y un directorio de estado persistente:
docker run -d --name mcaster \
-e DATABASE_URL=postgres://mcaster:mcaster@db:5432/mcaster \
-e EDIT_AUTH_LOGIN=admin -e EDIT_AUTH_PASSWORD=secret \
-e LICENSE_KEY="$LICENSE_KEY" \
-p 8081:80 \
-v mcaster-state:/var/lib/sapsan \
flussonic/mcaster:latest
Los puertos de los protocolos de medios que activen los ajustes de los streams también se publican aquí. El directorio de estado debe sobrevivir a los reinicios: contiene la identidad de la máquina y la activación.
Comprobación¶
systemctl status mcaster
journalctl -u mcaster -n 50
Lo siguiente es el Inicio rápido: entrar en el panel, el primer multicast capturado y el primer destino de entrega.