Skip to main content

Linux

This guide provides instructions for installing Broadcast Suite on Linux systems (Rocky Linux, Red Hat Enterprise Linux).

Prerequisites

Before installing, ensure you have:

  • Rocky Linux or Red Hat Enterprise Linux (RHEL) 9.0 or higher
  • Root or sudo access
  • Internet connectivity for downloading packages

Automated Installation

The easiest way to install Broadcast Suite is using the automated installer script.

Download and Run the Installer

Download and execute the installation script:

curl -O https://docs.broadcastsuite.com/static/installer.sh
chmod +x installer.sh
sudo ./installer.sh

What the Installer Does

The automated installer performs the following steps:

  • Updates the system packages
  • Installs required dependencies (nano, wget, ASP.NET Core Runtime 9.0)
  • Adds the Broadcast Suite repository
  • Installs and configures PostgreSQL
  • Prompts for PostgreSQL password (default: postgres)
  • Installs Broadcast Suite packages (Core, GUI, API)
  • Creates the backup directory with proper permissions
  • Updates configuration files with the PostgreSQL password
  • Configures SELinux for network connectivity
  • Starts Broadcast Suite services
  • Optionally installs and configures NGINX as a reverse proxy

Manual Installation

If you prefer to install manually, follow these steps:

Step 1: Update System and Install Dependencies

Update the system and install required packages:

sudo dnf update -y
sudo dnf install nano wget aspnetcore-runtime-9.0 -y

Step 2: Add Broadcast Suite Repository

Add the Broadcast Suite package repository:

sudo dnf config-manager --add-repo https://git.broadcastsuite.com/api/packages/broadcastsuite/rpm.repo

Step 3: Install and Configure PostgreSQL

Install PostgreSQL, initialize the database, and start the service:

sudo dnf install postgresql-server -y
sudo /usr/bin/postgresql-setup --initdb
sudo systemctl enable postgresql --now

Set the PostgreSQL password for the postgres user:

warning

Replace YOUR_PASSWORD with a secure password. Remember this password as you will need it in the next steps.

cd /var/lib/pgsql/
sudo -u postgres psql -U postgres -d postgres -c "alter user postgres with password 'YOUR_PASSWORD'"

Restart PostgreSQL to apply changes:

sudo systemctl restart postgresql

Step 4: Install Broadcast Suite

Install all Broadcast Suite packages:

sudo dnf install broadcastsuite-* -y

Create the backup directory with proper permissions:

sudo mkdir -p /opt/slg/broadcastsuite/backups
sudo chown broadcastsuite /opt/slg/broadcastsuite/backups/

Step 5: Configure Database Connection

Update the database password in the configuration files:

warning

Replace YOUR_PASSWORD with the PostgreSQL password you set in Step 3.

sudo sed -i "s/Password=postgres;/Password=YOUR_PASSWORD;/g" /opt/slg/broadcastsuite/api/appsettings.json
sudo sed -i "s/Password=postgres;/Password=YOUR_PASSWORD;/g" /opt/slg/broadcastsuite/core/appsettings.json
sudo sed -i "s/Password=postgres;/Password=YOUR_PASSWORD;/g" /opt/slg/broadcastsuite/gui/appsettings.json

Configure SELinux to allow network connectivity:

sudo /usr/sbin/setsebool -P httpd_can_network_connect 1

Copy the PostgreSQL configuration file and restart:

sudo cp /opt/slg/broadcastsuite/templates/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf
sudo systemctl restart postgresql

Step 6: Start Broadcast Suite Services

Enable and start the Broadcast Suite services:

sudo systemctl enable broadcastsuite-core --now
sudo systemctl enable broadcastsuite-gui --now
sudo systemctl enable broadcastsuite-api --now

Verify that the services are running:

sudo systemctl status broadcastsuite-core
sudo systemctl status broadcastsuite-gui
sudo systemctl status broadcastsuite-api

Post-Installation

Command Line Interface (CLI)

Broadcast Suite includes a command-line interface. For detailed information about available CLI commands and usage, please refer to the CLI documentation.

Default Ports

After installation, Broadcast Suite services are available on the following ports:

  • Core: 8085 (HTTP), 8086 (gRPC), 9000 (Ember+)
  • GUI: 5000 (HTTP)
  • API: 8091 (REST), 8092 (gRPC)
info

See the Port Matrix for a full overview over all used ports.

Firewall Configuration

If you have a firewall enabled, open the necessary ports:

sudo firewall-cmd --permanent --add-port=5000/tcp
sudo firewall-cmd --permanent --add-port=8085/tcp
sudo firewall-cmd --permanent --add-port=8086/tcp
sudo firewall-cmd --permanent --add-port=8091/tcp
sudo firewall-cmd --permanent --add-port=8092/tcp
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --reload
note

If you use NGINX as a reverse proxy, you only need to open ports 80 and 443 for HTTP/HTTPS traffic.

Accessing the Application

You can now access the Broadcast Suite GUI:

  • Without NGINX: http://your-server-ip:5000
  • With NGINX: https://your-server-ip or https://your-domain.com

Troubleshooting

Services Not Starting

  • Check service status: sudo systemctl status broadcastsuite-core
  • View service logs: sudo journalctl -u broadcastsuite-core -n 50
  • Verify PostgreSQL is running: sudo systemctl status postgresql
  • Check configuration files for syntax errors

Database Connection Issues

  • Verify PostgreSQL password in /opt/slg/broadcastsuite/*/appsettings.json
  • Check PostgreSQL authentication: sudo cat /var/lib/pgsql/data/pg_hba.conf
  • Test PostgreSQL connection: psql -U postgres -h localhost
  • Review PostgreSQL logs: sudo journalctl -u postgresql -n 50

SELinux Issues

  • Check SELinux status: sestatus
  • View SELinux denials: sudo ausearch -m avc -ts recent
  • Verify network connectivity boolean: getsebool httpd_can_network_connect
  • Temporarily disable SELinux for testing: sudo setenforce 0 (not recommended for production)

Permission Issues

  • Verify ownership: ls -la /opt/slg/broadcastsuite/
  • Check backup directory permissions: ls -ld /opt/slg/broadcastsuite/backups/
  • Ensure broadcastsuite user exists: id broadcastsuite