docs: update structure and create links between pages (#1611)
* docs: rework files structure * rewrite documentation entrypoint * update category files and use yml * add manuals entry page * update admin-manual titles and page order * create releases sections * move ssl configuration to reverse proxy * docs: update website vars and links * update release note codeblock syntax key * resurect troubleshooting guide * Update freeipa custom auth documentation * add notice about the state of the documentation * update the backup documentation * tmp: allow to deploy the website for preview * Don't use require.resolve for plugins * Update the main page link dest * update development environment title * rewrite the install/upgrade/migrate as guides * update website docs sections links * Fix urls * move release note to documentation * move home links to vars files * tmp: update deploy url * add react to tsconfig to handle jsx linting * fix: replace absolute url to relative path to files * tmp: allow CI Website dpeloy on working branch * Update release note title * use default syntax highlighting theme * update the troubleshooting guide * Wording * use CodeBlock components * Better prose * remove api_client config section * fix prose errors * update import prefix for vars file * reroder docs manuals links * use sentence capitalization for page titles * Wording * missing word * Update note about syslog log file * wording
|
@ -2,7 +2,7 @@ name: Website
|
|||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
branches: [main, docs_update]
|
||||
paths:
|
||||
- .github/workflows/website.yml
|
||||
- website/**
|
||||
|
@ -60,7 +60,7 @@ jobs:
|
|||
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
if: ${{ github.ref == 'refs/heads/main' }}
|
||||
if: ${{ github.ref == 'refs/heads/docs_update' }}
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./website/build
|
||||
|
|
|
@ -5,3 +5,5 @@ Vocab = Docs
|
|||
|
||||
[*.md]
|
||||
BasedOnStyles = Vale, Google, Microsoft, LibreTime
|
||||
|
||||
Vale.Spelling = False
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
title: Welcome
|
||||
sidebar_position: 10
|
||||
---
|
||||
|
||||
Welcome to the **LibreTime documentation**, you should find everything you need to know about LibreTime.
|
||||
|
||||
:::caution
|
||||
|
||||
:construction: LibreTime is in being modernized and is finalizing the forking process. Be aware that breaking change may occur and that the documentation may not be up to date.
|
||||
|
||||
:::
|
||||
|
||||
## Getting started
|
||||
|
||||
**Are you new to LibreTime? This is the place to start!**
|
||||
|
||||
The documentation is divided into multiple parts:
|
||||
|
||||
- the [Administrator manual](./admin-manual) provide guides and references to setup and configure LibreTime.
|
||||
- the [User manual](./user-manual) provide guides and tutorials for managers, and content creators to use LibreTime.
|
||||
- the [Developer manual](./developer-manual) provide guides to integrate LibreTime, or improve and contribute to LibreTime.
|
||||
|
||||
## Getting help
|
||||
|
||||
Having trouble? We’d like to help!
|
||||
|
||||
- [:question: Try the Forum – it’s got answers to many common questions](https://discourse.libretime.org/).
|
||||
- [:bug: Report bugs with LibreTime in our ticket tracker.](https://github.com/libretime/libretime/issues)
|
|
@ -26,7 +26,7 @@ Any custom changes that you make to the administration interface should be backe
|
|||
|
||||
# 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.
|
||||
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're 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.
|
||||
|
||||
For example, you could change the `status.xsl` page:
|
||||
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
---
|
||||
title: Troubleshooting
|
||||
---
|
||||
|
||||
Is something not working for your LibreTime installation? Here's a quick guide to help you
|
||||
troubleshoot most issues you'll run into.
|
||||
|
||||
## 1. Let's check the basics
|
||||
|
||||
Is your server on? (We hate to ask.) Is it connected to the internet? Is it connected to your
|
||||
broadcast console or mixer if being used for soundcard output? If you're using a cloud host,
|
||||
does your cloud provider's status page indicate any system outages?
|
||||
|
||||
Once you know your physical (or virtual) system is functional, was a show scheduled for the
|
||||
current time with tracks or an autoplaylist scheduled?
|
||||
|
||||
## 2. Are all services working?
|
||||
|
||||
If you can log in to LibreTime, go to **Settings** > **Status** to see the service indicators.
|
||||
A fully working server should have green checkmarks next to all services.
|
||||
|
||||

|
||||
|
||||
If one of the services isn't working, text will display with a terminal command to restart the service
|
||||
or get status information for a particular service. For example (for Ubuntu 18.04), the following
|
||||
commands would restart or check the status of LibreTime's Liquidsoap instance, respectively.
|
||||
|
||||
```bash
|
||||
sudo systemctl restart libretime-liquidsoap
|
||||
sudo systemctl status libretime-liquidsoap
|
||||
```
|
||||
|
||||
If the service isn't wanting to restart, look at its status for clues as to why it stopped working.
|
||||
|
||||
> If you find yourself constantly needing to restart a service, there's a chance it was never set to autostart on system boot. Use `sudo systemctl enable servicename` to fix this problem.
|
||||
|
||||
## 3. Known problems
|
||||
|
||||
If you have one of these issues, please try to resolve it with the instructions below before moving on in the
|
||||
troubleshooting checklist.
|
||||
|
||||
- **Streaming player on Microsite and Listen player on Dashboard not working?** The problem could be caused by a bug in writing to the database during the setup wizard. This can be fixed by going to **Settings** -> **Stream Settings** and toggling the **Default Streaming** and **Custom/ 3rd Party Streaming** option, accepting the popup dialogues, and clicking **Save** at the top of the settings page.
|
||||
- **File not importing successfully?** LibreTime has been known to work with MP3 and WAV files, encoded using 41,100 Hz. Variable Bit Rate (VBR) files are currently hit or miss with the importer. Please convert your file to an MP3 or WAV at 41,100 Hz. and try uploading again.
|
||||
- **Podcast hosted by Anchor.fm not importing?** There is no known work-around at this time. Ask your producers to provide their show files manually or check with the show's distributer.
|
||||
- **Tracks won't publish?** We know the Publish screen is broken and we're working on it. A potential work-around is to use an external podcast host like [Anchor.fm](https://anchor.fm) or [Blubrry](https://blubrry.com/).
|
||||
- **Can't hear any sound coming from your soundcard (for analog audio output)?** If you are using ALSA as your audio driver, use `alsamixer` to see the current volume your system is set to. If still nothing, go to **Settings** > **Streams** and make sure **Hardware Audio Output** is checked. If you need to play a tone to help you troubleshoot, you can use `speaker-test` (does not come installed with LibreTime).
|
||||
|
||||
## 4. Read the docs
|
||||
|
||||
Our main documentation listing is [here](/docs) and can be searched [here](/search).
|
||||
|
||||
## 5. Reach out to the developers
|
||||
|
||||
LibreTime is still in active development, meaning bugs and issues are expected to pop up every so often.
|
||||
See if an issue is still open by looking at our [Issues page](https://github.com/LibreTime/libretime/issues).
|
||||
If you don't get the help you need, please [open an issue](https://github.com/LibreTime/libretime/issues/new/choose)
|
||||
so we can take a look at it.
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
title: Administrator manual
|
||||
---
|
||||
|
||||
Welcome to the **LibreTime administrator manual**, you should find guides and references to setup and configure LibreTime.
|
||||
|
||||
:::caution
|
||||
|
||||
This documentation assumes that you:
|
||||
|
||||
- have basic understanding of command line interfaces,
|
||||
- have a basic understanding of networking.
|
||||
|
||||
:::
|
||||
|
||||
:::tip
|
||||
|
||||
Before following any steps, be sure that your system is up-to-date.
|
||||
|
||||
:::
|
||||
|
||||
## Install and configure
|
||||
|
||||
- [:rocket: Install LibreTime](./setup/install.md)
|
||||
- [:arrow_up: Upgrade from a previous install](./setup/upgrade.md)
|
||||
- [:airplane_arriving: Migrate from Airtime](./setup/migrate-from-airtime.md)
|
||||
- [:gear: Configure your installation](./setup/configuration.md)
|
||||
- [:lock: Put your installation behind a reverse proxy](./setup/reverse-proxy.md)
|
||||
|
||||
## Advanced
|
||||
|
||||
- [:warning: Setup automated backups](./backup.md)
|
||||
- [:heavy_check_mark: Use a custom authentication system](./custom-authentication.md)
|
|
@ -0,0 +1,2 @@
|
|||
label: Admin manual
|
||||
position: 20
|
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
title: Backup
|
||||
sidebar_position: 10
|
||||
---
|
||||
|
||||
## Create a backup
|
||||
|
||||
This guide walk you though the steps required to create a full backup of your installation.
|
||||
|
||||
:::info
|
||||
|
||||
Remember to **automate** and **test** the backup process and to have it run regularly. Having an **automated** and **tested** restoring process is also recommended.
|
||||
|
||||
:::
|
||||
|
||||
:::caution
|
||||
|
||||
Feel free to pick the backup software of your choice, but know that rsync and similar tools are not backup tools. You could use [restic](https://restic.net/) or [borg](https://borgbackup.readthedocs.io/).
|
||||
|
||||
:::
|
||||
|
||||
### Backup the configuration
|
||||
|
||||
On common setups, you need to backup the entire `/etc/airtime` folder.
|
||||
|
||||
### Backup the database
|
||||
|
||||
You need to backup the PostgreSQL database, which holds the entire data of your installation.
|
||||
|
||||
Here is an example to dump your PostgreSQL database:
|
||||
|
||||
```bash
|
||||
sudo -u postgres pg_dump --file=libretime.sql libretime
|
||||
```
|
||||
|
||||
Please read the `pg_dump` usage for additional details.
|
||||
|
||||
### Backup the storage
|
||||
|
||||
You need to backup the entire file storage, which holds all the files of your installation.
|
||||
|
||||
The path to your storage was defined during the installation process.
|
||||
|
||||
## Restore a backup
|
||||
|
||||
### Restore the configuration
|
||||
|
||||
Copy the backed configuration files back to the configuration folder.
|
||||
|
||||
### Restore the database
|
||||
|
||||
:construction:
|
||||
|
||||
### Restore the storage
|
||||
|
||||
:construction:
|
|
@ -1,13 +1,16 @@
|
|||
---
|
||||
title: FreeIPA configuration
|
||||
title: Custom authentication
|
||||
sidebar_position: 40
|
||||
---
|
||||
|
||||
## Setup FreeIPA authentication
|
||||
|
||||
You can configure LibreTime to delegate all authentication to a FreeIPA server.
|
||||
|
||||
This allows you users to use their existing FreeIPA credentials. For this to
|
||||
work you need to configure Apache to use `mod_authnz_pam` and `mod_intercept_form_submit`.
|
||||
|
||||
## Apache configuration
|
||||
### Apache configuration
|
||||
|
||||
After installing the needed modules you can set up Apache to intercept form logins and
|
||||
check them against pam.
|
||||
|
@ -37,7 +40,7 @@ check them against pam.
|
|||
</Location>
|
||||
```
|
||||
|
||||
## PAM configuration
|
||||
### PAM configuration
|
||||
|
||||
The above configuration expects a PAM configuration for the `http-libretime` service.
|
||||
|
||||
|
@ -48,7 +51,7 @@ auth required pam_sss.so
|
|||
account required pam_sss.so
|
||||
```
|
||||
|
||||
## LDAP configuration
|
||||
### LDAP configuration
|
||||
|
||||
LibreTime needs direct access to LDAP so it can fetch additional information. It does so with
|
||||
a [system account](https://www.freeipa.org/page/HowTo/LDAP#System_Accounts) that you need to
|
||||
|
@ -94,7 +97,7 @@ groupmap_admin = 'cn=admins,cn=groups,cn=accounts,dc=int,dc=example,dc=org'
|
|||
groupmap_superadmin = 'cn=superadmin,cn=groups,cn=accounts,dc=int,dc=example,dc=org'
|
||||
```
|
||||
|
||||
## Enable FreeIPA authentication
|
||||
### Enable FreeIPA authentication
|
||||
|
||||
After everything is set up properly you can enable FreeIPA auth in `airtime.conf`:
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Change Default Passwords
|
||||
sidebar_position: 3
|
||||
title: Change default passwords
|
||||
sidebar_position: 80
|
||||
---
|
||||
|
||||
## LibreTime
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Icecast Configuration
|
||||
title: Icecast configuration
|
||||
sidebar_position: 30
|
||||
---
|
||||
|
||||
## Background
|
||||
|
@ -20,7 +21,7 @@ Setting a higher bitrate for your output stream will only benefit your listeners
|
|||
|
||||
## 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:
|
||||
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're 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:
|
||||
|
||||

|
||||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Setting the Server Time
|
||||
sidebar_position: 2
|
||||
title: Setting the server time
|
||||
sidebar_position: 20
|
||||
---
|
||||
|
||||
Accurate time keeping on your server is vital for LibreTime performance. You can confirm that the date and time of your server are set correctly with the `date` command.
|
|
@ -0,0 +1,2 @@
|
|||
label: Setup
|
||||
position: 00
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Host configuration
|
||||
title: Configuration
|
||||
sidebar_position: 20
|
||||
---
|
||||
|
||||
The streaming host configuration for LibreTime is shown in the file `/etc/airtime/liquidsoap.cfg` which is automatically generated by the **Streams** page, found on the **System** menu of the LibreTime administration interface. For this reason, you would not normally edit the streaming configuration manually, as any changes are likely to be overwritten by the administration interface.
|
||||
|
@ -8,7 +9,7 @@ The streaming host configuration for LibreTime is shown in the file `/etc/airtim
|
|||
|
||||
Optionally, you may wish to edit the file `/etc/airtime/airtime.conf` to set the PostgreSQL database host, and the username and password to connect to the database with.
|
||||
|
||||
You can also set options for RabbitMQ messaging and the LibreTime server in this file, although you should not normally need to adjust the defaults unless you are running a large LibreTime system distributed across multiple servers. To run the LibreTime server in demo mode, which changes the greeting on the login page and prevents user accounts from being created or modified, set the value of _demo_ to 1.
|
||||
You can also set options for RabbitMQ messaging and the LibreTime server in this file, although you shouldn't normally need to adjust the defaults unless you are running a large LibreTime system distributed across multiple servers. To run the LibreTime server in demo mode, which changes the greeting on the login page and prevents user accounts from being created or modified, set the value of _demo_ to 1.
|
||||
|
||||
```ini title="/etc/airtime/airtime.conf"
|
||||
[database]
|
||||
|
@ -51,26 +52,9 @@ sudo systemctl restart libretime-celery
|
|||
sudo systemctl restart libretime-analyzer
|
||||
```
|
||||
|
||||
## API client configuration
|
||||
|
||||
The LibreTime API enables many types of information about the broadcast schedule and configuration to be retrieved from the LibreTime server. Other than the live-info and week-info data fetched by website widgets (see the chapter _Exporting the schedule_), all API requests must be authenticated using the secret API key stored in the file `/etc/airtime/api_client.cfg` on the LibreTime server. This key is autogenerated during LibreTime installation and should be unique for each server.
|
||||
|
||||
If you intend to use the LibreTime API across a public network, for security reasons it is highly recommended that all API requests are sent over encrypted https: and that the web server is configured to accept requests to the api/ directory from specific host names or IP addresses only.
|
||||
|
||||
If you have changed the _base_url_, _base_port_ or _base_dir_ setting in `/etc/airtime/airtime.conf` from the defaults, you will probably also have to update the _Hostname_ settings in the file `/etc/airtime/api_client.cfg` accordingly.
|
||||
|
||||
```ini
|
||||
bin_dir = /usr/lib/airtime/api_clients
|
||||
api_key = 'XXXXXXXXXXXXXXXXXXXX'
|
||||
api_base = api
|
||||
host = libretime.example.com
|
||||
base_port = 80
|
||||
base_dir = /
|
||||
```
|
||||
|
||||
## Apache max file size configuration
|
||||
|
||||
By default, the maximum upload file size is 40 MB, which may not be large enough for some stations, especially if they are uploading prerecorded shows. The setting for this is located in `/etc/apache2/sites-available/airtime.config`. Search for and update the following in megabytes:
|
||||
By default, the maximum upload file size is 40 MB, which may not be large enough for some stations, especially if they're uploading prerecorded shows. The setting for this is located in `/etc/apache2/sites-available/airtime.config`. Search for and update the following in megabytes:
|
||||
|
||||
```ini
|
||||
; Maximum allowed size for uploaded files.
|
||||
|
@ -80,7 +64,7 @@ upload_max_filesize = 40M
|
|||
post_max_size = 40M
|
||||
```
|
||||
|
||||
For quick reference, 1024 MB = 1 GB and 2048 MB = 2 GB, but most will be okay with rounding to the nearest thousand. After updating the config file, restart Apache with `sudo systemctl restart apache2`.
|
||||
For quick reference, 1024 MB = 1 GB and 2048 MB = 2 GB, but most should be okay with rounding to the nearest thousand. After updating the config file, restart Apache with `sudo systemctl restart apache2`.
|
||||
|
||||
## Playout settings
|
||||
|
||||
|
@ -168,7 +152,7 @@ If the Airtime logs indicate failures to connect to the RabbitMQ server, such as
|
|||
2013-10-31 08:21:11,255 ERROR - \[pypomessagehandler.py : main() : line 99\] - Error connecting to RabbitMQ Server. Trying again in few seconds - See more at: https://forum.sourcefabric.org/discussion/16050/#sthash.W8OJrNFm.dpuf
|
||||
```
|
||||
|
||||
but the RabbitMQ server is running normally, this error might be due to a change in the server's hostname since LibreTime installation. Directory names under `/var/lib/rabbitmq/mnesia/` indicate that RabbitMQ's database files are organised according to the hostname of the server (ex. `rabbit@airtime`) where the hostname is `airtime.example.com`. If the hostname has changed, it may be necessary to reconfigure RabbitMQ manually, as follows:
|
||||
but the RabbitMQ server is running normally, this error might be due to a change in the server's hostname since LibreTime installation. Directory names under `/var/lib/rabbitmq/mnesia/` indicate that RabbitMQ's database files are organized according to the hostname of the server (ex. `rabbit@airtime`) where the hostname is `airtime.example.com`. If the hostname has changed, it may be necessary to reconfigure RabbitMQ manually, as follows:
|
||||
|
||||
1. Delete the files in `/var/lib/rabbitmq/mnesia/`
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
---
|
||||
title: Install
|
||||
sidebar_position: 10
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import CodeBlock from '@theme/CodeBlock';
|
||||
import vars from '@site/vars';
|
||||
|
||||
This guide walk you though the steps required to install LibreTime on your system.
|
||||
|
||||
:::tip
|
||||
|
||||
If you are coming from **Airtime**, please follow the [Airtime migration guide](./migrate-from-airtime.md).
|
||||
|
||||
:::
|
||||
|
||||
You can install LibreTime using the one of the following methods:
|
||||
|
||||
- [:rocket: Using the installer](#using-the-installer)
|
||||
- :construction: Using Ansible
|
||||
|
||||
#### Minimum system requirements
|
||||
|
||||
- One of the following Linux distributions
|
||||
- Ubuntu [current LTS](https://wiki.ubuntu.com/Releases)
|
||||
- Debian [current stable](https://www.debian.org/releases/)
|
||||
- 1 Ghz Processor
|
||||
- 2 GB RAM recommended (1 GB required)
|
||||
- A static external IP address ([How to setup a static ip using Netplan](../tutorials/setup-a-static-ip-using-netplan.md))
|
||||
|
||||
## Using the installer
|
||||
|
||||
The installer is shipped in the released tarballs or directly in the project repository.
|
||||
|
||||
### Download
|
||||
|
||||
You can either download the latest released tarball or clone the repository.
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Release tarball" value="tarball" default>
|
||||
|
||||
Download the [latest released](https://github.com/libretime/libretime/releases) tarball from Github.
|
||||
|
||||
Or directly from the command-line:
|
||||
|
||||
<CodeBlock language="bash">
|
||||
wget https://github.com/libretime/libretime/releases/download/{vars.version}/libretime-{vars.version}.tar.gz
|
||||
</CodeBlock>
|
||||
|
||||
And extract the tarball:
|
||||
|
||||
<CodeBlock language="bash">
|
||||
tar -xvf libretime-{vars.version}.tar.gz && cd libretime
|
||||
</CodeBlock>
|
||||
|
||||
</TabItem>
|
||||
<TabItem label="Git repository" value="git">
|
||||
|
||||
Clone the project repository:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/libretime/libretime
|
||||
cd libretime
|
||||
```
|
||||
|
||||
And checkout the latest version:
|
||||
|
||||
<CodeBlock language="bash">
|
||||
git checkout {vars.version}
|
||||
</CodeBlock>
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Run the installer
|
||||
|
||||
Install LibreTime with the recommended options:
|
||||
|
||||
```bash
|
||||
sudo ./install -fiap
|
||||
```
|
||||
|
||||
Additional options can be listed with the following command:
|
||||
|
||||
```bash
|
||||
./install --help
|
||||
```
|
||||
|
||||
Once the installation is completed, open [http://localhost:80](http://localhost:80) to complete the [setup wizard](#setup-wizard).
|
||||
|
||||
:::note
|
||||
|
||||
- If installed on a remote device, make sure to replace `localhost` with your server's remote address.
|
||||
- If installed with a custom port, make sure to replace `80` with the custom port.
|
||||
|
||||
:::
|
||||
|
||||
:::warning
|
||||
|
||||
Make sure that you have configured a **firewall** and it's not blocking connection to the desired ports.
|
||||
|
||||
- [How to setup a firewall using UFW](../tutorials/setup-a-firewall-using-ufw.md)
|
||||
|
||||
LibreTime requires the following ports to be open:
|
||||
|
||||
- `80` for the web interface,
|
||||
- `8000` for the Icecast streams,
|
||||
- `8001` and `8002` for the live stream input endpoint.
|
||||
|
||||
Consider putting your installation behind a [reverse proxy](./reverse-proxy.md) to increase the security.
|
||||
|
||||
:::
|
||||
|
||||
#### Using hardware audio output
|
||||
|
||||
If you plan to output analog audio directly to a mixing console or transmitter, the user running LibreTime (by default `www-data`) needs to be added to the `audio` user group using the command below:
|
||||
|
||||
```bash
|
||||
sudo adduser www-data audio
|
||||
```
|
||||
|
||||
### Setup wizard
|
||||
|
||||
The setup wizard walk you through the rest of the installation process.
|
||||
|
||||
#### Changing default passwords
|
||||
|
||||
It's recommended that you change the passwords prompted in the setup wizard. Be sure to apply the changes on the server before going to any next step.
|
||||
|
||||
You can change the default PostgreSQL user password using:
|
||||
|
||||
```bash
|
||||
sudo -u postgres psql -c "ALTER USER airtime PASSWORD 'new-password';"
|
||||
```
|
||||
|
||||
You can change the default RabbitMQ user password using:
|
||||
|
||||
```bash
|
||||
sudo rabbitmqctl change_password "airtime" "new-password"
|
||||
```
|
||||
|
||||
Once completed, it's recommended to [install a reverse proxy](./reverse-proxy.md) to setup SSL termination and secure your installation.
|
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
title: Migrate from Airtime
|
||||
sidebar_position: 90
|
||||
---
|
||||
|
||||
This guide walk you though the steps required to migrate your data from Airtime to LibreTime.
|
||||
|
||||
:::info
|
||||
|
||||
Airtime **linked files** and **watched folders** features are either deprecated or not working in LibreTime.
|
||||
|
||||
:::
|
||||
|
||||
LibreTime dropped support for Ubuntu 16.04, which is the last supported version of Ubuntu that Airtime supports.
|
||||
|
||||
## Make a backup
|
||||
|
||||
<!-- TODO: Airtime backup process might be different from the LibreTime one, we might need to write a dedicated backup guide here. -->
|
||||
|
||||
Follow [the backup guide](../backup.md) to make a backup of your current Airtime installation.
|
||||
|
||||
## Install
|
||||
|
||||
Install LibreTime on a new system by following the [install guide](./install.md), and **don't run the setup wizard**.
|
||||
|
||||
## Restore the backup
|
||||
|
||||
Restore [the Airtime backup](../backup.md#restore) on the newly installed LibreTime server.
|
||||
|
||||
You have to restore the **database**, the **files storage** and the **configuration files**.
|
||||
|
||||
## Update the configuration files
|
||||
|
||||
Update the configuration file to match the new configuration schema and update any changed values. See the [configuration](./configuration.md) documentation for more details.
|
||||
|
||||
Edit the Icecast password in `/etc/icecast2/icecast.xml` to reflect the password used in Airtime.
|
||||
|
||||
## Finish
|
||||
|
||||
Restart the LibreTime services and navigate to the LibreTime web-page.
|
|
@ -1,29 +1,29 @@
|
|||
---
|
||||
title: Reverse Proxy
|
||||
sidebar_position: 5
|
||||
title: Reverse proxy
|
||||
sidebar_position: 30
|
||||
---
|
||||
|
||||
In some deployments, the LibreTime server is deployed behind a reverse proxy,
|
||||
for example in containerization use-cases such as Docker and LXC. LibreTime
|
||||
makes extensive use of its API for some site functionality, which causes
|
||||
makes extensive use of its API for some site features, which causes
|
||||
[Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
|
||||
to occur. By default, CORS requests are blocked by your browser and the origins
|
||||
need to be added to the **Allowed CORS URLs** block in
|
||||
[**General Settings**](/docs/guides/settings). These origins should include any
|
||||
domains that will be used externally to connect to your reverse proxy that you
|
||||
[**General Settings**](../../user-manual/settings.md). These origins should include any
|
||||
domains that are used externally to connect to your reverse proxy that you
|
||||
want handled by LibreTime. These URLS can also be set during the first run configuration
|
||||
that is displayed when you first install LibreTime
|
||||
that's displayed when you first install LibreTime
|
||||
|
||||
### Reverse proxy basics
|
||||
|
||||
A reverse proxy allows the LibreTime server to not be connected to the open internet. In
|
||||
this configuration, it is rather behind another server that proxies traffic to it from
|
||||
this configuration, it's rather behind another server that proxies traffic to it from
|
||||
users. This provides some advantages in the containerization space, as this means that
|
||||
the containers can be on their own internal network, protected from outside access.
|
||||
|
||||
A reverse proxy also allows SSL to be terminated in a single location for multiple sites.
|
||||
This means that all your traffic to the proxy from clients is encrypted, but the reverse
|
||||
proxy's traffic to the containers on the internal network is not. All the SSL certificates
|
||||
proxy's traffic to the containers on the internal network isn't. All the SSL certificates
|
||||
live on the reverse proxy and can be renewed there instead of on the individual
|
||||
containers.
|
||||
|
||||
|
@ -32,14 +32,14 @@ containers.
|
|||
For SSL redirection to work, you need two domains: one for LibreTime and one for Icecast.
|
||||
Here, these will be `libretime.example.com` and `icecast.example.com`.
|
||||
|
||||
You will also require two VMs, servers or containers. Alternatively the reverse proxy can
|
||||
You require two VMs, servers or containers. Alternatively the reverse proxy can
|
||||
be located on the server, proxying connections to containers also on the host. Setting up
|
||||
a containerization environment is beyond the scope of this guide. It assumes that you have
|
||||
Nginx set up on `localhost` and LibreTime will be installed on `192.168.1.10`. You will need root
|
||||
access on both. `192.168.1.10` also needs to be able to be accessed from `localhost`
|
||||
(`ping 192.168.1.10` on `localhost`).
|
||||
|
||||
On `192.168.1.10`, install LibreTime as described in the [install guide](/docs/getting-started/install). Once it has installed, replace `<hostname>localhost</hostname>` in
|
||||
On `192.168.1.10`, install LibreTime as described in the [install guide](./install.md). Once it has installed, replace `<hostname>localhost</hostname>` in
|
||||
`/etc/icecast2/icecast.xml` with the following:
|
||||
|
||||
```xml
|
||||
|
@ -108,3 +108,18 @@ needs to be set to true:
|
|||
...
|
||||
force_ssl = true
|
||||
```
|
||||
|
||||
## SSL Configuration
|
||||
|
||||
To increase the security of your server, you can enable encrypted access to the LibreTime administration interface, and direct your users towards this more secure login page. The main advantage of using this encryption is that your remote users' login names and passwords are not sent in plain text across the public Internet or untrusted local networks, such as shared Wi-Fi access points.
|
||||
|
||||
## Deploying a certificate with Certbot
|
||||
|
||||
One of the fastest, easiest, and cheapest ways to get an SSL certificate is through [Certbot](https://certbot.eff.org/), as created by the
|
||||
Electronic Frontier Foundation. To use Certbot, your LibreTime installation must be open to the internet on port 80.
|
||||
|
||||
Follow [Certbot's documentation](https://certbot.eff.org/instructions) for your OS and webserver to install an SSL certificate. You'll need to renew the certificate every 90 days to keep your installation secure.
|
||||
|
||||
## Mixed encrypted and unencrypted content
|
||||
|
||||
Whether your certificate is self-signed or not, you will see browser security warnings whenever a https:// page is delivering unencrypted content, such as the stream from an Icecast server. In Firefox, an exclamation mark icon is displayed in the address bar of the **Listen** pop-up.
|
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
title: Upgrade
|
||||
sidebar_position: 80
|
||||
---
|
||||
|
||||
This guide walk you though the steps required to upgrade LibreTime.
|
||||
|
||||
:::tip
|
||||
|
||||
You should always have a fallback system available during the upgrade to ensure **broadcast continuity**.
|
||||
|
||||
:::
|
||||
|
||||
#### Make a backup
|
||||
|
||||
Follow [the backup guide](../backup.md) to make an extra backup of your installation in case of accidental data loss during
|
||||
the upgrade process.
|
||||
|
||||
#### Install the new version
|
||||
|
||||
Follow [the install guide](./install.md) to download and install the new version.
|
||||
|
||||
#### Verify
|
||||
|
||||
Verify that all the services are still running after the install process:
|
||||
|
||||
```bash
|
||||
sudo systemctl status \
|
||||
libretime-analyzer \
|
||||
libretime-api \
|
||||
libretime-celery \
|
||||
libretime-liquidsoap \
|
||||
libretime-playout \
|
||||
apache2
|
||||
```
|
||||
|
||||
Verify for any error in the logs after the install process:
|
||||
|
||||
```bash
|
||||
sudo tail -n 20 /var/log/libretime/**/*.log
|
||||
```
|
||||
|
||||
Log into the interface and verify for any error after the install process.
|
||||
|
||||
If you encounter issues with the new interface, you may need to clear your web browser's cache.
|
After Width: | Height: | Size: 142 KiB |
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
title: Troubleshooting
|
||||
sidebar_position: 90
|
||||
---
|
||||
|
||||
This guide walk you though the steps required to troubleshoot LibreTime.
|
||||
|
||||
## Services status
|
||||
|
||||
When facing a problem with LibreTime the first reflex is to verify whether the services are running.
|
||||
|
||||
In the web interface, go to **Settings** > **Status** to see the state of the services.
|
||||
|
||||

|
||||
|
||||
If a service isn't running, you should search for details using the tool running those services.
|
||||
On a common setup, you should use the systemd service status:
|
||||
|
||||
```bash
|
||||
sudo systemctl status libretime-celery
|
||||
```
|
||||
|
||||
:::note
|
||||
|
||||
Be sure to replace the service name with the problematic one.
|
||||
|
||||
:::
|
||||
|
||||
## Logs
|
||||
|
||||
The next place to search for details on potential errors are the log files.
|
||||
On a common setup, you should search for the following files:
|
||||
|
||||
- `/var/log/libretime/analyzer.log` contains logs from the analyzer,
|
||||
- `/var/log/libretime/api.log` contains logs from the api,
|
||||
- `/var/log/libretime/legacy.log` contains logs from the legacy app,
|
||||
- `/var/log/libretime/liquidsoap.log` contains logs from liquidsoap,
|
||||
- `/var/log/libretime/playout.log` contains logs from playout.
|
||||
|
||||
For some LibreTime services, you can set a higher log level using the `LIBRETIME_LOG_LEVEL` environment variable, or by running the service by hand and using a command line flag:
|
||||
|
||||
```bash
|
||||
sudo -u www-data libretime-analyzer --config /etc/airtime/airtime.conf --log-level debug
|
||||
```
|
||||
|
||||
- `/var/log/syslog` contains most of the system logs combined. This log file may contain information that the application logger wasn't able to log, such as early startup errors. You can get the LibreTime logs using:
|
||||
|
||||
```bash
|
||||
sudo tail -f "/var/log/syslog" | grep "libretime-"
|
||||
```
|
||||
|
||||
- `/var/log/apache2/error.log` contains logs from the web server.
|
|
@ -0,0 +1,4 @@
|
|||
# Always add "How to" at the beginning of your tutorials title
|
||||
#
|
||||
label: Tutorials
|
||||
position: 99
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
title: How to setup a firewall using UFW
|
||||
---
|
||||
|
||||
This tutorials will walk you though the steps required to setup a firewall using [UFW](https://doc.ubuntu-fr.org/ufw).
|
||||
|
||||
## 1. Install and enable `UFW`
|
||||
|
||||
First you need to make sure UFW is installed and enabled:
|
||||
|
||||
```bash
|
||||
sudo apt install ufw
|
||||
sudo ufw enable
|
||||
```
|
||||
|
||||
## 2. Configure allowed ports
|
||||
|
||||
Next, you need to configure the firewall allowed ports:
|
||||
|
||||
```bash
|
||||
sudo ufw allow 22,80,8000/tcp
|
||||
```
|
||||
|
||||
If you plan to use the live stream input endpoint, be sure to open the `8001` and `8002` ports:
|
||||
|
||||
```bash
|
||||
sudo ufw allow 8001,8002/tcp
|
||||
```
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
title: How to setup a static ip using Netplan
|
||||
---
|
||||
|
||||
This tutorials will walk you though the steps required to configure a server static IP address by modifying the [Netplan](https://netplan.io/reference/) configuration.
|
||||
|
||||
## 1. Edit the configuration
|
||||
|
||||
First find the right Netplan configuration filename, and edit the file:
|
||||
|
||||
```bash
|
||||
cd /etc/netplan && ls # find the netplan filename
|
||||
sudo nano ##-network-manager-all.yaml
|
||||
```
|
||||
|
||||
If the Netplan configuration is empty, fill in the file with the example below. Otherwise,
|
||||
input the IP address reserved for the server in `xxx.xxx.xxx.xxx/yy` format, the gateway (the IP address
|
||||
of your router), and your DNS server's address.
|
||||
|
||||
```yaml
|
||||
network:
|
||||
version: 2
|
||||
renderer: networkd
|
||||
ethernets:
|
||||
enp3s0:
|
||||
addresses: [192.168.88.8/24]
|
||||
gateway4: 192.168.88.1
|
||||
nameservers:
|
||||
addresses: [192.168.88.1]
|
||||
```
|
||||
|
||||
:::tip
|
||||
|
||||
If you don't have your own DNS server you can use the router's address in most cases or a public DNS server like Google `8.8.8.8` or Cloudflare `1.1.1.1`.
|
||||
|
||||
:::
|
||||
|
||||
## 2. Apply the configuration
|
||||
|
||||
After the Netplan file has been saved, apply the changes by running:
|
||||
|
||||
```bash
|
||||
sudo netplan apply
|
||||
```
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"label": "Appendix",
|
||||
"position": 7
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
label: Appendix
|
||||
position: 70
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
title: Developer manual
|
||||
---
|
||||
|
||||
Welcome to the **LibreTime developer manual**, you should find guides to integrate LibreTime and tools to improve and contribute to LibreTime.
|
||||
|
||||
## Integrate LibreTime
|
||||
|
||||
- :construction: Work in progress
|
||||
|
||||
## Improve and contribute to LibreTime
|
||||
|
||||
- :construction: Work in progress
|
|
@ -0,0 +1,2 @@
|
|||
label: Developer manual
|
||||
position: 40
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Local development
|
||||
title: Development environment
|
||||
---
|
||||
|
||||
## Vagrant
|
||||
|
@ -112,7 +112,7 @@ multipass shell ltTEST
|
|||
```
|
||||
|
||||
Multipass isn't currently able to do an automated install from the cloud-init script.
|
||||
After you enter the shell for the first time, you will still need to [run the LibreTime installer](/docs/getting-started/install).
|
||||
After you enter the shell for the first time, you will still need to [run the LibreTime installer](../admin-manual/setup/install.md).
|
||||
|
||||
The IP address of your new VM can be found by running `multipass list`. Copy and paste it into your web browser to access the LibreTime interface and complete the setup wizard.
|
||||
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
|
@ -24,7 +24,7 @@ The streaming player widget inserts your LibreTime stream into your website. One
|
|||
|
||||

|
||||
|
||||
From **Widgets** > **Player**, enter a title for your streaming widget and select what stream you'd like to use. All selectible streams must first be configured in **Settings** > **Streams** (see [Settings](/docs/guides/settings)). **Auto detect** should be fine for most.
|
||||
From **Widgets** > **Player**, enter a title for your streaming widget and select what stream you'd like to use. All selectible streams must first be configured in **Settings** > **Streams** (see [Settings](../user-manual/settings.md)). **Auto detect** should be fine for most.
|
||||
|
||||
## Show schedule widget
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"label": "Getting started",
|
||||
"position": 2
|
||||
}
|
|
@ -1,117 +0,0 @@
|
|||
---
|
||||
title: Installation
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
## Minimum system requirements
|
||||
|
||||
- One of the following Linux distributions
|
||||
- Ubuntu [current LTS](https://wiki.ubuntu.com/Releases)
|
||||
- Debian [current stable](https://www.debian.org/releases/)
|
||||
- 1 Ghz Processor
|
||||
- 2 GB RAM recommended (1 GB required)
|
||||
- A static IP address for your server
|
||||
|
||||
## Preparing the server
|
||||
|
||||
Configure the server to have a static IP address by modifying the Netplan configuration.
|
||||
|
||||
```bash
|
||||
cd /etc/netplan && ls # find the netplan filename
|
||||
sudo nano ##-network-manager-all.yaml
|
||||
```
|
||||
|
||||
If the Netplan configuration is empty, fill in the file with the example below. Otherwise,
|
||||
input the IP address reserved for the server in `xxx.xxx.xxx.xxx/yy` format, the gateway (the IP address
|
||||
of your router), and your DNS server's address.
|
||||
|
||||
:::tip
|
||||
|
||||
Don't have a DNS server of your own? You can use a public DNS server like Google (`8.8.8.8`) or Cloudflare (`1.1.1.1`), or input your router's address in most cases.
|
||||
|
||||
:::
|
||||
|
||||
:::caution
|
||||
|
||||
Do not use tabs in YAML files. Use two spaces to indent instead.
|
||||
|
||||
:::
|
||||
|
||||
```yaml title="Netplan configuration on Ubuntu"
|
||||
network:
|
||||
version: 2
|
||||
renderer: networkd
|
||||
ethernets:
|
||||
enp3s0:
|
||||
addresses: [192.168.88.8/24]
|
||||
gateway4: 192.168.88.1
|
||||
nameservers:
|
||||
addresses: [192.168.88.1]
|
||||
```
|
||||
|
||||
After the netplan file has been saved, run `sudo netplan apply` to apply changes.
|
||||
|
||||
Next, configure Ubuntu's firewall by running:
|
||||
|
||||
```bash
|
||||
sudo ufw enable
|
||||
sudo ufw allow 22,80,8000/tcp
|
||||
```
|
||||
|
||||
:::info
|
||||
|
||||
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.
|
||||
|
||||
```bash
|
||||
sudo ufw allow 8001,8002/tcp
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Installing LibreTime
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Djo_55LgjXE" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
Installing LibreTime consists of running the following commands in the terminal:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/LibreTime/libretime.git
|
||||
cd libretime
|
||||
|
||||
sudo bash install -fiap
|
||||
```
|
||||
|
||||
After the install is completed, head to the IP address of the server LibreTime was just installed on
|
||||
to complete the welcome wizard. While not strictly necessary, it is recommended that you change the passwords prompted in the welcome wizard if you intend on accessing the server from the Internet. The welcome wizard will
|
||||
walk you through the rest of the installation process.
|
||||
|
||||
## Services
|
||||
|
||||
Once all of the services needed to run LibreTime are installed and configured,
|
||||
it is important that the server starts them during the boot process, to cut down on downtime, especially in live environments.
|
||||
Ubuntu 18.04 uses the `systemctl` command to manage services, so run the following commands to enable all
|
||||
LibreTime-needed services to run at boot:
|
||||
|
||||
```bash
|
||||
sudo systemctl enable libretime-liquidsoap
|
||||
sudo systemctl enable libretime-playout
|
||||
sudo systemctl enable libretime-celery
|
||||
sudo systemctl enable libretime-analyzer
|
||||
sudo systemctl enable apache2
|
||||
sudo systemctl enable rabbitmq-server
|
||||
```
|
||||
|
||||
:::tip
|
||||
|
||||
If an error is returned, try adding `.service` to the end of each command.
|
||||
|
||||
:::
|
||||
|
||||
## User permissions
|
||||
|
||||
If you plan to have LibreTime output analog audio directly to a mixing console or transmitter,
|
||||
the `www-data` user needs to be added to the `audio` user group using the command below:
|
||||
|
||||
```
|
||||
sudo adduser www-data audio
|
||||
```
|
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 40 KiB |
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
title: SSL Configuration
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
To increase the security of your server, you can enable encrypted access to the LibreTime administration interface, and direct your users towards this more secure login page. The main advantage of using this encryption is that your remote users' login names and passwords are not sent in plain text across the public Internet or untrusted local networks, such as shared Wi-Fi access points.
|
||||
|
||||
## Deploying a certificate with Certbot
|
||||
|
||||
One of the fastest, easiest, and cheapest ways to get an SSL certificate is through [Certbot](https://certbot.eff.org/), as created by the
|
||||
Electronic Frontier Foundation. To use Certbot, your LibreTime installation must be open to the internet on port 80.
|
||||
|
||||
Follow [Certbot's documentation](https://certbot.eff.org/instructions) for your OS and webserver to install an SSL certificate. You'll need to renew the certificate every 90 days to keep your installation secure.
|
||||
|
||||
## Mixed encrypted and unencrypted content
|
||||
|
||||
Whether your certificate is self-signed or not, you will see browser security warnings whenever a https:// page is delivering unencrypted content, such as the stream from an Icecast server. In Firefox, an exclamation mark icon is displayed in the address bar of the **Listen** pop-up.
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"label": "Guides",
|
||||
"position": 3
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
LibreTime is an open-source radio automation system. It can be used for music and show playout in a radio studio or start an internet radio station on its own. LibreTime runs on Ubuntu and Debian Linux; [we're also working on making Docker images](https://github.com/LibreTime/libretime/issues/949).
|
||||
|
||||
## Getting started
|
||||
|
||||
Get started by installing LibreTime on your server. Open up your terminal and enter
|
||||
|
||||
```bash
|
||||
git clone https://github.com/LibreTime/libretime.git
|
||||
cd libretime
|
||||
|
||||
sudo ./install -fiap
|
||||
```
|
||||
|
||||
After the installer is done, head to your server's IP address in a web browser and complete the setup wizard.
|
||||
|
||||
### Upload some music
|
||||
|
||||
Login using the default username and password and click on the blue **Upload** button in the left pane. Drag and drop files onto the upload area or click to browse for files on your computer.
|
||||
|
||||

|
||||
|
||||
Once the files have uploaded and finished being analyzed, you can schedule your first show.
|
||||
|
||||
### Schedule your first show
|
||||
|
||||
Navigate to the Calendar and click the **+ New Show** button on the toolbar.
|
||||
|
||||

|
||||
|
||||
Fill out the **What** (name, description of your show) and **When** (start time, end time) blocks, then click the grey **+ Add This Show** button at the top.
|
||||
|
||||
Click on the new show in the Calendar to open its context menu and select **Schedule Tracks**.
|
||||
|
||||

|
||||
|
||||
Your uploaded tracks, playlists, smartblocks, and webstreams appear in the left pane; drag them to the right pane in the order you want them to play back for your show. The bar at the bottom of the right playlist tells you how much time you have left in your show.
|
||||
|
||||

|
||||
|
||||
When you're done, click **Ok** at the bottom of the window.
|
||||
|
||||
### That's it!
|
||||
|
||||
You just scheduled your first show! It will automatically begin playing back at the time your show is set to start. You can listen to what is playing live by clicking the **Listen** button under the On Air indicator in the top right corner.
|
||||
|
||||
## Next steps
|
||||
|
||||
- Make sure you [set the time on your server](/docs/getting-started/set-server-time)
|
||||
- Learn how to [work with podcasts](/docs/guides/podcasts)
|
||||
- [Create user accounts](/docs/guides/users) for your DJs, Program Managers, and Administrators
|
||||
- Learn how to [broadcast live](/docs/guides/live-broadcast) from your studio
|
|
@ -1,14 +1,12 @@
|
|||
---
|
||||
title: LibreTime 3.0 Alpha 10 Released
|
||||
title: LibreTime 3.0.0 alpha 10
|
||||
---
|
||||
|
||||
# Release Notes for LibreTime 3.0 Alpha 10
|
||||
|
||||
The full tarball for the **3.0.0-alpha.10** release of LibreTime is available [here](https://github.com/LibreTime/libretime/releases/download/3.0.0-alpha.10/libretime-3.0.0-alpha.10.tar.gz).
|
||||
|
||||
Since this is an alpha release there will be bugs in the code.
|
||||
|
||||
Please report new issues and/or feature requests in the [issue tracker](https://github.com/LibreTime/libretime/issues). Join our [discourse](https://discourse.libretime.org/) or chat to us on our [Mattermost](https://chat.libretime.org/e) instance if you need help and for general discussion.
|
||||
Please report new issues and/or feature requests in the [issue tracker](https://github.com/LibreTime/libretime/issues). Join our [discourse](https://discourse.libretime.org/) or chat to us on our [Mattermost](https://chat.libretime.org/) instance if you need help and for general discussion.
|
||||
|
||||
## Features
|
||||
|
||||
|
@ -57,7 +55,7 @@ The LibreTime project wants to thank the following contributors for authoring PR
|
|||
|
||||
## Installation
|
||||
|
||||
The main installation docs may be found [here](/docs/getting-started/install/). They describe a "developer" install using the bundled `install` script.
|
||||
The main installation docs may be found [here](../admin-manual/setup/install.md). They describe a "developer" install using the bundled `install` script.
|
||||
|
||||
We are preparing packages for supported distros and you can take those for a spin if you would like to. Usually the packages get built pretty soon after a release is published. If the current version is not available from the below sources you should wait for a while until they get uploaded.
|
||||
|
||||
|
@ -71,14 +69,14 @@ If you want to skip the installer GUI completely you can configure LibreTime usi
|
|||
|
||||
## Updating
|
||||
|
||||
See [the docs](/docs/upgrading) for complete information on updating. Please ensure that you have proper backups and a rollback scenario in place before updating.
|
||||
See [the docs](../admin-manual/backup.md) for complete information on updating. Please ensure that you have proper backups and a rollback scenario in place before updating.
|
||||
If the update does not go smoothly, it may cause significant downtime, so you should always have a fallback system available during the update to ensure broadcast continuity.
|
||||
|
||||
If you installed from GitHub you can `git pull` in your local working copy and re-run the `./install` script with the same `--web-root` and `--web-user` arguments you used during the initial install. Tarball users can leave out the git pull part and just call the new version of the install script.
|
||||
|
||||
Once the update has taken place, you will need to run the following commands to clean up old scripts and configuration:
|
||||
|
||||
```shell
|
||||
```bash
|
||||
# Remove the old packages
|
||||
sudo pip3 uninstall \
|
||||
airtime-playout \
|
||||
|
@ -144,14 +142,14 @@ Some minimal OS installs do not have a default locale configured. This only seem
|
|||
|
||||
You can set up the locale using a combination of the following commands. You might also want to consult the documentation of your VPS provider as it may contain an official way to set up locales when provisioning a VPS.
|
||||
|
||||
```shell
|
||||
```bash
|
||||
# Set locale using systemds localectl
|
||||
localectl set-locale LANG="en_US.utf8"
|
||||
```
|
||||
|
||||
These instructions do not seem to work on all Debian based distros so you might need to use update-locale as follows.
|
||||
|
||||
```shell
|
||||
```bash
|
||||
#Purge all locales but en_US.UTF-8
|
||||
sudo locale-gen --purge en_US.UTF-8
|
||||
#Populate LANGUAGE=
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: Releases
|
||||
---
|
||||
|
||||
:::info
|
||||
|
||||
LibreTime is following [semantic versioning](https://semver.org/).
|
||||
|
||||
:::
|
||||
|
||||
:::note
|
||||
|
||||
:sparkles: New LibreTime versions are released when it is ready :tm:.
|
||||
|
||||
:::
|
|
@ -0,0 +1,2 @@
|
|||
label: Releases
|
||||
position: 50
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
title: Unreleased
|
||||
---
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"label": "Server configuration",
|
||||
"position": 5
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
---
|
||||
title: Backing up LibreTime
|
||||
---
|
||||
|
||||
:::info
|
||||
|
||||
At the moment, there is no script to cleanly restore a LibreTime backup. To restore a LibreTime backup, install a fresh copy, go through the standard setup process, and reupload the backed-up media files.
|
||||
|
||||
:::
|
||||
|
||||
A backup script is supplied for your convenience in the `utils/` folder of the LibreTime repo.
|
||||
Run it using:
|
||||
|
||||
```
|
||||
sudo bash libretime-backup.sh # backs up to user's home folder
|
||||
# or
|
||||
sudo bash libretime-backup.sh /backupdir/
|
||||
```
|
||||
|
||||
The backup process can be automated with Cron. Simply add the following to the root user's
|
||||
crontab with `sudo crontab -e`:
|
||||
|
||||
```
|
||||
0 0 1 * * /locationoflibretimerepo/libretime/backup.sh
|
||||
```
|
||||
|
||||
> For more information on how Cron works, check out [this Redhat guide](https://www.redhat.com/sysadmin/automate-linux-tasks-cron).
|
||||
|
||||
If you wish to deploy your own backup solution, the following files and folders need to
|
||||
be backed up.
|
||||
|
||||
```
|
||||
/srv
|
||||
/airtime
|
||||
/stor
|
||||
/imported - Successfully imported media
|
||||
/organize - A temporary holding place for uploaded media as the importer works
|
||||
/etc
|
||||
/airtime
|
||||
airtime.conf - The main LibreTime configuration
|
||||
icecast_pass - Holds the password for the Icecast server
|
||||
liquidsoap.cfg - The main configuration file for Liquidsoap
|
||||
```
|
||||
|
||||
In addition, you should keep a copy of the database current to the backup. The below code
|
||||
can be used to export the LibreTime database to a file.
|
||||
|
||||
```
|
||||
sudo -u postgres pg_dumpall filename
|
||||
# or to a zipped archive
|
||||
sudo -u postgres pg_dumpall | gzip -c > archivename.gz
|
||||
```
|
||||
|
||||
It is recommended to use an incremental backup technique to synchronize
|
||||
the your LibreTime track library with a backup server regularly. (If
|
||||
the backup server also contains an LibreTime installation, it should be possible
|
||||
to switch playout to this second machine relatively quickly, in case of a
|
||||
hardware failure or other emergency on the production server.)
|
||||
|
||||
Two notible backup tools are [rsync](https://rsync.samba.org/) (without version control) and
|
||||
[rdiff-backup](https://rdiff-backup.net/) (with version control). _rsync_ comes
|
||||
preinstalled with Ubuntu Server.
|
||||
|
||||
:::note
|
||||
|
||||
Standard rsync backups, which are used by the backup script, cannot restore files deleted in the backup itself
|
||||
|
||||
:::
|
|
@ -1,49 +0,0 @@
|
|||
---
|
||||
title: Upgrading LibreTime
|
||||
---
|
||||
|
||||
:::caution
|
||||
|
||||
While upgrading your installation may not cause any station downtime or data loss, always plan for the worst. Only upgrade your installation when LibreTime isn't playing out shows, notify your DJs and essential personnel, and back up your database, configuration files, and media library before you make any changes.
|
||||
|
||||
:::
|
||||
|
||||
1. [Back up the server](/docs/server-config/backing-up-the-server) and make a copy of all the configuration files under `/etc/airtime/`.
|
||||
2. Run `./install -fiap` as described in the [installation guide](/docs/getting-started/install).
|
||||
This will detect an existing LibreTime deployment and backup any
|
||||
configuration files that if finds. The install script also tries to restart
|
||||
the needed services during an upgrade. In any case you should monitor if this
|
||||
happened and also take a quick look at the logs files to be sure everything
|
||||
is still fine. Now might be the time to reboot the system or virtual machine
|
||||
LibreTime is running on since regular reboots are part of a healthy system
|
||||
anyway.
|
||||
3. Log into the new version of the LibreTime administration interface. If the
|
||||
playout engine starts up and detects that a show should be playing at the
|
||||
current time, it will skip to the correct point in the current time and start
|
||||
playing. If you encounter issues trying to connect to the new administration
|
||||
interface, you may need to clear your web browser's cache.
|
||||
|
||||
### Migrating from Airtime
|
||||
|
||||
:::note
|
||||
|
||||
Airtime's _linked files_ and _watched folders_ features currently do not work in LibreTime.
|
||||
|
||||
:::
|
||||
|
||||
LibreTime has dropped support for Ubuntu 16.04, which is the last supported
|
||||
version of Ubuntu that Airtime supports. The following instructions describe how
|
||||
to migrate from Airtime to LibreTime. If there are issues encountered while
|
||||
upgrading, please [file a bug](https://github.com/libretime/libretime/issues/new?labels=bug&template=bug_report.md)
|
||||
|
||||
1. Take a [backup of the server](/docs/server-config/backing-up-the-server)
|
||||
2. Create a new system for LibreTime and run the install script, as described in the [install guide](/docs/getting-started/install).
|
||||
3. Before running the web-configuration, restore the Airtime database to the new
|
||||
PostgreSQL server, media database and configuration file
|
||||
4. Update the configuration file to match the new configuration schema and update any
|
||||
changed values. See the [host configuration](/docs/server-config/host-configuration) documentation
|
||||
for more details.
|
||||
5. Edit the Icecast password in `/etc/icecast2/icecast.xml` to reflect the
|
||||
password used in Airtime
|
||||
6. Restart the LibreTime services
|
||||
7. Open LibreTime's dashboard and verify all services are running
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
title: User manual
|
||||
---
|
||||
|
||||
Welcome to the **LibreTime user manual**, you should find guides and tutorials for managers, and content creators to use LibreTime.
|
||||
|
||||
## Introduction
|
||||
|
||||
:construction:
|
||||
|
||||
## As manager
|
||||
|
||||
:construction:
|
||||
|
||||
## As content creator
|
||||
|
||||
:construction:
|
||||
|
||||
## As guest
|
||||
|
||||
:construction:
|
|
@ -0,0 +1,2 @@
|
|||
label: User manual
|
||||
position: 30
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Show Calendar
|
||||
title: Show calendar
|
||||
---
|
||||
|
||||
The Calendar page of the LibreTime administration interface has three views: **day**, **week** and **month**, which can be switched using the grey buttons in the top right corner. By default, the **month** view is shown, with today's date highlighted by a pale grey background.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
@ -94,7 +94,7 @@ playing immediately. This manual triggering of playout can be used as a live
|
|||
assist technique, in which the LibreTime server's soundcard output is mixed with
|
||||
other sources such as microphones or telephone hybrids on its way to a
|
||||
transmitter, or a separate stream encoder. For instance, a live show's host may
|
||||
not wish to cut off a studio discussion in order to play music at a fixed time.
|
||||
not wish to cut off a studio discussion to play music at a fixed time.
|
||||
|
||||

|
||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
|
@ -54,7 +54,7 @@ Click the **plus button** on the left to add OR criteria, such as **Creator** co
|
|||
|
||||
:::tip
|
||||
|
||||
If you see the message **0 files meet the criteria**, it might mean that the files in the Library have not been tagged with the correct metadata. See the chapter [Preparing media](/docs/guides/preparing-media) for tips on tagging content.
|
||||
If you see the message **0 files meet the criteria**, it might mean that the files in the Library have not been tagged with the correct metadata. See the chapter [Preparing media](./preparing-media.md) for tips on tagging content.
|
||||
|
||||
:::
|
||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Playout History
|
||||
title: Playout 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.
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
@ -12,7 +12,7 @@ Podcast feeds coming from Anchor.fm have been known to have a similar issue.
|
|||
|
||||
:::
|
||||
|
||||
The podcast interfaces provides you with the ability to generate [Smartblocks](/docs/guides/playlists) that can be used in conjunction with autoloading playlists to schedule the newest episode of a podcast without human intervention.
|
||||
The podcast interfaces provides you with the ability to generate [Smartblocks](./playlists.md) that can be used in conjunction with autoloading playlists to schedule the newest episode of a podcast without human intervention.
|
||||
|
||||
<html>
|
||||
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/g-4UcD8qvR8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Preparing Media for Upload
|
||||
title: Preparing media for upload
|
||||
---
|
||||
|
||||
Before uploading media to an LibreTime server, there are a number of factors which should be considered. Getting your ingest workflow right will save you a lot of time later.
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Scheduling Shows
|
||||
title: Scheduling shows
|
||||
---
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/TJtWUzAlP08" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
@ -57,7 +57,7 @@ refactors. You can switch back at any time.
|
|||
You can enable live, read-only access to the LibreTime schedule calendar for
|
||||
your station's public website with the **Public LibreTime API** option, if you
|
||||
wish. (There is more about this feature in the
|
||||
[_Exporting the schedule_](/docs/guides/playout-history) chapter, in the
|
||||
[_Exporting the schedule_](./playout-history.md) chapter, in the
|
||||
_Advanced Configuration_ section of this book).
|
||||
|
||||
The **Allowed CORS URLs** is intended to deal with situations where you want a
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 263 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |