Skip to content

Offline Installation

Deploy Flex Video in air-gapped environments using the self-extracting installer.

Overview

The offline installer packages all Docker images into a single executable script that:

  • Extracts and loads Docker images
  • Creates configuration files
  • Sets up udev rules for camera hot-plug
  • Configures and starts services

Requirements

  • Linux ARM64 system (Raspberry Pi, Jetson, etc.)
  • Docker and Docker Compose installed
  • Root access (sudo)
  • 2 GB free disk space for extraction

Download

Download the installer from the Blackwire download portal:

curl -LO https://flex.blackwire-ts.com/download/flex-video-installer-arm64.sh
chmod +x flex-video-installer-arm64.sh

Download Portal

Visit flex.blackwire-ts.com to download the latest installer and view available versions.

Installation

Basic Install

sudo ./flex-video-installer-arm64.sh

This installs to /opt/flex by default.

Custom Directory

sudo ./flex-video-installer-arm64.sh -d /custom/path

Installation Steps

The installer performs these steps:

  1. Validates prerequisites - Checks Docker and disk space
  2. Extracts images - Unpacks Docker images from the archive
  3. Loads images - Imports images into Docker
  4. Creates configuration - Writes docker-compose.yml and .env
  5. Generates API key - Creates unique FLEX_API_KEY
  6. Sets up udev rules - Configures camera hot-plug
  7. Creates /video directory - For local file playback
  8. Starts services - Brings up all containers

Post-Installation

Verify Installation

# Check services
docker compose -f /opt/flex/docker-compose.yml ps

# Test API
curl http://localhost:3539/flex/health

Access Web Interface

Open http://localhost:8080 in your browser.

Management Commands

The installer script doubles as a management tool:

Start Services

sudo /opt/flex/flex-video-installer-*.sh --start
# Or
cd /opt/flex && docker compose up -d

Stop Services

sudo /opt/flex/flex-video-installer-*.sh --stop
# Or
cd /opt/flex && docker compose down

View Logs

sudo /opt/flex/flex-video-installer-*.sh --logs
# Or
cd /opt/flex && docker compose logs -f

Check Status

sudo /opt/flex/flex-video-installer-*.sh --status
# Or
cd /opt/flex && docker compose ps

Updating

To update an existing installation:

  1. Download the new installer
  2. Run it over the existing installation
sudo ./flex-video-installer-NEW-VERSION-arm64.sh -d /opt/flex

The installer:

  • Preserves existing configuration (.env, API key)
  • Updates Docker images
  • Restarts services

Uninstallation

Full Uninstall

sudo /opt/flex/flex-video-installer-*.sh --uninstall

This removes:

  • All Flex Video Docker images
  • Installation directory
  • udev rules

Preserve Data

The uninstaller asks whether to remove Docker volumes. Choose "No" to preserve:

  • License data
  • Screenshots
  • Settings

Configuration

Environment File

The installer creates /opt/flex/.env:

# Auto-generated API key
FLEX_API_KEY=abc123...

# Add custom configuration
FLEX_FORCE_SW_DECODERS=true

Docker Compose

Edit /opt/flex/docker-compose.yml to customize:

  • Port mappings
  • Volume mounts
  • Resource limits
  • Hardware acceleration

Platform-Specific Notes

Raspberry Pi

Works out of the box. For camera support, ensure:

# Enable camera interface
sudo raspi-config
# Interface Options > Camera > Enable

NVIDIA Jetson

After installation, enable GPU acceleration:

  1. Install nvidia-container-toolkit
  2. Edit docker-compose.yml to uncomment NVIDIA section
  3. Restart services

OpenWrt

The installer detects OpenWrt and:

  • Uses mdev instead of udev
  • Adjusts paths for BusyBox compatibility
  • Configures appropriate init scripts

Troubleshooting

Extraction Failed

# Check disk space
df -h

# Try with verbose output
sudo ./flex-video-installer-*.sh -v

Docker Not Found

# Install Docker
curl -fsSL https://get.docker.com | sh

Images Won't Load

# Check Docker daemon
sudo systemctl status docker

# Check available memory
free -h

Services Won't Start

# Check logs
cd /opt/flex && docker compose logs

# Verify images loaded
docker images | grep blackwire

Building the Installer

To build a custom installer (requires full source):

cd flex-video
make build-all           # Build Docker images
make build-installer     # Create installer script

Output: installers/flex-video-installer-VERSION-arm64.sh