Skip to content

A few minutes, one command

Install streamars on your server.

One command sets up the panel with automatic TLS on a Linux server you control. The free trial covers everything you do here.

curl -fsSL --proto '=https' --proto-redir '=https' https://get.streamars.com | STREAMARS_PULL_KEY=<your-pull-key> TLS_DOMAIN=panel.example.com bash

Copy the command with your own pull key from the customer portal.

Step 1

Prepare the server.

Start from a fresh VPS. The installer checks all of this again and warns about anything it finds, but it is quicker to have it right before you run it.

A supported Linux server
Ubuntu 22.04 or 24.04, or Debian 12, on x86_64 or arm64, with root access. Other distributions work once Docker is installed on them first.
Enough memory and disk
At least 2 GB of RAM and 10 GB of free disk to try streamars. Live video is buffered in memory, so a production panel with many channels wants more RAM.
A DNS record for the panel
An A record (AAAA for IPv6), for example panel.example.com, pointing at the server's public IP address before you install.
Behind Cloudflare?
A proxied record works. Set the zone's SSL/TLS encryption mode to Full (strict), so Cloudflare connects to the panel over its own certificate.
A registry pull key
Create one on your licence in the customer portal. The installer uses it to download the panel, which works while your licence is active.

Open the ports

Allow these in your provider's firewall (cloud firewall or security group), and in ufw too if it is active on the server. RTMP (1935) is not used.

80 TCP
From anywhere
Certificate issuance (Let's Encrypt) and the redirect to HTTPS.
443 TCP and UDP
From anywhere
The admin panel, the player API and streams. UDP 443 carries HTTP/3; on providers with per-protocol rules, add it as its own rule.
9090, 9091, 6390 TCP
From your Load Balancers
Load Balancer control, media relay and Redis relay, all over mutual TLS. Needed once you add a Load Balancer.
Legacy player ports, e.g. 25461 TCP
From anywhere, optional
Only after an XC migration, when players keep the port their playlists were issued with.

Update the system

Bring the packages up to date first:

apt update && apt upgrade -y

If the upgrade installed a new kernel, reboot before you go on:

[ -f /var/run/reboot-required ] && reboot

Docker comes with the installer

On Debian and Ubuntu, the installer installs Docker Engine, the compose plugin and openssl from Docker's own repository when they are missing. There is nothing to set up by hand.

On another distribution, install Docker Engine with the compose plugin first, following the official guide at docs.docker.com, then run the installer.

Step 2

Run the installer.

As root on the server, with your pull key from the customer portal and your own domain in place of the placeholders. Running it again later is safe: it keeps your settings and brings the panel up to date.

curl -fsSL --proto '=https' --proto-redir '=https' https://get.streamars.com | STREAMARS_PULL_KEY=<your-pull-key> TLS_DOMAIN=panel.example.com bash

Not logged in as root?

Put sudo before the variables, so they reach the installer:

curl -fsSL --proto '=https' --proto-redir '=https' https://get.streamars.com | sudo STREAMARS_PULL_KEY=<your-pull-key> TLS_DOMAIN=panel.example.com bash

Pin a version

Set STREAMARS_VERSION to install one release instead of the newest:

curl -fsSL --proto '=https' --proto-redir '=https' https://get.streamars.com | STREAMARS_PULL_KEY=<your-pull-key> STREAMARS_VERSION=v1.4.0 TLS_DOMAIN=panel.example.com bash

It shows a pre-flight summary first

Before it changes anything, the installer prints what it found:

  • OS and kernel, CPU cores, RAM and free disk under /var/lib/docker
  • The Docker and compose versions, or what it is about to install
  • The install directory: a new install, or an existing one whose settings are kept
  • Whether ports 80 and 443 are free
  • Whether your domain resolves to this server (behind the Cloudflare proxy it will not, which is fine)

Findings are warnings, never a stop: low memory, a busy port or DNS that is not there yet are printed and the install goes on. Read the summary before you walk away.

How long it takes

A few minutes on a typical VPS, most of it downloading. It takes longer when Docker is installed first. Once the installer is done, the panel's first start takes about a minute.

It does not upgrade your packages unless you ask: add STREAMARS_APT_UPGRADE=1 before bash to run apt-get upgrade as part of the install.

TLS_DOMAIN
The public name of the panel. Asked for interactively when you leave it out.
STREAMARS_VERSION
A release to install, such as v1.4.0. Defaults to the newest stable release.
STREAMARS_APT_UPGRADE
Set to 1 to run apt-get upgrade before Docker is installed. Off by default: the installer never upgrades your packages on its own.
INSTALL_DIR
Where the deployment files and settings go. Defaults to /opt/streamars.
CLOUDFLARE_TUNNEL_TOKEN
A Cloudflare Tunnel connector token: the admin panel is reachable through the tunnel. Set it to off to remove the tunnel again.
STREAMARS_SKIP_NET_TUNING
Set to true to leave the kernel's network settings alone.

What the installer does.

  1. Checks the host, adds Docker

    Prints the pre-flight summary, then installs Docker Engine, the compose plugin and openssl on Debian or Ubuntu when they are missing.

  2. Signs in with your pull key

    The registry only serves active licences. The secret goes to docker login on stdin, never onto a command line or into a file.

  3. Pulls the release

    The newest stable image, or the version you pin, locked to the exact digest it downloaded.

  4. Sets up /opt/streamars

    Postgres, Redis, Caddy and the panel, with secrets generated on the first run.

  5. Tunes the network

    Switches the kernel to BBR and fq, which keeps many parallel streams smooth.

  6. Gets a certificate

    Caddy fetches a Let's Encrypt certificate for your domain and the panel starts.

Step 3

After the install.

The installer prints this same guidance when it finishes and saves it to /opt/streamars/streamars-install.txt, so it is still there when you come back.

  1. Open the setup page

    Go to https://panel.example.com/setup, with your own domain, as soon as the installer finishes. A certificate warning in the first minutes means the certificate is still on its way.

  2. Create the first admin

    Choose a username and password. This account owns the panel and can add more staff later.

  3. Enter your activation code

    Paste the activation code (SMRS-…) from the customer portal. The licence activates and the panel opens on the dashboard.

  4. Add your first channel

    Open Streams and choose New stream. A live channel needs an MPEG-TS source for now, usually a URL ending in .ts.

  5. Add a Load Balancer

    When one server is not enough, open Load balancers and choose Add load balancer. The new server needs no Docker: the panel installs it over SSH.

Moving from XC? Continue with the migration guide. More on Load Balancers below.

Where it lives

Everything is in /opt/streamars, including the .env file with your settings and generated secrets: keep it, and keep it private. From that folder, docker compose ps shows the status and docker compose logs -f app follows the panel's log.

Updates

New releases are announced inside the panel, under System > Updates, on the stable channel or, if you switch, beta. Install one with a click or in a maintenance window you choose. The panel takes a safety backup first, and a release that fails its health checks rolls back on its own. Load Balancers update from the same page.

Backups

Schedule backups on the Backups page, or run ./scripts/backup.sh /var/backups/streamars in /opt/streamars, and copy them off the server. They include /data/ca, the certificate authority your Load Balancers trust: without it every Load Balancer has to join again. The .env file is not in a backup, so keep a copy of it somewhere safe as well.

Help

Open the Doctor page in the panel first: it tests the installation and suggests a fix. Then ask Support in the customer portal, or post ideas and bugs on the feedback board.

Add load balancers from the panel.

No terminal on the new server. Your licence covers as many load balancers as you add, and the panel does the install over SSH.

  1. Add the server

    In the panel, open Load balancers and choose Add load balancer. Enter the server's SSH address and a password or key, and confirm its host key.

  2. Pre-checks

    The panel checks the OS, ports, disk and the route back to your main server, and changes nothing until they pass.

  3. Install

    The install runs in the background with a live log. When it finishes, the load balancer joins and starts taking viewers.

What a load balancer needs

  • A blank Ubuntu 22.04, 24.04 or Debian 12 server
  • The same CPU architecture as the main server
  • No Docker needed on the load balancer
  • Ports 9090, 9091 and 6390 on the main server reachable from it

Your SSH login stays with you

The password or key is held in memory for the install only. It is never written to the database, a log or the audit trail, and the server's host key is pinned so a swapped machine is refused.

Good to know.

Troubleshooting.

The usual first-install problems, each with the next step. Re-running the install command is always safe: your settings and secrets are kept.

Something else? Open the Doctor page in the panel, then contact Support.

No account yet?

Create an account and the full panel is yours for 14 days, no card needed. Subscribe from the portal when you are ready.