docs: file based stream configuration
This commit is contained in:
parent
37b8b17ed3
commit
be14fb8096
|
@ -221,6 +221,240 @@ In order to apply the changes made in this section, please restart the following
|
||||||
libretime-liquidsoap
|
libretime-liquidsoap
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Stream
|
||||||
|
|
||||||
|
The `stream` section configures anything related to the input and output streams.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
stream:
|
||||||
|
inputs: # See the [stream.inputs] section.
|
||||||
|
outputs: # See the [stream.outputs] section.
|
||||||
|
```
|
||||||
|
|
||||||
|
:::info
|
||||||
|
|
||||||
|
To help you simplify your stream configuration, you can use yaml anchors to define a common properties and reuse them in your output definitions:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
stream:
|
||||||
|
outputs:
|
||||||
|
# This can be reused to define multiple outputs without duplicating data
|
||||||
|
.default_icecast_output: &default_icecast_output
|
||||||
|
source_password: "hackme"
|
||||||
|
admin_password: "hackme"
|
||||||
|
name: "LibreTime!"
|
||||||
|
description: "LibreTime Radio!"
|
||||||
|
website: "https://libretime.org"
|
||||||
|
genre: "various"
|
||||||
|
|
||||||
|
icecast:
|
||||||
|
- <<: *default_icecast_output
|
||||||
|
enabled: true
|
||||||
|
mount: "main.ogg"
|
||||||
|
audio:
|
||||||
|
format: "ogg"
|
||||||
|
bitrate: 256
|
||||||
|
|
||||||
|
- <<: *default_icecast_output
|
||||||
|
enabled: true
|
||||||
|
mount: "main.mp3"
|
||||||
|
audio:
|
||||||
|
format: "mp3"
|
||||||
|
bitrate: 256
|
||||||
|
```
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
In order to apply the changes made in this section, please restart the following services:
|
||||||
|
|
||||||
|
```
|
||||||
|
libretime-liquidsoap
|
||||||
|
libretime-playout
|
||||||
|
```
|
||||||
|
|
||||||
|
### Inputs
|
||||||
|
|
||||||
|
The `stream.inputs` section configures anything related to the input streams.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
stream:
|
||||||
|
# Inputs sources.
|
||||||
|
inputs:
|
||||||
|
# Main harbor input.
|
||||||
|
main:
|
||||||
|
# Harbor input public url. If not defined, the value will be generated from
|
||||||
|
# the [general.public_url] hostname, the input port and mount.
|
||||||
|
public_url:
|
||||||
|
# Mount point for the main harbor input.
|
||||||
|
# > default is main
|
||||||
|
mount: "main"
|
||||||
|
# Listen port for the main harbor input.
|
||||||
|
# > default is 8001
|
||||||
|
port: 8001
|
||||||
|
|
||||||
|
# Show harbor input.
|
||||||
|
show:
|
||||||
|
# Harbor input public url. If not defined, the value will be generated from
|
||||||
|
# the [general.public_url] hostname, the input port and mount.
|
||||||
|
public_url:
|
||||||
|
# Mount point for the show harbor input.
|
||||||
|
# > default is show
|
||||||
|
mount: "show"
|
||||||
|
# Listen port for the show harbor input.
|
||||||
|
# > default is 8002
|
||||||
|
port: 8002
|
||||||
|
```
|
||||||
|
|
||||||
|
### Outputs
|
||||||
|
|
||||||
|
The `stream.outputs` section configures anything related to the output streams.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
stream:
|
||||||
|
# Output streams.
|
||||||
|
outputs:
|
||||||
|
icecast: # See the [stream.outputs.icecast] section.
|
||||||
|
shoutcast: # See the [stream.outputs.shoutcast] section.
|
||||||
|
system: # See the [stream.outputs.system] section.
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Icecast
|
||||||
|
|
||||||
|
The `stream.outputs.icecast` section configures the icecast output streams.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
stream:
|
||||||
|
outputs:
|
||||||
|
# Icecast output streams.
|
||||||
|
# > max items is 3
|
||||||
|
icecast:
|
||||||
|
- # Whether the output is enabled.
|
||||||
|
# > default is false
|
||||||
|
enabled: false
|
||||||
|
# Output public url, If not defined, the value will be generated from
|
||||||
|
# the [general.public_url] hostname, the output port and mount.
|
||||||
|
public_url:
|
||||||
|
# Icecast server host.
|
||||||
|
# > default is localhost
|
||||||
|
host: "localhost"
|
||||||
|
# Icecast server port.
|
||||||
|
# > default is 8000
|
||||||
|
port: 8000
|
||||||
|
# Icecast server mount point.
|
||||||
|
# > this field is REQUIRED
|
||||||
|
mount: "main"
|
||||||
|
# Icecast source user.
|
||||||
|
# > default is source
|
||||||
|
source_user: "source"
|
||||||
|
# Icecast source password.
|
||||||
|
# > this field is REQUIRED
|
||||||
|
source_password: "hackme"
|
||||||
|
# Icecast admin user.
|
||||||
|
# > default is admin
|
||||||
|
admin_user: "admin"
|
||||||
|
# Icecast admin password. If not defined, statistics will not be collected.
|
||||||
|
admin_password: "hackme"
|
||||||
|
|
||||||
|
# Icecast output audio.
|
||||||
|
audio:
|
||||||
|
# Icecast output audio format.
|
||||||
|
# > must be one of (aac, mp3, ogg, opus)
|
||||||
|
# > this field is REQUIRED
|
||||||
|
format: "ogg"
|
||||||
|
# Icecast output audio bitrate.
|
||||||
|
# > must be one of (32, 48, 64, 96, 128, 160, 192, 224, 256, 320)
|
||||||
|
# > this field is REQUIRED
|
||||||
|
bitrate: 256
|
||||||
|
|
||||||
|
# format=ogg only field: Embed metadata (track title, artist, and show name)
|
||||||
|
# in the output stream. Some bugged players will disconnect from the stream
|
||||||
|
# after every songs when playing ogg streams that have metadata information
|
||||||
|
# enabled.
|
||||||
|
# > default is false
|
||||||
|
enable_metadata: false
|
||||||
|
|
||||||
|
# Icecast stream name.
|
||||||
|
name: "LibreTime!"
|
||||||
|
# Icecast stream description.
|
||||||
|
description: "LibreTime Radio!"
|
||||||
|
# Icecast stream website.
|
||||||
|
website: "https://libretime.org"
|
||||||
|
# Icecast stream genre.
|
||||||
|
genre: "various"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Shoutcast
|
||||||
|
|
||||||
|
The `stream.outputs.shoutcast` section configures the shoutcast output streams.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
stream:
|
||||||
|
outputs:
|
||||||
|
# Shoutcast output streams.
|
||||||
|
# > max items is 1
|
||||||
|
shoutcast:
|
||||||
|
- # Whether the output is enabled.
|
||||||
|
# > default is false
|
||||||
|
enabled: false
|
||||||
|
# Output public url. If not defined, the value will be generated from
|
||||||
|
# the [general.public_url] hostname and the output port.
|
||||||
|
public_url:
|
||||||
|
# Shoutcast server host.
|
||||||
|
# > default is localhost
|
||||||
|
host: "localhost"
|
||||||
|
# Shoutcast server port.
|
||||||
|
# > default is 8000
|
||||||
|
port: 8000
|
||||||
|
# Shoutcast source user.
|
||||||
|
# > default is source
|
||||||
|
source_user: "source"
|
||||||
|
# Shoutcast source password.
|
||||||
|
# > this field is REQUIRED
|
||||||
|
source_password: "hackme"
|
||||||
|
# Shoutcast admin user.
|
||||||
|
# > default is admin
|
||||||
|
admin_user: "admin"
|
||||||
|
# Shoutcast admin password. If not defined, statistics will not be collected.
|
||||||
|
admin_password: "hackme"
|
||||||
|
|
||||||
|
# Shoutcast output audio.
|
||||||
|
audio:
|
||||||
|
# Shoutcast output audio format.
|
||||||
|
# > must be one of (aac, mp3)
|
||||||
|
# > this field is REQUIRED
|
||||||
|
format: "mp3"
|
||||||
|
# Shoutcast output audio bitrate.
|
||||||
|
# > must be one of (32, 48, 64, 96, 128, 160, 192, 224, 256, 320)
|
||||||
|
# > this field is REQUIRED
|
||||||
|
bitrate: 256
|
||||||
|
|
||||||
|
# Shoutcast stream name.
|
||||||
|
name: "LibreTime!"
|
||||||
|
# Shoutcast stream website.
|
||||||
|
website: "https://libretime.org"
|
||||||
|
# Shoutcast stream genre.
|
||||||
|
genre: "various"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### System
|
||||||
|
|
||||||
|
The `stream.outputs.system` section configures the system outputs.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
stream:
|
||||||
|
outputs:
|
||||||
|
# System outputs.
|
||||||
|
# > max items is 1
|
||||||
|
system:
|
||||||
|
- # Whether the output is enabled.
|
||||||
|
# > default is false
|
||||||
|
enabled: false
|
||||||
|
# System output kind.
|
||||||
|
# > must be one of (alsa, ao, oss, portaudio, pulseaudio)
|
||||||
|
# > default is alsa
|
||||||
|
kind: "alsa"
|
||||||
|
```
|
||||||
|
|
||||||
## LDAP
|
## LDAP
|
||||||
|
|
||||||
The `ldap` section provide additional configuration for the authentication mechanism defined in `general.auth`, please see the [custom authentication documentation](../custom-authentication.md) for more details.
|
The `ldap` section provide additional configuration for the authentication mechanism defined in `general.auth`, please see the [custom authentication documentation](../custom-authentication.md) for more details.
|
||||||
|
|
|
@ -36,6 +36,44 @@ Along with the Debian Buster deprecation, the following dependencies versions ar
|
||||||
- [php7.3](https://packages.debian.org/buster/php7.3)
|
- [php7.3](https://packages.debian.org/buster/php7.3)
|
||||||
- [python3.7](https://packages.debian.org/buster/python3)
|
- [python3.7](https://packages.debian.org/buster/python3)
|
||||||
|
|
||||||
|
## :arrow_up: Before upgrading
|
||||||
|
|
||||||
|
:::caution
|
||||||
|
|
||||||
|
Please follow this **before the upgrade procedure**!
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
### File based stream configuration
|
||||||
|
|
||||||
|
The stream configuration moved from the database to the [configuration](../admin-manual/setup/configuration.md#stream) file. A configuration sample can be found in the project folder under `installer/config.yml`. Make sure to save your existing stream config to the configuration file.
|
||||||
|
|
||||||
|
:::info
|
||||||
|
|
||||||
|
To prevent accidental data loss during upgrade, the stream configuration data will only be removed from the database in future releases. You can view the data using the following commands:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo -u libretime libretime-api dbshell --command="
|
||||||
|
SELECT *
|
||||||
|
FROM cc_stream_setting
|
||||||
|
ORDER BY keyname;"
|
||||||
|
|
||||||
|
sudo -u libretime libretime-api dbshell --command="
|
||||||
|
SELECT *
|
||||||
|
FROM cc_pref
|
||||||
|
WHERE keystr IN (
|
||||||
|
'default_icecast_password',
|
||||||
|
'default_stream_mount_point',
|
||||||
|
'live_dj_connection_url_override',
|
||||||
|
'live_dj_source_connection_url',
|
||||||
|
'master_dj_connection_url_override',
|
||||||
|
'master_dj_source_connection_url'
|
||||||
|
)
|
||||||
|
ORDER BY keystr;"
|
||||||
|
```
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
## :arrow_up: Upgrading
|
## :arrow_up: Upgrading
|
||||||
|
|
||||||
### Worker python package and service
|
### Worker python package and service
|
||||||
|
|
Loading…
Reference in New Issue