Deploy with Docker

Docker provides a fast, reliable way to deploy Wowza Streaming Engine™ media server software in a consistent environment across different systems. Wowza Media Systems publishes preconfigured, ready-to-use Linux images for Wowza Streaming Engine (WSE) and WSE Manager on Docker Hub:

  • Wowza Streaming Engine: The media server software that ingests, processes, and delivers live and on-demand streams.
  • WSE Manager: The web UI for configuring, managing, and monitoring a WSE server. (Optional)

Both images support AMD64 (x86_64) and ARM64 (aarch64). These images ship with their configuration, dependencies, and runtime environment, so they behave the same in development, staging, and production.

This guide walks you through deploying both images with Docker, either with Docker Compose or as standalone containers. You can also run the images on Kubernetes.

Docker images


Wowza Streaming Engine images

The wowza/wowza-streaming-engine image is available in four variants, each with its own tag. Choose the variant that fits your use case, then set the [image-tag] value in wowza/wowza-streaming-engine:[image-tag] when you pull the image.

Variant Image tag Description Use it when
Base [version] Includes a basic installation with documentation, preconfigured live and VOD applications, and sample video files. Use latest for the most recent release, or [version] to pin a specific version. For example, wowza/wowza-streaming-engine:latest or wowza/wowza-streaming-engine:4.12.0. You want a complete installation with sample applications to build on.
Slim [version]-slim Includes a basic installation with no preconfigured applications or sample video files. It's half the size of Base. You want a smaller image and plan to add your own applications and configuration.
Trial latest-trial Includes preconfigured sample applications and an SSL certificate for wse-trial.wowza.com. You're evaluating WSE or want to send your first stream quickly.
VIF [version]-vif-[vif-version] Builds on Slim and is preconfigured to run the Video Intelligence Framework (VIF). The [version] and [vif-version] must match the values for the WSE Manager image. You want to run Video Intelligence Framework workflows.

For available versions, see the WSE tags on Docker Hub.

WSE Manager images

WSE Manager ships separately in the wowza/wowza-streaming-engine-manager image. WSE Manager is optional. You can manage WSE with the WSE REST API. To run WSE without WSE Manager, remove the wse-manager service from the Compose file, or skip the WSE Manager steps in the standalone instructions. Use the WSE Manager image that matches your WSE variant, then set the [image-tag] value in wowza/wowza-streaming-engine-manager:[image-tag] when you pull the image.

Variant Image tag Description Use with WSE variant
Standard [version] Includes the standard WSE Manager web interface. Use latest for the most recent release, or [version] to pin a specific version. For example, wowza/wowza-streaming-engine-manager:latest or wowza/wowza-streaming-engine-manager:4.12.0. Base, Slim, Trial
VIF [version]-vif-[vif-version] Includes the WSE Manager web interface with the Video Intelligence Framework (VIF) UI. The [version] and [vif-version] must match the values for the WSE image. VIF

For available versions, see the WSE Manager tags on Docker Hub.

Deploy with Docker


Prerequisites

Docker Compose files

Each example Compose file below defines two services: WSE and WSE Manager. Choose the tab that matches your WSE variant, then follow the Docker Compose steps to deploy it.

Base or Slim

name: wowza-streaming-engine
services:
  wse:
    hostname: wse.docker
    image: wowza/wowza-streaming-engine:[image-tag]
    environment:
      - WSE_LICENSE_KEY=[your-wse-license-key]
      - ADMIN_USER=[your-admin-user]
      - ADMIN_PASSWORD=[your-admin-password]
      # Set list of IP addresses that are authorized to use the REST API
      - IPWHITELIST=*
      # Disable or enable the Wowza Streaming Engine Transcoder
      - TRANSCODER=disabled
      - LOG_LEVEL=WARN # DEBUG, INFO, WARN, ERROR
    # Uncomment to persist configurations between starts of Wowza Streaming Engine
    # volumes:
    #   - ./wse/applications:/usr/local/WowzaStreamingEngine/applications
    #   - ./wse/conf:/usr/local/WowzaStreamingEngine/conf
    #   - ./wse/content:/usr/local/WowzaStreamingEngine/content
    #   - ./wse/transcoder:/usr/local/WowzaStreamingEngine/transcoder
    # Configure common Wowza Streaming Engine ports on the host machine
    ports:
      - 8087:8087               # REST API
      - 80:80                   # HLS, MPEG-DASH, and RTMPT streaming
      - 443:443                 # SSL/TLS streaming (RTMPS, HTTPS, and WebRTC)
      - 1935:1935               # RTMP/RTMPE/RTMPT/RTSP-interleaved streaming and WOWZ streaming
      - 6970-6999:6970-6999/udp # SRT
      - 10000:10000/udp         # SRT 

  wse-manager:
    # Use latest, or [version] to pin a version
    image: wowza/wowza-streaming-engine-manager:[manager-image-tag]
    environment:
      - LOG_LEVEL=WARN # DEBUG, INFO, WARN, ERROR
      - WSE_HOST=http://wse.docker:8087
    # Configure common WSE Manager ports on the host machine
    ports:
      - 8088:8080

Trial

name: wowza-streaming-engine-trial
services:
  wse:
    hostname: wse.docker
    image: wowza/wowza-streaming-engine:latest-trial
    environment:
      - WSE_LICENSE_KEY=[your-wse-license-key]
      - ADMIN_USER=[your-admin-user]
      - ADMIN_PASSWORD=[your-admin-password]
      # Set list of IP addresses that are authorized to use the REST API
      - IPWHITELIST=*
      # Disable or enable the Wowza Streaming Engine Transcoder
      - TRANSCODER=disabled
      - LOG_LEVEL=WARN # DEBUG, INFO, WARN, ERROR
    # Uncomment to persist configurations between starts of Wowza Streaming Engine
    # volumes:
    #   - ./wse/applications:/usr/local/WowzaStreamingEngine/applications
    #   - ./wse/conf:/usr/local/WowzaStreamingEngine/conf
    #   - ./wse/content:/usr/local/WowzaStreamingEngine/content
    #   - ./wse/transcoder:/usr/local/WowzaStreamingEngine/transcoder
    # Configure common Wowza Streaming Engine ports on the host machine
    ports:
      - 8087:8087               # REST API
      - 80:80                   # HLS, MPEG-DASH, and RTMPT streaming
      - 443:443                 # SSL/TLS streaming (RTMPS, HTTPS, and WebRTC)
      - 1935:1935               # RTMP/RTMPE/RTMPT/RTSP-interleaved streaming and WOWZ streaming
      - 6970-6999:6970-6999/udp # SRT
      - 10000:10000/udp         # SRT 

  wse-manager:
    # Use latest, or [version] to pin a version
    image: wowza/wowza-streaming-engine-manager:latest
    environment:
      - LOG_LEVEL=WARN # DEBUG, INFO, WARN, ERROR
      - WSE_HOST=http://wse.docker:8087
      # Uncomment to serve WSE Manager over HTTPS with the trial certificate
      # - JKS_TRIAL=true
    # Configure common WSE Manager ports on the host machine
    ports:
      - 8088:8080
      # Uncomment to publish WSE Manager over HTTPS
      # - 8443:8443

VIF

For VIF, both images must use the same [version] and [vif-version].

name: wowza-streaming-engine-vif
services:
  wse:
    hostname: wse.docker
    image: wowza/wowza-streaming-engine:[version]-vif-[vif-version]
    environment:
      - WSE_LICENSE_KEY=[your-wse-license-key]
      - ADMIN_USER=[your-admin-user]
      - ADMIN_PASSWORD=[your-admin-password]
      # Set list of IP addresses that are authorized to use the REST API
      - IPWHITELIST=*
      - LOG_LEVEL=WARN # DEBUG, INFO, WARN, ERROR
    # Uncomment to persist configurations between starts of Wowza Streaming Engine
    # volumes:
    #   - ./wse/applications:/usr/local/WowzaStreamingEngine/applications
    #   - ./wse/conf:/usr/local/WowzaStreamingEngine/conf
    #   - ./wse/content:/usr/local/WowzaStreamingEngine/content
    #   - ./wse/transcoder:/usr/local/WowzaStreamingEngine/transcoder
    # Configure common Wowza Streaming Engine ports on the host machine
    ports:
      - 8087:8087               # REST API
      - 80:80                   # HLS, MPEG-DASH, and RTMPT streaming
      - 443:443                 # SSL/TLS streaming (RTMPS, HTTPS, and WebRTC)
      - 1935:1935               # RTMP/RTMPE/RTMPT/RTSP-interleaved streaming and WOWZ streaming
      - 6970-6999:6970-6999/udp # SRT
      - 10000:10000/udp         # SRT 

  wse-manager:
    # Must match the WSE image's [version] and [vif-version]
    image: wowza/wowza-streaming-engine-manager:[version]-vif-[vif-version]
    environment:
      - LOG_LEVEL=WARN # DEBUG, INFO, WARN, ERROR
      - WSE_HOST=http://wse.docker:8087
    # Configure common WSE Manager ports on the host machine
    ports:
      - 8088:8080


Deploy

Follow the steps in the sections below to deploy WSE and WSE Manager using a Docker Compose file or as standalone containers.

Docker Compose

Use one of the example Compose files and follow the steps below to manage and start WSE and WSE Manager together using Docker Compose.

Steps
  1. Save the example Compose file for your variant locally as docker-compose.yaml.
  2. Make sure Docker is running.
  3. Update the following settings in docker-compose.yaml:
    • Container settings:
      • image: The image and tag for each service
    • Environment variables:
      • WSE_LICENSE_KEY: Your WSE license key
      • ADMIN_USER: An admin username
      • ADMIN_PASSWORD: An admin password
  4. (Optional) Customize the deployment:
    • Update environment variables, ports, or volumes.
    • Add your own files, such as configuration files, without replacing the container’s defaults.
    • Add GPU access to the WSE service. See the Docker documentation for the current syntax and host prerequisites.
    • To run WSE without WSE Manager, remove the wse-manager service.
  5. Save the changes.
  6. Open a terminal in the same directory as docker-compose.yaml.
  7. Run docker compose up. This command pulls the WSE and WSE Manager images and starts them in containers as configured in the Compose file.
  8. Open WSE Manager in a browser at http://localhost:8088.
  9. Sign in with the username and password you set in step 3.
  10. Manage the containers using the Docker CLI.

Standalone

Follow these steps to create and run WSE and WSE Manager as standalone containers running on a shared network.

  1. Make sure Docker is running.
  2. Open a terminal.
  3. Pull the WSE and WSE Manager images. Replace [image-tag] with the tag for your WSE variant, and [manager-image-tag] with the matching WSE Manager tag. If you won’t use WSE Manager, skip the second command.

    docker pull wowza/wowza-streaming-engine:[image-tag]
    docker pull wowza/wowza-streaming-engine-manager:[manager-image-tag]
  4. Create a Docker network so the two containers can communicate. This example creates a network named wowza-net:

    docker network create wowza-net
  5. Create and run the WSE container on the wowza-net network:

    • Set the following environment variables:
      • WSE_LICENSE_KEY: Your WSE license key
      • ADMIN_USER: An admin username
      • ADMIN_PASSWORD: An admin password
    • (Optional) Add other environment variables, ports, or volumes.
    • (Optional) Add your own files, such as configuration files, without replacing the container’s defaults.
    • (Optional) Add GPU access by including the --gpus flag in your docker run command. See the Docker documentation for the current syntax and host prerequisites.

    The example below creates a container named wse. It publishes only the REST API and RTMP ports. To publish other ports, add a --publish flag for each one.

    docker run -d --name wse --network wowza-net \
      --env WSE_LICENSE_KEY=[your-wse-license-key] \
      --env ADMIN_USER=[your-admin-user] \
      --env ADMIN_PASSWORD=[your-admin-password] \
      --env IPWHITELIST='*' \
      --publish 8087:8087 \
      --publish 1935:1935 \
      wowza/wowza-streaming-engine:[image-tag]
  6. (Optional) Create and run the WSE Manager container on the same network:

    • Set the WSE_HOST environment variable to the WSE container name and REST API port. This allows WSE Manager to connect to WSE.
    • Add other environment variables, ports, or volumes as needed.

    The example below creates a container named wse-manager.

    docker run -d --name wse-manager --network wowza-net \
      --env WSE_HOST=http://wse:8087 \
      --publish 8088:8080 \
      wowza/wowza-streaming-engine-manager:[manager-image-tag]
  7. If you created the WSE Manager container, open WSE Manager in a browser at http://localhost:8088 and sign in with the username and password you set in step 5.
  8. Manage the containers using the Docker CLI.

Next steps