Instalación¶
Mcaster puede funcionar en una máquina, con el motor, el panel de control y la 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.
Para ampliar la instalación, añada streamers separados. Para la redundancia del plano de control, despliegue un grupo de central sobre una base PostgreSQL compartida.
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 |
El paquete instala automáticamente el paquete de servidor mcaster-base exactamente en su propia versión —es el binario, con la consola dentro— junto con PostgreSQL. Un sapsan normal no convive con él: los paquetes se declaran en conflicto, porque en una máquina debe funcionar exactamente un streamer. 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 binario 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/mcaster \
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.