Skip to main content

Installation

The following instructions assume that you install all Broadcast Suite modules on a single Windows server. For details on distributed installations or installation on Linux servers, please contact SLG Broadcast.

Setup

  1. Before you begin, make sure that you have installed PostgreSQL on the server on which you would like to install Broadcast Suite.
  2. To start the installation of Broadcast Suite, execute the setup file called broadcastsuite_{version}.exe.
  3. In the following window, select Full Installation. Components
  4. Press Next to continue with the installation.
  5. Review your selection in the following screen:

Review

  1. As soon as you press Install, Broadcast Suite will be installed to C:\Program Files\SLG Broadcast Suite. This is the default path for all Broadcast Suite installations and we recommend to use this path.
  2. After the installation has finished, click on Finish to complete the installation.

GUI Configuration

The general GUI settings are stored in a configuration file. Please open the file C:\Program Files\SLG Broadcast Suite\GUI\appsettings.json and search the following section:

 "Kestrel": {
"ListenPort": 5000
},
"ConfigDbContext": {
"ConnectionString": "Host=dbserver01;Database=broadcastsuite;Username=postgres;Password=postgres;",
"EncryptionKey": "..."
}

Change the following parameters (if necessary);

SectionPropertyDescription
KestrelListenPortListen port of GUI
ConfigDbContextConnectionStringConnection details for database. The database user needs read and write access to the database.
ConfigDbContextEncryptionKeyEcryption Key for passwords and other sensitive data
tip

The encryption key is being used to encrypt passwords and other sensitive data. You must use the same key for the Broadcast Suite Core, GUI and API. You may keep the default value, but feel free to change it to another random string as long as it has a length of 32 characters.

Core Configuration

The initial Broadcast Suite Core settings are stored in the file C:\Program Files\SLG Broadcast Suite\Core\appsettings.json.

Open the file and change the database connection string to match your configuration:

"ConfigDbContext": {
"ConnectionString": "Host=dbserver01;Database=broadcastsuite;Username=postgres;Password=postgres;",
"EncryptionKey": "..."
}
warning

The database user needs read and write access to the database.

You may optionally change the following settings:

 "Settings": {
"LogPath": "C:\Program Data\SLG Broadcast Suite\",
"LogLevel": 3
}
PropertyDescription
LogPathStorage location of log files
LogLevelLog level (1 = Warnings only, 2 = Info, 3 = Debug, 4 = Trace)

Reverse Proxy

For Linux installations, you can use Nginx as reverse proxy. To do so, follow these steps as root:

Nginx Installation & Configuration

  • Install Nginx with the following command: yum install nginx
  • Edit the file /etc/nginx/nginx.conf and replace the whole file with the following configuration:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
worker_connections 1024;
}

http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;

# .NET specific settings
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
large_client_header_buffers 4 32k;

include /etc/nginx/mime.types;
default_type application/octet-stream;

include /etc/nginx/conf.d/*.conf;
}

SSL Certificate

If you don't have an existing certificate, you can create a self-signed certificate as follows:

mkdir -p /etc/ssl/private
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

This will create a certificate which is valid for 365 days.

Nginx Configuration Files

The following configuration assumes that the Broadcast Suite GUI should be accessible under broadcastsuite.int. Please adjust these settings according to your needs.

Create a new config file /etc/nginx/conf.d/broadcastsuite.conf with the following content:

upstream grpc_core {
server 127.0.0.1:8086;
}

server {
server_name broadcastsuite.int;

add_header Strict-Transport-Security max-age=31536000;

proxy_http_version 1.1;
proxy_read_timeout 1d;
proxy_connect_timeout 4;
proxy_send_timeout 1d;

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10M;

location /RemoteCoreService {
grpc_pass grpc://grpc_core;
}

location / {
proxy_pass http://127.0.0.1:5000;
}

location /swagger/v1/swagger.json {
return 301 /swagger/swagger/v1/swagger.json;
}

location /swagger/ {
rewrite /swagger/(.*) /$1 break;
proxy_pass http://127.0.0.1:8091;
}

location /api/ {
proxy_pass http://127.0.0.1:8091;
}

listen 443 ssl http2;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
}

server {
return 301 https://$host$request_uri;
}

Please make sure to set the server_name to the correct value.

Restart Nginx with systemctl restart nginx.

First Start

After you have changed the config files, perform the following steps:

  1. Press Windows + R
  2. Enter services.msc
  3. In the service list, you should find three services: SLG Broadcast Suite GUI, SLG Broadcast Suite API as well as SLG Broadcast Suite Core
  4. Start all three services

You can now access the GUI on http://[IP or hostname of server]:5000/