(Previously Digital Program Logs)
Copyright (c) 2016 James Oliver, CKXU Radio Society
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This software is designed to suit the needs of campus and community based radio in Canada. Through logging and analysis of content played on air, reporting compliance will become simpler and streamlined
- Installation
- Requirements
- Tutorial
- Setting up a station
- Genres and Categories
Installation of this platform during the Alpha and Beta phases is to place the entire directory within a location that is available to the web server. Configuration of the XML connection file located in the TPSBIN/XML/DBSETTINGS.xml file define the connection type to the Database server as well as the authentication type used for user login. supported methods of Login are LDAP or LDAPS authentication CHAP or RADIUS is not supported as of current. The database must always use a MySQL server at the current time.
This program requires a Web Server (such as apache or IIS) with PHP 5.4+ installed as well as a MySQL 5.6.5+ database. The user will use a web browser or other supported application to connect to the database. ####The following PHP extensions are required:
- LDAP
- mcrypt ** see https://www.techrepublic.com/article/how-to-install-mcrypt-for-php-7-2/
- mysqli
- mysqlnd [recommended]
- PDO
- composer
Special Note: Varnish is an amazing and fast resource, But it can cause problems with your TPS Broadcast installation if Cookies are ignored. if you cannot login even though you are confident you have entered the proper credentials, make sure to either: disable varnish on the TPS Broadcast URI or include the PHPSESSID and your specific sessionID (varies by site, usually like TPSDemoSession) in the exclusions for varnish
This is a general tutorial on how to setup a server, this will be a high level overview of how to configure a production server but environments may vary. For example demo.ckxu.com uses an NGINX gateway service to multiple compute nodes on the backend with a distributed filesystem and varnish cache. yet ckxu.uleth.ca utilizes a simpler but more high powered VPS. providing walkthroughs for each one would be extermely extensive so we will assume you have a fully working and basically configured server (can load apache default page).
here are some useful pages on by Digital Ocean, you can use this link to get a free $10 credit toward your servers VPS servers hosted with Digital Ocean.
- Introduction to LEMP on Ubuntu 14.04
- LAMP on Ubuntu 16.04
- NGINX Load Balancer
- Gluster Redundant Storage Pool
- Serial Com. to TCP software
- Clone from Git or download and extract an archive of TPS.
- upload files to server if needed
- access the server terminal (SSH)
- navigate to the location of the webserver root directory
- (Optional but Recommended) to customize your server configuration copy the config
./public/slimConfig.example.php
to the root directory and rename toslimConfig.php
. i.e.cp ./public/slimConfig.example.php ./slimConfig.php
- (Optional but Recommended) edit slimConfig.php and change the following parameters:
$debug = True; #enables detailed exceptions (leave set to false on production systems)
$sessionExpiry = "10minutes" # adjusts the length of time a session will be kept open. once defined duration is passed a user will have to sign in again
$temp_path = false; # can be chagned to specify a cache directory for Slim (provides speed improvements)
$sessionName = "SomeSessionName" # should be changed from default to a custom value to improve security
$sessionSecret = "SOME_HASH_VALUE" # session secret, recommend using value from [GRC Perfect Passwords](https://www.grc.com/passwords.htm)
- Run
composer install --no-dev
in the root directory to install external requirements - open web browser and navigate to site URL. you will be automatically directed to a first time setup walkthrough.
- follow the in browser steps.
- after setup, login using the credentials you set in the Setup process. and go to Advanced -> Updates. apply any missing updates
- in the terminal edit
CONFIG.php
, if you do not have a Broadcast Tools ACS8.2 plus switcher set the following line to prevent attempts to query the switch:
$switch_enabled = False;
if you do have an appropriate switch change the following line:
$switch = url_or_ip_of_tcp_com
- party! you have installed TPS
Most of the process is handled by the setup script but more configuration can be done on stations to enhance reporting. To change these or to add an additional station to your TPS Broadcast navigate to management -> station. you can now either edit an existing station or create a new one.
In TPS Broadcast there is a distinction made between Genres and Categories but they are somewhat related.
Categories are content and management groups for programs, this defines the type of content that is expected of programs and groups their reporting.
Genres relate to musical genres but have in the past referenced program categories as well. If you notice a reference to a program category
in the UI please submit an issue on GitHub so it can be resolved. Genres are a group that can be expanded into Government Categories (i.e. CRTC 21 - Pop, Rock, Dance) this allows reporting on the actual content played by talent (10% Category 3 etc.)