We offer customization solutions and support ([email protected]) | Visit us on bitbyte3 for complete VOD solutions with apps.
NixStream
Getting Started

Requirements

Hardware, software, and network requirements for NixStream

NixStream is a self-hosted stack: background encoding, live ingest, and a web admin panel. Size your server based on Docker vs manual install.

Docker install

ResourceMinimumRecommended
CPU4 cores8+ cores
RAM8 GB16 GB
Disk50 GB SSD100+ GB SSD
Docker24+Latest stable
Docker Composev2v2

Docker is the fastest path to a working install. The image bundles FFmpeg, Shaka Packager, Whisper.cpp, and queue workers so you do not need to compile media binaries on the host.

When to scale up

  • More concurrent encodes: add CPU cores and scale queue workers (docker compose up -d --scale queue=3).
  • Large libraries: plan disk for source files plus encoded HLS/DASH output (often 2 to 4x source size depending on ladder).
  • Live events: RTMP ingest and packaging use steady CPU and bandwidth while you're broadcasting.

Manual install

ComponentVersion
PHP8.2+ with extensions: pdo_mysql, redis, gd, intl, mbstring, xml, zip, bcmath, curl
Composer2.x
Node.js20+
npm10+
MySQL / MariaDB8.0+
Redis6+
FFmpeg5+
Shaka PackagerLatest stable
Whisper CLIBuilt from whisper.cpp or Docker path
Nginx or ApacheWith PHP-FPM
SupervisorFor queue workers
OSUbuntu 22.04 LTS (recommended)

Manual install gives full control over the host stack. See Manual Installation for the complete setup guide including Nginx, Supervisor, and cron.

Media binaries

Encoding and packaging depend on these tools:

BinaryPurpose
ffmpeg / ffprobeTranscode, probe, extract audio
bin/media-vodVOD packaging pipeline
bin/media-liveLive stream packaging
whisper-cliSubtitle transcription

Verify inside Docker:

docker compose exec queue ffmpeg -version
docker compose exec queue /opt/whisper/whisper-cli --help

Network ports

PortProtocolPurpose
80 / 443TCPWeb (HTTP/HTTPS)
8080TCPDocker default web port
3306TCPMySQL (internal or host)
6379TCPRedis (internal or host)
1935TCPRTMP live ingest
8888TCPLive streaming media API
5173TCPVite dev server (--dev mode)

Open RTMP (1935) only if you accept live ingest from external encoders. Restrict access with firewall rules when possible.

Browser support

The admin panel and player target modern evergreen browsers:

  • Chrome / Edge 90+
  • Firefox 90+
  • Safari 15+

Adaptive streaming uses HLS and DASH. Safari plays HLS natively; other browsers use the Shaka-based player.

What is not supported

Shared hosting without shell access or queue workers is not supported. Encoding and transcription require background job processing.

  • cPanel-only hosting without SSH
  • PHP without Redis extension
  • Servers without enough disk for encoded output
  • Windows Server (use WSL2 or Docker Desktop for development only)

Pre-flight checklist

Before installing: host meets CPU/RAM/disk minimums, ports 80/443 (and 1935 if you want live) are reachable, you can run long-lived processes via Supervisor or Docker, and APP_URL will match your public domain (OAuth and share links depend on it).

Then follow Quick Start or jump straight to Docker Installation.

On this page