Skip to content

Instalação

O Mcaster se instala numa máquina e nela mesma roda: motor, painel de controle e API num único processo. Esta página é sobre o que o pacote instala, onde vivem os segredos e o que fica aberto para fora. O caminho de uma máquina limpa até um sinal na rede está no Início rápido.

O pacote

O Mcaster é distribuído como pacote deb mcaster do repositório da 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

O pacote cuida de toda a superfície da instalação:

O quê Onde
Unidade mcaster.service
Configurações do processo /etc/mcaster/ — o que o próprio processo precisa ao iniciar: a porta do painel, o endereço do banco, a licença
Segredos /etc/mcaster/secrets.env (proprietário root, modo 0600)
Licença /etc/mcaster/license.txt
Estado /var/lib/mcaster — identidade da máquina, cache de ativação, chaves
Interface /usr/share/mcaster/ui

O pacote instala automaticamente o motor de streaming exatamente na sua própria versão, junto com o PostgreSQL. A unidade base sapsan.service é retirada de uma máquina assim: deve rodar exatamente um processo. Os produtos são mutuamente exclusivos — Mcaster e Catena não dividem a mesma máquina.

Note

A atualização do pacote não reinicia uma unidade em execução. A máquina passa para o novo par «binário + interface» com um systemctl restart mcaster manual — assim o reinício continua sendo uma decisão do operador, e não um efeito colateral do apt upgrade.

Licença

Sem uma chave válida o processo não inicia. A chave é pedida durante a instalação e gravada em /etc/mcaster/license.txt; para implantações não assistidas ela é fornecida por meio de debconf-set-selections ou da variável LICENSE_KEY.

A chave é emitida para um produto: a máquina se declara como mcaster, e uma chave emitida para outro produto não serve — nenhuma ativação é concedida, e isso aparece no log imediatamente, e não por meio de uma função que não funciona.

Deixar a pergunta vazia é permitido: o pacote instala, mas o serviço fica em failed. Coloque a chave no mesmo arquivo e execute systemctl start mcaster.

PostgreSQL

O Mcaster é uma instalação de controle e mantém seu estado (streams, máquinas, estatísticas, registro) no PostgreSQL. O pós-instalação cria a role e o banco de dados mcaster, gera as senhas do banco e do administrador e as grava em /etc/mcaster/secrets.env:

DATABASE_URL=postgres://mcaster:...@127.0.0.1:5432/mcaster
EDIT_AUTH_PASSWORD=...

A atualização do pacote não rotaciona os segredos. Para mover o banco de dados para um cluster gerenciado com backups, troque o DATABASE_URL e reinicie o serviço — o Mcaster aplica seu esquema sozinho ao iniciar, não há uma etapa de migração separada.

Portas

Logo após a instalação, sobe a porta HTTP 80 — um valor inicial que vale só até os listeners serem definidos no painel. Depois disso as portas pertencem às configurações da máquina e são editadas lá.

Porta Quem define Para quê
HTTP (inicialmente 80) INITIAL_HTTP_PORT, depois as configurações da máquina Painel, API, saída por HTTP
Entradas UDP A porta de cada fonte multicast Captura de MPEG-TS
SRT (UDP) A porta de serviço SRT do stream ou o listener compartilhado Captura e saída por SRT
RTMP (TCP) Um listener nas configurações da máquina Captura e saída por RTMP

Os destinos de saída não ocupam portas: um push abre o próprio socket.

O multicast exige atenção às rotas. A captura é uma assinatura do grupo (IGMP/MLD) na interface por onde o grupo chega; a saída é a escolha da interface de saída e do TTL no próprio destino. Numa máquina com várias placas de rede, as duas escolhas são feitas explicitamente; caso contrário, os pacotes saem pela rede errada.

Execução em Docker

A imagem de produto é flussonic/mcaster: o runtime compartilhado mais a interface do Mcaster e a tag de produto. Ela precisa do PostgreSQL, de uma chave de licença e de um diretório 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

As portas de protocolos de mídia que as configurações dos streams ativarem são publicadas aqui também. O diretório de estado precisa sobreviver a reinícios: ele guarda a identidade da máquina e a ativação.

Verificação

systemctl status mcaster
journalctl -u mcaster -n 50

Em seguida vem o Início rápido: entrar no painel, o primeiro multicast capturado e o primeiro destino de entrega.