From c7caa442cc42c7ecb2a115080e867dc003915ea8 Mon Sep 17 00:00:00 2001 From: Zachary Klosko Date: Thu, 19 Nov 2020 11:59:27 -0500 Subject: [PATCH] Continuing to edit docs --- backup.sh | 15 ------- docs/_docs/backing-up-the-server.md | 25 +++++------- docs/_docs/contribute.md | 4 +- docs/_docs/icecast.md | 4 +- docs/_docs/install.md | 25 ++++-------- docs/_docs/interface-customization.md | 6 +-- docs/_docs/live-broadcast.md | 4 +- docs/_docs/multipass.md | 2 +- docs/_docs/reverse-proxy.md | 6 +-- docs/_docs/scheduling-shows.md | 2 - docs/_docs/ssl.md | 2 +- docs/_docs/upgrading.md | 10 ++--- docs/_docs/users.md | 58 +++++++++++++++------------ docs/_docs/widgets.md | 2 + docs/jekyll.sh | 18 --------- utils/libretime-backup.sh | 10 +++-- 16 files changed, 75 insertions(+), 118 deletions(-) delete mode 100644 backup.sh delete mode 100644 docs/jekyll.sh diff --git a/backup.sh b/backup.sh deleted file mode 100644 index 3068d166a..000000000 --- a/backup.sh +++ /dev/null @@ -1,15 +0,0 @@ -#/bin/bash - -# Replace /backup with backup folder location! -# Used for backing up the media library -rsync -aE --delete --info=progress2 /srv/airtime/stor/ /backup - -# Used for backing up the database --u postgres pg_dumpall | gzip -c > libretime-db-backup.gz -mv libretime-db-backup.gz /backup - -# Used for backing up Libretime configs -cp /etc/airtime/airtime.conf backup/airtime.conf.backup - -# Write date/time of backup -date >> /backup/datelog.txt \ No newline at end of file diff --git a/docs/_docs/backing-up-the-server.md b/docs/_docs/backing-up-the-server.md index 5f77ac2b7..6bbb8c00d 100644 --- a/docs/_docs/backing-up-the-server.md +++ b/docs/_docs/backing-up-the-server.md @@ -6,6 +6,16 @@ category: admin ## Backup +A backup script is supplied for your convenience in the *utils/* folder of the Libretime repo. + +``` +sudo bash libretime-backup.sh # backs up to user's home folder +# or +sudo bash libretime-backup.sh /backupdir/ +``` + +### Backup Methods + You can dump the entire *PostgreSQL* database to a zipped file with the combination of the **pg\_dumpall** command and **gzip**. The **pg\_dumpall** command is executed as the user *postgres*, by using the **sudo** command and the **-u** switch. It @@ -26,21 +36,6 @@ preinstalled with Ubuntu Server. > **Note:** Standard *rsync* backups cannot restore files deleted in the backup itself -``` -#/bin/bash - -# Replace /backup with backup folder location! -# Used for backing up the media library -sudo rsync -aE --delete --info=progress2 /srv/airtime/stor/ /backup - -# Used for backing up the database -sudo -u postgres pg_dumpall | gzip -c > libretime-db-backup.gz -sudo mv libretime-db-backup.gz /backup - -# Write date/time of backup to file -date >> /backup/datelog.txt -``` - ## Restore from a Backup When restoring a production database on a cleanly installed LibreTime system, it diff --git a/docs/_docs/contribute.md b/docs/_docs/contribute.md index c48647c1c..c2985ba60 100644 --- a/docs/_docs/contribute.md +++ b/docs/_docs/contribute.md @@ -5,7 +5,7 @@ category: dev permalink: /contribute --- -> LibreTime is a fork of AirTime due to stalled development of the FLOSS version. For background on this, +> LibreTime is a fork of AirTime due to stalled development of the open source version. For background on this, see this [open letter to the Airtime community](https://gist.github.com/hairmare/8c03b69c9accc90cfe31fd7e77c3b07d). ## Bug reporting @@ -27,7 +27,7 @@ supported? Follow [this guide](/docs/interface-localization) to add your languag ## Help write documentation for LibreTime -Our site is now run by Jekyll, who has an installation guide [here](https://jekyllrb.com/docs/installation/) to help get you started. +Our site is now built by Jekyll, which has an installation guide [here](https://jekyllrb.com/docs/installation/) to help get you started. After cloning our repo locally, enter the `/docs` directory and run ``` diff --git a/docs/_docs/icecast.md b/docs/_docs/icecast.md index 184087be8..206766b5c 100644 --- a/docs/_docs/icecast.md +++ b/docs/_docs/icecast.md @@ -20,7 +20,7 @@ Conversely, you may have a music station which wants to stream at 160kbps or 192 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: -![](img/Screenshot223-Icecast_UTF-8_metadata.png) +![](/img/Screenshot223-Icecast_UTF-8_metadata.png) The solution is to specify that the metadata for the MP3 mount point you are using should be interpreted using UTF-8 encoding. You can do this by adding the following stanza to the */etc/icecast2/icecast.xml* file, where *libretime.mp3* is the name of your mount point: @@ -119,4 +119,4 @@ Another stream directory service is provided by the Liquidsoap Flows! site **Note:** 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. \ No newline at end of file diff --git a/docs/_docs/install.md b/docs/_docs/install.md index a493e986f..c5652d612 100644 --- a/docs/_docs/install.md +++ b/docs/_docs/install.md @@ -4,10 +4,7 @@ layout: article category: install --- -> Note: this guide is assuming you are using Ubuntu 18.04 LTS for installation, which comes with `ufw` and `netplan`, -and that you have already installed `git` and configured `ntp`. NTP configuration instructions can be found [here](#configuring-ntp). -While it is possible to install LibreTime on other OSes, such as CentOS 7, Debian 9 and 10, and Raspbian 9 and 10, -these are less tested. Firewall and static IP address configuration will need to be done according to your OSes instructions. +> Note: this guide is assuming you are using Ubuntu 18.04 LTS for installation, which comes with `ufw` and `netplan`. ## Minimum System Requirements @@ -52,18 +49,16 @@ Next, configure Ubuntu's firewall by running: ``` sudo ufw enable -sudo ufw allow 80/tcp -sudo ufw allow 8000/tcp +sudo ufw allow 22,80,8000/tcp ``` 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 -sudo ufw enable 8002/tcp +sudo ufw allow 8001,8002/tcp ``` -> If needed, instuctions for setting up a reverse proxy can be found [here](/docs/reverse-proxy). +> If needed, instructions for setting up a reverse proxy can be found [here](/docs/reverse-proxy). ### Installing LibreTime @@ -72,7 +67,7 @@ Installing LibreTime consists of running the following commands in the terminal: ``` git clone https://github.com/LibreTime/libretime.git cd libretime -sudo ./install -fiap +sudo bash install -fiap ``` After the install is completed, head to the IP address of the server LibreTime was just installed on @@ -95,16 +90,12 @@ sudo systemctl enable apache2 sudo systemctl enable rabbitmq-server ``` -If an error is returned, try adding `.service` to the end of each command. For example: - -``` -sudo systemctl enable apache2.service -``` +> 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 from its server to a mixing console or transmitter, -the `www-data` user needs to be added to the `audio` user group using the command below. +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 diff --git a/docs/_docs/interface-customization.md b/docs/_docs/interface-customization.md index 56d5adf72..6c09a4f76 100644 --- a/docs/_docs/interface-customization.md +++ b/docs/_docs/interface-customization.md @@ -6,7 +6,7 @@ category: admin --- -The LibreTime administration interface, as a web application, is fully customizable using the same methods that you might use to modify a website. For instance, you may wish to increase certain font sizes or change the colours in the LibreTime interface to better suit staff users with impaired vision. To do this, open one of the CSS files in the */public/css/* directory under the LibreTime *DocumentRoot* directory in an editor such as **nano**: +The LibreTime administration interface, as a web application, is fully customizable using the same methods that you might use to modify a website. For instance, you may wish to increase certain font sizes or change the colours in the LibreTime interface to better suit staff users with impaired vision. To do so, open one of the CSS files in the */public/css/* directory under the LibreTime *DocumentRoot* directory in an editor such as **nano**: sudo nano /usr/share/airtime/public/css/styles.css @@ -20,7 +20,7 @@ To change the background colour of the administration interface from dark gray t padding: 0; } -Save the file with **Ctrl+O**, then refresh your browser to see the change to the interface background colour. +Save the file with **Ctrl+S**, then refresh your browser to see the change to the interface background colour. 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. @@ -36,4 +36,4 @@ Modifying the *status.xsl* page is a good place to start, because this is the de After saving the file with Ctrl+O, refresh your web browser, and the new look should now be visible. -![](img/Screenshot177-Icecast_rocks.png) +![](/img/Screenshot177-Icecast_rocks.png) diff --git a/docs/_docs/live-broadcast.md b/docs/_docs/live-broadcast.md index 3012f8e66..99af46f04 100644 --- a/docs/_docs/live-broadcast.md +++ b/docs/_docs/live-broadcast.md @@ -36,7 +36,7 @@ for remote input connection details. -### Set Up +**Setup** 1. Download and install butt from for your OS. *Note: be sure you have butt version 0.1.17 or newer installed* @@ -56,7 +56,7 @@ for remote input connection details. to use it but that is OS specific and outside of this tutorial. We are assuming you have a mic and mixer or a USB mixer hooked up to or as an external soundcard* -### Show Time +**Show Time** 1. When its almost your show time go to your LibreTime page and look at the time in the top right when your show starts go to Butt. diff --git a/docs/_docs/multipass.md b/docs/_docs/multipass.md index 80b873590..9cd9d4525 100644 --- a/docs/_docs/multipass.md +++ b/docs/_docs/multipass.md @@ -18,7 +18,7 @@ Multipass isn't currently able to do an automated install from the cloud-init sc After you enter the shell for the first time, you will still need to run the install script for LibreTime. ``` -cd libretime +cd /libretime sudo bash install -fiap ``` diff --git a/docs/_docs/reverse-proxy.md b/docs/_docs/reverse-proxy.md index 428714b07..30ea5bae4 100644 --- a/docs/_docs/reverse-proxy.md +++ b/docs/_docs/reverse-proxy.md @@ -11,7 +11,7 @@ makes extensive use of its API for some site functionality, 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**](settings). These origins should include any +[**General Settings**](/docs/settings). These origins should include any domains that will be 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 @@ -43,7 +43,7 @@ Nginx set up on `proxy` and LibreTime will be installed on `libretime`. You will access on both. `libretime` also needs to be able to be accessed from `proxy` (`ping libretime` on `proxy`). -On `libretime`, install LibreTime as described in the [install guide](quickstart). In short +On `libretime`, install LibreTime as described in the [install guide](/install). In short this means run the following commands: ``` @@ -106,7 +106,7 @@ sudo certbot certonly -d libretime.example.com -a standalone sudo systemctl start nginx ``` -You can now go to [https://libretime.example.com](https://libretime.example.com) and go +You can now go to *https://libretime.example.com* and go through the installer. On `General Settings`, you need to change the Webserver Port to `443` and add the following CORS URLs: diff --git a/docs/_docs/scheduling-shows.md b/docs/_docs/scheduling-shows.md index 81a8493af..41527c32b 100644 --- a/docs/_docs/scheduling-shows.md +++ b/docs/_docs/scheduling-shows.md @@ -4,8 +4,6 @@ title: Scheduling Shows category: interface --- -## Scheduling Shows -
diff --git a/docs/_docs/ssl.md b/docs/_docs/ssl.md index 69897856c..1111e2071 100644 --- a/docs/_docs/ssl.md +++ b/docs/_docs/ssl.md @@ -9,7 +9,7 @@ To increase the security of your server, you can enable encrypted access to the ### 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](https://www.eff.org/). There are some requirements for this process: +Electronic Frontier Foundation. There are some requirements for this process: - you have an HTTP website (already installed and configured by default by the LibreTime installer) and - this website is open to the public internet (likely via. port forwarding if your computer is behind a firewall) and - the server is accessible to the public via. port 80 diff --git a/docs/_docs/upgrading.md b/docs/_docs/upgrading.md index 691d7254b..6eba7afc9 100644 --- a/docs/_docs/upgrading.md +++ b/docs/_docs/upgrading.md @@ -32,9 +32,9 @@ Before upgrading a production LibreTime server, you should back up both the Post 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 during the upgrade, for example due to the wrong command being entered when moving files. See -[Backing up the server](backing-up-the-server) in this manual for details of how to perform these back ups. +[Backing up the server](/docs/backing-up-the-server) in this manual for details of how to perform these back ups. -The LibreTime [installation script](install) will detect an existing LibreTime or Airtime deployment and back up any configuration files that it finds. We recommend taking your own manual backups of the configuration yourself nevertheless. 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. +The LibreTime [installation script](/install) will detect an existing LibreTime or Airtime deployment and back up any configuration files that it finds. We recommend taking your own manual backups of the configuration yourself nevertheless. 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. After the upgrade has completed, you may need to clear your web browser's cache before logging 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 item and start playing. @@ -44,8 +44,4 @@ Airtime 2.5.x versions support upgrading from version 2.3.0 and above. If you ar running a production server with a version of Airtime prior to 2.3.0, you should upgrade it to version 2.3.0 before continuing.  -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. \ No newline at end of file +> **Note:** Airtime's *linked files* and *watched folders* features currently do not work in Libretime. diff --git a/docs/_docs/users.md b/docs/_docs/users.md index 9bb76366c..1f17051cd 100644 --- a/docs/_docs/users.md +++ b/docs/_docs/users.md @@ -4,40 +4,46 @@ title: Managing Users category: interface --- -> Note: if your Airtime server is accessible from the public Internet (ex. being hosted in a cloud VM) -it is recommended that you create a second administrator account with a secure password and then -delete the `admin` account, for best security practice. +> Note: if your Libretime server is accessible from the public Internet (ex. being hosted in a cloud VM) +it is strongly recommended to create a second administrator account with a secure password and then +delete the `admin` account. ## User Account Types To add further user accounts to the system, one for each of your station staff that need access to Airtime, click the **New User** button with the plus icon. Enter a user name, password and contact details, and then select the **User Type** from the drop down menu, which can be *Admin*, *Program Manager*, *DJ*, or *Guest*. The difference between these user types is: -* Guests - - Can view shows and the playout log on the Calendar and Dashboard, respectively - - Listen to the output stream without leaving the interface -* DJs - - Everything Guests can do, plus - - Upload media (music, PSAs, underwriting, shows, etc.) to their own library (DJs cannot view other libraries) - - Edit metadata, delete, and schedule media in their own library to shows they are assigned to - - Preview uploaded media _without_ affecting the live playout - - Create Playlists, Smart Blocks, and connect Podcasts and Webstreams to LibreTime - - Publish media items to LibreTime's built-in My Podcast function or 3rd party sources such as Soundcloud -* Program Managers - - Everything DJs can do, plus - - Manage other users' libraries in addition to their own - - Create, edit, and delete color-coded shows on the Calender and assign them to DJs (if needed) - - Shows can be scheduled to repeat, with the option of linking content between the shows (helpful if a DJ livestreams in each week) - - View listener statistics - - Export playout logs for analysis or reporting for music royalties -* Administrators - - Everything Program Managers can do, plus - - Manage all user accounts, including the ability to reset passwords - - Configure Track Types for easy sorting of uploaded content - - Change system settings +**Guests** + +- Can view shows and the playout log on the Calendar and Dashboard, respectively +- Listen to the output stream without leaving the interface + +**DJs** + +- Everything Guests can do, plus +- Upload media (music, PSAs, underwriting, shows, etc.) to their own library (DJs cannot view other libraries) +- Edit metadata, delete, and schedule media in their own library to shows they are assigned to +- Preview uploaded media _without_ affecting the live playout +- Create Playlists, Smart Blocks, and connect Podcasts and Webstreams to LibreTime + +**Program Managers** + +- Everything DJs can do, plus +- Manage other users' libraries in addition to their own +- Create, edit, and delete color-coded shows on the Calender and assign them to DJs (if needed) +- Shows can be scheduled to repeat, with the option of linking content between the shows (helpful if a DJ livestreams in each week) +- View listener statistics +- Export playout logs for analysis or reporting for music royalties + +**Administrators** + +- Everything Program Managers can do, plus +- Manage all user accounts, including the ability to reset passwords +- Configure Track Types for easy sorting of uploaded content +- Change system settings ## Editing or deleting user accounts -![](img/user-list.png) +![](/img/user-list.png) New user accounts that you add will be shown in the table on the left side of the **Users** page. If you have a large number of users on the system, you can use the search tool above the table (which has a magnifying glass icon) diff --git a/docs/_docs/widgets.md b/docs/_docs/widgets.md index 871f94c6b..b46307dc1 100644 --- a/docs/_docs/widgets.md +++ b/docs/_docs/widgets.md @@ -4,4 +4,6 @@ category: interface layout: article --- +One example of a widget. + \ No newline at end of file diff --git a/docs/jekyll.sh b/docs/jekyll.sh deleted file mode 100644 index 75b0ddf00..000000000 --- a/docs/jekyll.sh +++ /dev/null @@ -1,18 +0,0 @@ -# Installing Jekyll -# This script does not work and exists as a skeleton for -# someone to use to get Jekyll building outside of GitHub - -echo "Installing Ruby" -sudo apt-get install ruby-full build-essential zlib1g-dev - -export GEM_HOME=".gems" -export PATH=".gems/bin:$PATH" - -echo "Installing Jekyll" -cd docs -gem install jekyll bundler - -# Running Jekyll -bundle exec jekyll serve --watch --port 8888 - -echo "Visit http://localhost:8888 to see the LibreTime website." diff --git a/utils/libretime-backup.sh b/utils/libretime-backup.sh index 088236f8d..d8a12f556 100644 --- a/utils/libretime-backup.sh +++ b/utils/libretime-backup.sh @@ -11,7 +11,7 @@ fi airtime_conf_path=/etc/airtime/airtime.conf -sound_folder=/srv/airtime/stor/ +uploads_folder=/srv/airtime/stor/ psdl_db=$(grep dbname ${airtime_conf_path} | awk '{print $3;}' ) psql_user=$(grep dbuser ${airtime_conf_path} | awk '{print $3;}' ) @@ -29,10 +29,10 @@ echo 'db: Complete' ## Backup of sounds -mkdir $backup_folder'sounds/' +mkdir $backup_folder'uploads/' -echo 'stor : Copying sounds...' -rsync -r -a --info=progress2 $sound_folder $backup_folder'sounds/' +echo 'stor : Copying uploaded files...' +rsync -r -a --info=progress2 $uploads_folder $backup_folder'uploads/' echo 'stor: Complete' ## Backup of libretime config @@ -42,3 +42,5 @@ mkdir $backup_folder'airtime_config/' echo 'config: Copying config...' rsync -r -a --info=progress2 /etc/airtime/ $backup_folder'airtime_config/' echo 'config: Complete' + +date >> $backup_folder'datelog.txt'