Streamwell
Streamwell v1.4.2
Streamwell v1.4.2
  • ๐Ÿ‘‹Welcome
    • Welcome to Streamwell
  • ๐Ÿ‘Getting Started
    • System Requirements
    • Installing Streamwell
    • Hello World
    • Hello Outside World
  • ๐Ÿ“บUsing Streamwell
    • Streaming
      • Streaming with NDI
      • Streaming with Chrome
      • Streaming from iOS/Android
      • Streaming from Avid Media Composer
      • Hardware Encoders
        • Magewell Ultra Stream
        • ATEM Mini Pro
        • Osprey Talon
        • Haivision Makito
    • Users and Groups
    • Channels
    • Chat
    • Recording
    • File Sharing
    • Restreaming
    • Statistics and Sharing
    • Public Links
  • ๐Ÿ‘ฎManaging Streamwell
    • Server Management
    • Enterprise Features
  • โ˜Ž๏ธHelp and Support
    • Examples and Tips
    • Troubleshooting
    • How to Update
    • Support & Pro Services
  • ๐Ÿ“–More Information
    • Release Notes
    • 3rd Party Licenses
    • OvenMediaEngine
    • Advanced Configuration
Powered by GitBook
On this page
  • Express Installation
  • Manual Installation
  • What do these commands mean?
  1. Getting Started

Installing Streamwell

PreviousSystem RequirementsNextHello World

Before you begin, make sure your Streamwell server:

  • Meets the including a running installation of

  • Has a known or fixed IP address on your network

  • Has root / admin access enabled (required on Linux and macOS)

If you plan to expose your server to the internet, make sure you:

  • Forward the applicable ports from your router to the IP of the server ()

  • Point the DNS A records from your domain name to the public IP of your router ()

  • (Recommended) Configure firewalls on your server & router ()

Express Installation

With Docker installed and running, open a terminal or PowerShell prompt and run this command:

Linux or macOS:

curl http://files.streamwell.net/install.sh -L -o install.sh && chmod +x install.sh && sudo ./install.sh

Windows (PowerShell):

Invoke-WebRequest -Uri http://files.streamwell.net/install.bat -OutFile install.bat; .\install.bat

The on-screen prompts will ask you to choose an install directory and set a system key, or press enter to leave the default settings. After a few seconds, you should be ready to say "" to your new Streamwell server ๐Ÿ˜Ž

Please note these scripts are not guaranteed to work on all systems! If you are running in an enterprise or managed environment, you will likely need to proceed with Manual Installation.

Manual Installation

For more control over the docker installation including port and environment variable settings, start by pulling the latest available docker image:

docker pull beamwell/streamwell:latest

Create or mount directories to hold your SSL certificate, recordings, logs and uploaded files. By storing these outside of the Docker container we are about to create, we can freely update it without fear of losing them:

mkdir ssl rec log files

Linux:

docker run -d --name Streamwell --restart always -e SYSTEM_KEY="yourSecretKey" --network host -v ~/ssl:/etc/letsencrypt -v ~/rec:/rec -v ~/log:/log -v ~/files:/files beamwell/streamwell:latest

Windows and macOS:

docker run -d --name Streamwell --restart always -e SYSTEM_KEY="yourSecretKey" -p 80:80 -p 443:443 -p 1935:1935 -p 1936:1936 -p 3333:3333 -p 3334:3334 -p 8000:8000 -p 8081:8081 -p 9999:9999/udp -p 10010:10010 -p 10010:10010/udp -v /path/to/ssl:/etc/letsencrypt -v /path/to/rec:/rec -v /path/to/log:/log -v /path/to/files:/files beamwell/streamwell:latest

After a few seconds, Streamwell should be accessible at the IP of the server via a web browser.

What do these commands mean?

docker pull = downloads the application image and version specified (e.g. mycompany/myapp:version).

docker run -d --name Streamwell = runs a detached container (so we can close the terminal) and calls it Streamwell

--restart always = If the container crashes or is rebooted due to a power failure / system restart, it will automatically restart itself

-e = Environment Variables. Here are the available options:

STRONGLY RECOMMENDED: Pass a โ€˜SYSTEM_KEYโ€™ and weโ€™ll use that as the encryption key inside the application, to secure your links and stream keys. If you donโ€™t pass a key in, one will be created for you and printed a single time in the startup logs (use docker container logs Streamwell to view those logs).

OPTIONAL: Pass a 'STREAMWELL_DOMAIN_NAME' and 'STREAMWELL_DOMAIN_EMAIL', and Streamwell will automatically configure HTTPS for your server, assuming it is reachable over the internet at that domain name. You might choose to omit these on the first run and configure them later in the web interface.

OPTIONAL: Pass environment variables to customize which ports are used for the various protocols: HTTP_PORT, HTTPS_PORT, WS_PORT, WSS_PORT, RTMP_PORT, RTMPS_PORT, HLS_PORT, API_PORT, SRT_PORT, DATA_PORT. The web server always runs within the container on the standard ports 80 / 443, but you can pass HTTP(S)_PORT variables and map different ports to serve the web client interface if required, e.g. -p 8080:80 -p 8443:443 -e HTTP_PORT=8080 -e HTTPS_PORT=8443

OPTIONAL: "UPLOAD_MB_LIMIT" sets the maximum file upload size in megabytes (e.g. UPLOAD_MB_LIMIT=512). The default is 256. The maximum is 1024.

-p = Connect this port from the outside world to the container. On Linux hosts, you donโ€™t need to do this. Instead you can use the argument --network host in your command. Or connect the ports manually if you prefer.

-v = Connect this folder from the computer running Docker to the container

The -v flag is particularly useful since that lets you house things like file uploads, recordings, logs, certificates and more on the host server rather than in the running container. So when you need to update the application it is as simple as replacing the running container with one run from an updated image. While not absolutely required, you should create these directories on your server for data persistence outside of the Docker container:

-v /your/path/to/SSL:/etc/letsencrypt

-v /your/path/to/LOGS:/log

-v /your/path/to/RECORDINGS:/rec

-v /your/path/to/FILES:/files

Time to start up the Streamwell container! (see for further explanation and more options)

OPTIONAL: "TZ" overrides the default internal timezone setting of 'UTC' ()

BEST PRACTICE: Once you figure out the run command for your system, tuck it away somewhere so you can easily re-deploy whenever you

๐Ÿ‘
requirements
Docker
example
example
example
Hello World
below
details
Update Streamwell