Analyzer no longer ignore certificate verification when performing a request. We recommend using Let's Encrypt to get a certificate. If you do rely on self signed certificate, please read the [requests](https://requests.readthedocs.io/) documentation to provide a CA Bundle to verify the cert using environment variables.
The Analyzer command line interface has been reworked and uses new flags.
-`--debug` flag becomes `--log-level <level>`
-`--rmq-config-file` flag becomes `--config <filepath>`
-`--http-retry-queue-file` flag becomes `--retry-queue-filepath`.
-`retry-queue-filepath` default value changed from `/tmp/airtime_analyzer_http_retries` to `retry_queue` in the working directory.
### New configuration schema and validation
The configuration file parsing was improved with validation and the configuration schema was updated. Some deprecated fields were removed and other were renamed.
The `general` section has been changed:
- the`general.web_server_user` entry was removed
- the `general.cache_ahead_hours` entry now defaults to 1
- the`general.airtime_dir` entry is deprecated and can be removed
- the`general.station_id` entry is deprecated and can be removed
- the`general.protocol` (`http` or `https`) entry is recommended over the `general.force_ssl` entry.
- the`general.force_ssl` entry should either be removed or set to a value (`true` or `false`), an empty value will fail validation.
The storage (`current_backend`) section has been changed:
- the `current_backend.storage_backend` entry now defaults to the only valid value `file`.
:::note
You can remove the entire `current_backend` section from your configuration file.
:::
The `database` section has been changed:
- the `database.*` entries now have defaults
- the `database.port` entry was added and defaults to `5432`
- the `database.dbname` entry was renamed to `database.name`
- the `database.dbuser` entry was renamed to `database.user`
- the `database.dbpass` entry was renamed to `database.password`
The `rabbitmq` section has been changed:
- the `rabbitmq.*` entries now have defaults
The `pypo` section has been changed:
- the `pypo` section was renamed to `playout`
- the `pypo.ls_*` entries were renamed to `playout.liquidsoap_*`
- the `pypo.*_dir` entries were removed
- the `pypo.api_client` entry was removed
- the `pypo.record_file_type` entry was renamed to `playout.record_file_format`
- the `pypo.base_recorded_files` entry was removed
- the `pypo.poll_interval` entry was removed
- the `pypo.push_interval` entry was removed
- the `pypo.cue_style` entry was removed
The deprecated sections `monit` and `facebook` are unused, they can be removed from your configuration file.
Unless you use a custom auth backend, the `ldap` section can be removed from your configuration file.
Remove any quoted values in your configuration file, validation might fail otherwise. See the following example:
```ini
# The previously quoted value
ls_port = '1234'
# should become
liquidsoap_port = 1234
```
Please see the [configuration documentation](../admin-manual/setup/configuration.md) for more details.
### Environment variables
The API configuration environment variables names changed:
-`LIBRETIME_CONF_DIR` was removed
-`LIBRETIME_CONF_FILE` was renamed to `LIBRETIME_CONFIG_FILEPATH`
The Analayzer configuration environment variables names changed:
-`LIBRETIME_CONF_DIR` environment variable was replaced with `LIBRETIME_CONFIG_FILEPATH`.
The Worker configuration environment variables names changed:
-`RMQ_CONFIG_FILE` was renamed to `LIBRETIME_CONFIG_FILEPATH`.
### Log files new paths
When running Playout from the command line, the service will not log to a file by default.
When running Playout as a systemd service, the log file moved from `/var/log/airtime/pypo/pypo.log` to `/var/log/libretime/playout.log`
The Playout Notify log file at `/var/log/airtime/pypo-liquidsoap/notify.log` was removed and merged into the existing `/var/log/libretime/liquidsoap.log` log file.
When running Liquidsoap from the command line, the service will not log to a file by default.
When running Liquidsoap as a systemd service, the log file moved from `/var/log/airtime/pypo-liquidsoap/ls_script.log` to `/var/log/libretime/liquidsoap.log`
The Legacy log file moved from `/var/log/airtime/zendphp.log` to `/var/log/libretime/legacy.log`
The API log file moved from `/var/log/airtime/api.log` to `/var/log/libretime/api.log`
Run the following command to create the new and clean the old log directory:
When running Playout as a systemd service, the working directory changed from `/var/tmp/airtime/pypo/` to `/var/lib/libretime/playout`. When running from the command line, the users current working directory is now used by default.
When running Liquidsoap as a systemd service, the working directory is now `/var/lib/libretime/playout`. When running from the command line, the users current working directory is now used by default.
When running Analyzer as a systemd service, the working directory is now `/var/lib/libretime/analyzer`.
When running Worker (celery) as a systemd service, the working directory changed from `/srv/airtime` to `/var/lib/libretime/worker`.
Run the following command to clean the old directory:
```bash
sudo rm -rf /var/tmp/airtime/pypo/
```
### Analyzer new `ffmpeg` based steps
The Analyzer now requires `ffmpeg`. The `silan` system dependency and the `rgain3` python package and it's system dependencies can be removed.
Run the following command to clean the old packages:
```bash
sudo apt purge silan
sudo apt purge \
gir1.2-gtk-3.0 \
libcairo2-dev \
libgirepository1.0-dev \
libglib2.0-dev \
pkg-config \
python3-cairo \
python3-dev \
python3-gi \
python3-gi-cairo \
python3-gst-1.0
sudo pip3 uninstall rgain3
```
### No static files for the API
The API does not rely on static files in production anymore.
Run the following command to clean the old files:
```bash
sudo rm -rf /usr/share/airtime/api
```
## :warning: Known issues
The following issues may need a workaround for the time being. Please search the [issues](https://github.com/libretime/libretime/issues) before reporting problems not listed below.
### Ubuntu 18.04 Playout Status
The playout status notifications in the web interface are not working. The issue
is tracked in [#1606](https://github.com/libretime/libretime/issues/1606). The
playout works correctly and can be heard in Icecast, however the **On Air**
button is greyed out and the status reported on the **Streams** status page can
report errors connecting to Liquidsoap. The current workaround is to upgrade the