Skip to content

Installation

Mcaster installs on one machine and runs there: engine, control panel and API in a single process. This page is about what the package puts down, where the secrets live and what is opened outwards. The path from a clean machine to a signal on the network is in the Quick start.

The package

Mcaster ships as the mcaster deb package from the Flussonic repository:

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

The package owns the whole installation surface:

What Where
Unit mcaster.service
Process settings /etc/mcaster/ — what the process itself needs at start: the panel's port, the database address, the licence
Secrets /etc/mcaster/secrets.env (owned by root, mode 0600)
Licence /etc/mcaster/license.txt
State /var/lib/mcaster — machine identity, activation cache, keys
Interface /usr/share/mcaster/ui

The package pulls in the streaming engine of exactly its own version and PostgreSQL. The base sapsan.service unit is taken off such a machine: exactly one process must run. The products are mutually exclusive — Mcaster and Catena do not share a machine.

Note

A package upgrade does not restart a running unit. The machine moves onto the new binary + interface pair with a manual systemctl restart mcaster, so the restart stays the operator's decision rather than a side effect of apt upgrade.

Licence

Without a valid key the process does not start. The key is asked for during installation and written to /etc/mcaster/license.txt; for unattended rollouts it is fed in through debconf-set-selections or the LICENSE_KEY variable.

A key is issued for a product: the box declares itself as mcaster, and a key issued for another product will not fit it — no activation is granted, and that is visible in the log immediately rather than through a feature that does not work.

Leaving the question empty is allowed: the package installs, but the service stays in failed. Put the key into the same file and run systemctl start mcaster.

PostgreSQL

Mcaster is a control installation, and it keeps its state (streams, machines, statistics, journal) in PostgreSQL. The post-install creates the mcaster role and database, generates the database and administrator passwords and writes them into /etc/mcaster/secrets.env:

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

A package upgrade does not rotate the secrets. To move the database onto a managed cluster with backups, change DATABASE_URL and restart the service — Mcaster applies its schema itself at start, there is no separate migration step.

Ports

Out of the box HTTP port 80 comes up — an initial value that holds only until listeners are set in the panel. After that the ports belong to the machine's settings and are edited there.

Port Set by What for
HTTP (initially 80) INITIAL_HTTP_PORT, then the machine's settings Panel, API, HTTP output
UDP inputs The port of each multicast source MPEG-TS ingest
SRT (UDP) The stream's SRT serving port or the shared listener SRT ingest and output
RTMP (TCP) A listener in the machine's settings RTMP ingest and output

Outgoing destinations occupy no ports: a push opens its socket itself.

Multicast needs attention to routes. Ingest is a group subscription (IGMP/MLD) on the interface where the group arrives; egress is the outgoing interface and TTL choice on the destination itself. On a machine with several network cards both choices are made explicitly, otherwise the packets leave into the wrong network.

Running in Docker

The product image is flussonic/mcaster: the shared runtime plus the Mcaster interface and the product tag. It needs PostgreSQL, a licence key and a persistent state directory:

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

The media protocol ports that the stream settings turn on are published here as well. The state directory must survive restarts: it holds the machine identity and the activation.

Check

systemctl status mcaster
journalctl -u mcaster -n 50

Next is the Quick start: logging into the panel, the first multicast taken in and the first delivery destination.