Removing out of date info, fixing h1 and h2s

This commit is contained in:
Zachary Klosko 2020-06-09 12:59:59 -04:00
parent 48fb647c16
commit 972e1ba7af
17 changed files with 100 additions and 207 deletions

View File

@ -42,7 +42,7 @@ docsnav:
url: scheduling-shows
- page: Settings
url: settings
- page: Streaming Listener Statistics
- page: Streaming Statistics
url: listener-stats
- section: Advanced Configuration
contents:
@ -50,14 +50,12 @@ docsnav:
url: api
- page: Backing up LibreTime
url: backing-up-the-server
- page: Configuring Streaming Services
- page: Configuring Icecast/Shoutcast
url: icecast-shoutcast
- page: FreeIPA Configuration
url: freeipa
- page: Interface Customization
url: interface-customization
- page: Promoting through Icecast
url: promoting-your-station
- page: Troubleshooting/Uninstall
url: troubleshooting
- page: Upgrading LibreTime

View File

@ -33,6 +33,9 @@ layout: default
section{
padding:1rem 0
}
h1,h2,h3,h4,h5,h6{
padding-top: 10px;
}
</style>
<title>{{ site.title }} - {{ page.title }}</title>

View File

@ -3,6 +3,8 @@ layout: docs
title: Backing Up The Server
---
## Database Backup
The following shell commands can be used for database backup and restore on a
running *PostgreSQL* server in an LibreTime system.

View File

@ -36,21 +36,24 @@ a:hover{
}
h1,h2,h3,h4,h5,h6{
font-family:'Open Sans','Helvetica Neue',Arial,sans-serif
font-family:'Open Sans','Helvetica Neue',Arial,sans-serif;
}
/* Table Properties */
table{
border: 2px solid #f05f40;
padding: 20px;
}
th{
background-color: #f05f40
background-color: #f05f40;
text-align: center;
color: white;
}
tr, td{
padding: 15px;
text-align: left;
border-bottom: 1px solid #f05f40
}
/* Theme Colors */

View File

@ -1,7 +1,6 @@
---
layout: docs
title: FreeIPA Configuration
---
You can configure LibreTime to delegate all authentication to a FreeIPA server.

View File

@ -14,7 +14,7 @@ Because LibreTime supports simultaneous streaming in multiple formats, it is pos
Conversely, you may have a music station which wants to stream at 160kbps or 192kbps to offer a quality advantage over stations streaming at 128kbps or less. Since Ogg, AAC and MP3 formats use lossy compression, listeners will only hear the benefit of higher streaming bitrates if the media files in the LibreTime storage server are encoded at an equivalent bitrate, or higher.
# UTF-8 metadata in Icecast MP3 streams
## UTF-8 metadata in Icecast MP3 streams
When sending metadata about your stream to an Icecast server in non-Latin alphabets, you may find that Icecast does not display the characters correctly for an MP3 stream, even though they are displayed correctly for an Ogg Vorbis stream. In the following screenshot, Russian characters are being displayed incorrectly in the *Current Song* field for the MP3 stream:
@ -34,7 +34,7 @@ After saving the */etc/icecast2/icecast.xml* file, you should restart the Icecas
Detaching from the console
icecast2.
# Icecast handover configuration
## Icecast handover configuration
In a typical radio station configuration, the live output from the broadcast studio and the scheduled output from LibreTime are mixed together before being sent further along the broadcast chain, to a transmitter or streaming media server on the Internet. (This may not be the case if your LibreTime server is remote from the studio, and you are using the **Show Source Mount Point** or **Master Source Mount Point** to mix live and scheduled content. See the *Stream Settings* chapter for details).
@ -71,7 +71,7 @@ These mount point definitions mean that a client connecting to a URL such as *ht
Setting the value of *<fallback-override>* to 1 (enabled) means that when the */live.ogg* mount point becomes available again, the client will be re-connected to it.  If you wish to hide the */airtime\_128* and */live.ogg* mount points from the public Icecast web interface, set the value of *<hidden>* in each of these definitions to 1.
# Source configuration
## Source configuration
Connect the other source to the Icecast server with the same parameters defined in the */etc/airtime/liquidsoap.cfg* file, except for the mount point. This should one of the mount points you have defined in the */etc/icecast2/icecast.xml* file, such as */live.ogg* in the example above.
@ -81,3 +81,40 @@ To configure **Mixxx** for streaming to Icecast, click *Options*, *Preferences*,
By default, Icecast streams are buffered to guard against network problems, which causes latency for remote listeners. When monitoring the stream from a remote location, you may have to begin the live stream a few seconds before the previous stream ends to enable a smooth transition.
## Promoting your station through Icecast
If you have an Icecast server, you can put a link to the Icecast status page (by default at port 8000) on your station's homepage,
to provide an overview of available streams. See the chapter *Interface customization* for tips on theming the
Icecast status page. You can also use Now Playing widgets (see the chapter *Exporting the schedule*) or HTML5 stream players (see the chapter *Stream player for your website*) to help grow your audience.
On an Icecast server, you can uncomment the `<directory>` section in the _/etc/icecast2/icecast.xml_ file to have
your station automatically listed on the Icecast directory website <http://dir.xiph.org> which could help you pick
up more listeners.
<!-- Uncomment this if you want directory listings -->
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>
The Indymedia stream directory at <http://radio.indymedia.org/en/yp> links to grassroots independent radio projects around the world. You can add your station to their list with an additional *<directory>* section, as follows:
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://radio.indymedia.org/cgi-bin/yp-cgi</yp-url>
</directory>
Another stream directory service is provided by the Liquidsoap Flows! site <http://flows.liquidsoap.fm/>. The following section can be added to the file */usr/lib/airtime/pypo/bin/liquidsoap\_scripts/ls\_script.liq* after *add\_skip\_command(s)* on line 174, for a stream named '*ourstation*':
ourstation = register_flow(
radio="Rock 'n Roll Radio",
website="http://radio.example.com/",
description="Canada's most rockin' radio!",
genre="Rock",
user="",
password="",
streams=[("ogg/128k","http://streaming.example.com/libretime_128")],
ourstation)
For the time being, a stream can be registered on the Liquidsoap Flows! site with any username and password. Authenticated services may be offered in future.

View File

@ -23,23 +23,6 @@ Save the file with **Ctrl+O**, then refresh your browser to see the change to th
Any custom changes that you make to the administration interface should be backed up before upgrading LibreTime to a newer version, otherwise they could be overwritten. If you have made improvements that you think might be useful to other LibreTime users, please contact LibreTime and tell us about them.
# Modifying the LibreTime Radio Page
The background of the mini-site that appears when you visit the server's domain in your web browser can be changed by modifying the page's CSS file, located at */usr/share/airtime/php/airtime_mvc/public/css/radio-page/radio-page.css*.
```
html {
background: url("img/background-testing-3.jpg") no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
overflow-y: auto;
}
```
Place the new background image in the */usr/share/airtime/public/css/radio-page/img/* folder and change the `background:` entry's URL to point to the new image. The new image should be at least 1280 x 720 in pixel size to avoid being blurry.
# Modifying the Icecast interface
If you have installed Icecast, in the directory */etc/icecast2/web/* you will find several XSLT and other files which are used to generate the Icecast web interface. If you are familiar with HTML you should be able to modify these pages, as they are well commented. You do have to be careful with syntax, because something as simple as a missing bracket can cause the Icecast web interface to break down.

View File

@ -3,8 +3,6 @@ layout: docs
title: Built-in Microsite
---
## Radio page
![](img/radio-page.png)
LibreTime includes a mini-site, which can be accessed at _serverIP_ (for local installations), or
@ -12,4 +10,19 @@ _libretime.yourdomain.com_ or _cloudvmIP_ (for installations to a server on a do
logo and station description (set under Settings > General), the login button to the LibreTime interface, the schedule for the next seven days,
podcast tabs, and a live feed of your station with the currently playing artist and track displayed.
The background of the radio page can be changed; see instructions [here](interface-customization).
## Modifying the LibreTime Radio Page
The background of the mini-site that appears when you visit the server's domain in your web browser can be changed by modifying the page's CSS file, located at */usr/share/airtime/php/airtime_mvc/public/css/radio-page/radio-page.css*.
```
html {
background: url("img/background-testing-3.jpg") no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
overflow-y: auto;
}
```
Place the new background image in the */usr/share/airtime/public/css/radio-page/img/* folder and change the `background:` entry's URL to point to the new image. The new image should be at least 1280 x 720 in pixel size to avoid being blurry.

View File

@ -4,9 +4,9 @@ title: Playlists and Smartblocks
---
# Playlists {#playlists}
## Playlists {#playlists}
## Creating a new playlist
### Creating a new playlist
You can create a new playlist on the toolbar of the **Playlists** page.
@ -46,9 +46,9 @@ If you want to edit the playlist content or metadata later, you can find it by *
![](img/Screenshot501-Edit_playlist_240.png)
# Smartblocks {#smartblocks}
## Smartblocks {#smartblocks}
## Creating a Smartblock
### Creating a Smartblock
Smart blocks are automatically filled with media files from the LibreTime library, according to the criteria that you specify. This feature is intended to save staff time, compared to selecting items for a playlist manually, and can be used to schedule shows that operate in a consistent format.

View File

@ -4,7 +4,7 @@ title: Playout History
---
# History {#history}
## History {#history}
On the History menu, the **Playout History** page enables you to view a list of files played within a specific date and time range. This page is designed to help your station prepare reports for music royalty collection societies and regulatory agencies.
@ -24,7 +24,7 @@ On the **Show Summary** tab, click the name of a show within the search range to
![](img/Screenshot535-Show_summary_250.png)
## Manual logging
### Manual logging
If your station features playout from analogue sources such as turntables or microphones, there is no automatic metadata for LibreTime to collect from these inputs. To ensure that the playout history is complete, you can add log entries manually by clicking the **+ Create Entry** button. This action opens a pop-up window with default fields of Start Time, End Time, Title and Creator. Click the **Find** button to automatically fill the **Choose Show Instance** menu with the names of shows that took place within the specified time range. Then click the **Save** button to enter the new item into the playout history.
@ -45,11 +45,11 @@ Either of these actions opens a page in which you can name the new template, and
When the template is in the format you require, click the **Save** button, and **Set Default Template** if you wish. The new template will now be listed on the History Templates page. If you have set a new default template, any changes will be visible on the tabs of the Playout History page.
# Exporting the schedule {#exporting}
## Exporting the schedule {#exporting}
LibreTime has a feature which enables your station's show and schedule information to be displayed on remote websites. This feature is included in LibreTime because you would not usually invite the general public to access your LibreTime server directly. If you had very large numbers of people requesting data from the LibreTime server at once, the burst of network traffic might overload the server, potentially disrupting your broadcasts. If carried out maliciously, this network overload is known as a *denial of service attack*.
Instead, your public-facing web server can retrieve the schedule information from the LibreTime API. This information can then be displayed on your broadcast station or affiliate websites by a content management system, such as Sourcefabric's **Newscoop** (<http://newscoop.sourcefabric.org/>). It can be presented using Javascript widgets and styled with CSS, in any format that you require. The **Broadcaster** theme for Newscoop (<https://github.com/newscoop/theme-Broadcaster>) integrates these widgets with ready-to-use styles.
Instead, your public-facing web server can retrieve the schedule information from the LibreTime API. It can be presented using Javascript widgets and styled with CSS, in any format that you require.
There are two kinds of information that can be retrieved remotely from the LibreTime API without authentication; the metadata for the current show plus the following show (live-info), or the schedule for the current week and the week ahead (week-info). The week-info metadata includes show names, times, and individual show URLs on your public website. That way, the audience for your station can click through from the schedule information to find out more about a particular show, or download a previous show recording that you might have made available.
@ -179,8 +179,7 @@ If you see the message *You are not allowed to access this resource* when attemp
![](img/Screenshot497-System_preferences_240.png)
Caching schedule information
----------------------------
### Caching schedule information
If the LibreTime server is behind a firewall, or you want to protect the LibreTime server from large numbers of schedule requests, you may wish to cache the schedule information on a public-facing or intermediate server. You can then create a firewall rule that only allows the schedule server to connect to the LibreTime server, in addition to any remote users of the LibreTime web interface.
@ -271,8 +270,7 @@ containing the line:
The schedule server will now be serving the same show information as the LibreTime server, with a cache lifetime of one minute. You can adjust the cache lifetime by altering the frequency of the cron job that polls the LibreTime server.
Pushing schedule information via FTP or SSH
-------------------------------------------
### Pushing schedule information via FTP or SSH
If there is no inbound access to the LibreTime server at all, an FTP script can be used to push cached schedule data from LibreTime to an external web server. The standard ftp command should be available on the LibreTime server and the external web server should have a suitably restricted FTP account set up. After following steps 1 and 2 above to export schedule data to a pair of temporary files on the LibreTime server, create a new script on the LibreTime server to automatically make the upload:

View File

@ -1,43 +0,0 @@
---
layout: docs
title: Promoting Your Station
---
Promoting Your Station
----------------------
If you have an Icecast server, you can put a link to the Icecast status page (by default at port 8000) on your station's homepage,
to provide an overview of available streams. See the chapter *Interface customization* for tips on theming the
Icecast status page. You can also use Now Playing widgets (see the chapter *Exporting the schedule*) or HTML5 stream players (see the chapter *Stream player for your website*) to help grow your audience.
On an Icecast server, you can uncomment the `<directory>` section in the _/etc/icecast2/icecast.xml_ file to have
your station automatically listed on the Icecast directory website <http://dir.xiph.org> which could help you pick
up more listeners.
<!-- Uncomment this if you want directory listings -->
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>
The Indymedia stream directory at <http://radio.indymedia.org/en/yp> links to grassroots independent radio projects around the world. You can add your station to their list with an additional *<directory>* section, as follows:
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://radio.indymedia.org/cgi-bin/yp-cgi</yp-url>
</directory>
Another stream directory service is provided by the Liquidsoap Flows! site <http://flows.liquidsoap.fm/>. The following section can be added to the file */usr/lib/airtime/pypo/bin/liquidsoap\_scripts/ls\_script.liq* after *add\_skip\_command(s)* on line 174, for a stream named '*ourstation*':
ourstation = register_flow(
radio="Rock 'n Roll Radio",
website="http://radio.example.com/",
description="Canada's most rockin' radio!",
genre="Rock",
user="",
password="",
streams=[("ogg/128k","http://streaming.example.com/libretime_128")],
ourstation)
For the time being, a stream can be registered on the Liquidsoap Flows! site with any username and password. Authenticated services may be offered in future.

View File

@ -11,8 +11,9 @@ these are less tested. Firewall and static IP address configuration will need to
## Minimum System Requirements
| On-Premises Install (FM + Internet Radio) | Cloud Install (Internet Radio Only) |
| On-Premises Install | Cloud Install |
|---------------------|---------------|
| (FM + Internet Radio) | (Internet Radio Only) |
| 1 Ghz Processor| 1vCPU |
| 2 GB RAM | 2 GB RAM |
| Wired ethernet connection, static IP address | 2 TB of data transfer/month |
@ -57,7 +58,7 @@ sudo ufw allow 80/tcp
sudo ufw allow 8000/tcp
```
Unblock ports 8001 and 8002 if you plan on broadcasting live with Libretime.
Unblock ports 8001 and 8002 if you plan to use LibreTime's Icecast server to broadcast livestreams without an external Icecast server acting as a repeater.
```
sudo ufw enable 8001/tcp

View File

@ -1,98 +0,0 @@
// https://github.com/ghiculescu/jekyll-table-of-contents
(function($){
$.fn.toc = function(options) {
var defaults = {
noBackToTopLinks: false,
title: '<i>Jump to...</i>',
minimumHeaders: 3,
headers: 'h1, h2, h3, h4, h5, h6',
listType: 'ol', // values: [ol|ul]
showEffect: 'show', // values: [show|slideDown|fadeIn|none]
showSpeed: 'slow', // set to 0 to deactivate effect
classes: { list: '',
item: ''
}
},
settings = $.extend(defaults, options);
function fixedEncodeURIComponent (str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
function createLink (header) {
var innerText = (header.textContent === undefined) ? header.innerText : header.textContent;
return "<a href='#" + fixedEncodeURIComponent(header.id) + "'>" + innerText + "</a>";
}
var headers = $(settings.headers).filter(function() {
// get all headers with an ID
var previousSiblingName = $(this).prev().attr( "name" );
if (!this.id && previousSiblingName) {
this.id = $(this).attr( "id", previousSiblingName.replace(/\./g, "-") );
}
return this.id;
}), output = $(this);
if (!headers.length || headers.length < settings.minimumHeaders || !output.length) {
$(this).hide();
return;
}
if (0 === settings.showSpeed) {
settings.showEffect = 'none';
}
var render = {
show: function() { output.hide().html(html).show(settings.showSpeed); },
slideDown: function() { output.hide().html(html).slideDown(settings.showSpeed); },
fadeIn: function() { output.hide().html(html).fadeIn(settings.showSpeed); },
none: function() { output.html(html); }
};
var get_level = function(ele) { return parseInt(ele.nodeName.replace("H", ""), 10); };
var highest_level = headers.map(function(_, ele) { return get_level(ele); }).get().sort()[0];
var return_to_top = '<i class="icon-arrow-up back-to-top"> </i>';
var level = get_level(headers[0]),
this_level,
html = settings.title + " <" +settings.listType + " class=\"" + settings.classes.list +"\">";
headers.on('click', function() {
if (!settings.noBackToTopLinks) {
window.location.hash = this.id;
}
})
.addClass('clickable-header')
.each(function(_, header) {
this_level = get_level(header);
if (!settings.noBackToTopLinks && this_level === highest_level) {
$(header).addClass('top-level-header').after(return_to_top);
}
if (this_level === level) // same level as before; same indenting
html += "<li class=\"" + settings.classes.item + "\">" + createLink(header);
else if (this_level <= level){ // higher level than before; end parent ol
for(var i = this_level; i < level; i++) {
html += "</li></"+settings.listType+">"
}
html += "<li class=\"" + settings.classes.item + "\">" + createLink(header);
}
else if (this_level > level) { // lower level than before; expand the previous to contain a ol
for(i = this_level; i > level; i--) {
html += "<" + settings.listType + " class=\"" + settings.classes.list +"\">" +
"<li class=\"" + settings.classes.item + "\">"
}
html += createLink(header);
}
level = this_level; // update for the next one
});
html += "</"+settings.listType+">";
if (!settings.noBackToTopLinks) {
$(document).on('click', '.back-to-top', function() {
$(window).scrollTop(0);
window.location.hash = '';
});
}
render[settings.showEffect]();
};
})(jQuery);

View File

@ -196,17 +196,14 @@ Any connection problems between Liquidsoap and Icecast or SHOUTcast are shown on
On the **Settings** menu, the **Status** page provides an overview of the health and resource usage of the various
services that make up a LibreTime system. If all is well, you will only see green check mark icons in the
**Status** column. This page also shows how much **Disk Space** you have used on the disk partition containing
the main Import folder, as well as any disks or partitions with watched folders.
**Status** column. This page also shows how much **Disk Space** you have used on the disk partition containing the media storage folder.
![](img/Screenshot521-System_status_240.png)
If any of the check mark icons in the **Status** column have changed to a red warning sign, contact your system
administrator for assistance. (The chapter [Troubleshooting](troubleshooting) contains some tips). LibreTime will
do its best to restart any failing services, but sometimes manual intervention may be required; for example, in
the case of hardware failure.
do its best to restart any failing services, but sometimes manual intervention may be required; for example, in the case of hardware failure.
If you have run out of storage space, a LibreTime user with *admin* privileges could log in and delete media files
that are no longer required from the **Library**. Alternatively, you could move some files to a watched folder on
another disk, or ask your system administrator to install additional storage capacity.
that are no longer required from the **Library**. Alternatively, you could ask your system administrator to install additional storage capacity.

View File

@ -4,6 +4,8 @@ title: Troubleshooting
---
## Restarting services
LibreTime is effectively a web site running on a LAPP stack, so individual components of the system can be started, stopped, restarted or checked in the server console using the **systemctl** command:
sudo systemctl start|stop|restart|status libretime-liquidsoap
@ -17,11 +19,11 @@ For example, to restart the Airtime playout engine, you could enter the command:
sudo systemctl restart libretime-playout
# Log files {#logs}
## Log files {#logs}
Airtime stores log files under the directory path */var/log/airtime/* which can be useful for diagnosing the cause of any problems. Copies of these log files may be requested by LibreTime developers while they are providing technical support for your Airtime deployment.
# Test tones {#tones}
## Test tones {#tones}
If you need to test your computer's soundcard, you can use `speaker-test`, a tone generator for ALSA.
This does not come installed with LibreTime but can be installed with `sudo apt install speaker-test`.
@ -51,7 +53,7 @@ Where:
-h show help menu
```
# RabbitMQ hostname changes
## RabbitMQ hostname changes
If the Airtime logs indicate failures to connect to the RabbitMQ server, such as:
```
@ -85,7 +87,7 @@ rabbitmqctl set_permissions -p /airtime airtime
 "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor"
```
# Uninstall LibreTime {#uninstall}
## Uninstall LibreTime {#uninstall}
Hopefully it wasn't something that we did, but if you need to uninstall LibreTime for
any reason, cd to the directory of the installer and run

View File

@ -21,6 +21,13 @@ intended compatibility requirements as per semver.
## Upgrading
> After your LibreTime server has been deployed for a few years, you may need to
upgrade the GNU/Linux distribution that it runs in order to maintain security
update support. If the upgrade does not go smoothly, it may cause significant
downtime, so you should always have a fallback system available during the
upgrade to ensure broadcast continuity.
Before upgrading a production LibreTime server, you should back up both the PostgreSQL
database and the storage server used by LibreTime. This is especially important if you have not already
set up a regular back up routine. This extra back up is a safety measure in case of accidental data loss
@ -41,13 +48,4 @@ In Airtime 1.9.0 onwards, the concept of *linked files* was replaced with the
concept of *watched folders*. If you are upgrading from a version of Airtime
earlier than 1.9.0 and you have previously linked files, the folders they are
in will not be watched until you add them to your watched folder list. See
[Media Folders](folders) for more details.
Upgrading the server distribution
---------------------------------
After your LibreTime server has been deployed for a few years, you may need to
upgrade the GNU/Linux distribution that it runs in order to maintain security
update support. If the upgrade does not go smoothly, it may cause significant
downtime, so you should always have a fallback system available during the
upgrade to ensure broadcast continuity.
[Media Folders](folders) for more details.

View File

@ -1,5 +1,5 @@
---
layout: page
layout: docs
title: Using Vagrant and Virtualbox for developing LibreTime
---