From 5cba37aa9b8d488a59d519b2e6770e810afbbbf0 Mon Sep 17 00:00:00 2001 From: Zachary Klosko Date: Fri, 27 Nov 2020 21:39:16 -0500 Subject: [PATCH] Remove FAQ, rework Troubleshooting --- docs/404.md | 8 +- docs/README | 8 ++ docs/_config.yml | 2 + docs/_docs/contribute.md | 12 +-- docs/_docs/host-configuration.md | 44 ++++++++- docs/_docs/troubleshooting.md | 89 +++++++---------- docs/_includes/footer.html | 2 +- docs/_layouts/404.html | 2 +- docs/_layouts/home.html | 4 +- docs/docs.html | 8 +- docs/faq.html | 163 ------------------------------- docs/img/car-radio-unsplash.jpg | Bin 0 -> 37651 bytes docs/index.md | 10 +- 13 files changed, 110 insertions(+), 242 deletions(-) create mode 100644 docs/README delete mode 100644 docs/faq.html create mode 100644 docs/img/car-radio-unsplash.jpg diff --git a/docs/404.md b/docs/404.md index 68a35f70c..4a5320fc4 100644 --- a/docs/404.md +++ b/docs/404.md @@ -2,10 +2,10 @@ layout: 404 linkto: /search linktext: Search -img: /img/radio-unsplash.jpg -photocredit: Photo by Leo Wieling on Unsplash +img: /img/car-radio-unsplash.jpg +photocredit: Photo by Frank Albrecht on Unsplash --- -# Oops +# DEAD AIR -There's nothing there... \ No newline at end of file +Sorry... there's nothing there. \ No newline at end of file diff --git a/docs/README b/docs/README new file mode 100644 index 000000000..181ed94d8 --- /dev/null +++ b/docs/README @@ -0,0 +1,8 @@ +# Contributing to the docs + +## Running Jekyll + +``` +bundler install +jekyll serve +``` \ No newline at end of file diff --git a/docs/_config.yml b/docs/_config.yml index eef39fb01..de5c6663b 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -9,6 +9,8 @@ includes_dir: _includes favicon: favicon.ico +exclude: ['README'] + # Collections Settings collections: docs: diff --git a/docs/_docs/contribute.md b/docs/_docs/contribute.md index 69cf72709..df805eef5 100644 --- a/docs/_docs/contribute.md +++ b/docs/_docs/contribute.md @@ -17,25 +17,25 @@ improvements and new features for LibreTime on that site. ## Feature requests -Have an idea that would make LibreTime even better than it is right now? Start a **Feature request** on our +Have an idea that would make Libretime even better than it is right now? Start a **Feature request** on our [Github issues page](https://github.com/LibreTime/libretime/issues/new/choose). -## Help translate LibreTime +## Translation LibreTime can run in over 15 different languages due to the gracious help of our volunteers. Is your language not supported? Follow [this guide](/docs/interface-localization) to add your language to LibreTime! -## Help write documentation for LibreTime +## Write documentation 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 + After cloning our repo locally, enter the `docs/` directory and run ``` bundle install jekyll serve ``` -## Help write code for LibreTime +## Code Are you familar with coding in PHP? Have you made projects in Liquidsoap and some of the other services we use? Take a look at the [list of bugs and feature requests](https://github.com/LibreTime/libretime/issues), and then @@ -44,7 +44,7 @@ your desktop, open up a favorite editor and make some changes, and then commit, Knowledge on how to use [Github](https://guides.github.com/activities/hello-world/) and [Git](https://git-scm.com/docs/gittutorial) will suit you well, use the links for a quick 101. -## Testing LibreTime +## Testing and CI/CD Before submitting code to the project, it's a good idea to test it first. To do this, it's easiest to install LibreTime in a virtural machine on your local system or in a cloud VM. We have instructions for setting up a virtural diff --git a/docs/_docs/host-configuration.md b/docs/_docs/host-configuration.md index 06ca885ac..e1e086813 100644 --- a/docs/_docs/host-configuration.md +++ b/docs/_docs/host-configuration.md @@ -6,7 +6,7 @@ category: install 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. -### Database and RabbitMQ hosts {#database} +## Database and RabbitMQ hosts {#database} 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: @@ -55,7 +55,7 @@ used by the various components of LibreTime, run the following commands sudo systemctl restart libretime-celery sudo systemctl restart libretime-analyzer -### API client configuration {#api} +## API client configuration {#api} 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. @@ -70,7 +70,7 @@ If you have changed the *base\_url*, *base\_port* or *base\_dir* setting in */et base_port = 80 base_dir = / -### Apache max file size configuration {#apache} +## Apache max file size configuration {#apache} 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: @@ -88,7 +88,7 @@ For quick reference, 1024 MB = 1 GB and 2048 MB = 2 GB, but most will be okay wi sudo systemctl restart apache2 ``` -### Playout settings {#playout} +## Playout settings {#playout} Settings for pypo, the playout engine used by LibreTime, are found in the file */etc/airtime/airtime.conf*. After making changes to this file, you will have to issue the command: @@ -164,4 +164,38 @@ for the changes to take effect. # while 'otf' (on the fly) cues while loading into ls # (needs the post_processor patch) cue_style = pre - \ No newline at end of file + +## RabbitMQ hostname changes + +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 + +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: http://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: + +1. Delete the files in */var/lib/rabbitmq/mnesia/* + +``` +sudo rm -r /var/lib/rabbitmq/mnesia/* +``` + +2. Restart RabbitMQ: + +``` +sudo systemctl restart rabbitmq-server +``` + +3. Enter the following commands to set up authentication and grant permissions. The *rabbitmqctl add\_user* command requires the RabbitMQ password from the /etc/airtime/airtime.conf file as an argument. The *rabbitmqctl set\_permissions* command should be entered on one line, with the list of Airtime services repeated three times: + +``` +rabbitmqctl add_vhost /airtime +rabbitmqctl add_user airtime XXXXXXXXXXXXXXXXXXXX +rabbitmqctl set_permissions -p /airtime airtime + "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor" +  "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor" +  "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor" +``` \ No newline at end of file diff --git a/docs/_docs/troubleshooting.md b/docs/_docs/troubleshooting.md index 5028a100f..cf263a8e9 100644 --- a/docs/_docs/troubleshooting.md +++ b/docs/_docs/troubleshooting.md @@ -4,66 +4,53 @@ title: Troubleshooting category: admin --- -## Test tones {#tones} +Is something not working for your Libretime installation? Here's a quick guide to help you +troubleshoot most issues you'll run into. -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`. +## 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. + +![](/img/Screenshot521-System_status_240.png) + +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. ``` -speaker-test [-D] [-f] - -Where: - -D device name - -f frequency of test tone +sudo systemctl restart libretime-liquidsoap +sudo systemctl status libretime-liquidsoap ``` -The **airtime-test-stream** command enables you to send a test tone to a local or remote streaming media server. Press **Ctrl+C** on your keyboard to stop the tone being streamed. -``` -airtime-test-stream [-v] - [-o icecast | shoutcast ] [-H hostname] [-P port] - [-u username] [-p password] [-m mount] - [-h] -Where: - -v verbose mode - -o stream server type (default: icecast) - -H hostname (default: localhost) - -P port (default: 8000) - -u user (default: source) - -p password (default: hackme) - -m mount (default: test) - -h show help menu -``` +If the service isn't wanting to restart, look at its status for clues as to why it stopped working. -## RabbitMQ hostname changes +## 3. Basic troubleshooting -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 +If you have one of these issues, please try to resolve it with the instructions below before moving on in the +troubleshooting checklist. -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: http://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: +- **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. Please 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://www.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 stil 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). -1. Delete the files in */var/lib/rabbitmq/mnesia/* +## 4. Read the docs -``` -sudo rm -r /var/lib/rabbitmq/mnesia/* -``` +Our main documentation listing is [here](/docs) and can be searched [here](/search). -2. Restart RabbitMQ: +## 5. Reach out to the developers -``` -sudo systemctl restart rabbitmq-server -``` - -3. Enter the following commands to set up authentication and grant permissions. The *rabbitmqctl add\_user* command requires the RabbitMQ password from the /etc/airtime/airtime.conf file as an argument. The *rabbitmqctl set\_permissions* command should be entered on one line, with the list of Airtime services repeated three times: - -``` -rabbitmqctl add_vhost /airtime -rabbitmqctl add_user airtime XXXXXXXXXXXXXXXXXXXX -rabbitmqctl set_permissions -p /airtime airtime - "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor" -  "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor" -  "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor" -``` \ No newline at end of file +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. diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html index e6086ac3b..90e94a215 100644 --- a/docs/_includes/footer.html +++ b/docs/_includes/footer.html @@ -23,7 +23,7 @@ diff --git a/docs/_layouts/404.html b/docs/_layouts/404.html index 2a25c5e9f..fab28952d 100644 --- a/docs/_layouts/404.html +++ b/docs/_layouts/404.html @@ -25,6 +25,6 @@ layout: default {{ page.linktext }} -
{{page.photocredit}}
+
{{page.photocredit}}
\ No newline at end of file diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html index 7b85abc1e..054040c9d 100644 --- a/docs/_layouts/home.html +++ b/docs/_layouts/home.html @@ -25,7 +25,7 @@ layout: default {{ page.linktext }} -
{{page.photocredit}}
+
{{page.photocredit}}
@@ -181,7 +181,7 @@ layout: default
-
+

Get started with Libretime


diff --git a/docs/docs.html b/docs/docs.html index c983cd66f..a69cdce1a 100644 --- a/docs/docs.html +++ b/docs/docs.html @@ -16,7 +16,7 @@ title: Docs
-

Install

+

Install

Get Libretime up and running in just 10 minutes.

@@ -64,10 +64,10 @@ title: Docs
-
+
-

FAQs

-

Have questions?
We have answers.

+

Troubleshooting

+

Something not working? Here's a quick guide to fixing Libretime.

diff --git a/docs/faq.html b/docs/faq.html deleted file mode 100644 index fd21ba92a..000000000 --- a/docs/faq.html +++ /dev/null @@ -1,163 +0,0 @@ ---- -layout: default -title: FAQ ---- - - -
-
-
-
-

Frequently Asked Questions

- - -
-
-
- - - - - - - -
- - -

-

-
-
- - -
-
-
-
- -
-
-
What is Docs UI Kit?
- -
- -
-
Docs UI Kit is beautiful Open Source Bootstrap 4 UI Kit under MIT license. The UI Kit comes with more than 10 beautiful complete pages and includes a lot of reusable and customizable UI Blocks. Furthermore, Docs UI Kit includes 4 different Documentation Layouts.
-
-
- -
- -
-
Airtime stores log files under the directory path /var/log/airtime/. Copies of these log files may be requested by LibreTime developers while they are providing technical support for your Libretime deployment.
-
-
- -
- -
-
On Ubuntu, LibreTime services are controlled by the system service daemon systemctl. To restart a service, use the command sudo systemctl restart servicename. Some of Libretime's services include libretime-liquidsoap, libretime-playout, libretime-celery, libretime-analyzer, apache2, and rabbitmq-server.
-
-
- -
-
-
Is LibreTime free?
- -
- -
-
Absolutely, but "free as in freedom" free. While there is no cost to use the Libretime software at your radio station or in the cloud, please consider supporting the project financially or with your many talents. Our supporters allow the Libretime project to keep growing and improving.
-
-
- -
- -
-
Currently, Libretime comes with community support and you can open an issue on the product github page. We will do our best to answers your questions.
-
-
- -
- -
-
Sure! Please feel free to contribute - we appreciate any community help! You can pull request on github page.
-
-
- -
- -
-
You can check out our documenttion for detailed examples.
-
-
- -
- -
-
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 sudo bash uninstall. - If allowed, the installer will permanently delete all databases and media uploaded to LibreTime. -

If it was something we did, please open an issue request on our Github. -

-
-
-
-
-
-
-
-
- -
-
- -

Can't find what you're looking for?

-
Open an issue on our Github!
- Submit a Request -
-
-
diff --git a/docs/img/car-radio-unsplash.jpg b/docs/img/car-radio-unsplash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b52edd5fd786ebcf3cad7690dbe5158eb5be81ef GIT binary patch literal 37651 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%0A$4{0?B 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 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index fd66d5734..68dc2c7f1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,7 @@ --- layout: home title: Home -linkto: /install +linkto: index#get-started linktext: Get Libretime img: /img/radio-unsplash.jpg photocredit: Photo by Leo Wieling on Unsplash @@ -16,10 +16,10 @@ actions: linktext: Install from Git --- -# RADIO AUTOMATION FOR THE MASSES +# BROADCAST WITHOUT LIMITS -Get broadcasting without the hassle +Libretime is an open source radio automation and broadcasting solution helping communities get on-air with ease. -LibreTime is Open Source radio automation and broadcasting solution helping communities both modernize their broadcasting stack, and get up and on-the-air with ease. +The platform can be easily deployed on dedicated hardware and VMs, on-prem or in the cloud, "free as in freedom" free. -The platform consists of several open-source components that can be easily and rapidly deployed on both dedicated hardware, virtual machines, and Cloud native infrastructure - allowing your station to truly underwrite it's own destiny. \ No newline at end of file +Let your station underwrite its own destiny. \ No newline at end of file